量子加密有何不同
量子加密(Quantum cryptography),实际上的意思就是利用量子力学的特性来实施加密任务。传统的公开密钥加密,一般称为有条件的安全,而量子加密能做到无条件的安全。传统加密一般都是人为限制了窃密者的科技水平,或者说即便窃密者能破解密码,也需要很长时间,这样的信息已经没有时效性了。比如说,破解二战德军的战略信息需要几个月甚至几年时间,对于战争而言已经毫无意义了。但是当计算机速度足够快,比如说量子计算机,破解传统加密就不是什么难事了。而量子加密技术,即便是量子计算机普及,理论上也是无法破解的。
量子加密之所以可靠,主要是由量子力学的基本特性决定的。最重要的便是海森堡测不准原理,即人为测量量子通信的数据时,便会改变量子态。由此推导出的“不可克隆定理”(No-Cloning Theorem),即量子力学中对任意一个未知的量子态进行完全相同的复制的过程是不可实现的,因为复制的前提是测量,而测量一般会改变该量子的状态。
量子加密的原理
当下所谓的量子加密或者量子通信,和量子纠缠(quantum entanglement)没有半毛钱关系。想要达到三体人利用量子纠缠进行通信的水平,我们还有很长的路要走。当下所说的量子加密或者量子通信一般都是利用光子传播的偏振特性。
什么是偏振呢?学过双缝干涉实验就很容易理解了。光子在向前传播时,会在上下或者左右的方向上振动,也就是振动的方向垂直于前进的方向,这时候如果在光子前进的方向设置一块具有很小缝隙的挡板,这样偏振方向和缝隙方向一致时,光束就可以通过,反之就会被挡住。这样很就容易想到,发送上下垂直振动的光子可以代表0,左右振动的光子则代表1,不妨称之为A方案。同样可以把偏振光旋转45°,这样45°方向的偏振光就代表0,135°方向振动的光子代表1,不妨称之为B方案。到此,我们已能够最终靠A、B两套不同的方案发射0或者1这样的数值了。当然,接收方自然也就可通过A、B两套方案进行测量。
量子密钥分发
量子加密最著名的例子莫过于BB84协议,之所以叫这个名字,是因为该协议由Charles Bennett和Gilles Brassard于1984年提出的。这个协议能轻松实现量子密钥分发(Quantum key distribution, QKD),也就是利用量子通信完成通信双方的密码交换。根据这个协议的想法,通信的发送方,通过发送不同偏振方向的光子完成加密。
量子密钥分发具体怎么实现呢?
按照密码学的惯例,发送方一般称为Alice,接收方为Bob,窃听者Eve。以下便是量子密钥交换的一般过程。
Alice随机生成一段序列,比如011010101,然后为序列的每个值随机选择A、B方案中的一个发送光子,即量子比特(Qubits)。Alice只要记住这串随机序列,以及发送每个数值时使用的方案就可以了。
Bob随机使用A、B两套方案检测光子,并记录光信息到底是0还是1。
待所有量子比特传送完之后,Alice和Bob通过公开的方式来进行通话,Bob依次告诉Alice每一个量子比特的测量方式,不需要说明具体的测量值,Alice则只需要告诉Bob哪些量子比特测量的方法是正确的就可以了。
最后Bob自然就知道哪些量子比特测对了,Alice也知道Bob测对了哪些量子比特,于是两个人就能够正常的使用这些测对的信息作为双方的密码了。
如果Eve在信道上窃听信息,受限于海森堡测不准原理,Eve不可能同时使用A、B两套方案测量同一个量子比特,所以Eve就不可能复制Bob测得的信息。
那怎们知道有没有Eve在中间进行干扰呢?
以上的密钥交换过程不难发现,由于Bob是随机选择A、B方案测量Alice发送的数据,所以Bob选错方案的概率是1/2。另一方面,根据光的偏振特性,左右或者上下偏振的光子其实是能够最终靠45度或者135度的夹缝的,但是具体通过哪个角度的夹缝则完全是随机的。这样一来,由A方案发送的光子,用B方案测量时,测得的值就有1/2的概率是错误的。这样整体来看,Bob测得的数据应该有1/4是错误的,3/4是正确的。如果Eve在信道上窃听,信息就会变成原来的9/16。因此只要Bob和Alice核对部分数据,看一下正确率是否小于3/4就可以确定是否有人窃听了。
此外,Bob和Alice只要发现光子在幕布上的成像改变就知道有人的窃听了。原理其实很简单,Eve窃听光子传输,就相当于在双缝干涉实验时,在双缝前增加了探测器,这时候幕布上的明暗条纹就不见了。
还有更简单的办法,那就是核对原文,双方可以在解密的原文中随机选一些字符进行核对,只要核对无误,基本上就可以确定没有被窃听了,这可以从数学原理上证明。
小结
当然,量子密钥分发的安全性有一个大前提,那就是交换密钥的双方可以确认对方的身份,否则,如果出现一个第三者,伪装成通信双方的一方,这就会陷入中间人攻击的陷阱。关于中间人攻击,可以参看我的另一篇文章《中间人攻击,HTTPS也可以被碾压》。想到《复联4》中,美国队长回到过去,在电梯中说一句九头蛇万岁,便轻松拿走了权杖,其实这就是中间人攻击。
确认身份本身又该如何做到呢?是不是很无奈,好像讲了半天高等数学,突然问你如何证明1+1=2?不需要过多的担心,后面我会讲一下量子掷币(Quantum coin flipping),看密码学家如何使用量子来抛硬币。
最后,不知道你有没有发现,文中多次提到随机这个词,我们真的能做到随机吗?其实,所谓的随机,基本都是伪随机。为什么这么说呢?你不妨思考一下,你能真正随机的说一个100以内的正整数吗?真正的随机还需要到量子的世界去实现。随机是个很有趣的话题,以后有机会讲一下。