CN111314080B - 一种基于sm9算法的协同签名方法、装置、介质 - Google Patents
一种基于sm9算法的协同签名方法、装置、介质 Download PDFInfo
- Publication number
- CN111314080B CN111314080B CN201911286092.3A CN201911286092A CN111314080B CN 111314080 B CN111314080 B CN 111314080B CN 201911286092 A CN201911286092 A CN 201911286092A CN 111314080 B CN111314080 B CN 111314080B
- Authority
- CN
- China
- Prior art keywords
- signature
- group
- factor
- signing
- key
- 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
- 238000000034 method Methods 0.000 title claims abstract description 67
- 238000004422 calculation algorithm Methods 0.000 title claims abstract description 54
- 238000000354 decomposition reaction Methods 0.000 claims abstract description 22
- 230000006870 function Effects 0.000 claims description 20
- YBJHBAHKTGYVGT-ZKWXMUAHSA-N (+)-Biotin Chemical compound N1C(=O)N[C@@H]2[C@H](CCCCC(=O)O)SC[C@@H]21 YBJHBAHKTGYVGT-ZKWXMUAHSA-N 0.000 claims description 19
- FEPMHVLSLDOMQC-UHFFFAOYSA-N virginiamycin-S1 Natural products CC1OC(=O)C(C=2C=CC=CC=2)NC(=O)C2CC(=O)CCN2C(=O)C(CC=2C=CC=CC=2)N(C)C(=O)C2CCCN2C(=O)C(CC)NC(=O)C1NC(=O)C1=NC=CC=C1O FEPMHVLSLDOMQC-UHFFFAOYSA-N 0.000 claims description 19
- 238000004364 calculation method Methods 0.000 abstract description 5
- 230000003993 interaction Effects 0.000 abstract description 4
- 238000010586 diagram Methods 0.000 description 18
- 238000004590 computer program Methods 0.000 description 7
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 4
- 239000013307 optical fiber Substances 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 102000016550 Complement Factor H Human genes 0.000 description 1
- 108010053085 Complement Factor H Proteins 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
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
- 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
-
- 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/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3006—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
- H04L9/3033—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters details relating to pseudo-prime or prime number generation, e.g. primality test
-
- 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/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3066—Public 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
- H04L9/3073—Public 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 involving pairings, e.g. identity based encryption [IBE], bilinear mappings or bilinear pairings, e.g. Weil or Tate pairing
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computing Systems (AREA)
- General Physics & Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Physics (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Physics & Mathematics (AREA)
- Algebra (AREA)
- Storage Device Security (AREA)
Abstract
本申请公开了一种基于SM9算法的协同签名方法、装置、介质,涉及信息安全技术领域。该方法中,包括签名密钥生成设备、签名密钥因子的第一管理设备以及签名密钥因子的第二管理设备,所述签名密钥生成设备用于将基于SM9算法生成签名密钥时的t2在有限域FN上分解为第一签名密钥因子和第二签名密钥因子,并将所述第一签名密钥因子发送给所述第一管理设备,将所述第二签名密钥因子发送给第二管理设备,所述第一签名密钥因子和所述第二签名密钥因子的加和为所述t2。这样,签名密钥因子的不同管理设备通过一次数据交互实现协同签名,提供了一种计算简单且更具安全性的签名方法。
Description
技术领域
本申请涉及信息安全技术领域,尤其涉及一种基于SM9算法的协同签名方法、装置、介质。
背景技术
在公钥密码体制中,签名密钥需秘密保护,尤其当签名者为一个单位、一个组织、一个机构,乃至一个家庭等时,密钥如果仅由一个人单独保管,签名仅由一个人完成,权限过于集中,缺乏监督,容易出现安全问题或引起纠纷。因此,如何解决相关技术中关于签名的安全问题是业界重点关注的问题。
发明内容
本申请实施例提供一种基于SM9算法的协同签名方法、装置、介质,用于解决相关技术中,关于签名的安全问题。
第一方面,本申请实施例提供一种基于SM9算法的协同签名方法,应用于签名密钥生成设备,该方法包括:
获取基于SM9算法生成签名密钥时的t2;所述t2为生成所述签名密钥时的变量;
将所述t2在有限域FN上分解第一签名密钥因子和第二签名密钥因子,所述第一签名密钥因子和所述第二签名密钥因子的加和为所述t2;其中所述两个签名密钥因子为非零数;
并将所述第一签名密钥因子发送给所述第一管理设备,并将所述第二签名密钥因子发送给第二管理设备。
在一个实施例中,所述第一签名密钥因子为d1、所述第二签名密钥因子为d2;其中d1、d2为非零数;
将所述t2在有限域FN上分解第一签名密钥因子和第二签名密钥因子,所述第一签名密钥因子和所述第二签名密钥因子的加和为所述t2,包括:
根据以下公式分解所述t2:
t2=(d1+d2)mod N
其中,mod N为模N运算。
第二方面,本申请实施例提供一种基于SM9算法的协同签名方法,应用于签名密钥因子的第一管理设备,所述方法包括:
接收签名密钥生成设备发送的第一签名密钥因子;其中所述第一签名密钥因子是所述签名密钥生成设备将基于SM9算法生成签名密钥时的变量t2在有限域FN上分解得到的,并且与签名密钥因子的第二管理设备接收的第二签名密钥因子的加和为t2;
根据所述第一签名密钥因子与所述第二管理设备协同完成签名。
在一个实施例中,所述第一签名密钥因子为d1;协同签名时,所述方法还包括:
根据以下公式确定群GT中的双线性对g值;其中,所述群GT为一个阶为素数N的乘法循环群;
g=e(P1,Ppub-s)
其中,所述P1为群G1的生成元,为一公开常数;所述群G1为一个阶为素数N的加法循环群;所述Ppub-s为签名主公钥,SM9签名***参数之一,为一个公开常数;
生成随机数r1;其中,所述随机数r1∈[1,N-1];并,
根据所述随机数r1和所述双线性对g值确定所述群GT中的元素w1;所述元素w1根据以下公式生成:
根据所述随机数r1和所述P1确定第一临时密钥D1;其中,所述第一临时密钥D1根据以下公式生成:
D1=[r1]P1
将所述双线性对g值、所述元素w1以及所述第一临时密钥D1发送给所述第二管理设备,以使所述第二管理设备协同完成签名。
在一个实施例中,所述方法还包括:
接收所述第二管理设备发送的第一签名因子h、群点Q、第二临时密钥Q2;
根据所述第一签名密钥因子d1、所述群点Q以及所述第二临时密钥Q2确定协同签名中的第二签名因子S;其中,所述S根据以下公式生成:
S=[d1]Q+Q2
根据所述第一签名因子h和所述第二签名因子S得到协同签名(h,S)。
第三方面,本申请实施例提供一种基于SM9算法的协同签名方法,应用于签名密钥因子的第二管理设备,所述方法包括:
接收签名密钥生成设备发送的第二签名密钥因子;其中所述第二签名密钥因子是所述签名密钥生成设备将基于SM9算法生成签名密钥时的变量t2在有限域FN上分解得到的,并且与签名密钥因子的第一管理设备接收的第一签名密钥因子的加和为t2;
根据所述第二签名密钥因子与所述第一管理设备协同完成签名。
在一个实施例中,所述第二签名密钥因子为d2;协同签名时,所述方法还包括:
接收所述第一管理设备发送的双线性对g值、元素w1以及第一临时密钥D1;
生成随机数r2;其中,所述随机数r2∈[1,N-1];并,
根据所述随机数r2和所述双线性对g值确定群GT中的元素w2;其中所述群GT为一个阶为素数N的乘法循环群,所述元素w2根据以下公式生成:
根据以下公式确定所述群GT中的元素w:
w=w1*w2
根据所述元素w确定第一签名因子h;其中,H2()为已知的密码杂凑函数,M是待签名消息的比特串,所述第一签名因子h根据以下公式生成:
h=H2(M||w,N)
根据所述第一临时密钥D1、所述随机数r2以及所述第一签名因子h确定群点Q;其中,所述群点Q根据以下公式生成:
Q=D1+[r2-h]P1
根据所述群点Q和所述第二签名密钥因子d2确定第二临时密钥Q2;其中,所述第二临时密钥Q2根据以下公式生成:
Q2=[d2]Q
将所述第一签名因子h、群点Q、第二临时密钥Q2发送给所述第一管理设备,以使所述第一管理设备协同完成签名。
第四方面,本申请实施例提供一种基于SM9算法的协同签名***,该***包括:签名密钥生成设备、第一管理设备以及第二管理设备,其中:
所述签名密钥生成设备用于将基于SM9算法生成签名密钥时的t2在有限域FN上分解为第一签名密钥因子和第二签名密钥因子,并将所述第一签名密钥因子发送给所述第一管理设备,将所述第二签名密钥因子发送给第二管理设备,所述第一签名密钥因子和所述第二签名密钥因子的加和为所述t2;
所述第一管理设备用于接收所述签名密钥生成设备发送的所述第一签名密钥因子,根据所述第一签名密钥因子与所述第二管理设备协同完成签名;
所述第二管理设备用于接收所述签名密钥生成设备发送的所述第二签名密钥因子,根据所述第二签名密钥因子与所述第一管理设备协同完成签名。
第五方面,本申请实施例还提供一种签名密钥生成设备,该设备包括:
获取模块,用于获取基于SM9算法生成签名密钥时的t2;所述t2为生成所述签名密钥时的变量;
分解模块,用于将所述t2在有限域FN上分解第一签名密钥因子和第二签名密钥因子,所述第一签名密钥因子和所述第二签名密钥因子的加和为所述t2;其中所述两个签名密钥因子为非零数;
发送模块,用于将所述第一签名密钥因子发送给所述第一管理设备,并将所述第二签名密钥因子发送给第二管理设备。
在一个实施例中,所述第一签名密钥因子为d1、所述第二签名密钥因子为d2;其中d1、d2为非零数;
所述分解模块,用于将所述t2在有限域FN上分解第一签名密钥因子和第二签名密钥因子,所述第一签名密钥因子和所述第二签名密钥因子的加和为所述t2,包括:
根据以下公式分解所述t2:
t2=(d1+d2)mod N
其中,mod N为模N运算。
第六方面,本申请实施例提供一种签名密钥因子的第一管理设备,该设备包括:
第一接收模块,用于接收签名密钥生成设备发送的第一签名密钥因子;其中所述第一签名密钥因子是所述签名密钥生成设备将基于SM9算法生成签名密钥时的变量t2在有限域FN上分解得到的,并且与签名密钥因子的第二管理设备接收的第二签名密钥因子的加和为t2;
第一签名模块,用于根据所述第一签名密钥因子与所述第二管理设备协同完成签名。
在一个实施例中,所述第一签名密钥因子为d1;所述设备还包括:
第一确定模块,用于根据以下公式确定群GT中的双线性对g值;其中,所述群GT为一个阶为素数N的乘法循环群;
g=e(P1,Ppub-s)
其中,所述P1为群G1的生成元,为一公开常数;所述群G1为一个阶为素数N的加法循环群;所述Ppub-s为签名主公钥,SM9签名***参数之一,为一个公开常数;
第一生成模块,用于协同签名时,生成随机数r1;其中,所述随机数r1∈[1,N-1];并,
第二确定模块,用于协同签名时,根据所述随机数r1和所述双线性对g值确定所述群GT中的元素w1;所述元素w1根据以下公式生成:
第三确定模块,用于协同签名时,根据所述随机数r1和所述P1确定第一临时密钥D1;其中,所述第一临时密钥D1根据以下公式生成:
D1=[r1]P1
第一发送模块,用于协同签名时,将所述双线性对g值、所述元素w1以及所述第一临时密钥D1发送给所述第二管理设备,以使所述第二管理设备协同完成签名。
在一个实施例中,所述设备还包括:
接收模块,用于接收所述第二管理设备发送的第一签名因子h、群点Q、第二临时密钥Q2;
生成模块,用于根据所述第一签名密钥因子d1、所述群点Q以及所述第二临时密钥Q2确定协同签名中的第二签名因子S;其中,所述S根据以下公式生成:
S=[d1]Q+Q2
签名模块,用于根据所述第一签名因子h和所述第二签名因子S得到协同签名(h,S)。
第七方面,本申请实施例提供一种签名密钥因子的第二管理设备,该设备包括:
第二接收模块,用于接收签名密钥生成设备发送的第二签名密钥因子;其中所述第二签名密钥因子是所述签名密钥生成设备将基于SM9算法生成签名密钥时的变量t2在有限域FN上分解得到的,并且与签名密钥因子的第一管理设备接收的第一签名密钥因子的加和为t2;
第二签名模块,用于根据所述第二签名密钥因子与所述第一管理设备协同完成签名。
在一个实施例中,所述第二签名密钥因子为d2;所述设备还包括:
第三接收模块,用于协同签名时,接收所述第一管理设备发送的双线性对g值、元素w1以及第一临时密钥D1;
第二生成模块,用于协同签名时,生成随机数r2;其中,所述随机数r2∈[1,N-1];并,
第四确定模块,用于协同签名时,根据所述随机数r2和所述双线性对g值确定群GT中的元素w2;其中所述群GT为一个阶为素数N的乘法循环群,所述元素w2根据以下公式生成:
第五确定模块,用于协同签名时,根据以下公式确定所述群GT中的元素w:
w=w1*w2
第六确定模块,用于协同签名时,根据所述元素w确定第一签名因子h;其中,H2()为已知的密码杂凑函数,M是待签名消息的比特串,所述第一签名因子h根据以下公式生成:
h=H2(M||w,N)
第七确定模块,用于协同签名时,根据所述第一临时密钥D1、所述随机数r2以及所述第一签名因子h确定群点Q;其中,所述群点Q根据以下公式生成:
Q=D1+[r2-h]P1
第八确定模块,用于协同签名时,根据所述群点Q和所述第二签名密钥因子d2确定第二临时密钥Q2;其中,所述第二临时密钥Q2根据以下公式生成:
Q2=[d2]Q
第二发送模块,用于协同签名时,将所述第一签名因子h、群点Q、第二临时密钥Q2发送给所述第一管理设备,以使所述第一管理设备协同完成签名。
本申请另一实施例还提供了一种计算装置,包括至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本申请实施例提供的任一基于SM9算法的协同签名方法。
本申请另一实施例还提供了一种计算机存储介质,其中,所述计算机存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行本申请实施例中的任一基于SM9算法的协同签名方法。
本申请实施例提供的基于SM9算法的协同签名方法、装置、介质,该方法中,包括签名密钥生成设备、签名密钥因子的第一管理设备以及签名密钥因子的第二管理设备,其中,签名密钥生成设备获取基于SM9算法生成签名密钥时的t2;所述t2为生成所述签名密钥时的变量;将所述t2在有限域FN上分解第一签名密钥因子和第二签名密钥因子,所述第一签名密钥因子和所述第二签名密钥因子的加和为所述t2;其中所述两个签名密钥因子为非零数;并将所述第一签名密钥因子发送给所述第一管理设备,并将所述第二签名密钥因子发送给第二管理设备。这样,签名密钥因子的不同管理设备通过一次数据交互实现协同签名,提供了一种计算简单且更具安全性的签名方法。
本申请的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请而了解。本申请的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请实施例中的国密标准SM9数字签名生成方法的流程示意图;
图2为本申请实施例提供的一种基于SM9算法的协同签名方法应用于签名密钥生成设备的流程示意图;
图3为本申请实施例提供的一种基于SM9算法的协同签名方法应用于签名密钥因子的第一管理设备的流程示意图;
图4为本申请实施例提供的一种基于SM9算法的协同签名方法应用于签名密钥因子的第二管理设备的流程示意图;
图5为本申请实施例提供的一种基于SM9算法的协同签名方法的时序图;
图6为本申请实施例提供的一种签名密钥因子的第一管理设备生成协同签名的相关数据的流程示意图;
图7为本申请实施例提供的一种签名密钥因子的第二管理设备生成协同签名的相关数据的流程示意图;
图8为本申请实施例提供的一种签名密钥因子的第一管理设备生成协同签名的流程示意图;
图9为本申请实施例提供的一种签名密钥生成设备的结构示意图;
图10为本申请实施例提供的一种签名密钥因子的第一管理设备的结构示意图;
图11为本申请实施例提供的一种签名密钥因子的第二管理设备的结构示意图;
图12为根据本申请实施方式的计算装置的结构示意图。
具体实施方式
为了使本领域普通人员更好地理解本申请的技术方案,下面将结合附图,对本申请实施例中的技术方案进行清楚、完整地描述。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应理解这样的描述在适当情况下可以互换,以便本申请的实施例能够以除了本申请的图示或描述的内容以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
为了签名密钥的安全,本申请实施例中提供一种SM9算法的协同签名方法、装置、介质。为了更好的理解本申请实施例提供的技术方案,这里对该方案的部分符号和基本原理做一下简单说明:
(一)、部分符号说明(基于国密SM9标准,标准号为GM/T 0044.2-2016):
(1)N:公开常数,为一固定素数。
(2)GT:阶为素数N的乘法循环群。
(3)G1:阶为素数N的加法循环群。
(4)P1:群G1的生成元,为一公开常数。
(5)H1()、H2():均为已知的密码杂凑函数,或称摘要算法。
(6)hid:签名私钥函数标识符,为一公开常数。
(7)[u]P:群G1中元素P的u倍点运算。
(8)Ppub-s:签名主公钥,SM9签名***参数之一,在一个确定的SM9签名***中,签名主公钥是一个公开常数。
(9)ks:签名主私钥,SM9签名***参数之一,在一个确定的SM9签名***中,签名主私钥为一秘密常数,由KGC秘密保存。
(10)KGC:密钥生成中心。
(二)、用户签名密钥的产生
假设用户的标识是ID,为产生用户的签名密钥D,密钥生成中心KGC在包含N个元素的有限域FN上计算t1=H1(ID||hid,N)+ks,如果t1=0,则由KGC重新生成签名主私钥,并重新计算t1 -1;否则计算t2=ks*t1 -1,其中t1 -1表示t1的逆元,然后计算D=[t2]*P1,D便是用户的签名密钥。
(三)、SM9签名生成算法
假设用户的签名密钥是D,并假设待签名的消息为比特串M,为了获取消息M的数字签名(h,S),作为签名者的用户应实现以下运算步骤:参阅图1,为本申请实施例中的国密标准SM9数字签名生成方法的流程示意图,包括:
步骤101:计算群GT中的双线性对g值=e(P1,Ppub-s);
步骤102:产生随机数r∈[1,N-1];
步骤103:计算群GT中的元素w=gr;
步骤104:计算第一签名因子h=H2(M||w,N);
步骤105:计算整数l=(r-h)mod N,并判断l;
其中,若l为0则返回步骤102;否则继续执行步骤106;
步骤106:计算群G1中的第二签名因子S=[l]D;
步骤107:得到消息M的签名为(h,S)。
相关技术中,在公钥密码体制中,签名密钥需秘密保护,尤其当签名者为一个单位、一个组织、一个机构,乃至一个家庭等时,密钥如果仅由一个人单独保管,签名仅由一个人完成,权限过于集中,缺乏监督,容易出现安全问题或引起纠纷。因此,如何解决相关技术中关于签名的安全问题是业界重点关注的问题。
有鉴于此,本申请实施例提供的一种基于SM9算法的协同签名方法,参阅图2,为本申请实施例提供的一种基于SM9算法的协同签名方法应用于签名密钥生成设备的流程示意图,包括:
步骤201:获取基于SM9算法生成签名密钥时的t2;所述t2为生成所述签名密钥时的变量;
其中,假设用户的标识是ID,密钥生成中心KGC在包含N个元素的有限域FN上计算t1=H1(ID||hid,N)+ks,计算t2=ks*t1 -1,其中t1 -1表示t1的逆元。
步骤202:将所述t2在有限域FN上分解第一签名密钥因子和第二签名密钥因子,所述第一签名密钥因子和所述第二签名密钥因子的加和为所述t2;其中所述两个签名密钥因子为非零数;所述t2为生成所述签名密钥时的变量;
在一个实施例中,假设第一签名密钥因子为d1,第二签名密钥因子为d2,将t2分解为d1和d2的加和,可根据以下公式进行分解:
t2=(d1+d2)mod N
其中,mod N为模N运算。
步骤203:并将所述第一签名密钥因子发送给所述第一管理设备,并将所述第二签名密钥因子发送给第二管理设备。
参阅图3,为本申请实施例提供的一种基于SM9算法的协同签名方法应用于签名密钥因子的第一管理设备的流程示意图,包括:
步骤301:接收签名密钥生成设备发送的第一签名密钥因子;其中所述第一签名密钥因子是所述签名密钥生成设备将基于SM9算法生成签名密钥时的变量t2在有限域FN上分解得到的,并且与签名密钥因子的第二管理设备接收的第二签名密钥因子的加和为t2;
步骤302:根据所述第一签名密钥因子与所述第二管理设备协同完成签名。
参阅图4,为本申请实施例提供的一种基于SM9算法的协同签名方法应用于签名密钥因子的第二管理设备的流程示意图,包括:
步骤401:接收签名密钥生成设备发送的第二签名密钥因子;其中所述第二签名密钥因子是所述签名密钥生成设备将基于SM9算法生成签名密钥时的变量t2在有限域FN上分解得到的,并且与签名密钥因子的第一管理设备接收的第一签名密钥因子的加和为t2;
步骤402:根据所述第二签名密钥因子与所述第一管理设备协同完成签名。
在一个实施例中,参阅图5,为本申请实施例提供的一种基于SM9算法的协同签名方法的时序图,包括签名密钥生成设备、签名密钥因子的第一管理设备以及签名密钥因子的第二管理设备,三者之间的交互过程,包括:
步骤501A:签名密钥设备发送第一密钥因子给签名密钥因子的第一管理设备。
步骤501B:签名密钥设备发送第二密钥因子给签名密钥因子的第二管理设备。
其中,步骤501A和步骤501B不限定执行顺序。
步骤502:签名密钥因子的第一管理设备发送双线性对g值、元素w1以及第一临时密钥D1给签名密钥因子的第二管理设备。
在一个实施例中,参阅图6,为本申请实施例提供的一种签名密钥因子的第一管理设备生成协同签名的相关数据的流程示意图,包括:
步骤5021:根据以下公式确定群GT中的双线性对g值;
g=e(P1,Ppub-s)
步骤5022:生成随机数r1;其中,所述随机数r1∈[1,N-1];
步骤5023:根据所述随机数r1和所述双线性对g值确定所述群GT中的元素w1;所述元素w1根据以下公式生成:
步骤5024:根据所述随机数r1和所述P1确定第一临时密钥D1;其中,所述第一临时密钥D1根据以下公式生成:
D1=[r1]P1
步骤5025:将所述双线性对g值、所述元素w1以及所述第一临时密钥D1发送给所述第二管理设备,以使所述第二管理设备协同完成签名。
步骤503:签名密钥因子的第二管理设备发送第一签名因子h、群点Q以及第二临时密钥Q2给签名密钥因子的第一管理设备。
在一个实施例中,参阅图7,为本申请实施例提供的一种签名密钥因子的第二管理设备生成协同签名的相关数据的流程示意图,包括:
步骤5031:接收所述第一管理设备发送的双线性对g值、元素w1以及第一临时密钥D1;
步骤5032:生成随机数r2;其中,所述随机数r2∈[1,N-1];并,
步骤5033:根据所述随机数r2和所述双线性对g值确定群GT中的元素w2;所述元素w2根据以下公式生成:
步骤5034:根据以下公式确定所述群GT中的元素w:
w=w1*w2
步骤5035:根据所述元素w确定第一签名因子h;其中,所述第一签名因子h根据以下公式生成:
h=H2(M||w,N)
步骤5036:根据所述第一临时密钥D1、所述随机数r2以及所述第一签名因子h确定群点Q;其中,所述群点Q根据以下公式生成:
Q=D1+[r2-h]P1
步骤5037:根据所述群点Q和所述第二签名密钥因子d2确定第二临时密钥Q2;其中,所述第二临时密钥Q2根据以下公式生成:
Q2=[d2]Q
步骤5038:将所述第一签名因子h、群点Q、第二临时密钥Q2发送给所述第一管理设备,以使所述第一管理设备协同完成签名。
步骤504:签名密钥因子的第一管理设备得到协同签名(h,S)。
在一个实施例中,参阅图8,为本申请实施例提供的一种签名密钥因子的第一管理设备生成协同签名的流程示意图,包括:
步骤5041:接收所述第二管理设备发送的第一签名因子h、群点Q、第二临时密钥Q2;
步骤5042:根据所述第一签名密钥因子d1、所述群点Q以及所述第二临时密钥Q2确定协同签名中的第二签名因子S;其中,所述S根据以下公式生成:
S=[d1]Q+Q2
步骤5043:根据所述第一签名因子h和所述第二签名因子S得到协同签名(h,S)。
通过本申请提供的方法,签名密钥生成设备将生成签名密钥时的t2在有限域上分解为两个非零数的签名密钥因子的加和,并由两个管理设备分别接收两个签名密钥因子。然后,通过两个管理设备分别产生的一个随机数,并通过一次数据的交互传输完成协同签名。通过该方法,两个管理设备生成的协同签名等同于由单方采用相应的完整签名密钥完成的数字签名,但是两个管理设备各自的签名密钥因子和随机数均不为对方所知,故此保障了签名的安全性。此外,一次数据交互的计算量简单,这使得协同签名更加便捷。
基于相同的发明构思,参阅图9,为本申请实施例提供的一种签名密钥生成设备的结构示意图。该设备包括:
获取模块901,用于获取基于SM9算法生成签名密钥时的t2;所述t2为生成所述签名密钥时的变量;
分解模块902,用于将所述t2在有限域FN上分解第一签名密钥因子和第二签名密钥因子,所述第一签名密钥因子和所述第二签名密钥因子的加和为所述t2;其中所述两个签名密钥因子为非零数;
发送模块903,用于将所述第一签名密钥因子发送给所述第一管理设备,并将所述第二签名密钥因子发送给第二管理设备。
在一个实施例中,所述第一签名密钥因子为d1、所述第二签名密钥因子为d2;其中d1、d2为非零数;
所述分解模块,用于将生成所述签名密钥时的t2在有限域FN上分解第一签名密钥因子和第二签名密钥因子,所述第一签名密钥因子和所述第二签名密钥因子的加和为所述t2,包括:
根据以下公式分解所述t2:
t2=(d1+d2)mod N
其中,mod N为模N运算。
基于相同的发明构思,参阅图10,为本申请实施例提供的一种签名密钥因子的第一管理设备的结构示意图。该设备包括:
第一接收模块1001,用于接收签名密钥生成设备发送的第一签名密钥因子;其中所述第一签名密钥因子是所述签名密钥生成设备将基于SM9算法生成签名密钥时的变量t2在有限域FN上分解得到的,并且与签名密钥因子的第二管理设备接收的第二签名密钥因子的加和为t2;
第一签名模块1002,用于根据所述第一签名密钥因子与所述第二管理设备协同完成签名。
在一个实施例中,所述第一签名密钥因子为d1;所述设备还包括:
第一确定模块,用于根据以下公式确定群GT中的双线性对g值;其中,所述群GT为一个阶为素数N的乘法循环群;
g=e(P1,Ppub-s)
其中,所述P1为群G1的生成元,为一公开常数;所述群G1为一个阶为素数N的加法循环群;所述Ppub-s为签名主公钥,SM9签名***参数之一,为一个公开常数;
第一生成模块,用于协同签名时,生成随机数r1;其中,所述随机数r1∈[1,N-1];并,
第二确定模块,用于协同签名时,根据所述随机数r1和所述双线性对g值确定所述群GT中的元素w1;所述元素w1根据以下公式生成:
第三确定模块,用于协同签名时,根据所述随机数r1和所述P1确定第一临时密钥D1;其中,所述第一临时密钥D1根据以下公式生成:
D1=[r1]P1
第一发送模块,用于协同签名时,将所述双线性对g值、所述元素w1以及所述第一临时密钥D1发送给所述第二管理设备,以使所述第二管理设备协同完成签名。
在一个实施例中,所述设备还包括:
接收模块,用于接收所述第二管理设备发送的第一签名因子h、群点Q、第二临时密钥Q2;
生成模块,用于根据所述第一签名密钥因子d1、所述群点Q以及所述第二临时密钥Q2确定协同签名中的第二签名因子S;其中,所述S根据以下公式生成:
S=[d1]Q+Q2
签名模块,用于根据所述第一签名因子h和所述第二签名因子S得到协同签名(h,S)。
基于相同的发明构思,参阅图11,为本申请实施例提供的一种签名密钥因子的第二管理设备的结构示意图。该设备包括:
第二接收模块1101,用于接收签名密钥生成设备发送的第二签名密钥因子;其中所述第二签名密钥因子是所述签名密钥生成设备将基于SM9算法生成签名密钥时的变量t2在有限域FN上分解得到的,并且与签名密钥因子的第一管理设备接收的第一签名密钥因子的加和为t2;
第二签名模块1102,用于根据所述第二签名密钥因子与所述第一管理设备协同完成签名。
在一个实施例中,所述第二签名密钥因子为d2;所述设备还包括:
第三接收模块,用于协同签名时,接收所述第一管理设备发送的双线性对g值、元素w1以及第一临时密钥D1;
第二生成模块,用于协同签名时,生成随机数r2;其中,所述随机数r2∈[1,N-1];并,
第四确定模块,用于协同签名时,根据所述随机数r2和所述双线性对g值确定群GT中的元素w2;其中所述群GT为一个阶为素数N的乘法循环群,所述元素w2根据以下公式生成:
第五确定模块,用于协同签名时,根据以下公式确定所述群GT中的元素w:
w=w1*w2
第六确定模块,用于协同签名时,根据所述元素w确定第一签名因子h;其中,H2()为已知的密码杂凑函数,M是待签名消息的比特串,所述第一签名因子h根据以下公式生成:
h=H2(M||w,N)
第七确定模块,用于协同签名时,根据所述第一临时密钥D1、所述随机数r2以及所述第一签名因子h确定群点Q;其中,所述群点Q根据以下公式生成:
Q=D1+[r2-h]P1
第八确定模块,用于协同签名时,根据所述群点Q和所述第二签名密钥因子d2确定第二临时密钥Q2;其中,所述第二临时密钥Q2根据以下公式生成:
Q2=[d2]Q
第二发送模块,用于协同签名时,将所述第一签名因子h、群点Q、第二临时密钥Q2发送给所述第一管理设备,以使所述第一管理设备协同完成签名。
在介绍了本申请示例性实施方式的一种基于SM9算法的协同签名方法和装置之后,接下来,介绍根据本申请的另一示例性实施方式的计算装置。
所属技术领域的技术人员能够理解,本申请的各个方面可以实现为***、方法或程序产品。因此,本申请的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“***”。
在一些可能的实施方式中,根据本申请的计算装置可以至少包括至少一个处理器、以及至少一个存储器。其中,存储器存储有程序代码,当程序代码被处理器执行时,使得处理器执行本说明书上述描述的根据本申请各种示例性实施方式SM9算法的协同签名中的步骤。例如,处理器可以执行如图2所示的步骤201-203、或者如图3中的步骤301-302、或者如图4中的步骤401-402。
下面参照图12来描述根据本申请的这种实施方式的计算装置130。图12显示的计算装置130仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图12所示,计算装置130以通用计算装置的形式表现。计算装置130的组件可以包括但不限于:上述至少一个处理器131、上述至少一个存储器132、连接不同***组件(包括存储器132和处理器131)的总线133。
总线133表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器、***总线、处理器或者使用多种总线结构中的任意总线结构的局域总线。
存储器132可以包括易失性存储器形式的可读介质,例如随机存取存储器(RAM)1321和/或高速缓存存储器1322,还可以进一步包括只读存储器(ROM)1323。
存储器132还可以包括具有一组(至少一个)程序模块1324的程序/实用工具1325,这样的程序模块1324包括但不限于:操作***、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
计算装置130也可以与一个或多个外部设备134(例如键盘、指向设备等)通信,还可与一个或者多个使得用户能与计算装置130交互的设备通信,和/或与使得该计算装置130能与一个或多个其它计算装置进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口135进行。并且,计算装置130还可以通过网络适配器136与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器136通过总线133与用于计算装置130的其它模块通信。应当理解,尽管图中未示出,可以结合计算装置130使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理器、外部磁盘驱动阵列、RAID***、磁带驱动器以及数据备份存储***等。
在一些可能的实施方式中,本申请提供的基于SM9算法的协同签名方法的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在计算机设备上运行时,程序代码用于使计算机设备执行本说明书上述描述的根据本申请各种示例性实施方式的基于SM9算法的协同签名方法中的步骤,例如,计算机设备可以执行如图2所示的步骤201-203、或者如图3中的步骤301-302、或者如图4中的步骤401-402。
程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是但不限于电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
本申请的实施方式的用于SM9算法的密钥存储及解密的程序产品可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在计算装置上运行。然而,本申请的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。
可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本申请操作的程序代码,程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算装置上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算装置上部分在远程计算装置上执行、或者完全在远程计算装置或服务器上执行。在涉及远程计算装置的情形中,远程计算装置可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算装置,或者,可以连接到外部计算装置(例如利用因特网服务提供商来通过因特网连接)。
应当注意,尽管在上文详细描述中提及了装置的若干单元或子单元,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本申请的实施方式,上文描述的两个或更多单元的特征和功能可以在一个单元中具体化。反之,上文描述的一个单元的特征和功能可以进一步划分为由多个单元来具体化。
此外,尽管在附图中以特定顺序描述了本申请方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
本领域内的技术人员应明白,本申请的实施例可提供为方法、***、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (11)
1.一种基于SM9算法的协同签名方法,其特征在于,应用于签名密钥生成设备,所述方法包括:
获取基于SM9算法生成签名密钥时的t2;所述t2为生成所述签名密钥时的变量;
将所述t2在有限域FN上分解第一签名密钥因子和第二签名密钥因子,所述第一签名密钥因子和所述第二签名密钥因子的加和为所述t2;其中所述两个签名密钥因子为非零数;
并将所述第一签名密钥因子发送给第一管理设备,并将所述第二签名密钥因子发送给第二管理设备;
其中,第一签名密钥因子d1用于使所述第一管理设备执行以下操作得到协同签名:
根据以下公式确定群GT中的双线性对g值;其中,所述群GT为一个阶为素数N的乘法循环群;
g=e(P1,Ppub-s)
其中,所述P1为群G1的生成元,为一公开常数;所述群G1为一个阶为素数N的加法循环群;所述Ppub-s为签名主公钥,SM9签名***参数之一,为一个公开常数;
生成随机数r1;其中,所述随机数r1∈[1,N-1];并,
根据所述随机数r1和所述双线性对g值确定所述群GT中的元素w1;所述元素w1根据以下公式生成:
根据所述随机数r1和所述P1确定第一临时密钥D1;其中,所述第一临时密钥D1根据以下公式生成:
D1=[r1]P1
将所述双线性对g值、所述元素w1以及所述第一临时密钥D1发送给所述第二管理设备;
接收所述第二管理设备发送的第一签名因子h、群点Q、第二临时密钥Q2;
根据所述第一签名密钥因子d1、所述群点Q以及所述第二临时密钥Q2确定协同签名中的第二签名因子S;其中,所述S根据以下公式生成:
S=[d1]Q+Q2
根据所述第一签名因子h和所述第二签名因子S得到协同签名(h,S);
其中,所述h、所述Q以及Q2是所述第二管理设备根据以下方法得到的:
接收所述第一管理设备发送的所述g值、所述w1以及所述D1;
生成随机数r2;其中,所述随机数r2∈[1,N-1];并,
根据所述随机数r2和所述双线性对g值确定群GT中的元素w2;其中所述群GT为一个阶为素数N的乘法循环群,所述元素w2根据以下公式生成:
根据以下公式确定所述群GT中的元素w:
w=w1*w2
根据所述元素w确定第一签名因子h;其中,H2()为已知的密码杂凑函数,M是待签名消息的比特串,所述第一签名因子h根据以下公式生成:
h=H2(M||w,N)
根据所述第一临时密钥D1、所述随机数r2以及所述第一签名因子h确定群点Q;其中,所述群点Q根据以下公式生成:
Q=D1+[r2-h]P1
根据所述群点Q和所述第二签名密钥因子d2确定第二临时密钥Q2;其中,所述第二临时密钥Q2根据以下公式生成:Q2=[d2]Q。
2.根据权利要求1所述的方法,其特征在于,所述第一签名密钥因子d1、所述第二签名密钥因子d2为非零数;
将所述t2在有限域FN上分解第一签名密钥因子和第二签名密钥因子,所述第一签名密钥因子和所述第二签名密钥因子的加和为所述t2,包括:
根据以下公式分解所述t2:
t2=(d1+d2)mod N
其中,mod N为模N运算。
3.一种基于SM9算法的协同签名方法,其特征在于,应用于签名密钥因子的第一管理设备,所述方法包括:
接收签名密钥生成设备发送的第一签名密钥因子;其中所述第一签名密钥因子是所述签名密钥生成设备将基于SM9算法生成签名密钥时的变量t2在有限域FN上分解得到的,并且与签名密钥因子的第二管理设备接收的第二签名密钥因子的加和为t2;
根据所述第一签名密钥因子与所述第二管理设备协同完成签名;
所述第一签名密钥因子为d1;协同签名时,所述方法还包括:
根据以下公式确定群GT中的双线性对g值;其中,所述群GT为一个阶为素数N的乘法循环群;
g=e(P1,Ppub-s)
其中,所述P1为群G1的生成元,为一公开常数;所述群G1为一个阶为素数N的加法循环群;所述Ppub-s为签名主公钥,SM9签名***参数之一,为一个公开常数;
生成随机数r1;其中,所述随机数r1∈[1,N-1];并,
根据所述随机数r1和所述双线性对g值确定所述群GT中的元素w1;所述元素w1根据以下公式生成:
根据所述随机数r1和所述P1确定第一临时密钥D1;其中,所述第一临时密钥D1根据以下公式生成:
D1=[r1]P1
将所述双线性对g值、所述元素w1以及所述第一临时密钥D1发送给所述第二管理设备,以使所述第二管理设备协同完成签名;
所述方法还包括:
接收所述第二管理设备发送的第一签名因子h、群点Q、第二临时密钥Q2;
根据所述第一签名密钥因子d1、所述群点Q以及所述第二临时密钥Q2确定协同签名中的第二签名因子S;其中,所述S根据以下公式生成:
S=[d1]Q+Q2
根据所述第一签名因子h和所述第二签名因子S得到协同签名(h,S);
其中,所述h、所述Q以及Q2是所述第二管理设备根据以下方法得到的:
接收所述第一管理设备发送的所述g值、所述w1以及所述D1;
生成随机数r2;其中,所述随机数r2∈[1,N-1];并,
根据所述随机数r2和所述双线性对g值确定群GT中的元素w2;其中所述群GT为一个阶为素数N的乘法循环群,所述元素w2根据以下公式生成:
根据以下公式确定所述群GT中的元素w:
w=w1*w2
根据所述元素w确定第一签名因子h;其中,H2()为已知的密码杂凑函数,M是待签名消息的比特串,所述第一签名因子h根据以下公式生成:
h=H2(M||w,N)
根据所述第一临时密钥D1、所述随机数r2以及所述第一签名因子h确定群点Q;其中,所述群点Q根据以下公式生成:
Q=D1+[r2-h]P1
根据所述群点Q和所述第二签名密钥因子d2确定第二临时密钥Q2;其中,所述第二临时密钥Q2根据以下公式生成:Q2=[d2]Q。
4.一种基于SM9算法的协同签名方法,其特征在于,应用于签名密钥因子的第二管理设备,所述方法包括:
接收签名密钥生成设备发送的第二签名密钥因子;其中所述第二签名密钥因子是所述签名密钥生成设备将基于SM9算法生成签名密钥时的变量t2在有限域FN上分解得到的,并且与签名密钥因子的第一管理设备接收的第一签名密钥因子的加和为t2;
根据所述第二签名密钥因子与所述第一管理设备协同完成签名;
所述第二签名密钥因子为d2;协同签名时,所述方法还包括:
接收所述第一管理设备发送的双线性对g值、元素w1以及第一临时密钥D1;
生成随机数r2;其中,所述随机数r2∈[1,N-1];并,
根据所述随机数r2和所述双线性对g值确定群GT中的元素w2;其中所述群GT为一个阶为素数N的乘法循环群,所述元素w2根据以下公式生成:
根据以下公式确定所述群GT中的元素w:
w=w1*w2
根据所述元素w确定第一签名因子h;其中,H2()为已知的密码杂凑函数,M是待签名消息的比特串,所述第一签名因子h根据以下公式生成:
h=H2(M||w,N)
根据所述第一临时密钥D1、所述随机数r2以及所述第一签名因子h确定群点Q;其中,所述群点Q根据以下公式生成:
Q=D1+[r2-h]P1
根据所述群点Q和所述第二签名密钥因子d2确定第二临时密钥Q2;其中,所述第二临时密钥Q2根据以下公式生成:
Q2=[d2]Q
将所述第一签名因子h、群点Q、第二临时密钥Q2发送给所述第一管理设备,以使所述第一管理设备协同完成签名;
其中,所述g值、所述w1以及所述D1是所述第一管理设备根据以下方法生成的:
根据以下公式确定群GT中的所述g值;其中,所述群GT为一个阶为素数N的乘法循环群;
g=e(P1,Ppub-s)
其中,所述P1为群G1的生成元,为一公开常数;所述群G1为一个阶为素数N的加法循环群;所述Ppub-s为签名主公钥,SM9签名***参数之一,为一个公开常数;
生成随机数r1;其中,所述随机数r1∈[1,N-1];并,
根据所述随机数r1和所述双线性对g值确定所述群GT中的所述w1;所述元素w1根据以下公式生成:
根据所述随机数r1和所述P1确定所述D1;其中,所述D1根据以下公式生成:D1=[r1]P1。
5.一种基于SM9算法的协同签名***,其特征在于,包括:签名密钥生成设备、第一管理设备以及第二管理设备,其中:
所述签名密钥生成设备用于将基于SM9算法生成签名密钥时的t2在有限域FN上分解为第一签名密钥因子和第二签名密钥因子,并将所述第一签名密钥因子发送给所述第一管理设备,将所述第二签名密钥因子发送给第二管理设备,所述第一签名密钥因子和所述第二签名密钥因子的加和为所述t2;
所述第一管理设备用于接收所述签名密钥生成设备发送的所述第一签名密钥因子,根据所述第一签名密钥因子与所述第二管理设备协同完成签名;
其中,所述第一管理设备包括:
第一确定模块,用于协同签名时,根据以下公式确定群GT中的双线性对g值;其中,所述群GT为一个阶为素数N的乘法循环群;
g=e(P1,Ppub-s)
其中,所述P1为群G1的生成元,为一公开常数;所述群G1为一个阶为素数N的加法循环群;所述Ppub-s为签名主公钥,SM9签名***参数之一,为一个公开常数;
第一生成模块,用于协同签名时,生成随机数r1;其中,所述随机数r1∈[1,N-1];并,
第二确定模块,用于协同签名时,根据所述随机数r1和所述双线性对g值确定所述群GT中的元素w1;所述元素w1根据以下公式生成:
第三确定模块,用于协同签名时,根据所述随机数r1和所述P1确定第一临时密钥D1;其中,所述第一临时密钥D1根据以下公式生成:
D1=[r1]P1
第一发送模块,用于协同签名时,将所述双线性对g值、所述元素w1以及所述第一临时密钥D1发送给所述第二管理设备;
其中,
接收模块,用于接收所述第二管理设备发送的第一签名因子h、群点Q、第二临时密钥Q2;
生成模块,用于根据所述第一签名密钥因子d1、所述群点Q以及所述第二临时密钥Q2确定协同签名中的第二签名因子S;其中,所述S根据以下公式生成:
S=[d1]Q+Q2
签名模块,用于根据所述第一签名因子h和所述第二签名因子S得到协同签名(h,S);
其中,所述h、所述Q以及Q2是所述第二管理设备根据以下模块得到的:
第三接收模块,用于协同签名时,接收所述第一管理设备发送的双线性对g值、元素w1以及第一临时密钥D1;
第二生成模块,用于协同签名时,生成随机数r2;其中,所述随机数r2∈[1,N-1];并,
第四确定模块,用于协同签名时,根据所述随机数r2和所述双线性对g值确定群GT中的元素w2;其中所述群GT为一个阶为素数N的乘法循环群,所述元素w2根据以下公式生成:
第五确定模块,用于协同签名时,根据以下公式确定所述群GT中的元素w:
w=w1*w2
第六确定模块,用于协同签名时,根据所述元素w确定第一签名因子h;其中,H2()为已知的密码杂凑函数,M是待签名消息的比特串,所述第一签名因子h根据以下公式生成:
h=H2(M||w,N)
第七确定模块,用于协同签名时,根据所述第一临时密钥D1、所述随机数r2以及所述第一签名因子h确定群点Q;其中,所述群点Q根据以下公式生成:
Q=D1+[r2-h]P1
第八确定模块,用于协同签名时,根据所述群点Q和所述第二签名密钥因子d2确定第二临时密钥Q2;其中,所述第二临时密钥Q2根据以下公式生成:
Q2=[d2]Q;
所述第二管理设备用于接收所述签名密钥生成设备发送的所述第二签名密钥因子,根据所述第二签名密钥因子与所述第一管理设备协同完成签名。
6.一种签名密钥生成设备,其特征在于,包括:
获取模块,用于获取基于SM9算法生成签名密钥时的t2;所述t2为生成所述签名密钥时的变量;
分解模块,用于将所述t2在有限域FN上分解第一签名密钥因子和第二签名密钥因子,所述第一签名密钥因子和所述第二签名密钥因子的加和为所述t2;其中所述两个签名密钥因子为非零数;
发送模块,用于将所述第一签名密钥因子发送给第一管理设备,并将所述第二签名密钥因子发送给第二管理设备;
其中,第一签名密钥因子d1用于使所述第一管理设备执行以下操作得到协同签名:
根据以下公式确定群GT中的双线性对g值;其中,所述群GT为一个阶为素数N的乘法循环群;
g=e(P1,Ppub-s)
其中,所述P1为群G1的生成元,为一公开常数;所述群G1为一个阶为素数N的加法循环群;所述Ppub-s为签名主公钥,SM9签名***参数之一,为一个公开常数;
生成随机数r1;其中,所述随机数r1∈[1,N-1];并,
根据所述随机数r1和所述双线性对g值确定所述群GT中的元素w1;所述元素w1根据以下公式生成:
根据所述随机数r1和所述P1确定第一临时密钥D1;其中,所述第一临时密钥D1根据以下公式生成:
D1=[r1]P1
将所述双线性对g值、所述元素w1以及所述第一临时密钥D1发送给所述第二管理设备;
接收所述第二管理设备发送的第一签名因子h、群点Q、第二临时密钥Q2;
根据所述第一签名密钥因子d1、所述群点Q以及所述第二临时密钥Q2确定协同签名中的第二签名因子S;其中,所述S根据以下公式生成:
S=[d1]Q+Q2
根据所述第一签名因子h和所述第二签名因子S得到协同签名(h,S);
其中,所述h、所述Q以及Q2是所述第二管理设备根据以下方法得到的:
接收所述第一管理设备发送的所述g值、所述w1以及所述D1;
生成随机数r2;其中,所述随机数r2∈[1,N-1];并,
根据所述随机数r2和所述双线性对g值确定群GT中的元素w2;其中所述群GT为一个阶为素数N的乘法循环群,所述元素w2根据以下公式生成:
根据以下公式确定所述群GT中的元素w:
w=w1*w2
根据所述元素w确定第一签名因子h;其中,H2()为已知的密码杂凑函数,M是待签名消息的比特串,所述第一签名因子h根据以下公式生成:
h=H2(M||w,N)
根据所述第一临时密钥D1、所述随机数r2以及所述第一签名因子h确定群点Q;其中,所述群点Q根据以下公式生成:
Q=D1+[r2-h]P1
根据所述群点Q和所述第二签名密钥因子d2确定第二临时密钥Q2;其中,所述第二临时密钥Q2根据以下公式生成:Q2=[d2]Q。
7.根据权利要求6所述的设备,其特征在于,所述第一签名密钥因子d1、所述第二签名密钥因子d2为非零数;
所述分解模块,用于将所述t2在有限域FN上分解第一签名密钥因子和第二签名密钥因子,所述第一签名密钥因子和所述第二签名密钥因子的加和为所述t2,包括:
根据以下公式分解所述t2:
t2=(d1+d2)mod N
其中,mod N为模N运算。
8.一种签名密钥因子的第一管理设备,其特征在于,包括:
第一接收模块,用于接收签名密钥生成设备发送的第一签名密钥因子;其中所述第一签名密钥因子是所述签名密钥生成设备将基于SM9算法生成签名密钥时的变量t2在有限域FN上分解得到的,并且与签名密钥因子的第二管理设备接收的第二签名密钥因子的加和为t2;
第一签名模块,用于根据所述第一签名密钥因子与所述第二管理设备协同完成签名;
所述第一签名密钥因子为d1;协同签名时,所述设备还包括:
第一确定模块,用于协同签名时,根据以下公式确定群GT中的双线性对g值;其中,所述群GT为一个阶为素数N的乘法循环群;
g=e(P1,Ppub-s)
其中,所述P1为群G1的生成元,为一公开常数;所述群G1为一个阶为素数N的加法循环群;所述Ppub-s为签名主公钥,SM9签名***参数之一,为一个公开常数;
第一生成模块,用于协同签名时,生成随机数r1;其中,所述随机数r1∈[1,N-1];并,
第二确定模块,用于协同签名时,根据所述随机数r1和所述双线性对g值确定所述群GT中的元素w1;所述元素w1根据以下公式生成:
第三确定模块,用于协同签名时,根据所述随机数r1和所述P1确定第一临时密钥D1;其中,所述第一临时密钥D1根据以下公式生成:
D1=[r1]P1
第一发送模块,用于协同签名时,将所述双线性对g值、所述元素w1以及所述第一临时密钥D1发送给所述第二管理设备,以使所述第二管理设备协同完成签名;
所述设备还包括:
接收模块,用于接收所述第二管理设备发送的第一签名因子h、群点Q、第二临时密钥Q2;
生成模块,用于根据所述第一签名密钥因子d1、所述群点Q以及所述第二临时密钥Q2确定协同签名中的第二签名因子S;其中,所述S根据以下公式生成:
S=[d1]Q+Q2
签名模块,用于根据所述第一签名因子h和所述第二签名因子S得到协同签名(h,S);
其中,所述h、所述Q以及Q2是所述第二管理设备根据以下模块得到的:
第三接收模块,用于协同签名时,接收所述第一管理设备发送的双线性对g值、元素w1以及第一临时密钥D1;
第二生成模块,用于协同签名时,生成随机数r2;其中,所述随机数r2∈[1,N-1];并,
第四确定模块,用于协同签名时,根据所述随机数r2和所述双线性对g值确定群GT中的元素w2;其中所述群GT为一个阶为素数N的乘法循环群,所述元素w2根据以下公式生成:
第五确定模块,用于协同签名时,根据以下公式确定所述群GT中的元素w:
w=w1*w2
第六确定模块,用于协同签名时,根据所述元素w确定第一签名因子h;其中,H2()为已知的密码杂凑函数,M是待签名消息的比特串,所述第一签名因子h根据以下公式生成:
h=H2(M||w,N)
第七确定模块,用于协同签名时,根据所述第一临时密钥D1、所述随机数r2以及所述第一签名因子h确定群点Q;其中,所述群点Q根据以下公式生成:
Q=D1+[r2-h]P1
第八确定模块,用于协同签名时,根据所述群点Q和所述第二签名密钥因子d2确定第二临时密钥Q2;其中,所述第二临时密钥Q2根据以下公式生成:Q2=[d2]Q。
9.一种签名密钥因子的第二管理设备,其特征在于,包括:
第二接收模块,用于接收签名密钥生成设备发送的第二签名密钥因子;其中所述第二签名密钥因子是所述签名密钥生成设备将基于SM9算法生成签名密钥时的变量t2在有限域FN上分解得到的,并且与签名密钥因子的第一管理设备接收的第一签名密钥因子的加和为t2;
第二签名模块,用于根据所述第二签名密钥因子与所述第一管理设备协同完成签名;
所述第二签名密钥因子为d2;协同签名时,所述设备还包括:
第三接收模块,用于协同签名时,接收所述第一管理设备发送的双线性对g值、元素w1以及第一临时密钥D1;
第二生成模块,用于协同签名时,生成随机数r2;其中,所述随机数r2∈[1,N-1];并,
第四确定模块,用于协同签名时,根据所述随机数r2和所述双线性对g值确定群GT中的元素w2;其中所述群GT为一个阶为素数N的乘法循环群,所述元素w2根据以下公式生成:
第五确定模块,用于协同签名时,根据以下公式确定所述群GT中的元素w:
w=w1*w2
第六确定模块,用于协同签名时,根据所述元素w确定第一签名因子h;其中,H2()为已知的密码杂凑函数,M是待签名消息的比特串,所述第一签名因子h根据以下公式生成:
h=H2(M||w,N)
第七确定模块,用于协同签名时,根据所述第一临时密钥D1、所述随机数r2以及所述第一签名因子h确定群点Q;其中,所述群点Q根据以下公式生成:
Q=D1+[r2-h]P1
第八确定模块,用于协同签名时,根据所述群点Q和所述第二签名密钥因子d2确定第二临时密钥Q2;其中,所述第二临时密钥Q2根据以下公式生成:
Q2=[d2]Q
第二发送模块,用于协同签名时,将所述第一签名因子h、群点Q、第二临时密钥Q2发送给所述第一管理设备,以使所述第一管理设备协同完成签名;
其中,所述g值、所述w1以及所述D1是所述第一管理设备根据以下模块生成的:
第一确定模块,用于协同签名时,根据以下公式确定群GT中的双线性对g值;其中,所述群GT为一个阶为素数N的乘法循环群;
g=e(P1,Ppub-s)
其中,所述P1为群G1的生成元,为一公开常数;所述群G1为一个阶为素数N的加法循环群;所述Ppub-s为签名主公钥,SM9签名***参数之一,为一个公开常数;
第一生成模块,用于协同签名时,生成随机数r1;其中,所述随机数r1∈[1,N-1];并,
第二确定模块,用于协同签名时,根据所述随机数r1和所述双线性对g值确定所述群GT中的元素w1;所述元素w1根据以下公式生成:
第三确定模块,用于协同签名时,根据所述随机数r1和所述P1确定第一临时密钥D1;其中,所述第一临时密钥D1根据以下公式生成:D1=[r1]P1。
10.一种计算机可读介质,存储有计算机可执行指令,其特征在于,所述计算机可执行指令被处理器执行,以实现如权利要求1-4中任一权利要求所述的方法。
11.一种计算装置,其特征在于,包括:
至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求1-4中任一权利要求所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911286092.3A CN111314080B (zh) | 2019-12-13 | 2019-12-13 | 一种基于sm9算法的协同签名方法、装置、介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911286092.3A CN111314080B (zh) | 2019-12-13 | 2019-12-13 | 一种基于sm9算法的协同签名方法、装置、介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111314080A CN111314080A (zh) | 2020-06-19 |
CN111314080B true CN111314080B (zh) | 2021-04-13 |
Family
ID=71148172
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911286092.3A Active CN111314080B (zh) | 2019-12-13 | 2019-12-13 | 一种基于sm9算法的协同签名方法、装置、介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111314080B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113300841B (zh) * | 2021-05-25 | 2022-11-25 | 贵州大学 | 一种基于身份的协同签名方法及*** |
CN115174052B (zh) * | 2022-06-23 | 2024-04-16 | 武汉大学 | 一种基于sm9签名的适配器签名生成方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108418686A (zh) * | 2017-11-23 | 2018-08-17 | 矩阵元技术(深圳)有限公司 | 一种多分布式的sm9解密方法与介质及密钥生成方法 |
CN109194478A (zh) * | 2018-11-19 | 2019-01-11 | 武汉大学 | 一种非对称环境下多方联合生成sm9数字签名的方法 |
CN110011802A (zh) * | 2019-02-27 | 2019-07-12 | 武汉大学 | 一种高效的sm9两方协同生成数字签名的方法及*** |
CN110035065A (zh) * | 2019-03-12 | 2019-07-19 | 华为技术有限公司 | 数据处理方法、相关装置及计算机存储介质 |
-
2019
- 2019-12-13 CN CN201911286092.3A patent/CN111314080B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108418686A (zh) * | 2017-11-23 | 2018-08-17 | 矩阵元技术(深圳)有限公司 | 一种多分布式的sm9解密方法与介质及密钥生成方法 |
CN109194478A (zh) * | 2018-11-19 | 2019-01-11 | 武汉大学 | 一种非对称环境下多方联合生成sm9数字签名的方法 |
CN110011802A (zh) * | 2019-02-27 | 2019-07-12 | 武汉大学 | 一种高效的sm9两方协同生成数字签名的方法及*** |
CN110035065A (zh) * | 2019-03-12 | 2019-07-19 | 华为技术有限公司 | 数据处理方法、相关装置及计算机存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111314080A (zh) | 2020-06-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110351096B (zh) | 多重签名方法、签名中心、程序介质及电子设备 | |
CN110247757B (zh) | 基于国密算法的区块链处理方法、装置及*** | |
EP2582085A1 (en) | Generating implicit certificates | |
CN111010277B (zh) | 密钥交换方法、装置和存储介质、计算装置 | |
US8681986B2 (en) | Single-round password-based key exchange protocols | |
WO2019209168A2 (zh) | 数据处理方法、相关装置及区块链*** | |
US11716206B2 (en) | Certificate based security using post quantum cryptography | |
US20130091362A1 (en) | Generating implicit certificates | |
CN109359471B (zh) | 基于用户身份的加密方法、装置、***、设备和介质 | |
TW201320701A (zh) | 資訊處理裝置、資訊處理方法及程式 | |
US20220006615A1 (en) | Computer-implemented system and method for distributing shares of digitally signed data | |
CN111314080B (zh) | 一种基于sm9算法的协同签名方法、装置、介质 | |
US11902432B2 (en) | System and method to optimize generation of coprime numbers in cryptographic applications | |
CN115694777A (zh) | 基于同态加密的隐私集合求交方法、装置、设备及介质 | |
Lee et al. | Security analysis and modification of ID-based encryption with equality test from ACISP 2017 | |
CN117978361A (zh) | 基于云端的隐私计算方法、装置、电子设备及可读介质 | |
CN107147493B (zh) | 一种有限资源下的数字签名方法、装置及*** | |
JP6294882B2 (ja) | 鍵保管装置、鍵保管方法、及びそのプログラム | |
Rewadkar et al. | Cloud storage system enabling secure privacy preserving third party audit | |
Wang et al. | DPP: Data Privacy-Preserving for Cloud Computing based on Homomorphic Encryption | |
CN112887097A (zh) | 基于sm2椭圆曲线的签名方法、相关装置、及存储介质 | |
CN111711524A (zh) | 一种基于证书的轻量级外包数据审计方法 | |
CN111885056A (zh) | 基于区块链的零知识证明方法、装置及电子设备 | |
CN117150523B (zh) | 一种分布式电力协商隐私保护方法及装置、电子设备 | |
Li et al. | Privacy-preserving and verifiable outsourcing message transmission and authentication protocol in IoT |
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 |