Rijndael密码算法

一 什么是Rijndael

Rijndael是由比利时密码学家设计的分组密码算法,于2000年被选为新一代的标准密码算法——AES。今后会有越来越多的密码软件支持这种算法。

Rijndael的分组长度和密钥长度可以分别以32比特为单位在128比特和256比特的范围内进行选择。不过在AES的规格中,分组长度固定为128比特,密钥长度只有128、192和256比特三种。

二 Rijndael的加密和解密

Rijndael算法也是由多轮构成的,其中每一轮分为SubBytes、ShiftRows、MixColumns和AddRoundKey4个步骤。它使用的是SPN结构。

1 SubBytes

Rijndael的输入分组为128比特,也就是16个字节。首先,需要逐个字节对16字节的输入数据进行SubBytes处理。所谓SubBytes处理,就是以每个字节的值(0-255的任意值)为索引,从一张拥有256个值的替换表中查找出对应值的处理。也就是说,将一个字节的值替换成另外一个字节的值。用图表示如下:

2 ShiftRows

以4个字节为单位的行(row)按照一定的规则向左平移,且每一行平移的字节数是不同的。下图是对其中一行进行处理的情形。

3 MixColumns

对一个4字节的值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值