对称密码学之现代密码学-AES算法分析

本文详细分析了AES(高级加密标准)算法的结构,包括字节代换、行移位、列混合和轮密钥加四个基本操作,并介绍了密钥的扩展过程。通过对每个步骤的详细解释,帮助读者深入理解AES加密和解密的过程。
摘要由CSDN通过智能技术生成

AES算法分析

1. AES的结构

AES为分组密码,分组密码也就是把明文分成一组一组的,每组长度相等,每次加密一组数据,直到加密完整个明文。

明文分组的长度为128位即16个字节,密钥长度可以是128位(16字节)、192位(24字节)、256位(32字节)。密钥长度不同,加密轮数也不相同。根据密钥的长度,算法被称为AES-128、AES-192或AES-256。具体关系如表1所示:

表1

在这里插入图片描述
本文以密钥长度为128位即16字节进行分析,AES的基本结构如图1所示,加密过程图如图2所示:
图1 AES结构图
在这里插入图片描述
图2 AES加密过程图

在这里插入图片描述
AES的处理单位是字节,128位的输入明文P和输入密钥K都被分成16个字节,分别记为P = P 0 P 1 … P 15 和 K = K 0 K 1 … K 15。例如,明文为P = “ abcdefghijklmnop ”,其中的字符a对应P 0,p对应P 15。明文分组被描述为4×4的字节方阵,该方阵被复制到状态数组称为状态矩阵。在算法的每一轮中,状态矩阵的内容不断发生变化,最后的结果作为密文输出。该矩阵中字节的排列顺序为从上到下、从左至右依次排列,如图3所示:
图3

在这里插入图片描述
如果明文分组是P = “ abcdefghijklmnop ”,则对应的状态矩阵为图4所示:
图4

在这里插入图片描述
上图中,0x61为字符“ a ”的十六进制表示。可以看到,明文经过AES加密后,已经面目全非。

类似地,128位密钥也是用字节为单位的矩阵表示,矩阵的每一列(4个字节)被称为1个32位比特字(4个字节被称为一个字)。通过密钥编排函数该密钥矩阵被扩展成一个44个字组成的序列W[0](“ abcd ”),W[1], … ,W[43],该序列的前4个字W[0],W[1],W[2],W[3]是原始密钥,用于加密运算中的初始密钥加(下面

  • 3
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值