加密算法-AES

AES算法基本结构

分组长度和密钥长度可以指定为128位,192位和256位。一般128位密钥需要10轮加密。
加密主要分为4个部分:字节代换、行位移、列混合、轮密钥加,最后一轮不执行列混合,第一轮前将明文和原始密钥进行一次XOR或者加密操作。
下面是加密和解密过程
在这里插入图片描述

1. AES加密

1.1 字节代换

也就是S盒和逆S盒分别对应加密和解密。

1.1.1 S盒

在这里插入图片描述怎么来的可以自行了解,不多赘述了。

1.1.2 逆S盒

在这里插入图片描述
同理其实也是有计算过程的。

1.2 行移位

就是简单的左移操作。当密钥是128比特,状态矩阵的第0行左移0字节,第1行左移1字节,第2行左移2字节,第3行左移3字节。状态矩阵是把128比特按照从上到下,从左到右的顺序排列,从而就变成了4x4矩阵,每个矩阵单元长度为8比特。行移位逆变换就是相反,左移变成右移。

1.3 列混合

经过行移位的状态矩阵与固定矩阵下相乘。计算过程如下图所示:
在这里插入图片描述
列混合逆运算如下图所示:
在这里插入图片描述

1.4 轮密钥加

将128位密钥Ki同状态中数据进行逐位异或。逆运算和轮密钥加运算完全一致,这是因为异或两次就还原了。

还有一点是关于密钥扩展的,因为整个过程比较繁琐,有兴趣的可以自行AI查阅下资料。

2.AES解密

2.1 交换行移位

~

2.2 逆向字节代换

~

2.3 交换轮密钥

~

2.4 逆向列混合

~
注:后续有时间我再更新补全点,这篇就暂时先这样, ByeBye~~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值