菜单
  

     图3.1 AES算法轮数
    3.2.2 轮函数组成
    加密算法中的轮函数由四个面向字节的变换组成:
    1、字节替代ByteSubs():将每个字节按查表方式替换为16*16字节大小的S盒子中的值。例如,值为A1h的字节将被置换为S盒中第A行、第1列的值,即为32h。
    2、移行ShiftRows():对状态数组的每一行进行循环左移操作,循环左移的为数取决于行号。
    3、混列MixColumns(): 将状态逐列进行处理,与固定多项式a(x)进行模x^4+1乘。
    4、加轮密钥AddRoundKey():将状态中的每个四字节字与轮密钥 进行异或运算。

    3.2.3 密钥扩展
    在进行加密变换的时候,需要将状态与轮密钥进行多轮的按位异或,加密操作共需要Nr+1个轮密钥。
    获得扩展密钥的伪代码如下[9]:
        KeyExpansion(byte key[4*Nk], word w[Nb*(Nr+1)], Nk)
        Begin
            word temp;
            i = 0;
            while (i < Nk)
                w[i] =f word(key[4*i], key[4*i+1], key[4*i+2], key[4*i+3]);
                i = i+1;
            end while
            i = Nk;
            while (i < Nb * (Nr+1))
                temp = w[i-1];
                if (i mod Nk == 0)
                    temp = SubWord(RotWord(temp)) xor Rcon[i/Nk];
                else if (Nk > 6 and i mod Nk = 4)
                    temp = SubWord(temp);
                end if
                w[i] = w[i-Nk] xor temp;
                i = i + 1;
            end while
        end
    其中
    1、函数SubWord()对输入的4字节字中的每个字节施加S盒操作;
    2、函数RotWord()对输入的4字节字进行一个字节的循环左移;
    3、Rcon[i]为轮常数,由4字节组成。Rcon[i] = {xi-1, ’00’, ’00’, ’00’},其中x0为’01’,x1为’02’,x2为’04’,x3为’08’,。

    3.2.4  AES加密算法的伪代码[10]:
    Rijndael(State,Cipherkey)
    {
    KeyExpansion(Cipherkey,Expandedkey)
    Addroundkey(state,Expandedkey)
    For i=1 step 1 to Nr-1
    Subbytes(state)
    Shiftrows(state)
    Mixcolumns(state)
    Addroundkey(state,Expandedkey+Nb*i)
    End for
    Subbytes(state)
    Shiftrows(state)
    Addroundkey(state,Expandedkey+Nb*Nr)
    End
    }
    3.3 AES解密算法说明
    3.3.1 轮函数
    解密部分流程与加密部分是一样的,只有所使用的函数均为加密部分的逆函数:
    1、逆字节替代变换InvSubBytes():使用了与加密过程互逆的S盒,置换过程与加密是相同。例如,值为32h的字节将被置换为S盒中第3行、第2列的值,即被置换为a1h,与加密置换前的原值相同。
    2、逆移行变换InvShiftRows():对状态数组的每一行进行循环右移操作,循环右移的为数取决于行号,与加密时循环左移的为数相同。
    3、逆混列变换InvMixColumns():逆混列变换的过程与混列变换的过程是一样的,只有使用的列混合矩阵是与加密不同的,两个矩阵互逆。
  1. 上一篇:C#连锁酒店入住管理系统开发+文献综述
  2. 下一篇:ASP面向高校学生的驴友网站的设计与实现
  1. jsp+sqlserver高校二手商品交...

  2. php+mysql高校迎新系统的开发与应用

  3. VB+Sqlserver高校教师公寓选房系统的设计与实现

  4. VB+sqlserver高校宿舍信息管理系统的设计与实现

  5. jsp+sqlserver高校教育超市管...

  6. MOOCs的高中《物理》教学网站的设计与实现

  7. VC++的高速数据采集系统的软件设计

  8. 杂拟谷盗体内共生菌沃尔...

  9. java+mysql车辆管理系统的设计+源代码

  10. 酸性水汽提装置总汽提塔设计+CAD图纸

  11. 十二层带中心支撑钢结构...

  12. 河岸冲刷和泥沙淤积的监测国内外研究现状

  13. 电站锅炉暖风器设计任务书

  14. 当代大学生慈善意识研究+文献综述

  15. 乳业同业并购式全产业链...

  16. 大众媒体对公共政策制定的影响

  17. 中考体育项目与体育教学合理结合的研究

  

About

751论文网手机版...

主页:http://www.751com.cn

关闭返回