具有秘密共享的(EC)DSA阈值签名制造技术

技术编号:36069054 阅读:10 留言:0更新日期:2022-12-24 10:37
一种生成消息的数字签名份额的计算机实现的方法,其中需要来自一组参与者中的相应参与者的阈值数量的不同签名份额来生成所述数字签名,其中每个参与者具有相应的私钥份额,所述方法由所述参与者中的第一参与者执行并且包括:生成第一消息无关组件和第一消息相关组件,其中所述消息无关组件是基于第一私钥份额生成的,并且其中所述消息相关组件是基于所述消息生成的;使得所述第一消息无关组件能够提供给协调者;以及,使得第一签名份额能够提供给所述协调者,用于基于至少所述阈值数量的签名份额来生成所述签名,其中所述第一签名份额至少包括所述消息相关组件。额至少包括所述消息相关组件。额至少包括所述消息相关组件。

【技术实现步骤摘要】
【国外来华专利技术】具有秘密共享的(EC)DSA阈值签名


[0001]本公开涉及一种生成消息的数字签名份额的方法,以及一种使用签名份额生成消息的数字签名的方法。

技术介绍

[0002]公钥密码学是一种使用密钥对的加密系统,该密钥对包括:私钥,其仅对私钥所有者已知;以及公钥,其是基于对应的私钥生成的,并且可以在不损害私钥安全性的情况下进行传播。
[0003]公钥密码学使得发送者能够使用接收者的公钥(即,与仅对接收者已知的私钥对应的公钥)来加密消息。该加密消息随后只能使用接收者的私钥进行解密。
[0004]类似地,发送者可以使用自己的私钥对消息进行签名,例如以证明该消息是由发送者发送的,和/或指示发送者同意该消息。签名者(即,生成签名的一方)使用他们的私钥在该消息中创建数字签名。拥有签名者的对应公钥的任何人都可以使用同一消息以及该消息中的数字签名来验证签名是否有效创建,即签名是否确实是使用签名者的私钥创建的。
[0005]数字签名方案通常涉及三个过程,即算法。密钥生成算法用于生成随机私钥和对应的公钥。签名算法用于基于消息和私钥来生成签名。在给定公钥和消息的情况下,验证算法用于验证是否已使用对应的私钥并根据签名算法生成签名。
[0006]阈值签名方案允许一组中阈值数量的参与者使用共享私钥的单独份额在消息中创建数字签名(或创建消息的数字签名)。这里,数字签名是基于待签名消息生成的签名。在此类方案中,只有当阈值数量的参与者同意在消息中生成签名时,才能创建签名。使用较少数量的参与者生成签名的任何尝试都不会生成有效的签名。因此,该组的有效签名(即,使用消息和共享私钥生成的签名)可证明具有阈值数量的人同意生成签名。这还意味着,任何攻击者都需要获取私钥的阈值数量的份额,才能使用该私钥伪造签名。
[0007]阈值签名份额的一个共同特征在于,如果任何私钥份额丢失,只要阈值数量的份额仍然可用,私钥仍然可以恢复。
[0008]一种特殊的数字签名算法是椭圆曲线数字签名算法(ECDSA)。ECDSA签名有两种常见的阈值方案。一种阈值ECDSA方案是一种非最优方案,其中一组共同拥有阈值为t+1的共享私钥,但创建签名需要更高的阈值2t+1。有关详细描述,请参见Gennaro,R.等人的“鲁棒阈值DSS签名”,关于密码技术的理论和应用的国际会议,德国柏林施普林格出版社,1996年。该方案在下文中称为“非最优Gennaro方案”。
[0009]另一种公共阈值ECDSA方案是一种最优方案,其中最优意味着创建签名的阈值与共享私钥的阈值相同。有关详细描述,请参见Gennaro,R.和Goldfeder,S.,“具有快速无信任设置的快速多方阈值ECDSA”,2018年ACM SIGSAC计算机和通信安全会议记录,2018年。该方案在下文中称为“最优Gennaro方案”。

技术实现思路

[0010]非最优Gennaro方案的优点在于,在计算和通信轮次方面十分高效。缺点在于,用于创建私钥的阈值小于用于生成数字签名的阈值。问题在于无法确定参与者聚集在一起进行签名的阈值数量。也就是说,由于可以使用私钥计算签名,因此数量小于用于生成签名的阈值的参与者可以聚集在一起使用私钥而不是使用阈值签名对消息进行签名。例如,用于生成私钥的阈值可以是2,而用于生成签名的阈值可以是3。在这种情况下,两个人可以生成私钥并因此生成签名,从而避免需要三个人来生成阈值签名。
[0011]相比之下,最优Gennaro方案的优点在于,用于生成私钥的阈值和用于生成签名的阈值没有差异。然而,该方案的计算和通信轮次较高,签名创建较慢,且扩展性不佳。
[0012]因此,需要一种阈值ECDSA方案,其具有非最优Gennaro方案的计算、存储和通信优势,同时务必确保阈值最优,如最优Gennaro方案。
[0013]根据本文公开的一个方面,提供一种生成消息的数字签名份额的计算机实现的方法,其中需要来自一组参与者中的相应参与者的阈值数量的不同签名份额来生成所述数字签名,其中每个参与者具有相应的私钥份额,所述方法由所述参与者中的第一参与者执行并且包括:生成第一消息无关组件和第一消息相关组件,其中所述消息无关组件是基于第一私钥份额生成的,并且其中所述消息相关组件是基于所述消息生成的;使得所述第一消息无关组件能够提供给协调者;以及,使得第一签名份额能够提供给所述协调者,用于基于至少所述阈值数量的签名份额来生成所述签名,其中所述第一签名份额至少包括所述消息相关组件。
[0014]根据本文公开的另一方面,提供一种生成消息的数字签名的计算机实现的方法,其中需要来自一组参与者中的相应参与者的阈值数量的不同签名份额来生成所述数字签名,其中每个参与者具有相应的私钥份额,所述方法由协调者执行并且包括:获取至少阈值数量的相应消息无关组件,其中每个相应消息无关组件是基于相应私钥份额生成的;获取至少所述阈值数量的相应签名份额,其中每个相应签名份额至少基于相应的消息相关组件,并且其中每个相应的消息相关组件是基于所述消息生成的;以及,基于每个获取到的所述签名份额和每个获取到的所述消息无关组件来生成所述消息的所述签名。
附图说明
[0015]为了帮助理解本公开的实施例并显示如何实施此类实施例,现将仅通过举例的方式参考附图进行说明,其中:
[0016]图1示意性地示出了根据本专利技术各实施例的用于生成消息的签名的示例性系统;
[0017]图2示意性地示出了根据本专利技术各实施例的用于生成消息的签名份额的示例性方法;
[0018]图3示意性地示出了示例性区块链事务协议。
具体实施方式
[0019]预备知识
[0020]椭圆曲线群
[0021]椭圆曲线E满足以下等式:
[0022]y2=x3+ax+b mod p
[0023]其中和a,b是满足4a3+27b3≠0的常量。该椭圆曲线上的群被定义为满足该等式的元素集合(x,y)以及无穷远点O,该无穷远点是单位元素。对该群中元素进行的群运算称为椭圆曲线点加法,由+表示。该群由表示,其阶数由n表示。
[0024]该群运算可以用于定义对元素进行的另一种运算,称为点乘法,由
·
表示。对于点和标量点k
·
G被定义为与其自身相加k次的点G。
[0025]在椭圆曲线密码学中,私钥被定义为标量其中是集合{1,...,n

1}的符号,而对应的公钥是椭圆曲线上的点k
·
G。例如,在一些区块链协议中,椭圆曲线被选择作为secp256k1椭圆曲线,值a、b、和p完全由该曲线指定。在给定这些值的情况下,已经计算出该群的阶数n,在该曲线的情况下,该群的阶数是素数,并且secp256k1标准还指定了一个点G,该点将被用作该群的生成器。
[0026]椭圆曲线数字签名算法
[0027]为了使用私钥a在消息msg中创建签名,需要采取以下步骤:
[0028]1.计算消息摘要e=hash(msg),其中可本文档来自技高网
...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】1.一种计算机实现的方法,用于生成消息的数字签名份额,其中需要来自一组参与者中的相应参与者的阈值数量的不同签名份额来生成所述数字签名,其中每个参与者具有相应的私钥份额,所述方法由所述参与者中的第一参与者执行并且包括:生成第一消息无关组件和第一消息相关组件,其中所述消息无关组件是基于第一私钥份额生成的,其中所述消息相关组件是基于所述消息生成的,其中每个参与者具有相应的临时私钥份额,并且其中所述第一消息无关组件和/或所述第一消息相关组件基于第一临时私钥份额;使得所述第一消息无关组件能够提供给协调者;以及使得第一签名份额能够提供给所述协调者,用于基于至少所述阈值数量的签名份额来生成所述签名,其中所述第一签名份额至少包括所述消息相关组件。2.根据权利要求1所述的方法,其中所述消息无关组件是在获取所述消息之前生成的。3.根据权利要求1或2所述的方法,其中所述第一签名份额包括所述消息无关组件。4.根据权利要求1至3中任一项所述的方法,其中所述第一私钥份额是使用用于生成第一私钥的份额的联合秘密共享方案生成的。5.根据权利要求4所述的方法,其中使用所述联合秘密共享方案生成所述第一私钥份额包括:生成第一数据项,所述第一数据项是第一多项式;从至少所述阈值数量的参与者获取相应数据项,每个相应数据项是由相应参与者生成的相应多项式;以及基于所述第一数据项和每个所述相应数据项来生成所述第一私钥份额。6.根据权利要求5所述的方法,其中获取所述相应数据项包括:通过所述第一参与者与每个所述相应参与者之间的相应通信通道获取所述相应数据项。7.根据权利要求5所述的方法,所述方法包括:将所述第一多项式的相应实例传输给至少所述阈值数量的参与者中的每个参与者,其中所述第一多项式的所述相应实例基于相应参与者。8.根据权利要求7所述的方法,其中每个参与者具有基于与所述临时私钥对应的临时公钥的相应共享值,并且其中所述第一消息无关组件基于所述共享值。9.根据前述任一项权利要求所述的方法,其中所述第一临时私钥份额是使用用于生成所述临时私钥的份额的所述联合秘密共享方案生成的。10.根据前述任一项权利要求所述的方法,其中所述第一消息无关组件是基于与所述第一临时私钥份额对应的逆生成的。11.根据权利要求10所述的方法,其中生成所述第一临时私钥份额的所述逆包括:基于所述临时私钥和第一盲钥来生成中间值;以及基于所述中间值的逆和所述第一盲钥的第一盲钥份额来生成所述第一临时私钥份额的所述逆。12.根据权利要求11所述的方法,其中所述第一盲钥份额是使用用于生成所述第一盲钥的份额的所述联合秘密共享方案生成的。13.根据权利要求11或12所述的方法,其中所述中间值是通过以下方式生成的:基于所述第一临时私钥份额和所述盲钥份额来生成第一乘法密钥份额;
从至少所述阈值数量的参与者获取相应乘法密钥份额;以及基于所述第一乘法密钥份额和每个所述相应乘法密钥份额来生成所述中间值。14.根据权利要求13所述的方法,所述方法包括:将所述第一乘法密钥份额传输给至少所述阈值数量的参与者中的每个参与者。15.根据前述任一项权利要求所述的方法,其中所述消息无关组件是基于第二盲钥的第二盲钥份额生成的。16.根据权利要求15所述的方法,其中所述第二盲钥份额是使用用于生成所述第二盲钥的份额的所述联合秘密共享方案生成的。17.根据权利要求10或其从属权利要求中任一项所述的方法,其中所述第一消息无关组件是基于第一预签名份额生成的,其中所述第一预签名份额是基于以下各项生成的:第一中间份额,所述第一中间份额是基于所述第一私钥份额以及与所述第一临时私钥份额对应的所述逆生成的;以及相应中间份额,所述相应中间份额是从至少所述阈值数量的参与者获取的。18.根据从属于权利要求1至16中任一项的权利要求10所述的方法,其中所述第一消息无关组件是基于第一预签名份额生成的,其中所述第一预签名份额是基于以下各项生成的:第一中间份额,所述第一中间份额是基于所述第一私钥份额和所述第一盲钥份额生成的;相应中间份额,所述相应中间份额是从至少所述阈值数量的参与者获取的。19.根据权利要求18所述的方法,其中所述第一预签名份额是基于与所述第一临时私钥份额对应的所述逆生成的。20.根据权利要求17至19中任一项所述的方法,其中所述第一中间份额是基于所述第...

【专利技术属性】
技术研发人员:迈克尔拉
申请(专利权)人:区块链许可股份公司
类型:发明
国别省市:

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

1