資源描述:
《lte安全算法探究和實(shí)現(xiàn)》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在學(xué)術(shù)論文-天天文庫。
1、LTE安全算法探究和實(shí)現(xiàn) 摘要:LTE的系統(tǒng)安全是LTE網(wǎng)絡(luò)正常工作的必要保證,它涉及到控制平面和用戶數(shù)據(jù)平面兩部分,但在協(xié)議實(shí)現(xiàn)上,面臨著跨層帶來的許多問題,如較為復(fù)雜的系統(tǒng)設(shè)計(jì)和低時延的數(shù)據(jù)處理。針對上述問題,在此對LTE安全算法的原理進(jìn)行了研究,并且給出了加密和完整性保護(hù)算法的實(shí)現(xiàn)過程。關(guān)鍵詞:加密;完整性保護(hù);LTE;密鑰生成中圖分類號:TN929.5?34文獻(xiàn)標(biāo)識碼:A文章編號:1004?373X(2014)06?0078?030引言LTE系統(tǒng)對數(shù)據(jù)的安全保護(hù)有2種:信令數(shù)據(jù)的完整性保護(hù)以及對信令數(shù)據(jù)、用戶平面數(shù)據(jù)的加密保護(hù)。完整性保護(hù)是一種消息鑒權(quán)機(jī)
2、制,用以防止非法器件攔截與修改信令消息,而加密保護(hù)是為了防止非法分子竊聽用戶數(shù)據(jù)及信令[1]。LTE系統(tǒng)采用KDF(KeyDeriveFunction)函數(shù)來生成加密算法和完整性保護(hù)算法所需的密鑰。在此基礎(chǔ)上制定了3種加密算法、2種完整性保護(hù)算法。下面對這3類安全算法進(jìn)行研究與實(shí)現(xiàn)。1KDF函數(shù)71.1HMAC函數(shù)LTE利用HMAC?sha?256作為KDF函數(shù)來產(chǎn)生密鑰,HMAC是密鑰相關(guān)的哈希運(yùn)算消息認(rèn)證碼,HMAC運(yùn)算通過哈希算法生成一個消息摘要。HMAC通過一個加密用散列函數(shù)H和一個密鑰K來進(jìn)行定義[2]。HMAC約定算法的表示意義:H表示所采用的HASH
3、算法,K表示認(rèn)證密碼,K0表示Hash算法的密文,B表示H中所處理的塊大小,L表示Hash的大小,Opad表示Hash的大小。HMAC運(yùn)算公式以及步驟:1.2SHA?256SHA?256是一種安全散列算法,算法思想是將一段明文不可逆的轉(zhuǎn)換成一段密文。SHA?256將任意長度的消息壓縮成位數(shù)固定為256b的Hash值。Hash一個消息要經(jīng)以下步驟([]表示模2加,+表示模32加):(1)填充消息塊,使每個消息塊的長度是512b的整數(shù)倍;(2)擴(kuò)展消息。填充之后的N個長度為512b的消息塊標(biāo)記為M(1),M(2),…,M(N),每個消息塊分為16個32bM0(j),M
4、1(j),…,M15(j),最后將這16個32b消息塊擴(kuò)展式中:POTR(x,n)表示x循環(huán)右移n位;SHR(x,n)表示x右移n位。7(3)函數(shù)更新。對于i從0~63,這里Ki是常數(shù),取自前64個素?cái)?shù)立方根小數(shù)部分的前32b,Ch,Maj是具有32b字輸入,32b字輸出的函數(shù),然后計(jì)算第j步的Hash值,當(dāng)j=N時的Hash值即為sha-256的Hash值。2加密算法LTE規(guī)范中指出LTE的UE端、eNB端和MME端都應(yīng)實(shí)現(xiàn)以下3種加密算法,如表1所示。表1LTE加密算法2.1SNOW3G算法SNOW3G加密算法的工作流程分為初始化密鑰和在時鐘周期控制下產(chǎn)生流序
5、列2步。2.1.1SNOW3G的時序操作(1)LFSR時序操作(2)FSM時序操作2.1.2SNOW3G算法運(yùn)算過程(1)初始化操作將密鑰和初始變量進(jìn)行初始化,其中密鑰和初始化變量都為128位。密鑰包含4個字段R1R2R3R4,每個字段為32位。初始化變量包含4個字段IV3IV2IV1IV0,每個字段為32位。設(shè)置LFSR;初始化FSM,使R1,R2和R3均為0;循環(huán)操作32次:對FSM進(jìn)行時序操作;對LFSR采用初始化模式進(jìn)行時序操作。7(2)生成密鑰流對LFSR利用密鑰流模式進(jìn)行一次時序操作;對下面操作循環(huán)N次(N為需要得到的N個32位輸出):對FSM進(jìn)行一次
6、時序操作,得到32位F;Zt=F⊕S0,得到下一個密鑰;對LFSR進(jìn)行一次時序操作,采用密鑰流模式。2.2AES算法Rijndael算法的輸入有2部分,分別是明文比特流和密鑰比特流,其中明文比特流映射到4×Nb的狀態(tài)矩陣,密鑰比特流映射到4×Nk的狀態(tài)矩陣。輸出是密文比特流。Rijndael算法的核心為輪運(yùn)算,中間每輪運(yùn)算由輪密鑰加運(yùn)算、混合列變換、行移位變換、字節(jié)替代變換組成。運(yùn)算的輪數(shù)Nr是由Nb和Nk決定的。在當(dāng)前的LTE系統(tǒng)中,均采用128b的明文和128b的密鑰的分組方式,即Nb=4和Nk=4,所以執(zhí)行的輪變換次數(shù)為10次[6?8]。如圖1所示。2.31
7、28位加密算法發(fā)送方將各個輸入?yún)?shù)輸入到加密算法中,產(chǎn)生KEYSTREAMBLOCK,然后與明文逐比特異或,得到密文。接收方使用相同的輸入?yún)?shù),利用同樣的加密算法得到KEYSTREAMBLOCK,再與密文相異或,得到明文。在基站端和終端使用完全相同的加密過程。整個流程如圖2所示。7輸入?yún)?shù)意義為:KEY表示128位加密密鑰,COUNT表示32位計(jì)數(shù)器,BEARER表示5位承載標(biāo)識,DIRECTION表示1位傳送方向標(biāo)識,LENGTH表示輸入消息長度。在LTE中,要求使用兩種加密算法128?EEA1和128?EEA2算法。3完整性算法LTE規(guī)范中指出LTE的UE端、
8、eNB端和