法律状态公告日
法律状态信息
法律状态
2011-01-05
未缴年费专利权终止 IPC(主分类):H04L9/30 授权公告日:20090722 终止日期:20091112 申请日:20051012
专利权的终止
2009-07-22
授权
授权
2006-05-17
实质审查的生效
实质审查的生效
2006-03-22
公开
公开
技术领域
本发明涉及一种用于公钥密码运算加速的方法及其体系结构,尤其适用于实现ECC的点乘运算和RSA的模幂运算加速。
背景技术
当前,随着我国国民经济和社会信息化建设进程,如金融信息化、电子商务、电子政务的快速发展,急需解决经济、文化等重要领域信息系统的信息安全问题,提高安全保护水平,增强信息安全积极防御与反应能力。而信息安全中最核心的技术是密码技术,其中的公钥密码体制更是自其面世一始,就在信息安全领域发挥了极大的作用,应用前景良好。
公钥密码运算的实现,很大一部分都是基于CPU用软件来完成的。但是在现实的应用当中,很多加密应用是脱离于计算机而存在的,它应用于各种嵌入式系统当中。如果让嵌入式处理器完成所有的加密运算,同时还要完成其它的应用,其实时性就可能受到影响。而在另外一个方面,用硬件来实现加密算法,在安全性方面也比用软件来实现要好得多。对运行在没有物理保护的一般计算机上的某个加密算法,可以用各种跟踪工具秘密修改算法而使任何人都不知道。而硬件加密可以安全的封装起来,如防篡改盒能防止别人修改硬件加密设备,对于VLSI芯片,可以覆盖一层化学物质,使得任何企图对它们内部进行访问都将导致芯片逻辑的破坏。鉴于上述应用场合,实时性及安全性的考虑,公钥密码体制的实现,必然还需要用硬件来直接完成。
目前,集成电路设计中的用于实现计算加速的方法为:运行指令由编译器产生,处理器采用五级流水线,包括取指令周期(IF),指令译码/读寄存器周期(ID),执行/有效地址周期(EX),访问存储器(MEM)和写回周期(WB)。这种方法往往着眼于处理器运算单元改进,或调度策略上作一些改善。在一定程度上可以改进运算的效率。但是使用编译器产生指令,会导致整个系统的运算性能在很大程度上决定于编译技术;还会影响代码的质量,从而导致计算效率降低。
发明内容
本发明的目的在于针对现有技术的不足,提供一种集成电路中实现公钥密码运算加速的方法及其体系结构。
本发明的用于公钥密码运算加速的方法:其包括以下步骤:
1)利用SoC总线对寄存器模块进行参数配置,用以完成公钥密码算法的定义;
2)序列指令发生器模块根据寄存器模块的配置情况,产生实现点乘或模幂运算的指令,并发送到运算处理器;
3)运算处理器从静态存储器单元存取数据,并采用指令译码/存储器读取、指令执行I、指令执行II和存储器存储四级流水线,完成指令的执行;
4)运算处理器在运算结束时发送运算完成标志位给寄存器模块;
上述的序列指令发生器模块可以采用分层的有限状态机来实现。
所说的指令译码由译码电路完成,且在同一周期内对片上存储器读取数据;指令执行I主要执行双域乘加运算,指令执行II主要执行移位运算和双域加法运算。
用于实现上述公钥密码运算加速方法的体系结构包括:包括由寄存器组组成的寄存器模块,用于产生实现点乘或模幂运算指令的序列指令发生器模块,由双域乘加器、移位器、双域加法器组成的运算处理器模块,实现两读一写的静态存储器模块和SoC总线,寄存器模块和静态存储器模块分别与连接外部主控器的SoC总线相连,寄存器模块与序列指令发生器模块相连,序列指令发生器模块以及静态存储器模块分别与运算处理器模块相连。
本发明工作原理:
外部主控器通过SoC总线对寄存器模块进行参数配置,用以完成公钥密码算法的定义;通过对寄存器模块运算完成标志位的查询,主控器可在运算完成后读取运算结果。
序列指令发生器模块采用分层的有限状态机来实现,它根据寄存器模块的配置情况,产生实现点乘或模幂运算的指令,并在运算结束时发送运算完成标志位给寄存器模块;主控器查询此标志位后,可读取运算结果。
运算处理器接收序列指令发生模块所送出的指令,通过指令译码/存储器读取、指令执行I、指令执行II和存储器存储四级流水线,完成指令的执行,并从静态存储器模块存取数据;若发生数据相关性,则反馈信号给序列指令发生模块,令其在必要的时候停止发送指令。
静态存储器模块则依据运算处理器的要求,完成数据存取。在一个时钟周期内,需要实现读取两个数据,存储一个数据的要求。
本发明具有以下技术效果:
1)序列指令产生器模块的引入,使得指令的产生不需要依赖编译技术,不但在应用上简单,且可以将算法实现最优化。
2)指令序列完全按顺序执行,故运算处理器只需要采用有针对性的四级流水线,不但使处理器的设计变得简单,还提高了运算效率。
附图说明
图1是用于公钥密码运算加速的体系结构框图。
具体实施方式
以下结合附图进一步说明本发明。
参照图1,用于公钥密码运算加速的体系结构包括:由寄存器组组成的寄存器模块1,用于产生实现点乘或模幂运算指令的序列指令发生器模块2,由双域乘加器、移位器、双域加法器组成的运算处理器模块3,实现两读一写的静态存储器模块4和SoC总线5,寄存器模块1和静态存储器模块4分别与连接外部主控器的SoC总线5相连,寄存器模块1与序列指令发生器模块2相连,序列指令发生器模块2以及静态存储器模块4分别与运算处理器模块3相连。
以椭圆曲线密码(ECC)点乘运算及RSA模幂运算为例,说明本发明实现公钥密码运算加速。
ECC密码和RSA的密码,不论其是在加、解密领域,还是在数字签名等领域,其核心运算分别是点乘运算和模幂运算。本发明的主要作用就是实现ECC的点乘运算和RSA的模幂运算。公钥密码的最终完成,则还有赖于主控器的控制。也就是说,该体系结构从属于主控器工作。它所起到的是对ECC和RSA的核心运算进行加速的作用。
公钥密码运算加速系统的初始化:外部主控器通过SoC总线5向静态存储器模块4写入明文等原始数据;当数据的输入完成后,再向寄存器模块1写入配置参数。
公钥密码运算加速系统的运行:当初始化完成之后,系统开始工作。序列指令发生器模块2产生完成ECC点乘或RSA模幂运算的指令,并将其发送到运算处理器模块3。运算处理器模块对其进行译码,并从静态存储器模块读取需要的数据,进行计算,计算完成后将数据存回静态存储器模块。若其中发生数据相关性问题,则视情况反馈信息给序列指令发生器模块2,令其暂时中断指令产生。当整个运算完成后,发送运算完成标志位给寄存器模块1。
公钥密码运算加速系统的数据读取:运算完成后,主控器通过对寄存器模块1相关标志位的查询,或者由本发明中的寄存器模块直接给出一个中断信号给主控器,使主控器得知运算完成的信息。主控器可通过SoC总线5从静态存储器读取运算结果。
机译: 紧凑逻辑设备的增强,还可以加速和计算模数运算,尤其是用于椭圆曲线和RSA类型计算的公钥密码协同处理器中
机译: 一种用于智能卡的公钥密码运算的实现方法,涉及计算两组点的坐标,以使点集对于共同的坐标共享相同的值进行处理迭代
机译: 用于密码学,尤其是RSA公钥密码学的模块化算术方法,其中使用一种算法和运算符而不是调用它们的操作数的同余性