<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 用AVR匯編語言實現(xiàn)AES及其優(yōu)化

          用AVR匯編語言實現(xiàn)AES及其優(yōu)化

          作者: 時間:2012-03-28 來源:網(wǎng)絡(luò) 收藏

          25.gif

          對于逆變化,其矩陣C要改變成相應(yīng)的D,即b(x)=d(x)*a(x)。

          ④ 密鑰加層運算(addround)是將圈密鑰狀態(tài)中的對應(yīng)字節(jié)按位“異或”。

          ⑤ 根據(jù)線性變化的性質(zhì)[1],解密運算是加密變化的逆變化。這里不再詳細敘述。

          1.2 輪變化

          對不同的分組長度,其對應(yīng)的輪變化次數(shù)是不同的,如表1所列。

          表1 類型與基參數(shù)的關(guān)系
          26.gif

          1.3 密鑰擴展

          算法利用外部輸入密鑰K(密鑰串的字數(shù)為Nk),通過密鑰的擴展程序得到共計4(Nr+1)字的擴展密鑰。它涉及如下三個模塊:

           ?、?位置變換(rotword)——把一個4字節(jié)的序列[A,B,C,D]變化成[B,C,D,A];

           ?、?S盒變換(subword)——對一個4字節(jié)進行S盒代替;

            ③ 變換Rcon[i]——Rcon[i]表示32位比特字[xi-1,00,00,00]。這里的x是(02),如
          Rcon[1]=[01000000];Rcon[2]=[02000000];Rcon[3]=[04000000]……

          擴展密鑰的生成:擴展密鑰的前Nk個字就是外部密鑰K;以后的字W[[i]]等于它前一個字W[[i-1]]與前第Nk個字W[[i-Nk]]的“異或”,即W[[i]]=W[[i-1]]W[[i- Nk]]。但是若i為Nk的倍數(shù),則W[i]=W[i-Nk]Subword(Rotword(W[[i-1]]))Rcon[i/Nk]。

          程序執(zhí)行的時候,主要調(diào)用以上幾個子程序,具體如下:

            Keyexpansion:
              rcall rotwoed
              rcall subword
              rcall Rcon
              …
              的加密與解密流程如圖1所示。



          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();