一种椭圆曲线密码处理器的制作方法

文档序号:6423028阅读:116来源:国知局
专利名称:一种椭圆曲线密码处理器的制作方法
技术领域
本发明涉及信息技术安全及微处理器设计领域,特别涉及一种椭圆曲线密码处理器。
背景技术
随着信息技术的不断发展和应用,信息的安全性问题变得越来越重要。而密码学作为信息安全的核心,在其中扮演着极为重要的角色。ECC(Elliptic Curve Cryptosystem,椭圆曲线密码体制)作为一种公钥密码系统,其安全性是基于求 ECDLP(Elliptic Curve Discrete Logarithm Problem,椭圆曲线上离散对数问题)的困难性,与目前应用较广泛的RSA和DSA等系统相比,ECC具有明显的优势该算法抗攻击强度大、安全性更高、计算量小、处理速度快、密钥长度短以及所需的存储空间要比RSA或DSA小得多。ECC算法的实现主要有软件和硬件两种方式,硬件实现ECC算法具有更快的速度和更好的安全性。出于对ECC算法的复杂性的考虑,目前的硬件实现多采用增加协处理器的方法,以加速有限域中的大数操作,而ECC的整体算法则由主处理器完成。但采用这种方法,主处理器仍然可以直接操控密钥,留下了安全隐患;而且协处理器与主处理器之间的通信开销大,限制了协处理器性能的发挥;同时软硬件协同设计困难,需要较多的人工干预, 不利于二次开发。另外一种较为常见的硬件实现方法是定制数据通路和控制通路,并利用微码编程的方法实现ECC整体算法。但这种实现方式微码编程设计工作量大,正确性验证困难,而且处理器内部设计参数改变后工程变更周期长,难以快速评估设计参数改变所带来的影响。

发明内容
为了提高运算加速比、缩短工程变更周期、实现软硬件协同设计以及解决不利于二次开发的问题,本发明提供了一种椭圆曲线密码处理器,详见下文描述一种椭圆曲线密码处理器,所述椭圆曲线密码处理器采用TTA架构,所述椭圆曲线密码处理器的混合流水机制包含两个过程传输流水和功能单元流水,所述椭圆曲线密码处理器包括指令存储器、取指单元、译码单元、寄存器堆、总线互联网络、Socket和功能单元,所述取指单元将所述指令存储器中的指令取出,通过所述译码单元对所述指令进行译码,译码后通过所述总线互联网络选择相应的所述功能单元进行ECC运算,所述功能单元所需的运算数据通过所述寄存器堆或所述功能单元获得,通过所述总线互联网络和所述Socket进行互联。所述传输流水由所述椭圆曲线密码处理器的控制部分完成,分为三个阶段取指、 译码和取操作数;所述功能单元流水用于当数据传输到所述功能单元时,触发执行操作,所述功能单元流水的级数由所述功能单元的功能决定。
所述椭圆曲线密码处理器在数据传输时,将源寄存器的数据或者立即数先传到总线上,经过所述总线再传到目的寄存器;所述源寄存器的数据来自所述功能单元的Result 寄存器和通用寄存器;所述目的寄存器主要包括所述功能单元的Operand和Trigger寄存器以及通用寄存器,所述功能单元和通用寄存器堆通过所述Socket与所述总线连接,进行数据交换;所述Socket分别是Input Socket和Output Socket,所述Input Socket用于将总线上的数据送入到指定所述功能单元的Operand寄存器或者Trigger寄存器上;所述 Output Socket用于将所述功能单元中Result寄存器的数据传输到所述总线上去。所述功能单元包括跳转功能单元、算术逻辑功能单元、存储器访问功能单元、模加减运算功能单元、乘法功能单元和模乘运算功能单元。当所述功能单元为所述存储器访问功能单元时,能与数据存储器直接交互数据;所述存储器访问功能单元的内部结构有2个Operand寄存器,分别是装载存储数据的 Operand寄存器和装载访问Memory基地址的Operand寄存器,另有1个Result寄存器和1 个Trigger寄存器,所述直接寻址时直接将所述Trigger寄存器中的值作为访问Memory的地址;所述偏移寻址时,将所述Trigger寄存器与所述装载访问Memory基地址的operand 寄存器相加的值再作为访问Memory的地址;当访问所述数据存储器时,有读和写两种操作,分别为取数和存数,有4种触发方式直接寻址取数、偏移寻址取数、直接寻址存数和偏移寻址存数;取数时,所述Result寄存器装载从所述数据存储器中读出的数据;存数时,将所述装载存储数据的Operand寄存器的数据写入所述数据存储器。所述算术逻辑功能单元用来实现逻辑与或非、比较、移位逻辑功能,包括一个 Operand寄存器,一个Trigger寄存器和一个Result寄存器,其中,比较运算包括两种,一种是判断所述Trigger寄存器的值是否与Operand寄存器的值相等;另一种比较运算判断所述Trigger寄存器的值是否小于所述Operand寄存器的值;移位运算包括四种触发方式 lis、lsc、Irs和rsc,所述触发方式lis完成Trigger寄存器的数据左移,所述Operand寄存器表示移动的位数,右边移出的位数补0,所述触发方式Isc完成所述Trigger寄存器的数据左移,但右边移出的位数则由所述触发方式lis移出的位数填补,两者共同完成大数的左移操作;所述触发方式Irs完成Trigger寄存器的数据右移,所述Operand寄存器表示移动的位数,左边移出的位数补0,所述触发方式rsc完成所述Trigger寄存器的数据右移,但左边移出的位数则由所述触发方式Irs移出的位数填补,两者共同完成大数的右移操作,所述算术逻辑功能单元延时周期数为1。所述跳转功能单元用来完成条件跳转和立即跳转,所述跳转功能单元有两个Operand寄存器,jmp_0_fr0m存储跳转时的当前地址,指定跳转的起始位置;jmp_0_t0存储跳转的目的地址,指定跳转后的位置;所述跳转功能单元将PC直接连接进来,实时和所述jmp_0_fr0m进行比较,当二者匹配,将根据触发方式决定跳转情况;所述跳转功能单元支持三种触发方式,触发方式jmp_t_Cnt触发直接跳转,所述触发方式jmp_t_Cnt的值为循环的次数,如果循环次数为零,直接跳转,所述触发方式jmp_t_Cnt的值为2 ;触发方式jmp_ t_if 1和触发方式jmp_t_ifm为触发所述条件跳转,分别表示根据最低位或最高位是否为1 来执行所述条件跳转;所述跳转功能单元结合所述算术逻辑功能单元和所述模加减运算功能单元能够实现全部的跳转功能,所述跳转功能单元延时周期数为2。所述模加减运算功能单元有三个Operand寄存器,一个Trigger寄存器和三个Result寄存器,所述模加减运算功能单元延时周期数为1,其中ladsb_0_ll0和ladsb_0_ Ihi分别存储被加数或被减数的低位和高位,ladsb_o_rlo和ladsb_t则分别存储加数或减数的低位和高位,支持四种触发方式aCl、aCi、sub和sci,前两种触发方式完成不带进位和带进位的加操作,一起用于完成大数模加功能,后两种触发方式完成不带借位和带借位的减操作,共同完成大数模减功能。所述模乘运算功能单元用于完成一次内部循环,(H,L) = (H,L)+A*B+C+P*U 启动内部循环时,(H,L)初始值为0,对应于所述模乘运算功能单元的mul触发方式,完成第户O次的内循环操作;第j(j Φ 0)次的内部循环操作中(H,L)依赖于第j-1 次内部循环的结果H,所述模乘运算功能单元增加了一种触发方式mac,所述触发方式在第 j (j Φ 0)次计算(H,L)时加上第j-Ι次的结果H ;当内部循环结束后,FIOS模乘算法进行一次加操作,使用所述模乘运算功能单元进行复用,对相应的输入寄存器赋值为0,其中,内部循环开始前的初始值U是由所述乘法功能单元来完成的。本发明提供的技术方案的有益效果是本发明提供了一种椭圆曲线密码处理器,本发明将预计算、求逆、点加和倍点运算转化为基本的Montgomery模乘、模加和模减,并规整了流程,减少了中间步骤,该椭圆曲线密码处理器通过设计专门的椭圆曲线密码功能单元,使该椭圆曲线密码处理器具有高度的针对性,定制特殊的指令集,采用混合流水线,加快了模乘运算和大数运算的运算速度,提高了运算加速比,缩短了工程变更周期、实现了软硬件协同设计以及解决了不利于二次开发的问题,可实现基于椭圆曲线密码算法的高速加、解密过程。


图1为本发明提供的TTA体系结构框架示意图;图2为本发明提供的E⑶SA签名协议算法流程调度图;图3为本发明提供的椭圆曲线密码处理器的结构示意图;图4为本发明提供的椭圆曲线密码处理器的指令格式示意图;图5为本发明提供的椭圆曲线密码处理器的混合流水具体过程示意图;图6为本发明提供的存储器访问功能单元的结构示意图;图7为本发明提供的算术逻辑功能单元的结构示意图;图8为本发明提供的跳转功能单元的结构示意图;图9为本发明提供的模加减运算功能单元的结构示意图;图10为本发明提供的模乘运算功能单元的结构示意图。
具体实施例方式为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。为了提高运算加速比、缩短工程变更周期、实现软硬件协同设计以及解决不利于二次开发的问题,本发明实施例提供了一种椭圆曲线密码处理器,详见下文描述深入研究ECC算法,发现其硬件实现的瓶颈在于复杂的模乘运算和大数运算。在传统微处理器架构上进行椭圆曲线密码处理时,寄存器文件难以有效支持大数运算,而且在需要定制特殊单元进行加速模乘时,指令集扩展相对困难。而TTA(Transport Triggered Architecture,传输触发体系结构)是一种新型体系结构,可以针对特定应用进行定制,其功能单元、寄存器文件堆、总线以及总线互连的数量都是可变的,这使得体系结构的设计比较灵活。TTA可以看成是传统VLIW体系结构的一个超集,并且只有一类指令格式即MOVE指令,扩展功能单元时无需改变指令集格式,这些特性使得TTA体系架构比较适合ECC算法。TTA架构是由Henk Corporaal等人提出的,它与传统的操作触发处理器体系结构最大的不同在于操作数被执行的方式。在传输触发体系结构中,操作是由数据传输动作引发的,即操作的执行开始于数据写入触发寄存器的时刻。这意味着该体系结构的编程只需具备一条数据移动指令,即MOVE指令。所有的操作,包括load或store、分支和跳转等,都通过传输MOVE指令来完成。例如1个加法操作可变换成3个MOVE操作。
权利要求
1.一种椭圆曲线密码处理器,其特征在于,所述椭圆曲线密码处理器采用TTA架构, 所述椭圆曲线密码处理器的混合流水机制包含两个过程传输流水和功能单元流水,所述椭圆曲线密码处理器包括指令存储器、取指单元、译码单元、寄存器堆、总线互联网络、 Socket和功能单元,所述取指单元将所述指令存储器中的指令取出,通过所述译码单元对所述指令进行译码,译码后通过所述总线互联网络选择相应的所述功能单元进行ECC运算,所述功能单元所需的运算数据通过所述寄存器堆或所述功能单元获得,通过所述总线互联网络和所述 Socket进行互联。
2.根据权利要求1所述的一种椭圆曲线密码处理器,其特征在于,所述传输流水由所述椭圆曲线密码处理器的控制部分完成,分为三个阶段取指、译码和取操作数;所述功能单元流水用于当数据传输到所述功能单元时,触发执行操作,所述功能单元流水的级数由所述功能单元的功能决定。
3.根据权利要求1所述的一种椭圆曲线密码处理器,其特征在于,所述椭圆曲线密码处理器在数据传输时,将源寄存器的数据或者立即数先传到总线上,经过所述总线再传到目的寄存器;所述源寄存器的数据来自所述功能单元的Result寄存器和通用寄存器;所述目的寄存器主要包括所述功能单元的Operand和Trigger寄存器以及通用寄存器,所述功能单元和通用寄存器堆通过所述Socket与所述总线连接,进行数据交换;所述Socket分别是Input Socket和Output Socket,所述Input Socket用于将总线上的数据送入到指定所述功能单元的Operand寄存器或者Trigger寄存器上;所述Output Socket用于将所述功能单元中Result寄存器的数据传输到所述总线上去。
4.根据权利要求1所述的一种椭圆曲线密码处理器,其特征在于,所述功能单元包括 跳转功能单元、算术逻辑功能单元、存储器访问功能单元、模加减运算功能单元、乘法功能单元和模乘运算功能单元。
5.根据权利要求4所述的一种椭圆曲线密码处理器,其特征在于,当所述功能单元为所述存储器访问功能单元时,与数据存储器直接交互数据;所述存储器访问功能单元的内部结构有2个Operand寄存器,分别是装载存储数据的Operand寄存器和装载访问Memory 基地址的Operand寄存器,另有1个Result寄存器和1个Trigger寄存器,所述直接寻址时直接将所述Trigger寄存器中的值作为访问Memory的地址;所述偏移寻址时,将所述Trigger寄存器与所述装载访问Memory基地址的Operand寄存器相加的值再作为访问Memory的地址;当访问所述数据存储器时,有读和写两种操作,分别为取数和存数,有 4种触发方式直接寻址取数、偏移寻址取数、直接寻址存数和偏移寻址存数;取数时,所述Result寄存器装载从所述数据存储器中读出的数据;存数时,将所述装载存储数据的 Operand寄存器的数据写入所述数据存储器。
6.根据权利要求4所述的一种椭圆曲线密码处理器,其特征在于,所述算术逻辑功能单元用来实现逻辑与或非、比较、移位逻辑功能,包括一个Operand寄存器,一个Trigger寄存器和一个Result寄存器,其中,比较运算包括两种,一种是判断所述Trigger寄存器的值是否与Operand寄存器的值相等;另一种比较运算判断所述Trigger寄存器的值是否小于所述Operand寄存器的值;移位运算包括四种触发方式lis、lsc、Irs和rsc,所述触发方式 lis完成Trigger寄存器的数据左移,所述Operand寄存器表示移动的位数,右边移出的位数补0,所述触发方式Isc完成所述Trigger寄存器的数据左移,但右边移出的位数则由所述触发方式lis移出的位数填补,两者共同完成大数的左移操作;所述触发方式Irs完成 Trigger寄存器的数据右移,所述Operand寄存器表示移动的位数,左边移出的位数补0,所述触发方式rsc完成所述Trigger寄存器的数据右移,但左边移出的位数则由所述触发方式Irs移出的位数填补,两者共同完成大数的右移操作,所述算术逻辑功能单元延时周期数为1。
7.根据权利要求4所述的一种椭圆曲线密码处理器,其特征在于,所述跳转功能单元用来完成条件跳转和立即跳转,所述跳转功能单元有两个Operand寄存器,jmp_o_from存储跳转时的当前地址,指定跳转的起始位置;jmp_0_t0存储跳转的目的地址,指定跳转后的位置;所述跳转功能单元将PC直接连接进来,实时和所述jmp_0_fr0m进行比较,当二者匹配,将根据触发方式决定跳转情况;所述跳转功能单元支持三种触发方式,触发方式 jmp_t_cnt触发直接跳转,所述触发方式jmp_t_Cnt的值为循环的次数,如果循环次数为零,直接跳转,所述触发方式jmp_t_Cnt的值为2 ;触发方式jmp_t_ifl和触发方式jmp_t_ ifm为触发所述条件跳转,分别表示根据最低位或最高位是否为1来执行所述条件跳转;所述跳转功能单元结合所述算术逻辑功能单元和所述模加减运算功能单元能够实现全部的跳转功能,所述跳转功能单元延时周期数为2。
8.根据权利要求4所述的一种椭圆曲线密码处理器,其特征在于,所述模加减运算功能单元有三个Operand寄存器,一个Trigger寄存器和三个Result寄存器,所述模加减运算功能单元延时周期数为1,其中ladSb_o_llo和ladsb_0_lhi分别存储被加数或被减数的低位和高位,ladsb_o_rlo和ladsb_t则分别存储加数或减数的低位和高位,支持四种触发方式aCl、aCi、SUb和sci,前两种触发方式完成不带进位和带进位的加操作,一起用于完成大数模加功能;后两种触发方式完成不带借位和带借位的减操作,共同完成大数模减功能。
9.根据权利要求4所述的一种椭圆曲线密码处理器,其特征在于,所述模乘运算功能单元用于完成一次内部循环,(H, L) = (H, L) +A*B+C+P*U启动内部循环时,(H,L)初始值为0,对应于所述模乘运算功能单元的mul触发方式,完成第j = 0次的内循环操作;第j(j兴0)次的内部循环操作中(H,L)依赖于第j_l次内部循环的结果H,所述模乘运算功能单元增加了一种触发方式mac,所述触发方式在第j(j Φ 0) 次计算(H,L)时加上第j-Ι次的结果H ;当内部循环结束后,FIOS模乘算法进行一次加操作,使用所述模乘运算功能单元进行复用,对相应的输入寄存器赋值为0,其中,内部循环开始前的初始值U是由所述乘法功能单元来完成的。
全文摘要
本发明公开了一种椭圆曲线密码处理器,涉及信息技术安全及微处理器设计领域,采用TTA架构,椭圆曲线密码处理器的混合流水机制包含两个过程传输流水和功能单元流水,椭圆曲线密码处理器包括指令存储器、取指单元、译码单元、寄存器堆、总线互联网络、Socket和功能单元,取指单元将指令存储器中的指令取出,通过译码单元对所述指令进行译码,译码后通过总线互联网络选择相应的功能单元进行ECC运算,功能单元所需的运算数据通过寄存器堆或功能单元获得,通过总线互联网络和Socket进行互联。提高了运算加速比、缩短了工程变更周期、实现了软硬件协同设计以及解决了不利于二次开发的问题。
文档编号G06F21/00GK102156836SQ20111010425
公开日2011年8月17日 申请日期2011年4月25日 优先权日2011年4月25日
发明者刘艳华, 史再峰, 周发旺, 郭炜, 魏继增 申请人:天津大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1