快捷搜索:  汽车  科技

aes加密算法方式有哪些:AES加密算法流程介绍

aes加密算法方式有哪些:AES加密算法流程介绍1) 将种子密钥按图(a)的格式排列,其中k0、k1、……、k15依次表示种子密钥的一个字节;排列后用4个32比特的字表示,分别记为w[0]、w[1]、w[2]、w[3];密钥扩展过程说明:密钥扩展的原理图如下:点击添加图片描述(最多60个字)

说明两个矩阵互逆,经过一次逆向列混淆后即可恢复原文。

3.4 轮密钥加

这个操作相对简单,其依据的原理是“任何数和自身的异或结果为0。加密过程中,每轮的输入与轮子密钥异或一次;因此,解密时再异或上该轮的轮子密钥即可恢复。

3.5 密钥扩展算法

密钥扩展的原理图如下:

aes加密算法方式有哪些:AES加密算法流程介绍(1)

点击添加图片描述(最多60个字)

密钥扩展过程说明:

1) 将种子密钥按图(a)的格式排列,其中k0、k1、……、k15依次表示种子密钥的一个字节;排列后用4个32比特的字表示,分别记为w[0]、w[1]、w[2]、w[3];

2) 按照如下方式,依次求解w[j],其中j是整数并且属于[4 43];

3) 若j%4=0 则w[j]=w[j-4]⊕g(w[j-1]) 否则w[j]=w[j-4]⊕w[j-1];

函数g的流程说明:

1) 将w循环左移8比特;

2) 分别对每个字节做S盒置换;

3) 与32比特的常量(RC[j/4] 0 0 0)进行异或,RC是一个一维数组,其值如下。(RC的值只需要有10个,而此处用了11个,实际上RC[0]在运算中没有用到,增加RC[0]是为了便于程序中用数组表示。由于j的最小取值是4,j/4的最小取值则是1,因此不会产生错误。)

RC = {0x00 0x01 0x02 0x04 0x08 0x10 0x20 0x40 0x80 0x1B 0x36}

04

小结

密码算法要求是可逆的,这样解密算法才能正确的恢复明文。拿AES来说,在密钥固定的情况下,明文和密文在整个输入空间是一一对应的。因此算法的各个部件也都是可逆的,再将各个部件的操作顺序设计成可逆的,密文就能正确的解密了。


猜您喜欢: