李小文,邵明苗
(重慶郵電大學通信與信息系統,重慶 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.