一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种数据安全存储方法和装置与流程

2022-06-29 16:25:48 来源:中国专利 TAG:


1.本技术涉及数据存储技术领域,特别是涉及一种数据安全存储方法和装置。


背景技术:

2.数据的存储已经成为了人们日常生活与工作中必须要做的一项任务。随着人们对数据的依赖程度越来越严重,逐渐的开始对数据存储安全重视起来
3.在数据存储安全领域中,数据存储的通常方式为:将待存储数据使用加密算法进行加密,得到密文数据;然后将得到的密文数据进行存储。
4.然而,目前的加密方式使得黑客非常容易根据已知的公开加密算法编写出破解密文数据的攻击程序,或者截取一段密文数据进行暴力破解,得到密钥,之后将存储的密文数据进行解密、复制,密文数据存储的安全性较低,从而为合法用户带来损失。


技术实现要素:

5.为了解决上述技术问题,本技术提供了一种数据安全存储方法和装置,保证了每个密文数据都拥有唯一的加密密钥,并且不会增加密钥管理的复杂性。由于并不存储加密密钥,即使黑客盗取了密文数据,也无法得知加密密钥,不能正确的还原出明文。并且由于不同的密文数据对应的加密密钥不同,即使黑客窃取并暴力破解了一段密文数据,得到加密密钥,也无法使用该加密密钥正确解密其他密文数据,从而有效地提高了密文数据存储的安全性。
6.本技术实施例公开了如下技术方案:
7.第一方面,本技术实施例提供了一种数据安全存储方法,所述方法包括:
8.获取待加密数据的多个属性信息;
9.对所述多个属性信息进行密钥合成变换,生成加密密钥;
10.通过所述加密密钥,采用预设加密算法对所述待加密数据进行加密得到密文数据;
11.存储所述密文数据。
12.可选的,所述通过所述加密密钥,采用预设加密算法对所述待加密数据进行加密得到密文数据之前,所述方法还包括:
13.根据所述加密密钥的长度对所述待加密数据进行补位处理;
14.所述通过所述加密密钥,采用预设加密算法对所述待加密数据进行加密得到密文数据,包括:
15.通过所述加密密钥,采用预设加密算法对补位处理后的所述待加密数据进行加密得到密文数据。
16.可选的,所述对所述多个属性信息进行密钥合成变换,生成加密密钥,包括:
17.对所述多个属性信息中的第一属性信息进行拼接得到第一临时数据;
18.根据所述第一临时数据和所述预设加密算法的密钥长度,确定临时密钥;
19.对所述多个属性信息中的第二属性信息进行拼接得到第二临时数据,所述第二属性信息为所述多个属性信息中除所述第一属性信息之外的信息;
20.根据所述第二临时数据和所述临时密钥得到第三临时数据;
21.根据所述第三临时数据和所述预设加密算法的密钥长度,确定所述加密密钥。
22.可选的,所述根据所述第一临时数据和所述预设加密算法的密钥长度,确定临时密钥,包括:
23.对所述第一临时数据进行哈希运算,得到第四临时数据;
24.根据所述第四临时数据和所述预设加密算法的密钥长度,确定临时密钥。
25.可选的,所述根据所述第二临时数据和所述临时密钥得到第三临时数据,包括:
26.对所述第二临时数据进行哈希运算,得到第五临时数据;
27.根据所述临时密钥和所述第五临时数据进行加密处理,得到所述第三临时数据。
28.可选的,所述根据所述第三临时数据和所述预设加密算法的密钥长度,确定所述加密密钥,包括:
29.若所述第三临时数据的数据长度小于所述密钥长度,对所述第三临时数据进行补位处理,得到所述加密密钥;
30.若所述第三临时数据的数据长度大于所述密钥长度,根据所述密钥长度从所述第三临时数据选取字节,得到所述加密密钥。
31.可选的,所述根据所述密钥长度从所述第三临时数据选取字节,得到所述加密密钥,包括:
32.按照所述第三临时数据的字节排列顺序,从所述第三临时数据选取前密钥长度的字节作为第六临时数据;
33.根据所述第三临时数据中剩余字节确定第七临时数据,所述剩余字节为所述第三临时数据中除所述前密钥长度的字节之外的字节;
34.将所述第六临时数据和所述第七临时数据的异或结果作为所述加密密钥。
35.可选的,所述方法还包括:
36.对所述第一属性信息的目标字节进行异或运算,得到第八临时数据;
37.所述根据所述第四临时数据和所述预设加密算法的密钥长度,确定临时密钥,包括:
38.根据所述第八临时数据对所述第四临时数据进行移位处理,得到第九临时数据;
39.根据所述第九临时数据和所述密钥长度得到所述临时密钥。
40.可选的,所述方法还包括:
41.对所述第二属性信息的目标字节进行异或运算,得到第十临时数据;
42.所述根据所述临时密钥和所述第五临时数据进行加密处理,得到所述第三临时数据,包括:
43.根据所述第十临时数据对所述第五临时数据进行移位处理,得到第十一临时数据;
44.通过所述临时密钥对所述第十一临时数据进行加密得到所述第三临时数据。
45.可选的,所述对所述多个属性信息进行密钥合成变换,生成加密密钥,包括:
46.对所述多个属性信息进行拼接得到第一临时数据;
47.对所述第一临时数据进行哈希运算,得到第二临时数据;
48.根据所述第二临时数据和所述预设加密算法的密钥长度,确定所述加密密钥。
49.第二方面,本技术实施例提供了一种数据安全存储装置,所述装置包括获取单元、生成单元、加密单元和存储单元:
50.所述获取单元,用于获取待加密数据的多个属性信息;
51.所述生成单元,用于对所述多个属性信息进行密钥合成变换,生成加密密钥;
52.所述加密单元,用于通过所述加密密钥,采用预设加密算法对所述待加密数据进行加密得到密文数据;
53.所述存储单元,用于存储所述密文数据。
54.可选的,所述装置还包括补位单元:
55.所述补位单元,用于所述加密单元在通过所述加密密钥,采用预设加密算法对所述待加密数据进行加密得到密文数据之前,根据所述加密密钥的长度对所述待加密数据进行补位处理;
56.所述加密单元具体用于:
57.通过所述加密密钥,采用预设加密算法对补位处理后的所述待加密数据进行加密得到密文数据。
58.可选的,所述生成单元,用于:
59.对所述多个属性信息中的第一属性信息进行拼接得到第一临时数据;
60.根据所述第一临时数据和所述预设加密算法的密钥长度,确定临时密钥;
61.对所述多个属性信息中的第二属性信息进行拼接得到第二临时数据,所述第二属性信息为所述多个属性信息中除所述第一属性信息之外的信息;
62.根据所述第二临时数据和所述临时密钥得到第三临时数据;
63.根据所述第三临时数据和所述预设加密算法的密钥长度,确定所述加密密钥。
64.可选的,所述生成单元,用于:
65.对所述第一临时数据进行哈希运算,得到第四临时数据;
66.根据所述第四临时数据和所述预设加密算法的密钥长度,确定临时密钥。
67.可选的,所述生成单元,用于:
68.对所述第二临时数据进行哈希运算,得到第五临时数据;
69.根据所述临时密钥和所述第五临时数据进行加密处理,得到所述第三临时数据。
70.可选的,所述生成单元,用于:
71.若所述第三临时数据的数据长度小于所述密钥长度,对所述第三临时数据进行补位处理,得到所述加密密钥;
72.若所述第三临时数据的数据长度大于所述密钥长度,根据所述密钥长度从所述第三临时数据选取字节,得到所述加密密钥。
73.可选的,所述生成单元,用于:
74.按照所述第三临时数据的字节排列顺序,从所述第三临时数据选取前密钥长度的字节作为第六临时数据;
75.根据所述第三临时数据中剩余字节确定第七临时数据,所述剩余字节为所述第三临时数据中除所述前密钥长度的字节之外的字节;
76.将所述第六临时数据和所述第七临时数据的异或结果作为所述加密密钥。
77.可选的,所述装置还包括异或单元:
78.所述异或单元,用于对所述第一属性信息的目标字节进行异或运算,得到第八临时数据;
79.所述生成单元,用于:
80.根据所述第八临时数据对所述第四临时数据进行移位处理,得到第九临时数据;
81.根据所述第九临时数据和所述密钥长度得到所述临时密钥。
82.可选的,所述异或单元还用于:
83.对所述第二属性信息的目标字节进行异或运算,得到第十临时数据;
84.所述生成单元,用于:
85.根据所述第十临时数据对所述第五临时数据进行移位处理,得到第十一临时数据;
86.通过所述临时密钥对所述第十一临时数据进行加密得到所述第三临时数据。
87.可选的,所述生成单元,用于:
88.对所述多个属性信息进行拼接得到第一临时数据;
89.对所述第一临时数据进行哈希运算,得到第二临时数据;
90.根据所述第二临时数据和所述预设加密算法的密钥长度,确定所述加密密钥。
91.由上述技术方案可以看出,本技术提供的数据安全存储方法,该方法为了实现对待加密数据的加密,可以获取待加密数据的多个属性信息,对多个属性信息进行密钥合成变换,生成加密密钥。由于不同的待加密数据的属性各有差异,因此变换出来的加密密钥各不相同,这样利用该加密密钥,采用预设加密算法对待加密数据进行加密得到密文数据,并存储密文数据,保证了每个密文数据都拥有唯一的加密密钥,并且不会增加密钥管理的复杂性。由于并不存储加密密钥,即使黑客盗取了密文数据,也无法得知加密密钥,不能正确的还原出明文。并且由于不同的密文数据对应的加密密钥不同,即使黑客窃取并暴力破解了一段密文数据,得到加密密钥,也无法使用该加密密钥正确解密其他密文数据,从而有效地提高了密文数据存储的安全性。
附图说明
92.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
93.图1为本技术实施例提供的一种数据安全存储方法的流程图;
94.图2为本技术实施例提供的一种对属性信息进行密钥合成变换生成加密密钥的方法流程图;
95.图3为本技术实施例提供的一种对属性信息进行密钥合成变换生成加密密钥的方法流程图;
96.图4为本技术实施例提供的一种数据安全存储装置的结构图。
具体实施方式
97.下面结合附图,对本技术的实施例进行描述。
98.在数据存储安全领域中,数据存储的通常方式为:将待存储数据使用加密算法进行加密,得到密文数据;然后将得到的密文数据进行存储,例如存储到系统的数据库中,或者存储在介质中,例如光盘、移动硬盘、u盘flash中。一般情况下,为了便于管理,通常会使用同一个密钥加密一大批数据,甚至加密所有待存储数据。
99.然而这种加密方式使得黑客非常容易根据已知的公开加密算法编写出破解密文数据的攻击程序,或者截取一段密文数据进行暴力破解,得到密钥,之后将存储的密文数据进行解密、复制,密文数据存储的安全性较低,从而为合法用户带来损失。
100.为此,本技术实施例提供一种数据安全存储方法和装置,保证了每个密文数据都拥有唯一的加密密钥,并且不会增加密钥管理的复杂性。由于并不存储加密密钥,即使黑客盗取了密文数据,也无法得知加密密钥,不能正确的还原出明文。并且由于不同的密文数据对应的加密密钥不同,即使黑客窃取并暴力破解了一段密文数据,得到加密密钥,也无法使用该加密密钥正确解密其他密文数据,从而有效地提高了密文数据存储的安全性。
101.接下来,将结合附图对本技术实施例提供的数据安全存储方法进行详细介绍。
102.参见图1,图1示出了一种数据安全存储方法的流程图,该方法包括:
103.s101、获取待加密数据的多个属性信息。
104.待加密数据的属性信息可以是指用于体现待加密数据的性质和关系等的信息,属性信息例如包括数据大小(例如数据的长度)、数据标识、数据的生成时间、数据的存储时间、数据的拥有者等等。不同待加密数据的属性信息不同。
105.例如待加密数据通过d表示,待加密数据d的多个属性信息分别用a1,a2,
···
,an表示。
106.s102、对所述多个属性信息进行密钥合成变换,生成加密密钥。
107.在本实施例中,提供了多种密钥合成变换方式,本技术实施例主要以两种进行介绍。第一种方式可以是将多个属性信息a1,a2,
···
,an拆分成两部分,对每部分分别进行拼接等处理进而得到加密密钥;第二种方式是直接利用所有属性整体拼接,进而得到加密密钥。
108.首先对第一种方式进行详细介绍。利用第一种方式对多个属性信息进行密钥合成变换,生成加密密钥的方法可以是对多个属性信息中的第一属性信息进行拼接得到第一临时数据,根据第一临时数据和预设加密算法的密钥长度,确定临时密钥。对多个属性信息中的第二属性信息进行拼接得到第二临时数据,第二属性信息为多个属性信息中除第一属性信息之外的信息。根据第二临时数据和临时密钥得到第三临时数据,根据第三临时数据和预设加密算法的密钥长度,确定加密密钥。其中,预设加密算法包括但不限于des、des-2、des-3、aes-128、aes-192、aes-256、sm1、sm4加密算法。
109.该方法将多个属性信息分为两部分,分别是第一属性信息和第二属性信息。以多个属性信息分别是a1,a2,
···
,an为例,第一属性信息可以包括a1,a2,
···
,am(m《n),第二属性信息可以包括a(m 1),a(m 2),
···
,am r(m r=n)。对第一属性信息进行拼接得到第一临时数据,第一临时数据可以用t1表示。根据第一临时数据t1和预设加密算法的密钥长度(密钥长度可以用l表示),确定临时密钥,临时密钥可以用k1表示。对第二属性信
息进行拼接得到第二临时数据t2,然后根据第二临时数据t2和临时密钥k1得到第三临时数据,第三临时数据可以用t3表示,根据第三临时数据t3和预设加密算法的密钥长度l,确定加密密钥k。
110.在一种可能的实现方式中,为了提高加密密钥生成的复杂性,根据第一临时数据和预设加密算法的密钥长度,确定临时密钥的实现方式可以是对第一临时数据进行哈希(hash)运算,得到第四临时数据。根据第四临时数据和预设加密算法的密钥长度,确定临时密钥。
111.例如,对第一临时数据t1进行hash运算,得到第四临时数据,第四临时数据可以用t4表示。然后,根据第四临时数据t4和预设加密算法的密钥长度l,确定临时密钥k1。其中,hash运算包括但不限于md5、sha1、sha256、sha384、sha512、sm3摘要算法。
112.根据第四临时数据t4和预设加密算法的密钥长度l,确定临时密钥k1的具体方式可以是取第四临时数据t4的密钥长度l的字节作为临时密钥k1。例如若密钥长度l为16字节,第四临时数据t4的数据长度包括24字节,则从第四临时数据t4截取前16字节作为临时密钥k1。若第四临时数据t4的数据长度小于密钥长度l,则可以对第四临时数据t4进行补位处理,补位处理后的第四临时数据t4作为临时密钥k1。其中,补位处理包括但不限于pkcs#5、pkcs#7、pboc。
113.采用md5算法做hash运算,则hash结果为16字节,即第四临时数据t4的数据长度包括16字节。若预设加密算法为des-3算法进行加密,因为des-3的密钥长度l为24字节,第四临时数据t4的长度不足,不符合预设加密算法(des-3)要求,因此需要补位处理。
114.在一种可能的实现方式中,为了提高加密密钥生成的复杂性,根据第二临时数据和临时密钥得到第三临时数据的方式可以是对第二临时数据进行哈希运算,得到第五临时数据。然后根据临时密钥和第五临时数据进行加密处理,得到第三临时数据。
115.例如,对第二临时数据t2进行hash运算,得到第五临时数据,第五临时数据可以用t5表示。然后,根据第五临时数据t5和临时密钥k1进行加密处理,得到第三临时数据t3。
116.在一种可能的实现方式中,根据第二临时数据和临时密钥得到第三临时数据,根据第三临时数据和预设加密算法的密钥长度,确定加密密钥的方式可以是若第三临时数据的数据长度小于密钥长度,对第三临时数据进行补位处理,得到加密密钥;若第三临时数据的数据长度大于密钥长度,根据密钥长度从第三临时数据选取字节,得到加密密钥。
117.若第三临时数据t3的数据长度小于密钥长度l,对第三临时数据t3进行补位处理,将补位处理后的第三临时数据t3作为加密密钥k。
118.若第三临时数据的数据长度大于密钥长度,在选取字节得到加密密钥时可以按照第三临时数据的字节排列顺序,从第三临时数据选取前密钥长度的字节作为第六临时数据。根据第三临时数据中剩余字节确定第七临时数据,剩余字节为第三临时数据中除前密钥长度的字节之外的字节;将第六临时数据和第七临时数据的异或结果作为加密密钥。
119.例如,如果第三临时数据t3的数据长度大于l,取第三临时数据t3的前l字节作为第六临时数据,第六临时数据可以用t6表示,取第三临时数据t3的剩余字节作为第七临时数据,第七临时数据可以用t7表示,若第三临时数据t3的剩余字节的数据长度小于l,则进行补位处理,将补位处理后的剩余字节作为第七临时数据t7。对第六临时数据t6与第七临时数据t7进行异或处理,将异或结果作为最终加密密钥k。
120.在一些可能的实现方式中,为了提高加密密钥的随机性,使得黑客难以破解加密密钥的生成规律,提高加密密钥的安全性。在第一种加密密钥生成方式的基础上,增加了移位处理的步骤,例如在生成临时密钥过程中增加移位处理步骤,即对第一属性信息的目标字节进行异或运算,得到第八临时数据。此时,根据第四临时数据和预设加密算法的密钥长度,确定临时密钥的方式可以是根据第八临时数据对第四临时数据进行移位处理,得到第九临时数据。根据第九临时数据和密钥长度得到临时密钥。其中,第一属性信息的目标字节可以是从第一属性信息中选取的任意一个字节或多个字节,例如可以是第一属性信息的首字节。
121.例如,将属性信息a1,a2,
···
,am的目标字节进行异或运算,得到第八临时数据y1。然后,针对前述hash运算得到的第四临时数据t4进行移位处理,例如可以采用循环左/右移动y1位,得到第九临时数据,第九临时数据可以用t9表示。根据第九临时数据t9和密钥长度l得到临时密钥k1。根据第九临时数据t9和密钥长度l得到临时密钥k1的方式与根据第四临时数据t4和预设加密算法的密钥长度l确定临时密钥k1的方式类似,此处不再赘述。
122.另外,还可以在根据临时密钥和第五临时数据进行加密处理,得到第三临时数据过程中增加移位处理,即对第二属性信息的目标字节进行异或运算,得到第十临时数据。此时,根据临时密钥和第五临时数据进行加密处理,得到第三临时数据的方式可以是根据第十临时数据对第五临时数据进行移位处理,得到第十一临时数据;通过临时密钥对第十一临时数据进行加密得到第三临时数据。其中,第二属性信息的目标字节可以是从第二属性信息中选取的任意一个字节或多个字节,例如可以是第二属性信息的首字节。
123.例如,将属性信息a(m 1),a(m 2),
···
,am r的目标字节进行异或运算,得到第十临时数据y2。然后,针对前述hash运算得到的第五临时数据t5进行移位处理,例如可以采用循环左/右移动y2位,得到第十一临时数据,第十一临时数据可以用t11表示。通过临时密钥k1对第十一临时数据t11进行加密得到第三临时数据t3。
124.接着对第二种方式进行介绍。第二种方式是直接利用所有属性整体拼接,进而得到加密密钥。对多个属性信息进行拼接得到第一临时数据,对第一临时数据进行哈希运算,得到第二临时数据,根据所述第二临时数据和预设加密算法的密钥长度,确定加密密钥。其中,根据所述第二临时数据和预设加密算法的密钥长度,确定加密密钥与前述第一种方式中根据第三临时数据和预设加密算法的密钥长度,确定加密密钥的方式类似,此处不再赘述。
125.另外,在该第二种方式中也可以增加对多个属性信息的目标字节进行异或处理,进而根据异或结果对第二临时数据进行移位处理操作,此处不再赘述。其中,多个属性信息的目标字节可以是从属性信息中选取的任意一个字节或多个字节,例如可以是每个属性信息的首字节。
126.s103、通过所述加密密钥,采用预设加密算法对所述待加密数据进行加密得到密文数据。
127.s104、存储所述密文数据。
128.在针对待加密数据生成加密密钥后,通过该加密密钥,采用预设加密算法对待加密数据进行加密得到密文数据,从而将密文数据存储到数据库或存储介质中。
129.需要说明的是,在对待加密数据进行加密时,待加密数据的数据长度与加密密钥
的长度需要满足一定的关系,例如待加密数据的数据长度是加密密钥的长度的整数倍。然而在实际应用中,待加密数据的数据长度可能不满足上述要求,在这种情况下,可以根据加密密钥的长度对待加密数据进行补位处理,然后通过加密密钥,采用预设加密算法对补位处理后的待加密数据进行加密得到密文数据。
130.由上述技术方案可以看出,本技术提供的数据安全存储方法,该方法为了实现对待加密数据的加密,可以获取待加密数据的多个属性信息,对多个属性信息进行密钥合成变换,生成加密密钥。由于不同的待加密数据的属性各有差异,因此变换出来的加密密钥各不相同,这样利用该加密密钥,采用预设加密算法对待加密数据进行加密得到密文数据,并存储密文数据,保证了每个密文数据都拥有唯一的加密密钥,并且不会增加密钥管理的复杂性。由于并不存储加密密钥,即使黑客盗取了密文数据,也无法得知加密密钥,不能正确的还原出明文。并且由于不同的密文数据对应的加密密钥不同,即使黑客窃取并暴力破解了一段密文数据,得到加密密钥,也无法使用该加密密钥正确解密其他密文数据,从而有效地提高了密文数据存储的安全性。
131.接下来,将结合实际应用场景,对本技术实施例提供的两种加密密钥生成方法进行介绍。在该应用场景中,假设sql数据库中有个密码表,该密码表主要用来存储用户登录系统的密码,该密码表有自增长编号(id)、所属用户id(user_id)、密码状态(status)、密码值(value)、密码创建时间(create_time)等几个字段。其中密码值value字段为要加密的敏感数据(待加密数据),参见表1所示:
132.表1
[0133][0134]
取字段id、user_id、status、createtime分别作为属性信息a1,a2,a3,a4:
[0135]
在一种可能的实现方式中,基于表1的示例对属性信息进行密钥合成变换生成加密密钥的步骤,参见图2,该方法包括:
[0136]
s201、将属性信息a1、a2拼接,得到第一临时数据t1。
[0137]
得到的第一临时数据t1为13ed95f93964847449e3fbb9ad650e048。其中,属性信息a1、a2可以是第一属性信息。
[0138]
s202、对第一临时数据t1进行md5的hash运算,得到第四临时数据t4。
[0139]
得到的第四临时数据t4为9eb598b34db3c81210381fd7ad5b519b。
[0140]
s203、根据第四临时数据和预设加密算法的密钥长度,确定临时密钥k1。
[0141]
其中,预设加密算法为des-3加密算法,密钥长度为24字节,此时需要对第四临时数据t4进行补位处理,以采取pboc算法补位为例,补位结果为:9eb598b34db3c81210381fd7ad5b519b8000000000000000,则临时密钥k1为:9eb598b34db3c81210381fd7ad5b519b8000000000000000。
[0142]
s204、将属性信息a3、a4拼接,得到第二临时数据t2。
[0143]
得到的第二临时数据t2为31595210373000。其中,create_time取值为unix时间
戳,“2020-07-20 09:59:33”对应的unix时间戳(毫秒)为“1595210373000”。其中,属性信息a3、a4可以是第二属性信息。
[0144]
s205、对第二临时数据t2进行md5的hash运算,得到第五临时数据t5。
[0145]
得到的第五临时数据t5为525fa8e3501fcca50ef4d94f5bb3d8f1。
[0146]
s206、使用临时密钥k1对第五临时数据t5进行加密,得到第三临时数据t3。
[0147]
得到的第三临时数据t3为494fa3911c8bf47fff547da20ab4c6aa。其中,加密时可以采用des-3算法ecb模式。
[0148]
s207、根据第三临时数据t3和预设加密算法的密钥长度,确定加密密钥。
[0149]
预设加密算法为des-3加密算法,密钥长度为8,取第三临时数据t3的前8字节作为第六临时数据t6:494fa3911c8bf47f,第三临时数据t3的剩余字节作为第七临时数据t7:ff547da20ab4c6aa,t6与t7进行异或处理得到异或结果为:b61bde33163f32d5,则最终合成的加密密钥k为:b61bde33163f32d5。
[0150]
在另一种可能的实现方式中,基于表1的示例对属性信息进行密钥合成变换生成加密密钥的步骤,参见图3,该方法包括:
[0151]
s301、将属性信息a1、a2拼接,得到第一临时数据t1。
[0152]
得到的第一临时数据t1为13ed95f93964847449e3fbb9ad650e048。其中,属性信息a1、a2可以是第一属性信息。
[0153]
s302、将属性信息a1、a2的首字节进行异或运算,得到第八临时数据y1。
[0154]
得到的第八临时数据y1为2。其中,属性信息a1、a2的首字节可以作为第一属性信息的目标字节。
[0155]
s303、对第一临时数据t1进行md5的hash运算,得到第四临时数据t4。
[0156]
得到的第四临时数据t4为9eb598b34db3c81210381fd7ad5b519b。
[0157]
s304、对第四临时数据t4进行循环左移2位,得到第九临时数据t9。
[0158]
得到的第九临时数据t9为7ad662cd36cf204840e07f5eb56d466e。
[0159]
s305、根据第九临时数据t9和密钥长度l得到临时密钥k1。
[0160]
预设加密算法为des-3加密算法,密钥长度为24字节,此时需要对第九临时数据t9进行补位处理,以采取pboc算法补位为例,补位结果为:7ad662cd36cf204840e07f5eb56d466e8000000000000000,则临时密钥k1为:7ad662cd36cf204840e07f5eb56d466e8000000000000000。
[0161]
s306、将属性信息a3、a4拼接,得到第二临时数据t2。
[0162]
得到的第二临时数据t2为31595210373000。其中,create_time取值为unix时间戳,“2020-07-20 09:59:33”对应的unix时间戳(毫秒)为“1595210373000”。其中,属性信息a3、a4可以是第二属性信息。
[0163]
s307、将属性信息a3、a4的首字节进行异或运算,得到第十临时数据y2。
[0164]
得到的第十临时数据y2为2。其中,属性信息a3、a4的首字节可以作为第二属性信息的目标字节。
[0165]
s308、对第二临时数据t2进行md5的hash运算,得到第五临时数据t5。
[0166]
得到的第五临时数据t5为525fa8e3501fcca50ef4d94f5bb3d8f1。
[0167]
s309、对第五临时数据t5进行循环左移2位,得到第十一临时数据t11。
[0168]
得到的第十一临时数据t11为7ad662cd36cf204840e07f5eb56d466e。
[0169]
循环移位解释:t5和t3都是16进制的数据,循环移位时按照t5的2进制数进行移位,所有数据向左移动2位,最前面的2位放在最后面(实际操作可以不限于左移或右移)。例如,16进制数据2568,变换成二进制数据位0010010101101000,循环左移2位后变为1001010110100000,移位后变换为16进制数为95a0,即2568循环左移2位后变为95a0。
[0170]
s310、使用临时密钥k1对第十一临时数据t11进行加密,得到第三临时数据t3。
[0171]
得到的第三临时数据t3为edd2c735caf1317b2814d7bab3d9861c。
[0172]
s311、根据第三临时数据t3和预设加密算法的密钥长度,确定加密密钥。
[0173]
预设加密算法为aes-128,密钥长度为16,则最终合成的加密密钥k为:edd2c735caf1317b2814d7bab3d9861c。
[0174]
基于前述实施例提供的数据安全存储方法,本技术实施例还提供一种数据安全存储装置,参见图4,所述装置包括获取单元401、生成单元402、加密单元403和存储单元404:
[0175]
所述获取单元401,用于获取待加密数据的多个属性信息;
[0176]
所述生成单元402,用于对所述多个属性信息进行密钥合成变换,生成加密密钥;
[0177]
所述加密单元403,用于通过所述加密密钥,采用预设加密算法对所述待加密数据进行加密得到密文数据;
[0178]
所述存储单元404,用于存储所述密文数据。
[0179]
可选的,所述装置还包括补位单元:
[0180]
所述补位单元,用于所述加密单元在通过所述加密密钥,采用预设加密算法对所述待加密数据进行加密得到密文数据之前,根据所述加密密钥的长度对所述待加密数据进行补位处理;
[0181]
所述加密单元403具体用于:
[0182]
通过所述加密密钥,采用预设加密算法对补位处理后的所述待加密数据进行加密得到密文数据。
[0183]
可选的,所述生成单元402,用于:
[0184]
对所述多个属性信息中的第一属性信息进行拼接得到第一临时数据;
[0185]
根据所述第一临时数据和所述预设加密算法的密钥长度,确定临时密钥;
[0186]
对所述多个属性信息中的第二属性信息进行拼接得到第二临时数据,所述第二属性信息为所述多个属性信息中除所述第一属性信息之外的信息;
[0187]
根据所述第二临时数据和所述临时密钥得到第三临时数据;
[0188]
根据所述第三临时数据和所述预设加密算法的密钥长度,确定所述加密密钥。
[0189]
可选的,所述生成单元402,用于:
[0190]
对所述第一临时数据进行哈希运算,得到第四临时数据;
[0191]
根据所述第四临时数据和所述预设加密算法的密钥长度,确定临时密钥。
[0192]
可选的,所述生成单元402,用于:
[0193]
对所述第二临时数据进行哈希运算,得到第五临时数据;
[0194]
根据所述临时密钥和所述第五临时数据进行加密处理,得到所述第三临时数据。
[0195]
可选的,所述生成单元402,用于:
[0196]
若所述第三临时数据的数据长度小于所述密钥长度,对所述第三临时数据进行补
位处理,得到所述加密密钥;
[0197]
若所述第三临时数据的数据长度大于所述密钥长度,根据所述密钥长度从所述第三临时数据选取字节,得到所述加密密钥。
[0198]
可选的,所述生成单元402,用于:
[0199]
按照所述第三临时数据的字节排列顺序,从所述第三临时数据选取前密钥长度的字节作为第六临时数据;
[0200]
根据所述第三临时数据中剩余字节确定第七临时数据,所述剩余字节为所述第三临时数据中除所述前密钥长度的字节之外的字节;
[0201]
将所述第六临时数据和所述第七临时数据的异或结果作为所述加密密钥。
[0202]
可选的,所述装置还包括异或单元:
[0203]
所述异或单元,用于对所述第一属性信息的目标字节进行异或运算,得到第八临时数据;
[0204]
所述生成单元402,用于:
[0205]
根据所述第八临时数据对所述第四临时数据进行移位处理,得到第九临时数据;
[0206]
根据所述第九临时数据和所述密钥长度得到所述临时密钥。
[0207]
可选的,所述异或单元还用于:
[0208]
对所述第二属性信息的目标字节进行异或运算,得到第十临时数据;
[0209]
所述生成单元402,用于:
[0210]
根据所述第十临时数据对所述第五临时数据进行移位处理,得到第十一临时数据;
[0211]
通过所述临时密钥对所述第十一临时数据进行加密得到所述第三临时数据。
[0212]
可选的,所述生成单元402,用于:
[0213]
对所述多个属性信息进行拼接得到第一临时数据;
[0214]
对所述第一临时数据进行哈希运算,得到第二临时数据;
[0215]
根据所述第二临时数据和所述预设加密算法的密钥长度,确定所述加密密钥。
[0216]
由上述技术方案可以看出,本技术提供的数据安全存储装置,该装置通过获取单元可以获取待加密数据的多个属性信息,通过生成单元对多个属性信息进行密钥合成变换,生成加密密钥。由于不同的待加密数据的属性各有差异,因此变换出来的加密密钥各不相同,这样加密单元利用该加密密钥,采用预设加密算法对待加密数据进行加密得到密文数据,并在存储单元存储该密文数据,保证了每个密文数据都拥有唯一的加密密钥,并且不会增加密钥管理的复杂性。由于并不存储加密密钥,即使黑客盗取了密文数据,也无法得知加密密钥,不能正确的还原出明文。并且由于不同的密文数据对应的加密密钥不同,即使黑客窃取并暴力破解了一段密文数据,得到加密密钥,也无法使用该加密密钥正确解密其他密文数据,从而有效地提高了密文数据存储的安全性。
[0217]
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质可以是下述介质中的至少一种:只读存储器(英文:read-only memory,缩写:rom)、ram、磁碟或者光盘等各种可以存储程序代码的介质。
[0218]
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于设备及系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的设备及系统实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
[0219]
以上所述,仅为本技术的一种具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应该以权利要求的保护范围为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献