无敌的量子通信


​ 当所有的密码都可以秒破,只有量子通信可以做到无条件安全。

​ 未来,已来。


由一枚硬币开启的超距传输

​ 喂,年轻人!我看你骨骼精奇,是万中无一的创业奇才。

​ 我这里有一对魔法硬币,与你有缘,就十块钱卖给你吧!

​ 别看它长得和普通的一元硬币差不多,这种硬币有一项神奇的技能点:

​ 就算相隔千山万水,只要一枚硬币翻到正面朝上,成对的另一枚硬币一定会瞬间自动翻到反面朝上。

​ 你想啊,这种硬币如果做成情侣版,肯定大卖!尤其是异地恋:

​ 你和你伴侣人手一枚,你在北京不断抛硬币 A,发出「正正反反」之类的信号,她在西雅图的硬币 B 就会自动变成「反反正正」,编码成「0011……」,再转成 ASCII 码就是:

​ I LOVE U

​ 理工男的浪漫,你懂不懂!

​ 再想想,如果能好好包装一把,还能卖给国家航天局、NASA 之类的土豪机构!

​ 从月球到地球 38 万公里,电磁波信号需要走 2 秒多。月球的宇航员别说游戏玩不了,打个电话都卡死机。火星就更远啦,1 亿公里,得延迟 5 分钟!

​ 但是用无延迟的魔法硬币做星际通信,网游不卡了,电话不等了,干啥都流畅!

​ 要问魔法硬币有没有缺点?

​ 你还别说,是有个小问题,不过不影响使用啦——就是每次抛硬币时,翻到正面还是反面,要看人品(喂,喂!年轻人,别走啊…… )

​ 好啦!以上故事是玩笑,但魔法硬币可不是玩笑。

​ 用量子纠缠态的一对孪生粒子,自旋向上=硬币正面,自旋向下=硬币反面,就能做出如假包换的「魔法硬币」。

​ 无论相隔多远的距离,处于「纠缠态」两个孪生粒子就像有心灵感应般,零延迟、发生同步反应。如果把孪生粒子放在两地,在地球观测粒子 A 发现自旋向上,火星上的粒子 B 会因此而瞬间变成自旋向下,仿佛两个粒子之间始终有一道穿越时空的纽带——这就是传说中的「超距作用」。

​ 因为 A 的粒子自旋态始终和 B 的相反,所以地球人只需观测一下粒子 A,就能实时改变粒子 B 被火星人观测到的自旋态。当火星人读取出 B 的自旋态时,相当于接收到了地球发来的一个比特。

​ 如果把孪生粒子比作一对魔法硬币,通信双方重复以上步骤、通过「抛量子硬币」传送信号的方式,就叫作量子通信。

​ 问题在于,就算拥有把爱因斯坦吓傻的超能力「超距作用」,量子通信却没法用来瞬时传数据!

​ 因为,每次硬币(自旋)是正是反,是个完全随机事件,不要说控制,连影响都做不到。你想发「正正反反」,它给你来个「反正反正」——试想如果不能畅所欲言,对方接收到的都是乱码,还谈何通信呢?

​ 既然发的是一团乱码,那么就算能够穿越宇宙瞬时传送,也称不上是真正的通信。

​ 爱因斯坦当年杞人忧天的「超光速通信」问题,就这样被「随机性乱码」天衣无缝地解决了。

​ 要想用量子传点有意义的东西,解决的办法只有一个:

​ 用量子通信发完「反正反正」之后,赶紧再用微信给对方补个留言「错对对错」,告诉他哪些信号是发错的,让他自己纠正。

​ 也就是说,对方收到量子信息虽然是瞬时的,但要从一团乱码中找出真正的意义,还得靠传统通信方式,微信、电话延迟多久,量子通信就延迟多久。你是不是在想:既然如此,不如我直接发个微信得了,还要用量子通信干吗?

​ 所以,只有聪明人才能看出,量子通信真正的威力。


无条件安全,可能吗?

​ 每次我和朋友聊起「无条件安全」的量子通信,几乎所有人都认为我在吹牛。

​ 大多数人直觉上认为,凡事无绝对。

​ 你说破解难度很高,OK;说 99.99% 安全,或许吧;但打死我也不信,世界上存在无懈可击的东西。

​ 但是他们忘了,绝对安全的加密通信,其实早在 75 年前就被发现了。1941 年,信息论的祖师爷香农,在数学上严格证明了:不知道密码就绝对无法破解的安全系统,是存在的。

​ 而且,更令人惊讶的是,这种绝对安全的密码出人意料的简单——只需符合以下 3 个条件:

  • 一次一密:每传一条信息都用不同的密钥加密,断了敌人截获一本密码本后,一劳永逸的妄想;
  • 随机密钥:生成的密钥是完全随机的,不可预测,不可重现,破解者更不可能猜出规律,自己生成所有密钥;
  • 明密等长:密钥长度至少要和明文(传输的内容)一样长,破解者穷举所有密钥,相当于穷举所有可能的明文。

​ 谁要是有本事通过穷举猜出明文,还来劳什子破解密钥干吗?

​ 奇怪的是,香农发明「无条件安全」的 75 年后,我们居然还没能用上这个黑科技。因为在当时的技术条件下,要同时符合这 3 个要求根本不可能!

​ 先说「随机密钥」:请计算机程序 rand() 生成的随机数其实 并不是真正的随机,理论上,如果知道已经产生的随机数,就有可能获得接下来的随机数序列(可预测)。

​ 再看「明密等长」:如果我能轻松吧这么长的密钥安全地发送给对方,为什么不干脆发送明文呢?这样岂不是多此一举?

​ 最后「一次一密」:每发一次信息就要更新密钥,但通信双方又不能天天见面接头,否则还要加密通信干什么?

​ 然而,在不计成本的最高级别通信场合下,「一次一密」还真的用上了。

​ 比如先编写一部超级长的密码本,派特工直接交到对方手里,然后双方就可以暂时安全通信了。

​ 仅仅是暂时。

​ 密码本用完之后,特工又得出动再送一本新的……(007:你以为我是快递小哥吗?)

​ 就这样,我们研究了 75 年的密码学,什么对称加密、非对称加密(RSA)和黑客们展开了无数次「道高一尺魔高一丈」的攻防大战……

​ 直到我们遇见了香农 75 年前预言的密码学终极形态:无条件安全的量子通信。75 年前没有人能想到,那些「看上去几乎不可能实现」的三大要求,简直就是为量子通信量身定做的。

​ 就拿最简单的量子通信协议——孪生粒子的量子纠缠来举个例子:

  1. 随机密钥:服务器生成一对孪生粒子 A 和 B,分别发送给通信双方。注意,A、B 被观测后的自旋状态是完全随机的,不要说敌人,就连自己人都看不出规律来!
  2. 明密等长:要发送的「正正反反」是明文编码,量子通信随机产生的「反正反正」相当于密钥,微信发送的纠错码「错对对错」是加密后的传送内容。此时,正文、密钥、纠错码,三者的长度完全相同。
  3. 一次一密:为了发送 4 个比特的明文编码「正正反反」,服务器总共生成了 4 次随机密钥,每次传输 1 比特明文,都有 1 比特密钥保驾护航。

​ 此时,破解的可能性,不是万分之一,也不是亿万分之一,就是 0。而且,最令人不可思议的是,量子通信不仅无法破解,还自带反窃听属性。就算敌人截获了每一次密钥,同时拿到了「正正反反」「反正反正」「错对对错」三条信息,量子通信仍然是安全的!

​ 下面,就是见证奇迹的时刻。


反窃听,掌握主动权

​ 量子通信为啥能反窃听?

​ 因为量子世界三大定律之一:测不准原理。如果敌人想要截获量子密钥,必须先截获 A、B 两个纠缠态粒子,然后测一下自旋态。

​ 问题就出在这里。

​ 量子态不是先天决定的,而是被你的测量决定的:你测了,它就从魔法般的量子纠缠态,变成平淡无奇的确定态了。

​ 还记得前面提到的工程师贝尔吗?

​ 他发明的「贝尔不等式」原理,就是用来检测纠缠态粒子之间是否存在「超距作用」。

​ 当被敌人测过的 A、B 粒子到达我们的同志手中,他们只要做一件事,就能看出量子密钥是否被动过手脚:用阿斯派克特实验验证贝尔不等式——如果发现 A、B 之间的超距作用已然消失,只能说明一件事:在我方测量之前,已经有人测过了。

​ 虽然在原理上,通过验证贝尔不等式已经足以确保信道的安全,然而在实际应用中,做阿斯派克特实验实在太麻烦了。所以量子通信卫星「墨子号」用的是更先进的量子密钥分配协议——BB84 协议。和原版量子纠缠通信的不同之处在于,它利用光子的偏振方向(而非自旋态)产生随机化的 0 和 1(量子比特)。

​ 当然,BB84 的安全性同样依靠量子「测不准原理」:窃听者对量子信号的测量会改变信号本身,导致接收方收到的信号中乱码大增,从而暴露了自身的存在。

​ 从军事的角度来说,比无法破解的通信更安全的,是无法窃听的通信;比无法窃听的通信更安全的,是能发现窃听者的通信;比能发现窃听者的通信更安全的,是我能发现有人窃听,但窃听者却不知道被我发现了的通信。

​ 「不被窃听」很重要,「发现窃听者」很重要,这些都容易理解,但为什么「窃听者不知道被我发现」更重要呢?

​ 因为,如果窃听者不知道他已经暴露了,我军可以将计就计,故意发一些假消息引君入瓮!把谍战的主动权抓到自己手中,在军事上,比被动地单纯反窃听更管用。

​ 就拿二战的逆转战役「诺曼底登陆」来说,其实希特勒早就料到盟军会把赌注押在诺曼底,但盟军情报部门用了一年的时间给德军传送假情报,发出几千封加密电报供德军破译,硬是忽悠得元首大人连自己都不相信了。

​ 量子通信就属于第三种:「我方可以轻松发现窃听,而窃听者却不知道被我发现」的加密通信,而且是当今所有已知加密手段中,唯一能做到第三层次的技术。

​ 当然,窃听者也知道量子通信的厉害。正因为如此,没有哪个间谍敢随便窃听量子通信的信息,就算窃听到了也没人信:我怎么确定这次窃听到的情报不会把元首坑死?

​ 而攻击量子通信的唯一方法,不是窃听、破解,只能是干扰:例如用强激光照射接收器将其「致盲」,量子信道被干扰成乱码,把敌我双方拉回到同一起跑线。

​ 毕竟,量子通信的特长是反窃听,而不是抗干扰。

​ 但这称不上是量子通信的弱点。其他所有传统通信方式,在干扰下都会难以为继,「无条件不受干扰」的通信,目前还没发明出来呢。


最强之矛与最强之盾

​ 量子通信卫星「墨子号」上天之后,立刻遭到了某些民科的抵制。

​ 有说阴谋论的,有说浪费纳税人钱的,就是没有一个能说清量子通信究竟是怎么回事。

​ 不过,在这群流言之中,让我印象最深的,是一个网友的发帖。

​ 前 4 个问题,看完前面的内容,读者应该都可以自己回答了。不过,起码人家还说对了一点:「目前的加密系统早就超过实际所需了,你啥时听过有银行是因为信息窃听被破解的?」

​ 讲真,目前的加密系统并不是没法破解,而是破解成本太高。就拿银行最常用的非对称加密算法 RSA 来说,2009 年,为了攻破一枚 768 比特的 RSA 密钥,一台超级计算机足足算了几个月,这几乎是当今计算机性能的极限!

​ 虽然理论上,RSA-768 已不再安全,但由于 RSA 算法的破解难度随着密钥长度指数级上升,所以让 RSA 再次固若金汤非常简单:把密钥位数加长到 1024 比特,就会让破解时间增加 1000 多倍。

​ 其实,现在网上交易最普遍的 RSA 密钥,至少是 2048 比特。然而,在互联网时代大获成功的 RSA 加密,真的能让我们高枕无忧地用上 500 年吗?

​ 未必!

​ RSA 加密的前提是「加密容易解密难」。在 RSA 的核心算法中,用到了大数因式分解:把两个素数相乘(A*B=C),比把这个乘积 C 做因式分解还原出 A 和 B 容易得多,数字 C 的位数越多,因式分解的时间就越长。

​ 但是,有没有这样一种可能:随着算力越来越强,解密的时间越来越短,会不会有朝一日再长的密码都可以秒破呢?甚至,有没有可能出现,解密的速度比加密还快的尴尬局面?

​ 这就是困扰计算机系的同学们 50 年的经典问题:P 是否等于 NP?

​ P 就是能在多项式时间内解决的问题,NP 就是能在多项式时间验证答案正确与否的问题。抛开复杂的定义不谈,P=NP 实际上问的是:如果答案的对错可以很快验证,它是否也可以很快计算?

​ 一开始人们觉得,P 显然不等于 NP。

​ 比如,「找出大数 53308290611 是哪两个数的乘积?」很难,但要问「224737 是否可以整除53308290611?」这小学生都会算。

​ 在密码学领域,这正好是我们想要的结果:加密(相乘)容易解密(因式分解)难。

​ 如果 P=NP,就势必存在一种算法,使得对 53308290611 做因式分解和验证 224737 是否是因子一样快(加密和解密同样容易)。

​ 如果 P 真的等于 NP,为什么这么多年,都没人想出这种逆天的算法呢?

​ 然而,令人细思恐极的是,我们至今还没法严格证明 P 不等于 NP,反而有人发现,在某种特定的计算模型下:P=NP 竟然是成立的!

​ 这种 「特定的计算模型」 叫作 量子计算机 。和非 0 即 1 的传统计算机不同,量子计算机的「量子比特」可以处于「既是 0 又是 1」的量子态。

​ 在量子世界,这种不可思议的「既死又活」,反而是最平常的现象:量子叠加态。还记得薛老师那只不死不活、又死又活的混沌猫吗?

​ 量子叠加,使得量子计算机具有传统计算机做梦都想不到的超能力:

​ 在一次运算中,同时对 2^N 个输入数进行计算。

​ 举例说:

​ 如果变量 X=0,运行 A 逻辑;

​ 如果变量 X=1,则运行 B 逻辑。

​ 这种最普通不过的条件判断程序,在传统计算机内部,永远只会执行 A 或 B 的一种逻辑分支,除非把 X=0 和 X=1 的两种情况各运行 1 次(共运行 2 次)。

​ 但对于量子计算机,A 和 B 在一次计算中就同时执行了,因为变量 X 是量子叠加态,既等于 0,又等于 1,这就意味着,普通计算机要算 2 次的程序,量子计算机只需算 1 次。

​ 如果把量子比特的数量增加到 2个:

​ 如果变量 X=00,运行 A;

​ 如果变量 X=01,运行 B;

​ 如果变量 X=10,运行 C;

​ 如果变量 X=11,运行 D。

​ 有了 2 个量子比特,普通计算机要算 4 次的程序,量子计算机也只要算 1 次。

​ 如果把量子比特加到 10 个,那么普通计算机要算 2^10=1024 次,或用 1024 个 CPU 同时算的程序,量子计算机只需要用 1 个 CPU 算 1 次。

​ 看出问题的严重性了吗?

​ 把量子比特加到 100 个以上,那么,当今地球上 所有计算机同时运行 100 万年的工作量,量子计算机干完只要几分钟

​ 对于曾经需要消耗巨大算力才能破解的 RSA 加密,这是一个灾难性的未来。

​ 1994 年,全球 1600 个工作站同时运算了 8 个月,才破解了 129 位的 RSA 密钥。若用同样的算力,破解 250 位 RSA 要用 80 万年,1000 位则要 10^25 年——而对于量子计算机,1000 位数的因式分解连 1 秒钟都不到。

​ 在量子计算机的最强之矛面前,现在最流行的 RSA 加密将无密可保,所有基于 RSA 的金融系统将瞬间变成透明人。

​ 唯一能防住量子计算机的,只有最强之盾:量子加密通信。

​ 和 RSA 等依赖计算复杂度增加破解成本的加密方式不同, 量子加密通信是「无条件安全」的,对量子计算机的恐怖计算能力先天免疫

​ 虽然量子比特的制备极为困难,目前最高纪录只有可怜的 5 个量子比特,但谁也不知道,量子计算机的爆发——或者说传统加密的末日,将会在何时到来。

​ 这就是为什么,在广大人民群众一片「看不懂」的声音中:量子通信卫星「墨子号」上天了;京沪量子通信干线快建成了;工商银行在北京用上了量子通信做同城加密传输;阿里云的数据中心已经在用量子通信组网。

​ 暂时落后的欧盟,也信誓旦旦,要在 2018 年投入 10 亿欧元做量子通信。

​ 就连扎克伯格未满月的女儿,都让他爹读《宝宝的量子物理学》。

​ 你还觉得这种高深的学问,懂不懂也没什么关系,反正全世界也没几个人能懂?

​ 未来,已来。



「完」


闪耀的小星星🌟