他的私钥解密信息。
这个方案是不对称的——双方没有相同的密钥。主要的好处是,他们无须见面交换密钥,爱丽丝只需要鲍伯密钥的公共部分,反之亦然。
此外,爱丽丝可以签署一条信息,以证明其真实性。毕竟,鲍伯有理由相信马洛里已经伪造了一条信息给他——因为马洛里只需要查看鲍伯的公钥来加密一条信息即可,因而马洛里可以很容易地伪造一条声称是来自爱丽丝的信息(尽管只有鲍伯可以阅读)。为了防止这种情况,爱丽丝首先用她的私钥加密信息,再用鲍伯的公钥加密信息,最后把结果发送给鲍伯。鲍伯用他的私钥解密信息,然后再用爱丽丝的公钥解密。如果他没得到无用的数据,那么他便明白只有知道爱丽丝私钥的人才能发送这条信息(爱丽丝经常只加密她信息的一个密码散列[63],这是一种概括,但我们可以忽略这一细节)。
公钥系统有许多伟大的特性,但速度不是其中之一。所以,它们常常与对称系统结合使用。
爱丽丝生成一串被称为会话密钥的随机比特,她将其用作与鲍伯进行通信(只有一次!)的密钥。然后,她使用公钥系统加密这个密钥(缓慢地),发送给鲍伯。再然后,她用这个有些像3DES或IDEA的密钥来加密她信息的主要部分(快速地),她知道鲍伯可以用他自己的私钥解密会话密钥,然后使用会话密钥解密信息。
互联网上流行的一种被称为PGP的通信包,就是使用的这个方案:RSA加密会话密钥,IDEA加密信息(还有许多其他的安全措施来防止存储的密钥的无意泄露、管理密钥的集合等)。
像DES一样的对称系统,以及像RSA一样的公钥系统中使用的算法有一个有趣又极为重要的特性:将使用的密钥长度加倍通常只会使加密或解密的时间略微延长一点,但却让破解密钥的难度以天文数字般增加(从技术上来讲,加密时间通常是n2,n是密钥的长度,但破解密钥的时间经常上升到2n,它上升得更快——这就是所谓的多项式增长和指数增长)。这意味着,当使用传统计算机时(换言之,除非算法突破,我们稍后详述),爱丽丝和鲍伯可以轻而易举地保持对伊芙和马洛里的领先,方法是随着计算机计算速度的加快,慢慢增加密钥长度。这样做可以让他们海量地增加伊芙和马洛里的工作量,而自己的工作量却不会增加很多。
使用对称和公钥加密系统的这些基本技术,我们可以制造出各种各样的产品。一个重要的应用是为通信(和