重點(diǎn):
分組密碼的設(shè)計(jì)思想
分組密碼的基本特點(diǎn)
AES姐霍、DES密碼算法
AES和DES各自組成话告、每部分的實(shí)現(xiàn)過程以及特點(diǎn)
AES和DES的相似和不同
分組密碼的五種操作模式各自特點(diǎn)(重點(diǎn):ECB,CBC,CTR)
1 分組密碼
1.1 概述
? ? -應(yīng)用最為廣泛娱节、影響最大的一種密碼體制最域,
? ? -主要任務(wù)是提供數(shù)據(jù)保密性莽囤,也可以用到許多方面五嫂,如構(gòu)造偽隨機(jī)數(shù)生成器、序列密碼袖牙、認(rèn)證碼和哈希函數(shù)等
? ? -又分為對(duì)稱分組密碼和非對(duì)稱分組密碼侧巨;習(xí)慣上,分組密碼一詞多指:對(duì)稱分組密碼贼陶,簡(jiǎn)稱分組密碼
? ? -由于分組密碼加解密速度較快,安全性好巧娱,以及得到許多密碼芯片的支持碉怔,現(xiàn)代分組密碼發(fā)展非常快禁添,應(yīng)用廣泛
1.2 含義
1.3 分組密碼要求
分組長(zhǎng)度足夠大:分組長(zhǎng)度較小時(shí)撮胧,難于抵御選擇明文攻擊
密鑰量足夠大:密鑰量小,攻擊者可以通過窮舉密鑰的方法進(jìn)行破譯
密碼變換足夠復(fù)雜:除了窮舉攻擊外老翘,找不到其他有效的攻擊方法
加密和解密運(yùn)算簡(jiǎn)單:便于軟件和硬件實(shí)現(xiàn)芹啥,性能好
無數(shù)據(jù)擴(kuò)散或壓縮:實(shí)際應(yīng)用中很重要锻离。
1.4 設(shè)計(jì)思想
(1)擴(kuò)散
要將算法設(shè)計(jì)成明文每一比特的變化盡可能多得影響到輸出密文序列的變化,以便隱蔽明文的統(tǒng)計(jì)特性墓怀。形象地成為雪崩效應(yīng)汽纠。
另一層意思是密鑰每一位的影響盡可能迅速地?cái)U(kuò)散到較多的密文比特中去。擴(kuò)散的目的是希望密文中的任一比特都要盡可能與明文傀履、密鑰相關(guān)聯(lián)虱朵,或者說,明文和密鑰中任何一比特值發(fā)生改變钓账,都會(huì)某種程度上影響到密文值的變化碴犬,以防止將明文或密鑰分解成若干個(gè)孤立的小部分,然后被各個(gè)擊破梆暮。
(2)混亂
加解密變換過程中明文服协、密鑰以及密文之間的關(guān)系盡可能地復(fù)雜化,以防密碼破譯者采用解析法(即通過建立并求解一些方程)進(jìn)行破譯攻擊啦粹。
混亂可以用“攪拌機(jī)”來形象地解釋偿荷,將一組明文和一組密鑰輸入到算法中,經(jīng)過充分混合卖陵,最后變成密文遭顶。同時(shí)要求,執(zhí)行這種“混亂”作業(yè)的每一步都必須是可逆的泪蔫,即明文混亂以后得到密文棒旗,反之,密文經(jīng)過逆向的混亂操作后能會(huì)付出明文撩荣。(按照混亂原則铣揉,分組密碼算法應(yīng)有復(fù)雜的非線性因素)
1.5?分組密碼的基本特點(diǎn)
(1)分組長(zhǎng)度:能夠抵御選擇明文攻擊
(2)密鑰長(zhǎng)度:能夠抵御窮舉攻擊
(3)子密鑰
子密鑰的生成是迭代分組算法的一個(gè)重要組成部分,是從初始(種子)密鑰產(chǎn)生各輪迭代要使用的子密鑰的算法
輪函數(shù)F的功能是在子密鑰的參與和控制下實(shí)現(xiàn)的餐曹,
評(píng)價(jià)指標(biāo):
????????實(shí)現(xiàn)簡(jiǎn)單逛拱、速度,滿足輪函數(shù)F的要求台猴;
????????種子密鑰的所有比特對(duì)每個(gè)子密鑰比特的影響大致相同
????????沒有弱密鑰或弱密鑰容易確定
(4)輪函數(shù)F
輪函數(shù)F的設(shè)計(jì)準(zhǔn)則(輪函數(shù)F是分組密碼的核心朽合,是分組密碼中單輪加解密函數(shù))
? ? ? ? --非線性:主要依賴S盒
? ? ? ? --可逆性:能夠?qū)崿F(xiàn)解密
? ? ? ? --雪崩效應(yīng)
主要性能指標(biāo)是:安全性、速度饱狂、靈活性曹步。
(5)迭代
分組密碼一般采用簡(jiǎn)單的、安全性弱的密碼函數(shù)進(jìn)行多輪迭代運(yùn)算休讳,使得安全性增強(qiáng)讲婚。一般來說,分組密碼迭代輪數(shù)越多俊柔,密碼分析越困難筹麸;但也不是越多越好活合,過多會(huì)使加解密算法性能下降。
決定迭代論述的準(zhǔn)則:密碼算法分析的難度大于簡(jiǎn)單窮舉搜索攻擊的難度物赶;
分組密碼迭代輪數(shù)一般采用8/10/12/16/20
2 DES算法
2.1 概述
分組加密算法:明文和密文為64位分組長(zhǎng)度
密碼算法:加密和解密除密鑰編排不同外白指,使用同一算法
密鑰長(zhǎng)度:56位,但存在弱密鑰块差,容易避開
采用混亂和擴(kuò)散的組合侵续,每個(gè)組合先代換后置換,共16輪憨闰;
只使用了簡(jiǎn)單的邏輯運(yùn)算状蜗,易于實(shí)現(xiàn),速度快
現(xiàn)代密碼學(xué)誕生的標(biāo)志之一鹉动,揭開了商用密碼研究的序幕
2.2 加密流程圖
公式化描述:
輪函數(shù)F實(shí)現(xiàn)流程:
壓縮替代S盒:
2.3 解密算法
解密流程圖:
2.4 DES安全性
(1)互補(bǔ)性
互補(bǔ)性會(huì)使DES在選擇明文攻擊下所需的工作量減半
(2)弱密鑰和半弱密鑰
弱密鑰
????如果給定初始密鑰k轧坎,經(jīng)過子密鑰產(chǎn)生器產(chǎn)生的各個(gè)子密鑰都相同,即有 k1=k2=…=k16泽示,則稱給定的初始密鑰k為弱密鑰
????若k為弱密鑰缸血,則對(duì)任意的64bit信息有: Ek(Ek(m))=m和Dk(Dk(m))=m
半弱密鑰
????若給定初始密鑰k,產(chǎn)生的16個(gè)子密鑰只有兩種械筛,且每種都出現(xiàn)8次捎泻,則稱k為半弱密鑰。
????半弱密鑰特點(diǎn)是成對(duì)出現(xiàn)
????此外埋哟,還有四分之一弱密鑰和八分之一弱密鑰笆豁;
(3)密鑰搜索
DES的強(qiáng)度:56比特的密鑰長(zhǎng)度
AES(128位)取代DES
(4)差分分析和線性分析
查分分析
????????一種攻擊迭代密碼體制的選擇明文攻擊方法,不是直接分析密文或密鑰和明文的統(tǒng)計(jì)相關(guān)性赤赊,而是分析一對(duì)給定明文的異或與對(duì)應(yīng)密文對(duì)的異或之間的統(tǒng)計(jì)相關(guān)性闯狱。
????????基本思想:在攻擊的迭代密碼系統(tǒng)中找出某些高概率的明文差分和密文差分對(duì)來推算密鑰;
????????理論上有意義 2^47
線性分析
????????試圖通過大量的“明-密文對(duì)”找出分組密碼算法中與密鑰有關(guān)的線性方程抛计,然后試著得到大量的這類關(guān)系從而確定密鑰哄孤。
????????基本思想是 以最佳的先行函數(shù)逼近DES的非線性變換S盒,是一種已知明文攻擊方法
????????針對(duì)DES在實(shí)際上仍然不可行
3. AES算法
3.1 算法特點(diǎn)
安全性:穩(wěn)定的數(shù)學(xué)基礎(chǔ)吹截,沒有算法弱點(diǎn)瘦陈,算法抗密碼分析強(qiáng)度高
性能:能在多個(gè)平臺(tái)上以較快的速度實(shí)現(xiàn)
大小:不占用大量的存儲(chǔ)空間和內(nèi)存
易實(shí)現(xiàn):靈活性波俄、硬件和軟件適應(yīng)性晨逝、算法的簡(jiǎn)單性
3.2 分類
加密流程:
輪函數(shù)加密:
行位移:
列混淆:
3.3?AES設(shè)計(jì)上的考慮
與DES相比,擴(kuò)散的效果更快弟断,即兩輪可達(dá)到完全擴(kuò)散咏花;
S盒使用清晰而簡(jiǎn)單的代數(shù)方法構(gòu)造趴生,避免任何對(duì)算法留有后門的懷疑
密鑰擴(kuò)散方案實(shí)現(xiàn)對(duì)密鑰位的非線性混合阀趴,即實(shí)現(xiàn)了均等效應(yīng)昏翰,也實(shí)現(xiàn)了非對(duì)稱性
比窮舉攻擊更好的攻擊進(jìn)行到6輪,多出4輪可以提供足夠的安全性(AES-128)
3.4 安全性
弱密鑰:設(shè)計(jì)上不是對(duì)稱的刘急,其加密和解密過程不一致棚菊,這也避免弱密鑰的存在;
差分分析和線性分析:在設(shè)計(jì)時(shí)考慮了這兩種攻擊的方法叔汁,因此AES具有較好的抗擊其攻擊的能力统求。
密鑰窮舉攻擊:平均需要2^127次AES運(yùn)算,按目前的計(jì)算不能力是不可能完成的
3.5 AES和DES對(duì)比
(1)相似之處
兩者的輪函數(shù)都是有四層構(gòu)成据块,非線性層码邻,移位層,線性混合層另假、子密鑰異或像屋,知識(shí)順序不同;
AES的非線性運(yùn)算是字節(jié)代換边篮,對(duì)應(yīng)于DES中的非線性運(yùn)算S盒
行移位運(yùn)算保證了每一行的字節(jié)不僅僅影響其他行對(duì)應(yīng)的字節(jié)己莺,而且影響其他行所有的字節(jié),這與DES中置換P相似戈轿;
AES中的列混淆運(yùn)算的目的是讓不同的字節(jié)相互影響凌受,而DES中F函數(shù)的輸出與左邊一半數(shù)據(jù)相加也有類似的效果。
AES的子密鑰異或?qū)?yīng)于DES中S盒之前的子密鑰異或思杯。
(2)不同之處
AES的密鑰長(zhǎng)度(128胜蛉、192、256)是可變的智蝠,而DES的密鑰長(zhǎng)度固定為56位
DES是面相比特的運(yùn)算腾么,AES是面相字節(jié)的運(yùn)算
AES的加密運(yùn)算和解密運(yùn)算不一致,因而加密器不能同時(shí)做解密器杈湾,而DES的加密器可用做解密器解虱,只是子密鑰的順序不同。
4.分組密碼的操作模式
分組加密算法智能加密固定長(zhǎng)度的分組漆撞,通常加密的明文長(zhǎng)度會(huì)超過分組密碼的分組長(zhǎng)度殴泰,這是需要對(duì)分組密碼算法進(jìn)行迭代,以便將很長(zhǎng)的明文全部加密浮驳,而迭代的方法就稱為分組密碼的模式悍汛。
密碼模式通常是基本密碼、一些反饋和一些簡(jiǎn)單運(yùn)算的組合至会。
4.1?ECB--電子密碼本模式:Electronic Code Book
模式特點(diǎn):
模式操作簡(jiǎn)單离咐,主要用于內(nèi)容較短且隨機(jī)的報(bào)文的加密傳遞;
相同明文(在相同密鑰下)得出相同的密文,即明文中的重復(fù)內(nèi)容可能將在密文中表現(xiàn)出來宵蛀,易實(shí)現(xiàn)統(tǒng)計(jì)分析攻擊昆著、分組重放攻擊和代換攻擊
鏈接依賴性:各組的加密都獨(dú)立于其他分組,可實(shí)現(xiàn)并行處理
錯(cuò)誤傳播:?jiǎn)蝹€(gè)密文分組中有一個(gè)或多個(gè)比特錯(cuò)誤只會(huì)影響該分組的解密結(jié)果
4.2 CBC--密碼分組鏈接模式:Clipher Block Chaining
模式特點(diǎn):
一種反饋機(jī)制在分組密碼中的應(yīng)用术陶,每個(gè)密文分組不僅依賴于產(chǎn)生它的明文分組凑懂,還依賴于它前面的所有分組;
相同的明文梧宫,即使相同的密鑰下也會(huì)得到不同的密文分組接谨,隱藏了明文的統(tǒng)計(jì)特性;
鏈接依賴性:對(duì)于一個(gè)正確密文分組的正確解密要求它之前的那個(gè)密文分組也正確塘匣,不能實(shí)現(xiàn)并行處理脓豪;
錯(cuò)誤傳播:密文分組中的一個(gè)分組出現(xiàn)錯(cuò)誤會(huì)影響到本組和其后分組的揭解密,錯(cuò)誤傳播為兩組忌卤;
初始化向量IV不需要保密跑揉,它可以明文相似與密文一起傳送。
4.3?CTR--計(jì)數(shù)器模式:Counter
模式特點(diǎn):
效率高:能并行處理多塊明(密)文埠巨,可用來提供流水線历谍、每個(gè)時(shí)鐘周期的多指令分派等并行特征;
預(yù)處理:基本加密算法的執(zhí)行并不依靠明文或密文的輸入辣垒,可預(yù)先處理望侈,當(dāng)給出明文或密文時(shí),所需的計(jì)算僅是進(jìn)行一系列的以后運(yùn)算勋桶;
隨機(jī)訪問:密文的第i個(gè)明文組能夠用一種隨機(jī)訪問的方式處理脱衙;
簡(jiǎn)單性:只要求實(shí)現(xiàn)加密算法而不要求實(shí)現(xiàn)解密算法,像AEs這類加解密算法不同就更能體現(xiàn)CTR的簡(jiǎn)單性例驹。
4.4?CFB--密文反饋模式:Cipher Feedback
模式特點(diǎn):
消息被看做數(shù)據(jù)分組流捐韩,不需要整個(gè)數(shù)據(jù)接受完后才能進(jìn)行加解密;
可用于自同步序列密碼鹃锈;
具有CBC模式的優(yōu)點(diǎn)
對(duì)信道錯(cuò)誤較敏感且會(huì)造成錯(cuò)誤傳播
數(shù)據(jù)加解密的速率降低荤胁,其數(shù)據(jù)率不會(huì)太高
4.5?OFB--輸出反饋模式:Output Feedback
模式特點(diǎn):
OFB模式是CFB模式的一種變形,克服由錯(cuò)誤傳播帶來的問題屎债,但對(duì)密文被篡改難于進(jìn)行檢測(cè)仅政;
OFB模式不有自同步能力,要求系統(tǒng)保持嚴(yán)格的同步盆驹,否則難于解密圆丹;
4.6 小結(jié)
EBC:最快、最簡(jiǎn)單躯喇;安全性最弱辫封,不推薦;若果是加密隨機(jī)數(shù),如密鑰倦微,ECB是最好的選擇
CBC:適合文件加密檀咙,且有少量錯(cuò)誤時(shí)不會(huì)造成同步失敗璃诀;軟件加密的最后選擇;
CTR:結(jié)合ECB和CBC的優(yōu)點(diǎn)蔑匣,ATM網(wǎng)絡(luò)和IPSec中起到重要作用劣欢;
CFB:加密分組序列所選擇;能容忍少量錯(cuò)誤擴(kuò)展裁良,且具有同步恢復(fù)功能凿将;
OFB:在極易出錯(cuò)的環(huán)境中選用的模式,需有高速同步機(jī)制价脾。