一、AES
AES ,即advanced encryption standard, 高级加密标准, 它属于对称加密算法,加密解密使用同一密钥。
输入:16B的分组
密钥:128位(16B)、196位(24B)或256位(32B)
不同位数的密钥,决定后面加密/解密的轮数。16B的密钥,将进行10轮加密/解密;24B的密钥,将进行12轮加密/解密;32B的密钥,将进行14轮加密/解密;
输出:16B的分组
二、加密流程
1. 密钥的产生(key schedule)
根据输入的密钥,进行密钥扩展,生成轮加密中使用的子密钥.
2. 初始
明文和密钥进行AddRoundKey, 即明文字节和密钥字节进行异或运算
3. 轮加密
(1) SubBytes
假设State表中当前字节为XY, 则在SBox上查找X行Y列的对应值,并进行替换。
(2) ShiftRows
假设State表中当前行为i(i [0,3]),ShiftRows操作则为将i行循环左移i个字节
(3) MixColumns
Rcon为一常量矩阵,MixColumns操作则为Rcon矩阵与State矩阵相乘
(4) AddRoundKey
State矩阵中元素与子密钥元素进行异或运算
4. 最后一轮加密
(1) SubBytes
(2) ShiftRows
(3) AddRoundKey
本文详细介绍了AES(高级加密标准)的基本概念及加密流程。AES是一种对称加密算法,使用相同密钥进行加密和解密。文章阐述了AES的输入、密钥长度、加密轮数及其输出,并深入解析了加密过程中的密钥产生、初始状态设置、轮加密步骤及最终一轮加密的具体操作。
2318

被折叠的 条评论
为什么被折叠?



