量子计算机工作原理和量子加密简析
admin
2023-09-08 00:42:03
0

一.量子计算机如何工作



量子计算听起来非常炫。大家最近都了解到大量的投资去了量子计算领域,使这个领域成为现实,并且量子计算承诺在许多行业会取得突破。但大家包括媒体通常对它是什么以及如何运作缺乏了解。这是有原因的:量子计算与传统的数字计算非常不同,我们需要以非直觉的方式思考问题。这个不同的思考方式还包括数学。相关需要非常规思考的例子还有很多。

这篇文章不会让你成为专家,但它会帮助你理解什么是量子计算,为什么量子计算很重要,为什么量子计算如此令人兴奋。如果你已经有了量子力学和研究生数学的背景,你可能不需要阅读这篇文章。你可以直接读一本书,比如《量子计算温和入门》(提示,“温和”是一个相对的术语)。但是,如果你像我们大多数人一样,没有这样的背景,让我们尽我们最大的努力来揭开计算机领域最神秘的话题之一的神秘面纱。

量子计算的概念

量子计算机使用量子位而不是传统的二进制位。量子位位与传统位不同,因为在它们被读出(即被测量)之前,它们可能存在于一种不确定的状态,在这种状态下,我们不知道它们是被测量为0还是1。这是因为一种叫做叠加的独特性质。

叠加使量子位变得有趣,但量子真正的超能力是量子纠缠。纠缠的量子位可以立即相互作用。为了制造功能量子位,量子计算机必须被冷却到接近绝对零度。即使是过冷,量子位也不能维持它们的纠缠态(相干态)很长时间。

这使得编程变得格外棘手。量子计算机是用各种逻辑门序列编程的,但程序需要运行得足够快,以保证量子位在被测量之前不会失去相干性。对于任何上过逻辑课或用触发器设计数字电路的人来说,量子逻辑门似乎有点熟悉,尽管量子计算机本身本质上是模拟的。然而,量子叠加和量子纠缠的结合使这个过程更加混乱。

量子比特和叠加

我们在典型的数字计算机中使用的普通位是0或1。你可以随时阅读它们,除非硬件有缺陷,否则它们不会改变。量子位不是这样的。它们有0和1的概率,但在你测量它们之前,它们可能处于不确定状态。这种状态,连同其他一些允许额外计算复杂性的状态信息,可以被描述为在球体(半径为1)上的任意点上,这反映了被测量为0或1(即北极和南极)的概率。



量子比特的状态是沿三个轴的值的组合。这叫做叠加。一些文本将这种性质描述为“同时处于所有可能的状态”,而另一些文本则认为这有点误导人,我们最好坚持用概率解释。无论哪种方式,量子计算机实际上可以在量子位叠加时进行数学运算——通过逻辑门以各种方式改变概率——然后通过测量最终读出结果。然而,在所有情况下,一旦一个量子位被读取,它要么是1,要么是0,并失去它的其他状态信息。

量子位通常从0开始存在,尽管它们通常会通过哈达玛门进入不确定状态,这导致量子位一半时间读取为0,另一半时间读取为1。其他的门可以通过改变数量和方向来翻转量子位的状态——既相对于0和1轴,也相对于代表相位的第三轴,并为表示信息提供了额外的可能性。可用的具体操作和门取决于您使用的量子计算机和工具包。

量子纠缠:量子行为位置

独立的量子位元组本身并不足以创造量子计算所承诺的巨大突破。当量子物理学的纠缠概念被实现时,奇迹才真正开始发生。一位业内专家把没有纠缠的量子位比作“非常昂贵的经典计算机”。当被测量时,纠缠的量子位元会立即相互影响,无论它们相距多远,这是基于爱因斯坦所说的“幽灵的远距离作用”。就传统计算而言,这有点像一个逻辑门,将内存中的每一位连接到其他每一位。



您可以开始看到,与传统计算机相比,在操作之前需要分别读写内存中的每块,这是多么强大。因此,从量子纠缠中有许多巨大的潜在增益。首先,至少对于某些类型的问题而言,可执行的编程复杂性大幅增加。最令人兴奋的是对复杂分子和材料的建模,这是传统计算机很难模拟的。另一个可能是在长距离安全通信方面的创新——如果和当它成为可能在长距离保存量子态。使用纠缠的编程通常从C-NOT门开始,如果一个纠缠粒子的同伴被读出为1,它就会翻转纠缠粒子的状态。这有点像传统的异或门,只不过它只在进行测量时才工作。

量子算法将改变密码学

量子叠加和量子纠缠是令人印象深刻的物理现象,但利用它们进行计算需要一个非常不同的状态和编程模型。你不能简单地把你的C代码扔到量子计算机上就指望它能运行,当然也不能跑得更快。幸运的是,数学家和物理学家远远领先于这里的计算机建造者,在量子计算机开始出现的几十年前,他们就开发出了利用量子计算机的聪明算法。

最初创建的一些量子算法,老实说,我发现的一些有用的算法,你不需要数学硕士学位就能理解,它们是用于安全加密密钥分发的。这些算法利用量子纠缠特性,允许密钥创建者向接收方发送多个量子位对中的每一对中的一个。完整的解释很长,但算法依赖的事实是:如果有人在途中拦截并读取其中一个纠缠比特,发送方的伴生量子位将受到影响。通过来回传递一些统计数据,发送方和接收方可以确定密钥是安全传输的,还是在传输过程中被黑客攻击的。

有的读者可能读到过,量子计算机有一天可以破解目前大多数的密码系统。他们能够做到这一点,是因为有一些非常聪明的算法被设计在量子计算机上运行,可以解决一个困难的数学问题,反过来可以用来分解非常大的数字。其中最著名的是肖尔分解算法。分解大数字的难度对于所有公钥-私钥系统(目前最常用的密钥系统)的安全至关重要。目前的量子计算机几乎没有足够的量子位元来尝试这项任务,但许多专家预测在未来3-8年内他们会做到。这导致了一些潜在的危险情况,比如,如果只有政府和超级富豪可以使用量子计算机提供的超安全加密技术。

为什么建造量子计算机很难

量子计算机的发展需要很长时间,原因有很多。对于初学者来说,需要找到一种方法来隔离和控制实现量子位的物理对象。这也需要将其冷却到基本零度(IBM的量子一号就是0.015开氏度)。即使在如此低的温度下,量子位元也只能在很短的时间内保持稳定(保持相干)。这极大地限制了程序员在需要读出结果之前可以执行多少操作的灵活性。

程序不仅需要受到约束,而且需要多次运行,因为当前的量子位实现有很高的错误率。此外,在硬件上实现纠缠也不容易。在许多设计中,只有部分量子位纠缠在一起,所以编译器需要足够聪明,能够根据需要交换比特,以帮助模拟一个所有比特都可能纠缠在一起的系统。

量子计算入门

好消息是,微不足道的量子计算程序实际上很容易理解,虽然一开始会让人有点困惑。有很多教程可以帮助您编写您的第一个量子程序,以及让您在模拟器上运行它,甚至可能在真正的量子计算机上。



最好的起点之一是IBM的QISKit,这是IBM Q Research提供的免费量子工具包,包括一个可视化的编者、一个模拟器,并在您的代码在模拟器上运行后可以访问实际的IBM量子计算机。Rigetti量子计算还发布了一个简单的入门应用程序,该应用程序依赖于他们的工具包,可以在他们的云计算机器上运行。

不幸的是,琐碎的应用程序就是:琐碎。所以简单地跟随每个例子中的代码并不能真正帮助你掌握更复杂的量子算法的复杂性。这是一个更难的任务。

二.解密量子密码学:如何用通俗语言运作

我们已经在《量子计算如何工作》这篇文章中介绍了量子计算的基础知识,现在是时候深入研究它最广为人知的应用之一:量子密码学了。量子密码学对我们目前的加密基础设施既有希望,也有威胁。最明显的威胁是量子计算机可以解密使用我们现有系统加密的数据。但它也为密钥分发提供了安全的通信通道。最终,利用量子技术,甚至有可能建立整个被认为是不可破解的加密系统。

量子计算解密:迫在眉睫的危机还是另一场千年虫盲目恐慌?

几乎所有广泛使用的加密系统都依赖于密钥——通常是庞大的、随机的数字,可以用来加密或解密数据。当前的加密包通常使用对称或非对称密钥构建——许多使用非对称密钥来传输共享的、对称的密钥来进行实际的数据加密。这两种密钥都很容易受到量子计算机黑客的攻击。对称系统依赖于一个共享的密钥,而要破解密钥,每增加一位就需要大约两倍的计算工作。有了这样的可伸缩性,随着计算机变得越来越强大,就有可能继续使用更大的密钥。然而,通过实现格罗弗的算法,量子计算机本质上可以将密钥长度缩短一半——这几乎是无法想象的,减少了破解密钥所需的时间。好消息是,现在我们已经意识到了这个挑战,把关键长度翻倍应该是一个很好的防守战术。

非对称系统(如公钥基础设施- PKI)使用数学生成的公钥/私钥对。在广泛使用的RSA算法家族中,数学是相当复杂的。但如果你能把一个很大的数分解成两个质数因子就有可能破解。如果使用一个有足够位的密钥,这对传统计算机来说是一个几乎难以解决的问题,但量子计算机可以使用一种叫做肖尔算法的东西,以更快地找到因子。粗略估计所需的计算能力是密钥的每位长度两个量子位。所以1024位的密钥需要2048位的量子计算机。专家预计这些技术将在10年内实现,有些人认为可能更快。请注意,今天1024位的密钥已经被认为是潜在的不安全的,因为在大型计算机上,只要有足够的时间,它们就可以被破解,但一旦量子计算机能够处理这项任务,只需要很少的时间。

就像Y2K(千年虫问题)要求的软件迁移的情况一样,还有其他的加密技术不容易被量子计算机破解。抵抗量子攻击的(非量子)加密系统的例子包括McEliece和NTRUEncrypt。这意味着:问题在于将大量已经就位的系统和数据迁移到新的系统。此外,就像千年虫问题一样,这种威胁将会有多真实、多普遍还有待观察,因为当足够大的量子计算机最终面世时,它们将会非常昂贵。这意味着它们不太可能被用来窃取信息,除非这些信息被认为非常有价值。为了运行肖尔的所有算法,量子计算机还需要与功能强大的传统计算机配对,这将进一步提高密钥破解系统的成本。

使用量子密钥分发的安全通信

当你听到量子密码学这个术语时,通常指的是量子密钥分配(QKD)。QKD实际上并不加密用户数据,但用户可以安全地相互分发密钥,然后使用这些密钥进行后续加密通信。

无论使用何种加密系统,几乎总有某种类型的私人信息必须保密。对于对称密钥系统,它以密钥的形式共享信息,而在非对称系统中,每个节点都有自己的密钥,同时共享一个匹配的公钥。在这两种情况下,初始化通信时都存在漏洞。对称密钥系统通常依赖于密钥的物理共享(一些金融机构使用带有便携式存储设备的实际信使)来引导。或者它们可能依赖使用非对称系统保护的连接来共享后续使用所需的加密密钥。原因之一是,像公钥这样的非对称系统不需要通过通道发送秘密(在本例中是私钥),而对称系统对于密钥交换后的大量数据更有效,而且通常更安全。

虽然量子密钥分配还没有被广泛使用,但它已经从2007年开始在欧洲进行商业使用,从2010年开始在美国进行商业使用。对于银行间通信和选举结果传输等高价值交易来说,量子密钥分配的好处有时是值得付出代价的。更广泛采用量子密钥分配的另一个障碍是,当前的系统不能在不同的供应商之间互操作。幸运的是,这种情况正在开始改变。在一项旨在寻找确保电网安全方法的研究中,美国橡树岭国家实验室和洛斯阿拉莫斯国家实验室的团队首次成功地在不同的实现中使用了量子密钥分配。布里斯托尔大学(University of Bristol)也刚刚发表了一项研究,研究如何做类似的事情来帮助确保多供应商5G无线网络的安全。

但真正的量子密码学呢?

虽然量子加密比量子密钥分配解密更难,但最终还是有可能使用量子计算技术加密数据,这种技术特别能抵抗窃听和各种其他形式的黑客攻击。目前最流行的方法是Kak协议。从本质上说,它是著名的双锁算法的量子版本,允许两个用户安全地交换数据,而不共享任何密钥。

双锁协议非常简单。我们将使用通用约定,并假设小明和小强想要交换信息,而不被窃听者小刚修改。他们还想知道是否有人成功窃听了他们的通讯频道。为了做到这一点,他们通过三个步骤交换锁。



在Kak的协议中,小明和小强使用加密函数UA和UB作为传统双锁协议的物理锁的代理。

作为第一步,小明锁定他的数据(在数字情况下,使用密钥加密),并将其发送给小强。小强依次添加他的锁(用自己的密钥对小明已经加密的数据进行加密),并将其发送回小明。小明移除她的锁并将结果发送回小强。然后小强可以移除他的锁,并读取原始数据。

对于物理锁和钥匙来说,这一切都工作得很好,但当涉及到数字加密时,就有点复杂了。要使协议工作,加密过程必须是可交换的(因为加密是按照小明, 小强的顺序应用的,但是小明需要能够在小强删除他的加密之前删除她的加密)。一个可能的、流行的加密例子是乘上一个很大的数字。到目前为止,一切顺利。但是现在想象小刚在听。当数据来回移动时,他可以看到数据乘以小明的密钥,数据乘以两个密钥,数据乘以小强的密钥。由此,小刚可以计算出小明和小强的密钥。

Kak提出使用特定的量子旋转来创建一个不会被窃听的双锁协议版本。他建议的旋转可以以任何顺序应用,但是任何通过读取中间数据来监听的尝试都会导致损坏的数据。其他研究人员继续发展该协议,使其具有更抗篡改的特性,但与QKD不同的是,目前还没有任何商业实现。虽然需要更强大的量子计算机来实现真正的基于量子的加密,但研究人员正在接近这一目标。

去年秋天,中国科技大学的一个研究小组成功地利用量子纠缠光子在奥地利的一个卫星和地面站之间创建并共享一次性垫子。使用一次性密码本加密可以证明是安全的,只要密码本没有被破坏,是随机的,只使用一次,并且比正在传输的数据长。量子技术在前三个方面有所帮助,但其性能依旧相当缓慢。尽管如此,该团队依旧能够使用他们的量子系统加密、传输和解密超过2GB的数据。

wx: ScienceWorks

相关内容