AES
介绍
密码学中的高级加密标准(Advanced Encryption Standard,AES),又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准。
说明
AES和Rijndael加密法并不完全一样,AES区块长度固定为128位,密钥长度可以是128,192或者256位。Rijndael加密法使用的密钥 >=128,<=256,%32==0。
加密过程
明文加密过程
密钥与明文
明文按byte进行划分,16个明文byte组成一个矩阵(state),16x8=128bits即AES一个block的大小。
红色的是密钥,结构和state相似,也是16x8=128bits,和block大小相同,被称为roundkey(轮密)。其次,每一个round(轮函数)结束后,roundkey也会被修改,对应的修改算法/过程被称为密钥扩展算法(Key Expansion/Schedule)。
逐字节替换
平移行
列混合
state与一个常数矩阵相乘
位或操作
state与密钥XOR
轮密迭代过程
平移列
roundkey是一个4X4的密钥byte矩阵,每一列被称作一个word(在state矩阵中也是一样,word=column)。这一步取出最后一个word,对这个word向上shift1个
只对最后一列操作,逐字节替换
完全类似SubBytes的操作:查S-box并进行byte替换。不同的是,对于state而言每一个byte都要查表;而roundkey只需要替换最后一个word的4个byte即可。
XOR1
第1个word(第一列)、经过上述两步操作后的最后1个word(第四列)和一个常量列向量RCON做XOR操作。RCON是一个常数项量
XOR2
新roundkey的对应word和旧roundkey的上一个word做XOR操作。语言描述不直观,需要借助公式说明,放心,一点都不复杂。先记旧roundkey=K,有K=[w_1, w_2, w_3, w_4],新roundkey=K',有K'=[w'1, w'2, w'3, w'4]。
w'_i = w'_i-1 XOR w_i, 1<i<=4
工作模式
ECB
每组结束后,直接把最终的state拼接就成了。简单,可并行。
文章评论