图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():逆混列变换的过程与混列变换的过程是一样的,只有使用的列混合矩阵是与加密不同的,两个矩阵互逆。
上一篇:C#连锁酒店入住管理系统开发+文献综述
下一篇:ASP面向高校学生的驴友网站的设计与实现

高职院校公共机房的管理维护【2471字】

高级RFID阅读器應用對处理器的要求【1354字】

试析高职院校计算机专业...

论高职计算机應用专业課...

无跳线主板BIOS高级设置【706字】

提高实时操作系统的实时...

浅谈高职院校计算机网络实践教學【2060字】

承德市事业单位档案管理...

志愿者活动的调查问卷表

C#学校科研管理系统的设计

医院财务风险因素分析及管理措施【2367字】

中国学术生态细节考察《...

10万元能开儿童乐园吗,我...

AT89C52单片机的超声波测距...

公寓空调设计任务书

国内外图像分割技术研究现状

神经外科重症监护病房患...