【有一说一·量子系列科普之二】量子保密通信——我们是怎么用量子的方式进行安全的信息传输的
https://v.qq.com/txp/iframe/player.html?vid=x1418o3w3n6&width=500&height=375&auto=0
非常感谢大家来听我们的报告,我将主要介绍一下量子通信,或者叫做量子密钥分发。我们的主要工作是量子信息,而量子信息这个学科里面,量子通信是现在目前最实用化,已经推向商用阶段的一个学科。下面我将介绍一下量子通信的基本原理是什么样子的。
古代的保密手段
量子通信最主要的应用是做保密通信,保密通信这件事情最开始源于战争,在古时候打仗的时候,在外面的将军想向皇帝去传递一个信息,比如说要增兵或调遣,他不会希望敌人知道这个事情。到了我们现在这个时代,我们的军事、政府间传递信息,我们的金融、银行,我们各个大公司间传输信息的时候,都需要保证信息传递是安全的。如果说这个信息泄露了,或被人操纵了,就可能会造成很严重的结果。比如在转钱或取钱的时候,别人窃听了你的密码,那未来你的钱没准就被别人转走了。
我们的时代是一个信息技术的时代,我们生活中信息流无处不在,比如说我们手机、电脑,我们实际上已经无处不在地应用这种信息安全的概念。我们的手机里面,我们的电脑里面基础协议,已经使用了经典信息加密的手段。很快我们要介绍经典加密手段跟我们说的的量子手段有什么区别,它们都是适用于什么条件。
首先说一下加密,加密是一个古老的艺术。之所以是艺术,是因为古代的加密手段和现代的加密手段基础是不一样的。古代的时候是怎么做加密的呢,比如说在西方,一个很重要的加密手段是凯撒加密法。比如英文来,是由26个字母组成的,那么使用这个加密法,我们可以把每个字母往后推三位,这个时候的话A就变成D,B就变成E,C就变成F。假设我跟你约定好,用这样的方法去加密,只有我们知道我们是怎么做的,这样所有的文字经过这样一串加密以后,就只有我们看得懂这个信息了。
这个加密的手段有很多变种,比如说,是个很好玩的方法,他们的做法就是,去捡一个树枝,然后拿一个纸在上面缠好多圈,然后把信息从左往右去写,这样纸上的信息就完全混乱了。这就是一个凯撒密码的一个变种,它本质上和这种最开始的方法是一样的,就是用了一个基本的字母替换的办法。
延伸阅读
这种密码我们看上去是很安全的,只有我跟你都知道这个方法才能破解,但是后来尤其是到近代,一八几几年、一九几几年的时候,我们发现并不是这样子的。比如说英文的单词里,每个字母出现的频率是不一样的,我们可以去用高频字母分析的办法,去猜测到底传达什么信息。另一方面,当我们说加密,如果依靠于只有我跟你知道具体的加密方法来保证安全的,可能存在一个很大的问题:当需要跟很多人进行加密去,比如说在政府里分发消息的时候,你可能面向的人是成百上千,甚至说几十万、几百万的人,如果说我们依靠于这种加密方法的安全性,只要有一个人泄露了加密的方法,那么整个系统就不再安全了。
其实在中国古代也有类似的加密方法,比如这个竹简上面,使用阴文和阳书进行加密。这实际上也是一种特殊的替换办法。就是我们本身写的是汉字,但是在分发信息的时候就把这个汉字替换成阴文,只用一个符号来表示。不知道这个符号的人是看不懂这个信息的。并且他们也会把这个一份书信拆成几份,通过不同的人传递给接收的这个人,只有把所有信息拼起来,才能把信息恢复起来。这种方法,实际上已经开始有现代加密的这种概念了。
除此之外,还很多方法进行加密。比如说到近代的这种加密机,使用机器加密方法,比如在中国古代我们会通过一些印章,一些特定的指代的方式来去做加密等等。在我们现在的人看来这是一种非常神奇的艺术,大家有各种各样很好的方法去做加密。但这种加密主要是依赖于具体加密方式,而现在加密方法所依赖的是密钥的安全性。比如说打开手机我们需要输入一个密码,银行卡取钱需要输入一个密码,我们现在的一切加密依赖的是密码,依赖一个短的密码去加密一长串信息。
现代加密方法
我们简单介绍一下现代加密方法,现代加密的方式有对称加密方式和非对称加密方式,这些加密方式依赖于近代的数学发展。例如非对称加密利用了运算复杂度单向性。这是说有些问题我们从一个方向向另外一个方向做运算是很容易的,但是反过来做是很难的。比如说RSA的基础是用素数乘法与质因数分解来做的。我们做一些计算吧:看最简单的这个3×5是多少,非常简单对吧。然后我们看,我们去做质因数分解,我们说21 等于几乘以几?也是很简单对不。好,稍微复杂一点,两位数的乘法,直接算一下可以算出来是一个什么样的结果。
但是如果说我给你另外一个数字去做质因数分解。其实我们这两个数字很接近,但是我们去算的话该怎么算呢?现在我们没有很好的算法去计算质因数分解,我们能做的只有用暴力破解的办法,也就是说把我现在所知道的素数,从小到大一个一个排出来,1357,一个一个把它放进去试,一直试到某一个值能把它真正分解开,这个时候我们才知道这个值是多少。
但是反过来说如果给你一个值,告诉你4183等于47乘另外一个数,那就很容易计算,用除法就可以了。这个运算复杂度是非常不一样的,做乘法是做一个很简单的运算就能够得到,但是如果我们去做一个质因数分解,即使我告诉你这个数是某两个数的乘积,去做质因数分解也是非常困难的。
这个数几年是可以破解的,就是说我们可以用计算机已经可以去分解768位的一个数了。这也就说明我们需要最小的密钥长度已经要达到1024位,到现在我们可能需要2048位的RSA才能安全。
RSA算法不完全是用我们刚才说的乘法来做的,但是它的安全性是基于我们把一个大数分解成两个质数乘积是困难的这个问题。这是我们现代的加密手段的基础,现代计算机里面,所有的软件之间进行加密,我们所有的网络通信之间需要进行加密的时候,我们都是用的类似的方法。
量子的算法
而我们现在说要用量子的方法进行加密,为什么要用量子的方法呢? 这是因为我们有了实现量子计算机的可能性,开始有人提出来量子的算法进行更高效的运算。就像刚才报告里面说到,量子是有叠加性质的,在量子的计算过程中,实际上我们是通过它的叠加来完成计算的。
我们刚才说质因数分解只能说一个但如果我们有量子计算机的话,其实它去做一个质因数分解或者做一个乘法,它的运算量是差不多的。如果可以做大数的质因数分解,就意味着这种基础的RSA算法不再安全。因为可以去分解一个大的数的话,我们就可以通过RSA的公钥,去获得它的私钥,然后通过私钥再去解密。
光的偏振
我们做通信,尤其是做量子通信,主要打交道的是光。我们说光是有波动性、光是有粒子性,这是光的基本的性质。但是在我们真正用到的时候,考虑的时候我们考虑的是什么呢?
比如说光是有偏振的,我们说这是一个基矢,这个方向我们叫做水平方向,这个方向我们叫竖直方向,这个方向是45度方向,这个是负45度的方向。这是光的不同偏振,偏振的意思其实偏振就是电磁波的电矢量的振动方向。
我们现在说有不同的方向可以去选择,这样子水平竖直这两个方向叫做一组基矢,这两个方向是另外一组基矢。这组基矢实际上就是水平竖直方向的一个叠加态。那我们可以做的是什么呢,我们中间那个叫做一个光的偏振分束器,我们用偏振分束器就可以测量光的偏振方向。
比如说水平偏振的光经过偏振分束器以后,它就直接透过去了,如果是一个竖直偏振的光,它就会反射回去。如果是正负45度的光,我们用正负45度的偏振分束器测量。正45度的透过去了,然后负45度的光它会反射过去,这是我们光学里面最基本的器件。
我们考虑一个稍微特别点的情况,我们刚才说45度是我们的水平和垂直的叠加态,如果说一个45度的光,经过一个水平竖直的偏振分束器会发生什么呢?实际上它透过去和反射过去都有可能,并且如果说它透过去了,它就会变成水平偏振的光,如果说它反射了,它就变成竖直偏振的光,这就是我们所说的坍缩的过程。那么一个量子态经过测量,坍缩成它测量的一个基矢下面的一个量子态,并且如果不是在这个基矢下准备的态的话,那就有一定的概率坍缩成不同的态。
延伸阅读
我们光具有量子性质,量子性质就导致一些特殊性质,比如说我们说光最小的能量单位是光子,像我们刚才说的一个一个光子,一束强光可以分成两半,可以继续分、继续分,但是光不是无限可分的,光可以分成的最小的单位就是一个光量子,分成一个光子以后,再用分束器继续分,它要么透过去要么反过来,不会变成更小的两份。
光子还有一个性质,一个光子是不能复制的,我们最小的光子携带了我们的偏振信息,这些信息是可以测量,可以操作,但是不可以复制。我们刚才说,如果这个光子是在水平竖直方向准备的,那么正负45度这组基矢下面测量的时候,它会投影到这组基矢上面,并且变成这组基矢下的某一个态。
量子通信协议
有刚才这些准备基础,我们就可以简单地看一下我们最基础的量子通信协议是怎么工作的。在我们量子通信协议里面,我们这边有一个光源,我们准备了几种不同的量子态,比如说我们准备了水平竖直,它的数据是0或者1,比如说我们准备了负45度和正45度的态,它的数据是0和1,我们在接收方准备了两组不同的基矢,水平竖直或正负45度的基矢去探测。
下面我们看看这个协议是怎么工作的,比如说我们准备了一个45度的光子,我们这个光子代表的数字是1。假如说我们在接收方用的是水平竖直的基矢去测量,按照我刚才说的,这两种基矢不一样,这组基矢测量的结果有可能是0有可能是1,也就是说它可能透过去,也有可能反射回来。
假设我们这次测的是0,我们这两边发送和接收两边,把基矢公布出来看一看,发现他们不一样,这次的结果就丢掉。假如下次我们准备了一个竖直的量子态,我们接收方正好用水平竖直的这种基矢去测了,这个时候我们发现它一个竖直的态在一个水平竖直的基矢上,投影结果一定是竖直,它是百分之百投影过去的,这次我们的这个态准备是正确的,我们保留下来。
下次我们准备了一个水平的量子态,我们测量的时候,测量选择一个正负45度的基矢去测量,假如测量结果是1,但是我们公布基矢的时候发现这两组基矢不一样,我们就把这个结果丢掉。就是这样,我们在发送方随机选择四组不同的量子态,在接收方随机选择两个不同的基矢进行测量,像刚才那样进行下去,就可以不断地得到新的密钥。像刚才那样不停地去做比对,把基矢相同的态留下来,基矢不同的态丢掉。我们就可以得到一串原始密钥,我们再去做各种各样的后处理,才能得到最终的密钥。
量子通信的安全性
安全性来源于什么呢,最开始我们说我们准备的基矢和测量的基矢只有相同的时候,我们才能得到量子态的信息,如果态和基矢不一样的话,它会随机地坍缩到某一个量子态上面。假如说在我们发送方和接收方中间有一个人想去窃听,他也像接收方一样去做了测量,他测量之后的话,这个态可能已经坍缩到了错误的基矢上,再把这个结果发送给接收方之后,即使接收方用正确的基矢去测量,这个态有一半的概率会出错,我们根据出错的比例,就可以去检测到底中间有没有人去对这个态进行测量。
我们刚才已经得到了一串密钥的结果,我们真正用的时候已经是一个经典的信息论的一个部分。介绍一下最简单的二进制的加法,就是二元加法操作,0+0=0,0+1=1,1+0=1,最后1+1=0,因为我们假设二进制操作里面只有0和1。在计算机里面所有的东西最终都是以二进制循环来保存的,包括任何的信息、包括密钥等等。假如我们对a这个字母进行加密,我们去看一看电脑里保存实际上是这样子。
我们假设现在产生一段密钥,是底下这个00111001,一串密码,去做一次一密加密的时候,我们就把它们做异或,就可以得到加密的结果。一次一密这件事情是是无条件安全的。也就是说如果说有一个人想窃听,他除了自己去猜一个数,碰巧这个数跟我们发送和接收信息一样不一样,不会有任何其他办法获得信息。而随便猜一个东西没任何意义的,我现在猜你们手机里面有什么东西,我可以猜对也可以猜错,但是跟你们传输的信息其实是没有任何关系的。
我们的量子通信解决的最重要的问题就是说怎么样安全分发一串密码,经典信息在之后帮助我们去做更进一步的应用,通过这些密码来去对信息加密,并且我们可以去做计算,去保证我们加密的安全性。我们刚才说的现代密码体系,它的安全性是基于计算复杂度,像刚才我们说质因数分解,或类似于这样的复杂计算问题。然后我们量子密码,它的安全性是基于量子物理原理,也就是如果说没有量子力学不能解释的现象出现,那么量子密码就是安全的。
实际应用
现在这个时间,我们的量子密码已经开始有一部分产品,我们可以在几十公里的地方设置一个中继,就可以去在很远的距离上进行密钥分发,并且我们可以通过密钥分发之后,去支持一些更高级别的应用,去支持一些信息加密等等方案。这是我们规划的示意图,我们可以在北京到上海之间进行密钥分发。量子信道的要求其实和经典光纤信道非常相似,所以我们可以利用我们现在的光纤网络,来做量子的密钥分发。
但量子信号本身非常脆弱,所以我们会需要额外做一些处理。如果想在更远的地方,比如乌鲁木齐做密钥分发,那我们要通过卫星和光纤网络整体的互连,才能完成。下一个报告里面,曹原老师会介绍我们自由空间量子通信的一些进展。以上就是量子通信的最基本的介绍,谢谢大家。
上期回顾
墨子沙龙
一起分享科学世界的点滴