Chapter 3 傳統對稱式金鑰加密法
學習目標 定義對稱式金鑰加密法的術語及概念 強調兩種不同的傳統加密法:取代加密法及換位加密法 敘述對稱加密法的破密分析之範疇 說明串流加密法及區塊加密法的概念 探討過去最常使用的加密法,例如迷團機
3.1 簡介 圖3.1顯示對稱式加密法的概念。 由Alice傳送給Bob的訊息叫明文;而此訊息經由通道傳送時,稱為密文。Alice以加密演算法和共享密鑰產生密文;為了使密文轉換成明文,Bob使用解密演算法以及同一組共享密鑰。
3.1 簡介 (續) 本節討論主題: Kerckhoff’s 原理 破密分析 傳統加密法的類型
圖 3.1 對稱式金鑰加密法的一般概念
3.1 簡介 (續) 假如 P 是明文,C 是密文,K 是金鑰 假設 Bob 產生 P1;我們證明 P1 = P
圖 3.2 以同一把金鑰加密或解密的對稱式金鑰加密法
3.1.1 Kerckhoff’s 原理 根據Kerckhoff’s 原理,必須假定敵人Eve知道加密/解密演算法。密鑰為此密碼被攻擊的唯一抵抗力。
3.1.2 破密分析 密碼學可說是創造密碼的技術與美學;而破密分析則為破解密碼的技術與美學。 圖 3.3 破密分析攻擊
圖 3.4 只知密文攻擊
圖 3.5 已知明文攻擊
圖 3.6 選擇明文攻擊
圖 3.7 選擇密文攻擊
3.2 取代加密法 取代加密法是以一個符號取代另一個符號。取代加密法可以歸類為單字母加密法或多字母加密法。 本節討論主題包括: 單字元加密法 3.2 取代加密法 取代加密法是以一個符號取代另一個符號。取代加密法可以歸類為單字母加密法或多字母加密法。 本節討論主題包括: 單字元加密法 多字母加密法
3.2 取代加密法 (續) 注意 取代加密法是以另外的符號代替原來的符號
3.2.1 單字母加密法 注意 在單字母取代法中,明文裡的符號和密文的符號通常都是一對一的。
範例3.1 下面顯示的是明文和其對應的密文,明文用小寫字體,密文則用大寫字體。這很可能為單字母加密法,因為兩個 l 在轉換為密碼時都變成了 0。
範例3.2 下面顯示明文和其對應的密文,這就不是單字母加密法,因為每個 l 轉換成密碼時都變成不同的字,第一個變成 N,第二個變成 Z。
加法加密法 最簡單的單字母加密法就是加法加密法。此加密法有時稱為位移加密法,亦稱為凱撒加密法,但加法加密法比較能顯示其數學意涵。
圖 3.8 Z26中表示明文和密文字母的數
圖 3.9 加法加密法
加法加密法 (續) 注意 若是加法加密法,其明文、密文和金鑰都是Z26中的整數。
範例3.3 使用加法加密法,以金鑰 = 15 加密訊息 「hello」。 解法:我們以字對字的方式應用加密演算法於明文。
範例3.4 使用加法加密法,以金鑰 = 15 解密訊息「WTAAD」。 解法:我們以字對字的方式應用解密演算法於明文。
位移加密法和凱撒加密法 加法加密法也稱為位移加密法, Julius Ceasar利用加法加密法與他的屬下聯繫,因此加法加密法有時也稱為凱撒加密法,凱撒以 3 當成金鑰。 注意 加法加密法有時候被稱為位移加密法或凱撒加密法。
範例3.5 Eve已截取的密文「UVACLYFZLJBYL」。證明她如何使用暴力攻擊破解加密法。
表3.1 英文字母出現的頻率
表 3.2 英文的雙字母組和三字母組的頻率
範例3.6 Eve攔截了以下密文,並用統計攻擊找到明文。 解法:當Eve將密文中字母出現的頻率列表顯示時,她得到:I=14,V=13,S=12等。最常出現的字母是I,頻率為14次,顯示I有可能對應明文中的字此e,並表示金鑰=4。
圖3.10 乘法加密法
乘法加密法 注意 在乘法加密法中,明文和密文都是Z26的整數;金鑰為一個Z26*的整數。
範例3.7 乘法加密法的金鑰範圍為何? 解法:金鑰必須在Z26*之內,此組合只有12個:1, 3, 5, 7, 9, 11, 15, 17, 19, 21, 23, 25。
範例3.8 我們使用乘法加密法和金鑰 7 加密訊息「hello」,其密文為「XCZZU」。
圖 3.11 仿射加密法
仿射加密法
範例3.9 仿射加密法使用一對金鑰,第一把出自Z26*,第二把出自Z26。其金鑰範圍大小為26 × 12 = 312。
範例3.10 使用仿射加密法及金鑰對(7, 2)加密訊息「hello」。 解法
範例3.11 使用仿射加密法及模數 26 裡的金鑰對 (7, 2) 解密訊息「ZEBBW」。 解法
範例3.12 加法加密法可視為仿射加密法裡當k1 = 1時的特例,而乘法加密法為k2 = 0時的特例。
單字母取代加密法 由於加法、乘法和仿射加密法的金鑰範圍很小,所以很容易受到暴力攻擊。 更好的解決方法就是建立明文每個字元和其密文字元之間的對應,Alice和Bob能公開陳列每個字元的對應。
圖3.12 單字母取代加密法的金鑰範例
範例3.13 我們可以使用圖3.12的金鑰加密此訊息 其密文為
3.2.2 多字母加密法 在多字母取代加密法中,每個字元的出現都可能有不同代換。明文裡的一個字元和密文裡的一個字元之間的關係是一對多。
自動金鑰加密法
範例3.14 假設Alice和Bob同意使用初始金鑰值為k1 = 12的自動金鑰加密法。現在Alice要傳送訊息「Attack is today」的訊息給Bob,密碼會一個字元一個字元地加密而成
圖 3.13 Playfair加密法的密鑰範例
範例3.15 我們使用圖3.13中的金鑰來加密明文「hello」
Vigenere加密法
範例3.16 我們可用6個字母的關鍵字「PASCAL」加密訊息「She is listening」,初始金鑰流為(15, 0, 18, 2, 0, 11),而金鑰流為此初始金鑰串流之重複(需要幾次就重複幾次)。
圖 3.14 Vigenere加密法為m個加法加密法的組合
範例3.18 根據範例3.17,加法加密法可視為Vigenere加密法m = 1時的特例。
表3.3 Vigenere表
表3.3 Vigenere表 (續)
範例3.19 假設我們截取到以下密文: 以三個字母區段重複的Kasiski測試產生的結果顯示於表3.4
範例3.19 (續) 差之最大公因數為4,表示金鑰長度是4的倍數,先試m = 4,再將密文分成四份。 以下的明文是合理的:
圖3.15 Hill加密法的金鑰
Hill加密法 注意 Hill加密法中的金鑰方陣需有乘法反元素。
範例3.30 舉例來說,在明文「Code is ready」最後一個區塊裡加上假字元「z」,並移除空格,會產生一個3 × 4的矩陣。其密文為「OHKNIHGKLISS」
範例3.21 假設Eve知道m = 3,並且已攔截了三個明文/密文組合區塊(毋須來自於同一個訊息),如圖3.17所示。
範例3.21 (續) 由此組合中,她求得矩陣P和C,因為P是可逆的,並與C相乘,得到K矩陣(如圖3.18所示)。 現在她有金鑰能破解任何使用此金鑰加密的密文。
單次密碼本 密碼學的目標之一就是能完全保密。Shannon的研究表示,若每個明文的符號都由一個金鑰範圍隨機挑出的一把金鑰加密,就能達到完全保密。 此概念用於Vernam發明的單次密碼本。
圖3.19 迴轉加密法
圖3.20 迷團機的模式