AES各部件及过程介绍

AES算法主要包括四个部件:
字节代换,行移位,列混合和轮密钥异或。各个部件详细讲解如下:

1.字节代换:根据输入字节,高四位作为S盒查询行号,低四位作为S盒查询列号。是唯一的非线性组件,起混淆的作用。

在解密的时候,查逆S盒即可。

2.行移位:左循环移位,第一行不移位,第二行左移一个字节(AES输入128bit,分成16个字节,每个字节8bit),第三行左移两个字节,第四行左移三个字节。行移位起扩散作用。

在解密时,将每一行执行相反的移位操作:第一行不移位,第二行右移一个字节,第三行右移两个字节,第四行右移三个字节。

3.列混合:每一列乘以一个矩阵,该矩阵为
( 2 3 1 1 1 2 3 1 1 1 2 3 3 1 1 2 ) \begin{pmatrix} 2&3 &1 &1 \\ 1&2 & 3 &1 \\ 1&1 & 2 &3 \\ 3& 1 & 1 &2 \end{pmatrix} 2113321113211132,需要注意的是,乘法和加法都是定义在 G F ( 2 8 ) GF(2^{8}) GF(28)上的二元运算。列混合起到混淆和扩散作用。

解密时,乘 ( 0 E 0 B 0 D 09 09 0 E 0 B 0 D 0 D 09 0 E 0 B 0 B 0 D 09 0 E ) \begin{pmatrix} 0E&0B & 0D &09 \\ 09&0E &0B &0D \\ 0D&09 &0E &0B \\ 0B& 0D &09 &0E \end{pmatrix} 0E090D0B0B0E090D0D0B0E09090D0B0E即可。

4.轮密钥异或

此处以128bit的密钥举例,先将128bit的密钥扩展,将128bit写成,4*4的字节矩阵,每四列即一个轮密钥,将4列拓展成44列,组成11个轮密钥。加密时,将信息矩阵和轮密钥逐位异或,轮密钥异或加起到混淆作用。

在整个过程中,值得注意的是:第一轮之前先进行一轮密钥异或,第十轮不进行列混合。
具体的过程如图所示:
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值