移位运算的逆变换是循环右移,位移量与左移时相同
列混合运算的逆运算是类似的,即每列都用一个特定的多项式dx相乘
dx‘0B’x3‘0D’x2‘09’x‘0E’
密钥加运算的逆运算是其自身
AES算法的扩散
第一轮
f第二轮总体
其他典型分组密码SMS4算法
128比特明文
初始化赋值
Xi3
Xi3Xi2Xi1Xi
F函数
32轮运算
X35rki4
128比特密文反序变换R
X34X33X32
32轮运算
F’函数
rki3rki2rki1rki
CKi
初始化赋值
FK
MK
128比特明文分为4个32比特字,分别赋值给四个寄存器A、B,C,D(D为最高)
FDCBArki
ATBC
Drki
DCBA
Z322
4
rki
Z322
进行32轮F运算,设
每轮输入为寄存器当前状态值
和轮密钥为
,则轮函数F为:
RX35X34X33X32X32X33X34X35X35X34X33X32将寄存器最右边字A的值
f移出,高三个字顺次右移32位,F函数的输出赋值给最左边的寄存器字D32轮的输出进行反序变换R,
然后输出密文
Xi4FXi3Xi2Xi1XirkiXiTXi1Xi2Xi3rki轮函数F以
字为单位进行运算,输入寄存器值
和轮密
钥
合成置换T:是一个可逆变换,由非线性变换τ和线性变换L复合而成即TLτz3z2z1z0YSboxy3Sboxy2Sboxy1Sboxy0非线性变换τ由4个并行的S盒构成
WLYYY2Y10Y18Y24线性变换L:
密钥编排算法
rk0,rk1,,rk31加密密钥长度为128比特MK
轮密钥表示为
,
CKCK0,CK1,,CK31FKFK0,FK1,FK2,FK3
为系
统参数,
为固定参数,用于密钥扩展算法
密钥扩展算法:
K0K1K2K3MK0FK0MK1FK1MK2FK2MK3FK3
FK
0
A3B1BAC6
FK
1
56AA3350
FK
677D9197
2
FK
3
B27022DC
T’变换与加密算法轮函数中的T基本相同只将其中的线性变换L修改为
LYYY13Y23
固定参数CKi的取值方法为:设
为
的第j字节(i01…31;j0123
即
则
分组密码的运行模式
为了能在各种场合使用DES,定义了4中DES运行模式:ECBCBCCFBOFB
AES的另外一种运行模式:CTR
ECB模式
最简单的一种分组密码工作方式。一次处理一个明文分组。
密文块可以分别独立解密,无顺序要求;
f密钥相同时,明文中相同的64比特分组产生相同的64比特密文块;
不存在错误传播,一块密文传送错误只导致对应明文解密错误;
主要用于发送少数量的分组数据;
CBC模式
先对明文分组,一次对一个明文分组加密,加密算法的输入是当前明文分组和前一次密
文分组的异或
在产生第1个密文分组时,需要有一个初始向量IV与第1个明文分组异或;
解密时,IV和解r