新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 用AVR匯編語言實現AES及其優化

        用AVR匯編語言實現AES及其優化

        作者: 時間:2012-03-28 來源:網絡 收藏

        25.gif

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

        ④ 密鑰加層運算(addround)是將圈密鑰狀態中的對應字節按位“異或”。

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

        1.2 輪變化

        對不同的分組長度,其對應的輪變化次數是不同的,如表1所列。

        表1 類型與基參數的關系
        26.gif

        1.3 密鑰擴展

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

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

          ② S盒變換(subword)——對一個4字節進行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的倍數,則W[i]=W[i-Nk]Subword(Rotword(W[[i-1]]))Rcon[i/Nk]。

        程序執行的時候,主要調用以上幾個子程序,具體如下:

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



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 静乐县| 工布江达县| 汝南县| 合作市| 崇仁县| 西盟| 晋州市| 四会市| 德钦县| 新闻| 遂昌县| 青岛市| 麦盖提县| 江华| 宁晋县| 西宁市| 疏附县| 永靖县| 民勤县| 乌兰县| 开江县| 龙口市| 乌拉特中旗| 潮安县| 靖安县| 城市| 灵台县| 张家港市| 锡林郭勒盟| 深水埗区| 萨嘎县| 侯马市| 蕉岭县| 南涧| 广水市| 西吉县| 房山区| 杨浦区| 南靖县| 吉安县| 英德市|