当前位置: 首页 > 专利查询>王燕专利>正文

基于SM2密钥分散存储的密钥对生成方法、协作签名方法、解密方法、装置和介质制造方法及图纸

技术编号:36019973 阅读:17 留言:0更新日期:2022-12-21 10:14
本发明专利技术公开了一种基于SM2密钥分散存储的密钥对生成方法、协作签名方法、解密方法、装置和介质。本发明专利技术通过客户端、服务端以及密钥共享中心三方协作生成公私钥对的生成,各个设备生成各自的私钥因子并分别存储,在协作签名和协作解密过程中完整私钥不会出现在任何一方,进而保证私钥的安全性。此外基于公私钥对协同生成方法提出的密钥共享分发过程,保证在私钥共享分发过程中只需要使用客户端和密钥共享中心两部分私钥因子进行密钥计算分发,而服务端私钥因子不参与分发过程,进一步的保证任何时刻完整密钥不会出现在任何设备的内存中,完整密钥在任意一方设备中不存在泄露的风险。整密钥在任意一方设备中不存在泄露的风险。整密钥在任意一方设备中不存在泄露的风险。

【技术实现步骤摘要】
基于SM2密钥分散存储的密钥对生成方法、协作签名方法、解密方法、装置和介质


[0001]本专利技术属于密钥对生成方法、协作签名方法、解密方法、密钥共享授权分发方法、装置和介质,特别是涉及基于SM2密钥分散存储的密钥对生成方法、协作签名方法、解密方法、密钥共享授权分发方法、装置和介质。

技术介绍

[0002]传统的CA安全产业,使用UKEY作为证书存储介质,虽具有安全程度高,但不易使用,对移动互联网、云计算、大数据等新型技术适应力较差。目前,基于PKI技术的数字签名和加解密技术已经广泛应用于电子政务、电子商务、移动互联网、大数据、云计算、物联网等领域。在诸如此类应用环境中,客户端如智能终端等设备,通常以软件的形式存储和使用私钥,如果完整的私钥存储于智能终端,基于智能终端设备的安全性考虑,终端设备内存储的数据可以被攻击者轻易导出,因此为了保证终端设备内私钥的安全性,采用密钥分布式存储设计,实现密钥分散存储、分布式签名以及解密过程,保证完整私钥不会出现在任何一端,进而保证私钥的存储安全性就显得尤其重要。此外基于证书的授权使用需求,当使用智能密码钥匙来存储用户私钥,当委托他人进行签名或者解密时,需要将智能密码钥匙交予他人。目前在移动智能终端上的SM2协同签名或者解密,通过将数字签名的私钥拆分存储,客户端私钥因子只存储于移动智能终端,当委托他人进行签名或者解密时,需要将智能终端设备交予他人,但由于手机等移动智能终端目前使用越来越广泛,并且私密性非常高,将移动智能终端交予他人会带来不便和隐私泄露。
[0003]中国专利技术专利申请201811310717.0公开了一种SM2密钥生成、签名方法、终端、服务器和存储介质,通过由预设数量私钥因子组成私钥,私钥因子分别存储在不同的设备中,所述设备包括终端和服务器,有效的解决了私钥文件易被窃取的问题,将私钥因子分散存储在终端和服务器上,攻击者无法从终端上获得完整的私钥。同时,签名计算过程需要在终端设备和服务端分步进行,私钥不会完整的出现在终端设备内存中,有效的解决了私钥文件以明文的方式出现在终端内存中易泄露的问题,使得私钥的存储更加安全。该专利技术虽然通过将私钥因子采取分散存储的方式提高了安全性,但是由于私钥因子存储于终端和服务器,终端设备进行密钥安全分发共享过程时,需要将服务端私钥因子发送至终端设备进行私钥合成之后再进行密钥共享分发使用,此过程中完整私钥仍会以明文的方式出现在终端内存中,因此仍然存在私钥泄露的安全隐患。中国专利技术专利申请201910600980.1公开了一种基于SM2算法的私钥处理方法、终端及密钥中心,通过密钥中心直接生成私钥,从而由私钥与客户端的第一私钥因子生成第二私钥因子,进而通过客户端保存第一私钥因子,服务器端加密保存第二私钥因子,实现了私钥的分散保护,确保私钥在存储与使用过程中在任何一方不出现完整的私钥。而且当某一方的私钥因子丢失时,还可以通过另一方的私钥因子与私钥再恢复,解决了私钥恢复的问题。该专利技术专利申请虽实现了私钥的分散保护,并能协同完成标准的数字签名与基于数字信封技术的数据加密,可确保私钥在存储与使用过程
中在任何一方不出现完整的私钥,但密钥对的生成是通过密钥中心进行,服务端私钥因子由密钥中心发送至服务端的过程中,私钥因子的传输过程存在安全隐患。此外此专利技术专利申请只是保证完整私钥不会出现在服务端或者客户端任何一端,无法保证完整私钥不会出现在密钥共享中心设备中,完整私钥依然存在安全隐患。

技术实现思路

[0004]本专利技术要解决的技术问题是提供一种基于SM2密钥分散存储的密钥对生成方法、协作签名方法、解密方法、密钥共享授权分发方法,在密钥对生成、协作签名、协作解密和共享授权分发过程中完整密钥不会出现在任何一个设备中,不泄露完整密钥本身的任何信息,进一步保证密钥使用的安全性。
[0005]本专利技术要解决的技术问题还在于提供一种实现上述方法的终端、服务端、密钥共享中心以及计算机可读存储介质。
[0006]为解决上述技术问题,本专利技术采用以下技术方案:
[0007]本专利技术提供的一种基于SM2密钥分布式存储的密钥对生成方法包括以下步骤:
[0008]A1、客户端生成自身子私钥d
A
,服务端生成自身子私钥d
B
,密钥共享中心生成自身子私钥d
C

[0009]A2:客户端、服务端和密钥共享中心交互运算共同生成公钥P;
[0010]在子私钥生成和公钥生成过程中,客户端、服务端、密钥共享中心共享SM2 椭圆曲线算法参数E(F
q
)、G、n、Z,其中椭圆曲线E为定义在有限域G上的椭圆曲线,G为椭圆曲线E上的n阶基点,Z为双方的共有身份标识。
[0011]本专利技术提供的一种基于SM2密钥分布式存储的协作签名方法,包括以下步骤:
[0012]B1、客户端根据待签名消息原文M生成消息摘要e,同时生成随机数k1,并根据k1计算第一签名中间变量Q1,之后将Q1发送至密钥共享中心;
[0013]B2、密钥共享中心接收Q1并生成随机数k2,根据随机数k2和Q1计算第二签名中间变量Q2,之后将Q2发送回客户端;
[0014]B3、客户端接收Q2,并将消息摘要e和Q2发送至服务端,服务端根据消息摘要e和Q2计算部分签名R和第三签名中间变量Q3和第四签名中间变量Q4,并将部分签名R和Q3、Q4发送至客户端;
[0015]B4、客户端接收R、Q3、Q4,并将Q3、Q4发送至密钥共享中心,由密钥共享中心计算第五签名中间变量Q5和第六签名中间变量Q6,并将Q5、Q6发送至客户端;
[0016]B5、客户端接收签名中间变量Q5、Q6,计算部分签名值S,并将(R,S)作为完整签名输出。
[0017]本专利技术提供的一种基于SM2密钥分布式存储的协作解密方法,包括以下步骤:
[0018]C1、客户端接收协作解密请求,生成随机数k,对获取的密文进行部分解密得到第一解密中间变量T1,并将T1发送至服务端;
[0019]C2、服务端接收T1,根据自身子私钥d
B
以及接收的明文中间变量T1,解密出第二解密中间变量T2,并将T2发送至密钥共享中心;
[0020]C3、密钥共享中心接收T2,根据自身子私钥d
C
和T2计算第三解密中间变量 T3,并将T3发送至客户端;
[0021]C4、客户端根据接收的T3以及自身子私钥d
A
计算出完整明文T。
[0022]本专利技术提供的一种基于SM2密钥分布式存储的密钥共享授权分发方法包括以下步骤:
[0023]D1、客户端向密钥共享中心发起密钥共享分发请求,密钥共享中心接收请求将自身私钥d
C
密文发送至客户端;
[0024]D2、客户端接收私钥d
C
,根据自身私钥d
A
,计算临时私钥tmpD,客户端生成随机数d
AA
,根据tmpD、d
AA
本文档来自技高网
...

【技术保护点】

【技术特征摘要】
mod n和第四签名中间变量Q4=d
B
*(R+k4)mod n,之后将部分签名R和Q3、Q4发送至客户端;所述步骤B4中,客户端接收部分签名R和签名中间变量Q3、Q4,并将Q3、Q4发送至密钥共享中心请求协作签名运算,密码共享中心计算第五签名中间变量Q5=k2*d
C
*Q3以及第六签名中间变量Q6=d
C
*Q4并将Q5、Q6返回至客户端;所述步骤B5中,客户端根据接收的签名中间变量Q5、Q6,计算部分签名S=(d
A
*k1*Q5+d
A
*Q6

R)mod n,并将步骤R和S作为完整签名输出;其中Hash()表示SM3密码杂凑函数,[*]表示椭圆曲线点乘运算,mod表示取模运算。6.一种基于SM2密钥分布式存储的协作解密方法,其特征在于,包括以下步骤:C1、客户端接收协作解密请求,生成随机数k,对获取的密文进行部分解密得到第一解密中间变量T1,并将T1发送至服务端;C2、服务端接收T1,根据自身子私钥d
B
以及接收的第一解密中间变量T1,计算第二解密中间变量T2,并将T2发送至密钥共享中心;C3、密钥共享中心接收T2,根据自身子私钥d
C
和T2计算第三解密中间变量T3,并将T3发送至客户端;C4、客户端根据接收的T3以及自身子私钥d
A
解密出完整明文T。7.根据权利要求6所述的基于SM2密钥分布式存储的协作解密方法,其特征在于,所述步骤C1中,客户端接收密文C,从密文C中提取比特串C1,对C1进行数据类型转换后,验证C1是否为椭圆曲线E上的非无穷远点;若是,则随机生成随机数k,计算第一解密中间变量T1=k[*]C1,其中[*]表示椭圆曲线点乘运算;所述步骤C2中,服务端根据接收到的第一解密中间变量T1计算第二解密中间变量T2=d
B
‑1[*]T1,并将T2发送至密钥共享中心设备C;所述步骤C3中,密钥共享中心根据接收到T2计算第三解密中间变量T3=d
C
‑1[*]T2,并将T3发送回客户端;所述步骤C4中,客户端根据接收到T3以及自身私钥d
A
计算(x2,y2)=k
‑1*d
A
‑1[*]T3[

]C1,其中[

]表示椭圆曲线点减运算,根据(x2,y2)计算tmp=kdf(x2||y2,klen),其中||表示字符串拼接,kdf()表示预定的密钥派生函数,klen表示预定的输出的比特串长度;判断tmp,若tmp不等于0,则...

【专利技术属性】
技术研发人员:尚磊直丹婷曹涛王军强赵英华王燕
申请(专利权)人:王燕
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1