李小文,邵明苗
(重庆邮电大学通信与信息系统,重庆 400065)
由于LTE移动通信系统采用了扁平化的无线接入网框架,使得eNodeB处于一个不被完全信任的区域。同时,由于网络技术的日益发展、网络环境的日益开放,使得信息在传输时遭遇到越来越多、不可预知的安全威胁,所以LTE系统提出了基于分层的安全结构:
1)接入层安全:主要执行用户接入鉴权和密钥加密协商、RRC层信令的加密和完整性保护、用户数据的加密保护等。
2)非接入层安全:主要执行用户接入鉴权、NAS信令的加密和完整性保护等。
同时,LTE中引入分层密钥体系,优势在于对不同的目的使用不同的密钥,可以最大限度地降低泄密密钥带来的安全风险。
LTE移动通信系统中的密钥派生体系见图1,其中密钥K为AUC(网络端鉴权中心)和USIM中共享的总密钥。CK、IK是HSS与USIM在EPS-AKA(演进的分组系统认证和密钥协商)过程中生成的加密与完整性保护密钥。KASME是HSS与UE根据CK、IK生成的安全性密钥。KASME的派生子密钥KNASint、KNASenc分别用于UE与MME之间的非接入层信令的加密与完整性保护。KeNB的派生子密钥KRRCint、KRRCenc、KUPenc分别用于UE与eNodeB实体中RRC信令的加密、RRC信令的完整性保护、用户数据的加密。参数NH用于在切换过程中更新KeNB。
图1 LTE移动通信系统中的密钥派生体系
这些密钥的生成都是基于SHA-256核心算法。为了加强LTE中的安全性,文章将对此算法进行优化。
SFHA-256算法是基于Generic 3C-Hash结构(图2)。首先数据流经过基于M-D结构的f函数的处理,再将输出结果利用ZPAD进行填充,最后f'函数的输出作为f函数的输入。需要注意的是3C结构需要进行2次填充,一次是对初始数据流的填充,一次是利用ZPAD进行填充。
本文中,+表示进行模为232的加法;⊕表示异或;A<<<s表示字符串左移sbit。
图2 Generic 3C-Hash算法结构
1)填充
首先在数据流的末尾添加1 bit的1,然后再添加0,直到信息的长度对512求余是448,余下的64 bit填充为原始输入数据流的长度。
2)轮函数
SFHA-256的轮函数包括两部分:f和f'(图3)。f包括两个平行分支:Branch1和Branch2。因此攻击者如果想破解该算法就需要同时破解这两个函数,从而提高了密钥的安全性。其中f'只包括f的一个分支。
令CVi=[A,B,C,D,E,F,G,H],它的初始值CV0如下:
图3 未优化的SFHA-256轮函数框图
A0=6A09E667,B0=BB67AE85,C0=3C6EF372,D0=A54FF53A,E0=510E527F,F0=9B05688C,G0=1F83D9AB,H0=5BE0CD19。
每个连续的512 bit的信息块M被分成16块,每块32 bit,依次为M0,M1,…,M15。每个分支的计算公式为
其中M的排序顺序如下:
3)算法步骤
未优化的SFHA-256算法结构如图4所示。
图4 SFHA-256算法结构
1)图4中,输出变量的值为
2)s*的说明
当K=0 时,s1=5,s2=9,s3=3,s4=11,s5=8,s6=13,s7=7,s8=10。
当K=1,2,3 时,有
3)β*的说明
在Branch1中用到的常量如下:
[β0,β1,…,β15]=[428A2F98,71374491,B5C0FBCF,E9B5DBA5,3956C25B,59F111F1,923F82A4,AB1C5ED5,D807AA98,12835B01,243185BE,550C7DC3,72BE5D74,80DEB1FE,9BDC06A7,C19BF174]。
在Branch2中顺序是相反的。
整个未优化的SFHA-256算法的结构框图如图5所示。
图5 未优化的SFHA-256算法结构
由于未优化的SFHA-256算法是基于3C结构的算法,而SHA-256算法是基于M-D结构的,因此SFHA-256算法能够更好地防御碰撞攻击和多模块攻击。同时由于SFHA-256的压缩模块有两个平行的分支,使得攻击者很难能同时破解两个分支。轮询因子的变化能更好地避免冲突,而SHA-256中的轮询因子是固定的。
未优化的SFHA-256的缺点:由于f'只包括f的一个分支,显然存在部分算法重复的嫌疑,因此需要对该部分算法进行改进。
函数f'的改进方法为:
1)第k步的输入被分成8个32 bit的字:Ak,Bk,Ck,Dk,Ek,Fk,Gk,Hk。
2)第k+1步的计算过程如下:
其中s*的说明如下:
当K=0 时,s1=5,s2=9,s3=3,s4=11,s5=8,s6=13,s7=7,s8=10。
当K=1,2,3 时,有
雪崩效应是指一种不稳定的平衡状态,也是加密算法的一种特征,它指明文或密钥的少量变化会引起密文的巨大变化,可以用来评估密钥的抗冲突性。
抗冲突性可通过改变1 bit输入数据来观察输出散列值变化的位数来衡量。输入数据差异越小,输出散列值差异越大,这说明冲突的可能性越小,抗冲突能力越强。均匀分布SFHA-256指哈希码中0和1的比例,0/1越接近0.5安全性越好。下面从抗冲突性和均匀分布这两方面来评估SFHA-256和优化的SFHA-256的性能。
1)设置基础输入数据=“abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijkl”,对应的十六进 制 为 0x61626364, 0x65666768, 0x696A6B6C,0x6D6E6F70, 0x71727374, 0x75767778, 0x797A6162,0x63646566, 0x6768696A, 0x6B6C6D6E, 0x6F707172,0x73747576,0x7778797A。
2)按照如下规则改变基础输入数据的1 bit,产生32组不同的输入数据序input1~input32:
(1)input1~input8:基础输入数据为01100001,从高位到低位每次改变1 bit,其他位不变。
(2)input9~input16:基础输入数据为01100110,从高位到低位每次改变1 bit,其他位不变。
(3)input17~input24:基础输入数据为01101100,从高位到低位每次改变1 bit,其他位不变。
(4)input25~input32:基础输入数据为01110000,从高位到低位每次改变1 bit,其他位不变。
3)仿真结果
仿真分析:仿真图6中x轴代表input的编号,y轴代表输入信息改变1 bit所造成的输出变化位数与改变前输出变化位数差值。在上述32组散列值中,SFHA-256变化位数的均值是126.419,而优化的SFHA-256变化位数的均值是129.064,说明优化的SFHA-256算法具有更好的抗冲突能力。
仿真分析:如图7所示的24组散列值中,在优化的SFHA-256算法中,0和1出现的概率更逼近0.5,说明优化的SFHA-256算法具有更好的均匀分布性能。
图7 均匀分布仿真图
综上所述,在LTE当中利用优化的SFHA-256作为密钥生成的核心算法能够更好地保证用户数据的安全性。
在对LTE安全性的研究中,发现当前用于生成各密钥的SFHA-256算法在防止攻击方面有一定的缺陷,因而对SFHA-256算法进行了一定的优化,并输入24组输入数据进行仿真。通过对仿真结果进行分析表明,优化的SFHA-256在抗冲突性和均匀分布方面有更好的表现,因此在“TD-LTE射频一致性”项目的后续开发中将使用该算法,并尽可能地优化。
:
[1]3GPP TS 33.401 V9.7.0,3GPP System Architecture Evolution(SAE);Security Architecture[S].2011.
[2]MENZES A J,OROSCHT P C,VANSTONE S A.Handbook of applied cryptography[M].Boca Raton,Florica:CRC Press,1997.
[3]STALLINGS W.Cryptography and network security:practice[M].[S.l.]:Prentice-Hall Inc,2003.
[4]GAURANVARAM P,MILLAN W,NEITO J G,et al.3C-aprovably secure pseudorandom function and message authentication code[EB/OL].[2013-02-10].http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.79.6073.