密碼學與網路安全 第 6 章 其他的對稱式加密法
DESCRIPTION
密碼學與網路安全 第 6 章 其他的對稱式加密法. 多重加密和 DES. DES 有被暴力法攻擊破解的可能,因此需要尋求替代方案 AES 是另一種新的加密選擇 保存既有軟硬體投資的作法,是利用 DES 和多把金鑰進行多重加密 3DE 是廣為使用的方式. 2 DES. 在每個區塊使用 2DES 加密 C = E K2 (E K1 (P)) 能簡化成單一階段 會遭到「中點交會攻擊」 對任何明文 P 來說,可能的金鑰總數有 2 112 已知明文攻擊可以成功攻破使用 112 位元金鑰的 2DES 花費的成本是級數 256 - PowerPoint PPT PresentationTRANSCRIPT
密碼學與網路安全密碼學與網路安全
第第 66 章 其他的對稱式加密章 其他的對稱式加密法法
多重加密和多重加密和 DESDES DESDES 有被暴力法攻擊破解的可能,因此需有被暴力法攻擊破解的可能,因此需要尋求替代方案要尋求替代方案 AESAES 是另一種新的加密選擇是另一種新的加密選擇 保存既有軟硬體投資的作法,是利用保存既有軟硬體投資的作法,是利用 DESDES和多把金鑰進行多重加密 和多把金鑰進行多重加密 3DE3DE 是廣為使用的方式是廣為使用的方式
在每個區塊使用在每個區塊使用 2DES2DES 加密加密 C = EC = EK2K2(E(EK1K1(P))(P))
能簡化成單一階段能簡化成單一階段 會遭到「中點交會攻擊」會遭到「中點交會攻擊」
對任何明文對任何明文 PP 來說,可能的金鑰總數有來說,可能的金鑰總數有 22112112
已知明文攻擊可以成功攻破使用已知明文攻擊可以成功攻破使用 112112 位元金鑰位元金鑰的的 2DES2DES
花費的成本是級數花費的成本是級數 256256 這並不會比破解單一這並不會比破解單一 DESDES 所需要的成本級數所需要的成本級數
255255 多太多多太多
22DESDES
2DES2DES
雙金鑰的雙金鑰的 3DES3DES 三階段三金鑰的加密是抵抗中點交會攻擊法的方三階段三金鑰的加密是抵抗中點交會攻擊法的方式式 但能以但能以 E-D-EE-D-E 順序使用兩把金鑰順序使用兩把金鑰
C = EC = EK1K1(D(DK2K2(E(EK1K1(P)))(P))) 在第二階段使用解密程序並無關密碼學的強度在第二階段使用解密程序並無關密碼學的強度 唯一的優點是讓唯一的優點是讓 3DES3DES 使用者可以解開用舊的單一使用者可以解開用舊的單一
DESDES 所加密的資料所加密的資料 使用雙金鑰的使用雙金鑰的 3DES3DES 是很普及的是很普及的 DESDES 替代方案,替代方案,並且也已經被金鑰管理標準並且也已經被金鑰管理標準 ANS X9.17ANS X9.17 和和 ISO ISO
87328732 採納採納 目前並沒有實際可行的攻擊目前並沒有實際可行的攻擊 3DES3DES 的方法 的方法
3DES3DES
三金鑰的三金鑰的 3DES3DES 雙金鑰雙金鑰 3DES3DES 使用者可能還是會擔心遭到攻使用者可能還是會擔心遭到攻擊擊 目前許多研究人員都覺得三金鑰目前許多研究人員都覺得三金鑰 3DES3DES 才是才是更好的選擇更好的選擇
C = EC = EK3K3(D(DK2K2(E(EK1K1(P)))(P))) 如果讓如果讓 KK33 = = KK22 或或 KK1 1 = = KK22 ,三金鑰,三金鑰 3DES3DES 能能
與與 DESDES 回溯相容回溯相容 諸如諸如 PGPPGP 、、 S/MIMES/MIME 等網際網路應用已經等網際網路應用已經採用三金鑰採用三金鑰 3DES 3DES
區塊密文的運作模式區塊密文的運作模式 NISTNIST 定義了四種區塊密文的運作模式(定義了四種區塊密文的運作模式( FIPS 8FIPS 8
11 ),這四種模式能將區塊密文套用在各式各樣),這四種模式能將區塊密文套用在各式各樣的應用的應用 運作模式是一種技巧,可以增強加密演算法的效運作模式是一種技巧,可以增強加密演算法的效果,或者讓演算法更適用於某種應用果,或者讓演算法更適用於某種應用
例如將區塊密文應用在循序的資料區塊或資料串例如將區塊密文應用在循序的資料區塊或資料串 新的應用需求出現,新的應用需求出現, NISTNIST 提出了第五種的建議提出了第五種的建議模式(模式( Special Publication 800-38ASpecial Publication 800-38A )) 這些模式是希望用在任何對稱式區塊密文,也包這些模式是希望用在任何對稱式區塊密文,也包括了括了 3DES3DES 和和 AESAES
ECB (ECB ( 電子編碼書模式電子編碼書模式 )) 一次處理一個明文區塊,而每個明文區塊是一次處理一個明文區塊,而每個明文區塊是以相同的金鑰加密以相同的金鑰加密 每每 bb 個位元明文區塊以一把金鑰產生獨特的個位元明文區塊以一把金鑰產生獨特的密文密文 對每個可能的對每個可能的 6464 位元明文區塊組合都會有位元明文區塊組合都會有其相對應的密文區塊其相對應的密文區塊 若訊息的長度超過若訊息的長度超過 bb 位元,位元, ECBECB 的運作過的運作過程會將訊息切成程會將訊息切成 bb 位元為單位的區塊位元為單位的區塊
CCii = DES = DESK1K1(P(Pii))
ECB (ECB ( 電子編碼書模式電子編碼書模式 ))
CBC (CBC ( 密文區塊串接模式 密文區塊串接模式 ) ) CBCCBC 模式每一個要加密的明文區塊在輸入到加密模式每一個要加密的明文區塊在輸入到加密演算法之前,要先與前一個密文區塊做演算法之前,要先與前一個密文區塊做 XORXOR 運算,運算,而每個區塊都使用相同的金鑰而每個區塊都使用相同的金鑰 依照各明文區塊的處理順序,將之前產生的區塊與依照各明文區塊的處理順序,將之前產生的區塊與目前區塊進行目前區塊進行 XORXOR 的動作,稱為串接的動作,稱為串接 每個明文區塊來說,輸入給加密函數的資料就不再每個明文區塊來說,輸入給加密函數的資料就不再與原來的明文區塊有固定關係與原來的明文區塊有固定關係 解密時,每個密文區塊都會送往解密演算法,解密解密時,每個密文區塊都會送往解密演算法,解密的結果再與前一個密文區塊做的結果再與前一個密文區塊做 XORXOR 運算,最後才運算,最後才會產生明文區塊會產生明文區塊 要產生第一個密文區塊,需要初始向量要產生第一個密文區塊,需要初始向量
CCii = DES = DESK1K1(P(Pii XOR C XOR Ci-1i-1))CC-1-1 = IV = IV
CBC (CBC ( 密文區塊串接模式 密文區塊串接模式 ))
CFB (CFB ( 密文回饋模式 密文回饋模式 )) DESDES 加密本質上就是使用加密本質上就是使用 bb 位元區塊的區塊加密位元區塊的區塊加密法法
但若使用但若使用 CFBCFB 或或 OFBOFB ,就能讓,就能讓 DESDES 變成串流加密變成串流加密 串流加密不需要將訊息補成大小固定的區塊就能夠即時運作串流加密不需要將訊息補成大小固定的區塊就能夠即時運作 若在傳送字元串流使用字元導向的串流加密法,就能立即加密並傳若在傳送字元串流使用字元導向的串流加密法,就能立即加密並傳送每個字元送每個字元
加密串流最讓人滿意的特色,是密文的長度與明文相同加密串流最讓人滿意的特色,是密文的長度與明文相同 因此若傳送因此若傳送 88 位元字元,每個字元都應該加密,並產生位元字元,每個字元都應該加密,並產生 88位元的加密文字位元的加密文字 讓產生的結果低於讓產生的結果低於 88 位元,可以有效的利用傳送效率位元,可以有效的利用傳送效率 CCii = P = Pii XOR DES XOR DESK1K1(C(Ci-1i-1))CC-1-1 = IV = IV
CFB (CFB ( 密文回饋模式 密文回饋模式 ))
OFB (OFB ( 輸出回饋模式 輸出回饋模式 )) 加密函數的輸出會回饋到加密函數的輸出會回饋到 OFBOFB 的移位暫存器的移位暫存器 不會傳送位元錯誤是不會傳送位元錯誤是 OFBOFB 的優點 的優點 缺點是比缺點是比 CFBCFB 更容易遭受訊息串流的更改攻擊 更容易遭受訊息串流的更改攻擊 請考慮在密文補滿位元,會在復原的明文補滿相對請考慮在密文補滿位元,會在復原的明文補滿相對應的位元應的位元
能控制復原明文的更動能控制復原明文的更動 可能讓攻擊者對訊息的可能讓攻擊者對訊息的 checksumchecksum 和資料部分進行重要和資料部分進行重要的更動的更動 並且可以不被錯誤更正碼偵測到等之類的方式並且可以不被錯誤更正碼偵測到等之類的方式 而能改變密文 而能改變密文
OFB (OFB ( 輸出回饋模式 輸出回饋模式 ))
CTR (CTR ( 計數器模式 計數器模式 )) 最近才引起最近才引起 ATMATM 的網路安全以及的網路安全以及 IPSecIPSec 等等應用的興趣應用的興趣 對加密來說,會先加密計數器對加密來說,會先加密計數器然後再與明文區塊進行然後再與明文區塊進行 XORXOR 運算,以產生運算,以產生密文區塊;但並沒有串接密文區塊;但並沒有串接 若是解密,會以計數器值的相同順序若是解密,會以計數器值的相同順序 對每個加密的計數器與密文區塊進行對每個加密的計數器與密文區塊進行 XORXOR運算,就會重新獲得相對應的明文區塊 運算,就會重新獲得相對應的明文區塊
CTR (CTR ( 計數器模式 計數器模式 ))
串流加密串流加密 一次加密明文的一個位元組一次加密明文的一個位元組 架構的金鑰是虛擬亂數位元產生器的輸入,並產生架構的金鑰是虛擬亂數位元產生器的輸入,並產生一連串看似隨機的一連串看似隨機的 88 位元數字位元數字 這個產生器的輸出稱為「這個產生器的輸出稱為「金鑰串流金鑰串流」,是一次進行」,是一次進行一個串流和明文位元組的一個串流和明文位元組的 XORXOR 運算運算
CCii = M = Mii XOR StreamKey XOR StreamKeyii
串流加密法類似第串流加密法類似第 22章討論的單次金鑰加密法章討論的單次金鑰加密法 不同的是單次金鑰加密法使用真的亂數串流不同的是單次金鑰加密法使用真的亂數串流 串流加密法使用虛擬亂數串流串流加密法使用虛擬亂數串流
串流加密結構串流加密結構
串流加密法的特性串流加密法的特性 設計考量:設計考量:
加密序列應該要有較長的週期加密序列應該要有較長的週期 金鑰串流應該儘可能接近真正的亂數串流金鑰串流應該儘可能接近真正的亂數串流 虛擬亂數產生器的結果是由輸入金鑰的值所決定虛擬亂數產生器的結果是由輸入金鑰的值所決定
如果金鑰長度差不多相等,設計得宜的虛擬亂數如果金鑰長度差不多相等,設計得宜的虛擬亂數產生器能讓串流加密法和區塊加密法一樣安全產生器能讓串流加密法和區塊加密法一樣安全 串流加密法的主要優點是速度更快且程式碼更少串流加密法的主要優點是速度更快且程式碼更少
RC4RC4 RC4RC4 是由是由 Ron RivestRon Rivest 在在 19871987年為年為 RSA RSA
SecuritySecurity 公司所設計的串流加密法公司所設計的串流加密法 是以位元組為運作單位,且金鑰長度是可是以位元組為運作單位,且金鑰長度是可變動變動 廣泛用在廣泛用在 SSL/TLSSSL/TLS 、、 WEPWEP 和較新的和較新的 WPAWPA協定 協定 有系統的從有系統的從 255255 個值裡挑出一個,而從個值裡挑出一個,而從 SS 得到位得到位元組元組 kk 每當產生每當產生 kk 之後,之後, SS裡的值就會重新排列裡的值就會重新排列
RC4 RC4 金鑰排程金鑰排程 一開始會以遞增的方式將一開始會以遞增的方式將 SS 的值設成的值設成 00 到到 255255 接著會產生臨時向量接著會產生臨時向量 TT 如果金鑰如果金鑰 KK 的長度是的長度是 256256 位元組,位元組, KK 就會轉移成就會轉移成 TT;;
否則對長度為否則對長度為 keylenkeylen 位元組的金鑰而言,會先將從位元組的金鑰而言,會先將從 KK複製複製 TT 的前的前keylenkeylen 個元素,然後再重複個元素,然後再重複 KK ,直到填滿,直到填滿 TT 為止 為止
整個動作如下:整個動作如下:for i = 0 to 255 dofor i = 0 to 255 do
S[i] = iS[i] = iT[i] = K[i mod keylen])T[i] = K[i mod keylen])
j = 0j = 0for i = 0 to 255 do for i = 0 to 255 do
j = (j + S[i] + T[i]) (mod 256) j = (j + S[i] + T[i]) (mod 256) swap (S[i], S[j])swap (S[i], S[j])
RC4 RC4 加密加密 只要只要 SS 向量起始之後,輸入金鑰就不再有用向量起始之後,輸入金鑰就不再有用 產生串流會循環使用產生串流會循環使用 S[i] S[i] 所有的元素所有的元素 並且會根據並且會根據 SS 目前的結構,交換目前的結構,交換 S[i]S[i] 與與 SS 的某個的某個元素元素 到達到達 S[255] S[255] 之後,整個過程會繼續從之後,整個過程會繼續從 S[0] S[0] 開始開始
i = j = 0 i = j = 0 for each message byte Mfor each message byte Mii
i = (i + 1) (mod 256)i = (i + 1) (mod 256)j = (j + S[i]) (mod 256)j = (j + S[i]) (mod 256)swap(S[i], S[j])swap(S[i], S[j])t = (S[i] + S[j]) (mod 256) t = (S[i] + S[j]) (mod 256) CCii = M = Mii XOR S[t] XOR S[t]
RC4RC4
RC4RC4 的強度的強度 目前已經出版了許多分析如何攻擊目前已經出版了許多分析如何攻擊 RC4RC4 的論文的論文 就算有適當的金鑰長度(如就算有適當的金鑰長度(如 128128 位元),這些方位元),這些方法也都無法破解法也都無法破解 RC4RC4 802.11802.11 無線區域網路的無線區域網路的 WEPWEP協定,很容易會被協定,很容易會被某種特定的攻擊所破解某種特定的攻擊所破解
基本上,這個問題不在基本上,這個問題不在 RC4RC4 本身本身 而是用作而是用作 RC4RC4 輸入的金鑰的產生方式發生問題輸入的金鑰的產生方式發生問題 這個問題並沒有出現在其他採用這個問題並沒有出現在其他採用 RC4RC4 的應用程式的應用程式 WEPWEP 的問題可以改變金鑰的產生方式來補救的問題可以改變金鑰的產生方式來補救 這個問題也點出了設計安全系統的困難這個問題也點出了設計安全系統的困難
總結總結 33DESDES 運作模式運作模式
ECBECB 、、 CBCCBC 、、 CFBCFB 、、 OFBOFB 、、 CTRCTR 串流加密串流加密 RC4RC4