一种基于SM2的门限签名方法与流程

文档序号:34581558发布日期:2023-06-28 14:29阅读:52来源:国知局
一种基于SM2的门限签名方法与流程

本发明涉及数字签名,尤其涉及一种基于sm2的门限签名方法。


背景技术:

1、随着网络技术的飞速发展,网络安全问题日益重要,而信息加密技术则是网络安全技术中的核心技术。数字签名(digital signatures)是众多信息加密技术中使用较为广泛的技术,数字签名是一种以电子形式存储的消息签名的方法,可以提供消息的不可伪造性、真实性和完整性,在目前的网络通信、金融、商务等领域使用非常广泛。在数字签名算法中私钥的安全是关键所在,sm2椭圆曲线公钥密码算法与rsa公钥密码算法相比具有安全性高、密钥短、速度快等优势,在数字签名算法中广泛应用,但是,普通的签名算法中私钥仅由一个用户持有,如果该用户私钥被窃取,则攻击者可以伪造签名,存在较高的安全风险。

2、目前,为解决私钥由单个用户完全掌握存在较高安全风险的问题,通常采用门限签名,门限签名由于私钥由多个用户存储,且不需要全部用户就可以完成签名算法,一方面门限签名提高了系统的健壮性,即使少量用户丢失密钥,也可以进行签名运算,不会导致密码系统丧失功能性;另一方面,门限签名提高了系统的安全性,恶意敌手即使窃取了部分(少于门限值)用户的密钥,也难以打破密码系统的安全性。但是,目前的基于sm2的门限签名算法,用到同态、零知识证明等复杂运算,运算效率低,或者要求满足诚实者大多数的条件,门限值t与所有用户个数m需要满足特定的条件,限制了签名算法的使用范围,局限性较大。


技术实现思路

1、鉴于上述的分析,本发明实施例旨在提供一种基于sm2的门限签名方法,用以解决现有门限签名算法运算效率低以及门限值范围受限的问题。

2、本发明实施例提供了一种基于sm2的门限签名方法,包括以下步骤:

3、密钥生成过程:

4、若应用系统存在可信中心,则可信中心产生秘密值并分享秘密值到m个装置,得到每一装置保存的秘密值份额;并根据可信中心产生的秘密值,得到用户签名公钥;

5、若应用系统不存在可信中心,则依次将每一装置作为可信中心产生秘密值并分享秘密值到m个装置,得到每一装置保存的秘密值份额;根据每一装置产生的秘密值,得到用户签名公钥;

6、其中,m≥2,为装置个数;

7、签名生成过程:

8、根据任意t'个装置的秘密值份额重构出各自的私钥分量;其中,t'≥t;t为恢复秘密值所需的装置最小数量,2≤t≤m;

9、基于sm2并根据用户签名公钥、待签名消息m和t'个装置各自的私钥分量得到消息m的完整签名。

10、进一步地,若应用系统存在可信中心,则可信中心通过执行以下步骤得到每一装置保存的秘密值份额:

11、可信中心随机产生秘密值w,其中,w∈[1,n'-1],n'满足n'整除(n-1)且n'不包含小于m的素因子;n为g的阶,g为sm2的椭圆曲线基点;

12、构造多项式f(x)=at-1xt-1+at-2xt-2+…+a1x+w;其中,ak为可信中心产生的随机数,ak∈[1,n'-1],k=1,2,…,t-1;

13、根据下式得到每一装置的秘密值份额,并发送给相应装置:

14、yi=f(i)mod n′,

15、式中,yi表示装置i的秘密值份额,1≤i≤m;mod为求模运算。

16、进一步地,若应用系统存在可信中心,则通过执行以下步骤得到用户签名公钥:

17、基于可信中心产生的秘密值w,通过下式得到用户签名私钥d:

18、d=(gwmod n)-1,

19、式中,g∈[1,n-1],且g的阶为n';

20、根据用户签名私钥d,通过下式得到用户签名公钥p:

21、p=[d]g。

22、进一步地,若应用系统不存在可信中心,则可信中心通过执行以下步骤得到每一装置保存的秘密值份额:

23、依次将每一装置作为可信中心,得到各装置为可信中心时每一装置的秘密值份额分量:

24、将装置i作为可信中心随机产生秘密值wi,其中,wi∈[1,n'-1],n'满足n'整除(n-1)且n'不包含小于m的素因子,i=1,2,…,m,n为g的阶,g为sm2的椭圆曲线基点;

25、构造多项式fi(x)=at-1xt-1+at-2xt-2+…+a1x+wi;其中,ak为可信中心产生的随机数,ak∈[1,n'-1],k=1,2,…,t-1;

26、根据下式得到装置i为可信中心时装置j的秘密值份额分量yi,j,并发送给装置j:

27、yi,j=fi(j)mod n′;

28、式中,mod为求模运算;

29、基于各装置作为可信中心时每一装置获得的秘密值份额分量,利用下式得到每一装置的秘密值份额:

30、

31、式中,yi表示装置i的秘密值份额。

32、进一步地,若应用系统不存在可信中心,则通过执行以下步骤得到用户签名公钥:

33、基于每一装置产生的秘密值,根据下式得到每一装置的私钥分量:

34、

35、式中,wi表示装置i产生的秘密值;d′i表示装置i的私钥分量;g∈[1,n-1],且g的阶为n';

36、根据每一装置的私钥分量,通过下述方式得到用户签名公钥:

37、装置1根据公式p1=[d'1]g计算得到椭圆曲线点p1,并将p1发送给装置2;

38、对于装置2至装置m-1,依次执行公式pi=[d'i]pi-1,i=2,…,m-1,并将pi发送给装置i+1,直至装置m接收到pm-1;

39、装置m执行公式p=[d'm]pm-1-g,将p记作用户签名公钥。

40、进一步地,得到用户签名公钥还包括:若p=o,则判断生成用户签名公钥失败,否则记p为用户签名公钥;其中,o为sm2椭圆曲线上的无穷远点。

41、进一步地,在签名生成过程中,通过执行以下方式根据任意t'个装置的秘密值份额重构出t'个装置各自的私钥分量:

42、将任意t'个装置重新编号为l1,l2,…,lt',其中,l1,l2,…,lt'的值为在m个装置中的位置编号;

43、根据下式计算t'个装置中每一装置的重构秘密值份额:

44、

45、其中,

46、

47、式中,表示装置lq1的重构秘密值份额,表示装置lq1的秘密值份额,q1=1,2,…,t′;

48、基于每一装置的重构秘密值份额,通过下式重构每一装置的私钥分量:

49、

50、式中,dq1表示装置lq1的签名私钥分量;g∈[1,n-1],且g的阶为n';n为g的阶,g为sm2的椭圆曲线基点。

51、进一步地,所述基于sm2并根据用户签名公钥、待签名消息m和t'个装置各自的私钥分量得到消息m的完整签名,包括:

52、基于sm2,并根据用户签名公钥将待签名消息m生成消息摘要e;

53、根据t'个装置产生的随机数、各自的私钥分量和所述消息摘要e生成第一部分签名;

54、再利用t'个装置产生的随机数、各自的私钥分量和所述第一部分签名生成第二部分签名,得到消息m的完整签名。

55、进一步地,所述基于sm2,并根据用户签名公钥将待签名消息m生成消息摘要e,公式表示为:

56、e=h256(zu||m);

57、式中,h256()为消息摘要长度256比特的密码杂凑函数,zu为用户u的身份标识、部分椭圆曲线参数和用户签名公钥的杂凑;zu||m表示杂凑zu和待签名消息m的拼接。

58、进一步地,m个装置共享sm2的椭圆曲线参数e(fp)、(p,a,b,g,n,h),其中,椭圆曲线e为定义在包含p个元素的素域fp上的椭圆曲线,e(fp)为fp上椭圆曲线e的包括无穷远点o的所有有理点组成的集合,a和b为fp中的元素,g为椭圆曲线e上n阶的基点,h为余因子。

59、与现有技术相比,本发明可实现如下有益效果:

60、本发明提供的一种基于sm2的门限签名方法,

61、通过是否存在可信中心,采用不同的秘密值份额生成方式,能够支持不同的应用系统,通过每一装置的秘密值份额生成用户签名私钥,将私钥信息分享给多个装置,任意不小于门限值数量的装置可以进行签名运算,提高了系统的健壮性和安全性,以及通过任意大于等于t的t'个装置重构私钥,进而得到完整用户签名,计算简单,运算效率高,并且恢复秘密值所需的装置最小数量任意设置,使用条件和范围更加宽泛,局限性小。

62、本发明中,上述各技术方案之间还可以相互组合,以实现更多的优选组合方案。本发明的其他特征和优点将在随后的说明书中阐述,并且,部分优点可从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过说明书以及附图中所特别指出的内容中来实现和获得。

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