戴樂育,李 偉,2,徐金甫,李軍偉
(1.信息工程大學(xué),河南 鄭州450001;2.復(fù)旦大學(xué) 專用集成電路與系統(tǒng)國家重點實驗室,上海201203)
隨著密碼算法與安全協(xié)議的日益復(fù)雜多樣,多核密碼處理器的數(shù)據(jù)分配問題逐漸凸顯,靈活性較差的數(shù)據(jù)分配機制極大地限制了密碼算法的映射數(shù)量與映射方式。
目前,在多核處理器領(lǐng)域,解決多核密碼處理器的數(shù)據(jù)分配方法主要有兩類。一類是設(shè)計專用的分配控制器進(jìn)行數(shù)據(jù)分配。如文獻(xiàn) [1,2]分別提出了基于主動請求策略、端口輪詢機制和基于可編程描述符的控制機制等不同機制實現(xiàn)數(shù)據(jù)分配,并設(shè)計了專用的數(shù)據(jù)分配控制器,能夠較好解決文獻(xiàn)中的數(shù)據(jù)分配問題,具有一定的靈活性。但是由于多密碼算法并行實現(xiàn)的需求,其應(yīng)用于多核密碼處理器中,靈活性較差,數(shù)據(jù)分配方式不能靈活轉(zhuǎn)變,不能適應(yīng)多核密碼處理器的使用需求。另一類是利用處理器完成數(shù)據(jù)分配工作。如文獻(xiàn) [3-5]采用NoC網(wǎng)絡(luò)最靠近輸入隊列的處理器完成對數(shù)據(jù)的分配,能夠解決數(shù)據(jù)分配問題,但具有較大的數(shù)據(jù)分配延遲,不利于單密碼算法高速實現(xiàn)和多密碼算法并行實現(xiàn)。此外,這種占用密碼處理器的數(shù)據(jù)分配方式,會降低密碼處理器運算單元的利用率,不適合多核密碼處理器的特點。
針對多核密碼處理器的密碼處理和數(shù)據(jù)分配的特性,本文分析了密碼算法和密碼協(xié)議的數(shù)據(jù)流特征,研究了多核密碼處理器的數(shù)據(jù)分配機制,提出了面向任務(wù)級的數(shù)據(jù)分配機制,并對不同數(shù)據(jù)分配機制進(jìn)行分析建模和評估。
多核密碼處理器是密碼算法和密碼協(xié)議的物理載體,其數(shù)據(jù)分配機制取決于多核密碼處理器的密碼算法映射方案。因此,本文針對密碼算法在多核密碼處理器中的映射特征進(jìn)行研究。
在信息安全系統(tǒng)中,多核密碼處理器主要承擔(dān)加密、解密、壓縮、簽名、完整性驗證等密碼處理任務(wù),或由多個密碼處理任務(wù)組合實現(xiàn)的信息安全協(xié)議。在信息安全協(xié)議中的密碼處理任務(wù)基本組合方式主要包括兩大類:串聯(lián)形式和并聯(lián)形式。
所謂串聯(lián)形式是指明文需要通過一個密碼算法運算后再進(jìn)行下一個密碼算法的運算。如SSL 記錄層協(xié)議中,如圖1所示,報文通過Hash算法壓縮后,再進(jìn)行分組密碼算法的加密。所謂并聯(lián)形式是指明文需要同時通過兩個密碼算法的運算,將運算結(jié)果作為密文輸出。如IPsec協(xié)議中ESP協(xié)議,報文需同時通過加密算法和認(rèn)證算法運算,將運算結(jié)果作為密文輸出。
圖1 SSL記錄層協(xié)議
根據(jù)上述特點,密碼算法的映射方案可分為單密碼算法映射、多密碼算法映射和密碼協(xié)議映射3類,如圖2所示。在單密碼算法的映射過程中,為了實現(xiàn)密碼高速實現(xiàn),映射方式可以分為3類:①并行映射方式,這種密碼映射方式是將密碼算法重復(fù)映射在各個密碼處理器中,數(shù)據(jù)分配需要對數(shù)據(jù)進(jìn)行拆解,按照輪詢機制將數(shù)據(jù)輸入到各密碼處理器中;②流水映射方式,它是將密碼算法拆解成不同的密碼任務(wù),數(shù)據(jù)分配時不需拆解數(shù)據(jù),只需將數(shù)據(jù)輸入到固定的密碼處理器中;③混合映射方式,將上述兩種映射方式混合應(yīng)用。在多密碼算法的映射過程中,為了實現(xiàn)多密碼算法的并行實現(xiàn),映射方式主要采用混合映射方式,即多密碼算法間并行映射,算法內(nèi)部采用流水映射。其數(shù)據(jù)分配方式需要按照用戶對多核密碼處理器密碼處理運算的需求,將數(shù)據(jù)輸入到不同的處理器中。在信息安全協(xié)議的映射過程中,為了實現(xiàn)協(xié)議的流水執(zhí)行,需要將協(xié)議拆分成不同的密碼處理任務(wù),并將任務(wù)映射在不同的密碼處理器中,此時數(shù)據(jù)分配需要按照信息安全協(xié)議的要求進(jìn)行分配。
圖2 多核密碼處理器密碼算法映射分類
對于多核密碼處理器,不同的處理器完成不同的密碼運算。而信息安全協(xié)議中,所需完成的協(xié)議往往比較復(fù)雜。如SSL協(xié)議中包括密碼更換協(xié)議、握手協(xié)議、告警協(xié)議、記錄層協(xié)議等,IPsec協(xié)議中包含AH 協(xié)議、ESP 協(xié)議等。在工作過程中,信息安全系統(tǒng)不需要了解多核密碼處理器是如何對映射信息安全協(xié)議和密碼算法等信息,只需提供信息安全任務(wù)需求、報文長度等基本信息。這就要求多核密碼處理器與信息安全系統(tǒng)之間必須有靈活可變的通信協(xié)議,才能保證多核密碼處理器解析信息安全系統(tǒng)提出的信息安全任務(wù)需求,將數(shù)據(jù)正確的分配到密碼處理器中。
通過分析可知,多核密碼處理器的數(shù)據(jù)分配取決于多核密碼處理器的密碼映射方案。多核密碼處理器的密碼映射方案取決于信息安全系統(tǒng)對密碼算法和信息安全協(xié)議的需求也不同。而密碼算法和信息安全協(xié)議的種類繁多,不同環(huán)境和不同系統(tǒng)對密碼算法的需求也不相同,這要求多核密碼處理器必須具有靈活的數(shù)據(jù)分配機制。
多核密碼處理器集成了多個文獻(xiàn) [6]設(shè)計實現(xiàn)的分組密碼處理器。本文對其數(shù)據(jù)分配機制進(jìn)行了研究,提出了具有較高靈活性的面向任務(wù)級的數(shù)據(jù)分配機制。
在密碼處理器中,數(shù)據(jù)分配方式是根據(jù)密碼算法的特征定義不同的數(shù)據(jù)類型,并為不同的數(shù)據(jù)類型規(guī)定了不同的數(shù)據(jù)輸入緩存區(qū)域,用于區(qū)分不同類型數(shù)據(jù)的輸入。而多核密碼處理器在集成多個密碼處理器情況下,數(shù)據(jù)類型的數(shù)量呈指數(shù)增長,將單核處理器其的數(shù)據(jù)分配方式應(yīng)用多核處理器,會增加輸入緩存設(shè)計的復(fù)雜性。此外,多個密碼處理器需要同時對輸入緩存進(jìn)行操作,存在數(shù)據(jù)緩存一致性的問題,且不利于數(shù)據(jù)的并行分配和廣播輸入。
通過對文獻(xiàn) [1-5]的比較,文獻(xiàn) [1,2]的數(shù)據(jù)分配方式不需要耗費處理器的使用資源,但是分配方式不夠靈活,控制方式不夠便捷。文獻(xiàn) [3-5]的數(shù)據(jù)分配機制具有較高的靈活性和便捷的編程方式,但是此類數(shù)據(jù)分配方式需要耗費處理器的運算資源,且數(shù)據(jù)分配的延遲較大。將上述兩種方式結(jié)合,在多核密碼處理器中集成數(shù)據(jù)分配控制器,能夠在不耗費處理器的運算資源的情況下,保持分配方式的靈活和控制方式的便捷。
本文以4個基于文獻(xiàn) [6]的分組密碼處理器為例,搭建了多核密碼處理器的硬件架構(gòu),如圖3所示。其中Import ctrl為多核密碼處理器的數(shù)據(jù)分配控制器,用于完成數(shù)據(jù)分配。
圖3 多核專用密碼處理器架構(gòu)
多核密碼處理器的數(shù)據(jù)分配方式取決于不同密碼算法映射方案的同時,也取決于多核密碼處理器所在的信息安全系統(tǒng)對密碼算法的使用需求。而在密碼映射方案、信息安全系統(tǒng)對密碼算法的使用需求和多核密碼處理器的數(shù)據(jù)分配方式三者之間必然存在某種關(guān)系,使得三者能夠有機的聯(lián)系起來,形成一個統(tǒng)一的整體。故本文有必要對多核密碼處理器在信息安全系統(tǒng)中所需完成的工作進(jìn)行任務(wù)級劃分。
在信息安全系統(tǒng)中,多核密碼處理器作為一個密碼處理模塊,需要完成包含加密、解密、簽名、雜湊等一個或者多個系統(tǒng)處理任務(wù),并且支持更換系統(tǒng)算法、更換算法密鑰、更換算法初始向量、處理器復(fù)位、功耗管理等系統(tǒng)控制任務(wù)。從密碼算法的映射方案的角度講,多核密碼處理器所需完成的任務(wù)取決于多核密碼處理器的密碼算法映射方案。只有確定了密碼算法映射方案,多核密碼處理器的算法運算、更換算法密鑰、更換算法初始向量等任務(wù)才能確定。從信息安全系統(tǒng)的角度講,多核密碼處理器的任務(wù)必須涵蓋信息安全系統(tǒng)對多核密碼處理器的所有使用需求。否則,多核密碼處理器不能在信息安全系統(tǒng)中發(fā)揮完備的密碼處理保障任務(wù)。從數(shù)據(jù)分配方式的角度講,多核密碼處理器所需要完成的任務(wù) (處理器復(fù)位除外)均需要信息安全系統(tǒng)向多核密碼處理器傳輸需要處理數(shù)據(jù)、需要更換的算法指令、需要更換的密鑰等數(shù)據(jù),數(shù)據(jù)分配方式需要根據(jù)不同的任務(wù)將數(shù)據(jù)分配到多核密碼處理器的不同位置。
綜上所述,多核密碼處理的任務(wù)級劃分是密碼映射方案、信息安全系統(tǒng)對密碼算法的使用需求和多核密碼處理器的數(shù)據(jù)分配方式三者之間的關(guān)鍵橋梁,只有把握這一點,才能有效地解決多核密碼處理器的數(shù)據(jù)分配問題。
通過上述分析,本文提出了面向任務(wù)級的多核密碼處理器數(shù)據(jù)分配機制。由密碼算法和信息安全協(xié)議的特征可知,每種密碼算法或協(xié)議對應(yīng)的密碼處理任務(wù)一般包括加密、解密、雜湊、簽名或多種密碼處理的組合,但是對應(yīng)密碼處理任務(wù)的數(shù)量是有限的。而多核密碼處理器的處理器數(shù)量和每個處理器指令RAM 的大小的限制,在多核密碼處理器中映射的密碼算法和密碼協(xié)議的數(shù)量是有限的。故多核密碼處理器的密碼處理任務(wù)也是有限的。
在面向任務(wù)級的數(shù)據(jù)分配機制的開發(fā)過程中,如圖4所示,需要根據(jù)多核密碼處理器所在系統(tǒng)的信息安全需求,確定多核密碼處理器的密碼算法映射方案。之后,通過算法映射方案確定多核密碼處理器所需完成的系統(tǒng)任務(wù)。根據(jù)任務(wù)以及對應(yīng)的不同數(shù)據(jù)類型,確定數(shù)據(jù)的分配方式,并生成任務(wù)映射列表。
圖4 數(shù)據(jù)類型到分配方式的映射機制
面向任務(wù)級的數(shù)據(jù)分配機制的開發(fā)在多核密碼處理器的開發(fā)階段完成,在多核密碼處理器的密碼處理任務(wù)映射方案不變的情況下,數(shù)據(jù)分配程序、任務(wù)編號和任務(wù)映射列表均不需要改變。面向任務(wù)級的數(shù)據(jù)分配機制的使用過程中,信息安全系統(tǒng)根據(jù)系統(tǒng)使用需求,查找需要多核密碼處理器需要完成的系統(tǒng)處理任務(wù),并將任務(wù)編號和待處理的數(shù)據(jù)通過多核密碼處理器的數(shù)據(jù)輸入?yún)f(xié)議分發(fā)給多核密碼處理器進(jìn)行處理。數(shù)據(jù)輸入?yún)f(xié)議如圖5所示。
圖5 面向任務(wù)級的數(shù)據(jù)輸入?yún)f(xié)議
在輸入數(shù)據(jù)時,系統(tǒng)需要將待處理數(shù)據(jù)對應(yīng)的任務(wù)編號、待處理數(shù)據(jù)的數(shù)據(jù)包長度和系統(tǒng)自動生成的數(shù)據(jù)包包號形成數(shù)據(jù)包包頭,輸入多核密碼處理器內(nèi)部。數(shù)據(jù)輸入?yún)f(xié)議中,數(shù)據(jù)包包號用于配合任務(wù)編號,用作輸出數(shù)據(jù)包標(biāo)識。任務(wù)編號用作標(biāo)識數(shù)據(jù)包數(shù)據(jù)類型。數(shù)據(jù)包長度用于標(biāo)識數(shù)據(jù)包長度。
為了從理論角度分析、評估面向任務(wù)級的數(shù)據(jù)分配機制與文獻(xiàn) [1-5]所述的其它3種不同數(shù)據(jù)分配機制的數(shù)據(jù)分配效率和靈活性,本文建立了數(shù)據(jù)分配機制評估模型。為了能夠量化的分析4種不同數(shù)據(jù)分配機制的數(shù)據(jù)分配效率,給出數(shù)據(jù)分配吞吐率的定義。
定義 數(shù)據(jù)分配效率指單位時間內(nèi)分配的有效數(shù)據(jù)量,記為Г,單位為bps
式 (1)中,N 表示有效數(shù)據(jù)量,T 表示數(shù)據(jù)從輸入到處理器所需的時間。為了研究不同數(shù)據(jù)分配機制的數(shù)據(jù)分配吞吐率,模型將有效數(shù)據(jù)量的數(shù)值固定為4×128×32 (bit),比較不同數(shù)據(jù)分配機制需要耗費的理論時間?;?種數(shù)據(jù)分配方式本文建立了SystemC 的硬件模型。將5種不同的密碼算法映射方案在硬件模型上進(jìn)行了映射,利用功能仿真工具,評估了不同數(shù)據(jù)分配機制的理論平均數(shù)據(jù)分配吞吐率見表1。
表1 不同分配機制的數(shù)據(jù)分配效率
結(jié)果表明,與文獻(xiàn) [1]的基于主動請求的數(shù)據(jù)分配機制比較,面向任務(wù)級的數(shù)據(jù)分配機制具有更高的數(shù)據(jù)分配靈活性,能靈活地適用于不同密碼算法映射機制。與文獻(xiàn)[2]的基于可編程描述符和文獻(xiàn) [3-5]的基于NoC 網(wǎng)絡(luò)的數(shù)據(jù)分配機制比較,面向任務(wù)級的數(shù)據(jù)分配機制具有更高的數(shù)據(jù)分配效率,能高效的實現(xiàn)數(shù)據(jù)分配。
本文深入研究了多核密碼處理器的數(shù)據(jù)分配機制及其控制機制,提出了面向任務(wù)級的多核密碼處理器數(shù)據(jù)分配機制,并與不同多核處理的數(shù)據(jù)分配機制進(jìn)行了對比。對比結(jié)果表明,面向任務(wù)級的數(shù)據(jù)分配機制具有更高的性能提升和靈活性,解決了在面臨復(fù)雜密碼算法映射方案下多核密碼處理器數(shù)據(jù)分配不靈活的問題,提高了多核密碼處理器的數(shù)據(jù)分配效率,保證了多核密碼處理器的密碼運算能力。
[1]LIU Yu,LI Kang,MA Peijun,et al.High-speed data exchange control structure of multi-core network processor [J].Computer Engineering,2010,36 (14):215-217.
[2]WANG Haixin,BAI Guoqiang,CHEN Hongyi.Design of a high performance network security processor [J].Journal Tsinghua University (Science &Technology),2010,50 (1):13-17.
[3]Yu Zhiyi,You Kaidi,Xiao Ruijin,et al.An 800 MHz 320 MW 16-Core processor with message-passing and shared-memory inter-core communication mechanisms[C]//ISSCC,2012:64-65.
[4]XIAO Ruijin.Multi-core processors hierarchical storage architecture [D].Shanghai:Fudan University,2012 (in Chinese). [肖瑞瑾,多核處理器層次化存儲體系結(jié)構(gòu) [D].上海:復(fù)旦大學(xué),2012.]
[5]HENG Quan.The research and design of the computing and communication module on the multi-core processors [D].Shanghai:Fudan University,2012 (in Chinese). [權(quán)衡.多核處理器運算及核間通訊模塊設(shè)計研究 [D].上海:復(fù)旦大學(xué),2012.]
[6]Dai Zibin,Li Wei,Yang Xiaohui,et al.The research and implementation of reconfigurable processor architecture for block cipher processing [C]//ICESS,2008:587-593.
[7]Thambipillai Srikanthan.Run-time mapping of multiple communicating tasks on MPSoC platforms[C]//Procedia Computer Science 1,2012:1019-1026.
[8]Yang Xiaohui,Dai Zibin,Zhang Yongfu.Research and design of reconfigurable computing targeted at block cipher processing[J].Journal of Computer Research and Development,2009,46 (6):962-967.
[9]YANG Xiaohui,DAI Zibin,LI Miao,et al.Research and design of parallel architecture processor for elliptic curve crypto-graphy [J].Journal on Communications,2011,32 (5):70-77.
[10]MA Wenbo.Design and implementation of key technologies for data push-pull bus protocol on multi-core network [D].Xi’an:Xidian University,2012 (in Chinese).[馬文博.多核網(wǎng)絡(luò)處理器數(shù)據(jù)推拉總線協(xié)議關(guān)鍵技術(shù)設(shè)計與實現(xiàn) [D].西安:西安電子科技大學(xué),2012.]
[11]GUO Naiwang.The research of the packet classification algorithms based on multi-core network processor[D].Shanghai:Fudan University,2011 (in Chinese).[郭乃網(wǎng).基于多核網(wǎng)絡(luò)處理器的數(shù)據(jù)包分類算法研究 [D].上海:復(fù)旦大學(xué),2011.]
[12]GUO Xiuyan.The research of multi-level real-time network stream scheduling on multicore network processor [D].Hefei:University of Science and Technology of China,2011(in Chinese).[郭秀巖.面向多核的多層次實時網(wǎng)絡(luò)數(shù)據(jù)調(diào)度技術(shù)研究 [D].合肥:中國科學(xué)技術(shù)大學(xué),2011.]