關於此實驗
數千年來,人們一直透過打亂字母來隱藏訊息。尤利烏斯・凱撒將每個字母沿著字母表向後移三位;後來出現的密碼則使用秘密關鍵字替換字母,或讓每個字母的移動位數都不同。這些密碼最終全都被破解了,破解時經常會統計每個字母出現的頻率。加密和解密你自己的訊息,逐個字母了解加密過程,然後用頻率分析破解一段秘密文字。
學習目標
- 使用凱撒密碼、關鍵字替換密碼和維吉尼亞密碼加密與解密訊息
- 解釋演算法和金鑰的差異
- 比較每種密碼可能的金鑰數量,並探討這對暴力破解有何意義
- 利用字母頻率破解凱撒密碼
- 解釋為什麼現代加密需要遠不止字母替換
使用方法
- 1使用位移量為 3 的凱撒密碼加密範例訊息。逐個查看字母,並沿著轉盤追蹤每個字母的移動。
- 2按下「將結果用作輸入」並解密。要還原位移 3,應該使用多少位移?如果將位移 13 套用兩次呢?
- 3凱撒密碼只有 25 個有用的金鑰。手動逐一嘗試需要多久?用電腦呢?
- 4切換至關鍵字密碼。如何根據關鍵字建立密碼字母表?為什麼它有多得多的可能金鑰?
- 5使用金鑰 LEMON,以維吉尼亞密碼加密一則訊息。找出訊息中一個重複出現、但加密後變成兩個不同字母的字母。這為什麼有助於抵禦頻率分析?
- 6開啟「破解」。滑動位移,直到輪廓與長條圖吻合。確認解密後的文字讀起來通順。
- 7將一段非常短的密文貼到「破解」中。為什麼頻率分析對短文本的效果較差?
模型
假設
- 與課堂密碼一樣,只有 A 到 Z 這 26 個字母會被加密;大小寫維持不變,其他所有內容都會原樣複製。
- 英文字母頻率採用已公布的標準值。頻率分析假設隱藏文字是一般英文。
- 關鍵字密碼會先寫下去除重複字母後的關鍵字,再依序寫出字母表中剩餘的字母。
- 關鍵字密碼的金鑰數量等於字母表所有可能的排列數,也就是 26! ≈ 4 × 10²⁶。
在課堂上試試這個實驗
- Q1解密 KHOOR ZRUOG。這是位移量為 3 的凱撒密碼。
- Q2為什麼位移 26 沒有用?
- Q3關鍵字密碼有約 4 × 10²⁶ 個金鑰,卻很容易破解。請說明如何破解。
- Q4為什麼維吉尼亞密碼比凱撒密碼更能隱藏字母頻率?
- Q5說明代碼與密碼的差異。
常見問題
為什麼這個實驗只能使用英文文字?
這些歷史密碼使用 26 個字母的拉丁字母表,破解工具會將字母出現次數與英文進行比較。其他語言的字母頻率各不相同,而中文或日文等文字系統則需要完全不同的方法。
維吉尼亞密碼是如何被破解的?
在 19 世紀 50 年代和 60 年代,查爾斯·巴貝奇和弗里德里希·卡西斯基發現,重複出現的字母組可以揭示金鑰長度。一旦知道金鑰長度,每隔 m 個字母取出的字元就構成一個簡單的凱撒密碼,可以透過頻率分析破解。
這與網際網路上使用的加密方式有什麼不同?
AES 等現代密碼處理的是位元而非字母,並透過多輪運算將位元混合,因此字母出現次數不會洩漏任何資訊。RSA 等公開金鑰方法還能讓兩個人無需見面就協商出一把金鑰。
