因特网的加密技术
Philip R. Zimmermann
电子邮件以及其他电子传输信息同数字式名片一样——它们都没有什么保密性。精心设计的加密系统能确保电子邮件这类信息传送的秘密性。
邮局传送信件颇费时日,但这至少能保证信件具有某种程度的保密性。另一方面,因特网传送电子邮件惊人快捷,但极易被电子窃客利用。提高此类传输的保密性的一条途径是将信息译成密码,也就是用复杂的方法将信息弄得除目标接受者以外的人无法搞懂信息的内容。
80年代以来,复杂算法的开发以及快速廉价的计算机硬件,使千百万普通个人计算机拥有者都可以享用功能强大的国防级的保密系统。最近,技术的进步有望使这类系统不断增强对付甚至是最先进的解密技术的能力。
走出阴影
40年前五角大楼对装入导弹和宇宙飞船微小专用电路的需求,推动了美国电子产业的发展。如今民用需求占主导地位,国防部就只能用为更庞大的消费市场开发的既成产品满足其大部分需求。加密技术同样如此。
到70年代中期为止,国家安全局(NSA)实质上一直垄断着美国的加密技术,该领域被蒙上了神秘的面纱。1976年,斯坦福大学的Whitield Dfffie和Martin E. Hellman以《加密技术的新方法》一文首次在公开文献中描述公开钥加密技术,从此使这一领域换了新颜。该文发表后,学术界和产业界涌现了一个充满活力的加密技术团体,发表了不断增多的论文,创立了一门成熟的学科。因特网的不断普及——和人们对其保密性的关注——只是强化了这一趋势。今天在世界各地的大学和私人部门工作的加密专家开发出了一些最好的密码和系统。事实上,国家安全局现在开始购买商业产品以满足自己对保密技术的部分需求。
Diffie和Hellman介绍公开钥加密技术为何具有如此重大的意义呢?在常规加密系统中,一套密码同时用于编码和解码。这种称为对称的系统要求通过安全的渠道传送密码——这一过程通常是不方便的。退一步说,如果存在这种安全渠道,为什么还要进行编码呢?这种局限性阻碍了加密技术的发展。
Diffie和Hellman消除了这种局限性。公开钥加密技术不需要传送密码的秘密手段就能使参与者进行交流。这种非对称系统依靠一对不同的但互补的密码进行工作。一组密码解开另一组密码编译的信息,但这一过程是不可逆的:编译信息的密码不能用来解译信息。因此,互补的密码之一(公开钥)就可以广泛传播,而另一密码(秘密钥)却仅由其所有者持有。当Bob想向Alice传递信息时,他就可用Alice的公开钥编译信息,然后Alice就可用她自己的秘密钥进行解译。
公开钥加密系统是基于这样的数学原理:从一个方向计算非常容易,而反过来就非常缓慢了。两种主要的公开钥算法是Dfffie—Hellman法(其变种有全国标准与技术研究所的数字签名标准、ElGamal法和椭圆曲线法)及RSA法(由麻省理工学院计算机科学家Ronald L. Rivest,Adi Shamir和Leonard M Adleman提出)。
前一种方法利用了离散对数。计算gx模P的结果比较简单:只要求出g的x状方。用大素数p除其得数,并取运算的余数。但是,给定g,P和gx模P的值,则不可能算出x(见《Scientific Ame'ican》1979年第8期)。
RSA系统则是基于因式分解的困难。两个大素数相乘极为简单,但要将其巨大的积还原为两个素数则是极端困难的问题(《Scientific American》1977年8月号)
公开钥加密技术的另一个优点是它可以确定信息的真实性,即接收者可以证明发出者的身份。当Bob向Alice发送信息时,他先用自己的保密钥对其编码,然后再用Alice的公开钥对信息进行再编译。而Alice在收到传送信息后,则倒过来完成上述过程。她先用自己的保密钥解译信息,然后再用Bob的公开钥解译信息。如果最后的文本是可读的,则Alice可以确信Bob的确写过这条信息。
当然,编码和解码都要进行大量的数学计算。但是,利用软件(如PGP)可以在PC上自动完成运算过程。有了软件包,Bob和Alice只要在计算机上按一下编码和解码,整个编码和解码过程就会自动地完成。
尽管具有这么多新颖之处,但公开钥加密技术仍然有两个严重的缺陷。首先,它的速度相对较慢,不适于编译大量信息。第二,也许是更严重的问题,公开钥保密技术有时会在信息中出现表现编码过程的方式。因而,这些方式可以从编码文本中分析出来,这就使公开钥技术易于被密码分析所破解。(加密术是研制密码的科学。密码分析研究如何破解它们,而密码学则是二者的总和。)
对称码的重任
因此,大量的编码任务,通常要用更快速和更安全的对称码来完成,而公开钥加密技术仅限于承担小规模的——但非常重要的——交换对称码的功能.特别地,Bob用快速和极为对称的码编译信息。然后必须将他所用的对称钥传送给Alice,因此他用Alice的公开钥对对称钥进行编码,并将结果附加到已经编码的信息中去。Alice用保密钥对对称钥进行解译,然后用这些结果解译Bob所传信息的剩余部分。
为确保真实性,Bob不能再利用公开钥加密技术直接对所传送的信息进行签名。相反,他要对信息设计一个随机的摘要(hash)或指纹。这类数学方法可用来将任意的输人浓缩成固定长度的摘要,通常为160比特。(比特是最基本的计算机数据单位,它用0或1来贮存两种可能的状态)。加密技术已设计出了十分复杂的随机摘要生成方法,如SHA一1、R1PEMD一160和MD5,这样,假冒者就会发现,从计算上来说,不可能设计出另一段能产生同样随机摘要的文章。换句话说,指纹的产生是极为独特的:两条不同的信息几乎肯定出现截然不同的摘要。
计算出信息的随机摘要之后,Bob就用他的保密钥对这些信息进行编码。然后把这一签名连同编码后的传送信息一起发送出去。Alice收到编码随机摘要后就用Bob的公开钥对其进行解译。然后Alice就可将解译结果同她在解译信息后自己所算出的随机摘要进行比较.如果相互匹配的话,则证明传送未被篡改且Bob是发送者。
对在因特网上传送的信息进仔编码的最常用的方法是将数据分成固定长度的数据块,每块长度通常为64或128比特,这样,编码一次就完成一块.所谓块密码通常是利用数学运算的多次迭代(具体次数则由具体算法确定)编译每个数据块:上一次选择输出值作为下一次迭代的输人值。每次迭代通常都要进行排序(将xtv变成tvx)和替换(将“tvx”变为“cb2”)。迭代时,一段密码帮助转换数据。
向块密码输入相同的文本块,就会出现编译后的数据块彼此完全相同的情形。为了防止出现任何这类块相同类型(这会使密码易遭破译),块算法经常使用链接方法。已被编码的数据块再循环回去帮助编译随后的数据块。实际上,编译文本的一个数据块依赖于先前的全部数据块。
块密码具有字长通常为56、128或256比特的对称钥。著名的有DES(数据编码标准)、3一DES、CAST、IDEA和Skipjack。块算法已成了保密技术研究的重点。
关键是密码
加密技术中最秘密的操作是产生密码钥。为了系统尽可能安全,密码钥应当是真正随机的、不会被破坏者预见的数字。这类数字不同于确定性的伪随机序列:该序列是计算机为游戏和模拟而通过算法产生的。真正的随机数只能从物质世界的环境“噪声”例如放射性衰变过程中产生。
如此高质量的随机性是难于从计算机中产生的.有种获得随机性的方法是测量每次人工键击间隔的时间(微秒为单位),这是不可能预见的.用这种方式获取的数据对直接产生密码而言仍不够随机;但是,通过随机摘要功能的作用,可增强其随机性.有趣的是,曾被加密专家证明唯一安全的密码是一次性码(OTP),其钥长与信息本身相同。在OTP中,用一个随机序列逐位对信息进行编码一—也就是说,钥的第34位来代替信息的第34位。这种钥必须是真正随机的。它不能是由确定的算法产生的伪随机序列:否则,密码就可能遭到破译.因其不实用性,OTP很少被运用:密码钥必须与信息一样长,必须通过安全渠道将它送给接受者。此外,它只能一次性使用;否则,破坏者就能破译信息。
很多人认为钥长是保密技术可靠性的决定因素,但是同等重要的标准是密码设计的质量举一个简单的替代暂码为例.所有的A变为W,所有的B变为K,所有C变为Q等等.字母表中字母的不同排列方式为26的阶乘(即26×25×24×…3×2×1).它大约等于2。这个不同组合的钥空间是相当大的.如果每一可能的钥都必须试一次的话.则需要巨大的计算机资源才能破解它。然而,当我还是一个孩子时,我一直仅用一支铅笔和一点稿纸就能破解这类密码文件。我只寻找最常用的字母并假定它可能是E,然后寻找次常用的字母并以T代之,以此类推。显然,尽管其钥空间很大,但这类密码是极为脆弱的。
然而,对于精心设计的加密系统,钥长的确与破解它的努力成正相关。对块密码来说,这种关系通常是呈指数性的。钥长每增加一位,那么破坏者要试遍所有密码,就要做加倍的工作。如果钥长加倍,则破译工作量就是原来的平方了。平均而言,破译128位的钥,需要做大约2127运算(用十进制表示则为1.7x1088)。
公开钥算法就不这么机密了。通常,它们具有低于指数但超过多项式的钥空间。这意味着钥长加倍大大增加了破解工作量:但这种工作量并未达到原破解工作量的平方。以RSA为倒,现代因式分解算法比简单地尝试一个大合数的所有可能的索因子优越得多.Diffie—Hellman算法也是亚指数的。为比较起见,破译3000位的RSA或Diffie—Hellman密码钥与破译128位的数据块密码钥所需工作量大致相同。
当然,块密码并非是无敌的。去年总部设在旧金山的电子先锋基金会制造了一台价值低于250,000美元的大规模专用并行机器,该机用时不到一个星期就穷尽了56位DES钥空间,从而破译了DES信息。
蛮干法非破译密码的唯一途径。密码分析家可以运用强有力的数学和统计学工具发现密码的任何缺陷,也许就是通过揭示编码文本的某些规律。根据对原信息(称为明文)和相应的编译过的传输信息密码文本)的知晓程度,可以将破译密码的企图分为三类。
在某些情形下,破译者要做的全部工作都集中在密码文本上:因此几乎没有什么东西可以帮助他们去猜测密码钥。就连设计很差的密码都能经受住这种单纯的密码文本破译。
但是,如果破译者哪怕知道信息的一部分一—例如文本以亲爱的Jones先生开头一—破译成功的机会就大大增加。最低限度,他们可以尝试不同的密码钥,直到找到代表明文中“Dear Mr.Jones”部分的密码钥为止。就连破译者只知道明文所使用的语种(如俄文、法文或COBOL),也能破译信息.例如,如果信息用的是英文:那么最常用的词可能是“the。为防止这种已知明文免遭破译,在编译之前,某些加密系统通过电子手段去掉明文中容易预见的模式,从而压缩信息。
一个破译者通常知道更多的东西:如果某人偷了一张包括密码硬件的灵巧卡,此窃贼也许就能向该卡呈示精心选择的数以10亿计的信息,并研究密码文本输出结果。这种选择明文的攻击容易破解设计不好的密码。另一个例子是公开钥密码系统。破译者可以写一条信息,并用公开钥(毕竟是公开的)对它进行编译,然后分析所得的密码文本。
最近,已开发出了两种非常有效的微分和线性密码分析方法,两种方法都已用于破译大量有名的块密码,并已表明,比用密码钥穷尽法破译DES快数百到数千倍。
Technion以色列理工学院的Shamir和Eli Biham介绍了一种微分密码分析术。利用该技术时,把具有精心选择的差异的多对明文信息进仔编译,以发现相应的具有一定程度的差异性的密码文本对。如果发现了这样一对密码文本,它就将揭示一些与钥有关的信息。三菱电气公司的Mitsuru Matsui开发出了线性密码分析技术。该技术探寻明文和密码钥间及密码文本和密码钥间的相关性:存在相关性的情形略多于不存在相关性的情形。然后收集大量已知的明文一密码文本对的统计资料,从而找出能够暴露密码钥线索的缺陷。
提防中间人
尽管功能强大,但密码分析技术通常要进行大量费力的计算。如果不试图破译密码,而攻击该密码的协定或执行者,则常常容易得多。
一种潜在的威胁就是中间人的破坏,这也是公开钥保密系统最严重的薄弱环节。当Bob打算给Alice发送一条信息时,他并不知道Cindy试图模仿Alice。如果Cindy能诱使Bob使用她的公开钥而不是A1ice的公开钥,她就能解译Bob传送的信息。
对Bob来说,防止此类破坏的唯一途径是,以某种方式确认Alice的公开钥的确是Alice的。公开钥加密系统中精心设计的执行方式的大多数复杂功能都是针对这一特定弱点的。一种船决方式是要求值得信任的第三方对密码钥进行证明和签字。但此法要求解决下述重大的并且存在政治争议的问题:密码是否应当通过政府当局的严格证明?或者以分散的方式通过不同的团体(包括私人公司和个人)对此予以证明?是否允许人们自己选择何人签字的密码为可靠?事实上,这个问题极为重大,我完全可以为此写一大篇文章。
随着密码破译技术的发展,更先进的加密技术的算法也改进了。最近,国家标准与技术研究所已征求设计一种新型块密码即高级编码标准(AES)以取代DES。这意味着DES的使用寿命已经结束,主要原因是其56位钥和64位块存在太短的缺点。AES已在加密技术领域引起了很大的轰动,将主要使用128位、192位或256位钥来编译12B位数据块数据。
良好的AES将满足几方面的要求。它的钥长和块长多样化:密码产生、编译、船译的效率高,特别是在使用32位和和8位处理机(例如在灵巧卡中)以及其它硬件时:在从卫星通讯到高清晰度电视的众多应用领域都表现出良好性能。
AES的几个候选方案设计得极好。它们利用了研究块码20多年的加密技术专家的经验,包括如何对抗线性和微分密码分析技术的知识。
在所提供的15个方案中,我认为有几个是更可靠的编译标准。MARS吸取了IBM公司原DES研究组的经验。使用两种极不相同的结构编译迭代。IBM加密技术专家宣称,这种综合方法将会取得比同类密码更理想的安全性。CAST一256将先前的CAST结构扩展为256位钥和128位块.从数学上看,Twofish比它的前身Blowfish要严密得多。Serpent采用了不寻常的并行设计,使它和DES一样快速。由于建码时间短,密码的使用就象随机摘要功能那样有效。
未来揭谜
无论选择哪个候选方案,AES都将进一步打破加密技术专家和密码分析专家齐头并进的竞赛格局,使之向着有利于加密专家方面倾斜。今天,最好的加密系统已超越了已知最好的密码分析方法。当然,可以想象,近几年内就会开发出更强有力的新型密码破译技术。即使如此,许多密码专家断言,密码制造者和破译者之间的差距将会扩大。
我赞成上述观点,部分原因是:学术界和私人部门的加密技术团体活跃,它已经成长和成熟起来,足以同该领域的军事技术相媲美。Skipjack码的解密为此提供了证据,此码是国家保密局(NSA)为Clipper芯片的保密而开发的。学术界密码专家Technion的Biham提出了一种观点,认为上述系统的算法并不太严谨,安全性也仅比学术界的最好设计好一点点。这表明保密技术一—也象因特网本身那样一一已逐渐走出了军事阴影区,而步入了自由市场的明媚天地。
【王钟 译 郭凯声 校】
请 登录 发表评论