LTE - Security(加密保护算法)(3)

2019-06-11 15:45

IBS LENGTH 输入bit流,input bitstream

表3.1.2.2-2 输出参数

参数 大小(bits) 注释 OBS LENGTH 输出bit流,output bitstream 3.1.2.3 EEA1算法流程图

图3.1.2.3-1 EEA1加解密算法流程, 第1部分

如图3.1.2.3-1所示,加解密算法EEA1的流程中第1部分有如下步骤:

1) 将输入变量转变为适用于SNOW 3G算法的输入变量:

K3 = IK[0]

|| IK[1]

|| IK[2]

|| … || IK[31]

K2 = IK[32] || IK[33] || IK[34] || … || IK[63] K1 = IK[64] || IK[65] || IK[66] || … || IK[95] K0 = IK[96] || IK[97] || IK[98] || … || IK[127]

IV3 = COUNT-C[0] || COUNT-C[1] || COUNT-C[2] || … || COUNT-C[31]

IV2 = BEARER[0] || BEARER[1] || … || BEARER[4] || DIRECTION[0] || 0 || … || 0

IV1

=

IV3

11

IV0 = IV2

2) 根据SNOW 3G算法,得到密钥流

图3.1.2.3-2 EEA1加解密算法流程,第2部分

如图3.1.2.3-2所示,加解密算法EEA1的流程中第2部分有以下步骤:

1) 根据EVAL_M功能计算得到参数IV3/ IV2/ IV1/ IV0。

2) 利用1)中得到的参数,在SNOW 3G算法的作用下产生密钥流

3) 密钥流以4个字节为一组,第一组为z1,第二组为z2,…,最后一个为zL。

3.1.2.4 EEA1算法解析

3.1.2.4.1 初始化输入参数

1. 根据输入参数得到SNOW 3G算法需要的参数,如图3.1.2.4-1所示。

12

?-1 s15 ? s11 FSM s5 s2 s1 s0 ? R1 S1 R2 S2 R3 ? 图3.1.2.4-1 密钥初始化流程

2. 根据每个为32-bit字的k0, k1, k2, k3和128-bit变量(由4个32-bit字IV0, IV1, IV2, IV3组成)进行初始化: s15 = k3 ? IV0 s11 = k3 ? 1 s7 = k3 s3 = k3 ? 1

s14= k2

s13 = k1

s12 = k0 ? IV1

s10= k2 ? 1 ? IV2 s9 = k1 ? 1 ? IV3 s8 = k0 ? 1 s6= k2

s5 = k1

s4 = k0 s0 = k0 ? 1

s2= k2? 1 s1 = k1 ? 1

FSM初始为:R1 = R2 = R3 = 0; 执行以下步骤,循环32次:

?

步骤1:更新FSM(有限状态机)来产生初值F(四个字节)

? 步骤2:利用LFSR(线性反馈移位寄存器)以F为输入参数进行密钥初始化

3.1.2.4.2 生成密钥流

13

?-1 s15 ? s11 FSM s5 s2 s1 s0 ? R1 zt S1 R2 S2 R3 ? 图3.1.2.4-2 生成密钥流流程

密钥流是一串字(四个字节)组成的位流,以四个字节为一组。用z1,z1,??zn表示。其中,n = (LENGTH + 31) / 32,z1表示最高有效字。按照最高字到最低字的顺序组合z1 ||z2 || ?? ||zn。最终得到的密钥流为KS[0],KS[2],??KS[LENGTH-1],其中KS[0]为最高有效位。

如图4.2所示生成密钥流流程:

首先,FSM clock一次,丢弃FSM输出字;然后LFSR在密钥流模式下clock一次。 在n个32-bit字的密钥流生成以后,执行n次以下步骤:

? 步骤1:FSM clock,产生一个32-bit输出字F;

? 步骤2:计算下一个密钥流字:zt = F ? s0; ? 步骤3:LFSR 在密钥流模式下clock。

3.1.2.4.3 计算得到密文

利用已经生成的密钥流和明文做异或操作,得到密文 对于整数i,有以下表达式,for为循环语句,OBS为密文 for(i = 0; i < LENGTH – 1;i++) {

OBS[i] = IBS[i] ^ KS[i]; }

14

3.1.3 128-EEA2

3.1.3.1 EEA2算法原理

128-EEA2算法基于CTR模式的128-bit AES。AES(ADVANCED ENCRYPTION STANDARD)的加密算法有如下几种模式:CBC(Cipher Block Chaining)模式、ECB(Electronic Codebook)模式、(CFB)Cipher Feedback模式、(OFB)Output Feedback模式、CTR(COUNTER)模式、CMAC模式等。而EEA2算法采用的就是128位的AES中的CTR模式进行加密的。AES的加密原理是块加密算法和对称加密算法。EEA2是以16个字节(128位)为一块,把密钥和明文分成若干块。用轮密钥的方法来产生密钥,每一轮采用不同的替换函数进行变换,这样可以保证有更高的安全性。CTR模式(COUNTER)顾名思义就是计数模式,利用COUNT、BEAR、DIRECTION等参数构成一个128位的输入块,用最低位的32位的值做为计数值,每加密一块明文计数就增加一次,这样就会产生T1、T2、T3??Tn等若干输入块,这样在每一块明文加密的过程中采用的输入块都是不相同的,这样的目的就是保证了安全性,不易被破解。EEA2的CTR模式的加解密过程可以用下面的公式来简易给出: CTR 加密:

Oj = CIPHK(Tj) for j = 1, 2 … n;

Cj = Pj ⊕ Oj for j = 1, 2 … n-1; C*n = P*n ⊕MSBu(On). CTR 解密:

Oj = CIPHK(Tj) for j = 1, 2 … n;

Pj = Cj ⊕ Oj for j = 1, 2 … n-1; P*n = C*n ⊕MSBu(On). 其中:n = (Length ) / 16;

输入块T1、T2??Tn的关系如下:

T1 = COUNT[0] | ??COUNT[31] | BEARER[0] |??BEARER[4] | DIRECTION | 0 ^ 26 | 0 ^ 32 | COUNTER[0] ??COUNTER[31];

Tn = Tn-1 + 1;计数的增加通过COUNTER = (COUNTER + 1) mod (2 ^32)来实现。 3.1.3.2 输入和输出

表3.1.4.2-1为输入参数,表3.1.4.2-2为输出参数。

15


LTE - Security(加密保护算法)(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:东飞电子商务有限公司项目建设运营计划书 (1)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: