CN117353934A - 基于ecdsa的可验证随机函数构造方法、装置、设备 - Google Patents
基于ecdsa的可验证随机函数构造方法、装置、设备 Download PDFInfo
- Publication number
- CN117353934A CN117353934A CN202311277821.5A CN202311277821A CN117353934A CN 117353934 A CN117353934 A CN 117353934A CN 202311277821 A CN202311277821 A CN 202311277821A CN 117353934 A CN117353934 A CN 117353934A
- Authority
- CN
- China
- Prior art keywords
- value
- hash
- partial
- proving
- proof
- 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
- 238000010276 construction Methods 0.000 title claims abstract description 34
- 238000004364 calculation method Methods 0.000 claims abstract description 48
- 230000006870 function Effects 0.000 claims description 122
- 238000012795 verification Methods 0.000 claims description 59
- 238000000034 method Methods 0.000 claims description 24
- 238000004590 computer program Methods 0.000 claims description 14
- 238000004422 calculation algorithm Methods 0.000 abstract description 9
- 238000004891 communication Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000010200 validation analysis Methods 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/3218—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 using proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs
-
- 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/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- 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/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Algebra (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Power Engineering (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种基于ECDSA的可验证随机函数构造方法、装置、设备,涉及计算机技术领域,包括:构建包含阿尔法群、阿尔法群中的任意生成元、生成元的阶、第一哈希函数、第二哈希函数以及第三哈希函数的系统参数集;利用第一哈希函数计算当前消息的杂凑值,并确定杂凑值的横坐标;利用第二哈希函数,并基于随机选取到的中间值、生成元和杂凑值计算第一部分证明值;利用杂凑值的横坐标、随机选取到的私钥、中间值、第一部分证明值、以及生成元的阶确定第二部分证明值;利用私钥和杂凑值确定第三部分证明值;利用第三哈希函数对第三部分证明值进行哈希计算得到可验证随机数。本发明能够满足国内联盟链或许可链对共识算法可扩展性和安全性需求。
Description
技术领域
本发明涉及计算机技术领域,特别涉及一种基于ECDSA的可验证随机函数构造方法、装置、设备。
背景技术
目前国际上已经有IETF机构提出的VRF(Verifiable Random Function,可验证随机函数)标准草案,其中,可验证随机函数是公钥密码学与哈希函数结合的另外一种应用方式,其生成的伪随机数是可以被验证的,并且只有私钥的持有者才能计算并生成伪随机数,任何拥有公钥的人都可以验证随机数的正确性。可验证随机函数可以看作是一个随机预言机,通过任意输入,获得随机数输出,只是可验证随机函数比随机预言机多了一个非交互的零知识证明的过程,可以用来验证该随机数输出的正确性,表明这个随机数的确是某个人或者节点生成的。使用VRF,达到的随机选取节点的目的与使用工作量证明选取节点的结果类似,但相比于后者,使用VRF可以节省大量算力和电力,且既随机又安全而秘密选取出块节点,可有效抵御选择目标攻击。然而,当前并没有一种基于ECDSA(Elliptic CurveDigital Signature Algorithm,椭圆曲线数字签名算法)公钥加密的可验证随机函数,无法满足国内联盟链或许可链对共识算法可扩展性和安全性需求。
发明内容
有鉴于此,本发明的目的在于提供基于ECDSA的可验证随机函数构造方法、装置、设备,能够提高运算速度,既能够保证散列结果的正确性,又能够保证对散列结果的可验证性,并满足国内联盟链或许可链对共识算法可扩展性和安全性需求。其具体方案如下:
第一方面,本发明公开了一种基于ECDSA的可验证随机函数构造方法,包括:
构建包含阿尔法群、所述阿尔法群中的任意生成元、所述生成元的阶、第一哈希函数、第二哈希函数以及第三哈希函数的系统参数集;
利用所述第一哈希函数对当前消息进行哈希计算得到相应的杂凑值,并确定所述杂凑值的横坐标;
利用所述第二哈希函数,并基于随机选取到的中间值、所述生成元和所述杂凑值进行哈希计算得到相应的第一部分证明值;
利用所述杂凑值的所述横坐标、随机选取到的私钥、所述中间值、所述第一部分证明值、以及所述生成元的阶确定相应的第二部分证明值;
利用所述私钥和所述杂凑值确定相应的第三部分证明值;
利用第三哈希函数对所述第三部分证明值进行哈希计算得到相应的可验证随机数,并基于所述第一部分证明值、所述第二部分证明值和所述第三部分证明值构建相应的证明值集合。
可选的,所述利用所述第二哈希函数,并基于随机选取到的中间值、所述生成元和所述杂凑值进行哈希计算得到相应的第一部分证明值,包括:
将随机选取到的中间值和所述生成元进行点乘得到相应的第一点乘结果,并将所述中间值和所述杂凑值进行点乘得到相应的第二点乘结果;
利用所述第二哈希函数对所述第一点乘结果和所述第二点乘结果进行哈希计算得到相应的第一部分证明值。
可选的,所述利用所述杂凑值的所述横坐标、随机选取到的私钥、所述中间值、所述第一部分证明值、以及所述生成元的阶确定相应的第二部分证明值,包括:
利用第一预设公式对所述杂凑值的所述横坐标、随机选取到的私钥、所述中间值、所述第一部分证明值、以及所述生成元的阶进行计算得到相应的第二部分证明值;所述第一预设公式为s=(k-1·(z+r·x))mod q且z=fx(Q);
其中,s表示所述第二部分证明值,k-1表示所述中间值k的倒数,fx(Q)表示确定杂凑值Q的横坐标,z表示所述横坐标,r表示所述第一部分证明值,x表示所述私钥,q表示所述生成元的阶。
可选的,所述利用所述私钥和所述杂凑值确定相应的第三部分证明值,包括:
将所述私钥和所述杂凑值进行点乘得到相应的第三部分证明值。
可选的,所述基于ECDSA的可验证随机函数构造方法,还包括:
将所述随机选取到的私钥和所述系统参数集中的所述生成元进行点乘得到相应公钥。
可选的,所述基于ECDSA的可验证随机函数构造方法,还包括:
判断利用所述第三哈希函数对所述证明值集合中的所述第三部分证明值进行哈希计算得到所述可验证随机数的过程是否成立;
如果成立,则重新利用所述第一哈希函数对所述消息进行哈希计算得到相应的目标杂凑值;
确定所述目标杂凑值的目标横坐标;
利用第二预设公式对所述证明值集合中的所述第一部分证明值和所述第二部分证明值、所述目标杂凑值的目标横坐标、所述生成元以及所述公钥进行计算得到相应的第一验证值;其中,所述第二预设公式为U1=z′·s-1·G+r·s-1·PK且z′=fx(Q′),并且U1表示所述第一验证值,s-1表示所述证明值集合中的所述第二部分证明值s的倒数,G表示所述生成元,r表示所述证明值集合中的所述第一部分证明值,PK表示所述公钥,fx(Q′)表示确定所述目标杂凑值Q′的目标横坐标,z′表示所述目标横坐标;
利用第三预设公式对所述证明值集合中的所述第一部分证明值、所述第二部分证明值和所述第三部分证明值、所述目标横坐标以及所述目标杂凑值进行计算得到相应的第二验证值;其中,所述第三预设公式为U2=z′·s-1·Q′+r·s-1·V,并且U2表示所述第二验证值,z′表示所述目标横坐标,s-1表示所述证明值集合中的所述第二部分证明值s的倒数,Q′表示所述目标杂凑值,r表示所述证明值集合中的所述第一部分证明值,V表示所述证明值集合中的所述第三部分证明值;
利用所述第二哈希函数对所述第一验证值和所述第二验证值进行哈希计算得到相应的目标部分证明值;
判断所述目标部分证明值与所述证明值集合中的所述第一部分证明值是否一致得到相应的判断结果;
基于所述判断结果确定所述可验证随机数是否有效。
可选的,所述基于所述判断结果确定所述可验证随机数是否有效,包括:
如果所述判断结果表明所述目标部分证明值与所述证明值集合中的所述第一部分证明值一致,则判定所述可验证随机数有效,且验证通过;
如果所述判断结果表明所述目标部分证明值与所述证明值集合中的所述第一部分证明值不一致,则判定所述可验证随机数无效,且验证不通过。
第二方面,本发明公开了一种基于ECDSA的可验证随机函数构造装置,包括:
构建模块,用于构建包含阿尔法群、所述阿尔法群中的任意生成元、所述生成元的阶、第一哈希函数、第二哈希函数以及第三哈希函数的系统参数集;
第一计算模块,用于利用所述第一哈希函数对当前消息进行哈希计算得到相应的杂凑值,并确定所述杂凑值的横坐标;
第一证明值确定模块,用于利用所述第二哈希函数,并基于随机选取到的中间值、所述生成元和所述杂凑值进行哈希计算得到相应的第一部分证明值;
第二证明值确定模块,用于利用所述杂凑值的所述横坐标、随机选取到的私钥、所述中间值、所述第一部分证明值、以及所述生成元的阶确定相应的第二部分证明值;
第三证明值确定模块,用于利用所述私钥和所述杂凑值确定相应的第三部分证明值;
可验证随机数生成模块,用于利用第三哈希函数对所述第三部分证明值进行哈希计算得到相应的可验证随机数;
证明值集合构建模块,用于基于所述第一部分证明值、所述第二部分证明值和所述第三部分证明值构建相应的证明值集合。
第三方面,本发明公开了一种电子设备,包括:
存储器,用于保存计算机程序;
处理器,用于执行所述计算机程序,以实现前述公开的基于ECDSA的可验证随机函数构造方法的步骤。
第四方面,本发明公开了一种计算机可读存储介质,用于存储计算机程序;其中,所述计算机程序被处理器执行时实现前述公开的基于ECDSA的可验证随机函数构造方法的步骤。
可见,本发明提供了一种基于ECDSA的可验证随机函数构造方法,包括:构建包含阿尔法群、所述阿尔法群中的任意生成元、所述生成元的阶、第一哈希函数、第二哈希函数以及第三哈希函数的系统参数集;利用所述第一哈希函数对当前消息进行哈希计算得到相应的杂凑值,并确定所述杂凑值的横坐标;利用所述第二哈希函数,并基于随机选取到的中间值、所述生成元和所述杂凑值进行哈希计算得到相应的第一部分证明值;利用所述杂凑值的所述横坐标、随机选取到的私钥、所述中间值、所述第一部分证明值、以及所述生成元的阶确定相应的第二部分证明值;利用所述私钥和所述杂凑值确定相应的第三部分证明值;利用第三哈希函数对所述第三部分证明值进行哈希计算得到相应的可验证随机数,并基于所述第一部分证明值、所述第二部分证明值和所述第三部分证明值构建相应的证明值集合。由此可知,本发明通过基于ECDSA实现可验证随机函数的构造,生成相应的可验证随机数、证明值集合,能够提高运算速度,既能够保证散列结果的正确性,又能够保证对散列结果的可验证性,并满足国内联盟链或许可链对共识算法可扩展性和安全性需求。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明公开的一种基于ECDSA的可验证随机函数构造方法流程图;
图2为本发明公开的一种具体的验证方法流程图;
图3为本发明公开的一种具体的基于ECDSA的可验证随机函数构造及其验证示意图;
图4为本发明公开的一种基于ECDSA的可验证随机函数构造装置结构示意图;
图5为本发明公开的一种电子设备结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
当前并没有一种基于ECDSA公钥加密的可验证随机函数,无法满足国内联盟链或许可链对共识算法可扩展性和安全性需求。为此,本发明提供了一种基于ECDSA的可验证随机函数构造方案,能够提高运算速度,既能够保证散列结果的正确性,又能够保证对散列结果的可验证性,并满足国内联盟链或许可链对共识算法可扩展性和安全性需求。
本发明实施例公开了一种基于ECDSA的可验证随机函数构造方法,参见图1所示,该方法包括:
步骤S11:构建包含阿尔法群、所述阿尔法群中的任意生成元、所述生成元的阶、第一哈希函数、第二哈希函数以及第三哈希函数的系统参数集。
可以理解的是,在初始化阶段,对系统进行初始化以得到系统构建输出的包含阿尔法群、所述阿尔法群中的任意生成元、所述生成元的阶、第一哈希函数、第二哈希函数以及第三哈希函数的系统参数集,例如,给定安全参数1n,初始化阿贝尔群也即椭圆曲线循环群,然后再从阿贝尔群中随机选取一个生成元/>生成元G的阶为q,选择哈希函数/> 输出相应的系统参数/>其中,/>表示第一哈希函数,表示第二哈希函数,以及/>表示第三哈希函数。
其中,阿贝尔群表示阶为素数q的椭圆曲线群,阿贝尔群中的元素为椭圆曲线上的点,G表示阿贝尔群/>的一个生成元,q表示生成元G的阶,也即阿贝尔群/>的阶,并且/>表示由整数1,2,…,q-1组成的整数集合。
步骤S12:利用所述第一哈希函数对当前消息进行哈希计算得到相应的杂凑值,并确定所述杂凑值的横坐标。
本实施例中,确定当前的公私钥对之后,在随机数和证明生成阶段,针对当前消息m,利用所述第一哈希函数对当前消息进行哈希计算得到相应的杂凑值。例如,利用第一哈希函数计算对消息m的杂凑值,即Q=H1(m),其中,Q表示所述杂凑值。
本实施例中,确定所述杂凑值的横坐标。可以理解的是,由于第一哈希函数所以利用第一哈希函数计算对消息m的杂凑值Q,即Q=H1(m),该杂凑值Q属于阿贝尔群/>中的一个元素,也即椭圆曲线上的一个点,所以可以确定杂凑值的横坐标,即z=fx(Q),其中fx(Q)表示确定杂凑值Q的横坐标,z表示所述横坐标。
步骤S13:利用所述第二哈希函数,并基于随机选取到的中间值、所述生成元和所述杂凑值进行哈希计算得到相应的第一部分证明值。
本实施例中,利用所述第二哈希函数,并基于随机选取到的中间值、所述生成元和所述杂凑值进行哈希计算得到相应的第一部分证明值,具体的,将随机选取到的中间值和所述生成元进行点乘得到相应的第一点乘结果,并将所述中间值和所述杂凑值进行点乘得到相应的第二点乘结果;利用所述第二哈希函数对所述第一点乘结果和所述第二点乘结果进行哈希计算得到相应的第一部分证明值。例如,随机选取中间值k,且将中间值分别与生成元G和杂凑值进行点乘得到相应的第一点乘结果和第二点乘结果,然后利用第二哈希函数对所述第一点乘结果和所述第二点乘结果进行哈希计算得到相应的第一部分证明值r,即r=H2(k·G,k·Q)。
步骤S14:利用所述杂凑值的所述横坐标、随机选取到的私钥、所述中间值、所述第一部分证明值、以及所述生成元的阶确定相应的第二部分证明值。
本实施例中,利用所述杂凑值的所述横坐标、随机选取到的私钥、所述中间值、所述第一部分证明值、以及所述生成元的阶确定相应的第二部分证明值。具体的,利用第一预设公式对所述杂凑值的所述横坐标、随机选取到的私钥、所述中间值、所述第一部分证明值、以及所述生成元的阶进行计算得到相应的第二部分证明值;所述第一预设公式为s=(k-1·(z+r·x))mod q且z=fx(Q);其中,s表示所述第二部分证明值,k-1表示所述中间值k的倒数,fx(Q)表示确定杂凑值Q的横坐标,z表示所述横坐标,r表示所述第一部分证明值,x表示所述私钥,q表示所述生成元的阶。
步骤S15:利用所述私钥和所述杂凑值确定相应的第三部分证明值。
本实施例中,利用第一哈希函数计算对消息m的杂凑值Q,即Q=H1(m)之后,利用所述私钥和所述杂凑值确定相应的第三部分证明值。具体的,将所述私钥和所述杂凑值进行点乘得到相应的第三部分证明值。例如,将私钥x和杂凑值Q进行点乘,计算出的第三部分证明值V,即V=x·Q。
步骤S16:利用第三哈希函数对所述第三部分证明值进行哈希计算得到相应的可验证随机数,并基于所述第一部分证明值、所述第二部分证明值和所述第三部分证明值构建相应的证明值集合。
本实施例中,利用第三哈希函数对所述第三部分证明值进行哈希计算得到相应的可验证随机数。例如,计算可验证随机数v,即v=H3(V)。
本实施例中,在计算出第一部分证明值r、第二部分证明值s和第三部分证明值V之后,基于所述第一部分证明值、所述第二部分证明值和所述第三部分证明值构建相应的证明值集合,即(V,r,s)。
可见,本发明实施例中,通过基于ECDSA实现可验证随机函数的构造,生成相应的可验证随机数、证明值集合,能够提高运算速度,既能够保证散列结果的正确性,又能够保证对散列结果的可验证性,并满足国内联盟链或许可链对共识算法可扩展性和安全性需求。
需要指出的是,在密钥生成阶段中,将所述随机选取到的私钥和所述系统参数集中的所述生成元进行点乘得到相应公钥,其中,私钥用于生成部分散列值,公钥用于验证散列值。例如,随机选取私钥x,且利用私钥和系统参数集中的生成元计算公钥,即PK=x·G,从而得到相应的公私钥对(PK,x),其中,x表示私钥,PK表示公钥。然后,在生成随机数v和证明值(V,r,s)之后,可以利用公钥进行相应的验证。
相应的,本发明实施例还公开一种具体的验证方法,参见图2所示,该方法可以包括:
步骤S21:判断利用所述第三哈希函数对所述证明值集合中的所述第三部分证明值进行哈希计算得到所述可验证随机数的过程是否成立。
本实施例中,针对于可验证随机数v,消息m,证明值(V,r,s),首先判断利用所述第三哈希函数对所述证明值集合中的所述第三部分证明值进行哈希计算得到所述可验证随机数的过程是否成立,即判断v=H3(V)是否成立,如果不成立,可直接判定当前验证不通过。
步骤S22:如果成立,则重新利用所述第一哈希函数对所述消息进行哈希计算得到相应的目标杂凑值。
本实施例中,在判断利用所述第三哈希函数对所述证明值集合中的所述第三部分证明值进行哈希计算得到所述可验证随机数的过程是否成立时,如果成立,即v=H3(V)成立,则重新利用所述第一哈希函数对所述消息进行哈希计算得到相应的用于验证的目标杂凑值,即Q′=H1(m)。
步骤S23:确定所述目标杂凑值的目标横坐标。
可以理解的是,针对于重新利用所述第一哈希函数对所述消息进行哈希计算得到相应的用于验证的目标杂凑值,再确定该目标杂凑值的横坐标,得到目标横坐标。例如,确定目标杂凑值的目标横坐标,即z′=fx(Q′),其中,fx(Q′)表示确定所述目标杂凑值Q′的目标横坐标,z′表示所述目标横坐标。
步骤S24:利用第二预设公式对所述证明值集合中的所述第一部分证明值和所述第二部分证明值、所述目标杂凑值的目标横坐标、所述生成元以及所述公钥进行计算得到相应的第一验证值;其中,所述第二预设公式为U1=z′·s-1·G+r·s-1·PK且z′=fx(Q′),并且U1表示所述第一验证值,s-1表示所述证明值集合中的所述第二部分证明值s的倒数,G表示所述生成元,r表示所述证明值集合中的所述第一部分证明值,PK表示所述公钥,fx(Q′)表示确定所述目标杂凑值Q′的目标横坐标,z′表示所述目标横坐标。
可以理解的是,计算第一验证值涉及目标杂凑值Q′的目标横坐标z′、证明值集合中的所述第一部分证明值r、所述证明值集合中的所述第二部分证明值s的倒数、从阿贝尔群中随机选取一个生成元G以及前述利用随机选取到的私钥和所述系统参数集中的所述生成元计算出的公钥,然后按照第二预设公式对这些参数进行点乘处理以及相加处理,得到第一验证值。
步骤S25:利用第三预设公式对所述证明值集合中的所述第一部分证明值、所述第二部分证明值和所述第三部分证明值、所述目标横坐标以及所述目标杂凑值进行计算得到相应的第二验证值;其中,所述第三预设公式为U2=z′·s-1·Q′+r·s-1·V,并且U2表示所述第二验证值,z′表示所述目标横坐标,s-1表示所述证明值集合中的所述第二部分证明值s的倒数,Q′表示所述目标杂凑值,r表示所述证明值集合中的所述第一部分证明值,V表示所述证明值集合中的所述第三部分证明值。
可以理解的是,计算第二验证值涉及目标杂凑值Q′、目标杂凑值的目标横坐标z′、证明值集合中的所述第一部分证明值r,所述证明值集合中的所述第三部分证明值V以及所述证明值集合中的所述第二部分证明值s的倒数,按照第三预设公式对这些参数进行点乘处理以及相加处理,得到第二验证值。
步骤S26:利用所述第二哈希函数对所述第一验证值和所述第二验证值进行哈希计算得到相应的目标部分证明值。
本实施例中,利用第二预设公式和第三预设公式计算出第一验证值和第二验证值之后,利用所述第二哈希函数对所述第一验证值和所述第二验证值进行哈希计算得到相应的目标部分证明值,即r′=H2(U1,U2),其中,r′表示目标部分证明值。
步骤S27:判断所述目标部分证明值与所述证明值集合中的所述第一部分证明值是否一致得到相应的判断结果。
本实施例中,确定出用于验证的目标部分证明值之后,判断所述目标部分证明值与所述证明值集合中的所述第一部分证明值是否一致得到相应的判断结果,即判断r=r′是否成立。
步骤S28:基于所述判断结果确定所述可验证随机数是否有效。
本实施例中,基于所述判断结果确定所述可验证随机数是否有效,如果所述判断结果表明所述目标部分证明值与所述证明值集合中的所述第一部分证明值一致,则判定所述可验证随机数有效,且验证通过;如果所述判断结果表明所述目标部分证明值与所述证明值集合中的所述第一部分证明值不一致,则判定所述可验证随机数无效,且验证不通过。
例如,参见图3所示,完成系统初始化得到相应的系统参数并生成相应的公私钥对(PK,x)之后,针对于当前的消息m,在证明部分,生成可验证随机数和证明值的过程具体如下:
(a)计算对消息m的杂凑值Q=H1(m);
(b)随机选取中间值k,且计算部分证明值r=H2(k·G,k·Q);
(c)计算部分证明值s=(k-1·(z+r·x))mod q;
(d)计算部分证明值V=x·Q;
(e)计算可验证随机数v=H3(V);
(f)输出可验证随机数v和证明值(V,r,s)。
在验证部分,利用输出可验证随机数v和证明值(V,r,s)、以及消息m进行验证,具体的验证过程如下:
(a)判断v=H3(V)是否成立,如果不成立,则输出预设的符号⊥,以表示当前验证不通过;
(b)重新计算消息m的杂凑值,即Q′=H1(m),并计算杂凑值的横坐标,即z′=fx(Q′);
(c)计算U1=z′·s-1·G+r·s-1·PK;
(d)计算U2=z′·s-1·Q′+r·s-1·V;
(e)计算r′=H2(U1,U2);
(f)判断r=r′是否成立,如果r=r′成立,则判定所述可验证随机数有效,且验证通过;如果r=r′不成立,判定所述可验证随机数无效,且验证不通过。
相应的,本发明实施例还公开了一种基于ECDSA的可验证随机函数构造装置,参见图4所示,该装置包括:
构建模块11,用于构建包含阿尔法群、所述阿尔法群中的任意生成元、所述生成元的阶、第一哈希函数、第二哈希函数以及第三哈希函数的系统参数集;
第一计算模块12,用于利用所述第一哈希函数对当前消息进行哈希计算得到相应的杂凑值,并确定所述杂凑值的横坐标;
第一证明值确定模块13,用于利用所述第二哈希函数,并基于随机选取到的中间值、所述生成元和所述杂凑值进行哈希计算得到相应的第一部分证明值;
第二证明值确定模块14,用于利用所述杂凑值的所述横坐标、随机选取到的私钥、所述中间值、所述第一部分证明值、以及所述生成元的阶确定相应的第二部分证明值;
第三证明值确定模块15,用于利用所述私钥和所述杂凑值确定相应的第三部分证明值;
可验证随机数生成模块16,用于利用第三哈希函数对所述第三部分证明值进行哈希计算得到相应的可验证随机数;
证明值集合构建模块17,用于基于所述第一部分证明值、所述第二部分证明值和所述第三部分证明值构建相应的证明值集合。
由上可见,本发明实施例中,通过基于ECDSA实现可验证随机函数的构造,生成相应的可验证随机数、证明值集合,能够提高运算速度,既能够保证散列结果的正确性,又能够保证对散列结果的可验证性,并满足国内联盟链或许可链对共识算法可扩展性和安全性需求。
在一些具体的实施例中,所述第一证明值确定模块14,具体可以包括:
第一点乘单元,用于将随机选取到的中间值和所述生成元进行点乘得到相应的第一点乘结果;
第二点乘单元,用于将所述中间值和所述杂凑值进行点乘得到相应的第二点乘结果;
第一证明值确定单元,用于利用所述第二哈希函数对所述第一点乘结果和所述第二点乘结果进行哈希计算得到相应的第一部分证明值。
在一些具体的实施例中,所述第二证明值确定模块15,具体可以包括:
第二证明值确定单元,用于利用第一预设公式对所述杂凑值的所述横坐标、随机选取到的私钥、所述中间值、所述第一部分证明值、以及所述生成元的阶进行计算得到相应的第二部分证明值;所述第一预设公式为s=(k-1·(z+r·x))mod q且z=fx(Q);
其中,s表示所述第二部分证明值,k-1表示所述中间值k的倒数,fx(Q)表示确定杂凑值Q的横坐标,z表示所述横坐标,r表示所述第一部分证明值,x表示所述私钥,q表示所述生成元的阶。
在一些具体的实施例中,所述第三证明值确定模块16,具体可以包括:
第三证明值确定单元,用于将所述私钥和所述杂凑值进行点乘得到相应的第三部分证明值。
在一些具体的实施例中,所述基于ECDSA的可验证随机函数构造装置,具体还可以包括:
公钥计算模块,用于将所述随机选取到的私钥和所述系统参数集中的所述生成元进行点乘得到相应公钥。
在一些具体的实施例中,所述基于ECDSA的可验证随机函数构造装置,具体还可以包括:
第一判断模块,用于判断利用所述第三哈希函数对所述证明值集合中的所述第三部分证明值进行哈希计算得到所述可验证随机数的过程是否成立;
目标杂凑值确定模块,用于在利用所述第三哈希函数对所述证明值集合中的所述第三部分证明值进行哈希计算得到所述可验证随机数的过程成立时,则重新利用所述第一哈希函数对所述消息进行哈希计算得到相应的目标杂凑值;
目标杂凑值确定模块,用于确定所述目标杂凑值的目标横坐标;
第一验证值确定模块,用于利用第二预设公式对所述证明值集合中的所述第一部分证明值和所述第二部分证明值、所述目标杂凑值的目标横坐标、所述生成元以及所述公钥进行计算得到相应的第一验证值;其中,所述第二预设公式为U1=z′·s-1·G+r·s-1·PK且z′=fx(Q′),并且U1表示所述第一验证值,s-1表示所述证明值集合中的所述第二部分证明值s的倒数,G表示所述生成元,r表示所述证明值集合中的所述第一部分证明值,PK表示所述公钥,fx(Q′)表示确定所述目标杂凑值Q′的目标横坐标,z′表示所述目标横坐标;
第二验证值确定模块,用于利用第三预设公式对所述证明值集合中的所述第一部分证明值、所述第二部分证明值和所述第三部分证明值、所述目标横坐标以及所述目标杂凑值进行计算得到相应的第二验证值;其中,所述第三预设公式为U2=z′·s-1·Q′+r·s-1·V,并且U2表示所述第二验证值,z′表示所述目标横坐标,s-1表示所述证明值集合中的所述第二部分证明值s的倒数,Q′表示所述目标杂凑值,r表示所述证明值集合中的所述第一部分证明值,V表示所述证明值集合中的所述第三部分证明值;
目标部分证明值确定模块,用于利用所述第二哈希函数对所述第一验证值和所述第二验证值进行哈希计算得到相应的目标部分证明值;
第二判断模块,用于判断所述目标部分证明值与所述证明值集合中的所述第一部分证明值是否一致得到相应的判断结果;
第三判断模块,用于基于所述判断结果确定所述可验证随机数是否有效。
在一些具体的实施例中,所述第三判断模块,具体可以包括:
第一判定单元,用于在所述判断结果表明所述目标部分证明值与所述证明值集合中的所述第一部分证明值一致时,则判定所述可验证随机数有效,且验证通过;
第二判定单元,用于所述判断结果表明所述目标部分证明值与所述证明值集合中的所述第一部分证明值不一致时,则判定所述可验证随机数无效,且验证不通过。
进一步的,本发明实施例还提供了一种电子设备。图5是根据一示例性实施例示出的电子设备20结构图,图中的内容不能认为是对本发明的使用范围的任何限制。
图5为本发明实施例提供的一种电子设备20的结构示意图。该电子设备20,具体可以包括:至少一个处理器21、至少一个存储器22、电源23、通信接口24、输入输出接口25和通信总线26。其中,所述存储器22用于存储计算机程序,所述计算机程序由所述处理器21加载并执行,以实现前述任一实施例公开的基于ECDSA的可验证随机函数构造方法中的相关步骤。另外,本实施例中的电子设备20具体可以为电子计算机。
本实施例中,电源23用于为电子设备20上的各硬件设备提供工作电压;通信接口24能够为电子设备20创建与外界设备之间的数据传输通道,其所遵循的通信协议是能够适用于本发明技术方案的任意通信协议,在此不对其进行具体限定;输入输出接口25,用于获取外界输入数据或向外界输出数据,其具体的接口类型可以根据具体应用需要进行选取,在此不进行具体限定。
另外,存储器22作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,其上所存储的资源可以包括操作系统221、计算机程序222等,存储方式可以是短暂存储或者永久存储。
其中,操作系统221用于管理与控制电子设备20上的各硬件设备以及计算机程序222,其可以是Windows Server、Netware、Unix、Linux等。计算机程序222除了包括能够用于完成前述任一实施例公开的由电子设备20执行的基于ECDSA的可验证随机函数构造方法的计算机程序之外,还可以进一步包括能够用于完成其他特定工作的计算机程序。
进一步的,本发明实施例还公开了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被处理器加载并执行时,实现前述任一实施例公开的基于ECDSA的可验证随机函数构造方法步骤。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本发明所提供的基于ECDSA的可验证随机函数构造方法、装置、设备进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (9)
1.一种基于ECDSA的可验证随机函数构造方法,其特征在于,包括:
构建包含阿尔法群、所述阿尔法群中的任意生成元、所述生成元的阶、第一哈希函数、第二哈希函数以及第三哈希函数的系统参数集;
利用所述第一哈希函数对当前消息进行哈希计算得到相应的杂凑值,并确定所述杂凑值的横坐标;
利用所述第二哈希函数,并基于随机选取到的中间值、所述生成元和所述杂凑值进行哈希计算得到相应的第一部分证明值;
利用所述杂凑值的所述横坐标、随机选取到的私钥、所述中间值、所述第一部分证明值、以及所述生成元的阶确定相应的第二部分证明值;
利用所述私钥和所述杂凑值确定相应的第三部分证明值;
利用第三哈希函数对所述第三部分证明值进行哈希计算得到相应的可验证随机数,并基于所述第一部分证明值、所述第二部分证明值和所述第三部分证明值构建相应的证明值集合。
2.根据权利要求1所述的基于ECDSA的可验证随机函数构造方法,其特征在于,所述利用所述第二哈希函数,并基于随机选取到的中间值、所述生成元和所述杂凑值进行哈希计算得到相应的第一部分证明值,包括:
将随机选取到的中间值和所述生成元进行点乘得到相应的第一点乘结果,并将所述中间值和所述杂凑值进行点乘得到相应的第二点乘结果;
利用所述第二哈希函数对所述第一点乘结果和所述第二点乘结果进行哈希计算得到相应的第一部分证明值。
3.根据权利要求1所述的基于ECDSA的可验证随机函数构造方法,其特征在于,所述利用所述杂凑值的所述横坐标、随机选取到的私钥、所述中间值、所述第一部分证明值、以及所述生成元的阶确定相应的第二部分证明值,包括:
利用第一预设公式对所述杂凑值的所述横坐标、随机选取到的私钥、所述中间值、所述第一部分证明值、以及所述生成元的阶进行计算得到相应的第二部分证明值;所述第一预设公式为s=(k-1·(z+r·x))mod q且z=fx(Q);
其中,s表示所述第二部分证明值,k-1表示所述中间值k的倒数,fx(Q)表示确定杂凑值Q的横坐标,z表示所述横坐标,r表示所述第一部分证明值,x表示所述私钥,q表示所述生成元的阶。
4.根据权利要求1所述的基于ECDSA的可验证随机函数构造方法,其特征在于,所述利用所述私钥和所述杂凑值确定相应的第三部分证明值,包括:
将所述私钥和所述杂凑值进行点乘得到相应的第三部分证明值。
5.根据权利要求1至4任一项所述的基于ECDSA的可验证随机函数构造方法,其特征在于,还包括:
将所述随机选取到的私钥和所述系统参数集中的所述生成元进行点乘得到相应公钥。
6.根据权利要求5所述的基于ECDSA的可验证随机函数构造方法,其特征在于,还包括:
判断利用所述第三哈希函数对所述证明值集合中的所述第三部分证明值进行哈希计算得到所述可验证随机数的过程是否成立;
如果成立,则重新利用所述第一哈希函数对所述消息进行哈希计算得到相应的目标杂凑值;
确定所述目标杂凑值的目标横坐标;
利用第二预设公式对所述证明值集合中的所述第一部分证明值和所述第二部分证明值、所述目标杂凑值的目标横坐标、所述生成元以及所述公钥进行计算得到相应的第一验证值;其中,所述第二预设公式为U1=z′·s-1·G+r·s-1·PK且z′=fx(Q′),并且U1表示所述第一验证值,s-1表示所述证明值集合中的所述第二部分证明值s的倒数,G表示所述生成元,r表示所述证明值集合中的所述第一部分证明值,PK表示所述公钥,fx(Q′)表示确定所述目标杂凑值Q′的目标横坐标,z′表示所述目标横坐标;
利用第三预设公式对所述证明值集合中的所述第一部分证明值、所述第二部分证明值和所述第三部分证明值、所述目标横坐标以及所述目标杂凑值进行计算得到相应的第二验证值;其中,所述第三预设公式为U2=z′·s-1·Q′+r·s-1·V,并且U2表示所述第二验证值,z′表示所述目标横坐标,s-1表示所述证明值集合中的所述第二部分证明值s的倒数,Q′表示所述目标杂凑值,r表示所述证明值集合中的所述第一部分证明值,V表示所述证明值集合中的所述第三部分证明值;
利用所述第二哈希函数对所述第一验证值和所述第二验证值进行哈希计算得到相应的目标部分证明值;
判断所述目标部分证明值与所述证明值集合中的所述第一部分证明值是否一致得到相应的判断结果;
基于所述判断结果确定所述可验证随机数是否有效。
7.根据权利要求6所述的基于ECDSA的可验证随机函数构造方法,其特征在于,所述基于所述判断结果确定所述可验证随机数是否有效,包括:
如果所述判断结果表明所述目标部分证明值与所述证明值集合中的所述第一部分证明值一致,则判定所述可验证随机数有效,且验证通过;
如果所述判断结果表明所述目标部分证明值与所述证明值集合中的所述第一部分证明值不一致,则判定所述可验证随机数无效,且验证不通过。
8.一种基于ECDSA的可验证随机函数构造装置,其特征在于,包括:
构建模块,用于构建包含阿尔法群、所述阿尔法群中的任意生成元、所述生成元的阶、第一哈希函数、第二哈希函数以及第三哈希函数的系统参数集;
第一计算模块,用于利用所述第一哈希函数对当前消息进行哈希计算得到相应的杂凑值,并确定所述杂凑值的横坐标;
第一证明值确定模块,用于利用所述第二哈希函数,并基于随机选取到的中间值、所述生成元和所述杂凑值进行哈希计算得到相应的第一部分证明值;
第二证明值确定模块,用于利用所述杂凑值的所述横坐标、随机选取到的私钥、所述中间值、所述第一部分证明值、以及所述生成元的阶确定相应的第二部分证明值;
第三证明值确定模块,用于利用所述私钥和所述杂凑值确定相应的第三部分证明值;
可验证随机数生成模块,用于利用第三哈希函数对所述第三部分证明值进行哈希计算得到相应的可验证随机数;
证明值集合构建模块,用于基于所述第一部分证明值、所述第二部分证明值和所述第三部分证明值构建相应的证明值集合。
9.一种电子设备,其特征在于,包括:
存储器,用于保存计算机程序;
处理器,用于执行所述计算机程序,以实现如权利要求1至7任一项所述的基于ECDSA的可验证随机函数构造方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311277821.5A CN117353934A (zh) | 2023-09-28 | 2023-09-28 | 基于ecdsa的可验证随机函数构造方法、装置、设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311277821.5A CN117353934A (zh) | 2023-09-28 | 2023-09-28 | 基于ecdsa的可验证随机函数构造方法、装置、设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117353934A true CN117353934A (zh) | 2024-01-05 |
Family
ID=89370338
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311277821.5A Pending CN117353934A (zh) | 2023-09-28 | 2023-09-28 | 基于ecdsa的可验证随机函数构造方法、装置、设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117353934A (zh) |
-
2023
- 2023-09-28 CN CN202311277821.5A patent/CN117353934A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5329676B2 (ja) | 鍵合意プロトコルの加速 | |
US9009481B2 (en) | System and method for protecting cryptographic assets from a white-box attack | |
US8681986B2 (en) | Single-round password-based key exchange protocols | |
US20100281267A1 (en) | Image Processing Apparatus, Electronic Signature Generation System, Electronic Signature Key Generation Method, Image Processing Method, and Program | |
CN113037479B (zh) | 数据验证方法和装置 | |
CN112446052A (zh) | 一种适用于涉密信息系统的聚合签名方法及系统 | |
Sarath et al. | A survey on elliptic curve digital signature algorithm and its variants | |
CN116346328A (zh) | 一种数字签名方法、系统、设备及计算机可读存储介质 | |
Meng et al. | Fast secure and anonymous key agreement against bad randomness for cloud computing | |
CN109618348B (zh) | 一种单向代理重签名的实现方法及装置 | |
Hwang et al. | A Lightweight Certificate-Based Aggregate Signature Scheme Providing Key Insulation. | |
KR101131929B1 (ko) | 공개키 기반 인증장치 및 방법 | |
CN110557260B (zh) | 一种sm9数字签名生成方法及装置 | |
CN117353934A (zh) | 基于ecdsa的可验证随机函数构造方法、装置、设备 | |
Xiong et al. | A pairing-free key-insulated certificate-based signature scheme with provable security | |
CN114090649A (zh) | 基于变色龙哈希函数的消息查找方法、系统、装置及介质 | |
CN117595984A (zh) | 基于sm2的可验证随机函数构造方法、装置、设备及介质 | |
US9252941B2 (en) | Enhanced digital signatures algorithm method and system utilitzing a secret generator | |
Tsai et al. | A Secure Group Signature Scheme. | |
Gan et al. | Online/offline remote data auditing with strong key-exposure resilience for cloud storage | |
CN110380867B (zh) | 一种基于身份的轻量签名方法及系统 | |
CN115442052B (zh) | 一种协同签名方法、系统、设备及计算机可读存储介质 | |
Sahu et al. | An MSS Based on the Elliptic Curve Cryptosystem. | |
Abd Rahman et al. | The Development of Deniable Authentication Protocol Based on The Bivariate Function Hard Problem. | |
CN116846558A (zh) | 基于rsa算法的数据加密方法、系统、电子设备及介质 |
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 |