9.2 量子密码学

我们第8章中讨论的大部分密码学工具的安全性都依赖于一个假设,即因数分解是一个计算上困难的问题。任何人只要口袋里装着量子计算机,就能用肖尔的算法把密钥分解因数进而破解这些密码。虽然现在还没有装在口袋里的量子计算机,但将来有可能出现。密码学家可以通过设计基于其他困难问题的通信协议来设法绕过量子攻击,而这些问题必须缺乏量子计算机能利用的良好代数结构。量子学术界则为我们提供了另一个解决方案,即基于量子力学的密码学。

我们对于复制计算机数据这件事已经习以为常了。差不多每一个计算平台都会提供复制和粘贴功能。我们可以把文件的多个副本放在不同目录下或不同的机器上。我们能把数据备份到硬盘或是“云端”。这带来的麻烦是,信息的副本太多了,以至于很难彻底删除某些个人文件或电子邮件,并确保其他的地方不留下相应的副本。

与之相反,量子比特不能被复制。复制一个量子比特就需要观察它,而无论以何种受限的方式来观察,都将导致量子比特转变成普通的比特。乔治想把一个量子比特递送给哈利。如果埃里克在途中试图复制或读取,那个比特将变成一个普通的比特。当然这本身并不构成一个发送秘密消息的方式,毕竟消息接收者哈利也必须要读取这个比特,并导致它的性质改变。

1979年,来自蒙特利尔大学的吉尔斯·布拉萨德在波多黎各参加了IEEE计算机科学基础会议(Foundations of Computer Science conference),该会议是理论计算机科学界的主要会议之一。IBM的查理·贝内特找到了在海滩游泳的吉尔斯,这次海边相会开启了两位科学家一段令人惊叹的科研合作,其工作成果包括使用量子比特来创造理论上不可破译的密码的方法。贝内特和布拉萨德发明的方法通过混合使用经典和量子加密技术,既能让乔治和哈利成功地传输一把密钥以供将来加密消息,又能侦测到该密钥是否已被监听者截获,那样的话他们可以再试一次。

这个通信协议也有局限性。为处理可能出现的小错误,不仅要增加所需的量子比特的个数,也让监听者埃丝特有机可乘,有可能不被察觉地做些手脚。人们又研发了一系列更复杂的通信协议来应对这些新问题。

和量子计算不一样,贝内特–布拉萨德协议不需要量子达到彼此纠缠的状态,而且已经实现了可以实际运转的中等规模的量子加密系统。洛斯阿拉莫斯国家实验室的研究者已成功地通过148千米长的光缆发送消息。还有人通过大气在加那利群岛的两个岛屿间发送了信息,距离也将近145千米。在不远的将来,我们将能用卫星来发送使用量子技术的不可破译的密码。

那我们为什么不为所有的秘密通信需求应用量子密码学呢?量子密码技术仍处于实验期,十分昂贵、带宽有限而且容易出错。密码系统的漏洞通常不在于使用的加密方案能够被破解,而在于实际的执行操作中的薄弱环节。如果量子通信协议投入实际应用,其操作安全性很可能和经典方法一样差,甚至有可能更差。另外,目前没有已知的方法能让量子密码通过互联网传输,因为信息通过互联网从源头传输到目的地的过程中要经过多次路由的转发。最重要的是,我们很可能无法在未来较短时期内看到能解决因数分解问题的计算机,无论是量子计算机或是其他的计算机。目前所用的密码在很长一段时期内都将是安全的。