AES算法简介

AES算法原理
AES加密算法,在开始时需要把128位的明文分组为4个32位的字模块,分组方式如下:
分组密码工作模式:
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算法
下表是不同AES密钥长度对应的不同的加密轮数:
在这里插入图片描述
在这里插入图片描述
这是AES-128的加密流程图
在这里插入图片描述
1,字节替换,字节替换是通过字节替换表(是s盒)进行的非线性代换
例如,十六进制数{EA}进行字节代换, 按照行值为 E,列值为 A 在 S 盒中进行查找,得到相应的值{87},{EA}即代换为{87},
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
2,行移位,
在这里插入图片描述
3,列混合,将状态矩阵 s 左乘列混合矩阵,运算的结果即为列混合变换后的数值,逆列混合运算也与之类似,只需要将列混合矩阵改为逆列混合矩阵即可
4,子密钥加运算过程即是数据与子密钥按位相异或,

密钥扩展
AES-128加密,128bit是初始密钥的长度,被分列在K表中,其中k表示一个8位的字节,每竖列的4个字节组成一个W字(W[0–3])
下面是总体框图:
在这里插入图片描述
其中g函数是一个复杂的运算过程:
在这里插入图片描述
函数 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),
AES-128中10轮的轮常量前八位值
在这里插入图片描述
加密过程主程序伪代码描述
在这里插入图片描述
最后,密钥扩展和子程序分别作为单独运算模块

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值