美文网首页物理泛读
量子秘钥为什么无法被第三方截获

量子秘钥为什么无法被第三方截获

作者: ianwest | 来源:发表于2016-08-27 15:17 被阅读42次

    原文发在奇迹号上。


    听说中国发射了一颗量子科学实验卫星(Quantum Experiments at Space Scale)。

    Quantum Experiments at Space Scale

    它的任务之一就是实验量子秘钥(Quantum key)。

    要理解什么是量子秘钥,我们首先自己问自己:

    什么是通信?

    假设两个人,A和B,A对B说了一句话:

    Help!

    A对B说了一句话

    这个就是通信。

    如果我们考察这个过程的话,可分为三个单元:

    • A发出信息,通过声带;
    • B接受信息,通过耳膜;
    • 信息通过声音传播,需要空气作为介质。

    A传递给B的信息是有意义的,在这里是人的自然语言,B听到这个后,懂得并导致其后续行动。

    如果我们只考察这里的信息,

    Help!

    我们应如何表示它?

    纯粹物理的角度,我们可以把它表示为(不同频率)声音强度随时间的变化,但这个太琐碎了,很多细节我们并不需要。

    适度抽象后,我们说这就是26个字母在时间轴上“由左到右”,“有方向地”展开。

    简单说就是这样,我们可以管这个叫编码,常见的编码有:

    • 二进制,0101这种;
    • 16进制;
    • 当然还有英文字母;
    • 中文的汉语拼音,借用英文字母(精确讲应是拉丁字母)。

    现在通信可被叙述为A向B发送一段有序的编码,比如:

    Hi, ...

    这段编码A、B看了都懂。于是A就能让B帮他做事情,比如A对B说:

    把红色的旗子举起来。

    但有时我们不希望别人知道这段信息,比如打仗的时候,敌人C可能会截获这段信息,从而知道A的意图,从而不利于A和B。

    这个时候就需要加密了。

    能否设想一个最简单的加密方案呢?

    据说古代斯巴达人是这样来传递信息的,将军A和前线指挥官B各持一根木棍,这两根木棍是完全相同的,主要是“粗细”。

    古代斯巴达人的加密方案

    将军A拿出一定粗细的纸条(或者皮革条),以特定角度把纸条缠绕在木棍上,然后沿平行于木棍的方向写下命令:

    Blah, blah...

    然后再把纸条取下来展开,继续在纸条上写满字母,也许是这样的:

    cxBaxhnlxhon...

    现在这个纸条上的信息就是被“加密”过的了,将军A可以把纸条交给传令官C,由他送给前线指挥官B。

    假如敌人截获了这个纸条,它是看不懂上面的信息的,除非……,知道加密的方案,及棍棒的粗细和缠绕纸条的倾斜角度。

    拷问传令官C也没用,因为他没见过加密用的棍棒。

    以上就是一个加密的方案,在这里我们需要的其实是两个数字,一个是棍棒的粗细,一个是纸条缠绕的角度,当然想想的话,我们会补充上第三个数字,即我们由第几位开始读。

    这三个数字就是秘钥。

    现在的问题是如何传送秘钥。

    我们打个比喻:

    我们想传送的信息就是一个密码箱,秘钥就是密码箱的钥匙,即密码。

    一般来说密码箱的密码就是三个数字,比如:

    798

    密码箱比喻:密码不能让人知道

    这个798有意义吗?

    完全没有意义,因为它并不代表地名,如果你认为这是个地名的话,那恰恰是不能make sense的。

    但完全没有意义,完全随机的三个数加上密码箱就能对应有意义的信息。

    我们用无意义的密码打开了看不懂的密码箱,得到的是有意义的,能看懂的文件。

    密码箱可以随便给所有人看,被敌人C截获也不怕,因为它没有密码。

    所以现在的问题就变成,如何生成这个密码,使得只有A、B知道,而C不可能知道。

    这就需要用到量子力学了

    措辞的角度,

    我小心翼翼地不说我们传送密码,

    我喜欢说我们(A、B)生成了密码(所以这与狭义相对论并不矛盾)。

    这个生成,可以比喻为“掷骰子”,骰子一掷,A和B就知道密码了,而且是相同的,然后A用这个密码去加密信息,而B用密码解密收到的信息。

    被传递的信息是可以让全世界人知道的。

    我们利用量子纠缠来掷骰子

    我们想象两个硬币,一个向上、一个向下,一个在A手边,一个在B手边。

    设想这两个硬币通过一根刚性的杆子焊死,

    设想它们围绕刚性的杆子飞速地旋转起来。

    量子纠缠:“刚性杆”比喻

    我们管这个就叫量子纠缠。

    杆子转的飞快,A没法说他手边这个硬币是向上还是向下的,除非他

    “啪”

    地拍下去,然后看一眼,

    A有一半几率得到硬币向上,另一半几率向下。

    同时假如B立刻在远处观察他手边的硬币的话,所谓观察就是他

    “啪”

    地一下也拍下去,他看到另一硬币的取向一定和A相反,A、B并不需要通信,通过这个“量子机制”就能知道对方手上硬币的取向。

    但可惜硬币可以有很多取向,我们的刚性机制只能保证两个硬币取向恰好相反。

    简化叙述,我们会说取向可以是“上、下”,“左、右”或“前、后”的。

    我们可以沿“上、下”方向拍下去,也可以“左、右”或“前、后”。

    我们约定A每次拍下去的方向是任意的,B在远方也任意地拍他手边的硬币。

    假设第一次,A是上下拍,得到硬币取向是一半上,一半下。不妨假设是“上”。

    但B和A是独立随意地拍硬币,假设B是按“左、右”的取向“拍”。此时会如何呢?

    A端向上,因为量子机制,B端硬币取向应该是向下的,奈何B是“左、右”拍,我们只能说有一半可能是左,一半可能是右。

    不妨假设B端拍下去的结果是“左”。

    类似地我们可以得到一系列结果,并记录如下:

    A 取向 B 取向 匹配
    “上下” “左右” No
    “上下” “上下” Yes
    “左右” “上下” No
    “前后” “前后” Yes
    “左右” “左右” Yes
    “上下” “前后” No

    ...

    这个记录可以很长,在做完如上操作后,A、B在互相告诉对方拍下硬币的取向。

    就是A说

    “上下”、“上下”、“左右”……

    B说

    “左右”、“上下”、“上下”……

    在说这些信息的时候,拍硬币的动作已经完成了,所以不怕C偷听到。

    A、B知道这个信息很有用,他们可以把不匹配的测量都划掉(对应这里,就是我标“No”的那些),剩下的就是“秘钥”了,A、B并不需要直接告诉对方秘钥是什么,就已经知道了。

    假如C硬要偷听会如何呢?

    假设C成功地偷听,所谓成功偷听就是C在B之前就偷偷地捉到了硬币,并抢先拍了下去。

    但C并不知道A、B是延什么方向拍硬币的,同时A、B都是随机地按不同方向拍硬币。

    C只好也随机地拍下去。

    可能拍下去的取向和B的选择相同,也可能不相同。几率都不是0

    考虑ABC可以有不同拍硬币的取向,我们可以选取以下两种情况进行讨论:

    第一种,ABC拍硬币的方向都相同,A上导致C下,C得到下后,再把它传给B,B将也得到下。

    A C B

    此时B无法判断是否被偷听。

    第二种,C拍下去的方向和AB拍下去的方向不同,同时AB拍下去的方向相同:

    A C B

    A得到上,假如不被C偷听的话,B一定是下。但C偷听了,并恰好选取的是左右方向,假设得到右,B是对“右向”硬币沿上下方向拍下去,有一半几率上,一半几率下,不妨假设正好是上(无人偷听应该是下)。

    如果A、B互相交流一下他们的硬币取向簿记结果的话,他们就会发现:

    被人偷听了!

    这个过程,可以称之为校验。对校验的部分,不仅拍硬币的取向A、B需要互相交流,拍硬币的结果(即取向簿记)也需要互相告知对方。

    可以想象这是一串数字,只要这串数字够长,将能发现是否被偷听。

    假如校验后,发现A上一定对应B下,A左一定对应B右,A前一定对应B后,则说明没有人偷听。

    我们可以这么构造生成秘钥的过程,在最终簿记结果中随机选取“校验”和“真实”的部分。

    校验部分,发送“拍下硬币方向+硬币取向”结果给对方,真实部分只发送拍下去的方向,不发送硬币取向。假使校验部分百分百相合的话,说明无人偷听,秘钥有效。但如果并非百分百相合,而是特定百分比的话,则说明有人偷听,秘钥无效,需要重新生成。

    参考链接

    什么时候咱们也众筹颗纳卫星吧~

    (这篇文章挺有意思,它告诉我们老外在用纳卫星做和中国科学家类似的事儿,当然花的钱会少很多。)

    相关文章

      网友评论

        本文标题:量子秘钥为什么无法被第三方截获

        本文链接:https://www.haomeiwen.com/subject/haqtettx.html