AES算法---图待添加

AES算法原理

AES算法:
分组密码工作模式:
1,ECB,电子本模式,最简单的分组工作模式,应用较为广泛

2,分组连接CBC模式,

前加密模块与后一明文模块异或后加密,第一组与生成的初始向量异或,

解密过程,上一级密文直接与后一级解密后明文`异或得到最终明文
3,CFB密文反馈模式,

生成的初始向量进入加密模块加密,得到相应密文,选择算法输出最左边S位(s小于密文长度大于1)与第一级密文按位异或得到密文Ci,传到下一级继续运算。

解密类似如图2-8

4,输出反馈模式OFB
加密
解密

5,计数器模式CTR

计数器前半部分是随机数,后半部分是分组序号,通常从1开始累加

解密过程

相关计算规则:
伽罗华域(Galois Field,GF)中关于多项式的mod运算过程

GF域中的加法,按位异或,

DF域中的x乘
AES算法
1,字节替换,字节替换是通过字节替换表(是s盒)进行的非线性代换

例如,十六进制数{EA}进行字节代换, 按照行值为 E,列值为 A 在 S 盒中进行查找,得到相应的值{87},{EA}即代换为{87},

2,行移位,

3,列混合,将状态矩阵 s 左乘列混合矩阵,运算的结果即为列混合变换后的数值,逆列混合运算也与之类似,只需要将列混合矩阵改为逆列混合矩阵即可
4,子密钥加运算过程即是数据与子密钥按位相异或,

密钥扩展

    AES-128中10轮的轮常量前八位值

在这里插入图片描述
函数 g 是一个比较复杂的运算过程,它包含了1)循环移位、2)字节代换(S盒查找代换)和与3)轮常量(Rcon[j]=(RC[j], ‘00’, ‘00’, ‘00’),异或的过程。假设待运算数据 w=(B0,B1,B2,B3),在经过循环移位后生成(B1,B2,B3,B0),再通过字节代换后生成(B’1,B’2,B’3,B’0),再经过与 RC[j]异或的过程,即生成了运算结果 w’,也可表示为 g(w),

加密过程主程序伪代码描述

密钥扩展和子程序分别作为单独运算模块

猜你喜欢

转载自blog.csdn.net/qq_43280644/article/details/83857922