快捷搜索:  汽车  科技

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

aes算法最终确定采用什么算法:每天一算法 什么是AES算法W数组当中,W{0-15}用于初始轮的处理,W{16-31}用于第1轮的处理,W{32-47}用于第2轮的处理 ......一直到W{160-175}用于最终轮(第10轮)的处理。后续每一个元素W[i]都是由W[i-4]和W[i-1]计算而来,直到数组W的所有元素都赋值完成。需要补充一点,加密的每一轮所用到的密钥并不是相同的。这里涉及到一个概念:扩展密钥(KeyExpansions)。扩展密钥(KeyExpansions)AES源代码中用长度 4 * 4 *(10 1) 字节的数组W来存储所有轮的密钥。W{0-15}的值等同于原始密钥的值,用于为初始轮做处理。

这一步,输入数组的每一列要和一个名为修补矩阵(fixed matrix)的二维常量数组做矩阵相乘,得到对应的输出列。

4.加轮密钥(AddRoundKey)

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

这一步是唯一利用到密钥的一步,128bit的密钥也同样被排列成4X4的矩阵。

让输入数组的每一个字节a[i j]与密钥对应位置的字节k[i j]异或一次,就生成了输出值b[i j]。

需要补充一点,加密的每一轮所用到的密钥并不是相同的。这里涉及到一个概念:扩展密钥(KeyExpansions)。

扩展密钥(KeyExpansions)

AES源代码中用长度 4 * 4 *(10 1) 字节的数组W来存储所有轮的密钥。W{0-15}的值等同于原始密钥的值,用于为初始轮做处理。

后续每一个元素W[i]都是由W[i-4]和W[i-1]计算而来,直到数组W的所有元素都赋值完成。

W数组当中,W{0-15}用于初始轮的处理,W{16-31}用于第1轮的处理,W{32-47}用于第2轮的处理 ......一直到W{160-175}用于最终轮(第10轮)的处理。

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

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

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

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

猜您喜欢: