本发明属于密码工程领域,具体涉及一种可秘密共享的隐藏身份SM2签名私钥产生装置及其方法。
背景技术
数字证书是互联网中机构、个人、设备、代码等的身份证明,利用数字证书,可以实现虚拟世界的身份认证、行为识别、数据签名、行为抗抵赖,合同签订、电子交易等等工作。
数字证书使用过程中,需要在线验证是否为权威数字证书服务机构发放的,且未过期的证书,才能确保使用者身份的真实性和有效性。随着5G技术、移动互联网的快速发展,甚至智能网联汽车的高速发展,越来越多的终端计算能力有限,需要并发处理的数据越来越多,例如自动驾驶技术实现后,汽车网关每秒钟需要接收数千条指令,如果每一条指令都需要通过网络来查询数据来源有效及时效性,网关的计算资源将成为限制应用的瓶颈。
另一方面,随着移动互联网技术的发展,移动智能终端中应用越来越多,对其中的安全数据保护将越来越困难,数字证书使用的签名私钥的保护极为困难。
技术实现要素:
本发明的目的是设计一种可秘密共享的隐藏身份SM2签名私钥产生装置及其方法,可对该私钥对应的数字证书通过离线方式核实其身份及其时效性,同时支持该私钥拆分成两份,一份存放在客户端,另一份存放在服务端,通过联合签名的方式实现对数据的签名。
同时该方法也[可选择]支持将私钥全部由客户端保存,客户端可自行产生数字签名。
为达到上述目的,本发明的技术方案是这样实现的:
为了移动互联网隐私数据保护难题及在线查询证书难题,本发明提出了一种可秘密共享的隐藏身份SM2签名私钥产生装置及其方法。
所述装置主要包括服务端SM2算法模块、根证书发布模块、随机数生成模块,客户端SM2算法模块和随机数生成模块。
所述服务端SM2算法模块、根证书发布模块和随机数生成模块,主要用于产生根密钥对,发布根证书,以及用于产生客户端签名私钥的另外一部分因子。
所述客户端SM2算法模块和随机数生成模块,主要用于产生客户端签名私钥一部分因子。
所述私钥产生过程为:
A1、服务器端产生并发布根证书,Ppub=s·G,其中s∈[1,n-1],s为服务端系统主私钥,G为SM2算法椭圆曲线基点;
A2、客户端产生随机数d1∈[1,n-1],作为客户端的签名私钥的一部分因子,计算并向服务端发送并公开发布D1=[d1]G;
A3、服务端确认客户端身份,为其产生或由系统派生随机数ds∈[1,n-1],作为客户端的签名私钥的另外一部分因子,计算并公开发布Ds=[ds]G;
注:通过系统参数派生的随机数ds,可通过系统参数计算,而不是存储获得。
A4、服务端计算并公开发布Q=[ds h·s]D1,h是Hash(XD1||YD1||XDs||YDs||IDc)按照GB/T32918.1给出的方法转化的整数,Hash是SM3密码杂凑算法,XD1、YD1,XDs、YDs是D1和Ds的x,y坐标值,IDc是客户端可包含有效时间的身份唯一标识;或者也可由客户端计算并发布Q=[d1](Ds [h]Ppub);此时,任一验证方可向客户端验证Q中包括用户身份d1,验证方法后述;
注:A4中所提验证方法:
B1、验证方产生随机数r∈[1,n-1],计算并向被验证方(上述客户端)发送R=[r](Ds [h]Ppub);
B2、被验证方计算并向验证方发送Dr=[d1]R;
B3、验证方计算[r]Q,如果等于Dr,则通过验证。提示:该步骤中的[r]Q可预先计算。
A5、[可选,非秘密共享机制]服务端将ds h·s mod n秘密发送给客户端,可采用D1作为加密公钥秘密发送,客户端产生SM2签名私钥d=d1-1(ds h·s)-1-1mod n;
A6、服务端产生并签发公钥P=[ds h·s]-1([d1]-1G)-G。
本发明所提供的SM2签名私钥产生装置及其方法,具有以下优点:
1.解决了客户端数据保护能力不足;
2.无法提供实时证书查询时,能够产生可秘密共享的隐藏身份的公私钥对;
本发明的提出实现了离线认证和在线联合签名两种安全防护措施的有效融合。
附图说明
图1为本发明隐藏客户端身份的SM2签名公私钥产生过程图;
具体实施方式
下面结合实施例对本发明可秘密共享的隐藏身份SM2签名私钥产生装置及其方法作进一步详细的说明。
本发明的可秘密共享的隐藏身份SM2签名私钥产生装置,对客户端私钥对应的数字证书通过离线方式核实其身份及其时效性,同时支持该私钥拆分成两份,一份存放在客户端,另一份存放在服务端,通过联合签名的方式实现对数据的签名。
图1为本发明隐藏客户端身份的SM2签名公私钥产生过程图。
具体过程如下:
步骤1:服务器端产生并发布根证书,Ppub=s·G,其中s∈[1,n-1],s为服务端系统主私钥,G为SM2算法椭圆曲线基点;
步骤2:客户端产生随机数d1∈[1,n-1],作为客户端的签名私钥的一部分因子,计算并向服务端发送并公开发布D1=[d1]G;
步骤3:服务端确认客户端身份,为其产生或由系统派生随机数ds∈[1,n-1],作为客户端的签名私钥的另外一部分因子,计算并公开发布Ds=[ds]G;
步骤4:服务端计算并公开发布Q=[ds h·s]D1,h是Hash(XD1||YD1||XDs||YDs||IDc)按照GB/T 32918.1给出的方法转化的整数,Hash是SM3密码杂凑算法,XD1、YD1,XDs、YDs是D1和Ds的x,y坐标值,IDc是客户端可包含有效时间的身份唯一标识;或者也可由客户端计算并发布Q=[d1](Ds [h]Ppub);此时,任一验证方可向客户端验证Q中包括用户身份d1;
步骤5:[可选,非秘密共享机制]服务端将ds h·s mod n秘密发送给客户端,可采用D1作为加密公钥秘密发送,客户端产生SM2签名私钥d=d1-1(ds h·s)-1-1mod n;
步骤6:服务端产生并签发公钥P=[ds h·s]-1([d1]-1G)-G。
按照本发明上述实施例的技术方案,对客户端私钥对应的数字证书通过离线方式核实其身份及其时效性,同时支持客户端私钥拆分成两份,一份存放在客户端,另一份存放在服务端,通过联合签名的方式实现对数据的签名。
由以上实施过程可知,本发明实现了离线认证和在线联合签名两种安全防护措施的有效融合。
技术特征:
1.一种可秘密共享的隐藏身份SM2签名私钥产生装置及其方法,其特征在于,可密码共享的隐藏身份SM2签名私钥产生装置和私钥产生方法。
2.根据权利要求1所述的一种可拼接的户外双人帐篷,其特征在于:该装置主要包括服务端SM2算法模块、根证书发布模块、随机数生成模块,客户端SM2算法模块和随机数生成模块。
3.根据权利要求1所述的一种可拼接的户外双人帐篷,其特征在于:签名私钥产生方法包括以下步骤:步骤1:服务器端产生并发布根证书,Ppub=s·G,其中s∈[1,n-1],s为服务端系统主私钥,G为SM2算法椭圆曲线基点;步骤2:客户端产生随机数d1∈[1,n-1],作为客户端的签名私钥的一部分因子,计算并向服务端发送并公开发布D1=[d1]G;步骤3:服务端确认客户端身份,为其产生或由系统派生随机数ds∈[1,n-1],作为客户端的签名私钥的另外一部分因子,计算并公开发布Ds=[ds]G;步骤4:服务端计算并公开发布Q=[ds h·s]D1,h是Hash(XD1||YD1||XDs||YDs||IDc)按照GB/T32918.1给出的方法转化的整数,Hash是SM3密码杂凑算法,XD1、YD1,XDs、YDs是D1和Ds的x,y坐标值,IDc是客户端可包含有效时间的身份唯一标识;或者也可由客户端计算并发布Q=[d1](Ds [h]Ppub);此时,任一验证方可向客户端验证Q中包括用户身份d1;步骤5:[可选,非秘密共享机制]服务端将ds h·smodn秘密发送给客户端,可采用D1作为加密公钥秘密发送,客户端产生SM2签名私钥d=d1-1(ds h·s)-1-1modn;步骤6:服务端产生并签发公钥P=[ds h·s]-1([d1]-1G)-G。
技术总结
本发明公开了一种可秘密共享的隐藏身份SM2签名私钥产生装置及其方法,本发明属于密码工程领域,用于解决移动互联网隐私数据保护难题及在线查询证书难题。本发明的要点在于客户端和服务端双方独立生成客户端私钥的部分因子,由两个因子协同运算并发布D1、DS和Q声明参数,双方均无法由己方生成和获得的参数计算得到客户端完整私钥,但可通过声明参数离线认证客户端身份,同时服务端可计算并签发客户端完整公钥,实现了离线认证和在线联合签名两种安全防护措施的有效融合。
技术研发人员:刘歆;李智虎;
受保护的技术使用者:中安网脉(北京)技术股份有限公司;
技术研发日:2021.01.26
技术公布日:2022.02.11
本文用于企业家、创业者技术爱好者查询,结果仅供参考。