密碼學與網路安全 第2章 古典加密技術 1 對稱式加密Symmetric Encryption 也稱為傳統加密、私密金鑰加密或單金 鑰加密 傳送端(加密)和接收端(解密)共用相同的 金鑰 所有古典加密演算法都是私密金鑰 是1970年代公開金鑰加密發展出來之前 的唯一加密方式 而且是最常用的加密方式 2 基本術語 明文 plaintext - 原始可理解的訊息或資料 密文 ciphertext - 是由加密演算法根據明文和秘密金鑰所 產生的輸出結果,內容是雜亂無章的訊息 密碼 cipher 加密法 encipher (encrypt) - 將明文轉換成密文的演算法 解密法 decipher (decrypt) - 將密文還原成明文的演算法 金鑰 key - 用在加密演算法的資訊,而且只有傳送端和接 收端知道 密碼學 cryptography - 研究加密原則、方法的學科 密碼解析 cryptanalysis (codebreaking) - 研究不需金鑰而 能解密的學科 密碼技術 cryptology - 研究密碼學和密碼解析的學科 3 對稱式加密模型 4 必要條件 若要安全使用傳統加密法,有兩個必要 的條件: 強固的加密演算法 只有傳送端與接收端能得知秘密金鑰 以數學公式表示: Y = EK(X) X = DK(Y) 我們不需要保護演算法,但我們需要保 管好金鑰 5 密碼學Cryptography 密碼學系統可以根據三種不同的觀點來描 述: 將明文轉為密文所用的運作方式 金鑰的使用數量 替代 / 置換 / 重複的替代與置換 substitution / transposition / product 單金鑰或私密金鑰/ 雙金鑰或公開金鑰 處理明文的方式 區塊加密 / 串流加密block / stream 6 密碼解析 目的是還原金鑰,而非只還原訊息 一般的方法: 密碼解析攻擊cryptanalytic attack 暴力破解法brute-force attack 7 密碼解析攻擊 僅知密文 已知明文 選取明文使用加密器獲得密文 選定密文 除密文外,尚有一或多組 明文/密文組 選定明文 只知道演算法和密文(得知道明文是exe檔、或英文…) 選取密文用解密器獲得明文 選定內文 選取明文或密文來加密或解密 8 密碼解析攻擊 絕對安全unconditional security 不論攻擊者取得多少密文,如果他無法從其中 的資訊解出相對應的明文,我們就說這個加密 機制是絕對安全。也就是說,不論攻擊者花多 少時間都不可能破解密文,因為解開密文所需 的資訊不在其中 計算安全性computational security 破解加密法所需的成本超過加密訊息本身的價 值,或者破解加密法所需的時間超過訊息的有 效壽命,加密法就視為計算安全性 9 暴力破解 嘗試所有可能的金鑰 平均來說,必須嘗試的金鑰數量,大約是可能的金鑰總數 的一半 下表列出不同的金鑰數量所需要的時間 金鑰長度 可能的金鑰總數 每微秒加密一次所需的時間 每微秒加密l06次所需的時間 (位元) 32 232 = 4.3 109 231 µs = 35.8 秒 2.15 毫秒 56 256 = 7.2 1016 255 µs = 1142 年 10.01 小時 128 2128 = 3.4 1038 2127 µs = 5.4 1024 年 5.4 1018 年 168 2168 = 3.7 1050 2167 µs = 5.9 1036 年 5.9 1030 年 26 字元(任 意排列) 26! = 4 1026 2 1026 µs = 6.4 1012 年 6.4 106 年 10 替代加密法 以其它的字元或符號來替代將明文裡的 字元 如果將明文視為連續的字元,那麼替代 就是將明文的字元樣式換成密文的字元 樣式 11 凱撒加密法Caesar Cipher 目前所知道最早且最簡單的替代加密法 羅馬的凱撒將軍(Julius Caesar)所發明 將每個字母用其後的第三個字母來替代 例如: meet me after the toga party PHHW PH DIWHU WKH WRJD SDUWB 12 凱撒加密法 字元的順序可繞回頭: a b c d e f g h i j k l m n o p q r s t u v w x y z D E F G H I J K L M N O P Q R S T U V W X Y Z A B C 為每個字母指定一個數值: a b c d e f g h i j k l m n o p q r s t u v w x y z 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 便能以下列方式表示這個演算法,也就 是每個明文字元p會換成密文字元C: c = E(p) = (p + k) mod (26) p = D(c) = (c – k) mod (26) 13 凱撒加密法的密碼解析 只有26種可能的加密方式 如果知道密文是由凱撒加密法產生,暴 力法便很容易破解,因為: 對映至從A到Z的 已知加密/解密演算法 只要一一測試這26種對映方式 已知明文所用的語言 例如破解密文:GCUA VQ DTGCM 14 單套字母加密法 Monoalphabetic Cipher 不只字母移位,也任意排列字母 每個明文字母對映到不同的隨機密文字母 因此金鑰長達26個字母 Plain :abcdefghijklmnopqrstuvwxyz cipher:DKVQFIBJWPESCXHTMYAUOLRGZN 明文:ifwewishtoreplaceletters 密文:WIRFRWAJUHYFTSDVFSFUUFYA 15 單套字母加密法的安全性 總共有26!種可能的金鑰,也就是4 x 1026 金鑰數量龐大,應該就很安全 但是,錯! 問題是在語言的特性 16 字元相對出現頻率 不是所有字元的出現頻率都相同 英文裡的字母E是最常用的字母,其次是 T、R、N、I、O、A、S 其他如Z、J、K、Q、X的使用頻率並不 高 各種語言皆有常用字、詞的頻率統計, 有助於密碼解析 17 字元相對出現頻率 18 單套字母加密法的密碼解析 重要概念 – 單套字母替代加密不會改變字 元出現的頻率 補救措施是讓一個字元有好幾種替代方式, 亦即同音字 如果按照字元出現頻率來決定其密文符號 的多寡,就能完全消除單一字元的頻率資 訊 19 密碼解析範例 要破解的密文是: UZQSOVUOHXMOPVGPOZPEVSGZWSZOPFPESXUDBMETSXAIZ VUEPHZHMDZSHZOWSFPAPPDTSVPQUZWYMXUZUHSX EPYEPOPDZSZUFPOMBZWPFUPZHMDJUDTMOHMQ 首先找出字元的相對出現頻率,並比較 標準的英文字母頻率分佈 推測密文裡的P和Z是e和t 推測密文裡的ZW是th,因此ZWP是the 繼續反覆試驗,最後可得: it was disclosed yesterday that several informal but direct contacts have been made with political representatives of the viet cong in moscow 20 普雷費爾Playfair加密法 普雷費爾是最知名的多字元加密法 這個方法將雙字元的明文視為單一元素, 再將其轉成雙字元的密文 這是由英國科學家惠斯頓Charles Wheatstone爵士於1854年發明,但是他以 其朋友Baron Playfair命名 21 普雷費爾金鑰矩陣 普雷費爾演算法使用由關鍵字組成的5 × 5字元矩陣 矩陣的建構方式 1. 2. 先將關鍵字字元由左至右、由上至下填入矩陣,並刪除重複 字元 將26個字母剩餘的字元依序填入,而且將I跟J視為同一個字元 例如以MONARCHY當作關鍵字 M O N A R C H Y B D E F G I/J K L P Q S T U V W X Z 22 普雷費爾加密法的加密與解密 一次針對明文的兩個字元來加密: 1. 2. 3. 4. 若是相同字元的雙字元,就插入填充字元,例如x 如果這兩個字元位於矩陣同一列,就把第一個字元當 成最後一個字元的右邊字元(繞回頭),並用它們右 邊的字元來替代它們 eg. “ar" encrypts as "RM 如果這兩個字元位於矩陣同一行,就把第一個字元當 成是最後一個字元的下方字元(繞回頭),並且用它 們下方的字元來替代它們 否則(即兩字不同行又不同列),則每個字元都換成與它 自己同一列、但與另一個字元同一行的字元eg. “hs" encrypts to "BP", and “ea" to "IM" or "JM" 23 普雷費爾加密法的安全性 安全性優於單套字母加密法 因為有26個字母,但雙字元有26 × 26 = 676 種組合, 因此不易辨識雙字元 再者,單一字元的相對出現頻率變化範圍比雙字元大 很多,也讓雙字元頻率分析變得更加困難 有很長一段時間此法廣被使用 例如此法是英國陸軍一次世界大戰的標準系統,且直到二次 世界大戰,美國陸軍與某些聯軍仍廣泛使用 雖然普雷費爾加密法具備了相當程度的安全性,但還 是很容易破解。因為它原封不動的留下很多明文語言 的結構。 基本上要破解普雷費爾加密法,只要幾百個密文字元 就夠了 24 多套字母加密法 Polyalphabetic Ciphers 改進單套字母加密,以多套字母加密替 代而提高安全性 以一組相關的單套字母作為替代的規則 以金鑰決定在轉換時要使用哪種替代規 則 25 維吉尼亞加密法 Vigenère Cipher 最簡單的多套字母替代加密法 以位移量0到25的26個凱撒加密法來組成 相關的多套字母加密的替代規則 維吉尼亞表(表2.3)有助於瞭解及使用這 種方法 26 維吉尼亞加密法範例 加密需要與訊息一樣長的金鑰 金鑰通常是某個重複的關鍵字 例如關鍵字是deceptive的以下加密範例: 金鑰:deceptivedeceptivedeceptive 明文:wearediscoveredsaveyourself 密文:ZICVTWQNGRZGVTWAVZHCQYGLMGJ 28 維吉尼亞加密的安全性 維吉尼亞加密法的強度在於一個明文字 元可以對應到好幾個密文字元 每個密文字元是由關鍵字裡的字母決定, 因此能隱藏字元出現的頻率資訊 維吉尼亞加密法並沒有隱藏所有的明文 結構 雖然優於普雷費爾加密法,但還是殘存 著相當程度的頻率資訊 29 維吉尼亞加密的破解之道 若使用單套字母加密法,密文的字元統計資訊 會與明文趨於一致 若懷疑使用的是維吉尼亞加密法,破解的過程 會由如何求出關鍵字長度而定 關鍵字長度:若兩個相同順序(sequence序列)的 明文字串距離,剛好是關鍵字長度的整數倍, 就會產生相同的密文字串 破解這個加密法的重點在於,如果關鍵字長度 是N,這個加密法實際上就是由N個單套字母加 密法所組成 30 自動金鑰系統 長度與訊息相同的關鍵字能消除關鍵字會 定期出現的特性 維吉尼亞加密法提出了自動金鑰系統 這個系統會將明文接在關鍵字之後而形成 金鑰 例如關鍵字deceptive的範例: 金鑰:deceptivewearediscoveredsav 明文:wearediscoveredsaveyourself 密文:ZICVTWQNGKZEIIGASXSTSLVVWLA 但還是會因為金鑰與明文的字元頻率分佈相同, 而能以統計的技巧破解 31 單次金鑰加密法One-Time Pad 使用與訊息等長的隨機金鑰,能不需重 覆使用金鑰而達到相當程度的安全 且這把金鑰用在加密、解密單一訊息之後,就 丟棄不用 因此每個新的訊息都需要與訊息等長的新金鑰 此法所產生的隨機密文與原始明文並無統計的 關聯性 單次金鑰加密法的密文並無明文的任何訊息, 因此無從破解 問題:key的產生和安全的發送與保護 32 置換加密法 Transposition Ciphers 目前所提,都是將明文符號換成另一個 密文符號 另一種完全不同的對映方式,是以某種 形式重新排列明文字元 這種技巧稱為置換加密法 33 柵欄加密法Rail Fence cipher 最簡單的置換加密方法 將明文排成一連串的對角線形式,然後 再一列一列讀出 例如: 明文:meet me after the toga party 密文:m e m a t r h t g p r y e t e f e t e o a a t 單純的置換加密方式很容易被識破 因為密文和原始明文的字元頻率分佈都 相同 34 列置換加密法 Row Transposition Ciphers 比較複雜的方法是將訊息一列一列排成矩形, 再一行一行讀出來 但還要交換行與行之間的順序 「行的順序」就變成這個演算法的金鑰 例如: 金鑰:3 4 2 1 5 6 7 明文:a t t a c k p o s t p o n e d u n t i l t w o a m x y z 密文:TTNAAPTMTSUOAODWCOIXKNLYPETZ 35 回轉機Rotor Machines 回轉機是現代加密法出現之前,最常見 的複雜加密方式 廣泛用於二次大戰: 德軍Enigma、聯軍Hagelin、日軍Purple 實作了非常複雜且多樣的替代加密法 是由一組獨立、且能讓電流脈衝流過的 回轉柱所組成 3柱回轉機有263=17576種不同的字母替 代方式 36 聯軍所用的Hagelin回轉機 37 資訊藏密法Steganography 加密之外的另一種選擇 隱藏了訊息存在的事實: 字元標記 看不見的墨水 針孔 打字機修正色帶 光碟利用資料頁框裡的最低位元隱藏資訊 缺點:成本高、費時 38 總結 古典加密技術與術語 單套字母加密法 字元出現頻率的密碼解析技巧 普雷費爾加密法 多套字母加密法 置換加密法 回轉機 資訊藏密法 39
© Copyright 2025 ExpyDoc