表3.1.4.2-1 输入参数
参数 大小(bits) 注释 COUNT-C 32 结构取决于输入COUNT-I[0]…COUNT-I[31] BEAR 5 承载实体BEARER[0]…BEARER[4] DIRECTION 1 传输方向DIRECTION[0] IK 128 加解密密钥IK[0]…IK[127] LENGTH 64 加密的明文的长度(以字节为单位) T-COUNTER 128 利用以上参数构造的输入块的长度 IBS LENGTH 输入的明文
表3.1.4.2-2 输出参数
参数 大小(bits) 注释 OBS LENGTH 输出的密文 16
3.1.3.3 EEA2算法流程图
图3.1.4.3-1 EEA2加解密算法流程
如图3.1.4.3-1所示,加解密算法EEA2的流程有以下步骤:
1) 根据输入参数COUNT、BEARER、DIRECTION等构造输入输入块T1 2) 从RRC层获得输入参数KEY;
3) 把明文/密文分成若干块,每块的长度为16字节(128位); 4) 输入块在轮密钥的作用下通过函数替换产生输出块; 5) 输出块和明文做异或操作产生一块密文;
6) 计数块T加一,更新计数值,产生新的输入块; 7) 执行到最后一块则推出 8) 执行步骤4
注意:若最后一块明文的长度不够16字节(128位),则在加密的过程中要单独处理。处理完后放到之前产生的密文/明文的后面。
3.1.4 128-EIA1
3.1.4.1 EIA1算法原理
128-EIA1基于SNOW 3G算法,和UIA2的实现方式相同。
17
3.1.4.2 输入和输出
u32 f9( const u8* key, u32 count, u32 fresh, int dir, u8 *data, u64 length)
算法的输入参数和输出参数见下表。
表3.1.3.2-1输入参数
参数 大小(bits) 注释 COUNT-I 32 结构取决于输入COUNT-I[0]…COUNT-I[31] FRESH 32 随机数FRESH[0]…FRESH[31] DIRECTION 1 传输方向DIRECTION[0] IK 128 完整性密钥IK[0]…IK[127] LENGTH 64 MESSAGE的长度,比特 MESSAGE LENGTH 输入bit流
表3.1.3.2-1 输出参数
参数 大小(bits) 注释 MAC-I 32 消息鉴权码MAC-I[0]…MAC-I[31] 18
3.1.4.3 EIA1算法流程图
DIRECTION || 0....0 COUNT-I 0000000000000000 || DIRECTION || 000000000000000 || FRESH || ? COUNT-I || ? FRESH IV3 || IV2 || IV1 || IV0 IK K3 || K2 || K1 || K0 SNOW 3G z1 || z2 P || || z3 || Q || z4 || || z5 OTP[0] ... OTP[31]
图3.1.3.3-1 EIA1完整性保护算法流程, 第1部分
如图3.1.3.3-1所示,完整性保护算法EIA1的流程中第1部分有以下步骤: 1) 将输入变量转变为适用于SNOW 3G算法的输入变量: K3 = K2 = K1 = K0 = IV3 IV2 IV1 IV0
= = = =
IK[0]
|| IK[1]
|| IK[2]
|| … || IK[31]
IK[32] || IK[33] || IK[34] || … || IK[63] IK[64] || IK[65] || IK[66] || … || IK[95] IK[96] || IK[97] || IK[98] || … || IK[127] COUNT-I[0] || COUNT-I[1] || COUNT-I[2] || … || COUNT-I[31] FRESH[0] || FRESH[1] || FRESH[2] || … || FRESH[31]
DIRECTION[0] ? COUNT-I[0] || COUNT-I[1] || COUNT-I[2] || … || COUNT-I[31]
FRESH[0] || FRESH[1] || … || FRESH[15] || FRESH[16] ? DIRECTION[0] || FRESH[17] || … || FRESH[31]
2) 根据SNOW 3G算法,得到密钥流
z1
||
z2
|| ||
z3
|| Q
z4
|| ||
z5
OTP[0] ... OTP[31]
P
19
z1 || z2 P MESSAGE || 0 ... 0 M0 || ... || MD-2 EVAL_M LENGTH MD-1 ? z3 || z4 Q MUL e0 || e1 || ... || e31 (left 32 bits) z5 OTP[0] || ... || OTP[31] ? MAC-I
图3.1.3.3-2 EIA1完整性保护算法流程, 第2部分
如图3.1.3.3-2所示,完整性保护算法EIA1的流程中第2部分有以下步骤:
1) 根据EVAL_M功能计算得到参数
2) 将1)中得到的参数与MD-1进行与或计算,得到
3) 将2)中得到的参数与Q进行MUL计算,得到数值e0 || e1 || ... || e31
4) 将3)中得到的参数与OTP[0] || ... || OTP[31]进行与或计算,得到最终的密钥验证码MAC-I。3.1.4.4 EIA1算法解析
3.1.4.4.1 初始化输入参数
1. 根据输入参数得到SNOW 3G算法需要的参数,如图4.2.4
20
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库LTE - Security(加密保护算法)(4)在线全文阅读。
相关推荐: