ASE 加密和解密流程

假设我们已经有明文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个字节

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值