崔 超, 趙 云, 肖 勇, 林偉斌, 徐 迪
南方電網(wǎng)科學(xué)研究院有限責(zé)任公司, 廣州 510663
2004 年, IEEE 無(wú)線標(biāo)準(zhǔn)小組公布了802.11i 無(wú)線局域網(wǎng)安全補(bǔ)充標(biāo)準(zhǔn)[1], 其中定義了基于AES 的全新加密協(xié)議CCM 協(xié)議, 滿足了當(dāng)時(shí)無(wú)線局域網(wǎng)安全性的迫切需求, 推動(dòng)工業(yè)4.0、物聯(lián)網(wǎng)、智能家居、智能駕駛等技術(shù)從概念階段逐漸走向成熟. 目前AES-CCM 加密協(xié)議已廣泛被802.11、802.15、802.16、Bluetooth、Zigbee 等無(wú)線通訊協(xié)議采用.
CCM 協(xié)議主要由經(jīng)典的密文塊連接CBC 分組模式和計(jì)數(shù)器CTR 分組模式構(gòu)成. CBC 分組模式主要用于生成消息完整性校驗(yàn)值(MAC), CTR 分組模式主要用于對(duì)傳輸數(shù)據(jù)加解密. 因此AES-CCM 加密協(xié)議同時(shí)具備驗(yàn)證數(shù)據(jù)完整性、真實(shí)性和保障數(shù)據(jù)安全性的功能.
基于上述安全高效的優(yōu)點(diǎn), AES-CCM 加密協(xié)議已普遍實(shí)現(xiàn)于可穿戴設(shè)備、車(chē)載網(wǎng)絡(luò)設(shè)備, 智能監(jiān)控設(shè)備中. 然而現(xiàn)在無(wú)線網(wǎng)絡(luò)傳輸速度不斷提高, 2013 年發(fā)布的802.11ac 通訊標(biāo)準(zhǔn)推出4×4 多輸入多輸出(multiple input multiple output, MIMO) 技術(shù), 將傳輸速率提高到1.3 Gbps, 2019 年發(fā)布的802.11ax通訊標(biāo)準(zhǔn)使用8×8 MIMO 技術(shù), 在5 GHz 頻段上可以帶來(lái)高達(dá)4.8 Gbps 的第6 代Wi-Fi 連接速度, 而適用于無(wú)線VR 頭戴和流媒體投屏應(yīng)用的802.11ay 標(biāo)準(zhǔn)在60 GHz 的頻段下, 傳輸速率可高達(dá)20 Gbps,這使得AES-CCM 加密協(xié)議處理數(shù)據(jù)的速度成為無(wú)線網(wǎng)絡(luò)高速發(fā)展的瓶頸之一.
此外, 無(wú)線終端設(shè)備諸如可穿戴設(shè)備、智能報(bào)警設(shè)備等普遍為低功耗設(shè)備, 鏈路層數(shù)據(jù)加解密以及認(rèn)證產(chǎn)生的功耗會(huì)成為設(shè)備的主要功耗. 很多IP 設(shè)計(jì)者會(huì)在數(shù)據(jù)發(fā)送前或接收后, 對(duì)數(shù)據(jù)加解密, 以降低峰值功耗, 這就產(chǎn)生額外的存儲(chǔ)和速度開(kāi)銷(xiāo). 因此AES-CCM 加密協(xié)議的低功耗、小面積硬件實(shí)現(xiàn)成為無(wú)線終端設(shè)備在實(shí)際應(yīng)用場(chǎng)景中的另一個(gè)技術(shù)瓶頸.
為了攻克以上技術(shù)難點(diǎn), 國(guó)內(nèi)外在AES-CCM 的高吞吐率、低功耗實(shí)現(xiàn)方面做了很多研究[2–4].Nguyen 等人將CBC 和CTR 并行計(jì)算, 提出了雙AES 核、高吞吐率的電路實(shí)現(xiàn), 在269 MHz 的最高頻率下, 吞吐率能達(dá)到2.69 Gbps[5]. 然而該文獻(xiàn)并沒(méi)有注意到CBC 和CTR 具備相同密鑰的特性,粗粒度的并行實(shí)現(xiàn)致使電路中存在大量的冗余計(jì)算, 增加了功耗和面積的開(kāi)銷(xiāo). Hoang 等人給出了8-bit單核AES-CCM 的超低功耗實(shí)現(xiàn)[6], 但是該方案的AES 計(jì)算周期數(shù)太大, 僅能適用于低速、低功耗產(chǎn)品. Pammu 等人提出9-Core 并行方案[7], 在數(shù)據(jù)加密時(shí)多路并行計(jì)算; 在校驗(yàn)值生成時(shí), 利用有限域GF(28) 上的乘法將每16×128 比特轉(zhuǎn)換為128 比特再送進(jìn)CBC 模塊計(jì)算校驗(yàn)值, 如此使得原標(biāo)準(zhǔn)中的每128 比特一反饋, 轉(zhuǎn)換為每16×128 比特一反饋, 打破了由于密文反饋導(dǎo)致CBC 不能并行計(jì)算的局限性, 將數(shù)據(jù)處理速率提高至8.32 Gbps. 但是該方案改變了AES-CCM 加密協(xié)議的標(biāo)準(zhǔn), 并不具備通用性.
本文對(duì)AES-CCM 加密協(xié)議作了深入研究, 利用其鏈路加密與解密都只用到AES 加密模式的特點(diǎn),提出了5-Core AES-CCM 高吞吐率低功耗硬件實(shí)現(xiàn)方案, 該實(shí)現(xiàn)支持半雙工通訊方式以及全雙工同步計(jì)算通訊方式. 在全雙工通訊方式下, 5 個(gè)Core 參與計(jì)算, 吞吐率可達(dá)4.23 Gbps. 同時(shí)該方案利用其鏈路加密與解密過(guò)程中驗(yàn)證值生成和數(shù)據(jù)加解密密鑰相同的特點(diǎn), 提出多Core 輪密鑰共享方案, 有效減少了冗余電路的實(shí)現(xiàn)和計(jì)算,與傳統(tǒng)實(shí)現(xiàn)方式相比,AES-CCM 的電路面積和功耗分別減少14.88%和20.00%.此外, 為了降低功耗, 在S 盒實(shí)現(xiàn)時(shí), 該方案利用同構(gòu)映射, 將復(fù)合域GF(28) 上的求逆運(yùn)算逐步映射到GF(((22)2)2) 上, 并對(duì)GF((22)2) 域上的邏輯表達(dá)式化簡(jiǎn), 使得電路中僅涉及與或非基本單元庫(kù), 同時(shí)將相鄰?fù)瑯?gòu)逆映射和仿射變換相結(jié)合化簡(jiǎn), 從而降低功耗, 縮小關(guān)鍵路徑的延時(shí).
本文結(jié)構(gòu)如下: 第2 節(jié)介紹了AES-CCM 加密協(xié)議、AES 加密算法;第3 節(jié)闡述了5-Core AES-CCM加密協(xié)議的實(shí)現(xiàn)方案; 第4 節(jié)給出AES 加密算法的S 盒實(shí)現(xiàn)方案; 第5 節(jié)介紹仿真環(huán)境與結(jié)果以及綜合環(huán)境與結(jié)果, 并將本方案與其他方案作對(duì)比分析; 第6 節(jié)對(duì)方案進(jìn)行總結(jié).
本節(jié)第一部分簡(jiǎn)要介紹AES-CCM 加密協(xié)議并概述其特點(diǎn); 第二部分介紹AES 加密算法.
無(wú)線通訊網(wǎng)絡(luò)的安全性保證包括三方面: 密鑰管理、數(shù)據(jù)驗(yàn)證以及數(shù)據(jù)保密.
密鑰管理一般結(jié)合隨機(jī)數(shù)的生成與傳輸, 利用根密鑰、讀取密鑰、會(huì)話密鑰三級(jí)密鑰體制實(shí)現(xiàn)主從設(shè)備的身份驗(yàn)證、密鑰分發(fā)以及會(huì)話密鑰的更新.
數(shù)據(jù)驗(yàn)證一般由哈希函數(shù)或者對(duì)稱(chēng)加密算法的特定分組模式構(gòu)成, 如圖1 所示, 數(shù)據(jù)發(fā)送前, 發(fā)送方對(duì)明文數(shù)據(jù)壓縮, 生成消息驗(yàn)證碼MAC 值附于明文后, 發(fā)送給接收方. 接收方收到數(shù)據(jù)后用同樣的算法壓縮明文得到另一個(gè)MAC 值, 并將兩個(gè)MAC 值比較, 若一致, 則接收數(shù)據(jù)無(wú)誤.
數(shù)據(jù)保密一般由加密算法結(jié)合分組模式共同實(shí)現(xiàn)對(duì)數(shù)據(jù)的分組與加解密, 在圖1 中, 發(fā)送方將明文數(shù)據(jù)和MAC 值拼接起來(lái)并分成等長(zhǎng)度的數(shù)據(jù)組, 接收方接到密文數(shù)據(jù)后用同樣的加密算法和分組模式的逆過(guò)程, 以及相同的密鑰對(duì)數(shù)據(jù)進(jìn)行分組解密, 以得到明文和MAC 值.
圖1 鏈路層數(shù)據(jù)驗(yàn)證與數(shù)據(jù)保密Figure 1 Validation and confidentiality of link layer data
AES-CCM 主要用于保護(hù)物聯(lián)網(wǎng)的數(shù)據(jù)安全傳輸, 由AES 分組密碼算法和CCM 分組模式構(gòu)成.CCM 是一種比較新的分組模式, 主要由CBC 分組模式和CTR 分組模式構(gòu)成. 其結(jié)構(gòu)如圖2 所示.
隨著教學(xué)改革的步伐不斷邁進(jìn),老師在課堂中不但要傳授學(xué)生知識(shí),還需要把學(xué)生的探索精神與創(chuàng)造能力培養(yǎng)起來(lái),但是由于受到根深蒂固的傳統(tǒng)教育觀念所影響,很多的老師在教學(xué)過(guò)程中并沒(méi)有把提升學(xué)生的綜合素質(zhì)重視起來(lái)。在教學(xué)的過(guò)程中老師必須改變這種傳統(tǒng)的教學(xué)觀念,充分應(yīng)用新課改背景下的現(xiàn)代化教學(xué)理念,尊重學(xué)生學(xué)習(xí)過(guò)程中的主觀能動(dòng)性,引導(dǎo)每個(gè)學(xué)生都能夠主動(dòng)深入思考,并能夠展現(xiàn)自己的個(gè)性。
圖2 AES-CCM 結(jié)構(gòu)圖Figure 2 AES-CCM architecture
MAC 值主要借鑒CBC 分組模式生成, AES 的輸入為包含數(shù)據(jù)包頭、數(shù)據(jù)長(zhǎng)度、數(shù)據(jù)明文等信息的特定分組與前一組AES 密文輸出Yi?1的異或值. 其計(jì)算過(guò)程如下, 其中B0、B1為包含數(shù)據(jù)包頭和數(shù)據(jù)長(zhǎng)度的128 bits 數(shù)據(jù),Pi為128 bits 的明文分組.
數(shù)據(jù)的加解密主要借鑒CTR 分組模式完成, 該分組模式的加密流程和解密流程完全一樣. AES 的輸入為包含數(shù)據(jù)組計(jì)數(shù)值信息的數(shù)據(jù)Ai, AES 的密鑰key 同生成校驗(yàn)值使用的密鑰key 相同, 其計(jì)算過(guò)程如下:
AES 是美國(guó)國(guó)家標(biāo)準(zhǔn)技術(shù)局(NIST) 于2001 年發(fā)布的一個(gè)新的分組加密算法, 用來(lái)取代DES 算法.分組長(zhǎng)度固定為128 比特, 密鑰長(zhǎng)度在128、192、256 中可選, 分別對(duì)應(yīng)AES-128、AES-192、AES-256.AES-128 的加密流程如圖3 所示, 總體由兩部分組成: 密鑰擴(kuò)展和輪迭代. 每一輪的輪密鑰擴(kuò)展由移位操作、異或操作和字節(jié)替換操作構(gòu)成; 輪迭代由字節(jié)替換、行移位、列混合、密鑰加組成.
圖3 AES 算法結(jié)構(gòu)Figure 3 AES architecture
通過(guò)對(duì)AES-CCM 加密協(xié)議進(jìn)行分析, 我們歸納出該協(xié)議的3 個(gè)特點(diǎn):
(1) 無(wú)論設(shè)備作為數(shù)據(jù)的發(fā)送方還是數(shù)據(jù)的接收方, AES-CCM 加密協(xié)議中僅用到AES 的加密模式,因此硬件實(shí)現(xiàn)中為減小設(shè)備的功耗和面積可以省去AES 解密模式的實(shí)現(xiàn).
(2) AES-CCM 加密協(xié)議中MAC 值的生成和數(shù)據(jù)的加解密可以并行計(jì)算.
(3) AES 在MAC 值生成以及數(shù)據(jù)加解密時(shí)所用到的密鑰相同, 因此為減小功耗, 多個(gè)輪迭代函數(shù)可以共享一個(gè)密鑰擴(kuò)展模塊.
根據(jù)以上AES-CCM 加密協(xié)議的特點(diǎn)分析, 本文實(shí)現(xiàn)了5-Core AES-CCM 硬件模塊, 該模塊以高性能5-Core AES 加密模塊為運(yùn)算核心, 在外圍CCM 模塊的協(xié)同控制下來(lái)實(shí)現(xiàn)AES-CCM 加密協(xié)議.
5-Core AES 模塊的模塊結(jié)構(gòu)如圖4 所示, Core_4 實(shí)現(xiàn)密鑰擴(kuò)展的輪操作, Core_0–Core_3 為4 個(gè)完全一樣的輪迭代函數(shù), 并行實(shí)現(xiàn)4×128 比特的數(shù)據(jù)加密. 5-Core AES 模塊根據(jù)需要可配置為2-Core、3-Core、4-Core、5-Core 模式, 用于AES-CCM 半雙工或全雙工同通訊場(chǎng)景下, 也可用于非CCM 模式的AES 多路并行加密場(chǎng)景.
圖4 5-Core AES 結(jié)構(gòu)圖Figure 4 5-Core AES architecture
CCM 模塊主要由狀態(tài)機(jī)構(gòu)成, 在半雙工通訊方式下, 僅實(shí)現(xiàn)RX 狀態(tài)操作或TX 狀態(tài)操作, 其狀態(tài)跳轉(zhuǎn)和狀態(tài)操作如圖5 所示, 各狀態(tài)含義參照?qǐng)D2 AES-CCM 結(jié)構(gòu)框圖理解, CIPHER_B0 狀態(tài)表示對(duì)B0數(shù)據(jù)加密, 調(diào)用一個(gè)加密核, 將5-Core AES 加密模塊配置成2-Core 模式; CIPHER_B1Y0_A1狀態(tài)表示對(duì)B1⊕Y0數(shù)據(jù)和A1計(jì)數(shù)值加密, CIPHER_PXYX_AX1 狀態(tài)表示對(duì)Px ⊕Yx和計(jì)數(shù)值A(chǔ)x+1加密, CIPHER_MAC_A0 狀態(tài)表示對(duì)最后一組明文Pn ⊕Yn加密生成MAC 值, 同時(shí)對(duì)A0加密.CIPHER_B1Y0_A1 狀態(tài)、CIPHER_PXYX_AX1 狀態(tài)、CIPHER_MAC_A0 狀態(tài)調(diào)用兩個(gè)并行的加密核, 將5-Core AES 加密模塊配置成3-Core 模式. 每個(gè)加密狀態(tài)的跳出條件為加密完成, 每個(gè)WAIT狀態(tài)的跳出條件為數(shù)據(jù)獲取完成.
圖5 半雙工通訊方式CCM 狀態(tài)控制Figure 5 CCM state control of half-duplex communication
在全雙工通訊方式下, RX 數(shù)據(jù)包處理和TX 數(shù)據(jù)包處理并行實(shí)現(xiàn), 狀態(tài)跳轉(zhuǎn)如圖6 所示. CIPHER_0 狀態(tài)加密一組數(shù)據(jù), 將5-Core AES 加密模塊配置成2-Core 模式; CIPHER_01 狀態(tài)同時(shí)加密兩組數(shù)據(jù), 將5-Core AES 加密模塊配置成3-Core 模式; CIPHER_012 狀態(tài)同時(shí)加密三組數(shù)據(jù), 將5-Core AES 加密模塊配置成4-Core 模式; CIPHER_0123 狀態(tài)同時(shí)加密四組數(shù)據(jù), 將5-Core AES 加密模塊配置成5-Core 模式.
狀態(tài)跳轉(zhuǎn)有4 種情況, 其狀態(tài)跳轉(zhuǎn)如圖6 的右側(cè)所示. 1 為先處理一個(gè)數(shù)據(jù)包, 隨后又開(kāi)啟另一個(gè)數(shù)據(jù)包的處理, 兩個(gè)數(shù)據(jù)包同時(shí)結(jié)束的情況; 2 為先處理一個(gè)數(shù)據(jù)包, 隨后開(kāi)啟另一個(gè)數(shù)據(jù)包的處理, 兩個(gè)數(shù)據(jù)包不同時(shí)結(jié)束的情況; 3 為兩個(gè)數(shù)據(jù)包同時(shí)開(kāi)始, 同時(shí)結(jié)束的情況; 4 為兩個(gè)數(shù)據(jù)包同時(shí)開(kāi)始, 不同時(shí)結(jié)束的情況. flg_packet0_cmp 信號(hào)和flg_packet1_cmp 信號(hào)分別代表兩個(gè)數(shù)據(jù)包處理中的指示信號(hào), 根據(jù)以上4 種情況, 結(jié)合每個(gè)數(shù)據(jù)包的分組長(zhǎng)度和計(jì)數(shù)值A(chǔ)x產(chǎn)生高電平信號(hào). 狀態(tài)跳轉(zhuǎn)條件在flg_packet0_cmp 和flg_packet1_cmp 不同值下結(jié)合加密完成信號(hào)和數(shù)據(jù)獲取完畢信號(hào)產(chǎn)生.
S 盒在RTL 實(shí)現(xiàn)時(shí)主要有查找表方式和基于有限域運(yùn)算方式[8]. S 盒的查找表方式快捷直接, 但是電路面積非常大, 不適合高速低功耗應(yīng)用實(shí)現(xiàn). 有限域?qū)崿F(xiàn)S 盒, 計(jì)算公式為:
先將a在有限域GF(28) 上進(jìn)行乘法逆運(yùn)算, 再對(duì)其乘法逆元進(jìn)行仿射變換. 該種方式實(shí)現(xiàn)的S 盒電路結(jié)構(gòu)緊湊, 資源消耗少[9,10], 但是其關(guān)鍵在于有效實(shí)現(xiàn)有限域GF(28) 上的乘法逆元. 本文利用復(fù)合域的同構(gòu)映射, 將GF(28) 上的運(yùn)算逐步映射到GF(((22)2)2) 上進(jìn)行, 以降低運(yùn)算的復(fù)雜度. 方案中GF(28) 和GF((24)2) 之間的同構(gòu)映射為:
GF(24) 和GF((22)2) 之間的同構(gòu)映射為:
各復(fù)合域中的不可約多項(xiàng)式為:
在以上代數(shù)背景下得出(ahx+al)?1在GF((24)2) 上的乘法逆元a′hx+a′l為:
上式中v={1001}, 從上式可以看出GF(28) 上的求逆運(yùn)算經(jīng)過(guò)同構(gòu)映射轉(zhuǎn)化為GF(24) 上的求逆運(yùn)算、乘法運(yùn)算、平方運(yùn)算、平方乘運(yùn)算和異或運(yùn)算. 利用同樣的計(jì)算方式可以將GF(24) 上的運(yùn)算同構(gòu)映射到GF((22)2) 上進(jìn)行, 從而將邏輯表達(dá)式逐步分解. 圖7 給出GF(28) 上求逆和GF(24) 上乘積的電路結(jié)構(gòu).
圖7 GF(28) 上的乘法逆元電路和GF(24) 上的乘法電路Figure 7 Circuits of multiplicative inverse in GF(28) and multiplication in GF(24)
為了簡(jiǎn)化電路的運(yùn)算路徑, 本方案將GF(24) 與GF((22)2) 之間的同構(gòu)映射T1、同構(gòu)逆映射分別與GF((22)2) 上的乘積運(yùn)算、逆運(yùn)算、平方運(yùn)算、平方乘運(yùn)算的邏輯表達(dá)式結(jié)合化簡(jiǎn), 得到GF(24) 上的求逆運(yùn)算、乘法運(yùn)算、平方運(yùn)算和平方乘運(yùn)算簡(jiǎn)化后的邏輯表達(dá)式如下所示:
為了對(duì)方案的功能進(jìn)行驗(yàn)證, 我們對(duì)方案進(jìn)行RTL 代碼實(shí)現(xiàn), 利用VCS 仿真軟件結(jié)合Testbench 驗(yàn)證腳本和測(cè)試激勵(lì), 完成各模塊的前仿功能驗(yàn)證.
由于 5-Core AES 模塊由 4 個(gè)完全一樣的輪函數(shù)并行實(shí)現(xiàn), 故我們?cè)诖酥恍璺治鲆粋€(gè)輪函數(shù)的仿真結(jié)果, 設(shè)置加密密鑰為: 66c6_c227_8e3b_8e05_3e7e_a326_521b_ad99, 明文輸入為:0400_deaf_babe_badc_ab24_0000_0000_0101, 實(shí)驗(yàn)結(jié)果仿真的密文輸出為: d824_88ba_3df3_896d_bfb0_ba38_e55e_5e26. 為了驗(yàn)證RTL 代碼功能正確性, 我們對(duì)算法進(jìn)行了軟件實(shí)現(xiàn), 并將RTL仿真結(jié)果與軟件加密模型對(duì)比, 經(jīng)對(duì)比密文輸出一致, 輪函數(shù)功能正確. 同時(shí)通過(guò)仿真可知完成AES-128的完整計(jì)算需要11 個(gè)周期.
CCM 模塊在狀態(tài)機(jī)的控制下完成數(shù)據(jù)讀寫(xiě)以及5-Core AES 模塊的數(shù)據(jù)和使能配置,使其完成AESCCM 協(xié)議的數(shù)據(jù)處理.
在半雙工通訊方式下, 假設(shè)需要發(fā)送或接收的數(shù)據(jù)包有效數(shù)據(jù)長(zhǎng)度為256×128 比特, 完成256×128比特的RX_DATA 或TX_DATA 數(shù)據(jù)傳輸需要加密(2×(256+1)+1)×128 比特的數(shù)據(jù), 至少需要12×(256+2) 個(gè)周期(每組數(shù)據(jù)需要11 個(gè)周期的加密, 至少1 個(gè)周期的數(shù)據(jù)獲取). 故在200 MHz 的時(shí)鐘頻率下, 吞吐率為(256×128)×200 M/(12×(256+2))=2.12 Gbps.
在全雙工通訊方式下, 若傳輸設(shè)備需要發(fā)送和接收各256×128 比特?cái)?shù)據(jù), 由于發(fā)送數(shù)據(jù)包和接收數(shù)據(jù)包存在3.2 節(jié)描述的四種情況, 故吞吐率不恒定. 考慮最差的情況, 兩個(gè)數(shù)據(jù)包僅交疊128 比特,則CIPHER_0 狀態(tài)執(zhí)行1 次, CIPHER_01 狀態(tài)執(zhí)行255×2 次, CIPHER_012 狀態(tài)執(zhí)行1 次, CIPHER_0123 狀態(tài)執(zhí)行1 次, 完成2× 256× 128 比特的rx_data 和tx_data 數(shù)據(jù)傳輸至少需要12×(1+255×2+1+1) 個(gè)周期. 故在200 MHz 的時(shí)鐘頻率下, 吞吐率為2×256×128×200 M/12×(1+255×2+1+1) = 2.13 Gbps. 考慮最好的情況, 兩個(gè)數(shù)據(jù)包完全同步, 則CIPHER_01 狀態(tài)執(zhí)行1 次,CIPHER_0123 狀態(tài)執(zhí)行256+1 次, 完成2×256×128 比特的RX_DATA 和TX_DATA 數(shù)據(jù)傳輸至少需要12×(1+257)個(gè)周期. 故在200 MHz 的時(shí)鐘頻率下,吞吐率為2×256×128×200 M/12×(1+257)=4.23 Gbps. 因此全雙工通訊方式下的吞吐率在2.13 Gbps 和4.23 Gbps 之間, 該協(xié)處理器能達(dá)到的峰值吞吐率為4.23 Gbps.
將該方案與其他方案的性能進(jìn)行對(duì)比, 結(jié)果見(jiàn)表1, 對(duì)比發(fā)現(xiàn)Multi GF(28) 方案[7]的數(shù)據(jù)處理速度最快, 但是該方案將不可并行的CBC 分組模式做了調(diào)整, 將128 比特分組改為16×128 比特分組, 并對(duì)16×128 比特?cái)?shù)據(jù)在GF(28) 上壓縮成128 比特, 再送入CBC 分組模式, 以此提高數(shù)據(jù)并行處理的速度, 實(shí)際上這種方式已經(jīng)改變了標(biāo)準(zhǔn)的AES-CCM 加密協(xié)議, 并不具備廣泛的適用性. 其他方案中的最高吞吐率方案為Parallel two AES[5], 考慮到實(shí)現(xiàn)工藝不同, 我們對(duì)該文獻(xiàn)做了最大相似度電路實(shí)現(xiàn), 并在TSMC 65 nm、tt_1p0v_25c 的工藝下綜合, 發(fā)現(xiàn)其最高頻率能達(dá)到320 MHz, 對(duì)應(yīng)吞吐率為3.26 Gbps,故本論文方案是其他方案中歸一化后最高速率3.26 Gbps 的1.30 倍.
表1 5-Core AES-CCM 方案與其他方案AES-CCM 的性能對(duì)比Table 1 Comparison of proposed 5-Core AES-CCM with other AES-CCM techniques
為了對(duì)方案的功耗和面積進(jìn)行評(píng)估, 我們?cè)赥SMC 65 nm、tt_1p0v_25c 的工藝下用Design Compiler 軟件對(duì)AES-CCM 模塊進(jìn)行綜合,在200 MHz 的時(shí)鐘約束下,綜合所得電路面積為39.59 kgates,功耗為6.89 mW. 為了對(duì)比, 我們對(duì)傳統(tǒng)非輪密鑰共享, 粗粒度4 個(gè)AES 并行實(shí)現(xiàn)AES-CCM 加密協(xié)議方案進(jìn)行了電路實(shí)現(xiàn)(外圍CCM 控制模塊基本不變, 5-Core AES 模塊替換成4 個(gè)并行的AES 模塊), 并在相同工藝和約束下進(jìn)行綜合, 電路的面積為46.51 kgates, 功耗為8.62 mW, 具體各模塊的面積和功耗分布情況如表2 所示. 因此本方案中的密鑰共享方案能夠使電路的面積和功耗分別減小14.88% 和20.00%.
表2 5-Core AES-CCM 方案與Traditional parallel four AES 的功耗面積對(duì)比Table 2 Comparison of proposed 5-Core AES-CCM with traditional parallel four AES
本文根據(jù)AES-CCM 鏈路層數(shù)據(jù)加密與解密都只用到AES 加密模式, 且數(shù)據(jù)校驗(yàn)值生成與數(shù)據(jù)加解密密鑰相同的特點(diǎn), 給出5-Core AES-CCM 加密協(xié)議的硬件實(shí)現(xiàn)方案, 方案采用4 個(gè)輪函數(shù)并行計(jì)算的方式同時(shí)實(shí)現(xiàn)TX 與RX 兩個(gè)數(shù)據(jù)包的處理, 提高了數(shù)據(jù)吞吐率. 同時(shí)方案采用輪密鑰共享機(jī)制, 以及AES 算法S 盒復(fù)合域化簡(jiǎn)實(shí)現(xiàn)方法, 有效去除冗余電路, 減小了電路面積和功耗.