一种面向大数据平台的密钥分布式存储的方法和系统与流程

文档序号:31053649发布日期:2022-08-06 09:40阅读:247来源:国知局
一种面向大数据平台的密钥分布式存储的方法和系统与流程

1.本发明涉及信息安全技术领域,具体涉及一种面向大数据平台的密钥安全分布式存储方法及系统。


背景技术:

2.近些年,随着大数据技术的迅速发展,数据泄露事件也是频繁发生,因此,数据安全的治理刻不容缓。然而,现有的公开认证的加密算法并不是无法攻破,盗取密钥便能够轻松的对数据正常解密,进而获取数据隐私信息。由此可见,数据加密防护的重中之重是密钥的防护。
3.在密钥管理过程中,密钥的存储一直是一个重难点环节,现有的密钥存储方式大致有4种:(1)加密后存储在数据库里;(2)加密后存储在文件系统中;(3)存储在可信计算域tee中;(4)存储在硬件安全模组hsm中。密钥存储在数据库和文件系统中,其安全性在同一等级,由于密钥的保护密钥需要明文存储,其存储位置变成了一个难以解决的问题。因此,以软件的形式存储密钥,其安全等级非常低,在重要生产环境中无法使用。针对该问题,公开号为cn201910943466.8的发明专利申请,给出了一种基于tee的安全应用认证的方法,其中,认证私钥存储在可信域tee中,一个非常新的应用场景,但由于tee已知的侧信道攻击,所以该方法依然无法保证密钥的安全。此外,tee的保护策略依赖于tee生产方的设计,灵活性不够。公开号为cn201880070639.3的发明专利申请,提出使用硬件模组存储密钥,硬件安全模组费用高昂且需要专业人员维护。


技术实现要素:

4.针对所述存在的问题,本发明设计出了一种面向大数据平台的密钥分布式存储的方法,将密钥分布式存储在多个部署了秘密共享方案的物理机或虚拟机中,任何一个物理机或虚拟机被攻破都不会泄密,以保证密钥安全,恢复后的完整密钥无需存储,节省了存储和管理完整密钥带来的开销和成本。
5.一种面向大数据平台的密钥分布式存储的方法包括以下步骤:
6.在密钥生成后,服务器对密钥使用秘密共享得到密钥片段集合;
7.服务器使用各参与方的公钥分别对所述密钥片段加密得到第一次密钥片段密文,并将各密文分发给各参与方,所述各参与方为分布式存储密钥的各存储节点;
8.各参与方存储收到的第一次密钥片段密文,并为其建立索引,以便在恢复密钥时方便检索第一次密钥片段密文,将密钥分布式存储在多个参与方,任何一个参与方被攻破也不会泄密,保证密钥安全;
9.服务器在收到上层应用调用密钥的请求后,服务器向各参与方请求密钥片段;
10.各参与方收到服务器的请求后解密第一次密钥片段密文得到密钥片段;各参与方使用服务器的公钥对所述密钥片段加密得到第二次密钥片段密文,各参与方将各自的第二次密钥片段密文发送给服务器;
11.服务器使用自己的私钥解密各参与方的第二次密钥片段密文,并使用秘密共享恢复出原始密钥。恢复后的完整密钥无需存储,节省了存储和管理完整密钥带来的开销和成本
12.优选的,秘密共享为shamir、brickell、blakley等方案中的一个。
13.优选的,服务器使用shamir方案把密钥分割成n个密钥片段,分配给n个参与方,各参与方存储密钥片段,密钥的分布式存储完成;收到上层应用调用密钥的请求后,服务器对返回的至少t个密钥片段(t≤n)使用shamir方案恢复出原始密钥,完整密钥获取完成。
14.优选的,所述各存储节点为部署了秘密共享方案的物理机或虚拟机。
15.优选的,非对称加密算法为sm2。
16.优选的,索引的检索项包括各参与方的密钥片段id、密钥值。
17.本发明还提供了一种面向大数据平台的密钥分布式存储的系统,通过该系统可以实现密钥的分布式存储,
18.一种面向大数据平台的密钥分布式存储的系统,包括:
19.密钥管理模块:密钥管理模块用于生成密钥、切割密钥和分发密钥;密钥管理模块生成密钥后,对密钥使用秘密共享得到密钥片段集合;密钥管理模块使用各参与方的公钥对各密钥片段进行加密得到第一次密钥片段密文,并将密文分发给个参与方;
20.分布式密钥存储模块:存储各参与方的第一次密钥片段密文;将密钥分布式存储在多个部署了秘密共享方案的物理机或虚拟机中,任何一个物理机或虚拟机被攻破都不会泄密,以保证密钥安全,同时避免了将密钥存储在数据库和文件系统中低安全等级带来的泄密风险和使用安全硬件模组存储密钥带来的高昂成本;
21.密钥调用模块:用于恢复密钥片段,并将密钥片段传递给上层应用;上层应用向密钥调用模块发送密钥调用请求后,密钥调用模块向密钥管理模块发送密钥恢复指令,密钥管理模块通知各参与方解密第一次密钥片段密文得到密钥片段,各参与方使用密钥调用模块的公钥对所述密钥片段重新加密得到第二次密钥片段密文后,各参与方将第二次密钥片段密文发送给密钥调用模块;密钥调用模块收到各参与方的第二次密钥片段密文后使用自己的私钥解密各参与方的第二次密钥片段密文,并使用秘密共享恢复出原始密钥。
22.优选的,密钥管理模块还用于短暂缓存密钥片段,在密钥调用结束后直接从密钥管理模块的缓存中删除密钥片段。
23.使用本发明设计的一种面向大数据平台的密钥分布式存储的方法和系统,将密钥存储在分布式密钥存储模块及恢复原始密钥的过程中,密钥片段全部是缓存到密钥管理模块,在密钥调用结束后,完整密钥直接从缓存中删除,无需存储,保证完整密钥不被泄露,同时,密钥分布式存储再多个物理机或虚拟机中,任何一个存储节点被攻破都不会泄密,以保证密钥安全。
附图说明:
24.附图1是本发明实施例中分布式存储密钥的方法流程图。
25.附图2是本发明实施例中恢复分布式存储的密钥的流程图。
26.附图3是本发明实施例中面向大数据平台的密钥分布式存储系统的模块图
具体实施方式:
27.以下结合说明书附图1对本发明提供的面向大数据平台的分布式存储密钥的方法的优选实施例进行说明。
28.密钥分布式存储有以下步骤:
29.步骤100:密钥生成后,服务器对密钥使用shamir(k,n)秘密共享方案得到密钥片段,其中n表示参与方的个数,k表示能够恢复密钥的最小参与方数量,取n=5,k=3;
30.选定一个模数p,例如p=17;
31.随机生成密钥key,例如key=13;
32.随机选择k-1个不大于等于p的不同随机数,比如a1=10,a2=2;
33.带入公式中计算yi,得到:
34.y1=(13+10
×
1+2
×12
)mod 17=8
35.y2=(13+10
×
2+2
×22
)mod 17=7
36.y3=(13+10
×
3+2
×
32)mod 17=10
37.y4=(13+10
×
4+2
×
42)mod 17=0
38.y5=(13+10
×
5+2
×
52)mod 17=11
39.其中,xi为第i个参与方,aj表示shamir秘密共享算法中随机生成的中间参数,yi表示shamir秘密共享算法中第i个参与方的的密钥片段;
40.步骤110:服务器使用xi的sm2公钥对yi进行加密,得到第一次密钥片段密文,即:
[0041][0042][0043][0044][0045][0046]
其中,为第i个参与方得到的第一次密钥片段密文;pki为第i个参与方的sm2公钥,i∈[1,5];
[0047]
步骤120:服务器将得到的第一次密钥片段密文分发至各参与方;
[0048]
步骤130:参与方存储各自的第一次密钥片段密文,并未其创建索引,以便在密钥恢复时进行检索,所述索引的检索项包括各参与方的密钥片段id、密钥值。
[0049]
以下结合说明书附图2对本发明提供的面向大数据平台的恢复分布式存储的密钥的优选实施例进行说明。
[0050]
恢复分布式存储的密钥有以下步骤:
[0051]
步骤200:上层应用向服务器发送密钥调用请求,服务器向各参与方发送密钥恢复的通知,各参与方通过索引检索到相应的第一次密钥片段密文。
[0052]
步骤210:各参与方使用自己的sm2私钥对各自的第一次密钥片段密文解密得到密钥片段,即
[0053]
y1=dec(sk1,cy1)
[0054]
y2=dec(sk2,cy2)
[0055]
y3=dec(sk3,cy3)
[0056]
y4=dec(sk4,cy4)
[0057]
y5=dec(sk5,cy5)
[0058]
其中,ski为第i个参与方的sm2私钥,i∈[1,5];
[0059]
步骤220:每个参与方将解密后的密钥片段使用服务器的sm2公钥重新加密得到第二次密钥片段密文,即
[0060][0061][0062][0063][0064][0065]
其中,其中,为第i个参与方得到的第二次密钥片段密文,i∈[1,5];pk0为服务器的sm2公钥;
[0066]
步骤230:各参与方将各自的第二次密钥片段密文发送给服务器;
[0067]
步骤240:服务器使用自己的sm2私钥对第二次密钥片段密文解密得到密钥片段,并使用shamir(5,3)将多个密钥片段恢复为原始密钥。因为本例中选取5个参与方,恢复时只需要使用3个密钥片段即可。例如取所述步骤100中第1个参与方的密钥片段8,第2个参与方的密钥片段7和第5个参与方的密钥片段11。列出方程组:yi=key+a1xi+a2x
i2
+

+a
k-1
x
ik-1
,带入(1,8),(2,7),(5,11)得方程组:
[0068]
y1=key+a1+a2=8
[0069]
y2=key+2a1+4a2=7
[0070]
y5=key+5a1+25a2=11
[0071]
通过高斯消元法和欧几里得算法计算得到key=13,a1=10,a2=2,密钥恢复完成。
[0072]
其中yi是第i节点的密钥片段,xi为第i个参与方,key是原始密钥,aj表示shamir秘密共享算法中随机生成的中间参数。
[0073]
以下结合说明书附图3对本发明提供的面向大数据平台的分布式存储密钥系统的优选实施例进行说明。
[0074]
密钥管理模块300:密钥管理模块用于生成密钥、切割密钥和分发密钥;密钥管理模块生成密钥后,对密钥使用shamir秘密共享方案得到密钥片段集合;密钥管理模块使用各参与方的sm2公钥对各密钥片段进行加密得到第一次密钥片段密文并将密文分发给个参与方;密钥管理模块还用于短暂缓存密钥片段,在密钥调用结束后直接从密钥管理模块的缓存中删除密钥片段,保证完整密钥不被泄露。
[0075]
分布式密钥存储模块310:各参与方将得到的第一次密钥片段密文存储在分
布式密钥存储模块中;将密钥分布式存储在多个部署了秘密共享方案的物理机或虚拟机中,任何一个物理机或虚拟机被攻破都不会泄密,以保证密钥安全,同时避免了将密钥存储在数据库和文件系统中低安全等级带来的泄密风险和使用安全硬件模组存储密钥带来的高昂成本;
[0076]
密钥调用模块320:用于恢复密钥片段,并将密钥片段传递给上层应用;上层应用向密钥调用模块发送密钥调用请求后,密钥调用模块向密钥管理模块发送密钥恢复指令,在收到密钥恢复指令后时,各参与方解密第一次密钥片段密文得到密钥片段,并使用密钥调用模块的sm2公钥对所述密钥片段重新加密得到第二次密钥片段密文后,各参与方将第二次密钥片段密文发送给密钥调用模块;密钥调用模块收到各参与方的第二次密钥片段密文后使用自己的sm2私钥解密各参与方的第二次密钥片段密文,并使用shamir恢复出原始密钥。
[0077]
应当指出:对于本技术领域的普通技术人员来说,在不脱离本发明原理和宗旨的的前提下,还可以做出若干改进、替换、变型和润饰,这些改进、替换、变型和润饰也应视为本发明的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1