版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
第6章3DES及對稱密碼其他內(nèi)容第6章3DES及對稱密碼其他內(nèi)容TripleDES(三重DES)BlockCipherModesofOperation
(分組密碼的工作模式)
StreamciphersandRC4(流密碼和RC4)6.13DES多重加密本質(zhì)是將一個加密算法多次使用的技術。在第一次使用中,明文通過加密算法轉為密文,然后將該密文作為輸入重新執(zhí)行加密算法。該過程可重復多次。3DES是在三個階段使用DES算法,共用到兩組或三組密鑰。6.13DES2DES加密:C=EK2(EK1(P))解密:P=DK1(DK2(C))Thelengthofthekey=56×2=112bits6.13DES2DES但對于DES的替代算法并沒有選擇2DES?因為:會受到meet-in-the-middleattackC=E(K2,E(K1,P))X=E(K1,P)=D(K2,C)6.13DES如果已知一個明文密文對(P,C),攻擊的實施可如下進行:
1、首先,用256個所有可能的K1對P加密,將加密結果存入一表并對表排序;
2、然后用256個所有可能的K2對C解密,在上述表中查找與C解密結果相匹配的項,如果找到,則記下相應的K1和K2;3、最后再用一新的明文密文對(P',C')檢驗上面找到的K1和K2
。用K1和K2對P'兩次加密,若結果等于C',就可確定K1和K2是所要找的密鑰。2DES6.13DES3DESC=EK3(DK2(EK1(P)))
P=DK1(EK2(DK3(C)))Thelengthofkey=168bits為什么是加/解密是EDE/DED模式6.13DES為什么是加/解密是EDE/DED模式?主要是為了功能更加強大,兼容單密鑰加密按常識,如果是EEE/DDD模式的話,解密:DK1(DK1(DK1(C))),其中C=EK1(p)解密:DK1(EK1(DK1(C)))其中C=EK1(p)如果是EDE/DED模式的話,多重DES應用3DES(2K/3K)是高強度的加密算法實現(xiàn)方便,節(jié)省投資DES模塊本身不需改變, 只改變上層應用程序應用情況PGP、S/MIME分組密碼的工作模式電子密碼本模式(electroniccodebookmode)ECB密碼塊鏈接(cipherblockchaining)CBC密碼反饋方式(cipherfeedback)CFB輸出反饋方式(outputfeedback)OFB計數(shù)器模式CTR選擇工作模式本質(zhì)上是一項增強密碼算法或者使算法適應具體應用的技術6.2
電碼本(ECB)模式ECB(electroniccodebook)模式是最簡單的運行模式,它一次對一個64比特長的明文分組加密,而且每次的加密密鑰都相同,當密鑰取定時,對明文的每一個分組,都有一個惟一的密文與之對應。因此形象地說,可以認為有一個非常大的電碼本,對任意一個可能的明文分組,電碼本中都有一項對應于它的密文。6.2電碼本(ECB)模式如果消息長于64比特,則將其分為長為64比特的分組,最后一個分組如果不夠64比特,則需要填充。解密過程也是一次對一個分組解密,而且每次解密都使用同一密鑰。ECB模式特別適合于數(shù)據(jù)較少的情況,比如加密密鑰。ECB的最大特性是同一明文分組在消息中重復出現(xiàn)的話,產(chǎn)生的密文分組也相同,即同樣信息多次出現(xiàn)造成消息泄露,故ECB用于長消息時可能不夠安全。6.3密碼分組鏈接(CBC)模式為了解決ECB的安全缺陷,可以讓重復的明文分組產(chǎn)生不同的密文分組,CBC(Cipher
block
chaining)模式就可滿足這一要求。它一次對一個明文分組加密,每次加密使用同一密鑰,加密算法的輸入是當前明文分組和前一次密文分組的異或,因此加密算法的輸入不會顯示出與這次的明文分組之間的固定關系,所以重復的明文分組不會在密文中暴露出這種重復關系。假如傳輸C1時發(fā)生了錯誤,會影響哪些明文位?P2位以后會受影響嗎?如果傳輸沒問題,但P1加密前本來就有一位發(fā)生了錯誤,錯誤會擴散到多少個密文分組?對接收者解密出的明文分組有什么影響?CBC模式有可能對多個明文分組進行并行加密嗎,并行解密呢?IV不能被第三者知道,不能被預測,不能未經(jīng)授權修改,例如我們可以先用ECB加密IV后再發(fā)送給對方。只要IV是不可預測的,那么可以隨意選擇,(計數(shù)器、時間戳……等時變量)6.4密文反饋(CFB)模式以DES為例,其是分組長為64比特的分組密碼,但利用CFB(cipherfeedback)模式或OFB模式可將DES轉換為流密碼方式使用。流密碼不需要對消息填充(分組加密模式,當長度不為分組的整數(shù)倍,就需要在明文末端填充一些隨機數(shù),“湊成”分組,這種情況下密文長度就比明文長度要長),而且運行是實時的(所謂實時,前面兩種模式,在64位明文分組傳送完之前,不能進行任何加解密操作,而CFB模式下,可一組處理1字節(jié)即8位數(shù)據(jù),例如一個字符不需要等待全部數(shù)據(jù)傳送完才開始執(zhí)行加解密操作,在交互式計算機通信中是很有用的。例如傳送字母流,可使用流密碼對每個字母直接加密并傳送。一般b取64,s取86.5輸出反饋(OFB)模式OFB和CFB結構幾乎一樣,區(qū)別在于OFB模式是將加密算法的輸出反饋到移位寄存器,而CFB模式中是將密文單元反饋到移位寄存器。OFB模式的優(yōu)點是傳輸過程中比特錯誤不會被傳播。但是因為密文沒有參與鏈操作,所以使得OFB模式更容易受到攻擊;6.6計數(shù)器模式計數(shù)器模式(也是一種流方式應用,但是可以非順序存?。┲貜图用艹跏糲ounter++,得密鑰流明文與之XOR6.6計數(shù)器模式6.7流密碼和RC4流密碼這種體制是將明文M看成是連續(xù)的比特流或字符流(m1m2m3…),并用密鑰序列K(k1k2k3…)中的第i個元素ki對明文中的mi進行逐位加密。加密的強度在于密鑰序列的隨機性和不確定性。
密鑰流是偽隨機流,偽隨機流就是在不知道輸入密鑰的情況下不可預知的流,“偽”表示其產(chǎn)生的不是真正的隨機數(shù),只是盡量逼近。流密鑰要做到安全的一個前提,就是盡可能不重復使用密鑰,否則就失去了隨機性的意義。流密碼有些類似第二章討論的一次一密,不同的是“一次一密”是真正的隨機數(shù)流,而流密碼是偽隨機數(shù)流。隨機數(shù)的質(zhì)量要求均勻分布在任何尺度上看其統(tǒng)計規(guī)律是均勻的比如0、1的平均各半字節(jié)0~255的出現(xiàn)概率是1/256雙字節(jié)0~65535的出現(xiàn)概率是1/65536等等獨立性沒有周期,也無法推導或預測類似洗牌、拋硬幣、搖獎等*無理數(shù)(不是密碼學上期望的隨機數(shù))e,π,√2,真隨機數(shù)來源確實有,比如拋硬幣,搖獎器具,攪拌器物理噪聲發(fā)生器,白/背景噪聲、熱運動、齊納擊穿但都不實用尤其不適合軟件產(chǎn)生數(shù)字計算機本身不能產(chǎn)生真正的不可預測的隨機數(shù)有限狀態(tài)自動機專用硬件(芯片/板卡)IntelRandomNumberGenerator/dev/random,/dev/urandom對真隨機數(shù)的改進處理:用md5等消除偏差偽隨機數(shù)列發(fā)生器(PRNG)線性同余發(fā)生器BBS發(fā)生器使用分組密碼產(chǎn)生偽隨機數(shù)(CTR和OFB模式)特意構造的算法(RC4…)………6.7.1流密碼的結構偽隨機字節(jié)發(fā)生器
一個典型的流密碼每次加密一個字節(jié)的明文(如上圖),核心在于密鑰流生成器的設計,生成的密鑰流要有很強的隨機性;保持收發(fā)端密鑰流的精確同步是實現(xiàn)可靠加解密的關鍵。6.7.1流密碼的結構設計流密碼需要考慮的主要因素:加密序列的周期要長。偽隨機數(shù)發(fā)生器實質(zhì)上使用的是產(chǎn)生確定的比特流的函數(shù)。該比特流最終將出現(xiàn)重復。重復的周期越長,密碼分析的難度就越大。密鑰流應該盡可能地接近于一個真正的隨機數(shù)流的特征。例如,1和0的個數(shù)應近似相等。若密鑰流為字節(jié)流,則所有256種可能的字節(jié)的值出現(xiàn)頻率越近似相等,密鑰流的隨機特性越好。密鑰流生成器的輸出取決于輸入密鑰的值,為了防止窮舉攻擊,密鑰長度要足夠長(最好不要小于128位)。
6.7.1流密碼的結構流密碼的優(yōu)缺點:是其相對于分組密碼來說,往往速度更快而且需要編寫的代碼更少;分組密碼的優(yōu)點是可以重復使用密鑰,然而如果用流密碼對兩個明文加密中使用相同的密鑰,則密碼分析就會相當容易。應用:對于需要對數(shù)據(jù)流進行加密解密的應用,比如通過一個數(shù)據(jù)通信信道或者網(wǎng)頁瀏覽連接,流密碼就是很好的解決方案,或者說,對于從不結束的通信傳輸流來說,流密碼特別合適。而對于處理成塊的數(shù)據(jù),比如文件傳輸,電子郵件和數(shù)據(jù)庫,分組密碼則更為適用。并且對于既需要重復加密,又需要每次加密不改變密鑰的情況,適合使用分組密碼,例如對于加密數(shù)據(jù)庫中一列的所有單元,這就意味著對于每一個單元不能使用不同的密鑰,應該采用分組加密。6.7.2RC4算法RC4是RonRivest為RSA公司在1987年設計的一種流密碼。它是一個可變密鑰長度、面向字節(jié)操作的流密碼。該算法以隨機置換作為基礎。分析顯示該密碼的周期大于10100。每輸出一個字節(jié)的結果僅需要8條到16條機器操作指令。RC4算法非常簡單:用1-256個字節(jié)的可變長度密鑰K初始化一個256字節(jié)的狀態(tài)向量S,S的元素記為S[0]…S[255],從始至終置換后的S包含從0到255的所有8位數(shù)。對于加密和解密,字節(jié)k是從S的255個元素按一種系統(tǒng)化的方式選出的一個元素生成的。每生成一個字節(jié)k的值,S中的元素個體就被重新置換一次。6.7.2RC4算法初始化:開始時,S向量中元素的值初始化被置為按升序從0~255,即S[0]=0,S[1]=1,…,S[255]=255。同時建立一個臨時向量T。如果密鑰K的長度為256字節(jié),則將K賦給T。否則若密鑰長度為keylen(小于256)字節(jié),則將K的值賦給T的前keylen個元素,并循環(huán)重復用K的值賦給T剩下的元素,直到T的所有元素都被賦值。這些操作可被概括如下:/*Initialiation*/fori=0to255doS[i]=i;T[i]=K[imodkeylen];
6.7.2RC4算法然后用T產(chǎn)生S的初始置換,從S[0]到S[255],對每個S[i],根據(jù)由T[i]確定的方案,將S[i]置換為S中的另一字節(jié):/*InitialPermutationofS*/j=0;fori=0to255doj=(j+S[i]+T[i])mod256;Swap(S[i],S[j]);
因為對S的操作僅是交換,所以惟一的改變就是置換。S仍然包含所有值為0~255的元素。密鑰的主要功能是將S-box攪亂,i確保S-box的每個元素都得到處理,j保證S-box的攪亂是隨機的。6.7.2RC4算法密鑰流的生成:矢量S一旦完成初始化,輸入密鑰K就不再被使用。密鑰流的生成是從S[0]到S[255],對每
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五版房屋代持業(yè)務合同范本3篇
- 二零二五版電機維修智能化改造合同范本3篇
- 二零二五年度房地產(chǎn)經(jīng)紀服務合同7篇
- 二零二五版購房借款及房地產(chǎn)開發(fā)商風險控制擔保服務合同3篇
- 二零二五版商業(yè)地產(chǎn)買賣合同模板下載3篇
- 二零二五年度高等教育機構外國專家項目合作合同參考書3篇
- 二零二五版家用空調(diào)安裝與室內(nèi)環(huán)境改善合同3篇
- 二零二五年度成都上灶師父招聘與餐飲業(yè)人才服務合同2篇
- 展會創(chuàng)意展示合同(2篇)
- 2025年度油氣田2#配電房土建安裝與防爆電氣設備合同3篇
- 下肢皮牽引護理PPT課件(19頁PPT)
- 臺資企業(yè)A股上市相關資料
- 電 梯 工 程 預 算 書
- 參會嘉賓簽到表
- 機械車間員工績效考核表
- 形式發(fā)票格式2 INVOICE
- 2.48低危胸痛患者后繼治療評估流程圖
- 人力資源管理之績效考核 一、什么是績效 所謂績效簡單的講就是對
- 山東省醫(yī)院目錄
- 云南地方本科高校部分基礎研究
- 廢品管理流程圖
評論
0/150
提交評論