AES加密解密原理

AES加密解密原理AES加密解密原理AESFPGAAES加密AES是一个对称密码,它的存在是为了取代被证明不安全的DES算法。一、AES加密过程上图为128位的加密过程,如果长度为192位,则要经过12轮加密运算,同理,256位的需要经过14轮加密。以128位为例,其中9轮为循环运算,最后一轮只有步骤1,2

大家好,欢迎来到IT知识分享网。

AES加密解密原理




AES加密

AES是一个对称密码,它的存在是为了取代被证明不安全的DES算法。




一、AES加密过程

AES加密解密原理

上图为128位的加密过程,如果长度为192位,则要经过12轮加密运算,同理,256位的需要经过14轮加密。


AES加密解密原理

以128位为例,其中9轮为循环运算,最后一轮只有步骤1,2,4,没有列混合。

明文长度固定为128位(16字节)
密钥长度可以是128、192、256位




二、初始变换

AES和DES一样是分组加密的
所以,把明文划分成若干个等长的明文块,分块进行加密、
将数据按照下图的方式进行排列,得到一个4 * 4的矩阵
AES加密解密原理
将明文的4 * 4矩阵以及密钥的4 * 4矩阵进行异或操作。(按字节异或)
AES加密解密原理

具体例子如下:
AES加密解密原理




三、循环运算




3.1字节代换

将输入的矩阵通过这个S表,完成从一个字节到另一个字节的映射。
AES加密解密原理
代换完成后如下:
enter description here




3.2行移位

这个矩阵的第一行保持不变,第二行向左移动一个字节,第三行向左移动两个字节。第四行向左移动三个字节。
enter description here




3.3列混合

列混合就是将输入的一个4×4的矩阵左乘一个给定的4×4矩阵。
enter description here

enter description here

enter description here


enter description here

注意,这里的举证点乘与数学中的点成有些不同,这里的
加法变成了
异或运算


enter description here

普通的乘法变成了X乘,也就是 x-time算法
具体细节如下,
01
01与一个数相乘还是那个数本身。
02
将两个数都转为2进制,a7如果等于1,则去掉a7,左移一位,在右侧补0,然后异或00011011;a7如果等于0,则直接去掉a7,左移一位,在右侧补0。
enter description here
03
对于03来说,要拆成02与01的异或,然后分别相乘,如上,最后在异或。
enter description here




3.4轮密钥加

将矩阵与一个子密钥的没一列进行逐个异或,得到一个新的矩阵。
enter description here




3.5子密钥扩展

一开始只有一个子密钥,需要经过循环扩展生成10轮的轮密钥。
enter description here

1.如果i不是4的倍数,那么第i列由如下等式确定:
enter description here
W5 = W1enter description here W4
W6 = W2enter description here W5
1

2.如果i是4的倍数,那么第i列由如下等式确定︰
enter description here

这个T函数由3部分组成:字循环、字节代换和轮常量异或。

a.字循环:将1个字中的4个字节循环左移1个字节。即将输⼊字[b0, b1, b2, b3]变换成
[b1,b2,b3,b0]。

enter description here

b.字节代换:对字循环的结果使⽤S盒进⾏字节代换。
enter description here

c.轮常量异或:将前两步的结果同轮常量Rcon[j]进⾏异或,其中j表示轮数。
轮常量

AES加密解密原理

蓝色代表W(i-4),橙色代表字节变换后的,黄色代表轮常量里的数R(J)。


AES加密解密原理

以此类推,得到10轮变换所需要的轮密钥。
AES加密解密原理

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/31999.html

(0)

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

关注微信