潘志鵬,吳斌,尉志偉,葉甜春
(中國科學(xué)院微電子研究所專用集成電路與系統(tǒng)研究室,北京100029)
安全協(xié)議作為無線通信網(wǎng)絡(luò)必不可少的組成部分,一直是行業(yè)的研究重點(diǎn)。針對(duì)WLAN網(wǎng)絡(luò)采用WEP(有線等效私密性)協(xié)議存在的不安全性,Wi-Fi聯(lián)盟制定了 IEEE 802.11i[1]安全協(xié)議,增加 TKIP(暫時(shí)性密鑰完整協(xié)議)和CCMP(計(jì)數(shù)器模式和密碼分組鏈接模式協(xié)議)2種算法協(xié)議,提高了WLAN網(wǎng)絡(luò)的安全性。數(shù)據(jù)幀的加解密涉及大量實(shí)時(shí)、復(fù)雜的算法運(yùn)算,實(shí)現(xiàn)的性能將會(huì)嚴(yán)重影響系統(tǒng)的吞吐率和處理延遲,尤其是基于 IEEE 802.11ac[2]協(xié)議的下一代WLAN網(wǎng)絡(luò),單芯片系統(tǒng)的吞吐率達(dá)到Gbit/s量級(jí),使得安全加速引擎的VLSI實(shí)現(xiàn)面臨巨大挑戰(zhàn)。為了實(shí)現(xiàn)高吞吐率、低延遲的WLAN系統(tǒng)加解密數(shù)據(jù)傳輸性能,改善安全加速引擎的算法架構(gòu)并提出優(yōu)化的VLSI架構(gòu)將顯得至關(guān)重要。
文獻(xiàn)[3-7]針對(duì)RC4和AES加解密算法進(jìn)行優(yōu)化設(shè)計(jì),雖然可以實(shí)現(xiàn)較高吞吐率,但并未涉及具體的安全協(xié)議,且未考慮VLSI實(shí)現(xiàn)對(duì)整個(gè)系統(tǒng)性能的影響。文獻(xiàn)[8]實(shí)現(xiàn)了WEP/TKIP/CCMP 3種加解密協(xié)議,但其性能不足以滿足下一代WLAN系統(tǒng)802.11ac對(duì)Gbit/s吞吐率的需求。本文基于不降低系統(tǒng)運(yùn)算吞吐率為前提,提出了一種多模式、高性能的安全加速引擎架構(gòu),可以支持WEP/TKIP/CCMP等安全協(xié)議,重點(diǎn)優(yōu)化了密鑰查找的處理延遲以及提升AES-CCM的運(yùn)算性能。
安全加速引擎運(yùn)行于WLAN系統(tǒng)的MAC層,負(fù)責(zé)對(duì)MPDU數(shù)據(jù)幀進(jìn)行加/解密運(yùn)算,以保證通信雙方數(shù)據(jù)交互的私密性。而安全協(xié)議設(shè)計(jì)實(shí)現(xiàn)的關(guān)鍵點(diǎn)在于,針對(duì)不同的安全協(xié)議設(shè)計(jì)相應(yīng)算法引擎的VLSI架構(gòu)以及加解密算法的高性能實(shí)現(xiàn)。安全加速引擎的VLSI架構(gòu)將直接影響到系統(tǒng)的運(yùn)算效率,甚至有可能會(huì)制約下一代WLAN系統(tǒng)性能的提升。綜合考慮IEEE 802.11i安全協(xié)議對(duì)可擴(kuò)展性的需求和IEEE 802.11ac下一代WLAN協(xié)議對(duì)數(shù)據(jù)傳輸性能的要求,本文提出一種可重構(gòu)的安全加速引擎VLSI架構(gòu),如圖1所示,主要包括5個(gè)部分:輸入FIFO,輸出FIFO,控制器,密鑰信息查找模塊和加解密運(yùn)算核。
圖1 安全加速引擎的系統(tǒng)架構(gòu)Fig.1 System architecture of cipher engine
其中,輸入緩存及輸入封裝狀態(tài)機(jī)、安全加速引擎控制狀態(tài)機(jī)、輸出解封裝狀態(tài)機(jī)及輸出緩存,這三者在運(yùn)算數(shù)據(jù)流上構(gòu)成一個(gè)流水線處理結(jié)構(gòu)。在一個(gè)數(shù)據(jù)塊運(yùn)算周期內(nèi),可以同時(shí)實(shí)現(xiàn)下一個(gè)數(shù)據(jù)塊的封裝、當(dāng)前數(shù)據(jù)塊的加解密運(yùn)算和上一個(gè)數(shù)據(jù)塊的解封裝。流水線的處理方式減小了數(shù)據(jù)塊運(yùn)算之間的等待延遲,也間接提高了數(shù)據(jù)幀加解密運(yùn)算的吞吐量。該架構(gòu)將不同加解密協(xié)議算法的實(shí)現(xiàn),如WEP/TKIP/CCMP等安全協(xié)議,構(gòu)成一個(gè)獨(dú)立的加解密運(yùn)算核,并提供一個(gè)統(tǒng)一的交互接口,使得整體架構(gòu)具備較強(qiáng)的可擴(kuò)展性。
安全加速引擎對(duì)每一個(gè)數(shù)據(jù)幀的處理,均需要與外部模塊進(jìn)行控制信息和狀態(tài)信息的交互。若采用分立的信號(hào)線傳輸方式,無形中會(huì)增加系統(tǒng)處理的復(fù)雜性,且不易于系統(tǒng)的集成和擴(kuò)展。對(duì)此,本文在標(biāo)準(zhǔn)的MAC幀格式上增加了2個(gè)信息域,如圖2所示,一個(gè)是MAC幀頭之前的控制信息,另一個(gè)則是幀末尾的處理狀態(tài)信息??偩€式的交互簡化了模塊之間協(xié)同工作的復(fù)雜性,使得所設(shè)計(jì)的安全加速引擎適用于IEEE 802.11a/b/g/n/ac等不同的協(xié)議標(biāo)準(zhǔn),保證了系統(tǒng)的可維護(hù)性和可擴(kuò)展性。
圖2 安全加速引擎的輸入輸出幀格式Fig.2 Input/ouput frame format of cipher engine
一般情況下,經(jīng)認(rèn)證過程相互協(xié)商的各站點(diǎn)加解密信息會(huì)被配置到安全加速引擎,組成一個(gè)密鑰信息查找表。而安全加速引擎進(jìn)行數(shù)據(jù)幀的加解密運(yùn)算之前,須根據(jù)對(duì)方站點(diǎn)的MAC地址查找到所對(duì)應(yīng)的密鑰信息。當(dāng)一個(gè)BSS網(wǎng)絡(luò)存在多個(gè)站點(diǎn)同時(shí)通信,接入點(diǎn)獲取不同站點(diǎn)加解密運(yùn)算所需的密鑰信息會(huì)造成較大的查找延遲。為了降低密鑰查找所帶來的延遲,本文提出一種面向VLSI實(shí)現(xiàn)的快速密鑰查找算法,可以實(shí)現(xiàn)平均查找延遲不隨站點(diǎn)數(shù)的增加而線性增加,大大提升了引擎的查找效率。
本文采用一個(gè)128條目的密鑰信息表,如圖3所示,每一個(gè)條目的信息包括MAC地址、加解密協(xié)議和密鑰等信息,將其分成3個(gè)查找區(qū)域:KeyId查找區(qū)、順序查找區(qū)和Hash查找區(qū)。查找算法如下:
1)根據(jù)固定的Hash算法對(duì)MAC地址進(jìn)行哈希運(yùn)算,然后以哈希值直接索引Hash查找區(qū),判斷該信息條目是否匹配;
2)若該條目為空或發(fā)生Hash碰撞,表示Hash查找不命中,則跳轉(zhuǎn)到順序查找區(qū)進(jìn)行順序查找,直到某一條目命中;
3)如果Hash查找區(qū)和順序查找區(qū)均未找到匹配的信息條目,則根據(jù)KeyId標(biāo)識(shí)在KeyId查找區(qū)中進(jìn)行查找。
圖3 基于Hash算法的密鑰查找表Fig.3 Key table based on Hash scheme
本文提出的密鑰查找算法的關(guān)鍵在于,增加了Hash查找區(qū)(條目64~127),極大提高了密鑰信息。查找的效率。然而,不同的Hash算法存在較大的哈希性能差異,如哈希碰撞概率的大小,并且也將直接影響到最終實(shí)現(xiàn)的復(fù)雜性。文獻(xiàn)[9]分析了幾種Hash算法的性能,包括 CRC校驗(yàn)、Fletcher校驗(yàn)、mod校驗(yàn)和異或運(yùn)算,經(jīng)過統(tǒng)計(jì)發(fā)現(xiàn)簡單的異或運(yùn)算能夠達(dá)到較高的查找效率,且非常易于硬件邏輯實(shí)現(xiàn)。該文獻(xiàn)同時(shí)指出,對(duì)于給定的MAC地址B1-B2-B3-B4-B5-B6,其中字節(jié) B5(32~39 bit)存在較高的信息量。因此,本文采用異或運(yùn)算作為固定的Hash算法,并截取6個(gè)字節(jié)異或值的中間6位(Index[6∶1])作為Hash查找區(qū)的索引值,如下
由于存在Hash碰撞現(xiàn)象,增加了一個(gè)順序查找區(qū)(條目4~63),以此來保證能夠存放足夠多站點(diǎn)的信息。根據(jù)上述分析,假定經(jīng)過MAC地址運(yùn)算后的Hash值滿足隨機(jī)均勻分布,不同站點(diǎn)數(shù)下具備64個(gè)信息條目的Hash查找區(qū)平均存放的地址個(gè)數(shù)如下
式中:n為站點(diǎn)數(shù);S(n,k)為第二類Stirling數(shù),表示n個(gè)元素的集定義k個(gè)等價(jià)類的方法數(shù)目:
圖4 不同站點(diǎn)數(shù)下Hash查找區(qū)的平均地址個(gè)數(shù)Fig.4 Average address number in Hash searching field
圖5 查找效率對(duì)比Fig.5 Comparison of searching efficiency
如圖4所示,在一定的站點(diǎn)數(shù)下,通過統(tǒng)計(jì)平均分析可知,Hash查找能夠直接獲取到絕大多數(shù)站點(diǎn)的密鑰信息。若采用完全順序查找方法,平均查找延遲會(huì)隨著站點(diǎn)數(shù)的遞增而線性增加,在32個(gè)站點(diǎn)數(shù)的情況下,其平均查找延遲需要16.5個(gè)時(shí)鐘周期。而采用Hash查找算法,基本能夠保持在平均1~2個(gè)時(shí)鐘周期的查找延遲,大大縮短了密鑰查找的平均延遲。2種查找算法的查找效率對(duì)比如圖5所示。尤其是針對(duì)企業(yè)級(jí) WLAN以及運(yùn)營級(jí)WLAN,需要支持單節(jié)點(diǎn)密集用戶的應(yīng)用情況下,采用Hsah查找算法的WLAN接入點(diǎn)將能大大降低密鑰查找的處理延遲,從而提升網(wǎng)絡(luò)系統(tǒng)的吞吐率。
針對(duì)下一代WLAN協(xié)議(IEEE 802.11ac)Gbit/s高吞吐率的需求,安全加速引擎實(shí)現(xiàn)的另一個(gè)關(guān)鍵問題是,在盡可能減小硬件邏輯開銷的同時(shí),尋求如何提高加解密算法協(xié)議實(shí)現(xiàn)性能的方法。本文在保證兼容性,實(shí)現(xiàn)WEP/TKIP/CCMP3種加解密協(xié)議的前提下,通過提出一種優(yōu)化的AES-CCM算法協(xié)議實(shí)現(xiàn)架構(gòu),從而可以有效地滿足Gbit/s高吞吐率的需求。
AES算法是一種對(duì)稱分組加密算法,其加密流程如圖6所示,每一輪的運(yùn)算包括:字節(jié)替換、行移位、列混合和輪密鑰異或。AES算法的硬件實(shí)現(xiàn)性能將直接影響整個(gè)安全加速引擎的運(yùn)算吞吐量。大量的文獻(xiàn)主要集中在對(duì)AES算法實(shí)現(xiàn)結(jié)構(gòu)和字節(jié)替換上進(jìn)行研究。通過采用循環(huán)展開或流水線方式的實(shí)現(xiàn)結(jié)構(gòu),提高AES運(yùn)算核的工作頻率,進(jìn)而提升算法實(shí)現(xiàn)的吞吐量。但由于CCMP協(xié)議采用了AES-CBC的反饋模式,無法發(fā)揮流水線的結(jié)構(gòu)優(yōu)勢(shì)?;谝陨戏治?,本文采用基本迭代結(jié)構(gòu)實(shí)現(xiàn)AES運(yùn)算核,并對(duì)字節(jié)替換的實(shí)現(xiàn)性能進(jìn)行精細(xì)地設(shè)計(jì)。
圖6 AES加密流程Fig.6 Encryption structure of AES algorithm
通常,字節(jié)替換有2種實(shí)現(xiàn)方式:查表法和純組合邏輯實(shí)現(xiàn)[5-7]。前者采用多個(gè)查找表,結(jié)構(gòu)簡單,易于實(shí)現(xiàn),但占用硬件資源較大。后者利用有限域上的數(shù)學(xué)運(yùn)算規(guī)則,采用硬件邏輯的方式直接求解替換值,可節(jié)省大量的存儲(chǔ)器開銷,但實(shí)現(xiàn)較為復(fù)雜。為了降低硬件邏輯開銷,本文采用改進(jìn)的有限域運(yùn)算方式實(shí)現(xiàn)AES算法的字節(jié)替換,其實(shí)現(xiàn)結(jié)構(gòu)如圖7所示。將字節(jié)替換分成2步運(yùn)算實(shí)現(xiàn):1)有限域GF(28)的乘法逆運(yùn)算;2)仿射變換過程。為了降低實(shí)現(xiàn)的復(fù)雜性,將第一步轉(zhuǎn)化到復(fù)合域GF((24)2)上求解乘法逆運(yùn)算:
其中:
式(5)計(jì)算的關(guān)鍵在于有限域GF(24)的乘法逆運(yùn)算,同理,也可以變換到復(fù)合域GF((22)2)上進(jìn)行運(yùn)算,進(jìn)一步降低實(shí)現(xiàn)的復(fù)雜性。
另一方面,為了盡可能減小關(guān)鍵路徑的延時(shí),提高整體運(yùn)算的吞吐率,本文對(duì)2個(gè)步驟進(jìn)行了合并預(yù)計(jì)算,分別為復(fù)合域GF((24)2)映射到有限域GF(28)的操作與仿射變換,將原本的兩次矩陣運(yùn)算變?yōu)橐淮芜\(yùn)算。通過矩陣合并方式,從而降低關(guān)鍵路徑上的邏輯開銷,提升AES運(yùn)算核的工作頻率。
圖7 字節(jié)替換結(jié)構(gòu)框圖Fig.7 Block diagram of implementation of SubByte
CCMP協(xié)議采用AES算法的計(jì)數(shù)器(CTR)模式用于數(shù)據(jù)加密,密文分組鏈接(CBC)模式用于完整性校驗(yàn)。相比于單個(gè)AES運(yùn)算核順序執(zhí)行或交替執(zhí)行數(shù)據(jù)加解密和MIC校驗(yàn),雙AES運(yùn)算核并行實(shí)現(xiàn)架構(gòu)將加倍提升安全加速引擎的吞吐量。但另一方面,也將面臨如何降低雙AES核所帶來的硬件邏輯開銷問題。本文在保證雙AES核的數(shù)據(jù)塊運(yùn)算之間嚴(yán)格同步的前提下,將AES算法中的密鑰擴(kuò)展單元進(jìn)行了邏輯復(fù)用,如圖8所示,一定程度上節(jié)省了硬件邏輯的開銷。
圖8CCMP結(jié)構(gòu)框圖Fig.8 Block diagram of implementation of CCMP
圖9CCMP加解密時(shí)序Fig.9 CCMP encryption/decryption flow
文獻(xiàn)[10]指出,高速率WLAN系統(tǒng)采用的幀聚合和塊確認(rèn)機(jī)制,要求MPDU的加解密處理具備較小的響應(yīng)延遲。而無論是雙AES運(yùn)算核的并行執(zhí)行,還是加/解密運(yùn)算的邏輯復(fù)用,均涉及到對(duì)輸入數(shù)據(jù)塊與輸出數(shù)據(jù)塊的精確調(diào)度。因此,本文充分利用CTR和CBC兩種工作模式的運(yùn)算特點(diǎn),并且兼顧加密和解密過程的數(shù)據(jù)流執(zhí)行順序,設(shè)計(jì)了如圖9所示的詳細(xì)調(diào)度時(shí)序。雙AES運(yùn)算核的并行處理,使得平均每個(gè)數(shù)據(jù)塊的加/解密運(yùn)算延遲僅為11個(gè)時(shí)鐘周期(11-cycleper-block),也就是AES算法的數(shù)據(jù)載入和10輪迭代的執(zhí)行周期數(shù)。另外,因CBC模式處理{NONCE,AAD1,AAD2}而導(dǎo)致安全加速引擎的響應(yīng)延遲也僅為33個(gè)時(shí)鐘周期,相比于 Bae[8,10]的設(shè)計(jì)進(jìn)一步減小了響應(yīng)延遲。
本文采用硬件描述語言完成了硬件實(shí)現(xiàn),通過RTL仿真驗(yàn)證,功能滿足IEEE 802.11i的協(xié)議要求。同時(shí),在項(xiàng)目組的WLAN協(xié)議原型系統(tǒng)開發(fā)平臺(tái)上,集成本文設(shè)計(jì)的安全加速引擎,配合協(xié)議驅(qū)動(dòng)的開發(fā),實(shí)現(xiàn)了數(shù)據(jù)幀的正常加解密通信,進(jìn)一步驗(yàn)證了所設(shè)計(jì)的安全加速引擎的正確性。
經(jīng)過 QuartusⅡ10.0綜合,選用器件型號(hào)為StratixⅡ EP2S180F1020I4,其綜合的結(jié)果如表1所示。由于采用了有限域運(yùn)算方式實(shí)現(xiàn)AES算法,使得單個(gè)AES運(yùn)算核無需任何的存儲(chǔ)器開銷,且僅使用了較少的硬件邏輯資源。而相比于單個(gè)AES運(yùn)算核較小的硬件邏輯開銷,由于安全加速引擎完整實(shí)現(xiàn)了WEP/TKIP/CCMP3種加解密協(xié)議,同時(shí)需要處理不同MAC幀格式的數(shù)據(jù)幀,包括各字段信息的提取、數(shù)據(jù)塊的封裝與解封裝以及配合外部模塊實(shí)現(xiàn)流水線操作,一定程度上均增加了安全加速引擎的硬件邏輯開銷。另外,較大的塊存儲(chǔ)開銷則是因?yàn)榇鎯?chǔ)了多達(dá)128個(gè)站點(diǎn)信息的密鑰表所導(dǎo)致的。
表1 FPGA綜合結(jié)果Table 1 Synthesis results by FPGA
AES運(yùn)算核的運(yùn)算吞吐率可采用下式進(jìn)行計(jì)算:
式中:lblock為AES算法的分組塊大小,單位為比特;φ為AES運(yùn)算核的平均數(shù)據(jù)塊運(yùn)算周期數(shù)。本文所設(shè)計(jì)的AES運(yùn)算核可實(shí)現(xiàn)平均11個(gè)時(shí)鐘周期處理一個(gè) 128 bit的數(shù)據(jù)塊,此時(shí),lblock為128 bit,φ 為 11。
在中芯國際集成電路(SMIC)55 nm CMOS工藝條件下,采用Design Compiler工具對(duì)所設(shè)計(jì)的安全加速引擎進(jìn)行了 ASIC綜合,最高工作頻率為322 MHz,利用式(6)可得運(yùn)算吞吐率達(dá)3.747 Gbit/s。然后,將該安全加速引擎集成于項(xiàng)目組自主研發(fā)的一款802.11a/b/g/n/ac協(xié)議系統(tǒng)芯片中。最終的芯片測試結(jié)果表明,本文所設(shè)計(jì)的安全加速引擎完全滿足802.11i協(xié)議要求。
表2給出了本文設(shè)計(jì)與3個(gè)已發(fā)表設(shè)計(jì)的實(shí)現(xiàn)性能對(duì)比,由于各個(gè)設(shè)計(jì)的功能不盡一致,無法從面積或功耗上做統(tǒng)一的衡量,但從可重構(gòu)性、密鑰查找延遲、塊響應(yīng)延遲和運(yùn)算吞吐率上進(jìn)行分析,本文的設(shè)計(jì)均具備一定的性能優(yōu)勢(shì)。
表2 安全加速引擎的實(shí)現(xiàn)性能對(duì)比Table 2 Implementation performance comparisons of cipher engine
本文基于下一代WLAN系統(tǒng)802.11ac對(duì)于高吞吐率的需求,設(shè)計(jì)了一個(gè)多模式、高性能的安全加速引擎,同時(shí)支持WEP/TKIP/CCMP 3種加解密協(xié)議,主要針對(duì)密鑰信息查找和AES-CCM算法實(shí)現(xiàn)進(jìn)行優(yōu)化。
1)提出基于Hash算法的改進(jìn)密鑰信息查找算法,大大降低密鑰查找的時(shí)鐘延遲。
2)雙AES運(yùn)算核的并行實(shí)現(xiàn)方式,不僅提高了運(yùn)算的吞吐量,而且減小了處理所需的響應(yīng)延遲。
3)在可擴(kuò)展結(jié)構(gòu)、低處理延遲和高運(yùn)算吞吐率等關(guān)鍵指標(biāo)上有優(yōu)異的性能,本文的設(shè)計(jì)完全滿足下一代WLAN系統(tǒng)802.11ac對(duì)于安全加速引擎的性能要求。
[1]IEEE Std 802.11i-2004.Part 11:Wireless lAN medium access control(MAC)and physical layer(PHY)specifications amendment 6:Medium access control(MAC)security enhancements[S].New York,USA,2004.
[2]IEEE Std 802.11ac-2013.Part 11:Wireless LAN medium access control(MAC)and physical layer(PHY)specifications amendment 4:enhancements for very high throughput for operation in bands below 6 GHz[S].New York,USA,2013.
[3]TRAN T H,LANANTE L,NAGAO Y,et al.Hardware implementation of high throughput RC4 algorithm[C]//IEEE International Symposium on Circuits and Systems(ISCAS).Seoul,Korea,2012:77-80.
[4]GUPTA S S,CHATTOPADHYAY A,SINHA K,et al.High-performance hardware implementation for RC4 stream cipher[J].IEEE Transactions on Computers,2013,62(4):730-743.
[5]SATOH A,MORIOKA S,TAKANO K,et al.A compact Rijndaelhardware architecture with S-box optimization[C]//Proc ASIACRYPT.Berlin,2000:239-245.
[6]HSIAO S F,CHEN M C,TU C S.Memory-free low-cost designs of advanced encryption standard using common subexpression elimination for subfunctions in transformations[J].IEEE Transactions on Circuits and Systems,2006,53(3):615-626.
[7]WONG M M,WONG M L D,NANDI A K,et al.Construction of optimum composite field architecture for compact high-throughput AES S-boxes[J].IEEE Transactions on Very Large Scale Integration(VLSI)Systems,2012,20(6):1151-1155.
[8]BAE D,KIM G,KIM J,et al.Design and Implementation of efficient cipher engine for IEEE 802.11i compatible with IEEE 802.11n and IEEE 802.11e[J].Lecture Notes in Computer Science,2005,3802:439-444.
[9]JAIN R.A comparison of hashing schemes for address lookup in computer networks[J].IEEE Transactions on Communications,1992,40(10):1570-1573.
[10]BAE D,KIM G,KIM J,et al.An efficient design of CCMP for robust security network[C]//Information Security and Cryptology(ICISC).Busan,Korea,2006:352-361.
[11]GNACIO A B,CLAUDIA F U,RENE C,et al.Efficient hardware architecture for the AES-CCM protocol of the IEEE 802.11i standard[J].Computers and Electrical Engineering,2010,36:565-577.
[12]SMYTH N,MCLOONE M,MCCANNY J.WLAN security processor[J].IEEE Transactions on Circuits and Systems,2006,53(7):1506-1520.