重點:
分組密碼的設計思想
分組密碼的基本特點
AES、DES密碼算法
AES和DES各自組成、每部分的實現過程以及特點
AES和DES的相似和不同
分組密碼的五種操作模式各自特點(重點:ECB,CBC,CTR)
1 分組密碼
1.1 概述
? ? -應用最為廣泛、影響最大的一種密碼體制,
? ? -主要任務是提供數據保密性,也可以用到許多方面,如構造偽隨機數生成器、序列密碼、認證碼和哈希函數等
? ? -又分為對稱分組密碼和非對稱分組密碼;習慣上,分組密碼一詞多指:對稱分組密碼,簡稱分組密碼
? ? -由于分組密碼加解密速度較快,安全性好,以及得到許多密碼芯片的支持,現代分組密碼發展非常快,應用廣泛
1.2 含義
1.3 分組密碼要求
分組長度足夠大:分組長度較小時,難于抵御選擇明文攻擊
密鑰量足夠大:密鑰量小,攻擊者可以通過窮舉密鑰的方法進行破譯
密碼變換足夠復雜:除了窮舉攻擊外,找不到其他有效的攻擊方法
加密和解密運算簡單:便于軟件和硬件實現,性能好
無數據擴散或壓縮:實際應用中很重要。
1.4 設計思想
(1)擴散
要將算法設計成明文每一比特的變化盡可能多得影響到輸出密文序列的變化,以便隱蔽明文的統計特性。形象地成為雪崩效應。
另一層意思是密鑰每一位的影響盡可能迅速地擴散到較多的密文比特中去。擴散的目的是希望密文中的任一比特都要盡可能與明文、密鑰相關聯,或者說,明文和密鑰中任何一比特值發生改變,都會某種程度上影響到密文值的變化,以防止將明文或密鑰分解成若干個孤立的小部分,然后被各個擊破。
(2)混亂
加解密變換過程中明文、密鑰以及密文之間的關系盡可能地復雜化,以防密碼破譯者采用解析法(即通過建立并求解一些方程)進行破譯攻擊。
混亂可以用“攪拌機”來形象地解釋,將一組明文和一組密鑰輸入到算法中,經過充分混合,最后變成密文。同時要求,執行這種“混亂”作業的每一步都必須是可逆的,即明文混亂以后得到密文,反之,密文經過逆向的混亂操作后能會付出明文。(按照混亂原則,分組密碼算法應有復雜的非線性因素)
1.5?分組密碼的基本特點
(1)分組長度:能夠抵御選擇明文攻擊
(2)密鑰長度:能夠抵御窮舉攻擊
(3)子密鑰
子密鑰的生成是迭代分組算法的一個重要組成部分,是從初始(種子)密鑰產生各輪迭代要使用的子密鑰的算法
輪函數F的功能是在子密鑰的參與和控制下實現的,
評價指標:
????????實現簡單、速度,滿足輪函數F的要求;
????????種子密鑰的所有比特對每個子密鑰比特的影響大致相同
????????沒有弱密鑰或弱密鑰容易確定
(4)輪函數F
輪函數F的設計準則(輪函數F是分組密碼的核心,是分組密碼中單輪加解密函數)
? ? ? ? --非線性:主要依賴S盒
? ? ? ? --可逆性:能夠實現解密
? ? ? ? --雪崩效應
主要性能指標是:安全性、速度、靈活性。
(5)迭代
分組密碼一般采用簡單的、安全性弱的密碼函數進行多輪迭代運算,使得安全性增強。一般來說,分組密碼迭代輪數越多,密碼分析越困難;但也不是越多越好,過多會使加解密算法性能下降。
決定迭代論述的準則:密碼算法分析的難度大于簡單窮舉搜索攻擊的難度;
分組密碼迭代輪數一般采用8/10/12/16/20
2 DES算法
2.1 概述
分組加密算法:明文和密文為64位分組長度
密碼算法:加密和解密除密鑰編排不同外,使用同一算法
密鑰長度:56位,但存在弱密鑰,容易避開
采用混亂和擴散的組合,每個組合先代換后置換,共16輪;
只使用了簡單的邏輯運算,易于實現,速度快
現代密碼學誕生的標志之一,揭開了商用密碼研究的序幕
2.2 加密流程圖
公式化描述:
輪函數F實現流程:
壓縮替代S盒:
2.3 解密算法
解密流程圖:
2.4 DES安全性
(1)互補性
互補性會使DES在選擇明文攻擊下所需的工作量減半
(2)弱密鑰和半弱密鑰
弱密鑰
????如果給定初始密鑰k,經過子密鑰產生器產生的各個子密鑰都相同,即有 k1=k2=…=k16,則稱給定的初始密鑰k為弱密鑰
????若k為弱密鑰,則對任意的64bit信息有: Ek(Ek(m))=m和Dk(Dk(m))=m
半弱密鑰
????若給定初始密鑰k,產生的16個子密鑰只有兩種,且每種都出現8次,則稱k為半弱密鑰。
????半弱密鑰特點是成對出現
????此外,還有四分之一弱密鑰和八分之一弱密鑰;
(3)密鑰搜索
DES的強度:56比特的密鑰長度
AES(128位)取代DES
(4)差分分析和線性分析
查分分析
????????一種攻擊迭代密碼體制的選擇明文攻擊方法,不是直接分析密文或密鑰和明文的統計相關性,而是分析一對給定明文的異或與對應密文對的異或之間的統計相關性。
????????基本思想:在攻擊的迭代密碼系統中找出某些高概率的明文差分和密文差分對來推算密鑰;
????????理論上有意義 2^47
線性分析
????????試圖通過大量的“明-密文對”找出分組密碼算法中與密鑰有關的線性方程,然后試著得到大量的這類關系從而確定密鑰。
????????基本思想是 以最佳的先行函數逼近DES的非線性變換S盒,是一種已知明文攻擊方法
????????針對DES在實際上仍然不可行
3. AES算法
3.1 算法特點
安全性:穩定的數學基礎,沒有算法弱點,算法抗密碼分析強度高
性能:能在多個平臺上以較快的速度實現
大小:不占用大量的存儲空間和內存
易實現:靈活性、硬件和軟件適應性、算法的簡單性
3.2 分類
加密流程:
輪函數加密:
行位移:
列混淆:
3.3?AES設計上的考慮
與DES相比,擴散的效果更快,即兩輪可達到完全擴散;
S盒使用清晰而簡單的代數方法構造,避免任何對算法留有后門的懷疑
密鑰擴散方案實現對密鑰位的非線性混合,即實現了均等效應,也實現了非對稱性
比窮舉攻擊更好的攻擊進行到6輪,多出4輪可以提供足夠的安全性(AES-128)
3.4 安全性
弱密鑰:設計上不是對稱的,其加密和解密過程不一致,這也避免弱密鑰的存在;
差分分析和線性分析:在設計時考慮了這兩種攻擊的方法,因此AES具有較好的抗擊其攻擊的能力。
密鑰窮舉攻擊:平均需要2^127次AES運算,按目前的計算不能力是不可能完成的
3.5 AES和DES對比
(1)相似之處
兩者的輪函數都是有四層構成,非線性層,移位層,線性混合層、子密鑰異或,知識順序不同;
AES的非線性運算是字節代換,對應于DES中的非線性運算S盒
行移位運算保證了每一行的字節不僅僅影響其他行對應的字節,而且影響其他行所有的字節,這與DES中置換P相似;
AES中的列混淆運算的目的是讓不同的字節相互影響,而DES中F函數的輸出與左邊一半數據相加也有類似的效果。
AES的子密鑰異或對應于DES中S盒之前的子密鑰異或。
(2)不同之處
AES的密鑰長度(128、192、256)是可變的,而DES的密鑰長度固定為56位
DES是面相比特的運算,AES是面相字節的運算
AES的加密運算和解密運算不一致,因而加密器不能同時做解密器,而DES的加密器可用做解密器,只是子密鑰的順序不同。
4.分組密碼的操作模式
分組加密算法智能加密固定長度的分組,通常加密的明文長度會超過分組密碼的分組長度,這是需要對分組密碼算法進行迭代,以便將很長的明文全部加密,而迭代的方法就稱為分組密碼的模式。
密碼模式通常是基本密碼、一些反饋和一些簡單運算的組合。
4.1?ECB--電子密碼本模式:Electronic Code Book
模式特點:
模式操作簡單,主要用于內容較短且隨機的報文的加密傳遞;
相同明文(在相同密鑰下)得出相同的密文,即明文中的重復內容可能將在密文中表現出來,易實現統計分析攻擊、分組重放攻擊和代換攻擊
鏈接依賴性:各組的加密都獨立于其他分組,可實現并行處理
錯誤傳播:單個密文分組中有一個或多個比特錯誤只會影響該分組的解密結果
4.2 CBC--密碼分組鏈接模式:Clipher Block Chaining
模式特點:
一種反饋機制在分組密碼中的應用,每個密文分組不僅依賴于產生它的明文分組,還依賴于它前面的所有分組;
相同的明文,即使相同的密鑰下也會得到不同的密文分組,隱藏了明文的統計特性;
鏈接依賴性:對于一個正確密文分組的正確解密要求它之前的那個密文分組也正確,不能實現并行處理;
錯誤傳播:密文分組中的一個分組出現錯誤會影響到本組和其后分組的揭解密,錯誤傳播為兩組;
初始化向量IV不需要保密,它可以明文相似與密文一起傳送。
4.3?CTR--計數器模式:Counter
模式特點:
效率高:能并行處理多塊明(密)文,可用來提供流水線、每個時鐘周期的多指令分派等并行特征;
預處理:基本加密算法的執行并不依靠明文或密文的輸入,可預先處理,當給出明文或密文時,所需的計算僅是進行一系列的以后運算;
隨機訪問:密文的第i個明文組能夠用一種隨機訪問的方式處理;
簡單性:只要求實現加密算法而不要求實現解密算法,像AEs這類加解密算法不同就更能體現CTR的簡單性。
4.4?CFB--密文反饋模式:Cipher Feedback
模式特點:
消息被看做數據分組流,不需要整個數據接受完后才能進行加解密;
可用于自同步序列密碼;
具有CBC模式的優點
對信道錯誤較敏感且會造成錯誤傳播
數據加解密的速率降低,其數據率不會太高
4.5?OFB--輸出反饋模式:Output Feedback
模式特點:
OFB模式是CFB模式的一種變形,克服由錯誤傳播帶來的問題,但對密文被篡改難于進行檢測;
OFB模式不有自同步能力,要求系統保持嚴格的同步,否則難于解密;
4.6 小結
EBC:最快、最簡單;安全性最弱,不推薦;若果是加密隨機數,如密鑰,ECB是最好的選擇
CBC:適合文件加密,且有少量錯誤時不會造成同步失敗;軟件加密的最后選擇;
CTR:結合ECB和CBC的優點,ATM網絡和IPSec中起到重要作用;
CFB:加密分組序列所選擇;能容忍少量錯誤擴展,且具有同步恢復功能;
OFB:在極易出錯的環境中選用的模式,需有高速同步機制。