次私下会面,并生成一个密钥用于他们的通信。他们不能仅仅把这个密钥从一个人发送给另一个人——如果他们可以在密钥不被窃听的情况下做到这一点,那么他们也可以对他们的信息进行这样的处理,并完全免除加密。
对称系统的一个经典例子是一次性密钥。爱丽丝和鲍伯私下商定并同意以一个大的随机比特流作为他们的一次性密钥。然后,爱丽丝就可以发送一个比特给鲍伯,方法是从密钥中取出下一个未使用的比特,再从她的原始信息中取下另一个比特,并将二者组合起来:她原始的比特和密钥的比特要么全是0,要么全是1。如果全是0,那么她就给鲍伯发送一个0,否则就发送一个1(这种组合比特的方法被称为异或,类似于人们说的“非此即彼”的意思。异或在密码系统中是最常见的操作之一,以后要记住)。鲍伯用他自己的一次性密钥副本对来自爱丽丝的比特流进行异或操作来恢复原始信息。只要爱丽丝和鲍伯都没再从这个密钥中使用比特,它就是完全安全的,无法被任何计算能力所破解——如果密钥上的比特确实是随机的,如果密钥中没有哪部分被使用过一次以上,如果爱丽丝和鲍伯在使用比特时能够保持同步的话。
这是一种笨办法。爱丽丝和鲍伯必须先私下见面。他们必须生成尽可能多的比特密钥用于通信,而且必须提前完成。
一个更好的方法是使用各种各样对称的密钥密码,如数据加密标准(DES),它通常用来加密银行之间的电汇。在这个方案中,爱丽丝和鲍伯只需要秘密商定一个56比特的密钥,一旦他们拥有了密钥,就可以互相发送任意数量的比特。密钥中0和1的模式决定了加密一个信息时比特打乱并重组的方式,密钥可以是任何长度,加密和解密都使用这个相同的密钥。
DES曾经是一种非常安全的算法。如今,如果知道了信息的64个比特的话,人们可以构建专用计算机(已经公布了全部细节)来破解它(这是已知明文攻击——从选择的明文一步一步进行攻击,在这里,马洛里可以选择爱丽丝加密的一些比特)。DES破解机是一台并行计算机,如果你花更多的钱,造一台更大的机器,破解起来会更快。按照1996年的价格,100万美元的机器破解一个密钥平均需要5个小时;10万美元的机器则要花费一天。三个学识渊博的研究生在一个学期内就能建造出这种机器[为什么是三个?仅仅是因为在合理的分工下,一个人做超大规模集成电路(VLSI)设计,另一个人做板级设计,还有一个人做控制软件]。一旦建成,这台机器便可以破解任意数量的密钥——所以要么你有一个价值100万美元的密钥,要么你愿意出售破解密钥服务给所有人,每破解一个密钥收费100美元,这样你才能够建造这种机器(仅仅伪造一笔电汇就足够买下这台机器了)。
DES是一个已经失去效用的系统的例子。直到20世纪90年代前后,它都是一个伟大的方案。如今,仍在使用它的人们被建议使用一个叫作Triple DES [62] 的方案,在这个方案中,两个或三个密钥(无关紧要)被连续送入三台加密机器,使明文被加密三次(用三种不同的方式)之后再进行传送。鲍伯的机器正好相反。这种方法仍然相当安全。
有许多其他的对称加密方案,它们至少与DES一样安全,而且在软件中更容易使用——DES在硬件中使用比在通用计算机中使用要容易得多。其中一个便是名为IDEA的瑞士密码,但有许多加密方案可供选择。
但所有这些方案都要忍受希望沟通的各方必须先私下交换密钥这一问题的困扰。如果你是一家银行,可以使用一个值得信赖的快递服务,这显然不错,但是如果你只是想在给某人打电话或发电子邮件时,不希望信息被窃听的话,就很不方便。
然而,到了20世纪70年代,人们发明了公钥加密系统。迪菲和赫尔曼发明了一个,李维斯特、萨莫尔、阿德尔曼发明了另一个,称为RSA(取自他们三人名字的首字母)。公开密钥系统是一种不同类型的野兽,基于大素数的数学运算。总的来讲,其安全性建立在将一个足够大的数分解为组成它的素数的难度之上——这项工作吸引成千上万人进行了多年的研究,似乎非常棘手(对于传统计算机而言),但这并不代表它是不可能的。因此,公钥系统虽然构筑在坚实的基础上,但并不是一次性密钥的基石。
在公钥系统中,爱丽丝和鲍伯各自生成自己的一组密钥。每个密钥分为两半——一半公钥,一半密钥。爱丽丝和鲍伯可以在任何他们喜欢的地方公开公钥。例如,在《纽约时报》上,或在他们的网页上。他们尽可能保护私钥,从不向任何人透露。
为了给鲍伯发信息,爱丽丝首先要查看他的公钥。然后用他的公钥加密她的信息,发送给鲍伯。一旦完成了这些,她就再也不能解密密文——无论是用鲍伯的公钥,还是用爱丽丝的私钥和公钥都无法解密。而鲍伯则可以用他的私钥解密信息。
这个方案是不对称的——双方没有相同的密钥。主要的好处是,他们无须见面交换密钥,爱丽丝只需要鲍伯密
更多内容加载中...请稍候...
若您看到此段落,代表章节内容加载失败,请关闭浏览器的阅读模式、畅读模式、小说模式,以及关闭广告屏蔽功能,或复制网址到其他浏览器阅读!