《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 通信與網(wǎng)絡(luò) > 設(shè)計(jì)應(yīng)用 > 基于AES算法的ZigBee網(wǎng)絡(luò)加密方法研究
基于AES算法的ZigBee網(wǎng)絡(luò)加密方法研究
來(lái)源:電子技術(shù)應(yīng)用2014年第4期
仇國(guó)慶,包俊杰,曹冬梅,劉 帥
(重慶郵電大學(xué) 智能儀器儀表及工業(yè)自動(dòng)化與測(cè)試技術(shù)實(shí)驗(yàn)室,重慶400065)
摘要: 采用高級(jí)加密標(biāo)準(zhǔn)算法AES(Advanced Encryption Standard)的AES-CCM*安全模式對(duì)ZigBee網(wǎng)絡(luò)數(shù)據(jù)進(jìn)行加密處理,重新定義了報(bào)文服務(wù)類(lèi)型(Message,MSG)的幀格式以提高網(wǎng)絡(luò)傳輸數(shù)據(jù)凈載荷量。理論分析及仿真結(jié)果表明AES-CCM*加密模式具有安全實(shí)用性。
中圖分類(lèi)號(hào): TN918.4
文獻(xiàn)標(biāo)識(shí)碼: A
文章編號(hào): 0258-7998(2014)04-0056-03
AES algorithm-based encryption scheme for ZigBee networks
Qiu Guoqing,Bao Junjie,Cao Dongmei,Liu Shuai
Laboratory of Intelligent Instrument & Industrial Automation & Technology Laboratory,Chongqing University of Posts and Telecommunications,Chongqing 400065,China
Abstract: This paper proposes AES-CCM* security mode based on advanced encryption standard(AES) algorithm in the ZigBee networks. This paper also redefines the MSG frame type in order to improve the network transmission of payload data volume. Theoretical analysis and simulation results show the practicability of ZigBee security mechanism in AES-CCM* security mode.
Key words : ZigBee networks;AES algorithm;AES-CCM* mode;MSG frame type

    ZigBee是一種近距離、低速率、低功耗、低成本的無(wú)線網(wǎng)絡(luò)技術(shù)[1],正是由于這些優(yōu)點(diǎn),基于ZigBee標(biāo)準(zhǔn)的無(wú)線傳感器網(wǎng)絡(luò)的應(yīng)用越來(lái)越廣泛。但由于ZigBee無(wú)線設(shè)備在存儲(chǔ)能力、計(jì)算能力及電源供電時(shí)間方面的局限性,不僅使得原來(lái)在有線環(huán)境下的許多安全方案和安全技術(shù)不能直接應(yīng)用于ZigBee網(wǎng)絡(luò)環(huán)境中,而且對(duì)ZigBee網(wǎng)絡(luò)安全服務(wù)過(guò)程與算法提出了較高要求。目前,ZigBee網(wǎng)絡(luò)中采用的數(shù)據(jù)加密模式為128 bit的AES算法[2]。AES采用迭代型分組密碼Rijndael[3]算法,具有優(yōu)秀的性能及抗攻擊能力,所以在受限工作環(huán)境中(如ZigBee網(wǎng)絡(luò)環(huán)境)也有較好的加密/解密運(yùn)算效率。
    基于AES算法的CCM*安全機(jī)制包括所有AES-CCM(計(jì)數(shù)器加密分組鏈接信息鑒別碼模式)[4-5]的功能且是更輕量級(jí)的加密模式,既保證數(shù)據(jù)傳輸?shù)臋C(jī)密性又保證數(shù)據(jù)完整性。因此,本文使用AES-CCM*模式進(jìn)行數(shù)據(jù)加密,并重新定義了MSG的數(shù)據(jù)幀格式以提高加密效率和傳輸數(shù)據(jù)凈載荷量。仿真結(jié)果表明,CCM*加密模式不僅可以降低系統(tǒng)開(kāi)銷(xiāo)、減小復(fù)雜度及縮短加密時(shí)間,同時(shí)還可以保證網(wǎng)絡(luò)的安全有效性。
1 ZigBee網(wǎng)絡(luò)安全特征及攻擊類(lèi)型
    ZigBee網(wǎng)絡(luò)系統(tǒng)存在如數(shù)據(jù)竊聽(tīng)、篡改、偽造等安全威脅。研究發(fā)現(xiàn),攻擊者通過(guò)攻擊通信節(jié)點(diǎn)或分配惡意節(jié)點(diǎn)偽裝成合法節(jié)點(diǎn)進(jìn)入網(wǎng)絡(luò)來(lái)改變、丟棄或破壞數(shù)據(jù)包,最終致使整個(gè)ZigBee網(wǎng)絡(luò)癱瘓。典型的內(nèi)部網(wǎng)絡(luò)攻擊包括Sinkhole攻擊、Sybil攻擊、Wormholes攻擊、Flooding攻擊、應(yīng)答欺騙等[6]。除此之外,安裝在無(wú)人區(qū)的網(wǎng)絡(luò)節(jié)點(diǎn)也可能會(huì)出現(xiàn)節(jié)點(diǎn)失效、損毀或被捕獲的危險(xiǎn)??傊?,ZigBee網(wǎng)絡(luò)中的安全功能可以概括為兩方面內(nèi)容:(1)保證合法使用者正常使用;(2)防止非法破壞,盜取信息。這就要求ZigBee安全機(jī)制能提供密鑰建立、密鑰傳輸、幀的保護(hù)和設(shè)備管理[7]等安全服務(wù)。
    ZigBee協(xié)議棧提供的安全服務(wù)有數(shù)據(jù)加密、完整性校檢和鑒權(quán)等功能,可以施加在應(yīng)用層、網(wǎng)絡(luò)層或介質(zhì)訪問(wèn)控制層上。任何安全的ZigBee網(wǎng)絡(luò)都擁有一個(gè)指定的被稱為信托中心(Trust Center)的設(shè)備,為其他設(shè)備分配鏈接密鑰(Link Key)和網(wǎng)絡(luò)密鑰(Network Key)。鏈接密鑰在兩個(gè)設(shè)備之間共享,并用于單播或組播通信。網(wǎng)絡(luò)密鑰在整個(gè)網(wǎng)絡(luò)中共享,當(dāng)消息被廣播時(shí)使用。
    ZigBee網(wǎng)絡(luò)數(shù)據(jù)加密是發(fā)送者在數(shù)據(jù)發(fā)送之前通過(guò)加密算法對(duì)數(shù)據(jù)添加密鑰,接收者在接收數(shù)據(jù)之后使用相同密鑰解密對(duì)數(shù)據(jù)進(jìn)行解密??梢钥闯觯瑪?shù)據(jù)加密的關(guān)鍵就是對(duì)稱密鑰,即發(fā)送者和接收者必須具有完全相同的128 bit密鑰才能進(jìn)行正常通信。使用對(duì)稱密鑰進(jìn)行數(shù)據(jù)加密的發(fā)送和接收過(guò)程[8]如圖1所示。


    系統(tǒng)的實(shí)現(xiàn)可以分為兩部分:
    (1)數(shù)據(jù)經(jīng)過(guò)AES-CBC-MAC模式加密,如圖2(a)所示。CBC-MAC模式被用于保護(hù)數(shù)據(jù)完整性,為了這個(gè)目的,數(shù)據(jù)幀的包頭(Headers)和有效負(fù)載(Payload)必須經(jīng)過(guò)CBC模式加密,生成的密文即為消息完整性代碼MIC(Message Integrity Code)的值。操作時(shí),首先將第一部分?jǐn)?shù)據(jù)塊與初始化向量進(jìn)行“異或”運(yùn)算,然后將其結(jié)果“異或”第二部分?jǐn)?shù)據(jù)塊,依次類(lèi)推。最后生成MIC用以確保傳輸數(shù)據(jù)不被篡改。此操作過(guò)程的公式描述為:

 


    由此可見(jiàn),AES-CCM*安全加密模式結(jié)合了計(jì)數(shù)器模式與密碼分組連接模式兩者各自的優(yōu)點(diǎn),并且有效縮短了ZigBee網(wǎng)絡(luò)數(shù)據(jù)的加密時(shí)間。因此,AES-CCM*加密模式大大提高了單獨(dú)使用AES算法的加密效率。
2.2 MSG命令幀類(lèi)型
    ZigBee網(wǎng)絡(luò)在應(yīng)用程序框架AF(Application Framework)中提供發(fā)送和接收數(shù)據(jù)的功能。它包括兩種數(shù)據(jù)服務(wù)類(lèi)型:鍵值對(duì)服務(wù)類(lèi)型KVP(Key Value Pair)和報(bào)文服務(wù)類(lèi)型MSG。KVP服務(wù)主要用于傳輸一些較為簡(jiǎn)單的變量格式。由于ZigBee的很多應(yīng)用領(lǐng)域中的消息較為復(fù)雜,并不適用于KVP格式,因此ZigBee協(xié)議規(guī)范定義了MSG服務(wù)類(lèi)型。MSG服務(wù)對(duì)數(shù)據(jù)格式和內(nèi)容不作要求,適合任何格式的數(shù)據(jù)傳輸,可以用于傳送數(shù)據(jù)量大的消息。MSG幀類(lèi)型如表1所示,其中傳輸字節(jié)計(jì)數(shù)和幀類(lèi)型都為4 bit。如果幀類(lèi)型值為0x02,則表明該框架為MSG命令。每個(gè)數(shù)據(jù)包含有事務(wù)序列號(hào)(8 bit)、事務(wù)長(zhǎng)度(8 bit)和事務(wù)數(shù)據(jù)(bit可變)。

 

 

3 數(shù)據(jù)幀的安全處理過(guò)程
    如果密鑰的位序列字段被設(shè)置為0,則數(shù)據(jù)幀未被保護(hù)。安全進(jìn)程可描述為:數(shù)據(jù)幀首先進(jìn)入AES-CBC-MAC模式以產(chǎn)生消息完整性代碼MIC;然后進(jìn)入AES-CTR模式工作,將MIC值與有效負(fù)載進(jìn)行加密處理;最后被加密的MIC與有效負(fù)載相結(jié)合構(gòu)成完整的密文包。解密過(guò)程為加密過(guò)程的逆過(guò)程。
3.1 MSG變量的定義
    unsigned char msg [32] =
    {0xa6,0x62,0xd6,0x3d, 0x93,0x73,0xad,0x27,
     0xad,0xc1,0x2b,0x3e, 0x3b,0x23,0x38,0xa5,
     0xc3,0x18,0x45,0xa4, 0x8a,0x32,0x9d,0x35,
     0xe9,0x4e,0xa2,0x93,0x9e,0xa3,0x11,0x57 
    };    //該數(shù)組被平均分為兩組
    unsigned char ency_list [8];    //加密表
    unsigned char tag_out_0, grap_1, grap_2, tag_out;
其中,數(shù)據(jù)包“msg”包含被一分為二的32 bit的數(shù)組,“ency_list”是一個(gè)動(dòng)態(tài)生成的8 bit的加密表,變量“tag_
out_0”是一個(gè)初始化向量,“tag_out”是一個(gè)可變的MSG信息整合碼。
3.2 數(shù)據(jù)加密算法的C語(yǔ)言描述
    (1)AES-CBC-MAC模式工作代碼,用以生成消息完整性代碼。其中“^”為異或運(yùn)算,“%” 為互補(bǔ)操作。
    //計(jì)算B[i]矩陣,即初始化向量
    ctr_cbc_mac_b[i*16+j] = msg[(i-2)*16+j];
    for(i=0; i<cnt; i++)
    {
       for(j=0; j<16; j++)
        aes_in[j] = Bi[i*16+j] ^ aes_out[j];
       }
    while (t < (10+1)*4)   //計(jì)算輪密鑰
    {
       tk[i][0] ^= S[ tk[(i+1)%4][4-1] ];
       tk[i][j] ^= tk[i][j-1];
    }
    //AES輪加密,round為加密輪數(shù)
    for(r=1; r < round; r++)
    {
       Byte-Sub();       //字節(jié)替換
       ShiftRow();       //行移位
       MixColumn();     //列混合
       KeyAddition();    //輪密鑰加
    }
       Byte-Sub();   //最后一輪加密,沒(méi)有列混合
       ShiftRow();
       KeyAddition();
       out[i][j] = dataout[4*j + i];    //輸出密文
       aes_cnt++;
    }          
  (2)AES-CTR模式工作代碼,用以進(jìn)行數(shù)據(jù)加密。其中使用ctr_cbc_mac_b矩陣存儲(chǔ)計(jì)數(shù)器值A(chǔ)i。
    //A[i]標(biāo)識(shí)符
    ctr_cbc_mac_b[i*16+j] = nounceN[i-1];
    for(i=0; i<cnt; i++)
    {
       for(j=0; j<16; j++) 
        aes_in[j] = Ai[i*16+j]; 
    }
    while (t < (10+1)*4)   //計(jì)算輪密鑰
    {
       tk[i][0] ^= S[ tk[(i+1)%4][4-1] ];
       tk[i][j] ^= tk[i][j-1];
    }
    {  AES輪加密  }
    for(i=1; i<lm; i++)    //msg 加密
    {
       Em_out[i] = msg[i] ^ Si[16+i];
       Ciper_out[i] = Em_out[i];
    }
    for(i=0; i<M; i++)    //MIC加密
    {
       U_out[i] = tag_out[i] ^ Si[i];
       Ciper_out[lm+i] = U_out[i];
    }
3.3 性能分析
    該方案不僅可以有效地降低系統(tǒng)開(kāi)銷(xiāo)及復(fù)雜度,同時(shí)還可以保證網(wǎng)絡(luò)的安全性。每一個(gè)密文組與當(dāng)前明文組及AES加密結(jié)果的相關(guān)性滿足了數(shù)據(jù)機(jī)密性要求。密文與消息完整性代碼的結(jié)合傳輸滿足了數(shù)據(jù)完整性要求。因此,這種方法能夠有效改變ZigBee安全機(jī)構(gòu)的可行性和實(shí)用性,并有效地縮短ZigBee網(wǎng)絡(luò)中數(shù)據(jù)加密的時(shí)間,可作為ZigBee網(wǎng)絡(luò)安全的可實(shí)施方案。
    本文主要研究ZigBee網(wǎng)絡(luò)安全機(jī)制中的數(shù)據(jù)安全加密算法,提出基于AES-CCM*加密模式的簡(jiǎn)化MSG數(shù)據(jù)幀格式,以縮短加密時(shí)間,增加ZigBee網(wǎng)絡(luò)傳輸數(shù)據(jù)凈載荷量。AES-CCM*是ZigBee標(biāo)準(zhǔn)采用的基于AES-128算法的操作模式,既能保證數(shù)據(jù)傳輸?shù)臋C(jī)密性,又能提供數(shù)據(jù)完整性校驗(yàn)功能。仿真結(jié)果表明,AES-CCM*加密模式可以進(jìn)一步改進(jìn)ZigBee安全方面的性能,以保證ZigBee技術(shù)的生存空間。雖然此算法擁有較高的安全加密能力,但其仍然存在局限性。
參考文獻(xiàn)
[1] ZigBee Alliance.ZigBee specifications:ZigBee and ZigBee Pro[EB/OL].[2013-09-06].http://www.ZigBee.org,2010.
[2] National Institute of Standards and Technolo-gy(NIST).Advanced Encryption Standard(AES)[M].FIPS PUB 197,2001.
[3] DAEMEN J,RIJMEN V.The design of Rijndael:AES the advanced encryption standard[M].Springer,2002.
[4] YOO J H.Fast software implementation of AES-CCM on multiprocessors[M].Springer Berlin Heidelberg,2011.
[5] 封斌,齊德昱,韓海雯.IEEE 802.15.4中AES-CCM協(xié)議的擴(kuò)展指令集實(shí)現(xiàn)[J].電子與信息學(xué)報(bào),2013,35(2):335-340.
[6] VIDGREN N,HAATAJA K,PATINO A J L,et al.Security threats in ZigBee-enabled systems:vulnerability evaluation,practical experiments,countermeasures,and lessons learned[C]. System Sciences(HICSS),2013 46th Hawaii International. Conference on,IEEE,2013.
[7] ZigBee Alliance Board of Directors.Document 053474r17 ZigBee specification[S].2008.
[8] FARAHANI S.ZigBee wireless networks and transceivers[M]. Access Online via Elsevier,2011.
[9] 谷利澤,楊義先.現(xiàn)代密碼學(xué)教程[M].北京:北京郵電大學(xué)出版社,2009.
[10] YANG B,F(xiàn)U R Y,DIAO J Z,et al.Security mechanisms analysis for ZigBee standard based on AES-CCM*[J].  Advanced Materials Research,2012(468):1359-1362.
[11] RUSINEK D,KSIEZOPOLSKI B.Influence of CCM,CBCMAC,CTR and stand-alone encryption on the quality of transmitted data in the high-performance WSN[J].Imote2 Annales UMCS Information AIXI,2011(3):117-127.

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