一种基于国密算法实现的数据加密存储方法与流程

专利查询10月前  72



1.本发明涉及于数据安全领域,尤其涉及一种基于国密算法实现的数据加密存储方法。


背景技术:

2.针对数据的安全技术严格来讲主要分为三大类:隐藏、访问控制、密码学。数据的传输安全、数据的存储安全、数据的访问安全控制等等都是数据安全的范畴。为了解决数据的这类安全问题,推行了国密加密算法,其中商用版本包含sm1、sm2、 sm3、sm4、sm7和sm9算法,
3.而针对大文件的加密存储过程中,传统的方式是通过将大文件传输给物理加密机进行加密后,返回再存储,这样虽然能够保证数据的安全性,但也无法保证传输过程中的安全性,并且效率低下(会依赖带宽等各种因素)。


技术实现要素:

4.为了解决以上技术问题,本发明提供了一种基于国密算法实现的数据加密存储方法。可以降低数据存储风险,提高加密密钥的安全性,而无需使用ssl_vpn 来保证传输的安全性。本发明可以扩展到其他的业务应用场景,而不限制于与密钥管理服务对接的使用,通过该发明可以保证数据的安全加密存储。
5.本发明的技术方案是:
6.一种基于国密算法实现的数据加密存储方法,包括四部分:约定key的下发、主密钥生成(cmk)、数据密钥生成(dek)、数据加密;密钥管理服务作为密钥的生命周期管理中心,负责对密钥的集中管理,外围无法拿到密钥,可以通过主密钥衍生数据密钥进行使用。采用对接密钥管理服务,通过安全传输数据密钥的形式,在本地实现数据的加解密。
7.进一步的,
8.步骤如下:
9.步骤1):约定key的下发
10.通过线上或者线下操作,生成一个sm4的对称密钥值,作为hmacsm3计算的密钥key,并下发给用户(一个用户一个key);用户拿到该key值后,放置到调用端sdk的配置文件中,方便后续的代码调用;
11.步骤2):主密钥生成
12.通过调用密钥管理服务实现主密钥的生成;
13.步骤3):数据密钥生成
14.3.1)客户端信息初始化生成并计算;
15.3.2)服务端接收到请求后,进行校验及其他逻辑处理。
16.步骤4):数据加密
17.用户拿到数据密钥后,针对本地的明文数据进行数据的加密操作。
18.再进一步的,
19.步骤2)中,该密钥是基于密码卡加密后的主密钥,密钥管理服务存储的密钥都是基于硬件设备加密后的内容,自身也无法直接拿到密钥,只能通过硬件设备解密后才可获取。
20.主密钥只支持sm4和sm2两种,其中sm4是对称密钥,会生一个密钥值,加密存储到密钥管理服务中;sm2会生成一个密钥对,用户可以获取到公钥值,方便后续的加解密操作。
21.再进一步的,
22.步骤3.1)进一步包括:
23.3.11)本地密码模块基于sm2算法生成一个密钥对,然后生成种子信息;
24.3.12)对入参基于规则通过hmacsm3算法计算一个sign值(hmacsm3的加密 key就是第一步执行下发的key值);
25.3.13)将生成的公钥、种子信息及sign值通过客户端sdk调用数据密钥生成接口。
26.步骤3.2)进一步包括:
27.3.21)基于传输到服务端的信息进行验证签名;同样基于hmacsm3算法,使用步骤一下发的密钥key进行计算;
28.3.22)验签完成后,基于sm4算法生成一个数据密钥a(此时数据密钥为明文);
29.3.23)调用服务器加密机通过主密钥对数据密钥进行加密生成密文b。该步骤生成的密文b主要为以后进行解密留用;
30.3.24)根据传入的公钥及种子信息将数据密钥a通过sm2算法进行公钥加密并获取到密文密钥c,该值回传给用户端进行解密后,可以获取到明文数据密钥。
31.3.25)最后将b和c回传给调用用户(此时回传的数据都是加密后的数据)。
32.当进行数据解密时,则还需要根据存储的数据密钥b调用密钥管理服务获取到明文数据密钥,然后对数据密文进行解密,也需要进行签名验签、传输公钥信息。
33.基于sm2生成的非对称密钥对属于会话级密钥,一次一密;整个交互过程中,采用了sm2、hmacsm3、sm4国密算法。
34.本发明采用密钥传输的方式进行加密操作,保证安全的前提下提高大文件加密效率;
35.基于约定key的国密签名算法,保证数据密钥安全不会被篡改;
36.数据存储安全无明文,防止拖库数据泄露;
37.主密钥采用硬件加密卡保护,安全级别高而不可复制。
38.本发明的有益效果是
39.(1)本发明针对大文件加密存储带来了新的实现方式,在满足安全性的前提下大大提高了加密效率。
40.(2)本发明适用于其他业务场景的加密业务,通过本发明可以降低对物理加密机的性能开销。
41.(3)通过本发明,可以提高业务间通信的安全性。
附图说明
42.图1是本发明的工作流程示意图;
43.图2是主密钥生成流程图;
44.图3是数据密钥获取流程图。
具体实施方式
45.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
46.本发明主要是针对使用密钥管理服务过程中,如何保证大文件的数据存储的安全性进行设计,在保证效率的前提下,实现数据的安全存储。
47.本发明包含了比较成熟且常用的sm2、sm3和sm4这三种算法。通过组合不同的算法使用,调整算法的模式及补码方式,从而保证了数据的传输机密性、完整性,保证数据存储的安全性,防止被人为拖库导致数据泄露。
48.本发明主要包括四部分:约定key的下发、主密钥生成(cmk)、数据密钥生成 (dek)、数据加密。密钥管理服务作为密钥的生命周期管理中心,负责对密钥的集中管理,外围无法拿到密钥,可以通过主密钥衍生数据密钥进行使用。本发明在针对大文件的加密存储过程中,采用对接密钥管理服务,通过安全传输数据密钥的形式,在本地实现数据的加解密,从而大大提高了加密效率,降低带宽依赖。
49.技术方案执行步骤如下:
50.步骤一:约定key的下发
51.该步骤主要是通过线上或者线下操作,生成一个sm4的对称密钥值,作为 hmacsm3计算的密钥key,并下发给用户(一个用户一个key);用户拿到该key 值后,放置到调用端sdk的配置文件中,方便后续的代码调用。
52.步骤二:主密钥生成
53.该步骤是通过调用密钥管理服务实现主密钥的生成(支持对称sm4和非对称 sm2),该密钥一般都会是基于密码卡加密后的主密钥,密钥管理服务存储的密钥都是基于硬件设备加密后的内容,自身也无法直接拿到密钥,只能通过硬件设备解密后才可获取。主密钥目前只支持sm4和sm2两种,其中sm4是对称密钥,会生一个密钥值,加密存储到密钥管理服务中;sm2会生成一个密钥对,用户可以获取到公钥值,方便后续的加解密操作。具体可参考图2讲解说明。
54.步骤三:数据密钥生成
55.该步骤是本发明的核心环节,不仅仅涉及到数据密钥的生成,还涉及到数据密钥的回传以及认证过程。
56.1)客户端信息初始化生成并计算。
57.需要本地密码模块基于sm2算法生成一个密钥对,然后生成种子信息等。
58.对入参基于一定规则通过hmacsm3算法计算一个sign值(hmacsm3的加密key就是第一步执行下发的key值)。
59.将生成的公钥、种子信息及sign值通过客户端sdk调用数据密钥生成接口。
60.2)服务端接收到请求后,进行校验及其他逻辑处理。
61.基于传输到服务端的信息进行验证签名。同样基于hmacsm3算法,使用步骤一下发的密钥key进行计算。
62.验签完成后,基于sm4算法生成一个数据密钥a(此时数据密钥为明文)。
63.调用服务器加密机通过主密钥对数据密钥进行加密生成密文b。该步骤生成的密文b主要为以后进行解密留用。
64.根据传入的公钥及种子信息将数据密钥a通过sm2算法进行公钥加密并获取到密文密钥c,该值回传给用户端进行解密后,可以获取到明文数据密钥。
65.最后将b和c回传给调用用户(此时回传的数据都是加密后的数据)。
66.以上是整个执行过程,具体流程请参考图3讲解说明。
67.步骤四:数据加密
68.该步骤是用户拿到数据密钥b和c后,针对本地的明文数据进行数据的加密操作。主要步骤如下:
69.获取明文数据密钥。
70.用户根据最初基于sm2算法生成的密钥对中私钥对数据密钥c进行解密获取到明文数据密钥。
71.对明文数据进行加密。
72.基于sm4加密算法使用明文数据密钥对明文进行加密,获取到数据密文,
73.释放内存中的明文数据密钥。
74.加密的数据密钥和数据密文落盘存储。
75.将数据密钥b和数据密文进行落盘存储,此时存储的所有数据都是加密后的,用户侧不保存明文相关的数据和密钥。
76.当进行数据解密时,则还需要根据存储的数据密钥b调用密钥管理服务获取到明文数据密钥,然后对数据密文进行解密。过程跟加密过程类似,也需要进行签名验签、传输公钥信息。从而保证了整个加密和解密过程的数据完整性以及机密性,防止被中间截取到数据并进行篡改。
77.备注:基于sm2生成的非对称密钥对属于会话级密钥,一次一密。整个交互过程中,采用了sm2、hmacsm3、sm4等国密算法。
78.本发明主要解决从密钥管理服务获取密钥的过程安全、密钥的存储安全,以及数据的存储安全。通过该方法可以降低数据存储风险,提高加密密钥的安全性,而无需使用ssl_vpn来保证传输的安全性。本发明可以扩展到其他的业务应用场景,而不限制于与密钥管理服务对接的使用,通过该发明可以保证数据的安全加密存储。
79.以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

技术特征:
1.一种基于国密算法实现的数据加密存储方法,其特征在于,包括四部分:约定key的下发、主密钥生成、数据密钥生成、数据加密;密钥管理服务作为密钥的生命周期管理中心,负责对密钥的集中管理,外围无法拿到密钥,可以通过主密钥衍生数据密钥进行使用;通过安全传输数据密钥的形式,在本地实现数据的加解密。2.根据权利要求1所述的方法,其特征在于,步骤如下:步骤1):约定key的下发通过线上或者线下操作,生成一个sm4的对称密钥值,作为hmacsm3计算的密钥key,并下发给用户(一个用户一个key);用户拿到该key值后,放置到调用端sdk的配置文件中,方便后续的代码调用;步骤2):主密钥生成通过调用密钥管理服务实现主密钥的生成;步骤3):数据密钥生成3.1)客户端信息初始化生成并计算;3.2)服务端接收到请求后,进行校验及其他逻辑处理;步骤4):数据加密用户拿到数据密钥后,针对本地的明文数据进行数据的加密操作。3.根据权利要求2所述的方法,其特征在于,步骤2)中,该密钥是基于密码卡加密后的主密钥,密钥管理服务存储的密钥都是基于硬件设备加密后的内容,自身也无法直接拿到密钥,只能通过硬件设备解密后才可获取。4.根据权利要求3所述的方法,其特征在于,主密钥只支持sm4和sm2两种,其中sm4是对称密钥,会生一个密钥值,加密存储到密钥管理服务中;sm2会生成一个密钥对,用户可以获取到公钥值,方便后续的加解密操作。5.根据权利要求4所述的方法,其特征在于,步骤3.1)进一步包括:3.11)本地密码模块基于sm2算法生成一个密钥对,然后生成种子信息;3.12)对入参基于规则通过hmacsm3算法计算一个sign值(hmacsm3的加密key就是第一步执行下发的key值);3.13)将生成的公钥、种子信息及sign值通过客户端sdk调用数据密钥生成接口。6.根据权利要求5所述的方法,其特征在于,步骤3.2)进一步包括:3.21)基于传输到服务端的信息进行验证签名;同样基于hmacsm3算法,使用步骤一下发的密钥key进行计算;3.22)验签完成后,基于sm4算法生成一个数据密钥a(此时数据密钥为明文);3.23)调用服务器加密机通过主密钥对数据密钥进行加密生成密文b。该步骤生成的密文b主要为以后进行解密留用;3.24)根据传入的公钥及种子信息将数据密钥a通过sm2算法进行公钥加密并获取到密文密钥c,该值回传给用户端进行解密后,可以获取到明文数据密钥。3.25)最后将b和c回传给调用用户(此时回传的数据都是加密后的数据)。
7.根据权利要求6所述的方法,其特征在于,当进行数据解密时,则还需要根据存储的数据密钥b调用密钥管理服务获取到明文数据密钥,然后对数据密文进行解密,也需要进行签名验签、传输公钥信息。8.根据权利要求7所述的方法,其特征在于,基于sm2生成的非对称密钥对属于会话级密钥,一次一密;整个交互过程中,采用了sm2、hmacsm3、sm4国密算法。

技术总结
本发明提供一种基于国密算法实现的数据加密存储方法,属于数据安全领域,本发明包括四部分:约定Key的下发、主密钥生成、数据密钥生成、数据加密;密钥管理服务作为密钥的生命周期管理中心,负责对密钥的集中管理,外围无法拿到密钥,可以通过主密钥衍生数据密钥进行使用;通过安全传输数据密钥的形式,在本地实现数据的加解密。降低数据存储风险,提高加密密钥的安全性。密钥的安全性。密钥的安全性。


技术研发人员:徐士强 高传集 董玉全
受保护的技术使用者:浪潮云信息技术股份公司
技术研发日:2021.12.06
技术公布日:2022/3/8

最新回复(0)