重點:
密碼系統(tǒng)的組成及它們之間關(guān)系
現(xiàn)代密碼體制的基本原則及公開算法的意義
密碼的攻擊類型及其含義
攻擊密碼體制的常用方法
算法復(fù)雜度的度量
01 密碼系統(tǒng)的組成及它們之間關(guān)系
?????1.1密碼系統(tǒng)的組成
一個密碼系統(tǒng)(體制)是由明文、密文、加密算法和解密算法、密鑰五部分組成的,即
?密鑰是指控制明文與密文之間相互變換的,分為加密密鑰和解密密鑰。
? ? ?1.2 密碼系統(tǒng)各部分之間的關(guān)系圖
02 現(xiàn)代密碼體制的基本原則及公開算法的意義
? ? ?2.1 現(xiàn)代密碼體制的分類
對稱密碼體制
加密密鑰和解密密鑰相同,或者雖然不相同,但由其中一個可以很容易的推出另一個
又稱為:傳統(tǒng)密碼體制、秘密密鑰體制或單密鑰體制
從密鑰使用方式上分為:分組密碼和序列密碼
非對稱密碼體制
加密密鑰和解密密鑰不相同,從一個很難(實際上不可能實現(xiàn))推出另一個;
又稱:公鑰密碼體制
用一個密鑰進行加密(驗證),另一個進行解密(簽名)。其中一個密鑰可以公開,成為公開密鑰,簡稱公鑰;另一個密鑰需要秘密保存,稱為私有密鑰,簡稱私鑰。
?????2.2 基本原則
密碼系統(tǒng)中的算法即使為密碼分析者所知,也無助于用來推到明文或密鑰。也就是說,密碼系統(tǒng)的安全性不應(yīng)取決于不易改變的密碼算法(公開、標準化),而應(yīng)取決于隨時改變的密鑰。(柯克霍夫原則)
加密算法的安全性并沒有在理論上得到嚴格的證明,是實際上的安全。
? ? ?2.3 密碼算法公開的意義
有利于增強密碼算法的安全性;
有利于密碼技術(shù)的推廣應(yīng)用;
有利于增加用戶使用的信心;
有利于密碼技術(shù)的發(fā)展。
03 密碼的攻擊類型及其含義
? ? ?3.1 密碼攻擊類型(類型依次增強,抵御這五種類型的攻擊是密碼算法的基本要求)
(1)惟密文攻擊
(2)已知明文攻擊
(3)選擇明文攻擊
(4)選擇密文攻擊
(5)選擇文本攻擊
?????3.2 各自含義
(1)惟密文攻擊
分析者除了擁有截獲的密文外(密碼算法是公開的),沒有其他可以利用的信息。
分析者任務(wù):恢復(fù)盡可能多的明文,或者最好能推算出解密密鑰。
攻擊方法:至少可以采用窮舉搜索法;即對接貨一定數(shù)量的密文依次用所有的密鑰嘗試,直到得到有意義的明文。
在這種情況下進行密碼破譯是最困難的,經(jīng)不起這種攻擊的密碼體制被認為是完全不安全的。
(2)已知明文攻擊
分析者不僅掌握了相當數(shù)量的密文,還有一些已知的明-密文對可供利用。
任務(wù):用密文信息推導(dǎo)出解密密鑰或推導(dǎo)出一個替代算法,對所獲得的密文恢復(fù)出相應(yīng)的明文。
對于現(xiàn)代密碼體制的基本要求:不僅要經(jīng)受得住惟密文攻擊,而且要經(jīng)受得住已知明文攻擊(有內(nèi)奸哦)
(3)選擇明文攻擊
分析者不僅能夠獲得一定數(shù)量的明-密文對,還可以選擇任何明文并在使用同一未知密鑰的情況下能得到相應(yīng)的密文。
攻擊者可以在加密系統(tǒng)中選擇特定的明文消息,通過該明文消息對應(yīng)的密文就有可能確定密鑰的結(jié)構(gòu)或獲取更多關(guān)于密鑰的信息。
選擇明文攻擊比已知明文攻擊更加有效,這種情況我哪敢往事密碼分析者通過某種手段暫時控制加密機。(暫時控制加密機)。
(4)選擇密文攻擊
分析者能選擇不同被加密的密文,還可以得到對應(yīng)的明文
任務(wù):推出密鑰及其他密文對應(yīng)的明文。
這種情況往往是密碼分析這通過某種手段暫時控制解密機(暫時控制解密機)。
(5)選擇文本攻擊
是選擇明文攻擊和選擇密文攻擊的組合,即分析者在掌握密碼算法的前提下,不僅能夠選擇明文并得到對應(yīng)的密文,而且還能選擇密文得到對應(yīng)的明文。
這種情況往往是密碼分析者通過某種手段暫時控制加密機和解密機。(暫時控制加密機和解密機)
3.3 攻擊密碼體制的常用方法
(1)窮舉攻擊
分析者用試遍所有密鑰的方法來破譯密碼。
當解密(加密)算法的復(fù)雜性增大時,完成一次解密(加密)所需的時間也增大,從而使窮舉攻擊的時間也增加(這也增加合法用戶使用密碼系統(tǒng)的計算量)
結(jié)論:抵御窮舉攻擊最好方法是有足夠密鑰空間。
(2)統(tǒng)計分析攻擊
通過分析密文和明文對的統(tǒng)計規(guī)律來破譯密碼。
對抗統(tǒng)計分析攻擊的方法是設(shè)法使明文的統(tǒng)計特征盡可能的不帶入密文。如果密文不帶有明文痕跡,統(tǒng)計分析攻擊就不可行(譬如重合指數(shù)法)
(3)數(shù)學分析攻擊
分析者針對加密變換所以來的數(shù)學難題,通過數(shù)學求解的方法來設(shè)法找到相應(yīng)的解密變化,從而實現(xiàn)破譯
對抗這種攻擊,選用具有堅實的數(shù)學基礎(chǔ)和足夠復(fù)雜的加密方法。
? ? ?3.4 密碼分析的啟示:
? ? ? ? ? 加密密碼算法要公開;
? ? ? ? ? 密鑰空間足夠大;
? ? ? ? ? 同一密鑰的密文數(shù)量盡可能少;
? ? ? ? ? 明文密文對盡可能不要泄露。
3.5 算法復(fù)雜度的度量(n是變量)
若對某個常數(shù)t,算法的運算時間T=O(n^t),稱該算法是多項式時間的(可解的)。
若對某個常數(shù)t(>1)和多項式h(n),算法的運行時間T=O(t^h(n)),層該算法是指數(shù)時間的(難解的)。