LTE中的Rijndael算法研究*

2010-08-09 05:03:52吴云梅李小文刘丹丹
电视技术 2010年12期

吴云梅,李小文,刘丹丹

(重庆邮电大学 通信学院,重庆 400065)

责任编辑:孙 卓

1 引言

自20世纪70年代以来,被广泛使用的数据加密标准(DES)日益不能满足人们对数据安全性的需求。2000年10月,美国国家标准和技术研究所(NIST)经过多次评估,确定Rijndael算法为美国高级加密标准(Advanced Encryption Standard,AES)[1],代替使用了 20 多年的 DES。如今该标准已在LTE系统中多处使用,其中在非接入层初始密钥的形成过程中[2],使用了7次的Ek核就是Rijndael算法,只是每次使用的明文和密钥矩阵都不同。另外,非接入层和接入层的完整性保护算法(128-EIA2)与加密算法(128-EEA2)都是基于AES的Rijndael算法[3]。

2 Rijndael算法介绍

Rijndael算法中的许多运算是按字节为单位定义,1 byte可以看作是有限域GF(28)中的一个元素,由b7b6b5b4b3b2b1b0构成的字看作是多项式b7x7+b6x6+b5x5+b4x4+b3x3+b2x2+b1x+b0,其中 bi∈GF(2),0≤i≤7,bi为 0 或1。算法中涉及的运算主要有两种:

1)2个多项式的加法运算

定义为:相同指数项的系数和再模余2,即异或运算。例如,(x7+x5+x4+x3+x+1)+(x6+x5+x4+x2+x)=x7+x6+x3+x2+1。

2)2个多项式的乘法运算

多项式相乘之后的结果很容易造成溢位,解决溢位的方式是把2个多项式相乘的结果再模余1个不可约多项式 m(x)。 在 Rijndael算法中,该多项式为 m(x)=x8+x4+x3+x+1。例如,(x7+x4+x3+x2+x)mod(x8+x4+x3+x+1)=x7+x4+x3+x2+x。

3 Rijndael算法原理

3.1 Rijndael算法外部结构

Rijndael算法的外部输入由明文比特流和密钥比特流两部分组成,输出为密文比特流,如图1所示。明文比特流映射到4×Nb的状态矩阵中,密钥比特流也是一个4×Nk的矩阵。在Rijndael算法中,运算的轮数Nr由Nb和Nk决定,轮数的变动关系如表1所示。在当前的LTE系统中均采用128 bit明文和128 bit密钥的分组方式,即Nb=4,Nk=4,所以执行的轮变换次数为10次。笔者将以LTE系统中使用的Nb=4,Nk=4的分组方式说明。

表……

登录APP查看全文