一种多接口密码模块并行调度方法

文档序号:7779608阅读:264来源:国知局
一种多接口密码模块并行调度方法
【专利摘要】一种多接口密码模块并行调度方法。通过本地接口/网络接口接收密码服务请求并发送密码服务响应,密码数据预处理部件对待处理数据进行分组、负载值赋予和并行化标记并对响应分组进行排序和组装形成密码服务响应,密码模块并行调度部件根据标记按照基于负载累计加权值的负载均衡调度方法将当前的请求分组分配给累计负载最小的密码模块并接收对应的响应分组。本发明提供的方法的主要优点:在充分利用多接口密码模块提高系统密码处理能力的同时,方便多用户使用。不仅满足了一些行业计算机系统中密码算法部署的特殊要求,而且更加符合集群计算/云计算环境下的并行高效处理数据的要求。
【专利说明】一种多接口密码模块并行调度方法
【技术领域】
[0001]本发明涉及计算机信息安全【技术领域】,主要涉及一种多接口密码模块并行调度方法,该方法一方面使用并行方法对多接口密码模块进行统一调度提高系统加解密效率,另一方面提供本地和网络接口方便在多用户环境下使用。
【背景技术】
[0002]密码模块是一种通过硬件接口(例如:PC1、PC1-E、USB和LPC等)连接在计算机主板上,提供加解密和安全认证服务的安全芯片,是计算机系统密码和安全的基本保障。密码模块内部拥有独立的处理器(例如)和存储单元,不仅可以存储密钥和特征数据,而且能够独立地进行加解密数据的操作。
[0003]通常情况下,密码模块是以FPGA等可编程单元或专用集成电路(ApplicationSpecific Integrated Circuit, ASIC)的形式实现的,其数据处理速度往往低于计算机内CPU的数据处理速度。当在集群计算/云计算环境下,有大量数据需要进行加解密处理时,密码模块往往成为整个计算机系统的性能瓶颈。
[0004]为了解决密码模块性能的问题,已有研究人员利用虚拟化技术,设计并实现了相关密码模块的虚拟软件。一方面,密码模块虚拟软件能够由CPU运行,密码处理速度显著提高;另一方面,虚拟机管理器通过在每个虚拟机中运行一个密码模块虚拟软件,并对这些虚拟软件进行管理的方式,实现密码模块的并发执行和调度。
[0005]但是,在一些特殊行业或部门(例如:政府、公安、军事等)中,密码算法是一个安全级别非常高的机密,只能由指定单位制定、获知和实施,其他单位和个人不允许获得密码算法的相关信息。在这些行业或部门中,密码算法的特殊性决定了相关密码算法只能以封装在密码模块的形式发布,无法被相关虚拟软件虚拟。
[0006]综上所述,需要针对我国一些行业计算机系统中密码算法部署的特殊要求,通过利用多接口密码模块和主CPU的运算能力,结合相关密码模块的特点,研究多接口密码模块并发运行和统一调度的方式,以本地调用和网络服务的形式提供密码服务,提高相关行业计算机系统密码处理的能力。

【发明内容】

[0007]本发明目的在于解决现有技术不足,针对密码模块及相关虚拟化在我国一些行业的局限性,提供一种并发调度多接口密码模块的方式,以本地调用和网络服务的形式提供密码服务,提高相关计算机系统密码处理的能力,方便多用户使用。
[0008]本发明一种多接口密码模块并行调度方法的技术方案如下:
首先,通过本地接口或网络接口接收密码服务请求,其中,本地接口以动态链接库形式提供,网络接口以基于socket端口的服务器端提供。密码服务请求包括:密码算法句柄、密钥句柄、密码模式句柄、待处理数据长度和待处理数据。本地接口或网络接口接收到密码服务请求之后,通过本地调用转发给密码数据预处理部件。[0009]然后,密码数据预处理部件对接收到的密码服务请求进行预处理。一方面,根据分组密码的特性,对密码服务请求中的数据进行分组并赋予负载值;另一方面,根据密码服务请求中密码算法和加解密模式的特点对数据分组进行并行化处理标记。在对待处理数据进行分组和标记后,通过本地调用转发给密码模块并行调度部件。
[0010]接下来,密码模块并行调度部件将标有并行化处理标记的待处理数据分组,根据基于负载累计加权值的负载均衡调度方法,将当前数据分组分配给累计负载最小的密码模块,并接收密码模块的响应分组。根据密码服务请求的标记,密码模块并行调度部件对响应分组进行标记,并交给密码数据预处理部件。
[0011]最后,密码数据预处理部件根据响应分组的标记,对响应分组进行排序和组装,形成密码服务响应。密码数据预处理部件将密码服务响应交给本地接口或网络接口,最终返回给多接口密码模块并行调度的调用者。
[0012]本发明一种多接口密码模块并行调度的实现方法,通过本地接口 /网络接口接收密码服务请求并发送密码服务响应,密码数据预处理部件对待处理数据进行分组、负载值赋予和并行化标记并对响应分组进行排序和组装形成密码服务响应,密码模块并行调度部件根据标记按照基于负载累计加权值的负载均衡调度方法将当前的请求分组分配给累计负载最小的密码模块并接收对应的响应分组。该方法一方面使用并行方法对多接口密码模块进行统一调度提高系统加解密效率,另一方面提供本地和网络接口方便在多用户环境下使用。所述密码数据预处理和并行化调度多密码模块的具体流程如下,
步骤1:在通过本地接口 /网络接口接收到密码服务请求后,密码数据预处理部件根据密码服务请求中的密码算法和密码模式,对密码服务请求中的待处理数据进行分组,对每个分组赋予负载值并进行并行化标记;对接收到的响应分组进行排序和组装形成密码服务响应交由本地接口/网络接口返回给用户;
步骤2:密码模块并行调度部件,根据并行化标记和负载值,按照基于负载累计加权值的负载均衡调度方法,将当前的数据分组分配给累计负载最小的密码模块,并接收对应的响应分组;对接收到的响应分组,转发给密码数据预处理部件处理。
[0013]所述的对密码服务请求进行分组预处理交由密码模块并行调度部件处理,并接收密码模块并行调度部件的响应分组经过排序组装后形成密码服务响应交由本地接口/网络接口返回给用户,具体流程如下,
步骤1:根据密码算法和相关分组密码的特性,对密码服务请求中的待处理数据进行分组,分成密码算法和密码模式能够处理的指定长度,每个请求分组的长度根据密码模块的具体密码算法而定;
步骤2:根据指定的密码算法和密码模式,为每个请求分组赋予负载值;
步骤3:根据指定的密码算法和密码模式,判断来自同一密码服务请求的请求分组能否被并行处理。对于能够并行化处理的请求分组标记为可并行处理(即并行处理标记为Y),对于不能够并行化处理的请求分组标记为不可并行处理(即并行处理标记为N);
步骤4:将来自同一密码服务请求的标记为不可并行处理的所有请求分组作为一个不可分割的当前任务交由密码模块调度模块处理,将标记为可并行处理的单个请求分组作为当前任务交由密码模块调度模块处理;
步骤5:根据请求号和分组号,对接收到的对应同一密码服务请求的不同响应分组,进行排序和组装,形成该密码服务请求对应的密码服务响应,交由本地接口 /网络接口返回给用户。
[0014]所述的按照基于负载累计加权值的负载均衡调度方法将请求分组分配给选定的密码模块,并接收其对应的响应分组,具体流程如下:
步骤1:系统初始化时,为每个密码模块分配待处理任务缓存序列,并将序列的负载累计加权值置为基准值;
步骤2:根据当前任务的请求分组判断当前任务的负载加权情况。若当前任务是多个请求分组,则当前任务的加权值为请求分组个数,若当前任务是单个请求分组,则当前任务的加权值为1.;
步骤3:根据每个密码模块的负载累计加权值,选取当前负载累计加权值最小的密码模块,并将当前任务分配给该密码模块,排入该密码模块的待处理任务缓存序列,等待选定的密码模块处理当前任务;
步骤4:接收选定密码模块的返回分组,并将响应分组返回给密码数据预处理部件。
[0015]所述的密码服务请求,包括:密码算法句柄、密钥句柄、密码模式句柄、待处理数据长度和待处理数据。
[0016]本发明一种多接口密码模块并行调度的实现方法的优点是:与硬件密码模块和密码模块虚拟化相比,能够提供一种并行调度基于多种硬件接口的密码模块,并以本地调用和网络服务的形式对外提供密码服务的方法。在充分利用多接口密码模块提高系统密码处理能力的同时,方便多用户使用。这不仅满足了我国一些行业计算机系统中密码算法部署的特殊要求,而且更加符合集群计算/云计算环境下的并行高效处理数据的要求。
【专利附图】

【附图说明】
[0017]图1为多接口密码模块并行调度体系图;
图2为密码数据预处理方法;
图3为基于负载累计加权值的负载均衡调度方法。
【具体实施方式】
[0018]如图1-图3所示,一种多接口密码模块并行调度方法,如图1所示:通过本地接口 /网络接口接收密码服务请求并发送密码服务响应,密码数据预处理部件对待处理数据进行分组和并行化标记并对响应分组进行排序和组装,密码模块并行调度部件根据并行化标记按照基于负载累计加权值的负载均衡调度方法将当前请求分组分配给累计负载最小的密码模块并接收响应分组。
[0019]结合图1、图2和图3,本发明的多接口密码模块并行调度的具体实现方法为:
①通过本地接口/网络接口接收密码服务请求并转发给密码数据预处理部件。
[0020]在该步骤中,具体实施可以分为如下细节:
1、本地接口以动态链接库形式提供,网络接口以基于socket端口的服务器端提供;
2、密码服务请求包括:密码算法句柄(位长为8位)、密码模式句柄(位长为8位)、密钥句柄(位长为32位)、待处理数据长度(位长为32位)和待处理数据(位长为待处理数据长度)。其中,密码服务请求包头包括:密码算法句柄、密码模式句柄和密钥句柄; 3、本地接口或网络接口接收到密码服务请求之后,通过本地调用转发给密码数据预处理部件。
[0021]②密码数据预处理部件对接收到的密码服务请求进行预处理。
[0022]在该步骤中,具体实施可以分为如下细节:
1、根据密码算法和相关分组密码的特性,对密码服务请求中的待处理数据进行分组,每个请求分组的长度根据密码模块的具体密码算法而定(以中国商用密码算法SMS4和SM2为例,数据分组长度为128和256字节);
2、根据指定的密码算法和密码模式,为每个请求分组赋予负载值,该负载值为相同密码算法和密码模式的单个请求分组在密码模块内进行加/解密的平均时间;
3、同时,根据指定的密码算法和密码模式,判断来自同一密码服务请求的请求分组能否被并行处理。将密码算法句柄代表对称加解密算法并且密码模式句柄代表CBC加解密模式,和密码算法句柄代表非对称加解密算法并且密码模式句柄代表任意模式的请求分组标记为可并行处理(即并行处理标记为Y)的请求分组,将其他请求分组标记为不可并行处理(即并行处理标记为N)的请求分组;
1、经过分组、赋予负载值和标记之后,每个请求分组包括:密码服务请求包头、请求号(位长为32位)、分组号(位长为32位)、负载值(位长为8位)、并行处理标记(位长为8位)、请求分组长度(位长为16位)和请求分组数据(位长为请求分组长度);
2、将来自同一密码服务请求的标记为不可并行处理的所有请求分组作为一个不可分割的当前任务交由密码模块调度模块处理,将标记为可并行处理的单个请求分组作为当前任务交由密码模块调度模块处理。
[0023]③密码模块并行调度部件将标有并行处理标记的请求分组分配给基于多接口的密码模块并接收响应分组。
[0024]在该步骤中,具体实施可以分为如下细节:
1、系统初始化时,为每个密码模块分配待处理任务缓存序列和该序列的负载累计加权值(初始值为O);
2、根据当前任务的请求分组判断当前任务的负载加权情况。若当前任务是多个请求分组,贝1J当前任务的加权值为请求分组个数,若当前任务是单个请求分组,则当前任务的加权值为1.;
3、根据每个密码模块的负载累计加权值,选取当前负载累计加权值最小的密码模块,并将当前任务分配给该密码模块,排入该密码模块的待处理任务缓存序列,等待选定的密码模块处理当前任务。当前任务以请求分组为原子单位发送给密码模块,发送的请求数据包括:密码服务请求包头、请求分组长度和请求分组数据;
1、接收选定密码模块的返回分组,返回分组包括:返回分组长度和返回分组数据。根据相应的请求号和分组号,形成响应分组,响应分组包括:请求号、分组号、返回分组长度和返回分组数据,并将响应分组返回给密码数据预处理部件。
[0025]④密码数据预处理部件接收来自密码模块并行调度部件的响应分组,形成密码服务响应并返回给本地接口/网络接口。
[0026]在该步骤中,具体实施可以分为如下细节:
1、根据响应分组中的请求号和分组号,对响应分组进行排序和组装,形成密码服务响应,密码服务响应包括:请求号、返回数据总长度和返回数据;
2、将密码服务响应交给本地接口或网络接口,根据密码服务响应中的请求号,最终将密码服务响应返回具有相同请求号的调用者。
【权利要求】
1.一种多接口密码模块并行调度的实现方法,其特征在于:通过本地接口 /网络接口接收密码服务请求并发送密码服务响应,密码数据预处理部件对待处理数据进行分组、负载值赋予和并行化标记并对响应分组进行排序和组装形成密码服务响应,密码模块并行调度部件根据标记按照基于负载累计加权值的负载均衡调度方法将当前的请求分组分配给累计负载最小的密码模块并接收对应的响应分组;该方法一方面使用并行方法对多接口密码模块进行统一调度提高系统加解密效率,另一方面提供本地和网络接口方便在多用户环境下使用;所述密码数据预处理和并行化调度多密码模块的具体流程如下, 步骤1:在通过本地接口 /网络接口接收到密码服务请求后,密码数据预处理部件根据密码服务请求中的密码算法和密码模式,对密码服务请求中的待处理数据进行分组,对每个分组赋予负载值并进行并行化标记;对接收到的响应分组进行排序和组装形成密码服务响应交由本地接口/网络接口返回给用户; 步骤2:密码模块并行调度部件,根据并行化标记和负载值,按照基于负载累计加权值的负载均衡调度方法,将当前的数据分组分配给累计负载最小的密码模块,并接收对应的响应分组;对接收到的响应分组,转发给密码数据预处理部件处理。
2.如权利要求1所述的密码数据预处理部件的实现方法,其特征在于:所述的对密码服务请求进行分组预处理交由密码模块并行调度部件处理,并接收密码模块并行调度部件的响应分组经过排序组装后形成密码服务响应交由本地接口/网络接口返回给用户,具体流程如下: 步骤1:根据密码算法和相关分组密码的特性,对密码服务请求中的待处理数据进行分组,分成密码算法和密码模式能够处理的指定长度,每个请求分组的长度根据密码模块的具体密码算法而定; 步骤2:根据指定的密码算法和密码模式,为每个请求分组赋予负载值; 步骤3:根据指定的密码算``法和密码模式,判断来自同一密码服务请求的请求分组能否被并行处理;对于能够并行化处理的请求分组标记为可并行处理(即并行处理标记为Y),对于不能够并行化处理的请求分组标记为不可并行处理(即并行处理标记为N); 步骤4:将来自同一密码服务请求的标记为不可并行处理的所有请求分组作为一个不可分割的当前任务交由密码模块调度模块处理,将标记为可并行处理的单个请求分组作为当前任务交由密码模块调度模块处理; 步骤5,根据请求号和分组号,对接收到的对应同一密码服务请求的不同响应分组,进行排序和组装,形成该密码服务请求对应的密码服务响应,交由本地接口 /网络接口返回给用户。
3.如权利要求1所述的密码模块并行调度部件的实现方法,其特征在于:所述的按照基于负载累计加权值的负载均衡调度方法将请求分组分配给选定的密码模块,并接收其对应的响应分组,具体流程如下: 步骤1:系统初始化时,为每个密码模块分配待处理任务缓存序列,并将序列的负载累计加权值置为基准值; 步骤2:根据当前任务的请求分组判断当前任务的负载加权情况;若当前任务是多个请求分组,则当前任务的加权值为请求分组个数,若当前任务是单个请求分组,则当前任务的加权值为1.;步骤3:根据每个密码模块的负载累计加权值,选取当前负载累计加权值最小的密码模块,并将当前任务分配给该密码模块,排入该密码模块的待处理任务缓存序列,等待选定的密码模块处理当前任务; 步骤4:接收选定密码模块 的返回分组,并将响应分组返回给密码数据预处理部件。
【文档编号】H04L9/08GK103701587SQ201310661943
【公开日】2014年4月2日 申请日期:2013年12月10日 优先权日:2013年12月10日
【发明者】徐士伟, 黄晋, 代征, 戴新发 申请人:中国船舶重工集团公司第七0九研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1