




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、AES算法及實現AES背景AES是美國國家標準技術研究所NIST旨在取代DES的新一代的加密標準。NIST對AES候選算法基本要求是:對稱分組密碼體制;密鑰長度支持128,192,256位;明文分組長度128位;算法應易于各種硬件和軟件實現。1998年NIST開始AES第一輪征集、分析、測試、共產生了15個候選算法。1999年8月NIST公布了五種算法(MARS,RC6,Rijindael,Serpent,Twofish)成為候選算法。最后Rijndarl,這個由比利時人設計的算法與其它候選算法在成為高級加密標準(AES)的競爭中取得成功,于2000年10月被NIST宣布成為取代DES的新一代
2、的數據加密標準即AES。盡管人們對AES還有不同的看法,但總體來說Rijndae1作為新一代的數據加密標準匯聚了強安全性、高性能、高效率、易用和靈活等優(yōu)點。AES設計有三個密鑰長度:128,192,256比特,相對而言,AES的128比特密鑰比DES的56比特密鑰強1021倍。AES加密、解密算法原理概述對稱密碼算法根據對明文消息加密方式不同科分為兩大類,即分組密碼和流密碼。分組密碼將消息分為固定長度的分組,輸出的密文分組通常與輸入的明文分組長度相同。AES算法屬于分組密碼算法,它的輸入分組、輸出分組以及K為128,192,或256比特。用Nk=4,6,8代表密鑰串的字數(1字=32比特)用N
3、r表示對一個數據分組加密的論數,每一輪讀需要一個和輸入分組具有相同長度(128比特)的擴展密鑰Ke的參與。由于外部輸入的加密密鑰K長度有限,所以在AES中要用一個密鑰擴展程序把外部密鑰K在擴展成更長的比特串,以生成各輪的加密密鑰。2.1,密鑰密鑰(Key)是密碼算法中參與運算的數值(或者數值集)。對報文進行加密,我們需要一個加密算法、一個加密密鑰以及明文,并由此產生密文。對報文進行解密,我們需要一個解密算法、一個解密密鑰以及密文,并由此復原原始的明文。2.2加密變換AES的加密和解密框圖如圖1所示。(1)加密變換設X施AES的128比特明文輸入,Y是128比特的密文輸出,則AES的密文Y可以用
4、下面的復合變換表示:Y=Ak,RSAkCRSAk,CRS釦(X)k(r+1)krk(r1)k1其中“”表示復合運算。這里Ak1表示對X的一個變換Ak.(X)=XKI(KI為第i輪的k1ki子密鑰,為比特串的異或運算)。S:S盒置換。即對每一個字節(jié)用S-Box做一個置換。S-Box是一個給定的轉換表。R:行置換。C:列置換。S(x)=a(x)它S(X)020101L3030101020301010203()10102S(kcg一sy,c這里區(qū)是特殊的乘法運算,將在下面仔細介紹。與擴展密鑰的異城運翼Egggggg與擴展密鑰的異城運翼TTZLsLZZs盒蟲換I疔李換一與擴展密詁的異闞圖i解密變換解密
5、變換是加密變換的逆轉換。3,AES加密/解密算法的實現31分組加密表1是三種不同類型的AES加密密鑰組大小與相應的加密輪數對照表。加密開始時,輸入分組的各字節(jié)按表2的方式裝入一個矩陣State中。如輸入ACBDEFGHIJKLMONE則輸入塊影射到如表2的狀態(tài)矩陣State中。AES類型密鑰長度分組大小加密輪數AEIMAES-1284字節(jié)4字10BFJOAES1926字節(jié)4字12CGKNAES2568字節(jié)4字14DHLE表1表2加密過程主程序由下面的偽代碼描述。其中子程序Subytes(),ShiftRows(),MixColumms()和AddRounKey(),密鑰擴展程序將在下面介紹。*
6、(Nr+Ip/SceScc.3.1.4/SeeScc.3.JI/SecSccJAJ/SeeSec.B.lJCipheiui4beginbles(ate4v4staiein;AddRtuniiKeisaieTutoFToundi=:1s(epltorSubBylcstateiShiftRowistate)XlixColumntsitiLe5AddRoundKcjisU肚M+round*4)cEidtorSubBjte.state)ShiHRow.state)AddRoundKcuae.w+Nr*4)OU(=S(UC3.2S盒變換(Subyte)對輸入矩陣的任何一個元素A做如下變換SA:一個元素A
7、從存儲角度看都是一個八位的二進制數。算出前四位所代表的十六進制數TOC o 1-5 h zx和后四位所代表的十六進制數y。如A=11010100時x=c,y=4從AES算法給定的S-Box(16行16列其中每個元素為一個字節(jié)具體的S-Box略)中找出SA=Sx,刃的值。如A=11010100時,SA=Sx,y=Sc,4=1c=00011101。或直接通過下面的公式將A=b7b6b5b4b3b2b1b0變?yōu)镾A=b7b6b5b4b3b2b,b0b=b7654321076543210i=bib(i+4嚴d8b(i+5)mod8b(i+6嚴d8b(i+6嚴d8Ci這里c=(c0,c1,c2,c3,c
8、4,c5,c6,c7)=(0,1,1,0,0,0,1,1)。3.12行變換(ShiftRows)1A2A3A4U2B3H4IJIC3L4C1L21MDI1)2m在行變換中,中間狀態(tài)矩陣State的第一行不變;第二至四行做如下變換,即將表3的狀態(tài)矩陣變?yōu)楸硭牡臓顟B(tài)矩陣。A1A2A3A4BJB2B3B4CIC2C3C4:1)21D3IML.變換為3.3列變換列變換是堆中間狀態(tài)矩陣State逐列進行變換,其變換如下的矩陣運算:02()30()203010203經過上面的運算,原來的一列就被替換成下面的式子所表達的新列S(0,c)=(02XS(0sc)(03)XS(Uc)S(2,c)S(3tc)S(b
9、c)J=S(0,c)0(02XS(l,c)(03XS(2,c)QS(3,c)S(2,c)-S(0,c)S(l,c)(02)XS(2f)(03)XS(3曲)S(3?c);=(03XS(0,c)S(l,c)QS(2tc)(02XS(3tc)這里的為按位異或運算,其中的乘法X按照下面介紹的模乘同余規(guī)則進行計算列變換中藥用到的模乘同余規(guī)則和我們一般用到的乘法有些不同,由于每一個元素都是一個字節(jié)于是可以把字節(jié)看成一個形式上的七次多項式,即將bbbbbbbb視為bX?765432107+bX6+bX5+bX4+bX3+bX2+bX+b女如11011001=d9可以被看成是X7+X6+X+X3+I.列變換6
10、5432102164希望把一個字節(jié)變?yōu)橐粋€新的字節(jié),所以需要把兩個形式上的的七次多項的乘法結果變?yōu)橐粋€新形式上去七次多項式,然后才能將其恢復為一個字節(jié)的長度。這里采用模一個八次不可約多項式的同余乘法,即將兩七次多項式的乘法結果除以這個八次不可約多項式再取其余式。在AES中這個八次不可約多項式為m(X)=X8+X4+X3+X+1。3.4與擴展密鑰的異或運算(AddRoundKey)擴展密鑰只參與了這一個變換。根據加密的輪數用相應的擴展密鑰的四個數據項和中間狀態(tài)矩陣上的列進行按位異或。S(0,c)r,S(l.c3(2,c);二|E(0,c).S(Lc)Q(2&).S(35c)XORW(roundX
11、nb+c)3.5密鑰擴展程序KeyExpansionAES算法利用外部輸入密鑰K(密鑰串的字數為Nk)通過密鑰擴展程序得到共4(Nr+1)字的擴展密鑰w4X(Nr+1)涉及如下三個模塊;位置變換Rot(Word)把一個四個字節(jié)的序列a0,al,a2,a3左移一個字節(jié)變?yōu)閍1,a2,a3,a0。SubWord,對一個四字節(jié)的輸入字a0,a1,a2,a3的每一個字節(jié)進行S盒變換,然后作為輸出見3.1.1變換Rcon.Rconi表示32比特字符串幻-1,00,00,00。這里X=(02),卅】是X=(02)的(i-1)次幕的十六進制表示。(4)擴展密鑰生成。擴展的前Nk個字就是外部密鑰K;以后的字W
12、i等于它前一個字kWi-1與前第Nk個字Wi-Nk的異或,即Wi-lXORwi-Nk。但是若i為Nk的倍數,則Wi=Wi-NkXORSubWord(RotWord(wi-1)XORRconi/Nk4對文件加密/解密在完成DES分組加密算法實現的基礎上,現在利用密文分組鏈接方式將其用于對文件的加密/解密。程序操作步驟如下:根據文件處理方式選擇模塊,選擇對文件加密、對文件解密或是退出程序輸入K的長度(128比特、192比特、256比特)和密鑰。用密鑰擴展程序對密鑰加以擴展。128比特192比特256比特密鑰分別對應KeyExpansion128(key),KeyExpansion192(key),KeyExpansion256(key),分另U生成72byts,204bytes,236bytes的擴展密鑰。創(chuàng)建加密/解密文件。文件都是以文本的格式存儲的。從等待加密/解密文件取出16個字節(jié)。若是未取得16個字節(jié)文件就結束,則在結束處標上文件結束符。把取出的數據放入中間變量(STATE)中。根據密鑰的長度對STATE中的數據進行加密/
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- PROTAC-BTK-Degrader-12-生命科學試劑-MCE
- JNK-1-IN-5-生命科學試劑-MCE
- DMANI-生命科學試劑-MCE
- b-Cortolone-生命科學試劑-MCE
- 網頁設計新手入門作業(yè)指導書
- 三農電子商務物流指南
- 現代通信技術網絡安全問題探究
- 產品經理日常工作實戰(zhàn)手冊
- 運輸延誤乘客損失補償規(guī)定
- 2024年江蘇省建筑安全員B證(項目經理)考試題庫
- 2025年全國國家版圖知識競賽題庫及答案(中小學組)
- 《紅巖》中考試題(截至2024年)
- 2025年合肥職業(yè)技術學院單招職業(yè)適應性測試題庫完整版
- 2025年黑龍江旅游職業(yè)技術學院單招職業(yè)傾向性測試題庫匯編
- 2025年湖南城建職業(yè)技術學院單招職業(yè)技能測試題庫新版
- 國家基本藥物臨床應用指南
- 2025春-新版一年級語文下冊生字表(200個)
- 企業(yè)級軟件開發(fā)作業(yè)指導書
- 2025年全國幼兒園教師資格證考試教育理論知識押題試題庫及答案(共九套)
- 人教版(2024)六年級全一冊 第16課 智能種植初探秘
- 新能源發(fā)電技術 課件 第一章-新能源發(fā)電概述
評論
0/150
提交評論