讀書:劉巍然《密碼了不起》書評

飲冰聽雨 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