如果您熟悉最新的计算技术,您很可能听说过量子计算的概念。尽管术语可能使该领域听起来有点吓人和深奥,但只要有足够的接触和经验,就可以在直观的层面上理解量子计算的原理及其应用。
量子计算利用量子力学等物理定律来执行比传统计算机快得多的计算。这为数以千计的潜在应用打开了大门,例如金融建模、优化、量子通信和量子密码学(我将在本文后面深入探讨)。随着技术的不断进步,越来越多的计算机系统最终将采用量子计算策略来实现广泛的应用,并通过应用基本物理原理来解决普遍存在的问题。
在这篇文章中,我将简要介绍量子电路和使其全部工作的量子力学原理。
在我们开始深入研究量子电路之前,让我们先了解一下量子电路是由什么组成的——量子门和量子位。
像您现在可能正在使用的计算机这样的经典计算机依靠比特来传输信息。一个位代表一个状态,它只能是两个值 0 和 1 之一。位可以拼凑成二进制,可以用来表示从数字到文本的任何信息。例如,数字 12 在二进制中表示为 1100。这是因为二进制的基数是 2,这意味着它可能的值槽可以是 2⁰、2¹、2³、2⁴ 等等。应用这个概念,将 12 转换为二进制如下……
8 4 2 1 1 1 0 0 -> 8 + 4 + 0 + 0 -> 12
我们知道8和4加起来是12,所以8和4在二进制中赋值为1。另一方面,2 和 1 与产生 12 的输出无关,因此它们的值都为 0。这为我们提供了数字 12 的最终二进制值 1100。
我们可以将比特原理应用到量子计算中来理解量子比特。量子位就像位一样用于表示计算机的状态,但是,与位不同的是,它们可以存在于状态的叠加中,这意味着它们可以同时表示 0 和 1。可是,这怎么可能?一个单位如何同时代表两种可能的值?
为了进一步理解叠加,让我们打个比方。想象一下将一枚硬币抛向空中。当硬币在空中时,它处于叠加状态,硬币同时代表正面和反面的价值。只有当硬币掉到地上并且其叠加状态崩溃导致正面或反面时,我们才能确定地知道硬币的价值。类似地,在量子力学中,一个量子位(又名量子位)可以存在于同时代表 0 和 1 值的状态。我们只能在量子位坍缩为 0 或 1 时告诉它确定的状态。
量子门与电路中的逻辑门非常相似。逻辑门同时适用于经典计算机和量子计算机,是一种接受二进制输入(即 0 和 1、自旋向上电子和自旋向下电子、猫和狗等)并产生单个结果的结构使用称为布尔函数的系统计算值(即 1、自旋电子和狗)。然后可以将这些门一起使用以产生稳健的电路。一旦引入量子位,经典门和量子门之间的区别就会出现。量子门和经典门的区别在于叠加、可逆性和纠缠。与没有量子力学的经典门不同,量子门可以保留有关哪些值通过它们的信息,从而使它们本质上是可逆的。通过量子门的一切都可以逆转,然而,经典门不支持同样的原则。简而言之,量子门用于将输入操纵为特定的所需输出。
最后一个要学习的重要概念是纠缠。当两个或多个粒子的状态变得相互关联和相互依存时,就会发生量子纠缠。这使得研究人员能够通过测量另一个粒子的状态来确定一个粒子的状态,而不管它们之间的距离有多远。例如,如果同时存在自旋向上和自旋向下的粒子,您可以通过参考自旋向上粒子的状态来准确推断自旋向下粒子的配置。一旦我们进一步研究量子算法,尤其是那些依赖安全通信通道的算法,纠缠就变得很重要。
在深入研究向量的状态表示之前,了解向量的一些初步知识很重要。
在量子物理学中,状态向量用于描述系统的当前状态。状态向量包含向量中的一组数字,其中向量中的每个元素都包含量子位处于特定状态的概率。
一个简单的例子如下……
上图展示了一个量子位 |0⟩,它在测量时明确输出 0。同样,也必须有一个输出 1 的量子位,由 |1⟩ 表示。我们知道这两个状态是互斥的,因为状态之间没有收敛(量子位输出 0 或 1)。这在上面由正交向量表示。我们可以将相同的概念应用于下面稍微复杂的示例......
上图(用 |q0⟩ 表示)描述了比 |0⟩ 和 |1⟩ 更细微的状态。上面的量子位可以改写如下:
此状态演示了量子位 q0 的状态向量,其中输出不完全是 |0⟩ 或 |1⟩,而是输出是两者的线性组合,也称为叠加。
为了可视化叠加的抽象现象,量子物理学家使用一种称为 Bloch Sphere 的数学工具来可视化量子比特的可能状态。布洛赫球上的任何一点都可以是量子比特的可能状态。下图可视化了一个处于 |+⟩ 状态的量子位,其中 theta = pi / 2 和 phi = 0
为了演示运行中的量子位和量子门,我们可以看一下电路图,其中输入显示在左侧,输出显示在右侧。其间的操作是由模糊符号表示的门。这是标准的基于位的计算机的典型电路。输入信号是 A、B 和 C,它们都被传递到电路中,并由它们之间的门操作以产生结果信号 Q。这是一个经典电路图,将经典电路可视化。
量子电路图进一步提升了这种电路约定,因为它们还必须考虑其固有的可逆性。因此,它们看起来有点不同,并且遵循一些与经典电路不同的规则。这是量子电路的样子……
让我们把这个电路分解成它的组件:
量子电路和经典电路之间的主要区别在于,量子电路显示的量子位以直线水平线显示,而量子门具有相同数量的输入和输出量子位,而经典电路的位线可以向不同方向移动。
Pauli X-gate 简单介绍了量子门的内部工作原理。它的目的很简单:否定。与经典的非门非常相似,泡利 X 门将量子位的状态翻转为其相反的值,如下面的真值表所示。应用于物理世界,X 门的功能将电子的自旋向上状态转变为自旋向下状态,反之亦然。
|0> → |1>或|1> → |0>
与 X 门类似,Pauli Y 门是一个单一的量子位操作,可以转换:
|0>→-i|1>与|1>→i|0>
这可以通过围绕 Bloch 球体上的 Y 轴旋转量子位来显示。
Pauli Z-gate也是一个单量子位操作,映射|1>→-|1> ,不改变|0>。 Z 门操作可以通过围绕 Bloch 球体的 z 轴旋转 pi 弧度来可视化。
泡利 X、Y 和 Z 门的 Bloch 球体表示
Hadamard 门是量子计算中使用最普遍的门。这是一个单一的量子位操作,导致以下映射:
│0> → (|0> + |1>)/√2 AND │1> → ( |0> — |1>)/√2
这创建了两个基本量子位状态的相等叠加,这意味着该状态将具有相等的概率为 1 或 0。
受控门是一种 2+ 量子比特操作,其中不止一个量子比特可以作为对一个量子比特的某些操作的控制。例如,CX、CY 和 CZ 门。
受控 X 门
受控 x 门也称为 CX 门,作用于 2 个量子位,当第一个量子位状态为 |1>时,对第二个量子位执行非运算。
还有更多的门超出了本文可以涵盖的范围。如果您想更深入地了解其他量子门及其功能,我建议您查看 Qiskit 对量子操作和门的总结。
让我们通过应用它来分析下面的示例电路,进一步了解我们对量子电路的了解……
上面的示例电路使用两个 Hadamard 门和一个 CNOT(又名 CX)门来创建纠缠态。
最初,应用两个 Hadamard 门创建一个叠加状态,然后我们应用 CX 门。量子比特的初始状态是 |0⟩。
当我们将该状态通过 Hadamard 门时,输出它 |+⟩。由于我们在这个电路中有两个 Hadamard 门,我们得到这两个值的张量积,即 |+⟩ ⊗ |+⟩。这导致输出 |00⟩ + |01⟩ + |10⟩ + |11⟩,因为在这种情况下应用 CX 门不会执行任何操作。
运行该电路后,输出应该是 4 个阶段,概率相等。
如果我们使用 Bloch Sphere 可视化每个量子位的状态向量,我们可以看到将 Hadamard 门应用于每个量子位会导致从 Z(|0⟩, |1⟩) 到 X 基的切换,并且CX 门没有改变任何东西,如下图所示……
量子电路具有广泛的应用,包括模拟量子系统行为的量子模拟,例如对具有独特属性的材料的行为进行建模,解决从金融到物流等广泛领域的复杂优化问题,以及机器学习算法,例如那些用于图像和音频识别,以及密码学等网络安全应用。
我们现在可以应用我们的量子力学知识来了解如何使用它来确保通信的安全性。量子密码学通过在双方之间交换加密密钥来加密和解密消息,为双方之间的通信提供了一个安全通道。依赖于经典计算技术的传统密码系统是建立在数学原理之上的,这些原理可以被强大的计算机快速破解和解密。量子密码学解决了这个问题,它利用量子力学的不确定性原理,使窃听者不可能在不被发现的情况下拦截双方之间的通信。
一种实现量子密码学的协议是量子密钥分发(又名 QKD)。它是研究最广泛的量子密码学方法。 QKD 利用一系列光子来传输由称为密钥的随机序列表示的秘密。通过这样做,我们可以通过比较传输两端的值来检测密钥何时被泄露。使用电话线等经典计算系统,可以通过“监听”拦截密码。
然而,使用 QKD 不可能做到这一点,因为任何观察量子加密密钥的尝试都会破坏通过传输的光子,最终导致不同的值。让我们参考下图来演示这种现象。 Alice 和 Bob 都想互相交换密钥,但他们也想避免 Eve 窥探他们发送给对方的消息。通过使用 QKD,Alice 能够通过传输特定量子态的光子来向 Bob 发送安全消息。 Bob 能够通过测量 Alice 发送的每个光子来解密其状态来解密消息。
不确定性原理告诉我们,对粒子的量子态进行的任何类型的测量都会无限地改变它的状态。在 QKD 中,这被用作一种保护机制,因为如果 Eve 试图测量 Alice 发送给 Bob 的量子粒子,粒子状态最终将被改变,从而使她的存在为人所知。而且,如果伊芙试图在传输过程中偷偷复制传送过来的粒子,由于“不可克隆定理”,她将无法做到。该系统为 Alice 和 Bob 提供了一种传输秘密密钥的方式,也称为一次性一密,而不会担心 Eve 可能会窥探他们的消息。
QKD 支持许多不同的协议。其中包括利用一个光子在 Alice 和 Bob 之间传输信息的单光子 QKD 、使用弱激光脉冲发送光子状态的弱相干激光脉冲 QKD ,以及向 Alice 和 Bob 发送成对纠缠光子源的纠缠光子 QKD 。
发生 QKD 的物理量子通道使用各种物理系统,如光子、离子或超导电路。对于基于光子的 QKD,电路通常使用单光子源、分束器、两个偏振滤波器和两个单光子检测器。
该电路的构造使得当 Alice 向 Bob 发送一系列单光子时,每个光子都具有随机偏振状态,Bob 在两种极性状态之间随机选择以测量决定最终密钥位值的光子。一旦所有光子都被测量过,Alice 和 Bob 就可以使用经典信道比较他们每个结果的子集,以检测任何窃听企图。
RSA(又名 Rivest–Shamir–Adleman)加密算法是一种广泛使用的协议,用于保护公共通道上的通信。然而,量子计算机在算法中引入了一个固有的漏洞,即它依赖于经典计算系统的低效率来分解大数。
针对此漏洞,安全研究人员开发了多种抗量子算法,例如 Quantum-Safe RSA(又名 QS-RSA)。 QS-RSA 是 RSA 的修改版本,它使用替代的量子安全数学函数来生成公钥和私钥,同时保留传统的 RSA 加密/解密功能。
另一个量子安全密码协议是 BB84。对于 BB84 协议,我们将二进制 0 定义为在直线基础上配置为 0°,在对角基础上配置为 45°。类似地,二进制 1 在直线基础上用 90° 或在对角基础上用 135° 表示。
首先,Alice 通过随机选择一串长度相等的比特和碱基(直线或对角线)通过量子信道发送信息。随后,字符串的每一位将被迭代,Alice 通过通道将一个相同偏振的光子传输给 Bob。一旦 Bob 收到光子,他就会为每个光子随机选择一个基来测量其极性。如果他选择的极性与 Alice 发送的极性匹配,他将正确找到 Alice 发送的比特。如果该位与 Alice 发送的不匹配,Bob 将被分配一个随机位。
其次,Alice 和 Bob 通过公共信道进行通信,以传达 Bob 用来测量 Alice 发送的光子的基础。然后,Alice 将 Bob 能够正确猜测编码位的基数发回给 Bob。之后,Alice 和 Bob 都删除了不同基上的编码位和测量位,从而产生了一个相同的位串,称为移位密钥。
为了检查是否有人在窥探信息传输(咳咳,夏娃),爱丽丝和鲍勃可以交换一些应该匹配的移位密钥。如果任何交换的位不匹配,我们可以确保 Eve 正在监听传输。下图显示了 Eve 正在监视 Bob 和 Alice 之间的传输的示例。尽管爱丽丝和鲍勃都有六个匹配的碱基,但这些碱基中只有一个匹配揭示了夏娃的存在。这将导致 Alice 和 Bob 恢复到另一个 Quantum Channel 以继续他们的通信。
总的来说,本文提供了对量子计算背后新兴技术的简要了解。我希望所提供的示例和描述有助于阐明量子力学的一些概念:量子回路、纠缠、叠加、泡利 Y 门等量子门,以及 QS-RSA 和 BB84 等量子密码算法和协议。量子力学通过提供更有效的方法来保护通信通道,彻底改变了密码学。很明显,将量子力学应用于特定于网络安全的应用程序将在未来几年继续改变我们通信和保护数据的方式。
也发布在这里。