鑰匙的重要性遠高於演算法,這就是密碼學上顛撲不破的真理……密碼系統的安全性不在於防止敵人洞悉密碼演算法,鑰匙的保密才是決定密碼安全性的唯一關鍵
每種密碼法都可視為一種演算法(algorithm)——再加上一把鑰匙(key)的組合結果。鑰匙是用來指定特定加密程序的演算細節
(替代法的)鑰匙的定義可以更簡單,制定密碼字母集時,發信人可以選用一個鑰匙字(keyword)/鑰匙片語(keyphrase),而不必將全部的字母隨機重排……例如,選用 JULIUSCAESAR 當鑰匙片語,再以這些字母當密碼字母集的起始字母,接著,把字母集的其他字母,依照原有順序,接到鑰匙片語的後面,就能造出密碼字母集
舊約聖經含有一些蓄意的、明顯的密碼應用例子,讓中世紀的修士深深著迷。例如,舊約聖經就有幾段以「atbash 法」加密的文字。Atbash 是一種傳統的希伯來文替代式密碼法:要替換字母時,先記下他在字母集的順序編號,再取從字母及後頭倒數過來順序相同的字母取代。以英文為例,第一個字母 a,就以最後一個字母 Z 來代替。事實上,atbash 這個字就暗示了它所描述的替代法。它包含希伯來文字母的 aleph,跟著的是最後一個字母 taw,再來是第二個字母 beth,最後是倒數第二個字母 shin
……簡易的方法來增強單套字母替代法的安全性,其中一種方法是引進「虛元」(nulls),亦即不代表任何字母,像空格一樣不具任何意義的字母或符號。例如我們可以在 1 到 99 之間任選 26 個數字來替代明文字母,剩餘 73 個不代表任何字母的數字,則以不同的頻率隨意散至在密碼文之間……這些虛元會干擾頻率分析法的應用
另一個扶助岌岌可危的單套字母替代法的辦法是使用代碼字 (codewords)。code 這個字在日常語言有非常廣泛的含義,常被用來描述任何祕密通訊方法……它其實有特定的意義,專指某種形式的替代法……讓整個單字改由另一個單字或符號替代
在技術上,代碼法 (code) 指的是單字或片語層面的替代法;密碼法 (cipher) 指的是字母層面的替代法。因此,密碼加密 (encipher) 指的是用密碼法改寫訊息;代碼加密(encode)則是用代碼法改寫訊息。同理,解譯密碼 (decipher) 是還原以密碼法加密的訊息,解譯代碼 (decode) 則是還原以代碼法加密的訊息
……仔細檢視代碼法,我們會發現它有兩大缺點,不如密碼法實用……要達到同樣的彈性,得先定義數千個可能會用到的明文單字代碼。這樣一本代碼簿恐怕會有好幾百頁……(攜帶不易)……再者,代碼簿被敵人俘獲的後果會非常悽慘,發信人和收信人必須再度重新編撰一本全新的代碼簿
命名法 (Nomenclator) 主要是以密碼字母集為主,再加進一些代碼。命名法的安全性並不會比單純的密碼法高,因為訊息主體仍可用頻率分析來解釋,其餘用代碼加密的單字則可利用前後文推測出來
維瓊內爾密碼法 (Vigenere cypher) 的力量源於它使用不僅是一套、而是二十六套密碼字母來加密訊息,每套字母都是將它前面那套字母挪移(凱薩挪移法)一位而成……發信人加密第一個字母可以使用第 5 列的字母集、第二個字母則用第 14 列、第三個字母用 21 列,以此類推
(維瓊內爾密碼法)一個明文出現很多次的字母,在密碼文卻可能是以數個不同的字母來但替。例如 troops 這個字,字母 oo 是重複的,卻被不同字母替代……可以抵擋頻率分析法的攻擊,而且密碼鑰匙的數量也很驚人。發信人和收信人可以協議採用字典上的任何一個單字、任何單字組合,乃至杜撰的字……但這個看來毫無缺陷的系統,在接下來兩個世紀,大受冷落
同音替代式密碼法 (homophonic substitution cipher)……一種筆單純的單套字母密碼更難破解、但又比多套字母密碼法更容易使用……特色是,每個字母有數個替代的符號,替代符號的數目多寡與字母本身出現的頻率成正比。例如,字母 a 在英文出現的頻率約佔 8%,所以編定包含 100 個符號的密碼集時,我們就指定八個符號來替換 a
(同音替代式密碼法)仍留下許多細微的線索給密碼分析家……每個英文字母都有它的獨特性格。這些性格顯現在它與其他字母的結構關係上……最極端的例子是 q。能跟在 q 之後的字母只有一個: u
(電報)在英格蘭,查理查爾斯・惠斯頓 (Charles Wheatstone) 爵士和威廉・佛勒吉・庫克 (William Fothergill Cooke) 用磁針製造偵測器,電流出現時,磁針就會偏斜
薩姆爾・摩斯 (Samuel Morse) 用電磁加強訊號,使訊號抵達收信端時,仍有足夠的強度在紙上畫出一系列長、短記號。他也研發了一套我們現在所熟悉的摩斯密碼,把每個字母轉譯成一系列點和線,摩斯還設計了發聲器,讓收信人可以聽到代表字母的一系列短音和長音,亦即有聲的點和線……摩斯電碼逐漸取代惠斯頓-庫克系統
摩斯電碼本身並不是密碼,它並未隱藏訊息,換句話說,摩斯電碼不過是另一種形式的字母集……通訊員能讀取每一則訊息
電報的發展,不僅促進密碼術的商業價值,也引發一般大眾對密碼數的興趣。民眾開始覺得需要保護他們高度敏感的私人通訊,必要時進行加密,即使這會加長傳送時間,因而增高電報費用。摩斯電碼通訊員最快可以每分鐘送出 35 個字,因為他們能記下整段句子,一口氣發送出去,可是在處理密碼文那一團不知所云的字母時,發送速度當然會慢很多
有些愛侶就透過報紙的個人啟事區傳送加密訊息給對方,俗稱「相思專欄」 (agony columns)……有一次,惠斯頓解譯了一名牛津學生刊在《泰晤士報》提議愛人與他一起私奔的啟事。幾天後,惠斯頓刊他自己的啟事,也用同樣的密碼加密,勸告這對愛侶不要履行這項輕率、叛逆的計畫
無線電這種既是優點也是缺點的特性——方便通訊,但也方便攔截——隨著第一次世界大戰的爆發,成為極受關注的焦點。每一方都想利用無線電的力量,但又不知道如何確保它的安全性。無線電的來臨和世界大戰的爆發,使得大家更迫切需要有效的加密系統
ADFGVX 密碼的破解正足以代表密碼術在第一次世界大戰期間的處境。在此時急速出現的新密碼都是十九世紀已經被破解的密碼法的變體或混合。有一些在剛開始還能提供安全的保證,只是過沒多久,解碼專家就能掌控它們了
在一戰期間,無線電通訊量非常驚人,而且每一則都攔截得到,據估計,法國人在一次大戰期間截獲的德國通訊內容高達一億個字
(一戰)每個站都可以轉動它的天線,直到接收的訊息強度最強,即表示它對準的方向是訊號來源。結合兩處或多處站台所測得的方向資訊,就可能找出敵方發送訊息的確實位置。結合「筆跡」和定位技術就可能辨認出,譬如說,某個部隊的位置和身份。這種情報收集形式被稱為通訊路線分析 (traffic analysis)
(一戰)剛開戰時,德國根本沒有軍方的密碼分析局……他們建立竊聽機構 (Abhorchdienst) 的行動這麼緩慢的原因是,德軍在戰爭初期就進入法國領土。法國在撤退時,毀壞了地面通訊線路,迫使德國人必須仰賴無線電進行通訊
(一戰)德國外交部開始調查美國是如何拿到齊瑪曼電報 (The Zimmermann Telegram) 的。他們掉進霍爾上將的圈套,而得出「很多跡象顯示,是墨西哥境內發生叛逆情事」的結論。在這同時,霍爾繼續刻意把德國的注意力從英國解碼專家的工作轉移開。他刻意在英國媒體發表一則新聞,批評他自己的組織竟未攔截到此電報
(齊瑪曼電報)一九一七年年初威爾遜說,把美國引入戰場是一項「反文明的罪行」,到了四月二日他改變心意了……三年密集外交行動未能成功的目標,被 40 號房解碼專家的一向突破達成了
維瓊內爾密碼法的弱點在於它的循環本質。假使鑰匙字是五個字母長,則每逢五個字母就會用到同一套密碼字母集。解碼專家一旦辨識出鑰匙字的長度,就能把密碼文視為五個單套字母密碼法的系列組合,再以頻率分析法逐一破解
一把跟訊息一樣長度的鑰匙並不足以保證密碼的安全,理由是,加密鑰匙可能是由有意義的字所組成的。我們先在明文裡隨意插放幾個 the ,求出對應的鑰匙字母。然後,因為這些鑰匙字母看奇萊很像是有意義的單字的一部分,我們就知道 the 放對地方了
一戰接近尾聲時,美軍密碼研發部門的主管約瑟夫・茅柏格少校,引進隨機鑰匙的概念——鑰匙的組成元素不再是可以便是的單字,而是隨機組合的字母。他主張採用這類隨機鑰匙,配合維瓊內爾密碼法……茅柏格系統的第一步驟是編撰一本厚達數百頁的密碼鑰匙簿……訊息成功發送、接收、解譯後,發信人和收信人就把這一頁鑰匙銷毀,再也不用它。因為每把鑰匙都只使用一次,這套系統就被稱為單次鑰匙簿密碼法 (one-time pad cipher)
(單次鑰匙密碼法)它幾乎不曾被派上場。理論上它是很完美,實際使用上則有缺陷。因為它有兩項根本性的問題:第一:編造大量的隨機性鑰匙有實際困難。軍隊每天大概得收發數百則訊息,每一則都有數千個字元,亦即無線通訊員每天所需要的鑰匙量,相當於數百萬個隨機排列的字母。供應這麼多隨機組合的字串,是不可低估的龐大工程
Enigma 變量與鑰匙數量
- 每個編碼器有 26 個方位變化,3 個編碼器有 26 ^ 3 = 17576 種變化
- 三個編碼器有 3! = 6 種排序方式
- 對調 26 個字母中的 6 對字母線路共有 100,391,791,500 種變化
- 26 個字母取 12 個 —— C(26, 12)
- 12 個字母配成 6 對 —— C(12, 2) × C(10, 2) × C(8, 2) … = 12! / 2 ^ 6
- 6 對之間不排列 —— 1 / 6!
接下來的二十多年,德國軍方買了三萬多台「奇謎」機。雪畢伍斯的發明供給德國軍方世界上最安全的密碼系統,第二次世界大戰爆發時,他們的通訊由無可比擬的加密水準保護著。有那麼些片刻,「奇謎」好像會扮演確保希特勒勝利的重要角色,可是相反地,它是希特勒最終毀滅的部份原因
德國採取了額外的安全措施,聰明地使用當日鑰匙設定來為每一則訊息傳送一把新的訊息鑰匙 (message-key) ,訊息鑰匙的接線版設定和編碼器位置順序和當日鑰匙相同,編碼器方位則不同,發信人必須依照下列方法把新的編碼器方位傳給收信人。首先,發信人依據協議的當日鑰匙設定機器。假設當日鑰匙的編碼器方位是 QCW,他就為訊息鑰匙隨意挑選另一組編碼器方位,例如 PGH。再來是依據當日鑰匙加密 PGH,輸入到「奇謎」機時,要輸入兩次,以便收信人能夠驗證。例如,發信人可能把訊息鑰匙 PGHPGH 加密成 KIVBJE。兩個 PGH 有不同加密結果,是因為「奇謎」機的編碼器每加密一個字母就轉動一次。在接收端,收件人先按照當日鑰匙設定機器的方位 —— QCW,輸入協議的前六個字母 KIVBJE,得到 PGHPGH,即可更改為正確方位並開始解譯訊息……這種方法等於是叫發信人與收信人協議一隻主要密碼鑰匙,但不用來加密每一則訊息,而只用來加密每一則訊息的新密碼鑰匙,再用這把新的密碼鑰匙加密真正的訊息。倘若德國人沒使用訊息鑰匙,所有訊息——可能有數千則訊息、數百萬個字母——都會用同一把當日鑰匙傳送
一九三八年,波蘭攔截並解譯訊息的績效達到高峰。到了一九三九年初,(奇謎機)新編碼器和新增的接線版電線阻斷情報的源流……瑞傑斯基被打敗了。他已經證明「奇謎」不是無法破解的密碼,可是沒有檢驗所有編碼器設定所需的資源,他無法找出當日鑰匙……奇謎再度變得難以攻破
「奇謎」不只是一種通訊工具,也是希特勒閃電戰策略的核心。閃電戰的概念是快速、強大的協同攻擊,這意味大型裝甲師之間必須能彼此聯繫,並與步兵和砲兵部隊維持通訊。此外,俯衝轟炸機斯圖卡 (Stuka) 要在空中支援地面部隊,也有賴於前線部隊和機場之間的高效率且安全的通訊。閃電戰的特質就是「利用快速通訊,進行快速攻擊」
在一九三八年秋天,柏雷屈里的科學家與數學家研習「奇謎」密碼的複雜性,很快就熟練了波蘭人傳授的技巧。柏雷屈里有較多員工和資源,而能夠應付編碼器設定增加後,「奇謎」的破解難度升高十倍的問題
這些解碼專家必須再度開始尋找新的當日鑰匙……這可能要花費數個鐘頭的時間,不過一旦找出當天的「奇謎」設定,柏雷屈里人員就可開始解釋堆了一堆的德國訊息
「奇謎」操作員有時會選用相當明顯的訊息鑰匙。根據規定,應該為每一則訊息挑選一把不一樣的訊息鑰匙——三個隨機選取的字母。然而在戰火中,工作過度的操作員有時候會懶得耗費想像力挑選一把隨機的鑰匙,而乾脆從「奇謎」鍵盤上選用三個排在一起的字母,例如 QWE……這類可預測的訊息鑰匙被稱為 cillies
大家一直相信,所有數學問題,至少在理論上,都有答案。哥德爾卻證明,有些數學問題超乎邏輯證明的範圍之外,既不能證明其為真,也不證明其為偽,此即所謂的「無法判定的問題」……這另許多數學家非常難受,為了拯救他們的學科,他們想找出方法來便是一個問題是否為不可判定,好把這類的問題擺到一邊去。這項目標激發圖靈寫下他最富影響力的數學論文〈論可計算的數字〉(On Computable Numbers),發表於一九三七年
……經驗告訴他,每天早上六點一過,德國就會送出一則加密的氣象報告。所以,一則在六點五分攔截的加密訊息,幾乎一定會含有 wetter (天氣)這個字。任何軍事組織都會實行一套嚴格的規範,這表示,這類訊息也會合乎某種制定的格式,因此圖靈甚至可以指出 wetter 大約在這則加密訊息的哪個位置……圖靈相信他可以利用這類對照文 (crib) 來破解「奇謎」
柏雷屈里的老將傑克・古德說:「幸好當局不知道圖靈是同性戀。要不然,我們可能會打輸這場大戰。」
「奇謎」機的特色是,由於反射器的作用,它不可能把明文字母編碼加密成同一個字母。字母 a 永遠不可能編成 A ……可以用作「炸彈」解碼的基礎
柏雷屈里無法破解海軍「奇謎」,德國海軍艦隊也就一直在大西洋暫譯保持上風。卡爾・兌尼茨上將設計了高效率的兩階段海戰策略。首先,他的潛艇在大西洋分散搜尋同盟國的護航船隊,一旦找到目標,就呼叫其他潛艇來到現場,等聚集了大批潛艇後,才發動攻擊。這種聯合攻擊的策略,有賴於安全的通訊系統才能成功……對供給英國食物與軍備的同盟國船舶,形成毀滅性的威脅
柏雷屈里的解碼專家知道他們的解譯成果非常重要,邱吉爾的來訪也證實了這一點。可是這些密碼分析家從不知道任何軍事行動細節,也不知道軍方如何應用他們的解譯結果。例如,這些解碼專家對 D-Day 的計畫一點兒也不知情,還安排在這一天前夕,也就是盟軍登陸的前一個晚上開舞會
「『終極』情報改變了資深幕僚和政治首長下決定時的心境。覺得自己很了解敵人,是非常令人安心的感覺。你若能經常、密切地觀察他的思想、作風、習慣和行動,這種感覺就會隨著時間不知不覺地增長。這樣的感覺經驗讓你自己在做計畫時更為果決,而不致優柔寡斷,少了忍痛的感覺而有更快活的心情。」
在太平洋戰役中,美軍指揮官開始感受到密碼機器如 SIGABA 有基本上的缺點。電機加密方法雖然提供了相當高的安全度,速度卻慢得令人難受……在更惡劣、緊張的環境,例如太平洋上的島嶼,機械加密法就不怎麼理想了
納瓦荷密碼之所以難以破解,是因為納瓦荷語屬於納丁語系 (Na-Dene),跟任何亞洲、歐洲語言都沒有關聯。例如,納瓦荷語的動詞不僅會隨著主詞,也會隨著受詞做變化。動詞的結尾端視受詞的類別而定:長的(例如煙斗、鉛筆),細瘦而有撓性的(例如蛇、皮帶),含顆粒的(例如糖、鹽),成束的(例如乾草),黏黏的(例如泥巴、糞便),以及很多其他類別。動詞也會結合特定的副詞,以說明講話者所談述的事是親身經驗或只是傳聞。因此有時候單一個動詞就等於一整個句子,外人幾乎完全沒有辦法解析出它的意義
在八個星期內,受訓人員熟記了整本辭典和字母集,不須再編制密碼簿,因而排除了密碼簿落入敵手的風險。對納瓦荷人而言,把所有東西都記在腦海裡,是非常稀鬆平常的事。因為納瓦荷語沒有文字,他們習於默記他們的民間傳說故事和家族歷史。
雖然納瓦荷密碼強度很高,但仍有兩項顯著的缺點。第一,在自然的納瓦荷詞彙裡找不到的字,必須用特殊的字母拼出來(例如,Pacific 拼成 「pig、ant、cat、ice、fox、ice、cat」)…… 因此他們決定添加常用字詞……第二個問題則牽涉到那些得拼出來的字,如果日本人知道有些字是拼出來的,他們就會想到用頻率分析來辨認
這場大戰共用了 420 位納瓦荷密語通話員。儘管他們英勇的行為受到獎賞,他們保護通訊安全的特殊角色則列為機密。政府不准他們談論他們的工作,他們特殊的貢獻一直未被公開,像圖靈和其他密碼分析家一樣,納瓦荷人被忽略了二十多年
象形文字 (hieroglyphics) 的精巧符號,用來裝飾莊嚴神殿的壁面很是理想,用來記載俗世日常事務卻略顯複雜。因此,有一種與象形文字平行演化的日常文字,叫做「僧侶體」(hieratic) —— 用較快、較容易輸血的線條化文字符號來取代……有一種更簡易的文字「俗體字」(demotic) 取代了僧侶體……象形文字、僧侶體、俗體字基本上都是相同的文字,幾乎可稱為同一種文字的不同字體……這三種書寫形式都是語音式的,也就是說,這些符號大多代表不同的聲音,就如英文的字母一樣
基督教的拓展是古埃及文字滅絕的主因。他們禁止人民使用這些文字,以根除人民和古老異教文化的聯繫。由二十四個希臘字母加上六個俗體字母所組成的卡普特文 (Coptic) 取代了古埃及文字……從此,埃及人民只使用卡普特文,進而完全喪失閱讀象形文字、僧侶體和俗體字的能力
這道古牆嵌著一塊石板,上面有一組非常奇特的銘文:同樣的內容在石板上飛別用希臘字、俗體字和象形字刻了三次。這塊後來被稱為羅賽塔石板 (Rosetta Stone)
古埃及的書記有時候會利用畫謎的原理來寫字。所謂畫謎 (rebus),就是把單字分解成幾個音節,再用語意字來替代這些音節。例如 belief 這個字可以分成兩個音節 be-lief,取諧音就成 bee-leaf 兩個字,但是我們不把這兩個字拼寫出來,而是畫一隻蜜蜂和一片葉子
這個在「雷米西斯」框飾文裡的太陽語意字,有非常深遠的意義:它指引我們辨識出古埃及書記所謂的語言……這些書記必定是講卡普特語,這個框飾文才會念成 ra-meses 而不是 helios-meses(卡普特與太陽的發音為 ra)
荷馬敘述了特洛伊戰爭的歷史——希臘戰勝特洛伊的經過及征戰英雄奧德修斯隨後的冒險歷程……許多十九世紀的學者認為,荷馬的史詩不過是傳奇故事。一八七二年,德國考古學家在土耳其西岸發現特洛伊的遺址,荷馬的神話乍時變成歷史
照理說,幾世紀的雨水會把這些泥板溶成泥巴,這些銘文會跟著化為烏有。可是,薩諾斯這座宮殿顯然遭過回祿之災,泥板被大火烤硬而存留了三千多年
電腦加密和「奇謎」密碼之類的機械加密有三項顯著的差異。第一項差亦是,機械式的密碼機器受限於實際建造的可行性,電腦則可模擬成一台極度複雜的假想密碼機……第二個差異是速度,電子設備的運作速度快多了……第三個差異是:電腦所加密的對象是二進位數字,不是字母…… ASCII 定義出七個位元的二進制數字,共 128 個不同字母和符號,足以定義所有小寫字母(例如 a = 1100001),所有標點符號和其他符號
即使我們面對的是電腦和數字,加密程序仍舊依循著古老的位移式和替代式加密原理進行(使用二進位鑰匙並使用 XOR 對應)
「魔王」加密訊息的編碼程序如下。首先,把訊息轉譯成二進位,然後,分成許多區段,每個區段有 64 個位元,然後對各區段進行個別加密:取出一個區段,弄混所有位元,再分成 32 位元的小區段,標示為左0和右0。右0的位元會跑一次「碎裂函數」(mangler function),亦即根據非常複雜的替代法更改這些字元。被「碎裂」的右0和左0相加,造出一個新的 32 位元區段,稱為右1。最初的右0則改稱為左1……重複上述程序,這套程序一共要重複執行十六回合。這種加密程序有點像在揉麵團……我們先把它切割成 64 公分長的小麵團,拿起其中一塊切一半,把其中一半捏碎,然後在疊捏在一起,跟另一半合在一起,又拉長,切分成新的一半,直到這則訊息完全攪混了……收信人逆向重複這套程序,就能解釋出原始訊息(後來成為標準的 DES(Data Encryption Standard) 加密法 )
自古以來,鑰匙發送的問題一直是編碼者的頭痛來源……理論上再怎麼安全的密碼,都有可能敗在發送鑰匙的問題……美國政府負責密碼鑰匙的管理與發送的機構是通訊安全局 (Communications Security),簡稱 COMSEC,在一九七〇年代,COMSEC 每天要傳送巨量的鑰匙。載運 COMSEC 資料的船入港時,密碼監護人上船接收成堆的卡片、磁帶、磁碟片或任何可以儲存鑰匙的媒體,再將它們分送給適當的收件人
鑰匙的發送或許讓人覺得是層次較低的問題,卻變成戰後密碼專家最大的問題……商業的困境是,如果政府都花上大筆鈔票才能勉強保證鑰匙發送的安全,民間公司豈不得搞到破產才可能弄出一套可靠的鑰匙發送系統?
當 ARPANet 還在襁褓時期,迪菲就已預見資訊高速公路和數位革命的到來……民眾在使用電腦傳送電子郵件時,當然也有加密訊息以保障隱私的權利
鑰匙發送問題是一個典型的「第二十二條軍規」(小說中的上司訂了一項條例:如果你心智不正常,就不用再做任何戰鬥飛行,而任何想退出戰場的人心智都很正常)進退維谷的情境。想透過電話線交換祕密訊息,發信人就必須加密這則訊息。要加密訊息,發信人就必須使用加密鑰匙。這把鑰匙本身也是祕密
這三個名字(Alice、Bob、Eve)已成為討論密碼學的標準用語。典型的情形是,愛麗絲想發信給巴伯,而依芙則想竊聽
大部分的數學函數可歸類為雙向函數,我們可以從它們運算出來的結果,很快推算回原來的數值……雙向函數可以逆向運算,單向函數不行。日常生活的動作最成解釋單向函數的概念:把黃色顏料和藍色顏料混在一起成為綠色顏料、敲破蛋
模算術 (modular) 有時候也稱為時鐘算術,是一個充滿單向函數的數學領域。在這個領域,數學家的研究對象是一組排放在圓圈的有限數字,就像時鐘上的數字段(求 10 + 3 的結果會回到 1)
在一般的算術環境,我們可以試驗數字,以得知我們正接近或遠離答案。模算術的環境卻不給我們線索,很難推算出原來的數值
迪菲-黑爾曼-墨克鑰匙交換方案 Diffie-Hellman-Merkle key exchange scheme, 1976
通用的單向函數是 Y^X (mod P)
,此範例的愛麗絲和巴伯已經選好 Y 值和 P 值,協議出一個 7^X (mod 11)
的單向函數
愛麗絲和巴伯大可使用電話線交換 Y 值和 P 值,依芙偷聽到這兩個數字 2 和 4 也沒關係,因為這兩個數字根本不是加密鑰匙
這個函數是單向的,所以愛麗絲很容易就從 A 求出 α,巴伯很容易就從 B 求出 β,依芙卻很難逆向執行這道演算式,特別是如果這些數字都非常大,她幾乎沒有機會
此交換方案雖然向前邁出一大步,但這個系統並不完美,因為在先天上有些不便:如果愛麗絲想加密訊息給巴伯,她必須先跟巴伯協議一把鑰匙
迪菲想到一種新的密碼型態,一種牽涉到所謂的非對稱鑰匙的加密系統……迪菲雖然想出了非對稱密碼法的一般概念,他並沒有一個特定實例……這個系統的優點是,它不會像迪菲-黑爾曼-墨克鑰匙交換方案那樣耽擱時間。巴伯要加密、發送訊息給愛麗絲,不用等她給予鑰匙所需的資訊。此外,非對稱密碼也克服了鑰匙發送的問題。愛麗絲不需要祕密傳送公開鑰匙給巴伯
我們可以把非對稱密碼想成:每個人可以隨手喀答一聲關上一道掛鎖,但是只有手握那隻鑰匙的人才能打開它……每個人都可以拿到這個掛鎖,每個人都知道如何用掛鎖把訊息鎖在盒子裡
用掛鎖的譬喻解釋起來,這個系統似乎非常簡易,然而一個能有同樣的功效、能編成一套可行的加密系統的數學函數,卻不是唾手可得的……得先找一個適當的數學函數
在一九七六年底,迪菲、黑爾曼、墨克這個三人小組在密碼世界引發一場革命。他們說說服密碼界相信,鑰匙發送問題有解決辦法,他們創造鑰匙交換系統——一個可行但不夠完美的方法。他們也提出非對稱密碼法的概念——一個完美但還不可行的系統
RSA(Rivest, Shamir, Adleman) 公開鑰匙加密系統, 1977
「……只能演算出來,不能推算回去的東西。質數和分解因數是理所當然的候選人」
系統中簡單稱為 N 的東西,是這套密碼最特別之處,因為是它使得這個單向函數在特殊條件下,可以逆向求出原值,因而極為適合用於非對稱密碼法
N 之所以重要,是一位它在這個單向函數是一個可變數,每個人都可以選用一個自己喜歡的 N 值。要挑選自己的 N 值時,先挑出兩個質數 p 和 q,將它們相乘的結果即是 N
RSA 公開鑰匙加密系統安全性的唯一警訊是,未來可能有人會找出分解 N 因數的捷徑……不過,分解因數的捷徑,數學家已經找了兩千多年,一直沒有成功,分解因數原本就是一個困難的工作
RSA 現在的使用慣例是,公開鑰匙的 N 值必須大到全球電腦聯合起來都需要比宇宙壽命還長的時間才能破解
「密碼學一向是隱身幕後的科學,跟日常生活沒什麼關聯。在歷史上,它一直在軍事和外交通訊中扮演了特殊的角色。可是在資訊時代,密碼學牽涉到政治權力,牽涉到特別是政府和人民之間的權利關係。它關係到隱私權、言論自由、政治結社自由、新聞自由、免於不合理的搜查與圍捕的自由,不受干擾的自由」—— 菲爾・齊默曼
「以往,政府若想侵犯一般公民的隱私,它必須費很多功夫去攔截、用蒸氣開啟、閱讀紙張信件,或是竊聽並可能抄錄電話上的對話。這就像用魚鉤和線來釣魚一樣,一次釣一尾……電子郵件和紙張信件不一樣,很容易攔截,掃描有興趣的關鍵字。這種工作可以變成自動化且大規模的例行作業。這就像用流刺網捕魚一樣——不管是質或量,都更近似侵蝕民主體質的歐威爾式監控。」—— 菲爾・齊默曼
RSA 加密程序,比起如 DES 的對稱式加密法,需要非常強的運算能力。在一九八〇年代,只有政府、軍方和大型企業才會有效能夠強的電腦來執行 RSA
齊默曼認為每個人都有權享受 RSA 所提供的隱私……他打算設計出一個又經濟、又有效率、不會過度負荷一般個人電腦運算能力的產品。他也要使它的 RSA 版本有特別友善的使用者界面,讓沒有太多密碼知識的使用者也可以自在地操作它。他把他這個產品稱為 Pretty Good Privacy (PGP)
(PGP)他讓非對稱 RSA 加密法與傳統對稱加密法(使用類 DES 的 IDES)協力運作……我們可以用 RSA 加密這把對稱加密法的鑰匙
PGP 的數位簽名是以非對稱加密為基礎:用私人鑰匙加密,用公開鑰匙解密……這種作業方式可用來驗證信件來源,因為如果巴伯可以用愛麗絲的公開鑰匙解開訊息,那它必定是用愛麗絲的私人鑰匙加密的——所以這則訊息一定是她發出來的
兼顧隱私的保障和發信人身份的確認……先用自己的私人鑰匙加密,再用對方的公開鑰匙加密
美國參議院在一九九一年提出包含多項的犯罪防治法案,其中一項條款是:「提供電子通訊服務的組織以及電子通訊服務器材的製造商,都必須確保其通訊系統能讓政府在得到適當法律授權的條件下獲取語音、資料以及其他通訊的明文內容。」…… RSA 資料安全公司、通訊工業以及民權團體合力促使國會刪除這項條款。齊默曼擔心,政府遲早會再度嘗試立法,使 PGP 類的加密軟體成為非法的產品
齊默曼在世界各地得到讚譽之際,卻在自家美國本土成為批判的對象。RSA 資料安全公司不願意給齊默曼免費的使用授權……氣憤地稱 PGP 為「強盜軟體」(banditware)
美國政府所定義的軍火武器,也包含加密軟體……由於齊默曼透過網際網路出口 PGP,所以被指控非法外銷武器
侵害眾人隱私權最嚴重的大概是國際性「梯隊」計畫。「梯隊」不需要為它的訊息攔截行動提出合法理由,而且它的對象並不侷限於特定人事,而是一視同仁地收集資訊,它的接收器會偵測從衛星反射出來的電訊
民權人士最有力的盟友大概是那些大型企業……網路上的公司必須要能擔保客戶的隱私和財務安全……公司都把大量資訊除存在資料庫裡,當然都想防止駭客潛入他們的電腦偷取這些資訊
在贊成加密的團體疾言要求密碼應用自由,而反加密團體不斷遊說正午限制密碼用途之際,有一種折衷意見出現了,稱為「鑰匙託管」……愛麗絲把她的私人鑰匙副本交給一位託管代理人,一旦有足夠證據顯示愛麗絲涉及犯罪事件,這位中間人就有權把私人鑰匙交給警察
最有名的密碼鑰匙託管試驗是美國託管加密標準 (American Escrowed Encryption Standard),它鼓勵大眾使用兩套稱為「剪刀」和頂石的「加密」系統……結果,這個策略行不通。除了政府外,沒有多少人支持這個鑰匙託管的主意
公開鑰匙加密系統的問題之一是,你要如何確定拿到的鑰匙確實是來自於你的通訊對象?認證機構 (certification authorities) 就是證明某把鑰匙確實屬於某人的組織
除了認證公開鑰匙,認證機構也可以擔保數位簽名的真實性
認證機構不會衍生新的安全風險。它們不過是要求某人揭示他的公開鑰匙,以便他們跟有意寫信給他的人確認這隻鑰匙的真實性
位於歐洲的程式設計師開始重造 PGP。一般而言,歐洲對加密技術的態度一向比較開放(至今仍是如此),並無法令限制歐洲版的 PGP 出口到世界各地。此外 RSA 專利權的糾紛在歐洲也不成問題,因為 RSA 的專利不適用於美國境外
所謂的暴風雨攻擊 (Tempest attack) 會偵測電腦每輸入一個字母就會發出獨特電磁訊號……那些訊息還沒輸入電腦、還沒加密前,就已經攔截到可讀的訊息了
(特洛伊木馬)依芙可以設計一隻專門感染 PGP 軟體的病毒,叫它靜靜地待在愛麗絲的電腦裡,當愛麗絲使用她的私人鑰匙解譯一則訊息時,病毒就會暗中將私人鑰匙送給依芙
變種的特洛伊木馬則是一份全新的加密軟體,表面上很安全,實際上卻留有「後門」……瑞士密碼科技公司 Crypto AG 在它的部份產品裝設了後門,並提供美國政府如何利用這些後門的細節