量子加密号称「绝对安全」绝不是哗众取宠,为什么这样说呢?因为与传统加密算法不同,量子加密的原理基于物理定律,而不是特定数学问题的计算复杂性。因此,无论计算机的运算能力怎么增强,也丝毫不影响量子加密的安全性。本文以 BB84 协议来介绍量子加密,下文为了方便不对量子加密和 BB84 协议进行区分。
加密过程
我们先看一个不涉及任何物理定律,但是原理和量子加密相同的加密过程。
前提与假设
假设存在两个函数:
+
、×
,和一些值:0、1、→、↑、↖ 和 ↗。它们的运算满足:1 | 0 | |
---|---|---|
+ | → | ↑ |
× | ↖ | ↗ |
→ | ↑ | ↖ | ↗ | |
---|---|---|---|---|
+ | → | ↑ | ? | ? |
× | ? | ? | ↖ | ↗ |
以
+
函数为例,不难理解:+(0) | +(1) | +(→) | +(↑) |
---|---|---|---|
↑ | → | → | ↑ |
唯一特殊的地方在于
+(↖)
和 +(↗)
是从 ↖ 或 ↗ 中随机挑一个作为运算结果,即产生 +(↖)=↖
或 +(↖)=↗
的可能性一样大,都为 。注意,这里的随机 不是传统计算机中的伪随机,而是真随机。生成密钥
假设 Alice 和 Bob 要进行通信,整个加密过程如下图所示。
Alice 随机产生一个数(0 或 1),再随机选择一个函数
+
或 ×
进行运算。比如:Alice 随机产生的第一个数为 1,随机选择的函数为 +
,那么运算结果为 +(1)=→
。此过程会重复多次,产生一系列 →、↑、↖ 或 ↗,随后 Alice 将这些运算结果传送给 Bob。Alice 产生的随机数 | 1 | 1 | 1 | 0 | 1 | 0 | 1 | 0 | 0 |
Alice 随机选择的函数 | + | × | × | × | × | + | × | + | × |
Alice 发送的运算结果 | → | ↖ | ↖ | ↗ | ↖ | ↑ | ↖ | ↑ | ↗ |
Bob 在接收到 Alice 发送的一系列 →、↑、↖ 或 ↗ 值后,对每个值随机选择
+
或 ×
函数进行运算。此时,Bob 得到了一系列运算结果,然后 Bob 根据 +(1)=→, ×(1)=↖
等运算规则反推 Alice 发送的随机数。注意,因为进行了随机选择,所以 Bob 与 Alice 的运算结果并不一定相等,但是 Bob 并不在乎这一点。Bob 接收到的运算结果 | → | ↖ | ↖ | ↗ | ↖ | ↑ | ↖ | ↑ | ↗ |
Bob 随机选择的函数 | + | × | + | + | × | + | + | + | + |
Bob 得到的运算结果 | → | ↖ | ↑ | ↑ | ↖ | ↑ | → | ↑ | → |
Bob 认为 Alice 发送的随机数 | 1 | 1 | 0 | 0 | 1 | 0 | 1 | 0 | 1 |
接下来,Bob 告诉 Alice 自己随机选择了哪些函数。Alice 将其与自己的选择做对比,然后告诉 Bob 是不是选得和她一样。Bob 收到 Alice 的回答后,找到那些和 Alice 相同的函数,将通过它们推断出的随机数作为加密用的密钥,也就是
11100
。量子加密
量子力学假设光子(光子是一种量子)有四种偏振方向:↑、→、↗ 和 ↖,它们都可以通过某种装置产生。而在经过直线基
+
或对角基 ×
时,它们既有可能保持不变,也有可能随机变成一种偏振方向。比如:偏振光子 → 的在经过直线基 +
时保持不变,还是 →,而在经过对角基 ×
后则随机的变成了 ↗ 或 ↖。同时,基 +
和 ×
也可以用来制备量子状态,比如:基 +
将比特 0 制备成 ↑,把比特 1 制备成 →。
稍加思考就会发现,上述理论不就是我们的前提与假设吗?我们将之前提到的函数、运算等等全部替换成相应的物理过程,就得到了所谓的量子加密。
为啥安全
相信看懂上述加密过程并不困难,那么为什么说量子加密绝对安全呢?我们首先得了解两个定律:
中间人攻击
如果 Eve 想要窃听 Alice 发给 Bob 的光子,因为不可克隆定理,所以 Eve 只能查看 Alice 发给 Bob 的光子,而无法复制一个进行查看。同时,因为不确定性原理,并且由于 Eve 不知道 Alice 选择的测量基(只有 Alice 自己知道),所以 Eve 只能像 Bob 那样随机选择基进行测量。那么就有
的概率改变光子的状态。例如:Eve 用基 ×
测量偏振光子 ↑ 后,偏振方向变成了 ↖。
因为单个光子几乎没有包含任何有用信息,所以如果 Eve 想要窃听 Alice 与 Bob 的通信,势必会测量多个光子。假设 Eve 窃听过程中光子的变化如下表所示:
Alice 发送的光子 | → | ↖ | ↖ | ↗ | ↖ | ↑ | ↖ | ↑ | ↗ |
Eve 随机选择的测量基 | + | + | + | + | + | + | + | + | + |
Eve 窃听后的光子 | → | ↑ | → | ↑ | → | ↑ | → | ↑ | → |
Bob 接收到 Eve 窃听后发生改变的光子,假设他选择的测量基和之前一样,那么可能得到:
Bob 收到的光子 | → | ↑ | → | ↑ | → | ↑ | → | ↑ | → |
Bob 随机选择的基 | + | × | + | + | × | + | + | + | + |
Bob 测量得到的偏振态 | → | ↗ | → | ↑ | ↗ | ↑ | → | ↑ | → |
Bob 认为 Alice 发送的随机比特 | 1 | 0 | 1 | 0 | 0 | 0 | 1 | 0 | 1 |
Bob 在对收到光子进行测量后告诉 Alice 自己选择的测量基,而 Alice 在与自己选的测量基进行对比后,回复 Bob 第 1、2、5、6、8 个基和她一样。此时,Bob 认为密钥应该是
10000
,而 Alice 认为密钥应该是 11100
。为了确保没人窃听,Bob 把密钥的第 1、3 位传给 Alice,即 10
,Alice 收到后与自己的 11
进行对比,发现不一样,于是马上意识到有人进行窃听。
此处因为传送的光子很少,所以 Eve 有较大的几率窃听而不被发现。不过,只要 Alice 发送的光子足够多,Alice 和 Bob 最后得到的密钥就足够长,这时候窃听后密钥依然相同的概率就非常小,只要 Alice 与 Bob 对比一部分密钥,就能察觉是否有人监听。
一次一密
但是如果 Eve 不窃听光子,而是等 Alice 与 Bob 形成密钥后进行破解,Alice 与 Bob 应该如何应对呢?
参考
--------------
相关帖子:https://briteming.blogspot.com/2018/06/post-quantum-cryptography.html
No comments:
Post a Comment