首页 / 专利库 / 专利权 / 第I章 / 国际申请 / 摘要 / 一种基于SM2签名算法的门限签名方法

一种基于SM2签名算法限签名方法

阅读:832发布:2021-06-09

专利汇可以提供一种基于SM2签名算法限签名方法专利检索,专利查询,专利分析的服务。并且本 发明 公开了一种基于SM2签名 算法 的 门 限签名方法,包括系统建立阶段、签名阶段和验证签名阶段,其中:在系统建立阶段,参与的多个用户联合生成DSA密钥对(x,y=gx),其中y是公开值,x在用户之间共享;在生成签名阶段,采用DSA的签名算法,DSA签名中的随机数k由n个用户共同产生,然后通过同态性加密的性质共同计算得到DSA签名的加密值,最后对该值解密就生成消息 摘要 的签名。本发明提出一种新的基于sm2算法的门限签名方法,该方法中总成员数n仅要求大于等于t+1,且用户输出的每一步中间结果都可以验证。因此,本发明提出的门限签名方法尚铭等人提出门限签名方案更加灵活,应用范围更广。,下面是一种基于SM2签名算法限签名方法专利的具体信息内容。

1.一种基于SM2签名算法限签名方法,其特征在于:包括系统建立阶段、签名阶段和验证签名阶段,其中:在系统建立阶段,参与的多个用户联合生成DSA密钥对(x,y=gx),其中y是公开值,x在用户之间共享;在生成签名阶段,采用DSA的签名算法,DSA签名中的随机数k由n个用户共同产生,然后通过同态性加密的性质共同计算得到DSA签名的加密值,最后对该值解密就生成消息摘要的签名。
2.根据权利要求1所述的一种基于SM2签名算法的门限签名方法,其特征在于:所述DSA密钥对的生成方法为:首先生成用于加性同态加密方案E的公钥N,以及在用户之间以共享形式存在的秘密密钥d;其次是每个用户选择各自的私钥xi,生成公钥yi,并计算签名公钥y;
然后对xi用E加密,根据加法同态的性质计算得到值α=E(x)公开,其中,α是x的隐式(t,n)秘密共享,E的解密密钥d在用户之间共享,只有≥t个用户才能恢复出密钥d。
3.根据权利要求2所述的一种基于SM2签名算法的门限签名方法,其特征在于:所述系统建立的具体过程包括:
第一步、每个用户采用门限同态加密方案的密钥产生方法生成门限同态加密方案用户私钥和方案公钥;
第二步、每个用户随机选择xi,计算yi=xi*G,αi=E(xi),计算[Ci,Di]=Com(yi);每个用户广播Ci;
第三步、每个用户计算零知识证据Π(0,i),证明 使得η*G=yi,D(αi)=η;
每个用户广播Di,αi,Π(0,i);
第四步、每个用户验证其他用户承诺yi=Ver(Ci,Di)和其他用户零知识证据,计算E(α),其中 算法公钥为y。
4.根据权利要求3所述的一种基于SM2签名算法的门限签名方法,其特征在于:所述方案公钥的生成方法为:
1)用户各自生成RSA组合对:
n个用户共同生成一个ElGamal公钥;在生成原为g、阶为Q的群中,各方Pi选取随机数x′i∈ZQ,广播 则ElGamal的公钥 各用户Pi生成Paillier密钥Ni=
pi.qi,并广播,pi和qi为私钥;
2)计算方案公钥N:
–对于1≤i,j≤n,Pj广播均匀随机值 的ElGamal加密值;
–对于1≤i,j≤n,Pi发送pi的Paillier加密值 给Pj;
–对于1≤i,j≤n,Pj在密钥为Ni下计算Paillier加密:
其中rij是随机数,将 发送给Pi;
–对于1≤i,j≤n,Pi解密 将明文模Q后记为
–对于1≤i,j≤n,各用户确认每个人确实致于产生pi·qj的份额,基于qj的加密,用户Pi计算并广播pi·qj的新加密;然后所有各方利用同态性计算ElGamal加密
所有用户解密后获得的明文为0;
–对于1≤i,j≤n,所有用户利用同态性计算 的加密,并且Pi广
播si;
–对于1≤i,j≤n,最后用户计算
5.根据权利要求3所述的一种基于SM2签名算法的门限签名方法,其特征在于:所述用户私钥的生成方法为:首先计算d的加法共享di,通过用户共同计算得到 和
并在此过程中得到di;然后共同计算得到d值,再对d生成一个(t,n)的Shamir共享份额并将其给相关的n个用户。
6.根据权利要求1所述的一种基于SM2签名算法的门限签名方法,其特征在于:所述生成签名的具体过程包括:
第一步、每个用户Pi选择ρi∈RZq,计算ui=E(ρi),vi=ρi×Eα=E(ρix);计算[C1,i,D1,i]=Com([ui,vi]);计算零知识证据Π(1,i),证明 使得D(ui)=η,D(vi)=ηD(E(x)),然后广播C1,i;
第二步、每个用户Pi广播D1,i,零知识证据Π(1,i);
第三步、每个用户Pi打开其他用户承诺,通过计算[uj,vj]=Ver(C1,j,D1,j),验证其他用户零知识证据Π(1,j),并在验证通过后计算u=E(ρ)and v=E(ρx),其中
6 6
第四步、每个用户Pi选择ki∈R Zqandci∈R[-q ,q],计算ri=ki*G;计算wi=(ki×Eu)+EE(ciq)=E(kiρ+ciq);计算[C2,i,D2,i]=Com(ri,wi);计算零知识证据Π(2,i),证明使得η*G=ri,D(wi)=ηD(u)mod q,然后广播C2,i;
第五步、每个用户Pi广播D2,i,零知识证据Π(2,i);
第六步、每个用户Pi打开其他用户承诺,通过计算[rj,wj]=Ver(C2,j,D2,j),验证其他用户零知识证据Π(2,j),并在验证通过后计算w=E(kρ+cq),其中
计算 r=[R]x+e mod n;
第七步、每个用户Pi门限解密v得到D(v)=η∈[-q7,q7],并且η mod q=kxmodq andψ=η-1mod q;计算σ=ψ×E[w+E(r×E u)]=ψ×E[E(kρ+cq)+E E(rρ)]=(ρ-1x-1)×EE(kρ+cq+rρ)=E(x-1(k+r));门限解密σ,计算s=D(v)-r modq;
第八步、得到签名(r,s)。

说明书全文

一种基于SM2签名算法限签名方法

技术领域

[0001] 本发明涉及一种基于SM2签名算法的门限签名方法。

背景技术

[0002] 国家密码管理局于2010年12月17日发布了SM2椭圆曲线公钥密码算法。SM2算法旨在保障各类信息系统的安全,对我国商用密码产品和信息安全体系建设意义重大。其中,SM2椭圆曲线公钥密码算法包括了数字签名算法、密钥交换协议和公钥加密算法。
[0003] 普通的签名算法中,私钥仅由1个用户持有。如果该用户私钥被攻击者窃取,则攻击者可以伪造签名。为了避免该险,Desmedt等人提出了门限签名的思想。在门限签名中,私钥由n个用户组成的群体共享,任意t或更多个成员合作能生成代表群的有效签名,少于t个成员的合作则不能产生代表群的有效签名。
[0004] 2014年,尚铭等人提出基于sm2算法的门限签名算法。但是,该算法存在以下局限性:(1)群总成员数n必须至少大于等于2t+1。因此不适合(2,3),(2,2)等链签名场景。(2)群中每个用户给出的签名的合法性无法验证,仅能通过最后结果认证。如果签名结果不正确,无法确定出非诚实用户。

发明内容

[0005] 为了克服现有技术的上述缺点,本发明提供了一种基于SM2签名算法的门限签名方法。
[0006] 本发明解决其技术问题所采用的技术方案是:一种基于SM2签名算法的门限签名方法,包括系统建立阶段、签名阶段和验证签名阶段,其中:在系统建立阶段,参与的多个用户联合生成DSA密钥对(x,y=gx),其中y是公开值,x在用户之间共享;在生成签名阶段,采用DSA的签名算法,DSA签名中的随机数k由n个用户共同产生,然后通过同态性加密的性质共同计算得到DSA签名的加密值,最后对该值解密就生成消息摘要的签名。
[0007] 与现有技术相比,本发明的积极效果是:
[0008] 本发明提出一种新的基于sm2算法的门限签名方法,该方法中总成员数n仅要求大于等于t+1,且用户输出的每一步中间结果都可以验证。
[0009] 因此,本发明提出的门限签名方法尚铭等人提出门限签名方案更加灵活,应用范围更广。
[0010] 本发明方法可以应用在区块链系统中支持各类应用,例如:
[0011] (1)用户将数字资产存放在合成地址中,双方各掌握一把私钥,不能独自支配资产。在交易资产时双方都需要为交易签名。
[0012] (2)例如在一笔交易中,三方分别来自购买方、销售方和仲裁方,每次交易需要购买方、销售方和仲裁方三方签名才能完成交易。

具体实施方式

[0013] 本方法提出的基于SM2签名算法的门限签名包含三个阶段:系统建立阶段,签名阶段,和验证签名阶段。
[0014] 在本方法中,引用了以下三个文献中的技术来构造我们的方案。
[0015] 引用文献“C.Hazay,G.L.Mikkelsen,T.Rabin,T.Toft.and A.A.Nicolosi:Efficient RSA keygeneration and threshold Paillier in the two-party setting.”中的门限同态加密方案的密钥产生方法生成门限同态加密方案用户私钥和方案公钥,并引用该文献中的门限加密和解密算法作为本方案中的加密算法E和D;本方法中引用文献中的记法,×E表示同态乘法。
[0016] 引用文献“R.Gennaro.Multi-trapdoor Commitments and Their Applications to Proofsof Knowledge  Secure Under  Concurrent Man-in-the-Middle Attacks.Proc.OfCRYPTO’04,Springer LNCS 3152,pp.220–236.”中描述的承诺算法和承诺验证算法作为本方案中的Com算法和Ver算法。
[0017] 引用文献“R.Gennaro,S.Goldfeder,Narayanan A.Threshold-Optimal DSA/ECDSA Signatures and an Application to Bitcoin Wallet Security[J].2016.”中的方法来产生和验证零知识证据。
[0018] 本方法的具体构造过程如下:
[0019] 一、系统建立
[0020] 在本过程中,主要的目的是参与的多个用户联合生成DSA密钥对(x,y=gx),其中y是公开值,x在用户之间共享。首先生成用于加性同态加密方案E的公钥N,以及在用户之间以共享形式的秘密密钥d。其次是每个用户选择各自的私钥xi,生成公钥yi,并计算签名公钥y;然后对xi用E加密,根据加法同态的性质可以得到值α=E(x)公开。注意,α是x的隐式(t,n)秘密共享,因为E的解密密钥d在用户之间共享,只有≥t个用户才能恢复出密钥d。
[0021] 第一步、每个用户采用门限同态加密方案的密钥产生方法生成门限同态加密方案用户私钥和方案公钥。
[0022] 方案公钥生成:
[0023] n个用户共同生成RSA的公钥N;其组成形式为每个用户先单独生成一对Paillier密钥Ni=pi.qi,然后每两个用户之间可以应用Paillier同态加密的性质共同计算得到piqj的值。
[0024] 1)用户各自生成RSA组合对:
[0025] n个用户共同生成一个ElGamal公钥;在生成原为g,阶为Q的群中,各方Pi选取随机数x′i∈ZQ,广播 则ElGamal的公钥 各用户Pi生成Paillier密钥Ni=pi.qi,并广播。pi和qi为私钥。
[0026] 2)计算方案公钥N:
[0027] 主要思想是对于任意的两个用户Pi和Pj,参与协议获得 当i=j时可以直接计算。从而可得
[0028]
[0029] 具体步骤为:
[0030] –对于1≤i,j≤n,Pj广播均匀随机值 的ElGamal加密值。
[0031] –对于1≤i,j≤n,Pi发送pi的Paillier加密值 给Pj
[0032] –对于1≤i,j≤n,Pj在密钥为Ni下计算Paillier加密:
[0033]
[0034] 其中rij是随机数。将 发送给Pi。
[0035] –对于1≤i,j≤n,Pi解密 将明文模Q后记为
[0036] –对于1≤i,j≤n,各用户确认每个人确实致于产生pi·qj的份额。
[0037] 基于qj的加密,用户Pi计算并广播pi·qj的新加密;然后所有各方利用同态性计算ElGamal加密 所有用户解密后获得的明文为0。
[0038] –对于1≤i,j≤n,所有用户利用同态性计算 的加密。并且Pi广播si。
[0039] –对于1≤i,j≤n,最后用户计算
[0040] 用户私钥生成:
[0041] 在用户私钥生成时,首先计算d的加法共享di,通过用户共同计算得 和在此过程中得到di。然后共同计算得到d值,再对d生成一个(t,n)的Shamir共享份额并将其给相关的n个用户。
[0042] 第二步:
[0043] 1)每个用户随机选择xi,计算yi=xi*G,αi=E(xi),计算[Ci,Di]=Com(yi);
[0044] 2)每个用户广播Ci。
[0045] 第三步:
[0046] 1)每个用户计算零知识证据Π(0,i)
[0047] 证明 使得η*G=yi,D(αi)=η;
[0048] 2)每个用户广播Di,αi,Π(0,i)。
[0049] 第四步:
[0050] 1)每个用户验证其他用户承诺yi=Ver(Ci,Di)
[0051] 2)每个用户验证其他用户零知识证据
[0052] 3)每个用户计算E(α),其中
[0053] 4)算法公钥为y
[0054] 二、生成签名
[0055] 主要的方法是应用DSA的签名算法。DSA签名中的随机数k由n个用户共同产生;即参与的每个用户选择一个随机数后计算得到k,通过同态性加密的性质共同计算得到DSA签名的加密值。对该值解密就生成消息摘要的签名。
[0056] 第一步:
[0057] 每个用户Pi
[0058] 1)选择ρi∈RZq
[0059] 2)计算ui=E(ρi),vi=ρi×Eα=E(ρix)
[0060] 3)计算[C1,i,D1,i]=Com([ui,vi])
[0061] 4)计算零知识证据Π(1,i),
[0062] 证明 使得D(ui)=η,D(vi)=ηD(E(x))
[0063] 5)广播C1,i
[0064] 第二步、每个用户Pi广播D1,i,零知识证据Π(1,i)
[0065] 第三步:
[0066] 每个用户Pi
[0067] 1)打开其他用户承诺,通过计算[uj,vj]=Ver(C1,j,D1,j)
[0068] 2)验证其他用户零知识证据Π(1,j)
[0069] 3)验证通过,则计算u=E(ρ)and v=E(ρx)其中
[0070] 第四步:
[0071] 每个用户Pi
[0072] 1)选择ki∈R Zqandci∈R[-q6,q6]
[0073] 2)计算ri=ki*G,
[0074] 3)计算wi=(ki×E u)+EE(ciq)=E(kiρ+ciq)
[0075] 4)计算[C2,i,D2,i]=Com(ri,wi)
[0076] 5)计算零知识证据Π(2,i),(确保ui和vi是正确设置的)
[0077] 证明 使得η*G=ri,D(wi)=ηD(u)mod q
[0078] 6)广播C2,i(确保每个ki的独立性)
[0079] 第五步、每个用户Pi广播D2,i,零知识证据Π(2,i)
[0080] 第六步:
[0081] 每个用户Pi
[0082] 1)打开其他用户承诺,通过计算[rj,wj]=Ver(C2,j,D2,j)
[0083] 2)验证其他用户零知识证据Π(2,j)
[0084] 3)验证通过,则计算w=E(kρ+cq),其中
[0085] 4)计算 r=[R]x+e mod n,
[0086] 第七步:
[0087] 每个用户Pi
[0088] 1)门限解密v得到D(v)=η∈[-q7,q7],并且ηmod q=kxmodq andψ=η-1mod q[0089] 2)计算σ=ψ×E[w+E(r×E u)]=ψ×E[E(kρ+cq)+E E(rρ)]
[0090] =(ρ-1x-1)×EE(kρ+cq+rρ)=E(x-1(k+r))
[0091] 3)门限解密σ,计算s=D(v)-r modq
[0092] 第八步、得到签名(r,s)。
[0093] 三、验证签名
[0094] 验证签名步骤与验证SM2签名步骤一致。
相关专利内容
标题 发布/更新时间 阅读量
一种自动文本摘要方法 2020-05-13 461
监控视频摘要的方法 2020-05-13 796
会议摘要 2020-05-11 938
摘要生成装置和摘要生成方法 2020-05-11 369
一种视频摘要生成方法 2020-05-12 824
音乐摘要自动生成方法 2020-05-12 198
生成视频摘要的方法 2020-05-12 959
单文档摘要生成方法 2020-05-12 451
选择性会议摘要 2020-05-11 862
内容摘要验证接口方法 2020-05-12 707
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈