《码书》:密码学如何改变了人类的历史进程

 

今天为你解读这本书叫马书,副标题解码与编码的战争

这本书讲的是密码学如何改变了人类的历史进程

在人类历史上啊,不管是帝王还是将军,都需要一套高效的通信手段来治理国家和指挥军队

但是他们还有另一个需求,那就是不能让敌人啊获得关键的信息,必须尽量保持机密

连中国古代的易经当中啊都有这样的话,君不密则失臣,尘不密则失身,己是不灭则害成

换句话说啊,如果没有机密就会有危险

孙子兵法里边儿说得更是直接,三君之亲,莫亲于鉴,赏,莫恨于贱,视莫蜜于贱

也就是说啊战争中没有比刺探他人情报

和保护自己的情报更加重要的事情了

所以纵观历史啊,有多少权力的争夺,有多少战火和硝烟,背后啊就有多少秘密

历史上啊无数人发挥自己的聪明才智,努力建造更强的保密系统,也努力攻破别人的保密系统

密码学就是在这场旷日持久的攻防拉锯战中应运而生

甚至有人说啊,历史的标点符号就是密码,打上去的密码决定了战争的胜败,也影响了历史的走向

今天我要为你解读这本马书,就详细梳理了人类编码与解码之间的战争

接下来啊我会分成三个部分为你解读这本书,我们一起沿着历史去看看密码学的三大时代,也就是密码的手工时代、机械时代还有智能时代

我们先来看密码学的第一个时代,密码的手工时代

虽然我们把密码两个字放在一起说,但是实际上啊人类是先花了很多时间研究密,再转而研究码

秘密书信的历史啊其实非常悠远,不过人们最早的思路是想方设法把书信的内容直接隐藏起来

有文献记载啊,在公元前五世纪,希腊和波斯之间正在打仗,一位希腊人啊为了传递秘密信息,会把信息啊写在木板上,然后用一层蜡把木头盖住

收信人拿到木板之后啊,把蜡刮掉就能看到秘密的信息

希腊这边啊还用过更绝的方法,他们会把信使的头发剃光,把秘密信息啊写到信使的头皮上,等信使的头发长出来之后啊,再派他前去送信

到了地方之后呢再把头发给剃了,收信人啊就能看到密信了

这种直接掩盖信息的方法被称为隐匿法,这是最早

我的加密手段,直到近现代啊还一直在使用

今天我们在看谍战片的时候啊,还会经常看到间谍们用隐匿法传递情报,像什么用隐形墨水儿写信啊,或者是把信塞到胶囊里边儿,再让特工吞下去啊,这都是隐秘法,也逆反了寿命这么长,表示这种方法确实很安全

不过隐秘法有一个根本弱点,一旦敌人更加谨慎地搜查,情报就会曝光

这就像是在玩捉迷藏的游戏,只要对方啊认认真真地去找,总是能找到一些蛛丝马迹

于是啊人们开始思考,另一种方法,有没有可能就算敌人找到了那个白纸黑字儿的信息,但是依然看不明白

我想说的是什么呢?顺着这个思路,各种密码就应运而生

在密码的手工时代啊,诞生了花样繁多的密码

不过从原理上呢基本上可以分成两类,一类啊用的是移位法

另一类呢用的是替代法,最简单的一位法就是把每个字母都用后边一位的字母来表示,这样呢a就变成了b,b就变成了c,像是得到了拼音d、e、d、a、o就变成了e、f、e、bp,别人如果看到啊就会认为是毫无意义的单词,没法理解其中的内容

传说这样的方法最早是由凯撒发明的,所以移位法加密又被称为凯撒式密码

另一种方法是替代法,新疆字母啊随意配对儿,再用配对儿的字母取代信息里边的原始字母

比如说我们可以指定啊用v代表a,用t代表b,因为替代的规则啊是人制定的,所以更加灵活,就更难被破解

不过啊不管是移位法还是替代法,都有一个本质上的弱点,那就是啊这些用字母组成的拼音文字,每个字

我出现的频繁程度是不一样的

比如在英文里边儿,像字母a、字母e出现的频率那就远远高于字母▁x和字母z

所以不管用什么样的方式移位或者替代,只要是用一套加密方案进行的加密,那么拿到密文之后,我们只要统计其中字母的频率,就能找到破解的方向

于是啊人们在移位法和替代法的基础上,发明了新一代的加密方法

这种方法是由一位名叫维吉尼亚的法国外交官发明的,所以被称为维吉尼亚加密法

维吉尼亚加密法的创新之处啊在于给每个字母都设置一套加密算法,字母a可以替换成a本身,也可以替换成字母z,一共呢有二十六个字母,那就是二十六套加密方案

通信的双方啊需要约定一组数字,这样就知道每一位字母要用哪套加密方案了

他是拿得到的拼音d一

dao来举例,咱们可以约定一组数字,比如就是幺零零八六吧

这样的话呢第一个字母d就替换成了后一位的e,第二个字母e呢还是e第三个字母d啊还是d

第四个字母a替换成了后八位的爱,最后一位字母o替换成了后六位的字母u

所以呢在幺零零八六这个方案之下,d、e、d、a、o就被加密成了e、e、d、i、u

这个幺零零八六啊就叫做钥匙,拿到了钥匙我们才能知道具体要如何解密

维基尼亚加密法确实提升了密码的安全性,不过呢安全和方便往往是一对矛盾,维吉尼亚加密法提升了安全性,也提高了使用的门槛

比如咱们刚才啊只是加密了五个字母,所以钥匙呢也只需要五位数字就够了

那如果是一个几百个单词的长信呢,钥匙啊也会变得很长

那如何把钥匙顺利地交给别人手上呢?这就出现了新的问题

而且啊在手工书写的时代,要记忆二十六套加密算法,不仅费时费力,而且容易出错

所以啊维吉尼亚加密法虽然更加可靠,但是呢在手工的加密时代并没有被广泛使用,直到机械时代的来临,这种方法才开始大放异彩

接下来啊我们再来看密码学的第二个时代,那就是机械时代

进入二十世纪啊,在战争中对于加密和解密的需求就更加强烈了

一方面啊是因为各种机械的出现可以提高我们的效率,像是前面说到的维基尼亚加密法,就不用靠手算了,可以有专门的机械来辅助加密了

另一方面啊是科技的进步也使得需要加密的场合越来越多

比如啊在战争中会大量使用无线电来通信,战争双方啊都可以接收到无线电信号

那如果没有强有力的加密手段,自己这边儿就相当于完完全全暴露在了对方的眼皮底下

有人说呢第一次世界大战可以称为化学家的战争,因为战场上第一次出现了芥子毒气

第二次世界大战可以称为是物理学家的战争,因为原子弹的出现终结了战局

如果有第三次世界大战的话,那一定是数学家的战争,数学家将掌握这次大战中最关键的那个武器,就是信息

其实啊第二次世界大战就已经是数学家的战争了,加密和解密的拉锯战直接影响了战争的走向

这其中啊最精彩的案例当属英国密码专家攻破了德国的恩尼格玛密码机,这也是密码学历史上最著名的攻防战,可以说只

也影响了人类历史的进程

恩尼格玛是一种机械电子式的加密机,由一堆齿轮、电线、灯泡、转盘还有摇杆儿组成,使用机器做繁琐的加密工作

在之前呢也有过,只是因为他们啊都没有量产,所以呢也没有流行

而恩尼格玛密码机是第一个大规模量产的加密机

从他开始啊,密码学不再依赖纸和笔的运算,使用机械和电子加密的时代正式到来

恩尼格玛密码机的样子啊有点像那个打字机,有键盘、有显示装置,内部呢是一大堆的机械和电子零件,操作员啊每敲下一个字母,经过机械和电子的转换,显示装置那里就会显示一个对应的字母,这就是经过加密之后的编码了

这听起来好像没有什么恩尼格马基啊,最厉害的地方就在于核心的加密零件叫边

马器,编码器的核心是齿轮,每敲下一个字母之后啊,齿轮就旋转一格,齿轮的转动会使得密码机的内部线路连接发生变化,加密的结果就不一样了

你看啊,恩尼格玛就是延续了维吉尼亚加密法的思路,加密的时候啊每个字母都换一套加密算法

不过恩尼格玛的加密方式更加复杂,早期的恩尼格玛呢齿轮只有六个格,也就是只有六套加密算法

后一代的恩尼格玛齿轮增加到了二十六个格,但是感觉还不够用,于是呢又增加了第二个,齿轮上边也是二十六个格,这就代表啊加密的算法增加到二十六乘以二十六,也就是六百七十六套算法

这样的恩尼格玛密码机啊还只能供商业使用

德国军方的密码机是八个齿轮,换句话说啊,一台机器中包含了两千多亿套加密算法

这是什么概念呢?你要知道啊,一套最新的大英百科全书包含了六千多万个单词,咱们就算一个单词有十个字母,那你把大英百科全书打上三百遍也用不完这两千多亿套加密算法

恩尼格把密码机啊使用了加密方式,实际上还是传统的方法,也就是替代和移位

虽然从质的角度来说,恩尼格玛密码机并没有太大的突破,但是在电子和机械的加持之下,在量的角度上,恩尼格把密码机拥有了前所未有的优势

单从理论上讲,这样的机器几乎是无法攻破的

那英国的情报部门又是如何破解恩尼格码的呢?首先啊是波兰、法国和英国的接力合作,通过间谍活动还有军事袭击,搞到了真正的恩尼格玛密码机

后来,法国情报部门甚至弄到了军用版恩尼格玛机的使用说明书,还有操作指南

但是说明书啊只能帮助他们弄清楚恩尼格玛的工作原理,并不代表真的就能破译密码,因为两千多亿套密码啊,你根本不知道德军用的是哪一套

当初德军啊就是假设敌人也有一模一样的机器,但是还是不能破解的情况下,才批准使用安妮和玛姬的

波兰的密码学家曾经做过一些尝试,可以一定程度地破解密码,这给了盟军很大的希望

英国啊开始招募大量的语言学家、人文学者、科学家还有数学家,组成了一支七千人的密码破译队伍,每天啊都有军方截获的各种德军通讯代码被源源不断送到这个队伍那里

这些学者呢就夜以继日的工作,希望从杂乱无章的信息当中找到规律,最终找到

拿钥匙的是艾伦图灵,他是著名的数学家,也是公认的计算机科学的奠基人

在研究过之前被破解的一些信息之后啊,图灵注意到截获的德军信息里边其实大有规律可循,比如啊像希特勒万岁这样的句子就经常出现

还有呢每天早上六点,德军都会发一份当天的天气报告,而且格式啊非常固定,甚至你单凭经验就能确定哪个单词啊是德语里边天气那个单词,w、e、tt、一、二

这样呢知道了这个单词是w、e、t、t、e、r,也就知道了加密之后的密文是什么

图灵啊,就可以找方法去反推恩尼格玛的加密算法

那最笨的方法呢当然是试着改一改手里这台恩尼格码机的设置,然后啊把w、e、t、t、e、r这个词输进去,看看什么样的情况之下结果和加密之后的代码是一样

但是咱们说过啊,加密算法那是以亿计算的一个一个的事,根本是天方夜谭,图灵找到了一种思路

前面咱们说过啊,恩尼格玛密码机是靠齿轮的转动调整加密方案,那这个方案的调整肯定也是按顺序的,在加密w、e、t、t、e、r这个单词的时候,如果加密w用的是方案一,那么加密后边的e必然用的是方案二

这样图灵他们要找到的就是连续的六套方案

而且他们发现啊德军设计恩尼格玛的时候还坚持了一个原则,那就是加密后的代码不能和加密前一样

也就是说啊字母e加密之后的代码绝不可能还是字母e,这就又缩小了他们要搜索的范围

总之啊,经过了一番艰苦的努力之后,图灵把加密的可能从上千亿种缩小到了一百零五万种

当然啊,如果是单靠人手工计算,一百零五万仍然是个天文数字

为此呢图灵专门设计了一种用于破解的机器,你可以理解为啊是早期专用的计算机,代号呢叫做炸弹

炸弹的数量越多,破解的速度啊就越快

为了让这些炸弹啊发挥出极致的效果,图灵需要更多的人手和经费,为此啊他和其他的科学家甚至联名给英国首相丘吉尔写信求助

丘吉尔很快就给英军的参谋首长下达命令,让军方务必以最高优先级满足图灵他们的所有要求

图灵和他的同事啊一共建造了四十九台炸弹,最坏的时候只要花上一个小时,就能破解出德军当天使用的密码

这边啊英国专家破解了恩尼格玛密码机,扭转了欧洲战场的局势

另一边呢,美军也破解了日本最厉害的命

打击紫色让美军啊在太平洋战场上获得了巨大的优势

比如啊一九四二年的六月,美军破解了一则日军信息,日本海军啊打算使用声东击西的战术攻占美军在中途岛的海军基地

于是呢美军将计就计,军舰离开了中途岛,但是没有走远

日军啊原本打算进行一场偷袭,结果呢反过来被美军偷袭了

中途岛海战啊也成了太平洋战场上的转折点,自此以后,日本海军就走上了下坡路

美国太平洋舰队的总司令尼米兹上将说,美国在中途岛的胜利实际上就是情报的胜利

一年之后啊,美军又破译了日军的一则信息,直接掌握了日本联合舰队总司令山本五十六的行程

尼米兹上将派遣了十八架战斗机,直接击落了山本五十六的座机

山本之死给日军的士气造成了沉重的打击,但是啊打人家一拳就要防着一脚

美国知道啊,也一定有一大批来自日本的天才在绞尽脑汁啊破译美军的密码

于是呢美军决定另辟蹊径,选择一条完全不同的道路,就是把少数民族的语言直接当作密码

最早提出这个想法呢是一位名叫约翰斯顿的工程师,约翰斯顿的父亲啊是一位传教士,为了传教啊,他定居在纳瓦霍人的保留区

纳瓦霍人啊是美国原住民其中的一个部落,约翰斯顿在那里长大,完全沉浸在纳瓦霍人的文化当中

纳瓦霍人啊本身数量就不多,约翰斯顿啊更是少有的同时可以掌握英语和纳瓦霍语的人才

当美国参加第二次世界大战时,约翰斯顿因为年纪太大,已经没法

进军了,但是他仍然想为国家尽一份力

他就想到啊对于外人来说,纳瓦霍语极其复杂难懂,如果每一处占地呢都用纳瓦霍人来当通讯员,用纳瓦霍语来通信,那可以说就是无敌了

于是啊约翰斯顿跑到了附近的军营,找到了这个营区的通讯官琼斯中校,向他提出了自己的构想

琼斯中校意识到啊这个想法确实不错,于是呢他让约翰斯顿可不可以做一次示范,而且邀请了海军陆战队的一些高级军官前来观摩

约翰斯顿啊带来了两位懂英语的纳瓦霍人,两个人啊被安置在了两个地方

军队指定了六条英文信息,由一位纳瓦霍人啊翻译成纳瓦霍语,再通过无线电传送给另一位纳瓦霍人,由他来转译回英文

实验证明啊六条信息都准确无误,用纳瓦霍语来通讯

看起来是可行的

那接下来的问题是,使用纳瓦霍语真的就可以万无一失吗?为了检验纳瓦霍语的保密性有多强啊,海军陆战队把纳瓦霍语的录音交给了海军情报部,请他们当作密码来破译

你要知道啊,就是海军情报部的这些专家破解了日军最难缠的密码系统紫色

但是这些解密专家不眠不休地忙了三个星期,还是对纳瓦霍语束手无策

用他们的原话说啊,纳瓦霍语啊就是一连串奇怪的喉音、鼻音、饶舌的声音,专家们啊甚至无法用普通的文字做记录,更不要说破解了纳瓦霍密码,成功通过了检验

其实当时啊在美国的国境内还有很多原住民的部落,但是啊在二战之前,有很多德国的人类学者来美国研究原住民

换句话说啊,很多原住民的语言

已经不再是秘密

只有纳瓦霍族啊没有被国外的人类学家研究过

除了二三十个像约翰斯通这样的美国人以外,这个世界上只有纳瓦霍人自己才能听得懂纳瓦霍语

种种证据都表明,纳瓦霍语天然就是一套强力的密码系统

于是啊美国海军陆战队招募了二十九名纳瓦霍人,组建了一支特殊的通讯队伍

唯一遇到的问题啊就是有些英文单词,像是侦察机、驱逐舰这些啊在纳瓦霍语里边都没有

于是呢海军陆战队编了一套小磁垫,给这些英文单词都确定了对应的纳瓦霍说法

他们用各种鸟的名字啊来代表飞机,比如侦察机就是猫头鹰;用各种鱼的名字啊来代表战舰,比如驱逐舰就是鲨鱼

他们还给二十六个字母都指定了纳瓦霍代码,这样啊遇到生僻的

人名或者地名,就可以直接用拼写的方式来传递信息

对于那些常用的英文字母,比如字母e,他们会用三种代码来指代同一个字母

这样在拼写的时候啊,三种代码可以轮换着使用,就避免了日军通过频率分析法来破解信息

第二次世界大战期间啊,一共有四百二十名纳瓦霍通讯员走进了战场,他们为战争啊做出了巨大的贡献,而且还创造了一个历史记录

战争结束后啊,日军的情报首脑在接受审判的时候供认,他们曾经破解了美军使用的不少密码,但是对于纳瓦霍密码,他们始终是束手无策

也就是说啊纳瓦霍密码是人类历史上少数从来没有被攻破过的密码之一

为了感谢纳瓦霍人对二战的贡献,美国政府啊将每年的八月十四日定为纳瓦霍密语通话员法定纪念日

接下来啊我们再来看密码的第三个时代,也就是密码的智能时代

前面咱们说到恩尼格玛密码机的时候,说恩尼格玛其实对于密码学来说只有量的提升,没有质的飞跃

而计算机的出现啊把密码学推进了智能时代,在量和质的层面上都让密码学啊变得不一样了

咱们先来说说量的提升

用计算机程序啊就可以百分百模拟一个恩尼格玛密码机,而且呢恩尼格玛受限于它的机械结构,在制作的时候总是有这样那样的限制,计算机呢就可以不受这样的限制

比如说啊计算机模拟的恩尼格玛密码机可以不只有八个齿轮、一百个齿轮啊都是可能实现的

每个齿轮上啊也不只是二十六个格,可以是五十个格,甚至是一百个格,这些放在一起啊可以组成的加密方

那就是天文数字了

而且啊在计算机模拟中,还可以让齿轮啊完成不可思议的动作

比如有的齿轮顺时针转,有的齿轮逆时针转,有了齿轮呢越转越快,有的齿轮啊转十格之后就让它消失

这些规则啊在现实环境当中用机械是根本不可能造出来的,但是用计算机却能仿真模拟出来,这就使得安全度啊大大提升,而且计算机的运算速度啊比机械的加密仪器要快得多,能用更短的时间执行更复杂的加密任务

前面咱们说的还是量的提升,密码进入智能时代之后还有质的飞跃,最开始的飞跃就是字母,不再是最小的加密单位了

前面咱们说到的各种加密方式,不管是手工的还是机械的,都是用字母来替换字母

但是计算机啊是二进制的一切的信

七都可以用零和一来表示

每个字母啊在计算机里边也是一串零和一组成的代码,目前通用的代码叫美国标准信息交换码,每个字母都是用七位零、一、零一的代码来表示

比如小写的字母a是一一零零零零一,大写的字母a呢是一零零零零零一

我们用计算机加密的时候啊,面对的就不再是一个个字母,而是一个个的零和一这七位数的代码

我们可以只加密前三位,或者只加密基数位,加密的方法就更加五花八门了

你看啊,计算机的出现把信息数字化了,打破了语言规律的底层结构,所以说啊数字化使得密码学进入了新的时代

除此之外,在智能时代,密码学还有一个更大的颠覆,那就是加密的过程

可以不再保密了

前面咱们说到过这么多的加密方法都有一个特点,那就是千万不能让别人知道我们是用什么规则来加密呢?到了恩尼格马密码机的时代,德军啊还要想方设法保密,不让敌人啊搞到机器的内部结构,还有使用说明

可是到了智能时代之后,今天的加密手段可以完全把自己的技术细节公开

打个比方来说啊,就像是我给我认识的所有朋友都发了一把锁,跟他们说呢你们以后啊给我写信的时候,就寄个盒子过来,用这个锁把盒子给锁上,这个锁呀有无数版,但是钥匙呢只有我手里有一把,而且我有自信,别的人啊不管怎么去研究我的锁,也没办法配出开锁的钥匙

原理我们是搞明白了,但是这其中有一个关键的问题,你要怎么做才能保证别人看了你的锁,却还是配不出你的要?是呢这其中啊最核心的原理叫做分解质因数

什么意思呢?所谓质数啊,就是除了一和自己以外,没有办法被别的自然数整除的数

举个例子啊,十二可以表示为三乘以四,那它就不是质数

十三呢只能表示为一乘以十三,所以十三啊是个质数

同样啊,二十二不是个质数,二十三是个质数

那如果我们用十三乘以二十三,就可以得到二百九十九,这个很容易计算

但是如果反过来啊,我问你说,你知道二百九十九是哪两个数的乘积吗?这个计算啊就非常麻烦,甚至呢只能用笨办法一遍遍的试,这个过程啊就叫分解质因数

科学家就发现啊,把两个质数乘起来,这个计算很容易,但是拿着结果反推这个过程啊就要难得多

新一代的加密手段就利用了这个原理,两个质数相乘得到的那个大数就是公开的锁,具体是哪两个数的乘积,这就是那个保密的钥匙

这套加密算法是由美国麻省理工学院的三位科学家,罗纳德李维斯特、阿迪萨莫尔还有伦纳德阿德曼发明的

因为他们三个人的姓氏首字母分别为r、s、a,这套算法就被命名为r、s、a加密算法

你可能会觉得这么听下来,想找到答案麻烦,虽然是麻烦,但是似乎也不太困难啊

其实呢用r、s、c算法进行加密的时候,用的那个数实际上要大得多,数字越大,分解它要花的时间就会长得多

一九七七年啊,为了验证这个算法有多可靠,三位科学家给一份科学杂志投了一篇文章,解释了r、s、a系统的工作原理

读者啊提出了一项挑战,在文章里边儿发布了一串密码文,还给了一个一百二十九位的大数,也就是公开的那把锁

他们悬赏一百美金,邀请大家来破解

那他们的密码最终有人破解成功了吗?其实是有的,但是啊最终破解成功的是一个六百个人组成的团队,他们借助了全球各地的计算机,甚至还动用了超级计算机

就算这样,他们还花了十七年的时间才算成功破解了这个密码

你想啊,如果真的是在战场上十七年以后才破解的军事情报,那早就已经失去了效果

更何况今天人们在使用r、s、a算法的时候,使用的那个数远远不止一百二十九倍,往往会使用啊三百位以上的大叔

想要分解这样一个数,大约需要把全球所有的计算机都集中起来一块儿工作上亿年

才能得到答案

目前看来啊,r、s、a是一种非常可靠的加密算法,所以被广泛应用在各种场合

像我们使用的网银支付、手机支付背后呢都有r、i、c算法在给我们保驾护航

到这里啊,这本马书其中精华的部分我就为你解读完了

读完这本书啊我有一个感受,编码与解码的战争是一场永远没有终结的拉锯战,rsa的算法固然已经非常安全,但是已经有科学家在研究如何用量子计算机攻破r、ac算法

看来啊,想要找到一劳永逸、无比安全的加密方式几乎是不可能的

人类只能在这场战争中继续向前

而这场战争中啊有很多因素起到过关键作用,比如数学、比如物理学、比如机械学、比如计算机科学,可是最关键的因素还是人

攻破密码靠的是己方勤劳和智慧,也靠的是敌方露出的破绽

这本书里面啊有一句话让我印象深刻,尽管我们发明了窃贼打不开的锁,这不代表你就可以乱放钥匙

不论技术如何向前演变,这场战争永远是人和人之间的战争,每一次的失败暴露的都是人性的弱点,而每一次的胜利本质也是人类的胜利

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注