analysis

星期六, 8月 28, 2021

密碼的故事


Mark Frary《密碼的故事﹕人類史上最重要的45種密碼與破解之道》,張毅瑄譯,新北﹕遠足,2021

朋友介紹的書,篇幅不算長,所以每段歷史的介紹都很簡單,讀起來很快。

如果要比較,在下比較喜歡十幾年前讀的Simon Singh《碼書》,因為《碼書》對密碼操作的解釋比較仔細(於是內容也比較厚重),以實例教你如何使用段落中介紹的那款密碼,看完你真的會懂得用。本書的解釋相對較簡單(所以全書也比較短),不是每款都讓你學得懂。

當然本書對《碼書》也有優勝處,就是《碼書》篇幅主要介紹較舊的密碼,本書比例上有較多電腦時代密碼的介紹。《碼書》對電腦密碼主要是介紹PGP公私鑰加密,本書還介紹區域加密法(如DESAES)、無線網絡加密法、保存散列加密法(SHA)等電腦時代的密碼。

所以如果要輕鬆閱讀密碼史,本書似乎是不錯的選擇。本書最大缺點似乎是電子版校對不嚴,以致書中各處的次方數都忘了上標。

(方某人其他書評書介)

(如果閣下有興趣讀電子書,經本文連結 http://moo.im/a/456djq 購買,本人將獲得平台回饋。當然看倌不一定要經這條連結買的。)

---

筆記,或挑骨頭﹕

#185序「山謬.摩斯(Samuel Morse)把與他同名的這套電碼貢獻給世界」

正如文中稱為「電碼」,這套是明碼而非密碼。
(雖然口頭上經常稱為「摩斯密碼」,但編碼方式其實是公開的,誰都可以去學。等於俄文阿拉伯文你也看不明白,但很多人懂,何密之有。
當然密不密也是看情景,正如《Sherlock》有一集的反派華人幫會以花碼當密碼用。對白人也許是密碼,但你去香港舊式街市隨便找個攤檔都可以見到,對方某這類中年人更是小學要教的常識來。現代英國有那麼多華人,拿花碼當密碼用算是很不小心的做法。)

「不過,就連這種密碼都不是百毒不侵。直到二次大戰終戰數十年後,英國布萊奇利園(Bletchley Park)解碼專家的貢獻才為世人所知,但戰爭時期的領袖溫斯頓.邱吉爾(Winston Churchill)曾說過一句著名的話,他說布萊奇利園所做的事讓戰爭得以提早一年結束。」

中文一般用「二次大戰結束」,日本人才會用「終戰」吧。

#241印度河文字「目前為止所發現的印度河文字語料庫裡有超過四百個不同的基本符號,以及大約兩千個不同的變體。……學者也認為這些字符不可能全部都只代表單字或某種特定含意,因為它的數量比起繁體中文的十萬多個象形與表意字又實在太少。」

中文所謂十萬多個大部分都是生僻字,日常根本用不著。中文常用字也是四千個左右,簡體甚至只需三千。古時需要的字可能更少(因為很多通假字,後來很多較複雜的字都是由簡單的字分化出來,以便區分不同意思)。日文因為多用假名,現時常用漢字甚至連二千都不夠。

#476熙篤會密碼「法國皮第地區(Picardy)」

一般都是譯「皮卡第」。

#516第三章密鑰與多重字符「N元語法分析(n-gram analysis)在這種情況下就可以派上用場。所謂「N元語法」是指一串長度為N個字母、N個音節或是N個單字的字串。」

#525「據表中所示,英文裡最常見的二元語法是TH,HE,IN和ER。要注意,這四種二元語法出現頻率高低在不同資料庫裡順序會有所不同。依據西北大學拿撒勒物理學教授威廉.帕卡德(William Packard)的研究結果,英文裡最常出現的三元語法是THE,AND,THA,ENT,ION,TIO,FOR,NDE,HAS,NCE,TUS,OFT和MEN。另一種有用的方法是找英文中最常見的連字(SS,EE,TT,FF,LL,MM和OO)以及最常見的兩字母或三字母單字。」

 #536「有一種密碼分析技術介於頻率分析與N元語法分析之間,叫做「接觸分析」(contact analysis)。接觸分析要看的不是個別字母的出現頻率,而是某種特定語言裡特定字母出現在另一種字母旁邊的頻率。以英文為例,「q」後面接著「u」的機率超過百分之九十九,極少數的例外是像「Iraq」(伊拉克)這種單字,且這裡「q」後面接的是空格。我們也知道「v」後面接著「e」的機率超過三分之二,「h」後面也有百分之四十六的機率是接著「e」。網路上可以找到呈現這些機率分布的圖表。」

這類知識對於玩Scrabble也有用。

#620曼圖亞密碼「就算能混淆個別字母的出現頻率,但二元與三元語法就沒那麼好掩藏。同時,解碼者也能以常出現的單字為目標。我們知道「the」是英語中出現頻率最高的單字,只要密文長度夠長,那我們就很有可能在密文中發現某個字符組合重複出現,就算加密者使用同音異義詞也一樣。    解碼者還有一招是去找「qu」這個二元語法,因為英文裡的「q」後面幾乎總是接著「u」,且因為「q」在英文裡出現頻率不高,所以密文裡用來替換q的很可能只有一種字符。只要分析密文,找出哪個符號後面緊接的只有另外兩到三種符號,那麼那種符號有可能就是「q」。」

#657「馬里蘭州巴爾的摩郊外的國家密碼學博物館(National Cryptologic Mu-seum)」

電子書不會以轉頁位斷字,不需保留連字號。

#664「現代的密碼製作者也會用日常材料來達成類似效果,比如把密文偽裝成廣告郵件內容。」

之前大家不就是發現內容奇怪的報紙分類廣告﹖

#743阿諾德密碼「在這些祕密通訊之中,阿諾德同意將戰略要地的西點(West Point)堡壘交給英軍,換取總額二萬鎊的賞金。」

在下本來想英文地點的point通常會稱「角」(例如香港北角就叫North Point),但再查才發現這個地點就是後來的西點軍校,那麼真的不譯西點不行。

#800第四章電子加密「從十九世紀末到二十世紀初,業餘密碼專家的生存空間逐漸消失,因為人們開始發現某些加密方法能讓那些原本單打獨鬥的解碼者毫無用武之地。……語言能力在解碼上特別有用,因為很多解碼方法靠的是從有限資訊推測可能的明文單字與句子;但有時解碼者還需要具備過去歷史而非當下的語言知識,他們要解讀的是古物上的銘文,而用來寫這些銘文的字母或語言早已因年歲久遠而失傳或鮮為人知。」

所以布萊奇利園曾以填字遊戲秘密招才。

「齊曼電報」

這有點怪,因為以往見到都是譯「齊墨曼」。

#847傑佛遜密碼機「由於圓盤的排列方式變化太多[二十五階乘(25!),超過15×1024],使得M-94密碼機在戰場上使用起來加倍安全。美國軍方從一九二二年開始使用,美國海軍則在一九二六年採用自己不同的設計。然而,就算可能的密鑰數量多如恆河沙數,只要敵方取得足夠長度的密文內容,仍舊能夠進行解碼。儘管如此,M-94還是被美軍廣泛使用,一直用到一九四五年。」

24應是次方(10的24次方 = 10^24),要上標

#884普萊費爾密碼「Lyon Playfair

Playfair這個姓頗妙(公平地遊戲)。

#1004商用代碼「一八八四年,西聯公司發送電報的收費標準是一個字五毛錢(大約等於今天的十三美金)。詹姆斯.D.雷德(James D Reid)在一八八六年的《摩斯紀念文集:美國電報》(The Telegraph in America and Morse Memorial)一書中說,紐約到倫敦之間第一通成功跨大西洋傳送的電報只有十個字,但費用卻要一百元(相當於今天的二千七百美金)。後來收費標準一直下降,但過了二十年後發一個字也還要四毛錢。費用如此昂貴,發訊者不得不試圖在保留原意的情況下盡力縮短訊息長度。」

就是因為電報逐字計費,所以才出現慳家的李光耀想吃steam boat變成battleship的笑話

#1018「萬國碼(Unicode)這套系統是用約定好的拉丁單字替換片語,設計目的是要避免電報通訊常發生的誤會。」

偏偏現在電腦編碼也是叫Unicode

#1134齊麥曼電報「譯註:原書所言跟史實有所出入。真實情況是英國編造了「英國特工在墨西哥電報局發現這封電報」的故事,來掩蓋他們竊聽美國駐外使館外交電報通訊的事實(這封電報是德國政府以密文方式交給美國駐德大使,使用美方外交電報線路發送回美洲)

因為美國借自己線路給德國和駐美大使傳訊息,典型的養狼狗咬心口。

#1143一次性密碼本「Omaha(奧馬哈)」

那是一個市。

#1205第五章Type X和SIGABA「英國皇家空軍中校O.G.W.萊伍德(O G L Lywood)」

顯然是抄錯。

#1315「使用三個轉子的情況下,這台機器共有26×25×26也就是一萬六千九百種初始位置」

為何是25﹖維基﹕不是26 X 26 X 26,因為第二個旋轉盤會與第三個旋轉盤一起轉動。

#1319歷史解碼者亞蘭.圖靈與Enigma密碼機「依據歷史學家法蘭克.卡特(Frank Carter)與約翰.加勒豪克(John Gallehawk)的說法,加上插頭板後的Enigma共有1.58×1020種初始位置。」

如前面,這裡20也是次方,應上標。

#1493歷史解碼者唐納.哈登「歷史上其他看似「堅不可摧」的密碼,經過他人多年嘗試之後終究能夠破解,事實如此;這也就是說,會有更多解碼者加入破解「星座殺手密碼」的行列。或許他們終能讓這名兇手伏法,這點令人引頸期盼。」

等到解開那個兇手大概不是已經死了就是老到無法監禁了。

#1519公鑰加密法(PKE)「密碼分析專家有時會用「橢圓曲線質因數分解方法」(elliptic curve method)這種代數技巧來找出因數,方法是解y2 = x3 +  ax +  b這條等式。」

同樣地,這裡「2」和「3」都是次方,要上標。

#1581進階加密標準「電子前線基金會(EFF)已經證明他們的DES解碼機(暱稱為「深解」(Deep Crack))能夠以蠻力攻擊方式快速檢驗全部256種可能的密鑰(見第六章「區塊加密法」)。」

再一次,這裡56是次方,要上標。我想有常識的人都看得出,如果只有「256種可能的密鑰」那麼少的話不需要用電腦來破解。前面#1499提及「DES有72,057,594,037,927,936種可能的密鑰」,這正是2^56。

#1597保存散列演算法「SHA的用處不是在加密訊息,而是在確認資料與訊息的真實性。它是TLS和SSL這種網際網路安全協定裡面所使用的安全標準,常被用來驗證網路密碼。」

應是「這些」。

「SHA的安全性建立於如下假定:從某一段既得訊息摘要反推出訊息原文為不可行、從兩段不同訊息產生出相同訊息摘要(這種情況稱為「碰撞」(collision))亦為不可能。除此之外,輸入訊息的原文只要有細微相異,產生的摘要就會天差地別。」

這有點難明,因為如果將較長的訊息壓縮成較短的訊息,無論採用哪種方式,以符號拼成的較短訊息所產生出的可能性總數,必然少於原先較長訊息的可能性總數。於是總有一些不同的訊息會被壓縮成相同的短訊息。
只是正如縮短網址的原理,因為一般長網址的構成都有規則,網址出現的可能性應該還是有限(雖然總數非常大),而亂碼的短網址可以出現的可能性總數也非常多,所以壓縮成短網址後會相撞的機會很小。

「SHA-1產生的訊息摘要長度為160位元,訊息本文內容會有無限變化,而可能產生的訊息摘要種類則為有限。不過,要找出產生同樣訊息摘要的兩份不同訊息,其機率是二百八十分之一。二○○五年,中國一群密碼分析專家聲稱他們已經找到方法,將發現「碰撞」的機率提高到二百六十九分之一;這仍然是一個奇高無比的數字,但已經足以為SHA-1敲響喪鐘。二○一五年,學界進行第一場針對SHA-1的攻擊演示。」

這裡顯然1/280或1/269的機率都是大得不合理。只要猜猜,再看維基SHA-1條目驗證,就會明白這裡是誤譯,原文應該是1/2^80和1/2^69 (二的八十次方分之一、二的六十九次方分之一)。不應該用中文數字,而應以阿拉伯數字加上標。

#1618量子加密法與未來「光束由光子構成,光子會往特定方向振動,此即所謂「偏振」,那種在陽光下顏色會變深的太陽眼鏡鏡片就是運用這個原理。」

作者搞錯了,變黑鏡片是化學變化,偏振鏡片才是物理現象。後者可以令反射眩光變暗,但鏡片本身不會變色。

#1630怎樣成為密碼分析專家「英文裡最常見的字母是E、T、A、O和N,法語是E、A、L、S和T,德語則是E、N、I、R、S。同樣的,我們也可以進行二元語法和其他n元語法分析,英文裡最常見的二元語法是TH、HE、AN、IN和ER,法語則是ES、EN、OU、DE和NT。」

#1640名詞解釋「Corpus    語料庫    世界上現存的所有密文內容,特別指那些還沒被成功解讀的密碼與失傳語言。」

明文也有語料庫。

#1936版權頁「特別聲明:有關本書中的言論內容,不代表本公司/出版集團之立場與意見,文責由作者自行承擔。」

內容有甚麼問題﹖有時出版社的免責聲明令人很困惑,例如《誌同道合:香港標牌探索》的書名頁警告印就十分奇怪,因為你揭完整本書都沒發現警告提及的事。

沒有留言: