CN112202568B - 软硬件协同设计sm9数字签名通信方法和系统 - Google Patents
软硬件协同设计sm9数字签名通信方法和系统 Download PDFInfo
- Publication number
- CN112202568B CN112202568B CN202011072252.7A CN202011072252A CN112202568B CN 112202568 B CN112202568 B CN 112202568B CN 202011072252 A CN202011072252 A CN 202011072252A CN 112202568 B CN112202568 B CN 112202568B
- Authority
- CN
- China
- Prior art keywords
- digital signature
- hardware
- signature
- domain
- order
- 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
- 238000000034 method Methods 0.000 title claims abstract description 57
- 238000013461 design Methods 0.000 title claims abstract description 31
- 238000004891 communication Methods 0.000 title claims abstract description 17
- 230000008569 process Effects 0.000 claims abstract description 36
- 230000001133 acceleration Effects 0.000 claims abstract description 11
- 230000006870 function Effects 0.000 claims description 58
- 238000004364 calculation method Methods 0.000 claims description 55
- 238000012795 verification Methods 0.000 claims description 32
- 238000013507 mapping Methods 0.000 claims description 14
- 230000009467 reduction Effects 0.000 claims description 10
- 238000012360 testing method Methods 0.000 claims description 8
- 238000006243 chemical reaction Methods 0.000 claims description 7
- PXFBZOLANLWPMH-UHFFFAOYSA-N 16-Epiaffinine Natural products C1C(C2=CC=CC=C2N2)=C2C(=O)CC2C(=CC)CN(C)C1C2CO PXFBZOLANLWPMH-UHFFFAOYSA-N 0.000 claims description 3
- 239000004576 sand Substances 0.000 claims description 3
- 238000012886 linear function Methods 0.000 claims description 2
- 230000001172 regenerating effect Effects 0.000 claims 1
- 238000004519 manufacturing process Methods 0.000 abstract 1
- 238000011161 development Methods 0.000 description 5
- 230000007246 mechanism Effects 0.000 description 4
- 238000011160 research Methods 0.000 description 3
- 230000007547 defect Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007123 defense Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 229910052731 fluorine Inorganic materials 0.000 description 1
- 125000001153 fluoro group Chemical group F* 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000036962 time dependent Effects 0.000 description 1
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
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3006—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
- H04L9/3026—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters details relating to polynomials generation, e.g. generation of irreducible polynomials
-
- 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/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3066—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
- H04L9/3073—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves involving pairings, e.g. identity based encryption [IBE], bilinear mappings or bilinear pairings, e.g. Weil or Tate pairing
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- Algebra (AREA)
- Physics & Mathematics (AREA)
- Storage Device Security (AREA)
Abstract
本发明涉及通信安全技术领域,为在遵循国密SM9数字签名标准的前提下,提出一种实用高效的基于嵌入式片上系统(SOC)的软硬件协同实现的数字签名系统,本发明软硬件协同设计SM9数字签名通信系统和方法,包括软件实现模块和硬件实现模块,用以实现基于椭圆曲线建立的SM9数字签名协议,其中,硬件实现模块中,设置一个双线性对运算硬件加速模块实现双线性对的运算,设置一阶标量乘硬件加速模块实现签名过程中的标量乘运算;软件实现模块中,设置密码函数H1()H2()用于实现签名算法中的密码函数部分,设置十二阶扩域下幂运算实现幂的运算。软硬件协同设计SM9数字签名通信方法,本发明主要应用于设计制造场合。
Description
技术领域
本发明涉及通信安全技术领域,具体涉及软硬件协同设计SM9数字签名通信方法和装置。
背景技术
长久以来,我国都极度依赖从国外引进的加密方案,直接从国外采购相关产品,这无疑存在很多不可控的安全隐患。SM9数字签名方案是在2016年由我国国家密码管理局发布的一种标识密码标准,其技术方案完全自主可控具有极高的研究价值。SM9数字签名方案是一种非对称密码协议,是目前保障信息安全的主要手段之一,在当前密码研究领域中具有十分重要的地位。
非对称密码体系又称公钥密码体系,采用设置一对不同的密钥的方案,这一对密钥分别被称为公钥和私钥。其中公钥公开,私钥由接受信息方保存,发送方利用公开的公钥进行加密,接受方用自己持有的私钥进行解密。SM9密码协议是基于椭圆曲线建立,其安全性基于椭圆曲线的离散对数问题。SM9数字签名算法中包含双线性对(pairing)、次扩域下幂运算、次扩域下的标量乘运算等一系列运算流程。基于上述计算,相较于以往的公钥密码协议具有更强的安全性保证。
非对称密码协议虽然算法复杂度高、计算难度大,但省去了在安全信道进行协商密钥的过程。但是传统的公钥密码体系往往需要借助证书颁发机构(CA)作为可信第三方,负责用户公钥证书的生成、保管、维护、撤销等环节。这将耗费大量的计算和存储资源,同时也带来了密钥托管和用户私钥的可信性问题。2001年,Boneh和Franklin利用双线性对成功地设计了一个基于身份的加密方案(IBE),基于双线性对的公钥密码协议摆脱了需要借助第三方可信机构进行密钥托管的问题。SM9密码协议同样采用了这种基于身份的加密方案,因此其是一种具有极强优越性的加密方案。
SM9公钥密码协议虽然具有以上的优点,但是其计算量相较于以往的公钥密码协议更大,且涉及到有限域和椭圆曲线等多个数学领域的研究内容,这些极大的制约着双线性对加密技术进一步发展和应用。2004年Miller算法的应用使得双线性对的计算复杂度大幅度降低,此后很多研究人员基于Miller算法进行了大量的研究和优化,使得基于双线性对的公钥加密方案可以应用到实际的领域内。
SM9密码协议的提出弥补了我国密码安全领域的空缺,是一款真正的由我国完全自主可控加密方案并且具有极其强大的抗攻击能力。可以预见其必将会在智能终端、物联网、大数据和云存储等安全领域大显身手,并逐渐成为我国信息安全保护的核心手段。因此,针对SM9密码协议进行研究,对相关算法进行优化,设计高效可靠的系统,提出相应的抗攻击手段,具有重要的价值和广阔的发展前景。
发明内容
为克服现有技术的不足,本发明旨在在遵循国密SM9数字签名标准的前提下,针对BN曲线设计一种实用高效的基于嵌入式片上系统(SOC)的软硬件协同实现的数字签名系统,为高效快速地执行SM9数字签名算法提供一种有效的解决方案。本发明采取的技术方案是,软硬件协同设计SM9数字签名通信方法,步骤如下:
(1)密码生成中心产生公钥、私钥
密码生成中心选择并公开用一个字节表示的签名私钥并生成函数识别符hid;
用户A的标识为IDA,为产生用户A的签名私钥dsA,密码生成中心首先在有限域FN上计算t1=H1(IDA||hid,N)+ks,若t1=0则需重新产生签名主私钥,计算和公开签名主公钥,并更新已有用户的签名私钥;否则计算t2=ks·t1 -1,然后计算dsA=[t2]P1;签名主私钥对为(ks,dsA);
(2)数字签名生成算法
待签名的消息为比特串M,为了得到消息M的数字签名(h,S),作为签名者的用户A要实现的计算步骤如下:
步骤2):产生随机数r∈[1,N-1];
步骤4):计算整数h=H2(M||w,N),H2()为定义好的辅助密码函数;
步骤5):计算整数l=(r-h)mod N,若l=0则返回第二步;
步骤7):将h和S转换为字节串,得到消息M的签名(h,S);
(3)数字签名验证算法
为了检验收到的消息M′及其数字签名(h′,S′),作为验证者的用户B应实现以下的运算步骤:
步骤1):按一定规则将h′的数据类型转换为整数,检验h′∈[1,N-1]是否成立,若不成立则验证不通过;
步骤5):计算整数h1=H1(IDA||hid,N)
步骤9):计算整数h2=H2(M′||w′,N),检验h2=h′是否成立,若成立则验证通过;否则验证不通过。
参数选择如下:
SM9数字签名是基于256位BN曲线上的运算完成完整的数字签名方案,保证签名过程中所有的运算都在有限域下进行,选择的BN曲线为以下方程所示的一组椭圆曲线:
E:y2=x3+b(b≠0);
其中,x,y分别代表椭圆曲线的横纵坐标,b为自定义的参数。构造BN曲线的主要参数包括有限域的特征p(t),r次扰点群的阶r(t)以及frobenius映射的迹(trace)tr(t),这些都可以表示为参数t的函数:
q(t)=36t4+36t3+24t2+6t+1
N(t)=36t4+36t3+18t2+6t+1
tr(t)=6t2+1
该族椭圆曲线的嵌入次数k=12,因此在数字签名中使用的R-ate pairing算法需要在十二阶扩域中运算,通过三次有限域的扩展完成从素域到十二阶扩域的塔式扩张,α、ξ、v为对应的扩张系数,其有限域的扩展方式为:
(a)将素域扩展为二次扩域,约化多项式为:x2-α,α=-2;
(b)将二次扩域扩展为四次扩域,约化多项式为:x2-u,u2=α;
(c)将四次扩域扩展为十二次扩域,约化多项式为:x3-v,v2=u;
通过上述扩域方式,得到不同域下的值的表示方式,而不同域下的值又形成坐落于不同坐标系下的点,主体部分通过仿射坐标系实现椭圆曲线上点的表示,在双线性对运算模块使用雅各比坐标系表示,并通过转换函数进行数值的换算,所有在SM9数字签名算法运算中的点必须坐落于已经构造出的BN曲线上。
其中,密码函数H1的运算过程均按照SM9密码行业标准中定义进行运算,密码函数H1中需要使用密码杂凑函数选用由国家密码管理局批准的密码杂凑函数:SM3密码杂凑函数,该函数将输入的长度小于264的消息比特串进行运算输出一个长度为256比特的杂凑值,密码函数H1调用SM3密码杂凑函数实现将输入的比特串Z和整数n进行运算输出一个整数h参与后续的运算;
一阶标量乘算法一级标量乘模块的运算过程在映射坐标系中由点加和点倍运算实现:
其中,λ=(3x1 2+a)/(2y1);
其中,λ=(y2-y1)/(x2-x1);
通过SM9密码行业标准中定义多倍点公式实现一级标量乘运算;
由此,密码生成中心生成签名主公钥Ppub-s并将其公开,生成签名主私钥dsA将其保存以便进行验证。
数字签名生成过程中,步骤中1)的双线性对为设计的专用硬件加速模块,双线性对的计算时选用R-ate对完成相应的计算,使用R-ate对进行双线性对计算的完整算法参照SM9密码行业标准中的定义,其加密公钥P=(Px,Py)为BN曲线上素域有理点群G1中的点,私钥Q=(X1,Y1,Z1)属于BN曲线上二阶有限域有理点群G2中的点;
整个pairing运算过程在雅各比坐标系中由以下运算构成:点倍与直线函数、点加与直线函数、Frobenius映射到p次幂、Frobenius映射到p2次幂、Frobenius映射到p3次幂,其中,点倍与直线函数计算公式为
LT,T(P)坐标用(X2,Y2,Z2)。
点倍与直线函数计算公式为
LT,T(P)坐标用(X3,Y3,Z3)。
Frobenius映射到p次幂计算公式为
Frobenius映射到p2次幂计算公式为
Frobenius映射到p3次幂计算公式为
软硬件协同设计SM9数字签名通信装置,包括软件实现模块和硬件实现模块,用以实现基于椭圆曲线建立的SM9数字签名协议,进行双线性对运算、次扩域下幂运算、一阶以及二阶扩域下的标量乘运算、密码函数运算;其中,硬件实现模块中,设置一个双线性对运算硬件加速模块实现双线性对的运算,设置一阶标量乘硬件加速模块实现签名过程中的标量乘运算;软件实现模块中,设置密码函数H1()H2()用于实现签名算法中的密码函数部分,设置十二阶扩域下幂运算实现幂的运算。
模加减模块:设模加/减即计算C=(A±B)mod P的值,共有四种情况:如果是模加,则C=A+B或C=A+B-P;如果是模减,则C=A-B或C=A-B+P,利用一个3-2压缩器,将三个操作数压缩为两个操作数输入加法器;
模乘模块:为了避免除法,上的模乘运算采用蒙哥马利模乘来代替,Montgomery模乘即:Mont(X,Y)=X*Y*R-1mod P,其中R=2k,k为P的位数,其核心思想是将对P的取模运算转化为对R的取模和除法运算,这样在执行的过程中就只需要简单的截取和移位操作,具体使用两个计算单元计算通用表达式(c,z)=z+xy+c,取m=4,n=64,则将操作数分成4段,计算单元完成64位乘加运算,总共需要29个时钟周期;
运算模块由模加/减计算单元和模乘计算单元组成,由上述两个模块组成素域运算单元,有了底层计算单元之后,以之为基础设计计算单元,上的基本运算同样包括模加/减,模乘和模逆,与上不同的是,这些运算都是基于多项式规则来定义的,上的模加/减运算由两个独立的上的模加/减运算组成,即
A±B=(a1±b1)u+(a0±b0)
A*B=(a1u+a0)(b1u+b0)
=(a1b0+a0b1)u+(αa1b1+a0b0)
这里的a0、b0、a1、b1均为一阶素域上的值,根据SM9中的塔式扩张机制,这里的α=-2,将αa1b1替换成-(a1b1+a1b1),于是模乘运算包含4个独立的乘法和3个加减法,也可由两个独立的单元并行完成,因此其底层封装了两个模块;
软硬件协同设计SM9数字签名通信系统,包括密码生成中心、FPGA及其内存,密码生成中心产生公钥、私钥;所述内存中存储并在FPGA中运行数字签名生成算法程序、数字签名验证算法,程序步骤如下:
(1)数字签名生成算法
待签名的消息为比特串M,为了得到消息M的数字签名(h,S),作为签名者的用户A要实现的计算步骤如下:
步骤2):产生随机数r∈[1,N-1];
步骤4):计算整数h=H2(M||w,N),H2()为定义好的辅助密码函数;
步骤5):计算整数l=(r-h)mod N,若l=0则返回第二步;
步骤7):将h和S转换为字节串,得到消息M的签名(h,S);
(2)数字签名验证算法
为了检验收到的消息M′及其数字签名(h′,S′),作为验证者的用户B应实现以下的运算步骤:
步骤1):按一定规则将h′的数据类型转换为整数,检验h′∈[1,N-1]是否成立,若不成立则验证不通过;
步骤5):计算整数h1=H1(IDA||hid,N)
步骤9):计算整数h2=H2(M′||w′,N),检验h2=h′是否成立,若成立则验证通过;否则验证不通过。
本发明的特点及有益效果是:
本发明遵循国密SM9数字签名协议,在现场可编程门阵列(FPGA)平台上实现了SM9数字签名系统的签名和认证过程,均达到较好的实验结果。本发明采用了软硬件协同设计的方法,所述双线性对实现装置采用并行化设计,极大提高了提高运算速度;所述一阶素域下标量乘采用了并行化设计和防御措施,提高运算速度的同时具有一定的抗侧信道攻击的作用。采用软件进行硬件模块的调用的同时完成整体签名算法。操作简单,易于实现,有很大的实用价值。
附图说明:
图1SM9数字签名算法签名过程。
图2模加减运算模块架构
图3模乘运算模块架构。
图5双线性对运算模块架构。
图6一阶素域标量乘运算模块架构
图7SM9数字签名算法认证过程。
图8基于Microblaze的片上系统。
具体实施方式
为克服现有技术的不足,本发明旨在在遵循国密SM9数字签名标准的前提下,针对BN曲线设计一种实用高效的基于SOC嵌入式的软硬件协同实现的数字签名系统。程序整体运行在FPGA开发板上,软件部分存储在FPGA开发板的板上内存中,硬件部分由FPGA开发板中逻辑单元构建,利用JTAG接口与主机相连,主机将需要签名或者认证信息通过接口传送给FPGA,FPGA进行运算并将结果返回给PC。用硬件模块能显著提高计算效率,降低功耗,增加密码模块的抗攻击性能。软件部分完成对硬件模块的调用,并对算法其他部分进行实现。两者结合,为高效快速地执行SM9数字签名算法提供了一种有效的解决方案。
本发明设计了一种基于软硬件协同设计实现的SM9数字签名方案。方案遵循国密SM9数字签名算法的标准,使用了Barreto–Naehrig(BN)曲线作为参数曲线,数据位宽采用256比特,双线性对采用R-ate pairing加密算法。在该装置中,1)提出了一种基于软硬件协同实现SM9数字签名方案的运算系统,按协议要求完成签名的生成和验证过程2)设计了一种双线性对的并行实现装置,完成数字签名协议中的双线性对运算。3)设计一种基于蒙哥马利阶梯算法的一阶标量乘并行实现装置,完成数字签名协议中的双线性对运算。所述实现装置的软件部分,完成对硬件部分的调度并完成其余运算,针对其中部分算法进行相关优化。所述实现装置的硬件部分设计了双线性对运算和标量乘运算设计了高效的专用硬件加速器。
下面结合附图及实例,对本发明进行进一步详细说明。应该指出,此处所描述的具体实施实例仅仅用以解释本发明,并不用于限定本发明。为了使本发明的目的、技术方案和优点更加清晰,本实例在以本发明技术方案为前提下进行实施,给出了详细的实施方式和具体的操作过程。
(1)参数选择
本发明是基于256位BN曲线上的运算完成完整的数字签名方案,保证签名过程中所有的运算都在有限域下进行。参数的选择对整个SM9数字签名算法的计算效率和安全性具有十分重要的影响。本发明选择的BN曲线为以下方程所示的一组椭圆曲线:
E:y2=x3+b(b≠0);
构造BN曲线的主要参数包括有限域的特征p(t),r次扰点群的阶r(t)以及frobenius映射的迹(trace)tr(t),这些都可以表示为参数t的函数:
q(t)=36t4+36t3+24t2+6t+1
N(t)=36t4+36t3+18t2+6t+1
tr(t)=6t2+1
该族椭圆曲线的嵌入次数k=12,因此在数字签名中使用的R-ate pairing算法需要在十二阶扩域中运算。本发明所选算法通过三次有限域的扩展完成从素域到十二阶扩域的塔式扩张,其有限域的扩展方式为:
(a)将素域扩展为二次扩域,约化多项式为:x2-α,α=-2;
(b)将二次扩域扩展为四次扩域,约化多项式为:x2-u,u2=α;
(c)将四次扩域扩展为十二次扩域,约化多项式为:x3-v,v2=u;
通过上述扩域方式,可以得到不同域下的值的表示方式,而不同域下的值又可以形成坐落于不同坐标系下的点。本发明主体部分通过仿射坐标系实现椭圆曲线上点的表示,在双线性对运算模块使用雅各比坐标系表示,并通过转换函数进行数值的换算。所有在SM9数字签名算法运算中的点必须坐落于已经构造出的BN曲线上。
(2)密码生成中心生成公钥、私钥
密码生成中心(KGC)通过随机数生成器产生随机数ks∈[1,N-1]作为签名主私钥,计算中的元素Ppub-s作为签名主公钥,则签名主密钥对为(ks,Ppub-s)。密码生成中心保存ks,公开Ppub-s。
密码生成中心选择并公开用一个字节表示的签名私钥并生成函数识别符hid。
用户A的标识为IDA,为产生用户A的签名私钥dsA,密码生成中心首先在有限域FN上通过计算t1=H1(IDA||hid,N)+ks,若t1=0则需重新产生签名主私钥,计算和公开签名主公钥,并更新已有用户的签名私钥;否则计算t2=ks·t1 -1,然后通过软件实现一阶标量乘算法计算dsA=[t2]P1作为私钥保存。
其中,密码函数H1的运算过程均按照SM9密码行业标准中定义进行运算。密码函数H1中需要使用密码杂凑函数选用由国家密码管理局批准的密码杂凑函数:SM3密码杂凑函数。该函数将输入的长度小于264的消息比特串进行运算输出一个长度为256比特的杂凑值。密码函数H1调用SM3密码杂凑函数实现将输入的比特串Z和整数n进行运算输出一个整数h参与后续的运算。
一阶标量乘算法一级标量乘模块的运算过程在映射坐标系中由点加和点倍运算实现。
其中,λ=(3x1 2+a)/(2y1);
其中,λ=(y2-y1)/(x2-x1);
通过SM9密码行业标准中定义多倍点公式实现一级标量乘运算。
由此,密码生成中心生成签名主公钥Ppub-s并将其公开,生成签名主私钥dsA将其保存以便进行验证。
(3)数字签名生成过程
SM9数字签名生成(图1)运算过程如下:
待签名的消息为比特串M,为了得到消息M的数字签名(h,S),作为签名者的用户A要实现的计算步骤如下:
步骤2):产生随机数r∈[1,N-1];
步骤4):计算整数h=H2(M||w,N),H2()为定义好的辅助密码函数;
步骤5):计算整数l=(r-h)mod N,若l=0则返回第二步;
步骤7):将h和S转换为字节串,得到消息M的签名(h,S);
其中,步骤中1)的双线性对为设计的专用硬件加速模块,双线性对的计算时选用R-ate对完成相应的计算。使用R-ate对进行双线性对计算的完整算法参照SM9密码行业标准中的定义,其加密公钥P为BN曲线上素域有理点群G1中的点,私钥Q属于BN曲线上二阶有限域有理点群G2中的点。
整个pairing运算过程在雅各比坐标系中由以下运算构成:点倍与直线函数、点加与直线函数、Frobenius映射到p次幂、Frobenius映射到p2次幂、Frobenius映射到p3次幂。其中,点倍与直线函数计算公式为
点倍与直线函数计算公式为
Frobenius映射到p次幂计算公式为
Frobenius映射到p2次幂计算公式为
Frobenius映射到p3次幂计算公式为
模加减模块:设模加(减)即计算C=(A±B)mod P的值,共有四种情况:如果是模加,则C=A+B或C=A+B-P;如果是模减,则C=A-B或C=A-B+P。加了一个3-2压缩器,将三个操作数压缩为两个操作数输入加法器。上的模加(减)计算单元的硬件架构如图2所示。
模乘模块:为了避免除法,上的模乘运算采用蒙哥马利(Montgomery)模乘来代替。Montgomery模乘即:Mont(X,Y)=X*Y*R-1mod P,其中R=2k,k为P的位数,其核心思想是将对P的取模运算转化为对R的取模和除法运算,这样在执行的过程中就只需要简单的截取和移位操作,非常适合硬件实现。使用两个计算单元计算通用表达式(c,z)=z+xy+c,取m=4,n=64,则将操作数分成4段,计算单元完成64位乘加运算,总共需要29个时钟周期。上的模乘计算单元的硬件架构如图3所示。
运算模块由模加(减)计算单元和模乘计算单元组成。由上述两个模块组成素域运算单元,有了底层计算单元之后,就可以以此为基础设计计算单元。上的基本运算同样包括模加(减),模乘和模逆,与上不同的是,这些运算都是基于多项式规则来定义的。上的模加(减)运算由两个独立的上的模加(减)运算组成,即
A±B=(a1±b1)u+(a0±b0)
A*B=(a1u+a0)(b1u+b0)
=(a1b0+a0b1)u+(αa1b1+a0b0)
这里的a0、b0、a1、b1均为一阶素域上的值。根据SM9中的塔式扩张机制,这里的α=-2,可以将αa1b1替换成-(a1b1+a1b1),于是模乘运算包含4个独立的乘法和3个加减法,也可由两个独立的单元并行完成。因此其底层封装了两个模块,硬件架构如图4所示。
双线性对的硬件模块采用并行化设计,因此下含两个相同的计算单元。模逆运算可以使用扩展欧几里得算法转换成一系列模加(减)和模乘运算。以上计算公式均设计为专用硬件模块进行实现,双线性对的硬件模块架构如图5所示。
步骤2)中的随机数r由专门的随机数生成器产生。
A±B=(a1±b1)v+(a0±b0)
A*B=(a1v+a0)(b1v+b0)
=(a1b0+a0b1)v+(βa1b1+a0b0)
A±B=(a2±b2)w2+(a1±b1)w+(a0±b0)
A*B=(a0+a1w+a2w2)(b0+b1w+b2w2)
=[(a1+a2)*(b1+b2)-a1*b1-a2*b2]*γ+a0*b0
+[(a0+a1)(b0+b1)-a0*b0-a1*b1+γ*a2*b2]w
+[(a0+a2)(b0+b2)-a0*b0-a2*b2+a1*b1]w2
步骤4)密码函数H2的运算过程均按照SM9密码行业标准定义进行运算。密码函数H2中需要使用密码杂凑函数选用由国家密码管理局批准的密码杂凑函数:SM3密码杂凑函数。该函数将输入的长度小于264的消息比特串进行运算输出一个长度为256比特的杂凑值。密码函数H2调用SM3密码杂凑函数实现将输入的比特串Z和整数n进行运算输出一个整数h参与后续的运算。
步骤6)实现的一阶标量乘运算通过专门设计的硬件加速模块实现,该一级标量乘模块采用了蒙哥马利阶梯算法来进行防御侧信道攻击。本设计利用标量位在二级制下0、1的不同但采取相同的赋值操作的行为,防止标量位被能耗检测等手段分析出密钥位的方案。
一级标量乘模块的硬件模块同样采用并行化设计,因此下含两个相同的计算单元。模逆运算可以使用扩展欧几里得算法转换成一系列模加(减)和模乘运算,由于在一级标量乘模块计算过程中只使用一次,所以没有将其单独做成一个硬件计算单元。一级标量乘模块的运算过程在映射坐标系中由点加和点倍运算实现。
其中,λ=(3x1 2+a)/(2y1);
其中,λ=(y2-y1)/(x2-x1);
步骤7)中转换为字节串的方式按照SM9密码行业标准中的定义进行。
(4)数字签名验证过程
SM9数字签名验证(图2)运算过程如下:
为了检验收到的消息M′及其数字签名(h′,S′),作为验证者的用户B应实现以下的运算步骤:
步骤1):按一定规则将h′的数据类型转换为整数,检验h′∈[1,N-1]是否成立,若不成立则验证不通过;
步骤5):计算整数h1=H1(IDA||hid,N)
步骤9):计算整数h2=H2(M′||w′,N),检验h2=h′是否成立,若成立则验证通过;否则验证不通过;
其中,步骤1)中将h′的数据类型转换为整数的方式按照SM9密码行业标准中的定义进行。
使用函数方式判断h′是否位于规定的区间内,若条件符合则继续下面步骤;若不符合则验证不通过,验证过程结束。
步骤3)中使用的双线性对硬件加速器与数字签名生成算法中所使用的完全相同,该硬件加速器完成该部分的运算。
步骤4)中十二阶有限域模幂运算同样与数字签名生成算法中所使用的完全相同,也在软件部分实现。
步骤5)中的密码函数H1与密码生成中心中使用的算法完全相同,也在软件部分实现。
步骤6)中涉及为二阶有限域下的标量乘运算和点加运算,而标量乘运算也是由点加点倍运算组成。一级标量乘模块的运算过程在映射坐标系中由点加和点倍运算实现。
其中,λ=(3x1 2+a)/(2y1);
其中,λ=(y2-y1)/(x2-x1);
二阶有限域下的标量乘运算按照SM9密码行业标准中的定义进行。该部分不涉及敏感数据的运算,因此不需要采取相应保护措施防止侧信道攻击,使用软件实现。
步骤7)中的双线性对运算与步骤3),重复调用相应的硬件加速模块即可。
步骤8)十二阶有限域下的模乘运算方式参照数字签名生成算法中的定义,将w′的数据类型转换为比特串照照SM9密码行业标准中的定义进行。
步骤9)中的密码函数H2与数字签名生成过程中使用的算法完全相同,也在软件部分实现。对产生的结果进行比对,若相同则通过验证,否则验证失败。
(5)实现方式
本发明硬件部分使用Verilog HDL实现,软件部分使用C语言实现。根据SM9标准中的第五部分中提供测试用例的参数进行计算,并将输出的结果与测试用例进行对比。测试结果表明,FPGA加密系统的运行结果和SM9标准中的第五部分中提供测试用例一致,验证本发明的功能正确性。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (6)
1.一种软硬件协同设计SM9数字签名通信方法,其特征是,步骤如下:
(1)密码生成中心产生公钥、私钥
密码生成中心选择并公开用一个字节表示的签名私钥并生成函数识别符hid;
用户A的标识为IDA,为产生用户A的签名私钥dsA,密码生成中心首先在有限域FN上计算t1=H1(IDA||hid,N)+ks,若t1=0则需重新产生签名主私钥,计算和公开签名主公钥,并更新已有用户的签名私钥;否则计算t2=ks·t1 -1,然后计算dsA=[t2]P1;签名主私钥对为(ks,dsA);其中,密码函数H1的运算过程均按照SM9密码行业标准中定义进行运算,密码函数H1中需要使用密码杂凑函数选用由国家密码管理局批准的密码杂凑函数:SM3密码杂凑函数,该函数将输入的长度小于264的消息比特串进行运算输出一个长度为256比特的杂凑值,密码函数H1调用SM3密码杂凑函数实现将输入的比特串Z和整数n进行运算输出一个整数h参与后续的运算;
(2)数字签名生成算法
待签名的消息为比特串M,为了得到消息M的数字签名(h,S),作为签名者的用户A要实现的计算步骤如下:
步骤2):产生随机数r∈[1,N-1];
步骤4):计算整数h=H2(M||w,N),H2()为定义好的辅助密码函数;
步骤5):计算整数l=(r-h)mod N,若l=0则返回步骤2):产生随机数r∈[1,N-1];
步骤7):将h和S转换为字节串,得到消息M的签名(h,S);
(3)数字签名验证算法
为了检验收到的消息M′及其数字签名(h′,S′),作为验证者的用户B应实现以下的运算步骤:
步骤1):按一定规则将h′的数据类型转换为整数,检验h′∈[1,N-1]是否成立,若不成立则验证不通过;
步骤5):计算整数h1=H1(IDA||hid,N)
步骤9):计算整数h2=H2(M′||w′,N),检验h2=h′是否成立,若成立则验证通过;否则验证不通过。
2.如权利要求1所述的软硬件协同设计SM9数字签名通信方法,其特征是,参数选择如下:
SM9数字签名是基于256位BN曲线上的运算完成完整的数字签名方案,保证签名过程中所有的运算都在有限域下进行,选择的BN曲线为以下方程所示的一组椭圆曲线:
E:y2=x3+b(b≠0);
其中,x,y分别代表椭圆曲线的横纵坐标,b为自定义的参数,构造BN曲线的主要参数包括有限域的特征p(t),r次扰点群的阶r(t)以及frobenius映射的迹(trace)tr(t),这些都可以表示为参数t的函数:
p(t)=36t4+36t3+24t2+6t+1
r(t)=36t4+36t3+18t2+6t+1
tr(t)=6t2+1
该组椭圆曲线的嵌入次数k=12,因此在数字签名中使用的R-ate pairing算法需要在十二阶扩域中运算,通过三次有限域的扩展完成从素域到十二阶扩域的塔式扩张,α、ξ、v为对应的扩张系数,其有限域的扩展方式为:
(a)将素域扩展为二次扩域,约化多项式为:x2-α,α=-2;
(b)将二次扩域扩展为四次扩域,约化多项式为:x2-u,u2=α;
(c)将四次扩域扩展为十二次扩域,约化多项式为:x3-v,v2=u;
通过上述有限域的扩展方式,得到不同域下的值的表示方式,而不同域下的值又形成坐落于不同坐标系下的点,主体部分通过仿射坐标系实现椭圆曲线上点的表示,在双线性对运算模块使用雅各比坐标系表示,并通过转换函数进行数值的换算,所有在SM9数字签名算法运算中的点必须坐落于已经构造出的BN曲线上。
4.如权利要求3所述的软硬件协同设计SM9数字签名通信方法,其特征是,数字签名生成算法中,步骤中1)的双线性对为设计的专用硬件加速模块,双线性对的计算时选用R-ate对完成相应的计算,使用R-ate对进行双线性对计算的完整算法参照SM9密码行业标准中的定义,其加密公钥P=(Px,Py)为BN曲线上素域有理点群G1中的点,私钥Q=(X1,Y1,Z1)属于BN曲线上二阶有限域有理点群G2中的点;
整个双线性对运算过程在雅各比坐标系中由以下运算构成:点倍与直线函数、点加与直线函数、Frobenius映射到p次幂、Frobenius映射到p2次幂、Frobenius映射到p3次幂,其中,点倍与直线函数计算公式为
LT,T(P)坐标用(X2,Y2,Z2);
点倍与直线函数计算公式为
LT,T(P)坐标用(X3,Y3,Z3)
Frobenius映射到p次幂计算公式为
Frobenius映射到p2次幂计算公式为
Frobenius映射到p3次幂计算公式为
6.如权利要求5所述的软硬件协同设计SM9数字签名通信系统,其特征是,包括密码生成中心、FPGA及其内存,密码生成中心产生公钥、私钥;所述内存中存储并在FPGA中运行数字签名生成算法程序、数字签名验证算法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011072252.7A CN112202568B (zh) | 2020-10-09 | 2020-10-09 | 软硬件协同设计sm9数字签名通信方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011072252.7A CN112202568B (zh) | 2020-10-09 | 2020-10-09 | 软硬件协同设计sm9数字签名通信方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112202568A CN112202568A (zh) | 2021-01-08 |
CN112202568B true CN112202568B (zh) | 2022-05-20 |
Family
ID=74014391
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011072252.7A Expired - Fee Related CN112202568B (zh) | 2020-10-09 | 2020-10-09 | 软硬件协同设计sm9数字签名通信方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112202568B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112398652B (zh) * | 2021-01-20 | 2021-06-08 | 北京信安世纪科技股份有限公司 | 信息传输方法、装置、设备和存储介质 |
CN113660087B (zh) * | 2021-07-06 | 2023-09-26 | 浙江传媒学院 | 一种基于有限域的sm9标识密码算法硬件实现系统 |
CN113794572A (zh) * | 2021-09-28 | 2021-12-14 | 南京宁麒智能计算芯片研究院有限公司 | 一种高性能椭圆曲线数字签名与验签的硬件实现系统和方法 |
CN114117547B (zh) * | 2021-11-15 | 2024-07-23 | 武汉大学 | 一种基于预计算表的sm9数字签名加速生成方法以及数字签名加速验证方法 |
CN114143005B (zh) * | 2021-11-15 | 2023-12-08 | 武汉大学 | 一种Tate双线性对及其变体的加速方法 |
CN114301585B (zh) * | 2021-11-17 | 2024-01-05 | 北京智芯微电子科技有限公司 | 标识私钥的使用方法、生成方法和管理系统 |
CN114650135B (zh) * | 2022-04-01 | 2024-01-02 | 浙江大学 | 一种软硬件协同的sm2椭圆曲线密码算法实现方法 |
CN115102700A (zh) * | 2022-08-25 | 2022-09-23 | 北京智芯微电子科技有限公司 | 安全通信方法、装置、芯片、电子设备及可读存储介质 |
CN115208571A (zh) * | 2022-09-14 | 2022-10-18 | 中安网脉(北京)技术股份有限公司 | 一种基于高速混合加密算法的并行多路硬件实现方法 |
CN115834086B (zh) * | 2023-02-15 | 2023-05-02 | 山东大学 | 数字签名中多重指数幂和多标量乘的高效实现方法及系统 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10277403B2 (en) * | 2016-02-25 | 2019-04-30 | Onboard Security, Inc. | Digital signature method and apparatus |
IT201600076089A1 (it) * | 2016-07-20 | 2018-01-20 | St Microelectronics Srl | Procedimento per la generazione di una firma digitale di un messaggio, corrispondenti unita' di generazione, apparato elettronico e prodotto informatico |
CN107040385B (zh) * | 2017-05-23 | 2020-10-27 | 广东工业大学 | 一种基于sm2椭圆曲线的签名验证算法的实现方法及系统 |
CN107395368B (zh) * | 2017-08-18 | 2020-09-11 | 北京无字天书科技有限公司 | 无介质环境中的数字签名方法及解封装方法与解密方法 |
CN108650078A (zh) * | 2018-03-22 | 2018-10-12 | 北京中电华大电子设计有限责任公司 | 一种sm9标识密码算法的加速方法 |
CN109951288B (zh) * | 2019-01-22 | 2020-08-28 | 中国科学院信息工程研究所 | 一种基于sm9数字签名算法的分级签名方法和系统 |
CN110011802B (zh) * | 2019-02-27 | 2021-07-06 | 武汉大学 | 一种高效的sm9两方协同生成数字签名的方法及系统 |
CN110505061B (zh) * | 2019-09-06 | 2022-05-03 | 北京天诚安信科技股份有限公司 | 一种数字签名算法及系统 |
CN110896351B (zh) * | 2019-11-14 | 2022-07-26 | 湖南盾神科技有限公司 | 基于全域哈希的身份基数字签名方法 |
-
2020
- 2020-10-09 CN CN202011072252.7A patent/CN112202568B/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN112202568A (zh) | 2021-01-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112202568B (zh) | 软硬件协同设计sm9数字签名通信方法和系统 | |
CN106100844B (zh) | 基于点盲化方法的优化自动双线性对加密方法及装置 | |
Zheng et al. | The software/hardware co-design and implementation of SM2/3/4 encryption/decryption and digital signature system | |
CN103259662A (zh) | 一种新的基于整数分解问题的代理签名及验证方法 | |
CN100428140C (zh) | 椭圆曲线密码体制协处理器的实现方法 | |
CN107171788B (zh) | 一种基于身份且签名长度恒定的在线离线聚合签名方法 | |
Wu et al. | A lightweight SM2-based security authentication scheme for smart grids | |
Tian et al. | Multidimensional Data Aggregation Scheme For Smart Grid with Differential Privacy. | |
Ma et al. | Attribute-based blind signature scheme based on elliptic curve cryptography | |
Zhu et al. | A privacy-preserving data aggregation scheme based on chinese remainder theorem in mobile Crowdsensing system | |
CN104618098B (zh) | 一种集合成员关系判定的密码学构造方法及系统 | |
Wu et al. | Cryptanalysis and improvement of a new certificateless signature scheme in the standard model | |
Zhang et al. | An Improved Public Key Cryptographic Algorithm Based on Chebyshev Polynomials and RSA | |
Vijayakumar et al. | Comparative study of hyperelliptic curve cryptosystem over prime field and its survey | |
Bedoui et al. | A Secure Hardware Implementation for Elliptic Curve Digital Signature Algorithm. | |
CN111147240B (zh) | 一种有追溯能力的隐私保护方法及系统 | |
CN107920352A (zh) | 一种基于混沌的无线传感器网络广播身份认证方法 | |
Petzoldt et al. | Linear recurring sequences for the UOV key generation revisited | |
Ma et al. | Efficient pairing-free attribute-based blind signature scheme based on ordered binary decision diagram | |
CN104902471A (zh) | 无线传感器网络中基于身份的密钥交换设计方法 | |
CN114024684A (zh) | 一种基于双线性ElGamal密码体制的多维数据聚合方法 | |
CN107359982A (zh) | 抗代内/间攻击的同态签名方法 | |
Li et al. | A novel algorithm for scalar multiplication in ECDSA | |
Mohapatra | Signcryption schemes with forward secrecy based on elliptic curve cryptography | |
Fares et al. | Design and Implementation of Certificateless Cryptography for IoT Applications |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20220520 |