054Rijndael移位寄存器实现方案.pdf
文本预览下载声明
Rijndael 移位寄存器实现方案1
韦宝典 刘东苏 王新梅
西安电子科技大学 综合业务网国家重点实验室 西安 710071
E-mail: weibaodian@
摘要 通常 利用移位寄存器设计流密码能够获得极高的运行效率 本文将这一思想
用于分组密码 美国高级加密标准Rijndael 算法的实现 获得与目前最快的查表法实
现方案相当的效率 此外 通过对Rijndael S 盒和密钥生成方案的微小改动 使得等效
Rijndael 算法非线性层 线性层和圈密钥加层的层次性更加明显 有利于对 Rijndael
安全性的进一步分析
关键词 Rijndael AES S 盒 密钥生成方案 移位寄存器
一 引言
迭代分组加密算法Rijndael[1]在2000 年 10 月2 日被确定为美国高级加密标准AES
(Advanced Encryption Standard) 在经过严格的安全分析[2,3,4,5]后 从2002 年5 月26 日
起作为官方标准(FIPS197[6]) 正式实施 取代DES[7]在未来30 年里保护联邦政府非机密
敏感信息 同时将会在商业 金融和IT 界等领域获得广泛应用
Rijndael 算法是一个分组长度为128 比特 密钥可取128 192 和256 三种长度的分
组密码 16 字节的分组被组织成称为状态的4 4 字节矩阵 其中的列可看成一个4 字
节的字 如图1 所示 密码变换就在这样的字节 行和列上实施 以圈变换为单位连续
迭代若干次(对应不同密钥长度 次数分别为10 12 和14)
圈变换由下列四个基本变换组成
1) 字节替换 对状态的每一个字节实施一个 S 盒变换 即 将状态字节看成域
8 8 4 3
GF(2 ) (生成多项式为x +x +x +x +1 十六进制表示为11Bx )上的元素 (a)取其
乘法逆(规定零的逆为零) (b)结果进行如(1)式GF(2) 上的矩阵运算 (c)最后再加上一个
常数63
x
2) 行移位 改变状态行中字节的次序 即 第一行不动 第二行左循环 1 个字节
1 资助项目 国家973 项目(G1999035804) 十五 国家密码发展基金
第三行左循环2 个字节 第四行左循环3 个字节 如图2 所示
8
3) 列混合 将状态列看成GF(2 ) 域上的三次多项式(列字节作为多项式的系数)
与多项式c(x) 03 x 3 +01 x 2 +01 x +02 进行模x 4 +1乘法 如图3 所示 这个变
x x x x
换等效于(2)式的矩阵运算
4) 圈密钥加 状态字节与 128 比特的子密钥异或 在密钥生成方案中 圈密钥以4
字节字为单位生成 圈密钥字由前一密钥字 前一圈相应的密钥字和圈常数
RC [i] (02x )i−1 异或而成 详见文献[1]
a0 a4 a8 a12 a0 a4 a8 a12 a0 a4 a8 a12
a1 a5 a9 a13 a1 a5 a9 a13 a5 a9 a13 a1
a2 a6 a10 a14 a2 a6 a10 a14 行移位 a10 a14 a2 a6
a3 a7 a11 a15
显示全部