戴樂育,李 偉,2,徐金甫,李軍偉
(1.信息工程大學,河南 鄭州450001;2.復旦大學 專用集成電路與系統國家重點實驗室,上海201203)
隨著密碼算法與安全協議的日益復雜多樣,多核密碼處理器的數據分配問題逐漸凸顯,靈活性較差的數據分配機制極大地限制了密碼算法的映射數量與映射方式。
目前,在多核處理器領域,解決多核密碼處理器的數據分配方法主要有兩類。一類是設計專用的分配控制器進行數據分配。如文獻 [1,2]分別提出了基于主動請求策略、端口輪詢機制和基于可編程描述符的控制機制等不同機制實現數據分配,并設計了專用的數據分配控制器,能夠較好解決文獻中的數據分配問題,具有一定的靈活性。但是由于多密碼算法并行實現的需求,其應用于多核密碼處理器中,靈活性較差,數據分配方式不能靈活轉變,不能適應多核密碼處理器的使用需求。另一類是利用處理器完成數據分配工作。如文獻 [3-5]采用NoC網絡最靠近輸入隊列的處理器完成對數據的分配,能夠解決數據分配問題,但具有較大的數據分配延遲,不利于單密碼算法高速實現和多密碼算法并行實現。此外,這種占用密碼處理器的數據分配方式,會降低密碼處理器運算單元的利用率,不適合多核密碼處理器的特點。
針對多核密碼處理器的密碼處理和數據分配的特性,本文分析了密碼算法和密碼協議的數據流特征,研究了多核密碼處理器的數據分配機制,提出了面向任務級的數據分配機制,并對不同數據分配機制進行分析建模和評估。
多核密碼處理器是密碼算法和密碼協議的物理載體,其數據分配機制取決于多核密碼處理器的密碼算法映射方案。因此,本文針對密碼算法在多核密碼處理器中的映射特征進行研究。
在信息安全系統中,多核密碼處理器主要承擔加密、解密、壓縮、簽名、完整性驗證等密碼處理任務,或由多個密碼處理任務組合實現的信息安全協議。在信息安全協議中的密碼處理任務基本組合方式主要包括兩大類:串聯形式和并聯形式。
所謂串聯形式是指明文需要通過一個密碼算法運算后再進行下一個密碼算法的運算。如SSL 記錄層協議中,如圖1所示,報文通過Hash算法壓縮后,再進行分組密碼算法的加密。所謂并聯形式是指明文需要同時通過兩個密碼算法的運算,將運算結果作為密文輸出。如IPsec協議中ESP協議,報文需同時通過加密算法和認證算法運算,將運算結果作為密文輸出。

圖1 SSL記錄層協議
根據上述特點,密碼算法的映射方案可分為單密碼算法映射、多密碼算法映射和密碼協議映射3類,如圖2所示。在單密碼算法的映射過程中,為了實現密碼高速實現,映射方式可以分為3類:①并行映射方式,這種密碼映射方式是將密碼算法重復映射在各個密碼處理器中,數據分配需要對數據進行拆解,按照輪詢機制將數據輸入到各密碼處理器中;②流水映射方式,它是將密碼算法拆解成不同的密碼任務,數據分配時不需拆解數據,只需將數據輸入到固定的密碼處理器中;③混合映射方式,將上述兩種映射方式混合應用。在多密碼算法的映射過程中,為了實現多密碼算法的并行實現,映射方式主要采用混合映射方式,即多密碼算法間并行映射,算法內部采用流水映射。其數據分配方式需要按照用戶對多核密碼處理器密碼處理運算的需求,將數據輸入到不同的處理器中。在信息安全協議的映射過程中,為了實現協議的流水執行,需要將協議拆分成不同的密碼處理任務,并將任務映射在不同的密碼處理器中,此時數據分配需要按照信息安全協議的要求進行分配。

圖2 多核密碼處理器密碼算法映射分類
對于多核密碼處理器,不同的處理器完成不同的密碼運算。而信息安全協議中,所需完成的協議往往比較復雜。如SSL協議中包括密碼更換協議、握手協議、告警協議、記錄層協議等,IPsec協議中包含AH 協議、ESP 協議等。在工作過程中,信息安全系統不需要了解多核密碼處理器是如何對映射信息安全協議和密碼算法等信息,只需提供信息安全任務需求、報文長度等基本信息。這就要求多核密碼處理器與信息安全系統之間必須有靈活可變的通信協議,才能保證多核密碼處理器解析信息安全系統提出的信息安全任務需求,將數據正確的分配到密碼處理器中。
通過分析可知,多核密碼處理器的數據分配取決于多核密碼處理器的密碼映射方案。多核密碼處理器的密碼映射方案取決于信息安全系統對密碼算法和信息安全協議的需求也不同。而密碼算法和信息安全協議的種類繁多,不同環境和不同系統對密碼算法的需求也不相同,這要求多核密碼處理器必須具有靈活的數據分配機制。
多核密碼處理器集成了多個文獻 [6]設計實現的分組密碼處理器。本文對其數據分配機制進行了研究,提出了具有較高靈活性的面向任務級的數據分配機制。
在密碼處理器中,數據分配方式是根據密碼算法的特征定義不同的數據類型,并為不同的數據類型規定了不同的數據輸入緩存區域,用于區分不同類型數據的輸入。而多核密碼處理器在集成多個密碼處理器情況下,數據類型的數量呈指數增長,將單核處理器其的數據分配方式應用多核處理器,會增加輸入緩存設計的復雜性。此外,多個密碼處理器需要同時對輸入緩存進行操作,存在數據緩存一致性的問題,且不利于數據的并行分配和廣播輸入。
通過對文獻 [1-5]的比較,文獻 [1,2]的數據分配方式不需要耗費處理器的使用資源,但是分配方式不夠靈活,控制方式不夠便捷。文獻 [3-5]的數據分配機制具有較高的靈活性和便捷的編程方式,但是此類數據分配方式需要耗費處理器的運算資源,且數據分配的延遲較大。將上述兩種方式結合,在多核密碼處理器中集成數據分配控制器,能夠在不耗費處理器的運算資源的情況下,保持分配方式的靈活和控制方式的便捷。
本文以4個基于文獻 [6]的分組密碼處理器為例,搭建了多核密碼處理器的硬件架構,如圖3所示。其中Import ctrl為多核密碼處理器的數據分配控制器,用于完成數據分配。

圖3 多核專用密碼處理器架構
多核密碼處理器的數據分配方式取決于不同密碼算法映射方案的同時,也取決于多核密碼處理器所在的信息安全系統對密碼算法的使用需求。而在密碼映射方案、信息安全系統對密碼算法的使用需求和多核密碼處理器的數據分配方式三者之間必然存在某種關系,使得三者能夠有機的聯系起來,形成一個統一的整體。故本文有必要對多核密碼處理器在信息安全系統中所需完成的工作進行任務級劃分。
在信息安全系統中,多核密碼處理器作為一個密碼處理模塊,需要完成包含加密、解密、簽名、雜湊等一個或者多個系統處理任務,并且支持更換系統算法、更換算法密鑰、更換算法初始向量、處理器復位、功耗管理等系統控制任務。從密碼算法的映射方案的角度講,多核密碼處理器所需完成的任務取決于多核密碼處理器的密碼算法映射方案。只有確定了密碼算法映射方案,多核密碼處理器的算法運算、更換算法密鑰、更換算法初始向量等任務才能確定。從信息安全系統的角度講,多核密碼處理器的任務必須涵蓋信息安全系統對多核密碼處理器的所有使用需求。否則,多核密碼處理器不能在信息安全系統中發揮完備的密碼處理保障任務。從數據分配方式的角度講,多核密碼處理器所需要完成的任務 (處理器復位除外)均需要信息安全系統向多核密碼處理器傳輸需要處理數據、需要更換的算法指令、需要更換的密鑰等數據,數據分配方式需要根據不同的任務將數據分配到多核密碼處理器的不同位置。
綜上所述,多核密碼處理的任務級劃分是密碼映射方案、信息安全系統對密碼算法的使用需求和多核密碼處理器的數據分配方式三者之間的關鍵橋梁,只有把握這一點,才能有效地解決多核密碼處理器的數據分配問題。
通過上述分析,本文提出了面向任務級的多核密碼處理器數據分配機制。由密碼算法和信息安全協議的特征可知,每種密碼算法或協議對應的密碼處理任務一般包括加密、解密、雜湊、簽名或多種密碼處理的組合,但是對應密碼處理任務的數量是有限的。而多核密碼處理器的處理器數量和每個處理器指令RAM 的大小的限制,在多核密碼處理器中映射的密碼算法和密碼協議的數量是有限的。故多核密碼處理器的密碼處理任務也是有限的。
在面向任務級的數據分配機制的開發過程中,如圖4所示,需要根據多核密碼處理器所在系統的信息安全需求,確定多核密碼處理器的密碼算法映射方案。之后,通過算法映射方案確定多核密碼處理器所需完成的系統任務。根據任務以及對應的不同數據類型,確定數據的分配方式,并生成任務映射列表。

圖4 數據類型到分配方式的映射機制
面向任務級的數據分配機制的開發在多核密碼處理器的開發階段完成,在多核密碼處理器的密碼處理任務映射方案不變的情況下,數據分配程序、任務編號和任務映射列表均不需要改變。面向任務級的數據分配機制的使用過程中,信息安全系統根據系統使用需求,查找需要多核密碼處理器需要完成的系統處理任務,并將任務編號和待處理的數據通過多核密碼處理器的數據輸入協議分發給多核密碼處理器進行處理。數據輸入協議如圖5所示。

圖5 面向任務級的數據輸入協議
在輸入數據時,系統需要將待處理數據對應的任務編號、待處理數據的數據包長度和系統自動生成的數據包包號形成數據包包頭,輸入多核密碼處理器內部。數據輸入協議中,數據包包號用于配合任務編號,用作輸出數據包標識。任務編號用作標識數據包數據類型。數據包長度用于標識數據包長度。
為了從理論角度分析、評估面向任務級的數據分配機制與文獻 [1-5]所述的其它3種不同數據分配機制的數據分配效率和靈活性,本文建立了數據分配機制評估模型。為了能夠量化的分析4種不同數據分配機制的數據分配效率,給出數據分配吞吐率的定義。
定義 數據分配效率指單位時間內分配的有效數據量,記為Г,單位為bps

式 (1)中,N 表示有效數據量,T 表示數據從輸入到處理器所需的時間。為了研究不同數據分配機制的數據分配吞吐率,模型將有效數據量的數值固定為4×128×32 (bit),比較不同數據分配機制需要耗費的理論時間。基于4種數據分配方式本文建立了SystemC 的硬件模型。將5種不同的密碼算法映射方案在硬件模型上進行了映射,利用功能仿真工具,評估了不同數據分配機制的理論平均數據分配吞吐率見表1。

表1 不同分配機制的數據分配效率
結果表明,與文獻 [1]的基于主動請求的數據分配機制比較,面向任務級的數據分配機制具有更高的數據分配靈活性,能靈活地適用于不同密碼算法映射機制。與文獻[2]的基于可編程描述符和文獻 [3-5]的基于NoC 網絡的數據分配機制比較,面向任務級的數據分配機制具有更高的數據分配效率,能高效的實現數據分配。
本文深入研究了多核密碼處理器的數據分配機制及其控制機制,提出了面向任務級的多核密碼處理器數據分配機制,并與不同多核處理的數據分配機制進行了對比。對比結果表明,面向任務級的數據分配機制具有更高的性能提升和靈活性,解決了在面臨復雜密碼算法映射方案下多核密碼處理器數據分配不靈活的問題,提高了多核密碼處理器的數據分配效率,保證了多核密碼處理器的密碼運算能力。
[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). [肖瑞瑾,多核處理器層次化存儲體系結構 [D].上海:復旦大學,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). [權衡.多核處理器運算及核間通訊模塊設計研究 [D].上海:復旦大學,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).[馬文博.多核網絡處理器數據推拉總線協議關鍵技術設計與實現 [D].西安:西安電子科技大學,2012.]
[11]GUO Naiwang.The research of the packet classification algorithms based on multi-core network processor[D].Shanghai:Fudan University,2011 (in Chinese).[郭乃網.基于多核網絡處理器的數據包分類算法研究 [D].上海:復旦大學,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).[郭秀巖.面向多核的多層次實時網絡數據調度技術研究 [D].合肥:中國科學技術大學,2011.]