CN116668024A - 一种分布式密钥的生成方法、装置、电子设备和存储介质 - Google Patents

一种分布式密钥的生成方法、装置、电子设备和存储介质 Download PDF

Info

Publication number
CN116668024A
CN116668024A CN202310939285.4A CN202310939285A CN116668024A CN 116668024 A CN116668024 A CN 116668024A CN 202310939285 A CN202310939285 A CN 202310939285A CN 116668024 A CN116668024 A CN 116668024A
Authority
CN
China
Prior art keywords
copy
final
electronic device
electronic devices
weight array
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.)
Granted
Application number
CN202310939285.4A
Other languages
English (en)
Other versions
CN116668024B (zh
Inventor
张珂杰
黄方蕾
乔沛杨
鲁校冉
谢逸俊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wuhan Qulian Digital Technology Co ltd
Original Assignee
Wuhan Qulian Digital Technology Co ltd
Hangzhou Qulian Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Wuhan Qulian Digital Technology Co ltd, Hangzhou Qulian Technology Co Ltd filed Critical Wuhan Qulian Digital Technology Co ltd
Priority to CN202310939285.4A priority Critical patent/CN116668024B/zh
Publication of CN116668024A publication Critical patent/CN116668024A/zh
Application granted granted Critical
Publication of CN116668024B publication Critical patent/CN116668024B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/70Reducing energy consumption in communication networks in wireless communication networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Algebra (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Storage Device Security (AREA)
  • Computer And Data Communications (AREA)

Abstract

本申请涉及分布式密钥技术领域,提出一种分布式密钥的生成方法、装置、电子设备和存储介质。在该方法中,每个电子设备都循环执行接收副本、验证副本、聚合副本以及广播副本的操作,直至达到循环终止条件,此时每个电子设备都会获得并保存自己的最终副本,同时将最终副本广播给其它电子设备。当所有电子设备的最终副本都广播完成后,每个电子设备都会获得自己保存的最终副本和其它电子设备广播的所有最终副本,这样每个电子设备获得的全部最终副本实际上是相同的,可以利用这些最终副本生成同一个分布式密钥。另外,本申请利用副本聚合操作代替常规的副本累积操作,能够减少电子设备处理副本的耗时,提升运行效率。

Description

一种分布式密钥的生成方法、装置、电子设备和存储介质
技术领域
本申请涉及分布式密钥技术领域,尤其涉及一种分布式密钥的生成方法、装置、电子设备和存储介质。
背景技术
分布式密钥技术是指n个电子设备中,允许t(门限值,t<n)个电子设备共同产生分布式密钥而不依赖任何可信的第三方设备,产生的分布式密钥可以用于消息签名、生成随机数、验证签名和验证随机数等操作。目前,在分布式密钥技术实施的过程中,各方电子设备会广播可验证的副本,每个电子设备在接收到其它电子设备广播的副本后,会对副本的信息进行累积,使得副本的数据量不断增大,最终导致电子设备处理副本的耗时较长,存在运行效率较低的问题。
发明内容
有鉴于此,本申请实施例提供了一种分布式密钥的生成方法、装置、电子设备和存储介质,能够减少电子设备处理副本的耗时,提升运行效率。
本申请实施例的第一方面提供了一种分布式密钥的生成方法,该方法应用于已组网的n个电子设备中的任意一个目标电子设备,n≥2,该方法包括:
生成并保存目标电子设备的第一副本;其中,第一副本为包含权值数组的信息,权值数组包含与n个电子设备一一对应的n个位置,每个位置的元素分别用于标记对应的电子设备的副本被验证通过的次数;
将第一副本广播至n个电子设备中除目标电子设备之外的其它电子设备;
当接收到由其它电子设备广播的第二副本时,若第二副本的权值数组的元素不符合预设条件且第二副本验证通过,则将所述第一副本和所述第二副本聚合,得到聚合后的第三副本;其中,第三副本的权值数组等于第一副本的权值数组和第二副本的权值数组执行对应位置元素求和处理后的结果;
若第三副本的权值数组的元素不符合预设条件,则使用第三副本对保存的第一副本进行更新,然后返回执行将第一副本广播至n个电子设备中除目标电子设备之外的其它电子设备的步骤;
若第三副本的权值数组的元素符合预设条件,则将第三副本标记为最终副本,保存最终副本并将最终副本广播至其它电子设备,然后终止广播操作;
当接收到由其它电子设备广播的所有最终副本后,根据目标电子设备保存的最终副本和该所有最终副本,生成分布式密钥。
在本申请实施例中,n个组网的电子设备中的每个电子设备都会生成并保存自己的副本,将自己的副本广播给其它电子设备;每个电子设备在接收到其它电子设备广播的副本后,会判断副本中的权值数组的元素是否符合预设条件,如果符合预设条件则确定该副本为最终副本,此时电子设备会在本地保存该最终副本,而且将该最终副本广播给其它电子设备,此后电子设备会终止广播操作,只需等待接收其它电子设备广播的最终副本;如果接收到的副本中的权值数组的元素不符合预设条件,则电子设备会先对该副本进行验证,验证通过后会将该副本和自己保存的副本聚合成一个新副本,如果该新副本还不是最终副本,则将该新副本继续广播给其它电子设备。每个电子设备都循环执行上述接收副本、验证副本、聚合副本以及广播副本的操作,直至达到循环终止条件,也即获得的副本(接收到的副本或者聚合得到的副本均可)中的权值数组的元素符合预设条件,此时每个电子设备都会获得并保存自己的最终副本,同时将最终副本广播给其它电子设备。显然,当所有电子设备的最终副本都广播完成后,每个电子设备都会获得自己保存的最终副本和其它电子设备广播的所有最终副本,这样每个电子设备获得的全部最终副本实际上是相同的,因此每个设备都可以利用这些最终副本生成同一个分布式密钥。由于副本的权值数组中的每个位置的元素分别用于标记对应的电子设备的副本被验证通过的次数,因此可以令上述预设条件为副本的权值数组中存在至少t+1个非零元素(表示至少有t+1个电子设备验证通过该副本),或者权值数组的元素之和大于设定阈值(表示该副本被验证通过的次数较多),这样可以使得生成的最终副本是经过多方设备多次验证通过的,具备较高的可信度。另外,与现有技术中副本信息的不断累积不同,本申请实施例的每个电子设备在接收到其它电子设备广播的副本后进行的是副本聚合的操作,由于副本聚合前和聚合后的数据量大小是不变的,因此不会导致副本的数据量不断增大,这样能够减少电子设备处理副本的耗时,提升运行效率。
本申请实施例的第二方面提供了一种分布式密钥的生成装置,该装置应用于已组网的n个电子设备中的任意一个目标电子设备,n≥2,该装置包括:
副本生成模块,用于生成并保存目标电子设备的第一副本;其中,第一副本为包含权值数组的信息,权值数组包含与n个电子设备一一对应的n个位置,每个位置的元素分别用于标记对应的电子设备的副本被验证通过的次数;
初始副本广播模块,用于将第一副本广播至n个电子设备中除目标电子设备之外的其它电子设备;
副本聚合模块,用于当接收到由其它电子设备广播的第二副本时,若第二副本的权值数组的元素不符合预设条件且第二副本验证通过,则将第一副本和第二副本聚合,得到聚合后的第三副本;其中,第三副本的权值数组等于第一副本的权值数组和第二副本的权值数组执行对应位置元素求和处理后的结果;
副本更新模块,用于若第三副本的权值数组的元素不符合预设条件,则使用第三副本对保存的第一副本进行更新,然后返回执行将第一副本广播至n个电子设备中除目标电子设备之外的其它电子设备的步骤;
最终副本广播模块,用于若第三副本的权值数组的元素符合预设条件,则将第三副本标记为最终副本,保存最终副本并将最终副本广播至其它电子设备,然后终止广播操作;
分布式密钥生成模块,用于当接收到由其它电子设备广播的所有最终副本后,根据目标电子设备保存的最终副本和该所有最终副本,生成分布式密钥。
本申请实施例的第三方面提供了一种电子设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如本申请实施例的第一方面提供的分布式密钥的生成方法。
本申请实施例的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如本申请实施例的第一方面提供的分布式密钥的生成方法。
本申请实施例的第五方面提供了一种计算机程序产品,当计算机程序产品在电子设备上运行时,使得电子设备执行如本申请实施例的第一方面提供的分布式密钥的生成方法。
可以理解的是,上述第二方面至第五方面的有益效果可以参见上述第一方面中的相关描述,在此不再赘述。
附图说明
图1是本申请实施例提供的一种分布式密钥的生成系统的示意图;
图2是本申请实施例提供的一种分布式密钥的生成方法的流程图;
图3是本申请实施例提供的某个初始副本的权值数组的示意图;
图4是本申请实施例提供的某个最终副本的权值数组的示意图;
图5是本申请实施例提供的一种分布式密钥的生成装置的结构示意图;
图6是本申请实施例提供的一种电子设备的示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。另外,在本申请说明书和所附权利要求书的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
通常来说,分布式密钥技术(DKG)主要适用于区块链中的共识算法,结合可验证的随机函数(VRF)功能,能够极大地增加共识算法的安全性,其中VRF也适用于智能合约中随机数的生成。然而,目前的DKG技术在实施的过程中,会对广播的副本进行累积,这导致副本的数据量不断增大,存在运行效率较低的问题。针对该问题,本申请实施例提供了一种分布式密钥的生成方法、装置、电子设备和存储介质,能够减少电子设备处理副本的耗时,提升运行效率。关于本申请实施例的具体实施方式,请参照下文所述的各个实施例。
图1为本申请实施例提供的一种分布式密钥的生成系统的示意图。在图1中,存在已组网的n个电子设备,n≥2。本申请实施例的技术方案属于对DKG方案的改进,故该n个电子设备可以视作n方参与者,允许其中的t方参与者共同产生分布式密钥,t为预设的门限值或阈值,且t+1≤n。需要说明的是,该n个电子设备既可以是区块链上组网的n个节点,也可以是区块链下组网的多个设备。也即,本申请实施例提供的技术方案既适用于区块链的DKG方案实现,也适用于非区块链的DKG方案实现。
应当理解,图1所示系统中的电子设备可以是任意类型的设备,例如可以是手机、平板电脑、可穿戴设备、台式电脑、增强现实(augmented reality,AR)/虚拟现实(virtualreality,VR)设备、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本、个人数字助理(personal digital assistant,PDA)、大屏电视,等等,本申请实施例对该电子设备的具体类型不作任何限制。关于图1所示系统的具体工作原理,请参照下文所述的方法实施例。
请参阅图2,示出了本申请实施例提供的一种分布式密钥的生成方法,包括:
201、生成并保存目标电子设备的第一副本;
应当理解,本申请实施例的执行主体可以是图1所示系统具有的n个电子设备中的任意一个电子设备,其用目标电子设备表示,而该n个电子设备中的每个电子设备都执行和目标电子设备相同的操作,最终实现每个电子设备都获得同一个分布式密钥,后续可以利用该分布式密钥进行消息签名、生成随机数、验证签名和验证随机数等操作。
首先,目标电子设备会生成并保存自己的一个副本,其用第一副本表示。第一副本可以包含各种待验证的信息,例如秘密参数、签名参数和公共可验证分享(pvss)等信息。另外,第一副本还包含一个权值数组,该权值数组包含与n个电子设备一一对应的n个位置,每个位置的元素分别用于标记对应的电子设备的副本被验证通过的次数。例如,假设n=10(对应有电子设备1至电子设备10),则该权值数组可以是一个10位的数组,其中第一个位置表示电子设备1的副本被验证通过的次数,第二个位置表示电子设备2的副本被验证通过的次数…以此类推。目标电子设备在生成第一副本时,可以令权值数组中与目标电子设备对应的位置的元素置1,表示该第一副本已通过目标电子设备自己的一次验证。该权值数组可以用于判断副本广播的循环终止条件,具体可以参照后文的描述。
在本申请实施例的一种实现方式中,所述生成并保存目标电子设备的第一副本,可以包括:
(1)获取初始化的公共参数和目标电子设备的私有参数;其中,公共参数包括椭圆曲线双线性映射的相关参数和椭圆曲线的子群上的一个公共元素,私有参数包括目标电子设备生成的第一密钥对和秘密参数;
(2)根据相关参数,生成秘密参数的费尔德曼承诺;
(3)生成与目标电子设备对应的位置的元素为非零数值且其它位置的元素为零的权值数组;
(4)生成第二密钥对,并使用第二密钥对为秘密参数进行签名,得到签名参数;
(5)根据相关参数、公共元素、第一密钥对和秘密参数,计算得到公共可验证分享;
(6)将秘密参数的费尔德曼承诺、与目标电子设备对应的位置的元素为非零数值且其它位置的元素为零的权值数组、签名参数以及公共可验证分享,整合成第一副本并保存。
目标电子设备在生成第一副本时,首先需要进行参数初始化的操作。初始化的参数包括公共参数和私有参数两部分,其中公共参数是每个电子设备都使用到的相同参数;私有参数是每个电子设备自己生成并保存的参数,对其它电子设备而言是不可知的。具体的,公共参数可以包括椭圆曲线双线性映射的相关参数和椭圆曲线的子群上的一个公共元素。其中,椭圆曲线双线性映射可以表示为:,其中/>、/>和/>是阶数可被素数/>整除的群,/>是/>的生成元,/>是/>的生成元,因此椭圆曲线双线性映射的相关参数可以表示为/>。可以从椭圆曲线的子群上选取某个元素,作为公共元素,例如可以从/>群上选取一个元素/>作为公共元素,在实际操作中,可以利用可信的第三方设备(非该n个电子设备中的设备)从/>群上通过预设方式选取(例如随机选取)出一个元素,作为该公共元素。n个电子设备中的每个电子设备在生成自己的副本时,都会获取该相同的公共参数,也即相关参数/>和公共元素/>。私有参数可以包括目标电子设备生成的第一密钥对和秘密参数,例如,目标电子设备(假设目标电子设备为n个电子设备中的第i方设备)可以生成加密密钥/>和解密密钥/>,其中/>可以是域F(这里的域是密码学中对域的宽泛概念,指代阶为p的有限域)上的一个随机元素,/>可以是/>群上的一个元素,存在/>的关系,第一密钥对可以表示为/>。秘密参数是目标电子设备自己生成并保存的对其它电子设备不可知的参数,可以用/>表示,/>具体可以是域F上的一个随机元素。
在参数初始化完成后,进入生成副本的操作阶段,每个副本都可以包含秘密参数的费尔德曼承诺、权值数组、签名参数以及公共可验证分享等参数。也即,副本生成主要是利用初始化得到的相关参数bp、公共元素、密钥/>和秘密参数/>生成副本包含的秘密参数的费尔德曼承诺/>、权值数组/>、签名参数/>以及公共可验证分享/>。这里可以定义一个副本生成函数为:/>,该函数的传参为参数初始化阶段获得的四个元素,该函数的输出结果为一个/>(副本),其结构为/>
其中,表示n个电子设备对秘密参数/>的费尔德曼承诺,具体可以根据相关参数bp计算得到,例如可以令/>
表示第/>方(目标电子设备)的权值数组,其元素用于表示秘密参数/>是否经过验证,也可以视作表示副本是否经过验证。具体的,/>可以是一个n位的数组,其中与目标电子设备对应的位置(第/>位)为非零数值(例如可以是1,表示通过第/>方的一次验证),其余n-1个位置的元素均为0。
表示第/>方(目标电子设备)使用自己生成的第二密钥对/>对自己的秘密参数/>的签名,其中,/>可以是域F上的一个随机元素,/>可以是/>群上的一个元素,存在的关系。
指公共可验证分享,通常是DKG算法实现的核心,本申请实施例可以根据上述相关参数bp、公共元素/>、密钥/>和秘密参数/>等参数,计算出具有独特结构的/>使得/>也支持聚合操作,具体的计算方法可以参照后文。
最后,将秘密参数的费尔德曼承诺、与目标电子设备对应的位置的元素为非零数值且其它位置的元素为零的权值数组/>、签名参数/>以及公共可验证分享/>整合成一个数据结构为/>的第一副本,并在目标电子设备的本地保存该第一副本。应当理解,n个电子设备中的每个电子设备都会采用和目标电子设备相同的方式,生成并保存自己的副本。
在本申请实施例的一种实现方式中,所述根据相关参数、公共元素、第一密钥对和秘密参数,计算得到公共可验证分享,可以包括:
(1)根据秘密参数,生成一个t次多项式,t为预设的门限值且t≤n-1;
(2)根据相关参数和t次多项式,计算得到第一费尔德曼承诺;
(3)根据公共元素和秘密参数,计算得到辅助验证数值;
(4)根据相关参数,计算得到对t次多项式的拉格朗日插值表示的第二费尔德曼承诺;
(5)根据第一密钥对,计算得到对t次多项式的拉格朗日插值表示的加密参数;
(6)将第一费尔德曼承诺、辅助验证数值、第二费尔德曼承诺以及加密参数,整合成公共可验证分享。
公共可验证分享是由一组元素组成的,其可以表示为/>,其中,/>表示费尔德曼承诺,其具体定义可以参照费尔德曼的可验证密钥分享(VSS)方案;/>是一个辅助验证数值;/>是对多项式进行拉格朗日插值表示的费尔德曼承诺;/>是对多项式进行拉格朗日插值表示的加密参数。
在具体计算时,需要根据秘密参数生成一个最高t次的多项式(即t次多项式,t为门限值且t≤n-1),其表现形式为/>,其中定义,/>是域F上均匀取样的随机数,Q指代所有的诚实方,也即可以被验证通过的一方。
根据上述相关参数和该t次多项式,可以计算得到费尔德曼承诺,这里用第一费尔德曼承诺表示,具体计算公式为/>,其中,下标/>表示第/>方的参数,下标/>=0,1,…t。
根据上述公共元素和秘密参数/>,可以计算得到辅助验证数值/>,具体的计算公式为/>
根据上述相关参数,可以计算得到对t次多项式的拉格朗日插值表示的费尔德曼承诺,这里用第二费尔德曼承诺表示,具体计算公式为/>。其原理是:通过拉格朗日插值多项式可以使用n个点来表示一个t次的多项式,n>t,例如表示为/>,其中j=0,1,…n-1。
根据上述第一密钥对,可以计算得到对t次多项式的拉格朗日插值表示的加密参数,具体计算公式为/>
最后,将第一费尔德曼承诺、辅助验证数值/>、第二费尔德曼承诺/>以及加密参数/>,整合成公共可验证分享/>。可以理解,每个电子设备都可以采用这种方式获得各自副本中的公共可验证分享。
在本申请实施例的一种实现方式中,第一副本可以通过以下方式验证:
(1)利用椭圆曲线的双线性映射公式,对第一副本的签名参数进行验证,得到签名验证结果;
(2)利用椭圆曲线的双线性映射公式和拉格朗日插值多项式,对第一副本的公共可验证分享进行验证,得到公共可验证分享验证结果;
(3)对第一副本的秘密参数的费尔德曼承诺进行验证,得到费尔德曼承诺验证结果;
(4)若签名验证结果、公共可验证分享验证结果以及费尔德曼承诺验证结果均为验证通过,则确定第一副本验证通过。
在本申请实施例中,每个副本都是可被验证的,现在以第一副本为例,说明副本的验证过程,任何一个副本都可以采用与第一副本相同的方式进行验证。对一个副本的验证可以分为三个部分,第一部分是签名验证,第二部分是公共可验证分享()验证,第三部分是费尔德曼承诺验证。当三个部分的验证均通过时才判定一个副本验证通过,也即只要有任何一个部分的验证不通过,即判定一个副本验证不通过。
具体的,针对第一副本的签名验证,可以利用椭圆曲线的双线性映射公式,对第一副本的签名参数进行验证,从而得到签名验证结果。使用的签名验证函数可以用表示,当函数输出结果为1时表示签名验证通过,反之则表示签名验证不通过。该签名验证函数可以用于验证公式/>和公式/>是否同时成立,若同时成立则表示签名验证通过,否则表示签名验证不通过。其中,/>表示在G2群上对/>进行哈希运算(也即将/>映射到G2群上的某个元素),/>表示在G2群上对/>进行整合(例如拼接,求和等)后得到的数值进行哈希运算,其结果为G2群上的元素(也即把该数值映射到G2群上的某个元素),/>和/>包含的两部分数据。
针对第一副本的公共可验证分享验证,可以利用椭圆曲线的双线性映射公式和拉格朗日插值多项式,对第一副本的公共可验证分享进行验证,从而得到公共可验证分享验证结果。使用的验证函数可以用/>表示,当函数输出结果为1时表示/>验证通过,反之则表示/>验证不通过。该签名验证函数可以用于验证以下3个公式是否同时成立:
其中,表示拉格朗日插值多项式的基底,/>等同于多项式/>,其余参数的定义可以参照前文所述。如果该3个公式同时成立,则表示/>验证通过,否则表示/>验证不通过。
针对第一副本的费尔德曼承诺验,具体可以验证公式是否成立,如果成立则表示第一副本的费尔德曼承诺验证结果为验证通过,否则表示第一副本的费尔德曼承诺验证结果为验证不通过。
202、将第一副本广播至n个电子设备中除目标电子设备之外的其它电子设备;
目标电子设备在按照前文所述的方式生成自己的第一副本之后,一方面会在本地保存第一副本,另一方面会将第一副本广播至n个电子设备中除目标电子设备之外的其它电子设备。这里的广播方式可以有多种,例如可以采用点对点的全量传输,表示目标电子设备会将第一副本广播给所有的n-1个其它电子设备。另外,为了减少数据传输量,进一步提升运行效率,还可以采用基于gossip协议的数据传输方式,此时进行的不是点对点的全量传输,目标电子设备会从n-1个其它电子设备中选取logn个设备进行广播,从而减少了广播的副本数量。当采用基于gossip协议的数据传输方式时,虽然有一部分电子设备将无法接收到目标电子设备广播的第一副本,但这并不影响最终实现的结果。这是由于:本申请实施例限定基于gossip协议的数据传输方式广播的只能是非最终副本,而每个电子设备在广播最终副本时必须采用点对点的全量传输方式,这样即可保证每个电子设备都可以获得相同的n个最终副本(包含自身保存的最终副本以及n-1个其它电子设备广播的最终副本),从而实现恢复出同一个分布式密钥。
可以理解的是,n个电子设备中的每个电子设备都和目标电子设备执行相同的操作,生成并保存自己的副本,然后将自己的副本广播给其它电子设备。
203、当接收到由其它电子设备广播的第二副本时,若第二副本的权值数组的元素不符合预设条件且第二副本验证通过,则将第一副本和第二副本聚合,得到聚合后的第三副本;
当目标电子设备接收到某个其它电子设备广播的副本时,假设该副本为第二副本,则目标电子设备会先检验该第二副本是否为一个最终副本,具体可以检验第二副本的权值数组的元素是否符合预设条件,如果符合预设条件则表示第二副本是一个最终副本,否则表示第二副本不是最终副本。
在本申请实施例的一种实现方式中,第二副本的权值数组的元素是否符合预设条件可以通过以下方式判断:
若第二副本的权值数组中存在至少t+1个非零元素,则确定第二副本的权值数组的元素符合预设条件,否则确定第二副本的权值数组的元素不符合预设条件,t为预设的门限值且t≤n-1。
通过统计第二副本的权值数组中存在的非零元素的数量,即可确定第二副本是否为一个最终副本。由于每个电子设备在生成初始副本时,可以令权值数组中与当前电子设备对应位置的元素为1且其它位置的元素为零,也即初始的副本的权值数组中只存在1个非零元素。在后续的副本聚合过程中,会对权值数组进行对应位置元素的求和操作,聚合后的副本的权值数组中存在的非零元素可能会增加,表示对应位置的电子设备对该副本验证通过,因此权值数组中的元素可以用于标记对应的电子设备的副本被验证通过的次数。如果第二副本的权值数组中存在至少t+1个非零元素,则表示至少有t+1个电子设备验证通过第二副本,因此第二副本的可信度较高,可以作为一个最终副本。除了这种判断方式之外,还可以统计第二副本的权值数组中各个元素之和,如果各个元素之和大于某个设定阈值,则表示第二副本被验证通过的次数较多,因此也可以确定第二副本的可信度较高,可以作为一个最终副本。可以理解,任意电子设备广播的任意一个副本都可以采用和第二副本相同的方式检验是否为最终副本。
如图3所示,为本申请实施例提供的某个初始副本的权值数组的示意图。通过图3可以看出,该权值数组的长度为n,其中第i位的元素为1,其它位的元素均是0。如图4所示,为本申请实施例提供的某个最终副本的权值数组的示意图。通过图4可以看出,该权值数组的长度为n,其中存在至少t+1个非零元素。
如果第二副本的权值数组的元素不符合预设条件,也即第二副本不是一个最终副本,则目标电子设备会对第二副本进行验证,具体可以参照前文描述中对第一副本的验证方法。如果第二副本的权值数组的元素符合预设条件,则可以确定第二副本是一个最终副本,此时目标电子设备会将第二副本标记为最终副本,并将该最终副本广播至其它电子设备,然后终止广播操作。这个处理过程和后文中确定第三副本为最终副本后的执行过程是相同的,也即,每个电子设备获得最终副本的来源有两种方式,一种是接收到别人广播的最终副本,另一种是自己进行副本聚合后得到最终副本。
如果第二副本验证不通过,则目标电子设备会丢弃第二副本,并继续等待接收下一个副本。当接收到下一个副本后,会将该下一个副本视作新的第二副本,并重复相同的操作。
如果第二副本验证通过,则目标电子设备会将自己保存的第一副本和第二副本聚合,从而得到聚合后的新副本,用第三副本表示。其中,第三副本的权值数组等于第一副本的权值数组和第二副本的权值数组执行对应位置元素求和处理后的结果。以下说明副本的聚合过程:
在本申请实施例的一种实现方式中,所述将第一副本和第二副本聚合,得到聚合后的第三副本,可以包括:
(1)对第一副本的权值数组和第二副本的权值数组进行对应位置元素求和处理,得到第三副本的权值数组;
(2)若第一副本的签名参数不为空,则将第一副本的签名参数确定为第三副本的签名参数,否则将第二副本的签名参数确定为第三副本的签名参数;
(3)若第一副本的秘密参数的费尔德曼承诺不为空,则将第一副本的秘密参数的费尔德曼承诺确定为第三副本的秘密参数的费尔德曼承诺,否则将第二副本的秘密参数的费尔德曼承诺确定为第三副本的秘密参数的费尔德曼承诺;
(4)对第一副本的公共可验证分享和第二副本公共可验证分享进行对应元素的求积处理,得到第三副本的公共可验证分享。
一个副本由四个元素组成,因此在副本聚合时需要分别对该四个元素进行聚合。首先是权值数组/>的聚合,具体可以对第一副本的权值数组和第二副本的权值数组进行对应位置元素求和处理,从而得到第三副本的权值数组,也即令/>,其中/>表示第三副本的权值数组,/>表示第一副本的权值数组,/>表示第二副本的权值数组。
其次是签名参数的聚合,具体可以检测第一副本的签名参数是否为空,如果第一副本的签名参数不为空,则将第一副本的签名参数确定为第三副本的签名参数,否则将第二副本的签名参数确定为第三副本的签名参数。也即,如果/>不为空,则令/>,否则令/>,其中/>表示聚合后的第三副本的签名参数,/>表示第一副本的签名参数,表示第二副本的签名参数。在实际操作中签名参数/>的表现形式也可以是一个n位的数组,数组中的每个位置分别与该n个电子设备一一对应,在初始化时令对应位置的元素为对应的电子设备的签名。在聚合时,可以区分数组的每个位置进行判断,例如先针对数组的第一个位置,如果第一副本中该位置的签名不为空,则令聚合后该位置的签名等于第一副本中该位置的签名,否则令聚合后的签名等于第二副本中该位置的签名,如果第一副本和第二副本中该位置的签名均为空(例如0),则令聚合后该位置的签名也为空,之后针对数组的第二个位置执行相同的操作,以此类推,直至处理完数组的n个位置,从而得到聚合后的签名参数。这里采用的原则可以是:如果第一副本的签名参数数组中的位置i和第二副本的签名参数数组中的位置i都为空,则聚合后的第三副本的签名参数数组中的位置i也为空;如果第一副本的签名参数数组中的位置i和第二副本的签名参数数组中的位置i中至少有一个不为空,则可以任意选取其中一个不为空的位置i的签名参数,作为聚合后的第三副本的签名参数数组中的位置i的签名参数。
接着是秘密参数的费尔德曼承诺的聚合,其聚合原理与签名参数/>的聚合原理是相同的。具体可以检测第一副本的秘密参数的费尔德曼承诺是否为空,如果第一副本的秘密参数的费尔德曼承诺不为空,则将第一副本的秘密参数的费尔德曼承诺确定为第三副本的秘密参数的费尔德曼承诺,否则将第二副本的秘密参数的费尔德曼承诺确定为第三副本的秘密参数的费尔德曼承诺。也即,如果/>不为空,则令/>,否则令/>,其中/>表示聚合后的第三副本的秘密参数的费尔德曼承诺,/>表示第一副本的秘密参数的费尔德曼承诺,/>表示第二副本的秘密参数的费尔德曼承诺。在实际操作中,秘密参数的费尔德曼承诺/>的表现形式也可以是一个n位的数组,数组中的每个位置分别与该n个电子设备一一对应,在初始化时令对应位置的元素为对应的电子设备的秘密参数的费尔德曼承诺,具体的聚合方式与签名参数/>,在此不再赘述。
最后是公共可验证分享的聚合,由于/>也包含4个元素,因此也需要对4个元素分别进行聚合。具体的,可以对4个元素分别进行求积处理,从而得到聚合后的公共可验证分享/>。/>的聚合函数可以表示为,其中/>表示第一副本的公共可验证分享,/>表示第二副本的公共可验证分享,/>表示聚合后的第三副本的公共可验证分享。具体的,针对元素/>的聚合,可以令/>,/>,/>,其表示第一副本和第二副本中第/>个位置的/>的乘积,结果作为第三副本中第/>个位置的/>。针对元素/>聚合,可以令/>,其中/>表示第三副本的辅助验证数值,/>表示第一副本的辅助验证数值,/>表示第二副本的辅助验证数值。针对元素/>的聚合,可以令/>,其中/>表示第三副本的第二费尔德曼承诺(第二费尔德曼承诺的定义可以参照前文所述),/>表示第一副本的第二费尔德曼承诺,/>表示第二副本的第二费尔德曼承诺。针对元素/>的聚合,可以令/>,其中/>表示第三副本的加密参数(加密参数的定义可以参照前文所述),/>表示第一副本的加密参数,/>表示第二副本的加密参数。
204、判断第三副本的权值数组的元素是否符合预设条件;
在将第一副本和第二副本聚合成第三副本之后,判断第三副本的权值数组的元素是否符合预设条件,也即判断第三副本是否为一个最终副本。如果第三副本的权值数组的元素不符合预设条件,则执行步骤205,否则执行步骤206。
205、使用第三副本对保存的第一副本进行更新;
第三副本的权值数组的元素不符合预设条件,也即第三副本不是一个最终副本,此时目标电子设备会使用第三副本对保存的第一副本进行更新,也即第三副本会作为新的第一副本,然后返回执行将第一副本广播至n个电子设备中除目标电子设备之外的其它电子设备的步骤,也即步骤202。返回步骤202后,目标电子设备会将新的第一副本(第三副本)广播至n个电子设备中除目标电子设备之外的其它电子设备,然后继续等待接收其它电子设备广播的下一个副本(作为新的第二副本),如果新的第二副本不是最终副本,则对新的第二副本进行验证,如果验证通过,则将新的第二副本和新的第一副本(第三副本)聚合,得到聚合后的第四副本,然后判断第四副本是否为一个最终副本…不断重复这个循环过程,直至获得最终副本(可以是接收到其它电子设备广播的最终副本,也可以是自己进行副本聚合后得到的最终副本)。
206、将第三副本标记为最终副本,保存最终副本并将最终副本广播至其它电子设备,然后终止广播操作;
第三副本的权值数组的元素符合预设条件,也即第三副本是一个最终副本,此时目标电子设备会将第三副本标记为最终副本,并在本地保存该最终副本。之后,目标电子设备会将该最终副本广播至其它电子设备,然后终止广播操作,也即结束上述循环过程,此后目标电子设备只需等待接收所有其它设备广播的最终副本即可。需要说明的是,最终副本的广播方式需要采用点对点的全量传输,以确保所有的其它电子设备都能够接收到该最终副本,而普通副本(非最终副本)则可以采用基于gossip协议的数据传输方式,从而减少部分数据传输量。
207、当接收到由其它电子设备广播的所有最终副本后,根据目标电子设备保存的最终副本和该所有最终副本,生成分布式密钥。
由于n个电子设备中的每个电子设备都执行和目标电子设备相同的操作(各个电子设备之间执行的是异步操作,互不影响),也即除了目标电子设备之外的其它n-1个电子设备都会向目标电子设备广播自己的最终副本,因此目标电子设备最终可以获得自己保存的一个最终副本以及该其它n-1个电子设备广播的所有最终副本(n-1个),共计n个最终副本。显然,最终每个电子设备都可以获得相同的n个最终副本,并可以基于该n个最终副本生成同一个分布式密钥,从而实现DKG的流程。另外,由于某个电子设备接收到的最终副本有可能是其它电子设备广播的,因此这n个最终副本中可能有部分最终副本是相同的,但这并不影响同一个分布式密钥的生成。
在本申请实施例的一种实现方式中,所述根据目标电子设备保存的最终副本和该所有最终副本,生成分布式密钥,可以包括:
(1)根据n个电子设备共同约定的规则,从目标电子设备保存的最终副本和该所有最终副本中,选取出一个目标副本;
(2)基于目标副本恢复出分布式密钥。
为生成同一个分布式密钥,n个电子设备可以共同约定根据最终副本恢复出分布式密钥的规则。具体的,可以根据约定的规则从目标电子设备保存的n个最终副本中选取出一个目标副本,例如可以选取第i个电子设备的最终副本作为目标副本,选取包含的权值数组的元素之和最大的最终副本作为目标副本,等等。当选取出目标副本之后,即可根据目标副本的数据进行计算,最终恢复出一个分布式密钥,作为最终的分布式密钥(即n个电子设备共同使用的分布式密钥)。
具体的,在本申请实施例中,目标副本的结构可以为,基于目标副本可以计算出分布式密钥(pk,sk),其中pk表示公钥,sk表示私钥。具体的计算公式如下:
/>
其中,表示拉格朗日多项式,满足/>,/>,/>,至于其它符号的定义已在前文中描述。
在本申请实施例的另一种实现方式中,所述根据目标电子设备保存的最终副本和该所有最终副本,生成分布式密钥,可以包括:
(1)基于目标电子设备保存的最终副本和该所有最终副本中的每个最终副本分别恢复出一个分布式密钥,得到n个分布式密钥;
(2)根据n个电子设备共同约定的规则,从n个分布式密钥中选取出一个分布式密钥。
对于另一种实现方式,目标电子设备在获得n个最终副本后,可以根据每个最终副本分别恢复出一个分布式密钥(具体计算方式与上述目标副本相同),从而得到n个分布式密钥。显然,由于n个最终副本中可能存在部分相同的最终副本,因此该n个分布式密钥中可能也存在部分相同的分布式密钥。最后,可以根据n个电子设备共同约定的规则,从该n个分布式密钥中选取出一个分布式密钥,作为最终得到的分布式密钥。例如,可以从该n个分布式密钥中,选取公钥pk最低位且最小的一个分布式密钥,作为最终的分布式密钥。
在获得最终的分布式密钥(pk,sk)之后,每个电子设备都可以利用该分布式密钥进行消息签名、生成随机数、验证签名和验证随机数等操作。在本申请实施例中,由于(pk,sk)不同于普通的椭圆曲线上的公私钥,因此该分布式密钥并不适用于普通的签名验签方案,例如ECDSA和BLS等。
通常来说,DKG技术主要适用于区块链中的共识算法,结合VRF(可验证的随机函数)功能,可以极大地增加共识算法的安全性,其中VRF也适用于智能合约中随机数的生成,使用场景比较固定。需要说明的是,在现有技术中,DKG技术和VRF功能一般属于两个功能模块,可以单独运行,也可以互相依赖,但是VRF的安全性基本取决于其算法的选择。而在本申请实施例中,DKG技术和VRF功能可以视作一个整体,为便于与常规的VRF功能进行区分,本申请实施例引入VUF(可验证的不可预测函数)的定义,VUF函数包含两个基本功能:消息签名验签、生成随机数。
本申请实施例定义的VUF函数主要包括以下几项功能:
(1)生成公共参考字符串CRS:具体可以在群上均匀取样选出3个群元素,分别记作/>
(2)生成随机数:可以令,指在/>群上对消息m进行哈希运算,其中消息m是指传入的参数,表示需要签名的值。计算随机数的函数可以表示为:/>,也即利用/>和最终的分布式密钥中的私钥/>,生成随机数。
(3)消息签名:令,且在域F上均匀取样生成/>两个参数。在进行签名计算时定义:/>,其中各个参数的具体含义可以参照前文所述,最终获得一个六元组:(/>。该六元组即为利用分布式密钥生成的最终签名。/>
(4)验证随机数:具体可以计算,如果其结果等于/>,则表示随机数验证成功,否则表示随机数验证失败。
(5)验证签名:签名验证的过程主要是检测以下3个表达式是否同时成立:
=1
=1
=/>
如果该3个表达式同时成立,则表示签名验证成功,否则表示签名验证失败。
根据前文的描述可以看出,本申请实施例提供的DKG方案具备以下优点:
(1)既适用于区块链共识算法、智能合约随机数生成等区块链场景,也适用于非区块链场景。
(2)提供了一种可以使用群元素来实现VUF功能的方案,而常规的DKG方案中的VRF功能使用的是域元素。
(3)支持gossip协议通信,循环轮数为O(logn),其中O代表时间复杂度。
(4)没有投诉环节,流程简单。投诉环节是指有些DKG方案中,需要假设每个参与方广播的副本是正确且诚实的,为了防止有些参与方作恶会加入一个投诉环节来验证这些被投诉的副本。而本申请提供的DKG方案中每个步骤的值都是可被验证的,因此不需要设置投诉环节。
(5)广播的副本信息的数据传输大小均为n-sized,表示与信息大小的规模成正比。在本申请的DKG方案中,副本是不断聚合的,因此数据大小一直为n-sized,并且验证DKG最终副本的时间从O(n^2)降低到了O(nlogn);而在传统的DKG方案中,每次接收到其它参与方的副本时会不断累积副本的信息,最终导致副本的数据大小规模为n^2-sized,远大于本申请的n-sized。
在本申请实施例中,每个电子设备都循环执行上述接收副本、验证副本、聚合副本以及广播副本的操作,直至达到循环终止条件,也即获得的副本(接收到的副本或者聚合得到的副本均可)中的权值数组的元素符合预设条件,此时每个电子设备都会获得并保存自己的最终副本,同时将最终副本广播给其它电子设备。显然,当所有电子设备的最终副本都广播完成后,每个电子设备都会获得自己保存的最终副本和其它电子设备广播的所有最终副本,这样每个电子设备获得的全部最终副本实际上是相同的,因此每个设备都可以利用这些最终副本生成同一个分布式密钥。
综上所述,本申请实施例提出一种适用于区块链场景的分布式密钥生成方案,该方案支持副本聚合,也支持gossip协议,能够实现更少的副本广播轮数和更快的验证速度,提升运行效率。而且,该方案能够通过恢复出的公私钥进行VUF的运算,不需要依赖于其他的VRF算法。
应理解,上述各个实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
上面主要描述了一种分布式密钥的生成方法,下面将对一种分布式密钥的生成装置进行描述。
请参阅图5,本申请实施例中一种应用于已组网的n(n≥2)个电子设备中的任意一个目标电子设备的分布式密钥的生成装置的一个实施例包括:
副本生成模块501,用于生成并保存所述目标电子设备的第一副本;其中,所述第一副本为包含权值数组的信息,所述权值数组包含与所述n个电子设备一一对应的n个位置,每个所述位置的元素分别用于标记对应的所述电子设备的副本被验证通过的次数;
初始副本广播模块502,用于将所述第一副本广播至所述n个电子设备中除所述目标电子设备之外的其它电子设备;
副本聚合模块503,用于当接收到由所述其它电子设备广播的第二副本时,若所述第二副本的权值数组的元素不符合预设条件且所述第二副本验证通过,则将所述第一副本和所述第二副本聚合,得到聚合后的第三副本;其中,所述第三副本的权值数组等于所述第一副本的权值数组和所述第二副本的权值数组执行对应位置元素求和处理后的结果;
副本更新模块504,用于若所述第三副本的权值数组的元素不符合所述预设条件,则使用所述第三副本对保存的所述第一副本进行更新,然后返回执行将所述第一副本广播至所述n个电子设备中除所述目标电子设备之外的其它电子设备的步骤;
最终副本广播模块505,用于若所述第三副本的权值数组的元素符合所述预设条件,则将所述第三副本标记为最终副本,保存所述最终副本并将所述最终副本广播至所述其它电子设备,然后终止广播操作;
分布式密钥生成模块506,用于当接收到由所述其它电子设备广播的所有最终副本后,根据所述目标电子设备保存的最终副本和所述所有最终副本,生成分布式密钥。
在本申请实施例的一种实现方式中,所述副本生成模块可以包括:
参数获取单元,用于获取初始化的公共参数和所述目标电子设备的私有参数;其中,所述公共参数包括椭圆曲线双线性映射的相关参数和椭圆曲线的子群上的一个公共元素,所述私有参数包括所述目标电子设备生成的第一密钥对和秘密参数;
秘密参数费尔德曼承诺生成单元,用于根据所述相关参数,生成所述秘密参数的费尔德曼承诺;
权值数组生成单元,用于生成与所述目标电子设备对应的位置的元素为非零数值且其它位置的元素为零的权值数组;
签名参数生成单元,用于生成第二密钥对,并使用所述第二密钥对为所述秘密参数进行签名,得到签名参数;
公共可验证分享计算单元,用于根据所述相关参数、所述公共元素、所述第一密钥对和所述秘密参数,计算得到公共可验证分享;
副本整合单元,用于将所述秘密参数的费尔德曼承诺、所述与所述目标电子设备对应的位置的元素为非零数值且其它位置的元素为零的权值数组、所述签名参数以及所述公共可验证分享,整合成所述第一副本并保存。
在本申请实施例的一种实现方式中,所述分布式密钥的生成装置还可以包括:
签名验证模块,用于利用椭圆曲线的双线性映射公式,对所述第一副本的签名参数进行验证,得到签名验证结果;
公共可验证分享验证模块,用于利用椭圆曲线的双线性映射公式和拉格朗日插值多项式,对所述第一副本的公共可验证分享进行验证,得到公共可验证分享验证结果;
费尔德曼承诺验证模块,用于对所述第一副本的秘密参数的费尔德曼承诺进行验证,得到费尔德曼承诺验证结果;
副本验证模块,用于若所述签名验证结果、所述公共可验证分享验证结果以及所述费尔德曼承诺验证结果均为验证通过,则确定所述第一副本验证通过。
在本申请实施例的一种实现方式中,所述公共可验证分享计算单元可以包括:
t次多项式计算子单元,用于根据所述秘密参数,生成一个t次多项式,t为预设的门限值且t≤n-1;
第一费尔德曼承诺计算子单元,用于根据所述相关参数和所述t次多项式,计算得到第一费尔德曼承诺;
辅助验证数值计算子单元,用于根据所述公共元素和所述秘密参数,计算得到辅助验证数值;
第二费尔德曼承诺计算子单元,用于根据所述相关参数,计算得到对所述t次多项式的拉格朗日插值表示的第二费尔德曼承诺;
加密参数计算子单元,用于根据所述第一密钥对,计算得到对所述t次多项式的拉格朗日插值表示的加密参数;
公共可验证分享整合子单元,用于将所述第一费尔德曼承诺、所述辅助验证数值、所述第二费尔德曼承诺以及所述加密参数,整合成所述公共可验证分享。
在本申请实施例的一种实现方式中,所述副本聚合模块可以包括:
权值数组聚合单元,用于对所述第一副本的权值数组和所述第二副本的权值数组进行对应位置元素求和处理,得到所述第三副本的权值数组;
签名参数聚合单元,用于若所述第一副本的签名参数不为空,则将所述第一副本的签名参数确定为所述第三副本的签名参数,否则将所述第二副本的签名参数确定为所述第三副本的签名参数;
费尔德曼承诺聚合单元,用于若所述第一副本的秘密参数的费尔德曼承诺不为空,则将所述第一副本的秘密参数的费尔德曼承诺确定为所述第三副本的秘密参数的费尔德曼承诺,否则将所述第二副本的秘密参数的费尔德曼承诺确定为所述第三副本的秘密参数的费尔德曼承诺;
公共可验证分享聚合单元,用于对所述第一副本的公共可验证分享和所述第二副本公共可验证分享进行对应元素的求积处理,得到所述第三副本的公共可验证分享。
在本申请实施例的一种实现方式中,所述分布式密钥的生成装置还可以包括:
条件判断模块,用于若所述第二副本的权值数组中存在至少t+1个非零元素,则确定所述第二副本的权值数组的元素符合所述预设条件,否则确定所述第二副本的权值数组的元素不符合所述预设条件,t为预设的门限值且t≤n-1。
在本申请实施例的一种实现方式中,所述分布式密钥生成模块可以包括:
最终副本选取单元,用于根据所述n个电子设备共同约定的规则,从所述目标电子设备保存的最终副本和所述所有最终副本中,选取出一个目标副本;
第一分布式密钥恢复单元,用于基于所述目标副本恢复出所述分布式密钥;
第二分布式密钥恢复单元,用于基于所述目标电子设备保存的最终副本和所述所有最终副本中的每个最终副本分别恢复出一个分布式密钥,得到n个分布式密钥;
分布式密钥选取单元,用于根据所述n个电子设备共同约定的规则,从所述n个分布式密钥中选取出一个分布式密钥。
本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如上述任一实施例描述的分布式密钥的生成方法。
本申请实施例还提供一种计算机程序产品,当该计算机程序产品在电子设备上运行时,使得电子设备执行实现如上述任一实施例描述的分布式密钥的生成方法。
图6是本申请一实施例提供的电子设备的示意图。如图6所示,该实施例的电子设备6包括:处理器60、存储器61以及存储在所述存储器61中并可在所述处理器60上运行的计算机程序62。所述处理器60执行所述计算机程序62时实现上述各个分布式密钥的生成方法的实施例中的步骤,例如图2所示的步骤201至207。或者,所述处理器60执行所述计算机程序62时实现上述各装置实施例中各模块/单元的功能,例如图5所示模块501至506的功能。
所述计算机程序62可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器61中,并由所述处理器60执行,以完成本申请。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序62在所述电子设备6中的执行过程。
所称处理器60可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器 (Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列 (Field-Programmable Gate Array,FPGA) 或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器61可以是所述电子设备6的内部存储单元,例如电子设备6的硬盘或内存。所述存储器61也可以是所述电子设备6的外部存储设备,例如所述电子设备6上配备的插接式硬盘,智能存储卡(Smart Media Card, SMC),安全数字(Secure Digital, SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器61还可以既包括所述电子设备6的内部存储单元也包括外部存储设备。所述存储器61用于存储所述计算机程序以及所述电子设备所需的其他程序和数据。所述存储器61还可以用于暂时地存储已经输出或者将要输出的数据。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括是电载波信号和电信信号。
以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。

Claims (10)

1.一种分布式密钥的生成方法,应用于已组网的n个电子设备中的任意一个目标电子设备,n≥2,其特征在于,所述方法包括:
生成并保存所述目标电子设备的第一副本;其中,所述第一副本为包含权值数组的信息,所述权值数组包含与所述n个电子设备一一对应的n个位置,每个所述位置的元素分别用于标记对应的所述电子设备的副本被验证通过的次数;
将所述第一副本广播至所述n个电子设备中除所述目标电子设备之外的其它电子设备;
当接收到由所述其它电子设备广播的第二副本时,若所述第二副本的权值数组的元素不符合预设条件且所述第二副本验证通过,则将所述第一副本和所述第二副本聚合,得到聚合后的第三副本;其中,所述第三副本的权值数组等于所述第一副本的权值数组和所述第二副本的权值数组执行对应位置元素求和处理后的结果;
若所述第三副本的权值数组的元素不符合所述预设条件,则使用所述第三副本对保存的所述第一副本进行更新,然后返回执行将所述第一副本广播至所述n个电子设备中除所述目标电子设备之外的其它电子设备的步骤;
若所述第三副本的权值数组的元素符合所述预设条件,则将所述第三副本标记为最终副本,保存所述最终副本并将所述最终副本广播至所述其它电子设备,然后终止广播操作;
当接收到由所述其它电子设备广播的所有最终副本后,根据所述目标电子设备保存的最终副本和所述所有最终副本,生成分布式密钥。
2.如权利要求1所述的方法,其特征在于,所述生成并保存所述目标电子设备的第一副本,包括:
获取初始化的公共参数和所述目标电子设备的私有参数;其中,所述公共参数包括椭圆曲线双线性映射的相关参数和椭圆曲线的子群上的一个公共元素,所述私有参数包括所述目标电子设备生成的第一密钥对和秘密参数;
根据所述相关参数,生成所述秘密参数的费尔德曼承诺;
生成与所述目标电子设备对应的位置的元素为非零数值且其它位置的元素为零的权值数组;
生成第二密钥对,并使用所述第二密钥对为所述秘密参数进行签名,得到签名参数;
根据所述相关参数、所述公共元素、所述第一密钥对和所述秘密参数,计算得到公共可验证分享;
将所述秘密参数的费尔德曼承诺、所述与所述目标电子设备对应的位置的元素为非零数值且其它位置的元素为零的权值数组、所述签名参数以及所述公共可验证分享,整合成所述第一副本并保存。
3.如权利要求2所述的方法,其特征在于,所述第一副本通过以下方式验证:
利用椭圆曲线的双线性映射公式,对所述第一副本的签名参数进行验证,得到签名验证结果;
利用椭圆曲线的双线性映射公式和拉格朗日插值多项式,对所述第一副本的公共可验证分享进行验证,得到公共可验证分享验证结果;
对所述第一副本的秘密参数的费尔德曼承诺进行验证,得到费尔德曼承诺验证结果;
若所述签名验证结果、所述公共可验证分享验证结果以及所述费尔德曼承诺验证结果均为验证通过,则确定所述第一副本验证通过。
4.如权利要求2所述的方法,其特征在于,所述根据所述相关参数、所述公共元素、所述第一密钥对和所述秘密参数,计算得到公共可验证分享,包括:
根据所述秘密参数,生成一个t次多项式,t为预设的门限值且t≤n-1;
根据所述相关参数和所述t次多项式,计算得到第一费尔德曼承诺;
根据所述公共元素和所述秘密参数,计算得到辅助验证数值;
根据所述相关参数,计算得到对所述t次多项式的拉格朗日插值表示的第二费尔德曼承诺;
根据所述第一密钥对,计算得到对所述t次多项式的拉格朗日插值表示的加密参数;
将所述第一费尔德曼承诺、所述辅助验证数值、所述第二费尔德曼承诺以及所述加密参数,整合成所述公共可验证分享。
5.如权利要求2所述的方法,其特征在于,所述将所述第一副本和所述第二副本聚合,得到聚合后的第三副本,包括:
对所述第一副本的权值数组和所述第二副本的权值数组进行对应位置元素求和处理,得到所述第三副本的权值数组;
若所述第一副本的签名参数不为空,则将所述第一副本的签名参数确定为所述第三副本的签名参数,否则将所述第二副本的签名参数确定为所述第三副本的签名参数;
若所述第一副本的秘密参数的费尔德曼承诺不为空,则将所述第一副本的秘密参数的费尔德曼承诺确定为所述第三副本的秘密参数的费尔德曼承诺,否则将所述第二副本的秘密参数的费尔德曼承诺确定为所述第三副本的秘密参数的费尔德曼承诺;
对所述第一副本的公共可验证分享和所述第二副本公共可验证分享进行对应元素的求积处理,得到所述第三副本的公共可验证分享。
6.如权利要求2所述的方法,其特征在于,所述第二副本的权值数组的元素是否符合所述预设条件通过以下方式判断:
若所述第二副本的权值数组中存在至少t+1个非零元素,则确定所述第二副本的权值数组的元素符合所述预设条件,否则确定所述第二副本的权值数组的元素不符合所述预设条件,t为预设的门限值且t≤n-1。
7.如权利要求1至6任一项所述的方法,其特征在于,所述根据所述目标电子设备保存的最终副本和所述所有最终副本,生成分布式密钥,包括:
根据所述n个电子设备共同约定的规则,从所述目标电子设备保存的最终副本和所述所有最终副本中,选取出一个目标副本;
基于所述目标副本恢复出所述分布式密钥;
或者,
基于所述目标电子设备保存的最终副本和所述所有最终副本中的每个最终副本分别恢复出一个分布式密钥,得到n个分布式密钥;
根据所述n个电子设备共同约定的规则,从所述n个分布式密钥中选取出一个分布式密钥。
8.一种分布式密钥的生成装置,应用于已组网的n个电子设备中的任意一个目标电子设备,n≥2,其特征在于,所述装置包括:
副本生成模块,用于生成并保存所述目标电子设备的第一副本;其中,所述第一副本为包含权值数组的信息,所述权值数组包含与所述n个电子设备一一对应的n个位置,每个所述位置的元素分别用于标记对应的所述电子设备的副本被验证通过的次数;
初始副本广播模块,用于将所述第一副本广播至所述n个电子设备中除所述目标电子设备之外的其它电子设备;
副本聚合模块,用于当接收到由所述其它电子设备广播的第二副本时,若所述第二副本的权值数组的元素不符合预设条件且所述第二副本验证通过,则将所述第一副本和所述第二副本聚合,得到聚合后的第三副本;其中,所述第三副本的权值数组等于所述第一副本的权值数组和所述第二副本的权值数组执行对应位置元素求和处理后的结果;
副本更新模块,用于若所述第三副本的权值数组的元素不符合所述预设条件,则使用所述第三副本对保存的所述第一副本进行更新,然后返回执行将所述第一副本广播至所述n个电子设备中除所述目标电子设备之外的其它电子设备的步骤;
最终副本广播模块,用于若所述第三副本的权值数组的元素符合所述预设条件,则将所述第三副本标记为最终副本,保存所述最终副本并将所述最终副本广播至所述其它电子设备,然后终止广播操作;
分布式密钥生成模块,用于当接收到由所述其它电子设备广播的所有最终副本后,根据所述目标电子设备保存的最终副本和所述所有最终副本,生成分布式密钥。
9.一种电子设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7任一项所述的分布式密钥的生成方法。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的分布式密钥的生成方法。
CN202310939285.4A 2023-07-28 2023-07-28 一种分布式密钥的生成方法、装置、电子设备和存储介质 Active CN116668024B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310939285.4A CN116668024B (zh) 2023-07-28 2023-07-28 一种分布式密钥的生成方法、装置、电子设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310939285.4A CN116668024B (zh) 2023-07-28 2023-07-28 一种分布式密钥的生成方法、装置、电子设备和存储介质

Publications (2)

Publication Number Publication Date
CN116668024A true CN116668024A (zh) 2023-08-29
CN116668024B CN116668024B (zh) 2023-10-31

Family

ID=87720938

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310939285.4A Active CN116668024B (zh) 2023-07-28 2023-07-28 一种分布式密钥的生成方法、装置、电子设备和存储介质

Country Status (1)

Country Link
CN (1) CN116668024B (zh)

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9614676B1 (en) * 2013-03-13 2017-04-04 Hrl Laboratories, Llc Cryptographically-secure packed proactive secret sharing (PPSS) protocol
CN109921900A (zh) * 2019-02-18 2019-06-21 深圳市优学链科技有限公司 一种分布式密钥生成的算法
CN110999206A (zh) * 2017-08-15 2020-04-10 区块链控股有限公司 阈值数字签名方法及系统
CN111371744A (zh) * 2020-02-21 2020-07-03 重庆邮电大学 一种基于分布式密钥的拜占庭容错共识方法
CN113630448A (zh) * 2021-07-26 2021-11-09 重庆邮电大学 分布式加密存储方法和系统、计算机设备和可读存储介质
US20220038264A1 (en) * 2018-09-22 2022-02-03 David YAKIRA Decentralized key generation and distribution over a blockchain-based network
CN115174048A (zh) * 2022-06-17 2022-10-11 蚂蚁区块链科技(上海)有限公司 一种共识方法、系统和共识节点
CN115277015A (zh) * 2022-07-16 2022-11-01 西安邮电大学 异步联邦学习隐私保护方法、系统、介质、设备及终端
CN115632774A (zh) * 2022-10-21 2023-01-20 山东大学 一种基于门限签名的分布式预言机实现方法及系统
CN115865341A (zh) * 2022-11-30 2023-03-28 蚂蚁区块链科技(上海)有限公司 一种区块链上实现分布式密钥生成的方法、系统和节点
CN115941163A (zh) * 2022-10-31 2023-04-07 蚂蚁区块链科技(上海)有限公司 一种区块链上实现分布式密钥生成的方法、系统和节点
CN116112182A (zh) * 2023-01-18 2023-05-12 百度在线网络技术(北京)有限公司 数字签名方法、装置、电子设备及存储介质

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9614676B1 (en) * 2013-03-13 2017-04-04 Hrl Laboratories, Llc Cryptographically-secure packed proactive secret sharing (PPSS) protocol
CN110999206A (zh) * 2017-08-15 2020-04-10 区块链控股有限公司 阈值数字签名方法及系统
US20220038264A1 (en) * 2018-09-22 2022-02-03 David YAKIRA Decentralized key generation and distribution over a blockchain-based network
CN109921900A (zh) * 2019-02-18 2019-06-21 深圳市优学链科技有限公司 一种分布式密钥生成的算法
CN111371744A (zh) * 2020-02-21 2020-07-03 重庆邮电大学 一种基于分布式密钥的拜占庭容错共识方法
CN113630448A (zh) * 2021-07-26 2021-11-09 重庆邮电大学 分布式加密存储方法和系统、计算机设备和可读存储介质
CN115174048A (zh) * 2022-06-17 2022-10-11 蚂蚁区块链科技(上海)有限公司 一种共识方法、系统和共识节点
CN115277015A (zh) * 2022-07-16 2022-11-01 西安邮电大学 异步联邦学习隐私保护方法、系统、介质、设备及终端
CN115632774A (zh) * 2022-10-21 2023-01-20 山东大学 一种基于门限签名的分布式预言机实现方法及系统
CN115941163A (zh) * 2022-10-31 2023-04-07 蚂蚁区块链科技(上海)有限公司 一种区块链上实现分布式密钥生成的方法、系统和节点
CN115865341A (zh) * 2022-11-30 2023-03-28 蚂蚁区块链科技(上海)有限公司 一种区块链上实现分布式密钥生成的方法、系统和节点
CN116112182A (zh) * 2023-01-18 2023-05-12 百度在线网络技术(北京)有限公司 数字签名方法、装置、电子设备及存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
王惠清;周雷;: "基于Paillier加密的数据多副本持有性验证方案", 计算机科学, no. 1 *

Also Published As

Publication number Publication date
CN116668024B (zh) 2023-10-31

Similar Documents

Publication Publication Date Title
US8462944B2 (en) Method of public key generation
CN105337736B (zh) 全同态消息认证方法、装置及系统
US20100281264A1 (en) Information processing apparatus, key update method, and program
CN104113420A (zh) 一种基于身份的可聚合签密方法
CN111478772A (zh) 一种流水线友好的签名和验签方法、设备及存储介质
CN112446052A (zh) 一种适用于涉密信息系统的聚合签名方法及系统
CN115834056A (zh) 一种无证书有序聚合签名方法、系统及相关装置
CN110932865B (zh) 一种基于sm2数字签名算法的可链接环签名生成方法
EP3920464A1 (en) Method for storing transaction that represents asset transfer to distributed network and program for the same
US11271728B2 (en) Secure key management
US9509511B2 (en) Identity based encryption
CN116260587A (zh) 一种抗量子、基于哈希签名且具有小尺寸的签名认证方法
GB2450574A (en) Batch verification of multiple signature data
Guangjun et al. Secure network coding against intra/inter-generation pollution attacks
CN110602190A (zh) 区块链共识的方法及区块链节点和存储装置
Stallings Digital signature algorithms
CN113014398A (zh) 基于sm9数字签名算法的聚合签名生成方法
CN116668024B (zh) 一种分布式密钥的生成方法、装置、电子设备和存储介质
US11635952B2 (en) Secure update propagation with digital signatures
CN115941205A (zh) 一种基于sm2的多重签名方法
CN112217629B (zh) 一种云存储公开审计方法
CN114640463A (zh) 一种数字签名方法、计算机设备及介质
Song et al. Blockchain‐Based Secure Outsourcing of Polynomial Multiplication and Its Application in Fully Homomorphic Encryption
CN114065233A (zh) 一种面向大数据和区块链应用的数字签名聚合方法
CN110430041B (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
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20231007

Address after: No. 03, 8th Floor, T1 Office Building, Vanke Future Center, No. 408 Hanyang Avenue, Hanyang District, Wuhan City, Hubei Province, 430000

Applicant after: Wuhan Qulian Digital Technology Co.,Ltd.

Address before: Room 2001, building a, building 2, 399 Danfeng Road, Binjiang District, Hangzhou, Zhejiang 310000

Applicant before: HANGZHOU HYPERCHAIN TECHNOLOGIES Co.,Ltd.

Applicant before: Wuhan Qulian Digital Technology Co.,Ltd.

GR01 Patent grant
GR01 Patent grant