CN110011803B - 一种轻量级sm2两方协同生成数字签名的方法 - Google Patents

一种轻量级sm2两方协同生成数字签名的方法 Download PDF

Info

Publication number
CN110011803B
CN110011803B CN201910147366.4A CN201910147366A CN110011803B CN 110011803 B CN110011803 B CN 110011803B CN 201910147366 A CN201910147366 A CN 201910147366A CN 110011803 B CN110011803 B CN 110011803B
Authority
CN
China
Prior art keywords
participant
signature
party
mod
zero knowledge
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.)
Active
Application number
CN201910147366.4A
Other languages
English (en)
Other versions
CN110011803A (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.)
Wuhan University WHU
Original Assignee
Wuhan University WHU
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 Wuhan University WHU filed Critical Wuhan University WHU
Priority to CN201910147366.4A priority Critical patent/CN110011803B/zh
Publication of CN110011803A publication Critical patent/CN110011803A/zh
Application granted granted Critical
Publication of CN110011803B publication Critical patent/CN110011803B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/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/085Secret sharing or secret splitting, e.g. threshold schemes
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3218Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • H04L9/3252Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures using DSA or related signature schemes, e.g. elliptic based signatures, ElGamal or Schnorr schemes

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明公开了一种轻量级SM2两方协同生成数字签名的方法,参与两方为P1,P2,包括以下步骤:1)签名参数初始化;2)生成分布式密钥:生成参与方P1,P2的签名私钥,签名验证公钥;3)生成分布式签名:该步骤主要用于参与方P1,P2联合生成消息m的数字签名(r,s)。本发明方法采用预计算的方法,极大地减轻了两方联合生成SM2数字签名的计算开销,实现高效的SM2两方协同数字签名,同时在参与签名的各方之间保证安全性、隐私性和公平性。

Description

一种轻量级SM2两方协同生成数字签名的方法
技术领域
本发明涉及信息安全技术,尤其涉及一种轻量级SM2两方协同生成数字签 名的方法。
背景技术
数字签名是数字化环境下对传统手写签名的模拟,在身份认证、数据完整 性、不可否认性以及匿名性等方面有重要应用,通常使用公钥密码体制实现。 用户使用签名私钥生成消息的签名,验证者通过公钥验证签名的合法性。签名 的安全性完全依赖于签名私钥的安全性。
但是在移动互联网的应用背景下,签名私钥的存储安全无法保证,因此催 生了关于拆分私钥,联合签名的数字签名的研究。
针对此类问题,比较常见的解决方法是使用门限秘密共享来实现数字签名。 在这种方法中,完整私钥被分割为n个部分私钥并安全地分给n个参与方掌管。 当需要签名消息时,n个参与者中的t个及以上可以重构私钥,少于t个参与者 无法获得关于完整私钥的任何信息。但是,一旦私钥被恢复,持有完整私钥的 一方就可以在其他参与方不知晓的情况下独立地签名消息,对系统的安全性造 成巨大威胁。
SM2是国家密码管理局于2010年12月颁布的一种椭圆曲线公钥密码算法 (参见《SM2椭圆曲线公钥密码算法》规范)。基于此算法能实现数字签名、密钥 交换以及数据加密。本专利提出的两方联合生成SM2数字签名的方法与系统, 任何一方都无法重构私钥,且整个签名过程需保证两个参与方同时在线,避免 了私钥泄露的风险,实现了签名的安全性和公平性。
发明内容
本发明要解决的技术问题在于针对现有技术中的性能缺陷,提供一种轻量 级SM2两方协同生成数字签名的方法。
本发明解决其技术问题所采用的技术方案是:一种轻量级SM2两方协同生 成数字签名的方法,参与两方为P1,P2,包括以下步骤:
步骤1)签名参数初始化:产生整个签名系统所需的公开参数;所述参数包 括:椭圆曲线相关参数(q,Fq,a,b,n,G)、密码杂凑函数h(·);
其中,q为大素数,Fq为包含q个元素的有限域,a,b为Fq中的元素,用于 定义Fq上的一条椭圆曲线,n为素数,G为椭圆曲线的一个基点,其阶为n;
步骤2)生成分布式密钥:生成参与方P1,P2的签名私钥,签名验证公钥; 具体如下:
2.1)参与方P1在Zn中随机选取一个整数x1作为自己的签名私钥,并分别通 过公式(1),(2)计算中间变量X1,零知识证明
Figure BDA0001980445770000031
参与方P1
Figure BDA0001980445770000032
发送 给参与方P2
计算公式如下:
Figure BDA0001980445770000033
其中,G为椭圆曲线的一个基点,
Figure BDA0001980445770000034
用于生成关于x1是X1的一个椭圆曲线 离散对数这个称述的零知识证明
Figure BDA0001980445770000035
2.2)参与方P2在Zn中随机选取一个整数x2作为自己的签名私钥,并分别通 过公式(3),(4)计算中间变量X2,零知识证明
Figure BDA0001980445770000036
参与方P2
Figure BDA0001980445770000037
发送 给参与方P1
计算公式如下:
Figure BDA0001980445770000038
其中,
Figure BDA0001980445770000039
用于证明x2是关于X2的一个椭圆曲线离散对数;
2.3)参与方P1验证零知识证明
Figure BDA00019804457700000310
是否合法,验证通过则通过公式(5)计算 签名验证公钥
Figure BDA00019804457700000311
Figure BDA0001980445770000041
步骤2.4)同样地,参与方P2验证零知识证明
Figure BDA0001980445770000042
是否合法,验证通过则通 过公式(5)计算签名验证公钥Ppub
Figure BDA0001980445770000043
2.5)参与方P1在Zn中随机选取两个整数a1,b1;参与方P2在Zn中随机选取 两个整数a2,b2
2.6)参与方P1,P2通过相关运算(如同态操作或不经意传输等方法)分别 获得加法分量z1,z2,使其满足z1+z2=(a1+a2)·(b1+b2)mod n;
步骤3)生成分布式签名:该步骤主要用于参与方P1,P2联合生成消息m的 数字签名(r,s)。具体过程如下:
3.1)参与方P1在Zn中随机选取两个整数k1,ρ1,并分别通过公式(6),(7)计 算中间变量R1,零知识证明
Figure BDA0001980445770000044
参与方P1
Figure BDA0001980445770000045
发送给参与方P2
Figure BDA0001980445770000046
其中,
Figure BDA0001980445770000047
用于证明k1是关于R1的一个椭圆曲线离散对数;
3.2)参与方P2在Zn中随机选取两个整数k2,ρ2,并分别通过公式(8),(9)计 算中间变量R2,零知识证明
Figure BDA0001980445770000048
参与方P2
Figure BDA0001980445770000049
发送给参与方P1
Figure BDA0001980445770000051
其中,
Figure BDA0001980445770000052
用于证明k2是关于R2的一个椭圆曲线离散对数;
3.3)参与方P1验证零知识证明
Figure BDA0001980445770000053
是否合法,验证通过则使用公式 (10)~(15)分别计算中间变量R,r,δ1,u1,v1,w1;参与方P1将(u1,v1,w1)发送给 参与方P2
计算公式如下:
Figure BDA0001980445770000054
Figure BDA0001980445770000055
v1=δ1-a1mod n(14),w1=ρ1-b1mod n(15)
其中,e为密码杂凑函数h(·)作用于消息m的输出,即e=h(m);rx为R的横 坐标,r为SM2签名的第一部分;
3.4)参与方P2验证零知识证明
Figure BDA0001980445770000056
是否合法,验证通过则使用公式 (10)~(11),(16)~(19)分别计算中间变量R,r,δ2,u2,v2,w2;参与方P2将 (u2,v2,w2)发送给参与方P1
计算公式如下:
Figure BDA0001980445770000057
Figure BDA0001980445770000058
v2=δ2-a2mod n(18),w2=ρ2-b2mod n(19)
3.5)参与方P1使用公式(20)~(24)分别计算中间变量u,v,w,α1,β1; 参与方P1将(α1,β1)发送给参与方P2
计算公式如下:
u=u1+u2mod n(20),v=v1+v2mod n(21)
w=w1+w2mod n(22),
α1=x1w+ρ1u+z1-uw mod n(23)
β1=δ1w+ρ1v+z1-vw mod n(24)
3.6)参与方P2使用公式(20)~(22),(25)~(26)分别计算中间变量u,v,w,α2, β2;参与方P2将(α2,β2)发送给参与方P1
计算公式如下:
u=u1+u2mod n(20),v=v1+v2mod n(21)
w=w1+w2mod n(22),α2=x2w+ρ2u+z2mod n(25)
β2=δ2w+ρ2v+z2mod n(26)
3.7)参与方P1通过公式(27)计算s′,为了保证最终结果的一致性,参与方P1选择s′,n-s′中的较小值作为最后SM2签名的第二部分,即s=min{s′,n-s′};
s′=(α12)-112)-r mod n(27)
步骤3.8)参与方P2通过公式(27)计算s′;为了保证最终结果的一致性, 参与方P2选择s′,n-s′中的较小值作为最后SM2签名的第二部分,即 s=min{s′,n-s′};
s′=(α12)-112)-r mod n(27)
步骤3.9)参与方P1更新a1,b1,z1,即分别令a1=k1,b1=ρ1,z1=α1, 更新后的a1,b1,z1参与下一次的签名过程;
步骤3.10)参与方P2更新a2,b2,z2,即分别令a2=k2,b2=ρ2,z2=α2,更新 后的a2,b2,z2参与下一次的签名过程。
按上述方案,在参与方P1,P2的通信过程中,各参与方使用零知识证明来证 明发送的数据是来自发送方。
本发明产生的有益效果是:
1.本发明实现了两方联合生成SM2数字签名,任何一方都无法得到完整的 签名私钥,且签名过程中所有参与方必须同时在线,这样实现了签名的安全性 和公平性。
2.本发明基于数学难题,保证即使有一方的私钥丢失,也不会泄露关于完 整私钥或其他参与方持有的部分私钥的任何信息。
附图说明
下面将结合附图及实施例对本发明作进一步说明,附图中:
图1是本发明实施例的分布式密钥生成方法流程示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例, 对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解 释本发明,并不用于限定本发明。
如图1所示,本发明提出了一种基于两方联合的SM2数字签名方法,下面 给出具体描述。
符号及定义:
P1,P2:两个参与方;
q:大素数;
Fq:包含q个元素的有限域;
a,b:Fq中的元素,用于定义Fq上的一条椭圆曲线;
n:大素数;
G:椭圆曲线的一个基点,其阶为n;
,l-G:椭圆曲线的一个基点G的l倍点。即,
Figure BDA0001980445770000081
l是正整 数;
x1,x2:参与方的签名私钥;
Ppub:签名验证公钥;
Figure BDA0001980445770000091
用于生成关于离散对数关系称述的零知识证明算法;
Figure BDA0001980445770000092
关于离散对数关系的零知识证明;
(pk,sk):同态加密算法的公私钥;
Encpk:同态加密操作,对应的加密密钥为pk;
Decsk:同态解密操作,对应的解密密钥为sk;
C1,C2
Figure BDA0001980445770000093
同态密文;
Figure BDA0001980445770000094
同态乘法运算,如
Figure BDA0001980445770000095
其中 c1=Encpk(m1),其算法优先级高于同态加运算
Figure BDA0001980445770000096
Figure BDA0001980445770000097
同态加法运算,如
Figure BDA0001980445770000098
其中c1=Encpk(m1), c2=Encpk(m2),其算法优先级低于同态乘运算
Figure BDA0001980445770000099
m:待签名的消息;
h(·):密码杂凑函数;
e:密码杂凑函数作用于消息m的输出,即e=h(m);
(r,s):SM2签名值;
a1,a2,b1,b2,γ1,γ2,k1,k2,ρ1,ρ2:从Zn中选取的随机数;
X1,X2,R1,R2,R,δ1,δ2,u1,u2,v1,v2,w1,w2,u,v,w,α1, α2,β1,β2,s:中间变量;
一种两方联合生成SM2数字签名的方法的具体步骤如下:
步骤1)系统初始化:该步骤主要用于产生整个签名系统所需的公开参数。 参数包括:椭圆曲线相关参数(q,Fq,a,b,n,G)、密码杂凑函数(h(·));
具体参数符号定义参见具体实施方式中(符号及定义);
步骤2)分布式密钥生成:如图1,该步骤主要用于产生参与方P1,P2的签 名私钥,签名验证公钥。具体过程如下:
步骤2.1)参与方P1在Zn中随机选取一个整数x1作为自己的签名私钥,并分 别通过公式(1),(2)计算中间变量X1,零知识证明
Figure BDA0001980445770000101
最后,参与方P1将(X1
Figure BDA0001980445770000102
)发送给参与方P2
Figure BDA0001980445770000103
步骤2.2)参与方P2在Zn中随机选取一个整数x2作为自己的签名私钥,并分 别通过公式(3),(4)计算中间变量X2,零知识证明
Figure BDA0001980445770000104
最后,参与方P2将(X2
Figure BDA0001980445770000105
)发送给参与方P1
Figure BDA0001980445770000106
步骤2.3)参与方P1验证零知识证明
Figure BDA0001980445770000107
是否合法,验证通过则通过公式(5) 计算签名验证公钥Ppub
Figure BDA0001980445770000111
步骤2.4)同样地,参与方P2验证零知识证明
Figure BDA0001980445770000112
是否合法,验证通过则通 过公式(5)计算签名验证公钥Ppub
Figure BDA0001980445770000113
步骤2.5)参与方P1在Zn中随机选取两个整数a1,b1;参与方P2在Zn中随机 选取两个整数a2,b2
步骤2.6)参与方P1首先产生同态加密算法的一对公私钥(pk,sk),并公开 pk。然后,参与方P1分别通过公式(6),(7)计算同态密文C1
Figure BDA0001980445770000114
最后,参与方 P1将(C1
Figure BDA0001980445770000115
)发送给参与方P2
Figure BDA0001980445770000116
步骤2.7)参与方P2在Zn中随机选取两个整数γ1,γ2,并分别通过公式(8), (9)计算同态密文C2
Figure BDA0001980445770000117
最后,参与方P2将(C2
Figure BDA0001980445770000118
)发送给参与方P1
Figure BDA0001980445770000119
步骤2.8)参与方P1通过公式(10)计算z1
Figure BDA0001980445770000121
步骤2.9)参与方P2通过公式(11)计算z2
z2=a2b212mod n(11)
步骤3)分布式签名生成:该步骤主要用于参与方P1,P2联合生成消息m的 数字签名(r,s)。具体过程如下:
步骤3.1)参与方P1在Zn中随机选取两个整数k1,ρ1,并分别通过公式(12), (13)计算中间变量R1,零知识证明
Figure BDA0001980445770000122
最后,参与方P1将(R1
Figure BDA0001980445770000123
)发送给参 与方P2
Figure BDA0001980445770000124
步骤3.2)参与方P2在Zn中随机选取两个整数k2,ρ2,并分别通过公式 (14).(15)计算中间变量R2,零知识证明
Figure BDA0001980445770000125
最后,参与方P2将(R2
Figure BDA0001980445770000126
)发 送给参与方P1
Figure BDA0001980445770000127
步骤3.3)参与方P1验证零知识证明
Figure BDA0001980445770000128
是否合法,验证通过则分别通过公 式(16)~(21)计算中间变量R,r,δ1,u1,v1,w1。最后,参与方P1将(u1,v1, w1)发送给参与方P2
Figure BDA0001980445770000131
Figure BDA0001980445770000132
v1=δ1-a1mod n(20),w1=ρ1-b1mod n(21)
步骤3.4)参与方P2验证零知识证明
Figure BDA0001980445770000133
是否合法,验证通过则分别通过公 式(16)~(17),(22)~(25)计算中间变量R,r,δ2,u2,v2,w2。最后,参与方 P2将(u2,v2,w2)发送给参与方P1
Figure BDA0001980445770000134
Figure BDA0001980445770000135
v2=δ2-a2mod n(24),w2=ρ2-b2mod n(25)
步骤3.5)参与方P1分别通过公式(26)~(30)计算中间变量u,v,w,α1,β1。最 后,参与方P1将(α1,β1)发送给参与方P2
u=u1+u2mod n(26),v=v1+v2mod n(27)
w=w1+w2mod n(28),
α1=x1w+ρ1u+z1-uw mod n(29)
β1=δ1w+ρ1v+z1-vw mod n(30)
步骤3.6)参与方P2分别通过公式(26)~(28),(31)~(32)计算中间变量u, v,w,α2,β2。最后,参与方P2将(α2,β2)发送给参与方P1
u=u1+u2mod n(26),v=v1+v2mod n(27)
w=w1+w2mod n(28),α2=x2w+ρ2u+z2mod n(31)
β2=δ2w+ρ2v+z2mod n(32)
步骤3.7)参与方P1通过公式(33)计算s。为了保证最终结果的一致性,参 与方P1选择s,n-s′中的较小值作为最后SM2签名的第二部分,,即 s=min{s′,n-s′};
s′=(α12)-112)-r mod n(33)
步骤3.8)同样地,参与方P2通过公式(33)计算s′。为了保证最终结果的 一致性,参与方P2选择s′,n-s′中的较小值作为最后SM2签名的第二部分,,即 s=min{s′,n-s′};
s′=(α12)-112)-r mod n(33)
步骤3.9)参与方P1更新a1,b1,z1,即分别令a1=k1,b1=ρ1,z1=α1, 更新后的a1,b1,z1参与下一次的签名过程;
步骤3.10)参与方P2更新a2,b2,z2,即分别令a2=k2,b2=ρ2,z2=α2,更新 后的a2,b2,z2参与下一次的签名过程;
对于本发明,参与方P1,P2分别持有签名私钥x1,x2,任何一方都无法得到 完整的签名私钥。签名过程中参与方P1,P2必须保证同时在线,通过信息交互完 成对消息m的联合签名,任何一方都无法独立地签名消息。特别地,由于采用了 预计算的方法,双方协同产生签名的计算开销非常小,更加适合轻量级设备中 的应用。
为了使方案的安全性更高,在参与方P1,P2的通信过程中,使用了零知识证 明,例如
Figure BDA0001980445770000151
来保证发送的数据确是来自于发送方,降低了 数据被窃取或被伪造的风险,同时也可以防止有恶意参与方干扰联合签名过程。
此外,通过更新a1,b1,z1(a1,b1,z1)增加了攻击难度,进一步提高了 联合签名的安全性。离线更新方法a1=δ1,b1=ρ1,z1=β1(a2=δ2,b2=ρ2, z2=β2)减少了在线交互次数,降低了签名算法的计算开销和通信开销,提高 了签名算法的实现效率。
应当理解的是,对本领域普通技术人员来说,可以根据上述说明加以改进 或变换,而所有这些改进和变换都应属于本发明所附权利要求的保护范围。

Claims (2)

1.一种轻量级SM2两方协同生成数字签名的方法,参与两方为P1、P2,其特征在于,包括以下步骤:
步骤1)签名参数初始化:产生整个签名过程所需的公开参数;所述参数包括:椭圆曲线相关参数(q,Fq,a,b,n,G)、密码杂凑函数h(·);
其中,q为大素数,Fq为包含q个元素的有限域,a,b为Fq中的元素,用于定义Fq上的一条椭圆曲线,n为素数,G为椭圆曲线的一个基点,其阶为n;
步骤2)生成分布式密钥:生成参与方P1,P2的签名私钥,签名验证公钥;具体如下:
2.1)参与方P1在Zn中随机选取一个整数x1作为自己的签名私钥,并分别通过公式(1),(2)计算中间变量X1,零知识证明
Figure FDA0002619547770000011
参与方P1
Figure FDA0002619547770000012
发送给参与方P2
X1=[x1]G (1),
Figure FDA0002619547770000013
其中,G为椭圆曲线的一个基点,
Figure FDA0002619547770000014
用于生成关于x1是X1的一个椭圆曲线离散对数这个称述的零知识证明
Figure FDA0002619547770000015
2.2)参与方P2在Zn中随机选取一个整数x2作为自己的签名私钥,并分别通过公式(3),(4)计算中间变量X2,零知识证明
Figure FDA0002619547770000016
参与方P2
Figure FDA0002619547770000017
发送给参与方P1
X2=[x2]G (3),
Figure FDA0002619547770000021
其中,
Figure FDA0002619547770000022
用于证明x2是关于X2的一个椭圆曲线离散对数;
2.3)参与方P1验证零知识证明
Figure FDA0002619547770000023
是否合法,验证通过则通过公式(5)计算签名验证公钥Ppub;参与方P2验证零知识证明
Figure FDA0002619547770000024
是否合法,若验证通过则通过公式(5)计算签名验证公钥Ppub
Figure FDA0002619547770000025
2.4)参与方P1在Zn中随机选取两个整数a1,b1;参与方P2在Zn中随机选取两个整数a2,b2;Zn为整数0,1,...,n-1组成的集合;
2.5)参与方P1,P2通过同态操作或不经意传输运算分别获得加法分量z1,z2,使其满足z1+z2=(a1+a2)·(b1+b2)mod n;
步骤3)生成分布式签名:该步骤用于参与方P1,P2联合生成消息m的数字签名(r,s);具体过程如下:
3.1)参与方P1在Zn中随机选取两个整数k1,ρ1,并分别通过公式(6),(7)计算中间变量R1,零知识证明
Figure FDA0002619547770000026
参与方P1
Figure FDA0002619547770000027
发送给参与方P2
R1=[k1]G (6),
Figure FDA0002619547770000028
其中,
Figure FDA0002619547770000029
用于证明k1是关于R1的一个椭圆曲线离散对数;
3.2)参与方P2在Zn中随机选取两个整数k2,ρ2,并分别通过公式(8),(9)计算中间变量R2,零知识证明
Figure FDA00026195477700000210
参与方P2
Figure FDA00026195477700000211
发送给参与方P1
R2=[k2]G (8),
Figure FDA0002619547770000031
其中,
Figure FDA0002619547770000032
用于证明k2是关于R2的一个椭圆曲线离散对数;
3.3)参与方P1验证零知识证明
Figure FDA0002619547770000033
是否合法,验证通过则使用公式(10)~(15)分别计算中间变量R,r,δ1,u1,v1,w1;参与方P1将(u1,v1,w1)发送给参与方P2
计算公式如下:
Figure FDA0002619547770000034
r=e+rx mod n (11)
Figure FDA0002619547770000035
u1=x1-a1 mod n (13)
v1=δ1-a1 mod n (14),w1=ρ1-b1 mod n (15)
其中,e为密码杂凑函数h(·)作用于消息m的输出,即e=h(m);rx为R的横坐标,r为SM2签名的第一部分;
3.4)参与方P2验证零知识证明
Figure FDA0002619547770000036
是否合法,验证通过则使用公式(10)~(11),(16)~(19)分别计算中间变量R,r,δ2,u2,v2,w2;参与方P2将(u2,v2,w2)发送给参与方P1
计算公式如下:
Figure FDA0002619547770000037
u2=x2-a2 mod n (17)
v2=δ2-a2 mod n (18),w2=ρ2-b2 mod n (19)
3.5)参与方P1使用公式(20)~(24)分别计算中间变量u,v,w,α1,β1;参与方P1将(α1,β1)发送给参与方P2
计算公式如下:
u=u1+u2 mod n (20),v=v1+v2 mod n (21)
w=w1+w2 mod n (22),
α1=x1w+ρ1u+z1-uw mod n (23)
β1=δ1w+ρ1v+z1-vw mod n (24)
3.6)参与方P2使用公式(20)~(22),(25)~(26)分别计算中间变量u,v,w,α2,β2;参与方P2将(α2,β2)发送给参与方P1
计算公式如下:
α2=x2w+ρ2u+z2 mod n (25)
β2=δ2w+ρ2v+z2 mod n (26)
3.7)参与方P1通过公式(27)计算s′,为了保证最终结果的一致性,参与方P1选择s′和n-s′中的较小值作为SM2签名的第二部分,即s=min{s′,n-s′};
s′=(α12)-112)-r mod n (27)
3.8)参与方P2通过公式(27)计算s′;为了保证最终结果的一致性,参与方P2选择s′和n-s′中的较小值作为SM2签名的第二部分,即s=min{s′,n-s′};
3.9)参与方P1更新a1,b1,z1,即分别令a1=k1,b1=ρ1,z1=α1,更新后的a1,b1,z1参与下一次的签名过程;
3.10)参与方P2更新a2,b2,z2,即分别令a2=k2,b2=ρ2,z2=α2,更新后的a2,b2,z2参与下一次的签名过程。
2.根据权利要求1所述的轻量级SM2两方协同生成数字签名的方法,其特征在于,所述步骤2)和步骤3)中,在参与方P1,P2的通信过程中,各参与方使用零知识证明来证明发送的数据是来自发送方。
CN201910147366.4A 2019-02-27 2019-02-27 一种轻量级sm2两方协同生成数字签名的方法 Active CN110011803B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910147366.4A CN110011803B (zh) 2019-02-27 2019-02-27 一种轻量级sm2两方协同生成数字签名的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910147366.4A CN110011803B (zh) 2019-02-27 2019-02-27 一种轻量级sm2两方协同生成数字签名的方法

Publications (2)

Publication Number Publication Date
CN110011803A CN110011803A (zh) 2019-07-12
CN110011803B true CN110011803B (zh) 2020-10-30

Family

ID=67166127

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910147366.4A Active CN110011803B (zh) 2019-02-27 2019-02-27 一种轻量级sm2两方协同生成数字签名的方法

Country Status (1)

Country Link
CN (1) CN110011803B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111010285B (zh) * 2019-11-25 2023-04-18 武汉大学 一种适用于轻量级客户端的sm2两方协同签名方法及介质
CN111224783B (zh) * 2019-11-26 2021-07-23 复旦大学 一种支持密钥刷新的两方椭圆曲线数字签名方法
CN113765670B (zh) * 2020-06-03 2024-01-26 成都天瑞芯安科技有限公司 无证书的可信任密钥生成方法与系统
CN111935067A (zh) * 2020-06-10 2020-11-13 陈瑞安 一种基于云计算技术的企业用户身份认证系统
CN112636918B (zh) * 2020-12-08 2021-06-29 无锡艾立德智能科技有限公司 一种高效的基于sm2两方协同签名方法
CN114039722A (zh) * 2021-01-26 2022-02-11 中安网脉(北京)技术股份有限公司 一种可秘密共享的隐藏身份sm2签名私钥产生装置及其方法
CN113300841B (zh) * 2021-05-25 2022-11-25 贵州大学 一种基于身份的协同签名方法及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1444167A (zh) * 2003-04-23 2003-09-24 浙江大学 一种椭圆曲线上基于公钥证书的数字签名方法
CN107707358A (zh) * 2017-10-30 2018-02-16 武汉大学 一种ec‑kcdsa数字签名生成方法及系统
CN107888380A (zh) * 2017-10-30 2018-04-06 武汉大学 一种两方分布式基于身份的rsa数字签名生成方法与系统
WO2018225053A1 (en) * 2017-06-07 2018-12-13 Bar-Ilan University Digital signing by utilizing multiple distinct signing keys, distributed between two parties

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1444167A (zh) * 2003-04-23 2003-09-24 浙江大学 一种椭圆曲线上基于公钥证书的数字签名方法
WO2018225053A1 (en) * 2017-06-07 2018-12-13 Bar-Ilan University Digital signing by utilizing multiple distinct signing keys, distributed between two parties
CN107707358A (zh) * 2017-10-30 2018-02-16 武汉大学 一种ec‑kcdsa数字签名生成方法及系统
CN107888380A (zh) * 2017-10-30 2018-04-06 武汉大学 一种两方分布式基于身份的rsa数字签名生成方法与系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Privacy-preserving auditing scheme for shared data in public clouds;Wu Libing;《The Journal of Supercomputing (2018)》;20180813;全文 *

Also Published As

Publication number Publication date
CN110011803A (zh) 2019-07-12

Similar Documents

Publication Publication Date Title
CN110011803B (zh) 一种轻量级sm2两方协同生成数字签名的方法
CN107707358B (zh) 一种ec-kcdsa数字签名生成方法及系统
CN108667626B (zh) 安全的两方协作sm2签名方法
CN110011802B (zh) 一种高效的sm9两方协同生成数字签名的方法及系统
CN109474422B (zh) 一种多方协同产生sm2数字签名的方法
CN109660361B (zh) 一种对称环境下多方联合生成sm9数字签名的方法
CN107634836B (zh) 一种sm2数字签名生成方法及系统
CN107733648B (zh) 一种基于身份的rsa数字签名生成方法及系统
CN109194478B (zh) 一种非对称环境下多方联合生成sm9数字签名的方法
CN107947913B (zh) 一种基于身份的匿名认证方法与系统
CN108667625B (zh) 协同sm2的数字签名方法
CN108667627B (zh) 基于两方协同的sm2数字签名方法
CN109639439B (zh) 一种基于两方协同的ecdsa数字签名方法
CN110138567B (zh) 一种基于ecdsa的协同签名方法
CN110414981B (zh) 一种支持ZKPs的同态加密方法和区块链交易金额加密方法
CN109547199B (zh) 一种多方联合生成sm2数字签名的方法
CN111010285B (zh) 一种适用于轻量级客户端的sm2两方协同签名方法及介质
CN111030821B (zh) 一种基于双线性映射技术的联盟链的加密方法
Mu et al. Secure two-party SM9 signing
CN113132104A (zh) 一种主动安全的ecdsa数字签名两方生成方法
CN110943845A (zh) 一种轻量级两方协同产生sm9签名的方法及介质
Shankar et al. Improved Multisignature Scheme for Authenticity of Digital Document in Digital Forensics Using Edward‐Curve Digital Signature Algorithm
CN107682158B (zh) 一种可托管的认证加密方法
CN110798313B (zh) 基于秘密动态共享的包含秘密的数的协同生成方法及系统
CN112383403A (zh) 一种异构环签名方法

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