CN111740837B - 一种基于sm9的分布式签名方法及*** - Google Patents
一种基于sm9的分布式签名方法及*** Download PDFInfo
- Publication number
- CN111740837B CN111740837B CN202010419426.6A CN202010419426A CN111740837B CN 111740837 B CN111740837 B CN 111740837B CN 202010419426 A CN202010419426 A CN 202010419426A CN 111740837 B CN111740837 B CN 111740837B
- Authority
- CN
- China
- Prior art keywords
- signature
- private key
- assistance data
- partial
- communication party
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3247—Cryptographic 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0866—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving user or device identifiers, e.g. serial number, physical or biometrical information, DNA, hand-signature or measurable physical characteristics
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3247—Cryptographic 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/3255—Cryptographic 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 group based signatures, e.g. ring or threshold signatures
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本发明涉及一种基于SM9的分布式签名方法及***。方法包括:密钥生成中心生成签名双线性对和用户签名私钥,将用户签名私钥拆分后分别发送给通信双方,通过通信双方相互配合共同完成数字签名,完整的签名私钥不会以明文的形式出现在签名过程中,保证绝对的安全;通信双方配合完成签名,任何一方不能单独完成签名,安全性进一步提升;物联网终端不会存储完整的签名私钥,保证私钥的绝对安全;只需要两次交互就可以完成签名运算,通信代价小。
Description
技术领域
本发明涉及信息安全技术领域,尤其涉及一种基于SM9的分布式签名方法及***。
背景技术
SM9标识密码算法在2016年被确定为国家密码行业标准(GM/T 0044-2016)。该算法是一种标识密码算法,以用户的身份信息(如序列号、手机号码、网络地址等)作为公钥,可以大大简化传统PKI/CA证书体系中繁琐的密钥管理。与传统的密码体系相比,基于SM9密码算法构建的密码***的优势在于易于管理和易于使用。***中的用户设备无需事先申请用户证书,也不需要对数字证书进行验证,大大降低了密码***的使用复杂度,非常适合海量用户群中用户之间的安全通信。
SM9的应用越来越广泛,但是在物联网环境中,终端的密钥管理存在着极大的风险,因为物联网终端多为低功耗设备,安全措施不够,容易导致密钥泄露,如果把密钥存储在物联网终端上,用户的密钥可能会被完整的窃取,给整个SM9***带来安全隐患。
发明内容
本发明所要解决的技术问题是针对现有技术存在的问题,提供一种基于SM9的分布式签名方法及***。
为解决上述技术问题,本发明实施例提供一种基于SM9的分布式签名方法,包括如下步骤:
密钥生成中心生成签名双线性对g和用户签名私钥dS,并将所述用户签名私钥dS拆分为第一签名私钥d1和第二签名私钥D2;将所述第一签名私钥d1和签名双线性对g发送给第一通信方;将所述第二签名私钥D2和签名双线性对g发送给第二通信方;
所述第一通信方利用所述签名双线性对g生成第一签名辅助数据w1,将所述第一签名辅助数据w1和待签名消息M发送给第二通信方;
所述第二通信方根据所述第一签名辅助数据w1和所述签名双线性对g生成第二签名辅助数据w2和第三签名辅助数据w3,根据所述第二签名辅助数据w2和第三签名辅助数据w3对所述待签名消息M进行密码运算,得到第一部分签名h,根据所述第一部分签名h和所述第二签名私钥D2生成第二部分签名S2和第三部分签名S3,将w2,w3,S2,S3发送给所述第一通信方;
所述第一通信方根据所述第二签名辅助数据w2和第三签名辅助数据w3对所述待签名消息M进行密码运算,得到第一部分签名h,根据所述第二部分签名S2和第三部分签名S3得到完整签名值S,得到(h,S)的标准SM9签名报文。
为解决上述技术问题,本发明实施例还提供一种基于SM9的分布式签名***,包括:密钥生成中心、第一通信方和第二通信方;
所述密钥生成中心用于生成签名双线性对g和用户签名私钥dS,并将所述用户签名私钥dS拆分为第一签名私钥d1和第二签名私钥D2;将所述第一签名私钥d1和签名双线性对g发送给第一通信方;将所述第二签名私钥D2和签名双线性对g发送给第二通信方;
所述第一通信方用于利用所述签名双线性对g生成第一签名辅助数据w1,将所述第一签名辅助数据w1和待签名消息M发送给第二通信方;
所述第二通信方用于根据所述第一签名辅助数据w1和所述签名双线性对g生成第二签名辅助数据w2和第三签名辅助数据w3,根据所述第二签名辅助数据w2和第三签名辅助数据w3对所述待签名消息M进行密码运算,得到第一部分签名h,根据所述第一部分签名h和所述第二签名私钥D2生成第二部分签名S2和第三部分签名S3,将w2,w3,S2,S3发送给所述第一通信方;
所述第一通信方还用于根据所述第二签名辅助数据w2和第三签名辅助数据w3对所述待签名消息M进行密码运算,得到第一部分签名h,根据所述第二部分签名S2和第三部分签名S3得到完整签名值S,得到(h,S)的标准SM9签名报文。
本发明的有益效果是:密钥生成中心将用户签名私钥拆分后分别发送给通信双方,通过通信双方相互配合共同完成数字签名,完整的签名私钥不会以明文的形式出现在签名过程中,保证绝对的安全;通信双方配合完成签名,任何一方不能单独完成签名,安全性进一步提升;物联网终端不会存储完整的签名私钥,保证私钥的绝对安全;只需要两次交互就可以完成签名运算,通信代价小。
本发明附加的方面及其的优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明实践了解到。
附图说明
图1为本发明实施例提供的基于SM9的分布式签名方法信令交互图。
具体实施方式
以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
分别以支持SM9标准的签名方式来详细说明具体的实施方式。
国密SM9标准定义了3个循环群,分别是G1、G2、GT,阶均为N,G1的生成元为P1,G2的生成元为P2,存在满足G1×G2→GT的映射;e(Q1,Q2)表示从G1×G2到GT的双线性对,其中Q1,Q2分别为G1和G2中的元素;H2()是由密码杂凑函数SM3派生的密码函数;[k]P表示椭圆曲线上点P的k倍点。
图1为本发明实施例提供的基于SM9的分布式签名方法信令交互图。如图1所示,该方法包括:
密钥生成中心生成签名双线性对g和用户签名私钥dS,并将所述用户签名私钥dS拆分为第一签名私钥d1和第二签名私钥D2;将所述第一签名私钥d1和签名双线性对g发送给第一通信方;将所述第二签名私钥D2和签名双线性对g发送给第二通信方;
所述第一通信方利用所述签名双线性对g生成第一签名辅助数据w1,将所述第一签名辅助数据w1和待签名消息M发送给第二通信方;
所述第二通信方根据所述第一签名辅助数据w1和所述签名双线性对g生成第二签名辅助数据w2和第三签名辅助数据w3,根据所述第二签名辅助数据w2和第三签名辅助数据w3对所述待签名消息M进行密码运算,得到第一部分签名h,根据所述第一部分签名h和所述第二签名私钥D2生成第二部分签名S2和第三部分签名S3,将w2,w3,S2,S3发送给所述第一通信方;
所述第一通信方根据所述第二签名辅助数据w2和第三签名辅助数据w3对所述待签名消息M进行密码运算,得到第一部分签名h,根据所述第二部分签名S2和第三部分签名S3得到完整签名值S,得到(h,S)的标准SM9签名报文。
为了保证用户密钥的安全,本发明实施例采用密钥分割的方式,提出一种需要两方协同签名的分布式签名方法,解决物联网终端密钥的安全存储问题。密钥生成中心生成签名双线性对和用户签名私钥,将用户签名私钥拆分后分别发送给通信双方,通过通信双方相互配合共同完成数字签名,完整的签名私钥不会以明文的形式出现在签名过程中,保证绝对的安全;通信双方配合完成签名,任何一方不能单独完成签名,安全性进一步提升;物联网终端不会存储完整的签名私钥,保证私钥的绝对安全;只需要两次交互就可以完成签名运算,通信代价小。
可选地,在一个实施例中,所述将所述用户签名私钥dS拆分为第一签名私钥d1和第二签名私钥D2,包括:
密钥生成中心生成第一签名私钥d1,d1∈[1,N-1],d1为小于N的随机数,根据所述第一签名私钥d1计算d2,d2=d1 -1*t2modN,根据d2计算获得第二签名私钥D2,D2=[d2]P1;
其中,所述用户签名私钥dS=[t2]P1,其中t2为根据用户身份标识和签名主密钥参数计算出的小于N的256比特的整数,P1为SM9循环群G1的生成元,N为SM9循环群的阶。
上述实施例中,将用户签名私钥拆分成两部分,由通信双方分别保存,完整的私钥不会出现在签名过程中,保证签名私钥的绝对安全。
可选地,在一个实施例中,所述第一通信方利用所述签名双线性对g生成第一签名辅助数据w1,包括:
所述第一通信方生成第一随机数r1∈[1,N-1],其中,N为SM9循环群的阶;
上述实施例中,通过第一签名辅助数据w1将第一随机数r1隐藏起来,保证r1不被第二通信方获取,提高签名的安全性。
可选地,在一个实施例中,所述第二通信方根据所述第一签名辅助数据w1和所述签名双线性对g生成第二签名辅助数据w2和第三签名辅助数据w3,包括:
所述第二通信方生成第二随机数r2和第三随机数r3,其中,r2,r3∈[0,N-1],其中,N为SM9循环群的阶;
上述实施例中,通过第二签名辅助数据w2和第三签名辅助数据w3将第二随机数r2和第三随机数r3隐藏起来,保证r2和r3不被第一通信方获取,提高签名的安全性。
可选地,在一个实施例中,所述根据所述第二签名辅助数据w2和第三签名辅助数据w3对所述待签名消息M进行密码运算,得到第一部分签名h,包括:
根据所述第二签名辅助数据w2和第三签名辅助数据w3生成完整辅助签名数据w,w=w2*w3;
根据所述完整辅助签名数据w对所述待签名消息M进行密码运算,得到第一部分签名h,h=H2(M||w,N),H2()是由密码杂凑函数SM3派生的密码函数,N为SM9循环群的阶。
上述实施例中,第二通信方计算第一部分签名h,无需第一通信方传递,可以减少两次通信次数。否则的话,第一通信方需要接收到第二通信方传递的第二辅助签名数据和第三签名辅助数据后,才能计算出h,然后将h传递给第二通信方。第二通信方才能继续后面的运算。同时,第一通信方也要计算第一部分签名h,这是可以保证待签名消息M没有被篡改。
可选地,在一个实施例中,所述根据所述第一部分签名h和所述第二签名私钥D2生成第二部分签名S2和第三部分签名S3,包括:
根据所述第一部分签名h和所述第二签名私钥D2生成第二部分签名S2,S2=[r3-h]D2;
根据所述第二签名私钥D2生成第三部分签名S3,S3=[r2]D2;
其中,r2代表第二随机数,r3代表第三随机数,r2,r3∈[0,N-1],N为SM9循环群的阶,[]代表点乘。
上述实施例中,第二通信方只是传递第二部分签名S2和第三部分签名S3给第一通信方,第一通信方无法得到r2、r3和D2,保证第一通信方无法得到完整的私钥。
可选地,在一个实施例中,所述根据所述第二部分签名S2和第三部分签名S3得到完整签名值S,公式如下:
S=[r1*d1]S3+[d1]S2
其中,r1代表第一随机数,r1∈[1,N-1],N为SM9循环群的阶,[]代表点乘。
上述实施例中,完整的签名值只能由第一通信方完成,即由签名发起方完成最终的签名操作,保证签名的合法性;第二通信方无法得到第一签名私钥d1,保证第二通信方无法得到完整的私钥。
具体的分布式签名流程如下:
1.初始化阶段:此阶段由密钥生成中心KGC单独完成。
a)生成完整用户签名私钥:
KGC维护签名主私钥ks和签名主公钥Ppub-s。用户身份标识为ID。
按照国家密码管理局发布的行业标准《GM/T0044-2016 SM9标识密码算法》中KGC计算用户签名私钥的标准步骤进行:
计算出用户签名私钥dS=[t2]P1,其中t2为根据用户身份标识和***主密钥等一系列参数计算出的小于N的256比特的整数。
b)用户签名私钥拆分:
KGC生成随机数d1∈[1,N-1]小于N的随机数,然后计算d2=d1 -1*t2mod N,第一签名私钥为d1,第二签名私钥为D2=[d2]P1。
c)计算签名双线性对:
***签名主公钥为Ppub-s,签名双线性对g=e(P1,Ppub-s)。
d)密钥分发:
将第一签名私钥和签名双线性对(d1,g)安全的发送给第一通信方,将第二签名私钥和签名双线性对(D2,g)安全的发送给第二通信方。
2.分布式签名阶段:由第一通信方发起签名,待签名消息为M。最终的签名由第一通信方合成。
b)第二通信方收到w1后,先生成两个随机数r2,r3∈[0,N-1]。首先计算第二签名辅助数据然后计算第三签名辅助数据/>计算出完整签名辅助数据w=w2*w3,根据w计算出第一部分签名h=H2(M||w,N),然后计算第二部分签名S2=[r3-h]D2和第三部分签名S3=[r2]D2。将(w2,w3,S2,S3)发送给第一通信方。
c)第一通信方收到(w2,w3)后,和第二通信方一样,先计算出完整签名辅助数据w=w2*w3,根据w计算出第一部分签名h=H2(M||w,N)。然后利用(S2,S3)计算出完整签名S=[r1*d1]S3+[d1]S2。
至此(h,S)即为标准的SM9签名报文。可以用用户标识进行验签。
本发明实施例还提供一种基于SM9的分布式签名***,包括:密钥生成中心、第一通信方和第二通信方;
所述密钥生成中心用于生成签名双线性对g和用户签名私钥dS,并将所述用户签名私钥dS拆分为第一签名私钥d1和第二签名私钥D2;将所述第一签名私钥d1和签名双线性对g发送给第一通信方;将所述第二签名私钥D2和签名双线性对g发送给第二通信方;
所述第一通信方用于利用所述签名双线性对g生成第一签名辅助数据w1,将所述第一签名辅助数据w1和待签名消息M发送给第二通信方;
所述第二通信方用于根据所述第一签名辅助数据w1和所述签名双线性对g生成第二签名辅助数据w2和第三签名辅助数据w3,根据所述第二签名辅助数据w2和第三签名辅助数据w3对所述待签名消息M进行密码运算,得到第一部分签名h,根据所述第一部分签名h和所述第二签名私钥D2生成第二部分签名S2和第三部分签名S3,将w2,w3,S2,S3发送给所述第一通信方;
所述第一通信方还用于根据所述第二签名辅助数据w2和第三签名辅助数据w3对所述待签名消息M进行密码运算,得到第一部分签名h,根据所述第二部分签名S2和第三部分签名S3得到完整签名值S,得到(h,S)的标准SM9签名报文。
上述实施例中,密钥生成中心将用户签名私钥拆分后分别发送给通信双方,通过通信双方共同完成数字签名,完整的签名私钥不会以明文的形式出现在签名过程中,保证绝对的安全;通信双方配合完成签名,任何一方不能单独完成签名,安全性进一步提升;物联网终端不会存储完整的签名私钥,保证私钥的绝对安全;只需要两次交互就可以完成签名运算,通信代价小。
可选地,在一个实施例中,所述密钥生成中心将所述用户签名私钥dS拆分为第一签名私钥d1和第二签名私钥D2,包括:
密钥生成中心生成随机数d1∈[1,N-1],d1为小于N的随机数,将d1作为第一签名私钥,根据所述第一签名私钥计算d2,d2=d1 -1*t2modN,根据d2计算获得第二签名私钥D2,D2=[d2]P1;
其中,所述用户签名私钥dS=[t2]P1,其中t2为根据用户身份标识和签名主密钥参数计算出的小于N的256比特的整数,P1为群G1的生成元,N为SM9循环群的阶。
可选地,在一个实施例中,所述第一通信方利用所述签名双线性对g生成第一签名辅助数据w1,包括:
所述第一通信方生成第一随机数r1∈[1,N-1],其中,N为SM9循环群的阶;
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (7)
1.一种基于SM9的分布式签名方法,其特征在于,包括如下步骤:
密钥生成中心生成签名双线性对g和用户签名私钥dS,并将所述用户签名私钥dS拆分为第一签名私钥d1和第二签名私钥D2;将所述第一签名私钥d1和签名双线性对g发送给第一通信方;将所述第二签名私钥D2和签名双线性对g发送给第二通信方;
所述第一通信方利用所述签名双线性对g生成第一签名辅助数据w1,将所述第一签名辅助数据w1和待签名消息M发送给第二通信方;
所述第二通信方根据所述第一签名辅助数据w1和所述签名双线性对g生成第二签名辅助数据w2和第三签名辅助数据w3,根据所述第二签名辅助数据w2和第三签名辅助数据w3对所述待签名消息M进行密码运算,得到第一部分签名h,根据所述第一部分签名h和所述第二签名私钥D2生成第二部分签名S2和第三部分签名S3,将w2,w3,S2,S3发送给所述第一通信方;
所述第二通信方根据所述第一签名辅助数据w1和所述签名双线性对g生成第二签名辅助数据w2和第三签名辅助数据w3,包括:
所述第二通信方生成第二随机数r2和第三随机数r3,其中,r2,r3∈[0,N-1],其中,N为SM9循环群的阶;
所述根据所述第一部分签名h和所述第二签名私钥D2生成第二部分签名S2和第三部分签名S3,包括:
根据所述第一部分签名h和所述第二签名私钥D2生成第二部分签名S2,S2=[r3-h]D2;
根据所述第二签名私钥D2生成第三部分签名S3,S3=[r2]D2;
其中,r2代表第二随机数,r3代表第三随机数,r2,r3∈[0,N-1],N为SM9循环群的阶,[]代表点乘;
所述第一通信方根据所述第二签名辅助数据w2和第三签名辅助数据w3对所述待签名消息M进行密码运算,得到第一部分签名h,根据所述第二部分签名S2和第三部分签名S3得到完整签名值S,得到(h,S)的标准SM9签名报文;
所述根据所述第二部分签名S2和第三部分签名S3得到完整签名值S,公式如下:
S=[r1*d1]S3+[d1]S2
其中,r1代表第一随机数,r1∈[1,N-1],N为SM9循环群的阶,[]代表点乘。
2.根据权利要求1所述的方法,其特征在于,所述将所述用户签名私钥dS拆分为第一签名私钥d1和第二签名私钥D2,包括:
密钥生成中心生成第一签名私钥d1,d2,d1为小于N的随机数,根据所述第一签名私钥d1计算d2,d2=d1 -1*t2 modN,根据d2计算获得第二签名私钥D2,D2=[d2]P1;
其中,所述用户签名私钥dS=[t2]P1,其中t2为根据用户身份标识和签名主密钥参数计算出的小于N的256比特的整数,P1为SM9循环群G1的生成元,N为SM9循环群的阶。
4.根据权利要求1至3任一项所述的方法,其特征在于,所述根据所述第二签名辅助数据w2和第三签名辅助数据w3对所述待签名消息M进行密码运算,得到第一部分签名h,包括:
根据所述第二签名辅助数据w2和第三签名辅助数据w3生成完整辅助签名数据w,w=w2*w3;
根据所述完整辅助签名数据w对所述待签名消息M进行密码运算,得到第一部分签名h,h=H2(M||w,N),H2()是由密码杂凑函数SM3派生的密码函数,N为SM9循环群的阶。
5.一种基于SM9的分布式签名***,其特征在于,包括:密钥生成中心、第一通信方和第二通信方;
所述密钥生成中心用于生成签名双线性对g和用户签名私钥dS,并将所述用户签名私钥dS拆分为第一签名私钥d1和第二签名私钥D2;将所述第一签名私钥d1和签名双线性对g发送给第一通信方;将所述第二签名私钥D2和签名双线性对g发送给第二通信方;
所述第一通信方用于利用所述签名双线性对g生成第一签名辅助数据w1,将所述第一签名辅助数据w1和待签名消息M发送给第二通信方;
所述第二通信方用于根据所述第一签名辅助数据w1和所述签名双线性对g生成第二签名辅助数据w2和第三签名辅助数据w3,根据所述第二签名辅助数据w2和第三签名辅助数据w3对所述待签名消息M进行密码运算,得到第一部分签名h,根据所述第一部分签名h和所述第二签名私钥D2生成第二部分签名S2和第三部分签名S3,将w2,w3,S2,S3发送给所述第一通信方;
所述第二通信方根据所述第一签名辅助数据w1和所述签名双线性对g生成第二签名辅助数据w2和第三签名辅助数据w3,包括:
所述第二通信方生成第二随机数r2和第三随机数r3,其中,r2,r3∈[0,N-1],其中,N为SM9循环群的阶;
所述根据所述第一部分签名h和所述第二签名私钥D2生成第二部分签名S2和第三部分签名S3,包括:
根据所述第一部分签名h和所述第二签名私钥D2生成第二部分签名S2,S2=[r3-h]D2;
根据所述第二签名私钥D2生成第三部分签名S3,S3=[r2]D2;
其中,r2代表第二随机数,r3代表第三随机数,r2,r3∈[0,N-1],N为SM9循环群的阶,[]代表点乘;
所述第一通信方还用于根据所述第二签名辅助数据w2和第三签名辅助数据w3对所述待签名消息M进行密码运算,得到第一部分签名h,根据所述第二部分签名S2和第三部分签名S3得到完整签名值S,得到(h,S)的标准SM9签名报文;
所述根据所述第二部分签名S2和第三部分签名S3得到完整签名值S,公式如下:
S=[r1*d1]S3+[d1]S2
其中,r1代表第一随机数,r1∈[1,N-1],N为SM9循环群的阶,[]代表点乘。
6.根据权利要求5所述的***,其特征在于,所述密钥生成中心将所述用户签名私钥dS拆分为第一签名私钥d1和第二签名私钥D2,包括:
密钥生成中心生成随机数d1∈[1,N-1],d1为小于N的随机数,将d1作为第一签名私钥,根据所述第一签名私钥计算d2,d2=d1 -1*t2 modN,根据d2计算获得第二签名私钥D2,D2=[d2]P1;
其中,所述用户签名私钥dS=[t2]P1,其中t2为根据用户身份标识和签名主密钥参数计算出的小于N的256比特的整数,P1为群G1的生成元,N为SM9循环群的阶。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010419426.6A CN111740837B (zh) | 2020-05-18 | 2020-05-18 | 一种基于sm9的分布式签名方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010419426.6A CN111740837B (zh) | 2020-05-18 | 2020-05-18 | 一种基于sm9的分布式签名方法及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111740837A CN111740837A (zh) | 2020-10-02 |
CN111740837B true CN111740837B (zh) | 2023-07-07 |
Family
ID=72647402
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010419426.6A Active CN111740837B (zh) | 2020-05-18 | 2020-05-18 | 一种基于sm9的分布式签名方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111740837B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114257374B (zh) * | 2021-12-20 | 2023-08-15 | 山东大学 | 一种用于标识密码体制的可验证安全外包计算方法及*** |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014120121A1 (en) * | 2013-01-29 | 2014-08-07 | Certicom Corp. | Modified sm2 elliptic curve signature algorithm supporting message recovery |
CN107579819A (zh) * | 2017-09-13 | 2018-01-12 | 何德彪 | 一种sm9数字签名生成方法及*** |
CN108173639A (zh) * | 2018-01-22 | 2018-06-15 | 中国科学院数据与通信保护研究教育中心 | 一种基于sm9签名算法的两方合作签名方法 |
CN110011802A (zh) * | 2019-02-27 | 2019-07-12 | 武汉大学 | 一种高效的sm9两方协同生成数字签名的方法及*** |
CN111010285A (zh) * | 2019-11-25 | 2020-04-14 | 武汉大学 | 一种适用于轻量级客户端的sm2两方协同签名方法及介质 |
-
2020
- 2020-05-18 CN CN202010419426.6A patent/CN111740837B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014120121A1 (en) * | 2013-01-29 | 2014-08-07 | Certicom Corp. | Modified sm2 elliptic curve signature algorithm supporting message recovery |
CN107579819A (zh) * | 2017-09-13 | 2018-01-12 | 何德彪 | 一种sm9数字签名生成方法及*** |
CN108173639A (zh) * | 2018-01-22 | 2018-06-15 | 中国科学院数据与通信保护研究教育中心 | 一种基于sm9签名算法的两方合作签名方法 |
CN110011802A (zh) * | 2019-02-27 | 2019-07-12 | 武汉大学 | 一种高效的sm9两方协同生成数字签名的方法及*** |
CN111010285A (zh) * | 2019-11-25 | 2020-04-14 | 武汉大学 | 一种适用于轻量级客户端的sm2两方协同签名方法及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111740837A (zh) | 2020-10-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106961336B (zh) | 一种基于sm2算法的密钥分量托管方法和*** | |
CN107579819B (zh) | 一种sm9数字签名生成方法及*** | |
CN108989053B (zh) | 一种基于椭圆曲线的无证书公钥密码体制实现方法 | |
CN107483212B (zh) | 一种双方协作生成数字签名的方法 | |
CN107634836B (zh) | 一种sm2数字签名生成方法及*** | |
CN107248909B (zh) | 一种基于sm2算法的无证书安全签名方法 | |
EP4007983A1 (en) | Systems and methods for generating signatures | |
CN107395368B (zh) | 无介质环境中的数字签名方法及解封装方法与解密方法 | |
CN108418686A (zh) | 一种多分布式的sm9解密方法与介质及密钥生成方法 | |
CN107360002B (zh) | 一种数字证书的申请方法 | |
CN107707358A (zh) | 一种ec‑kcdsa数字签名生成方法及*** | |
CN110380846B (zh) | 一种电子病历患者签名方法及*** | |
CN112383397B (zh) | 一种基于生物特征的异构签密通信方法 | |
CN113067823B (zh) | 邮件用户身份认证和密钥分发方法、***、设备及介质 | |
CN110535626B (zh) | 基于身份的量子通信服务站保密通信方法和*** | |
CN107968710A (zh) | Sm9数字签名分离交互生成方法及*** | |
CN109547199A (zh) | 一种多方联合生成sm2数字签名的方法 | |
CN109951292B (zh) | 精简的sm9数字签名分离交互生成方法及*** | |
CN107104793A (zh) | 一种数字签名生成方法及*** | |
CN109495244A (zh) | 基于对称密钥池的抗量子计算密钥协商方法 | |
JP2956709B2 (ja) | 公開鍵生成方法及び装置 | |
CN111740837B (zh) | 一种基于sm9的分布式签名方法及*** | |
CN109962783A (zh) | 基于递进计算的sm9数字签名协同生成方法及*** | |
CN110798313B (zh) | 基于秘密动态共享的包含秘密的数的协同生成方法及*** | |
CN108055134A (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 | ||
CB02 | Change of applicant information |
Address after: 100102 room 1406, 14th floor, building 2, yard 16, Guangshun North Street, Chaoyang District, Beijing Applicant after: Sanwei Xin'an Technology Co.,Ltd. Address before: 100102 room 1406, 14th floor, building 2, yard 16, Guangshun North Street, Chaoyang District, Beijing Applicant before: BEIJING SANSEC TECHNOLOGY DEVELOPMENT Co.,Ltd. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |