一种基于密钥分割的协同密钥存储恢复方法与流程

文档序号:17428924发布日期:2019-04-17 03:13阅读:2729来源:国知局
一种基于密钥分割的协同密钥存储恢复方法与流程

本发明涉及密钥存储方法,尤其涉及一种基于密钥分割的协同密钥存储恢复方法。



背景技术:

协同密钥算法实现协同签名和协同解密,密钥分别存储在协同客户端和服务端,所谓协同是指密钥运算的时候需要双方配合协同完成,任何单独一方无法独自完成运算。

现有协同密钥算法技术的出现使得移动端在不依赖于外界第三方密码模块进行数字签名运算成为可能,但是保存在协同移动端或客户端的部分密钥依然容易暴露,存在如下问题:第一,协同客户端的部分密钥通常保存在移动终端的应用存储区中,容易被第三方获取;第二,协同服务端作为一个标准的密钥服务通用组件,只能以通用的认证规则对协同客户端进行认证,一旦协同客户端部分密钥被第三方获取,容易从协同服务端骗取协同密钥运算服务从而制造签名。



技术实现要素:

本发明目的是为了克服现有技术的不足而提供一种对客户端的密钥保护等级更高、降低密钥被恶意盗取风险且用户可多样化自主配置控制的基于密钥分割的协同密钥存储恢复方法。

为达到上述目的,本发明采用了如下技术方案。

一种基于密钥分割的协同密钥存储恢复方法,具体包括如下步骤:

步骤一:将客户端部分密钥按照设定的分割公式进行分割为三个份额密钥,其中一个份额在客户端本地进行存储,分割服务端对客户端认证后,客户端将另外两个份额密钥通过安全通道传输到分割服务端进行密钥存储准备,并将该两份密钥在分割服务端的数据库存储;

步骤二:分割服务端结合所述步骤二存储的两份密钥,并按用户预先在分割服务端设定的规则公式计算出分割存储结果,并返回给用户的客户端,就完成了密钥的预先分割存储;

步骤三:在客户端需要获得密钥进行使用时,客户端与分割服务器建立ssl安全通道并进行双向认证,当分割服务器对客户端认证通过后,客户端将所述步骤一中自己本地准备的密钥份额以及需要进行的运算数据发送给分割服务端;

步骤四:当分割服务端根据预设配置规则发现所述步骤三传送过来密钥份额、客户端认证数据及分割服务器中存储另外两份密钥对应关系存在不一致情况时,则拒绝运算;当分割服务端根据预设配置规则发现所述步骤三传送过来密钥份额、客户端认证数据及分割服务器中存储另外两份密钥对应关系完全一致时,则执行继续运算,分割服务端进行合成密钥并执行密钥运算,并将运算结果返回给客户端;

步骤五:客户端接收所述步骤四中返回的运算结果并进行验证,验证后和协同服务端计算,最后和协同服务端交互完成完整的密钥运算,即可实现密钥的恢复使用。

作为本发明的进一步改进,所述步骤一中的分割公式采用的是椭圆曲线g点阶n域内的一元二次方程。

作为本发明的进一步改进,所述步骤四及步骤五中的密钥运算方式均采用的是拉格朗日插值算法。

作为本发明的进一步改进,所述步骤三中的双向认证方式采用的是用户名口令认证、挑战码认证、图形验证码认证和短信验证码认证的其中任选之一。

作为本发明的进一步改进,所述步骤四中的预设配置规则中还包括有预先在分割服务端配置限定密钥运算的行为方式,比如在规定的一个时间段内只执行设定次数的计算服务,或者在规定的一个时间段内总共只进行设定次数的计算服务,或者只执行特定类型的密钥运算。

作为本发明的进一步改进,所述分割服务器对客户端的认证还可以采用数字证书的认证方式,所述数字证书可采用usbkey作为载体。

由于上述技术方案的运用,本发明的技术方案带来的有益技术效果:

(1)本技术方通过将密钥份额设定的分割公式分割成三个份额,其中一个存储在客户端本地,另外两个份额则存储在分割服务端,在需要恢复时,通过双向认证通过后,按照预设的规则配置情况对接收到的份额及认证数据进行验证,全部对应一致后按预定的恢复规则运算执行密钥恢复并返回给客户端使用,具有避免了传统方式中单一密钥容易被窃取,密钥保护更加安全、密钥分割及恢复配置规则多样且极大降低用户密钥泄漏且被恶意恢复使用概率的有益技术效果;

(2)本技术方案在客户端密钥采用本方案中的密钥分割存储方法后,协同密钥运算在原来的协同客户端、协同服务端的基础上,需要增加密钥分割服务端的协助才能密钥运算,缺少一方的密钥数据都无法完成,在不改变原有协同密钥签名体系的前提下,用户可以对协同客户端的部分密钥使用做特定的安全策略配置,满足了在现有签名体系下,用户对签名安全的需求,为网络用户签名信息安全提供了更高保障。

附图说明

附图1为本发明的客户端与分割服务端之间密钥份额分割存储结构关系示意图。

附图2为本发明的密钥认证及密钥运算关系示意图。

附图3为本发明的密钥分割及密钥恢复整体流程示意图。

具体实施方式

下面结合反应路线及具体实施例对本发明作进一步的详细说明。

如图1-3所示,一种基于密钥分割的协同密钥存储恢复方法,主要包括密钥分割和密钥恢复两部分。

(一)密钥分割:

第一,密钥分割开始,先指定x1=2,x2=3,x3=5,上述x1、x2、x3代入函数f(x)分别得到d1、d2、d3,其中函数f(x)具体为:

第二,将上述得到的d1保存在本地的客户端,并将x1、x2、x3、d2、d3发送到分割服务端的数据库进行存储,至此密钥分割结束。

(二)密钥恢复:

第一,密钥恢复开始,分割服务端在对客户端进行双向认证通过后,首先接收从客户端发送过来的密钥份额d1;

第二,读取分割服务端存储的x1、x2、x3、d2、d3,加上接收的d1代入拉格朗日插值公式d(t)得到密钥,至此密钥恢复结束,其中函数d(t)具体为:

(三)具体实施范例:分割保存客户端部分协同密钥,恢复完成协同签名

(1)用户在分割服务端配置允许进行一次签名操作用户名为:user1,密钥为:123456;sm2协同签名客户端生成密钥:227a72a6da36f8ded030cb3c99b7ad046667ecd473c0e1323ed5f3a4730f40a9;sm2协同签名服务端生成密钥:

49a11539e708de31ad92a5a0620fbd0da2a69927f48cba18fc84a7611c6f07db;客户端计算出双方共同公钥:

04b4fca3fc4abf618cf0222c7fcb68b882718995231f11c7ab987c983b552bb88bc9c95f5977b0610299f2b26ab2aff17fd78445a756bf69cf294b6cd5c0feb130

(2)客户端选定数字x1=2,x2=5,x3=7分别为密钥份额标识参数代入方程中,

其中n为sm2椭圆曲线生成元的阶其值为:fffffffeffffffffffffffffffffffff7203df6b21c6052b53bbf40939d54123;其中a0指定为客户端密钥:

227a72a6da36f8ded030cb3c99b7ad046667ecd473c0e1323ed5f3a4730f40a9;a1为n范围内的随机数:

a189e9dfc88d55f6b1b24042d889e73fbe6f60342bdc3b615411ca13af28c526;a2为n范围内的随机数:

65237270ae604494f0b0e335ce0c87e2f14a6f048ba7eaeba088a92a43a0fab2

经过计算得到:

y1=f(x1=2):

fa1c102b24d2b71ff658d89982fd9b10c468aa78b68cf94cc1a444626c3a3377;

y2=f(x2=5):

2aa23113cc60593bc9f23ccbf3a27673e4a74cda3b65b7e84ffc06af89bf4702;

y3=f(x3=7):

09a72c3506471a6454b78f6a97056fb7c4f08d1d884080812b852f28305e8d0a;将(x2,y2),(x3,y3)发往分割服务端,(x1,y1)保存在客户端;

(3)客户端计算协同签名的客户端部分的时候,先用用户名密钥进行校验通过后发送(x1,y1)和协同签名客户端合成阶段需要的数据到分割服务端,分割服务端得到(x1,y1),(x2,y2),(x3,y3)代入公式,计算得到客户端密钥值为:

227a72a6da36f8ded030cb3c99b7ad046667ecd473c0e1323ed5f3a4730f40a9;

(4)读取用户配置,发现允许进行一次签名,计算签名值。

注:客户端在和密钥分割服务端通讯之前,已和协同签名服务端认证并完成协同签名的服务端部分,具体进行签名的杂凑值为:

3132333435363738000000000000000000000000000000000000000000000000;客户端发往协同服务的参数为:

04bc25fcb3496956342b192a0f33c79023c51a7168ebbd0a0d5e553b24109049c642698f1c71da60482521b9a294bcf6671887122de55c15fa2ac725c0cfe31250;协同服务返回参数为:

其中s2(32)为:

b3c013a051cdd5d9cfb14f6bfedf3ed49ea9342e4efc59571651c2d0cb83086d;

其中s3(32)为:

ad17dab2940081d21ae16cf3196baaa1d9a203964e0fe81be6defd1f74a527ba;

其中r(32)为:

693450fa4496e0dea7ce31cbca3cb9ffca0be95bc4a6538129c13b06269c71fc;最终由分割服务端计算得到签名值为:

30450220693450fa4496e0dea7ce31cbca3cb9ffca0be95bc4a6538129c13b06269c71fc02210086d6ca17125f5eeb9140f0669d0eb1f94ef21a5efd731eadfd93c491784efde1;使用公钥验证通过:

04b4fca3fc4abf618cf0222c7fcb68b882718995231f11c7ab987c983b552bb88bc9c95f5977b0610299f2b26ab2aff17fd78445a756bf69cf294b6cd5c0feb130。

以上仅是本发明的具体应用范例,对本发明的保护范围不构成任何限制。凡采用等同变换或者等效替换而形成的技术方案,均落在本发明权利保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1