密码学(cryptography)简单的说就是通过某种方式只能将信息传递给特定的接受者。
实现的手段基本上就是对要传递的信息实行加密 (encryption) 和解密 (decryption)
算法,从而使任何其它人没有办法获得原始信息。
密钥 (key) 指的是一串特定的参数,
发送信息的一方用密钥和原始信息进行加密运算得到密文 (cryptogram),接收方用密
钥和密文进行解密运算得到原始信息。
加密和解密的算法是公开的,密文的保密性依赖
于密钥的保密性。
密钥的保密性依赖于密钥的随机性和有足够的长度。
密钥分两类,一
类是对称密钥 (Symmetric key) ,发送和接收方用同样的密钥进行加密解密,比如DES (Data Encryption Standard) 算法;另一类是非对称密钥 (Asymmetric key) ,发送
和接收方用不同的密钥进行加密解密,发送方用公用密钥 (Public key) 加密,接收方
用私有密钥 (Private key) 解密。
两个密钥有一定的数学关系,但是很难从公用密钥
获得私有密钥,比如RSA算法采用的分解大数法。
一旦双方获得相应的密钥,密文就可
以在公共信道上传递而不必顾忌公共信道上可能存在的窃听者,因为窃听者没有密钥,
无法成功解密。
但是为了通信双方成功建立密钥,必须要有一个可靠和高度机密的信道
传递密钥。
然而从理论上说,任何经典的密钥传递 (key distribution) 都不能保证总
能察觉密钥是否被窃听。
因为经典的信息是无法区分的 (跟量子相比) ,窃听者可以读
取信息然后还原该信息,接收方无法知道中间是否发生过窃听。
非对称密钥的好处就在
于避免了密钥的传递,由于双方的密钥有一定的数学关系,但又不是用现有的计算能力
能够快速破解的,比如RSA的分解大数关系,所以达到保密的目的。
这种方法的缺陷在
于如果有一种比现有快很多的计算方法出现,就很容易获得私有密钥。
比如已经有人提
出如果量子计算机可以实现,采用量子算法可以大大加快分解大数的时间 (Peter Shor
at AT&T lab. 1994) 。
有没有绝对的保密呢?香农 (Shannon at Bell lab.) 在四十年代从理论上证明了如果
密钥的长度不小于密文,并且保证绝对随机,同时采用one-time-pad算法(简单的说就是密钥只能用一次),就没有办法破译,即使你有量子计算机也没有用。
但是这个算法在实
用上非常难实现,首先就是不能保证密钥传递的可靠性。
量子密码学 (Quantum Cryptography) 的优势就在于利用海森堡测不准原理 (Heisenberg uncertainty principle) 和量子纠缠(quantum entanglement)这些基本的量子原理使得
密钥可以绝对保密地传递。
量子密钥传递(Quantum Key Distribution:QKD) 是现在Quan- tum Cryptography的核心。
现在具体介绍QKD的实现方法。
最早的QKD协议由Bennett and Brassard于1984年提出,简称为"BB84"。
发送方Alice 和接收方Bob使用一个量子信道传递四种偏振光子,同时使用一个经典信道传递普
通信号。
窃听者Eve被允许随意窃听,也就是说可以随意测量量子信道里的光子的
偏振方向,同时听到任意经典信道里的信息,但是不能改变听到的信息。
首先
Alice产生并发送给Bob一串光子,这些光子被任意偏振在0, 45, 90 ,135度上。
然
后Bob测量接收到的光子的偏振方向。
根据量子力学,Bob只能区分正交的偏振方向
,比如0和90度,45和135度,但是不能区分所有方向。
因此整个过程可以用简单的
图示表示。
Alice发送给Bob的光子偏振方向如下:
| / - \ - / | |
Bob在不知道任何关于这些光子的信息下任意选择如下直角(rectilinear'+') 或对
角(diagonal'x') 坐标进行测量:
+ + x x + x x +
Bob的测量结果如下�
| - / \ - / \ |�
Bob在公开的经典信道告诉Alice他选择的测量坐标(直角或对角)但是不告诉测量结果,Alice则告诉他哪些测量坐标是正确的,在这个例子中1,4,5,6,8是正确的。
双方保留所有测量正确的结果并把偏振方向转变为比特0或1,从而构成了密钥。
在
没有窃听的情况下这种密钥保证了绝对的机密:
| \ - / |
1 1 0 0 1
接下来Alice和Bob测试是否有窃听。
在公共信道上双方比较并抛弃一段正确接收的
信息,如果比较结果显示有窃听存在,则放弃所有数据重新来。
根据测不准原理,
非对易的可观测量不能同时得到确定的结果,窃听者Eve无法同时在直角和对角两
个坐标下测量同一个光子的偏振方向,因此她没办法知道她所采用的坐标是否正确
,也就不能保证正确还原被测量的光子的偏振方向。
统计的结果就是有1/4的数据Bob接收到的是错误的。
基本原理就是这样的,实际的操作则是采用了奇偶校验实
现的,目的是减轻复杂度。
这个最早的协议很早就在实验上实现(IBM),一些实际
的问题包括理论上说必须做到单光子的产生和接收,否则Eve可以测量一个光子,
保持另一个光子的状态不变。
还有就是噪声以及如何保存密钥(也就是如何保存量
子态) 的问题,这里就不细说了。
这个协议不保证密钥不被窃听,但是可以保证有
窃听一定能被发现。
Ekert在1990年提出另一种QKD方案,利用量子纠缠和Bell原理。
在这种方案里一系列相关的粒子对被生成并被通信的双方分别接收其中之一。
常用的粒子对有EPR光
子对(Einstein-Podolsky-Rosen photons) ,EPR对是量子纠缠的一种,特点就是两
个光子最大化相关,一旦其中一个光子的偏振方向被测量, 另一个光子必定处于相
反的偏振方向。
而任何的测量都会破坏两个光子的相关性,因此窃听者Eve的窃听
必定会破坏EPR对的相关性,从而通信双方可以很容易用公开的经典信道比较得知
是否被窃听。
由于EPR对的非经典性(测量结果对另一个光子的影响在经典意义上是
瞬时实现的) ,现在关于EPR对还有很多的争论,我对这个问题也没有什么研究,
就不多说了。
在BB84的基础上,人们又发展了一些变种,比如Bennett在1992年在理论上证明了只需要两个非正交的量子态就可以实现QKD, 简称为B92。
QKD实验上的证明也搞得很多,但是离实用阶段还有很大距离。
理论上说虽然QKD是绝对保密的,但是实际应用中由于技术的实现问题,现在还不能证明它的绝对保密性。
量子密码学的前景如何很难预料,就象所有量子信息论(quantum information)
的其他分支一样,它们的可行性到现在都被大多数人质疑。
但是从物理学的角度看,把纯物理的量子理论和其它领域的结合是一个非常有意义的尝试,对于物理学本身
的发展有极大的帮助。
当然如果能够成功实现意义就更大了,量子理论直接进入人们的日常生活,可以算是一次堪和工业革命相比的又一次技术革命了。