《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 通信與網(wǎng)絡(luò) > 設(shè)計(jì)應(yīng)用 > WiMAX數(shù)據(jù)傳輸加密方案設(shè)計(jì)與實(shí)現(xiàn)
WiMAX數(shù)據(jù)傳輸加密方案設(shè)計(jì)與實(shí)現(xiàn)
來源:通信產(chǎn)業(yè)網(wǎng)
摘要: 在各種通信設(shè)備和終端電子產(chǎn)品設(shè)計(jì)方法中,為使產(chǎn)品具有更強(qiáng)大的功能,越來越多地采用了嵌入式系統(tǒng),WiMAX無線通信設(shè)備亦是如此。因此設(shè)計(jì)和開發(fā)現(xiàn)代網(wǎng)絡(luò)和通信技術(shù)中的安全技術(shù)時(shí),必須和嵌入式技術(shù)結(jié)合在一起。本文提出和實(shí)現(xiàn)了一種基于AES-CCM加密算法和ARM+VxWorks嵌入式系統(tǒng)的WiMAX無線接入設(shè)備加密技術(shù)解決方案,并給出了算法模塊在設(shè)備中的應(yīng)用方法。
關(guān)鍵詞: 2.5G|3G WiMAX 數(shù)據(jù)傳輸
Abstract:
Key words :

      在各種通信設(shè)備和終端電子產(chǎn)品設(shè)計(jì)方法中,為使產(chǎn)品具有更強(qiáng)大的功能,越來越多地采用了嵌入式系統(tǒng),WiMAX無線通信設(shè)備亦是如此。因此設(shè)計(jì)和開發(fā)現(xiàn)代網(wǎng)絡(luò)和通信技術(shù)中的安全技術(shù)時(shí),必須和嵌入式技術(shù)結(jié)合在一起。本文提出和實(shí)現(xiàn)了一種基于AES-CCM加密算法和ARM+VxWorks嵌入式系統(tǒng)的WiMAX無線接入設(shè)備加密技術(shù)解決方案,并給出了算法模塊在設(shè)備中的應(yīng)用方法。


1 算法實(shí)現(xiàn)原理

     AES對(duì)稱密碼已經(jīng)廣泛應(yīng)用于數(shù)據(jù)的保密和數(shù)據(jù)完整性認(rèn)證。在具體運(yùn)用時(shí),都會(huì)選擇一種具體的工作模式。目前AES算法已有多種工作模式,例如:ECB,CBC,CFB,OFB,CRT,CCM,GCM和AESKW。其中CCM(Counter with Cipher Block Chaining-Message Authentication Code)模式是一種同時(shí)提供加密和鑒別服務(wù)的全新操作模式。

1.1 CCM模式原理

    使用CCM模式的基本條件包括,發(fā)送方和接收方定義相同的分組密碼算法Ek()(這里為AES加密算法)、密鑰K、記數(shù)器發(fā)生函數(shù)、格式化函數(shù)F()和鑒別標(biāo)記長(zhǎng)度Tlen、有效載荷長(zhǎng)度Plen、隨機(jī)值N。加密算法過程如下:


    格式化函數(shù)F將N,A,P整合在一起,并分組為r個(gè)數(shù)據(jù)塊。對(duì)數(shù)據(jù)塊加密,得到MAC值T,加密計(jì)數(shù)器發(fā)生函數(shù)產(chǎn)生的計(jì)數(shù)塊,加密所得sj和P與T異或得到密文C。解密過程則相反。


1.2 AES算法原理

    AES算法加密過程由4個(gè)不同的處理階段組成,稱為:字節(jié)代換、行移位、列混淆、輪密鑰加。輸入數(shù)據(jù)數(shù)組state進(jìn)行10輪上述處理后,得到加密密文。結(jié)構(gòu)如圖1所示。

                         


2 WiMAX中CCM應(yīng)用規(guī)則改進(jìn)

    在802.16協(xié)議中規(guī)定PDU數(shù)據(jù)包加密后結(jié)構(gòu)如圖2所示。

     6個(gè)字節(jié)的包頭和4個(gè)字節(jié)的PN不需要經(jīng)過加密處理。PN(Packet Number)在協(xié)議中規(guī)定用于防止重放攻擊,如當(dāng)前收到的數(shù)據(jù)包的PN小于前一個(gè)數(shù)據(jù)包的PN時(shí),當(dāng)前收到的數(shù)據(jù)包將被丟棄。PN在發(fā)第一個(gè)包時(shí)值為1,以后每發(fā)一個(gè)包則加1。由于PN和包頭都未經(jīng)加密處理,當(dāng)竊聽者得到一個(gè)PDU時(shí),將得到當(dāng)前PN,并推導(dǎo)出以后各個(gè)數(shù)據(jù)包的PN值。因此引進(jìn)CCM模式雖然能提高攻擊者進(jìn)行重放攻擊的難度和成本,但并不能在技術(shù)上徹底防止重放攻擊。這里采用對(duì)PN進(jìn)行加密處理來防止由于PN值泄露而遭受可能的重放攻擊。加密算法選擇AES算法,密鑰為802.16協(xié)議中的密鑰加密密鑰(KEK)。AES,KEK在系統(tǒng)中是用于對(duì)傳輸加密密鑰(TEK)進(jìn)行加密處理的,本身已經(jīng)存在于系統(tǒng)中,而且被良好地設(shè)計(jì),在控制信息交互過程中,KEK定時(shí)更新。因此采用該方法不會(huì)給系統(tǒng)帶來額外的開銷,不需要引入新的加密算法,不需要維護(hù)密鑰。采用該方法PDU加密后結(jié)構(gòu)如圖3所示。


    由于對(duì)PN進(jìn)行AES加密處理,因此加密后的PN長(zhǎng)度將為16個(gè)字節(jié)。這降低了傳輸數(shù)據(jù)中有效載荷DATA的百分比,不過在實(shí)際應(yīng)用中DATA往往達(dá)到上千或上萬個(gè)字節(jié)。因此為提高安全性和抗攻擊性,犧牲如此少的傳輸效率是值得的。


3 AES-CCM算法實(shí)現(xiàn)及結(jié)果分析

    算法模塊基于富士通3400 WiMAX開發(fā)板ARM+VxWorks平臺(tái)開發(fā),采用通用C庫(kù)函數(shù),可以方便地移植到各種需要安全加密處理的嵌入式產(chǎn)品中。程序提供兩個(gè)接口,AES算法接口和AES-CCM算法接口。前者可以用于對(duì)傳輸加密密鑰TEK的加密處理,后者可以用于對(duì)傳輸數(shù)據(jù)的加密處理,使用者只需簡(jiǎn)單的調(diào)用函數(shù)即可。程序框圖如圖4所示。


程序中實(shí)現(xiàn)了802.16 MAC PDU的構(gòu)建、8 bCRC報(bào)頭校驗(yàn)、32 bC2RC PDU校驗(yàn)、CCM加密模塊、CCM解密模塊、AES加密模塊。

3.1 算法關(guān)鍵模塊實(shí)現(xiàn)

3.1.1 CCM加密模塊

    AES-CCM算法中,加密函數(shù)使用128 b密鑰長(zhǎng)度的AES算法。加密前后WiMAX MAC PDU結(jié)構(gòu)變化如圖5所示。

    CCM加密模塊流程如圖6。該模塊輸入為密鑰K和明文P。在計(jì)算MAC T和計(jì)數(shù)塊S時(shí),調(diào)用AES加密程序。

                               

3.1.2 密鑰K

    在密鑰生成方法中,采用了隨即函數(shù)rand()和系統(tǒng)時(shí)鐘函數(shù)tickGet(),可以保證密鑰的惟一性和更高的不可推測(cè)性。程序如下:

3.1.3 計(jì)數(shù)器發(fā)生函數(shù)

    計(jì)數(shù)器發(fā)生函數(shù)產(chǎn)生的計(jì)數(shù)塊,由PDU報(bào)頭,PN,遞增的整數(shù)i構(gòu)造,長(zhǎng)16個(gè)字節(jié)即128 b。函數(shù)如下:ctr preload為數(shù)組名,該數(shù)組用于存放生成的計(jì)數(shù)塊;modu為指向PDU數(shù)據(jù)的指針;pn vector為PN;i為遞增的整數(shù),每計(jì)算一次計(jì)數(shù)塊后加1。

3.2 算法模塊應(yīng)用方法設(shè)計(jì)和實(shí)現(xiàn)

    算法模塊的應(yīng)用方法主要根據(jù)TEK(傳輸加密密鑰)和CID(連接標(biāo)志)的對(duì)應(yīng)關(guān)系設(shè)計(jì)。在802.16協(xié)議中每一個(gè)CID都對(duì)應(yīng)惟一的密鑰資源,因此可以根據(jù)CID找到對(duì)應(yīng)的密鑰。在系統(tǒng)中創(chuàng)建兩個(gè)表,一個(gè)是TEK表:用于存放加密密鑰;另一個(gè)是CID表:用于存放CID值和對(duì)應(yīng)密鑰索引。CID表中記錄結(jié)構(gòu)如圖7所示。Type字段表示使用的加密方法,O表示DES-CBC,1表示AES-CCM;Key index字段值表示該CID標(biāo)志對(duì)應(yīng)的密鑰信息,在TEK表中的索引位置;CID字段表示CID標(biāo)志值。

    發(fā)送端算法模塊調(diào)用流程:在數(shù)據(jù)發(fā)送前,系統(tǒng)檢測(cè)報(bào)頭中加密控制位的值,如為1則表示該P(yáng)DU需要加密處理,再根據(jù)報(bào)頭中密鑰索引號(hào)及加密模式選擇位,選擇特定的加密算法和密鑰,對(duì)數(shù)據(jù)進(jìn)行加密處理,如加密方法為AES-CCM,則調(diào)用CC2M加密模塊對(duì)數(shù)據(jù)進(jìn)行加密。


    接收端算法模塊調(diào)用流程:當(dāng)接收到一個(gè)PDU數(shù)據(jù)時(shí),系統(tǒng)先檢測(cè)報(bào)頭中的CID標(biāo)志值是否存在于本地CID表中,如不存在則丟棄該P(yáng)DU;如存在則找到對(duì)應(yīng)的CID記錄,從中讀取Type和Key
index的值,根據(jù)Key index值,從TEK表中讀取解密密鑰,然后調(diào)用CCM解密模塊對(duì)PDU進(jìn)行解密處理。

3.3 算法測(cè)試

    測(cè)試密鑰Key和數(shù)據(jù)PDU如下:

                            

    發(fā)送端加密后的密文,一共包含3個(gè)部分。起始的10個(gè)字節(jié)為6個(gè)字節(jié)的PDU報(bào)頭和4個(gè)字節(jié)的PN;從末尾算起的4個(gè)字節(jié)為32 b的CRC校驗(yàn)碼;其余分別是33個(gè)字節(jié)的凈荷密文和8個(gè)字節(jié)的分組鏈接模式校驗(yàn)碼密文。

    接收端解密后的PDU起始10個(gè)字節(jié)為報(bào)頭和PN;其后的33個(gè)字節(jié)和明文P的33個(gè)字節(jié)的數(shù)據(jù)凈荷相同;最后的4個(gè)字節(jié)為CRC校驗(yàn)碼,用于接收端的CRC校驗(yàn)。

    第44個(gè)到51個(gè)字節(jié)為解密后的8個(gè)字節(jié)的分組鏈接模式校驗(yàn)碼。在CCM解密程序中,對(duì)解密后得到的PDU,計(jì)算分組鏈接模式校驗(yàn)碼,將計(jì)算結(jié)果和解密所得的分組鏈接模式校驗(yàn)碼相比較,若相同則表示密文在傳輸過程中沒有被篡改破壞,這樣可以校驗(yàn)傳輸數(shù)據(jù)的完整性。


    上述結(jié)果表明本文設(shè)計(jì)的AES-CCM模塊和模塊應(yīng)用方法,能正常工作,能滿足WiMAX設(shè)備的實(shí)際需要。

4 方案比較

    當(dāng)前,WiMAX設(shè)備方案提供商,對(duì)數(shù)據(jù)加密模塊主要有2種實(shí)現(xiàn)方案:

   (1)采用專門的硬件算法模塊;

    (2)采用高速DSP芯片。

    方法(1)的優(yōu)點(diǎn)是速度快,價(jià)格便宜但可擴(kuò)展性和可升級(jí)性不強(qiáng);方法(2)既有速度快的優(yōu)點(diǎn),也有很好的可擴(kuò)展性和可升級(jí)性,但成本比較高。在采用這2種方案的設(shè)備中,通常需要一個(gè)額外的嵌入式系統(tǒng)來控制通信設(shè)備的運(yùn)行,因此系統(tǒng)會(huì)比較復(fù)雜,成本較高。


    本文的設(shè)計(jì)方法,將算法設(shè)計(jì)成嵌入式系統(tǒng)的一個(gè)軟件模塊,使用時(shí)只需直接調(diào)用即可。優(yōu)點(diǎn)是:使用方便,而且由于系統(tǒng)沒有外接獨(dú)立的加密模塊,可以有效地降低系統(tǒng)的復(fù)雜度和成本。缺點(diǎn)是:加密工作由主控CPU來完成,會(huì)占用相當(dāng)一部分系統(tǒng)資源,因此適用于那些沒有復(fù)雜功能的通信設(shè)備,例如端口較少的無線接入設(shè)備或WiMAX網(wǎng)卡等。


5 結(jié) 語(yǔ)

    目前在IEEE802.16和802.11i協(xié)議中,都采用AES-CCM算法為數(shù)據(jù)加密算法,并被包含在RFC3610中。在這種情形下,本文在對(duì)該算法深入分析后,對(duì)AES算法和CCM模式的隱患給出了改進(jìn),并給出了嵌入式WiMAX開發(fā)板平臺(tái)下的AES-CCM算法實(shí)現(xiàn)和應(yīng)用方法的設(shè)計(jì)及實(shí)現(xiàn)。

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。