一种基于BLS的高效可验证时间签名方法及系统

文档序号:35628242发布日期:2023-10-06 00:37阅读:69来源:国知局
一种基于BLS的高效可验证时间签名方法及系统

本发明属于信息安全,涉及一种签名方法,特别是一种基于bls的可验证时间签名方法。


背景技术:

1、可验证时间签名(vts)方案允许签名者对消息进行时间锁定签名,锁定时间为t。在进行顺序计算达到时间t之后,验证者可以从时间锁中提取出该签名。可验证性保证任何人都可以公开检查时间锁是否包含一个有效的消息签名,而不需要先解决该时间锁问题。vts可应用于区块链支付通道网络、多重签名交易、公平多方计算等领域的隐私保护。现有的可验证时间签名方案中秘密份额生成效率低,导致这些方案效率较低,难以应用与推广。

2、针对上述问题,本专利基于bls设计一种更加安全高效的vts方案。其中,bls是一种基于椭圆曲线密码学的数字签名算法,与传统的rsa和dsa签名算法相比,签名长度短,通常只需要32字节或48字节,因此适合在网络通信等带宽有限的环境中使用,保障数据的真实性、完整性和不可否认性。

3、上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。


技术实现思路

1、针对现有技术中存在的问题,本发明的目的在于提供一种基于bls的高效可验证时间签名方法。本专利基于bls签名设计高效的vts方案,计算开销比现有方案降低约40%,更能满足实际应用需求。

2、本发明基于bls设计更加安全高效的vts方案,旨在解决现有方案涉及高耗时秘密份额生成的问题,有效降低计算开销和通信代价,从而减轻系统负担,更好地满足区块链支付通道网络、多重签名交易、公平多方计算等领域的数据安全和隐私保护需求。

3、本发明的技术方案为:

4、一种基于bls的高效可验证时间签名方法,其步骤包括:

5、1)管理端根据安全参数λ初始化线性同态时间锁难题sp、零知识范围证明crsrange,初始化bls签名算法获得参数集其中,为循环群,g0为循环群的生成元,g1为循环群的生成元,q为循环群的阶,双线性对映射e:密码杂凑函数的映射关系为为集合{1,2,…,q}中元素构成的集合;设置秘密分享总份额n及t=n/2+1,安全哈希函数的映射关系为集合i中元素个数为t-1;然后将系统参数发送给承诺端、验证端和打开端;

6、2)承诺端根据系统参数pp,随机选取计算pk=g0sk,得到用户的私钥sk、公钥pk;承诺端保存私钥sk并公开公钥pk;

7、3)承诺端根据系统参数pp、私钥sk、crsrange中的锁定时间t和消息m,计算bls签名随机选取t-1阶多项式p(x),对i∈[1,n]中的每个元素,根据多项式p(x)计算得到p(i),计算签名秘密份额公钥秘密份额并选取随机数ri={0,1}λ,计算时间锁难题zi及相应的范围证明πi;然后计算哈希值得到承诺值c=(z1,…,zn,t)和证明π=({pki}i∈{1,..,n},i,{σi}i∈{1,..,n})并发送给验证端;

8、4)验证端根据系统参数pp、公钥pk、承诺值c、证明π和消息m,判断以下条件是否满足:

9、a)使得li(·)表示第i个公钥份额的拉格朗日多项式基底;

10、b)使得零知识证明协议验证zk.verify(crsrange,(zi,0,2λ,t),πi)≠1;

11、c)使得zi≠ltlp.pgen(pp,σi,t)或ltlp.pgen为线性同态时间锁难题生成算法;

12、d)

13、若满足以上a)~d)中任意条件,则返回验证未通过,否则返回验证通过进行步骤5);

14、5)承诺端验证承诺值c、证明π,若验证通过则将签名σ发送给打开端;

15、6)打开端根据系统参数pp、公钥pk、承诺值c、证明π和消息m,选取随机数v∈[1,n]/i,调用时间锁解决算法ltlp.psolve(pp,zv)随机选取一个秘密份额σv,计算得到签名

16、进一步的,零知识范围证明crsrange满足其中,tmt为声明,z为时间锁难题值,a,b为范围证明中的范围边界值。

17、进一步的,t-1阶多项式其中{aj}j∈{1,..t-1}为随机数。

18、一种基于bls的高效可验证时间签名系统,其特征在于,包括管理端、承诺端、验证端和打开端;

19、所述管理端,用于根据安全参数λ初始化线性同态时间锁难题sp、零知识范围证明crsrange,初始化bls签名算法获得参数集其中,为循环群,g0为循环群的生成元,g1为循环群的生成元,q为循环群的阶,双线性对映射e:密码杂凑函数的映射关系为为集合{1,2,…,q}中元素构成的集合;设置秘密分享总份额n及t=n/2+1,安全哈希函数的映射关系为集合i中元素个数为t-1;然后将系统参数发送给承诺端、验证端和打开端;

20、所述承诺端,用于根据系统参数pp,随机选取计算pk=g0sk,得到用户的私钥sk、公钥pk;承诺端保存私钥sk并公开公钥pk;以及根据系统参数pp、私钥sk、crsrange中的锁定时间t和消息m,计算bls签名随机选取t-1阶多项式p(x),对i∈[1,n]中的每个元素,根据多项式p(x)计算得到p(i),计算签名秘密份额公钥秘密份额并选取随机数ri={0,1}λ,计算时间锁难题zi及相应的范围证明πi;然后计算哈希值得到承诺值c=(z1,…,zn,t)和证明π=({pki}i∈{1,..,n},i,{σi}i∈{1,..,n})并发送给验证端;

21、所述验证端,用于根据系统参数pp、公钥pk、承诺值c、证明π和消息m,判断以下条件是否满足:

22、a)使得li(·)表示第i个公钥份额的拉格朗日多项式基底;

23、b)使得零知识证明协议验证zk.verify(crsrange,(zi,0,2λ,t),πi)≠1;

24、c)使得zi≠ltlp.pgen(pp,σi,t)或ltlp.pgen为线性同态时间锁难题生成算法;

25、d)

26、若满足以上a)~d)中任意条件,则返回验证未通过,若验证通过则承诺端验证承诺值c、证明π,若验证通过则将签名σ发送给打开端;

27、所述打开端,用于根据系统参数pp、公钥pk、承诺值c、证明π和消息m,选取随机数v∈[1,n]/i,调用时间锁解决算法ltlp.psolve(pp,zv)随机选取一个秘密份额σv,计算得到签名

28、一种服务器,其特征在于,包括存储器和处理器,所述存储器存储计算机程序,所述计算机程序被配置为由所述处理器执行,所述计算机程序包括用于执行上述方法中各步骤的指令。

29、一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现上述方法的步骤。

30、针对本发明的目的,本发明提出了一种基于bls的vts方案,具体包括以下6个算法:

31、算法1.初始化(setup):算法输入安全参数λ,初始化线性同态时间锁难题sp←ltlp.psetup(1λ),初始化零知识范围证明crsrange←zk.setup(1λ),该范围证明满足

32、

33、初始化bls签名算法,获得设置秘密分享总份额n及t=n/2+1,选取安全哈希函数集合i中元素个数为t-1。设置系统参数具体参数符号定义参见具体实施方式中(1.符号及定义)。

34、算法2.密钥生成(kgen):算法输入系统参数pp,随机选取计算pk=g0sk,算法输出用户的私钥sk、公钥pk。

35、算法3.承诺(commit):算法输入系统参数pp、用户私钥sk、锁定时间t=2k和消息m。计算bls签名随机选取t-1阶多项式其中{ai}i∈{1,..t-1}为随机数。对i∈[1,n]中的每个元素,计算签名秘密份额公钥秘密份额并选取随机数ri={0,1}λ,计算时间锁难题zi=ltlp.pgen(pp,σi,t),及相应的范围证明πrange,i=zk.proof(crsrange,(zi,0,2λ,t),(σi,ri)),计算哈希值算法返回承诺值c=(z1,…,zn,t)和证明π=({pki}i∈{1,..,n},i,{σi}i∈i)。

36、算法4.验证(verify):算法输入系统参数pp、用户公钥pk、承诺值c、证明π和消息m。

37、判断以下条件是否满足:

38、1.使得li(·)表示第i个份额的拉格朗日多项式基底;

39、2.使得zk.verify(crsrange,(zi,0,2λ,t),πrange,i)≠1;

40、3.使得zi≠ltlp.pgen(pp,σi,t)或

41、4.

42、若满足以上任意条件,则返回⊥,否则返回1。

43、算法5.打开(open):算法输入系统参数pp、用户公钥pk、承诺值c、证明π和消息m。承诺者返回原始签名σ。

44、算法6.强制打开(fopen):算法输入系统参数pp、用户公钥pk、承诺值c、证明π和消息m。选取随机数v∈[1,n]/i,调用时间锁解决算法σv←ltlp.psolve(pp,zv),计算签名返回原始签名σ。

45、本发明的优点如下:

46、目前提出的可验证时间签名方案中秘密份额生成效率低,造成系统的计算开销代价较大,难以满足区块链支付通道网络、多重签名交易、公平多方计算等领域高性能、低功耗的应用需求。

47、本发明利用bls签名设计新的可验证时间签名方案,实现bls算法签名预验证、到达预期时间后可恢复的功能,方案不仅能够满足可靠性和隐私性,与还提升了秘密份额生成速度。本专利vts方案计算开销比现有方案降低约40%,更能满足实际应用需求。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1