读了好久没读完的一本烧脑书 The Code Book by Simon Singh,第一章很无聊, 但一旦读进去还是蛮有意思的。幸好是为孩子改编的版本,否则还真可能读不懂。
第一章以苏格兰玛丽女王被她的表亲英国伊丽莎白女王定为谋杀罪而砍头为引子,讲述了密码的发展史。一开始只是简单的信息藏匿,后来则是单字母替换,多字母替换,或字母替换单词外加密码。没有想到的是阿拉伯人在整理散装经文的过程中首次发现了一种通用的解码方式,频率解码。一旦理解,还真不算难。当然致密难度越来越大,比如加无效信息。后来欧洲人也开始用类似的方法解码。玛丽女王就是因着和她的支持者之间的密信而被定罪的。书中还提到玛丽女王被砍头时,如何优雅而尊严,和她的狗狗躺在她身体下面一起死去,不可分割。
在讲述了从单字母替代到多字母换位等初始的手工加码解码后,作者花了不少的篇幅讲解技术的加持,比如电报,比如收音机,再到计算机的雏形。从加码到译码,层层剥开,细细道来,高手过招,回味无穷。
很好笑的一段欧洲历史,曾经有一段时间,电报很昂贵,寄信也要邮费,但是邮寄报纸免费,于是异地的情侣们给彼此寄报纸,在报纸上相关的字母下戳孔传递情话。如果利用电报发情话,也一定要加密。有有钱有闲的贵族恶作剧,专门截获类似的电报,破译情话,并用同样的加密串改情话。没想到那时的欧洲人个个都是密码专家。
大家都看过讲图灵的《imitation game》吧?图灵在我们心中神人般的存在,二战期间为破译德军的密报做了至关重要的贡献。他算是计算机的发明者(不过作者对此持有不同观点)。这本书告诉了我们此前发生的事情。德国人发明了被认为颠覆不破的Enigma Machine,可以产生十后面十六个零的密码组合可能。英法联军也持有同样的观点,在他们无意中从一位为钱而困的德国愤青手中买到了德国的密码计划时,他们并不觉得他们有能力破译,于是顺手给了刚刚建国的一心求安全的波兰人。波兰集结数学家们一起研究破译。其中一位23岁的小伙子潜心钻研,发明了Bombes 破译机。在二战开始之前的不多久,德国方面又加了两根scramblers, 四个plugboard, 这不光将密码组合增加到十后面19个零,还要求波兰方面追加巨资建更多台bombes。波兰不堪重负,在德国宣战的几率倍增之下,法国决定接手,并把一台bombes给了英国。这才有了后面图灵的突破性的破译。
和Enigma Machine类似的密码机器虽说不易破译但使用繁琐,不适于快捷战时情报的传输。二战时期,美国在日本突袭珍珠港后,决定利用不同语言之间的障碍,雇佣Navajo人, 稍加训练后,用他们的语言来规范化传递情报, 简洁快速,此招不可谓不高。
书中也提到考古学家如何运用密码学的技巧来解码遗失于历史长河中的古埃及文化和语言。The Rosetta Stone 上的文字是解码这段文化的关键。
几千年的密码发展史中的一大难题就是如何安全分发解码钥匙。上世纪七十年代现代密码专家利用数论中的One way Function (恕我不知如何翻译成中文)巧妙地解决了分发解码钥匙这个难题。这就是迄今仍然广泛使用的Public key and private key。 比如SFTP传输数据一定用到RSA 密码。理论很简单,原始加密者选用两个质数,然后相乘得出公用钥匙外加另一个质数,供传递信息给原始加密者。原始创造者用手里的质数解码。一般情况下所选质数都很大,如今常见的计算机没有可能在有效时间内解开, 即使多台同时运算。第一次知道质数在现实中的巨大作用。
RSA密码是美国科学家们在1977年左右联合发明并公诸于世的, 但按照此书的叙述其实英国的GCHQ 部门在更早前就发明了公用钥匙的概念,只是GCHQ属于保密机构而没有及时发表研究成果。
是否让个人使用RSA密码成果也是一个两难的问题。让吧,政府如何掌握信息打击犯罪集团?不让吧,如何保护个人隐私。书中给了几个可以索求密码的网站,比如pgpi.com, 有时间要试一试。书中也详细介绍了政府是如何扫描来往的私人电子信息,很是有些恐怖,也佐证了我一贯的观点,非常有必要给私人电子信息加密,end to end。
一直在书中寻找我们耳熟能详的摩斯密码未果,难道只是密码学的一朵小浪花?
这是一本二十年前发行的科普书,很是好奇成书后的二十年间密码学的发展。虽说RSA密码是IT还在经常使用的加密方法,但我想军用层面,政府层面一定已经有了更加难以破译的加密方法。书中展望了量子密码的可能性和难度,不知道今天的进展怎么样了?