参考文献

注册

 

发新话题 回复该主题

每天解读一本书码书解码与编码的战争 [复制链接]

1#
北京白癜风哪家医院看最好 https://wapyyk.39.net/bj/zhuanke/89ac7.html

今天为大家解读这本书叫《码书》,副标题是:解码与编码的战争,这本书讲的是密码学如何改变了人类的历史进程,在人类历史上,不管是帝王还是将*,都需要一套高效的通信手段来治理国家和指挥*队,但是他们还有另一个需求,那就是不能让敌人获得关键的信息,必须尽量保持机密,连中国古代的易经当中,都有这样的话:“君不密则失臣,臣不密则失身,几事不密则害成。”换句话说如果没有机密就会有危险,孙子兵法里边说得更是直接,“三*之事,莫亲于间,赏莫厚于间,事莫密于间。”也就是说战争中没有比刺探他人情报和保护自己的情报更加重要的事情了,所以纵观历史有多少权力的争夺,有多少战火和硝烟背后就有多少秘密。历史上无数人发挥自己的聪明才智,努力建造更强的保密系统,也努力攻破别人的保密系统,密码学就是在这场旷日持久的攻防拉锯战中应运而生,甚至有人说,历史的标点符号就是密码打上去的密码决定了战争的胜败,也影响了历史的走向。

今天我要为大家解读这本《码书》,就详细梳理了人类编码与解码之间的战争,接下来我会分成三个部分为大家解读这本书,我们一起沿着历史去看看密码学的三大时代,也就是密码的手工时代,机械时代还有智能时代。

我们先来看密码学的第一个时代密码的手工时代,虽然我们把密码两个字放在一起说,但是实际上人类事先花了很多时间研究再转而研究吗?秘密书信的历史,其实非常悠远,不过人们最早的思路是想方设法把书信的内容直接隐藏起来,有文献记载在公元前五世纪,希腊和波斯之间正在打仗,一位希腊人为了传递秘密信息会把信息写在木板上,然后用一层蜡把木头盖住,收信人拿到木板之后把蜡刮掉就能看到秘密的信息,希腊这边还用过更绝的方法,他们会把信使的头发剃光,把秘密信息写到信使的头皮上,等信使的头发长出来之后,再派他前去送信,到了地方之后再把头发给剃了,收信人就能看到密信了,这种直接掩盖信息的方法被称为隐匿法,这是最早的加密手段,直到近现代,还一直在使用,今天我们在看谍战片的时候,还会经常看到间谍们用隐匿法传递情报,向什么用隐形墨水写信,或者是把信塞到胶囊里边再让特工吞下去,这都是隐匿法,隐匿法的寿命这么长表示这种方法确实很安全,不过隐匿法有一个根本弱点,一旦敌人更加谨慎的搜查情报就会曝光,这就像是在玩捉迷藏的游戏,只要对方认认真真的去找,总是能找到一些蛛丝马迹,于是,人们开始思考另一种方法,有没有可能就算敌人找到了那个白纸黑字儿的信息,但是依然看不明白我想说的是什么,顺着这个思路各种密码就应运而生。

在密码的手工时代诞生了花样繁多的密码,不过从原理上基本上可以分成两类,一类用的是移位法,另一类用的是替代法,最简单的移位法就是把每个字母都用后边一位的字母来表示。这样a就变成了b,b就变成了c。像是得到了拼音dedao就变成了efebp,别人如果看到,就会认为是毫无意义的单词没法理解其中的内容,传说这样的方法最早是由凯撒发明的,所以移位法加密又被称为凯撒式密码,另一种方法是替代法,先将字母随意配对,再用配对的字母取代信息里边的原始字母,比如说我们可以指定用v代表a用t代表b,因为替代的规则是人制定的,所以更加灵活就更难被破解,不过不管是移位法还是替代法,都有一个本质上的弱点,那就是这些用字母组成的拼音文字,每个字母出现的频繁程度是不一样的,比如在英文里边像字母a字母b出现的频率,那就远远高于字母x和字母z。

所以不管用什么样的方式移位或者替代,只要是用一套加密方案进行了加密,那么拿到密文之后,我们只要统计其中字母的频率,就能找到破解的方向,于是人们在移位法和替代法的基础上发明了新一代的加密方法,这种方法是由一位名叫维基尼亚的法国外交官发明的,所以被称为维基尼亚加密法,维吉尼亚加密法的创新之处,在于给每个字母都设置一套加密算法,字母a可以替换成a本身也可以替换成字母z,一共有26个字母,那就是26套加密方案,通信的双方需要约定一组数字,这样就知道每一位字母要用哪套加密方案了,我们还是拿得到的拼音dedao来举例,咱们可以约定一组数字,比如就是吧,这样的话,第1个字母d就替换成了后一位的e,第2个字母e还是e,第3个字母d还是d,第4个字母a替换成了后8位的i,最后一位字母o替换成了后6位的字母u,所以在这个方案之下dedao就被加密成了eediu,这个就叫做钥匙,拿到了钥匙我们才能知道具体要如何解密,维吉尼亚加密法确实提升了密码的安全性,不过安全和方便往往是一对矛盾,维吉尼亚加密法提升了安全性,也提高了使用的门槛,比如咱们刚才只是加密了5个字母,所以钥匙也只需要5位数字就够了,那如果是一个几百个单词的长信,钥匙也会变得很长,那如何把钥匙顺利的交给别人手上,这就出现了新的问题,而且在手工书写的时代要记忆26套加密算法,不仅费时费力,而且容易出错,所以阿维吉尼亚加密法虽然更加可靠,但是在手工的加密时代并没有被广泛使用。直到机械时代的来临,这种方法才开始大放异彩。

接下来我们再来看密码学的第2个时代那就是机械时代,进入20世纪,在战争中对于加密和解密的需求就更加强烈了,一方面是因为各种机械的出现可以提高我们的效率,像是前面说到的维吉尼亚加密法就不用靠手算了,可以有专门的机械来辅助加密了,另一方面是科技的进步也使得需要加密的场合越来越多,比如在战争中会大量使用无线电来通信,战争双方都可以接受到无线电信号,那如果没有强有力的加密手段,自己这边就相当于完完全全暴露在对方的眼皮底下,有人说:“第1次世界大战可以称为化学家的战争,因为战场上第1次出现了芥子*气,第2次世界大战可以称为是物理学家的战争,因为原子弹的出现终结了战局,如果有第3次世界大战的话,那一定是数学家的战争,数学家将掌握这次大战中最关键的那个武器就是信息。”其实第2次世界大战就已经是数学家的战争了,加密和解密的拉锯战直接影响战争的走向,这其中最精彩的案例当属英国密码专家攻破了德国的恩尼格玛密码机,这也是密码学历史上最著名的攻防战,可以说直接影响了人类历史的进程。

恩尼格玛是一种机械电子式的加密机,有一堆齿轮,电线,灯泡,转盘还有摇杆组成,使用机器做繁琐的加密工作在之前也有过,只是因为它们都没有量产,所以也没有流行,而恩尼格玛密码机是第1个大规模量产的加密机,从它开始密码却不在依赖纸和笔的运算使用机械和电子加密的时代正式到来,恩尼格玛密码机的样子有点像那个打字机,有键盘有显示装置,内部是一大堆的机械和电子零件,操作员每敲下一个字母,经过机械和电子的转换,显示装置那里就会显示一个对应的字母,这就是经过加密之后的编码了,这听起来好像没有什么,恩尼格玛机最厉害的地方就在于核心的加密零件叫编码器,编码器的核心是齿轮,每敲下一个字母之后齿轮就旋转,一个齿轮的转动会使得密码机的内部线路连接发生变化,加密的结果就不一样了。

你看恩尼格玛就是延续了维吉尼亚加密法的思路,加密的时候每个字母都换一套加密算法,不过恩尼格码的加密方式更加复杂,早期的恩尼格玛齿轮只有6个格,也就是只有6套加密算法,后一代的恩尼格码齿轮增加到了26个格,但是感觉还不够用,于是,又增加了第2个齿轮,上边也是26个格,这就代表加密的算法增加到26×26,也就是套算法,这样的恩尼格玛密码机还只能供商业使用,德国*方的密码机是8个齿轮,换句话说,一台机器中包含了亿多套加密算法,这是什么概念?你要知道一套最新的大英百科全书包含了多万个单词,我们就算一个单词也有10个字母,那你把大英百科全书打上遍也用不完这多亿套加密算法,恩尼格玛密码机使用的加密方式实际上还是传统的方法,也就是替代和移位,虽然从这个角度来说,恩尼格玛密码机并没有太大的突破,但是在电子和机械的加持之下,在量的角度上,恩尼格玛密码机拥有了前所未有的优势,单从理论上讲,这样的机器几乎是无法攻破的,那英国的情报部门又是如何破解恩尼格码的?

首先是波兰法国和英国的接力合作,通过间谍活动还有*事袭击,搞到了真正的恩尼格玛密码机,后来法国情报部门甚至弄到了*用版恩尼格玛机的使用说明书,还有操作指南,但是说明书,只能帮助他们弄清楚,恩尼格玛的工作原理并不代表真的就能破译密码,因为多亿套密码,你根本不知道德*用的是哪一套。当初德*就是假设敌人也有一模一样的机器,但是还是不能破解的情况下,才批准使用恩尼格玛机的,波兰的密码学家曾经做过一些尝试,可以一定程度的破解密码就给了盟*很大的希望,英国开始招募大量的语言学家,人文学者,科学家,还有数学家,组成了一支人的密码破译队伍,每天都有*方截获的,各种德*通讯代码被源源不断送到这个队伍那里,这些学者就夜以继日的工作,希望从杂乱无章的信息当中找到规律,最终找到这把钥匙的是艾伦图灵。

他是著名的数学家,也是公认的计算机科学的奠基人,在研究过之前被破解了一些信息之后图灵注意到截获的德*信息里边,其实大有规律可循,比如像希特勒万岁这样的句子就经常出现。还有每天早上6点德*都会发一份当天的天气报告,而且格式也非常固定,甚至你单凭经验就能确定哪个单词,是德语里边天气那个单词,wetter,这样知道了这个单词是wetter也就知道了,加密之后的密文是什么,图灵就可以找方法去反推恩尼格码的加密算法。那最笨的方法,当然是试着改一改手里这台恩尼格玛机的设置,然后把wetter这个词输进去,看看什么样的情况之下,结果和加密之后的代码是一样的,但是我们说过加密算法那是以亿计算的,一个一个的试根本是天方夜谭,图灵找到了一种思路,前面我们说过恩尼格玛密码机是靠齿轮的转动调整加密方案,那这个方案的调整肯定也是按顺序的,再加密Weter这个单词的时候,如果加密w用的是方案1,那么加密后边的必然用的是方案2,这样图灵他们要找到的就是连续的6套方案,而且他们发现德*涉及恩尼格玛的时候还坚持了一个原则,那就是加密后的代码不能和加密前一样,也就是说字母加密之后的代码e绝不可能还是字母e,这就又缩小了他们要搜索的范围,总之经过了一番艰苦的努力之后图灵把加密的可能从上千亿种缩小到了万种,当然如果是单靠人手工计算,万仍然是个天文数字,为此图灵专门设计了一种用于破解的机器,你可以理解为是早期专用的计算机,代号叫做炸弹,炸弹的数量越多,破解的速度就越快,为了让这些炸弹发挥出来极致的效果,图灵需要更多的人手和经费,为此他和其他的科学家甚至联名给英国首相丘吉尔写信求助,丘吉尔很快就给英*的参谋长下达命令,让*方务必以最高优先级满足图灵他们的所有要求,图灵和他的同事,一共建造了49台炸弹,最坏的时候只要花上一个小时就能破解出德*当天使用的密码,这边英国专家破解了恩尼格玛密码机,扭转了欧洲战场的局势,另一边,美*也破解了日本最厉害的密码机紫色让美*在太平洋战场上获得了巨大的优势。

比如年的6月美*破解了一则日*信息,日本海*打算使用声东击西的战术攻占美*在中途岛的海*基地,于是美*将计就计,*舰离开了中途岛但是没有走远,日*原本打算进行一场偷袭,结果反过来被美*偷袭了,中途岛海战也成了太平洋战场上的转折点,自此以后日本海*就走上了下坡路,美国太平洋舰队的总司令尼米兹上将说,美国在中途岛的胜利实际上就是情报的胜利,一年之后阿美*又破译了日*的一则信息,直接掌握了日本联合舰队总司令山本五十六的行程,尼米兹上将派遣了18架战斗机,直接击落了山本五十六的座机,山本之死给日*的士气造成了沉重的打击,但是打人家一拳就要防人家一脚美国知道,也一定有一大批来自日本的天才在绞尽脑汁破译美*的密码,于是美*决定另辟蹊径,选择一条完全不同的道路,就是把少数民族的语言直接的当做密码,最早提出这个想法的是一位名叫约翰斯顿的工程师,约翰斯顿的父亲是一位传教士,为了传教他定居在纳瓦霍人的保留区,纳瓦霍人是美国原住民其中的一个部落,约翰斯顿在那里长大,完全沉浸在纳瓦霍人的文化当中,纳瓦霍人本身数量就不多,约翰斯顿更是少有的同时可以掌握英语和纳瓦霍语的人才。

当美国参加第2次世界大战是约翰斯顿,因为年纪太大已经没法参*了,但是他仍然想为国家尽一份力,他就想到,对于外人来说那瓦霍语极其复杂难懂,如果每一处战地,都用那马或人来当通讯员,用那瓦霍语来通信,那可以说就是无敌了,于是阿约翰斯顿跑到了附近的*营,找到这个营区的通讯官琼斯中校,向他提出了自己的构想,琼斯中校意识到这个想法确实不错,于是他让约翰斯顿可不可以做一次示范,而且邀请了海*陆战队的一些高级*官前来观摩,约翰斯顿带来了两位懂英语的纳瓦霍人,两个人被安置在两个地方,*队只定了6条英文信息,由一位纳瓦霍人翻译成纳瓦霍语,再通过无线电传送给另一位纳瓦霍人,由他来转译回英文,实验证明6条信息都准确无误,用纳瓦霍语来通讯,看起来是可行的,那接下来的问题是使用纳瓦霍语真的就可以万无一失吗?为了检验纳瓦霍语的保密性有多强,海*陆战队把纳瓦霍语的录音交给了海*情报部,请他们当做密码来破译,你要知道就是海*情报部的这些专家破解了日*最难缠的密码系统紫色,但是这些解密专家不眠不休的忙了三个星期,还是对纳瓦霍语束手无策,用他们的原话说阿纳瓦霍语,就是一连串奇怪的喉音鼻音,饶舌的声音,专家们甚至无法用普通的文字做记录更不要说破解了。

纳瓦霍密码成功通过了检验,其实当时在美国的国境内还有很多原住民的部落,但是在二战之前,有很多德国的人类学者来美国研究原住民,换句话说,很多原住民的语言已经不再是秘密,只有纳瓦霍族没有被国外的人类学家研究过,除了二三十个像约翰斯通这样的美国人以外,这个世界上只有纳瓦霍人自己才能听得懂那瓦霍语,种种证据都表明纳瓦霍语天然就是一套强力的密码系统,于是美国海*陆战队招募了29名那瓦霍人,组建了一支特殊的通讯队伍。唯一遇到的问题,就是有些英文单词像是侦察机驱逐舰这些,在纳瓦霍语里边都没有,于是海*陆战队编了一套小词典给这些英文单词,都确定了对应的纳瓦霍说法,他们用各种鸟的名字来代表飞机,比如侦察机就是猫头鹰,用各种鱼的名字来代表战舰,比如驱逐舰就是鲨鱼,他们还给26个字母都指定了纳瓦霍代码,这样遇到生僻的人名或者地名,就可以直接用拼写的方式来传递信息,对于那些常用的英文字母,比如字母e,他们会用三种代码来指代同一个字母,这样在拼写的时候三种代码可以轮换着使用,就避免了日*通过频率分析法来破解信息。

第2次世界大战期间一共有名纳瓦霍通讯员走进了战场,他们为战争做出了巨大的贡献,而且还创造了一个历史记录,战争结束后,日*的情报首脑在接受审判的时候供认他们曾经破解了美*使用的不少密码,但是对于纳瓦霍密码他们始终是束手无策,也就是说纳瓦霍密码是人类历史上少数从来没有被攻破过的密码之一,为了感谢纳瓦霍人对二战的贡献,美国*府将每年的8月14日定为那瓦霍密语通话员国定纪念日。

接下来,我们再来看密码的第3个时代也就是密码的智能时代,前面咱们说到恩尼格玛密码机的时候说恩尼格玛,其实对于密码学来说只有量的提升没有质的飞跃,而计算机的出现,把密码学推进了智能时代,在量和质的层面上都让密码学压变得不一样了,咱们先来说说量的提升,用计算程序就可以百分百模拟一个恩尼格玛密码机,而且恩尼格玛受限于它的机械结构,在制作的时候总是有这样那样的限制,计算机就可以不受这样的限制,比如说计算机模拟的恩尼格玛密码机可以不只有8个齿轮,个齿轮都是可能实现的,每个齿轮上也不只是26个格可以是50个,甚至个格这些放在一起可以组成的加密方案,那就是天文数字了,而且在计算机模拟中还可以让齿轮完成不可思议的动作,比如有的齿轮顺时针转有的齿轮逆时针转,有了齿轮越转越快,有的齿轮转10个之后就让它消失,这些规则在现实环境当中用机械是根本不可能造出来的,但是用计算机却能仿真模拟出来,这就使得安全度大大提升,而且计算机的运算速度,比机械的加密仪器要快得多,能用更短的时间执行,更复杂的加密任务。

前面咱们说的还是量子提升密码,进入智能时代之后还有质的飞跃,最开始的飞跃就是字母不再是最小的加密单位了,前面咱们说到的各种加密方式,不管是手工的还是机械的,都是用字母来替换字母,但是计算机是二进制的,一切的信息都可以用0和1来表示,每个字母在计算机里边也是一串0和1组成的代码,目前通用的代码叫美国标准信息交换码,每个字母都是用7位的代码来表示,比如小写的字母a是1,大写的字母a是0001,我们用计算机加密的时候面对的就不再是一个个字母,而是一个个的0和1,这7位数的代码我们可以只加密前三位,或者只加密基数位,加密的方法就更加五花八门了,你看,计算机的出现把信息数字化了,打破了语言规律的底层结构,所以说,数字化使得密码学进入了新的时代,除此之外在智能时代密码学还有一个更大的颠覆,那就是加密的过程可以不再保密了。前面咱们说到过这么多的加密方法都有一个特点,那就是千万不能让别人知道我们是用什么规则来加密的,到了恩尼格玛密码机的时代德*,还要想方设法保密,不让敌人搞到机器的内部结构,还有使用说明,可是到了智能时代之后,今天的加密手段可以完全把自己的技术细节公开,打个比方来说就像是我给我认识的所有朋友都发了一把锁跟他们说:“你们以后,给我写信的时候就寄个盒子过来,用这个锁把盒子给锁上,这个锁有无数板,但是要是只有我手里有一把,而且我有自信,别的人不管怎么去研究我的锁,也没办法配出开锁的钥匙。”原理我们是搞明白了,但是这其中有一个关键的问题,你要怎么做才能保证别人看了你的锁却还是配不出你的钥匙?这其中最核心的原理叫做分解质因数,什么意思?所谓质数,就是除了1和自己以外没有办法被别的自然数整除的数,举个例子,12可以表示为3×4,那它就不是质数,13只能表示为1×13,所以13是个质数,同样22不是个质数,23是个质数,那如果我们用13×23就可以得到。这个很容易计算,但是如果反过来我问你说你知道是哪两个数的乘积吗?这个计算就非常麻烦,甚至只能用笨办法,一遍遍地计算这个过程就叫分解质因数。

科学家就发现把两个质数乘起来这个计算很容易,但是拿着结果反推这个过程就要难得多,新一代的加密手段就利用了这个原理,两个质数相乘得到的那个大树就是公开的所,具体是哪两个数的乘积,这就是那个保密的钥匙。这套加密算法是由美国麻省理工学院的三位科学家罗纳德里维斯特、阿迪萨默尔、还有伦纳德阿德曼发明的,因为他们三个人的姓氏首字母分别为rsa这套算法就被命名为rsa加密算法,你可能会觉得这么看下来小小的答案麻烦,虽然是麻烦,但是似乎也不太困难,其实,用rsa算法进行加密的时候用的那个数实际上要大得多数字越大分解,它要花的时间就会长的多。

年,为了验证这个算法有多可靠,三位科学家给一份科学杂志投了一篇文章,解释了rsa系统的工作原理,还有读者给提出了一项挑战,在文章里面发布了一串密码文,还给了一个位的大数,也就是公开的那把锁,他们悬赏美金邀请大家来破解,那他们的密码最终有人破解成功了吗?其实是有的,但是最终破解成功的是一个个人组成的团队,他们借助了全球各地的计算机,甚至还动用了超级计算机,就算这样他们还花了17年的时间才算成功破解了这个密码。

你想,如果真的是在战场上17年以后才破解了*事情报,那早就已经失去了效果,更何况今天人们在使用rsa算法的时候,使用的那个数远远不止位,往往会使用位以上的大数,想分解这样一大数大约需要把全球所有的计算机都集中起来一块工作上一年才能得到答案,目前看来,rsa是一种非常可靠的加密算法,所以被广泛应用在各种场合,像我们使用的网银支付,手机支付背后,都有rsa算法在给我们保驾护航。

读了这本书,我有一个感受,编码与解码的战争是一场永远没有终结的拉锯战,rsa的算法固然已经非常安全,但是已经有科学家在研究如何用量子计算机攻破rsa算法,看来,想要找到一劳永逸无比安全的加密方式几乎是不可能的,人类只能在这场战争中继续向前,而这场战争中有很多因素起到关键作用,比如数学、物理学、机械学、计算机科学等等,可是最关键的因素还是人,攻破密码靠的是己方勤劳和智慧也靠的是敌方露出的破绽,这本书里面有一句话让我印象深刻,:“尽管我们发明了窃贼打不开的锁,就不代表你就可以乱放钥匙,不论技术如何向前演变,这场战争永远是人和人之间的战争,每一次的失败暴露的都是人性的弱点,而每一次的胜利本质也是人类的胜利。”

至此,《码书》这本书就解读完了,感谢大家的阅读!

分享 转发
TOP
发新话题 回复该主题