量子力学能用来干什么呢?更该问的是它不能干什么!宏观物质的性质是由其微观结构决定的,所以量子力学解释了导电性、导热性、硬度、超导、超流、相变等日常可以见到的 多种物理现象。可以说,现代社会硕果累累的技术成就,几乎都与量子力学有关。今天,小编给大家来介绍一下量子信息的一些应用~
在概念演示方面,有量子钞票(一个有趣的防伪构想)和超密编码(一个量子比特如何相当于两个经典比特)。在量子计算方面,有因数分解(破解最常见的密码体系)和量子搜索(用途最广泛的量子算法)。在量子通信方面,有量子隐形传态(“传送术”,最科幻的应用)和量子密码。量子密码是目前唯一接近实用化的应用,但这一个就足够证明量子信息的重要性。
设想一家银行在钞票上印一个|0>和|+>的量子比特序列,除了银行外没有人知道这个序列是什么,那么这种钞票是无法伪造的。为什么呢?一个用户拿到一张钞票,与银行联系,银行告诉它量子比特的序列。然后他对|0>的位置在|0>和|1>的基组下测量,必然得到|0>,对|+>的位置在|+>和|->的基组下测量,必然得到|+>,这样就确认了钞票的真实性。
假如有一个人拿到这张真钞后企图复制一张伪钞,在银行不告诉他真实状态的情况下,他只能自己做测量来尝试知道哪些位置是|0>,哪些位置是|+>。但一旦他对|0>用了|+>和|->的基组,或者对|+>用了|0>和|1>的基组,就有一定的概率产生不应该有的|1>或|->。随着量子比特序列的长度增加,这个概率无限趋近于100%,所以造假者会以接近100%的几率暴露其面目。
有两个粒子处于前述的EPR态|β00> = (|00> + |11>)/√2,甲乙两人各持有一个粒子。现在甲想要传给乙一个两位的经典信息(即00、01、10或11这四个字符串中的一个),却只允许他传一个量子比特,他能做到吗?回答是:能。
做法是这样的。如果想传00,甲什么都不用做。如果想传01,甲就对手里的粒子做一个变换,使整个体系变成|β01> = (|00> - |11>)/√2。如果想传01,甲就对手里的粒子做另一个变换,使整个体系变成|β10> = (|01> + |10>)/√2。如果想传11,甲就对手里的粒子做另一个变换,使整个体系变成|β11> = (|01> - |10>)/√2。做完这个变换后,甲把手里的粒子交给乙,现在乙有了这两个粒子的整体。所有这四个态|β00>、|β01>、|β10>和|β11>都是EPR对,或者称为贝尔态。它们构成一个双粒子态的基组,称为贝尔基组。乙在贝尔基组下对两个粒子做一次测量,确认是哪一个EPR对,就知道了甲要传的是哪个二比特信息。
当然,这里用到了两个量子比特,但甲从来都没有和乙手里的粒子打交道。关键在于,仅仅对自己手里的粒子做一次操作,就能使双粒子状态从一个贝尔态变成另一个贝尔态。
一个量子比特潜在地具有很大的信息量。到底是多大呢?超密编码说明,在某种意义上,一个量子比特相当于两个经典比特,能够以一当二!
所谓因数分解,就是把一个合数分解成质因数的乘积,例如21 = 3 × 7。因数分解是数学中的经典难题。有人也许会问,这有什么难的?分解21当然轻而易举,但分解2^67 - 1 = 147,573,952,589,676,412,927呢?这是个18位数。直到1903年,人们才发现它是一个合数,等于193,707,721 × 761,838,257,287。
让我们想想,如何分解一个数字N。最容易想到的算法,是从2开始,一个一个地试验能否整除N,一直到N的平方根为止。如果N用二进制表示是个n位数,即N约等于2^n,那么尝试的次数大约就是2^(n/2)。位数n出现在指数上,这是非常糟糕的情况,因为指数增长是一种极快的增长,比n的任何多项式都更快。举个例子,2^(n/2)比n的10000次方增长得还要快。
在计算机科学中,把计算量指数增长的问题称为不可计算的,把计算量多项式增长的问题称为可计算的。当然,你可以寻找效率更高的算法。对于因数分解,“从2开始一个一个试”并不是最聪明的算法。在经典计算机的框架中,目前最好的算法叫做数域筛,计算量是exp[O(n^(1/3) log^(2/3)n)](在数学中,大写字母O后面跟一个式子,表示结果跟这个式子具有同等的数量级),虽然有些改进,但仍然是指数增长。如果计算机一秒做10^12次运算,那么分解一个300位的数字需要15万年,分解一个5000位的数字需要50亿年!
由此可以看出因数分解的一个特点:它的逆操作,即找两个质数并算出乘积,是非常容易的;而它本身,却是非常困难的。这种“易守难攻”的特性,使它在密码学中得到了重要的应用。现在世界上最常用的密码系统叫做RSA加密算法,这个名字是三位发明者李维斯特(Ron Rivest)、萨莫尔(Adi Shamir)和阿德曼(Leonard Adleman)的首字母缩写。RSA是一种公开密钥密码体系,它的密钥是对所有人公开的。为什么敢公开?因为解密需要知道这个密钥分解成哪两个质数,而发布者有信心别人在正常的时间段内解不开。
但是这种状况要被量子计算改变了。量子计算相对经典计算有潜在的巨大优势,只是实现这种优势需要聪明的算法设计,只有对极少数问题能够设计出这样的算法。而因数分解,就是这样的问题之一。1994年,肖尔(Peter Shor)发明了一种量子算法,把因数分解的计算量大幅减少到O(n^2 logn loglogn),指数式地加快!在这里我们只举两个例子表明它的威力。同样还是分解300位和5000位的数字,量子算法把所需时间从15万年减到不足1秒钟,从50亿年减到2分钟!
如此重大的变化,足以令密码人员陷入恐慌。但实际上还没有,人们仍然在淡定地用着RSA。为什么呢?因数分解的量子算法只是理论,真要实现它还需要很多努力。
如前所述,量子计算的实验非常难做。第一次真正用量子算法分解质因数是在2007年实现的,把15分解成3 × 5。有两个研究组同时做出了这个实验,一个是中国科学技术大学的潘建伟和陆朝阳等人,一个是澳大利亚布里斯班大学的A. G. White和B. P. Lanyon等人。此后各国科学家不断努力,使用种种办法推向前进。目前,密码人员仍然可以照常工作,但必须时常关心量子计算的进展。不定什么时候,全世界的密码体系就必须彻底更新换代了!
设想有一部杂乱无章的N个人名的花名册,其中的人名没有按照任何特别的顺序排列,你想在其中找到一个特定的名字,如“张三丰”,怎么办呢?在经典框架下,最好的算法就是老老实实地从头看到尾。如果运气好,第一个就找到了;运气不好,到最后一个即第N个才找到。平均而言,这需要N/2次操作。
1996年,格罗弗(LovKumar Grover)提出了一种全局搜索的量子算法。如前所述,量子计算机能在一次操作中遍历所有的条目。但如果我们只做一次操作然后去做测量,就只有1/N的概率得到正确结果,所以这没有用处。但如果我们做了一次操作后不做测量,再做另一个操作,就会使正确结果的概率增大一些。把这种操作重复√N次,就会使正确结果的概率达到一半。把整个过程再重复几次,就可以以非常接近100%的概率找到所需的条目。量子搜索付出的代价是结果不再是完全确定的,但好处是计算量从O(N)下降到了O(√N),而不确定程度可以随需求任意减少。
因子分解的量子算法对经典算法是指数级的改进,把不可计算变成了可计算。量子搜索对经典搜索却只是平方级的改进,没有发生质的变化,仍然是不可计算。但是这个改进已经非常大了。如果N等于一亿,这就是一万倍的节约。一类问题不可计算的意思,并不是完全不能计算,而是在问题的尺度大到一定程度后才算不动。量子搜索带来的计算量下降,可以使“在实际条件下能够计算”的问题范围大大增加。由于全局搜索是非常常见而重要的问题,所以量子搜索的重要性并不逊于量子因数分解,甚或犹有过之。
在科幻电影中,经常有把人从一个地方瞬间传送到另一个地方的镜头。如果说这种传送术有什么科学依据,那就是量子隐形传态。当然,实际上离传送人还很远,但现在已经能传送一个光子了,——真的很了不起!
量子隐形传态是1993年设计出来的一种实验方案,把粒子A的未知的量子态传输给远处的粒子B,让粒子B的状态变成粒子A最初的状态。请注意,传的是状态而不是粒子,两个粒子的空间位置都没有变化。好比A处有一辆汽车或一个人,不是把这辆汽车或这个人搬到B处,而是把B处本来就有的一堆汽车零件或原子组装成这辆汽车或这个人。
有人要问了:那岂不得到了相同的两辆汽车?两个人?!哪个是真正的自己呢?!在为伦理问题发愁前,一句话就可以消灭这个问题:不会出现相同的两个人。大自然早有安排,杜绝了这种可能性。当粒子B获得粒子A最初的状态时,粒子A的状态必然改变。任何时刻都只能有一个粒子处于目标状态,所以只是状态的移动,而不是复制。如果一定要说复制,也是一种破坏性的复制。这好比武侠小说中,前辈把功力传给后辈,传完后前辈就没有功力了,而不会同时出现两个高手。在宏观世界中复制一本书或一个电脑文件是很容易的,在量子力学中却不能复制一个粒子的状态,这是量子力学与经典力学的一个本质区别。
很多人认为隐形传态可以瞬间把人传到任意远的地方,而且超过光速,推翻相对论。很遗憾,这个理解又是错误的。量子力学中状态的变化确实是瞬时的,但是隐形传态的方案中有一步是把一个重要的信息(可以理解为一个密码)从A处传到B处,利用这个信息才能把B粒子的状态变成目标状态。这个信息需要用经典信道传送,例如打电话、发邮件,这一步的速度不能超过光速,所以整个隐形传态的速度也不能超过光速。
也有人以为隐形传态是先扫描出A处的物或人的状态,再在B处组装一个相同的物或人。事实也并非如此。如果要先知道目标状态,那还有什么意思?隐形传态是在不知道A粒子的状态的情况下,把B粒子变成这个状态!就像送快递,不知道送的是什么东西,但保证原原本本地送到。
总而言之,量子隐形传态是以不高于光速的速度、破坏性地把一个粒子的未知状态传输给另一个粒子。打个比方,用颜色表示状态,A粒子最初是红色的,通过隐形传态,我们让远处的B粒子变成红色,而A粒子同时变成了绿色。但是我们完全不需要知道A最初是什么颜色,无论A是什么颜色,这套方法都可以保证B变成A最初的颜色,同时A的颜色改变。
量子隐形传态的基本思路是这样:让第三个粒子C跟B组成EPR对,而C跟A离得很近,跟B离得很远。做一个操作,改变C的状态,于是B的状态也发生了相应的变化。这时A和C这个两粒子集合的状态有四种可能,即四个贝尔态。B的状态也相应地有四种可能,每一种可能都跟A最初的状态有一定程度的相似之处,可以通过某些量子力学的操作变成目标状态。对A和C的整体做一次测量,A和C就随机地突变到了四个贝尔态中的某一个上,相当于得到了一个两比特的字符串,00、01、10或11,B也突变到了相应的状态。把这个两比特的字符串通过经典的通讯手段(比如电话、光缆)告诉B那边的人,对B按照密码进行操作,就得到了A最初的状态。在某种意义上,可以把量子隐形传态理解为超密编码的逆操作,都是一个量子比特和两个经典比特的交换,区别只是交换的方向。
我们现在终于可以传送一个光子的两个自由度的完整状态了,那么离传人还有多远的距离呢?可以这样估算。12克碳原子是1摩尔,即6.023 × 10^23个。人的体重如果是60公斤,就大约有5000摩尔的原子,3 × 10^27个。描述一个原子的状态,我不知道要多少个自由度,姑且算作10个吧。那么要描述一个人,就需要10^28量级的自由度。我们刚刚从1进步到了2……所以,嗯,我们的征途是星辰大海!
这是迄今唯一接近实用化的量子信息应用。虽然只有这一个,但这一个就具有极高的军事和商业价值,足以证明各国对量子信息的大力投入是物有所值的。许多人把量子密码跟量子隐形传态混为一谈,其实它们完全是两回事,而且在实现的难度上相差甚远。在许多语境下,“量子通信”这个词指的就是量子密码,也就是量子保密通信。
目前最流行的密码体系是RSA,它的可靠性是以因数分解的困难性为基础的。量子密码的基本出发点与它不同,不是基于任何数学运算的困难性,而是基于物理原理。因此,量子计算的进步会使RSA岌岌可危,量子密码却不会被任何技术进步攻破。这么好的东西,原理究竟是什么呢?
其实很简单。制备若干个处于|β00> = (|00> + |11>)/√2态的EPR对,每一个EPR对都让甲乙两人(在文献中常称为Alice和Bob)各拿一个粒子。甲通过掷骰子产生一个序列,掷出正面时就在自己粒子的|0>和|1>基组中做测量,掷出反面时就在自己粒子的|+>和|->基组中做测量。乙通过掷骰子产生另一个序列,也是掷出正面时就在自己粒子的|0>和|1>基组中做测量,掷出反面时就在自己粒子的|+>和|->基组中做测量。请注意,(|00> + |11>)/√2 = (|++> + |-->)/√2,所以这个EPR对不但在测量粒子1的|0>和|1>态时必然使粒子2变成相同的状态,也在测量粒子1的|+>和|->态时必然使粒子2变成相同的状态。
掷完骰子,做完测量后,甲乙两人通过公开的经典信道把自己的骰子序列传输给对方。有些地方骰子序列不同,两人做的是不同基组下的测量,那就把这些测量结果扔掉,只留下那些相同基组下测量的结果。这样就得到一串0和1的序列。由于|β00>这个纠缠态的性质,两人的序列必然是完全相同的。而且这个序列还是完全随机的,在测量之前无法预测,每次重新生成也都会不同。这正是密码学中“一次性便笺”的思想。
为了应对可能的窃听者,甲乙两人在相同基组下测量的结果中又随机地挑一些公布,和对方的结果对比。一旦发现有一个不同的,就说明有人在窃听,因为窃听是一种测量,必然会改变系统的状态。随着对比的位数增多,窃听者会以趋近于100%的几率暴露无遗。
通过反窃听的检验后,两人把序列中剩下的部分作为密钥。这时他们可以放心,这个密钥没有任何别人知道。然后他们用任何经典的方法传输信息,电话也好,电子邮件也好,光缆也好,甚至平信,都可以。唯一的特别之处,只是用量子密钥对信息进行了加密,对方收到后用同一个量子密钥解密。
量子密码有多种实现方案或者称为协议,以上所述是其中的一种“EPR协议”。各种协议的基本思想是一样的,都是利用量子力学的内在随机性,在物理层面上排除被破解的可能性。如果说因数分解的量子算法是最强的矛,量子密码是最强的盾,那么请问,以子之矛攻子之盾,谁胜?答案是:盾胜!
有趣的是,研究量子密码的紧迫性跟量子计算的进展有关。等到可以破解RSA的量子计算机实用化时,量子密码必然成为各国的不二选择。
原文发布时间为:2017-12-26
本文作者:陶卿
本文来源:九州量子,如需转载请联系原作者。