網(wǎng)絡安全與信息加密技術-第五章_第1頁
網(wǎng)絡安全與信息加密技術-第五章_第2頁
網(wǎng)絡安全與信息加密技術-第五章_第3頁
網(wǎng)絡安全與信息加密技術-第五章_第4頁
網(wǎng)絡安全與信息加密技術-第五章_第5頁
已閱讀5頁,還剩44頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、美國國家標準研究技術所(NIST)在2001年發(fā)布了高級加密標準(AES)。qAES是一個對稱分組密碼算法,旨在取代是一個對稱分組密碼算法,旨在取代DES成為廣泛使用成為廣泛使用的標準。由于對稱密碼的結構都很復雜,因此本章介紹簡的標準。由于對稱密碼的結構都很復雜,因此本章介紹簡化版的化版的AES。5.1 有限域算術5.2 AES的結構1. 總體結構:左圖展示了AES加密過程的總體結構。明文分組的長度為128位即16字節(jié),密鑰長度可以為16字節(jié),24字節(jié)或32字節(jié)(128位,192位或256位)。根據(jù)密鑰的長度,算法被稱為AES-128,AES-192,AES-256。q同樣地,密鑰也被描述為字

2、節(jié)的方陣。這個密鑰接著被擴展為同樣地,密鑰也被描述為字節(jié)的方陣。這個密鑰接著被擴展為密鑰字陣列。下圖展示了密鑰字陣列。下圖展示了128位密鑰的擴展。每個字是位密鑰的擴展。每個字是4個字個字節(jié),節(jié),128位的密鑰最終擴展為位的密鑰最終擴展為44字的序列。注意在矩陣中字節(jié)字的序列。注意在矩陣中字節(jié)是按照列進行排序的。所以,加密算法的是按照列進行排序的。所以,加密算法的128位的密鑰最終擴位的密鑰最終擴展為展為44字的序列。注意在矩陣中字節(jié)是按照列進行排序的。所字的序列。注意在矩陣中字節(jié)是按照列進行排序的。所以加密算法的以加密算法的128位明文分組輸入的前四個字節(jié)被按順序放在位明文分組輸入的前四個字

3、節(jié)被按順序放在了了in矩陣的第一列,接著的四個字節(jié)放在了第二列,等等。相矩陣的第一列,接著的四個字節(jié)放在了第二列,等等。相似的,擴展密鑰的前四個字節(jié)似的,擴展密鑰的前四個字節(jié)(形成一個字形成一個字)被放在被放在w矩陣的第矩陣的第一列。一列。2. 詳細結構:q右圖指明了每右圖指明了每一輪的變換順一輪的變換順序,并展示了序,并展示了相應的解密函相應的解密函數(shù)。數(shù)。q圖圖中加密的過中加密的過程是沿著頁面程是沿著頁面向下,而解密向下,而解密過程是沿著頁過程是沿著頁面向上的。面向上的。僅僅在輪密鑰加階段中使用密鑰:q由于這個原因,該算法以輪密鑰加開始,以輪密鑰加結由于這個原因,該算法以輪密鑰加開始,以輪

4、密鑰加結束。如果將其他不需要密鑰的運算用于算法開始或結束束。如果將其他不需要密鑰的運算用于算法開始或結束的階段,在不知道密鑰的情況下就能計算其逆,故不能的階段,在不知道密鑰的情況下就能計算其逆,故不能增加算法的安全性。增加算法的安全性。輪密鑰加實質上是一種Vernam密碼形式,就其本身是不難破譯的。而另外三個階段一起提供了混淆、擴散以及非線性功能:q因這些階段沒有涉及密鑰,故就他們自身而言,并未提因這些階段沒有涉及密鑰,故就他們自身而言,并未提供算法的安全性。我們可把該算法視為一個分組的供算法的安全性。我們可把該算法視為一個分組的XOR加密加密(輪密鑰加輪密鑰加),接著對這個分組的混淆,接著對

5、這個分組的混淆(其他的其他的3個階段個階段),再接著又是,再接著又是XOR加密,如此交替執(zhí)行。這加密,如此交替執(zhí)行。這種方式非常有效且非常安全。種方式非常有效且非常安全。加密和解密過程的最后一輪均只包含3個階段:q這是由這是由AES的特定結構所決定的,而且也是密碼算法可的特定結構所決定的,而且也是密碼算法可逆性所要求的。逆性所要求的。5.3 AES的變換函數(shù)字節(jié)代替變換AES的的S盒盒q例如例如,十六進制,十六進制95所對應的所對應的S盒的行值為盒的行值為9,列值為,列值為5,S盒中在此位置的值是盒中在此位置的值是2A,相應的,相應的,95被映射成為被映射成為2A一一個字節(jié)代替變換的例子個字節(jié)

6、代替變換的例子q左圖為左圖為S盒盒y行行x列處的字節(jié)計列處的字節(jié)計算算q例如:考慮輸入值為例如:考慮輸入值為95的的情況。情況。q逆字節(jié)代替變換利用了逆逆字節(jié)代替變換利用了逆S盒。例如,輸入盒。例如,輸入2A到逆到逆S盒盒中,輸出為中,輸出為95,輸入,輸入95到到S盒中,輸出為盒中,輸出為2A。AES的逆的逆S盒盒qS盒與逆盒與逆S盒盒的結構。的結構。2. 行移位變換:正向和逆向變換:q下圖描述了正向行移位變換。狀態(tài)的第一行保持不變。下圖描述了正向行移位變換。狀態(tài)的第一行保持不變。把狀態(tài)的第二行循環(huán)左移一個字節(jié),狀態(tài)的第三行循把狀態(tài)的第二行循環(huán)左移一個字節(jié),狀態(tài)的第三行循環(huán)左移兩個字節(jié),狀態(tài)

7、的第四行循環(huán)左移三個字節(jié)。環(huán)左移兩個字節(jié),狀態(tài)的第四行循環(huán)左移三個字節(jié)。q行移位變換的一個例子如下所述:行移位變換的一個例子如下所述:q逆向行移位變換將狀態(tài)中的后三行執(zhí)行相反方向的移逆向行移位變換將狀態(tài)中的后三行執(zhí)行相反方向的移位操作,如第二行向右循環(huán)一個字節(jié),其他行類似。位操作,如第二行向右循環(huán)一個字節(jié),其他行類似?;驹恚簈行移位變換要比它看起來有用得多。這是因為狀態(tài)和行移位變換要比它看起來有用得多。這是因為狀態(tài)和密碼算法的輸入輸出數(shù)據(jù)一樣,是一個由四類字節(jié)組密碼算法的輸入輸出數(shù)據(jù)一樣,是一個由四類字節(jié)組成的數(shù)組,其中每一列由成的數(shù)組,其中每一列由4個字節(jié)組成。因此在加密個字節(jié)組成。因此

8、在加密過程中,明文的前過程中,明文的前4個字節(jié)直接被復制到狀態(tài)的第一個字節(jié)直接被復制到狀態(tài)的第一列中,接著的四個字節(jié)被復制到狀態(tài)的第二列中,等列中,接著的四個字節(jié)被復制到狀態(tài)的第二列中,等等。等。q行行移位就是將某個字節(jié)從一列移到另一列中,它的線移位就是將某個字節(jié)從一列移到另一列中,它的線性距離是性距離是4個字節(jié)的倍數(shù)。同時請注意這個轉換確保個字節(jié)的倍數(shù)。同時請注意這個轉換確保了某列中的了某列中的4字節(jié)被擴展到字節(jié)被擴展到4個不同的列。個不同的列。列混淆變換列混淆變換基本原理:q前邊公式中矩陣的系數(shù)是基于碼字間有最大距離的線前邊公式中矩陣的系數(shù)是基于碼字間有最大距離的線性編碼,這使得在每列的所

9、有字節(jié)有良好的混淆性。性編碼,這使得在每列的所有字節(jié)有良好的混淆性。列混淆變換和行移位變換使得在經(jīng)過幾輪變換后,所列混淆變換和行移位變換使得在經(jīng)過幾輪變換后,所有的輸出位均與所有的輸入位相關。有的輸出位均與所有的輸入位相關。q列列混淆變換的系數(shù),即混淆變換的系數(shù),即01,02,03是基于是基于算法實現(xiàn)角度考慮的。正如上文所述,這些系數(shù)的乘算法實現(xiàn)角度考慮的。正如上文所述,這些系數(shù)的乘法涉及至多一次法涉及至多一次移位移位和一次和一次XOR。逆向列混淆變換中。逆向列混淆變換中的系數(shù)更加難以實現(xiàn)。然而加密被視為比解密更重要,的系數(shù)更加難以實現(xiàn)。然而加密被視為比解密更重要,原因如下:原因如下: 對于對

10、于CFB和和OFB密碼模式密碼模式(見第見第6章章),僅使用加密算,僅使用加密算法。法。 和任何其他的分組密碼一樣,和任何其他的分組密碼一樣,AES能用于構造消息驗能用于構造消息驗證碼,這僅僅用到了加密過程。證碼,這僅僅用到了加密過程。3. 輪密鑰加變換:正向和逆向變換:q在輪密鑰加變換中,在輪密鑰加變換中,128位的狀態(tài)按位與位的狀態(tài)按位與128位的輪位的輪密鑰密鑰XOR。如下圖所示,該操作可以視為狀態(tài)的一列。如下圖所示,該操作可以視為狀態(tài)的一列中的中的4個字節(jié)與輪密鑰的一個字個字節(jié)與輪密鑰的一個字(4個字節(jié)個字節(jié))進行列間的進行列間的操作;我們也能將其視為字節(jié)級別的操作。下圖為輪操作;我們

11、也能將其視為字節(jié)級別的操作。下圖為輪密鑰加的一個例子:密鑰加的一個例子:q例子中第一個矩陣是狀態(tài),第二個矩陣是輪密鑰。例子中第一個矩陣是狀態(tài),第二個矩陣是輪密鑰。q逆向輪密鑰加變換是和正向輪密鑰加變換一樣的,因逆向輪密鑰加變換是和正向輪密鑰加變換一樣的,因為異或操作是其本身的逆。為異或操作是其本身的逆。基本原理:q輪密鑰加變換非常簡單,卻能影響狀態(tài)中的每一位。輪密鑰加變換非常簡單,卻能影響狀態(tài)中的每一位。密鑰擴展的復雜性和密鑰擴展的復雜性和AES的其他階段運算的復雜性,的其他階段運算的復雜性,確保了該算法的安全性。確保了該算法的安全性。q下圖是描述單輪下圖是描述單輪AES的另一種視角,強調各變

12、換的機的另一種視角,強調各變換的機制和輸入。制和輸入。5.4 AES的密鑰擴展1. 密鑰擴展算法:密鑰擴展算法:qAES密鑰擴展算法的輸入值是密鑰擴展算法的輸入值是4個字個字(16字節(jié)字節(jié)),輸出值是一,輸出值是一個個44個字組成個字組成(176字節(jié)字節(jié))的一個線性數(shù)組。這足以為初始輪的一個線性數(shù)組。這足以為初始輪密鑰加階段和算法中其他密鑰加階段和算法中其他10輪中的每一輪提供輪中的每一輪提供4字的輪密鑰。字的輪密鑰。下面用偽代碼描述了這個擴展。下面用偽代碼描述了這個擴展。q輸入密鑰直接被復制到擴展密鑰數(shù)組的前輸入密鑰直接被復制到擴展密鑰數(shù)組的前4個字。然個字。然后每次用后每次用4個字填充擴展

13、密鑰數(shù)組余下的部分。個字填充擴展密鑰數(shù)組余下的部分。q在擴展密鑰數(shù)組中,每一個新增的字在擴展密鑰數(shù)組中,每一個新增的字wi的值依賴于的值依賴于wi-1和和wi-4。q在四種情形中,三種使用了異或。對在四種情形中,三種使用了異或。對w數(shù)組中下標為數(shù)組中下標為4的倍數(shù)的元素采用了更復雜的函數(shù)來計算。下圖闡的倍數(shù)的元素采用了更復雜的函數(shù)來計算。下圖闡明了如何計算擴展密鑰,其中使用符號明了如何計算擴展密鑰,其中使用符號g來表示這個來表示這個復雜函數(shù)。函數(shù)復雜函數(shù)。函數(shù)g由下述的子功能組成。由下述的子功能組成。j j1 12 23 34 45 56 67 78 89 91010RCj0102040810

14、2040801B36q例如,假設第例如,假設第8輪的輪密鑰為:輪的輪密鑰為:qEA D2 73 21 B5 8D BA D2 31 2B F5 60 7F 8D 29 2Fq那么第那么第9輪的輪密鑰的前輪的輪密鑰的前4個字節(jié)個字節(jié)(第一列第一列)能按如下的能按如下的方式計算:方式計算:i(10i(10進制進制) )TempTemp字循環(huán)后字循環(huán)后字代替后字代替后Rcon(9)Rcon(9)與與RconRcon進進行行XORXOR后后Wi-4Wi-4367F8D292F8D292F7F5DA515D21B00000046A515D2EAD27321 AC7766F3基本原理:q開發(fā)者設計了密鑰擴展算法來防止已有的密碼分析攻開發(fā)者設計了密鑰擴展算法來防止已有的密碼分析攻擊。使用與輪相關的輪常量是為了防止不同輪的輪密擊。使用與輪相關的輪常量是為了防止不同輪的輪密鑰產(chǎn)生方式上的對稱性或相似性。參考文獻使用的標鑰產(chǎn)生方式上的對稱性或相似性。參考文獻使用的標準如下:準如下:q知道密鑰或輪密鑰的部分位不能計算出輪密鑰的其他知道密鑰或輪密鑰的部分位不能計算出輪密鑰的其他位。位。q它是一個可逆的變換它是一個可逆的變換即知道擴展密鑰中的任何連續(xù)即知道擴展密鑰中的任何連續(xù)Nk個字能重新產(chǎn)生整個擴展秘鑰

溫馨提示

  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論