一种椭圆曲线数字签名与验签的硬件实现方法和系统技术方案

技术编号:31320288 阅读:21 留言:0更新日期:2021-12-13 00:04
本发明专利技术公开一种椭圆曲线数字签名与验签的硬件实现方法和系统,属于信息安全技术领域。针对现有技术中存在的椭圆曲线数字签名算法计算复杂度高,硬件性能不够,加速难度大的问题,本发明专利技术硬件实现方法,将倍点、点加、模乘运算、模加运算、模减运算、模逆运算、模移位运算等底层运算集成在一起,构建新的计算阵列结构,优化调度方法,整合计算资源并实现共享,减少计算过程中的调用次数和硬件资源消耗,提高硬件性能和调度顺序,降低系统计算时间,提高计算效率,降低硬件资源使用,取得更好的性能。取得更好的性能。取得更好的性能。

【技术实现步骤摘要】
一种椭圆曲线数字签名与验签的硬件实现方法和系统


[0001]本专利技术涉及信息安全
,更具体地说,涉及一种椭圆曲线数字签名与验签的硬件实现方法和系统。

技术介绍

[0002]椭圆曲线密码学(ECC,Elliptic Curve Cryptography),是一种建立公开密钥加密的算法,基于椭圆曲线数学,最早在1985年由Neal Koblitz和Victor Miller分别独立提出。与RSA加密算法相比,椭圆曲线加密具有更高的安全性、更小的计算量,逐渐成为密码学研究的热点,现已被多个国际标准化组织作为标准化文件。目前ECC算法在数字签名、移动设备通信、安全性半导体、区块链等领域均有重要应用。
[0003]椭圆曲线数字签名算法(ECDSA,Elliptic Curve Digital Signature Algorithm),于1999年成为ANSI标准,并于2000年成为IEEE和NIST标准。椭圆曲线数字签名算法是椭圆加密与数字签名算法的结合,由于其计算量小、处理速度快、存储空间占用小等特点,被广泛应用于电子商务系统和其他网络领域,并逐渐成为当前主流区块链平台及项目的默认签名机制。随着网络传输技术和硬件性能的提升,各
对ECDSA算法的速度要求也越来越高,而ECDSA算法中的标量乘计算复杂度高,尤其是模乘的实现与点加、倍点的调度耗时较长,是硬件加速的难点。
[0004]中国专利申请一种双域椭圆曲线点乘硬件加速器,申请号CN202010605159.1,公开日2020年10月27日,公开了一种双域椭圆曲线点乘硬件加速器,该硬件加速器分为模运算层和点运算层,其中该模运算层包括素数域和二进制域模约减、模乘、模逆模块;点运算层包括素数域NAF点乘运算模块,倍点和点加以及二进制域点乘模块。其中,所述硬件加速器是作为从设备挂载在设备总线上并且连接到处理器,处理器通过配置该硬件加速器中的功能寄存器来实现不同的加速运算模式,该专利技术采用传统蒙哥马利模乘,所需硬件面积较大,且算法实现复杂,硬件无法灵活地进行重构;该专利技术未对Jacobian坐标系下的点加与倍点计算进行进一步调度优化,计算时间与资源利用未达到最优;该专利技术未充分利用各层次下共同的计算类型,未对ECDSA算法中最高层次的签名与验签计算进行资源重用的优化。

技术实现思路

[0005]1.要解决的技术问题
[0006]针对现有技术中存在的椭圆曲线数字签名算法计算复杂度高,硬件性能不够,加速难度大的问题,本专利技术提供一种椭圆曲线数字签名与验签的硬件实现方法和系统,优化运算模块调度顺序,降低系统计算时间,提高计算效率,降低硬件资源使用,取得更好的性能。
[0007]2.技术方案
[0008]本专利技术的目的通过以下技术方案实现。
[0009]一种椭圆曲线数字签名与验签的硬件实现方法,包括以下步骤:
[0010]读取椭圆曲线参数,判断功能选择信号将系统配置为签名与验签模式;
[0011]实现椭圆曲线签名与验签调度,在签名算法模式系统调用两次标量乘运算、一次模加运算、两次模乘运算、一次模逆运算和一次取模运算;在验签算法模式,系统调用两次标量乘运算、一次点加运算、两次模乘运算、一次模逆运算和一次取模运算;
[0012]输出结果,运算结束。
[0013]在签名模式下,椭圆曲线参数与配置从数据有效信号开始计数,签名模式下从第一个时钟开始,输入端口依次传入的数据为椭圆曲线参数a、模数p、基点x坐标Gx、基点y坐标Gy、密钥d、随机数k、明文e和基点的阶n。
[0014]调度时将基点G与密钥d进行标量乘,生成公钥Q=dG;
[0015]将基点G与随机数k进行标量乘,生成点R=(x1,y1)=kG;
[0016]生成数字签名参数r=x1mod n(n为基点G的阶);
[0017]调用模乘、模逆、模加,生成数字签名参数s=k
‑1(e+dr)mod n。
[0018]在验签模式下,椭圆曲线参数与配置从第一个时钟开始,输入端口依次传入的数据为椭圆曲线参数a、模数p、基点x坐标Gx、基点y坐标Gy、待验证签名数据r

、待验证签名数据s

、明文e、基点的阶n、公钥Q的x坐标Qx和公钥Q的y坐标Qy。
[0019]调度时计算c=(s

)
‑1mod n;
[0020]计算u1=ec mod n和u2=r

c mod n;
[0021]调用标量乘,计算u1G和u2Q;
[0022]调用点加,计算(x1,y1)=u1G+u2Q;
[0023]生成验签参数v=x1mod n。
[0024]优选的,签名与验签控制器调用标量乘计算、点加和倍点计算,以及各种模运算。签名与延签算法包括四个层次,最高层次为椭圆曲线数字签名与验签计算调度,第三层次为标量乘计算,第二层次为点加和倍点计算,第一层次为运算模块计算;最高层次不仅调用第三层次的标量乘计算,还调用第一层次的点加和倍点计算,以及第二层次的运算模块计算。
[0025]优选的,将点加和倍点运算映射到Jacobian坐标系执行。对于一次完整的标量乘来说,只需要两次模逆,减少了模逆运算的次数,进而减少了计算量。
[0026]优选的,对Jacobian坐标系下的点加、倍点计算进行调度优化,减少计算过程中模乘的调用次数和寄存器的消耗。
[0027]具体实现方法如下:
[0028]F
p
上的椭圆曲线方程Ep(a,b):y2=x3+ax+b上的点(x,y)可以表示为(X,Y,Z),其中令x=X/Z2,y=Y/Z3(Z≠0,若Z=0则便是原坐标系下的无穷点),带入椭圆曲线可得:
[0029][0030]Y2=X3+aXZ4+bZ6[0031]其中a,b∈Fp且4a3+27b2≠0 mod p.
[0032]对于(X1,Y1,Z1)和(X2,Y2,Z2)若存在某个点u∈Fp且u≠0,使得:
[0033]X1=u2X2,Y1=u3Y2,Z1=uZ2,则称这两个点三元组等价,表示同一个点。
[0034]Jacobian坐标系下的,Ep(a,b)上的加法运算定义如下:
[0035](a)O+O=P;
[0036](b)P+O=O+P=P
[0037](c)
[0038]P的逆元素

P=(u2X2,

u3Y2,uZ2),u∈Fp且u≠0,P+(

P)=O
[0039](d)设点
[0040]P1=(X1,Y1,Z1)∈E(Fp)\{0},P2=(X2,Y2,Z2)∈E(Fp)\{0},P3=P1+P2=(X3,Y3,Z3)≠O,
[0041]若P1≠P2则:
[0042]λ3=λ1‑
λ2,λ6=λ4‑
λ5λ7=λ1+λ2,λ8=λ本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种椭圆曲线数字签名与验签的硬件实现方法,其特征在于,包括以下步骤:读取椭圆曲线参数,判断功能选择信号将系统配置为签名与验签模式;实现椭圆曲线签名与验签调度,在签名算法模式系统调用两次标量乘运算、一次模加运算、两次模乘运算、一次模逆运算和一次取模运算;在验签算法模式,系统调用两次标量乘运算、一次点加运算、两次模乘运算、一次模逆运算和一次取模运算;输出结果,运算结束。2.根据权利要求1所述的一种椭圆曲线数字签名与验签的硬件实现方法,其特征在于,签名与验签控制器调用标量乘计算、点加和倍点计算,以及各种模运算。3.根据权利要求2所述的一种椭圆曲线数字签名与验签的硬件实现方法,其特征在于,将点加和倍点运算映射到Jacobian坐标系执行。4.根据权利要求3所述的一种椭圆曲线数字签名与验签的硬件实现方法,其特征在于,对Jacobian坐标系下的点加、倍点计算进行调度优化,减少计算过程中模乘的调用次数和寄存器的消耗。5.根据权利要求4所述的一种椭圆曲线数字签名与验签的硬件实现方法,其特征在于,采用NAF算法降低标量乘的...

【专利技术属性】
技术研发人员:李丽龙威傅玉祥何书专陈健
申请(专利权)人:南京宁麒智能计算芯片研究院有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1