AES(高级加密标准)是一种对称分组密码算法

AES(高级加密标准)是一种对称分组密码算法 AES高级加密标准是一种对称分组密码算法其核心参数如下密钥长度支持 128 位、192 位 或 256 位三种规格对应 AES-128、AES-192、AES-256密钥越长理论安全性越高加解密轮数也不同AES-12810 轮加密AES-19212 轮加密AES-25614 轮加密分组长度块大小固定为128 位16 字节无论密钥长度如何输入/输出数据均按 128 位分组处理。所有变体均基于相同的轮函数字节代换 SubBytes、行移位 ShiftRows、列混淆 MixColumns、轮密钥加 AddRoundKey仅轮数和密钥扩展Key Expansion逻辑不同。AES 不是流密码使用时需配合工作模式如 CBC、GCM、CTR和填充如 PKCS#7来处理任意长度明文。# 示例使用 PyCryptodome 进行 AES-128-CBC 加密需 pip install pycryptodomefromCrypto.CipherimportAESfromCrypto.Randomimportget_random_bytesfromCrypto.Util.Paddingimportpad keyget_random_bytes(16)# AES-128 → 16 字节 128 位ivget_random_bytes(16)# CBC 模式需要初始化向量cipherAES.new(key,AES.MODE_CBC,iv)plaintextbHello, AES!ciphertextcipher.encrypt(pad(plaintext,AES.block_size))AES 的列混淆MixColumns操作在 AES-128、AES-192 和 AES-256 中完全相同。✅原因如下MixColumns 是 AES 轮函数Round Function中的一个固定代数变换作用于状态矩阵4×4 字节的每一列使用 GF(2⁸) 上的线性变换与固定多项式c(x) 0x03·x³ 0x01·x² 0x01·x 0x02相乘。该操作仅依赖分组长度128 位 → 4×4 状态矩阵而与密钥长度无关。AES 所有变体128/192/256均采用相同的分组大小128 位和相同的状态结构因此 MixColumns 的定义、实现和数学表达式完全一致。密钥长度仅影响轮数10/12/14 轮密钥扩展算法Key Expansion的复杂度与轮密钥生成逻辑如 AES-256 需额外的 SubWord 变换初始密钥加AddRoundKey所用的轮密钥字数。⚠️ 注意最后一轮Final Round不执行 MixColumns所有变体均如此这是 AES 标准统一规定的与密钥长度无关。# MixColumns 单列示例GF(2^8), mod x^8x^4x^3x1defmix_column(col):# col [b0, b1, b2, b3], each bytefromCrypto.Util.numberimportbyte_to_long,long_to_bytes# 实际实现需基于 Rijndael 的有限域乘法如 xtime# 此处省略细节但无论密钥长度如何此函数不变...