System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及信息安全,尤其涉及一种基于认证秘密分享的多方协同签名方法及系统。
技术介绍
1、随着网络技术的飞速发展以及网上活动的日益频繁,信息安全成为一个非常突出的问题,而数字签名技术在保证数据的完整性、可靠性和不可抵赖性等方面起着极为重要的作用。
2、数字签名被广泛应用于保护电子文件的完整性和可信性。然而,在某些情况下,文档需要由多个人签名才能得到确认。例如,在一些金融交易或法律文件中,需要多个签名者对同一份文件进行签名才能使该文件有效。此外,在某些情况下,文档的签署可能需要分散在多个地理位置或组织之间。具体的,在金融市场中,多个公司可以共同发布一些市场数据以供投资者和分析师使用。这些市场数据可能包括股票价格、交易量、收益率、市盈率等等。这些数据关系着经济市场的健康发展,如果发布了伪造的市场数据,投资者和分析师可能会基于错误的信息做出投资决策,导致市场失真。这可能会引起市场波动和不确定性,从而影响市场的稳定性和健康发展。所以说发布数据的公司需要对数据共同负责,在这种情况下,协同签名技术可以提供一种可行的解决方案,通过对消息进行协同签名以保证数据的完整性、机密性、可追溯性、不可否认性。
3、协同签名是一种特殊的数字签名技术,支持多个签名者对同一文档进行签名。在传统的数字签名方案中,数字签名行为只能由单个签名者实施,而协同签名技术则可以在多个签名者之间共享签名权力。协同签名技术的出现,使得多个签名者可以安全、高效地对同一文档进行签名,从而提高了签署文件的效率和准确性。它为签署文件提供了更灵活、更安全的方式
4、针对国产密码算法的椭圆曲线公钥密码算法(sm2),目前已有支持多方协同的sm2签名方案被相继提出,但它们大都存在某些缺陷,如签名者需要进行多次密钥协商,在线阶段引入零知识证明或大量公钥操作导致签名效率低,协同签名者数量受到限制,需要专门的安全硬件等等。因此,如何在签名方数量不受限制的前提下保证签名过程的安全性实现更为高效的协同签名,成为现有技术亟待解决的问题。
技术实现思路
1、针对现有技术存在的不足,本专利技术的目的是提供一种基于认证秘密分享的多方协同签名方法及系统,通过向签名方分配数据,能够让多个签名参与方当且仅当共同提供各自的私钥时方可进行协同签名且不用考虑参与方数量,打破了现有的sm2签名系统参与方数量受限或者需要专门的安全硬件的限制,与此同时能够对签名结果进行验证,防止恶意参与方篡改数据,能够实现高效的协同签名。
2、为了实现上述目的,本专利技术是通过如下的技术方案来实现:
3、本专利技术第一方面提供了一种基于认证秘密分享的多方协同签名方法,包括以下步骤:
4、根据欲签名消息确定协同签名的参与方;
5、利用数据分配方法对参与方进行预处理,得到全局密钥和密钥消息认证码;
6、各参与方随机生成各自的签名私钥,所有参与方利用各自的签名私钥进行安全计算生成联合公钥,利用联合公钥生成欲签名消息的签名;
7、利用全局密钥对签名进行密钥消息认证码验证,验证通过后确定生成的签名为多方协同的签名结果。
8、进一步的,利用数据分配方法对参与方进行预处理的具体步骤为:
9、给定一组验证私钥集合,将验证私钥随机分配给各个参与方;
10、对每个参与方随机进行全局密钥加法份额分配,所有的全局密钥加法份额相加构成加法份额;
11、根据加法份额和验证私钥计算密钥消息认证码;
12、根据密钥消息认证码、加法份额和验证私钥得到全局密钥。
13、更进一步的,根据密钥消息认证码、加法份额和验证私钥得到全局密钥的计算公式为:
14、,
15、其中,为全局密钥,为第i个参与方的全局密钥加法份额,为第i个参与方的验证私钥,为第i个参与方的密钥消息认证码,,n为参与方个数。
16、进一步的,各参与方随机生成各自的签名私钥,所有参与方利用各自的签名私钥进行安全计算生成联合公钥的具体步骤为:
17、给定一组数值集合,从数值集合中随机生成每个参与方各自的签名私钥、第一随机数和第二随机数;
18、各参与方利用签名私钥、第一随机数和第二随机数计算各自的分享份额;
19、根据所有参与方的分享份额重建总分享份额;
20、采用部分打开的方式对总分享份额进行求逆计算,得到联合公钥。
21、更进一步的,所述部分打开的方式为只打开分享份额的数值部分,而不打开消息认证码部分。
22、更进一步的,各参与方利用签名私钥、第一随机数和第二随机数计算各自的分享份额的具体步骤为:
23、各参与方从预设的随机值对集合中为签名私钥、第一随机数和第二随机数选取对应的随机值对,分别记作签名私钥随机值对、第一随机数随机值对和第二随机数随机值对;
24、采用对应的随机值对对签名私钥、第一随机数和第二随机数进行盲化得到对应的盲化值,分别为签名私钥盲化值、第一随机数盲化值和第二随机数盲化值,并对所有盲化值进行广播;
25、各参与方利用各自持有的随机值对和接收到的盲化值进行计算,得到各自的分享份额。
26、更进一步的,所述预设的随机值对集合的生成过程为:
27、对每个参与方随机进行随机值分配,所有的随机值相加构成随机份额;
28、根据随机份额和验证私钥计算随机值消息认证码;
29、根据随机值消息认证码、随机份额和验证私钥得到第一随机值;
30、根据加法份额和随机份额计算得到第二随机值;
31、由第一随机值和第二随机值构成随机值对,所有参与方的随机值对构成随机值对集合。
32、进一步的,利用数据分配方法对参与方进行预处理的过程中还生成验证随机值密钥,利用全局密钥对签名进行密钥消息认证码验证时,通过打开全局密钥和验证随机值密钥结合承诺协议对签名进行密钥消息认证码验证。
33、本专利技术第二方面提供了一种基于认证秘密分享的多方协同签名系统,包括:
34、数据获取模块,被配置为根据欲签名消息确定协同签名的参与方;
35、预处理模块,被配置为利用数据分配方法对参与方进行预处理,得到全局密钥和密钥消息认证码;
36、在线处理模块,被配置为各参与方随机生成各自的签名私钥,所有参与方利用各自的签名私钥进行安全计算生成联合公钥,利用联合公钥生成欲签名消息的签名;
37、验证模块,被配置为利用全局密钥对签名进行密钥消息认证码验证,验证通过后确定生成的签名为多方协同本文档来自技高网...
【技术保护点】
1.一种基于认证秘密分享的多方协同签名方法,其特征在于,包括以下步骤:
2.如权利要求1所述的基于认证秘密分享的多方协同签名方法,其特征在于,
3.如权利要求2所述的基于认证秘密分享的多方协同签名方法,其特征在于,根据密钥消息认证码、加法份额和验证私钥得到全局密钥的计算公式为:
4.如权利要求1所述的基于认证秘密分享的多方协同签名方法,其特征在于,各参与方随机生成各自的签名私钥,所有参与方利用各自的签名私钥进行安全计算生成联合公钥的具体步骤为:
5.如权利要求4所述的基于认证秘密分享的多方协同签名方法,其特征在于,所述部分打开的方式为只打开分享份额的数值部分,而不打开消息认证码部分。
6.如权利要求4所述的基于认证秘密分享的多方协同签名方法,其特征在于,各参与方利用签名私钥、第一随机数和第二随机数计算各自的分享份额的具体步骤为:
7.如权利要求6所述的基于认证秘密分享的多方协同签名方法,其特征在于,所述预设的随机值对集合的生成过程为:
8.如权利要求1所述的基于认证秘密分享的多方协同签名方法,其特
9.一种基于认证秘密分享的多方协同签名系统,其特征在于,包括:
10.如权利要求9所述的基于认证秘密分享的多方协同签名系统,其特征在于,预处理模块中,采用半诚实服务器对参与方进行数据分配。
...【技术特征摘要】
1.一种基于认证秘密分享的多方协同签名方法,其特征在于,包括以下步骤:
2.如权利要求1所述的基于认证秘密分享的多方协同签名方法,其特征在于,
3.如权利要求2所述的基于认证秘密分享的多方协同签名方法,其特征在于,根据密钥消息认证码、加法份额和验证私钥得到全局密钥的计算公式为:
4.如权利要求1所述的基于认证秘密分享的多方协同签名方法,其特征在于,各参与方随机生成各自的签名私钥,所有参与方利用各自的签名私钥进行安全计算生成联合公钥的具体步骤为:
5.如权利要求4所述的基于认证秘密分享的多方协同签名方法,其特征在于,所述部分打开的方式为只打开分享份额的数值部分,而不打开消息认证码部分。
6.如权利要求4所述的基于认证秘密分享的多方协同...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。