罗纳德·李维斯特
罗纳德·李维斯特 - 简介
罗纳德·李维斯特(Ronald L. Rivest)现任麻省理工学院(MIT)电子和计算机科学系Viterbi 讲座教授。他是MIT计算机和人工智能实验室的成员,并领导着其中的信息安全和隐私中心。
Rivest 教授1969年从耶鲁大学获得数学学士学位,1974年从斯坦福大学获得计算机博士学位。
Rivest 教授主要从事密码学、计算机和网络安全和算法的研究。他和Adi Shamir和Len Adleman一起发明了RSA公钥算法,也是RSA数据安全公司的联合创始人。并且和Shamir、Adleman分享了2002年度美国计算机协会 (ACM)颁发的图灵奖(也许是计算机科学领域最有声望的奖项)。他在密码设计和密码分析方面有极其丰富的经验,现在担任国际密码研究协会的负责人。
Rivest 教授是美国国家工程院院士,美国国家科学院院士,美国计算机协会院士,国际密码研究学会院士,美国艺术与科学院院士
Rivest 教授最近的研究兴趣在投票系统的安全上。他是加州理工学院/麻省理工学院投票技术项目组成员,同时服务于美国联邦协助选举委员会下的技术指导方针发展委员会。
罗纳德·李维斯特 - 受访
2005年11月1日,第七届“二十一世纪的计算”大型学术研讨会在杭州召开。届时国际著名的计算机大师包括图灵奖获得者、美国国家工程院院士及美国国家科学院院士等多位著名科学家莅临大会。新浪科技在现场对数位演讲嘉宾进行了独家在线访谈。
以下为对美国国家工程院科学院院士、图灵奖得主Ronald L.Rivest的在线访谈实录:
主持人:不久前国际上被广泛应用的密码算法MD5、SHA—1被中国专家王小云等人破解,您能否介绍一下在这方面有没有新的应对措施?
Ronald L.Rivest:现在有关应对措施我们有些想法,但是我觉得还是面临着很大的挑战,到目前为止我觉得短期之内还是可以使用SHA—256,但是从长久来说我们还需要在理论方面进行进一步的提升。
主持人:现在硬件速度越来越快,破译密码越来越容易,您认为未来的密码发展趋势将是怎样的?这个趋势大概会在什么时间变得更加明显?
Ronald L.Rivest:实际上所谓硬件发展的速度很快,对加强安全方面来说也是有好处的,因为根据摩尔定律,掌握这个定律可以对硬件发展速度做出一个预测,知道将来会发生什么情况,比如说硬件速度提高了一倍的情况。作为加密或者是密码编辑人员来说他们可以使用更大的密钥,从它的倍数来看还是超过两倍的。
主持人:未来的密码会不会不是现在只是单纯数据上的加密,而是综合利用语言、生物等密码?
Ronald L.Rivest:你讲的很对,实际上将来这些加密措施会是各种方法集成组合的做法,仅仅靠密码是不够的,因为硬件的速度快了,可以被破解,而且对人来说记住很长的密码也不是很容易的事情,所以将来的解决方案就是一个小设备,或者是向生物方面的技术进步。
主持人:刚才提到任何系统无法做到没有任何漏洞,您如何保证一套系统不会被攻破,保证系统万一的瘫痪等不可预料的突发事件?在这方面有没有具体的应对措施?
Ronald L.Rivest:我想这个观点非常正确,没有任何一个系统是完全安全的,所以说我觉得应该从另外一个角度来解释,它这个系统可能最终是会被攻破的,但是要考虑成本有多高,比如说要打破一个系统要花一亿美元的话,那么对这个人来说就不如考虑其他的方式,比如做广告。
主持人:有人说 Windows不如Unix或者是Linux系统安全,对此您怎么看?
Ronald L.Rivest:这个问题我觉得你问我不太合适,因为我专业研究的领域是密码学还有操作膝头的安全方面。我想你讲的这几种操作系统现在都有很大的改善,现在要做的就是观察一下它的发展趋势,以及Bug所在,我想它们都是有很大的发展潜力的。
主持人:有技术人员向我透露这样的信息,微软的网站之所以很少被人攻破,是因为他使用了很多根本就没有公开的函数,对此您如何评价?
Ronald L.Rivest:这方面的信息我不掌握,你所说的情况可能有,但是我不了解具体的事情。
罗纳德·李维斯特 - 演讲
演讲的题目:在二十一世纪网上上投票的新趋势
Ronald L.Rivest:早上好,谢谢你们,我到这里来能够感受到空气当中令人兴奋的气氛,这是一个美丽的特别是看着这么多的学生在场我感到特别高兴和兴奋,我也要感谢微软、感谢中国地方政府,感谢你们提供了这么好的会场,这么好的会议,我今天要讲的题目就是二十一世纪的表决或者是投票,这是我最近研究的话题,就是怎么样把票投好,组织好投票的技术,这是我研究的问题。这是本地省市开会的地方,开会的时候如果你参会的话每个人面前是一个投票机,是否同意还是弃权,也可以表决。我对于学生的话题格外感兴趣,对于学生来说,喜欢研究计算机的安全以及人机界面,以及把安全和人机界面问题搞好,用三个不同的做法来解决安全的问题,认证、审计、加密、表决系统等等。
表决就要考虑安全的问题,在美国我们有很长的欺诈历史,有一本书叫做窃取表决票,还有一个路易斯安娜的投票,很多死了的人也可以投票。表决的人不能决定,但是计票的人可以决定很多事情了。表决技术是按照一般的计算机技术进行的,以前只是用纸张来表决,现在仍然广泛使用,在美国我们用打孔机,就是你选择的候选人可以打孔,以前老的系统是打折的,做一个记号,或者是其他的机器识别的,用铅笔画圈的。现在计算机怎么样用于表决呢?这里涉及到一系列复杂的问题,因为明年选举以后有一些问题,美国法律规定不要搞了。现在有一些问题,很多州要求用纸张进行跟踪,因此我想提的主要问题是这个技术可以用了,是不是我们可以把它做好准备,因为图纸表决、电子表决现在还无法找到答案,我们现在还不知道。我想说明一下在美国表决的复杂性,这个地图是在80年选举总统时所提供的不同技术,红色的是打孔系统,现在看到的绿色的是画圈扫描的,紫的是触摸屏的系统。目前美国的表决系统研究开展了不少的活动,Avi Rubin得到了750万美元的奖励,同时我也参加了表决的另外一个项目,我们也使它理解了目前这项技术的好处和弱点。此外还有很多表决技术方面的问题,我在委员会工作,来制定指南,以及确定表决技术,同时还有很多积极分子,需要纸张的跟踪系统,或者是有些人需要其他的系统等等。法国总统贝克先生也成立了一个委员会,需要报告、用户认证系统等等,这里有很多问题是如何使得表决系统更加有效,这个问题是涉及到很多不同方面的。另外还有表决人隐私的问题,他投谁、选择谁他不知道,因为你不能给他一个所谓的收据,还有就是卖票,因为美国人以前总是把票卖出去的,同时可用性也涉及到有没有表决系统,因为有些人不能到那些地方,这就给他们提供了表决的可能性。这些问题当中我特别要强调的是隐私性,从安全性的角度来看这个问题是非常难解决的,没有收据就无法知道在表决投票之后有些人更正了什么东西,因为搞电子商务收据也是一方面的问题。考虑表决系统的时候要考虑谁要改变答案,几乎所有的人,包括政治上的积极分子,都希望他们自己的候选人获胜,甚至外国都会想影响到结果,因为结果会影响到他们,因此这个过程所有的人,过程当中涉及到的每一部分都需要研究,需要有过程技术来防止各个方面不能够出问题,这就是这个问题的严重性所在了。
现在的问题是令人相信的程度有多少,目前我们还不知道,现在网上有一些软件,用这些软件可以分析,有些加密问题还是搞得不好,因此所谓的最先进技术还是要改善的。这些系统非常复杂,安全方面也非常复杂,二者之间也是有矛盾的。有几百万的单位在地方上加以使用,有时候是偶尔加以使用,在选举的时候才拿来使用,因此管理这些机器对有关人员也是很难的。还有一个过程,因为这些机器和系统目前不是很好,还需要改善。从另外一个投票的角度来看,那么多票是不是记录下来了,比如说摸一下屏幕是不是把我的票计下来了,这也是一个问题,因为这个东西应该是更加透明、更加令人相信的。
最终我们可以想到三个方面。第一个在美国还是比较受欢迎的,纸张跟踪系统,有一个打印的东西,投完票以后打印出来一张纸,你再检查一下让表决人看看是不是对,这个是比较受欢迎的,也比较实用的。第二,是我研究的领域,就是加密系统,我还有一个研究生也在进行这方面的研究,我会更好地介绍这个表决系统,也就是把标准提得更高一点,使得系统更加有效更加安全。一开始是VVPAT,是一个博士生写的论文,就是你投完了票以后可以打出一张纸,看看是不是你选的东西,如果是你选的东西就放在那个地方,可以成为正式的计票了。David Dill教授搞了一个软件项目,而且在这方面成为了积极分子,他主要在加州工作,现在已经有20个州开始要求这个系统了。这些还是有些争议的,需要注意到票,要保护好。实际上有两个表决程序,第一个看屏幕,第二看打印纸张,这对于有些人比较艰难,特别是对于残疾人比较麻烦。另外不能把所有的问题都解决,比如这个单子上没有这个人,如果投票人说打印的东西不是在屏幕上显示的东西,那么他就会怀疑这个机器,或者这个机器让他不能用,这时候造成服务器系统表决系统不能使用了,因此不能提供端对端的安全保障,表决人投了票也不能够说看看记录上的票是不是他的意愿,然后把他的意思表决出来、反映出来。你在保证他想怎么投之前需要电子系统加以确认,最后进行投票、进行了记录之后,你怎么知道这些没有问题,表决的问题怎么能够做得更好,能不能够提供端对端的安全保障,相信投的东西是你希望投的。我的同事们搞了加密的表决系统,加密计算机有三个做法,一个是盲签,就是当局闭着眼睛签字了,我们叫FOO,因为加密的方式可以把这个加在一起,投票以后加密,加在其他人的票上,是一种加密的形式。你可以加进去你的候选人,你可以把任何你喜欢的候选人加到选票当中去,从这个意义上来说这个要求没办法满足。最后Chaum提出了建议,Mixnets是提供一种逆遴,可以进行投票计算,但是不能追溯回谁投的票,所以要在计算的时候加密,显示出了逆遴的特点。Mixnets是一个新的理念,这是二十一世纪或者是再往前的时间里我们要看到的一种趋势。我们还有一个想法,要合适投票人的身份,官方的票是电子票而不是纸张票,所以完全是电子形式的投票,因此官方的票是电子票,你投票的时候你的票是加密的,而且是在公共广告栏里面可以看到你的投票加密回执的。另外还有纸张回执,如果票面与你希望的不符合,你可以用纸张回执更改。我们要确定投票人要投的票确实是他想要投的票,所以确实要了解有一系列的数据给它加密,这可能比较难,他可能不太信任这种投票机器,所以他没有办法对这种加密的顺序进行计算,计票机提供这一系列的数据可能不是很完善,所以他需要拿着这个证据发现一下看看是否他所投的票进行了完整的加密,所以这样的话就能够处理这两个部分,对它进行加密,对他所投的加密票进行计算。给大家一个很简单的方式,如果我们给投票人两种打出来的加密,电子的方式随意选一个放进去,另外拿出来进行加密,可能有一些投票积极分子剪掉,然后选择一个拿出来,两只手可以像猜硬币一样的,你也可以猜硬币在我的左手还是在我的右手,你没有看见我的硬币,但是硬币确实在我的手里面,这样就会对投票系统有信心。如果欺诈的话就容易发现,为了影响投票结果很可能会有欺诈。
接下来讲一下Mixnets是如何运作的。左边是一个很简单的文字选择,每横线是代表每个投票人,机器进行加密,加密完之后提供一系列的数据,是条形码,这些条形码放在公共布告栏上,我们要把票数重新排列,名字放在一边,这样没人知道怎么样进行排列,中间的Mix—Servers可以提供混杂的Server,最后我们可以对每个票进行加密,把加密过的票进行计算。所以是三部分,先是投票加密,然后服务器进行随意组合,最后比较重要的就是计算。问题是你如何能信任这里面每一步,因为你需要证据来表明所有工具、所有步骤都是有效运作的,我们讲到了第一部分,你投的票确实是你想头的票,但是你必须要争取证明,我们如何能知道这些混杂的服务器确实能够进行运作。因为重新加密,所以我们大出了一系列编码,但是编码不能混在一起,如果看一下条形码的话已经是经过服务器重新加密和服务器的重新混杂,他可能就会把一些重复投票过滤掉,最后加密的时候是否能做出合适的加密,实际上最后一部分是并不是很难做的。但是如何检查Mix能够正确发挥它的功能,一个叫做Robust的混杂,它可以提供混杂的序列排列,你要知道进来的东西和出去的东西是一样的,如果使用不同的加密形式出现的结果是不一样的。我和Jakobsson还有其他同事一起做的研究,加密有不同的做法,原来是剪,后来就是选择使得每个mix服务器能够显示一半进出系统,这样投票人的身份能够得到保护。如果我们把Mix服务器进行配对,比如Mix服务器1和 Mix服务器2配成一对,这两个之间有编程码的流程,然后我们可以随意决定Mix服务器1或者Mix服务器2应该显示出两个服务器中间的结果,第一个服务器和第二个服务器之间是共通的,所以每个服务器都只显示它所交流信息的一半,如果配对之后服务器2对服务器1提出挑战的话就不会被接受,所以就会被抓住,所以我们就机率的计算来检查投票系统的公正性,如果我们发现数替能够做假的话,但是机率就会变得很低,这是很好的方式。
有的时候我们会做到更好,Public Mixing是我在MIT的学生做的一个研究,现在还没有成果。我们做了矩阵的排列,每一行有11,这代表了这样一种情形的排列,然后进行生成。矩阵本身也会进行加密,所以才生出这样一种加密后的矩阵,所以加密过的0使每个项目都变成0或者1。这样代表的就是票数,我们需要一种过程进行加密或者计算,加密过的Vector然后得出加密过的结果。最后你会有非常好的想法,Nissim跟我介绍了这样一种结果,所以矩阵就可以进行成倍数的计算,这样的进程就可以确保投票人的身份被保护,能够提供一些被加密过的信息,但是所有这些矩阵都是被加密过的,代表的顺序都是随意排列过的,我们有公布过的矩阵,有这样一个 Public进行加密,所以所有的人都能够提供出这样一个Mv,v的领域是进入,Mv是加密之后v的结果,所以谁都不会知道M和v之间的关系,但是谁都知道这是加密过的。这是一种非常好的想法,这样人们就可以取消在投票时候对混杂服务器加密的信息,这就可以使用最新的算法来确保投票人的身份得到保护的方式,这是一种非常好的系统。
这是使用密码学解决投票的,另外一个做法就是必须达到标准的程序,这样可以被美国认证为被投资者加以使用,当然在美国的情况比较复杂一点,因为联邦的标准不适用于各个州,但是许多州还是实施联邦制定的保准。最近我思索了一下整个过程,这很像提供开发出高性能软件和硬件的方式,我们正在提供软件体系和硬件体系,因为你必须对它的软件和硬件体系有信心,尤其是它代表你来发挥一些作用,比如说在E商务方面进行投票的时候,所以必须建立这种性能。投票是一个非常好的例子,提供高性能的软件和硬件,我觉得微软公司在开发安全的计算技术方面起到的重要作用和安全技术跟我刚才讲的都是相关的。我们必须思考一些问题,在考虑投票标准的时候不仅仅要使投票人可以对投票过程进行追踪,也可以进行无线的,你如何建立可信赖度的体系,你是把代原码公布还是把坏的原码都拿到,所以代原码可能会公开,制造商总体来说不愿意公布它的代原码,还有文件的要求,供应商在测试的时候应该提供什么样的文件。安全性是一个非常有意思的特点,因为现在不是要求它有多少功能,坏人如果攻破这套系统之后会做些什么,许多聪明的人是没有办法突破它的安全设置的,所以没有办法影响到投票的结果,这是一个非常困难的事情,我们现在拥有的Tiger小组的评论,他们是非常聪明的人,他们可以了解所有的文件,然后说想试图突破安全系统看看能不能够解决,以前在美国没有这些既定的标准,我们需要了解一下应该采取什么样的努力,Tiger小组的成员应该是谁,是如何选择的。
最佳的做法不仅仅是硬件的问题,投票系统还牵扯到管理这些硬件的人以及投票选务官员,是帮助选民和投票的这些人,这是一系列不同的因素。我们经常看到安全系统不奏效,因为由人进行的界面要么是很难使用,要么就是安全性不够,投票体系经常有一些商业上的运行,比如说微软的数据库或者是微软的操作系统,这些商业上要运行的数据有它自己的脆弱性,所以投票系统要确保整个体系的每个组成部分,如果有任何脆弱存在的话都要进行加强,还有就是要管理一下谁来管理这个系统,这里面牵扯到了诸多的问题,还有要解决标准化的问题,我们看到系统有多重功能,可以用电子和非电子的方面来做。刚刚也讲到了软件开发问题,微软在这方面开发出安全代码,我想投票系统基本上需要实施这种类似代原码的方式,这样可以产生正确的结果,你所希望达到的结果。投票系统软件开发之后你如何确保投票体系里面所用的软件确实是被认证和批准过的,还有数字认证、数字签字等等这些技术都在这里面发挥重要的作用。整个系统的认证合适也是非常重要的,作为一个选务官员,你如何能够知道这个投票系统里面所装的软件都是对的,这个系统第一天在仓库里呆着第二天用,你怎么知道这个机器里装的软件是对的,怎么能够确认它的设置是对的,这并不是很简单,机器要弄过来的话你问有些什么文件可能会向你撒一些谎,所以要确认这个机器有没有被人动过手脚,这也是今后发展的一个重要方面,希望这方面的技术在今后的表决系统当中可以加以使用。我们往前看的时候也可以看到其他的问题会继续出现,包括远程的表决,这也是美国的一个热门话题,有很多的州包括墨尔本州是通过邮寄方式表决的,我特别不喜欢这种方式,因为邮寄和网上投票现象是最容易使腐败现象发生的,所以在互联网方面的投票压力也是很大的,我希望大家思考这些技术,通过什么样的方式能够减少改变投票结果的影响,最好的方法就是不止是第一次表决,只算最后一次表决,比如说早上有人给你付了钱去表决,下午又要表决了,对于标准化的问题,同时系统要认证,同时这也说明商务性的软件有很多的脆弱性。
最后我做个结论,我现在给大家简单地介绍一下在表决系统方面的技术以及研究工作,表决系统从技术角度来说是很大的挑战,我们现在处于一个过渡阶段,以前是纸张打孔卡的系统走到电子系统,现在还不是很清楚,有一个很清楚的迹象,加密可以起到很好的作用,可以使得界面更加清晰,整个东西模块化,容易测试、容易评估,但是今后发展的步骤还不是很清楚,我们要相信机器是好的,不需要书面的东西重新计数,靠电子的就行,又可以不影响表决者的隐私。怎么能够把这些做好还不是很清楚,因此希望搞这方面研究的学生选这方面的题目进行研究,这方面还有很多工作需要做。