本发明专利技术公开了一种椭圆曲线密码处理器,涉及信息技术安全及微处理器设计领域,采用TTA架构,椭圆曲线密码处理器的混合流水机制包含两个过程:传输流水和功能单元流水,椭圆曲线密码处理器包括:指令存储器、取指单元、译码单元、寄存器堆、总线互联网络、Socket和功能单元,取指单元将指令存储器中的指令取出,通过译码单元对所述指令进行译码,译码后通过总线互联网络选择相应的功能单元进行ECC运算,功能单元所需的运算数据通过寄存器堆或功能单元获得,通过总线互联网络和Socket进行互联。提高了运算加速比、缩短了工程变更周期、实现了软硬件协同设计以及解决了不利于二次开发的问题。
【技术实现步骤摘要】
本专利技术涉及信息技术安全及微处理器设计领域,特别涉及一种椭圆曲线密码处理器。
技术介绍
随着信息技术的不断发展和应用,信息的安全性问题变得越来越重要。而密码学作为信息安全的核心,在其中扮演着极为重要的角色。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(本文档来自技高网...
【技术保护点】
1.一种椭圆曲线密码处理器,其特征在于,所述椭圆曲线密码处理器采用TTA架构,所述椭圆曲线密码处理器的混合流水机制包含两个过程:传输流水和功能单元流水,所述椭圆曲线密码处理器包括:指令存储器、取指单元、译码单元、寄存器堆、总线互联网络、Socket和功能单元,所述取指单元将所述指令存储器中的指令取出,通过所述译码单元对所述指令进行译码,译码后通过所述总线互联网络选择相应的所述功能单元进行ECC运算,所述功能单元所需的运算数据通过所述寄存器堆或所述功能单元获得,通过所述总线互联网络和所述Socket进行互联。
【技术特征摘要】
【专利技术属性】
技术研发人员:郭炜,刘艳华,史再峰,周发旺,魏继增,
申请(专利权)人:天津大学,
类型:发明
国别省市:12
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。