CN110247759A - 一种sm9私钥生成和使用方法及*** - Google Patents
一种sm9私钥生成和使用方法及*** Download PDFInfo
- Publication number
- CN110247759A CN110247759A CN201910478593.5A CN201910478593A CN110247759A CN 110247759 A CN110247759 A CN 110247759A CN 201910478593 A CN201910478593 A CN 201910478593A CN 110247759 A CN110247759 A CN 110247759A
- Authority
- CN
- China
- Prior art keywords
- private key
- signature
- random bytes
- mark
- bytes string
- 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
Links
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/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/0863—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving passwords or one-time passwords
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Abstract
发明为SM9私钥生成及使用方法:为用户标识IDA生成对应的SM9签名私钥时,私钥生成器生成一个随机字节串,将其合并到IDA得到IDAE;计算t1=(H1(IDAE||hid,n)+s)mod n,n为SM9双线性映射群的阶,hid是私钥生成函数识别符;若t1=0,则重新生成随机字节串,合并得到IDAE,计算t1=(H1(IDAE||hid,n)+s)mod n,直到t1≠0;然后,计算t2=s(t1)‑1mod n,dA=[t2]P1,s是主私钥,P1是群G1的生成元;密码组件使用按此方法生成的SM9私钥dA对消息进行数字签名,使用所述合并了随机字节串的IDAE对消息的数字签名进行验证。
Description
技术领域
本发明属于信息安全技术领域,特别是一种SM9私钥生成和使用方法及***。
背景技术
SM9是由国家密码管理局颁布的一种基于双线性映射(配对运算)的标识密码算法,其中的双线性映射(配对运算)为:
e:G1×G2→GT时,其中G1、G2是加法循环群,GT是一个乘法循环群,G1、G2、GT的阶是素数n(注:在SM9规范中,G1、G2、GT的阶用的是大写字母N,本专利申请采用小写n),即若P、Q、R分别为G1、G2中的元,则e(P,Q)为GT中的元,且:
e(P+R,Q)=e(P,Q)e(R,Q),
e(P,Q+R)=e(P,Q)e(P,R),
e(aP,bQ)=e(P,Q)ab。
基于SM9密码算法能实现基于标识的数字签名、密钥交换及数据加密。
在SM9密码算法中,一个用户标识IDA所对应的用于签名的私钥由密钥生成中心(Key Generation Center,KGC)或私钥生成***的私钥生成器(Private Key Generator,PKG)按如下方式计算得到:
计算t1=(H1(IDA||hid,n)+s)mod n,其中H1是SM9规范中规定的散列算法,s是主私钥或主密钥,n为G1、G2、GT的阶,hid是用一个字节表示的私钥生成函数识别符,||表示字节串合并,mod n表示求模n余数运算(注:SM9规范中主私钥或主密钥使用的符号是ks,群G1、G2、GT的阶用的符号是N,与本专利申请文件略有不同);
若t1=0,则需重新产生主私钥,计算和公布主公钥,并更新已有用户的私钥;否则,计算t2=s(t1)-1mod n,dA=[t2]P1,其中(t1)-1是t1的模n乘法逆,P1为群G1的生成元,符号[]表示多个元(点)的加运算(数乘运算,参见SM9规范),则dA是用户标识IDA所对应的签名私钥。
这里当t1=0时,若按规范所说需重新产生主私钥,计算和公布主公钥,更新用户的私钥,那么,现有用户的标识私钥都得更换,这将产生很大的费用,花费用户很多的时间,最可怕的是,一旦出现这种情况,从无法产生用户SM9私钥的标识IDA可以很容易地推导出标识密码***之前使用的主私钥或主密钥s;若被恶意者利用,恶意者就可以生成任何他需要的标识私钥,这样就有可能出现大量的伪造的签名数据,比如有可能出现各种伪造的签名后的订单、合同等,这种危害将是巨大的。
虽然出现t1=0的概率极小,但是,在用户量大的情况下,这种概率极小的事件是完全可能发生的,就像世界上不少中巨奖的事情,从概率的角度是极小极小的,但是这种极小极小的事件却确实发生了。
需要指出的是,用于数据解密的标识私钥的生成同样会出现以上用户标识私钥无法产生、以及由此导致主私钥或主密钥被意外泄露的问题,但是,其危害要小于针对签名私钥的情况,因为这时,恶意者即便能生成他期望的标识私钥,但他可能无法获得被加密的数据,因此,也就无法解密获得明文数据,而且即便恶意者获得了被加密的数据,并通过生成相应的标识私钥解密了数据,这也仅仅造成信息泄露,而不会出现伪造的签名后的订单、合同等,不会产生财物损失、财务纠纷。
发明内容
本发明的目的是提出一种SM9签名私钥的生成、使用方法及相应的***,以避免在出现t1=0时所产生的各种问题,包括避免需重新产生主私钥,需要重新计算和公开主公钥,需要更新已有用户的私钥,以及避免由此泄露主私钥所产生的各种潜在问题。
本发明提出的SM9签名私钥生成方法具体如下。
当用户端的私钥获取客户端向服务端的私钥生成器(Private Key Generator,PKG)申请获取用户标识IDA所对应的SM9签名私钥时,私钥生成器按如下方式生成用户标识IDA所对应的签名私钥:
生成一个随机字节串E,将其合并到标识IDA中得到IDAE;
计算t1=(H1(IDAE||hid,n)+s)mod n,其中H1是SM9算法中规定的散列函数(杂凑函数),s是主私钥或主密钥,n为SM9算法中群G1、G2、GT的阶,hid是用一个字节表示的私钥生成函数识别符,||表示数据的字节串合并;
若t1=0,则重新生成随机字节串E,将其合并到IDA中得到IDAE,计算t1=(H1(IDAE||hid,n)+s)mod n,直到t1≠0;
若t1≠0,则计算t2=S(t1)-1mod n,dA=[t2]P1,其中P1是SM9中群G1的生成元;
私钥生成器将生成的SM9签名私钥dA和随机字节串E(或合并了随机字节串E的IDAE)返回给用户端的私钥获取客户端;
用户端的私钥获取客户端保存返回的SM9签名私钥dA,保存返回的随机字节串E(或合并了随机字节串E的IDAE),或者在返回的随机字节串E(或合并了随机字节串E的标识IDAE)的基础上形成新的数据;所述新的数据是用于签名验证或者辅助签名验证的数据(比如,包含随机字节串E或IDAE的数字证书、获取随机字节串E的索引信息);
所述私钥获取客户端是用户端的一个用于获取用户SM9私钥的程序;所述私钥生成器是一个为用户生成SM9标识私钥的服务***;
所述随机字节串E称为标识限定随机字节串;所述合并了随机字节串E的IDAE称为随机字节串E限定的标识;所述用户IDA本身是一个不包含(随机字节串E之外)其他限定信息的用户标识(比如手机号、电子邮箱地址),或者是一个包含(随机字节串E之外)其他限定信息的用户标识(比如,附加了时间期限的手机号、电子邮箱地址)。
对于以上所述的SM9签名私钥生成方法,私钥生成器将生成的随机字节串E合并到标识IDA中得到IDAE方式包括:按预定的格式将随机字节串E附加到IDA中(比如,将随机字节串E按字节串合并的方式附加到IDA后,或者在随机字节串E前面加上约定的连接符号或分隔符后,将加上了连接符号或分隔符的随机字节串E按字节串合并的方式附加到IDA后等等)。
基于以上所述SM9签名私钥生成方法,可构建相应的SM9私钥生成***,***包括服务端的私钥生成器和用户端的私钥获取客户端;当用户端的私钥获取客户端向私钥生成器请求获取用户标识IDA所对应的SM9签名私钥时,私钥生成器按所述SM9签名私钥生成方法生成用户标识IDA所对应的SM9签名私钥,并由私钥获取客户端保存。
按以上所述SM9签名私钥生成方法生成的SM9签名私钥的使用方法如下。
当对消息进行数字签名时,(签名方的)密码组件使用按所述SM9签名私钥生成方法生成的SM9签名私钥dA对消息进行数字签名;
当对消息的数字签名进行验证时,(验证方的)密码组件使用所述合并了(或包含有)随机字节串E的标识IDAE(以IDAE作为公钥)对消息的数字签名进行验证。
按以上所述SM9签名私钥使用方法使用按以上所述SM9私钥生成方法所生成的SM9签名私钥对消息进行数字签名,需要解决一个问题,如何使得进行签名验证的密码组件获得签名验证所需的合并了随机字节串E的标识IDAE?以下是三种可能的方式(不是全部)。
方式一:
密码组件使用SM9签名私钥dA对消息进行数字签名后所生成的签名的数据(Signed Data)中包含有标识限定随机字节串E,或者包含有随机字节串E限定的标识IDAE(由密码组件或其他组件放入);而在密码组件对签名的数据中的签名值(SignatureValue,签名值是最基础的数字签名数据,即通常所说的数字签名)进行验证前,密码组件或其他组件先从签名的数据中获取出之前填入的标识限定随机字节串E,然后将其与用户标识IDA合并得到随机字节串E限定的标识IDAE,或者密码组件或其他组件先从签名的数据中直接获得之前填入的随机字节串E限定的标识IDAE;在获得标识IDAE后,密码组件使用IDAE对签名的数据中的签名值(即数字签名)进行验证(关于签名的数据SignedData与签名值Signature Value之间的关系,可参考PKCS#7);所述其他组件是指密码组件之外的程序。
这种使用方式做到在签名的数据层面与现有的SM9签名私钥的使用方式一致。
方式二:
在对消息进行数字签名时,密码组件将标识限定随机字节串E作为填充或附加数据填充或附加到使用用户SM9签名私钥dA进行签名运算后所得到的签名值中(即签名运算得到的最基础的数字签名数据中);而在对消息的数字签名进行验证时,密码组件从签名值的填充或附加数据中获得标识限定随机字节串E,然后将获得的标识限定随机字节串E合并到用户标识IDA中,得到随机字节串E限定的标识IDAE,然后使用IDAE对剥离了填充或附加数据的签名值(即数字签名)进行验证;所述其他组件是指密码组件之外的程序。
这种使用方式做到签名值层面,即最基础的密码模块层面(比如,WindowS CSP、PKCS#11模块),与现有的SM9签名私钥的使用方式一致。
方式三:
在对消息进行数字签名时,密码组件或其他组件将获取随机字节串E限定的标识IDAE的索引信息放到使用SM9签名私钥dA对消息进行签名所生成的签名的数据(SignedData)或签名值(Signature Value)中,而在对消息的数字签名进行签名验证时,密码组件或其他组件先从签名的数据或签名值中获得IDAE的索引信息,然后利用索引信息获得随机字节串E限定的IDAE(比如从一个信息数据库、从公开发布的数据信息中等),然后利用获得的IDAE对消息的数字签名进行验证;所述其他组件是指密码组件之外的程序。
这种使用方式做到在签名的数据、或签名值、或应用层面与现有的SM9签名私钥的使用方式一致。
基于以上所述SM9签名私钥生成方法和SM9签名私钥使用方法,可构建相应的SM9密码***,***包括SM9私钥生成***和密码组件,而SM9私钥生成***又包括服务端的私钥生成器和用户端的私钥获取客户端;
当用户端的私钥获取客户端向私钥生成器请求获取用户标识IDA所对应的SM9签名私钥时,私钥生成器按前述SM9签名私钥生成方法生成用户标识IDA所对应的SM9签名私钥,由私钥获取客户端保存;
当对消息进行数字签名时,(签名方的)密码组件按所述SM9签名私钥使用方法对消息进行数字签名;
当对消息的数字签名进行验证时,(验证方的)密码组件按所述SM9签名私钥使用方法中所述的签名验证方式对消息的数字签名进行验证。
从以上描述可以看到,基于本发明的SM9签名私钥生成方法和***,在生成用户标识私钥IDA所对应的私钥dA的过程中,即便出现了t1=0的情况,也无需重新产生主私钥,无需重新计算和公布主公钥,无需更新已有用户的私钥,而且外界也不知道出了这种情况,从而避免了前面所说的当出现t1=0的情况时所产生的各种问题;而建立在本发明的SM9签名私钥生成方法基础上的SM9签名私钥使用方法,SM9签名私钥的使用方式与通常的SM9签名私钥的使用方式没有根本性的差别,而依据基于本发明的SM9签名私钥生成和使用方法所构建的密码***,数字签名应用程序能够像通常使用SM9签名私钥的方式对消息进行数字签名,对消息的数字签名进行签名验证。
附图说明
图1为本发明的SM9签名私钥获取、生成流程
图2为采用本发明SM9签名私钥生成方法的SM9签名私钥生成***
图3为采用本发明SM9签名私钥生成、使用方法的SM9密码***
具体实施方式
下面结合实施例对本发明作进一步的描述。以下实施例不代表全部可能的实施例,不作为对本发明的限定。
实施例1、
在本实施例中,如图1所示,当用户端的私钥获取客户端向私钥生成器申请获取用户标识IDA所对应的SM9签名私钥时,私钥生成器生成一个随机字节串E,将其合并到标识IDA中得到IDAE;计算t1=(H1(IDAE||hid,n)+s)mod n,其中n为SM9算法中群G1、G2、GT的阶,hid是用一个字节表示的私钥生成函数识别符(参见SM9规范);若t1=0,则重新生成随机字节串E,将其合并到IDA中得到标识IDAE,计算t1=(H1(IDAE||hid,n)+s)mod n,直到t1≠0,其中s是主私钥或主密钥;若t1≠0,计算t2=s(t1)-1mod n,dA=[t2]P1,其中P1是SM9中群G1的生成元;私钥生成器将生成的签名私钥dA和随机字节串E(或随机字节串E限定的标识IDAE)返回给用户端的私钥获取客户端;用户端的私钥获取客户端保存返回的SM9签名私钥dA,保存返回的随机字节串E(或随机字节串E限定的标识IDAE),或者在返回的随机字节串E(或随机字节串E限定的标识IDAE)的基础上形成新的数据,比如,包含随机字节串E或IDAE的数字证书、获取随机字节串E的索引信息。
在此实施例中,私钥生成器将生成的随机字节串E合并到标识IDA中得到受随机字节串E限定的IDAE的方式如下:
按预定的格式将随机字节串E附加到IDA中,比如,直接将随机字节串E按字节串合并的方式附加到IDA后,或者在随机字节串E前面加上约定的连接符号或分隔符,比如符号′#′或,|′或′%′,然后将加上了连接符号或分隔符的随机字节串E按字节串合并的方式附加到IDA后,比如,假如用户标识IDA是[email protected],而私钥生成时产生的随机字节串E是3Ayu75Xy8,则IDAE可以是:
[email protected]#3Ayu75Xy8,
或,[email protected]|3Ayu75Xy8,
或,[email protected]%3Ayu75Xy8。
再比如,假如用户标识IDA是加上时间有效期限定的标识:[email protected]|[2019:05:01-2019:0801],
而私钥生成时产生的随机字节串E是3Ayu75Xy8,则IDAE可以是:
[email protected]|[2019:05:01-2019:0801]#3Ayu75Xy8,
或,[email protected]|[2019:05:01-2019:0801]|3Ayu75Xy8,
或,[email protected]|[2019:05:01-2019:0801]%3Ayu75Xy8。
实施例2
此实施例是一个基于本发明的SM9签名私钥生成方法的SM9私钥生成***,如图2所示,此私钥生成***包括服务端的私钥生成器和用户端的私钥获取客户端;当用户端的私钥获取客户端向私钥生成器请求获取用户标识IDA所对应的SM9签名私钥时,私钥生成器按本发明的SM9签名私钥生成方法生成用户标识IDA所对应的SM9签名私钥,由私钥获取客户端保存。
实施本发明的SM9签名私钥使用方法的一个关键是在签名验证时如何方便地得到随机字串限定的标识IDEA,下面的实施例3、4、5给出了本发明的SM9签名私钥使用方法的三种可能实施方式(但不是全部)。
实施例3
此实施例是使用按前述SM9签名私钥生成方法生成的SM9签名私钥对消息进行数字签名的应用,具体地:
当对消息进行数字签名时,(签名方的)密码组件使用按所述SM9签名私钥生成方法生成的SM9签名私钥dA对消息进行数字签名;
当对消息的数字签名进行验证时,(验证方的)密码组件使用所述合并了(或包含有)随机字节串E的标识IDAE(以IDAE作为公钥)对消息的数字签名进行验证。
为了使得进行签名验证的密码组件获得签名验证所需的合并了随机字节串E的标识IDAE,密码组件使用SM9签名私钥dA对消息进行数字签名后所生成的签名的数据(SignedData)中包含有标识限定随机字节串E或随机字节串E限定的标识IDAE(由密码组件或其他组件放入);而在密码组件对签名的数据中的签名值(Signature Value,签名值是最基础的数字签名数据,即通常所说的数字签名)进行验证前,密码组件或其他组件先从签名的数据中获取出之前填入的标识限定随机字节串E,然后将其与用户标识IDA合并得到随机字节串E限定的标识IDAE,或者密码组件或其他组件先从签名的数据中直接获得之前填入的随机字节串E限定的标识IDAE;在获得标识IDAE后,密码组件使用IDAE对签名的数据中的签名值(即数字签名)进行验证(关于签名的数据,SignedData与签名值,Signature Value,之间的关系,可参考PKCS#7);所述其他组件是指密码组件之外的程序。
实施例4、
此实施例也是使用按前述SM9签名私钥生成方法生成的SM9签名私钥对消息进行数字签名的应用,具体地:
当对消息进行数字签名时,(签名方的)密码组件使用按所述SM9签名私钥生成方法生成的SM9签名私钥dA对消息进行数字签名;
当对消息的数字签名进行验证时,(验证方的)密码组件使用所述合并了(或包含有)随机字节串E的标识IDAE(以IDAE作为公钥)对消息的数字签名进行验证。
为了使得进行签名验证的密码组件获得签名验证所需的合并了随机字节串E的标识IDAE,在对消息进行数字签名时,密码组件将标识限定随机字节串E作为填充或附加数据填充或附加到使用用户SM9签名私钥dA进行签名运算后所得到的签名值中(即签名运算形成的最基础的数字签名数据中);而在对消息的数字签名进行验证时,密码组件从签名值的填充或附加数据中获得标识限定随机字节串E,然后将获得的标识限定随机字节串E合并到用户标识IDA中,得到随机字节串E限定的标识IDAE,然后使用IDAE对剥离了填充或附加数据的签名值(即数字签名)进行验证;所述其他组件是指密码组件之外的程序。
实施例5、
此实施例也是使用按前述SM9签名私钥生成方法生成的SM9签名私钥对消息进行数字签名的应用,具体地:
当对消息进行数字签名时,(签名方的)密码组件使用按所述SM9签名私钥生成方法生成的SM9签名私钥dA对消息进行数字签名;
当对消息的数字签名进行验证时,(验证方的)密码组件使用所述合并了(或包含有)随机字节串E的标识IDAE(以IDAE作为公钥)对消息的数字签名进行验证。
为了使得进行签名验证的密码组件获得签名验证所需的合并了随机字节串E的标识IDAE,在对消息进行数字签名时,密码组件或其他组件将获取随机字节串E限定的标识IDAE的索引信息放到使用SM9签名私钥dA对消息进行签名所生成的签名的数据(SignedData)或签名值(Signature Value)中,而在对消息的数字签名进行签名验证时,密码组件或其他组件从签名的数据或签名值中获得IDAE的索引信息,然后利用索引信息获得随机字节串E限定的IDAE(比如从一个信息数据库、从公开发布的数据信息中等),然后利用获得的IDAE对消息的数字签名进行签名验证;所述其他组件是指密码组件之外的程序。
实施例6、
此实施例是一个基于本发明的SM9签名私钥生成方法、SM9签名私钥使用方法的SM9密码***,如图3所示,***包括SM9私钥生成***和密码组件,而SM9私钥生成***又包括服务端的私钥生成器和用户端的私钥获取客户端;数字签名应用程序通过调用密码组件进行数字签名和签名验证操作;当用户端的私钥获取客户端向私钥生成器请求获取用户标识IDA所对应的SM9签名私钥时,私钥生成器按前述SM9签名私钥生成方法生成用户标识IDA所对应的SM9签名私钥,由私钥获取客户端保存;当对消息进行数字签名时,(签名方的)密码组件按前述SM9签名私钥使用方法对消息进行数字签名;当对消息的数字签名进行验证时,(验证方的)密码组件按前述SM9签名私钥使用方法中所述的签名验证方式对消息的数字签名进行验证。
其他未说明的具体技术实施,对于相关领域的技术人员而言是众所周知,不言自明的。
Claims (8)
1.一种SM9签名私钥生成方法,其特征是:
当用户端的私钥获取客户端向服务端的私钥生成器申请获取用户标识IDA所对应的SM9签名私钥时,私钥生成器按如下方式生成用户标识IDA所对应的签名私钥:
生成一个随机字节串E,将其合并到标识IDA中得到IDAE;
计算t1=(H1(IDAE||hid,n)+s)mod n,其中H1是SM9算法中规定的散列函数,s是主私钥或主密钥,n为SM9算法中群G1、G2、GT的阶,hid是用一个字节表示的私钥生成函数识别符,||表示数据的字节串合并;
若t1=0,则重新生成随机字节串E,将其合并到IDA中得到IDAE,计算t1=(H1(IDAE||hid,n)+s)mod n,直到t1≠0;
若t1≠0,则计算t2=s(t1)-1mod n,dA=[t2]P1,其中P1是SM9中群G1的生成元;
私钥生成器将生成的SM9签名私钥dA和随机字节串E返回给用户端的私钥获取客户端;
用户端的私钥获取客户端保存返回的SM9签名私钥dA,保存返回的随机字节串E,或者在返回的随机字节串E的基础上形成新的数据;所述新的数据是用于签名验证或者辅助签名验证的数据;
所述私钥获取客户端是用户端的一个用于获取用户SM9私钥的程序;所述私钥生成器是一个为用户生成SM9标识私钥的服务***;
所述随机字节串E称为标识限定随机字节串;所述合并了随机字节串E的IDAE称为随机字节串E限定的标识;所述用户IDA本身是一个不包含其他限定信息的用户标识,或者是一个包含其他限定信息的用户标识。
2.根据权利要求1所述的SM9签名私钥生成方法,其特征是:
私钥生成器将生成的随机字节串E合并到标识IDA中得到IDAE方式包括:按预定的格式将随机字节串E附加到IDA中。
3.一种基于权利要求1或2所述SM9签名私钥生成方法的SM9私钥生成***,其特征是:
所述私钥生成***包括服务端的私钥生成器和用户端的私钥获取客户端;当用户端的私钥获取客户端向私钥生成器请求获取用户标识IDA所对应的SM9签名私钥时,私钥生成器按所述SM9签名私钥生成方法生成用户标识IDA所对应的SM9签名私钥,并由私钥获取客户端保存。
4.一种基于权利要求1所述SM9签名私钥生成方法的SM9签名私钥使用方法,其特征是:
当对消息进行数字签名时,密码组件使用按所述SM9签名私钥生成方法生成的SM9签名私钥dA对消息进行数字签名;
当对消息的数字签名进行验证时,密码组件使用所述合并了随机字节串E的标识IDAE对消息的数字签名进行验证。
5.根据权利要求4所述的SM9签名私钥使用方法,其特征是:使得进行签名验证的密码组件获得签名验证所需的合并了随机字节串E的标识IDAE的一种方法如下:
密码组件使用SM9签名私钥dA对消息进行数字签名后所生成的签名的数据中包含有标识限定随机字节串E,或者包含有随机字节串E限定的标识IDAE;而在密码组件对签名的数据中的签名值进行验证前,密码组件或其他组件先从签名的数据中获取出之前填入的标识限定随机字节串E,然后将其与用户标识IDA合并得到随机字节串E限定的标识IDAE,或者密码组件或其他组件先从签名的数据中直接获得之前填入的随机字节串E限定的标识IDAE;在获得标识IDAE后,密码组件使用IDAE对签名的数据中的签名值进行验证;所述其他组件是指密码组件之外的程序。
6.根据权利要求4所述的SM9签名私钥使用方法,其特征是:使得进行签名验证的密码组件获得签名验证所需的合并了随机字节串E的标识IDAE的一种方法如下:
在对消息进行数字签名时,密码组件将标识限定随机字节串E作为填充或附加数据填充或附加到使用用户SM9签名私钥dA进行签名运算后所得到的签名值中;而在对消息的数字签名进行验证时,密码组件从签名值的填充或附加数据中获得标识限定随机字节串E,然后将获得的标识限定随机字节串E合并到用户标识IDA中,得到随机字节串E限定的标识IDAE,然后使用IDAE对剥离了填充或附加数据的签名值进行验证;所述其他组件是指密码组件之外的程序。
7.根据权利要求4所述的SM9签名私钥使用方法,其特征是:使得进行签名验证的密码组件获得签名验证所需的合并了随机字节串E的标识IDAE的一种方法如下:
在对消息进行数字签名时,密码组件或其他组件将获取随机字节串E限定的标识IDAE的索引信息放到使用SM9签名私钥dA对消息进行签名所生成的签名的数据或签名值中,而在对消息的数字签名进行签名验证时,密码组件或其他组件先从签名的数据或签名值中获得IDAE的索引信息,然后利用索引信息获得随机字节串E限定的IDAE,然后利用获得的IDAE对消息的数字签名进行验证;所述其他组件是指密码组件之外的程序。
8.一种基于权利要求4-7中任一项所述SM9签名私钥使用方法的SM9密码***,其特征是:
所述SM9密码***包括SM9私钥生成***和密码组件,而SM9私钥生成***又包括服务端的私钥生成器和用户端的私钥获取客户端;
当用户端的私钥获取客户端向私钥生成器请求获取用户标识IDA所对应的SM9签名私钥时,私钥生成器按前述SM9签名私钥生成方法生成用户标识IDA所对应的SM9签名私钥,由私钥获取客户端保存;
当对消息进行数字签名时,密码组件按所述SM9签名私钥使用方法对消息进行数字签名;
当对消息的数字签名进行验证时,密码组件按所述SM9签名私钥使用方法中所述的签名验证方式对消息的数字签名进行验证。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910478593.5A CN110247759B (zh) | 2019-06-03 | 2019-06-03 | 一种sm9私钥生成和使用方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910478593.5A CN110247759B (zh) | 2019-06-03 | 2019-06-03 | 一种sm9私钥生成和使用方法及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110247759A true CN110247759A (zh) | 2019-09-17 |
CN110247759B CN110247759B (zh) | 2020-07-10 |
Family
ID=67885881
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910478593.5A Active CN110247759B (zh) | 2019-06-03 | 2019-06-03 | 一种sm9私钥生成和使用方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110247759B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111064564A (zh) * | 2019-12-31 | 2020-04-24 | 武汉理工大学 | 一种sm9签名私钥生成和数字签名方法及***和装置 |
CN111082932A (zh) * | 2019-12-25 | 2020-04-28 | 武汉理工大学 | 一种抗抵赖的标识私钥生成和数字签名方法及***和装置 |
CN111262691A (zh) * | 2020-01-07 | 2020-06-09 | 武汉理工大学 | 基于混合主密钥的标识私钥生成及使用方法及***和装置 |
CN111866547A (zh) * | 2020-07-30 | 2020-10-30 | 北京万协通信息技术有限公司 | 一种新型视频防篡改的方法 |
CN115174100A (zh) * | 2022-06-21 | 2022-10-11 | 武汉理工大学 | 一种针对gRPC数据的密码处理方法及*** |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR914757A (fr) * | 1944-11-10 | 1946-10-17 | Ericsson Telefon Ab L M | Dispositif de déconnexion des faux appels en téléphonie automatique |
CN104753917A (zh) * | 2013-12-30 | 2015-07-01 | 三星Sds株式会社 | 基于id的密钥管理***及方法 |
CN107395368A (zh) * | 2017-08-18 | 2017-11-24 | 北京无字天书科技有限公司 | 无介质环境中的数字签名方法及解密封方法与解密方法 |
CN107566128A (zh) * | 2017-10-10 | 2018-01-09 | 武汉大学 | 一种两方分布式sm9数字签名生成方法与*** |
CN107579819A (zh) * | 2017-09-13 | 2018-01-12 | 何德彪 | 一种sm9数字签名生成方法及*** |
CN107819585A (zh) * | 2017-11-17 | 2018-03-20 | 武汉理工大学 | Sm9数字签名协同生成方法及*** |
CN107864037A (zh) * | 2017-10-25 | 2018-03-30 | 深圳奥联信息安全技术有限公司 | Sm9联合数字签名方法和装置 |
CN108259179A (zh) * | 2016-12-29 | 2018-07-06 | 航天信息股份有限公司 | 一种基于sm9标识密码算法的加解密协处理器及其运算方法 |
CN108418686A (zh) * | 2017-11-23 | 2018-08-17 | 矩阵元技术(深圳)有限公司 | 一种多分布式的sm9解密方法与介质及密钥生成方法 |
CN108551392A (zh) * | 2018-04-13 | 2018-09-18 | 武汉大学 | 一种基于sm9数字签名的盲签名生成方法及*** |
CN109361519A (zh) * | 2018-12-07 | 2019-02-19 | 武汉理工大学 | 一种改进的包含秘密的数的生成方法及*** |
-
2019
- 2019-06-03 CN CN201910478593.5A patent/CN110247759B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR914757A (fr) * | 1944-11-10 | 1946-10-17 | Ericsson Telefon Ab L M | Dispositif de déconnexion des faux appels en téléphonie automatique |
CN104753917A (zh) * | 2013-12-30 | 2015-07-01 | 三星Sds株式会社 | 基于id的密钥管理***及方法 |
CN108259179A (zh) * | 2016-12-29 | 2018-07-06 | 航天信息股份有限公司 | 一种基于sm9标识密码算法的加解密协处理器及其运算方法 |
CN107395368A (zh) * | 2017-08-18 | 2017-11-24 | 北京无字天书科技有限公司 | 无介质环境中的数字签名方法及解密封方法与解密方法 |
CN107579819A (zh) * | 2017-09-13 | 2018-01-12 | 何德彪 | 一种sm9数字签名生成方法及*** |
CN107566128A (zh) * | 2017-10-10 | 2018-01-09 | 武汉大学 | 一种两方分布式sm9数字签名生成方法与*** |
CN107864037A (zh) * | 2017-10-25 | 2018-03-30 | 深圳奥联信息安全技术有限公司 | Sm9联合数字签名方法和装置 |
CN107819585A (zh) * | 2017-11-17 | 2018-03-20 | 武汉理工大学 | Sm9数字签名协同生成方法及*** |
CN108418686A (zh) * | 2017-11-23 | 2018-08-17 | 矩阵元技术(深圳)有限公司 | 一种多分布式的sm9解密方法与介质及密钥生成方法 |
CN108551392A (zh) * | 2018-04-13 | 2018-09-18 | 武汉大学 | 一种基于sm9数字签名的盲签名生成方法及*** |
CN109361519A (zh) * | 2018-12-07 | 2019-02-19 | 武汉理工大学 | 一种改进的包含秘密的数的生成方法及*** |
Non-Patent Citations (1)
Title |
---|
袁峰: ""SM9标识密码算法综述"", 《信息安全研究》 * |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111082932A (zh) * | 2019-12-25 | 2020-04-28 | 武汉理工大学 | 一种抗抵赖的标识私钥生成和数字签名方法及***和装置 |
CN111082932B (zh) * | 2019-12-25 | 2023-03-28 | 武汉理工大学 | 一种抗抵赖的标识私钥生成和数字签名方法及***和装置 |
CN111064564A (zh) * | 2019-12-31 | 2020-04-24 | 武汉理工大学 | 一种sm9签名私钥生成和数字签名方法及***和装置 |
CN111064564B (zh) * | 2019-12-31 | 2023-03-28 | 武汉理工大学 | 一种sm9签名私钥生成和数字签名方法及***和装置 |
CN111262691A (zh) * | 2020-01-07 | 2020-06-09 | 武汉理工大学 | 基于混合主密钥的标识私钥生成及使用方法及***和装置 |
CN111262691B (zh) * | 2020-01-07 | 2023-04-25 | 武汉理工大学 | 基于混合主密钥的标识私钥生成及使用方法及***和装置 |
CN111866547A (zh) * | 2020-07-30 | 2020-10-30 | 北京万协通信息技术有限公司 | 一种新型视频防篡改的方法 |
CN115174100A (zh) * | 2022-06-21 | 2022-10-11 | 武汉理工大学 | 一种针对gRPC数据的密码处理方法及*** |
CN115174100B (zh) * | 2022-06-21 | 2024-04-12 | 武汉理工大学 | 一种针对gRPC数据的密码处理方法及*** |
Also Published As
Publication number | Publication date |
---|---|
CN110247759B (zh) | 2020-07-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110247759A (zh) | 一种sm9私钥生成和使用方法及*** | |
CN107579819B (zh) | 一种sm9数字签名生成方法及*** | |
CN103490901B (zh) | 基于组合密钥体系的密钥生成和发放方法 | |
CN107196966A (zh) | 基于区块链的多方信任的身份认证方法和*** | |
EP2372948A1 (en) | Method, device, and system for an identity-based forward-secure digital signature | |
EP2285040A1 (en) | Two-factor combined public key generation and authentication method | |
CN111010272B (zh) | 一种标识私钥生成和数字签名方法及***和装置 | |
EP2302834A2 (en) | System and method for providing credentials | |
CN112311538B (zh) | 一种身份验证的方法、装置、存储介质及设备 | |
CN107707358A (zh) | 一种ec‑kcdsa数字签名生成方法及*** | |
CN113067823B (zh) | 邮件用户身份认证和密钥分发方法、***、设备及介质 | |
CN106899413B (zh) | 数字签名验证方法及*** | |
CN108881279B (zh) | 一种移动健康医疗传感器数据隐私保护方法 | |
CN108551435B (zh) | 一种具有匿名性的可验证加密群签名方法 | |
CN104753680A (zh) | 一种车载自组织网络中的隐私保护与认证方法 | |
CN110138567A (zh) | 一种基于ecdsa的协同签名方法 | |
CN108989054A (zh) | 一种密码***及数字签名方法 | |
CN108768975A (zh) | 支持密钥更新和第三方隐私保护的数据完整性验证方法 | |
JP2015501110A (ja) | グループ暗号化方法およびデバイス | |
CN103634788A (zh) | 前向安全的无证书多代理签密方法 | |
CN109245899A (zh) | 一种基于sm9密码算法新型信任链设计方法 | |
CN111541666A (zh) | 基于无证书且含隐私保护功能的云端数据完整性审计方法 | |
CN104734847B (zh) | 面向公钥密码应用的共享对称密钥数据加密和解密方法 | |
CN114095181A (zh) | 一种基于国密算法的门限环签名方法及*** | |
CN114448641A (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 |