陈健
2018年12月4日,美国国家科学、工程与医学院发布题为《量子计算:发展与前景》的研究报告,阐释了量子计算的运行模式、量子计算的算法与应用、量子计算对密码体系的影响、量子计算的硬件组成、量子计算的软件构成等内容,并在此基础上分析了当前量子计算技术所取得的进步与时代架构,展望了量子计算的未来发展前景。报告指出,量子计算发展至今,已引发人们极大的研究兴趣,也展现出一定的商业价值,但其将来的发展速度、方向和实际应用还有待观察;量子计算将给当前的密码体系带来冲击,需要人们提前做好相应的设计与部署准备。
报告称,当前量子计算的理论和模型已经出现,主要通过学习研究量子世界的一些特殊性,使用多种方法、通过多种途径来实现量子计算。在过去的20年里,人们对这项技术所蕴含的巨大潜力充满了兴趣,并一直致力于推进量子计算,使其不断发展进步,但量子计算是否能以摩尔定律的模式持续增长,还有待观察。
当前,量子计算是唯一真正的新型计算模式,且与经典计算模式相比,将成为一种更加普遍通用的物理计算模型,有望解决一些经典计算模型所无法解决的实际问题,这就使得量子计算变得十分“有趣”,也极大激发了人们对量子计算的商业兴趣。
量子计算理论是对微观世界一种运行机制的描述,是理解和预测物理宇宙性质的最为精确的理论。量子理论主要遵循以下基本原理。
波粒二元性——一个量子物体同时具有类波性质和类粒子性质,当系统遵循波动方程时,任何可测量的系统都能够返回一个与其一致的粒子。
叠加性—— 一个量子系统能够同时存在两种或更多种状态,被称之为“叠加”或“叠加状态”。
相干性——当一个量子系统的状态能够被一组复杂的数据所描述时,那么系统的每一种状态都是相干的。对于诸如量子干涉、量子叠加、量子纠缠等量子现象,相干都是必需的。
纠缠性——纠缠是一些多粒子叠加状态(并非全部)的一种特殊性质,测量一个粒子状态时能够影响到另一个粒子,即使这些粒子相隔很远且无明显的相互作用。
可测量性——量子系统从根本上改变了测量工作,在其处于一个确定的状态下时,系统处于与所测值相对应的状态。
量子计算主要有两种方法。
一种方法是通过初始化量子系统状态,再运用汉密尔顿的直接控制方式来推进量子态演化,由此得到一个高概率的问题答案,进而得到预期结果。因为汉密尔顿通常是平滑形的,因此量子计算实质上是真正的模拟计算,且不能完全纠正误差。
另一种方法叫做“基于门的计算”,类似于当今的经典计算方法,主要是将问题分解为一系列基本的“原始运算”或“门”,对于特定的输入状态都会得到一个明确的“数据”测量结果,这种数据特性意味着这些设计类型能够以系统级的纠错来达成容错目的。
当前,主要的量子计算机有模拟量子计算机、基于噪声的中等规模量子计算机、基于门的量子计算机及基于门的全纠错量子计算机。
报告称,量子化学、优化(包括机器学习)和破解密码是量子计算最被认可的潜在应用,这些领域目前仍处于初始阶段。现有算法可能会以尚难以预测的方式实现改进,而新的算法也可能会随着研究的不断深入而出现。除了密码学之外,难以预测量子计算将会给各个商业部门带来怎样的影响。
量子计算的最好应用领域就是密码领域,也就是破解密码,这是一个基于数学的应用。对于密码学来说,未来运用Shor 算法的量子计算机将对其产生深远影响。
量子模拟被认为是一种具有巨大潜力的具体应用,特别是在量子化学领域。虽然经典的计算方法在许多情况下都是非常有效的,但往往不能预测化学反应过程或区分反应阶段的相关物质,而量子计算机能够在经典计算方法难以奏效的情况下,有效地解决这些问题。
事实上,与经典的化学反应速率常数计算法相比,早期的一种量子计算方法在速度上已经提高了好几个指数量级。量子计算与其他算法能够为人们打开一扇大门,让人们对物质的各种反应和状态有更深的洞察力,这些成果在能量存储、显示器件、工业催化剂及药物开发等方面具有巨大的商业价值。
报告称,运用量子计算进行密码破译的一个关键性问题,是需要一台多大规模的量子计算机才能实现密码破解。这个问题的答案根据量子计算的具体结构和原理不同而有所不同。复杂量子计算机可以破解密码并给数字签名带来威胁,但这些都只是基于当前已知的量子算法,以及对量子计算机架构和错误率的一种假设,相关探索研究还需继续推进。将来也可能开发出新的算法,可对密码体系进行不同攻击。
密码报告称,要应对量子计算密码破译,必需了解3 个方面信息,以确定何时建立怎样的密码保护架构来加以抵抗:一是当前的加密架构何时会被击破,也就是说一个足够复杂的量子计算机何时投入使用;二是抵抗量子破解密码的新型架构需要多长时间才能设计、建筑和部署完成;三是最长的保护间隔是多长。一旦这3 个方面信息被确定,所需时间就可以计算出来。
报告称,在向后量子加密阶段发展过程中,首先需要制定和批准密钥交换与签名的后量子加密算法标准,新的标准算法在作为官方标准被采用后,还需采用多种计算机语言、程序库及加密硬件芯片模块来实现。接着,新的标准算法需合并为加密格式,并由各标准委员会审查通过。随后,供应商在需要的硬件和软件产品中更新标准。然后,必须对公、私领域存储的敏感数据进行重新加密,并销毁以前模式下输入的所有数据副本,公钥证书也必须重新颁发或重新分发,必须对官方的所有文件进行重新签名。最后,所有的软件代码必须重新升级和验证,新的代码也需再重新签名和分发。
量子计算机的发明出现对所有公钥密码算法产生了威胁,因此,为了应对量子计算密码破译,需要在第一台计算机上线之前,就设计和部署对抗量子破解密码的算法和基础设施。
报告称,量子计算的硬件结 构可划分为4 个层次:一是量子比特所在的“量子数据层”;二是根据需要对量子进行操作和测量的“控制和测量层”;三是确定操作和算法序列的“控制处理器层”;四是用于处理网络访问、大存储阵列和用户界面的“主处理器层”,该层通过高速宽带与控制处理器连接。
对于所有的量子比特技术而言,面临的第一个挑战是降低大规模系统中的量子位错误率,同时使测量能够与比特操作相间隔。对此,提高物理量子位的保真度显得至关重要;第二个挑战是增加量子计算机的量子位数,这就需要对集成电路、封装、控制和测量层面及所使用的校准方法进行整体优化。
量子计算除了硬件组成外,还需要广泛的软件组成,包括能够让程序员描述量子计算算法的编程语言、分析它们并将其映射到量子硬件的编译器,以及可在特定量子硬件上实现分析、优化、调试和测试程序的其他软件支持,如需要仿真和调试工具来调试软硬件、需要优化工具来帮助高效实现算法、需要验证工具来帮助确保软硬件的正确性等。
创建和调试量子程序所需的软件工具对于所有量子计算机来说,就像量子数据层面一样必不可少,虽然在这一领域取得了良好进展,但仍有一些具有挑战性的问题有待解决。例如,在算法层面,量子计算系统的状态空间如此之大,以至于在今天的经典计算机上即使是模拟大约60 位或更多量子位的量子计算算法,也无法在合理的时间或空间内完成。
量子程序的调试和验证也是一项很大的挑战,大多数经典计算机为程序员提供了在程序中任意点停止执行的能力,并能检查机器状态值和其他项值,程序员可以确定状态是否正确,如果不正确,则查找程序错误。相反,量子计算程序需要一个很大的状态空间,进行物理量子位测量时还将面临崩溃,并且在测量后不能重启量子计算执行,因此,设计量子程序的调试和验证技术是推动量子计算发展的一项基本且具有根本性挑战的要求。
报告称,一台大规模完全纠错量子计算机,在设计时需扩展到数千个逻辑量子位元,并且需要一个软件基础结构,以便有效帮助程序员使用这台计算机解决问题。这种能力需要一系列越来越复杂的计算机系统来逐步实现,这又取决于硬件、软件和算法的发展。这些计算机系统呈现“里程碑”式发展,依次是小型计算机、基于门的高级量子计算机、基于退火炉的高级量子计算机、成规模运行QEC 的量子计算机、商用量子计算机、大型模块量子计算机。但有些里程碑实现起来比较困难,或不按照此顺序实现。
量子计算拥有一个令人兴奋的发展前景,但要实现这一前景需应对许多挑战。在过去的20年时间里,人们对量子系统科学和工程的理解有了很大的提高,随着理解的深化,人类控制量子计算的能力也不断提升。然而,在建造一台具有实用价值的量子计算机之前,仍有大量工作需要去做。同时,也很难预测量子计算的未来将以何种方式、何种速度展开,它可能增长缓慢而渐进,也可能由于意外创新而加速推进。◆