20世纪60年代至70年代,
人们发现能耗会导致计算机中的芯片发热,极大地影响了芯片的集成度,从而限制了计算机的运行速度。研究发现,
能耗来源于计算过程中的不可逆操作。那么,是否计算过程必须要用不可逆操作才能完成呢?问题的答案是
:所有经典计算机都可以找到一种对应的可逆计算机,而且不影响运算能力。既然计算机中的每一步操作都可以改造为可逆操作,那么在量子
力学中,它就可以用一个
幺正变换来表示。早期量子计算机,实际上是用量子力学语言描述的经典计算机,并没有用到量子力学的本质特性,
如量子态的叠加性和相干性。在经典计算机中,基本信息单位为
比特,
运算对象是各种比特序列。与此类似,在量子计算机中,基本信息单位是
量子比特,运算对象是量子比特序列。
所不同的是,量子比特序列不但可以处于各种正交态的叠加态上,而且还可以处于纠缠态上。这
些特殊的量子态,不仅提供了量子并行计算的可能,而且还将带来许多奇妙的性质。与经典计算机不同,量子计算机可以做任意的
幺正变换,在得到输出态后,进行
测量得出计算结果。因此,量子计算对经典计算作了极大的扩充,在数学形式上,经典计算可看作是一类特殊的量子计算。量子计算机对每一个叠加分量进行变换,所有这些变换同时完成,并按一定的概率幅叠加起来,给出结果,这种计算称作
量子并行计算。除了进行并行计算外,量子计算机的另一重要用途是
模拟量子系统,这项工作是经典计算机无法胜任的。
随着计算机科学的发展,史蒂芬·威斯纳在1969年最早提出“基于量子力学的计算设备”。而关于“基于量子力学的信息处理”的最早文章则是由亚历山大·豪勒夫(1973)、帕帕拉维斯基(1975)、罗马·印戈登(1976)和尤里·马尼(1980)年发表。史蒂芬·威斯纳的文章发表于1983年。1980年代一系列的研究使得量子计算机的理论变得丰富起来。1982年,理查德·费曼在一个著名的演讲中提出利用量子体系实现通用计算的想法。紧接着1985年大卫·杜斯提出了量子图灵机模型。人们研究量子计算机最初很重要的一个出发点是探索通用计算机的计算极限。当使用计算机模拟量子现象时,因为庞大的希尔伯特空间而数据量也变得庞大。一个完好的模拟所需的运算时间则变得相当可观,甚至是不切实际的天文数字。理查德·费曼当时就想到如果用量子系统所构成的计算机来模拟量子现象则运算时间可大幅度减少,从而量子计算机的概念诞生。
算法理论
经典算法
量子计算机在1980年代多处于理论推导状态。1994年彼得·秀尔(Peter Shor)提出量子质因子分解算法后,因其对于通行于银行及网络等处的RSA加密算法可以破解而构成威胁之后,量子计算机变成了热门的话题,除了理论之外,也有不少学者着力于利用各种量子系统来实现量子计算机。
半导体靠控制集成电路来记录及运算信息,量子计算机则希望控制原子或小分子的状态,记录和运算信息。 1994年,贝尔实验室的专家彼得·秀尔(Peter Shor)证明量子计算机能做出离散对数运算,而且速度远胜传统计算机。因为量子不像半导体只能记录0与1,可以同时表示多种状态。如果把半导体比成单一乐器,量子计算机就像交响乐团,一次运算可以处理多种不同状况,因此,一个40比特的量子计算机,就能在很短时间内解开1024位计算机花上数十年解决的问题。
通用计算
量子计算机,顾名思义,就是实现量子计算的机器。是一种使用量子逻辑进行通用计算的设备。不同于电子计算机(或称传统电脑),量子计算用来存储数据的对象是量子比特,它使用量子算法来进行数据操作。
要说清楚量子计算,首先看经典计算机。经典计算机从物理上可以被描述为对输入信号序列按一定
算法进行变换的机器,其算法由计算机的内部逻辑电路来实现。
1.其输入态和输出态都是
经典信号,用
量子力学的语言来描述,也即是:其输入态和输出态都是
某一力学量的本征态。如输入
二进制序列0110110,用量子记号,即|0110110>。所有的输入态均相互正交。对经典计算机不可能输入如下
叠加态:C1|0110110 >+ C2|1001001>。
2.经典计算机内部的每一步变换都演化为
正交态,而一般的量子变换没有这个性质,因此,经典计算机中的变换(或计算)只对应一类特殊集。
量子计算机(4张)
相应于经典计算机的以上两个限制,量子计算机分别作了推广。量子计算机的输入用一个具有有限
能级的量子系统来描述,如二能级系统(称为
量子比特(qubits)),量子计算机的变换(即量子计算)包括所有可能的幺正变换。
1.量子计算机的输入态和输出态为一般的叠加态,其相互之间通常不正交;
2量子计算机中的变换为所有可能的幺正变换。得出输出态之后,量子计算机对输出态进行一定的测量,给出计算结果。
承载16个量子位的硅芯片
由此可见,量子计算对经典计算作了极大的扩充,经典计算是一类特殊的量子计算。量子计算最本质的特征为
量子叠加性和量子相干性。量子计算机对每一个叠加分量实现的变换相当于一种经典计算,所有这些经典计算同时完成,量子并行计算。
无论是量子并行计算还是量子模拟计算,本质上都是利用了
量子相干性。遗憾的是,在实际系统中量子相干性很难保持。
在量子计算机中,量子比特不是一个孤立的系统,它会与外部环境发生相互作用,导致量子相干性的衰减,即消相干(也称“退相干”)。因此,要使量子计算成为现实,一个
核心问题就是克服消相干。
而量子编码是迄今发现的克服消相干最有效的方法。主要的几种量子编码方案是:
量子纠错码、量子避错码和量子防错码。
量子纠错码是经典纠错码的类比,是目前研究的最多的一类编码,其优点为
适用范围广,缺点是
效率不高。
正如大多数人所了解的,量子计算机在密码破解上有着巨大潜力。当今主流的非对称(公钥)加密算法,如RSA加密算法,大多数都是基于于大整数的因式分解或者有限域上的离散指数的计算这两个数学难题。他们的破解难度也就依赖于解决这些问题的效率。传统计算机上,要求解这两个数学难题,花费时间为指数时间(即破解时间随着公钥长度的增长以指数级增长),这在实际应用中是无法接受的。而为量子计算机量身定做的秀尔算法可以在多项式时间内(即破解时间随着公钥长度的增长以k次方的速度增长,其中k为与公钥长度无关的常数)进行整数因式分解或者离散对数计算,从而为RSA、离散对数加密算法的破解提供可能。但其它不是基于这两个数学问题的公钥加密算法,比如椭圆曲线加密算法,量子计算机还无法进行有效破解。
针对
对称(私钥)加密,如
AES加密算法,只能进行暴力破解,而传统计算机的破解时间为指数时间,更准确地说,是
,其中
为密钥的长度。而量子计算机可以利用Grover算法进行更优化的暴力破解,其效率为
,也就是说,
量子计算机暴力破解AES-256加密的效率跟传统计算机暴力破解AES-128是一样的。
更广泛而言,Grover算法是一种量子数据库搜索算法,相比传统的算法,达到同样的效果,它的请求次数要少得多。对称加密算法的暴力破解仅仅是Grover算法的其中一个应用。
在
利用EPR对进行量子通讯的实验中科学家发现,只有拥有EPR对的双方才可能完成
量子信息的传递,任何第三方的窃听者都不能获得完全的量子信息,正所谓
解铃还需系铃人,这样实现的量子通讯才是真正不会被破解的保密通讯。
此外量子计算机还可以用来做量子系统的模拟,人们一旦有了量子
模拟计算机,就无需
求解薛定谔方程或者
采用蒙特卡罗方法在经典计算机上做
数值计算,便可精确地研究量子体系的特征。