快捷搜索:  汽车  科技

aes算法最终确定采用什么算法:每天一算法 什么是AES算法

aes算法最终确定采用什么算法:每天一算法 什么是AES算法AES256:14轮AES192:12轮上一期我们提到,AES的Key支持三种长度:AES128,AES192,AES256。Key的长度决定了AES加密的轮数。除去初始轮,各种Key长度对应的轮数如下:AES128:10轮

具体分成多少轮呢?

初始轮(Initial Round) 1次

普通轮(Rounds) N次

最终轮(Final Round) 1次

上一期我们提到,AES的Key支持三种长度:AES128,AES192,AES256。Key的长度决定了AES加密的轮数。

除去初始轮,各种Key长度对应的轮数如下:

AES128:10轮

AES192:12轮

AES256:14轮

不同阶段的Round有不同的处理步骤。

初始轮只有一个步骤:

加轮密钥(AddRoundKey)

普通轮有四个步骤:

字节代替(SubBytes)

行移位(ShiftRows)

列混淆(MixColumns)

加轮密钥(AddRoundKey)

最终轮有三个步骤:

字节代替(SubBytes)

行移位(ShiftRows)

加轮密钥(AddRoundKey)

aes算法最终确定采用什么算法:每天一算法 什么是AES算法(1)

aes算法最终确定采用什么算法:每天一算法 什么是AES算法(2)

1.字节替代(SubBytes)

aes算法最终确定采用什么算法:每天一算法 什么是AES算法(3)

首先需要说明的是,16字节的明文块在每一个处理步骤中都被排列成4X4的二维数组。

所谓字节替代,就是把明文块的每一个字节都替代成另外一个字节。替代的依据是什么呢?依据一个被称为S盒(Subtitution Box)的16X16大小的二维常量数组。

假设明文块当中a[2 2] = 5B(一个字节是两位16进制),那么输出值b[2 2] = S[5][11]。

2.行移位(ShiftRows)

aes算法最终确定采用什么算法:每天一算法 什么是AES算法(4)

这一步很简单,就像图中所描述的:

第一行不变

第二行循环左移1个字节

第三行循环左移2个字节

第四行循环左移3个字节

3.列混淆(MixColumns)

aes算法最终确定采用什么算法:每天一算法 什么是AES算法(5)

猜您喜欢: