專利名稱:應用于ZigBee協議的加解密電路結構及其控制方法
技術領域:
本發明屬于加解密技術領域,特別是涉及一種應用于ZigBee協議的加解密電路結構及其方法。
背景技術:
1. CCM*安全模式(1) ZigBee (紫蜂)協議安全機制ZigBee技術是一種為低速率控制網絡設計的標準無線網絡協議,具有低復雜度、 低功耗、低速率、低成本等特點,其工作在2. 4GHz的ISM頻段上,傳輸速率為201A/S 250kb/s,傳輸距離為IOm 75m。ZigBee協議棧包含物理層、媒體訪問控制層、網絡層、應用層,并定義了安全服務提供機制。ZigBee標準是建立在IEEE802. 15. 4標準基礎上,其物理層、媒體訪問控制層采用的是IEEE802. 15. 4標準,因此ZigBee安全體系結構是建立在IEEE802. 15. 4的安全服務基礎上。ZigBee利用這些安全服務對傳輸的數據進行加密處理,并提供對接入網絡的設備的身份認證、密鑰管理等功能,ZigBee定義的網絡層和應用層都包含該安全體系。IEEE802. 15. 4安全服務是基于AES-CCM*安全模式生成一系列的安全機制。 IEEE802. 15. 4規定AES-CCM*安全模式中使用的加密函數為1 位數據分組和1 位密鑰的AES加密算法,即AES-U8加密算法。CCM*模式是CCM(Counter with Cipher block chaining—Message authentication code)加密模式的擴展。CCM 模式結合了 CTR 數據加密模式(Counter Mode)和 CBC-MAC 身份認證模式(Cipher Block Chaining-Message Authentication Code)而衍生出來的安全模式,既包含了加/解密功能模式,又包含了身份認證模式。CCM*模式除了可以使用CCM模式以外,還可以單獨使用CTR數據加/ 密模式(Counter Mode)和 CBC-MAC 身份認證模式(Cipher Block Chaining-Message Authentication Code)。(2) CBC-MAC身份認證模式CBC-MAC模式可以用以下公式表示X0 = O128 ;JSi := EKey (石 漢),for 戶0,….,/7;T = First_M_Bytes (Xn+1).公式中&ey()為密鑰為Key的AES-U8加密函數,O128表示128比特全0字符串。 圖1為CBC-MAC認證碼產生過程示意圖,圖中FMB為截取前M個字節,即公式中的First_M_ BytesO 函數。如圖1所示,發送方根據數據分組為128比特的輔助驗證數據組Btl Bn產生M字節驗證碼T,輔助驗證數據組Btl Bn主要由明文附加信息,附加驗證信息數據a和信息數據明文m組成。接收方根據明文附加信息,附加驗證信息數據a,以及接收到的、解密后的信息數據的明文m組成輔助驗證數據組Btl Bn,同發送方一樣按照圖1所示的過程產生一個M字節驗證碼T,將T和接收到的并經過解密的發送方驗證碼T進行比較,如果T和T相同, 則認為接收到的、解密后的信息數據的明文m'與發送方的發送信息數據的明文m相同,如果T'和T不相同,則認為接收到的數據被篡改過。(3) CTR數據加/解密模式CTR數據加密表達式為S0 = EKey (A0) -,U = Τ First M BytesiStC,'= ΕκβΜ>) M for / = 1,...,游.圖2為CTR加/解密流程示意圖。如圖2所示,發送方首先將驗證碼T進行加密為U,然后將信息數據明文m進行分組為Mi,每組長為128比特,最后一組如果不足128比特,則填充0補足,AES-U8每次加密一組數據,生成信息密文數據組C” Ai為輔助加密數據組,由明文附加信息和計數值組成,計數值為0 m。發送方按照以下順序發送=C1, Cm,u。CTR數據解密表達式為S0 = EKey (A0) -,T = U First M Bytei{S^Μ, = κβΜ·) C, for/'= 1, ..., m.如圖2所示,接收方首先將加密驗證碼U進行解密為T,然后對信息密文數據組Ci 進行解密。(4)輔助驗證數據組Bi輔助驗證數據組Btl Bn主要有三部分組成1.包含明文附加信息的數據組Btl; 2.包含附加驗證信息數據a的數據組B1 Bt ;3.包含信息數據明文m的數據組Bw Bn。①B。數據組結構Btl數據組結構如圖3所示。由圖3可知Btl數據組由以下數據組成B0 = Flags | | NONCE | | LM, | | 為連接符號;其中 Flags = Reserved | | Adata | | (M-2) /2 | | L0Flags中各個字段的定義Reserved 保留位,應當設為‘0’狀態。Adata 附加驗證信息數據a標志位,如果Adata = ‘ 1’,則表明有附加驗證信息數據a,且數據組B1 Bt為附加驗證信息數據a。如果Adata = ‘0’,則表明沒有附加驗證信息數據a,數據組B1 Bn為信息數據明文數據組M1 Mm,此時m = η。(Μ-2)/2 :Μ認證碼T長度,以字節為單位。當M > 0,這三個比特位的數值為 (Μ-2) /2,如果M = 0,這三個比特位的數值為0。ZigBee/IEEE802. 15. 4中規定M取值范圍為 0,4,8,16oL =LM的長度,以比特為單位,ZigBee/IEEE802. 15. 4中規定L = 2。B0數據組結構各個字段的定義NONCE:此字段數據由信息源地址,幀計數器以及安全等級等信息組成。LM 信息數據明文m的長度,以字節為單位,取值范圍為0彡LM彡28L0②B1 Bt數據組結構B1 Bt數據組包含附加驗證信息數據a以及其長度信息LA,即將LA | |a分組為 B1 Bt,每組128比特,最后一組如果不足128比特,則填充‘0’補齊。
③Bw Bn數據組結構Bt+1 Bn數據組即信息數據明文數據組M1 Mm。(5)輔助加密數據組Ai輔助加密數據組Ai (i = 0,...,m)結構如圖4所示,由圖4可知,數據組Ai結構與數據組Btl結構很相似,Btl數據組包含了 Ai結構所有信息,除了計數值Counter i。因此 Ai可根據數據組Btl和一個計數器值構成。(6) CCM*并行運行模式因為Bw Bn數據組就是信息數據明文數據組M1 Mm,因此CBC-MAC運算操作和 CTR運算操作可以并行運行。圖5為CCM*并行運行流程示意圖,圖中虛線部分為CTR解密, 以及驗證碼確認部分。FWZB (即Filled With ‘0’ Bite)作用為,在U后面填充0,填充為 16字節(128比特)數據組UI 0。如圖5所示,發送方進行數據加密/認證碼產生并行運行時,首先對數據組Btl Bt進行CBC-MAC運算操作,然后對Bw Bn數據組同時進行CBC-MAC運算操作和CTR加密運算操作。對于CTR運算操作,將驗證碼T的加密運算操作放到最后,并且對截取前M個字節的操作放到加密之后,χ為由‘0’比特或者‘1’比特組成的任意值比特串。接收方進行數據解密/認證碼確認并行運行時,也是首先對數據組Btl Bt進行 CBC-MAC運算操作,然后對C1, ...,Cm進行CTR解密運算操作,同時對解密后的Bw Bn數據組進行CBC-MAC運算操作。對于CTR解密運算操作,將驗證碼U的解密運算操作放到最后,并且在運算操作之前將M字節U填充為16字節(1 比特)數據組UI I 0。將UI I 0解密為T I I χ并與CBC-MAC運算操作結果T I I /χ行異或,取異或后的前M字節,如果前M字節全為0,則T和T'相同,如果不全為0,則T和T'不相同。2. MMO (Matyas-Meyer-Oseas) Hash 函數ZigBee協議規定,AES-CCM*模式的密鑰由對稱密鑰密鑰建立 SKKE (Symmetric-Key Key Establishment)協議建立。SKKE 協議使用 Hash 消息鑒權機制 HMAC(Hash Message Authentication Code)機制提供密鑰確認,ZigBee 標準使用的 Hash 函數為MMO Hash函數,且規定采用AES-U8加密算法來構造MMO Hash函數。MMO Hash函數表達公式Hash0 = O128 ;Hash,·.= IXHash1 八 Jl) Ihfori=\, ..., j;HMAC = Hashs.公式中E (Key, χ) = EKey (χ),即AES-U8加密函數。圖6為MMO Hash函數運算操作流程圖。如圖6所示,HASH函數根據輸入數據組I1 Is生成HMAC。3.相關公開文獻在ZigBee協議中,在CCM*模式中和密鑰建立過程中都使用到了 AES-U8加密算法。關于AES算法的電路實現方式,國內外公開的文獻中提出了許多解決方案,可以滿足不同應用場合的處理速度,電路面積,以及功耗等方面要求,在這些公開的解決方案中,有許多方案可以實現本發明中AES加密器。例如(I)Khoa Vu,David Zier. FPGA Implementation AES for CCM Mode Encryptionn Using Xilinx Spartan-II. ECE-679,Advanced Cryptography,Oregon State University,Spring 2003.(2) LI Zhen-rong, ZHUANG Yi-qi, ZHANG Chao, JIN Gang. Low-power and area-optimized VLSI implementation of AES coproeessor for Zigbee system. The Journal of China Universities of Posts and Telecommunications,2009,16(3) :89-94關于CCM*模式的電路實現方式,國內外也有許多公開文獻,與本發明相近的公開文獻有(1)在已授權的美國專利US007831039B2中提出了基于兩個AES加密器分別實現 CCM*加密/認證碼產生的電路結構和CCM*解密/認證碼確認的電路結構,以及基于單個 AES加密器分別實現CCM*加密/認證碼產生的電路結構和CCM*解密/認證碼確認的電路結構。ST Microelectronics Inc. (Guido Bertoni ;Jefferson Ε. Owen). AES ENCRYPTION CIRCUITRY WITH CCM. US007831039B2. 2010。(2)懷蓮,韓煜等人提出了基于兩個AES加密器實現既可以用來進行CCM*加密/ 認證碼產生也可以進行CCM*解密/認證碼確認的電路結構。Lian Huai, Xuecheng Zou, Zhenglin Liu, Yu Hang. An Energy-efficient AES-CCM Implementation for IEEE802. 15. 4 Wireless Sensor Networks. In International Conference on Networks Security, Wireless Communications and Trusted Computing(NSWCTC 2009), Los Alamitos JEEE Computer Society,2009(2).。懷蓮.IEEE802.15. 4CCM-AES協處理器的研究與設計.武漢.華中科技大學碩士論文· 2009。韓煜.嵌入式系統安全的密碼算法及實現技術研究.武漢.華中科技大學博士論文· 2008。上述關于CCM*模式電路實現的公開文獻中,都實現了 CCM*模式的加密運算操作和認證碼產生運算操作并行運行,以及解密運算操作和認證碼確認運算操作并行運行。迄今為止,對于MMO Hash函數與CCM*相結合的電路結構及其方法,國內外還沒有關于這方面的公開文獻。
發明內容
本發明基于兩個AES加密器,分別實現ZigBee協議中的CCM*加密/認證碼產生、 CCM*解密/認證碼確認以及MMO Hash函數等功能,其中在CCM*加密/認證碼產生運算操作過程中,可以使用加密運算操作和認證碼產生運算操作并行運行方式,以及在CCM*解密 /認證碼確認運算操作過程中,可以使用解密運算操作和認證碼確認運算操作并行運行方式。為了達到上述目的,本發明首先提供一種應用于ZigBee協議的加解密電路結構, 所采用的技術方案為一種應用于ZigBee協議的加解密電路結構,其特征在于所述電路結構包括AES加密器1、AES加密器2、計數器、輔助加密數據產生器、 選擇器MUX1、選擇器MUX2、選擇器MUX3、選擇器MUX4、異或器M)R1、異或器M)R2和異或器 M)R3,還包括控制信號輸入端口、數據輸入端口、密鑰輸入端口、認證結果輸出端口和數據輸出端口 ;所述選擇器MUXl的一個數據輸入端連接到數據輸入端口,另一個數據輸入端連接到異或器M)R3的輸出端,選擇信號輸入端與控制信號輸入端口相連接;所述選擇器MUX2的一個數據輸入端連接到密鑰輸入端口,另一個數據輸入端連接到異或器M)R3輸出端,選擇信號輸入端與控制信號輸入端口相連接;所述計數器的控制信號輸入端與控制信號輸入端口相連接;所述輔助加密數據產生器的一個數據輸入端連接到計數器輸出端,另一個數據輸入端連接到數據輸入端口,控制信號輸入端與控制信號輸入端口相連接;所述選擇器MUX4的一個數據輸入端連接到輔助加密數據產生器的輸出端,另一個數據輸入端連接到數據輸入端口,選擇信號輸入端與控制信號輸入端口相連接;所述異或器M)R1的一個數據輸入端連接到選擇器MUXl的輸出端,另一個數據輸入端連接到AES加密器1的輸出端,控制信號輸入端與控制信號輸入端口相連接;所述AES加密器1的數據輸入端連接到異或器M)R1的輸出端,AES加密器1密鑰輸入端連接到密鑰產生器的一個輸出端,控制信號輸入端與控制信號輸入端口相連接;所述AES加密器2的數據輸入端連接到選擇器MUX4的輸出端,AES加密器2密鑰輸入端連接到密鑰產生器的另一個輸出端,控制信號輸入端與控制信號輸入端口相連接;所述密鑰產生器的數據輸入端連接到選擇器MUX2的輸出端,控制信號輸入端與控制信號輸入端口相連接;所述異或器M)R2的一個數據輸入端連接到AES加密器1的輸出端,另一個數據輸入端連接到異或器M)R3的輸出端,控制信號輸入端與控制信號輸入端口相連接,輸出端與認證結果輸出端口相連接;所述選擇器MUX3的一個數據輸入端連接到AES加密器1的輸出端,另一個數據輸入端連接到數據輸入端口,選擇信號輸入端與控制信號輸入端口相連接;所述異或器M)R3的一個數據輸入端連接到選擇器MUX3的輸出端,另一個數據輸入端連接到AES加密器2的輸出端,控制信號輸入端與控制信號輸入端口相連接,輸出端與數據輸出端口相連接。本發明進一步提供了上述電路結構的控制方法,具體方案如下應用于ZigBee協議的加解密電路結構的控制方法,其特征在于通過控制信號輸入端口輸入控制信號,在控制信號的控制下,電路在四種狀態之間轉換,四種狀態包括“空閑狀態”、“CCM加密狀態”、“CCM解密狀態”和“HASH函數狀態”所述的“空閑狀態”,為電路的初始工作狀態,在系統上電或系統復位后,電路進入 “空閑狀態”,電路中各個部件停止工作;所述的“CCM加密狀態”,在控制信號輸入端口給出“CCM加密狀態”控制信號后, 電路進入“CCM加密狀態”,實現ZigBee協議中的CCM*加密/認證碼產生運算操作,當完成 CCM*加密/認證碼產生運算操作后,在控制信號控制下返回“空閑狀態”;所述的“CCM解密狀態”,在控制信號輸入端口給出“CCM解密狀態”控制信號后, 電路進入“CCM解密狀態”,實現ZigBee協議中的CCM*解密/認證碼確認運算操作,當完成 CCM*解密/認證碼確認運算操作后,在控制信號控制下返回“空閑狀態”;所述的“HASH函數狀態”,在控制信號輸入端口給出“HASH函數狀態”控制信號后,
13電路進入“HASH函數狀態”,實現ZigBee協議中的MMO HASH函數運算操作,當完成MMO HASH 函數運算操作后,在控制信號控制下返回“空閑狀態”。在“CCM加密狀態”下,由選擇器MUX1、異或器M)R1、AES加密器1和密鑰產生器組成CBC-MAC認證碼產生運算操作電路,用來實現CCM*模式中的認證碼產生運算操作;由計數器、輔助加密數據產生器、選擇器MUX4、AES加密器2、密鑰產生器、異或器M)R3以及選擇器MUX3組成CTR加密運算操作電路,用來實現CCM*模式中的數據加密運算操作;由選擇器 MUX2和密鑰產生器組成初始密鑰輸入電路,用來輸入CCM*加密/認證碼產生運算操作中所使用的初始密鑰Key,在“CCM加密狀態”下,異或器M)R2停止工作。在“CCM解密狀態”下,由選擇器MUX1、異或器M)R1、AES加密器1、密鑰產生器和異或器M)R2組成CBC-MAC認證碼確認運算操作電路,用來實現CCM*模式中的認證碼確認運算操作;由計數器、輔助加密數據產生器、選擇器MUX4、AES加密器2、密鑰產生器、異或器 X0R3以及選擇器MUX3組成CTR解密運算操作電路,用來實現CCM*模式中的數據解密運算操作;由選擇器MUX2和密鑰產生器組成初始密鑰輸入電路,用來輸入CCM*解密/認證碼確認運算操作中所使用的初始密鑰Key。在“HASH函數狀態”下,由選擇器MUX2、選擇器MUX3、選擇器MUX4、密鑰產生器、AES 加密器2和異或器M)R3組成MMO HASH函數運算操作電路,用來實現MMO HASH函數運算操作;選擇器MUX1,異或器M)R1,異或器M)R2,AES加密器1,計數器和輔助加密數據產生器停
止工作。本發明完全使用硬件電路實現AES-CCM*安全模式的運算操作和MMO HASH函數, 減小了 ZigBee系統中CPU的負載,也避免了不必要的軟件攻擊,同時本發明在CCM*加密 /認證碼產生運算操作過程中,可以使用加密運算操作和認證碼產生運算操作并行運行方式,以及在CCM*解密/認證碼確認運算操作過程中,可以使用解密運算操作和認證碼確認運算操作并行運行方式,從而加快了 CCM*模式的運算操作速度。
圖ICBC-MAC認證碼產生過程示意圖;圖2CTR加解密流程示意圖;圖3Bq數據組結構示意圖;圖數據組結構示意圖;圖5CCM*并行運行流程示意圖;圖6MM0 Hash函數運算操作流程圖;圖7本發明電路結構示意圖;圖8電路控制狀態轉移9電路工作在CCM*加密/認證碼產生模式下示意圖;圖10電路工作在CCM*解密/認證碼確認模式下示意圖;圖11電路工作在MMO HASH函數模式下示意圖。
具體實施例方式以下面是參照附圖結合具體實施例對本發明作進一步的描述。
14
1.本發明電路結構參見圖7,一種應用于ZigBee協議的加解密電路結構,包括AES加密器1、AES加密器2、計數器、輔助加密數據產生器、選擇器MUX1、選擇器MUX2、選擇器MUX3、選擇器MUX4、 異或器M)R1、異或器M)R2、異或器M)R3。電路結構還包括控制信號輸入端口、數據輸入端口、密鑰輸入端口、認證結果輸出端口和數據輸出端口。其中,控制信號端口連接到電路中各個部件上,控制端口輸入的信號包括各個部件的使能信號以及選擇器的選擇信號,圖7中的虛線為控制信號線。如圖7所示,選擇器MUXl的一個數據輸入端連接到數據輸入端口,另一個數據輸入端連接到異或器M)R3的輸出端,選擇信號輸入端與控制信號輸入端口相連接;選擇器 MUX2的一個數據輸入端連接到密鑰輸入端口,另一個數據輸入端連接到異或器M)R3輸出端,選擇信號輸入端與控制信號輸入端口相連接;計數器的控制信號輸入端與控制信號輸入端口相連接;輔助加密數據產生器的一個數據輸入端連接到計數器輸出端,另一個數據輸入端連接到數據輸入端口,控制信號輸入端與控制信號輸入端口相連接;選擇器MUX4的一個數據輸入端連接到輔助加密數據產生器的輸出端,另一個數據輸入端連接到數據輸入端口,選擇信號輸入端與控制信號輸入端口相連接;異或器M)R1的一個數據輸入端連接到選擇器MUXl的輸出端,另一個數據輸入端連接到AES加密器1的輸出端,控制信號輸入端與控制信號輸入端口相連接;AES加密器1的數據輸入端連接到異或器M)R1的輸出端,AES 加密器1密鑰輸入端連接到密鑰產生器的一個輸出端,控制信號輸入端與控制信號輸入端口相連接;AES加密器2的數據輸入端連接到選擇器MUX4的輸出端,AES加密器2密鑰輸入端連接到密鑰產生器的另一個輸出端,控制信號輸入端與控制信號輸入端口相連接;密鑰產生器的數據輸入端連接到選擇器MUX2的輸出端,控制信號輸入端與控制信號輸入端口相連接;異或器M)R2的一個數據輸入端連接到AES加密器1的輸出端,另一個數據輸入端連接到異或器X0R3的輸出端,控制信號輸入端與控制信號輸入端口相連接,輸出端與認證結果輸出端口相連接;選擇器MUX3的一個數據輸入端連接到AES加密器1的輸出端,另一個數據輸入端連接到數據輸入端口,選擇信號輸入端與控制信號輸入端口相連接;異或器M)R3的一個數據輸入端連接到選擇器MUX3的輸出端,另一個數據輸入端連接到AES加密器2的輸出端,控制信號輸入端與控制信號輸入端口相連接,輸出端與數據輸出端口相連接。2.電路工作狀態及其控制方法參見圖8,在控制信號輸入端口輸入的控制信號的控制下,本發明電路可以工作在四種狀態“空閑狀態”、“CCM加密狀態”、“CCM解密狀態”和“HASH函數狀態”。“空閑狀態”為電路的初始工作狀態,在系統上電或系統復位后,電路進入“空閑狀態”。在“空閑狀態”下,電路中各個部件停止工作。如圖8所示,啟動模式1,即控制信號輸入端口給出“CCM加密狀態”控制信號,電路進入“CCM加密狀態”。在“CCM加密狀態”下,電路實現ZigBee協議中的CCM*加密/認證碼產生運算操作。當電路完成CCM*加密/認證碼產生運算操作后,在控制信號控制下返回“空閑狀態”。如圖8所示,啟動模式2,即控制信號輸入端口給出“CCM解密狀態”控制信號后,電路進入“CCM解密狀態”。在“CCM解密狀態”下,電路實現ZigBee協議中的CCM*解密/ 認證碼確認運算操作。當電路完成CCM*解密/認證碼確認運算操作后,在控制信號控制下返回“空閑狀態”。如圖8所示,啟動模式3,即控制信號輸入端口給出“HASH函數狀態”控制信號后, 電路進入“HASH函數狀態”。在“HASH函數狀態”下,電路實現ZigBee協議中的MMO HASH函數運算操作。當電路完成MMO HASH函數運算操作后,在控制信號控制下返回“空閑狀態”。3. “CCM加密狀態”下的電路結構參見圖9,圖9為本發明電路工作“CCM加密狀態”下的電路結構示意圖。在“CCM 加密狀態”下,由選擇器MUX1、異或器M)R1、AES加密器1和密鑰產生器組成CBC-MAC認證碼產生運算操作電路,用來實現CCM*模式中的認證碼產生運算操作。由計數器、輔助加密數據產生器、選擇器MUX4、AES加密器2、密鑰產生器、異或器M)R3以及選擇器MUX3組成CTR 加密運算操作電路,用來實現CCM*模式中的數據加密運算操作。由選擇器MUX2和密鑰產生器組成初始密鑰輸入電路,用來輸入CCM*加密/認證碼產生運算操作中所使用的初始密鑰Key。在“CCM加密狀態”下,異或器M)R2停止工作,因此圖9中未表出。圖9中虛線表示該路徑上的電路只在某一時刻工作,工作時間很短。4. “CCM加密狀態”下的電路控制結合圖5,對圖9所示的電路結構的控制方法進行說明。(1)輸入初始密鑰Key電路首先輸入初始密鑰Key,并將初始密鑰Key讀入密鑰產生器。Key只輸入一次, 因此圖9中用虛線表示。完成此操作的電路控制方法為①在控制信號控制下,選擇器MUX2將密鑰輸入端口上的初始密鑰Key,傳送到密鑰產生器數據輸入端。②在控制信號控制下,密鑰產生器將初始密鑰Key讀入其內部寄存器。(2)輸入數據組B。 Bt,其中t為自然數電路其次輸入包含明文附加信息的輔助驗證數據組Btl和包含附加驗證信息a的輔助驗證數據組& Bt,此時電路有兩個操作同時進行,一個操作是將Btl讀入輔助加密數據產生器,另一個操作是對Btl Bt進行CBC-MAC運算操作。輔助加密數據產生器讀入Btl,為輔助加密數據組Ai的產生做準備,輔助加密數據產生器只讀入一次Btl,因此圖9中用虛線表示。將數據組Btl輸入到密鑰產生器操作的電路控制方法在控制信號控制下,輔助加密數據產生器將數據輸入端口上的數據組Btl,讀入其內部寄存器。對每個數據組Bi (i = 0,. . .,t)進行CBC-MAC運算操作的電路控制方法為①在控制信號控制下,選擇器MUXl將數據輸入端口上的數據組Bi,傳送到異或器 XORl 一個數據輸入端。②在控制信號控制下,異或器M)R1對數據組Bi與數據組&進行異或運算,Xi為 AES加密器1輸出值(其中,AES加密器1輸出的初始值X0 = 0128 , 0128表示128比特0),異或結果輸出到AES加密器1的輸入端。③在控制信號控制下,AES加密器1輸入異或器M)R1輸出的數據,并對輸入的數據進行加密,在加密過程中,密鑰產生器根據初始密鑰Key產生10組子密鑰,并輸出到AES
16加密器1密鑰輸入端,AES加密器1根據子密鑰對數據進行加密。加密結果Xi+1輸出到AES 加密器1輸出端。(3)輸入數據組Bw Bn,其中η為自然數電路再次輸入輸入包含信息數據明文m的輔助驗證數據組Bw Bn,對數據組 Bt+1 Bn的操作有兩個,一個操作是對Bw Bn進行CBC-MAC運算操作,另一個是進行CTR 加密運算操作,兩個操作是同時進行的。對數據組Bw Bn進行CBC-MAC運算操作的電路控制方法與數據組B1 Bt進行 CBC-MAC運算操作的電路控制方法相同。對每個數據組Bi (i = t+l,...,n)進行CTR加密運算操作的電路控制方法為①在控制信號控制下,計數器計數值加1,計數器初始值為0,計數器將當前計數值j (j = 1,. . .,m ;m = n-t)輸出到輔助加密數據產生器數據輸入端。②在控制信號控制下,輔助加密數據產生器根據當前計數值j和內部寄存器中的數據組Btl,生成當前輔助加密數據組Ap并將A^輸出到選擇器MUX4 —個數據輸入端。③在控制信號控制下,選擇器MUX4將Aj輸出到AES加密器2數據輸入端。④在控制信號控制下,AES加密器2輸入數據Aj,并對Aj進行加密,在加密過程中, 密鑰產生器根據初始密鑰Key產生10組子密鑰,并輸出到AES加密器2密鑰輸入端,AES加密器2使用子密鑰對A^進行加密。加密結果Yj輸出到異或器M)R3 —個數據輸入端。同時,在控制信號控制下,選擇器MUX3將數據組Bi,傳送到異或器M)R3另一個數據輸入端。 ⑤在控制信號控制下,異或器M)R3對數據組Bi與數據組Yj進行異或運算,異或結果G輸出到數據輸出端口。(4)驗證碼T加密電路最后對CBC-MAC運算產生的驗證碼T進行CTR加密運算操作,電路控制方法為①在控制信號控制下,計數器計數值清零,并將當前計數值0輸出到輔助加密數據產生器的數據輸入端。②在控制信號控制下,輔助加密數據產生器根據當前計數值0和內部寄存器中的數據組Btl,生成當前輔助加密數據組Atl,并將A0輸出到選擇器MUX4 —個數據輸入端。③在控制信號控制下,選擇器MUX4將A0輸出到AES加密器2數據輸入端。④在控制信號控制下,AES加密器2輸入數據Atl,并對A0進行加密,在加密過程中, 密鑰產生器根據初始密鑰Key產生10組子密鑰,并輸出到AES加密器2密鑰輸入端,AES加密器2使用子密鑰對A0進行加密。加密結果Ytl輸出到異或器M)R3 —個數據輸入端。同時,在控制信號控制下,選擇器MUX3將AES加密器1輸出的Xn+1傳送到異或器 X0R3另一個數據輸入端,Xn+1為數據組Btl Bn的CBC-MAC運算結果,Xn+1由M字節的驗證碼T和16-M字節的任意二進制比特串χ組成,S卩T I I χ。⑤在控制信號控制下,異或器M)R3對數據組Xn+1與數據組Y0進行異或運算,異或結果UI I X輸出到數據輸出端口,異或結果UI I X由M字節的加密驗證碼U和16-M字節的任意二進制比特串χ組成。5. “CCM解密狀態”下的電路結構
17
參見圖10,圖10為本發明電路工作“CCM解密狀態”下的電路結構示意圖。電路結構在“CCM解密狀態”下,由選擇器MUX1、異或器M)R1、AES加密器1、密鑰產生器和異或器 X0R2組成CBC-MAC認證碼確認運算操作電路,用來實現CCM*模式中的認證碼確認運算操作。由計數器、輔助加密數據產生器、選擇器MUX4、AES加密器2、密鑰產生器、異或器M)R3 以及選擇器MUX3組成CTR解密運算操作電路,用來實現CCM*模式中的數據解密運算操作。 由選擇器MUX2和密鑰產生器組成初始密鑰輸入電路,用來輸入CCM*解密/認證碼確認運算操作中所使用的初始密鑰Key。圖10中虛線表示該路徑上的電路只在某一時刻工作,工作時間很短。6. “CCM解密狀態”下的電路控制結合圖5,對圖10所示的電路結構的控制方法進行說明。(1)輸入初始密鑰Key電路首先輸入初始密鑰Key,其電路控制方法與“CCM加密狀態”下輸入初始密鑰 Key的電路控制方法相同。(2)輸入數據組B。 Bt電路其次輸入包含明文附加信息的數據組Btl,其電路控制方法與“CCM加密狀態” 下輸入數據組Btl Bt的電路控制方法相同(3)輸入數據組C1電路再次輸入信息密文數據組C1,數據組C1只進行CTR解密運算操作。對數據組 Cj (j = 1)進行CTR解密運算操作的電路控制方法為①在控制信號控制下,計數器計數值加1,計數器初始值為0,計數器將當前計數值j輸出到輔助加密數據產生器數據輸入端。②在控制信號控制下,輔助加密數據產生器根據當前計數值j和內部寄存器中的數據組Btl,生成當前輔助加密數據組Ap并將A^輸出到選擇器MUX4 —個數據輸入端。③在控制信號控制下,選擇器MUX4將A^輸出到AES加密器2數據輸入端。④在控制信號控制下,AES加密器2輸入數據Ap并對A^進行加密,在加密過程中, 密鑰產生器根據初始密鑰Key產生10組子密鑰,并輸出到AES加密器2密鑰輸入端,AES加密器2使用子密鑰對A^進行加密。加密結果Yj輸出到異或器M)R3 —個數據輸入端。同時,在控制信號控制下,選擇器MUX3將數據輸入端口上的數據組Cp傳送到異或器M)R3另一個數據輸入端。⑤在控制信號控制下,異或器M)R3對數據組&與數據組Yj進行異或運算,異或結果作為數據明文數據組化輸出到數據輸出端口,同時也作為輔助驗證數據組Bpt輸出到選擇器MUXl的一個數據輸入端。(4)輸入數據組C2 Cm,其中m為自然數電路再次輸入信息密文數據組C2 Cm,此時電路有兩個運算操作同時進行,一個是數據組C2 Cm進行CTR解密運算操作,另一個是對解密后的數據組Bw Blri進行 CBC-MAC運算操作。對每個數據組Bi (i = t+1,. . .,n-1)進行CBC-MAC運算操作的電路控制方法為①在控制信號控制下,選擇器MUXl將異或器M)R3輸出的數據組Bi,傳送到異或器 XORl 一個數據輸入端。
②在控制信號控制下,異或器M)R1對數據組Bi與數據組&進行異或運算,Xi為 AES加密器1輸出值,異或結果輸出到AES加密器1的輸入端。③在控制信號控制下,AES加密器1輸入異或器M)R1輸出的數據,并對輸入的數據進行加密,在加密過程中,密鑰產生器根據初始密鑰Key產生10組子密鑰,并輸出到AES 加密器1密鑰輸入端,AES加密器1根據子密鑰對數據進行加密。加密結果Xi+1輸出到AES 加密器1輸出端。對每個數據組C」(j = 2,. . .,m ;m = n_t)進行CTR解密運算操作的電路控制方法,與對數據組= 1)進行CTR解密運算操作的電路控制方法相同。(6)輸入數據組U I 0;電路再次輸入加密驗證碼數據組U I I 0,此時電路有兩個運算操作同時進行,一個數據組UI I 0進行CTR解密運算操作,另一個是對解密后的數據組Bn進行CBC-MAC運算操作。數據組Bn進行CBC-MAC運算操作的電路控制方法與對數據組Bw Blri進行 CBC-MAC運算操作的電路控制方法相同。UI I 0由M字節加密驗證碼U和16-M字節的0組成,對數據組U | | 0進行CTR解密運算操作的電路控制方法為①在控制信號控制下,計數器計數值清零,并將計數值0輸出到輔助加密數據產生器的數據輸入端。②在控制信號控制下,輔助加密數據產生器根據當前計數值0和內部寄存器中的數據組Btl,生成當前輔助加密數據組Atl,并將A0輸出到選擇器MUX4 —個數據輸入端。③在控制信號控制下,選擇器MUX4將A0輸出到AES加密器2數據輸入端。 ④在控制信號控制下,AES加密器2輸入數據Atl,并對A0進行加密,在加密過程中, 密鑰產生器根據初始密鑰Key產生10組子密鑰,并輸出到AES加密器2密鑰輸入端,AES加密器2使用子密鑰對A0進行加密。加密結果Ytl輸出到異或器M)R3 —個數據輸入端。同時,在控制信號控制下,選擇器MUX3將數據輸入端口上的數據組UI I 0傳送到異或器M)R3另一個數據輸入端,UI |0由M字節的加密驗證碼U和16-M字節的二進制“0”比特串組成。⑤在控制信號控制下,異或器M)R3對數據組UI I 0與數據組Ytl進行異或運算,異或結果T I I χ出到異或器M)R3輸出端,異或T I I χ果由M字節的驗證碼T和16-M字節的任意二進制比特串χ組成。(7)驗證碼T確認電路最后對驗證碼T進行確認操作,即對數據組U| |0解密后的數據組T| |x和 CBC-MAC運算結果T I |x行比較,其電路控制方法為在控制信號控制下,異或器M)R3分別讀入AES加密器1輸出的數據組Xn+1,以及異或器M)R3輸出的數據組T I I χ。Xn+1為CBC-MAC運算結果,Xn+1由M字節重新生成的驗證碼 T',以及16-M字節的任意二進制比特串χ組成,即T| |x。異或器M)R3對數據組T| |x和數據組T I I χ進行異或運算,并將異或結果輸出到認證結果輸出端口。7. “HASH函數狀態”下的電路結構參見圖11,圖11為本發明電路工作在MMO HASH函數模式下的示意圖。電路結構在“HASH函數狀態”下,由選擇器MUX2、選擇器MUX3、選擇器MUX4、密鑰產生器、AES加密器 2和異或器M)R3組成MMO HASH函數運算操作電路,用來實現MMO HASH函數運算操作。在 "HASH函數狀態”下,選擇器MUXl,異或器M)R1,異或器X0R2,AES加密器1,計數器和輔助加密數據產生器停止工作,因此在圖10中未表出。圖11中虛線表示該路徑上的電路只在某一時刻工作,工作時間很短。8. “HASH函數狀態”下的電路控制結合圖6,對圖11所示的電路結構的工作原理進行說明。(1)輸入數據組、 工“電路首先輸入數據組I1-Ip1,并數據組、 。進行的MMO HASH運算操作。對每個數據組IiG = 1,. . .,S-1)進行MMO HASH運算操作的電路控制方法為①在控制信號控制下,選擇器MUX4將數據輸入端口上的數據組Ii,傳送到AES加密器2數據輸入端。②在控制信號控制下,AES加密器2輸入數據組Ii,并對輸入的數據組Ii進行加密,在加密過程中,密鑰產生器根據初始密鑰Hastvi產生10組子密鑰(其中,Hash。為密鑰產生器內部寄存器的初始值,且Hash。= O128),并輸出到AES加密器2密鑰輸入端,AES加密器2根據子密鑰對數據組Ii進行加密。加密結果輸出到異或器M)R3 —個數據輸入端。同時,在控制信號控制下,選擇器MUX3將數據輸入端口上的數據組Ii,傳送到異或器M)R3另一個數據輸入端。③在控制信號控制下,異或器M)R3對AES加密器2加密結果和數據組Ii進行異或運算,異或運算結果Hashi輸出到異或器M)R3的輸出端。④在控制信號控制下,選擇器MUX2將異或器M)R3輸出的Hashi,傳送到密鑰產生器數據輸入端。⑤在控制信號控制下,密鑰產生器將Hashi讀入其內部寄存器,將Hashi作為下一輪MMO HASH函數運算的初始密鑰。(2)輸入數據組Is電路最后輸入數據組Is,并對數據組Is進行MMO HASH運算操作,其電路控制方法為①在控制信號控制下,選擇器MUX4將數據輸入端口上的數據組Is,傳送到AES加密器2數據輸入端。②在控制信號控制下,AES加密器2輸入數據組Is,并對輸入的數據組Is進行加密,在加密過程中,密鑰產生器根據初始密鑰Hastvi產生10組子密鑰,并輸出到AES加密器2密鑰輸入端,AES加密器2根據子密鑰對數據組Is進行加密。加密結果輸出到異或器 X0R3 一個數據輸入端。同時,在控制信號控制下,選擇器MUX3將數據輸入端口上的數據組Is,傳送到異或器M)R3另一個數據輸入端。③在控制信號控制下,異或器M)R3對AES加密器2加密結果和數據組Is進行異或運算,異或運算結果Hashs作為MMO HASH函數運算結果HMAC輸出到數據輸出端口上。本發明已參照當前的實施方式進行了描述,但本技術領域的普通技術人員應當認識到,上述實施方式僅用來說明本發明,并非用來限定本發明的保護范圍,任何在本發明的精神和原則范圍之內,所做的任何修飾、等效替換、改進,均應包含在本發明的權利保護范圍之內。
權利要求
1.一種應用于ZigBee協議的加解密電路結構,其特征在于所述電路結構包括AES加密器1、AES加密器2、計數器、輔助加密數據產生器、選擇器 MUXl、選擇器MUX2、選擇器MUX3、選擇器MUX4、異或器M)R1、異或器M)R2和異或器M)R3,還包括控制信號輸入端口、數據輸入端口、密鑰輸入端口、認證結果輸出端口和數據輸出端 Π ;所述選擇器MUXl的一個數據輸入端連接到數據輸入端口,另一個數據輸入端連接到異或器M)R3的輸出端,選擇信號輸入端與控制信號輸入端口相連接;所述選擇器MUX2的一個數據輸入端連接到密鑰輸入端口,另一個數據輸入端連接到異或器M)R3的輸出端,選擇信號輸入端與控制信號輸入端口相連接; 所述計數器的控制信號輸入端與控制信號輸入端口相連接;所述輔助加密數據產生器的一個數據輸入端連接到計數器輸出端,另一個數據輸入端連接到數據輸入端口,控制信號輸入端與控制信號輸入端口相連接;所述選擇器MUX4的一個數據輸入端連接到輔助加密數據產生器的輸出端,另一個數據輸入端連接到數據輸入端口,選擇信號輸入端與控制信號輸入端口相連接;所述異或器M)R1的一個數據輸入端連接到選擇器MUXl的輸出端,另一個數據輸入端連接到AES加密器1的輸出端,控制信號輸入端與控制信號輸入端口相連接;所述AES加密器1的數據輸入端連接到異或器M)R1的輸出端,AES加密器1密鑰輸入端連接到密鑰產生器的一個輸出端,控制信號輸入端與控制信號輸入端口相連接;所述AES加密器2的數據輸入端連接到選擇器MUX4的輸出端,AES加密器2密鑰輸入端連接到密鑰產生器的另一個輸出端,控制信號輸入端與控制信號輸入端口相連接;所述密鑰產生器的數據輸入端連接到選擇器MUX2的輸出端,控制信號輸入端與控制信號輸入端口相連接;所述異或器M)R2的一個數據輸入端連接到AES加密器1的輸出端,另一個數據輸入端連接到異或器M)R3的輸出端,控制信號輸入端與控制信號輸入端口相連接,輸出端與認證結果輸出端口相連接;所述選擇器MUX3的一個數據輸入端連接到AES加密器1的輸出端,另一個數據輸入端連接到數據輸入端口,選擇信號輸入端與控制信號輸入端口相連接;所述異或器M)R3的一個數據輸入端連接到選擇器MUX3的輸出端,另一個數據輸入端連接到AES加密器2的輸出端,控制信號輸入端與控制信號輸入端口相連接,輸出端與數據輸出端口相連接。
2.一種基于權利要求1所述的應用于ZigBee協議的加解密電路結構的控制方法,其特征在于通過控制信號輸入端口輸入控制信號,在控制信號的控制下,電路在四種狀態之間轉換,四種狀態包括“空閑狀態”、“CCM加密狀態”、“CCM解密狀態”和“HASH函數狀態”所述的“空閑狀態”,為電路的初始工作狀態,在系統上電或系統復位后,電路進入“空閑狀態”,電路中各個部件停止工作;所述的“CCM加密狀態”,在控制信號輸入端口給出“CCM加密狀態”控制信號后,電路進入“CCM加密狀態”,實現ZigBee協議中的CCM*加密/認證碼產生運算操作,當完成CCM* 加密/認證碼產生運算操作后,在控制信號控制下返回“空閑狀態”;所述的“CCM解密狀態”,在控制信號輸入端口給出“CCM解密狀態”控制信號后,電路進入“CCM解密狀態”,實現ZigBee協議中的CCM*解密/認證碼確認運算操作,當完成CCM* 解密/認證碼確認運算操作后,在控制信號控制下返回“空閑狀態”;所述的“HASH函數狀態”,在控制信號輸入端口給出“HASH函數狀態”控制信號后,電路進入“HASH函數狀態”,實現ZigBee協議中的匪0 HASH函數運算操作,當完成匪0 HASH函數運算操作后,在控制信號控制下返回“空閑狀態”。
3.根據權利要求2所述的應用于ZigBee協議的加解密電路結構的控制方法,其特征在于實現CCM*加密/認證碼產生運算操作的方法具體包括以下步驟a.輸入初始密鑰心if;b.輸入輔助驗證數據組凡 代,其中t為自然數;c.輸入輔助驗證數據組墳+廣尾,其中η為自然數;d.驗證碼Γ加密;所述的步驟a,是完成將初始密鑰心y輸入到密鑰產生器的操作,進一步包括以下步驟al)在控制信號控制下,選擇器MUX2將密鑰輸入端口上的初始密鑰心y傳送到密鑰產生器數據輸入端;a2)在控制信號控制下,密鑰產生器將初始密鑰心γ讀入其內部寄存器; 所述的步驟b,是完成將輔助驗證數據組凡輸入到密鑰產生器,以及完成輔助驗證數據組凡 代的CBC-MAC運算操作,兩個操作是同時進行的,其中 bl)將輔助驗證數據組凡輸入到密鑰產生器的方法為在控制信號控制下,輔助加密數據產生器將數據輸入端口上的數據組凡讀入其內部寄存器;b2)輔助驗證數據組凡 代的CBC-MAC運算操作方法進一步包括以下步驟①在控制信號控制下,選擇器MUXl將數據輸入端口上的數據組民,其中i=0,…,U 傳送到異或器M)R1的一個數據輸入端;②在控制信號控制下,異或器M)R1對數據組民與數據組不進行異或運算,Ji為AES 加密器1的輸出值,其中,AES加密器1輸出的初始值J0=O128, (^8表示1 比特0,異或結果輸出到AES加密器1的輸入端;③在控制信號控制下,AES加密器1輸入異或器M)R1輸出的數據,并對輸入的數據進行加密,在加密過程中,密鑰產生器根據初始密鑰心if產生10組子密鑰,并輸出到AES加密器1的密鑰輸入端,AES加密器1根據子密鑰對數據進行加密,加密結果Im從AES加密器 1輸出端輸出;所述的步驟c,是完成輔助驗證數據組墳+廣尾的CBC-MAC和CTR加密運算操作,兩個操作是同時進行的,其中cl)對每個數據組叢,其中i=i+l,…,/ ,進行CBC-MAC運算操作的方法與所述步驟 b中數據組民(i=0,…, )進行CBC-MAC運算操作的方法相同;c2)對每個數據組民,其中i=i+l,…,/ ,進行CTR加密運算操作的方法進一步包括以下步驟①在控制信號控制下,計數器計數值加1,計數器初始值為0,計數器將當前計數值J ,其中J= 1,…,m- =/7- ,輸出到輔助加密數據產生器數據輸入端;②在控制信號控制下,輔助加密數據產生器根據當前計數值J和內部寄存器中的數據組凡,生成當前輔助加密數據組(,并將(輸出到選擇器MUX4 —個數據輸入端;③在控制信號控制下,選擇器MUX4將(輸出到AES加密器2數據輸入端;④在控制信號控制下,AES加密器2對(進行加密,在加密過程中,密鑰產生器根據初始密鑰心IF產生10組子密鑰,并輸出到AES加密器2密鑰輸入端,AES加密器2使用子密鑰對(進行加密,加密結果。輸出到異或器M)R3 —個數據輸入端;同時,選擇器MUX3將數據組叢傳送到異或器M)R3另一個數據輸入端;⑤在控制信號控制下,異或器M)R3對數據組民與數據組Ty進行異或運算,異或結果 .輸出到數據輸出端口 ;所述的步驟d,是完成驗證碼T的CTR加密運算操作,進一步包括以下步驟 dl)在控制信號控制下,計數器計數值清零,并將當前計數值0輸出到輔助加密數據產生器的數據輸入端;d2)在控制信號控制下,輔助加密數據產生器根據當前計數值0和內部寄存器中的數據組凡,生成當前輔助加密數據組禮,并將禮輸出到選擇器MUX4 —個數據輸入端; d3)在控制信號控制下,選擇器MUX4將禮輸出到AES加密器2的數據輸入端; d4)在控制信號控制下,AES加密器2對禮進行加密,在加密過程中,密鑰產生器根據初始密鑰心IF產生10組子密鑰,并輸出到AES加密器2的密鑰輸入端,AES加密器2使用子密鑰對禮進行加密,加密結果F0輸出到異或器M)R3 —個數據輸入端;同時,選擇器MUX3 將AES加密器1輸出的Iyrt傳送到異或器M)R3另一個數據輸入端,為數據組凡 尾的 CBC-MAC運算結果,Iyrt由I字節的驗證碼Γ和16-1字節的任意二進制比特串χ組成,即rlk;d5)在控制信號控制下,異或器M)R3對數據組Zyrt與數據組&進行異或運算,異或結果刎k輸出到數據輸出端口,異或結果刎k由I字節的加密驗證碼V和16-1字節的任意二進制比特串χ組成。
4.根據權利要求2或3所述的應用于ZigBee協議的加解密電路結構的控制方法,其特征在于實現CCM*解密/認證碼確認運算操作的方法具體包括以下步驟a.輸入初始密鑰心if;b.輸入輔助驗證數據組凡 代,其中t為自然數;c.輸入信息密文數據組C1;d.輸入信息密文數據組CTG,其中m為自然數;e.輸入加密驗證碼數據組刎|0;f.驗證碼r確認;所述的步驟a,是完成將初始密鑰心y輸入到密鑰產生器的操作,進一步包括以下步驟al)在控制信號控制下,選擇器MUX2將密鑰輸入端口上的初始密鑰心y傳送到密鑰產生器數據輸入端;a2)在控制信號控制下,密鑰產生器將初始密鑰心γ讀入其內部寄存器; 所述的步驟b,是完成將輔助驗證數據組凡輸入到密鑰產生器,以及完成輔助驗證數據組凡 代的CBC-MAC運算操作,兩個操作是同時進行的,其中bl)將輔助驗證數據組凡輸入到密鑰產生器的方法為在控制信號控制下,輔助加密數據產生器將數據輸入端口上的數據組凡讀入其內部寄存器;b2)輔助驗證數據組凡 代的CBC-MAC運算操作方法進一步包括以下步驟①在控制信號控制下,選擇器MUXl將數據輸入端口上的數據組民,其中i=0,…,U 傳送到異或器M)R1的一個數據輸入端;②在控制信號控制下,異或器M)R1對數據組民與數據組不進行異或運算,Ji為AES 加密器1的輸出值,其中,AES加密器1輸出的初始值J0=O128, (^8表示1 比特0,異或結果輸出到AES加密器1的輸入端;③在控制信號控制下,AES加密器1輸入異或器M)R1輸出的數據,并對輸入的數據進行加密,在加密過程中,密鑰產生器根據初始密鑰心if產生10組子密鑰,并輸出到AES加密器1的密鑰輸入端,AES加密器1根據子密鑰對數據進行加密,加密結果Im從AES加密器 1輸出端輸出;所述的步驟c,是完成信息密文數據組C1的CTR解密運算操作,對數據組G進行CTR解密運算操作的方法進一步包括以下步驟cl)在控制信號控制下,計數器計數值加1,計數器初始值為0,計數器將當前計數值J 輸出到輔助加密數據產生器數據輸入端;c2)在控制信號控制下,輔助加密數據產生器根據當前計數值J和內部寄存器中的數據組凡,生成當前輔助加密數據組(,并將(輸出到選擇器MUX4 —個數據輸入端; c3)在控制信號控制下,選擇器MUX4將(輸出到AES加密器2數據輸入端; c4)在控制信號控制下,AES加密器2輸入數據(,并對(進行加密,在加密過程中,密鑰產生器根據初始密鑰心IF產生10組子密鑰,并輸出到AES加密器2密鑰輸入端,AES加密器2使用子密鑰對(進行加密,加密結果Kj輸出到異或器M)R3 —個數據輸入端;同時, 選擇器MUX3將數據輸入端口上的數據組Cj,傳送到異或器M)R3另一個數據輸入端;c5)在控制信號控制下,異或器M)R3對數據組Cj與數據組Kj進行異或運算,異或結果作為數據明文數據組慫輸出到數據輸出端口,同時也作為輔助驗證數據組輸出到選擇器MUXl的一個數據輸入端;所述的步驟d,是完成信息密文數據組CT Cm的CTR解密運算操作,以及完成輔助驗證數據組久+廣尾-i的CBC- MAC運算操作,兩個操作是同時進行的,其中dl)對每個數據組民,其中i=i+l,…,/7-1,進行CBC-MAC運算操作的方法進一步包括以下步驟①在控制信號控制下,選擇器MUXl將異或器M)R3輸出的數據組民,傳送到異或器 XORl 一個數據輸入端;②在控制信號控制下,異或器M)R1對數據組民與數據組不進行異或運算,Ji為AES 加密器1輸出值,異或結果輸出到AES加密器1的輸入端;③在控制信號控制下,AES加密器1輸入異或器M)R1輸出的數據,并對輸入的數據進行加密,在加密過程中,密鑰產生器根據初始密鑰心if產生10組子密鑰,并輸出到AES加密器1密鑰輸入端,AES加密器1根據子密鑰對數據進行加密,加密結果Im輸出到AES加密器1輸出端;d2)對每個數據組 .,其中J=2,…,m- =/7- ,進行CTR解密運算操作的方法與步驟 c中對數據組 . O=D進行CTR解密運算操作的方法相同;所述的步驟e,是完成加密驗證碼數據組糾|0的CTR解密運算操作,以及完成數據組尾的CBC-MAC運算操作,兩個操作是同時進行的,其中el)對數據組尾進行CBC-MAC運算操作的電路控制方法與步驟d中對數據組叢進行 CBC-MAC運算操作的方法相同;e2)對數據組糾|0進行CTR解密運算操作的方法,進一步包括以下步驟①在控制信號控制下,計數器計數值清零,并將計數值0輸出到輔助加密數據產生器的數據輸入端;②在控制信號控制下,輔助加密數據產生器根據當前計數值0和內部寄存器中的數據組凡,生成當前輔助加密數據組禮,并將禮輸出到選擇器MUX4 —個數據輸入端;③在控制信號控制下,選擇器MUX4將禮輸出到AES加密器2數據輸入端;④在控制信號控制下,AES加密器2輸入數據禮,并對禮進行加密,在加密過程中,密鑰產生器根據初始密鑰心IF產生10組子密鑰,并輸出到AES加密器2密鑰輸入端,AES加密器2使用子密鑰對禮進行加密;加密結果F0輸出到異或器M)R3 —個數據輸入端;同時,選擇器MUX3將數據輸入端口上的數據組糾I 0傳送到異或器M)R3另一個數據輸入端,"I Io由I字節的加密驗證碼“和16-1字節的二進制“0”比特串組成;⑤在控制信號控制下,異或器M)R3對數據組糾Io與數據組T0進行異或運算,異或結果k輸出到異或器M)R3輸出端,異或k結果由I字節的驗證碼Γ和16-1字節的任意二進制比特串χ組成;所述的步驟f,是完成驗證碼T的確認操作,具體方法為在控制信號控制下,異或器M)R3分別讀入AES加密器1輸出的數據組尤+1,以及異或器 X0R3輸出的數據組為數據組凡 尾的CBC-MAC運算結果,尤+1由I字節重新生成的驗證碼T',以及16-1字節的任意二進制比特串ζ組成,即T' I k,異或器M)R3對數據組糾k和數據組廣I k進行異或運算,并將異或結果輸出到認證結果輸出端口。
5.根據權利要求2或3所述的應用于ZigBee協議的加解密電路結構的控制方法,其特征在于實現MMO HASH函數運算操作的方法可分解為以下步驟a.輸入數據組/廣/^1;b.輸入數據組Js;所述的步驟a,是完成數據組Ji,其中i=l,…,·5-1,的MMO HASH運算操作,進一步包括以下步驟①在控制信號控制下,選擇器MUX4將數據輸入端口上的數據組/,.,傳送到AES加密器 2的數據輸入端;②在控制信號控制下,AES加密器2輸入數據組Ji,并對輸入的數據組Ji進行加密,在加密過程中,密鑰產生器根據初始密鑰Zfeih1產生10組子密鑰,其中,Zfeitl為密鑰產生器內部寄存器的初始值,且Zfeitl=O128,并輸出到AES加密器2的密鑰輸入端,AES加密器2根據子密鑰對數據組Zi進行加密,加密結果輸出到異或器M)R3的一個數據輸入端;同時,選擇器MUX3將數據輸入端口上的數據組Ji傳送到異或器M)R3的另一個數據輸入端;③在控制信號控制下,異或器M)R3對AES加密器2的加密結果和數據組Ii進行異或運算,異或運算結果Zfeii輸出到異或器M)R3的輸出端;④在控制信號控制下,選擇器MUX2將異或器M)R3輸出的Hashi傳送到密鑰產生器數據輸入端;⑤在控制信號控制下,密鑰產生器將Zfeii讀入其內部寄存器,將Zfes九.作為下一輪 MMO HASH函數運算的初始密鑰;所述的步驟b,是完成數據組Is的MMO HASH運算操作,進一步包括以下步驟①在控制信號控制下,選擇器MUX4將數據輸入端口上的數據組Is,傳送到AES加密器 2數據輸入端;②在控制信號控制下,AES加密器2輸入數據組厶,并對輸入的數據組Js進行加密,在加密過程中,密鑰產生器根據初始密鑰湯·SiV1產生10組子密鑰,并輸出到AES加密器2密鑰輸入端,AES加密器2根據子密鑰對數據組Is進行加密,加密結果輸出到異或器M)R3 — 個數據輸入端;同時,選擇器MUX3將數據輸入端口上的數據組Is,傳送到異或器M)R3另一個數據輸入端;③在控制信號控制下,異或器M)R3對AES加密器2加密結果和數據組Is進行異或運算,異或運算結果湯Ms作為MMO HASH函數運算結果^ ^輸出到數據輸出端口上。
6.根據權利要求4所述的應用于ZigBee協議的加解密電路結構的控制方法,其特征在于實現MMO HASH函數運算操作的方法可分解為以下步驟a.輸入數據組/廣/^1;b.輸入數據組Js;所述的步驟a,是完成數據組Ji,其中i=l,…,·5-1,的MMO HASH運算操作,進一步包括以下步驟①在控制信號控制下,選擇器MUX4將數據輸入端口上的數據組/,.,傳送到AES加密器 2的數據輸入端;②在控制信號控制下,AES加密器2輸入數據組Ji,并對輸入的數據組Ji進行加密,在加密過程中,密鑰產生器根據初始密鑰Zfeih1產生10組子密鑰,其中,Zfeitl為密鑰產生器內部寄存器的初始值,且Zfeitl=O128,并輸出到AES加密器2的密鑰輸入端,AES加密器2根據子密鑰對數據組Zi進行加密,加密結果輸出到異或器M)R3的一個數據輸入端;同時,選擇器MUX3將數據輸入端口上的數據組Ji傳送到異或器M)R3的另一個數據輸入端;③在控制信號控制下,異或器M)R3對AES加密器2的加密結果和數據組Ii進行異或運算,異或運算結果Zfeii輸出到異或器M)R3的輸出端;④在控制信號控制下,選擇器MUX2將異或器M)R3輸出的Hashi傳送到密鑰產生器數據輸入端;⑤在控制信號控制下,密鑰產生器將Zfeii讀入其內部寄存器,將Zfes九.作為下一輪 MMO HASH函數運算的初始密鑰;所述的步驟b,是完成數據組Is的MMO HASH運算操作,進一步包括以下步驟①在控制信號控制下,選擇器MUX4將數據輸入端口上的數據組Is,傳送到AES加密器 2數據輸入端;②在控制信號控制下,AES加密器2輸入數據組厶,并對輸入的數據組Js進行加密,在加密過程中,密鑰產生器根據初始密鑰湯·SiV1產生10組子密鑰,并輸出到AES加密器2密鑰輸入端,AES加密器2根據子密鑰對數據組Is進行加密,加密結果輸出到異或器M)R3 — 個數據輸入端;同時,選擇器MUX3將數據輸入端口上的數據組Is,傳送到異或器M)R3另一個數據輸入端;③在控制信號控制下,異或器M)R3對AES加密器2加密結果和數據組Is進行異或運算,異或運算結果湯Ms作為MMO HASH函數運算結果^ ^輸出到數據輸出端口上。
全文摘要
本發明涉及了一種應用于ZigBee協議的加解密電路結構及其控制方法,該電路結構基于兩個AES加密器,通過控制信號對電路控制,分別實現ZigBee協議中的CCM*加密/認證碼產生、CCM*解密/認證碼確認以及基于AES-128的MMOHash函數等運算操作。本發明完全使用硬件電路實現AES-CCM*安全模式和MMOHASH函數,減小了ZigBee系統中CPU的負載,也避免了不必要的軟件攻擊,同時本發明在CCM*加密/認證碼產生運算操作過程中,可以使用加密運算操作和認證碼產生運算操作并行運行方式,以及在CCM*解密/認證碼確認運算操作過程中,可以使用解密運算操作和認證碼確認運算操作并行運行方式,從而加快了CCM*模式的運算操作速度。
文檔編號H04W12/02GK102448059SQ20111037540
公開日2012年5月9日 申請日期2011年11月23日 優先權日2011年11月23日
發明者吳寧, 吳杰, 周磊, 周陽, 張肖強, 朱晴, 李信超, 穆屹峰, 陳一帆, 陳鑫, 顧薛平, 黎建華 申請人:南京航空航天大學