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


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

 


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

 

 

3 數(shù)據幀的安全處理過程
    如果密鑰的位序列字段被設置為0,則數(shù)據幀未被保護。安全進程可描述為:數(shù)據幀首先進入AES-CBC-MAC模式以產生消息完整性代碼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ù)據包“msg”包含被一分為二的32 bit的數(shù)組,“ency_list”是一個動態(tài)生成的8 bit的加密表,變量“tag_
out_0”是一個初始化向量,“tag_out”是一個可變的MSG信息整合碼。
3.2 數(shù)據加密算法的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ù)據加密。其中使用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)開銷及復雜度,同時還可以保證網絡的安全性。每一個密文組與當前明文組及AES加密結果的相關性滿足了數(shù)據機密性要求。密文與消息完整性代碼的結合傳輸滿足了數(shù)據完整性要求。因此,這種方法能夠有效改變ZigBee安全機構的可行性和實用性,并有效地縮短ZigBee網絡中數(shù)據加密的時間,可作為ZigBee網絡安全的可實施方案。
    本文主要研究ZigBee網絡安全機制中的數(shù)據安全加密算法,提出基于AES-CCM*加密模式的簡化MSG數(shù)據幀格式,以縮短加密時間,增加ZigBee網絡傳輸數(shù)據凈載荷量。AES-CCM*是ZigBee標準采用的基于AES-128算法的操作模式,既能保證數(shù)據傳輸?shù)臋C密性,又能提供數(shù)據完整性校驗功能。仿真結果表明,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.

此內容為AET網站原創(chuàng),未經授權禁止轉載。