摘要
严格地说,AES和Rijndael加密法并不完全一样(虽然在实际应用中二者可以互换),因为Rijndael加密法可以支持更大范围的区块和密钥长度:AES的区块长度固定为128 比特,密钥长度则可以是128,192或256比特;而Rijndael使用的密钥和区块长度可以是32位的整数倍,以128位为下限,256比特为上限。
块(block,也叫分组)
模式(比如cbc)
初始向量(iv)
填充方式(padding,包括none,用’\0′填充,pkcs5padding或pkcs7padding)
S和S-1(g正逆)分别为16x16的矩阵,字节代替的主要功能是通过S盒完成一个字节到另外一个字节的映射。
行移位(ShiftRows)
行移位的功能是实现一个4x4矩阵内部字节之间的置换。实际移位的操作即是:第一行保存不变,第二行循环
左移1个字节,第三行循环左移2个字节,第四行循环左移3个字节。
列混淆(MixColumns)
轮密钥加(AddRoundKey)
任何数和自身的异或结果为0。加密过程中,每轮的输入与轮密钥异或一次;因此,解密时再异或上该轮的密
钥即可恢复输入
原文
http://www.mamicode.com/info-detail-514466.html
http://baike.baidu.com/item/aes/5903?fromtitle=aes%E5%8A%A0%E5%AF%86%E7%AE%97%E6%B3%95&fromid=3233272
https://github.com/dhuertas/AES/blob/master/aes.c