我和你的專屬密語

淺談密碼學(一)・古典密碼學

TIH
7 min readJul 6, 2017

密碼作為我們帳戶的一層防護,理當要好好守護它。在討論「密碼」的時候,我們大多談輪該用什麼樣的密碼才安全 — — 混合數字、英文大小寫字母,不要單用電話號碼等太容易被取得的個人資料⋯⋯等等。

大家費盡心思守護自己的密碼,而⋯⋯我們輸入密碼的那些網站,是怎麼保護我們的密碼的呢?

在網頁上輸入帳號、密碼,按下送出,這組帳密被送到另一端的電腦上,對照資料庫中儲存的帳號,驗證密碼是否相符,相符則成功登入。

⋯⋯有沒有覺得哪裡怪怪的?

如果資料庫裡存有我們的密碼,那麼負責管理資料庫的人不就可以看見嗎?或者資料庫被入侵,入侵者也可以全部看見。我們費盡心思保護的密碼就這樣輕易被人看光 — — 這樣對嗎?

當然不對,這就是為何我們需要「加密(Encryption)」。

我們運用密碼學(Cryptography),一門在探討資訊保密、傳遞、驗證⋯⋯等等的學問,對密碼做一些特殊的處理,將密碼從原本的明文(Plaintext)變成大家看不懂的密文(Ciphertext / Cyphertext),然後才將密碼傳送出去,存入資料庫。如此一來,就算有辦法查看資料庫,或者是有人在中途攔截我們傳出的資料,也只能看到加密後那一串沒有意義的密文,無法得知真正的密碼。

密碼學可分為古典密碼學與現代密碼學,我們先來看看比較平易近人(?)的古典密碼學。

古典密碼學主要採用兩種方式:替換與移項。

替換式密碼又稱取代加密法,是一種按規律將文字加密的方式。

替換式密碼中可以用不同字母數為一單元,例如每一個或兩個字母為一單元,然後再作加密。密文接收者解密時需用原加密方式解碼才可取得原文本。由於拼音文字中字的組成為有限的字母,以英語為例只有26個字母,組成可能的單元數較少,因此使用替換式密碼相對較為容易,而且亦可使用簡單機械進行加密;相反,非拼音文字如中文則因單元數非常大難以使用一般加密方式,必需建立密碼本,然後逐字替換。更何況某些非拼音文字中字字皆由不同大小的字根來組字,較難轉換,因此使用替換式密碼的示例比較少。

(Wikipedia:替換式密碼

採用替換的方法中,一個知名的加密法是是以羅馬共和時期的凱薩大帝命名的凱薩加密(Caesar Cipher),當年凱薩曾用此方法與他的將軍們聯繫。

在密碼學中,愷撒密碼,或稱愷撒加密、愷撒變換、變換加密,是一種最簡單且最廣為人知的加密技術。它是一種替換加密的技術,明文中的所有字母都在字母表上向後(或向前)按照一個固定數目進行偏移後被替換成密文。例如,當偏移量是3的時候,所有的字母A將被替換成D,B變成E,以此類推。

(Wikipedia:凱薩密碼

偏移量為3的英文字母對應

這是一個很簡單的方法,也非常容易被破解。

凱薩加密破解 — — 窮舉法示例(Wikipedia)

舉例來說,若我們得到一串密文:「exxegoexsrgi」,就算不曉得其採用的偏移量,我們也可以列出所有可能性。

陳列出所有可能性後,我們就能找出其中有構成意義的那項,得知它的意思。

像這個例子,列出密文以及其二十五個偏移量的結果後,我們可以推出其採用的偏移量為4,原始明文為「attackatonce」,斷字應為attack at once,意即「馬上攻擊」。

當密文長度足夠,也可以採用「頻率分析」。先計算密文中每個字母出現的頻率,再將此頻率與正常情況下該語言的字母出現頻率比較。例如,在一般的英文中,E和T出現的頻率特別高,而Q跟Z的出現頻率特別低,我們可以透過計算密文中的字母出現率,推估正確的偏移量。頻率分析不只可應用於字母,也可用在單詞。例如,英文中,出現頻率最高的單詞有the、of、and⋯⋯等等,我們可以將這些單詞的二十五種偏離量的密文編成字典,以此對密文進行分析。

Sherlock Holmes

柯南・道爾所著的知名偵探小說《福爾摩斯》,其主角夏洛克・福爾摩斯曾經在短篇〈跳舞的人〉(The Adventure of the Dancing Men)中使用這個方法。

事件中出現許多用跳舞人的圖畫傳達的訊息,福爾摩斯以英文中使用頻率最高的字母為E推出什麼動作的跳舞人代表E,再以此去推出其它字母,破解了跳舞人的密語。

移項式密碼與替換式不同,字母本身不會變化,但字母順序依循一個規則移動、改變。

中國式密碼(Chinese Cipher)是一種移項式密碼,將訊息的字母由右而左、上下交替排列,最後將排列出的結果從左到右,一列一列寫出,成為密文。

例如我們現在要來加密「The rabbit is cute.」這個句子,就將句中的字母依序由上寫到下,第二行則由下寫到上,第三行再由上往下寫,以此類推。

Chinese cipher — The rabbit is cute.

最後寫出每一列的文字,成為密文「UCBBT TSIAH EITRE」。

絕大多數的移位式密碼都採用與之類似的手法,重新排列字母的行或列,然後有系統地移動字母。

在第二次世界大戰結束之前,人們研究的方向是如何以更多的替換以及位移來防止密碼字典或加密機制外洩,但增加更多的替換以及位移勢必會增加進行加密以及解密的難度,也會增加操作員失誤的可能,因此當時的德軍發明了進行加解密專用的機器 — — 「謎」。

「謎」式密碼機(Enigma),或稱啞謎機、恩尼格瑪密碼機,在1940年代被德軍大量使用。「謎」有著幾個重大的進展,除了用機器來取代人力進行運算以外,另一個重點在於密碼已經沒辦法單純用觀察單字的方法解回來了。(Wikipedia:恩尼格瑪密碼機

二戰後計算機(也就是電腦)與電子學的發展促成加密方式的改變。由於電腦可以對任何儲存在其中的資料加密,且多數電腦的加密都是在二進位字串上操作,不像古典密碼學是直接作用在原始字母、數字,以語言學為基礎的破密術因此失效。

不使用頻率分析來破解一個訊息需要知道目前是使用何種加密法,因此才會促成了諜報、賄賂、竊盜或背叛等行為。直到十九世紀學者們才體認到加密法的演算法並非理智或實在的防護。實際上,適當的密碼學機制(包含加解密法)應該保持安全,即使敵人知道了使用何種演算法。對好的加密法來說,金鑰的秘密性理應足以保障資料的機密性。

(Wikipedia:密碼學/密碼學與密碼分析的歷史/現代密碼學

從保護演算法(加密的方法)變成發展即使公開敵人也無法破解密文的演算法,密碼學就此正式從古典密碼學踏入現代密碼學的年代。

現代密碼學是怎麼一回事呢?留待下回分曉吧!

--

--

TIH

台灣智慧家庭(Taiwan Intelligent Home,TIH),以打造台灣軟體產業鍊為宗旨的公司,致力於智慧家電跨品牌整合,同時協助開發物聯網相關的應用程式。