AES加密过程白话版解析

admin 2025年3月11日19:59:21评论37 views字数 1591阅读5分18秒阅读模式
AES(Advanced Encryption Standard)算法是一种对称加密算法,由美国国家标准与技术研究院(NIST)在2001年发布,旨在取代早期的数据加密标准(DES),并提供更高的安全性,目前该算法被广泛应用于各种安全需求中,AES算法以其高度的安全性和效率成为目前最流行的对称加密算法之一。

其实网络上有很多前辈已经写了很多关于AES加密算法,模式,填充规则等文章,但是大家的侧重点不同,在系统学习时很难把这些知识串起来,所以才有了本系列对AES不同加密算法,加密模式,加密原理,填充算法及AES-CMAC算法的系统介绍,本文先对AES加密过程及模式进行介绍,本文大纲如下:

AES加密过程白话版解析
0.1AES加密算法的加解密基本流程

AES加解密基本流程如下:

AES加密过程白话版解析
AES加密函数为E,则 C = E(K, P),其中P为明文,K为密钥,C为密文。

AES解密函数为D,则 P = D(K, C),其中C为密文,K为密钥,P为明文。

0.2不同AES算法区别

AES根据密钥长度的不同有:AES128,AES192,AES256三种算法,对应的密钥长度分别对应于AES-128、AES-192和AES-256三种变体,区别如下:

AES加密过程白话版解析
01

AES加密过程介绍

在加密前首先需要选择加密模式及当最后一个block需要填充时的填充算法,之后即可开始密钥扩展,对明文分组处理及多轮加密的操作。

AES加密过程白话版解析
1.1密钥扩展

根据密钥,通过密钥扩展算法扩展生成每一轮操作所需的子密钥。扩展密钥生成方式:

AES首先将初始密钥输入到一个4*4的状态矩阵中,k0~k15,将每一列的字节组成一个字,如k0~k4,组成W[0],接着将W数组扩充四十个新列,构成44列扩展密钥数组。

扩展新列的产生方式:

1.如果i不是4的倍数,那么第i列由如下等式确定:W[i]=W[i-4]⨁W[i-1];

2.如果i是4的倍数,那么第i列由如下等式确定:W[i]=W[i-4]⨁T(W[i-1]),其中,T是一个函数,由字循环、字节代换和轮常量异或部分组成。

AES加密过程白话版解析
1.2分组处理

将待加密的明文按照分组长度(128位)进行划分,得到多个分组,对于最后一组需要根据对应的填充规则进行填充。

1.3多轮加密

对每个分组进行多轮的迭代操作,包括字节替代、行移位、列混淆和轮密钥加等步骤,最终得到密文。以AES128加密算法为例,其加密过程为:

AES加密过程白话版解析
十轮的加密过程如下:

1)在第一轮迭代之前,先将明文和原始密钥进行一次异或加密操作;

2)加密的第1轮到第9轮的轮函数一样,包括4个操作:字节代换、行位移、列混合和轮密钥加。

3)最后一轮加密字节代换、行位移和轮密钥加,但不执行列混合。

AES加密过程白话版解析
02

几种加密方法介绍

2.1字节替换

字节替换: 属于非线性替换,具体为通过一个替换表(S盒)对每个字节进行查表替换,查表时将每一个字节的前4位作为行值,后4位作为列值,去S盒查找,进行输出。

如下为S盒(x表示行,y表示列),例如字节为0x14,那么前四位的16进制为1,后四位的16进制为4,去查找s盒中的第1行第4列的值,可以看出为0xfa,就把原先的字节0x14替换为0xfa。

AES加密过程白话版解析
解密过程与此相同,唯一就是采用的是逆S盒。

2.2行移位

对于4*4的矩阵,操作为:第n行循环左移n个字节,如第0行保持不动,第1行循环左移1个字节,第2行则循环左移2个字节。解密过程变为循环右移,每行移动字节数与加密过程相同,如下为示意图。

AES加密过程白话版解析
2.3列混淆

实际上为4*4的矩阵与另一个4*4矩阵异或相乘(右乘操作),重新得到一个4*4的矩阵,如下图所示。

解密过程为重新与此矩阵异或,因为两次异或得到的值为原数据本身。

AES加密过程白话版解析
2.4轮密钥加

轮密钥与状态矩阵进行逐比特异或操作。轮密钥由1.2.2章节中种子密钥通过密钥编排算法得到的,并且轮密钥长度与分组长度相同。解密过程与之相同,两次异或得到原始数据。

AES加密过程白话版解析
 

原文始发于微信公众号(谈思实验室):AES加密过程白话版解析

 

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年3月11日19:59:21
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   AES加密过程白话版解析https://cn-sec.com/archives/3829724.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息