CN113794572A - 一种高性能椭圆曲线数字签名与验签的硬件实现系统和方法 - Google Patents
一种高性能椭圆曲线数字签名与验签的硬件实现系统和方法 Download PDFInfo
- Publication number
- CN113794572A CN113794572A CN202111141396.8A CN202111141396A CN113794572A CN 113794572 A CN113794572 A CN 113794572A CN 202111141396 A CN202111141396 A CN 202111141396A CN 113794572 A CN113794572 A CN 113794572A
- Authority
- CN
- China
- Prior art keywords
- modular
- selector
- controller
- array
- signature
- 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.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
- H04L9/3252—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures using DSA or related signature schemes, e.g. elliptic based signatures, ElGamal or Schnorr schemes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/12—Details relating to cryptographic hardware or logic circuitry
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Complex Calculations (AREA)
Abstract
本发明公开一种高性能椭圆曲线数字签名与验签的硬件实现系统和方法,属于信息安全技术领域。针对现有技术中存在的ECDSA算法复杂度高,计算耗时较长,硬件加速难度大的问题,本发明包括签名验签控制器、标量乘控制器、底层运算控制器和实现各种模运算的运算阵列,在运算阵列中提出一种新型模乘阵列结构,便于倍点和点加计算的调度,在单位面积上具有较高的性能。本发明将倍点、点加、模乘运算、模加运算、模减运算、模逆运算、模移位运算等底层运算集成在一起,最大程度的实现了计算通路的资源共享,结合模乘的高性能实现,在较低的硬件开销下实现了高性能椭圆曲线数字签名与验签算法。
Description
技术领域
本发明涉及信息安全技术领域,更具体地说,涉及一种高性能椭圆曲线数字签名与验签的硬件实现系统和方法。
背景技术
椭圆曲线密码学(ECC,Elliptic Curve Cryptography),是一种建立公开密钥加密的算法,基于椭圆曲线数学,最早在1985年由Neal Koblitz和Victor Miller分别独立提出。与RSA加密算法相比,椭圆曲线加密具有更高的安全性、更小的计算量,逐渐成为密码学研究的热点,现已被多个国际标准化组织作为标准化文件。目前ECC算法在数字签名、移动设备通信、安全性半导体、区块链等领域均有重要应用。
椭圆曲线数字签名算法(ECDSA,Elliptic Curve Digital SignatureAlgorithm),于1999年成为ANSI标准,并于2000年成为IEEE和NIST标准。椭圆曲线数字签名算法是椭圆加密与数字签名算法的结合,由于其计算量小、处理速度快、存储空间占用小等特点,被广泛应用于电子商务系统和其他网络领域,并逐渐成为当前主流区块链平台及项目的默认签名机制。随着网络传输技术和硬件性能的提升,各技术领域对ECDSA算法的速度要求也越来越高,而ECDSA算法中的标量乘计算复杂度高,尤其是模乘的实现与点加、倍点的调度耗时较长,是硬件加速的难点。
中国专利申请一种椭圆曲线密码算法中标量乘的加速系统,申请号CN202110340092.8,公开日2021年06月22日,公开了一种椭圆曲线密码算法中标量乘的加速系统,包括输入模块、处理模块、输出模块,处理模块包括去零逻辑模块、去零标志缓存模块、去零累加流水缓存模块、点加流水线模块、去零累加缓存模块、点倍流水线模块、点倍缓存模块、解压逻辑模块,本发明的标量比特流位判断模块将标量比特流中的无效位消除,极大的减小了点加的计算次数,从而大幅度降低标量乘的计算复杂度,同时除零逻辑模块将压缩标志以及累加结果进行同步,切换开关模块根据压缩标志对累加结果进行选择,保证点加和点倍流水线的一致性,提高了标量乘系统的效率,该发明未对点加和倍点进行坐标系转换,模逆计算次数较多对性能影响很大;该发明未对点加和倍点进行调度优化,计算时间与资源利用未达到最优;该发明未对模乘进行优化,模乘的性能和面积利用率未达到最优;该发明未充分利用各层次下共同的计算类型,各计算层次中无效的硬件开销比较多,硬件面积较大。
发明内容
1.要解决的技术问题
针对现有技术中存在的ECDSA算法复杂度高,计算耗时较长,硬件加速难度大的问题,本发明提供一种高性能椭圆曲线数字签名与验签的硬件实现系统和方法,提出一种新型模乘阵列结构,便于倍点和点加计算的调度,在单位面积上具有较高的性能。
2.技术方案
本发明的目的通过以下技术方案实现。
一种高性能椭圆曲线数字签名与验签的硬件系统,其特征在于,述系统包括签名验签控制器、标量乘控制器、底层运算控制器和运算模块;签名验签控制器与标量乘控制器进行数据传输,标量乘控制器和底层运算控制器进行数据传输,签名验签控制器还和底层运算控制器进行数据传输,底层运算控制器与运算模块进行数据传输。
签名验签控制器用于配置为签名和验签模式,并接收椭圆曲线数字签名和验签参数,调用底层运算控制器连接的运算模块,输出签名和验签结果数据。标量乘控制器用于调用点加和倍点计算,完成椭圆曲线上的标量乘运算。底层运算控制器用于实现椭圆曲线数字签名与验签算法中所有底层运算集合的状态机控制。运算模块用于实现不同形式的计算。
更进一步的,标量乘控制器控制调用点加和倍点计算。
更进一步的,运算模块包括模乘阵列、模加阵列、模减阵列、模逆阵列和模移位阵列;每个阵列均包括多个对应的计算单元。也就是说,模逆阵列包括多个模逆计算单元,用于实现模逆计算。模乘阵列包括多个模乘计算单元,用于模乘计算。模加阵列,包括多个模加计算单元,用于模加计算。模减阵列,包括多个模减计算单元,用于模减计算。模移位阵列,包括多个模移位计算单元,用于模移位计算。
更进一步的,模乘阵列中的计算单元先以级联的方式连接X级,X为大于零的整数,级联后再并行连接到底层运算控制器。一般来说,级联数量越多的越多,计算越快,但是芯片面积也越大。
更进一步的,模乘阵列的计算单元包括比较器、加法器、减法器、移位寄存器和选择器,输入数据分别连接加法器的输入端、第一选择器的输入端、第一减法器的输入端和移位寄存器的输入端,第一选择器的输出端连接加法器的输入端,加法器的输出端连接第一减法器的输入端和第二选择器的输入端,第一减法器的输出端也连接第二选择器的输入端,第二选择器的输出端通过移位寄存器连接第二减法器的输入端、第三选择器的输入端和第四选择器的输入端,第二减法器的输出端连接第三选择器的输入端,第三选择器的输出端连接第四选择器的输入端,第四选择器的输出端输出计算结果。
更进一步的,模加阵列、模减阵列、模逆阵列和模移位阵列中的计算单元均并行连接到底层运算控制器。
更进一步的,模加阵列的计算单元包括加法器、比较器、减法器和选择器,加法器输出端连接减法器输入端、比较器输入端和选择器输入端,减法器输出端连接选择器输入端,比较器输出端连接到选择器输入端。
更进一步的,模减阵列的计算单元包括减法器,加法器和选择器,减法器输出端连接加法器输入端和比较器输入端,减法器输出端最高位连接比较器输入端,加法器输出端连接到比较器输入端器。
更进一步的,模移位阵列的计算单元包括移位寄存器、减法器、比较器和选择器,移位寄存器输出端连接减法器输入端、比较器输入端和选择器输入端,比较器输出端连接到选择器输入端,减法器输出端连接选择器输入端。
一种高性能椭圆曲线数字签名与验签的硬件实现方法,使用所述的一种高性能椭圆曲线数字签名与验签的硬件系统;
签名验签控制器配置为签名和验签模式,接收椭圆曲线数字签名和验签参数,调用底层运算控制器连接的运算模块;底层运算控制器根据状态机控制底层运算模块的调用,标量乘控制器用于调用点加和倍点计算;签名验签控制器输出签名和验签结果数据。
签名验签控制器包括第一有限状态机FSM、第一数据接收模块和第一数据发送模块;标量乘控制器包括第二有限状态机FSM、第二数据接收模块和第二数据发送模块;底层运算控制器包括计算指令译码器、第三有限状态机FSM和计算阵列选择器。倍点、点加以及运算模块的实现为计算指令集合的形式供签名与验签控制器调用,签名验签控制器与标量乘控制器均可配置底层运算控制器,点加、倍点计算对模运算的调用以内部有限状态机FSM跳转的形式实现。确定计算方法后,底层运算控制器通过计算阵列选择器选择运算模块中对应运算阵列。
本发明通过将模乘运算分解为若干次只含有判断、移位、减法的重复计算,重复次数等于模乘输入位宽,提高系统性能,降低硬件开销,提高系统灵活性。本发明将倍点、点加、模乘运算、模加运算、模减运算、模逆运算、模移位运算等底层运算集成在一起供高层次运算模块调用,最大程度的实现了计算通路的资源共享,结合模乘的高性能实现,在较低的硬件开销下实现了高性能椭圆曲线数字签名与验签算法。
3.有益效果
相比于现有技术,本发明的优点在于:
本发明通过合理设计计算结构,将倍点、点加以及各种模运算实现为计算指令集合,实现了一种高性能的椭圆曲线数字签名与验签硬件电路,可进行椭圆曲线数字签名的生成和签名的验证,椭圆曲线参数可配置,硬件结构灵活可适不同性能面积要求。
本发明通过优化点加、倍点计算调度顺序,减少计算时钟周期和寄存器等硬件电路开销。本发明只涉及加法、减法、移位、判断运算,避免了大位宽的乘法器与除法器,易于硬件实现,在有较高性能的同时,计算复杂度低且硬件资源消耗少。通过基于秦九韶展开式的快速模乘实现,将模乘实现为由若干相同单元组成的阵列形式,可根据位宽、性能的不同灵活配置阵列连接方式。
综上所述,本发明可在较少的硬件资源消耗下,实现椭圆曲线数字签名与验签,有良好的实际应用价值。
附图说明
图1为本发明的整体结构示意图;
图2是本发明的模乘阵列结构示意图;
图3是本发明的单个模乘结构示意图。
具体实施方式
在下文的描述中,给出了大量具体的细节以便提供对本发明更为彻底的理解。然而,对于本领域技术人员而言显而易见的是,本发明可以无需一个或多个这些细节而得以实施。在其他的例子中,为了避免与本发明发生混淆,对于本领域公知的一些技术特征未进行描述。
实施例1
本实施例公开一种高性能椭圆曲线数字签名与验签的硬件实现系统,如图1所示,所述系统包括签名验签控制器、标量乘控制器、底层运算控制器和运算模块;签名验签控制器与标量乘控制器进行数据传输,标量乘控制器和底层运算控制器进行数据传输,签名验签控制器还和底层运算控制器进行数据传输,底层运算控制器与运算模块进行数据传输。
签名验签控制器用于配置为签名和验签模式,并接收椭圆曲线数字签名和验签参数,调用底层运算控制器连接的运算模块,输出签名和验签结果数据。
标量乘控制器用于调用点加和倍点计算,完成椭圆曲线上的标量乘运算。
底层运算控制器用于实现椭圆曲线数字签名与验签算法中所有底层运算集合的状态机控制。
运算模块用于实现不同形式的计算,如图1所示,运算模块包括模乘阵列、模加阵列、模减阵列、模逆阵列和模移位阵列。模逆阵列包括多个模逆计算单元,用于实现模逆计算。模乘阵列包括多个模乘计算单元,用于模乘计算。模加阵列,包括多个模加计算单元,用于模加计算。模减阵列,包括多个模减计算单元,用于模减计算。模移位阵列,包括多个模移位计算单元,用于模移位计算。
底层运算控制器的状态包括倍点运算状态、点加运算状态、模乘运算状态、模加运算状态、模减运算状态、模逆运算状态和模移位状态。
具体的,签名验签控制器包括第一有限状态机FSM、第一数据接收模块和第一数据发送模块。标量乘控制器包括第二有限状态机FSM、第二数据接收模块和第二数据发送模块。底层运算控制器包括计算指令译码器、第三有限状态机FSM和计算阵列选择器。
模逆阵列的模逆计算单元包括第四有限状态机FSM,模移位模块和减法器,用于实现模逆计算。所有的模逆计算单元并行连接到底层运算控制器。
模乘阵列结构如图2所示,模乘计算单元先以级联的方式连接X级,即上一级的结果输入到下一级,X为大于零的整数。级联后的模乘计算单元再并行连接到底层运算控制器。级联与并行的数量可以根据需要调整。如256bit模乘的计算需要256次迭代,迭代可以将同一个模乘模块重复调用256次,也可以把256个模块连到一起。具体实施的时候可以调整级联的数量,比如4个级联就调用64次,单独一个就调用256次,n个级联需要调用256/n次。具体级联数量不大于模乘位宽就行。一般来说,级联数量越多的越多,计算越快,但是芯片面积也越大。
模乘计算单元如图3所示,包括比较器、加法器、减法器、移位寄存器和选择器,输入数据分别连接加法器的输入端、第一选择器的输入端、第一减法器的输入端和移位寄存器的输入端,第一选择器的输出端连接加法器的输入端,加法器的输出端连接第一减法器的输入端和第二选择器的输入端,第一减法器的输出端也连接第二选择器的输入端,第二选择器的输出端通过移位寄存器连接第二减法器的输入端、第三选择器的输入端和第四选择器的输入端,第二减法器的输出端连接第三选择器的输入端,第三选择器的输出端连接第四选择器的输入端,第四选择器的输出端输出计算结果。
模加阵列中,模加计算单元包括加法器、比较器、减法器和选择器,加法器输出端连接减法器输入端、比较器输入端和选择器输入端,减法器输出端连接选择器输入端,比较器输出端连接到选择器输入端,所有的模加计算单元并行连接到底层运算控制器。
模减阵列中,模减计算单元包括减法器,加法器和选择器,减法器输出端连接加法器输入端和比较器输入端,减法器输出端最高位连接比较器输入端,加法器输出端连接到比较器输入端,所有的模减计算单元并行连接到底层运算控制器。
模移位阵列中,模移位计算单元包括移位寄存器、减法器、比较器和选择器,移位寄存器输出端连接减法器输入端、比较器输入端和选择器输入端。比较器输出端连接到选择器输入端,减法器输出端连接选择器输入端,所有的模移位计算单元并行连接到底层运算控制器。
实施例2
基于实施例1公开的硬件系统,本实施例公开一种高性能椭圆曲线数字签名与延签的硬件实现方法,先分析椭圆曲线数字签名算法(ECDSA)计算通路,将整个算法分为四个层次,最高层次(即第四层)为椭圆曲线数字签名与验签计算调度,第三层次为标量乘计算,第二层次为点加和倍点运算,第一层次为各种模运算(模乘、模逆、模加、模减、模移位)。本实施例实现方法中,为减小额外硬件开销,将签名和验签步骤中生成验签参数的取模用一个加数为0的模加计算代替,避免了额外设计取模电路。
最高层次的签名与验签计算调度不仅调用第三层次的标量乘计算,还会调用第一和第二层次运算功能,具体地,在签名算法模式系统调用两次标量乘运算、一次模加运算、两次模乘运算、一次模逆运算和一次取模运算;在验签算法模式,系统调用两次标量乘运算、一次点加运算、两次模乘运算、一次模逆运算和一次取模运算。
各层次计算有跨层次穿插调用的情况,在本实施例硬件实现方法中,将第一、二层次的倍点、点加以及各种模运算实现为计算指令集合的形式供高层次算法调用,签名验签控制器与标量乘控制器均可配置底层运算控制器,点加、倍点计算对模运算的调用以内部有限状态机FSM跳转的形式实现。
标量乘计算的控制复杂,计算复杂度高,对倍点、点加的调用可能超过百次,且只需要提供签名验签控制器的调用,因此不加入计算指令集合而是单独实现一个控制模块。
本实施例公开一种高性能椭圆曲线数字签名的硬件实现方法,包括以下步骤:
步骤1:读取椭圆曲线参数与配置。
从数据有效信号开始计数,签名模式下从第一个时钟开始,输入端口依次传入的数据为椭圆曲线参数a、模数p、基点x坐标Gx、基点y坐标Gy、密钥d、随机数k、明文e和基点的阶n。
步骤2:配置为签名模式,将基点G与密钥d进行标量乘,生成公钥Q=dG;将基点G与随机数k进行标量乘,生成点R=(x1,y1)=kG;生成数字签名参数r=x1mod n,n为基点G的阶;调用模乘、模逆、模加,生成数字签名参数s=k-1(e+dr)mod n。
具体计算时,先调用标量乘控制器,计算Q=dG。对标量乘的实现采用NAF算法减小标量乘的计算复杂度,减小了点加和倍点的调用次数。一般来说,标量乘(例如kP)的实现通常是采用累加的方式实现的,即:2P=P+P、3P=2P+P……以此类推。但这种方式计算量过大,因此考虑了NAF二进制表示算法(非相邻表示型Non-adjacent Form NAF)来减少计算量,具体的流程如下:
输出:Q=[k]P。
标量乘的计算过程如下:
(1)设3d的二进制表示为h_r,h_(r-1),…,h_1,h_0,其中最高位h_r为1;
(2)设d的二进制表示为k_r,k_(r-1),…,k_1,k_0,显然r=l或l+1;
(3)置Q=G;
(4)对i从r-1下降到1执行:
a、Q=[2]Q;
b、若h_i=1,且k_i=0,则Q=Q+G;
c、若h_i=0,且k_i=1,则Q=Q-G;
(5)输出Q。
该标量乘实现方法有效的降低一次标量乘所需要的倍点和点加数量。
点加与倍点计算过程为:将Q、G映射到Jacobian坐标系,将Jacobian坐标系下的点加、倍点计算进行了调度优化,具体实现方法如下:
Fp上的椭圆曲线方程Ep(a,b):y2=x3+ax+b上的点(x,y)可以表示为(X,Y,Z),令x=X/Z2,y=Y/Z3(Z≠0,若Z=0则便是原坐标系下的无穷点),带入椭圆曲线可得:
Y2=X3+aXZ4+bZ6
其中a,b∈Fp且4a3+27b2≠0mod p。
对于(X1,Y1,Z1)和(X2,Y2,Z2)若存在某个点u∈Fp且u≠0,使得:
X1=u2X2,Y1=u3Y2,Z1=uZ2,
则称这两个点三元组等价,表示同一个点。
Jacobian坐标系下的,Ep(a,b)上的加法运算定义如下:
(a)O+O=P;
(c)
(d)设点
P1=(X1,Y1,Z1)∈E(Fp)\{0},P2=(X2,Y2,Z2)∈E(Fp)\{0},P3=P1+P2=(X3,Y3,Z3)≠O,
若P1≠P2则:
若P1=P2则:
在该实现方法的模乘实现中,模乘的计算周期取决于两个乘数的最小位宽。因此,将一个乘数较小的小点数模乘(如上式中4X1)单独作为一个控制指令以优化速度,与一般模乘调用同一个模乘计算阵列,但计算周期远小于一般模乘。
具体的,若计算2Q则执行表1:
表1
若计算Q+G则执行表2:
表2
若计算Q-G则将G点y坐标取为-y然后按Q+G执行表2。
本实施例将点加和倍点运算映射到Jacobian坐标系,对于一次完整的标量乘来说,只需要两次模逆,大大减少了模逆运算的次数,进而减少了计算量。
在上述倍点、点加调度优化方法中,分析计算过程中的数据依赖与数据重用,减少计算过程中模乘的调用次数,将倍加的15次模乘减少为10次模乘和3次小点数模乘,减少了约33%的时钟周期消耗;将加点的21次模乘减少为16次模乘,减少了约23.8%的时钟周期消耗。且寄存器的占用更加紧凑,最大程度的减少的寄存器的消耗,寄存器峰值占用为7个寄存器,最终每路标量乘只需要7个寄存器寄存倍点、点加的中间数据。
本实施例模乘计算采用基于秦九韶展开式的快速模乘设计模乘阵列,将模乘计算展开为秦九韶展开式的形式,将其分解为若干次重复操作,每次操作包括判断、移位、加法、减法,具体实现方法如下:
在有限域中,有以下定理:
x·y mod N=((x mod N)·(y mod N))mod N (0≤x,y≤N)
x+y mod N=((x mod N)+(y mod N))mod N (0≤x,y≤N)
基于以上定理,为了快速计算出x·y mod N,将y进行拆分,将大数的模乘运算,分解为多次移位累加取模运算,来减小计算量。具体的操作如下所示:
l表示y的位数。
再进一步展开得到:
由展开后的表达式可知硬件上只要实现表达式2(xyl-1+z)modN,z<N,yl-1∈(0,1),经过多次调用或者多级级联即可得到最终的模乘结果,最大迭代次数与y的位宽相等。
模乘计算流程如下,将z初始化为0,对y从最高位到最低位重复执行,输入:x、yi、z、N:
(1)判断yi是否为0:
若yi=0,则输出result1=z到(2);
若yi=1,则输出result1=x+z到(2)。
(2)判断result1是否大于N:
若result1≥N,则输出result2=result1-N到(3);
若result1<N,则输出result2=result1到(3)。
(3)将result2左移两位,输出result3=result2<<2到步骤四;如果yi为最后一位,则不移位直接输出。
(4)判断result3是否大于N:
若result3≥N,则输出result4=result4-N;
若result3<N,则输出result4=result4。
最终的结果result4作为下一级的z输入继续迭代直到y的最低位,第一级的z为0。该实现方法中的模乘单元如实施例1所述,硬件包括比较器、加法器、减法器、移位寄存器和单比特选择器,结构统一。模乘阵列包括若干个这样的模乘计算单元,可根据需要灵活的进行流水线和并行度的展开,具有较高的面积性能比。
步骤3:调用标量乘控制器,计算R=(x1,y1)=kG。
具体的计算过程详见步骤2。
步骤4:配置底层运算控制器为模加状态,通过模加阵列计算r=x1+0mod N。
步骤5:配置底层运算控制器为模乘状态,通过模乘阵列计算d·r modN。
具体的计算过程详见步骤2中模乘计算方法。
步骤6:配置底层运算控制器为模加状态,通过模加阵列计算e+d·r modN。
步骤7:配置底层运算控制器为模逆状态,通过模逆阵列计算k-1modN。
采用扩展欧几里得算法,将多路标量乘结果打拍,分时复用模逆控制器。模逆运算性能对整体性能影响较小,相比于蒙哥马利模逆算法,扩展欧几里得算法性能较差但面积更小,满足该实现方法需求。模逆运算控制逻辑较为复杂,且调用次数较少,不必实现为阵列形式。
步骤8:配置底层运算控制器为模乘状态,通过模乘阵列计算s=k-1(e+dr)mod N。
步骤9:输出计算结果,计算结束。
本实施例为签名模式,则系统输出(r,s)
实施例3
基于实施例1公开的硬件系统,本实施例公开一种高性能椭圆曲线数字验签的硬件实现方法,与实施例2不同之处在于,本实施例系统配置为验签模式,包括以下步骤。
步骤Ⅰ:读取椭圆曲线参数与配置。
从第一个时钟开始,输入端口依次传入的数据为椭圆曲线参数a、模数p、基点x坐标Gx、基点y坐标Gy、待验证签名数据r’、待验证签名数据s’、明文e、基点的阶n、公钥Q的x坐标Qx和公钥Q的y坐标Qy。
步骤Ⅱ:配置为验签模式,计算c=(s′)-1mod n、u1=ec mod n和u2=r′c mod n。调用标量乘,计算u1G和u2Q。调用点加,计算(x1,y1)=u1G+u2Q,生成验签参数v=x1mod n。配置底层状态控制器为模逆状态,通过模逆阵列计算c=(s′)-1mod N。
步骤Ⅲ:配置底层状态控制器为模乘状态,通过模乘阵列计算u1=ec mod N。
具体同实施例1步骤2中模乘计算方法。
步骤Ⅳ:配置底层状态控制器为模乘状态,通过模乘阵列计算u2=r′c mod N。
具体同实施例1步骤2中模乘计算方法。
步骤Ⅴ:调用标量乘控制器,计算u1G。
具体同实施例1步骤2中标量乘计算方法。
步骤Ⅵ:调用标量乘控制器,计算u2Q。
具体同实施例1步骤2中标量乘计算方法。
步骤Ⅶ:配置底层状态控制器为点加状态,计算(x1,y1)=u1G+u2Q。
具体同实施例1步骤2中点加计算方法。
步骤Ⅷ:配置底层状态控制器为模加状态,通过模加阵列计算v=x1+0mod N。
步骤Ⅸ:输出计算结果,计算结束。
本实施例为验签模式,则系统输出v。
在本发明公开椭圆曲线数字签名与验签硬件实现方法中,应用NAF算法、Jacobian坐标系映射优化计算速度,将底层运算实现为可配置阵列,减小硬件开销,对Jacobian坐标下倍点、点加计算进行调度优化,基于秦九韶展开式实现模乘计算阵列,可实现较高的计算性能,有较高的应用潜力。
以上示意性地对本发明创造及其实施方式进行了描述,该描述没有限制性,在不背离本发明的精神或者基本特征的情况下,能够以其他的具体形式实现本发明。附图中所示的也只是本发明创造的实施方式之一,实际的结构并不局限于此,权利要求中的任何附图标记不应限制所涉及的权利要求。所以,如果本领域的普通技术人员受其启示,在不脱离本创造宗旨的情况下,不经创造性的设计出与该技术方案相似的结构方式及实施例,均应属于本专利的保护范围。此外,“包括”一词不排除其他元件或步骤,在元件前的“一个”一词不排除包括“多个”该元件。产品权利要求中陈述的多个元件也可以由一个元件通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
Claims (10)
1.一种高性能椭圆曲线数字签名与验签的硬件系统,其特征在于,述系统包括签名验签控制器、标量乘控制器、底层运算控制器和运算模块;签名验签控制器与标量乘控制器进行数据传输,标量乘控制器和底层运算控制器进行数据传输,签名验签控制器还和底层运算控制器进行数据传输,底层运算控制器与运算模块进行数据传输。
2.根据权利要求1所述的一种高性能椭圆曲线数字签名与验签的硬件系统,其特征在于,标量乘控制器控制调用点加和倍点计算。
3.根据权利要求1所述的一种高性能椭圆曲线数字签名与验签的硬件系统,其特征在于,运算模块包括模乘阵列、模加阵列、模减阵列、模逆阵列和模移位阵列;每个阵列均包括多个对应的计算单元。
4.根据权利要求3所述的一种高性能椭圆曲线数字签名与验签的硬件系统,其特征在于,模乘阵列中的计算单元先以级联的方式连接X级,X为大于零的整数,级联后再并行连接到底层运算控制器。
5.根据权利要求4所述的一种高性能椭圆曲线数字签名与验签的硬件系统,其特征在于,模乘阵列的计算单元包括比较器、加法器、减法器、移位寄存器和选择器,输入数据分别连接加法器的输入端、第一选择器的输入端、第一减法器的输入端和移位寄存器的输入端,第一选择器的输出端连接加法器的输入端,加法器的输出端连接第一减法器的输入端和第二选择器的输入端,第一减法器的输出端也连接第二选择器的输入端,第二选择器的输出端通过移位寄存器连接第二减法器的输入端、第三选择器的输入端和第四选择器的输入端,第二减法器的输出端连接第三选择器的输入端,第三选择器的输出端连接第四选择器的输入端,第四选择器的输出端输出计算结果。
6.根据权利要求3所述的一种高性能椭圆曲线数字签名与验签的硬件系统,其特征在于,模加阵列、模减阵列、模逆阵列和模移位阵列中的计算单元均并行连接到底层运算控制器。
7.根据权利要求6所述的一种高性能椭圆曲线数字签名与验签的硬件系统,其特征在于,模加阵列的计算单元包括加法器、比较器、减法器和选择器,加法器输出端连接减法器输入端、比较器输入端和选择器输入端,减法器输出端连接选择器输入端,比较器输出端连接到选择器输入端。
8.根据权利要求6所述的一种高性能椭圆曲线数字签名与验签的硬件系统,其特征在于,模减阵列的计算单元包括减法器,加法器和选择器,减法器输出端连接加法器输入端和比较器输入端,减法器输出端最高位连接比较器输入端,加法器输出端连接到比较器输入端器。
9.根据权利要求6所述的一种高性能椭圆曲线数字签名与验签的硬件系统,其特征在于,模移位阵列的计算单元包括移位寄存器、减法器、比较器和选择器,移位寄存器输出端连接减法器输入端、比较器输入端和选择器输入端,比较器输出端连接到选择器输入端,减法器输出端连接选择器输入端。
10.一种高性能椭圆曲线数字签名与验签的硬件实现方法,其特征在于,使用如权利要求1-9任意一项所述的一种高性能椭圆曲线数字签名与验签的硬件系统;
签名验签控制器配置为签名和验签模式,接收椭圆曲线数字签名和验签参数,调用底层运算控制器连接的运算模块;底层运算控制器根据状态机控制底层运算模块的调用,标量乘控制器用于调用点加和倍点计算;签名验签控制器输出签名和验签结果数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111141396.8A CN113794572A (zh) | 2021-09-28 | 2021-09-28 | 一种高性能椭圆曲线数字签名与验签的硬件实现系统和方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111141396.8A CN113794572A (zh) | 2021-09-28 | 2021-09-28 | 一种高性能椭圆曲线数字签名与验签的硬件实现系统和方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113794572A true CN113794572A (zh) | 2021-12-14 |
Family
ID=79184689
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111141396.8A Pending CN113794572A (zh) | 2021-09-28 | 2021-09-28 | 一种高性能椭圆曲线数字签名与验签的硬件实现系统和方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113794572A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114465735A (zh) * | 2022-04-12 | 2022-05-10 | 北京象帝先计算技术有限公司 | 验签系统、电子装置、电子设备及验签方法 |
CN115129297A (zh) * | 2022-08-30 | 2022-09-30 | 北京象帝先计算技术有限公司 | 多点乘运算系统、方法、图形处理器、电子装置及设备 |
CN115344525A (zh) * | 2022-08-16 | 2022-11-15 | 江南信安(北京)科技有限公司 | 一种椭圆曲线点加硬件加速方法及装置 |
-
2021
- 2021-09-28 CN CN202111141396.8A patent/CN113794572A/zh active Pending
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114465735A (zh) * | 2022-04-12 | 2022-05-10 | 北京象帝先计算技术有限公司 | 验签系统、电子装置、电子设备及验签方法 |
CN114465735B (zh) * | 2022-04-12 | 2022-06-17 | 北京象帝先计算技术有限公司 | 验签系统、电子装置、电子设备及验签方法 |
CN115344525A (zh) * | 2022-08-16 | 2022-11-15 | 江南信安(北京)科技有限公司 | 一种椭圆曲线点加硬件加速方法及装置 |
CN115344525B (zh) * | 2022-08-16 | 2023-04-18 | 江南信安(北京)科技有限公司 | 一种椭圆曲线点加硬件加速方法及装置 |
CN115129297A (zh) * | 2022-08-30 | 2022-09-30 | 北京象帝先计算技术有限公司 | 多点乘运算系统、方法、图形处理器、电子装置及设备 |
CN115129297B (zh) * | 2022-08-30 | 2022-12-13 | 北京象帝先计算技术有限公司 | 多点乘运算系统、方法、图形处理器、电子装置及设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113794572A (zh) | 一种高性能椭圆曲线数字签名与验签的硬件实现系统和方法 | |
Hasan et al. | A modified Massey-Omura parallel multiplier for a class of finite fields | |
CN113783702A (zh) | 一种椭圆曲线数字签名与验签的硬件实现方法和系统 | |
EP1044405B1 (en) | Power signature attack resistant cryptography | |
US20030140077A1 (en) | Logic circuits for performing modular multiplication and exponentiation | |
Fan et al. | Efficient hardware implementation of Fp-arithmetic for pairing-friendly curves | |
CN114553425A (zh) | 基于高性能模逆的椭圆数字签名曲线硬件实现方法及系统 | |
Su et al. | An improved Montgomery's algorithm for high-speed RSA public-key cryptosystem | |
Grossschadl | The Chinese remainder theorem and its application in a high-speed RSA crypto chip | |
Güneysu | Utilizing hard cores of modern FPGA devices for high-performance cryptography | |
US7480691B2 (en) | Arithmetic device for multiple precision arithmetic for Montgomery multiplication residue arithmetic | |
Moon et al. | Fast VLSI arithmetic algorithms for high-security elliptic curve cryptographic applications | |
JPH0580985A (ja) | Mを法として長い整数を乗算するための算術ユニツト及びそのような乗算デバイスを具えるr.s.a.変換器 | |
CN113467754A (zh) | 一种基于分解约简的格加密模乘运算方法及架构 | |
CN100527073C (zh) | 高效模乘方法及装置 | |
CN114527956A (zh) | 抗spa攻击的国密sm2算法中非定点标量乘法的计算方法 | |
KR102496446B1 (ko) | 모듈러 연산을 위한 워드 병렬 연산 방법 | |
KR20040055550A (ko) | 유한체 상의 두 원소의 곱을 구하는 직렬-병렬 곱셈기 | |
CN116561819A (zh) | 一种基于Toom-Cook环上多项式乘法的加解密方法及环上多项式乘法器 | |
Bie et al. | An energy-efficient reconfigurable asymmetric modular cryptographic operation unit for RSA and ECC | |
CN110232289A (zh) | 椭圆曲线密码的高速倍点运算方法 | |
CN115270155A (zh) | 一种获取大数拓展最大公约数的方法及硬件架构 | |
CN114594925A (zh) | 适用于sm2加密运算的高效模乘电路及其运算方法 | |
Rahman et al. | Highly area-efficient implementation of modular multiplication for elliptic curve cryptography | |
CN115967493A (zh) | 基于国密sm3的哈希原像零知识证明电路生成方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |