Rsa加密算法的指令优化处理器的制作方法

文档序号:6366839阅读:266来源:国知局
专利名称:Rsa加密算法的指令优化处理器的制作方法
技术领域
本发明涉及RSA的加解密技木,尤其涉及RSA算法中指令优化及扩展指令集处理器。
背景技术
RSA是目前最具有影响カ的公钥加密算法,它能够有效地抵抗现有已知的密码攻击,已被ISO推荐为公钥数据加密标准。RSA不仅能够用于数据加密,而且能够进行数字签名。RSA是构建安全可靠的电子商务平台和可信的嵌入式计算环境(如物联网)的必选加
密算法之一。 RSA加密算法是ー种分组加密算法,首先对待加密的数据报文进行合理的分块,然后逐块地对每个报文进行加密。RSA密码系统的构建和实施主要分为以下个过程(I)大素数P、q(目前至少512bit)的生成,该过程一般采用目前的推荐标准Miller-Rabin素性测试方法;(2)计算模数N = p*q.目前推荐N的ニ进制的bit位数至少为1024,推荐为1024+256X ; (3)密钥的生成,RSA是非对称加密算法,其密钥分为公钥(e,N)和私钥(d,N),其中 gcd(e, (N)) = I 即 e 和 (N)互素,(N) = (p_l) * (q_l), d = e_1mod (N)即 d、e互为模小(N)的乘法逆元;⑷加密过程,C = Me modN其中M为明文,C为密文;(5)解密过程,M = Cd mod NoRSA算法的安全性是基于大整数的因式分解的复杂度。从以上对RSA算法的分析,可以看出RSA算法中的算木运算操作是非常耗时的,尤其是模幂运算操作。而在现代エ业生产应用环境中使用RSA即必须克服其时间性方面的缺点。目前,业界已提出了各种优化RSA算法实施的方法,主要集中于3方面第一种方法是优化RSA算法的软件实现,如采用中国剩余定理(CRT)。第二种方法是从硬件方面提高RSA运算的执行速度,如设计专用集成电路(ASIC)、设计专用于RSA的协处理器等。第三种方法,扩展指令集的方式,将最能有效加速RSA算法的运算操作设计成指令并纳入到处理器指令集。第一种方法实际上是对算法本身进行优化,能够在一定程度上加速RSA算法,但加速效果有限;第二种采用硬件加速的方法,虽然在加速效果上比较明显,但是这种优化方法可扩展性较弱,占的硬件资源相对较多,而且与其他程序模块很难结合;第三种方法通过对指令集扩展优化的设计方法,不仅减少了执行代码空间,提高了算法执行速度,而且在设计上易于实现,灵活性也比较强,对硬件资源的要求也比第二种方法要小很多,适合于小规模电路。由于这种优化技术的良好性能,它已经被应用到了多种加密算法的加速优化中。

发明内容
本发明的目的在于提供ー种RSA加密算法的指令优化处理器,它采用了 5条专门用于加速优化RSA加密算法的扩展指令,并且设计了ー款与新指令集相对应的专用指令处理器模型-RSA_ASIP。通过与广泛使用的ARM处理器对比发现,经过指令扩展优化后,RSA加密算法在本发明设计的RSA_ASIP处理器中的实现比在ARM处理器中的实现平均減少了64. 3 指令执彳T周期。为实现上述目的,本发明采用如下技术方案ー种RSA加密算法的指令优化处理器,它主要由数据存储器、代码存储器、寄存器堆、指令流水线和总线矩阵五部分组成;其中,寄存器堆主要由32个通用寄存器、I个取指寄存器、I个堆栈指针寄存器和I个链接寄存器组成;指令流水线采用三级流水线取指流水线部件、译码流水线部件和执行流水线部件;流水线控制器对跳转指令译码部件进行控制,跳转指令只需要将跳转地址存储在取指寄存器中,不需要经过执行部件,然后接着对整个流水线的缓存进行刷新,防止流水线跳转引发错误;在处理器中除了通用指令译码部件和逻辑算木指令执行部件外,还添加了针对RSA的专用指令的扩展指令执行部件,来执行 这些扩展的专用指令,在RSA扩展指令执行部件中,主要包括了 5条新扩展指令的执行部件指令getbit执行部件,获取srcl指定源操作数中的由src2指定的源操作数指定的bit位的值,并将该值存入dest对应的通用寄存器中;针对大整数的左移和右移提出了优化指令shift_l执行部件和shift_r执行部件,指令shift_l执行部件将srcl左移src2位并将来自低位移位并入的srcl中,并存到到dest中,同时,将srcl左移的溢出的位保存在src3中;shift_r—行部件将srcl右移src2位并将来自低位移位并入的srcl中,并存到到dest中,同时,将srcl右移的溢出的位保存在src3中;指令muladd执行部件将srcO与srcl相乘的积并与scr2求和,结果的高位放在src2中,低位放在dest中;指令muladd2执行部件将srcO与srcl相乘的积并与scr2、src3求和,结果的高位放在src3中,低位放在dest中。所述扩展指令getbit执行部件包括I个移位器、I个与门和I个多路选择器;R0是目标操作数,Rl的低5位指定要获取的位,RO和Rl的低5位作为右移位器I的输入,右移位器I的输出和Oxl作为32位与门I的输入,与门I输出指定的bit位的值;通过多路选择器I进行控制同歩,当控制信号为I吋,多路选择器I将目标结果送入到寄存器RO ;如果控制信号为0时,输出无效。所述扩展指令shift_l执行部件包括I个反向器、ー个加法器、I个或门、2个移位器以及2个多路选择器;R0是两个移位器的输入源操作数,Rl的低5位指定移位的位数;R1的低5位经过5位反向器I的和5位加法器I的输出和RO作为右移位器II的输入;R0和Rl的低5位作为左移位器I的输入,左移位器I的输出结果和R2作为或门I的输入;两个多路选择器控制指令的同步和结果的输出,当控制信号为I时,左移位器I和或门I的输出结果分别送入到R2和RO ;当控制信号为0时,输出无效。所述扩展指令shift_r执行部件包括I个反向器、ー个加法器、I个或门、2个移位器以及2个多路选择器;R0是两个移位器的输入源操作数,Rl的低5位指定移位的位数;R1的低5位经过5位反向器II的和5位加法器II的输出和RO作为左移位器II的输入;R0和Rl的低5位作为右移位器III的输入,右移位器III的输出结果和R2作为或门II的输A ;两个多路选择器控制指令的同步和结果的输出,当控制信号为I时,左移位器II和或门II的输出结果分别送入到R2和RO ;当控制信号为0时,输出无效。所述扩展指令muladd执行部件包括4个乘法器、5个加法器、3个比较器以及2个多路选择器;R0的低16位和Rl的低16位作为乘法器I的输入;R0的低16位和Rl的高16位作为乘法器II的输入;R0的高16位和Rl的低16位作为乘法器III的输入;R0的高16位和Rl的高16位作为乘法器IV的输入;乘法器I输出的高16位和乘法器II输出的低16位作为加法器III的输入,其输出求和的结果和乘法器I的高16位作为比较器I的输入,同时该输出的求和结果和乘法器III的低16位作为加法器VI的输入;乘法器I输出的低16位和加法器VI的输出合成一个输入和R2作为加法器VII的输入;乘法器II的输出的高16位、乘法器III的输出的高16位以及乘法器IV的输出作为加法器IV的输入匕较器I、比较器II、比较器III的输出和加法器IV的输出作为加法器V的输入;两个多路选择器控制指令的同步和结果的输出,当控制信号为I时,加法器IV输出结果和加法器V的 输出结果分别送入到R2和RO ;当控制信号为0时,输出无效。所述扩展指令muladd2执行部件包括4个乘法器、6个加法器、3个比较器以及2个多路选择器;R0的低16位和Rl的低16位作为乘法器V的输入;R0的低16位和Rl的高16位作为乘法器VI的输入;R0的高16位和Rl的低16位作为乘法器VII的输入;R0的高16位和Rl的高16位作为乘法器VIII的输入;乘法器V输出的高16位和乘法器VI输出的低16位作为加法器IX的的输入,其输出求和的结果和乘法器I的高16位作为比较器V的输入,同时该输出的求和结果和乘法器VII的低16位作为加法器XII的输入;乘法器V输出的低16位和加法器XII的输出合成一个输入和加法器VIII的输出作为加法器XIII ;乘法器VI的输出的高16位、乘法器VII的输出的高16位以及乘法器VIII的输出作为加法器X的输入;比较器IV、比较器V、比较器VI的输出和加法器X的输出作为加法器XI的输入;两个多路选择器控制指令的同步和结果的输出,当控制信号为I时,加法器XIII输出结果和加法器XI的输出结果分别送入到R2和RO ;当控制信号为0时,输出无效。所述数据存储器地址空间定义在0X0000-0X7FFF范围内,大小32K ;代码存储器地址空间定义在0x8000-0xFFFF范围内,大小为32Kbytes。本发明的设计思路为在满足不改变原有指令集以及不影响处理器运行速度的前提下,I) RSA算法的分析。对RSA上层算法进行充分的分析,通过对RSA算法的运算操作进行统计分析,找出其核心操作部分,对需要进行指令的优化的部分进行初步筛选。通过分祈,RSA中模幂运算应当作为进行指令优化的首选核心部分。2) RSA算法的高级语言的实现。采用高级语言C语言来实现RSA算法,该实现不仅能够保持上层算法层面的抽象性,又能看到具体的机器实现过程。3) RSA算法的C语言实现中的DFG。从RSA的C语言实现中,可以很容易地找到相关实现部分的数据流图(DFG)。4) RSA算法中专用指令的选择。从3)中生成DFG中,我们按照一定的专用指令选择算法,将DFG中能够进行并行、优化的部分作为专用指令的候选。根据这些专用指令的消耗的资源、使用的频度等以及对整个芯片的面积,资源限制,将其转化为ー个整数线性规划问题。最終,筛选算法生成了 5条可供扩展的指令。getbit用于对幂指数操作中位操作,shift_l和shift_r用于单精度数字的移位操作而不丢失移出的位,从而实现多精度大整数的移位操作,muladd和muladd2是Montgomery模乘单元的核心操作。5) RSA专用处理器模型的LISA描述。将4)中生成专用指令整合到原有的32位处理器模型中,用LISA语言进行描述,并对该处理器模型进行仿真。6) RSA专用处理器的RTL描述。对5)中生成处理器模型,通过Verilog/VHDL完成对RSA专用处理的RTL级的描述。7) RAS专用处理器的实 现。将6)中生成RTL级的RSA专用处理进行综合验证,并最终在FPGA上实现。基于上述设计要求,本发明的模型硬件结构主要由数据存储器、代码存储器、寄存器堆、流水线及总线矩阵五部分组成。数据存储器地址空间定义在0X0000-0X7FFF范围内,大小32K。代码存储器地址空间定义在0x8000-0xFFFF范围内,大小为32Kbytes。寄存器堆由32个通用寄存器(GPR
)、1个取指寄存器(FPR)、I个堆栈指针寄存器(SPR)和I个链接寄存器(LR)组成。流水线部分采用三级流水线取指、译码和执行。流水线控制器主要负责对跳转指令进行控制,跳转指令只需要将跳转地址存储在取指寄存器(FPR)中,不需要经过执行部件,然后接着对流水线的缓存部分进行刷新,防止执行部件对跳转指令进行执行。在RSA_ASIP处理器的、执行部件中,除了通用指令的执行器外,还添加了 RSA的专用扩展指令的执行器,来对扩展的指令进行专门执行。在流水线的指令执行级中,增加了对5条专用扩展指令的执行部件。本发明的有益效果是经过指令扩展优化后,本发明设计的RSA_ASIP处理器中在保证软件实现的灵活性和可扩展性的前提下,大幅度地优化RSA的执行,经过对RSA1024、RSA2048的实现,与在ARM处理器上的实现比较,指令周期平均減少了 64%。这验证了本发明针对RSA算法中的核心运算过程提出的扩展指令集加速了 RSA的执行,经过指令优化的处理器模型节省了资源消耗。


图I为针对RSA算法指令优化的RSA_ASIP处理器设计流程图;图2为针对RSA算法的RSA_ASIP处理器模型框图;图3扩展指令getbit的指令执行部件电路框图;图4扩展指令shift_l的指令执行部件电路框图;图5扩展指令shift_r的指令执行部件电路框图;图6扩展指令muladd的指令执行部件电路框图;图7扩展指令muladd2的指令执行部件电路框图。其中,I.寄存器堆,2.总线矩阵,3.代码存储器,4.数据存储器,5.指令流水线,6.流水线控制部件,7.流水线取指部件,8.流水线内部总线I,9.流水线译码部件,10.流水线内部总线II,11.流水线执行部件,12.右移位器I,13.与门I,14.多路选择器I,15.反向器I,16.左移位器I,17.加法器I,18.或门I,19.右移位器II 20.多路选择器II,21.多路选择器III,22.反相器II,23.右移位器III,24.加法器II,25.或门II,26.左移位器II,27.多路选择器IV,28.多路选择器V,29.乘法器I,30.乘法器II,31.乘法器III,32.乘法器IV,33.加法器III,34.加法器IV,35.比较器I,36.加法器V,37.加法器VI,38.加法器VII,39.比较器II,40.比较器III,41.多路选择器VI,42.多路选择器VII,43.加法器VIII,44.乘法器V,45.乘法器VI,46.乘法器VII,47.乘法器VIII,48.加法器IX,49.加法器X,50.比较器IV,51.比较器V,52.加法器XI,53.加法器XII,54.加法器XIII,55.比较器VI,56.比较器V,57.多路选择器VIII,58.多路选择器IX。
具体实施例方式下面结合附图与实施例对本发明做进ー步说明。图2中,ー种根据扩展指令集设计的指令集处理器模型,它在硬件逻辑上实现了上述扩展指令,因此能够用于RSA加密算法的加速。处理器模型主要由寄存器堆I、总线矩阵2、代码存储器3、数据存储器4、指令流水线5、流水线控制部件6、流水线取指部件7、流水线内部总线I、流水线译码器部件9、流水线内部总线1110、流水线执行部件11组成,其中,数据存储器4地址空间定义在0X0000-0X7FFF范围内,大小32K ;
代码存储器3地址空间定义在0x8000-0xFFFF范围内,大小为32Kbytes ;寄存器堆I主要由32个通用寄存器、I个取指寄存器、I个堆栈指针寄存器和I个链接寄存器组成;指令流水线5采用三级流水线取指流水线部件7、译码流水线部件9和执行流水线部件11 ;流水线控制器6对跳转指令译码部件进行控制,跳转指令只需要将跳转地址存储在取指寄存器中,不需要经过执行部件,然后接着对整个指令流水线5的缓存进行刷新,防止指令流水线5跳转引发错误;在处理器中除了通用指令译码部件和逻辑算木指令执行部件外,还添加了针对RSA的专用指令的扩展指令执行部件,来执行这些扩展的专用指令。在RSA扩展指令执行部件中,主要包括了 5条新扩展指令的执行部件。图3中,所述扩展指令getbit执行部件包括I个右移移位器112、I个与门113和I个多路选择器114。RO是目标操作数,Rl的低5位指定要获取的位,RO和Rl的低5位作为右移位器112的输入,右移位器112的输出和Oxl作为32位与门113的输入,与门113输出指定的bit位的值。通过多路选择器114进行控制同步,当控制信号为I时,多路选择器114将目标结果送入到寄存器RO ;如果控制信号为0时,输出无效。图4中,所述扩展指令shift_l执行部件包括I个反向器115、ー个加法器117、I个或门118、1个左移位器116和I个右移为器1119以及多路选择器II20、III21。RO是所述两个移位器的输入源操作数,Rl的低5位指定移位的位数。Rl的低5位经过5位反向器115的和5位加法器117的输出和RO作为右移位器1119的输入;R0和Rl的低5位作为左移位器116的输入,左移位器116的输出结果和R2作为或门118的输入。两个多路选择器II20、III21控制指令的同步和结果的输出,当控制信号为I时,左移位器116和或门118的输出结果分别送入到R2和RO ;当控制信号为0时,输出无效。图5中,所述扩展指令shift_r执行部件包括I个反向器1122、ー个加法器1124、I个或门1125、右移位器11123、左移位器1126以及2个多路选择器IV27、V28。RO是所述两个移位器的输入源操作数,Rl的低5位指定移位的位数。Rl的低5位经过5位反向器1122的和5位加法器1124的输出和RO作为左移位器1126的输入;R0和Rl的低5位作为右移位器III23的输入,右移位器III23的输出结果和R2作为或门1125的输入。所述两个多路选择器控制指令的同步和结果的输出,当控制信号为I时,左移位器1126和或门1125的输出结果分别送入到R2和RO ;当控制信号为0时,输出无效。图6中,所述扩展指令muladd执行部件包括4个乘法器129、1130、11131、IV32、5个加法器11133、IV34、V36、VI37、VII38、3个比较器135、1139、III40以及2个多路选择器VI41、VII42。RO的低16位和Rl的低16位作为乘法器129的输入;R0的低16位和Rl的高16位作为乘法器1130的输入;R0的高16位和Rl的低16位作为乘法器III31的输入;R0的高16位和Rl的高16位作为乘法器IV32的输入;乘法器129输出的高16位和乘法器1130输出的低16位作为加法器III33的输入,其输出求和的结果和乘法器129的高16位作为比较器135的输入,同时该输出的求和结果和乘法器III31的低16位作为加法器VI37的输入;乘法器129输出的低16位和加法器VI37的输出合成一个输入和R2作为加法器VII38的输入;乘法器1130的输出的高16位、乘法器III31的输出的高16位以及乘法器IV32的输出作为加法器IV34的输入;比较器135、比较器1139、比较器III40的输出和加法器IV34的输出作为加法器V36的输入。所述两个多路选择器控制指令的同步和 结果的输出,当控制信号为I时,加法器IV34输出结果和加法器V36的输出结果分别送入到R2和RO ;当控制信号为0时,输出无效。图7中,所述扩展指令muladd2执行部件包括4个乘法器V44、VI45、VII46、VIII47、6 个加法器 VIII43、1X48、X49、XI52、XII53、XIII54、3 个比较器 IV50、V51、VI55、V56以及2个多路选择器VIII57、1X58。RO的低16位和Rl的低16位作为乘法器V44的输入;R0的低16位和Rl的高16位作为乘法器VI45的输入;R0的高16位和Rl的低16位作为乘法器VII46的输入;R0的高16位和Rl的高16位作为乘法器VIII47的输入;乘法器V44输出的高16位和乘法器VI45输出的低16位作为加法器1X48的输入,其输出求和的结果和乘法器V44的高16位作为比较器V51的输入,同时该输出的求和结果和乘法器VII46的低16位作为加法器XII53的输入;乘法器V44输出的低16位和加法器XII53的输出合成一个输入和加法器VIII43的输出送入加法器XIII54 ;乘法器VI45的输出的高16位、乘法器VII46的输出的高16位以及乘法器VIII47的输出作为加法器X49的输入;比较器IV50、比较器V51、比较器VI55的输出和加法器X49的输出作为加法器XI52的输入。所述的两个多路选择器VIII57、IX58控制指令的同步和结果的输出,当控制信号为I时,加法器XII154输出结果和加法器XI52的输出结果分别送入到R2和RO ;当控制信号为0吋,输出无效。本发明通过对RSA算法中核心运算操作进行分析,在满足不改变指令操作码长度、指令位数以及不影响处理器运行速度的前提下,对RSA加密算法中的核心运算过程进行了指令扩展优化,共设计了 5条扩展指令用于加速RSA加密算法中的核心运算过程,具体过程如下I.在执行模幂运算吋,首先要确定幂指数每ー个ニ进制bit的值,然后对接着进行相应的操作。在传统的ARM处理器中,没有专用于取ー个操作数指定bit位的值,执行语句为RO = (R0 >> Rl)&0x01 ;而对应的ARM编译器汇编语目为3条语句Sub R2, #31, Rlleftshift R0, R0, R2
rightshift R0,R0,31上述汇编语言的含义是先通过左移将RO的Rlbit位左边的bit位清除,然后通过右移31位将Rlbit右边的bit位清除,同时将其自身作为RO的最低位。根据上述汇编语言的功能,设计了一条新的指令getbit,能够在ー个时钟周期内完成3条语句所完成的功能。新指令getbit〈dest> = <srcl>, <src2>,共有3个操作数,其中dest,srcl, src2都是通用寄存器类型,分别对应着存放目标操作数,源操作数I以及源操作数2。指令getbit的具体格式如表I所示表Igetbit指令格式
权利要求
1.一种RSA加密算法指令优化处理器,主要由寄存器堆、总线矩阵、代码存储器、数据存储器、指令流水线、流水线控制部件、流水线取指部件、流水线内部总线、流水线译码器部件、流水线内部总线II、流水线执行部件组成,其中,寄存器堆主要由32个通用寄存器、I个取指寄存器、I个堆栈指针寄存器和I个链接寄存器组成;指令流水线采用三级流水线取指流水线部件、译码流水线部件和执行流水线部件;流水线控制器对跳转指令译码部件进行控制,跳转指令只需要将跳转地址存储在取指寄存器中,不需要经过执行部件,然后接着对整个流水线的缓存进行刷新,防止流水线跳转引发错误;其特征是,在处理器中除了通用指令译码部件和逻辑算术指令执行部件外,还包括了 5条新扩展指令的执行部件 指令getbit执行部件,获取srcl指定源操作数中的由src2指定的源操作数指定的bit位的值,并将该值存入dest对应的通用寄存器中; 针对大整数的左移和右移提出了优化指令shift_l执行部件和shift_r执行部件,指令shift_l执行部件将srcl左移src2位并将来自低位移位并入的srcl中,并存到到dest中,同时,将srcl左移的溢出的位保存在src3中; shift_r执行部件将srcl右移src2位并将来自低位移位并入的srcl中,并存到到dest中,同时,将srcl右移的溢出的位保存在src3中; 指令muladd执行部件将srcO与srcl相乘的积并与scr2求和,结果的高位放在src2中,低位放在dest中; 指令muladd2执行部件将srcO与srcl相乘的积并与scr2、src3求和,结果的高位放在src3中,低位放在dest中。
2.如权利要求I所述的RSA加密算法的指令优化处理器,其特征是,所述扩展指令getbit执行部件包括I个移位器、I个与门和I个多路选择器;R0是目标操作数,Rl的低5位指定要获取的位,RO和Rl的低5位作为右移位器I的输入,右移位器I的输出和Oxl作为32位与门I的输入,与门I输出指定的bit位的值;通过多路选择器I进行控制同步,当控制信号为I时,多路选择器I将目标结果送入到寄存器RO ;如果控制信号为0时,输出无效; 指令getbit形式为<dest> = <srcl>, <src2>,它共有3个操作数,其中dest, srcl,src2都是通用寄存器类型,分别对应着存放目标操作数,源操作数I以及源操作数2。
3.如权利要求I所述的RSA加密算法的指令优化处理器,其特征是,所述扩展指令shift_l执行部件包括I个反向器、一个加法器、I个或门、2个移位器以及2个多路选择器;RO是两个移位器的输入源操作数,Rl的低5位指定移位的位数;R1的低5位经过5位反向器I的和5位加法器I的输出和RO作为右移位器II的输入;R0和Rl的低5位作为左移位器I的输入,左移位器I的输出结果和R2作为或门I的输入;两个多路选择器控制指令的同步和结果的输出,当控制信号为I时,左移位器I和或门I的输出结果分别送入到R2和RO;当控制信号为0时,输出无效; 指令shift_l形式为<dest> = <srcl>, <src2>, <src3>,该指令的操作码为101001,操作数dest、srcl、src2> src3的长度各为5位,指令的末尾填充6位补齐。
4.如权利要求I所述的RSA加密算法的指令优化处理器,其特征是,所述扩展指令shift_r执行部件包括I个反向器、一个加法器、I个或门、2个移位器以及2个多路选择器;RO是两个移位器的输入源操作数,Rl的低5位指定移位的位数;R1的低5位经过5位反向器II的和5位加法器II的输出和RO作为左移位器II的输入;R0和Rl的低5位作为右移位器III的输入,右移位器III的输出结果和R2作为或门II的输入;两个多路选择器控制指令的同步和结果的输出,当控制信号为I时,左移位器II和或门II的输出结果分别送入到R2和RO ;当控制信号为0时,输出无效; 指令shift_r形式为<dest> = <srcl>, <src2>, <src3>,该指令的操作码为101010,操作数dest、srcl、src2> src3的长度各为5位,指令的末尾填充6位补齐。
5.如权利要求I所述的RSA加密算法的指令优化处理器,其特征是,所述扩展指令muladd执行部件包括4个乘法器、5个加法器、3个比较器以及2个多路选择器;R0的低16 位和Rl的低16位作为乘法器I的输入;R0的低16位和Rl的高16位作为乘法器II的输A ;R0的高16位和Rl的低16位作为乘法器III的输入;R0的高16位和Rl的高16位作为乘法器IV的输入;乘法器I输出的高16位和乘法器II输出的低16位作为加法器III的输入,其输出求和的结果和乘法器I的高16位作为比较器I的输入,同时该输出的求和结果和乘法器III的低16位作为加法器VI的输入;乘法器I输出的低16位和加法器VI的输出合成一个输入和R2作为加法器VII的输入;乘法器II的输出的高16位、乘法器III的输出的高16位以及乘法器IV的输出作为加法器IV的输入;比较器I、比较器II、比较器III的输出和加法器IV的输出作为加法器V的输入;两个多路选择器控制指令的同步和结果的输出,当控制信号为I时,加法器IV输出结果和加法器V的输出结果分别送入到R2和R0;当控制信号为0时,输出无效; 指令muladd形式为<dest>, <srcl>, <src2>, <src3>,该指令的操作码为101011,操作数dest、srcO、srcl、src2都是寄存器类型,长度各为5位,指令的末尾填充6位补齐。
6.如权利要求I所述的RSA加密算法的指令优化处理器,其特征是,所述扩展指令muladd2执行部件包括4个乘法器、6个加法器、3个比较器以及2个多路选择器;R0的低16位和Rl的低16位作为乘法器V的输入;R0的低16位和Rl的高16位作为乘法器VI的输A ;R0的高16位和Rl的低16位作为乘法器VII的输入;R0的高16位和Rl的高16位作为乘法器VIII的输入;乘法器V输出的高16位和乘法器VI输出的低16位作为加法器IX的的输入,其输出求和的结果和乘法器I的高16位作为比较器V的输入,同时该输出的求和结果和乘法器VII的低16位作为加法器XII的输入;乘法器V输出的低16位和加法器XII的输出合成一个输入和加法器VIII的输出作为加法器XIII ;乘法器VI的输出的高16位、乘法器VII的输出的高16位以及乘法器VIII的输出作为加法器X的输入;比较器IV、比较器V、比较器VI的输出和加法器X的输出作为加法器XI的输入;两个多路选择器控制指令的同步和结果的输出,当控制信号为I时,加法器XIII输出结果和加法器XI的输出结果分别送入到R2和RO ;当控制信号为0时,输出无效; 指令muladd2形式为<dest>, <srcl>, <src2>,〈src3>,该指令的操作码为101100,操作数dest、srcO、srcl、src2、src3都是寄存器类型,长度各为5位,指令的末尾填充I位补齐。
7.如权利要求I所述的RSA加密算法的指令优化处理器,其特征是,所述数据存储器地址空间定义在0X0000-0X7FFF范围内,大小32K ;代码存储器地址空间定义在0x8000-0xFFFF 范围内,大小为 32Kbytes。
全文摘要
本发明涉及一种RSA加密算法的指令优化处理器。它采用了5条专门用于加速优化RSA加密算法的扩展指令,并且设计了一款与新指令集相对应的专用指令处理器模型-RSA_ASIP。所述5条专门用于加速优化RSA加密算法的扩展指令包括getbit、shift_l、shift_r、muladd和muladd2指令,所述与新指令集相对应的专用指令处理器模型-RSA_ASIP主要由数据存储器、代码存储器、寄存器堆、流水线和总线矩阵五部分组成。本发明设计的RSA_ASIP处理器中能够在保证软件实现的灵活性和可扩展性的前提下,大幅度地优化RSA的执行,经过对RSA1024、RSA2048的实现,与在ARM处理器上的实现比较,指令周期平均减少了64%,经过指令优化的处理器模型节省了资源消耗。
文档编号G06F9/38GK102662628SQ201210079969
公开日2012年9月12日 申请日期2012年3月23日 优先权日2012年3月23日
发明者王中波, 贾智平, 鞠雷 申请人:山东大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1