ASE 加密和解密流程

本文介绍了AES加密和解密的过程,包括扩展密钥生成、加密和解密的各个阶段,如置换、行移位、列混淆等操作,以及在GF(2^8)域下的矩阵运算。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

假设我们已经有明文text和密钥m,均为128位(4*4bytes),我们可以m看着一个4*4的byte数组。

加密方和解密方拥有着共同的密钥(m),通过相同的方法将m1扩展成相同的11*4*4byte的扩展密钥(我们叫它M吧,M为11个m大小,可用44*4的byte数组去装),当然加密方的扩展密钥也是一样的。

一、获取扩展密钥M的扩展方法:

(M在结构上由m0,m1,m2....,m11组成;mi大小等于m,均为4*4的byte数组;一个mi用于一轮加密;M为44*4的byte数组)

i为第i个m结构,j为M的行号(0<=j<44)

for m[4]->m[43]

当  i=0,   m0=m;

当 i>0 && j%4!=0,M[j]=M[j-4]^M[j-1];

当 i>0 && j%4==0,M[j]=M[j-4]^(SubWord(RotWord(M[j-1])) ^Rcon[j/4] );

 其中SubWord函数RotWord函数是2个操作,Rcon是一个固定常数数组。

SubWord: 将Mi里面的每个字节的,左4位值为x,右4位为y,用sbox[x][y]的值来更新代替该字节。(sbox是16*16的byte类型的固定数组)

RotWord :  将Mi里面4个字节实现循环左移1个字节


二、加密(i从0到10)

第0轮:text与mi异或

第1-9轮: 置换》行移位》列混淆》text与mi异或

第10轮: 置换》行移位》text与mi异或


置换    是Subword,使用
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值