读书:刘巍然《密码了不起》书评

饮冰听雨 2023-10-31 13:50:57

在近几年我所阅读过的国内科普书籍中,单从行文的文采来说,我始终认为曹天元《上帝掷骰子吗:量子物理史话》出类拔萃,并且不止一次形容这书如小说般,“硬生生能写出华山论剑的风采”;而林欣浩的《哲学家们都干了些什么?》虽平易近人,八卦有趣,但“体大貌粗”。至于刘巍然的这本《密码了不起》,则像二者的折中:在典故叙述上,它本可以写得更曲折吸睛,但始终有些平铺简略;在原理讨论上,它本可以做到更删繁就简,但终究还是稍显硬核。

这本书前后的行文风格是一致的:通俗,轻松,偶尔来点小幽默(比如形容英国演员康伯巴奇“以脸长著称”),但内容有些割裂。它分为四部分:一、古典密码:高手过招的智慧博弈;二:战争密码:生死攸关的巅峰较量;三:数论基础:密码背后的数学原理;四:安全密码:守护数据的科学方法。大体上前两部分属于古典密码学时期,后两部分属于现代密码学时期,所谓的“分裂”就产生在古典与现代之间的设计思想上。

在古典密码学的部分,并不涉及到过多的数学知识,因为古典密码没有坚实理论基础支撑的设计思想。它主要包含两种设计思路:移位(Shift)和代换(Substitution)。所以在第一部分中,无论是讲编码,还是移位密码,或者代换密码,更多的是一种如史话版的叙述讲解,这并不会让人费解;而且这一部分的开头引入,就是2009年“百度贴吧-密码吧”中经典的“五层加密告白”贴(啊,死去的记忆在攻击我),从引入到通过介绍相关知识再到层层破译最后得出结果,是一个巧妙的结构设计;

第二部分战争密码是从电影《模仿游戏》讲起,从德军的ADFGX、ADFGVX密码到维吉尼亚密码的设计与破解,最后再到设计精妙的恩尼格玛机怎样被图灵攻破,同样也构成了闭环。当然,这部分本来就在绝佳的时代背景下,可以写得更惊心动魄,不管是《风语者》还是《模仿游戏》(哪怕加上柳云龙《暗算》的“看风”篇呢)的惨烈或曲折,但作者写得很克制,把更多笔墨放在了恩尼格玛机的结构原理上,甚至连缺陷和破解都讲得不温不火,这是我认为本书“平铺简略”的原因之一——要知道,图灵的破解是怎样显示出智慧的光芒;

从第三部分开始,内容开始割裂。因为在现代密码学时期,密码设计者结合了香农的理论和计算机相关理论,找到了设计安全加密方法的途径,所以要介绍现代密码的设计原理,就需要一些数学知识和计算机科学知识,故此第三部分开始引入了数论知识,尤其是质数和同余运算,并且涉及到了两个非常重要的困难问题:整数分解问题和离散对数问题,这和现代密码学的公钥加密方案有密切相关。本部分选取的例子是身份证号码校验,如果同余运算没有难住你的话,那么这个例子相对容易理解;

第四部分的前半内容涉及到大量的定义和符号,对于数学不好的读者而言,很容易陷入看“鬼画符”的境地中,但大体能体会设计思路,比如香农“密码的完备保密性”;后半部分的若干定义和公式看不懂也没关系,因为作者以通俗的表达,通过Alice、Bob、Eve、Mallory等拟人化的“密码算法话剧演员”,解释了全同态加密、公钥密码学和公钥加密的区别原理,堪称本书最精彩的部分,是非常有趣的科普表述。

本书是知乎电子书《质数了不起》的升级版,由此可见原书中数论知识的重要性,要是再详细点,估计就得写成质数研究史了——当然好也就好在,即使书中的数学和计算机知识看不懂,本书也不会完全读不通,只是体会不到现代密码设计原理的妙处,把它看成密码学发展极简史的通俗读物就好了。如此一来还有个好处,就是避免陷入数学部分的勘误中。想更深入地了解密码学知识,本书贴心地在每一部分后都列举了一些密码学著作,比较具有针对性。

让人意外的是,在涉及同余运算时,作者用刘慈欣《三体》中,冯·诺依曼指挥秦国士兵构建人肉计算机的例子阐述了“与或非”的运算,说明了计算机的基本运算原理。这对三体迷来说是个彩蛋,不过可能更应归功于大刘本身的出色创作。此外,像诸如福尔摩斯小说、狄更斯《双城记》、电影《风语者》《模仿游戏》、网络帖的信手引入,丰富了本书的趣味,然而文字上就显得有些飘忽。

不过读了此书后,我最大的想法就是对向女生表白的男生说:小子,记住,凡是你表白后,女生用密码回复的,那基本都是对你有意思——对你没意思,搞那么复杂干嘛?不管几层,你只要看着密文那么长,一律解密为“I LOVE YOU TOO”;如果密文短,你就处理成“GET OUT”或者“F*CK OFF”……

0 阅读:1