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


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

 


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

 

 

3 數(shù)據(jù)幀的安全處理過程
    如果密鑰的位序列字段被設置為0,則數(shù)據(jù)幀未被保護。安全進程可描述為:數(shù)據(jù)幀首先進入AES-CBC-MAC模式以產(chǎn)生消息完整性代碼MIC;然后進入AES-CTR模式工作,將MIC值與有效負載進行加密處理;最后被加密的MIC與有效負載相結合構成完整的密文包。解密過程為加密過程的逆過程。
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”是一個動態(tài)生成的8 bit的加密表,變量“tag_
out_0”是一個初始化向量,“tag_out”是一個可變的MSG信息整合碼。
3.2 數(shù)據(jù)加密算法的C語言描述
    (1)AES-CBC-MAC模式工作代碼,用以生成消息完整性代碼。其中“^”為異或運算,“%” 為互補操作。
    //計算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)   //計算輪密鑰
    {
       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();   //最后一輪加密,沒有列混合
       ShiftRow();
       KeyAddition();
       out[i][j] = dataout[4*j + i];    //輸出密文
       aes_cnt++;
    }          
  (2)AES-CTR模式工作代碼,用以進行數(shù)據(jù)加密。其中使用ctr_cbc_mac_b矩陣存儲計數(shù)器值Ai。
    //A[i]標識符
    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)   //計算輪密鑰
    {
       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)開銷及復雜度,同時還可以保證網(wǎng)絡的安全性。每一個密文組與當前明文組及AES加密結果的相關性滿足了數(shù)據(jù)機密性要求。密文與消息完整性代碼的結合傳輸滿足了數(shù)據(jù)完整性要求。因此,這種方法能夠有效改變ZigBee安全機構的可行性和實用性,并有效地縮短ZigBee網(wǎng)絡中數(shù)據(jù)加密的時間,可作為ZigBee網(wǎng)絡安全的可實施方案。
    本文主要研究ZigBee網(wǎng)絡安全機制中的數(shù)據(jù)安全加密算法,提出基于AES-CCM*加密模式的簡化MSG數(shù)據(jù)幀格式,以縮短加密時間,增加ZigBee網(wǎng)絡傳輸數(shù)據(jù)凈載荷量。AES-CCM*是ZigBee標準采用的基于AES-128算法的操作模式,既能保證數(shù)據(jù)傳輸?shù)臋C密性,又能提供數(shù)據(jù)完整性校驗功能。仿真結果表明,AES-CCM*加密模式可以進一步改進ZigBee安全方面的性能,以保證ZigBee技術的生存空間。雖然此算法擁有較高的安全加密能力,但其仍然存在局限性。
參考文獻
[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é)議的擴展指令集實現(xiàn)[J].電子與信息學報,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)代密碼學教程[M].北京:北京郵電大學出版社,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)授權禁止轉載。