CN117118637B - 数据处理方法、装置、设备及计算机可读存储介质 - Google Patents
数据处理方法、装置、设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN117118637B CN117118637B CN202311383150.0A CN202311383150A CN117118637B CN 117118637 B CN117118637 B CN 117118637B CN 202311383150 A CN202311383150 A CN 202311383150A CN 117118637 B CN117118637 B CN 117118637B
- Authority
- CN
- China
- Prior art keywords
- digital signature
- signature algorithm
- target
- mapping
- point
- 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.)
- Active
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 34
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 484
- 238000013507 mapping Methods 0.000 claims abstract description 243
- 238000000034 method Methods 0.000 claims description 49
- 238000012545 processing Methods 0.000 claims description 24
- 238000004590 computer program Methods 0.000 claims description 17
- 238000012795 verification Methods 0.000 claims description 14
- 241000120020 Tela Species 0.000 claims 2
- 238000010586 diagram Methods 0.000 description 10
- 238000004891 communication Methods 0.000 description 8
- 230000001133 acceleration Effects 0.000 description 7
- 238000004364 calculation method Methods 0.000 description 7
- 238000006243 chemical reaction Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 230000002441 reversible effect Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 241000234282 Allium Species 0.000 description 1
- 235000002732 Allium cepa var. cepa Nutrition 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Complex Calculations (AREA)
Abstract
本申请实施例公开了一种数据处理方法、装置、设备及计算机可读存储介质,包括:在采用目标数字签名算法对输入的第一目标点和第一参数进行点乘运算时,基于参考数字签名算法与目标数字签名算法之间的映射关系,将目标数字签名算法下的第一目标点映射为参考数字签名算法下的第一参考点;通过椭圆曲线密码学ECC加速器,采用参考数字签名算法对第一参考点和第一参数进行点乘运算得到第一参考运算结果;基于映射关系将参考数字签名算法下的第一参考运算结果映射为目标数字签名算法下的第一目标运算结果;如此,使目标数字签名算法的性能接近于甚至优于同等规模下的参考数字签名算法的性能,从而充分利用现有设备的计算能力,节省设备更新成本。
Description
技术领域
本申请涉及但不限于数据安全技术领域,尤其涉及一种数据处理方法、装置、设备及计算机可读存储介质。
背景技术
在诸如区块链、终端通信等众多需要加密的场景中,一般需要使用经典的椭圆曲线数字签名算法(Elliptic Curve Digital Signature Algorithm,ECDSA)来生成数字签名和对数字签名进行验证;如,可以采用基于简化维尔斯特拉斯曲线(Short WeierstrassCurve,Wei)25519的secp256r1数字签名算法来生成数字签名和对数字签名进行验证。然而,相关技术中的ECDSA算法在安全性和性能上具有较差的效果、且处理速率较慢。
发明内容
有鉴于此,本申请实施例至少提供一种数据处理方法、装置、设备及计算机可读存储介质。
本申请实施例的技术方案是这样实现的:
一方面,本申请实施例提供一种数据处理方法,所述数据处理方法包括:在采用目标数字签名算法对输入的第一目标点和第一参数进行点乘运算时,基于参考数字签名算法与所述目标数字签名算法之间的映射关系,将所述目标数字签名算法下的第一目标点映射为所述参考数字签名算法下的第一参考点;所述目标数字签名算法用于生成目标对象的密钥、以及对所述目标对象进行签名验证;所述目标数字签名算法在安全性和性能上优于所述参考数字签名算法;通过椭圆曲线密码学ECC加速器,采用所述参考数字签名算法对所述第一参考点和所述第一参数进行点乘运算,得到第一参考运算结果;基于所述映射关系将所述参考数字签名算法下的第一参考运算结果映射为所述目标数字签名算法下的第一目标运算结果。
在一些实施例中,所述数据处理方法还包括:确定从所述目标数字签名算法映射至所述参考数字签名算法的正映射关系、以及从所述参考数字签名算法映射至所述目标数字签名算法的逆映射关系;所述映射关系包括所述正映射关系和所述逆映射关系。
在一些实施例中,所述确定从所述目标数字签名算法映射至所述参考数字签名算法的正映射关系、以及从所述参考数字签名算法映射至所述目标数字签名算法的逆映射关系,包括:确定所述目标数字签名算法与所述参考数字签名算法在映射时所需的中间数字签名算法;基于所述中间数字签名算法,确定从所述目标数字签名算法映射至所述参考数字签名算法的正映射关系、以及从所述参考数字签名算法映射至所述目标数字签名算法的逆映射关系。
在一些实施例中,所述基于所述中间数字签名算法,确定从所述目标数字签名算法映射至所述参考数字签名算法的正映射关系、以及从所述参考数字签名算法映射至所述目标数字签名算法的逆映射关系,包括:确定从所述目标数字签名算法映射至所述中间数字签名算法的第一映射关系、从所述中间数字签名算法映射至所述参考数字签名算法的第二映射关系;基于所述第一映射关系和所述第二映射关系,确定从所述目标数字签名算法映射至所述参考数字签名算法的正映射关系;确定从所述参考数字签名算法映射至所述中间数字签名算法的第三映射关系、从所述中间数字签名算法映射至所述目标数字签名算法的第四映射关系;基于所述第三映射关系和所述第四映射关系,确定从所述参考数字签名算法映射至所述目标数字签名算法的逆映射关系。
在一些实施例中,所述基于参考数字签名算法与所述目标数字签名算法之间的映射关系,将所述目标数字签名算法下的第一目标点映射为所述参考数字签名算法下的第一参考点,包括:通过硬件加速器,基于所述正映射关系,将所述目标数字签名算法下的第一目标点映射为所述参考数字签名算法下的第一参考点;
相应地,所述基于所述映射关系将所述参考数字签名算法下的第一参考运算结果映射为所述目标数字签名算法下的第一目标运算结果,包括:通过所述硬件加速器,基于所述逆映射关系,将所述参考数字签名算法下的第一参考运算结果映射为所述目标数字签名算法下的第一目标运算结果。
在一些实施例中,所述基于所述正映射关系,将所述目标数字签名算法下的第一目标点映射为所述参考数字签名算法下的第一参考点,包括:确定预先计算的所述正映射关系中针对固定参数的模逆运算的预运算结果;基于所述预运算结果和所述正映射关系,将所述目标数字签名算法下的第一目标点映射为所述参考数字签名算法下的第一参考点。
在一些实施例中,所述基于所述正映射关系,将所述目标数字签名算法下的第一目标点映射为所述参考数字签名算法下的第一参考点,包括:在所述第一目标点为生成元点的情况下,确定所述目标数字签名算法下的生成元点与所述参考数字签名算法下的生成元点之间的对应关系;基于所述对应关系,确定所述第一目标点对应的第一参考点。
在一些实施例中,所述数据处理方法还包括:在采用所述目标数字签名算法对输入的多个第二目标点和所述多个第二目标点各自对应的第二参数进行多点乘运算时,基于所述映射关系将所述目标数字签名算法下的多个第二目标点映射为所述参考数字签名算法下的多个第二参考点;通过所述ECC加速器,采用所述参考数字签名算法分别对所述多个第二参考点中的每一第二参考点对应的第二参数和所述每一第二参考点进行点乘运算,得到多个点乘结果;对所述多个点乘结果进行求和运算,得到所述参考数字签名算法下的第二参考运算结果;基于所述映射关系将所述参考数字签名算法下的第二参考运算结果映射为所述目标数字签名算法下的第二目标运算结果。
在一些实施例中,所述目标数字签名算法、所述参考数字签名算法和所述中间数字签名算法中的任意两个具有双有理等价关系;所述目标数字签名算法为基于扭曲爱德华曲线Edwards25519的数字签名算法;所述参考数字签名算法为基于简化维尔斯特拉斯曲线Wei25519的数字签名算法;所述中间数字签名算法为基于蒙哥马利曲线Curve25519的数字签名算法。
另一方面,本申请实施例提供一种数据处理装置,所述数据处理装置包括:映射模块,用于在采用目标数字签名算法对输入的第一目标点和第一参数进行点乘运算时,基于参考数字签名算法与所述目标数字签名算法之间的映射关系,将所述目标数字签名算法下的第一目标点映射为所述参考数字签名算法下的第一参考点;所述目标数字签名算法用于生成目标对象的密钥、以及对所述目标对象进行签名验证;所述目标数字签名算法在安全性和性能上优于所述参考数字签名算法;处理模块,用于通过椭圆曲线加密ECC加速器,采用所述参考数字签名算法对所述第一参考点和所述第一参数进行点乘运算,得到第一参考运算结果;所述映射模块,还用于基于所述映射关系将所述参考数字签名算法下的第一参考运算结果映射为所述目标数字签名算法下的第一目标运算结果。
再一方面,本申请实施例提供一种计算机设备,包括存储器和处理器,所述存储器存储有可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述方法中的部分或全部步骤。
又一方面,本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述方法中的部分或全部步骤。
本申请实施例中,在采用目标数字签名算法对输入的第一目标点和第一参数进行点乘运算时,通过基于参考数字签名算法与目标数字签名算法之间的映射关系,将目标数字签名算法下的第一目标点映射为参考数字签名算法下的第一参考点;通过椭圆曲线密码学ECC加速器,采用参考数字签名算法对第一参考点和第一参数进行点乘运算得到第一参考运算结果;基于映射关系将参考数字签名算法下的第一参考运算结果映射为目标数字签名算法下的第一目标运算结果。这样,可以借助已有的ECC加速器实现目标数字签名算法(Ed25519数字签名算法)的点乘运算的加速,提升目标数字签名算法(Ed25519数字签名算法)的处理速率和性能,使得目标数字签名算法(Ed25519数字签名算法)的性能接近于甚至优于同等规模下的参考数字签名算法(ECDSA算法)的性能,从而充分利用了现有设备的计算能力,节省大量的设备更新或更换成本。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,而非限制本申请的技术方案。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,这些附图示出了符合本申请的实施例,并与说明书一起用于说明本申请的技术方案。
图1为本申请实施例提供的一种数据处理方法的实现流程示意图一;
图2为本申请实施例提供的一种数据处理方法的实现流程示意图二;
图3为本申请实施例提供的一种数据处理方法的实现流程示意图三;
图4为本申请实施例提供的一种数据处理方法的实现流程示意图四;
图5为本申请实施例提供的一种数据处理方法的实现流程示意图五;
图6为本申请实施例提供的一种数据处理方法的实现流程示意图六;
图7为本申请实施例提供的一种数据处理装置的组成结构示意图;
图8为本申请实施例提供的一种计算机设备的硬件实体示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面结合附图和实施例对本申请的技术方案进一步详细阐述,所描述的实施例不应视为对本申请的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
所涉及的术语“第一/第二/第三”仅仅是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一/第二/第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请的目的,不是旨在限制本申请。
在对本申请实施例进行进一步详细说明之前,先对本申请实施例中涉及的扭曲爱德华曲线(Twisted Edwards Curve,Edwards)25519,蒙哥马利曲线(Montgomery Curve,Curve)25519,以及简化维尔斯特拉斯曲线(Short Weierstrass Curve,Wei)25519进行说明。
1、Edwards25519曲线
Edwards25519曲线所在的素数域记作GF(p);其中,p=2255-19是一个素数。
Edwards25519曲线的方程为:-x2+y2=1+dx2y2。
其中,d是Edwards25519曲线的参数,是一个固定值;d=0x52036CEE 2B6FFE738CC74079 7779E898 00700A4D 4141D8AB 75EB4DCA 135978A3。(x,y)表示Edwards25519曲线的点。
Edwards25519曲线的生成元点的坐标分别是:
Gx=0x216936D3 CD6E53FE C0A4E231 FDD6DC5C 692CC760 9525A7B2 C9562D608F25D51A;
Gy=0x 66666666 66666666 66666666 66666666 66666666 66666666 6666666666666658;
通过Edwards25519曲线的生成元点(Gx,Gy)可以得到Edwards25519曲线上除离散点之外的所有点。
Edwards25519曲线的生成元点的阶是:
n1=0x10000000 00000000 00000000 00000000 14DEF9DE A2F79CD6 5812631A5CF5D3ED;
n1表示Edwards25519曲线上有限点的数量。
Edwards25519曲线的余因子是8,余因子指的是Edwards25519曲线上的所有点的数量除以通过生成元点得到的点的数量后得到的值。
2、Curve25519曲线
Curve25519曲线所在的素数域和Edwards25519曲线的素数域是一样的。Curve25519曲线的方程为:Bv2=u3+Au2+u。
其中,A是Curve25519曲线的一个参数,是一个固定值;A=0x76D06;
B是Curve25519曲线的另一个参数,也是一个固定值;B=1;
A、B在设置时,需要尽量减少计算、减少占据的存储空间。(u,v)表示Curve25519曲线的点。
Curve25519曲线的生成元点的坐标分别是:
Gu=0x09;
Gv=0x20AE19A1 B8A086B4 E01EDD2C 7748D14C 923D4D7E 6D7C61B2 29E9C5A27ECED3D9;
Curve25519曲线的生成元点的阶是:
n2=0x10000000 00000000 00000000 00000000 14DEF9DE A2F79CD6 5812631A5CF5D3ED;
Curve25519曲线的余因子是8。
3、Wei25519曲线
Wei25519曲线所在的素数域和edwards25519曲线的素数域也是一样的。Wei25519曲线的方程为:Y2=X3+aX+b。
其中,a是Wei25519曲线的一个参数,是一个固定值;a=0x2AAAAAAA AAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAA AAAAAAAA AAAAAA98 4914A144;
b是Wei25519曲线的另一个参数,也是一个固定值;b=0x7B425ED0 97B425ED097B425E D097B425 ED097B42 5ED097B4 260B5E9C 7710C864;(X,Y)表示Wei25519曲线的点。
Wei25519曲线的生成元点的坐标分别是:
GX=0x2AAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAAAAAD245A;
GY=0x20AE19A1 B8A086B4 E01EDD2C 7748D14C 923D4D7E 6D7C61B2 29E9C5A27ECED3D9;
Wei25519曲线的生成元点的阶是:
n3=0x10000000 00000000 00000000 00000000 14DEF9DE A2F79CD6 5812631A5CF5D3ED
Wei25519曲线的余因子是8。
为了更好地理解本申请实施例提供的数据处理方法,下面先对相关技术中的方案进行说明。
Ed25519数字签名算法是基于Edwards25519的一种新型的椭圆曲线数字签名算法,于2012年由著名密码学家Daniel J. Bernstein等人提出。相比经典的ECDSA数字签名算法,Ed25519数字签名算法采用了类型完全不同的曲线Edwards25519。Ed25519数字签名算法无论是在安全性还是在性能上都有着明显的优势。
诸如通用微控制单元(Micro Controller Unit,MCU)等已有的设备上已集成了硬件椭圆曲线密码学(Elliptic Curves Cryptography,ECC)加速器,用于实现经典的ECDSA数字签名算法。但ECC加速器通常只支持传统的ECDSA数字签名算法,如支持Secp256r1数字签名算法所使用的简化维尔斯特拉斯曲线,并不支持Ed25519数字签名算法所使用的扭曲爱德华曲线,这使得已有设备上的ECC加速器不能被直接使用于Ed25519数字签名算法的加速实现。
当前在没有专门的Ed25519点乘加速器的设备上,要实现Ed25519数字签名算法,需要使用C++等软件来实现,处理速率较差,无法满足应用性能上的要求。
为此,本申请实施例提供一种数据处理方法,该方法可以由计算机设备的处理器执行。其中,计算机设备指的可以是服务器、笔记本电脑、平板电脑、台式计算机、智能电视、机顶盒、移动设备(例如移动电话、便携式视频播放器、个人数字助理、专用消息设备、便携式游戏设备)等具备数据处理能力的设备。图1为本申请实施例提供的一种数据处理方法的实现流程示意图一,如图1所示,该方法包括如下步骤101至步骤103:
步骤101、在采用目标数字签名算法对输入的第一目标点和第一参数进行点乘运算时,基于参考数字签名算法与所述目标数字签名算法之间的映射关系,将所述目标数字签名算法下的第一目标点映射为所述参考数字签名算法下的第一参考点。
其中,所述目标数字签名算法用于生成目标对象的密钥、以及对所述目标对象进行签名验证;所述目标数字签名算法在安全性和性能上优于所述参考数字签名算法。
这里,参考数字签名算法指的可以是可直接使用ECC加速器的数字签名算法。目标数字签名算法指的可以是安全性和性能均优于参考数字签名算法,但无法直接使用ECC加速器的数字签名算法。在一种可行的实现方式中,目标数字签名算法为基于扭曲爱德华曲线Edwards25519的数字签名算法;参考数字签名算法为基于简化维尔斯特拉斯曲线Wei25519的数字签名算法。示例性地,参考数字签名算法可以为采用Wei25519曲线的Secp256r1数字签名算法;目标数字签名算法可以为采用Edwards25519曲线的Ed25519数字签名算法。
需要说明的是,参考数字签名算法和目标数字签名算法均可以用于生成目标对象的密钥和对目标对象进行签名验证。目标对象指的可以是需要使用目标数字签名算法进行密钥生成和验签的任一对象;示例性地,目标对象可以为用户、文件等。参考数字签名算法和目标数字签名算法的区别在于:目标数字签名算法的安全性和性能均优于参考数字签名算法。值得注意的是,目标数字签名算法和参考数字签名算法具有双有理等价关系。如此,目标数字签名算法和参考数字签名算法之间可以相互转换(映射)。
示例性地,在目标数字签名算法采用的曲线为Edwards25519曲线,参考数字签名算法采用的曲线为Wei25519曲线的情况下,从上述关于“Edwards25519曲线和Wei25519曲线”的说明可知,Edwards25519曲线和Wei25519曲线是互相双向有理等价的(birationalequivalence),即除了无穷远点等少数几个低阶的点外,这两个曲线上的点之间存在着可逆的映射关系。也即,参考数字签名算法与目标数字签名算法之间的映射关系可以包括从目标数字签名算法映射至参考数字签名算法的正映射关系、以及从参考数字签名算法映射至目标数字签名算法的逆映射关系。
第一目标点指的可以是目标数字签名算法中当前需要进行点乘运算的单个点;示例性地,第一目标点可以表示为点P(Px,Py)。第一参考点指的可以是第一目标点在参考数字签名算法下的对应点。示例性地,第一参考点可以表示为点P1(P1x,P1y)。第一参数为当前要处理的数据;在密钥生成和验签的场景下,第一参数用于表征签名对象(目标对象)的身份;示例性地,第一参数可以表示为k。
在一种实现场景中,在采用Ed25519数字签名算法生成密钥的过程中,第一参数可以为采用Ed25519数字签名算法对签名对象的待签名数据和其他数据进行哈希运算后的结果;第一目标点可以为Edwards25519曲线的生成元点;第一参考点可以为Wei25519曲线的生成元点。其中,进行哈希运算时使用的哈希算法可以为SHA-512哈希算法;待签名数据指的可以是需要签名的代码、文本等数据;其他数据指的可以是用户额外输入的字符串,用于增强密钥的安全性。
在另一种实现场景中,在采用Ed25519数字签名算法进行签名验证的过程中会涉及两次点乘,其中一次点乘对应的第一参数可以为采用Ed25519数字签名算法对签名对象的公钥、签名的前半部分、待签名数据和其他数据进行哈希运算后的结果,此时的第一目标点可以为签名对象的公钥;其中另一次点乘对应的第一参数可以为签名的后半部分,此时的第一目标点可以为Edwards25519曲线的生成元点。
在一种可行的实现方式中,预先确定从目标数字签名算法映射至参考数字签名算法的正映射关系;对于使用目标数字签名算法进行密钥生成和进行验签过程中的点乘运算,可以基于从目标数字签名算法映射至参考数字签名算法的正映射关系,将目标数字签名算法下的第一目标点映射为参考数字签名算法下的第一参考点。
步骤102、通过椭圆曲线密码学ECC加速器,采用所述参考数字签名算法对所述第一参考点和所述第一参数进行点乘运算,得到第一参考运算结果。
这里,ECC加速器用于提高数字签名算法的计算速度。第一参考运算结果指的可以是通过ECC加速器,采用参考数字签名算法对第一参考点和第一参数进行点乘运算后的结果。
由于ECC加速器只支持传统的简化维尔斯特拉斯曲线,因此对于目标数字签名算法中的点乘运算,需要将目标数字签名算法下的第一目标点映射为参考数字签名算法下的第一参考点后,通过ECC加速器,采用参考数字签名算法对第一参考点和第一参数进行点乘运算得到第一参考运算结果。这样就可以借助已有的ECC加速器实现Ed25519数字签名算法的点乘运算的加速,使得Ed25519数字签名算法的性能接近于甚至优于同等规模下的简化维尔斯特拉斯曲线的ECDSA算法的性能,从而充分利用了现有设备的计算能力,节省大量的设备更新或更换成本。
在一种可行的实现方式中,通过ECC加速器采用参考数字签名算法对第一参考点和第一参数进行点乘运算的操作,与相关技术中通过ECC加速器采用Wei25519数字签名算法对任一点和对应的参数进行点乘运算的操作类似,本申请实施例对此不再赘述。具体地,在ECC加速器上,执行采用参考数字签名算法对第一参考点和第一参数进行点乘运算的操作,以加速计算速率,节省耗时。
步骤103、基于所述映射关系将所述参考数字签名算法下的第一参考运算结果映射为所述目标数字签名算法下的第一目标运算结果。
这里,第一目标运算结果指的可以是采用目标数字签名算法对第一目标点进行点乘运算后的结果。
由于目标数字签名算法和参考数字签名算法具有双有理等价关系,因此采用目标数字签名算法对第一目标点进行点乘运算后的结果等于,采用参考数字签名算法对第一参考点(第一目标点映射后的参考数字签名算法下的点)进行点乘运算后的第一参考运算结果逆映射后的第一目标运算结果。
在一种可行的实现方式中,可以基于从参考数字签名算法映射至目标数字签名算法的逆映射关系,将参考数字签名算法下的第一参考运算结果映射为目标数字签名算法下的第一目标运算结果。
本申请实施例中,在采用目标数字签名算法对输入的第一目标点和第一参数进行点乘运算时,通过基于参考数字签名算法与目标数字签名算法之间的映射关系,将目标数字签名算法下的第一目标点映射为参考数字签名算法下的第一参考点;通过椭圆曲线密码学ECC加速器,采用参考数字签名算法对第一参考点和第一参数进行点乘运算得到第一参考运算结果;基于映射关系将参考数字签名算法下的第一参考运算结果映射为目标数字签名算法下的第一目标运算结果。这样,可以借助已有的ECC加速器实现目标数字签名算法(Ed25519数字签名算法)的点乘运算的加速,提升目标数字签名算法(Ed25519数字签名算法)的处理速率和性能,使得目标数字签名算法(Ed25519数字签名算法)的性能接近于甚至优于同等规模下的参考数字签名算法(ECDSA算法)的性能,从而充分利用了现有设备的计算能力,节省大量的设备更新或更换成本。
本申请实施例提供一种数据处理方法,该方法可以由计算机设备的处理器执行。如图2所示,该方法包括如下步骤201至步骤204:
步骤201、确定从所述目标数字签名算法映射至所述参考数字签名算法的正映射关系、以及从所述参考数字签名算法映射至所述目标数字签名算法的逆映射关系;所述映射关系包括所述正映射关系和所述逆映射关系。
这里,正映射关系指的可以是从目标数字签名算法到参考数字签名算法的映射关系。逆映射关系指的可以是从参考数字签名算法到目标数字签名算法的映射关系。
在一种可行的实现方式中,可以对目标数字签名算法采用的曲线和参考数字签名算法采用的曲线进行分析处理,得到从目标数字签名算法到参考数字签名算法的正映射关系和从参考数字签名算法到目标数字签名算法的逆映射关系。
步骤202、在采用目标数字签名算法对输入的第一目标点和第一参数进行点乘运算时,通过硬件加速器,基于所述正映射关系,将所述目标数字签名算法下的第一目标点映射为所述参考数字签名算法下的第一参考点。
这里,硬件加速器用于将目标数字签名算法下的目标点映射为参考数字签名算法下的参考点、以及将参考数字签名算法下的参考运算结果映射为目标数字签名算法下的目标运算结果。
在一种可行的实现方式中,可以设置专门的硬件加速器来处理映射操作;如此,就可以在硬件加速器上,执行“基于所述正映射关系,将所述目标数字签名算法下的第一目标点映射为所述参考数字签名算法下的第一参考点”的正映射操作,以提升正映射操作的速率。
步骤203、通过椭圆曲线密码学ECC加速器,采用所述参考数字签名算法对所述第一参考点和所述第一参数进行点乘运算,得到第一参考运算结果。
这里,上述步骤203对应于前述步骤102,在实施时可以参照前述步骤102的具体实施方式。
步骤204、通过所述硬件加速器,基于所述逆映射关系,将所述参考数字签名算法下的第一参考运算结果映射为所述目标数字签名算法下的第一目标运算结果。
在一种可行的实现方式中,可以在专门设置的硬件加速器上,执行“基于所述逆映射关系,将所述参考数字签名算法下的第一参考运算结果映射为所述目标数字签名算法下的第一目标运算结果”的逆映射操作,以提升逆映射操作的速率。
可以理解,在专门的硬件加速器上实现正映射操作和逆映射操作,可以进一步提升目标数字签名算法的性能。并且,可以直接在现有硬件的基础上设置专门的硬件加速器,此时要做的工作很少,操作简便,并不会造成太多额外的操作。
在一些实施例中,上述步骤201可以包括如下步骤2011至步骤2012:
步骤2011、确定所述目标数字签名算法与所述参考数字签名算法在映射时所需的中间数字签名算法。
这里,中间数字签名算法指的是目标数字签名算法与参考数字签名算法在映射时的桥梁。示例性地,中间数字签名算法采用的曲线可以为Curve25519曲线。
步骤2012、基于所述中间数字签名算法,确定从所述目标数字签名算法映射至所述参考数字签名算法的正映射关系、以及从所述参考数字签名算法映射至所述目标数字签名算法的逆映射关系。
在一种实施方式中,步骤2012可以通过如下步骤2012a至步骤2012d来实现:
步骤2012a、确定从所述目标数字签名算法映射至所述中间数字签名算法的第一映射关系、从所述中间数字签名算法映射至所述参考数字签名算法的第二映射关系。
这里,第一映射关系指的可以是从目标数字签名算法映射至中间数字签名算法的映射关系。第二映射关系指的可以是从中间数字签名算法映射至参考数字签名算法的映射关系。
在一种可行的实现方式中,在目标数字签名算法采用的曲线为Edwards25519曲线、中间数字签名算法采用的曲线为Curve25519曲线、参考数字签名算法采用的曲线为Wei25519曲线的情况下,第一映射关系可以为从Edwards25519曲线到Curve25519曲线的转换关系,第二映射关系可以为Curve25519曲线到Wei25519曲线的转换关系。从上述关于“Edwards25519曲线、Curve25519曲线和Wei25519曲线”的说明可知,Edwards25519曲线、Curve25519曲线、Wei25519曲线这三条曲线所在的素数域、生成元点的阶、以及曲线的余因子是一样的。实际上,这三条曲线是互相双向有理等价的(birational equivalence),也即这三条曲线上的点之间存在可逆的映射关系。
通过对Edwards25519曲线、Curve25519曲线、Wei25519曲线这三条曲线的方程分析可知,从Edwards25519曲线(目标数字签名算法)到Curve25519曲线(中间数字签名算法),有第一映射关系:u=(1+y)/(1-y),;从Curve25519曲线(中间数字签名算法)到Wei25519曲线(参考数字签名算法),有第二映射关系:X=u+A/3,Y=v。
步骤2012b、基于所述第一映射关系和所述第二映射关系,确定从所述目标数字签名算法映射至所述参考数字签名算法的正映射关系。
在一种可行的实现方式中,在目标数字签名算法采用的曲线为Edwards25519曲线、中间数字签名算法采用的曲线为Curve25519曲线、参考数字签名算法采用的曲线为Wei25519曲线的情况下,根据第一映射关系:u=(1+y)/(1-y),、以及第二映射关系X=u+A/3,Y=v,计算可得从Edwards25519曲线(目标数字签名算法)到Wei25519曲线(参考数字签名算法)的正映射关系f:X=(1+y)/(1-y)+A/3,Y=(-(A+2))1/2(1+y)/((1-y)x)。
步骤2012c、确定从所述参考数字签名算法映射至所述中间数字签名算法的第三映射关系、从所述中间数字签名算法映射至所述目标数字签名算法的第四映射关系。
这里,第三映射关系指的可以是从参考数字签名算法映射至中间数字签名算法的映射关系。第四映射关系指的可以是从中间数字签名算法映射至目标数字签名算法的映射关系。
在一种可行的实现方式中,在目标数字签名算法采用的曲线为Edwards25519曲线、中间数字签名算法采用的曲线为Curve25519曲线、参考数字签名算法采用的曲线为Wei25519曲线的情况下,第三映射关系可以为从Wei25519曲线到Curve25519曲线的转换关系,第二映射关系可以为Curve25519曲线到Edwards25519曲线的转换关系。
通过对Edwards25519曲线、Curve25519曲线、Wei25519曲线这三条曲线的方程分析可知,从Wei25519曲线(参考数字签名算法)到Curve25519曲线(中间数字签名算法),有第三映射关系:u=X-A/3,v=Y;从Curve25519曲线(中间数字签名算法)到Edwards25519曲线(目标数字签名算法),有第四映射关系:,y=(u-1)/(u+1)。
步骤2012d、基于所述第三映射关系和所述第四映射关系,确定从所述参考数字签名算法映射至所述目标数字签名算法的逆映射关系。
在一种可行的实现方式中,在目标数字签名算法采用的曲线为Edwards25519曲线、中间数字签名算法采用的曲线为Curve25519曲线、参考数字签名算法采用的曲线为Wei25519曲线的情况下,根据Wei25519曲线到Curve25519曲线的第三映射关系:u=X-A/3,v=Y、以及Curve25519曲线到Edwards25519曲线的第四映射关系:,y=(u-1)/(u+1),计算可得从Wei25519曲线(参考数字签名算法)到Edwards25519曲线(目标数字签名算法)的逆映射关系/>。
在一些实施例中,上述步骤202可以通过如下步骤2021至步骤2022来实现:
步骤2021、确定预先计算的所述正映射关系中针对固定参数的模逆运算的预运算结果。
这里,固定参数指的可以是上述Edwards25519曲线中的d,Curve25519曲线中的A、B,Wei25519曲线中的a、b。预运算结果指的是预先计算的正映射关系中针对固定参数的模逆运算的结果。
由于正映射关系f:X=(1+y)/(1-y)+A/3,Y=(-(A+2))1/2(1+y)/((1-y)x)中存在固定参数的模逆运算:A/3和(-(A+2))1/2,可以将预先计算A/3和(-(A+2))1/2,以进一步节省耗时。下述示出的是A/3和(-(A+2))1/2在实际应用过程中的运算结果的示例,运算结果可以为计算机可识别的十六进制数值:
A/3=0x2AAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAAAAAD2451;
(-(A+2))1/2=0x0F26EDF4 60A006BB D27B08DC 03FC4F7E C5A1D3D1 4B7D1A82CC6E04AA FF457E06,
或(-(A+2))1/2=0x0F26EDF4 60A006BB D27B08DC 03FC4F7E C5A1D3D1 4B7D1A82CC6E04AA FF457E06。
步骤2022、基于所述预运算结果和所述正映射关系,将所述目标数字签名算法下的第一目标点映射为所述参考数字签名算法下的第一参考点。
实现时,对于Edwards25519曲线上的点乘运算 [k]P,由于第一目标点P是由Edwards25519曲线的生成元点(Gx,Gy)生成的循环子群中的点,其阶为n。那么,按照Edwards25519曲线与Wei25519曲线之间的双有理等价关系,可以把第一目标点P(Px,Py)映射成Wei25519曲线上的第一参考点P1(P1x,P1y),具体地,P1x=(1+Py)/(1-Py)+A/3,P1y=(-(A+2))1/2(1+Py)/((1-Py)Px)。
进一步地,由于除法涉及到相对耗时的模逆运算、且上述映射后的公式中存在相同的式子(1+Py)/((1-Py)P1x,可以将其用一个新的参数进行表示:tmp=(1+Py)/((1-Py)P1x,得到,/>;如此,仅计算一次(1+Py)/((1-Py)P1x,可节省一次模逆运算。
更进一步地,由于预先计算了A/3和(-(A+2))1/2,因此在转换时还可以进一步减少计算耗时,提高计算速率。
把第一目标点P(Px,Py)映射成Wei25519曲线上的第一参考点P1(P1x,P1y)后,可以通过ECC加速器在Wei25519曲线上计算点乘,得到Q1(Q1x,Q1y)=[k]P1。之后,将Q1(Q1x,Q1y)(第一参考运算结果)逆映射回Edwards25519曲线上的点Q(Qx,Qy)(第一目标运算结果),且满足Q(Qx,Qy)=[k]P。
如图3所示,对于Edwards25519曲线的点乘运算,通过ECC加速器进行加速的整个流程可以包括:
步骤301、输入标量(scalar)k和第一目标点P,后得到点乘式子:Q=[k]P;
步骤302、根据正映射关系,将P映射为P1;其中,P1为第一参考点;
步骤303、输入标量k和第一参考点P1,通过ECC加速器计算Q1=[k]P1;
步骤304、输出Q1;其中,Q1为第一参考运算结果;
步骤305、根据逆映射关系,将Q1映射为Q;其中,Q为第一目标运算结果;
步骤306、输出Q。
其中,Edwards25519曲线操作31可以包括步骤301和步骤306,Wei25519曲线操作32可以包括步骤303和304,步骤302和步骤305可以在硬件加速器上执行。
在其他实施例中,在第一目标点为生成元点的情况下,步骤202中的“基于所述正映射关系,将所述目标数字签名算法下的第一目标点映射为所述参考数字签名算法下的第一参考点”的具体实现方式可以为:在所述第一目标点为生成元点的情况下,确定所述目标数字签名算法下的生成元点与所述参考数字签名算法下的生成元点之间的对应关系;基于所述对应关系,确定所述第一目标点对应的第一参考点。
对于Ed25519数字签名算法中的密钥生成以及签名过程中的点乘[k]G,密钥生成以及签名过程中的k指的可以是采用Ed25519数字签名算法对待签名数据和其他信息进行哈希运算后的结果,也即此时的k是由用户的输入决定的;此时G可以看做是一个固定参数。由于Edwards25519曲线的生成元点G与Wei25519曲线的生成元点G1是已经转化好的,因此可以省去G到G1的映射操作。这种情况下,如图4所示,对于Edwards25519曲线的点乘运算,通过ECC加速器进行加速的整个流程可以包括:
步骤401、输入标量k和生成元点G,后得到点乘式子:Q=[k]G;
步骤402、输入标量k和生成元点G1,通过ECC加速器计算Q1=[k]G1;
步骤403、输出Q1;
步骤404、根据逆映射关系,将Q1映射为Q;
步骤405、输出Q。
如此,Ed25519数字签名算法中的密钥生成以及签名过程中点乘就可以借助已有的ECC加速器实现加速。其中,Edwards25519曲线操作41可以包括步骤401和步骤405,Wei25519曲线操作42可以包括步骤402和403,步骤404可以在硬件加速器上执行。
基于前述实施例,本申请提供的数据处理方法,还可以实现如下步骤205至步骤208:
步骤205、在采用所述目标数字签名算法对输入的多个第二目标点和所述多个第二目标点各自对应的第二参数进行多点乘运算时,基于所述映射关系将所述目标数字签名算法下的多个第二目标点映射为所述参考数字签名算法下的多个第二参考点。
这里,多个第二目标点指的可以是目标数字签名算法中当前需要进行点乘运算的多个点;示例性地,多个第二目标点可以为点P和点R。多个第二参考点指的可以是多个第二目标点各自在参考数字签名算法下的对应点。示例性地,多个第二参考点可以表示为点P1和点R1。
步骤206、通过所述ECC加速器,采用所述参考数字签名算法分别对所述多个第二参考点中的每一第二参考点对应的第二参数和所述每一第二参考点进行点乘运算,得到多个点乘结果。
在一种可行的实现方式中,对于Edwards25519曲线上的多点乘运算[k1]P+[k2]R,可以先将点P和点R这两个点分别转换为Wei25519曲线上对应的点P1和点R1,然后分别计算[k1]P1和[k2]R1。
步骤207、对所述多个点乘结果进行求和运算,得到所述参考数字签名算法下的第二参考运算结果。
在一种可行的实现方式中,对于Edwards25519曲线上的多点乘运算[k1]P+[k2]R,在Wei25519曲线上通过ECC加速器计算出P1’=[k1]P1和R1’=[k2]R1后,可以计算点加得到第二参考运算结果Q1=P1’+R1’。
步骤208、基于所述映射关系将所述参考数字签名算法下的第二参考运算结果映射为所述目标数字签名算法下的第二目标运算结果。
在一种可行的实现方式中,对于Edwards25519曲线上的多点乘运算[k1]P+[k2]R,计算出Q1后,可以将Q1转换回Edwards25519曲线上的点Q,且Q=[k1]P+[k2]R。
如图5所示,对于Edwards25519曲线的多点乘运算,通过ECC加速器进行加速的整个流程可以包括:
步骤501、输入标量k1和k2,第二目标点P和R,后得到点乘式子:P’=[k1]P、R’=[k2]R、Q=P’+R’;
步骤502、根据正映射关系,将P映射为P1、R映射为R1;
步骤503、输入标量k1和k2,第二参考点P1和R1,通过ECC加速器计算P1’=[k1]P1、R1’=[k2]R1,再进行点加运算得到Q1=P1’+R1’;
步骤504、输出Q1;
步骤505、根据逆映射关系,将Q1映射为Q;
步骤506、输出Q。
其中,Edwards25519曲线操作51可以包括步骤501和步骤506,Wei25519曲线操作52可以包括步骤503和504,步骤502和步骤505可以在硬件加速器上执行。
在一些实施例中,采用Edwards25519曲线进行签名验证的过程中涉及两次点乘和一次点加运算[S]B=R+[k]A’;其中,S指的是签名的后半部分,B指的是Edwards25519曲线的生成元点,R指的是签名的前半部分,A’指的是签名对象的公钥,验签过程中的k指的是采用Ed25519数字签名算法对签名者的公钥A’、签名的R部分、待签名信息和其他参数进行哈希运算后的结果。对于Edwards25519曲线的验签过程中的两次点乘和一次点加运算,可以按照上述点乘运算计算[S]B,按多点乘运算计算R+[k]A’,再将两边结果进行对比来确定验签是否通过。进一步地,更为简便的方法可以为:将B、R和A’三个点转换为Wei25519曲线上的三个点B’、R’和A’’在Wei25519曲线上验证等式[S]B’=R’+[k]A’’,这样就节省了两次从Wei25519曲线到Edwards25519曲线上的点的映射。具体地,如图6所示,对于Edwards25519曲线的验签过程中的两次点乘和一次点加运算,通过ECC加速器进行加速的整个流程可以包括:
步骤601、输入标量S和k,点B、R和A’,后得到点乘式子:P1=[S]B、A1=[k]A’、T=R+A1;
步骤602、根据正映射关系,将B映射为B’、R映射为R’、A’映射为A’’;
步骤603、输入标量S和k,点B’、R’和A’’,通过ECC加速器计算P1’=[S]B’、A1’=[k]A’’,并进行点加运算T’=R’+A1’,判断;
步骤604、输出;
由于相当于/>,也即得到步骤605、输出/>。
其中,Edwards25519曲线操作61可以包括步骤601和步骤605,Wei25519曲线操作62可以包括步骤603和604,步骤602可以在硬件加速器上执行。
需要说明的是,本申请提供的数据处理方法,可以应用于现有使用ECDSA数字签名算法的众多场景。示例性地,公开密钥体系(Public Key Infrastructure,PKI)、区块链、服务器、各种终端设备、密码机(密码加速卡)等已经使用Ed25519数字签名算法来替换ECDSA算法的领域。又一示例性地,运行在终端、服务器以及其他专用设备上的各种软件如安全外壳(Secure Shell,SSH)协议的免费开源实现OPENSSH、安全传输层协议(TransportLayerSecurityProtocol,TLS1.3)、用于实现匿名通信的自由软件的洋葱头(TheOnion Router,Tor)、去中心化的大零币(Zero Cash,Zcash)、用于智能手机之间通讯的应用程序Whatsapp,加密通讯软件Signal等已支持Ed25519数字签名算法支持的软件。
综上,在诸如通过MCU等已有设备若其上有支持简化维尔斯特拉斯曲线的ECC加速器,则可以使用本申请的方法借助已有的ECC加速器实现Ed25519数字签名算法的加速,使得Ed25519数字签名算法的实现接近于甚至优于同等规模下的简化维尔斯特拉斯曲线的ECDSA算法的性能,从而充分利用了现有设备的计算能力,节省大量的设备更新或更换成本。
对于ECC算法里的关键的点乘运算,软件实现和硬件加速器实现的性能差异是很大的,通常有数倍到几十倍甚至更多。在有硬件点乘加速器实现ECDSA数字签名算法的设备上,本申请的数据处理方法使得Ed25519数字签名算法的点乘性能接近于甚至优于同等规模下的基于简化维尔斯特拉斯曲线的secp256r1数字签名算法的点乘性能,最终得到Ed25519数字签名算法的签名和验签性能接近于甚至优于同等规模的ECDSA数字签名算法的性能,充分发挥了已有设备的计算能力。
基于前述的实施例,本申请实施例提供一种数据处理装置,该数据处理装置包括所包括的各单元、以及各单元所包括的各模块,可以通过计算机设备中的处理器来实现;当然也可通过具体的逻辑电路实现;在实施的过程中,处理器可以为中央处理器(CentralProcessing Unit,CPU)、微处理器(Microprocessor Unit,MPU)、数字信号处理器(DigitalSignal Processor,DSP)或现场可编程门阵列(FieldProgrammable Gate Array,FPGA)等。
图7为本申请实施例提供的一种数据处理装置的组成结构示意图,如图7所示,数据处理装置700包括:映射模块710和处理模块720,其中:
映射模块710,用于在采用目标数字签名算法对输入的第一目标点和第一参数进行点乘运算时,基于参考数字签名算法与所述目标数字签名算法之间的映射关系,将所述目标数字签名算法下的第一目标点映射为所述参考数字签名算法下的第一参考点;所述目标数字签名算法用于生成目标对象的密钥、以及对所述目标对象进行签名验证;所述目标数字签名算法在安全性和性能上优于所述参考数字签名算法;
处理模块720,用于通过椭圆曲线加密ECC加速器,采用所述参考数字签名算法对所述第一参考点和所述第一参数进行点乘运算,得到第一参考运算结果;
映射模块710,还用于基于所述映射关系将所述参考数字签名算法下的第一参考运算结果映射为所述目标数字签名算法下的第一目标运算结果。
在一些实施例中,处理模块720具体用于:确定从所述目标数字签名算法映射至所述参考数字签名算法的正映射关系、以及从所述参考数字签名算法映射至所述目标数字签名算法的逆映射关系;所述映射关系包括所述正映射关系和所述逆映射关系。
在一些实施例中,处理模块720具体用于:确定所述目标数字签名算法与所述参考数字签名算法在映射时所需的中间数字签名算法;基于所述中间数字签名算法,确定从所述目标数字签名算法映射至所述参考数字签名算法的正映射关系、以及从所述参考数字签名算法映射至所述目标数字签名算法的逆映射关系。
在一些实施例中,处理模块720具体用于:确定从所述目标数字签名算法映射至所述中间数字签名算法的第一映射关系、从所述中间数字签名算法映射至所述参考数字签名算法的第二映射关系;基于所述第一映射关系和所述第二映射关系,确定从所述目标数字签名算法映射至所述参考数字签名算法的正映射关系;确定从所述参考数字签名算法映射至所述中间数字签名算法的第三映射关系、从所述中间数字签名算法映射至所述目标数字签名算法的第四映射关系;基于所述第三映射关系和所述第四映射关系,确定从所述参考数字签名算法映射至所述目标数字签名算法的逆映射关系。
在一些实施例中,映射模块710具体用于:通过硬件加速器,基于所述正映射关系,将所述目标数字签名算法下的第一目标点映射为所述参考数字签名算法下的第一参考点;
相应地,映射模块710具体用于:通过所述硬件加速器,基于所述逆映射关系,将所述参考数字签名算法下的第一参考运算结果映射为所述目标数字签名算法下的第一目标运算结果。
在一些实施例中,映射模块710具体用于:确定预先计算的所述正映射关系中针对固定参数的模逆运算的预运算结果;基于所述预运算结果和所述正映射关系,将所述目标数字签名算法下的第一目标点映射为所述参考数字签名算法下的第一参考点。
在一些实施例中,映射模块710具体用于:在所述第一目标点为生成元点的情况下,确定所述目标数字签名算法下的生成元点与所述参考数字签名算法下的生成元点之间的对应关系;基于所述对应关系,确定所述第一目标点对应的第一参考点。
在一些实施例中,映射模块710具体用于:在采用所述目标数字签名算法对输入的多个第二目标点和所述多个第二目标点各自对应的第二参数进行多点乘运算时,基于所述映射关系将所述目标数字签名算法下的多个第二目标点映射为所述参考数字签名算法下的多个第二参考点;通过所述ECC加速器,采用所述参考数字签名算法分别对所述多个第二参考点中的每一第二参考点对应的第二参数和所述每一第二参考点进行点乘运算,得到多个点乘结果;对所述多个点乘结果进行求和运算,得到所述参考数字签名算法下的第二参考运算结果;基于所述映射关系将所述参考数字签名算法下的第二参考运算结果映射为所述目标数字签名算法下的第二目标运算结果。
在一些实施例中,所述目标数字签名算法、所述参考数字签名算法和所述中间数字签名算法中的任意两个具有双有理等价关系;所述目标数字签名算法为基于扭曲爱德华曲线Edwards25519的数字签名算法;所述参考数字签名算法为基于简化维尔斯特拉斯曲线Wei25519的数字签名算法;所述中间数字签名算法为基于蒙哥马利曲线Curve25519的数字签名算法。
以上装置实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。在一些实施例中,本申请实施例提供的装置具有的功能或包含的模块可以用于执行上述方法实施例描述的方法,对于本申请装置实施例中未披露的技术细节,请参照本申请方法实施例的描述而理解。
需要说明的是,本申请实施例中,如果以软件功能模块的形式实现上述的数据处理方法,并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本申请各个实施例所述方法的全部或部分。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read OnlyMemory,ROM)、磁碟或者光盘等各种可以存储程序代码的介质。这样,本申请实施例不限制于任何特定的硬件、软件或固件,或者硬件、软件、固件三者之间的任意结合。
本申请实施例提供一种计算机设备,包括存储器和处理器,所述存储器存储有可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述方法中的部分或全部步骤。
本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述方法中的部分或全部步骤。所述计算机可读存储介质可以是瞬时性的,也可以是非瞬时性的。
本申请实施例提供一种计算机程序,包括计算机可读代码,在所述计算机可读代码在计算机设备中运行的情况下,所述计算机设备中的处理器执行用于实现上述方法中的部分或全部步骤。
本申请实施例提供一种计算机程序产品,所述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,所述计算机程序被计算机读取并执行时,实现上述方法中的部分或全部步骤。该计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一些实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一些实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(Software Development Kit,SDK)等等。
这里需要指出的是:上文对各个实施例的描述倾向于强调各个实施例之间的不同之处,其相同或相似之处可以互相参考。以上设备、存储介质、计算机程序及计算机程序产品实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本申请设备、存储介质、计算机程序及计算机程序产品实施例中未披露的技术细节,请参照本申请方法实施例的描述而理解。
需要说明的是,图8为本申请实施例中计算机设备的一种硬件实体示意图,如图8所示,该计算机设备800的硬件实体包括:处理器801、通信接口802和存储器803,其中:
处理器801通常控制计算机设备800的总体操作。
通信接口802可以使计算机设备通过网络与其他终端或服务器通信。
存储器803配置为存储由处理器801可执行的指令和应用,还可以缓存待处理器801以及计算机设备800中各模块待处理或已经处理的数据(例如,图像数据、音频数据、语音通信数据和视频通信数据),可以通过闪存(FLASH)或随机访问存储器(Random AccessMemory,RAM)实现。处理器801、通信接口802和存储器803之间可以通过总线804进行数据传输。
应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本申请的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。应理解,在本申请的各种实施例中,上述各步骤/过程的序号的大小并不意味着执行顺序的先后,各步骤/过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元;既可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
另外,在本申请各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(Read Only Memory,ROM)、磁碟或者光盘等各种可以存储程序代码的介质。
或者,本申请上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本申请各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。
Claims (10)
1.一种数据处理方法,其特征在于,所述数据处理方法包括:
确定目标数字签名算法与参考数字签名算法在映射时所需的中间数字签名算法;所述目标数字签名算法为基于扭曲爱德华曲线Edwards25519的数字签名算法,所述参考数字签名算法为基于简化维尔斯特拉斯曲线Wei25519的数字签名算法;
基于所述中间数字签名算法,确定从所述目标数字签名算法映射至所述参考数字签名算法的正映射关系、以及从所述参考数字签名算法映射至所述目标数字签名算法的逆映射关系;
在采用所述目标数字签名算法对输入的第一目标点和第一参数进行点乘运算时,基于所述正映射关系,将所述目标数字签名算法下的第一目标点映射为所述参考数字签名算法下的第一参考点;所述目标数字签名算法用于生成目标对象的密钥、以及对所述目标对象进行签名验证;
通过椭圆曲线密码学ECC加速器,采用所述参考数字签名算法对所述第一参考点和所述第一参数进行点乘运算,得到第一参考运算结果;
基于所述逆映射关系将所述参考数字签名算法下的第一参考运算结果映射为所述目标数字签名算法下的第一目标运算结果。
2.根据权利要求1所述的数据处理方法,其特征在于,所述基于所述中间数字签名算法,确定从所述目标数字签名算法映射至所述参考数字签名算法的正映射关系、以及从所述参考数字签名算法映射至所述目标数字签名算法的逆映射关系,包括:
确定从所述目标数字签名算法映射至所述中间数字签名算法的第一映射关系、从所述中间数字签名算法映射至所述参考数字签名算法的第二映射关系;
基于所述第一映射关系和所述第二映射关系,确定从所述目标数字签名算法映射至所述参考数字签名算法的正映射关系;
确定从所述参考数字签名算法映射至所述中间数字签名算法的第三映射关系、从所述中间数字签名算法映射至所述目标数字签名算法的第四映射关系;
基于所述第三映射关系和所述第四映射关系,确定从所述参考数字签名算法映射至所述目标数字签名算法的逆映射关系。
3.根据权利要求1所述的数据处理方法,其特征在于,所述基于所述正映射关系,将所述目标数字签名算法下的第一目标点映射为所述参考数字签名算法下的第一参考点,包括:
通过硬件加速器,基于所述正映射关系,将所述目标数字签名算法下的第一目标点映射为所述参考数字签名算法下的第一参考点;
相应地,所述基于所述逆映射关系将所述参考数字签名算法下的第一参考运算结果映射为所述目标数字签名算法下的第一目标运算结果,包括:
通过所述硬件加速器,基于所述逆映射关系,将所述参考数字签名算法下的第一参考运算结果映射为所述目标数字签名算法下的第一目标运算结果。
4.根据权利要求3所述的数据处理方法,其特征在于,所述基于所述正映射关系,将所述目标数字签名算法下的第一目标点映射为所述参考数字签名算法下的第一参考点,包括:
确定预先计算的所述正映射关系中针对固定参数的模逆运算的预运算结果;
基于所述预运算结果和所述正映射关系,将所述目标数字签名算法下的第一目标点映射为所述参考数字签名算法下的第一参考点。
5.根据权利要求3所述的数据处理方法,其特征在于,所述基于所述正映射关系,将所述目标数字签名算法下的第一目标点映射为所述参考数字签名算法下的第一参考点,包括:
在所述第一目标点为生成元点的情况下,确定所述目标数字签名算法下的生成元点与所述参考数字签名算法下的生成元点之间的对应关系;
基于所述对应关系,确定所述第一目标点对应的第一参考点。
6.根据权利要求1所述的数据处理方法,其特征在于,所述数据处理方法还包括:
在采用所述目标数字签名算法对输入的多个第二目标点和所述多个第二目标点各自对应的第二参数进行多点乘运算时,基于所述正映射关系将所述目标数字签名算法下的多个第二目标点映射为所述参考数字签名算法下的多个第二参考点;
通过所述ECC加速器,采用所述参考数字签名算法分别对所述多个第二参考点中的每一第二参考点对应的第二参数和所述每一第二参考点进行点乘运算,得到多个点乘结果;
对所述多个点乘结果进行求和运算,得到所述参考数字签名算法下的第二参考运算结果;
基于所述逆映射关系将所述参考数字签名算法下的第二参考运算结果映射为所述目标数字签名算法下的第二目标运算结果。
7.根据权利要求1至6中任一项所述的数据处理方法,其特征在于,所述目标数字签名算法、所述参考数字签名算法和所述中间数字签名算法中的任意两个具有双有理等价关系;
所述中间数字签名算法为基于蒙哥马利曲线Curve25519的数字签名算法。
8.一种数据处理装置,其特征在于,所述数据处理装置包括:
处理模块,用于确定目标数字签名算法与参考数字签名算法在映射时所需的中间数字签名算法,并基于所述中间数字签名算法,确定从所述目标数字签名算法映射至所述参考数字签名算法的正映射关系、以及从所述参考数字签名算法映射至所述目标数字签名算法的逆映射关系;所述目标数字签名算法为基于扭曲爱德华曲线Edwards25519的数字签名算法,所述参考数字签名算法为基于简化维尔斯特拉斯曲线Wei25519的数字签名算法;
映射模块,用于在采用所述目标数字签名算法对输入的第一目标点和第一参数进行点乘运算时,基于所述正映射关系,将所述目标数字签名算法下的第一目标点映射为所述参考数字签名算法下的第一参考点;所述目标数字签名算法用于生成目标对象的密钥、以及对所述目标对象进行签名验证;
所述处理模块,还用于通过椭圆曲线加密ECC加速器,采用所述参考数字签名算法对所述第一参考点和所述第一参数进行点乘运算,得到第一参考运算结果;
所述映射模块,还用于基于所述逆映射关系将所述参考数字签名算法下的第一参考运算结果映射为所述目标数字签名算法下的第一目标运算结果。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1至7任一项所述数据处理方法中的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7任一项所述数据处理方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311383150.0A CN117118637B (zh) | 2023-10-24 | 2023-10-24 | 数据处理方法、装置、设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311383150.0A CN117118637B (zh) | 2023-10-24 | 2023-10-24 | 数据处理方法、装置、设备及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117118637A CN117118637A (zh) | 2023-11-24 |
CN117118637B true CN117118637B (zh) | 2024-01-26 |
Family
ID=88809610
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311383150.0A Active CN117118637B (zh) | 2023-10-24 | 2023-10-24 | 数据处理方法、装置、设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117118637B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108512663A (zh) * | 2018-04-13 | 2018-09-07 | 深圳信息职业技术学院 | 椭圆曲线加密的点乘方法、装置及计算机可读存储介质 |
CN111917548A (zh) * | 2019-05-07 | 2020-11-10 | 北京大学 | 基于gpu与cpu异构结构的椭圆曲线数字签名方法 |
CN113032845A (zh) * | 2021-03-31 | 2021-06-25 | 郑州信大捷安信息技术股份有限公司 | 一种用于资源受限芯片的EdDSA签名实现方法和装置 |
CN113037479A (zh) * | 2021-03-25 | 2021-06-25 | 支付宝(杭州)信息技术有限公司 | 数据验证方法和装置 |
WO2023175329A1 (en) * | 2022-03-18 | 2023-09-21 | Ncipher Security Limited | A device and a method for performing operations on elliptic curves |
-
2023
- 2023-10-24 CN CN202311383150.0A patent/CN117118637B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108512663A (zh) * | 2018-04-13 | 2018-09-07 | 深圳信息职业技术学院 | 椭圆曲线加密的点乘方法、装置及计算机可读存储介质 |
CN111917548A (zh) * | 2019-05-07 | 2020-11-10 | 北京大学 | 基于gpu与cpu异构结构的椭圆曲线数字签名方法 |
CN113037479A (zh) * | 2021-03-25 | 2021-06-25 | 支付宝(杭州)信息技术有限公司 | 数据验证方法和装置 |
CN113032845A (zh) * | 2021-03-31 | 2021-06-25 | 郑州信大捷安信息技术股份有限公司 | 一种用于资源受限芯片的EdDSA签名实现方法和装置 |
WO2023175329A1 (en) * | 2022-03-18 | 2023-09-21 | Ncipher Security Limited | A device and a method for performing operations on elliptic curves |
Non-Patent Citations (2)
Title |
---|
Curve25519椭圆曲线算法GPU高速实现;成娟娟;郑昉昱;林锵;董建阔;;信息网络安全(第09期);全文 * |
Topgun:An ECC Accelerator for Private Set Intersection;GUIMING WU etal.;《ACM Transactions on Reconfigurable Technology and Systems》;第16卷(第4期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN117118637A (zh) | 2023-11-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5710075B2 (ja) | 証明書の検証 | |
WO2020181822A1 (zh) | 加密数据一致性校验方法、装置、计算机设备及存储介质 | |
US9219602B2 (en) | Method and system for securely computing a base point in direct anonymous attestation | |
CA2792267C (en) | Verifying implicit certificates and digital signatures | |
CN108540291B (zh) | 基于身份的云存储中数据完整性验证方法 | |
CN112152794A (zh) | 具有基于签名加入协议和无限签名的有效后量子匿名证明 | |
US8250367B2 (en) | Cryptographic applications of efficiently evaluating large degree isogenies | |
CN112887081B (zh) | 基于sm2的签名验签方法、装置及系统 | |
CN110311776A (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
CN113095827A (zh) | 匿名多重签名方法、计算机设备和存储介质 | |
CN112434269A (zh) | 文件的零知识证明方法、验证方法、计算设备和存储介质 | |
CN111262707B (zh) | 数字签名方法及验证方法、设备、存储介质 | |
CN117118637B (zh) | 数据处理方法、装置、设备及计算机可读存储介质 | |
KR102070061B1 (ko) | 묶음 검증 방법 및 장치 | |
US11616994B2 (en) | Embedding information in elliptic curve base point | |
JP2011259389A (ja) | メッセージ認証子生成装置、メッセージ認証子検証装置、メッセージ認証子生成方法、メッセージ認証子検証方法、およびプログラム | |
CN112887097A (zh) | 基于sm2椭圆曲线的签名方法、相关装置、及存储介质 | |
CN116896440B (zh) | 基于区块链的声明数据的验证方法和装置、设备和介质 | |
CN112541197B (zh) | 一种结果验证方法及装置 | |
CN117278213B (zh) | 基于多项式承诺的方法、电子设备及可读存储介质 | |
CN117692150B (zh) | 一种签名生成、签名验证方法及计算机设备 | |
CN116975935B (zh) | 数据比较方法、存储介质及电子设备 | |
CN115174057B (zh) | 一种基于sm2签名的在线离线签名生成方法及系统 | |
CN116318738B (zh) | 签名方法、系统、电子设备及存储介质 | |
CN112632636B (zh) | 一种密文数据比较结果的证明与验证方法及装置 |
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 |