330 likes | 487 Views
報告者 : 賴烱明. 密碼學 第 2 章 古典加密技術. 也稱為傳統加密、私密金鑰加密或單金鑰加密 傳送端和接收端共用相同的金鑰 所有古典加密演算法都是私密金鑰 是 1970 年代公開金鑰加密發展出來之前的唯一加密方式 而且是最常用的加密方式. 對稱式加密. 明文 - 原始可理解的訊息或資料 密文 - 是由加密演算法根據明文和秘密金鑰所產生的輸出結果,內容是雜亂無章的訊息 加密法 - 將明文轉換成密文的演算法 金鑰 - 用在加密演算法的資訊,而且只有傳送端和接收端知道 解密法 - 將密文還原成明文的演算法 密碼學 - 研究加密原則、方法的學科
E N D
報告者:賴烱明 密碼學第2章 古典加密技術
也稱為傳統加密、私密金鑰加密或單金鑰加密 傳送端和接收端共用相同的金鑰 所有古典加密演算法都是私密金鑰 是1970年代公開金鑰加密發展出來之前的唯一加密方式 而且是最常用的加密方式 對稱式加密
明文 - 原始可理解的訊息或資料 密文 - 是由加密演算法根據明文和秘密金鑰所產生的輸出結果,內容是雜亂無章的訊息 加密法 - 將明文轉換成密文的演算法 金鑰- 用在加密演算法的資訊,而且只有傳送端和接收端知道 解密法 - 將密文還原成明文的演算法 密碼學 - 研究加密原則、方法的學科 密碼解析 - 研究不需金鑰而能解密的學科 密碼技術 - 研究密碼學和密碼解析的學科 基本術語
若要安全使用傳統加密法,有兩個必要的條件:若要安全使用傳統加密法,有兩個必要的條件: • 強固的加密演算法 • 只有傳送端與接收端能得知秘密金鑰 • 以數學公式表示: Y = EK(X) X = DK(Y) • 我們不需要保護演算法,但我們需要保管好金鑰 必要條件
密碼學系統可以根據三種不同的觀點來描述: • 將明文轉為密文所用的運作方式 • 替代 / 置換 / 重複的替代與置換 • 金鑰的使用數量 • 單金鑰或私密金鑰/ 雙金鑰或公開金鑰 • 處理明文的方式 • 區塊加密 / 串流加密 密碼學
目的是還原金鑰,而非只還原訊息 • 一般的方法: • 密碼解析攻擊 • 暴力破解法 密碼解析
僅知密文 • 只知道演算法和密文 • 已知明文 • 已知或能推測出明文和密文 • 選定明文 • 選取明文並獲得密文 • 選定密文 • 選取密文並獲得明文 • 選定內文 • 選取明文或密文來加密或解密 密碼解析攻擊
絕對安全 • 不論攻擊者取得多少密文,如果他無法從其中的資訊解出相對應的明文,我們就說這個加密機制是絕對安全。也就是說,不論攻擊者花多少時間都不可能破解密文,因為解開密文所需的資訊不在其中 • 計算安全性 • 破解加密法所需的成本超過加密訊息本身的價值,或者破解加密法所需的時間超過訊息的有效壽命,加密法就視為計算安全性 名詞解釋
嘗試所有可能的金鑰 平均來說,必須嘗試的金鑰數量,大約是可能的金鑰總數的一半 下表列出不同的金鑰數量所需要的時間 暴力破解
以其它的字元或符號來替代明文裡的字元 如果將明文視為連續的字元,那麼替代就是把明文的字元樣式換成密文的字元樣式 替代加密法
目前所知道最早且最簡單的替代加密法 • 羅馬的凱撒將軍(Julius Caesar)所發明 • 將每個字母用其後的第三個字母來替代 • 例如: meet me after the toga party PHHW PH DIWHU WKH WRJD SDUWB 凱撒加密法
字元的順序可繞回頭: 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) 凱撒加密法
只有26種可能的加密方式 • A到Z的對映 • 如果知道密文是由凱撒加密法產生,暴力法便很容易破解,因為: • 已知加密/解密演算法 • 只要一一測試這26種對映方式 • 已知明文所用的語言 • 例如破解密文:GCUA VQ DTGCM 凱撒加密法的密碼解析
不只字母移位,也任意排列字母 每個明文字母對映到不同的隨機密文字母 因此金鑰長達26個字母 明文:abcdefghijklmnopqrstuvwxyz密文:DKVQFIBJWPESCXHTMYAUOLRGZN 明文:ifwewishtoreplaceletters密文:WIRFRWAJUHYFTSDVFSFUUFYA 單套字母加密法
總共有26!種可能的金鑰,也就是4 x 1026 金鑰數量龐大,應該就很安全 但是,錯! 問題是在語言的特性 單套字母加密法的安全性
不是所有字元的出現頻率都相同 英文裡的字母E是最常用的字母,其次是T、R、N、I、O、A、S 其他如Z、J、K、Q、X的使用頻率並不高 各種語言皆有常用字、詞的頻率統計,有助於密碼解析 字元相對出現頻率
找出雙字元的出現頻率是另一種有用的方式 重要概念 – 單套字母替代加密不會改變字元出現的頻率 補救措施是讓一個字元有好幾種替代方式,亦即同音字 如果按照字元出現頻率來決定其密文符號的多寡,就能完全消除單一字元的頻率資訊 單套字母加密法的密碼解析
要破解的密文是: 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 密碼解析範例
普雷費爾是最知名的多字元加密法 這個方法將雙字元的明文視為單一元素,再將其轉成雙字元的密文 這是由英國科學家惠斯頓爵士於1854年發明,但是他以聖安祖的朋友Baron Playfair命名 普雷費爾加密法
普雷費爾演算法使用由關鍵字組成的5 × 5字元矩陣 • 矩陣的建構方式 • 先將關鍵字字元由左至右、由上至下填入矩陣,並刪除重複字元 • 將26個字母剩餘的字元依序填入,而且將I跟J視為同一個字元 • 例如以MONARCHY當作關鍵字 普雷費爾金鑰矩陣
一次針對明文的兩個字元來加密: • 若是相同字元的雙字元,就插入填充字元,例如x • 如果這兩個字元位於矩陣同一列,就把第一個字元當成最後一個字元的右邊字元(繞回頭),並用它們右邊的字元來替代它們 • 如果這兩個字元位於矩陣同一行,就把第一個字元當成是最後一個字元的下方字元(繞回頭),並且用它們下方的字元來替代它們 • 否則,每個字元都換成與它自己同一列、但與另一個字元同一行的字元 普雷費爾加密法的加密與解密 Ex1. balloon => ba lx lo on Ex2. ar => RM Ex3. mu => CM Ex4. hs => BP , ea => IM
安全性優於單套字母加密法 • 因為有26個字母,但雙字元有26 × 26 = 676 種組合,因此不易辨識雙字元 • 再者,單一字元的相對出現頻率變化範圍比雙字元大很多,也讓雙字元頻率分析變得更加困難 • 有很長一段時間此法廣被使用 • 例如此法是英國陸軍一次世界大戰的標準系統,且直到二次世界大戰,美國陸軍與某些聯軍仍廣泛使用 • 雖然普雷費爾加密法具備了相當程度的安全性,但還是很容易破解。因為它原封不動的留下很多明文語言的結構。 • 基本上要破解普雷費爾加密法,只要幾百個密文字元就夠了 普雷費爾加密法的安全性
改進單套字母加密,以多套字母加密替代而提高安全性改進單套字母加密,以多套字母加密替代而提高安全性 以一組相關的單套字母作為替代的規則 以金鑰決定在轉換時要使用哪種替代規則 多套字母加密法
最簡單的多套字母替代加密法 以位移量0到25的26個凱撒加密法來組成相關的多套字母加密的替代規則 維吉尼亞表有助於瞭解及使用這種方法 維吉尼亞加密法
加密需要與訊息一樣長的金鑰 • 金鑰通常是某個重複的關鍵字 • 例如關鍵字是deceptive的以下加密範例: 金鑰:deceptivedeceptivedeceptive 明文:wearediscoveredsaveyourself 密文:ZICVTWQNGRZGVTWAVZHCQYGLMGJ 維吉尼亞加密法範例
維吉尼亞加密法的強度在於一個明文字元可以對應到好幾個密文字元維吉尼亞加密法的強度在於一個明文字元可以對應到好幾個密文字元 每個密文字元是由關鍵字裡的字母決定,因此能隱藏字元出現的頻率資訊 維吉尼亞加密法並沒有隱藏所有的明文結構 雖然優於普雷費爾加密法,但還是殘存著相當程度的頻率資訊 維吉尼亞加密的安全性
若使用單套字母加密法,密文的字元統計資訊會與明文趨於一致若使用單套字母加密法,密文的字元統計資訊會與明文趨於一致 若懷疑使用的是維吉尼亞加密法,破解的過程會由如何求出關鍵字長度而定 關鍵字長度:若兩個相同順序的明文字串距離,剛好是關鍵字長度的整數倍,就會產生相同的密文字串 破解這個加密法的重點在於,如果關鍵字長度是N,這個加密法實際上就是由N個單套字母加密法所組成 維吉尼亞加密的破解之道
長度與訊息相同的關鍵字能消除關鍵字會定期出現的特性長度與訊息相同的關鍵字能消除關鍵字會定期出現的特性 • 維吉尼亞加密法提出了自動金鑰系統 • 這個系統會將明文接在關鍵字之後而形成金鑰 • 例如關鍵字deceptive的範例: 金鑰:deceptivewearediscoveredsav 明文:wearediscoveredsaveyourself 密文:ZICVTWQNGKZEIIGASXSTSLVVWLA • 但還是會因為金鑰與明文的字元頻率分佈相同,而能以統計的技巧破解 自動金鑰系統
使用與訊息等長的隨機金鑰,能不需重覆使用金鑰而達到相當程度的安全使用與訊息等長的隨機金鑰,能不需重覆使用金鑰而達到相當程度的安全 且這把金鑰用在加密、解密單一訊息之後,就丟棄不用 因此每個新的訊息都需要與訊息等長的新金鑰 此法所產生的隨機密文與原始明文並無統計的關聯性 單次金鑰加密法的密文並無明文的任何訊息,因此無從破解 單次金鑰加密法