面向任务级的多核密码处理器数据分配机制
2015-12-20戴乐育徐金甫李军伟
戴乐育,李 伟,2,徐金甫,李军伟
(1.信息工程大学,河南 郑州450001;2.复旦大学 专用集成电路与系统国家重点实验室,上海201203)
0 引 言
随着密码算法与安全协议的日益复杂多样,多核密码处理器的数据分配问题逐渐凸显,灵活性较差的数据分配机制极大地限制了密码算法的映射数量与映射方式。
目前,在多核处理器领域,解决多核密码处理器的数据分配方法主要有两类。一类是设计专用的分配控制器进行数据分配。如文献 [1,2]分别提出了基于主动请求策略、端口轮询机制和基于可编程描述符的控制机制等不同机制实现数据分配,并设计了专用的数据分配控制器,能够较好解决文献中的数据分配问题,具有一定的灵活性。但是由于多密码算法并行实现的需求,其应用于多核密码处理器中,灵活性较差,数据分配方式不能灵活转变,不能适应多核密码处理器的使用需求。另一类是利用处理器完成数据分配工作。如文献 [3-5]采用NoC网络最靠近输入队列的处理器完成对数据的分配,能够解决数据分配问题,但具有较大的数据分配延迟,不利于单密码算法高速实现和多密码算法并行实现。此外,这种占用密码处理器的数据分配方式,会降低密码处理器运算单元的利用率,不适合多核密码处理器的特点。
针对多核密码处理器的密码处理和数据分配的特性,本文分析了密码算法和密码协议的数据流特征,研究了多核密码处理器的数据分配机制,提出了面向任务级的数据分配机制,并对不同数据分配机制进行分析建模和评估。
1 密码算法映射特征分析
多核密码处理器是密码算法和密码协议的物理载体,其数据分配机制取决于多核密码处理器的密码算法映射方案。因此,本文针对密码算法在多核密码处理器中的映射特征进行研究。
1.1 密码算法及信息安全协议特征分析
在信息安全系统中,多核密码处理器主要承担加密、解密、压缩、签名、完整性验证等密码处理任务,或由多个密码处理任务组合实现的信息安全协议。在信息安全协议中的密码处理任务基本组合方式主要包括两大类:串联形式和并联形式。
所谓串联形式是指明文需要通过一个密码算法运算后再进行下一个密码算法的运算。如SSL 记录层协议中,如图1所示,报文通过Hash算法压缩后,再进行分组密码算法的加密。所谓并联形式是指明文需要同时通过两个密码算法的运算,将运算结果作为密文输出。如IPsec协议中ESP协议,报文需同时通过加密算法和认证算法运算,将运算结果作为密文输出。
图1 SSL记录层协议
1.2 多核密码处理器映射研究
根据上述特点,密码算法的映射方案可分为单密码算法映射、多密码算法映射和密码协议映射3类,如图2所示。在单密码算法的映射过程中,为了实现密码高速实现,映射方式可以分为3类:①并行映射方式,这种密码映射方式是将密码算法重复映射在各个密码处理器中,数据分配需要对数据进行拆解,按照轮询机制将数据输入到各密码处理器中;②流水映射方式,它是将密码算法拆解成不同的密码任务,数据分配时不需拆解数据,只需将数据输入到固定的密码处理器中;③混合映射方式,将上述两种映射方式混合应用。在多密码算法的映射过程中,为了实现多密码算法的并行实现,映射方式主要采用混合映射方式,即多密码算法间并行映射,算法内部采用流水映射。其数据分配方式需要按照用户对多核密码处理器密码处理运算的需求,将数据输入到不同的处理器中。在信息安全协议的映射过程中,为了实现协议的流水执行,需要将协议拆分成不同的密码处理任务,并将任务映射在不同的密码处理器中,此时数据分配需要按照信息安全协议的要求进行分配。
图2 多核密码处理器密码算法映射分类
对于多核密码处理器,不同的处理器完成不同的密码运算。而信息安全协议中,所需完成的协议往往比较复杂。如SSL协议中包括密码更换协议、握手协议、告警协议、记录层协议等,IPsec协议中包含AH 协议、ESP 协议等。在工作过程中,信息安全系统不需要了解多核密码处理器是如何对映射信息安全协议和密码算法等信息,只需提供信息安全任务需求、报文长度等基本信息。这就要求多核密码处理器与信息安全系统之间必须有灵活可变的通信协议,才能保证多核密码处理器解析信息安全系统提出的信息安全任务需求,将数据正确的分配到密码处理器中。
通过分析可知,多核密码处理器的数据分配取决于多核密码处理器的密码映射方案。多核密码处理器的密码映射方案取决于信息安全系统对密码算法和信息安全协议的需求也不同。而密码算法和信息安全协议的种类繁多,不同环境和不同系统对密码算法的需求也不相同,这要求多核密码处理器必须具有灵活的数据分配机制。
2 面向任务级的数据分配机制
多核密码处理器集成了多个文献 [6]设计实现的分组密码处理器。本文对其数据分配机制进行了研究,提出了具有较高灵活性的面向任务级的数据分配机制。
2.1 数据分配机制研究
在密码处理器中,数据分配方式是根据密码算法的特征定义不同的数据类型,并为不同的数据类型规定了不同的数据输入缓存区域,用于区分不同类型数据的输入。而多核密码处理器在集成多个密码处理器情况下,数据类型的数量呈指数增长,将单核处理器其的数据分配方式应用多核处理器,会增加输入缓存设计的复杂性。此外,多个密码处理器需要同时对输入缓存进行操作,存在数据缓存一致性的问题,且不利于数据的并行分配和广播输入。
通过对文献 [1-5]的比较,文献 [1,2]的数据分配方式不需要耗费处理器的使用资源,但是分配方式不够灵活,控制方式不够便捷。文献 [3-5]的数据分配机制具有较高的灵活性和便捷的编程方式,但是此类数据分配方式需要耗费处理器的运算资源,且数据分配的延迟较大。将上述两种方式结合,在多核密码处理器中集成数据分配控制器,能够在不耗费处理器的运算资源的情况下,保持分配方式的灵活和控制方式的便捷。
本文以4个基于文献 [6]的分组密码处理器为例,搭建了多核密码处理器的硬件架构,如图3所示。其中Import ctrl为多核密码处理器的数据分配控制器,用于完成数据分配。
图3 多核专用密码处理器架构
2.2 多核密码处理的任务级划分
多核密码处理器的数据分配方式取决于不同密码算法映射方案的同时,也取决于多核密码处理器所在的信息安全系统对密码算法的使用需求。而在密码映射方案、信息安全系统对密码算法的使用需求和多核密码处理器的数据分配方式三者之间必然存在某种关系,使得三者能够有机的联系起来,形成一个统一的整体。故本文有必要对多核密码处理器在信息安全系统中所需完成的工作进行任务级划分。
在信息安全系统中,多核密码处理器作为一个密码处理模块,需要完成包含加密、解密、签名、杂凑等一个或者多个系统处理任务,并且支持更换系统算法、更换算法密钥、更换算法初始向量、处理器复位、功耗管理等系统控制任务。从密码算法的映射方案的角度讲,多核密码处理器所需完成的任务取决于多核密码处理器的密码算法映射方案。只有确定了密码算法映射方案,多核密码处理器的算法运算、更换算法密钥、更换算法初始向量等任务才能确定。从信息安全系统的角度讲,多核密码处理器的任务必须涵盖信息安全系统对多核密码处理器的所有使用需求。否则,多核密码处理器不能在信息安全系统中发挥完备的密码处理保障任务。从数据分配方式的角度讲,多核密码处理器所需要完成的任务 (处理器复位除外)均需要信息安全系统向多核密码处理器传输需要处理数据、需要更换的算法指令、需要更换的密钥等数据,数据分配方式需要根据不同的任务将数据分配到多核密码处理器的不同位置。
综上所述,多核密码处理的任务级划分是密码映射方案、信息安全系统对密码算法的使用需求和多核密码处理器的数据分配方式三者之间的关键桥梁,只有把握这一点,才能有效地解决多核密码处理器的数据分配问题。
2.3 面向任务级的数据分配机制
通过上述分析,本文提出了面向任务级的多核密码处理器数据分配机制。由密码算法和信息安全协议的特征可知,每种密码算法或协议对应的密码处理任务一般包括加密、解密、杂凑、签名或多种密码处理的组合,但是对应密码处理任务的数量是有限的。而多核密码处理器的处理器数量和每个处理器指令RAM 的大小的限制,在多核密码处理器中映射的密码算法和密码协议的数量是有限的。故多核密码处理器的密码处理任务也是有限的。
在面向任务级的数据分配机制的开发过程中,如图4所示,需要根据多核密码处理器所在系统的信息安全需求,确定多核密码处理器的密码算法映射方案。之后,通过算法映射方案确定多核密码处理器所需完成的系统任务。根据任务以及对应的不同数据类型,确定数据的分配方式,并生成任务映射列表。
图4 数据类型到分配方式的映射机制
面向任务级的数据分配机制的开发在多核密码处理器的开发阶段完成,在多核密码处理器的密码处理任务映射方案不变的情况下,数据分配程序、任务编号和任务映射列表均不需要改变。面向任务级的数据分配机制的使用过程中,信息安全系统根据系统使用需求,查找需要多核密码处理器需要完成的系统处理任务,并将任务编号和待处理的数据通过多核密码处理器的数据输入协议分发给多核密码处理器进行处理。数据输入协议如图5所示。
图5 面向任务级的数据输入协议
在输入数据时,系统需要将待处理数据对应的任务编号、待处理数据的数据包长度和系统自动生成的数据包包号形成数据包包头,输入多核密码处理器内部。数据输入协议中,数据包包号用于配合任务编号,用作输出数据包标识。任务编号用作标识数据包数据类型。数据包长度用于标识数据包长度。
3 数据分配机制评估模型
为了从理论角度分析、评估面向任务级的数据分配机制与文献 [1-5]所述的其它3种不同数据分配机制的数据分配效率和灵活性,本文建立了数据分配机制评估模型。为了能够量化的分析4种不同数据分配机制的数据分配效率,给出数据分配吞吐率的定义。
定义 数据分配效率指单位时间内分配的有效数据量,记为Г,单位为bps
式 (1)中,N 表示有效数据量,T 表示数据从输入到处理器所需的时间。为了研究不同数据分配机制的数据分配吞吐率,模型将有效数据量的数值固定为4×128×32 (bit),比较不同数据分配机制需要耗费的理论时间。基于4种数据分配方式本文建立了SystemC 的硬件模型。将5种不同的密码算法映射方案在硬件模型上进行了映射,利用功能仿真工具,评估了不同数据分配机制的理论平均数据分配吞吐率见表1。
表1 不同分配机制的数据分配效率
结果表明,与文献 [1]的基于主动请求的数据分配机制比较,面向任务级的数据分配机制具有更高的数据分配灵活性,能灵活地适用于不同密码算法映射机制。与文献[2]的基于可编程描述符和文献 [3-5]的基于NoC 网络的数据分配机制比较,面向任务级的数据分配机制具有更高的数据分配效率,能高效的实现数据分配。
4 结束语
本文深入研究了多核密码处理器的数据分配机制及其控制机制,提出了面向任务级的多核密码处理器数据分配机制,并与不同多核处理的数据分配机制进行了对比。对比结果表明,面向任务级的数据分配机制具有更高的性能提升和灵活性,解决了在面临复杂密码算法映射方案下多核密码处理器数据分配不灵活的问题,提高了多核密码处理器的数据分配效率,保证了多核密码处理器的密码运算能力。
[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.]