LTE安全算法的研究与实现

时间:2022-09-07 04:09:05

LTE安全算法的研究与实现

摘 要: LTE的系统安全是LTE网络正常工作的必要保证,它涉及到控制平面和用户数据平面两部分,但在协议实现上,面临着跨层带来的许多问题,如较为复杂的系统设计和低时延的数据处理。针对上述问题,在此对LTE安全算法的原理进行了研究,并且给出了加密和完整性保护算法的实现过程。

关键词: 加密; 完整性保护; LTE; 密钥生成

中图分类号: TN929.5?34 文献标识码: A 文章编号: 1004?373X(2014)06?0078?03

0 引 言

LTE系统对数据的安全保护有2种:信令数据的完整性保护以及对信令数据、用户平面数据的加密保护。完整性保护是一种消息鉴权机制,用以防止非法器件拦截与修改信令消息,而加密保护是为了防止非法分子窃听用户数据及信令[1]。

LTE系统采用KDF(Key Derive Function)函数来生成加密算法和完整性保护算法所需的密钥。在此基础上制定了3种加密算法、2种完整性保护算法。下面对这3类安全算法进行研究与实现。

1 KDF函数

1.1 HMAC函数

LTE利用HMAC?sha?256作为KDF函数来产生密钥,HMAC是密钥相关的哈希运算消息认证码,HMAC运算通过哈希算法生成一个消息摘要。

HMAC通过一个加密用散列函数H和一个密钥K来进行定义[2]。HMAC约定算法的表示意义:H表示所采用的HASH算法,K表示认证密码,K0表示Hash算法的密文,B表示H中所处理的块大小,L表示Hash的大小,Opad表示Hash的大小。

HMAC运算公式以及步骤:

1.2 SHA?256

SHA?256是一种安全散列算法,算法思想是将一段明文不可逆的转换成一段密文。SHA?256将任意长度的消息压缩成位数固定为256 b的Hash值。Hash一个消息要经以下步骤([]表示模2加,+表示模32加):

(1) 填充消息块,使每个消息块的长度是512 b的整数倍;

(2) 扩展消息。填充之后的N个长度为512 b的消息块标记为M(1),M(2),…,M(N),每个消息块分为16个32 b M0(j),M1(j),…,M15(j),最后将这16个32 b消息块扩展式中:POTR(x,n)表示x循环右移n位;SHR(x,n)表示x右移n位。

(3) 函数更新。对于i从0~63,这里Ki是常数,取自前64个素数立方根小数部分的前32 b,Ch,Maj是具有32 b字输入,32 b字输出的函数,然后计算第j步的Hash值,当j=N时的Hash值即为sha-256的Hash值。

2 加密算法

LTE规范中指出LTE的UE端、eNB端和MME端都应实现以下3种加密算法,如表1所示。

表1 LTE加密算法

2.1 SNOW 3G算法

SNOW 3G加密算法的工作流程分为初始化密钥和在时钟周期控制下产生流序列2步。

2.1.1 SNOW 3G的时序操作

(1) LFSR时序操作

(2) FSM时序操作

2.1.2 SNOW 3G算法运算过程

(1) 初始化操作

将密钥和初始变量进行初始化,其中密钥和初始化变量都为128位。密钥包含4个字段R1 R2 R3 R4,每个字段为32位。初始化变量包含4个字段IV3 IV2 IV1 IV0,每个字段为32位。设置LFSR;初始化FSM,使R1,R2和R3均为0;循环操作32次:对FSM进行时序操作;对LFSR采用初始化模式进行时序操作。

(2) 生成密钥流

对LFSR利用密钥流模式进行一次时序操作;对下面操作循环N次(N为需要得到的N个32位输出):对FSM进行一次时序操作,得到32位F;Zt = FS0,得到下一个密钥;对LFSR进行一次时序操作,采用密钥流模式。

2.2 AES算法

Rijndael算法的输入有2部分,分别是明文比特流和密钥比特流,其中明文比特流映射到4×Nb的状态矩阵,密钥比特流映射到4×Nk的状态矩阵。输出是密文比特流。Rijndael算法的核心为轮运算,中间每轮运算由轮密钥加运算、混合列变换、行移位变换、字节替代变换组成。运算的轮数Nr是由Nb和Nk决定的。在当前的LTE系统中,均采用128 b的明文和128 b的密钥的分组方式,即Nb=4和Nk=4,所以执行的轮变换次数为10次[6?8]。如图1所示。

2.3 128位加密算法

发送方将各个输入参数输入到加密算法中,产生KEYSTREAM BLOCK,然后与明文逐比特异或,得到密文。接收方使用相同的输入参数,利用同样的加密算法得到KEYSTREAM BLOCK,再与密文相异或,得到明文。在基站端和终端使用完全相同的加密过程。整个流程如图2所示。

输入参数意义为:KEY表示128位加密密钥,COUNT表示32位计数器,BEARER表示5位承载标识,DIRECTION表示1位传送方向标识,LENGTH表示输入消息长度。在LTE中,要求使用两种加密算法128?EEA1和128?EEA2算法。

3 完整性算法

LTE规范中指出LTE的UE端、eNB端和MME端都应实现以下完整性算法,如表2所示。

表2 LTE完整性算法

如图3所示,由输入参数,通过完整性算法产生一个32位的用于完整性保护的消息认证码(Message Authentication Code for Integrity,MAC?I),将其连接在要发送的信息后面一起发送到接收方,接收方通过同样的算法和输入参数计算出XMAC?I(Expected MAC?I),与收到的MAC?I进行比较校验消息的完整性。其中,大部分输入参数与加密算法中使用的输入参数相同,MESSAGE表示输入消息BEARER?ID为无线承载ID[9?11]。

4 结 语

本文介绍了LTE加密以及完保性算法的原理以及实现过程,说明了KDF函数的原理,以及SNOW 3G算法,AES算法,128位加密算法等算法的实现过程,随着将来4G的正式商用普及,相信这些算法会不断的完善优化,得到更多的运用。

参考文献

[1] 苏信丰.UMTS空中接口与无线工程概论[M].朗讯科技(中国)有限公司无线工程组,译.北京:人民邮电出版社,2006.

[2] KRAWCZYK H, BELLARE M, CANETTI R. HMAC: keyed?hashing for message authentication [EB/OL]. [2009?11?15]. http:// /bibtex/.../henkellermann.

[3] NIST. FIPS180?2: secure hash standard [S]. USA: Federal Inforation Processing Standards, 2002.

[4] 武金梅.对缩短步数的HASH函数算法SHA?256,SHA?512的分析[D].济南:山东大学,2008.

[5] ETSI. TC SAGE specification: specification of the 3GPP confidentiality and integrity algorithms UEA2 & UIA2, document 2 [S]. [S.l.]. NTSI, 2011.

[6] NIST. Advanced encryption standard (FIPS PUB 197) [EB/OL]. [2001?11?26]. http:// /aes_information.

[7] DAEMEN Joan, RIJMEN Vincent.AES proposal: rijndael [R]. [S.l.]: [s.n.], 1998.

[8] 吴云梅,李小文,刘丹丹.LTE中的Rijndael算法研究[J].电视技术,2010(12):84?86.

[9] ETSI. 3GPP TS 35.215 V9: specification of the 3GPP confidentiality and integrity algorithms UEA2 & UIA2, document 1 [S].[S.l.]. NTSI, 2011.

[10] ETSI. TC SAGE specification: specification of the 3GPP Confidentiality and Integrity Algorithms UEA2 & UIA2; Document 1, v2.1 [S]. [S.l.]. NTSI, 2011.

上一篇:简析建筑工程防渗漏施工监理 下一篇:水泥实验室能力验证信息统计分析系统设计