在很早很早以前,我们就用各种方式来传递重要信息,比如鸡毛信。看见鸡毛信,就知道事情搞大了。也有用化学药剂的——隐形墨水就是一种方式。通过加热或者用酸就能把事先写在纸上的信息显示出来。不过更保险的方法还是密码。
一般而言,保密通信都可以分为“加密”“接收”“解密”三个过程,发送者将发送内容通过某种加密规则(密钥)转化为密文,接收者在接到密文后采用与加密密钥匹配的解密密钥对密文进行解密,得到传输内容。
密码起作用的方式就像钥匙开锁,发送方和接收方以约定的方式书写信息,接收方可以对照约定的方式把信息还原出来。
图片:中国古代的五环密码铜锁。
古罗马统帅恺撒发明了一种按字母表顺序循环移位的文字加密方法。例如,当规定按字母表顺移3位,那么a就写成d,b写成e,c写成f,…,x写成a,y写成b,z写成c。单词Hello(嗨!)就写成了Khoor。
如果不知道加密方法,谁也不会知道这个词的意思。解密时,只需把所有的字母逆移3位,就能读到正确的文本了。这种移位的原始密码方法至今还在沿用。
比如说薛zq和ly桐的跳轨约定,把这句话用拼音写出来,再把所有的字母都后推一位,即a-b,b-c、以此类推,那么lyt收到这样一条微信:
xibu xjmm zpv qmbo up ep jg zpv yy xjui puifst bhbjo?
有兴趣的朋友就可以自行破译了。
这个方法在数学上有一个很高大上的名称叫置换群。就是把某些信息按照一定的规律进行排列,然后多写几次,当这些排列的方式满足一定的性质,就可以称为置换群了。解密是件很困难的事情,随着数学的发展,代数数论成为解密强有力的工具,具体怎么说,说了你也不懂.......当然,我也不懂。
还有一种办法,就是利用统计的办法来破译密码。如果给出整段的文字,可以统计一下哪个字母出现的频率最高,十有八九就对应到了。这些都是最最基本的加密和解密的知识,只是用来说明问题。如果真的用这么简单的方法加密,情报机构估计就要目瞪口呆了。
英文中最常用的字母是e,美国康奈尔大学曾做过一个统计,24个字母在英语中出现的频率:
a 8.167% b 1.492% c 2.782%
d 4.253% e 12.702% f 2.228%
g 2.015% h 6.094% i 6.966%
j 0.153% k 0.772% l 4.025%
m 2.406% n 6.749% o 7.507%
p 1.929% q 0.095% r 5.987%
s 6.327% t 9.056% u 2.758%
v 0.978% w 2.360% x 0.150%
y 1.974% z 0.074%
传统的密码破译工作人员大都是语言专家、猜谜高手和象棋冠军。二战时期,大量的数学家和统计学家知识应用于密码破译和分析,密码学进入了一个新的历史时期。
应用统计频率破译密码的最经典战例是在二战时期。美国海军夏威夷情报站站长约瑟夫·罗谢福特,他是一位天才般的密码专家,他甚至能打开他不知道密码的保险柜。他的同事们都认为他有特异功能,称他是“魔术师”。1940年,他帮助破解了日本海军的行动代码JN-25。正是由于得到了他的关于日军企图攻占中途岛的报告,美国海军才派遣第十七特遣舰队参加了珊瑚海的战斗。
在日军一系列发过太平洋的电报中,最引人注目的是“AF”两个字母,根据长期以来破译的日军通信中显示,日军通常用A起头的两个字母作为中太平洋一些地区的代号,如AH是珍珠港,AG是马绍尔。AF这一代号显然表示某一大军事行动的地点。美军的破译小组发现,在早期一份袭击珍珠港的日方电报中曾经提到“AF”。电文说水上飞机奉命到“AF”附近的珊瑚小岛上加油。因此他们推断,“AF”可能是指中途岛。 为了进一步查实,中途岛上的海军司令部受命用初级密码拍了一份作为诱饵的无线电报,报告中途岛上的淡水设备发生故障。
图片:日本的恩尼格玛密码机
果然不久以后,美军截获的一份日军密码电报声称:AF可能缺少淡水。 经过这一证实,尼米兹决定把太平洋上所有的三艘航空母舰全部调集到中途岛附近,准备给日军迎头痛击。同时还增加了中途岛上的守军,并在岛上加强修筑工事。1942年6月3日,日军对中途岛如期发动攻击,双方鏖战一整天,最后以日军的惨败而告终。
日军电报的莫尔斯电码密码本,是对应平假片假名,音译文字比较好破译。像美军二战发电报的时候,多用印第安单词或者凯尔特单词,比如美军把 TANK 译作panzer ,日本要破译这些单词,还是要费一些功夫。而中文则更加复杂,博大精深,是四个数字对一个汉字,就算找到了密码本,破译电码也是非常恼火的事情。
汉语的词汇比较有意思,试试让美国佬破译以下这段汉字,能译出来算我输:
羿裔熠,邑彝,义医,艺诣。熠姨遗一裔伊,伊仪迤,衣旖,异奕矣。熠意伊矣,易衣以贻伊,伊遗衣,衣异衣以意异熠,熠抑矣。伊驿邑,弋一翳,弈毅。毅仪奕,诣弈,衣异,意逸。毅诣伊,益伊,伊怡,已臆毅矣,毅亦怡伊。翌,伊亦弈毅。毅以蜴贻伊,伊亦贻衣以毅。伊疫,呓毅,癔异矣,倚椅咿咿,毅亦咿咿。毅诣熠,意以熠,议熠医伊,熠懿毅,意役毅逸。毅以熠宜伊,翼逸。熠驿邑以医伊,疑伊胰痍,以蚁医伊,伊遗异,溢,伊咦。熠移伊,刈薏以医,伊益矣。伊忆毅,亦呓毅矣,熠意伊毅已逸,熠意役伊。伊异,噫,缢。熠癔,亦缢。
对付高频子母统计破译法,反破译的方法其实也很简单。那就是加入信息污染,增加无意义词组的数量。例如远航潜艇使用的长波通信,接收电文的速度特别慢,每分钟只有几个字节,接收一份完整的电文需要半小时或更长时间。所以各国海军在拍发长波通信电文的正文时,通常只有几个事先约定的字母,或一句话。美国海军通常一封长波通信电文的正文只有三个字母,大多数是上浮然后改用短波通信的命令,就这个三个字母的正文,如果加上校验码和防伪乱码,接收完整也需要15分钟。
再加上二次电文确认就需要半小时。因为远距离通信的信号质量非常差,所以要采取很多措施。必然重要的事情说三遍:就是一条电报要反复拍几次,直到确保潜艇收到这条电文为止。
加入防伪乱码就是避免让敌方根据统计规模破译出长波通信的电文。军用通信的一个特征,是需要进行严格的加密和防伪校验。防伪校验就是在电文里插入各种乱码和无意义的信息。前缀和后缀都是约定的记号,这样就能防止其他人伪造电报了。现在的防伪校验码非常长,而且不是传统的约定暗号,是计算机校验程序生成的不断变化的数据。当信号质量差的时候,还要在通信数据中相当于原报文200%的数据,来避免通信出现误码。
最原始的加密通信是使用密语。例如上图为1943年12月,在所罗门群岛的一处海滩上,美军第158步兵师的几名印第安人的纳瓦霍族战士穿着传统服装庆祝圣诞节。纳瓦霍族最有名的是纳瓦霍语,外族无法听懂。这种口语密码在军事上几乎不可破译。二战中曾有3600多名纳瓦霍人在军中服役,其中有420名是纳瓦霍语密码译员。作战经历可参看电影《风语者》。我军在战争中也使用过类似的通信方式。
我们发现,加密过的文件固然重要,但是约定的方式也很重要。如果掌握了加密方式,那么原文再复杂要破译也是分分钟的事情。在革命战争年代,机要员是配手枪的,作用就是为了避免被敌人活捉,避免密码本被缴获。一旦密码被敌人掌握,那付出的代价将极为惨重。
由于传统数学加密的密码,在理论上都可以破译,如何管理密码成为一门大学问。也就是说,我明知你能破译我的密码,但我还通过密码管理,仍能确保通信安全。现代军队都将密码划分为几个级别,不同重要程度的信息使用不同等级的密码。高级别的密码,破译需要的时间非常多,等破译出来,这条信息可能已经失去情报效力。
现代的加密和解密技术往往是多种技术混合的,配合硬件水平的提升,这场斗智斗勇的游戏现在越玩越high。那么,有没有一种绝对安全可靠,不能被破译的密码存在呢?
当然是有的,例如目前越来越受到重视的量子通信,具有超高安全、超大容量、超远距离保密通信、传输系统几乎无法破译等特点,世界各国都对此充满期待。而中国科学技术大学的研究成果,则让我国走在了该项技术的前沿。中国2016年8月发射了墨子号量子科学实验卫星,完成了人类首次卫星和地面之间的量子通信。