張美玲 竇佩佩


摘 要:移動通信中的f9算法是信令消息的完整性驗證算法,它通過內核算法計算出信息的消息認證碼,內核算法的安全性決定了f9算法的安全性。針對這個特性,提出了以IDEA為內核算法的f9算法,并與原內核為KASUMI的f9算法在加密速度上進行了比較。實驗結果表明內核為IDEA的f9算法在加密速度上有了明顯的提高。
【關鍵詞】移動通信 f9算法 IDEA 速度測試
目前,移動通信正在向4G通信平滑過渡,4G通信系統備受廣泛研究,4G的發展是繼 3G 標準的另一個階段。移動通信提供了多媒體業務、數據業務、以及多種信息服務。人們在使用這些服務的同時,大量敏感數據通過無線信道傳送或者存儲在無線平臺上,因此這些業務的大量出現對移動通信網絡的安全性提出了更高的要求。3G系統中的安全方案主要是實現用戶間安全通信,為特定的業務類型而設計,其中f9算法是信令消息的完整性驗證算法,用于對移動站和網絡間發送的控制信令信息進行完整性驗證。f9算法的研究對4G系統的網絡安全有很大的作用,能幫助4G移動通信機制更加健壯。
1 f9算法簡介
f9算法通過KASUMI算法生成完整性消息認證碼(MAC-I),對用戶終端(UE)和無線網絡控制器(RNC)之間的無線鏈路上的信令數據進行完整性保護和并對信令數據來源進行認證。f9算法是二進制消息認證MAC產生模塊,在主密鑰的控制下,采用密碼分組鏈接模式CBC,產生的消息認證碼用來對通信數據的來源和完整性進行認證。
2 KASUMI算法
KASUMI算法主要用來構建3G系統中的安全算法f8和f9。它是基于日本三菱公司的分組密碼MISTY算法進行改進的。KASUMI算法是一個采用Feistel結構的分組加密算法,密鑰長度為128比特,對一個64比特的輸入分組進行八輪的迭代運算,產生長度為64比特的輸出。輪函數包括一個輸入輸出為32比特的非線性混合函數FO和一個輸入輸出為32比特的線性混合函數FL。函數FO由一個輸入輸出為16比特的非線性混合函數FI進行3輪重復運算而構成。而函數FI是由使用非線性的S-盒S7和S9構成的4輪結構。
3 以IDEA算法為f9算法的內核算法
3.1 IDEA算法簡介
IDEA算法是分組長度為64位,密鑰長度為128位的分組密碼算法,加密算法與解密算法相同。輸入的64-位數據分組被分成4個16-位子分組:X1,X2,X3,X4。這4個子分組成為算法的第一輪的輸入,總共有8輪。在每一輪中,這4個子分組相互相異或,相加,相乘,且與6個16-位子密鑰相異或,相加,相乘。在輪與輪間,第二和第三個子分組交換。最后在輸出變換中4個子分組與4個子密鑰進行運算。
該算法用了52個子密鑰(8輪中的每一輪需要6個,其他4個用與輸出變換)。首先,將128-位密鑰分成8個16-位子密鑰。這些是算法的第一批8個子密鑰(第一輪六個,第二輪的頭兩個)。然后,密鑰向左環移25位后再分成8個子密鑰。開始4個用在第二輪,后面4個用在第三輪。密鑰再次向左環移25位產生另外8個子密鑰,如此進行直到算法結束。
3.2 內核為IDEA的f9算法實現
由于IDEA算法理論設計上能抵抗差分攻擊和線性攻擊,具有很高的安全性,軟硬件實現容易,算法處理速度快,滿足3GPP中安全算法的要求,所以IDEA算法可以作為f9的內核算法。IDEA算法和KASUMI算法的明文分組長度和密鑰長度相同,所以IDEA算法應用在f9算法中的參數設置也是一致的。
3.2.1 輸入輸出參數
f9算法在輸入參數完整性序列號COUNT、方向標識DIRECTION、隨機數FRESH、主密鑰IK和認證消息MESSAGE的作用下,生成消息認證碼MAC-I。其參數如表1所示。
3.2.2 初始化設置
設置寄存器變量A=0,B=0,分別為64bit;KM為128bit常數,設置為0123456789ABCDEF0123456789ABCDEF;PS = COUNT ||FRESH||MESSAGE||DIRECTION[0]||1||0...0。PS為輸入參數COUNT,FRESH, MESSAGE和DIRECTION并聯在一起,其后再放一個“1”,跟著在“1”后面填充0,使PS的位數為64的整數倍數。
3.2.3 消息認證碼
消息認證碼由以下流程生成:
(1)先將PS分成若干個長度為64bit的分組PSn,0 (2)計算寄存器A的值:A=IDEA(A⊕PSn,IK) (3)計算寄存器B的值:B =B⊕A (4)計算B = IDEA(B,IK⊕KM) (5)取得32bit的消息認證碼為B的左邊32個bit:MAC-I[i] = B[i] (i=0…31),右邊的32個bit即B[32] ...B[63]被舍棄。 4 速度測試比較 本實驗采用的機器型號為:Intel處理器主頻為3.3GHz;內存為4G;操作系統為Windows 7;機器型號為Core i3-3220。在Microsoft Visual C++ 6.0開發工具中用CTimeSpan類在加密程序的開始和結束用來獲取時間,兩個時間之差就是程序所用時間。本文做了五次測試,采用五個不同的主密鑰,如表2所示,每次測試來加密不同的數據量,最后將五次實驗求得平均值。 為了比較內核為KASUMI算法和IDEA算法的f9軟件實現的加密速度,采用的是相同的參數設置,相同的機器環境、相同的明文以及相同的五種主密鑰。使用兩種不同內核算法的f9在五種主密鑰下加密9種不同的數據量所用的時間對比見圖1所示(單位為毫秒)。
從圖1可以看出,隨著數據量的增加,內核為IDEA的f9算法,比起原始內核為KASUMI的f9算法,加密速度有很大的提高,所用的平均時間比以前少了2s左右。從理論上講,采用IDEA為內核算法的f9方案從實現效率角度來看是可行。這就為3G無線鏈路上數據保護的安全性研究提供了可行性依據。
5 結束語
內核算法是f9算法的重要組成部分,f9算法是通過內核算法計算出信息的消息認證碼,內核算法的安全性直接決定了f9算法的安全性。本文研究了內核為IDEA的f9算法,并與原始內核KASUMI的f9算法在加密速度上進行了比較。實驗結果表明內核為IDEA比原始KASUMI的f9算法在加密速度上有了明顯的提高。這就為移動通信無線鏈路上數據保護的安全性研究和分組密碼IDEA算法充當f9的內核算法的可能性提供了理論依據。
參考文獻
[1]唐成永.4G時代的信息安全威脅[J].信息與電腦,2015.
[2]朱里奇.第三代移動通信系統(3G)安全性研究[D].武漢:華中科技大學,2004.
[3]3GPP TS 35.201.Specification of 3GPP confidentiality and integrity algorithm:f8 and f9 specification[S],2009.
[4]3GPP TS 35.202.Specification of 3GPP confidentiality and integrity algorithm:KASUMI specification[S],2007.
[5]Lai X.On the Design and Security of Block Ciphers.ETH Series in Information Processing(1).Hartung-gorre Verlag,Konstanz,1992.
[6]Bruce Schneier 著,吳世忠等譯.應用密碼學-協議、算法與C語言程序[M].北京:機械工業出版社,2000.
[7]3GPP TS 33.105.3G Security Cryptographic Algorithm Requirement[S].2001.
[8]劉丹 張亞新等編著. Visual C++從入門到精通(第二版)[M].北京:化學工業出版社,2011.
作者簡介
張美玲(1981-),女,河南省滑縣人。軍事學碩士研究生學歷。現為石河子大學信息科學與技術學院講師。研究方向為 密碼通信技術。
竇佩佩(1988-),女,陜西省鳳翔縣人。軍事學碩士研究生學歷。現為石河子大學信息科學與技術學院講師。研究方向為 密碼加解密算法研究。
作者單位
石河子大學信息科學與技術學院 新疆維吾爾自治區石河子市 832000