用于RSA解密的处理器及用于RSA解密处理器的控制方法与流程

文档序号:11138249阅读:460来源:国知局
用于RSA解密的处理器及用于RSA解密处理器的控制方法与制造工艺

本申请涉及计算机技术领域,具体涉及处理器技术领域,尤其涉及用于RSA解密的处理器及用于RSA解密处理器的控制方法。



背景技术:

RSA加密算法是由Rivest、Shamir和Adleman三个人提出的一个公开密钥密码体制,以提出此算法的三个人名字的首字母命名,被认为是迄今为止理论上最为成熟完善的一种密码体制。RSA加密算法是一种非对称密码算法,即该算法需要一对密钥,分别称为公钥(n,e)和私钥(n,d),其中,公钥(n,e)用于加密,私钥(n,d)用于解密。算法如下:设A为明文,设B为密文,则:加密公式为“B=Ae mod n”;解密公式为“A=Bd mod n”;其中,“mod”表示求余运算,即取得两个整数相除后结果的余数,且不考虑相除得到的商,作为示例:7mod3=1,7除以3商2余1,余数1即mod运算后的结果。

RSA解密时,需要得到密文B和私钥(n,d),利用A=Bd mod n进行模幂运算,得到明文A,然而,现有的解密方式通常是利用通用处理器,例如CPU,进行RSA解密,而一个CPU核中只能同时进行一个RSA解密操作任务,从而存在着RSA解密效率低的问题。



技术实现要素:

本申请的目的在于提出一种改进的用于RSA解密的处理器及用于RSA解密处理器的控制方法,来解决以上背景技术部分提到的技术问题。

第一方面,本申请提供了一种用于RSA解密的处理器,上述处理器包括存储器、控制器件以及并行处理机,其中:上述存储器,用于存储包括私钥的解密用参数;上述控制器件,用于:接收密文集合,并向上述并行处理机发出包括上述密文集合的解密信号;上述并行处理机,用于:响应于接收到上述解密信号,读取上述存储器中的解密用参数,以及使用上述并行处理机中的至少一个模幂电路单元,利用读取的解密用参数,并行对上述密文集合中的各个密文进行模幂运算,得到与各个密文对应的明文。

第二方面,本申请提供了一种用于RSA解密处理器的控制方法,上述RSA解密处理器包括存储器、并行处理机,其中,上述存储器用于存储包括私钥的解密用参数,上述方法包括:接收密文集合;向并行处理机发出包括上述密文集合的解密信号,以供上述并行处理机:响应于接收到上述解密信号,读取上述存储器中的解密用参数,以及使用上述并行处理机中的至少一个模幂电路单元,利用读取的解密用参数,并行对上述密文集合中的各个密文进行模幂运算,得到与各个密文对应的明文。

本申请提供的用于RSA解密的处理器及用于RSA解密处理器的控制方法,通过利用并行处理集中的多个模幂电路单元,并行对密文集合中的多个密文进行模幂运算,提高了RSA解密的并行度,从而提高了RSA解密的效率。

附图说明

通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:

图1是本申请可以应用于其中的示例性系统架构图;

图2a是根据本申请的用于RSA解密的处理器的一个实施例的结构示意图;

图2b是根据本申请的用于RSA解密的处理器的另一个实施例的结构示意图;

图2c是根据本申请的模幂电路单元的结构示意图;

图2d是根据本申请的用于RSA解密的处理器的流水式执行解密任务的示意图;

图3是根据中国剩余定理进行RSA解密的计算过程的流程图;

图4是根据本申请的用于RSA解密处理的方法的一个实施例的流程图;

图5是根据本申请的用于RSA解密处理的方法的另一个实施例的流程图。

具体实施方式

下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。

需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。

图1示出了可以应用本申请的用于RSA解密的处理器及用于RSA解密处理器的控制方法的实施例的示例性系统架构100。

如图1所示,系统架构100可以包括通用处理器101和专用服务器102。

通用处理器101用于根据RSA加密算法,利用公钥对明文进行加密,得到密文并将密文发送给专用处理器102;专用处理器102可以接收密文,根据RSA解密算法,利用私钥对接收到的密文进行解密,得到与密文对应的明文。其中,通用处理器102也可以称为主机,而专用处理器102可以是由FPGA(Field-Programmable Gate Array,即现场可编程门阵列服务器)设计而成,其中FPGA可以包括计算单元和存储单元,FPGA通过PCI-E接口与包含上述通用处理器(例如CPU)的电子设备进行通信。可以通过PCI-E接口从通用处理器获取密文。

需要说明的是,本申请实施例所提供的用于RSA解密的处理器一般是指图1中的专用处理器102,相应地,用于RSA解密处理器的控制方法一般由专用处理器102中的控制器件执行。

应该理解,图1中的通用处理器101和专用处理器102的数目仅仅是示意性的。根据实现需要,可以具有任意数目的通用处理器和专用处理器。

继续参考图2a,其示出了根据本申请的用于RSA解密的处理器的一种结构示意图210。

如图2a所示,上述处理器210包括存储器201、控制器件202和并行处理机203。

在本实施例中,上述存储器201,用于存储解密用参数。在这里,解密用参数可以包括私钥(n,d)。

本领域技术人员可以理解的是,在密文B和私钥(n,d)的位宽较小的情况下,例如密文B和私钥(n,d)的位宽均小于1024,可以直接按照解密公式“A=Bd mod n”进行模幂运算,得到明文A。

在本实施例中,上述控制器件202,用于:接收密文集合,并向上述并行处理机发出包括上述密文集合的解密信号。

在本实施例中,上述控制器件202可以从其他电子设备(例如图1中的通用服务器101)接收密文,上述其他电子设备可以是对明文进行加密的电子设备,也可以是转发密文的电子设备。在这里,上述控制器件接收的密文集合是包括至少一个密文的集合。上述控制器件在接收到密文集合后,向上述并行处理机发出解密信号,其中,上述解密信号中包括上述控制器件接收的密文集合。

在本实施例中,上述并行处理机203,用于:响应于接收到上述解密信号,读取上述存储器中的解密用参数,以及使用上述并行处理机中的至少一个模幂电路单元,利用读取的解密用参数,并行对上述密文集合中的各个密文进行模幂运算,得到与各个密文对应的明文。

在本实施例中,并行处理机读取的解密用参数包括密钥。

并行处理机可以重复设置大量相同的处理单元PE(Processing Element),并将它们按一定方式互连成阵列,在单一控制部件控制下,对各自所分配的不同数据并行执行同一操作。在本实施例中,并行处理机中重复设置大量相同的模幂电路单元230,各个模幂电路单元分别对密文集合中的一条密文和密钥进行模幂运算,解密得到明文。

本实施例提供的用于RSA解密的处理器通过并行处理机中的多个模幂电路单元,对密文集合中的多条密文同时解密,提高了RSA解密的并行度,从而提高了RSA解密的效率。

继续参考图2b,其示出了根据本申请的用于RSA解密的处理器的一种结构示意图220。

如图2b所示,上述用于RSA解密的处理220包括存储器201、控制器件202、并行处理机203、预处理电路单元204和后处理电路单元205。

本领域技术人员可以理解,在密文和私钥的位宽较大的情况下,例如密文的位宽为2048位,直接利用解密公式对密文和私钥进行模幂运算所耗费的运算资源十分庞大。在此情况下,可以根据中国剩余定理对密文和私钥进行转换,得到位宽较小的参数,通过一系列对位宽较小的参数的运算,得到明文。

具体运算过程请参考图3所示流程300,其示出了根据中国剩余定理进行RSA解密的计算过程,现对图3进行简要说明如下:

步骤301,根据密文c、密钥(n,d)以及互质的预设的第一因子p和第二因子q,确定中间参数,其中,中间参数包括第一底数c1和第一指数dp以及第二底数c2和第二指数dq,其中:

dP=d mod(p-1);

dq=d mod(q-1);

c1=c mod p;

c2=c mod q。

步骤302,根据步骤301确定的中间参数,确定第一余数m1和第二余数m2,其中:

m1=c1dp mod p;

m2=c2dq mod q。

步骤303,根据第一余数m1和第二余数m2以及第一因子p和第二因子q,确定明文m,其中:

qInv=(1/q)mod p;

h=(qInv×(m1-m2))mod p;

m=m2+h×q。

在本实施例中,上述解密用参数还包括预设的互质的第一因子和第二因子,本领域技术人员可以理解,第一因子与第二因子的乘积为密钥(n,d)中的n,即n=p×q。

在本实施例中,上述控制器件202,还用于:接收密文集合,响应于上述密文集合中的密文的位宽大于预定阈值,向上述预处理电路发出包括上述密文集合的预处理信号,以供上述预处理电路执行上述步骤301,进行参数预处理。

在本实施例中,上述预处理电路单元204,用于:响应于接收到上述预处理信号,读取上述存储器中的解密用参数,在这里,解密用参数可以包括第一因子、第二因子以及密钥;根据中国剩余定理,执行上述步骤301:对解密用参数和上述密文集合中位宽大于预定阈值的密文进行运算,确定与位宽大于预定阈值的密文对应的中间参数,其中,上述中间参数包括第一底数和第一指数以及第二底数和第二指数。

上述控制器件202,还用于:监控上述预处理电路,响应于监控到上述预处理电路完成确定与位宽大于预定阈值的密文对应的中间参数的任务,确定上述并行处理机中是否有空闲的模幂电路单元。

上述控制器件202,还用于:响应于确定上述并行处理机中有空闲的模幂电路单元,向上述预处理电路单元和空闲的模幂电路单元发出第一任务流转指令;在这里,上述第一任务流转指令用于将由预处理电路单元执行完毕的解密任务流转到空闲的模幂电路单元,执行该解密任务的如步骤302中的解密过程。

上述预处理电路单元204,还用于:响应于接收到上述第一任务流转指令,将确定的与位宽大于预定阈值的密文对应的中间参数发送至上述空闲的模幂电路单元,在这里,中间参数包括上述第一底数、上述第一指数以及上述第二底数、上述第二指数。在预处理电路单元将确定的中间参数发送至空闲的模幂电路单元后,可以进行下一个解密任务的预处理。

上述空闲的模幂电路单元,还用于:响应于接收到上述第一任务流转指令,接收上述预处理电路单元发送的中间参数,然后执行上述步骤302:对接收到的上述第一底数、上述第一指数、上述第一因子进行第一模幂运算以及对接收到的上述第二底数、上述第二指数、上述第二因子进行第二模幂运算,确定第一余数和第二余数。在这里,空闲的模幂电路单元接收到的第一因子和第二因子可以由预处理电路模块发送,还可以由空闲的模幂电路单元中存储器中读取。

上述控制器件202,还用于监控上述并行处理机中的模幂电路单元,响应于监控到上述并行处理机中有完成确定第一余数和第二余数任务的模幂电路单元,确定上述后处理电路单元是否空闲;响应于确定上述后处理电路单元空闲,向上述并行处理机和上述后处理电路单元发出第二任务流转指令。

上述并行处理机203,还用于:响应于接收到上述第二任务流转指令,将确定的第一余数和第二余数以及上述第一因子和上述第二因子发送至上述后处理电路单元。

上述后处理电路单元205,用于:响应于接收到上述第二任务流转指令以及上述第一余数、上述第二余数、上述第一因子和上述第二因子,根据中国剩余定理,执行上述步骤303,即对第一余数和第二余数以及第一因子和第二因子进行运算,确定与位宽大于预定阈值的密文对应的明文。

在本实施例的一些可选的实现方式中,可以为包括几十个模幂电路单元的并行处理机设置一个预处理电路单元和一个后处理电路电源。一般来说,步骤302的执行时间是步骤301或步骤303的几十倍,为一个并行处理机配置一个预处理电路单元和一个后处理电路单元的方式,可以避免预处理电路单元和后处理电路单元配置冗余,提高资源利用率。

本实施例提供用于RSA解密的处理器,在密文的位宽较大的情况下,提供一种包括预处理电路单元、并行处理机、后处理电路单元的流水式作业结构的处理器;这种流水式作业结构的处理器,可以避免步骤301-步骤303都执行完再启动下一个RSA解密任务,如图2d所示,其示出了利用本实施例提供的处理器流水式执行解密任务的示意图,其中,任务0-任务3分别代表不同任务,以任务0为例,“任务0”指示任务0的时间进度,“0-301”指示任务0中执行步骤301所用的运算时间,“0-302”指示任务0中执行步骤302所用的运算时间,“0-303”指示任务0中执行步骤303所用的运算时间;从图2d中可以看出,各个电路单元利用率大大提高,上述处理器可以并行执行多个RSA解密任务,提高了处理器的吞吐率,从而提高了在密文位宽较大的情况下的RSA解密的效率。

在本实施例的一些可选的实现方式中,如图2c所示,其示出了并行处理机中模幂电路单元230的结构。

在本实现方式中,上述模幂电路单元230可以包括并列的第一模幂子单元231和第二模幂子单元232;其中,上述第一模幂子单元231,用于对上述第一底数、上述第一指数、上述第一因子进行第一模幂运算,确定上述第一余数;上述第二模幂子单元232,用于对上述第二底数、上述第二指数、上述第二因子进行第二模幂运算,确定上述第二余数。

在本实现方式中,在模幂电路单元中设置并列的第一模幂子单元231和第二模幂子单元232,可以并行执行步骤302所示的模幂运算,相对于现有技术的串行执行两个模幂运算,提高了执行步骤302的并行度,从而进一步提高了RSA解密的效率。

在本实现方式中,上述第一模幂子单元231包括第一模幂控制子单元2311和第一脉动阵列电路单元2312,其中:上述第一脉动阵列电路单元,用于模乘运算;上述第一模幂控制子单元,用于:根据上述第一底数、上述第一指数、上述第一因子,至少一次调用上述第一脉动阵列电路单元进行模乘运算以完成上述第一模幂运算,确定上述第一余数。

在本实现方式中,上述第二模幂子单元232包括第二模幂控制子单元2321和第二脉动阵列电路单元2322,其中:上述第二脉动阵列电路单元,用于模乘运算;上述第二模幂控制子单元,用于:根据上述第二底数、上述第二指数、上述第二因子,至少一次调用上述第二脉动阵列电路单元进行模乘运算以完成上述第二模幂运算,确定上述第二余数。

在本实现方式中,上述第一脉动阵列电路单元和上述第二脉动阵列电路单元分别包括预定数目的乘加运算单元;以及上述接收到中间参数的模幂电路单元,还用于:计算上述第一脉动阵列电路单元中乘加运算单元的数目与上述第一因子的比值,得到第一比值;计算上述第二脉动阵列电路单元中乘加运算单元的数目与上述第二因子的比值,得到第二比值;响应于上述第一比值和上述第二比值的不相等,将较大比值对应的脉动阵列电路单元中的至少一个乘加运算单元合并入较小比值对应的脉动阵列电路单元。在这里,第一脉动阵列电路单元和第二脉动阵列电路单元的乘加运算单元的数目,可能相同,也可能不同。

作为示例,在私钥中的n的位宽为2048位的情况下,第一因子和第二因子的位宽之和为2048,但第一因子和第二因子各自的位宽不能确定;设第一脉动阵列电路单元中乘积运算单元的数目为a1,第二脉动阵列电路单元中乘积运算单元的数目为a2,第一因子的位宽为b1,第二因子的位宽为b2,则第一比值r1=a1/b1,第二比值r2=a2/b2;如果r1>r2,则将第一脉动阵列电路单元中的至少一个乘积运算单元合并入第二脉动阵列电路单元;如果r1<r2,则将第二脉动阵列电路单元中的至少一个乘积运算单元合并入第一脉动阵列电路单元。

本实现方式可以合理配置模幂电路单元的两个脉动阵列电路单元中的计算资源,提高计算资源的利用率。

进一步参考图4,其示出了用于RSA解密处理器的控制方法的一个实施例的流程400,其中,RSA解密处理器包括存储器、并行处理机,其中,上述存储器用于存储包括私钥的解密用参数,该用于RSA解密处理器的控制方法的流程400,包括以下步骤:

步骤401,接收密文集合。

在本实施例中,用于RSA解密处理器的控制方法运行于其上的电子设备(例如图1中的专用处理器102中的控制器件)可以从其他电子设备(例如图1中的通用服务器101)接收密文,上述其他电子设备可以是对明文进行加密然后对加密得到的密文进行发送的电子设备,也可以是对密文进行转发的电子设备。在这里,上述控制器件接收的密文集合是包括至少一个密文的集合。

步骤402,向并行处理机发出包括密文集合的解密信号。

在本实施例中,用于RSA解密处理器的控制方法运行于其上的电子设备(例如图1中的专用处理器102中的控制器件)可以在接收到密文集合后,向上述并行处理机发出解密信号,上述解密信号中包括上述控制器件接收的密文集合,以供上述并行处理机,响应于接收到上述解密信号,读取上述存储器中的解密用参数,以及使用上述并行处理机中的至少一个模幂电路单元,利用读取的解密用参数,并行对上述密文集合中的各个密文进行模幂运算,得到与各个密文对应的明文。

在本实施例中,并行处理机可以重复设置大量相同的处理单元PE(Processing Element),并将它们按一定方式互连成阵列,在单一控制部件控制下,对各自所分配的不同数据并行执行同一操作。在本实施例中,并行处理机中重复设置大量相同的模幂电路单元,各个模幂电路单元分别对密文集合中的一条密文和密钥进行模幂运算,解密得到明文。

本实施例的实现细节和技术效果可以参考图2a对应的实施例中的相关说明,在此不再赘述。

进一步参考图5,其示出了用于RSA解密处理器的控制方法的又一个实施例的流程500。该用于RSA解密处理器的控制方法的流程500,包括以下步骤:

步骤501,接收密文集合。

在本实施例中,用于RSA解密处理器的控制方法运行于其上的电子设备(例如图1中的专用处理器102中的控制器件)可以从其他电子设备(例如图1中的通用服务器101)接收密文。

步骤502,响应于密文集合中的密文的位宽大于预定阈值,向预处理电路发出包括密文集合的预处理信号。

在本实施例中,用于RSA解密处理器的控制方法运行于其上的电子设备(例如图1中的专用处理器102中的控制器件)可以响应于上述密文集合中的密文的位宽大于预定阈值,向上述预处理电路发出包括上述密文集合的预处理信号,以供上述预处理电路执行上述步骤301,进行参数预处理。

步骤503,监控预处理电路。

在本实施例中,用于RSA解密处理器的控制方法运行于其上的电子设备(例如图1中的专用处理器102中的控制器件)可以监控上述预处理电路。

步骤504,响应于监控到预处理电路完成确定与位宽大于预定阈值的密文对应的中间参数的任务,确定并行处理机中是否有空闲的模幂电路单元。

在本实施例中,用于RSA解密处理器的控制方法运行于其上的电子设备(例如图1中的专用处理器102中的控制器件)可以响应于监控到预处理电路完成确定与位宽大于预定阈值的密文对应的中间参数的任务,确定并行处理机中是否有空闲的模幂电路单元。

步骤505,响应于确定并行处理机中有空闲的模幂电路单元,向预处理电路单元和空闲的模幂电路单元发出第一任务流转指令。

在本实施例中,用于RSA解密处理器的控制方法运行于其上的电子设备(例如图1中的专用处理器102中的控制器件)可以响应于接收到上述第一任务流转指令,将确定的与位宽大于预定阈值的密文对应的中间参数发送至上述空闲的模幂电路单元。在预处理电路单元将确定的中间参数发送至空闲的模幂电路单元后,可以进行下一个解密任务的预处理。

步骤506,监控并行处理机中的模幂电路单元。

在本实施例中,用于RSA解密处理器的控制方法运行于其上的电子设备(例如图1中的专用处理器102中的控制器件)可以监控并行处理机中的模幂电路单元。

步骤507,响应于监控到并行处理机中有完成确定第一余数和第二余数任务的模幂电路单元,确定后处理电路单元是否空闲。

在本实施例中,用于RSA解密处理器的控制方法运行于其上的电子设备(例如图1中的专用处理器102中的控制器件)可以响应于监控到并行处理机中有完成确定第一余数和第二余数任务的模幂电路单元,确定后处理电路单元是否空闲。

步骤508,响应于确定上述后处理电路单元空闲,向上述并行处理机和后处理电路单元发出第二任务流转指令。

在本实施例中,用于RSA解密处理器的控制方法运行于其上的电子设备(例如图1中的专用处理器102中的控制器件)可以响应于确定上述后处理电路单元空闲,向上述并行处理机和上述后处理电路单元发出第二任务流转指令,以供并行处理机响应于接收到上述第二任务流转指令,将确定的第一余数和第二余数以及上述第一因子和上述第二因子发送至上述后处理电路单元;并且,以供上述后处理电路单元响应于接收到上述第二任务流转指令以及上述第一余数、上述第二余数、上述第一因子和上述第二因子,根据中国剩余定理,执行上述步骤303,即对第一余数和第二余数以及第一因子和第二因子进行运算,确定与位宽大于预定阈值的密文对应的明文。

本实施例提供的用于RSA解密处理器的控制方法的实现细节和技术效果,可以参考图2b-图2d以及图3对应的说明书中的相关说明,在此不再赘述。

附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

描述于本申请实施例中所涉及到的器件可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的器件也可以设置在处理器中,例如,可以描述为:一种处理器包括存储器、控制器件和并行处理机。其中,这些器件的名称在某种情况下并不构成对该器件本身的限定,例如,存储器还可以被描述为“用于存储解密用参数的器件”。

作为另一方面,本申请还提供了一种非易失性计算机存储介质,该非易失性计算机存储介质可以是上述实施例中上述装置中所包含的非易失性计算机存储介质;也可以是单独存在,未装配入电子设备中的非易失性计算机存储介质。上述非易失性计算机存储介质存储有一个或者多个程序,当上述一个或者多个程序被一个设备执行时,使得上述设备:接收密文集合;向并行处理机发出包括上述密文集合的解密信号。

以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1