到这一点,那么他们也可以对他们的信息进行这样的处理,并完全免除加密。
对称系统的一个经典例子是一次性密钥。爱丽丝和鲍伯私下商定并同意以一个大的随机比特流作为他们的一次性密钥。然后,爱丽丝就可以发送一个比特给鲍伯,方法是从密钥中取出下一个未使用的比特,再从她的原始信息中取下另一个比特,并将二者组合起来:她原始的比特和密钥的比特要么全是0,要么全是1。如果全是0,那么她就给鲍伯发送一个0,否则就发送一个1(这种组合比特的方法被称为异或,类似于人们说的“非此即彼”的意思。异或在密码系统中是最常见的操作之一,以后要记住)。鲍伯用他自己的一次性密钥副本对来自爱丽丝的比特流进行异或操作来恢复原始信息。只要爱丽丝和鲍伯都没再从这个密钥中使用比特,它就是完全安全的,无法被任何计算能力所破解——如果密钥上的比特确实是随机的,如果密钥中没有哪部分被使用过一次以上,如果爱丽丝和鲍伯在使用比特时能够保持同步的话。
这是一种笨办法。爱丽丝和鲍伯必须先私下见面。他们必须生成尽可能多的比特密钥用于通信,而且必须提前完成。
一个更好的方法是使用各种各样对称的密钥密码,如数据加密标准(DES),它通常用来加密银行之间的电汇。在这个方案中,爱丽丝和鲍伯只需要秘密商定一个56比特的密钥,一旦他们拥有了密钥,就可以互相发送任意数量的比特。密钥中0和1的模式决定了加密一个信息时比特打乱并重组的方式,密钥可以是任何长度,加密和解密都使用这个相同的密钥。
DES曾经是一种非常安全的算法。如今,如果知道了信息的64个比特的话,人们可以构建专用计算机(已经公布了全部细节)来破解它(这是已知明文攻击——从选择的明文一步一步进行攻击,在这里,马洛里可以选择爱丽丝加密的一些比特)。DES破解机是一台并行计算机,如果你花更多的钱,造一台更大的机器,破解起来会更快。按照1996年的价格,100万美元的机器破解一个密钥平均需要5个小时;10万美元的机器则要花费一天。三个学识渊博的研究生在一个学期内就能建造出这种机器[为什么是三个?仅仅是因为在合理的分工下,一个人做超大规模集成电路(VLSI)设计,另一个人做板级设计,还有一个人做控制软件]。一旦建成,这台机器便可以破解任意数量的密钥——所以要么你有一个价值100万美元的密钥,要么你愿意出售破解密钥服务给所有人,每破解一个密钥收费100美元,这样你才能