




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、南京郵電大學(xué)畢業(yè)設(shè)計(jì)(論文)題目分組加密算法的研究與實(shí)現(xiàn)專業(yè)信息與計(jì)算科學(xué)學(xué)生姓名 班級學(xué)號 指導(dǎo)教師 評閱教師 指導(dǎo)單位畢業(yè)設(shè)計(jì)(論文)原創(chuàng)性聲明本人鄭重聲明:所提交的畢業(yè)設(shè)計(jì)(論文),是本人在導(dǎo)師指導(dǎo)下,獨(dú)立進(jìn) 行研究工作所取得的成果。除文中已注明引用的內(nèi)容外,本畢業(yè)設(shè)計(jì)(論文)不 包含任何其他個人或集體已經(jīng)發(fā)表或撰寫過的作品成果。對木研究做出過重要貢 獻(xiàn)的個人和集體,均已在文屮以明確方式標(biāo)明并表示了謝意。論文作者簽名: 日期: 年 月隨著信息化技術(shù)的廣泛應(yīng)用和深入發(fā)展,信息安全越來越受到人們的高度 關(guān)注,已成為影響國家安全、經(jīng)濟(jì)發(fā)展、社會穩(wěn)定的垂耍因索。作為信息安全 的核心之一的加密技術(shù)
2、也越來越重要,加密算法的好壞也決定信息的安全性。 分組密碼是現(xiàn)代密碼學(xué)的重要體制z-,具有加密速度快、安全性好、易于標(biāo) 準(zhǔn)化等特點(diǎn),廣泛地應(yīng)用于數(shù)據(jù)的保密傳輸、加密存儲等場合。在研究分組密 碼的基礎(chǔ)上,木文對aes和des兩種算法進(jìn)行研究。主耍內(nèi)容如下:1 對分組密碼進(jìn)行分析。2. 對aes和des兩種加密算法詳細(xì)分析。3根據(jù)兩種加密算法,用visual c+編寫加密軟件,并對軟件進(jìn)行測試。關(guān)鍵詞:分組密碼;aes; des;abstractwith the wide application and further development of information technology,
3、information security has attracted more and more attention.lt has become an important factor to influence national security, economic development, social stability. as one of the core of information security encryption technology become more and more important, the quality of the encryption algorith
4、m also determines the security of infbrmation.block cipher is one of the important institutional of the modern cryptography, it has a fast encryption speedsecurity, easy standardization and other characteristics widely used in the confidentiality of data transmission, encrypted storage and other occ
5、asions.on the basis of the study of block cipher, this thesis conducts the research to aes and desthe main contents are as follows:1. analysis for the block cipher.2. a detailed analysis for two encryption algorithms of aes and des3. according to two encryption algorithm, using visual c + + to write
6、 encryption software, and testing the software.key words: block cipher; aes; des;第一章分組密碼的原理11.1分組密碼概述11.2分組密碼的設(shè)計(jì)原則11. 2. 1針對安全性的一般設(shè)計(jì)原則11.2.2針對實(shí)現(xiàn)的設(shè)計(jì)原則21.3分組密碼常見的設(shè)計(jì)方法和原理214分組密碼的工作模式31.4. 1電子密碼本ecb31.4.2密文塊鏈接cbc41.4.3密文反饋模式cfb41.4. 4輸出反饋模式ofb51. 5常見的分組加密算法61. 5. 1 des61.5.2 aes61. 5.3 idea 算法61. 5.4 rc
7、6 算法61.5.5 skipjack 算法71. 5. 6 camellia 算法7第二章des加密算法82. 1 des的產(chǎn)生背景82. 2 des的基本結(jié)構(gòu)82. 3 des的初始置換和逆初始置換92.4 des 的 f 函數(shù)112.4. 1擴(kuò)展置換112. 4.2代換盒112.4.3置換運(yùn)算132. 5 des的密鑰生成14第三章aes加密算法153. 1 aes的產(chǎn)生背景163. 2 aes的基木結(jié)構(gòu)163. 3 aes 加密183. 3. 1字節(jié)代換183.3.2行移位193. 3. 3列混合20334輪密鑰加213.3.5密鑰擴(kuò)展213.4aes的解密22第四章加密軟件設(shè)計(jì)244
8、. 1des加密軟件設(shè)計(jì)244. 1. 1開發(fā)平臺244. 1.2功能要求244. 1.3主要模塊設(shè)計(jì)244. 1.4軟件界面284. 2aes加密軟件設(shè)計(jì)294.2. 1開發(fā)平臺294. 2. 2功能耍求294.2.3主要模塊設(shè)計(jì)294. 2. 4軟件界面34結(jié)束語35致謝36參考文獻(xiàn)37第一章分組密碼的原理11分組密碼概述分組密碼是對稱密碼的一種,是密碼系統(tǒng)中最重要的組成部分。分組密碼除 了能夠加密數(shù)據(jù),也可以作為核心算法應(yīng)用在其他密碼技術(shù)中,如構(gòu)造偽隨機(jī)數(shù) 生成器、流密碼、認(rèn)證碼和散列函數(shù);分組密碼也是消息認(rèn)證技術(shù)、數(shù)據(jù)完整性 機(jī)制、實(shí)體認(rèn)證協(xié)議及數(shù)字簽名方案的核心算法。分組密碼是將明文
9、分成固定長度的組,如64位一組,用同一密鑰和算法對每 一塊分組加密,輸出固定長度的密文。分組密碼加密函數(shù)實(shí)際上是從n位明文塊 到n位密文塊之間的映射。通常記比為密鑰為k時的加密函數(shù),稱比的逆函數(shù)為 密鑰為k時的解密函數(shù),記為幾。分組密碼的數(shù)學(xué)模型如圖11所示。圖1.1分組密碼的數(shù)學(xué)模型分組密碼具有速度快、易于標(biāo)準(zhǔn)化和便于軟硬件實(shí)現(xiàn)等特點(diǎn)。通常是信息與 網(wǎng)絡(luò)安全中實(shí)現(xiàn)數(shù)據(jù)加密和認(rèn)證的核心體制,它在計(jì)算機(jī)通信和信息系統(tǒng)安全領(lǐng) 域有著最廣泛的應(yīng)用。12分組密碼的設(shè)計(jì)原則1.2.1針對安全性的一般設(shè)計(jì)原則分組長度和密鑰長度:當(dāng)明文分組長度為n位時,至多需要2“個明文-密文對 就徹底破解了密碼。當(dāng)密鑰長
10、度為n位時,對一個截獲的密文,至多需要試驗(yàn)2ri 個密鑰就破解了該密文。因此從安全性角度來考慮,明文分組長度和密鑰長度盡 可能大。擾亂原則:又稱混淆原則,是指人們所設(shè)計(jì)的密碼應(yīng)使得密鑰和明文以及密 文z間的信賴關(guān)系相當(dāng)復(fù)雜以至于這種依賴性對密碼分析者來說是無法利用的。 擴(kuò)散原則:人們所設(shè)計(jì)的密碼應(yīng)使得密鑰的每一位影響密文的許多位以防止對密 鑰進(jìn)行逐段破譯,因而明文的每一位也應(yīng)影響密文的許多位以便隱蔽明文的統(tǒng)計(jì) 特性。1.2.2針對實(shí)現(xiàn)的設(shè)計(jì)原則軟件實(shí)現(xiàn)的設(shè)計(jì)原則:使用子塊和簡單的運(yùn)算。密碼運(yùn)算在子塊上進(jìn)行,要 求子塊的長度能自然地適應(yīng)軟件編程。在軟件實(shí)現(xiàn)中,移位置換,是難于實(shí)現(xiàn)的, 因此應(yīng)盡量
11、避免使用它,子塊所進(jìn)行的密碼運(yùn)算應(yīng)該是一些易于軟件實(shí)現(xiàn)的。硬件實(shí)現(xiàn)的設(shè)計(jì)原則:加密和解密的相似性,即加密和解密過程應(yīng)該僅僅在 密鑰的使用方式不同,以便同樣的器件既可以加密乂可以解密。1.3分組密碼常見的設(shè)計(jì)方法和原理設(shè)計(jì)分組密碼算法的一個基本思想是:復(fù)雜函數(shù)可以通過簡單函數(shù)進(jìn)行若干 輪迭代而實(shí)現(xiàn),充分利用簡單輪函數(shù)和非線性運(yùn)算。最有效地實(shí)現(xiàn)分組密碼算法 基本設(shè)計(jì)思想的方法是乘積組合,即用簡單的子密碼系統(tǒng)通過乘積組合的方法構(gòu) 造復(fù)朵的密碼系統(tǒng)。主流的分組密碼都采用迭代加密的方式,整個加密過程曲初始置換ip(k, x), r輪的輪加密函數(shù)f (k, x)和末置換fp (k, x)組成。每一輪加密過
12、程和置換過 程由不同的子密鑰控制。一般的迭代加密算法結(jié)構(gòu)如圖2. 2所示。在圖1. 2中,當(dāng)子密鑰k固定時,ip (k, x) , f (k, x)和fp (k, x)為置換。ip, f,和fp的逆函數(shù)分別記作:ip",廠和fps滿足ip-1 (k, ip(k, x) ) =1 fp1 (k, fp(k, x)二i f_, (k, f(k, x) ) =1 式中,i為恒等變換。由密鑰擴(kuò)展算法生成的子密鑰記作s(k) (k0,k.,,咕), 則k()為初始置換的子密鑰,h (0<i<r+l)為第i輪的子密鑰,匕叩為末置換的子密 鑰。初始置換和末置換可以是依賴于子密鑰的置換,
13、也可以是不依賴于子密鑰的 置換。圖1.2 般的迭代分組密碼算法的結(jié)構(gòu)14分組密碼的工作模式分組密碼是實(shí)現(xiàn)加密數(shù)據(jù)的一個基本構(gòu)件。它有固定的分組長度,而實(shí)際應(yīng) 用屮需要加密的明文都長于這個分組長度。為了將分組密碼算法應(yīng)用于實(shí)際,人 們定義了很多工作模式。其中主要有四種常用的模式:電子密碼本、密文塊鏈接、 密文反饋和輸岀反饋。1.4. 1電子密碼本ecb電子密碼本是最簡單的操作模式,將輸入明文消息分成64位塊,然后單獨(dú)加 密每個塊。消息中的所有塊用相同密鑰加密。解密時將接收到的數(shù)據(jù)分成64位塊, 利用與加密相同的密鑰解密每個塊,得到相應(yīng)的明文塊。電子密碼木適合加密較短的數(shù)據(jù),對于長數(shù)據(jù),重復(fù)相同的
14、明文塊范帀大,密碼分析者可以用相同的明 文產(chǎn)生相同的密文的特點(diǎn)對數(shù)據(jù)結(jié)構(gòu)進(jìn)行分析,找到規(guī)律。1.4.2密文塊鏈接cbc密文塊鏈接模式保證即使輸入中的明文塊重復(fù),這些明文塊也會在輸出中得 到不同的密文。在密文塊鏈接模式中,前面塊的加密結(jié)果反饋到當(dāng)前塊的加密中, 用每一個塊修改下一個塊的加密。每塊密文不僅與相應(yīng)的當(dāng)前輸入明文塊相關(guān), 而月與前面的所有明文塊相關(guān)。解密是加密的逆過程。密文塊鏈接模式的加密過 程如圖13如示。初始化向量明文塊1xor密鑰>1加密xor加密明文塊mxor 加密密鑰 密文改2密文塊1圖13密文塊鏈接模式加密1.4.3密文反饋模式cfb密文反饋模式通過改變初始向量使相同
15、的明文加密得到不同的密文。設(shè)對明 文進(jìn)行s位分組的cfb中,加密函數(shù)的輸入是一個b位的移位寄存器,這個移位 寄存器被初始化為一個初始化向量iv。加密兩數(shù)處理結(jié)果的最左邊的s位與明文 的第一個分組mi進(jìn)行異或產(chǎn)生密文分組g。同時,移位寄存器的值向左移s位, 且用g替換寄存器的最右邊的s位。重復(fù)這個過程,直到完成加密。cfb的加/解 密過程如圖1. 4和圖1. 5所示。m2移位寄存器 1移位寄存器|左移s位)左移s位選擇s位xor圖1.4 cfb加密模式1.4.4輸出反饋模式ofb輸出反饋模式把分組加密算法作為密鑰流生成器使用,加密算法的輸出直接 放入反饋寄存器的同時與明文按位加產(chǎn)生密文。其加密模
16、式如圖1.6所示。15常見的分組加密算法1.5.1 desdes (數(shù)據(jù)加密算法,data encryption standard)算法是由tbm公司研制的, 并于1977年定為美國聯(lián)邦信息加密標(biāo)準(zhǔn),以64位為分組對數(shù)據(jù)加密,他的密鑰 長度是56位,每個第8位為奇偶校驗(yàn),加密解密用同一種算法。1.5.2 aes密碼學(xué)中的高級加密標(biāo)準(zhǔn)(advanced encryption standard, aes) , 乂稱 ri jndael加密法,為比利時密碼學(xué)家joan daemen和vincent ri jmen所設(shè)計(jì),結(jié) 合兩位作考的名字,以rijndael命名。該算法采用對稱分組密碼體制,密鑰長
17、度 的最少支持為128, 192,256,分組長度128位,算法應(yīng)易于齊種硬件和軟件實(shí)現(xiàn)。 這種算法是美國聯(lián)邦政府采用的區(qū)塊加密標(biāo)準(zhǔn),這個標(biāo)準(zhǔn)用來替代原先的des,己 經(jīng)被多方分析且廣為全世界所使用。1.5.3 idea 算法國際數(shù)據(jù)加密算法(idea, international data encryption algorithm)是 最強(qiáng)大的加密算法之一,出現(xiàn)在1990年,最初的版本出瑞士的來學(xué)嘉(xuejialai) 和james massey公布,成為推薦加密標(biāo)準(zhǔn)(pes)。1991年,為抗擊差分密碼攻 擊,他們對算法進(jìn)行了改進(jìn),增強(qiáng)了算法的強(qiáng)度,稱為改進(jìn)推薦加密標(biāo)準(zhǔn)(1pes), 并
18、于1992年改名為國際數(shù)據(jù)加密算法。1.5.4 rc6 算法rc6算法所示rsa公司提交給nist競選aes的一個候選算法,它是在rc5的 基礎(chǔ)上設(shè)計(jì)的。眾所周知,rc5是一個非常簡潔的算法,它的特點(diǎn)是大量使用數(shù)據(jù) 循環(huán)。rc6繼承trc5的優(yōu)點(diǎn),為了滿足nist的要求,即分組長度為128bit, rc6 使用了 4個寄存器,并使用32bit的整數(shù)模乘運(yùn)算,用于加強(qiáng)擴(kuò)散特性。rc6更精 確的表示是rc6-w/r/7, jt屮字長為vvbit,廠為加密輪數(shù),b為加密密鑰用字節(jié) 表示的長度。一般情況下令w二32, r=20, h=l(5 (24,32)。1.5.5 skipjack 算法1993年
19、4月16 h ,美國政府倡導(dǎo)聯(lián)邦政府和工業(yè)界使用心得具有密鑰托管功 能的聯(lián)邦加密標(biāo)準(zhǔn),該建議稱為托管加密標(biāo)準(zhǔn),又稱clipper建議。其忖的是為 用戶提供更好的安全通信方式,同時允許政府為了國家安全監(jiān)聽某些通信。這個 建議的核心是一個新的稱為clipper的防竄擾芯片,它是由美國國家安全局(nsa, national security agency)主持開發(fā)的硬件實(shí)現(xiàn)的密碼設(shè)備,clipper采用了稱 為skipjack的分組密碼算法。skipjack是一個蜜月長度為80bit,分組長度為64bit, 32輪的分組密碼。 該算法從1985年開始設(shè)計(jì),于1990年完成。1.5. 6 came i
20、lia 算法2000年ntt和mitsubi shi電子攻速聯(lián)合向nesste提交了 camel 1 ia算法,其 設(shè)計(jì)目標(biāo)類似aes的要求,即分組長度是128bit,并支持128bit、192bit及256bit3 種規(guī)模的密鑰長度;比三重des快而且至少和三重des 一樣安全。camellia是 nessie推薦的普通型分組密碼之一。在本論文屮,我們主要研究的是des算法和aes算法。第二章des加密算法2.1 des的產(chǎn)生背景數(shù)據(jù)加密標(biāo)準(zhǔn)(des, data encryption standard)的出現(xiàn)是現(xiàn)代密碼發(fā)展史 上的一個非常重要的事件,它是密碼學(xué)歷史上第一個廣泛應(yīng)用于商用數(shù)據(jù)保
21、密的 密碼算法,并開創(chuàng)了公開密碼算法的先例,極大地促進(jìn)了密碼學(xué)的發(fā)展。20世紀(jì)60年代后期,ibm成立了一個由horst feistel負(fù)責(zé)的計(jì)算機(jī)密碼學(xué) 研究項(xiàng)h組,并于1971年設(shè)計(jì)出lucifer算法。lucifer的分組長度為64位,密 鑰長度為128位。因?yàn)閘ucifer算法非常成功,由walter tuchman和carl meyer 負(fù)責(zé),在ibm公司的研究人員和nsa的技術(shù)顧問支持下,給出了 lucifer的一個 修訂版,他抗密碼分析能力更強(qiáng)而其密鑰長度減小為56位,更適合單片機(jī)環(huán)境使 用。1972年,美國國家標(biāo)準(zhǔn)局(nbs)擬定了一個旨在保護(hù)計(jì)算機(jī)和通信數(shù)據(jù)的計(jì) 劃。作為該計(jì)
22、劃的一部分,決定開發(fā)一個單獨(dú)的標(biāo)準(zhǔn)密碼算法。1973年開始,nbs 開始在全世界征求國家密碼標(biāo)準(zhǔn)方案。tbm將tuchman-meyer方案提交給nbs,它 是所有的應(yīng)征方案屮最好的一個,于是道1977年,mbs將它采納為數(shù)據(jù)加密標(biāo)準(zhǔn), 即 deso2. 2 des的基本結(jié)構(gòu)des是一個對稱密碼體制,加密和解密使用同一密鑰,有效密鑰長度為56位。 des是一個分組密碼算法,分組長度為64位,即對數(shù)據(jù)進(jìn)行加解密的單位是64 位,明文和密文的長度相同。另外,des加密與解密使用同一算法(在硬件與軟件 實(shí)現(xiàn)上,有利于加密單元的重用)。對于任何分組密碼算法,總有兩個輸入:明文和密鑰。des的明文分組長
23、度為 64位,而初始密鑰長度也為64位,但有效的密鑰為56位,因?yàn)榈?amp; 16, 24, 40, 4& 56 和64位是奇偶校驗(yàn)位。如表2. 1所示,藍(lán)色字體部分表示奇偶校驗(yàn)位。表2. 1放芥密鑰的每個第八位(藍(lán)色字體)12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364圖2. 1顯示了 des的基本結(jié)構(gòu),其屮右半部分給出了使用56位密鑰的過程, 64位初始密鑰經(jīng)過置換選擇1后變成56位,經(jīng)過循環(huán)
24、左移和置換選擇2后分別得 到16個,48位子密鑰ki (i二1,2, .,16)用作每一輪的迭代運(yùn)算。圖2. 1左半部分16次迭代運(yùn)算為des的加密過程,具主要有3個階段:(1)64位的明文經(jīng)過初始置換(ip)而被重新排列,并將其分成左右対個分 組l。和r。,各32位;(2)在密鑰的參與下,對左右兩個分組進(jìn)行16輪相同輪函數(shù)的迭代,每輪 迭代都有置換和代換,最后一輪迭代的輸出為64位,是左半部分和右半部分互換 產(chǎn)生的預(yù)輸出;(3)最后的預(yù)輸出再通過與初始置換(ip)互逆的逆初始置換(ip")產(chǎn)生 64位的密文。加密過程可簡化描述為:loro-ip (64 位明文)li-ri-ii=l
25、,2,,16ri-lih ef (rg, kj i=l,2,,16<64 位密文>-ip" (r16l16)des解密過程與加密過程類似,其實(shí)就是其逆過程:r4-ip (64 位密文)ri-i-li1=1,2,,16li-ri ©f (l, ki) i=l,2,,16<64 位明文>-ll (rolo)2. 3 des的初始置換和逆初始置換初始置換(ip)是在第一輪迭代z前進(jìn)行的,冃的是將原明文塊的位進(jìn)行換 位,其置換表是固定的,如圖2. 2所表示。逆初始置換(ipt是初始置換的逆置 換,如圖2. 4所示。數(shù)據(jù)塊的位經(jīng)過初始置換和逆初始置換后恢復(fù)到原
26、有的位置。初始置換(ip)表中的位序號表現(xiàn)出這樣的特征:整個64位按8行8列排列, 最右邊一列按2, 4, 6, & 1, 3, 5, 7的次序排列,往左邊各列的位序號依次為緊鄰其 右邊一列齊位序號加8。逆初始置換(ipj是初始置換的逆過程。相應(yīng)的,表中位序號表現(xiàn)出這樣的特 征:整個64位按8行8列排列,左邊第二列按8, 7,6, 5, 4, 3, 2, 1的次序排列,往 右邊隔一列的位序號依次為當(dāng)前列各位序號加8,認(rèn)為最右邊一列的隔列為最左邊 一列。64bit明文64bit密鑰64bit密文圖2. 1 des的基木結(jié)構(gòu)585042342618102605244362820124625
27、4463830221466456484032241685749413325179159514335271911361534537292113563554739312315740848165624643239747155523633138646145422623037545135321612936444125220603835343115119592734242105018582633141949175725圖2. 2初始置換ip圖2. 3逆初始置換11戶注意到初始置換是固定的,公開的函數(shù),因此這個初始置換以及逆初始置換 都沒有密碼意義。初始置換完成后,將得到的64位序列分成兩半,各32位,然
28、后,對這兩塊進(jìn)行16輪的迭代操作。2.4 des的f函數(shù)des的一輪迭代過程如圖2. 5所示。des的輪函數(shù)f由3個部分組成:擴(kuò)展置 換(又稱e盒)、非線性代換(又稱s盒)和線性置換(又稱p盒)。2. 4. 1擴(kuò)展置換擴(kuò)展置換又稱e盒,它將32位輸入擴(kuò)展為48位輸出。其擴(kuò)展方法為:將48 位輸出按8行6列的次序排列,排列時,將輸入位序號按32、1、2、31的次 序依次排列,但上一行的后兩位依次在下一行的起始位置得到重用,如第一行的 最后兩位的4、5同時出現(xiàn)在第二行的頭兩位(最后一行的下一行是第一行)。其 處理過程如圖2. 4所示。由于這個指環(huán)改變了位的次序,重復(fù)了某些位,故稱為擴(kuò)展置換。e盒產(chǎn)
29、生與 子密鑰相同長度的數(shù)據(jù)使得能進(jìn)行異或運(yùn)算,同時,擴(kuò)展后的數(shù)據(jù)在s盒的作用 下能進(jìn)行壓縮,實(shí)現(xiàn)了非線性變換。但是,e盒在des算法上的冃的不僅如此,由 于e盒輸入的1位影響2個s盒的輸入,所以輸出隊(duì)輸入的依賴性將傳播更快, 從而快速實(shí)現(xiàn)雪崩效應(yīng)。2. 4. 2代換盒代換盒乂稱作s盒,其功能是進(jìn)行非線性的代換。s盒是des屮唯一的非線性 部分,des的安全強(qiáng)度主要取決于s盒的安全強(qiáng)度。des的s盒是一個查表運(yùn)算,8個s盒分別對應(yīng)8個非線性的代換表,每個s 盒的輸入均為6位,輸岀為4位。這樣,經(jīng)過s盒的代換之后,e盒擴(kuò)展生成的 48位數(shù)據(jù)又重新被壓縮成32位數(shù)據(jù)。在查表前,將輸入的48微數(shù)據(jù)分成
30、8組, 每組6位,然后分別進(jìn)入8個s盒進(jìn)行運(yùn)算。8個s盒的代換表如表2. 2-2. 9所示。3212345456789891011121312131415161716171819202120212223242524252627282928293031321圖2.5 des的一輪迭代過程表2.2 s】盒m4131215h10 612 5 9 0 70157414213110612119 538411481362111512 97310501512 824917511314100613表2.3 s2盒1518146113 49721312051031347152814120110691150147
31、1110413 15812 69321513 8101315 4 2116 7120 514 910 0 91463155113127114281370934610285 14121115113649815301112 1251014711013 06 98741514 3115212表2. 5 st盒71314306 910128511124151381156150347212110149106901211713151314528 4315061011389 4 51112 7 214表2. 6 s5盒2124i7101168 5 3""1513014 91411 212
32、 4 71315 0 151039 8 64 21111013 7815 912 5 6301411 81271142163150 910453表2. 7 s&盒12 1 10159268013341475111015 427129561131401138914 155281237041011311643 212 9 51510111417 6 0 813表2. 8 s7盒4h21415 0 813 312 9 7 510 6113 011749110143 512 215 8 61 4 11 13 12 3 7 14 10 15 6 8 0 5 9 26111381410795015
33、142312表2. 9 s*盒132846151111093145012711513810 37412561101492711419121420610131535821147410813151290 356112. 4. 3置換運(yùn)算置換運(yùn)算(p盒)只是進(jìn)行簡單位置置換,即按圖2. 6所示的列表制定把-位 換成另一位,而不進(jìn)行擴(kuò)展和壓縮。p盒設(shè)計(jì)有如下特點(diǎn):(1)每個s盒的4位輸出影響下一輪6個不同的s盒,但是沒有2位影響同 一 s盒;(2)在第i輪s盒的4位輸出小,2位將影響i + 1輪屮間位,其余兩位將影 響兩端位;(3)如果一個s盒的4位輸出影響另一個s盒中間的1位,則后一個的輸出 位不會
34、影響前面一個s盒屮間位。1672021291228171152326518311028241432273919123062211425圖2. 6 p盒置換表2. 5 des的密鑰生成des最初的64位密鑰通過置換選擇pc-1 (表3. 0)得到有效的56位密鑰。這 56位密鑰分別為2個28位數(shù)據(jù)c。和doo每輪迭代屮,5和分別經(jīng)過一個由 表3. 2確定的1位或2位的循環(huán)左移,這些移位后的值作為下一輪的輸入,同時 也作為置換選擇pc-2 (表3.1)的輸入,通過pc-2產(chǎn)生一個48位的輸出,即為 一個子密鑰。表3.0置換選擇pc-114171124153281562110231912426816
35、7220132415231374755304051453348444939563453464250362932141711241532815621102319124268167220132415231374755304051453348444939563453464250362932表3. 2左移調(diào)度循環(huán)序號12 34 5 6 78 91011 1213 1415 16轉(zhuǎn)動比特?cái)?shù)11 22 2 2 22 122 22 22 1其中,每一輪唯一的密鑰位數(shù)不同,若輪數(shù)為1、2、9、16,只移一位,否則 移兩位。置換pc-2是一個壓縮置換,它將56位密鑰數(shù)據(jù)壓縮成48位的子密鑰。 壓縮方法是將c中的
36、第9、18、22、25位和i)中的7、9、15、26位刪去,同時, 將其余位置換位置次序,從而得到48位子密鑰。第三章aes加密算法3.1 aes的產(chǎn)生背景隨著計(jì)算能力的突飛猛進(jìn),已經(jīng)超期“服役”若干年的des算法終于顯得力 不從心,1999年,美國國家標(biāo)準(zhǔn)與技術(shù)研究所(nist)對des的安全強(qiáng)度進(jìn)行重 新評估并指出,des已經(jīng)不足以保證信息安全,因此決定撤銷相關(guān)標(biāo)準(zhǔn)。1997年, nist發(fā)起公開征集高級加密標(biāo)準(zhǔn)(aes)算法的活動,目的是為了確定一個安全性 能更好的分組密碼算法用于取代desoaes的基木要求是安全性能不低于三重des, 執(zhí)行性能比三重des塊。除此之外,nist特別提出
37、了高級加密標(biāo)準(zhǔn)必須是分組長 度為128位的對稱分組密碼,并能支持長度128位,192位,256位的密鑰。此外, 如果算法被選屮的話,在世界范圍內(nèi)它必須是可以免費(fèi)獲得的。經(jīng)過一輪海選之 后,1998年8月20 h, n1st公布了滿足耍求的15個aes算法草案。1999年3 月22日,nist公布了第一階段的分析和測試結(jié)果,并從15個算法屮選出了 5個 作為aes候選算法。2000年10月2日,nist宣布aes的最終評選結(jié)果,比利時 密碼學(xué)家joan daemen和vincent ri jmen提出的“ri jndael數(shù)據(jù)加密算法"最終 獲勝,修改的rijndael算法最終成為高級
38、加密標(biāo)準(zhǔn)aes°2001年11刀26 h,nist 正式公布高級加密標(biāo)準(zhǔn)aes,并于2002年5月26日正式生效。3. 2 aes的基本結(jié)構(gòu)在原始的rijndael算法中,分組長度和密鑰長度均能被獨(dú)立指定為128位, 192位或者256位。在高級加密標(biāo)準(zhǔn)規(guī)范中,分組長度只能是128位,密鑰的長度 可以使用三者中的任意一種。密鑰長度不同,則加密輪數(shù)不同,如表3.1所示。表3. 1 aes密鑰長度和加密輪數(shù)列表密鑰長度(32比特字)分組長度(32比特字)加密輪數(shù)aes-1284410aes-1926412aes-2568414本文中,所討論的密鑰長度為128位,aes的迭代輪數(shù)為10輪。
39、aes的處理單位是字節(jié),128位的輸入明文分組p和輸入密鑰k都被分成16 個字節(jié),分別記為p=poh-p15和k二kokykz 般的,明文分組用以字節(jié)為單位的 正方形矩陣描述,稱為狀態(tài)(state)舉證。在算法的每一輪中,狀態(tài)矩陣的內(nèi)容 不斷發(fā)生變化,最后的結(jié)果作為密文輸hi。該矩陣中字節(jié)的排序順序?yàn)閺纳系絝, 從左到右依次排列。類似的,128位密鑰也是用以字節(jié)為單位的矩陣表示,矩陣的每一列被稱為1 個32bit的字。通過密鑰編排程序該密鑰矩陣被擴(kuò)展成一個44個字組成的序列w 0, w 1 ,.w43,該序列的前四個元素w0, wl, w2, w3是原始密鑰,用于加 密運(yùn)算中的初始密鑰加;后4
40、0個字分別為10組,每組4個字(128bit)分別用 于10輪加密運(yùn)算中的輪密鑰加;aes結(jié)構(gòu)如圖3. 1所示,其加密的第一輪到第九輪的輪函數(shù)一樣,包括4個操 作:字節(jié)代換,行位移,列混合和輪密鑰加密。最后一輪迭代不執(zhí)行列混合。另 外,在第一輪迭代z前,先將明文和原始密鑰進(jìn)行一次加密操作。圖3. 1 aes的加密解密輸入128位數(shù)據(jù)/128位密文數(shù)據(jù)與擴(kuò)展密鑰的異或運(yùn)算與擴(kuò)展密鑰的異或運(yùn)算王s盒變換逆行變換行變換逆s盒變換*列變換與擴(kuò)展密鑰的異或運(yùn)算與擴(kuò)展密鑰的異或運(yùn)算逆列變換+ + >1s盒變換逆行變換行變換逆列變換與擴(kuò)展密鑰的異或與擴(kuò)展密鑰的異或與des不同的是,aes的解密過程和加
41、密過程并不一致。這是因?yàn)閍es并未使 用feistel結(jié)構(gòu),在每一輪操作時,對整個分組進(jìn)行處理,而不是只對一般分組 進(jìn)行處理。解密過程仍然為10輪,每一輪的操作都是加密操作的逆操作。由taes 的四個輪操作(字節(jié)代換,行位移,列混合和輪密鑰加)都是可逆的,因而,解 密操作的一輪就是順序執(zhí)行逆行位移,逆字節(jié)代換、輪密鑰加和列混合。同加密 操作類似,最后一輪不執(zhí)行逆列混合,在第1輪解密之前,要執(zhí)行1次輪密鑰加 操作。之所以加密和解密分別由輪密鑰開始和結(jié)束,是因?yàn)橹挥休喢荑€加階段使用 了密鑰。如果將其他操作用于算法的開始或者結(jié)束階段,在不知道密鑰的情況下 就能計(jì)算其逆,這不能增加算法的安全性。3.
42、3 aes加密3. 3.1字節(jié)代換字節(jié)代換操作:aes的字節(jié)代換可以簡化成一個簡單地查表操作。aes定義了 一個s盒(表3. 2)和一個逆s盒(表3.3) , s盒用于加密查表,逆s盒用于解 密查表,他們都是由16*16字節(jié)組成的矩陣,即矩陣共有256個元素,侮元素的 內(nèi)容是一個1個字節(jié)(8bit)的值,且每元素各不相同。表3. 2 aes的s盒0123456789abcdef0637c777bf26b6fc53001672bfed7ab761ca82c97dfa5947f0add4a2af9ca472co2b7fd9326363ff7cc34a5e5fl71d83115304c723c318
43、96059a071280e2eb27b275409832c1aib6e5aa0523bd6b329e32f84553di00ed20fcbl5b6acbbe394a4c58cf6doefaafb434d338545f9027f503c9fa8751a3408f929d38f5bcb6da2110fff3d28cdoc13ec5f974417c4a77e3d645d1973960814fdc222a908846eeb814de5e0bdbae0323a0a4906245cc2d3ac629195e479be7c8376d8dd54ea96c56f4ea657aae08cba78252e1ca6b
44、4c6e8dd74if4bbd8b8ad703eb5664803f60e613557b986clid9eeelf8981169d98e949bie87e9ce5528dff8cal890dbfe6426841992dofb054bb16狀態(tài)矩陣中的元素按照下面的方式映射成為一個新的字節(jié):把該字節(jié)的髙四 位作為行值,低四位作為列值。去除s盒或者逆s盒中對應(yīng)行列的元素作為輸出。字節(jié)代換逆操作:逆s盒的構(gòu)造如下:(1)初始化逆s盒,將第h1行n列的元素初始化為oxmn.(2)將逆s盒中的一個元素按位記為(如他儂角色色®。)。(3)將逆s盒屮的每個字節(jié)映射為它在有限域gf(28)中的逆。s盒
45、的設(shè)計(jì)非常精巧,能夠防止已有的各種密碼分析攻擊。rijndael的開發(fā) 者特別尋求在輸入為和輸出位z間兒乎沒有相關(guān)性的設(shè)計(jì),且輸出值不能通過利 用一個簡單地?cái)?shù)學(xué)函數(shù)變換輸入值所得到的。表3. 3 aes的逆s盒0123456789abcdef052096ad53036a538bf40a39e81f3d7fb17ce339829b3fff87348e4344c4dee9cb2547b9432a6c2233dee4c950b42fac34e3082eal6628d924b2765ba2496d8bdi25472f8f66486689816d4a45ccc5d65b69256c704850fdedb
46、9da5e154657a78d9d84690d8ab008cbcd30af7e45805b8b345067do2cie8fca3fof02clafbd0301138a6b83a9111114f67dcea97f2cfcef0b4e673996ac7422e7ad3585e2f937e81c75df6ea47fl1a71id29c5896fb7620eaa18beibbfc563e4bc6d279209adbcofe78cd5af4cifdda8338807c731bl1210592780ec5fd60517fa919b54a01)2de57a9f93c99cefeaoe03b4dae2af5b
47、0c8ebbb3c83539961f172b047eba77d626el6914635521oc7d3. 3. 2行移位行移位操作:這是一個簡單地做循環(huán)移位操作。當(dāng)密鑰長度為128bit時,狀 態(tài)矩陣的第0行左移0字節(jié),第一行左移1字節(jié),第二行左移2字節(jié),第三行左 移3字節(jié),這種操作使得列完全進(jìn)行了重排,即在移位后的每列屮,都包含有未 移位前每列的一個字節(jié)。行移位逆變換:行移位逆變換是將狀態(tài)矩陣的每一行執(zhí)行相反的位移操作, 例如aes-128中,狀態(tài)矩陣的第0行右移0字節(jié),第一行右移1字節(jié),第二行右 移2字節(jié),第三行右移3字節(jié)。行位移雖然簡單,但是相當(dāng)有用。由于s矩陣和算法的輸入輸出數(shù)據(jù)一樣,
48、 也是由4列所組成的矩陣,在加密過程屮,明文逐列被復(fù)制到s炬陣上,月.后面 的輪密鑰也是逐列應(yīng)用到s矩陣上的,因此,行位移將某個字節(jié)從一列移動到另 一列中,這個圖變換確保了某列中的4字節(jié)被擴(kuò)展到4個不同的列。輪密鑰也是 逐列應(yīng)用到s矩陣上的,因此,行移位就是將某個字節(jié)從一列移動到另一列中, 它的線性距離是4字節(jié)(1個字)的倍數(shù),同時這個轉(zhuǎn)換確保了某列屮的4字節(jié)被 擴(kuò)展到了4個不同的列。3. 3. 3列混合列混合變換時通過矩陣相乘實(shí)現(xiàn)的,經(jīng)行位移后的狀態(tài)矩陣與固定的矩陣相乘,得到混淆后的狀態(tài)矩陣,如式(1)所示。02()1()1030302()1010103020103(1)原來的 sq c,
49、si c, s2 c, s3 c 分別變成 $ 0 c, s c, s 2,c,s 3,c,其中$ 0,c =( 02 x)(03 j© 52c $3 c=孤(02x仏)(03x®丿仏$ 2,廣 仏昭(02 x %)(03 x s)s3.c 二(03 x)幾仏(02 x s3c)這里為按位異或運(yùn)算,其屮的乘法x按照下而介紹的模乘同余規(guī)則進(jìn)行計(jì) 算。列變換中要用到的模乘同余規(guī)則和我們一般用到的乘法有些不同,由丁每一 個元素都是一個字節(jié),于是可把這個字節(jié)看成一個形式上的七次多項(xiàng)式,即將 b-jb6b5b4b3b3bb(視 為z?7x7 + h6x6 + b5x5 + b4x4 + b3x3 + b2x2 +, 10110012=f/9i6可以被看成是x7+x6+x4+? + l o列變換希望把一個字節(jié)變換 為一個新的字節(jié),所以需要把兩個形式上的七次多項(xiàng)式的乘法結(jié)果變?yōu)橐粋€新的 形式上的七次多項(xiàng)式,然后才能將其恢復(fù)為一個字節(jié)的長度。這里采用模一個八次
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 重點(diǎn)監(jiān)測藥物管理辦法
- 2025山東省鹽業(yè)集團(tuán)菏澤有限公司招聘6人筆試歷年參考題庫附帶答案詳解
- 2025年中國外轉(zhuǎn)子空調(diào)風(fēng)機(jī)行業(yè)市場發(fā)展前景及發(fā)展趨勢與投資戰(zhàn)略研究報告
- 2025年中國食用菌行業(yè)市場發(fā)展監(jiān)測及投資策略研究報告
- 2025年中國智慧司法行業(yè)市場運(yùn)行現(xiàn)狀及投資規(guī)劃建議報告
- 2023-2028年中國香豬養(yǎng)殖行業(yè)市場發(fā)展監(jiān)測及投資潛力預(yù)測報告
- 2025年單克隆抗體診斷試劑項(xiàng)目申請報告
- 2025年離心機(jī)項(xiàng)目提案報告模板
- 2025年中國真空電子器件行業(yè)市場全景分析及投資前景展望報告
- 2025年鎢粉系列項(xiàng)目規(guī)劃申請報告模板
- 收購公司股權(quán)項(xiàng)目可行性研究報告(完整版)
- 《農(nóng)民工參與民族地區(qū)新農(nóng)村建設(shè)的模式研究》
- 《倉儲基本知識》課件
- 不動產(chǎn)登記知識課件
- 建筑工程鋼結(jié)構(gòu)部分施工質(zhì)量驗(yàn)收資料
- 2024年新高一英語初升高銜接《語法名詞短語、形容詞短語、副詞短語》含答案解析
- 曲臂車高空作業(yè)車施工方案1
- 3外架專項(xiàng)施工方案
- 七年級語文上冊語文必背【古詩詞與文言文】
- 電梯日管控、周排查、月調(diào)度內(nèi)容表格
- 體育賽事組織策劃及執(zhí)行方案手冊
評論
0/150
提交評論