番外:量子加密
最近,量子卫星的发射是个比较热的热点。我们国家还给起了个比较有文化的名字叫做墨子。我这回就来凑个热闹。讲讲量子加密的问题。本系列叫做《量子力学外传》啊。碰着这事儿,显然是不能放过。因此插进来一个量子加密的专集。
加密这事儿,其实是个跟通讯一样古老的事儿了。自打发明了书信这种东西。那加密也就跟着来了。因为你总有些事儿是不想让别人知道的啊。而且越是不惜那个被人知道的东西,还越是重要啊。你看我国古代,大将出征都要带着阴符。这东西就是某种加密工具。姜子牙的六韬里面就写过,不同长度的阴符就代表了不同的含义啊。一共有8种长度。这是算是最简单的一种加密的方式了。欧洲人更进一步,他们动用了一种加密方式叫做“移位码”。斯巴达人就采用这种思路。当然啦,也跟他们的字母文字有关系。字母文字特别适合打乱顺序乱排。他们拿根带子,缠在一根棍子上。然后再带子上书写文字。等到把带子从棍子上解下来,原先的字母都变得乱七八糟。只有一圈圈的缠绕到相同直径的棍子上,那些字母才有规律。才能看得懂。这就是最简单的移位码。斯巴达人叫做天书密码。那个棍子,就是解密的密钥。要是你的密钥不对。那么就没法揭盖这一堆的乱码。当然字母文字还可以用另外一种加密方式,那就是把字母换成其他的符号。这样你就看不懂了嘛。最著名的,那就是柯南道尔的著名侦探小说《福尔摩斯探案集》里面描述的那种叫做跳舞的小人。这就是一种密码。当然,柯南道尔是有科学素养的作家。他最后描述的破案过程也符合密码学的破解原理。要知道英语里面,出现最多的字母是e。那么好了只要收集足够多的跳舞小人符号。咱们先数数那个符号出现最多,那就好办了。我就当他是英文字母e。然后解密过程,就跟填字游戏差不太多了。你要仅仅是用一套符号,固定的去替换字母,那么很容易就用频率法给你破开。
你可能会是说啊。那是英文字母太少了啊。字母算上数字和标点,也就那几十个。你换中文试试。对于中文这种成千上万的汉字来讲。你拿频率来破解就不好使了吧。我们中文也有密码系统。对啊,没错,当年李鸿章引进了电报系统,他就要解决这个问题啊。汉字要编码,然后这个编码要保密。别让日本人知道啊。可是最后啊,日本人还是知道了。那日本人是怎么知道李鸿章的电报密码的呢?他们用了一个现在的黑客常用的办法,叫做“已知明文攻击”。我们管加密后的信息叫做密文,没加密的叫明文。你要是截获了一份密文,你横看不懂,竖看也不懂。假如,这份密文跟一份已知的明文是一一对应关系,那么编码规律,你不就全知道了嘛。日本人给了大清朝驻日使馆一份又臭又长的文件。需要电告李中堂。日文翻译成中文,那可麻烦。大家一看,日本人已经给翻译好了,有中文版。那好吧,就那这份中文版,翻译成电报密码。就发回了国内。日本人趴在电线上,全给截获了。他们就猜,大清的使馆肯定偷懒,直接用日本人提供的中文版,发回国内报告。日本人把抄收到的电报稿跟那份中文版一对照。马上就把电报码给破出来了。后来李中堂到马关谈判,跟国内光绪皇帝的电报往来,全被人家给截获。人家对李中堂的底牌是一清二楚啊。大清朝能不吃亏吗。可见保密通信有多重要。
密码是要不断的更换的。你要是勤快点儿,那么就不至于一直泄密了吧。德国人想到了另外的办法。那就是利用机械来干这件事儿。不依赖人去编写密码。德国人发明了一种非常厉害的密码机,叫做“迷”。音译叫做“恩尼格玛”。利用机械原理,密码每个字都不一样。这东西没法用人去解码。必须利用另外一台恩尼格玛密码机来还原被加密的密文。德国人对这东西很信赖啊。他们觉得这东西是不可破解的。然后他们就在第二次世界大战里面放心大胆的使用了恩尼格玛密码机。然后就把英国人给惹毛了。英国人在布莱齐雷庄园里面汇集了顶尖的数学家、国际象棋冠军、填字游戏高手、翻译。反正他们网罗了所有的跟密码沾边儿的奇才。大家齐心协力来破解德国的恩尼格玛密码机。最终搞定这事儿的人,那就是大名鼎鼎的数学家,艾伦图灵。艾伦图灵用到的办法其实是野蛮暴力的去不断尝试。人手破解搞不定,那么咱么就霸王硬上弓啊,咱们也用机械。图灵可以说是制造了一台奇怪的机械怪物。他有成百上千的个转子。这些转子噼啪乱转,用不了多少时间,就能把德国人的密码给破译出来。正是这种机器,最后发展成了人类最强大的一类工具,这种工具,就是计算机。
看来机械加密还是不保险啊,有没有更保险的呢?有啊,美国那瓦霍印第安人,人数极其稀少。他们的语言,没人懂啊。就直接让他们当通信兵。对着报话机稀里哗啦的一顿讲,反正别人也听不懂啊。我国这方面也有优势啊。温州一带的方言,我们中国人都不懂,别说外国人了。温州话号称叫恶魔的语言。可是语言通信的效率不敢恭维。而且局限太大。我这儿有一幅照片。你说用你温州话怎么传输图像啊?必须转换成计算机数据才行啊。
到了二战以后。大家就发现。像德国人那种加密方式,还是太脆弱了。需要出在原理上就没法破解的加密方式。笼统的说,也就是两种。一种叫对称加密。一种叫非对称加密。恩尼格玛密码机,就是一种对称加密。用一把钥匙把锁给锁上,然后用同一把钥匙把锁打开。加密解密,用的密钥是同一个。这叫做对称加密。还有一种叫做非对称加密。比如雍正皇帝发明的密奏制度。底下大臣给皇帝写了密折,匣子有锁,大臣用钥匙给锁上。然后兵部快马,六百里加急送到紫禁城。皇帝这里也有一把钥匙,也能打开。皇帝的钥匙跟大臣的不一样。并不是同一把钥匙。底下有专折奏事职权的大臣不止一个。他们只能一把钥匙开一把锁。开不了别人的密奏匣。皇帝都可以打开。这就叫非对称加密,雍正爷或者乾隆爷手里的就是私钥。大臣手里的就是公钥。现在绝大部分加密是用的非对称加密。
非对称加密,现在从数学上讲,是非常难破解的。不是不可能,而是时间太漫长。等你解出来,黄花菜都凉了。钥匙加密的位数高一点儿,恐怕你解到地老天荒也解不出来。机密信息都有时效性。太慢了等于没用。非对称加密,常常会用到质因子分解。一个129位的超大数字要分解成一个64位的质数和一个65位的质数相乘的形式。在1977年需要400万年。到了1994年,计算机强大了很多,需要8个月才能算出来。大家也觉得,这东西很安全,哪怕算法告诉你,你也破不开。所以现在电子商务、网络金融,都很依赖这玩意儿。国家安全更是依赖于加密技术。可是,地平线上出现了新的威胁。有一种技术已经露出了一线曙光。这种技术,叫做量子计算。量子计算,对于某些算法。很可能瞬间就算完了。过去破解你的密码要算到天荒地老。现在,也可能就是分分钟的事儿。就比如前面提到的那个129位数的质因子分解,对于量子计算机来讲,1秒就搞定啊。这可麻烦了。看来现在的加密算法,还是有隐患的。那该怎么办的?那就必须去寻找理论上就不可破解的加密方法。这种办法有吗?还真有。而且还是名家出手。提出这个办法的人,就是信息论的创立者,香农。今年是香农诞生100周年。他是个对我们今天的生活有着重大影响的人物。他证明了,假如用一个跟明文一样长的密钥,跟明文做一次简单的异或操作。密钥只用一次,下一次就换个密钥。说白了就是要做到所谓的“一次一密”。这样的话。理论上彻底没法破解。
那么麻烦跟着又来了。对称加密啊,而且是一次一密。那么你必须把密钥也一起传递给对方对方才能看得懂啊。而且密钥还要传好多次。万一人家把信息截获了,那不是全解出来了。你看美国西部片,一帮强盗爬上电线杆子,偷听电报信号。然后就知道运金子的火车来不来。你怎么防止别人去偷听呢?这还是要用到一个非常有意思的协议,叫做BB84协议。提出这个协议的两位名字开头字母都是B。1984年提出的。因此叫BB84协议。当时没引起多大的风浪。因为他们自己都没啥信心。量子这东西,实现起来太麻烦了。首先,我必须说明啊。BB84协议。并没有用到量子力学里面的量子纠缠。那么BB84协议为啥号称是量子通信呢。因为BB84协议不依靠强度来传递信息。而是靠光子的偏振性来传递信息。而且必须是单光子的。也就是说,必须一个一个光子打出去才行。不能一次打一大堆。这可比一般的激光通信麻烦多了。
量子加密其实就利用了量子力学的几个特征。首先是光子不可分割。你不能把一个光子剁两半,一半放过去,一半我留下偷窥。那是显然办不到的。那能不能clone一个一模一样的呢。量子是不可克隆的。你没法搞出个一模一样的量子来。这是量子加密利用的基本物理规律。
我们来大致描述一下,BB84协议。首先是要能控制激光器。一个一个的发射光子。我们认为设定了光子的偏振方向。要么是横着的,要么是竖着的,要么45度斜着,要么135度斜着。一共就4个状态。接受端拿个检验器就可以检验出来。接收端有两个检验器。一个是十字型。一个是X型的。十字型的能通过横偏振和竖偏振的光子。X型的能通过斜向偏振的光子。然后呢。发送端就发射一串的光子过去。接收端就接受到了一串光子。接收端随机更换检验器。一会儿用十字星,一会儿用X型的。有人说这不是乱来嘛。对啊。就是乱来啊。没关系的。等着一串光子都接收到了。
接收端把自己用的是十字还是X,全都报告给发送端。发送端当然知道自己发送的光子偏振方向。当然也就知道,因该用哪个过滤器才能通过。现在呢接收端因为乱用+和X。导致有一半错掉了。于是发射端告诉接收端。第几位第几位过滤器选错了。结果不准。把这些为抛弃。剩下的应该都是争取的结果。于是接收端有了一大串的0101010101.就拿这串数字当作密钥来解密就可以了。密钥用这个方式发送。即便是双方喊话被人听见。也没法知道密钥是啥。通过经典信道传密文。量子信道传密钥。即便经典信道有人窃听。他们也没法解密。量子信道能不能窃听呢?答案是不行。你想听啊。要是有人在中间监听。必定会干扰光子的偏振态。哪怕他仅仅干扰了一个光子。错误率也会上升。干扰的越多上升越快。说白了,稍微一碰,就能被人发现。这就是BB84协议最简单的一个描述。其实语言的描述是很难说清楚的,需要画个图表才能说清楚。理论上讲,BB84的安全性,在理论上已经被证明是正确的。
BB84在理论上被证明是可靠的。并不意味着在实践中是可靠的。涉及到的东西太多。大千世界又太复杂了。单光子源就很难做。BB84必须是单光子啊。利用的就是单个光子的不可分割性。你要是一次打出来一坨光子,那可就不好办了。还有个难度是单光子的接收器。这也很难。单个光子的能量还是太弱了。而且无论是光导纤维还是空气都会有干扰。这对量子密钥的分发都是不利的因素。你很难区别是有人在偷窥还是纯粹的噪音导致的。
有困难总是要一个个的去克服。单光子源很难搞。但是可以用弱相干光源来代替。这个就降低难度了。有个诱骗态的技术,可以降低对单光子的要求。这才使得BB84有了一定的实用性。现在短距离的光纤传输已经开始慢慢的走向实用了。大阅兵和18大,就利用了量子密钥技术来保证通信的安全。美国的国防预研局,好多黑科技的老巢,也在鼓捣量子通信,他们的接收器还应用了超导技术。但是现在光纤最多传输200公里。再远了就太模糊的。需要加中继放大器来放大信号。量子密码分发那是没法用中继放大器的。必须解码以后,重新编码再转发。这就比较麻烦了。但是光在空气里面的比在光纤里面好得多。穿过稠密的大气层也就几十公里厚度,飞500公里还能剩下80%的能量。太空的高真空环境就更加适合激光的传输。海底光缆,美国人可以派弗吉尼亚级核潜艇带上技术专家去海底捞起来偷窥。但是太空激光通信。恐怕美国还没那个本事去窃听。大气层内,阻碍激光通讯的恐怕还是倒霉的天气和雾霾。
这次,我国发射墨子试验卫星。其实也就是为了试试看。到底能不能从地面上一直稳定的跟天上的卫星保持严格的激光通讯。你想啊,那一个光子一个光子的飞向地面。这玩意儿够难的。而且灵敏度要求非常高啊。地面上安排了一大堆的地面站来负责观测和接受卫星的信号。这次主要就是为了试试看,天地之间的密钥分发灵不灵啊。能不能用卫星作为转播器。实现地面上遥远的两点实现通讯啊。比如一头在中国,一头在奥地利。行不行?还有一个是非常重要的,纠缠态分发。BB84协议是不需要使用量子纠缠的。但是新版本E91协议却使用了量子纠缠技术。一对纠缠的量子。一头放在卫星上。一头放在地上。行不行。你怎么能把两颗纠缠的量子给分这么远,同时还保持纠缠性。然后还要进行隐形传态实验。隐形传态,其实就是利用爱因斯坦、波多尔斯基、罗森三个人联合提出的EPR问题为基础的。也并不违反爱因斯坦的光速最大。大概说来是这样的一个过程。一对纠缠的量子,一个放在这边叫A,一个放在那边儿叫B。纠缠态,就好比两个翻滚的硬币。你要不去观察。他们状态就都没有决定。都处于叠加态。你要是一观测。那么波函数就塌缩了,这事儿就确定下来了。薛定谔的猫就这么个原理。如果是A需要传信息给B,那好了。A只要对量子做个观测。就好比硬币被按住了。你观测的这一刻,硬币才被决定哪一面朝上。硬币A跟硬币B,那是一定反着。这时候A这边电话给B。好了这事儿已经定了。正面反面你自己看吧。你看,观察A的一瞬间,A和B就都被决定了。是同时决定的。但是B那边的观察者他只能焦急的等待着A打电话给他。他不能主动去看。他一看B。那么B和A就都瞬间决定了。那么就不是A给B传信息,而是反过来B给A传信息了。方向搞反了。所以呢。B不能看,直到A那边的人打电话通知他看结果。所以说。最后决定传输速度的还是电话。不接到电话不敢看嘛。因此信息传递是不会超光速的。
说了这么多。量子通信现在还是很稚嫩的。好多问题都还有待完善。比如防干扰问题。的确,依靠单个光子还是比较的脆弱。我看有人总是担心,万一人家不是窃听内容。而且跟你撕破脸皮干扰你通信,让你根本就不通该怎么办啊。这个问题,其实是无解的。因为传统的光纤通信也会碰到这个问题。你可能给一锄头就能把光纤给挖断。过去见农村里面写标语:“光缆没铜,偷了没用。”就是这对这种类似问题的脚注。以前也发生过,渔船拽段海底光缆的事故。可见从有光纤那天起,这个问题就一直无解。
好了,有关量子通信,就讲这么多吧。下回我们接着讲量子科学家的故事。正好可以讲到如何裁判爱因斯坦和玻尔谁对谁错。欢迎大家下个礼拜收听。