CN110535635A - 一种支持信息隐藏的协同签名方法与系统 - Google Patents

一种支持信息隐藏的协同签名方法与系统 Download PDF

Info

Publication number
CN110535635A
CN110535635A CN201910657002.0A CN201910657002A CN110535635A CN 110535635 A CN110535635 A CN 110535635A CN 201910657002 A CN201910657002 A CN 201910657002A CN 110535635 A CN110535635 A CN 110535635A
Authority
CN
China
Prior art keywords
called side
signature
cooperation part
mod
calculated result
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201910657002.0A
Other languages
English (en)
Other versions
CN110535635B (zh
Inventor
韩留明
王庆芝
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Xiangxinli Technology Co Ltd
Original Assignee
Beijing Xiangxinli Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Xiangxinli Technology Co Ltd filed Critical Beijing Xiangxinli Technology Co Ltd
Priority to CN201910657002.0A priority Critical patent/CN110535635B/zh
Publication of CN110535635A publication Critical patent/CN110535635A/zh
Application granted granted Critical
Publication of CN110535635B publication Critical patent/CN110535635B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Algebra (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Power Engineering (AREA)
  • Computing Systems (AREA)
  • Storage Device Security (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种支持信息隐藏的协同签名方法与系统,参与方包括调用方和协作方,该方法包括以下步骤:1)签名参数初始化;2)生成调用方和协作方的密钥,所述密钥包括:协作方的私钥、协作方的公钥、调用方的私钥、调用方的公钥和用户公钥;3)生成签名。本发明中,调用方和协作方分别存储SM2子私钥部分,协同完成消息的签名操作;任何一方无法获取完整的SM2私钥信息。本发明中,调用方不会将待签名消息的明文、摘要信息或最终签名泄露给协作方,有效地保护了用户隐私信息;同时该方案相比于盲签名方案,计算和通信开销较小,有利于进行实际部署和应用。

Description

一种支持信息隐藏的协同签名方法与系统
技术领域
本发明涉及信息安全技术,尤其涉及一种支持信息隐藏的协同签名方法与系统。
背景技术
公钥密码算法能够用于生成信息的数字签名,具体地,拥有私钥的实体能够生成消息的数字签名,其他实体使用相应公钥可验证签名的正确性。为防止攻击者生成合法的数字签名,需要保证私钥不被泄露。
目前,已有多种协同签名方案用于提高私钥的安全性。该类方案的特点是:没有任何实体拥有或能够恢复出完整的私钥信息,多个实体分别拥有子私钥信息用于生成子签名部分,最终多个子签名合成完整的签名信息。但是,该类方案中,待签名消息的明文信息或其摘要信息将被泄露给除调用方外的协作方,使得用户隐私面临泄露的风险。
盲签名方案能够使得数字签名生成者在不知道待签名消息及摘要的情形下,生成相应的数字签名,从而保护用户隐私信息。但是,盲签名方案中,调用方需要对待签名消息进行盲化处理,并对数字签名生成者返回的结果进行去盲化,以生成最终的数字签名;从而,盲签名方案中,调用方计算开销较大,无法大规模应用部署。
发明内容
本发明要解决的技术问题在于针对现有技术中的缺陷,提供一种支持信息隐藏的协同签名方法与系统。
本发明解决其技术问题所采用的技术方案是:一种支持信息隐藏的协同签名方法,参与方包括调用方和协作方,包括以下步骤:
1)签名参数初始化
产生整个签名过程中所需的公开参数;所述参数包括:SM2算法的椭圆曲线相关参数(q,Fq,n,G)、密码杂凑函数Hash();
其中,q为大素数,Fq为包含q个元素的有限域,n为素数,G为椭圆曲线的一个基点,其阶为n;
2)生成调用方和协作方的密钥
2.1)协作方产生一个位于[1,n-1]之间的随机数D1,将产生的随机数D1作为协作方的私钥;
协作方计算D1在Fq上的逆元D1-1mod n;计算对应的公钥P1=D1 -1[*]G,将计算结果P1发送给调用方;其中,mod表示求模运算,[*]表示椭圆曲线点乘运算;
2.2)调用方产生一个位于[1,n-1]之间的随机数D2作为私钥,计算D2在Fq上的逆元D2 -1mod n;计算对应的公钥P2=D2 -1[*]G,将计算结果P2发送给协作方;
2.3)协作方计算W1=D1 -1[*]P2,存储计算结果W1;协作方计算P=W1[-]G,将计算结果P作为公钥公开;其中,[-]表示椭圆曲线点减运算;
2.4)调用方计算W2=D2 -1[*]P1,存储计算结果W2,调用方计算P=W2[-]G将计算结果P作为公钥;
3)生成签名过程
3.1)调用方发起协同签名请求;
3.2)协作方在接收到调用方发起的协同签名请求时,根据W1生成第一部分签名Q1,并将Q1返回给调用方;其中,第一部分签名Q1由协作方产生一个位于[1,n-1]之间的随机数k1,并计算Q1=k1[*]W1
3.3)调用方生成待签名消息M的消息摘要e,根据Q1、W2和e生成第二部分签名r,并根据D2和r生成第三部分签名s2,将s2发送给协作方;
3.4)协作方根据D1和s2生成第四部分签名s1,并返回给调用方;s1=k1+D1*s2modn;
3.5)调用方根据r和s1计算s,生成完整签名(r,s)并输出。
按上述方案,所述步骤3.3)调用方生成待签名消息M的消息摘要e采用以下方法:将Z和M拼接形成M',并计算Hash(M'),将计算结果作为e,即:M'=Z||M,||表示拼接;e=Hash(M');其中,Z表示调用方和协作方共同的身份标识,Hash()表示预设的密码杂凑函数。
按上述方案,所述步骤3.3)中第二部分签名r的生成过程如下:
调用方产生两个位于[1,n-1]之间的随机数k2、k3,并计算k2[*]G[+]Q1[+]k3[*]W2,得到计算结果(x1,y1),即:k2∈[1,n-1];k3∈[1,n-1];(x1,y1)=k2[*]G[+]Q1[+]k3[*]W2,其中,[+]表示椭圆曲线点加运算,[*]表示椭圆曲线点乘运算;
调用方计算x1+e mod n,将计算结果作为r,即:r=x1+e mod n;若r等于0,则调用方重新产生随机数k2、k3,并重新计算(x1,y1)和r,直到r不等于0为止。
按上述方案,所述步骤3.3)中第三部分签名s2的生成过程如下:
s2=D2*(r+k2)mod n。
按上述方案,所述步骤3.3)中s的计算过程如下:s=s1+k3-r mod n;若s等于0或等于n-r,则重新产生k3,并重新执行相关步骤并计算s。
一种支持信息隐藏的协同签名系统,参与方包括调用方和协作方,包括:
签名参数初始化模块,用于产生整个签名过程中所需的公开参数;所述参数包括:SM2算法的椭圆曲线相关参数(q,Fq,n,G)、密码杂凑函数Hash();
其中,q为大素数,Fq为包含q个元素的有限域,n为素数,G为椭圆曲线的一个基点,其阶为n;
密钥生成模块,用于生成调用方和协作方的密钥;具体过程如下:
1)协作方产生一个位于[1,n-1]之间的随机数D1,将产生的随机数D1作为协作方的私钥;
协作方计算D1在Fq上的逆元D1-1mod n;计算对应的公钥P1=D1 -1[*]G,将计算结果P1发送给调用方;其中,mod表示求模运算,[*]表示椭圆曲线点乘运算;
2)调用方产生一个位于[1,n-1]之间的随机数D2作为私钥,计算D2在Fq上的逆元D2 -1mod n;计算对应的公钥P2=D2 -1[*]G,将计算结果P2发送给协作方;
3)协作方计算W1=D1 -1[*]P2,存储计算结果W1;协作方计算P=W1[-]G,将计算结果P作为公钥公开;其中,[-]表示椭圆曲线点减运算;
4)调用方计算W2=D2 -1[*]P1,存储计算结果W2,调用方计算P=W2[-]G将计算结果P作为公钥;
签名生成模块,用于生成待签名消息M的签名;过程如下:
1)调用方发起协同签名请求;
2)协作方在接收到调用方发起的协同签名请求时,根据W1生成第一部分签名Q1,并将Q1返回给调用方;其中,第一部分签名Q1由协作方产生一个位于[1,n-1]之间的随机数k1,并计算Q1=k1[*]W1
3)调用方生成待签名消息M的消息摘要e,根据Q1、W2和e生成第二部分签名r,并根据D2生成第三部分签名s2,将s2发送给协作方;
其中,第二部分签名r的生成过程如下:
调用方产生两个位于[1,n-1]之间的随机数k2、k3,并计算k2[*]G[+]Q1[+]k3[*]W2,得到计算结果(x1,y1),即:k2∈[1,n-1];k3∈[1,n-1];(x1,y1)=k2[*]G[+]Q1[+]k3[*]W2,其中,[+]表示椭圆曲线点加运算,[*]表示椭圆曲线点乘运算;
调用方计算x1+e mod n,将计算结果作为r,即:r=x1+e mod n;若r等于0,则调用方重新产生随机数k2、k3,并重新计算(x1,y1)和r,直到r不等于0为止;
第三部分签名s2的生成过程如下:
s2=D2*(r+k2)mod n;
4)协作方根据D1和s2生成第四部分签名s1,并返回给调用方;s1=k1+D1*s2mod n;
5)调用方根据r和s1生成完整签名(r,s)并输出,其中,s=s1+k3-r mod n;若s等于0或等于n-r,则重新产生k3,并重新执行相关步骤并计算s。
按上述方案,所述签名生成模块中步骤3)调用方生成待签名消息M的消息摘要e采用以下方法:将Z和M拼接形成M',并计算Hash(M'),将计算结果作为e,即:M'=Z||M,||表示拼接;e=Hash(M');其中,Z表示调用方和协作方共同的身份标识,Hash()表示预设的密码杂凑函数。
本发明产生的有益效果是:本发明中,调用方和协作方分别存储子私钥信息,协同完成对消息的签名,任何一方无法获取完整的私钥信息或独自生成正确的数字签名,提高了私钥的安全性。而且,在进行数字签名时,调用方不需要将待签名信息或其摘要值泄露给协作方,有效地保护了用户隐私信息;且整个方案中不需要复杂的盲化和去盲化操作,能够有效降低计算开销,有利于在实际系统中进行应用部署。
附图说明
下面将结合附图及实施例对本发明作进一步说明,附图中:
图1是本发明实施例的方法流程图;
图2是本发明实施例的调用方和协作方密钥生成过程示意图;
图3是本发明实施例的调用方和协作方生成待签名消息M的完整签名的过程示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
如图1所示,一种支持信息隐藏的协同签名方法,包括以下步骤:
步骤11:协作方生成自身的子私钥D1,调用方生成自身的子私钥D2
步骤12:调用方发起协同签名请求;
步骤13:协作方在接收到调用方发起的协同签名请求时,根据W1生成第一部分签名Q1,并将Q1返回给调用方;
步骤14:调用方生成待签名消息M的消息摘要e,根据Q1、W2和e生成第二部分签名r,并根据D2生成第三部分签名s2,将s2发送给协作方;
步骤15:协作方根据D1和s2生成第四部分签名s1,并返回给调用方;
步骤16:调用方根据r和s1生成完整签名并输出。
通过步骤12~16所示过程,即可生成待签名消息M的完整签名。
协作方和调用方共享SM2算法的椭圆曲线参数E(Fq)、G和n,椭圆曲线E为定义在有限域Fq上的椭圆曲线,G表示椭圆曲线E上n阶的基点,各参数的具体取值等均根据SM2算法预先设定。
协作方和调用方分别生成自身的子私钥D1和D2,双方合作完成初始化过程。
相应地,图2为本发明调用方和协作方初始化过程示意图,如图2所示,包括以下步骤21~26。
步骤21:协作方产生一个位于[1,n-1]之间的随机数,将产生的随机数作为D1。即有:D1∈[1,n-1]。
步骤22:调用方产生一个位于[1,n-1]之间的随机数,将产生的随机数作为D2。即有:D2∈[1,n-1]。
步骤23:协作方计算D1在Fq上的逆元D1 -1mod n,mod表示求模运算;计算D1 -1[*]G,将计算结果P1发送给调用方,即有:P1=D1 -1[*]G,其中,[*]表示椭圆曲线点乘运算。
步骤24:调用方计算D2在Fq上的逆元D2 -1mod n;计算D2 -1[*]G,将计算结果P2发送给协作方,即有:P2=D2 -1[*]G。
步骤25:协作方计算D1 -1[*]P2,存储计算结果W1,即有:W1=D1 -1[*]P2;计算W1[-]G,将计算结果P作为公钥公开,即有:P=W1[-]G,其中,[-]表示椭圆曲线点减运算。
步骤26:调用方计算D2 -1[*]P1,存储计算结果W2,即有:W2=D2 -1[*]P1;计算W2[-]G,将计算结果作为公钥公开。
需要说明的是,上述步骤21~26的表示方式仅为举例说明,并不用于限制各步骤的执行顺序,在实际应用中,可根据实际需要设定各步骤的执行顺序,只要最终能够得到所需的结果即可,后续涉及到的各示意图中同样如此,不再赘述。
图3为本发明调用方和协作方生成待签名消息M的完整签名的过程示意图,如图3所示,包括以下步骤31~310。
步骤31:调用方发起协同签名请求。
步骤32:协作方产生一个位于[1,n-1]之间的随机数k1,并计算k1[*]W1,将计算结果作为Q1发送给调用方。即有:k1∈[1,n-1];Q1=k1[*]W1,其中[*]表示椭圆曲线点乘运算。
步骤33:调用方将Z和M拼接形成M',并计算Hash(M'),将计算结果作为e,其中,Z表示调用方和协作方共同的身份标识,Hash()表示预定的密码杂凑函数。
即有:M'=Z||M,||表示拼接;e=Hash(M')。
步骤34:调用方产生两个位于[1,n-1]之间的随机数k2、k3,并计算k2[*]G[+]Q1[+]k3[*]W2,得到计算结果(x1,y1)。即有:k2∈[1,n-1];k3∈[1,n-1];(x1,y1)=k2[*]G[+]Q1[+]k3[*]W2,其中,[+]表示椭圆曲线点加运算,[*]表示椭圆曲线点乘运算。
步骤35:调用方计算x1+e mod n,将计算结果作为r。即有:r=x1+e mod n,其中,mod表示求模运算。若r不等于0,则执行步骤36,若r等于0,则调用方可重新产生k2、k3,并重新计算得到(x1,y1)和r,直到r不等于0为止。
步骤36:若r不等于0,则调用方计算D2*(r+k2)mod n,将计算结果作为s2。即有:s2=D2*(r+k2)mod n。
步骤37:调用方将s2发送给协作方。
步骤38:协作方计算k1+D1*s2mod n,得到计算结果s1。即有:s1=k1+D1*s2mod n。协作方将s1发送给调用方。
步骤39:调用方计算s1+k3-r mod n,得到计算结果s。即有:s=s1+k3-r modn。若s等于0或等于n-r,则可从重新产生k3,并将与此相关的步骤重新执行,若s不等于0且不等于n-r,则执行步骤310。
步骤310:若s不等于0且不等于n-r,则调用方将(r,s)作为完整签名输出。
上述各步骤中涉及到的各随机数k1、k2、k3等均为整数。
基于上述方法,本发明同时公开了一种支持信息隐藏的协同签名系统,参与方包括调用方和协作方,包括:
签名参数初始化模块,用于产生整个签名过程中所需的公开参数;所述参数包括:SM2算法的椭圆曲线相关参数(q,Fq,n,G)、密码杂凑函数Hash();
其中,q为大素数,Fq为包含q个元素的有限域,n为素数,G为椭圆曲线的一个基点,其阶为n;
密钥生成模块,用于生成调用方和协作方的密钥;具体过程如下:
1)协作方产生一个位于[1,n-1]之间的随机数D1,将产生的随机数D1作为协作方的私钥;
协作方计算D1在Fq上的逆元D1-1mod n;计算对应的公钥P1=D1 -1[*]G,将计算结果P1发送给调用方;其中,mod表示求模运算,[*]表示椭圆曲线点乘运算;
2)调用方产生一个位于[1,n-1]之间的随机数D2作为私钥,计算D2在Fq上的逆元D2 -1mod n;计算对应的公钥P2=D2 -1[*]G,将计算结果P2发送给协作方;
3)协作方计算W1=D1 -1[*]P2,存储计算结果W1;协作方计算P=W1[-]G,将计算结果P作为公钥公开;其中,[-]表示椭圆曲线点减运算;
4)调用方计算W2=D2 -1[*]P1,存储计算结果W2,调用方计算P=W2[-]G将计算结果P作为公钥;
签名生成模块,用于生成待签名消息M的签名;过程如下:
1)调用方发起协同签名请求;
2)协作方在接收到调用方发起的协同签名请求时,根据W1生成第一部分签名Q1,并将Q1返回给调用方;其中,第一部分签名Q1由协作方产生一个位于[1,n-1]之间的随机数k1,并计算Q1=k1[*]W1
3)调用方生成待签名消息M的消息摘要e,根据Q1、W2和e生成第二部分签名r,并根据D2生成第三部分签名s2,将s2发送给协作方;
其中,第二部分签名r的生成过程如下:
调用方产生两个位于[1,n-1]之间的随机数k2、k3,并计算k2[*]G[+]Q1[+]k3[*]W2,得到计算结果(x1,y1),即:k2∈[1,n-1];k3∈[1,n-1];(x1,y1)=k2[*]G[+]Q1[+]k3[*]W2,其中,[+]表示椭圆曲线点加运算,[*]表示椭圆曲线点乘运算;
调用方计算x1+e mod n,将计算结果作为r,即:r=x1+e mod n;若r等于0,则调用方重新产生随机数k2、k3,并重新计算(x1,y1)和r,直到r不等于0为止;
第三部分签名s2的生成过程如下:
s2=D2*(r+k2)mod n;
4)协作方根据D1和s2生成第四部分签名s1,并返回给调用方;s1=k1+D1*s2mod n;
5)调用方根据r和s1生成完整签名(r,s)并输出,其中,s=s1+k3-r mod n;若s等于0或等于n-r,则重新产生k3,并重新执行相关步骤并计算s。
其中,签名生成模块中步骤3)调用方生成待签名消息M的消息摘要e采用以下方法:将Z和M拼接形成M',并计算Hash(M'),将计算结果作为e,即:M'=Z||M,||表示拼接;e=Hash(M');其中,Z表示调用方和协作方共同的身份标识,Hash()表示预设的密码杂凑函数。
应当理解的是,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,而所有这些改进和变换都应属于本发明所附权利要求的保护范围。

Claims (7)

1.一种支持信息隐藏的协同签名方法,参与方包括调用方和协作方,其特征在于,包括以下步骤:
1)签名参数初始化
产生整个签名过程中所需的公开参数;所述参数包括:SM2算法的椭圆曲线相关参数(q,Fq,n,G)、密码杂凑函数Hash();
其中,q为大素数,Fq为包含q个元素的有限域,n为素数,G为椭圆曲线的一个基点,其阶为n;
2)生成调用方和协作方的密钥,所述密钥包括:协作方的私钥、协作方的公钥、调用方的私钥、调用方的公钥和用户公钥;
2.1)协作方产生一个位于[1,n-1]之间的随机数D1,将产生的随机数D1作为协作方的私钥;
协作方计算D1在Fq上的逆元D1-1mod n;计算对应的公钥P1=D1 -1[*]G,将计算结果P1发送给调用方;其中,mod表示求模运算,[*]表示椭圆曲线点乘运算;
2.2)调用方产生一个位于[1,n-1]之间的随机数D2作为私钥,计算D2在Fq上的逆元D2 - 1mod n;计算对应的公钥P2=D2 -1[*]G,将计算结果P2发送给协作方;
2.3)协作方计算W1=D1 -1[*]P2,存储计算结果W1;协作方计算P=W1[-]G,将计算结果P作为用户公钥公开;其中,[-]表示椭圆曲线点减运算;
2.4)调用方计算W2=D2 -1[*]P1,存储计算结果W2,调用方计算P=W2[-]G将计算结果P作为公钥;
3)生成签名过程
3.1)调用方发起协同签名请求;
3.2)协作方在接收到调用方发起的协同签名请求时,根据W1生成第一部分签名Q1,并将Q1返回给调用方;其中,第一部分签名Q1由协作方产生一个位于[1,n-1]之间的随机数k1,并计算Q1=k1[*]W1
3.3)调用方生成待签名消息M的消息摘要e,根据Q1、W2和e生成第二部分签名r,并根据D2和r生成第三部分签名s2,将s2发送给协作方;
3.4)协作方根据D1和s2生成第四部分签名s1,并返回给调用方;s1=k1+D1*s2mod n;
3.5)调用方根据r和s1计算s,生成完整签名(r,s)并输出。
2.根据权利要求1所述的支持信息隐藏的协同签名方法,其特征在于,所述步骤3.3)调用方生成待签名消息M的消息摘要e采用以下方法:将Z和M拼接形成M',并计算Hash(M'),将计算结果作为e,即:M'=Z| |M,| |表示拼接;e=Hash(M');其中,Z表示调用方和协作方共同的身份标识,Hash()表示预设的密码杂凑函数。
3.根据权利要求1所述的支持信息隐藏的协同签名方法,其特征在于,所述步骤3.3)中第二部分签名r的生成过程如下:
调用方产生两个位于[1,n-1]之间的随机数k2、k3,并计算k2[*]G[+]Q1[+]k3[*]W2,得到计算结果(x1,y1),即:k2∈[1,n-1];k3∈[1,n-1];(x1,y1)=k2[*]G[+]Q1[+]k3[*]W2,其中,[+]表示椭圆曲线点加运算,[*]表示椭圆曲线点乘运算;
调用方计算x1+e mod n,将计算结果作为r,即:r=x1+e mod n;若r等于0,则调用方重新产生随机数k2、k3,并重新计算(x1,y1)和r,直到r不等于0为止。
4.根据权利要求3所述的支持信息隐藏的协同签名方法,其特征在于,所述步骤3.3)中第三部分签名s2的生成过程如下:
s2=D2*(r+k2)mod n。
5.根据权利要求3所述的支持信息隐藏的协同签名方法,其特征在于,所述步骤3.3)中s的计算过程如下:s=s1+k3-r mod n;若s等于0或等于n-r,则重新产生k3,并重新执行相关步骤并计算s。
6.一种支持信息隐藏的协同签名系统,参与方包括调用方和协作方,其特征在于,包括:
签名参数初始化模块,用于产生整个签名过程中所需的公开参数;所述参数包括:SM2算法的椭圆曲线相关参数(q,Fq,n,G)、密码杂凑函数Hash();
其中,q为大素数,Fq为包含q个元素的有限域,n为素数,G为椭圆曲线的一个基点,其阶为n;
密钥生成模块,用于生成调用方和协作方的密钥;具体过程如下:
1)协作方产生一个位于[1,n-1]之间的随机数D1,将产生的随机数D1作为协作方的私钥;
协作方计算D1在Fq上的逆元D1-1mod n;计算对应的公钥P1=D1 -1[*]G,将计算结果P1发送给调用方;其中,mod表示求模运算,[*]表示椭圆曲线点乘运算;
2)调用方产生一个位于[1,n-1]之间的随机数D2作为私钥,计算D2在Fq上的逆元D2 -1modn;计算对应的公钥P2=D2 -1[*]G,将计算结果P2发送给协作方;
3)协作方计算W1=D1 -1[*]P2,存储计算结果W1;协作方计算P=W1[-]G,将计算结果P作为公钥公开;其中,[-]表示椭圆曲线点减运算;
4)调用方计算W2=D2 -1[*]P1,存储计算结果W2,调用方计算P=W2[-]G将计算结果P作为公钥;
签名生成模块,用于生成待签名消息M的签名;过程如下:
1)调用方发起协同签名请求;
2)协作方在接收到调用方发起的协同签名请求时,根据W1生成第一部分签名Q1,并将Q1返回给调用方;其中,第一部分签名Q1由协作方产生一个位于[1,n-1]之间的随机数k1,并计算Q1=k1[*]W1
3)调用方生成待签名消息M的消息摘要e,根据Q1、W2和e生成第二部分签名r,并根据D2生成第三部分签名s2,将s2发送给协作方;
其中,第二部分签名r的生成过程如下:
调用方产生两个位于[1,n-1]之间的随机数k2、k3,并计算k2[*]G[+]Q1[+]k3[*]W2,得到计算结果(x1,y1),即:k2∈[1,n-1];k3∈[1,n-1];(x1,y1)=k2[*]G[+]Q1[+]k3[*]W2,其中,[+]表示椭圆曲线点加运算,[*]表示椭圆曲线点乘运算;
调用方计算x1+e mod n,将计算结果作为r,即:r=x1+e mod n;若r等于0,则调用方重新产生随机数k2、k3,并重新计算(x1,y1)和r,直到r不等于0为止;
第三部分签名s2的生成过程如下:
s2=D2*(r+k2)mod n;
4)协作方根据D1和s2生成第四部分签名s1,并返回给调用方;s1=k1+D1*s2mod n;
5)调用方根据r和s1生成完整签名(r,s)并输出,其中,s=s1+k3-r mod n;若s等于0或等于n-r,则重新产生k3,并重新执行相关步骤并计算s。
7.根据权利要求6所述的支持信息隐藏的协同签名系统,其特征在于,所述签名生成模块中步骤3)调用方生成待签名消息M的消息摘要e采用以下方法:将Z和M拼接形成M',并计算Hash(M'),将计算结果作为e,即:M'=Z| |M,| |表示拼接;e=Hash(M');其中,Z表示调用方和协作方共同的身份标识,Hash()表示预设的密码杂凑函数。
CN201910657002.0A 2019-07-19 2019-07-19 一种支持信息隐藏的协同签名方法与系统 Active CN110535635B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910657002.0A CN110535635B (zh) 2019-07-19 2019-07-19 一种支持信息隐藏的协同签名方法与系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910657002.0A CN110535635B (zh) 2019-07-19 2019-07-19 一种支持信息隐藏的协同签名方法与系统

Publications (2)

Publication Number Publication Date
CN110535635A true CN110535635A (zh) 2019-12-03
CN110535635B CN110535635B (zh) 2022-06-17

Family

ID=68660670

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910657002.0A Active CN110535635B (zh) 2019-07-19 2019-07-19 一种支持信息隐藏的协同签名方法与系统

Country Status (1)

Country Link
CN (1) CN110535635B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110971405A (zh) * 2019-12-06 2020-04-07 支付宝(杭州)信息技术有限公司 多方协同的sm2签名、解密方法及其系统
CN113259109A (zh) * 2020-02-11 2021-08-13 旭尔权(北京)科技有限公司 一种用于签发隐式数字证书的协作式计算方法和系统
CN113765670A (zh) * 2020-06-03 2021-12-07 成都天瑞芯安科技有限公司 无证书的可信任密钥生成方法与系统
CN114079564A (zh) * 2020-08-11 2022-02-22 旭尔权(北京)科技有限公司 向两方协作式用户部件签发隐式数字证书的计算方法和系统
CN114205081A (zh) * 2021-12-03 2022-03-18 中国科学院大学 一种保护用户隐私的盲协同签名方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100169653A1 (en) * 2008-12-26 2010-07-01 Fujitsu Limited Apparatus, method, and program for digital signature
CN107196763A (zh) * 2017-07-06 2017-09-22 数安时代科技股份有限公司 Sm2算法协同签名及解密方法、装置与系统
CN108989047A (zh) * 2018-07-19 2018-12-11 郑州信大捷安信息技术股份有限公司 一种基于sm2算法的通信双方协同签名方法与系统
CN109245903A (zh) * 2018-09-29 2019-01-18 北京信安世纪科技股份有限公司 双方协同生成sm2算法的签名方法、装置及存储介质
CN109818730A (zh) * 2019-03-06 2019-05-28 矩阵元技术(深圳)有限公司 盲签名的获取方法、装置和服务器
WO2019137566A2 (en) * 2019-04-29 2019-07-18 Alibaba Group Holding Limited Methods and devices for validating transaction in blockchain system

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100169653A1 (en) * 2008-12-26 2010-07-01 Fujitsu Limited Apparatus, method, and program for digital signature
CN107196763A (zh) * 2017-07-06 2017-09-22 数安时代科技股份有限公司 Sm2算法协同签名及解密方法、装置与系统
CN108989047A (zh) * 2018-07-19 2018-12-11 郑州信大捷安信息技术股份有限公司 一种基于sm2算法的通信双方协同签名方法与系统
CN109245903A (zh) * 2018-09-29 2019-01-18 北京信安世纪科技股份有限公司 双方协同生成sm2算法的签名方法、装置及存储介质
CN109818730A (zh) * 2019-03-06 2019-05-28 矩阵元技术(深圳)有限公司 盲签名的获取方法、装置和服务器
WO2019137566A2 (en) * 2019-04-29 2019-07-18 Alibaba Group Holding Limited Methods and devices for validating transaction in blockchain system

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
XU MIN ETAL.: "Secure Communication and the Leak Proof Positioning Technology of Wireless Sensor Based on Region Partition", 《INTERNATIONAL CONFERENCE ON ELECTROMECHANICAL CONTROL TECHNOLOGY AND TRANSPORTATION》 *
中国国家标准化委员会: "SM2密码算法使用规范", 《中华人民共和国国家标准》 *
侍伟敏: "一种有效的基于身份的隐藏签名认证方案", 《华中科技大学学报(自然科学版)》 *
陈亚萌: "基于双线性对的无证书群签名方案的研究", 《中国优秀硕士学位论文全文数据库 (信息科技辑)》 *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110971405A (zh) * 2019-12-06 2020-04-07 支付宝(杭州)信息技术有限公司 多方协同的sm2签名、解密方法及其系统
CN110971405B (zh) * 2019-12-06 2022-06-14 支付宝(杭州)信息技术有限公司 多方协同的sm2签名、解密方法及其系统
CN113259109A (zh) * 2020-02-11 2021-08-13 旭尔权(北京)科技有限公司 一种用于签发隐式数字证书的协作式计算方法和系统
CN113765670A (zh) * 2020-06-03 2021-12-07 成都天瑞芯安科技有限公司 无证书的可信任密钥生成方法与系统
CN113765670B (zh) * 2020-06-03 2024-01-26 成都天瑞芯安科技有限公司 无证书的可信任密钥生成方法与系统
CN114079564A (zh) * 2020-08-11 2022-02-22 旭尔权(北京)科技有限公司 向两方协作式用户部件签发隐式数字证书的计算方法和系统
CN114205081A (zh) * 2021-12-03 2022-03-18 中国科学院大学 一种保护用户隐私的盲协同签名方法
CN114205081B (zh) * 2021-12-03 2023-12-19 中国科学院大学 一种保护用户隐私的盲协同签名方法

Also Published As

Publication number Publication date
CN110535635B (zh) 2022-06-17

Similar Documents

Publication Publication Date Title
CN110535635A (zh) 一种支持信息隐藏的协同签名方法与系统
CN104243456B (zh) 适用于云计算的基于sm2算法的签名及解密方法和系统
CN108989047B (zh) 一种基于sm2算法的通信双方协同签名方法与系统
CN109309569B (zh) 基于sm2算法的协同签名的方法、装置及存储介质
CN108667625B (zh) 协同sm2的数字签名方法
CN110099048B (zh) 一种云存储方法及设备
CN110365487A (zh) 一种基于sm2算法的协同签名方法与装置
EP1049289A1 (en) Public-key signature methods and systems
CA2308170A1 (en) Masked digital signatures
CN107302438A (zh) 一种基于密钥更新的私钥保护方法、系统及装置
CN108650087A (zh) 一种二进制域F2m下的SM2椭圆曲线签名点乘加密方法
CN108900309B (zh) 一种鉴权方法及鉴权系统
CN109743166A (zh) 多方签名生成方法及安全信息验证系统
CN113742670B (zh) 多方协同解密方法和装置
CN111464315A (zh) 数字签名处理方法、装置、计算机设备以及存储介质
CN110535636B (zh) 一种轻量级的基于sm2算法的协同签名方法与装置
CN112632630A (zh) 一种基于sm2的协同签名计算方法及装置
CN107395627B (zh) 一种基于单向函数的轻量级认证协议
CN115174116A (zh) 一种数据包签名与验签系统
Zhao et al. Fuzzy identity-based dynamic auditing of big data on cloud storage
CN111865602B (zh) 一种智慧能源服务系统异构终端多方认证方法及系统
CN111614462B (zh) 一种基于区块链的密钥计算方法及系统
CA2981202A1 (en) Hashed data retrieval method
CN108964899B (zh) 一种动态公式及多同步动态密码的计时加密的方法、装置
CN110943826B (zh) 一种基于sm2算法的拆分密钥签名方法与系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant