lyn7311的个人博客分享 http://blog.sciencenet.cn/u/lyn7311

博文

过去十年的研究经历总结为一个字,“熬” 精选

已有 5248 次阅读 2021-4-19 12:06 |系统分类:科研笔记

2021417日,非常荣幸地参与了中国电子学会科学技术奖的颁奖典礼,此次获奖确属意料之外。8月初在系统提交材料,电子学会让补充证明材料,我一直拖着没有去办,到了9月底我在外地出差时电子学会又打电话让尽快补充,已经打算放弃申报。学校科研院的陈杨老师听说后,跑前跑后帮我在几个小时内处理完毕。当时想放弃的原因是查了往年的获奖者名单,感觉自己与别人根本不在一个level,加上过去这些年受了太多的打击和挫折,整个人的情绪长期处在一个很低迷的完全不自信的状态,导致自己没有勇气去尝试。所以在去年十月底收到初评结果时,真的有一点范进中举的感受,如果说有什么经验和体会,就是一个字----“”。

感谢中国电子学会、感谢评审专家、感谢同甘共苦的合作者、感谢荣辱与共的学生。

image.png

过去十多年研究的起点,来自于2009年(上一个牛年)的"六连号事件",20096武汉市经济适用房公开摇号,有网友发现在摇中的 6个号码的购房资格证明编号竟是相连的号码。事出反常必有妖,果然发现被人为控制了。

image.png

当时,我正在给学生上密码学课,在课堂上闲扯了密码学与六连号的关系,正常的结果应该是公平的。从技术上来说,公平性应该是不可预测性,和密码学上的随机性是差不多的。丢骰子之类的当然是产生随机数的最好办法,但是大多数人没办法现场观看,只能通过录像观看,录像当然是容易被人为控制的。最好的方式是所有参与者都能对最终的结果发生影响,并且能验证自己的影响发挥了作用,且相信其他人的联合不具有更多的优势,从而相信结果是公平公正的。下课后,有两个学生找我,想把这个思路搞成本科生创新项目。为了把所有参与者融入到一个结果,我们想到了用多项式,比如一百个参与者,每人出一对数,100个人就是100对数,把它们当成100个的点,就会有一条相应的曲线或多项式穿过这些点。这个函数对所有人来说,当然是不可预测的,而且从信息论的角度来说,99个人联合起来所发挥的作用和另外1个人的作用,也是一样的。接下来对这个多项式的参数做处理,当然就可以得到一个对所有人来说都是公平的结果。而且,任何一个人可以验证多项式是否通过自己选的点,从而判断这个结果是否融入了自己的影响。接下来就是用程序验证想法,当设定的点数不多时程序运行情况是不错的。随着数据加大,比如20对、30对、,很快就发现不行了。问题出在哪里?因为由多个点构造一个函数,实质上是一个近似的多项式。当点数少,多项式的次数不高,验证时把数据代入多项式,误差也不会太大。当点数越来越多时,多项式数次越来越高,会把一点点的误差放的很大,大到了根本无法控制的地步。因此,验证环节就没办法做了。

怎么办?研究过程中最怕是没有坎儿,既然碰到了个坎儿,就想办法迈过去。分析问题是怎么产生的,当然是误差造成的,得想办法把误差消除掉。两个学生还去找了给他们上数值分析的老师,老师建议把拉格朗日插值改为牛顿插值还是埃尔米特插值之类的,我想,这样还是不行啊,顶多是提高一下误差控制的上限。我们希望没有误差,后来想到把所有的运算从实数域上转移到有限域上,所有的数据运算是封闭的,当然就没有误差了。再说了,我们的目标并不是要构造什么样子的曲线,我们的目标仅仅是得到一个各方平等参与的结果。按照这个思路,所碰到的坎儿很快得以解决。顺便说一句,这两个本科生张永昌和罗家华在2011年毕业后发展的都不错,一个在烽火,一个在腾讯。

过了一段时间才发现自己知识储备不足,我们解决问题的思路实质上和Shamir的文章“How to share a secret” Adi Shamir. 1979. How to share a secret. Commun. ACM 22, 11 (Nov. 1979), 612–613.)几乎是一样的。接下来就拿着这个工具往前走走,看看能不能对别人的工作做些修修补补的工作。也是在2009年开始,自己招收研究生,每天上课之余,坚持读文章和学生讨论。没过多久碰到了两个研究内容,都是用有限域上插值多项式为工具做的,这两个内容也成为我们过去十年研究的起点。

第一个是2010年发表在IEEE Transactions on Computers的一篇文章(L. Harn and C. Lin, "Authenticated Group Key Transfer Protocol Based on Secret Sharing," in IEEE Transactions on Computers, vol. 59, no. 6, pp. 842-846, June 2010),设计了群组通信中的密钥分发协议。密钥管理中心选了一个密钥,怎么在公开信道上把它分发出去,让授权的用户能拿到,让非授权的用户拿不到。既然是公开信道上发送,所有人都能收到发送的信息,因此要在分发前做个处理,让授权者收到后做运算可以恢复出来,非授权者收到后恢复不出来。而授权者和非授权者的区别是什么呢?前者与密钥管理中心有共享的秘密数据,而后者没有。因此密钥管理中心构造一个多项式,把所有授权用户和要分发的密钥都揉进去,然后在这个多项式上再另外取几个点作为公开信息发布(发布的数量比恢复多项式要少一个)。非授权者仅凭接收到的点数,无法恢复,而授权者比非授权者多一个信息,当然可以恢复。

这个设计当然是巧妙并且很高效的,但是原文献有一点点疏漏导致了存在内部人攻击的风险。比如说,我和张三在同一个QQ群里,我想得到张三与腾讯之间共享的秘密数据(登录口令),我只需要和张三同在t个成员的群里t+1次就可以攻击成功。具体点,就是(我、张三、李四)组了个t=3的群组1次,如果再有三次,(我、张三、李五),(我、张三、李六),(我、张三、李四)时,我就可以通过解方程来得到张三的登录口令。我们的这一发现于2012年发表在IEEE Transactions on Computers(Y. Liu, C. Cheng, J. Cao and T. Jiang, "An Improved Authenticated Group Key Transfer Protocol Based on Secret Sharing," in IEEE Transactions on Computers, vol. 62, no. 11, pp. 2335-2336, Nov. 2013),如果不是我们09年的积累,想要发现并解决这一漏洞的,估计是有难度的(我的第一个硕士生曹建宇协助我发现,与我同舟共济好多年的师弟程池协助修改的)。

image.png

我们第二个研究内容是安全电子投票,与群组通信密钥管理差不多同时开始的。首先是看了《计算机研究与发展》的一篇文章(仲红,黄刘生,罗永龙. 基于安全多方求和的多候选人电子选举方案[J].计算机研究与发展,2006(08)),硕士生们对这个文章做了一些改进,也就是从这篇文章开始,注意到e-voting确实是个受关注的密码学问题,在Rivest(MIT教授,图灵奖获得者)的主页上有一半以上的publicationtalk是这个主题。

大概在2011年上半年我在在Springer上看到了文章 “Bingo Voting: Secure and Coercion-Free Voting Using a Trusted Random Number Generator”,使用可信任的随机数发生器设计了能抵抗胁迫攻击的电子投票协议,第一感觉是看看可信任随机数发生器在其中发挥什么样的作用,能不能把它去掉,如果能去掉,当然是我们的一个贡献。Bingo Voting的基本步骤包括:在投票预备阶段,给每个候选人生成一个假票箱(里面的假票dummy vote实质上是封装起来的随机数);当某个候选人被选中时,在投票间里生成一个新的随机数分配给这个候选人,未被选中的候选人则从自己的假票箱里取一个随机数。之后生成收据(每位候选人对应一个随机数),投票人可以检查新生成的随机数在收据上与自己选的候选人是否对应,如果是,相信自己的投票意图被正确的记录;在计票阶段,对假票箱里封装起来的随机数做两件事:一是打开没有用过的假票,二是用零知识证明的方式,证明没有打开的假票确实被用在了某一个选票上,但是不能让人知道用在了哪张选票上。一个候选人被选中的次数越多,对应的没有用过的假票数量也越多,用这种方式来计票。

经过分析,我们首先发现Bingo voting的隐患在于:如果投票者使用偷拍的手段来证明哪个随机数是现场新生成的,则可以向他人证明自己的投票内容。原因在于,投票者在投票间可以看到Bingo生成的随机数,其他人无法得到这一信息,也就是说投票者相对于其他人可得到多余的信息。原来的方案是用物理的方法或人工检测的手段,阻止外人获得Bingo生成的随机数信息,如果投票者不诚实,自然有动机把这个额外的信息泄露出去。我们的思路是改进现场生成随机数的方式,使投票者并不比其他人能看到更多的信息量。具体来说,由未选中的候选人以及dummy vote来生成一个多项式,进而代入被选中的候选人,生成新鲜的随机数。假设共有 n 个候选人,这个多项式实际上只是 n-1 维的,任意 n-1 个候选人对应的点是平等(不可区分的)、并可以生成另外的一个点。因投票者自己知道哪个是被选中的,哪些是未被选中的,哪些是dummy votes,并通过检验dummy votes与新随机数的对应关系来判定选票是否反映他的意图;同时,新随机数与dummy votes具有不可区分性,使得投票者无法向其他人证明哪个是新生成的。正好看到Inscrypt会议在征稿,后来才知道Inscrypt的录用率并不高。更幸运的是,17年暑假收到google学术推送的邮件,发现这篇文章竟然被公钥密码学的开创者Rivest教授注意到了,https://people.csail.mit.edu/rivest/pubs/RV16.pdf,对我来说无疑是值得高兴的事情。

     时间就到了20138月,以《安全电子投票协议设计与分析》为题目申报的国家自然科学基金地区项目获批,我是发自肺腑的感谢NSFC的资助,当时就是不停地找文章看,能看懂的就搞一下,看不懂的就放弃。我认为这对于小团队组建初期是合适的,得有文章持续发表才能活命。

     2013年里对Inscrypt 的文章进行扩展,找期刊投稿屡试不中,直到2016年才在JISE(中国密码学会推荐期刊)发表,后来被不少同行给予积极评价,美国匹兹堡大学的研究团队在“Towards modernizing the future of American voting”里面说到Because we are using a variety of off-the-shelf technologies, our voting machines across different states, districts, and local counties subject the electronic voting system to possible malware injections. (由于来自世界各地的现成的技术被用于电子投票,使得遍布全国和其他国家的电子投票系统容易受到恶意软件注入的风险,正如刘的文章中所说的潜信道攻击的形式)

还是在2013年,迎来了一位研究生刘高(本科毕业于宜宾学院),对后续的研究工作起到了milestone的作用,在学校期间一共搞了五六篇文章,其中有三篇SCI论文。在学院没拿到奖学金的刘同学,竟然拿到了中科院信息安全国家重点实验室的研究生奖学金。据他说,给他颁奖的黄民强院士说,没想到桂电的学生还能拿到这个奖。虽然刘高同学在2016年毕业后去西安电子科大读博士,但是数据聚合的研究被我们长期坚持了下来,并且于2016年和2020年分别拿到了国家自然科学基金地区项目大数据时代具有隐私保护性的数据聚合协议研究( 61662016)”和面上项目面向数据发布的隐私保护协议研究(62072133)”

image.png

再回到2015年五月,当时的研究手段仍是不停找能看懂的文章看,IET Information Security上的‘Novel and practical scheme based on secret sharing for laptop data protection’,好像可以改进一下。我们首先指出该方案存在被单点攻击的可能,主要是因为服务器为中心会造成严重的通信瓶颈和信任瓶颈,攻击者只用最需要向服务器发送大量的垃圾通信,使其无法正常通信,就足以瘫痪整个系统。为解决这一安全漏洞,我们把以服务器为中心的结构改为以用户为中心(User-centered design, UCD),然后又加了其他的安全性质。这篇文章2019年获得了IET的年度最佳论文奖(Premium Awards),协助我完成这个文章的钟婍同学现在澳大利亚迪肯大学读博士。

image.png

差不多在同时,我们继续用k-匿名和秘密分享做e-voting的相关改进,也是颇多波折。不过国外同行的评价也还可以,苏黎世大学的Hanno Scholtz(现为德国康斯坦茨大学教授和瑞士弗里堡大学教授)在Structure and math of Civil democracy中,评价我们的工作:ongoing efforts to lay theoretical foundations for trustworthy e-voting systems in computer science (为计算机科学领域中可信任的电子投票系统研究奠定理论基础方面,做出了持续性的贡献)(这个内容主要由赵全玉同学完成,他现在南京大学计算机学院读博士)。

另外,数据聚合方面的研究也在持续进行,事实上,电子投票可以看成是数据聚合的特例,数据聚合可以看成是电子投票的一般化。数据聚合的目的是为了保障数据发布时的隐私。我们在投稿时,也多次遇到审稿人把数据安全与数据隐私混淆的情况,有审稿人说,用加解密不就行了吗?不行的。比如:社会调查机构想要统计学生毕业五年后的平均薪资,当然可以把学生们叫回来,当面填写,但是这样成本太高,那就在网上组建一个群,群外的不能看到群内的信息,这当然可以通过加解密来实现,但是群内是不是信息就完全可以共享呢?当然不是的。也就是说,所有的学生要在不让人知道自己薪资的情况下,让辅导员能计算出年级的平均薪资。当然,有的数据处理后,把平均值发布出去是有价值的,比如薪资、比如电力消耗等;有的数据平均后或加噪后就失去了意义,比如血压、脉搏等医疗数据,要求能保持数据的原始值发布,同时又不泄露数据的隐私。这就引出了另外一个问题,N-source anonymity。我们这几年发表在IEEE Transaction/Journal的八九篇文章大多与此有关。(这个过程促成多位同学从硕士到博士,包括现在意大利锡耶纳大学读博士的郭巍,现在电子科大的王艳平等)

后来又发现,数据聚合的本质上是同一个时间点的不同数据源的隐私保护问题;如果换个角度,同一个数据源在不同的时间点下形成的数据集,怎么如何平衡可用性与隐私性呢。首先找个场景,先从位置隐私看,后来就看到了轨迹隐私,这个时候已经到了2017年底。我们先在中文期刊网上查到国内的研究现状,(李凤华, , , ,华佳烽,史国振.高效的轨迹隐私保护方案[J].通信学报,2015(12):114-123.)以及(雷凯跃,李兴华,刘海,裴卓雄,马建峰,李晖. 轨迹发布中基于时空关联性的假轨迹隐私保护方案[J]. 通信学报, 2016, 37(12): 156-164.)。然后,一位14级的本科生对照着他们发在通信学报上的文章做毕业设计,同时让一位17级的硕士生看外文文献找切入点。客观地说,我觉的这位本科生的毕业设计应该是超过本校很多硕士的工作量的,她把通信学报上的轨迹隐私方案自己做了仿真实验,并给了一些改进。然而,在毕业答辩时,因为大多数同学做的管理系统,老师们都很熟悉,而她做的内容评委老师们一致认为无法判断她的难度和工作量,而没有让通过。 17级的硕士潘同学的研究进展(潘家霁也是个神人,他本科是在盐城工学院读轻化工专业的),也比较顺利。最初是想跟着别人做假轨迹生成, 18年前半年做出来的效果并不比别人好。不比别人好,当然就没有发表的价值。后来想换个角度,生成假轨迹的目的是为了和真轨迹混在一起无从分辨,能不能检测一下前面的假轨迹算法是不是靠谱,能不能被发现呢?分析的思路是,原来的假轨迹生成基本上是围绕着真实轨迹做一些偏转或伸缩之类,而人类的轨迹应该是有一些特定的特征在里面的,怎么样把人类的轨迹特征提炼出来,然后看一段轨迹里面是否有不象人类特征的片断在里面,如果达到一定界限,就判定这个是假的。按照这个思路,我们用CNNLSTM做了两个检测器,实验效果还可以,真的能把好多假轨迹检测出来。检测之后,当然还是要做更好的能抵抗机器学习攻击的假轨迹生成算法,目前我们正在用GAN来做这个。去年投了USENIX,虽然被拒,但是鼓励我们今年继续投。屡战屡败,屡败屡战。

回首过去十多年,真是一路艰辛和挫折,一直是个体户,一个人带着一群学生,熬到现在,终于得到了些许认可。身处N流学校,科研以培养学生的好奇心和开脑洞的能力为目的,不要有太多的功利心,把这种自由探索研究当作与下棋打球一样的兴趣、当成乐子,才能当成生活的一部分,才不会过于患得患失,才能有幸得下来。

 




http://blog.sciencenet.cn/blog-3464286-1282734.html

上一篇:反复(re)摸索(search)就是研究(research)
下一篇:双非院校学生应培养“开脑洞”的能力

22 褚海亮 姚伟 刁承泰 陈晨 梁洪泽 农绍庄 李毅伟 张士宏 白龙亮 黄永义 王琛 周忠浩 郑永军 王启云 金义光 王飞 王安良 赵志宏 周阿洋 张晓斌 雷宏江 刘钢

该博文允许注册用户评论 请点击登录 评论 (12 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2021-10-21 03:00

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部