密钥长度不会改变分组长度
AES-128、AES-192和AES-256的后缀表示密钥位数,三者的输入与输出分组都为128位。AES采用Rijndael家族的特定配置,不能把Rijndael可有的其他分组长度也自动算作AES标准的一部分。
NIST在2001年发布FIPS 197,2023年更新其表达、图示和编辑内容,说明没有改变所规定算法。这与更换一种新密码不同;引用标准时应区分算法版本的技术变化和文档呈现的更新。
参考:[1]
状态变换与轮密钥
标准把分组表示为4×4字节状态,并以替换字节、行移位、列混合及轮密钥加等变换处理。AES-128、192、256分别采用10、12、14轮;完整流程先有一次轮密钥加,末轮又省略列混合,不能把每轮笼统写成完全相同四步。
密钥扩展从输入密钥产生轮密钥,并不是每一轮都从外部重新取得独立随机密钥。加速或硬件实现可采用不同内部组织,但给定相同输入和密钥时,结果必须符合标准所定义的变换。
参考:[1]
AES原语不等于完整消息保护
把多块正文交给AES时,还需定义模式、初始化材料、填充或长度规则。ECB逐块独立变换会保留相同明文块得到相同密文块的关系;其他模式的保密条件又各不相同,不能仅报告“用了AES”就省略这些信息。
认证也不是AES名称自动附带的服务。选用AES相关认证加密时,仍要遵守nonce和用量等约束;实际实现还可能通过时序或缓存等侧信道泄露信息。FIPS 197明确指出,算法等价实现并不自动解决全部实现攻击。