77范文网 - 专业文章范例文档资料分享平台

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

来源:网络收集 时间:2019-06-11 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

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

根据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:The FSM is clocked (see 错误!未找到引用源。) producing the 32-bit word F

步骤2:Then the LFSR is clocked in Initialisation Mode (see 错误!未找到引用源。) consuming F(LFSR运行初始化模式,32比特F作为输入,也是输出)

3.1.4.4.2 生成密钥流

21

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

如图4.2.5所示生成密钥流流程:首先,FSM clock一次,丢弃FSM输出字;然后LFSR在密钥流模式clock一次。

在生成32-bit字的密钥流时,执行5次以下步骤,生成5个32比特的密钥流: 步骤1:FSM clock,产生一个32-bit输出字F; 步骤2:计算下一个密钥流字:zt = F ? s0; 步骤3:LFSR 在密钥流模式下clock。

3.1.4.4.3 计算得到鉴权码MAC

根据Eval_M函数计算: 1) EVAL = 0;

2) For(i=0;i<=D-2;i++)

{ }

3) EVAL = EVAL ? MD-1;

4) EVAL = Mul(EVAL, Q, 0x000000000000001b); 5) For(i=0;i<=31;i++)

22

EVAL = MUL(EVAL ? Mi, P, 0x000000000000001b );

{ }

根据得到的鉴权码MAC-I,判断消息的完整性。

MAC-I[i] = ei ? OTP[i];

3.1.5 128-EIA2

3.1.5.1 EIA2算法原理

128-EIA2基于CMAC模式的128-bit AES算法。 MESSAGE的比特长度称为BLENGTH。

CMAC模式的输入是Mlen长度的字符串M。M由以下几部分组成: M0 .. M31 = COUNT[0] .. COUNT[31] M32 .. M36 = BEARER[0] .. BEARER[4] M37 = DIRECTION

M38 .. M63 = 026 (i.e. 26 zero bits)

M64 .. MBLENGTH+63 = MESSAGE[0] .. MESSAGE[BLENGTH-1] 于是,Mlen = BLENGTH + 64.

CMAC模式的AES算法使用上述输入产生消息鉴权码T(MACT),长度Tlen=32。T用作128-EIA2算法的输出MACT[0] .. MACT[31],MACT[0]是T的MSB。

3.1.5.2 输入和输出

void AES_CMAC(const unsigned char *key, unsigned int count, unsigned char bearer, unsigned char dir, const unsigned char *input, unsigned short length, unsigned char *mac) 输入参数和输出参数见下表。

表3.1.5.2-1输入参数

参数 KEY MESSAGE 大小(bits) 128 LENGTH 密钥 由需要鉴权的消息、COUNT值、BEARER值和DIRECTION构造出的数据 LENGTH

注释 variable>=0 消息长度(按8位字节计算) 23

表3.1.5.2-2 输出参数

参数 MAC 大小(bits) 128 消息鉴权码 注释 3.1.5.3 EIA2算法流程图

开始获取输入参数KEY、MESSAGE、LENGTH根据输入参数KEY计算得到子密钥生成鉴权码MAC检验鉴权码结束

图3.1.5.3-1 EIA2完整性保护算法流程

如图3.1.5.3-1所示,完整性保护算法EIA2的流程有以下步骤:

1) 从RRC层获得输入参数KEY、MESSAGE和LENGTH; 2) 根据输入参数KEY计算得到子密钥:K1,K2;

3) 利用子密钥对MESSAGE加密,生成鉴权码MAC; 4) 验证鉴权码。

注释:以上两种算法中的密钥KEY即KRRCint,该密钥从密钥KeNB中获得;而KeNB又是基于上层提供的密钥KASME。KASME存储在UE和MME中,并在下一个鉴权过程中更新。

24

3.1.5.4 EIA2算法解析

3.1.5.4.1 产生子密钥

产生子密钥的算法为Generate_Subkey(),其输入为密钥K,输出为两个子密钥K1,K2,如图4.3所示。 K1,K2同时应用于鉴权码MAC的生成和验证算法中。K1用于最后一个block长度等于整块长度的情况;K2适用于最后一个block长度小于整块长度的情况。

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + Algorithm Generate_Subkey +

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + + + Input : K (128-bit key) + + Output : K1 (128-bit first subkey) + + K2 (128-bit second subkey) + +-------------------------------------------------------------------+

+ + + Constants: const_Zero is 0x00000000000000000000000000000000 + + const_Rb is 0x00000000000000000000000000000087 + + Variables: L for output of AES-128 applied to 0^128 +

+ + + Step 1. L := AES-128(K, const_Zero); + + Step 2. if MSB(L) is equal to 0 + + then K1 := L << 1; + + else K1 := (L << 1) XOR const_Rb; + + Step 3. if MSB(K1) is equal to 0 + + then K2 := K1 << 1; + + else K2 := (K1 << 1) XOR const_Rb; + + Step 4. return K1, K2; + + +

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

图3.1.5.4-1 Generate_Subkey算法

25

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库LTE - Security(加密保护算法)(5)在线全文阅读。

LTE - Security(加密保护算法)(5).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/656026.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: