CN109274506B - 一种基于国密sm2的无证书签名方法 - Google Patents
一种基于国密sm2的无证书签名方法 Download PDFInfo
- Publication number
- CN109274506B CN109274506B CN201811403486.8A CN201811403486A CN109274506B CN 109274506 B CN109274506 B CN 109274506B CN 201811403486 A CN201811403486 A CN 201811403486A CN 109274506 B CN109274506 B CN 109274506B
- Authority
- CN
- China
- Prior art keywords
- signature
- verification
- signer
- verifier
- secret
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本发明公开了一种基于国密算法的无证书签名方法。本发明在签名生成时,B根据随机选择参与签名生成的秘密参数计算参与签名生成的参数,并发送给A。A随机选择参与签名验证的秘密参数,结合此参数生成消息发送给B。在签名验证时,B根据参与签名生成的秘密参数来验证A的签名公钥是否有效,若无效,验证失败,反之,继续验证。B计算某一参数,并发送给A。A通过此参数验证B是否按照正确的步骤完成签名验证,若B符合正确执行步骤,则发送包含上述秘密值的参数,否则,终止签名。B接收A的验证参数并参与后续签名验证,最终产生结果。本发明在服务器与移动终端协作参与签名与验证过程中,能够防止敌手控制其中一方谋私。
Description
技术领域
本发明涉及信息安全技术领域,尤其涉及一种基于国密算法的无证书签名方法,并且在签名生成与验证过程中需要签名双方共同参与。
背景技术
随着信息时代的发展和大数据的应用,移动智能终端得到广泛的普及,用户使用移动终端访问网络处理业务的现象越来越普遍,但是由于移动终端本身的安全防护能力较差,无法对密钥进行有效的防护,因此需要一种安全高效的终端与服务器协作签名方案来确保网络业务的安全性。
基于此,本发明提出了一种国密算法的无证书签名方法,签名公私钥无需一个可信中心来分发,即使敌手获取部分私钥也不能恢复出完整的私钥,同时终端和服务器之间交互的参数均能通过公开信道传输;服务器与移动终端协作参与签名与验证过程,防止敌手控制其中一方谋私,实现了双方的安全通信。
发明内容
为了弥补现有技术的不足,本发明提供一种基于国密算法的双方合作无证书签名方法及系统。
本发明解决其技术问题所采用的技术方案是:
步骤1)系统建立与初始化,密钥生成中心生成系统主公私钥对。
步骤2)签名方A和验证方B分别向密钥生成中心提取各自的部分私钥,并结合各自随机选择的秘密值生成私钥和公钥。
步骤3)签名生成时,首先验证方B根据随机选择参与签名生成的秘密参数计算参与签名生成的参数,并发送给签名方A;签名方A随机选择参与签名验证的秘密参数,结合此参数生成消息发送给验证方B。
步骤4)签名验证时,验证方B根据参与签名生成的秘密参数来验证签名方A的签名公钥是否有效,若无效,验证失败,反之,继续验证;验证方B计算某一参数,并发送给签名方A;签名方A通过此参数验证验证方B是否按照正确的步骤完成签名验证,若验证方B符合正确执行步骤,则发送包含秘密值的参数,否则,终止签名;验证方B接收签名方A的验证参数并参与后续签名验证,最终产生结果。
具体包括以下步骤:
1)系统初始化,KGC(密钥生成中心)生成系统主公私钥对(s,Ps),其中Ps=s·P。
2)签名双方(A为签名方,B为验证方)分别向KGC提取各自的部分私钥{sA,DA,hA}和{sB,DB,hB}。
3)签名双方随机选择各自的签名秘密值uA∈[1,n-1]和uB∈[1,n-1],并结合各自的部分私钥生成签名私钥SKA={skA,hA}、SKB={skB,hB},和公钥PubA={PKA,PhA}、PubB={PKB,PhB},其中,A和B的公私钥对满足PKi=ski·P和Phi=hi·Ps。
4)签名生成时,B随机选择v∈[1,n-1],并发送签名参数N=v·P给A。A随机选择q∈[1,n-1],计算:
(xv,yv)=skA·N+skA·PKB,
M=H1((hA+yv)·(PhB+yv·Ps),m),
LA=(skA+xv)P=(xA,yA),
V=(xv·xA·skA+q)PKB,
e1=H1(V,M),
生成消息m签名:σ={LA,e1},并将签名发送给B。其中,H1(*)为国密SM3算法。
5)签名验证时,B计算:(x′v,y′v)=(v+skB)·PKA,将LA-PKA和x′v·P比较,若不同验证失败,反之,继续验证。
B根据LA=(xA,yA)计算E=x′v·xA·skB·PKA,将E发送至A。
A计算:E+q·PKB,并与V比较,若不同,验证失败;反之,A将Q=q·P发送给B。
B接收Q后计算:
V′=E+skB·Q,
M′=H1((hB+y′v)·(PhA+y′v·Ps),m),
e′1=H1(V′,M′)。
B通过验证e′1和e1,若相等,则签名验证成功,否则接收到的Q可能受到篡改,验证失败。
本发明产生的有益效果是:本发明适用于无可信中心分发签名公私钥的双方安全通信的场景,本发明中签名公私钥无需一个可信中心来分发,且双方在签名生成和验证过程中交互的参数皆通过公开信道传输;签名生成与验证过程必须有签名方与验证方参与,且在通信过程中或完成时,通信双方都无法得到对方的私钥信息,保证了签名私钥的安全性,提高了双方参与签名的公平性。
附图说明
图1是本发明实施例的系统建立步骤示意图;
图2是本发明实施例的用户提取部分私钥与用户生成签名密钥步骤示意图;
图3是本发明实施例的双方合作生成签名步骤示意图;
图4是本发明实施例的双方合作验证签名步骤示意图。
具体实施方式
为使本发明的目的、技术方案及优点更加清晰,以下结合实施例,对本发明进行进一步的详细说明。
本发明提出了一种基于国密算法的无证书签名方法,下面给出具体描述。
符号及定义
实施步骤,如图1-图4所示:
1、系统建立:输入安全参数k,KGC(密钥生成中心)选择一个大素数p和椭圆曲线:Ep(a,b):y2=x3+ax+b(mod p),其中a,b,x和y均在有限域GFp中,且满足:4a3+27b2(mod p)≠0。在Ep(a,b)中选取生成元点P。定义G1是由P生成的在Ep(a,b)上的加法循环群,阶为满足安全需求的素数n,定义SM2算法中使用的SM3密码杂凑算法为:H1:密钥生成中心随机选择主密钥s∈[1,n-1],计算主公钥:Ps=s·Ps。发布系统参数:{Ep(a,b),G1,n,P,Ps,H1}。
2、用户获取部分私钥:KGC随机选取ri∈[1,n-1],计算:Di=ri·P,根据用户的IDi计算:hi=H1(Di,IDi),生成用户的部分私钥:si=ri+hi·S,将{si,Di,hi}通过安全信道发送给用户。
3、用户生成签名密钥:用户接收KGC的部分私钥后进行验证:Di+hi·Ps和si·P是否相等,若不相等,则接收的部分私钥无效;若相等,则接收的部分私钥有效,并进行如下操作:
用户随机选取ui∈[1,n-1]作为用户的秘密值,计算:ski=si·ui,生成签名私钥SKi={ski,hi};计算:PKi=ski·P和Phi=hi·Ps,生成公钥:Pubi={PKi,Phi}。
4、双方合作生成签名:此处假设用户A为签名方,用户B为验证方。
用户B随机选取参与签名的秘密参数:v∈[1,n-1],计算:N=v·P,并将N通过公开信道发送给用户A。
用户A随机选取参与签名验证的秘密参数:q∈[1,n-1],计算:
(xv,yv)=skA·N+skA·PKB
M=H1((hA+yv)·(PhB+yv·Ps),m)
LA=(skA+xv)P=(xA,yA)
V=(xv·xA·skA+q)PKB,
e1=H1(V,M)
生成消息m的签名:σ={LA,e1},并将签名通过公开信道发送用户B进行验证。
5、双方合作验证签名:用户B接收签名σ={LA,e1},进行如下操作:
①验证公钥的有效性:用户B根据参与签名的秘密参数v计算:(x′v,y′v)=(v+skB)·PKA。用户B计算:LA-PKA,并和x′v·P比较,若不同,则此公钥不能验证此消息,验证失败;若相同,则此公钥有效,继续向下验证。
②验证签名的有效性:用户B根据LA=(xA,yA)计算:E=x′v·xA·skB·PKA,将E通过公开信道发送至用户A。
用户A根据参与签名验证的秘密参数q计算:E+q·PKB,并与V比较,若不同,则用户B未按照正确的验证步骤进行验证,则终止签名验证,签名验证失败;若相同,用户A将Q=q·P通过公开信道发送给用户B。
用户B接收Q进行计算:
V′=E+skB·Q
M′=H1((hB+y′v)·(PhA+y′v·Ps),m)
e′1=H1(V′,M′)
将e′1和e1进行比较,若不同,则用户A发送的Q可能受到篡改,签名验证失败;若相同,签名验证成功。
本发明实现了安全实用的基于国密算法的双方合作无证书签名,签名过程中无需可信中心分配签名公私钥,且在签名生成与验证过程中,通信双方均不会暴露各自的公私钥,同时签名的生成与验证过程中,签名双方必须共同参与,从而防止敌手控制其中一方谋私,实现了双方的安全通信。
Claims (1)
1.一种基于国密SM2的无证书签名方法,其特征在于,包括以下步骤:
步骤1)系统建立与初始化,密钥生成中心生成系统主公私钥对,具体是:
输入安全参数k,密钥生成中心选择一个大素数p和椭圆曲线Ep(a,b):
Ep(a,b):y2=x3+ax+b(mod p)
其中a,b,x和y均在有限域GFp中,且满足:4a3+27b2(mod p)≠0;
密钥生成中心随机选择主密钥s∈[1,n-1],计算主公钥:Ps=s·Ps,发布系统参数:{Ep(a,b),G1,n,P,Ps,H1},Ps表示密钥生成中心主公钥;
步骤2)签名方A和验证方B分别向密钥生成中心提取各自的部分私钥,并结合各自随机选择的秘密值生成私钥和公钥,具体是:
签名方A和验证方B分别向密钥生成中心提取各自的部分私钥{sA,DA,hA}和{sB,DB,hB};双方随机选择各自的签名秘密值uA∈[1,n-1]和uB∈[1,n-1],并结合各自的部分私钥生成签名私钥SKA={skA,hA}、SKB={skB,hB},和公钥PubA={PKA,PhA}、PubB={PKB,PhB},其中,A和B的公私钥对满足PKi=ski·P和Phi=hi·Ps;
步骤3)签名生成时,首先验证方B根据随机选择参与签名生成的秘密参数计算参与签名生成的参数,并发送给签名方A;签名方A随机选择参与签名验证的秘密参数,结合此参数生成消息发送给验证方B,具体是:
签名生成时,验证方B随机选择v∈[1,n-1],并发送签名参数N=v·P给签名方A;签名方A随机选择q∈[1,n-1],计算:
(xv,yv)=skA·N+skA·PKB,
M=H1((hA+yv)·(PhB+yv·Ps),m),
LA=(skA+xv)P=(xA,yA),
V=(xv·xA·skA+q)PKB,
e1=H1(V,M),
生成消息m签名:σ={LA,e1},并将签名发送给验证方B,其中,H1(*)为国密SM3算法;
步骤4)签名验证时,验证方B根据参与签名生成的秘密参数来验证签名方A的签名公钥是否有效,若无效,验证失败,反之,继续验证;验证方B计算某一参数,并发送给签名方A;签名方A通过此参数验证验证方B是否按照正确的步骤完成签名验证,若验证方B符合正确执行步骤,则发送包含秘密值的参数,否则,终止签名;验证方B接收签名方A的验证参数并参与后续签名验证,最终产生结果,具体是:
签名验证时,验证方B计算:(x′v,y′v)=(v+skB)·PKA,将LA-PKA和x′v·P比较,若不同验证失败,反之,继续验证;
验证方B根据LA=(xA,yA)计算E=x′v·xA·skB·PKA,将E发送至签名方A;签名方A计算:E+q·PKB,并与V比较,若不同,验证失败;反之,签名方A将Q=q·P发送给验证方B;
验证方B接收Q后计算:
V′=E+skB·Q,
M′=H1((hB+y′v)·(PhA+y′v·Ps),m),
e′1=H1(V′,M′);
验证方B通过比较e′1和e1,若相等,则签名验证成功,否则接收到的Q可能受到篡改,验证失败。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811403486.8A CN109274506B (zh) | 2018-11-23 | 2018-11-23 | 一种基于国密sm2的无证书签名方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811403486.8A CN109274506B (zh) | 2018-11-23 | 2018-11-23 | 一种基于国密sm2的无证书签名方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109274506A CN109274506A (zh) | 2019-01-25 |
CN109274506B true CN109274506B (zh) | 2021-04-02 |
Family
ID=65191376
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811403486.8A Active CN109274506B (zh) | 2018-11-23 | 2018-11-23 | 一种基于国密sm2的无证书签名方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109274506B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110233725B (zh) * | 2019-05-29 | 2021-10-19 | 西安邮电大学 | 多源网络编码的同态无证书签名方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104539423A (zh) * | 2014-12-16 | 2015-04-22 | 熊荣华 | 一种无双线性对运算的无证书公钥密码体制的实现方法 |
CN105187208A (zh) * | 2015-06-12 | 2015-12-23 | 电子科技大学 | 非授权的基于无证书的强指定验证者签名体制 |
CN107204846A (zh) * | 2017-05-31 | 2017-09-26 | 北京中金国信科技有限公司 | 数字签名生成方法、系统、节点模块及共同随机数协商确定方法 |
CN107248909A (zh) * | 2017-03-16 | 2017-10-13 | 北京百旺信安科技有限公司 | 一种基于sm2算法的无证书安全签名方法 |
WO2018211757A1 (ja) * | 2017-05-15 | 2018-11-22 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ | 検証方法、検証装置およびプログラム |
-
2018
- 2018-11-23 CN CN201811403486.8A patent/CN109274506B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104539423A (zh) * | 2014-12-16 | 2015-04-22 | 熊荣华 | 一种无双线性对运算的无证书公钥密码体制的实现方法 |
CN105187208A (zh) * | 2015-06-12 | 2015-12-23 | 电子科技大学 | 非授权的基于无证书的强指定验证者签名体制 |
CN107248909A (zh) * | 2017-03-16 | 2017-10-13 | 北京百旺信安科技有限公司 | 一种基于sm2算法的无证书安全签名方法 |
WO2018211757A1 (ja) * | 2017-05-15 | 2018-11-22 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ | 検証方法、検証装置およびプログラム |
CN107204846A (zh) * | 2017-05-31 | 2017-09-26 | 北京中金国信科技有限公司 | 数字签名生成方法、系统、节点模块及共同随机数协商确定方法 |
Non-Patent Citations (1)
Title |
---|
安全的无证书聚合签名方案;陈虎;《软件学报》;20150515;1-9 * |
Also Published As
Publication number | Publication date |
---|---|
CN109274506A (zh) | 2019-01-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107947913B (zh) | 一种基于身份的匿名认证方法与系统 | |
CN108667626B (zh) | 安全的两方协作sm2签名方法 | |
US10903991B1 (en) | Systems and methods for generating signatures | |
CN107634836B (zh) | 一种sm2数字签名生成方法及系统 | |
CN101238677B (zh) | 使用以非一次一密加密进行加密的签名密钥的加密认证和/或共享加密密钥的建立、包括(但不限于)对可延展攻击具有改进安全性的技术 | |
CN107659395B (zh) | 一种多服务器环境下基于身份的分布式认证方法及系统 | |
CN108199835B (zh) | 一种多方联合私钥解密方法 | |
CN107248909B (zh) | 一种基于sm2算法的无证书安全签名方法 | |
CN101902476B (zh) | 移动p2p用户身份认证方法 | |
CN111934877B (zh) | 一种sm2协同门限签名方法、存储介质及电子装置 | |
CN113572603B (zh) | 一种异构的用户认证和密钥协商方法 | |
CN106936584B (zh) | 一种无证书公钥密码系统的构造方法 | |
CN110545169B (zh) | 基于非对称密钥池和隐式证书的区块链方法和系统 | |
CN111049647B (zh) | 一种基于属性门限的非对称群组密钥协商方法 | |
CN111630810A (zh) | 密钥交换装置、密钥交换系统、密钥交换方法及密钥交换程序 | |
CN115208586B (zh) | 一种基于秘密分享的数字签名方法及系统 | |
CN116707788A (zh) | 一种适用于车联网环境的基于物理安全的认证密钥协商方法 | |
CN113132104A (zh) | 一种主动安全的ecdsa数字签名两方生成方法 | |
CN113098681B (zh) | 云存储中口令增强且可更新的盲化密钥管理方法 | |
CN104618113A (zh) | 一种移动端身份认证及安全信道建立的方法 | |
CN112653554B (zh) | 一种签名方法、系统、设备及可读存储介质 | |
CN111669275B (zh) | 一种无线网络环境下可选择从节点的主从协作签名方法 | |
CN109274506B (zh) | 一种基于国密sm2的无证书签名方法 | |
CN111191262B (zh) | 一种基于两方签名的区块链钱包客户端私钥保护方法 | |
CN110971404B (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 | ||
CB03 | Change of inventor or designer information | ||
CB03 | Change of inventor or designer information |
Inventor after: Han Song Inventor after: Han Shu Inventor after: Wang Xue Inventor after: Li Zhimin Inventor before: Han Shu Inventor before: Han Song Inventor before: Wang Xue Inventor before: Li Zhimin |
|
GR01 | Patent grant | ||
GR01 | Patent grant |