CN102043916B - 一种高性能可扩展公钥密码协处理器结构 - Google Patents
一种高性能可扩展公钥密码协处理器结构 Download PDFInfo
- Publication number
- CN102043916B CN102043916B CN201010567822A CN201010567822A CN102043916B CN 102043916 B CN102043916 B CN 102043916B CN 201010567822 A CN201010567822 A CN 201010567822A CN 201010567822 A CN201010567822 A CN 201010567822A CN 102043916 B CN102043916 B CN 102043916B
- Authority
- CN
- China
- Prior art keywords
- instruction
- public key
- key cryptography
- performance
- expanded
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Advance Control (AREA)
Abstract
本发明涉及一种高性能可扩展公钥密码协处理器结构,包含一个基本指令集,结构连接为存储器映射接口电路分别与外部控制部件或系统、输入缓冲器电路及输出缓冲器电路相连,输入缓冲器电路分别与数据控制器电路、配置寄存器、指令队列相连,数据控制器电路与存储器控制器相连,配置寄存器分别与指令执行控制器和模算术运算单元阵列相连,基于有线状态机的指令译码单元分别与指令队列、指令执行控制器相连,指令执行控制器与模算术运算单元阵列相连,模算术运算单元阵列与存储器控制器相连,存储器控制器分别与寄存器文件等类型的内部存储单元和输出缓冲器电路相连。本发明根据具体需要进行配置,以较低功耗和较高性价比实现满足特定应用的需要。
Description
技术领域
本发明涉及信息安全、密码算法芯片、集成电路设计与实现和系统结构领域,具体涉及一种加速各种公钥密码算法求解的、可以灵活扩展的高性能公钥密码协处理器结构。
背景技术
随着集成电路技术、计算机网络技术、计算机技术等的飞速发展,目前以Internet为中心的各种网络应用得到极大发展,典型的应用如电子商务、电子政务、电子护照、网上银行、金融电子化、无线局域网络开发、软件产权保护、远程管理、电子护照、股票交易等等。但另一方面,网络数据传输和终端已经越来越受到各种恶意的攻击,导致网络数据的机密性、完整性、可用性、可控性受到巨大的威胁,网络黑客以及各种病毒经常盗取用户数据,对数据进行篡改破坏,以及假冒合法用户获得对系统及服务访问的权限,从而给社会带来不可估量的经济损失,严重影响经济活动中的各种交易的正常进行,对国家信息安全也产生很大危险。人们迫切需要采取各种措施保护网络数据的安全以及进行身份认证和授权、对交易双方交易的不可抵赖性进行证实等。在技术层面,目前已经形成以现代密码学为核心的各种安全基础设施和解决方案,如公钥基础设施PKI(Public KeyInfrastructure)、可信计算平台TCPA(Trusted Computing Platform Alliance)、中国自主无线局域网安全解决方案WAPI(WLAN Authentication and PrivacyInfrastructure)、安全电子交易SET(Secure Electronic Transaction)等。
在这些安全基础设施和解决方案中,目前广泛应用的密码协议和密码技术的核心算法主要包括三类:对称加密/解密算法、单向散列函数和公开密钥算法。在加密数据包传输过程中,由对称加密/解密算法对传输数据包进行加密和解密,加密和解密使用相同的密钥,在每次加密/解密之前需要协商和交换密钥,而密钥协商和密钥交换由公开密钥算法来完成。在签名过程中,单向散列函数用于生成待签名的明文,公开密钥算法则要用于签名认证。
由此看来,在密码协议和安全系统中,公开密钥算法是其中极其重要的组成部分和核心基础。目前国际上各种标准化组织已经制定一系列标准文件来规范公钥密码体制的使用,如IEEE 1363、FIPS 186-3、ANSI X 9.62和SECG-1。与此同时,中国无线局域网标准制定了基于ECC的无线局域网安全标准WAPI。
在目前广泛使用的公开密钥算法中,RSA算法和椭圆曲线密码算法ECC是国际上公认的安全性极高的公钥密码算法,并且使用范围非常广泛。ECC算法的出现虽然较RSA晚,但是由于ECC算法能够使用很短的密钥长度就能达到极高的安全强度,例如密钥长度为160bit的ECC算法能达到相当于1024bit的RSA算法的安全性,因此ECC算法尤其适合在带宽和存储空间受限的场合使用,如各种嵌入式系统以及无线局域网设备等。由此ECC算法也越来越多的受到重视和广泛使用,可以预见未来在很多安全系统中ECC算法有取代RSA算法应用的趋势。
无论是RSA算法还是ECC算法,其安全性的基础是离散对数计算的难解性。RSA和ECC算法求解本身属于计算密集型(Computation Intensive)计算问题,涉及到大量复杂的有限域模乘、模加减、求逆等核心运算。在通用处理器上用软件实现RSA和ECC算法求解不仅不能满足大多数应用的实时性需求,而且私钥也极易受到各种攻击,保密性很差。因此,目前RSA和ECC算法求解大都基于专用硬件协处理器的方式实现,从而有效加速RSA和ECC公钥密码算法的求解过程,满足安全系统应用的实时性需求,同时也可以达到防范各种安全攻击的目的。
一般来说,无论是RSA公钥密码算法还是ECC公钥密码算法,在诸如此类基于离散对数计算难解性的公钥密码算法中进行数字签名和身份认证过程的核心运算(常常也是需要耗费大量计算时间的运算)主要是大数模幂运算和椭圆曲线上点的标量乘法运算。而大数模幂运算可以根据一定的算法拆分成一系列的模乘运算;椭圆曲线标量乘法运算可以拆分成一系列的点加和倍加运算。
为此,完全可以依据公钥密码算法的特点,针对其耗时、常用的核心运算,设计实现相应的高性能公钥密码算法协处理器。高性能公钥密码算法协处理器对这些核心运算高效实现,从而可以显著减少这类基于离散对数计算难解性的公钥密码算法的求解时间,有效提高基于这类公钥密码算法的相关安全基础设施和解决方案的整体性能。
同时,高性能公钥密码协处理器也可以极大满足各行业安全信息系统设计实现和信息安全基础设施建设的实际需求,为最大限度减少商业领域的各种安全威胁提供强有力支撑。本发明的高性能可扩展公钥密码协处理器结构具有重要的理论意义,以及很大的市场前景和实用价值。
发明内容
本发明的目的是提供一种高性能可扩展的公钥密码协处理器结构,实现GF(p)和GF(2m)域操作数长度可扩展的模乘、模加、模幂和模逆运算操作,并且支持GF(p)和GF(2m)域密钥长度可扩展的椭圆曲线运算操作,包括椭圆曲线上点的加法、倍加、减法和标量乘法运算操作,用以解决目前各种公钥密码协处理器当前普遍存在的可扩展性较差和性能较低的问题,从而可以有效加速诸如RSA、ECC、ElGamal、Diffie-Hellman和DSA等公钥密码算法的求解。同时,该高性能可扩展公钥密码协处理器结构的可扩展性还体现在基于该结构设计实现高性能公钥密码协处理器时,可以根据具体应用对性能和实现成本的需要进行配置,以较低的功耗和较高的性价比实现满足特定应用需要的专用公钥密码协处理器。
一种高性能可扩展公钥密码协处理器结构,包含一个基本指令集、存储器映射接口电路、输入缓冲器电路、数据控制器电路、配置寄存器、基于有线状态机的指令译码单元、指令队列、指令执行控制器、模算术运算单元阵列、存储器控制器、寄存器文件等类型的内部存储单元和输出缓冲器电路,其特征在于:所述的基本指令集定义了公钥密码算法的核心运算和操作相应的指令;存储器映射接口电路分别与外部控制部件或系统、输入缓冲器电路及输出缓冲器电路相连,输入缓冲器电路分别与数据控制器电路、配置寄存器、指令队列相连,数据控制器电路与存储器控制器相连,配置寄存器分别与指令执行控制器和模算术运算单元阵列相连,基于有线状态机的指令译码单元分别与指令队列、指令执行控制器相连,指令执行控制器与模算术运算单元阵列相连,模算术运算单元阵列与存储器控制器相连,存储器控制器分别与寄存器文件等类型的内部存储单元和输出缓冲器电路相连。而且在本发明高性能可扩展公钥密码协处理器结构中寄存器文件等类型的内部存储单元、基本指令集中的指令、配置寄存器是统一编址的。
针对公钥密码算法中所涉及的模乘、模加、模幂和模逆,以及椭圆曲线上点的加法、倍加、减法和标量乘法等核心运算和操作,本发明的高性能可扩展公钥密码协处理器结构包含一个基本的指令集,该基本指令集定义了目前绝大多数的主要公钥密码算法的核心运算和操作相应的指令。
所述的存储器映射接口电路为该高性能可扩展公钥密码协处理器结构对外接口电路,通过存储器接口的读写模式将高性能可扩展公钥密码协处理器外的数据、指令和地址进行正确接收并发送给其内部的输入缓冲器电路,并将输出缓冲器电路传输的数据发送给高性能可扩展公钥密码协处理器外部的控制部件或系统(如微处理器或微控制器等)。由于该高性能可扩展公钥密码协处理器结构内部和外部工作频率可能不一致,存储器映射接口电路还具有对不同时钟域的数据进行同步处理的功能,避免电路进入亚稳态,或发生数据发送和接收的错误。
所述的输入缓冲器电路与存储器映射接口电路、数据控制器电路、配置寄存器和指令队列相连接,负责对接收来自存储器映射接口电路的指令进行第一级指令译码,通过对输入地址的比较以判断接收到的是指令是一般数据或是需要写入的配置寄存器数据。数据控制器电路与存储器控制器相连接,产生读写控制逻辑,对寄存器文件等类型的内部存储单元进行读写操作。
所述的配置寄存器存储对高性能可扩展公钥密码协处理器进行各种配置的系统参数,包括计算阵列参数、接口配置参数等,它与指令执行控制器、模算术运算单元阵列相连接,为指令执行控制器、模算术运算单元阵列提供所需的计算阵列参数、接口配置参数,配置寄存器与寄存器文件等类型的内部存储单元统一编址。
所述的基于有线状态机的指令译码单元与指令执行控制器相连接,对第一级译码后的指令进行第二级译码,基于有限状态机模型对多周期串行执行指令进行译码,并对指令执行进行有效控制。
所述的指令队列为流水指令寄存器结构,存储多条流水执行指令,一旦基于有线状态机的指令译码单元空闲时就从指令队列中取指令,并将指令寄存器清空,以接收新的后续指令。
所述的指令执行控制器与模算术运算单元阵列相连接,它作为高性能可扩展公钥密码协处理器各类指令的执行控制器,为指令执行分配相应的模运算单元,并对多个模运算单元进行有效的调度,使指令执行时间最短。
所述的模算术运算单元阵列包括a个双域可扩展Montgomery模乘单元SMM和b个双域可扩展模加减单元SMA,a、b分别为不等于零的自然数,它们与存储器控制器相连接,是该高性能可扩展公钥密码协处理器结构中完成相关计算操作的功能部件,SMM和SMA的计算字长w可以根据应用需要进行配置:w典型值为8~128,w越大,电路的面积越大,完成计算所需要的周期数越小,因此可以根据实际电路要求的面积和速度选择合适的w值,并且SMM为多运算单元流水结构;其中运算单元个数e的典型值为2~20,SMM中运算单元的个数e直接决定SMM单元的面积和完成模乘运算所需要的时间,e越大,SMM面积越大、模乘运算的时间越小,且消耗的功耗越大,可以根据应用的不同性能需求、功耗要求以及实现成本需求等进行配置。
所述的存储器控制器直接和寄存器文件等类型的内部存储单元相连接,对来自数据控制器电路和模算术运算单元阵列的访问存储器的请求进行仲裁,以最大效率完成各种类型的存储器访问操作。
所述的寄存器文件等类型的内部存储单元为该高性能可扩展公钥密码协处理器结构内部的高速多端口存储部件,具有最大8读4写共12个存储器访问端口。
所述的输出缓冲器电路与存储器控制器相连接,将从寄存器文件等类型的内部存储单元中读出的数据以稳定有效的方式送到存储器映射接口电路的对外数据总线上。
依据本发明方案设计的高性能可扩展公钥密码协处理器具有以下优点:
该高性能可扩展公钥密码协处理器结构对外接口为存储器映射接口,能够使用目前主流的内部总线、存储总线和外设总线接口(包括但不限定于AMBA、SRAM、PCI、SPI等),能够很容易与目前主流的外设接口以及存储器接口相连,可以很方便的集成到各种应用系统中,另外也可以将该高性能可扩展公钥密码协处理器作为集成电路知识产权IP核,使用诸如(但不限定)AMBA系列等内部总线接口将该高性能可扩展公钥密码协处理器IP核集成到更加复杂的安全类型的芯片中。
该高性能可扩展公钥密码协处理器结构支持的指令集是可扩展的,其基本指令集涵盖了目前绝大多数的主要公钥密码算法(包括RSA、ECC、ElGamal、Diffie-Hellman和DSA等)的核心运算和操作。同时,根据实际需要,在基本指令集的基础上可以对基于该结构的高性能公钥密码协处理器的指令集作进一步增加或删减。
该高性能可扩展公钥密码协处理器结构包括a个(a为不等于零的自然数)双域可扩展Montgomery模乘单元SMM和b个(b为不等于零的自然数)双域可扩展模加减单元SMA,a和b的个数可以根据设计实现的高性能公钥密码协处理器实际需要配置和扩展。同时,SMM和SMA单元的结构和操作数长度也可配置扩展,可以让设计者根据实际应用的需要,基于该结构的可扩展特性,在性能、功耗、成本方面做出合理的权衡折中,在最短的时间内设计出满足应用需求的高性能公钥密码协处理器芯片等类型的安全芯片产品。
针对具体的公钥密码算法,该高性能可扩展公钥密码协处理器结构还可以对具体算法本身的实现优化提供有效支持。例如,对模幂运算,该高性能可扩展公钥密码协处理器结构的硬件直接支持中国剩余定理CRT和并行二进制算法;对ECC点加、点倍加和标量乘法运算,可以通过硬件或软硬件协同的方法调用a个双域可扩展Montgomery模乘单元SMM和b个双域可扩展模加减单元SMA,将更多的运算并行化处理,充分开发算法实现内在的并行性,进一步提升算法实现的性能。
附图说明
图1是基于本发明的高性能可扩展公钥密码协处理器与其外部的控制部件或者系统所构成的基于公钥密码的安全系统的结构示意图。
图2是本发明的高性能可扩展公钥密码协处理器结构示意图。
具体实施方式
下面根据图1、图2给出本发明的一个较佳实施例,以便说明本发明的体系结构特征和功能特点,但是这并不限定本发明的权利范围。
参阅图1所示的实施例,本发明应用于由外部的控制部件或者系统1(如微处理器或者微控制器等)和基于本发明的高性能可扩展公钥密码协处理器2构成的基于公钥密码的安全系统中。
外部控制部件或系统1对高性能可扩展公钥密码协处理器2的控制机构主要由两部分组成:公钥密码协议控制构件101和指令/数据读写控制驱动构件102。公钥密码安全协议中需要利用高性能可扩展公钥密码协处理器加速的运算和操作用基于该协处理器指令集的指令序列实现,并将这些指令序列通过代码转换形成该协处理器硬件可以识别执行的微指令代码序列和相关操作数序列。
公钥密码协议控制构件101实现基于公钥密码算法的安全协议,完成安全协议中相关的任务和操作调度,将需要由高性能可扩展公钥密码协处理器完成的微代码指令序列和相关的操作数序列发送给指令/数据读写控制驱动构件102。
指令/数据读写控制驱动构件102将从公钥密码协议控制构件101接收到的微代码指令序列和相关数据序列按照该高性能可扩展公钥密码协处理器的存储器映射接口电路时序要求微代码指令序列和相关数据序列发送给该高性能可扩展公钥密码协处理器。高性能可扩展公钥密码协处理器按照收到的微代码指令序列和相关数据序列完成指定的操作和计算,并将计算结果通过指令/数据读写控制驱动构件102返送给公钥密码协议控制构件101。
本发明中存储器映射接口电路所支持的指令/数据读写控制驱动构件102接口数据宽度可以配置为任意长度大小,具有可扩展的特点。
本发明的高性能可扩展公钥密码协处理器结构示意图如图2所示。本发明的高性能可扩展公钥密码协处理器2包括基本指令集、存储器映射接口电路201、输入缓冲器电路202、数据控制器电路203、配置寄存器204、基于有线状态机的指令译码单元205、指令队列206、指令执行控制器207、模算术运算单元阵列208、存储器控制器209、寄存器文件等类型的内部存储单元210和输出缓冲器电路211共11部分,所述的基本指令集定义了公钥密码算法的核心运算和操作相应的指令;存储器映射接口电路201分别与外部控制部件或系统1、输入缓冲器电路202及输出缓冲器电路211相连,输入缓冲器电路202分别与数据控制器电路203、配置寄存器204、指令队列相连206相连,数据控制器电路203与存储器控制器209相连,配置寄存器204分别与指令执行控制器207和模算术运算单元阵列208相连,基于有线状态机的指令译码单元205分别与指令队列206、指令执行控制器207相连,指令执行控制器207与模算术运算单元阵列208相连,模算术运算单元阵列208与存储器控制器209相连,存储器控制器209分别与寄存器文件等类型的内部存储单元210和输出缓冲器电路211相连。
该结构的存储器映射接口电路201为该高性能可扩展公钥密码协处理器对外接口电路,通过对该存储器映射接口的读写正确接收外部控制部件或系统发送给高性能可扩展公钥密码协处理器的数据、指令和地址,并发送给输入缓冲器电路202;或将输出缓冲器电路211中存储的高性能可扩展公钥密码协处理器的计算结果和内部工作状态等数据发送给高性能可扩展公钥密码协处理器外部的控制部件或系统。由于高性能可扩展公钥密码协处理器内部和外部工作频率可能不同,存储器映射接口电路201还负责对不同时钟域的数据进行同步处理,避免电路进入亚稳态,或发生数据发送和接收的错误。
该结构的输入缓冲器电路202与存储器映射接口电路201、数据控制器电路203、配置寄存器204和指令队列206相连接,负责对接收来自存储器映射接口电路201的指令进行第一级指令译码,以判断接收到的是指令、还是一般数据,抑或是配置寄存器数据。
该结构的数据控制器电路203与存储器控制器209相连接,产生读写控制逻辑,对寄存器文件等类型的内部存储单元进行读写操作。
该结构的配置寄存器204存储对高性能可扩展公钥密码协处理器进行各种配置的系统参数,包括计算阵列参数、接口配置参数等,并与指令执行控制器207、模算术运算单元阵列208相连接,为指令执行控制器207、模算术运算单元阵列208提供所需的计算阵列参数、接口配置参数,配置寄存器204与寄存器文件等类型的内部存储单元210统一编址。
该结构的基于有线状态机的指令译码单元205与指令执行控制器207相连接,对第一级译码后的指令进行第二级译码,基于有限状态机模型对多指令执行进行有效控制。
该结构的指令队列206为流水指令寄存器结构,可以存储多条流水执行指令。一旦基于有线状态机的指令译码单元205空闲时,就从指令队列206中取出指令,送入基于有线状态机的指令译码单元205,并将指令寄存器清空,以接收新指令。
该结构的指令执行控制器207与模算术运算单元阵列208相连接,其内部包括一个或多个不同类型的指令执行控制机构。指令执行控制机构为指令执行分配运算单元,并对多个运算单元进行有效的调度,以降低指令的执行时间。其中指令执行控制机构的个数n依赖于对高性能可扩展公钥密码协处理器结构的指令集的具体实现。
该结构的模算术运算单元阵列208包括a个双域可扩展Montgomery模乘单元SMM和b个双域可扩展模加减单元SMA,a、b为不等于零的自然数,与存储器控制器209相连接,是高性能可扩展公钥密码协处理器结构中的核心计算的部件。SMM和SMA的计算字长w可以根据需要进行配置:w典型值为8~128,w越大,电路的面积越大,完成计算所需要的周期数越小,因此可以根据实际电路要求的面积和速度选择合适的w值并且SMM为多运算单元流水结构,其中运算单元个数e的典型值为2~20,SMM中运算单元的个数e直接决定SMM单元的面积和完成模乘运算所需要的时间,e越大,SMM面积越大、模乘运算的时间越小,且消耗的功耗越大,可以根据不同的性能需求进行配置。
该结构的存储器控制器209直接和寄存器文件等类型的内部存储单元210相连接,对来自数据控制器电路203和模算术运算单元阵列208的访问存储器的请求进行仲裁,对寄存器文件等类型的内部存储单元210进行高效的存储访问读写操作。
该结构的寄存器文件等类型的内部存储单元210为高性能可扩展公钥密码协处理器结构内部的高速访问存储部件,一般具有最大8读4写共12个存储器访问端口。
该结构的输出缓冲器电路211与存储器控制器209相连接,将寄存器文件等类型的内部存储单元中读出的数据以稳定有效的方式送到存储器映射接口电路201的对外数据总线上。
本发明的高性能可扩展公钥密码协处理器结构2的指令系统设计
本发明的高性能可扩展公钥密码协处理器结构2的指令系统设计采用精简指令集结构(RISC)的设计方法。高性能可扩展公钥密码协处理器结构2设置了13条基本指令,如表1所列,每条指令长度一般编码为64位,其中操作码opcode占用4位,其余用于地址和标志位的描述。表2给出了本发明的基本指令集中的基本指令名称、指令编码和指令功能描述的一个实例。
表1高性能可扩展公钥密码协处理器的13条基本指令
表2高性能可扩展公钥密码协处理器结构的基本指令集实例
表2中所表述的基本指令集并不代表本发明的高性能可扩展公钥密码协处理器结构2的指令集的所有可能的指令集,在此指令集的指令功能描述基础上对任意格式操作数进行任何功能上的增加、删减或组合的高性能公钥密码协处理器的指令集设计都属于本发明的保护范围。指令名称及其操作码、地址和标志位字段的定义和格式规划可以按照具体情况规划定义,表2给出的指令名称的命名、指令的操作码编码也并不代表本发明的高性能可扩展公钥密码协处理器结构2的指令集所有可能的指令命名、指令的操作码编码编排方法,任何其他的指令命名、指令操作码编码和指令格式编排和定义方法均属本发明的保护范围。
本发明的高性能可扩展公钥密码协处理器结构2的椭圆曲线点乘运算实现方法
以有限域GF(p)上椭圆曲线EGF(P)标量乘法为例,标量乘法所定义完成的运算是:
其中k=(k1-1,...,k1,k0)2,0<k<#EGF(P),点P∈EGF(P)(#EGF(P)为椭圆曲线EGF(P)的阶)。
标量乘法的实现分为五个部分:
Part I:
由仿射坐标转换为射影坐标:
(x,y)→(x,y,1)
Part II:
点的坐标由普通数据表示转换为Montgomery数据表示,可以通过与Montgomery参数R2 mod p做模乘操作得到:
(x,y,1)→(xR,yR,R)mod p
Part III:
在此,考虑最简单的二进制拆分算法。算法过程如算法1所示。
算法1:椭圆曲线标量乘法二进制拆分算法
输入:点P,坐标(xR,yR,R),标量k=(k1-1,...,k1,k0)2
输出:点Q=kP
①令Q=P;
②ror i from l-2 to 0,i=i-1,do
(1)计算Q=2Q;
(2)如果ki为1,计算Q=Q+P;
③end
设得到结果为Q=(XR,YR,ZR)mod p,即坐标仍为Montgomery数据表示。
Part IV:
由射影坐标转换为仿射坐标:(xR,yR)←(XR,YR,ZR)mod p。
首先计算Z-1R mod p,Z-2R mod p,Z-3R mod p;
计算xR mod p:
xR=XRZ-2RR-1mod p
计算yR mod p:
yR=YRZ-3RR-1mod p
根据Fermat小定理:
ap-1≡1 mod p,a∈GF(p),p为素数
因此有:
a-1≡ap-2mod p
因此,上述求逆运算Z-1 R mod p可以通过模幂运算得到。
Part V:
由Montgomery数据表示转换为普通数据表示:
(x,y)←(xR,yR)mod p
xR,yR分别与1做Montgomery模乘即可得到所需要的计算结果:
x≡xRR-1mod p
y≡yRR-1mod p
综上所述,本发明在结构上采用模算术运算单元阵列并行计算模型,可以高效快速实现公钥密码算法中计算较为复杂的模幂、模逆和椭圆曲线上点的标量乘法运算,在模算术运算单元设计实现中采用统一的数据通路实现GF(p)和GF(2m)域的模乘和模加减运算。模加减电路针对ECC点加和点倍加的运算特点作进一步优化免去最后的取模运算,降低设计复杂度。对关键路径采用进位保存加法器CSA、快速乘法器等优化设计方法。
相比已有的基于串行计算模型实现的方法和RSA、ECC计算加速硬件结构相互独立的硬件电路结构,本发明将RSA和ECC运算加速硬件电路结构有机融合于一体,不仅充分挖掘了各种运算实现中的并行成分,而且可以以较小的成本代价、较低的功耗实现RSA、ECC等公钥密码算法的并行高速计算。同时,在高性能可扩展公钥密码协处理器结构2中,操作数长度可配置,模算术运算单元数量可配置,高性能可扩展公钥密码协处理器结构2可扩展,也可以有效降低高性能公钥密码协处理器的开发成本。高性能可扩展公钥密码协处理器的应用相当灵活,在外部控制部件或系统1的控制下可以很容易构成具有不同安全级别的基于公钥密码算法的安全系统。
以上所述仅为本发明专利较佳的实施例,对本发明而言只是说明性的,而非限制性的。本专业技术人员在理解基础上,在本发明权利要求所限定的范围内,对其进行许多改变、修改甚至等效等都属于本发明的保护范围内。
Claims (2)
1.一种高性能可扩展公钥密码协处理器结构,包含存储器映射接口电路、输入缓冲器电路、数据控制器电路、配置寄存器、基于有线状态机的指令译码单元、指令队列、指令执行控制器、模算术运算单元阵列、存储器控制器、寄存器文件等类型的内部存储单元和输出缓冲器电路,其特征在于:存储器映射接口电路分别与外部控制部件或系统、输入缓冲器电路及输出缓冲器电路相连,输入缓冲器电路分别与数据控制器电路、配置寄存器、指令队列相连,数据控制器电路与存储器控制器相连,配置寄存器分别与指令执行控制器和模算术运算单元阵列相连,基于有线状态机的指令译码单元分别与指令队列、指令执行控制器相连,指令执行控制器与模算术运算单元阵列相连,模算术运算单元阵列与存储器控制器相连,存储器控制器分别与寄存器文件等类型的内部存储单元和输出缓冲器电路相连,且所述的寄存器文件等类型的内部存储单元、配置寄存器是统一编址的。
2.根据权利要求1所述的高性能可扩展公钥密码协处理器结构,其特征在于:所述的存储器映射接口电路为高性能可扩展公钥密码协处理器对外接口电路,通过对所述存储器映射接口的读写正确接收外部控制部件或系统发送给高性能可扩展公钥密码协处理器的数据、指令和地址,并发送给输入缓冲器电路;或将输出缓冲器电路中存储的计算结果和内部工作状态的相应数据发送给高性能可扩展公钥密码协处理器外部的控制部件或系统;存储器映射接口电路负责对不同时钟域的数据进行同步处理。
3、根据权利要求1所述的高性能可扩展公钥密码协处理器结构,其特征在于:所述的输入缓冲器电路负责对接收来自存储器映射接口电路的指令进行第一级指令译码,通过对输入地址的比较以判断接收到的是指令是一般数据或是需要写入的配置寄存器数据。
4、根据权利要求1所述的高性能可扩展公钥密码协处理器结构,其特征在于:所述的配置寄存器存储对高性能可扩展公钥密码协处理器进行各种配置的系统参数,系统参数包括计算阵列参数、接口配置参数,并为指令执行控制器提供所需的接口配置参数,为模算术运算单元阵列提供所需的计算阵列参数。
5、根据权利要求1所述的高性能可扩展公钥密码协处理器结构,其特征在于:所述的基于有线状态机的指令译码单元对第一级译码后的指令进行第二级译码,基于有限状态机模型对多周期串行执行指令进行译码,并对指令执行进行有效控制。
6、根据权利要求1所述的高性能可扩展公钥密码协处理器结构,其特征在于:所述的指令队列为流水指令寄存器结构,存储多条流水执行指令,一旦基于有线状态机的指令译码单元空闲时就从指令队列中取指令,并将指令寄存器清空,以接收新的后续指令。
7、根据权利要求1所述的高性能可扩展公钥密码协处理器结构,其特征在于:所述的指令执行控制器为指令执行分配相应的模运算单元,并对多个模运算单元进行有效的调度,使指令执行时间最短。
8、根据权利要求1所述的高性能可扩展公钥密码协处理器结构,其特征在于:所述的模算术运算单元阵列包括a个双域可扩展Montgomery模乘单元SMM和b个双域可扩展模加减单元SMA,SMM和SMA的计算字长w根据应用需要进行配置:w典型值为8~128,w越大,电路的面积越大,完成计算所需要的周期数越小,因此可以根据实际电路要求的面积和速度选择合适的w值,并且SMM为多运算单元流水结构,其中运算单元个数e的典型值为2~20,SMM中运算单元的个数e直接决定SMM单元的面积和完成模乘运算所需要的时间,e越大,SMM面积越大、模乘运算的时间越小,且消耗的功耗越大,可以根据应用的不同性能需求、功耗要求以及实现成本需求等进行配置,a、b分别为不等于零的自然数。
9、根据权利要求1所述的高性能可扩展公钥密码协处理器结构,其特征在于:所述的存储器控制器对来自数据控制器电路和模算术运算单元阵列的访问存储器的请求进行仲裁;所述的寄存器文件等类型的内部存储单元最多具有8读4写共12个存储器访问端口。
10、根据权利要求1所述的高性能可扩展公钥密码协处理器结构,其特征在于:所述的输出缓冲器电路与存储器控制器相连接,将从寄存器文件等类型的内部存储单元中读出的数据以稳定有效的方式送到存储器映射接口电路的对外数据总线上。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010567822A CN102043916B (zh) | 2010-12-01 | 2010-12-01 | 一种高性能可扩展公钥密码协处理器结构 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010567822A CN102043916B (zh) | 2010-12-01 | 2010-12-01 | 一种高性能可扩展公钥密码协处理器结构 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102043916A CN102043916A (zh) | 2011-05-04 |
CN102043916B true CN102043916B (zh) | 2012-10-03 |
Family
ID=43910048
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010567822A Expired - Fee Related CN102043916B (zh) | 2010-12-01 | 2010-12-01 | 一种高性能可扩展公钥密码协处理器结构 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102043916B (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102279725A (zh) * | 2011-09-01 | 2011-12-14 | 北京华大信安科技有限公司 | Ecc协处理器 |
CN102521535A (zh) * | 2011-12-05 | 2012-06-27 | 苏州希图视鼎微电子有限公司 | 通过特定指令集来进行相关运算的信息安全协处理器 |
CN103888246A (zh) * | 2014-03-10 | 2014-06-25 | 深圳华视微电子有限公司 | 低功耗小面积的数据处理方法及其数据处理装置 |
CN104572021B (zh) * | 2015-01-27 | 2017-09-19 | 聚辰半导体(上海)有限公司 | 一种高效的公钥加密引擎 |
CN106209370A (zh) * | 2016-07-01 | 2016-12-07 | 九州华兴集成电路设计(北京)有限公司 | 椭圆曲线密码芯片装置、系统及数据缓存控制方法 |
CN107294719A (zh) * | 2017-06-19 | 2017-10-24 | 北京万协通信息技术有限公司 | 一种双线性对运算的加解密协处理器 |
CN109271137B (zh) * | 2018-09-11 | 2020-06-02 | 网御安全技术(深圳)有限公司 | 一种基于公钥加密算法的模乘装置及协处理器 |
CN109687954B (zh) * | 2018-12-25 | 2022-05-13 | 贵州华芯通半导体技术有限公司 | 用于算法加速的方法和装置 |
CN109728906B (zh) * | 2019-01-11 | 2021-07-27 | 如般量子科技有限公司 | 基于非对称密钥池的抗量子计算非对称加密方法和系统 |
CN112099762B (zh) * | 2020-09-10 | 2024-03-12 | 上海交通大学 | 快速实现sm2密码算法的协处理系统及方法 |
CN114629665B (zh) * | 2022-05-16 | 2022-07-29 | 百信信息技术有限公司 | 一种用于可信计算的硬件平台 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1635731A (zh) * | 2003-12-27 | 2005-07-06 | 海信集团有限公司 | 可重构密码协处理器电路 |
CN1700637A (zh) * | 2005-05-18 | 2005-11-23 | 上海迪申电子科技有限责任公司 | 一种新型的椭圆曲线密码协处理器 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8879725B2 (en) * | 2008-02-29 | 2014-11-04 | Intel Corporation | Combining instructions including an instruction that performs a sequence of transformations to isolate one transformation |
-
2010
- 2010-12-01 CN CN201010567822A patent/CN102043916B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1635731A (zh) * | 2003-12-27 | 2005-07-06 | 海信集团有限公司 | 可重构密码协处理器电路 |
CN1700637A (zh) * | 2005-05-18 | 2005-11-23 | 上海迪申电子科技有限责任公司 | 一种新型的椭圆曲线密码协处理器 |
Also Published As
Publication number | Publication date |
---|---|
CN102043916A (zh) | 2011-05-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102043916B (zh) | 一种高性能可扩展公钥密码协处理器结构 | |
Liu et al. | On emerging family of elliptic curves to secure internet of things: ECC comes of age | |
Szczechowiak et al. | On the application of pairing based cryptography to wireless sensor networks | |
Xiong et al. | Tinypairing: A fast and lightweight pairing-based cryptographic library for wireless sensor networks | |
Afreen et al. | A review on elliptic curve cryptography for embedded systems | |
Sasdrich et al. | Efficient elliptic-curve cryptography using Curve25519 on reconfigurable devices | |
CN103942031B (zh) | 椭圆域曲线运算方法 | |
Yeh et al. | An energy-efficient dual-field elliptic curve cryptography processor for Internet of Things applications | |
CN100428140C (zh) | 椭圆曲线密码体制协处理器的实现方法 | |
JP2007094377A (ja) | 暗号処理装置 | |
CN103631660A (zh) | 在gpu中进行大整数计算时的存储资源分配方法及装置 | |
US7027597B1 (en) | Pre-computation and dual-pass modular arithmetic operation approach to implement encryption protocols efficiently in electronic integrated circuits | |
CN103903047A (zh) | 一种适用于rfid安全通信的椭圆曲线加密协处理器 | |
WO2023109235A1 (zh) | 加解密初始化配置方法、边缘端、加解密平台及安全系统 | |
Dong et al. | Ec-ecc: Accelerating elliptic curve cryptography for edge computing on embedded gpu tx2 | |
Harb et al. | FPGA implementation of the ECC over GF (2m) for small embedded applications | |
CN113114462B (zh) | 一种应用于ecc安全硬件电路的小面积标量乘电路 | |
Chen et al. | A high-performance unified-field reconfigurable cryptographic processor | |
Liu et al. | Energy-efficient elliptic curve cryptography for MSP430-based wireless sensor nodes | |
Moon et al. | Fast VLSI arithmetic algorithms for high-security elliptic curve cryptographic applications | |
Javeed et al. | Area‐time efficient point multiplication architecture on twisted Edwards curve over general prime field GF (p) | |
Seo et al. | Performance enhancement of TinyECC based on multiplication optimizations | |
Huang et al. | A low-complexity heterogeneous multi-core platform for security SoC | |
Rashid et al. | A Flexible Architecture for Cryptographic Applications: ECC and PRESENT | |
CN101819519B (zh) | 多功能数字签名电路 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20121003 Termination date: 20121201 |