36
密密密密密密密密 密密密密密密密密 3 3 密 密密密密密密 密 密密密密密密 密密密密密密 密密密密密密

密碼學與網路安全 第 3 章 區塊加密法及 資料加密標準

Embed Size (px)

DESCRIPTION

密碼學與網路安全 第 3 章 區塊加密法及 資料加密標準. 現代區塊加密法. 最廣為使用的密碼演算法 提供保密 / 認證服務 最廣為使用的 DES DES :資料加密標準( Data Encryption Standard ). 區塊與串流加密法. 區塊加密法 會將一小段明文視為一體,然後產生長度相同的密文區塊 每個區塊的大小通常是 64 或 128 位元 串流加密法 是一次加密資料流裡的一個位元或是位元組 目前許多加密法都是區塊加密法 與網路相關的對稱式密碼應用,大多使用區塊加密技術. 區塊加密法. 大多數對稱式區塊加密演算法都是以菲仕托區塊加密架構為基礎 - PowerPoint PPT Presentation

Citation preview

Page 1: 密碼學與網路安全 第 3 章  區塊加密法及 資料加密標準

密碼學與網路安全密碼學與網路安全

第第 33 章 區塊加密法及章 區塊加密法及資料加密標準資料加密標準

Page 2: 密碼學與網路安全 第 3 章  區塊加密法及 資料加密標準

現代區塊加密法現代區塊加密法 最廣為使用的密碼演算法最廣為使用的密碼演算法 提供保密 提供保密 / / 認證服務認證服務 最廣為使用的最廣為使用的 DESDES DESDES :資料加密標準(:資料加密標準( Data Encryption Data Encryption

StandardStandard ))

Page 3: 密碼學與網路安全 第 3 章  區塊加密法及 資料加密標準

區塊與串流加密法區塊與串流加密法 區塊加密法區塊加密法會將一小段明文視為一體,然會將一小段明文視為一體,然

後產生長度相同的密文區塊後產生長度相同的密文區塊 每個區塊的大小通常是每個區塊的大小通常是 6464 或或 128128 位元位元 串流加密法串流加密法是一次加密資料流裡的一個位是一次加密資料流裡的一個位

元或是位元組元或是位元組 目前許多加密法都是區塊加密法目前許多加密法都是區塊加密法 與網路相關的對稱式密碼應用,大多使用與網路相關的對稱式密碼應用,大多使用

區塊加密技術區塊加密技術

Page 4: 密碼學與網路安全 第 3 章  區塊加密法及 資料加密標準

區塊加密法區塊加密法

大多數對稱式區塊加密演算法都是以大多數對稱式區塊加密演算法都是以菲仕托區塊加密架構為基礎菲仕托區塊加密架構為基礎

區塊加密法會對區塊加密法會對 nn 位元的明文區塊,位元的明文區塊,產生產生 nn 位元的密文區塊位元的密文區塊

明文區塊可能會有明文區塊可能會有 22nn 種,若要讓加密種,若要讓加密程序可逆,就必須讓每個明文區塊產程序可逆,就必須讓每個明文區塊產生唯一的密文區塊生唯一的密文區塊

Page 5: 密碼學與網路安全 第 3 章  區塊加密法及 資料加密標準

理想的區塊加密法理想的區塊加密法

Page 6: 密碼學與網路安全 第 3 章  區塊加密法及 資料加密標準

夏農的替代與重排運算夏農的替代與重排運算 替代運算替代運算

會先將右半部資料代入「回合函數」會先將右半部資料代入「回合函數」 FF ,再以,再以 XORXOR 運運算結合算結合 FF 的結果和左半部的資料的結果和左半部的資料

每一回合的回合函數都相同,但輸出會受到子金鑰每一回合的回合函數都相同,但輸出會受到子金鑰 KiKi影響影響

重排運算重排運算 替代運算完成之後,接著會執行重排運算 ,也就是對調左右兩部替代運算完成之後,接著會執行重排運算 ,也就是對調左右兩部

分的資料分的資料 這個架構是夏農在這個架構是夏農在 19491949 年的論文所提「替代-重排網路」的特殊年的論文所提「替代-重排網路」的特殊

形式形式 夏農的論文提出以「混淆」和「擴散」等兩種函數來建構夏農的論文提出以「混淆」和「擴散」等兩種函數來建構

乘積加密法乘積加密法

Page 7: 密碼學與網路安全 第 3 章  區塊加密法及 資料加密標準

混淆和擴散混淆和擴散 夏農的著眼點是要抵擋統計分析的攻擊破夏農的著眼點是要抵擋統計分析的攻擊破

解解 夏農的理想加密法是密文的統計資訊與金夏農的理想加密法是密文的統計資訊與金

鑰本身完全無關鑰本身完全無關 擴散 - 明文的統計結構會消失在密文的廣擴散 - 明文的統計結構會消失在密文的廣

泛統計資訊裡泛統計資訊裡 混淆 - 要把密文的統計結果與金鑰之間的混淆 - 要把密文的統計結果與金鑰之間的

關係盡量弄得複雜關係盡量弄得複雜 目的都是為了避免金鑰被發現 目的都是為了避免金鑰被發現

Page 8: 密碼學與網路安全 第 3 章  區塊加密法及 資料加密標準

菲仕托加密架構菲仕托加密架構 由由 Horst FeistelHorst Feistel 根據可逆的乘積加密法所根據可逆的乘積加密法所

設計設計 輸入是長度為輸入是長度為 22ww 位元的明文區塊以及金鑰位元的明文區塊以及金鑰

KK 明文區塊分成明文區塊分成 LL00 、、 RR00 兩部分,這兩部分經兩部分,這兩部分經

過過 nn 回合的處理之後,會結合而成為密文回合的處理之後,會結合而成為密文區塊區塊

實作了夏農的替代與重排運算實作了夏農的替代與重排運算

Page 9: 密碼學與網路安全 第 3 章  區塊加密法及 資料加密標準

菲仕托加密演算法菲仕托加密演算法

Page 10: 密碼學與網路安全 第 3 章  區塊加密法及 資料加密標準

菲仕托加密設計元素菲仕托加密設計元素 區塊大小區塊大小 金鑰大小金鑰大小 回合個數回合個數 子金鑰產生演算法子金鑰產生演算法 回合函數回合函數 快速軟體加解密快速軟體加解密 容易分析容易分析

Page 11: 密碼學與網路安全 第 3 章  區塊加密法及 資料加密標準

菲仕托解密演算法菲仕托解密演算法

Page 12: 密碼學與網路安全 第 3 章  區塊加密法及 資料加密標準

資料加密標準(資料加密標準( DESDES )) 目前最廣為使用的區塊加密法目前最廣為使用的區塊加密法 在在 19971997 年由美國國家標準局(年由美國國家標準局( NBSNBS )採用)採用

NBSNBS 現更名為美國國家標準與技術研究院現更名為美國國家標準與技術研究院(( NISTNIST ))

DESDES 是是 NISTNIST 發佈的第發佈的第 4646 項聯邦資訊處理標準項聯邦資訊處理標準(( FIPS PUB 46FIPS PUB 46 ) )

以以 5656 位元的金鑰加密位元的金鑰加密 6464 位元的資料區塊位元的資料區塊 DESDES 非常廣為使用,因此安全性也就成為爭非常廣為使用,因此安全性也就成為爭

論不休的話題論不休的話題

Page 13: 密碼學與網路安全 第 3 章  區塊加密法及 資料加密標準

DESDES 的歷史的歷史 IBMIBM 發展出發展出 LuciferLucifer 加密法加密法

由由菲仕托菲仕托在在 6060 年代末期主持的計畫年代末期主持的計畫 以以 128128 位元金鑰長度作用在位元金鑰長度作用在 6464 位元資料區塊位元資料區塊

再與美國國家安全局的專家發展出商業化再與美國國家安全局的專家發展出商業化產品產品

美國國家標準局在美國國家標準局在 19731973 年公開徵求美國國年公開徵求美國國家加密標準家加密標準

IBMIBM 以以 Tuchman Tuchman 和和 MeyerMeyer 的計畫成果參的計畫成果參加徵選。在加徵選。在 19771977 年被美國國家標準局採用 年被美國國家標準局採用

Page 14: 密碼學與網路安全 第 3 章  區塊加密法及 資料加密標準

DESDES 的設計爭議的設計爭議 DESDES 成為標準之前就遭受強烈的批評 成為標準之前就遭受強烈的批評 至今這些批評都尚未平息:至今這些批評都尚未平息:

LUCIFERLUCIFER 使用使用 128128 位元金鑰,但提交的版本位元金鑰,但提交的版本卻是卻是 5656 位元金鑰 位元金鑰

DESDES內部架構的設計規範(也就是內部架構的設計規範(也就是 S-boxesS-boxes ))被列為被列為

不過後來的一些事件似乎顯示不過後來的一些事件似乎顯示 DESDES 的內部的內部架構非常強固架構非常強固

業界依然廣泛使用業界依然廣泛使用 DESDES 尤其是金融方面的應用尤其是金融方面的應用 NISTNIST 建議將建議將 DESDES 用在傳統的舊系統用在傳統的舊系統

Page 15: 密碼學與網路安全 第 3 章  區塊加密法及 資料加密標準

DESDES 加密流程加密流程

Page 16: 密碼學與網路安全 第 3 章  區塊加密法及 資料加密標準

啟始重排程序(啟始重排程序( IPIP )) DESDES 加密運算的第一階段加密運算的第一階段 IPIP 會重新組合輸入的資料位元會重新組合輸入的資料位元偶數位元排到左半部,奇數位元排到右半偶數位元排到左半部,奇數位元排到右半

部部範例:範例:IP(675a6967 5e5a6b5a) = (ffb2194d IP(675a6967 5e5a6b5a) = (ffb2194d 004df6fb)004df6fb)

Page 17: 密碼學與網路安全 第 3 章  區塊加密法及 資料加密標準

DESDES 的回合結構的回合結構 使用使用 LL (左)、(左)、 RR (右)各(右)各 3232 位元資料位元資料 如同任何標準的菲仕托加密法,每個回合的處理如同任何標準的菲仕托加密法,每個回合的處理

程序都可表示成以下的方程式:程序都可表示成以下的方程式:LLii = = RRii–1–1

RRii = = LLii–1–1 F( F(RRii–1–1, , KKii)) 回合金鑰回合金鑰 KiKi 是是 4848 位元,輸入的位元,輸入的 RR 是是 3232 位元:位元:

RR 會以擴充式重排程序(會以擴充式重排程序( EE )擴充成)擴充成 4848 位元位元 產生的產生的 4848 位元會與位元會與 KiKi進行進行 XORXOR 運算運算 結果會以重排函數(結果會以重排函數( PP )傳給替代程序,替代程序會)傳給替代程序,替代程序會

產生產生 3232 位元的輸出位元的輸出

Page 18: 密碼學與網路安全 第 3 章  區塊加密法及 資料加密標準

DESDES 的回合結構的回合結構

Page 19: 密碼學與網路安全 第 3 章  區塊加密法及 資料加密標準

替代運算替代運算 S-boxesS-boxes

整個替代運算是由整個替代運算是由 88 個個 S-boxesS-boxes 所組成所組成 每個每個 S-boxesS-boxes 接受接受 66 位元的輸入,產生位元的輸入,產生 44 位元的位元的

輸出:輸出: 輸入到盒子輸入到盒子 SSii 的第一個與最後一個位元,組合成一個的第一個與最後一個位元,組合成一個

22 位元的二進位數值位元的二進位數值 中間中間 44 個位元所形成的數值會用來選取表格裡個位元所形成的數值會用來選取表格裡 1616 行的行的某一行某一行

由此行列選出的十進位數值,會表示成由此行列選出的十進位數值,會表示成 44 位元的二進位元的二進位形式輸出位形式輸出

範例:範例: S(18 09 12 3d 11 17 38 39) = 5fd25e03S(18 09 12 3d 11 17 38 39) = 5fd25e03

Page 20: 密碼學與網路安全 第 3 章  區塊加密法及 資料加密標準

產生金鑰產生金鑰 產生每一回合所用的子金鑰產生每一回合所用的子金鑰

金鑰會先受到「重排選擇金鑰會先受到「重排選擇 11 」(」( PC-1PC-1 )的影響)的影響 產生的產生的 5656 位元金鑰會分成兩段各位元金鑰會分成兩段各 2828 位元的資料位元的資料 每一回合的資料都會分別循環左移(或向左旋每一回合的資料都會分別循環左移(或向左旋轉)一或兩個位元轉)一或兩個位元

移動過的值會成為下一回合的輸入,也會是「重移動過的值會成為下一回合的輸入,也會是「重排選擇排選擇 22 」(」( PC-2PC-2 )的輸入)的輸入

PC-2PC-2 會產生會產生 4848 位元的輸出,此輸出也是函數位元的輸出,此輸出也是函數F(F(RRii–1–1, , KKii)) 的輸入的輸入

Page 21: 密碼學與網路安全 第 3 章  區塊加密法及 資料加密標準

DESDES 解密解密

DESDES 的解密演算法幾乎與加密相同的解密演算法幾乎與加密相同除了要反向使用子金鑰除了要反向使用子金鑰

Page 22: 密碼學與網路安全 第 3 章  區塊加密法及 資料加密標準

崩塌效應崩塌效應任何加密演算法會因明文或金鑰的細微變任何加密演算法會因明文或金鑰的細微變動,會造成密文的重大變化動,會造成密文的重大變化

如果變化很小,就減少了明文或金鑰被找如果變化很小,就減少了明文或金鑰被找到的機會到的機會

DESDES 就具備了很強的崩塌效應就具備了很強的崩塌效應

Page 23: 密碼學與網路安全 第 3 章  區塊加密法及 資料加密標準

DESDES 的強度的強度 - 金鑰長度- 金鑰長度 5656 位元的金鑰可以有位元的金鑰可以有 225656 把可能的金鑰,數量大把可能的金鑰,數量大約是約是 7.2 × 7.2 × 10101616

表面上來看,暴力攻擊法似乎不可行表面上來看,暴力攻擊法似乎不可行 但是但是 recent advances have shown is possiblerecent advances have shown is possible

在在 19971997 年只需要幾個月年只需要幾個月 在在 19981998 年的特定硬體(年的特定硬體( EFFEFF )只需要幾天)只需要幾天 在在 19991999 年只需要幾天年只需要幾天

破解金鑰不只是找出所有可能的金鑰,還必須能破解金鑰不只是找出所有可能的金鑰,還必須能夠正確辨認出明文夠正確辨認出明文

已經必須考慮已經必須考慮 DESDES 的替代方案的替代方案

Page 24: 密碼學與網路安全 第 3 章  區塊加密法及 資料加密標準

DESDES 演算法的本質演算法的本質 必須考量破解者根據必須考量破解者根據 DESDES 演算法的特性而演算法的特性而

能破解的可能性能破解的可能性 重點在每個回合重複使用的重點在每個回合重複使用的 88 個取代表格(個取代表格( S-S-

boxesboxes )) DESDES 的攻擊手法:的攻擊手法:

計時破解法計時破解法 差異破解法差異破解法 線性破解法線性破解法 相關的金鑰攻擊相關的金鑰攻擊

Page 25: 密碼學與網路安全 第 3 章  區塊加密法及 資料加密標準

DESDES 的強度 - 計時破解法的強度 - 計時破解法

加密或解密演算法的執行時間,會隨著輸加密或解密演算法的執行時間,會隨著輸入的不同而有輕微的差異 入的不同而有輕微的差異

計時破解法就根據解密的執行時間,而獲計時破解法就根據解密的執行時間,而獲取金鑰或明文的相關資訊取金鑰或明文的相關資訊

Page 26: 密碼學與網路安全 第 3 章  區塊加密法及 資料加密標準

差異破解法差異破解法 差異破解法是近幾年密碼破解領域最大的發展差異破解法是近幾年密碼破解領域最大的發展 早在早在 19741974 年年 DESDES 的設計人員就已經知道差異破解的設計人員就已經知道差異破解

法法 MurphyMurphy 、、 Biham & ShamirBiham & Shamir 都在都在 9090 年代發表過論年代發表過論

文文 破解區塊加密的有力工具破解區塊加密的有力工具 是第一個能夠在複雜度低於是第一個能夠在複雜度低於 255255 就破解就破解 DESDES 的方的方

法法 DESDES 的的 S-boxesS-boxes 和重排函數和重排函數 PP 能夠抵擋差異破解法能夠抵擋差異破解法

Page 27: 密碼學與網路安全 第 3 章  區塊加密法及 資料加密標準

差異破解法差異破解法差異破解法很複雜。簡單來說,是藉由觀差異破解法很複雜。簡單來說,是藉由觀察加密法每一回合對一組文字區塊所作的察加密法每一回合對一組文字區塊所作的行為行為

我們先改變我們先改變 DESDES 的表示法,將原本的明文的表示法,將原本的明文區塊區塊 mm 分為分為 mm00 與與 mm11

如果將每回合產生的新區塊命名為如果將每回合產生的新區塊命名為 mmii (2 ≦ (2 ≦i i 17)≦ 17)≦ ,中間的訊息就有以下的關聯:,中間的訊息就有以下的關聯:

Page 28: 密碼學與網路安全 第 3 章  區塊加密法及 資料加密標準

差異破解法差異破解法 先從先從 mm 與與 m‘ m‘ 兩個訊息開始使用差異破解法兩個訊息開始使用差異破解法它們之間的它們之間的 XORXOR差距是∆差距是∆ m = m = mm ⊕ ⊕ m‘m‘ ,而,而且中間形式的一半差距為∆且中間形式的一半差距為∆ m = m = mmii ⊕ ⊕ mmii‘‘ ,,即可得到:即可得到:

Page 29: 密碼學與網路安全 第 3 章  區塊加密法及 資料加密標準

差異破解法差異破解法 假設使用相同的子金鑰,若函數假設使用相同的子金鑰,若函數 ff 的好幾組輸入的好幾組輸入

都有相同的差距,輸出也會有相同的差距都有相同的差距,輸出也會有相同的差距 如果如果 XORXOR 的輸入為的輸入為 XX、輸出為、輸出為 YY 的比例是的比例是 pp ,,那麼那麼 XX導致導致 YY 的機率是的機率是 pp

假設某些假設某些 XX 的值有很高的機率會導致某個輸出差的值有很高的機率會導致某個輸出差距距

因此若知道∆因此若知道∆ mmii-1-1 和∆和∆ mmii 出現的機率很高,那麼出現的機率很高,那麼即可得知∆即可得知∆ mi+mi+11 出現的機率也會很高出現的機率也會很高

如果找出好幾組這類的差距,就很有可能找出函如果找出好幾組這類的差距,就很有可能找出函數數 ff 所用的子金鑰所用的子金鑰

Page 30: 密碼學與網路安全 第 3 章  區塊加密法及 資料加密標準

差異破解法差異破解法

Page 31: 密碼學與網路安全 第 3 章  區塊加密法及 資料加密標準

差異破解法差異破解法差異破解法的整體策略是以單一回合為基差異破解法的整體策略是以單一回合為基

礎礎 破解的程序會先選取特定差距的兩段明文破解的程序會先選取特定差距的兩段明文

mm 與與 m‘m‘ 再追蹤每個回合再追蹤每個回合 看某個輸入差距樣式會產生出什麼密文差距樣看某個輸入差距樣式會產生出什麼密文差距樣

式式 在不知道金鑰的情況下實際加密在不知道金鑰的情況下實際加密 mm 與與 m‘m‘ 來來觀察輸出的差距觀察輸出的差距 再比較結果與之前得到的密文差距樣式再比較結果與之前得到的密文差距樣式

Page 32: 密碼學與網路安全 第 3 章  區塊加密法及 資料加密標準

線性破解法線性破解法線性破解法是最近所發展的破解技巧線性破解法是最近所發展的破解技巧原理是尋找描述原理是尋找描述 DESDES 轉換行為的線性近似轉換行為的線性近似值,用這個方法來破解值,用這個方法來破解 DESDES 的金鑰的金鑰

需要需要 224343 個已知明文(差異破解法需要個已知明文(差異破解法需要 224747

個選定明文 )個選定明文 )

Page 33: 密碼學與網路安全 第 3 章  區塊加密法及 資料加密標準

線性破解法線性破解法線性破解法的目的是找到具有以下形式的線性破解法的目的是找到具有以下形式的

有效線性方程式:有效線性方程式:P[iP[i11,i,i22,...,i,...,iaa] ] C[j C[j11,j,j22,...,j,...,jbb] = ] = K[kK[k11,k,k22,...,k,...,kcc]]

iiaa,j,jbb,k,kcc 是是 PP 、、 CC 、、 KK 裡裡固定且唯一的位元位置固定且唯一的位元位置 能得到金鑰位元的線性方程式能得到金鑰位元的線性方程式還可以試著找出更多類似的關係來解出金還可以試著找出更多類似的關係來解出金

鑰位元鑰位元

Page 34: 密碼學與網路安全 第 3 章  區塊加密法及 資料加密標準

DESDES 的設計標準的設計標準 由由 CoppersmithCoppersmith 在在 19941994 年提出 年提出 [COPP94][COPP94] 77 項項 S-boxesS-boxes 的設計準則的設計準則

任何輸出位元不應是其輸入位元的線性函數任何輸出位元不應是其輸入位元的線性函數 S-boxesS-boxes 每列應包含所有可能的每列應包含所有可能的 1616 種輸出組合 種輸出組合

33 項重排程序項重排程序 PP 的設計準則的設計準則 目的是希望增加這個演算法的混淆程度目的是希望增加這個演算法的混淆程度

Page 35: 密碼學與網路安全 第 3 章  區塊加密法及 資料加密標準

菲仕托加密法的強度菲仕托加密法的強度 菲仕托加密法的強度來自菲仕托加密法的強度來自

回合數、函數回合數、函數 FF、產生金鑰的演算法、產生金鑰的演算法 即使函數即使函數 FF很脆弱,但只要回合數夠多就不易破解 很脆弱,但只要回合數夠多就不易破解 函數函數 FF 的基本原則仍如的基本原則仍如 7070 年代的年代的菲仕托菲仕托 函數函數 FF 的演算法應具有很好的崩塌效應,而所產生的演算法應具有很好的崩塌效應,而所產生

的結果必須是難以復原的結果必須是難以復原 S-boxesS-boxes 之間的關係應該是非線性,而且應該無法之間的關係應該是非線性,而且應該無法

以線性函數來逼近模擬 以線性函數來逼近模擬 金鑰的產生方式應該要確保金鑰與密文的完全崩塌金鑰的產生方式應該要確保金鑰與密文的完全崩塌

準則與位元獨立準則準則與位元獨立準則

Page 36: 密碼學與網路安全 第 3 章  區塊加密法及 資料加密標準

總結總結 區塊與串流加密法的異同區塊與串流加密法的異同菲仕托菲仕托 DESDES差異破解與線性破解差異破解與線性破解 區塊加密的設計原則區塊加密的設計原則