CN115589284B - 数据保护方法、装置,及电子设备 - Google Patents
数据保护方法、装置,及电子设备 Download PDFInfo
- Publication number
- CN115589284B CN115589284B CN202211116573.1A CN202211116573A CN115589284B CN 115589284 B CN115589284 B CN 115589284B CN 202211116573 A CN202211116573 A CN 202211116573A CN 115589284 B CN115589284 B CN 115589284B
- Authority
- CN
- China
- Prior art keywords
- data
- key
- subkey
- preset
- character string
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 79
- 238000004422 calculation algorithm Methods 0.000 claims description 66
- 238000013475 authorization Methods 0.000 claims description 41
- 238000012795 verification Methods 0.000 claims description 32
- 230000004044 response Effects 0.000 claims description 23
- 238000012545 processing Methods 0.000 claims description 17
- 238000004590 computer program Methods 0.000 description 14
- 241001441724 Tetraodontidae Species 0.000 description 11
- 230000011218 segmentation Effects 0.000 description 7
- 238000013500 data storage Methods 0.000 description 6
- 230000001960 triggered effect Effects 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000005336 cracking Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000011166 aliquoting Methods 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 230000003203 everyday effect Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/085—Secret sharing or secret splitting, e.g. threshold schemes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Storage Device Security (AREA)
Abstract
本申请公开了一种数据保护方法及装置,属于数据安全技术领域。所述方法包括:获取主密钥对应的第一字符串;对所述第一字符串进行分割,得到预设数量的第二字符串;基于每个所述第二字符串,分别生成对应的子密钥,其中,所述子密钥的长度大于所述主密钥的长度;响应于执行预设操作,通过与所述预设操作对应的所述子密钥,对所述预设操作对应的数据进行相应数据保护。本方法通过生成多个不同的子密钥,分别用于通过云平台执行的不同数据操作,并且,子密钥的长度大于主密钥,可以有效提升数据保护的可靠性。
Description
技术领域
本申请涉及数据安全技术领域,特别是涉及数据保护方法、装置,及电子设备及计算机可读存储介质。
背景技术
云计算是新兴的信息技术之一,每天有数以百万计的用户通过云端存储和访问数据。由于海量的数据和应用存储在云数据中心,因此需要可靠、低成本的数据保护解决方案。现有技术中,有基于密钥交换的云数据传输保护方法、基于静态加密的数据存储保护方法等。由于云数据中心存储了大量的数据,因此需要从各个方面对数据进行保护,并且,在考虑安全性的同时,还需要考虑数据保护的时间和资源消耗成本。
可见,现有技术中的数据保护方案还需要改进。
发明内容
本申请实施例提供一种数据保护方法、装置,及电子设备及计算机可读存储介质,提供了一种低成本且可靠性高的云数据保护方法。
第一方面,本申请实施例公开了一种数据保护方法,应用于客户端,所述方法包括:
获取主密钥对应的第一字符串;
对所述第一字符串进行分割,得到预设数量的第二字符串;
基于每个所述第二字符串,分别生成对应的子密钥,其中,所述子密钥的长度大于所述主密钥的长度;
响应于执行预设操作,通过与所述预设操作对应的所述子密钥,对所述预设操作对应的数据进行相应数据保护。
可选的,所述基于每个所述第二字符串,分别生成对应的子密钥,包括:
针对每个所述第二字符串,基于所述第二字符串,以及,与所述第二字符串对应的随机数,生成所述第二字符串对应的子密钥。
可选的,所述基于所述第二字符串,以及,与所述第二字符串对应的随机数,生成与所述第二字符串对应的子密钥,包括:
将与所述第二字符串对应的随机数,与所述第二字符串中的密钥字符序列进行连接,得到密钥连接结果;
采用安全散列算法对所述进行连接得到的所述密钥连接结果进行加密运算,生成与所述第二字符串对应的子密钥。
可选的,所述对所述第一字符串进行分割,得到预设数量的第二字符串,包括:
对所述第一字符串进行分割,得到预设数量长度相当的第二字符串。
可选的,所述预设操作包括:数据加密操作、数据解密操作,所述子密钥还包括:与所述数据加密操作和所述数据解密操作对应的第一子密钥,所述响应于执行预设操作,通过与所述预设操作对应的所述子密钥,对所述预设操作对应的数据进行相应数据保护,包括:
响应于执行所述数据加密操作,以所述第一子密钥和目标源数据作为第一预设加密算法的输入,对所述目标源数据进行加密处理,得到所述目标源数据对应的加密数据;和/或,
响应于执行所述数据解密操作,以所述第一子密钥和目标加密数据作为预设解密算法的输入,对所述目标加密数据进行解密处理,得到所述目标加密数据对应的源数据。
可选的,所述预设操作包括:数据签名操作,所述子密钥还包括:与所述数据签名操作对应的第二子密钥,所述响应于执行预设操作,通过与所述预设操作对应的所述子密钥,对所述预设操作对应的数据进行相应数据保护,包括:
以所述第二子密钥和所述加密数据作为输入,进行预设哈希运算,得到所述加密数据对应的数据签名;
将所述数据签名发送至服务端与所述加密数据进行关联存储,所述数据签名用于:所述服务端在接收到所述客户端访问所述加密数据的请求时,获取所述客户端发送的第二子密钥,并对所述客户端发送的第二子密钥和所述加密数据进行所述预设哈希运算,得到所述加密数据对应的待验证数据签名;之后,所述服务端将与所述加密数据关联存储的所述数据签名与所述待验证数据签名进行一致性比对,得到指示签名是否验证成功的验证结果。
可选的,所述预设操作包括:编辑授权操作,所述子密钥包括:与所述编辑授权操作对应的第三子密钥,所述响应于执行预设操作,通过与所述预设操作对应的所述子密钥,对所述预设操作对应的数据进行相应数据保护,包括:
响应于执行所述编辑授权操作,向服务端发送所述第三子密钥,使得所述服务端将接收到的所述第三子密钥,与所述编辑授权操作针对的数据的数据所有者关联的第三子密钥进行一致性比对,并根据比对结果确定所述编辑授权操作的授权结果。
第二方面,本申请实施例公开了一种数据保护装置,应用于客户端,所述装置包括:
第一字符串获取模块,用于获取主密钥对应的第一字符串;
第二字符串获取模块,用于对所述第一字符串进行分割,得到预设数量的第二字符串;
子密钥生成模块,用于基于每个所述第二字符串,分别生成对应的子密钥,其中,所述子密钥的长度大于所述主密钥的长度;
数据保护模块,用于响应于执行预设操作,通过与所述预设操作对应的所述子密钥,对所述预设操作对应的数据进行相应数据保护。
可选的,所述第二字符串获取模块,进一步用于:
针对每个所述第二字符串,基于所述第二字符串,以及,与所述第二字符串对应的随机数,生成所述第二字符串对应的子密钥。
可选的,所述子密钥生成模块,进一步用于:
将与所述第二字符串对应的随机数,与所述第二字符串中的密钥字符序列进行连接,得到密钥连接结果;
采用安全散列算法对所述进行连接得到的所述密钥连接结果进行加密运算,生成与所述第二字符串对应的子密钥。
可选的,所述对所述第一字符串进行分割,得到预设数量的第二字符串,包括:
对所述第一字符串进行分割,得到预设数量长度相当的第二字符串。
可选的,所述预设操作包括:数据加密操作、数据解密操作,所述子密钥还包括:与所述数据加密操作和所述数据解密操作对应的第一子密钥,所述数据保护模块,进一步用于:
响应于执行所述数据加密操作,以所述第一子密钥和目标源数据作为第一预设加密算法的输入,对所述目标源数据进行加密处理,得到所述目标源数据对应的加密数据;和/或,
响应于执行所述数据解密操作,以所述第一子密钥和目标加密数据作为预设解密算法的输入,对所述目标加密数据进行解密处理,得到所述目标加密数据对应的源数据。
可选的,所述预设操作包括:数据签名操作,所述子密钥还包括:与所述数据签名操作对应的第二子密钥,所述数据保护模块,进一步用于:
以所述第二子密钥和所述加密数据作为输入,进行预设哈希运算,得到所述加密数据对应的数据签名;
将所述数据签名发送至服务端与所述加密数据进行关联存储,所述数据签名用于:所述服务端在接收到所述客户端访问所述加密数据的请求时,获取所述客户端发送的第二子密钥,并对所述客户端发送的第二子密钥和所述加密数据进行所述预设哈希运算,得到所述加密数据对应的待验证数据签名;之后,所述服务端将与所述加密数据关联存储的所述数据签名与所述待验证数据签名进行一致性比对,得到指示签名是否验证成功的验证结果。
可选的,所述预设操作包括:编辑授权操作,所述子密钥包括:与所述编辑授权操作对应的第三子密钥,所述数据保护模块,进一步用于:
响应于执行所述编辑授权操作,向服务端发送所述第三子密钥,使得所述服务端将接收到的所述第三子密钥,与所述编辑授权操作针对的数据的数据所有者关联的第三子密钥进行一致性比对,并根据比对结果确定所述编辑授权操作的授权结果。
第三方面,本申请实施例公开了一种数据保护方法,应用于服务端,所述方法包括:
基于客户端的触发,获取主密钥对应的第一字符串;
对所述第一字符串进行分割,得到预设数量的第二字符串;
基于每个所述第二字符串,分别生成对应的子密钥,其中,所述子密钥的长度大于所述主密钥的长度;
将所述子密钥发送至所述客户端;
响应于执行预设操作,通过与所述预设操作对应的所述子密钥,对所述预设操作对应的数据进行相应数据保护。
可选的,所述预设操作包括:数据加密操作、数据解密操作,所述子密钥还包括:与所述数据加密操作和所述数据解密操作对应的第一子密钥,所述响应于执行预设操作,通过与所述预设操作对应的所述子密钥,对所述预设操作对应的数据进行相应数据保护,包括:
接收客户端发送的加密数据,其中,所述加密数据是所述客户端响应于执行所述数据加密操作,以所述第一子密钥和目标源数据作为第一预设加密算法的输入,对所述目标源数据进行加密处理之后得到的;和/或,
向客户端发送加密数据,使得所述客户端基于所述第一子密钥对所述加密数据执行所述数据解密操作。
可选的,所述预设操作包括:数据签名操作,所述子密钥还包括:与所述数据签名操作对应的第二子密钥,所述响应于执行预设操作,通过与所述预设操作对应的所述子密钥,对所述预设操作对应的数据进行相应数据保护,包括:
接收客户端发送的目标加密数据关联的数据签名;
将所述数据签名和所述目标加密数据进行关联存储;
在接收到所述客户端访问所述加密数据的请求时,获取所述客户端发送的第二子密钥;
对所述客户端发送的第二子密钥和所述目标加密数据进行预设哈希运算,得到所述目标加密数据对应的待验证数据签名;
将与所述目标加密数据关联存储的所述数据签名与所述待验证数据签名进行一致性比对,得到指示签名是否验证成功的验证结果。
可选的,所述预设操作包括:编辑授权操作,所述子密钥包括:与所述编辑授权操作对应的第三子密钥,所述响应于执行预设操作,通过与所述预设操作对应的所述子密钥,对所述预设操作对应的数据进行相应数据保护,包括:
基于客户端触发的所述编辑授权操作,获取客户端发送的待验证第三子密钥;
将所述待验证第三子密钥,与所述编辑授权操作针对的数据的数据所有者关联的第三子密钥进行一致性比对;
根据比对结果确定所述编辑授权操作的授权结果。
第四方面,本申请实施例公开了一种数据保护装置,应用于服务端,所述装置包括:
第一字符串获取模块,用于基于客户端的触发,获取主密钥对应的第一字符串;
第二字符串获取模块,用于对所述第一字符串进行分割,得到预设数量的第二字符串;
子密钥生成模块,用于基于每个所述第二字符串,分别生成对应的子密钥,其中,所述子密钥的长度大于所述主密钥的长度;
子密钥发送模块,用于将所述子密钥发送至所述客户端;
数据保护模块,用于响应于执行预设操作,通过与所述预设操作对应的所述子密钥,对所述预设操作对应的数据进行相应数据保护。
可选的,所述预设操作包括:数据加密操作、数据解密操作,所述子密钥还包括:与所述数据加密操作和所述数据解密操作对应的第一子密钥,所述数据保护模块,进一步用于:
接收客户端发送的加密数据,其中,所述加密数据是所述客户端响应于执行所述数据加密操作,以所述第一子密钥和目标源数据作为第一预设加密算法的输入,对所述目标源数据进行加密处理之后得到的;和/或,
向客户端发送加密数据,使得所述客户端基于所述第一子密钥对所述加密数据执行所述数据解密操作。
可选的,所述预设操作包括:数据签名操作,所述子密钥还包括:与所述数据签名操作对应的第二子密钥,所述数据保护模块,进一步用于:
接收客户端发送的目标加密数据关联的数据签名;
将所述数据签名和所述目标加密数据进行关联存储;
在接收到所述客户端访问所述加密数据的请求时,获取所述客户端发送的第二子密钥;
对所述客户端发送的第二子密钥和所述目标加密数据进行预设哈希运算,得到所述目标加密数据对应的待验证数据签名;
将与所述目标加密数据关联存储的所述数据签名与所述待验证数据签名进行一致性比对,得到指示签名是否验证成功的验证结果。
可选的,所述预设操作包括:编辑授权操作,所述子密钥包括:与所述编辑授权操作对应的第三子密钥,所述数据保护模块,进一步用于:
基于客户端触发的所述编辑授权操作,获取客户端发送的待验证第三子密钥;
将所述待验证第三子密钥,与所述编辑授权操作针对的数据的数据所有者关联的第三子密钥进行一致性比对;
根据比对结果确定所述编辑授权操作的授权结果。
第五方面,本申请实施例还公开了一种电子设备,包括存储器、处理器及存储在所述存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现本申请实施例所述的数据保护方法。
第六方面,本申请实施例公开了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时本申请实施例公开的数据保护方法的步骤。
本申请实施例公开的数据保护方法,通过获取主密钥对应的第一字符串;对所述第一字符串进行分割,得到预设数量的第二字符串;基于每个所述第二字符串,分别生成对应的子密钥,其中,所述子密钥的长度大于所述主密钥的长度;响应于执行预设操作,通过与所述预设操作对应的所述子密钥,对所述预设操作对应的数据进行相应数据保护,有效提升了数据保护的可靠性,并且,运算成本低。
上述说明仅是本申请技术方案的概述,为了能够更清楚了解本申请的技术手段,而可依照说明书的内容予以实施,并且为了让本申请的上述和其它目的、特征和优点能够更明显易懂,以下特举本申请的具体实施方式。
附图说明
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
图1是本申请实施例公开的数据保护方法的流程图之一;
图2是本申请实施例公开的数据保护方法的流程图之二;
图3是本申请实施例公开的数据保护装置结构示意图之一;
图4是本申请实施例公开的数据保护装置结构示意图之二;
图5示意性地示出了用于执行根据本申请的方法的电子设备的框图;以及
图6示意性地示出了用于保持或者携带实现根据本申请的方法的程序代码的存储单元。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在云环境中,数百万用户可以在云上访问数据,用户之间可以通过共享密钥、私钥和公钥来分享数据,在这种背景下,密钥的生成和管理对保证云数据的安全性至关重要。如果不遵循密钥生成的安全过程,就可能丧失密钥的作用。
本申请实施例中所述的数据保护方法,提供了一种利用基于密钥推导的加密技术增强数据保护的方法,从数据存储、访问、编辑等多个维度,为存储在云中的数据提供数据安全保护。为了全面对云端存储的数据提供数据保护,本申请实施例中所述的数据保护方法从一个主密钥派生出三个独立的子密钥,每个子密钥用于特定的数据操作。实验结果表明,该方法在获得安全的数据操作密钥的同时,具有较低的计算开销。
为了便于读者理解本方案,下面对本申请实施例公开的一种数据保护方法进行举例说明。
如图1所示,本申请实施例公开的一种数据保护方法,应用于客户端,所述方法包括:步骤110至步骤140。
步骤110,获取主密钥对应的第一字符串。
本申请实施例中所述的主密钥为包含若干密钥字符的字符序列。其中,所述主密钥可以基于数据所有者对应的信息按照预设密钥生成算法生成,也可以根据默认的随机信息按照预设密钥生成算法生成。
本申请的实施例中,在数据所有者站点(即云平台的客户端)构造主密钥。例如,可以使用标准的128位BlowFish算法生成主密钥。BlowFish是一个对称加密块算法能保证很好的加密速度,并且目前为止没有发现有效地破解方法。使用BlowFish生成主密钥的具体方法可参见现有技术,本申请实施例中不再赘述。
以使用标准的128位BlowFish算法生成主密钥为例,本申请实施例中将得到128的主密钥,即主密钥为包括128个密钥字符的字符序列。
在获取到主密钥之后,即可获取到所述主密钥对应的第一字符串。其中,所述主密钥对应的第一字符串即为所述主密钥中包括的密钥字符的字符序列的字符串形式。
本申请的一些实施例中,需要使用云服务的用户(如数据所有者),首先需要在云服务提供商的云平台进行注册,成为云平台用户。之后,可以通过网站页面,或者,应用程序等方式,访问所述云平台的Web服务,进行数据存储、编辑、共享、下载等数据操作。
步骤120,对所述第一字符串进行分割,得到预设数量的第二字符串。
其中,所述预设数量与待生成的子密钥的数量匹配。
本申请的实施例中,为了提升数据安全性,进一步基于所述主密钥派生出多个子密钥,然后,在数据的存储、访问、传输、编辑等数据操作过程中,通过各个子密钥对各数据操作过程中需要执行的加密、解密、签名验证等数据操作针对的数据对象进行保护。例如,对待存储或传输的数据进行加密处理、对加密数据进行签名、对待访问的数据或待编辑的数据进行签名验证,以及,对访问的数据进行解密处理等。
本申请的一些实施例中,基于主密钥中包括的所有密钥字符即排列信息,生成子密钥。以需要生成N个子密钥为例,例如,可以将主密钥对应的第一字符串对应的密钥字符序列切割为N个等长或不等长的子字符列,然后,根据每个子字符序列分别生成一个第二字符串。
步骤130,基于每个所述第二字符串,分别生成对应的子密钥,其中,所述子密钥的长度大于所述主密钥的长度。
本申请的一些实施例中,基于不同的随机数和主密钥中包括的不同字符序列,生成子密钥。例如,在得到预设数量的第二字符串之后,进一步基于每个第二字符串和对应的随机数,生成与该第二字符串对应的子密钥,这样,即可得到N个子密钥。
本申请的一些实施例中,在基于第二字符串生成子密钥时,选择的密钥生成算法例如可以为BlowFish算法。进一步的,可以通过配置密钥生成算法的参数,使得根据第二字符串生成的子密钥的密钥长度大于主密钥的长度。例如,可以采用BlowFish算法生成包含160个密钥字符的子密钥。
步骤140,响应于执行预设操作,通过与所述预设操作对应的所述子密钥,对所述预设操作对应的数据进行相应数据保护。
本申请的实施例中,响应于某个数据所有者的操作生成的子密钥,用于对该数据所有者(即生产数据的用户)所拥有的源数据,以及,所述源数据的关联数据进行保护。其中,所述关联数据包括但不限于:所述源数据进行加密处理后得到的加密数据。数据所有者所拥有的数据包括但不限于:源数据、加密处理后的加密数据。
通过执行前述步骤生成N个子密钥之后,数据所有者可以将生成的子密钥保存在数据所有者站点本地,还可以将生成的子密钥同步发送到云平台存储,用于后续对该数据所有者的数据进行数据保护。
本申请的一些实施例中,所述进行数据保护包括但不限于以下一种或多种数据保护措施:对源数据执行数据加密操作后,存储加密数据;对源数据对应的加密数据设置签名,用于验证加密数据的访问权限;对访问的加密数据进行签名验证,验证通过后对加密数据进行解密;以及,对源数据或加密数据的编辑操作进行授权验证。
本申请的一些实施例中,可以定义每个子密钥对应一种预设操作,当需要执行该预设操作时,采用对应的子密钥对该预设操作针对的数据进行数据保护。其中,所述预设操作包括但不限于:数据加密操作、数据解密操作、编辑授权操作(如对数据进行新增、修改、删除等操作时获取授权的操作),以及,数据签名操作。以预设操作包括:数据加密操作、数据解密操作、编辑授权操作,以及,数据签名操作为例,可以选择在前述步骤中生成三个子密钥,分别记为:第一子密钥、第二子密钥,以及,第三子密钥。之后,进一步确定每个子密钥对应的预设操作。
例如,可以定义第一子密钥对应数据加密操作和数据解密操作,定义第二子密钥对应数据签名操作,定义第三子密钥对应编辑授权操作。当某一预设操作被执行时,可以获取该预设操作对应的子密钥,并基于该子密钥执行数据保护操作。
为了使读者更加理解本申请实施例中提供的数据保护方法,下面对前述各步骤的具体实施方式,进行进一步阐述。
本申请的一些实施例中,所述对所述第一字符串进行分割,得到预设数量的第二字符串,包括:对所述第一字符串进行分割,得到预设数量长度相当的第二字符串。即,将所述第一字符串对应的字符序列,分割为预设数量长度相当的子字符序列;基于每个所述子字符序列,分别生成所述子字符序列对应的第二字符串。以需要生成3各子密钥为例,可以将主密钥对应的第一字符串分割为3个第二字符串,然后,基于每个第二字符串,分别生成一个子密钥。
本申请的一些实施例中,所述对所述第一字符串进行分割,得到预设数量长度相当的第二字符串,包括:将所述第一字符串中包括的密钥字符的数量进行预设数量等分,得到各所述第二字符串中包括的候选密钥字符数量;从所述第一字符串的首个字符开始,从前向后在所述第一字符串中确定包括所述候选密钥字符数量密钥字符的依次相邻的所述预设数量-1个字符序列,生成所述预设数量-1个第二字符串;根据所述第一字符串中除所述预设数量-1个所述字符序列以外的所述密钥字符的序列,生成一个第二字符串。
以所述预设数量为N,所述主密钥对应的第一字符串中包括M个密钥字符为例,即所述主密钥为包括M个密钥字符的字符序列,可以通过将密钥字符的数量进行N等分的方式,得到待生成的每个第二字符串中包括的候选密钥字符数量。候选密钥字符数量可以根据M/N得到的结果向上取整或者向下取整确定。其中,M为正整数。如前所述,M可以取值为128,即主密钥的长度为128。相应的,当需要生成3个子密钥时,候选密钥字符数量可以为128除以3后得到的商向上取整或向下取整确定,即候选密钥字符数量P可以取值为42或者43。
接下来,根据所述第一字符串和所述候选密钥字符数量,确定N个子密钥。以第一字符串表示为string1为例,第一字符串中的密钥字符相应表示为string1[i],0≤i≤M-1。则可以采用如下方式首先根据所述第一字符串和所述候选密钥字符数量,确定N个敌人字符串。例如:可以将第一字符串的自首个字符起的前P(如43)个密钥字符(即字符string1[0]、string1[1]、…、string1[42])作为一个子字符序列,生成一个第二字符串(例如记为string1_1);将第一字符串的自第44个字符起的P(如43)个密钥字符(即字符string1[43]、string1[44]、…、string1[85])作为一个子字符序列,生成一个第二字符串(例如记为string1_2);将第一字符串的自第86个字符起至最后一个密钥字符(即字符string1[86]、string1[87]、…、string1[127])的共42个密钥字符,作为一个子字符序列,生成一个第二字符串(例如记为string1_3)。按照此方法,即可将第一字符串分割为N(如3)个第二字符串。
本申请的另一些实施例中,如果在确定候选密钥字符数量时,采用对第一字符串中密钥字符的数量进行N等分之后向下取整的方式确定候选密钥字符数量,则在第一字符串从前向后依次确定的第二字符串的长度中,最后一各第二字符串的长度将大于其他第二字符串的长度。以前文中P取值为42举例,在第一字符串从前向后依次确定的第二字符串的长度分别为:42、42、44。
本申请的另一些实施例中,所述对所述第一字符串进行分割,得到预设数量长度相当的第二字符串,包括以下步骤:
初始化步骤:初始化待生成第二字符串的第一数目为所述预设数量,以及,将所述第一字符串的首个字符作为对应当前生成第二字符串的分割起始位置;
字符串长度计算步骤:将所述第一字符串中自所述分割起始位置起包括的密钥字符的数量进行所述第一数目等分,得到所述当前生成第二字符串中包括的字符的第二数目;
字符串生成步骤:根据从所述第一字符串的所述分割起始位置起的前所述第二数目个密钥字符对应的字符序列,生成所述当前生成第二字符串;
判断步骤:在所述第一数目大于1的情况下,将所述第一数目减1,以及,将所述分割起始位置向所述第一字符串的结尾移动所述第二数目个字符位置,之后,循环执行所述字符串长度计算步骤、所述字符串生成步骤,以及所述判断步骤,直至生成所述预设数量第二字符串。
下面对各步骤的具体实施方式分别进行阐述。
仍以需要生成3个子密钥为例,所述预设数量等于3,将待生成第二字符串的第一数目初始化为3。同时,将所述第一字符串的首个字符(如前述string1[0])作为对应当前生成第二字符串的分割起始位置。
以第一字符串中包括的密钥字符的数量等于M为例,在生成首个第二字符串时,将M/3得到的商取整,作为待生成的首个第二字符串中包括的字符的第二数目L1。
之后,将从所述第一字符串的所述分割起始位置起(即第一个字符string1[0])的前L1个密钥字符对应的字符序列(即string1[0]至string1[L1-1]个字符的序列),生成首个第二字符串。
接下来,将所述第一数目减1,得到更新后的第一数目等于2,同时,将所述分割起始位置由第一个字符向后调整至第L1+1个字符。之后,对第一字符串中第L1+1个字符之后的部分,进行分割,得到第二个第二字符串。
例如,将第一字符串中第L1+1个字符之后字符(即M-L1个字符),进行2等分,得到生成的下一个第二字符串中包括的密钥字符的数目L2,即第二数目。然后,将从所述第一字符串的第L1+1个字符起(即第一个字符string1[L1])的前L2个密钥字符对应的字符序列(即string1[L1]至string1[L1+L2-1]个字符的序列),生成第二个第二字符串。
最后,根据自第一字符串中第L1+L2+1个密钥字符开始,之后的所有密钥字符对应的字符序列,生成第3个第二字符串。至此,生成了3个(即预设数量)第二字符串。
在对第一字符串进行分割,得到预设数量的第二字符串之后,接下来,分别确定每个第二字符串对应的子密钥。
其中,所述基于每个所述第二字符串,分别生成对应的子密钥,包括:针对每个所述第二字符串,基于所述第二字符串,以及,与所述第二字符串对应的随机数,生成所述第二字符串对应的子密钥。即,在第二字符串的基础上,附加随机信息,生成长度大于主密钥的子密钥,以增强数据保护能力。
本申请的一些实施例中,所述基于所述第二字符串,以及,与所述第二字符串对应的随机数,生成与所述第二字符串对应的子密钥,包括:将与所述第二字符串对应的随机数,与所述第二字符串中的密钥字符序列进行连接,得到密钥连接结果;采用安全散列算法对所述进行连接得到的所述密钥连接结果进行加密运算,生成与所述第二字符串对应的子密钥。
本申请的一些实施例中,所述随机信息可以是预先生成的预设数量个随机数,也可以是为每个第二字符串分别实时生成的随机数。仍以前述步骤生成3个第二字符串,分别表示为:string1_1、string1_2,以及,string1_3为例,与每个第二字符串分别对应的随机数可以表示为:rand1、rand2,以及,rang3。下面分别阐述基于各第二字符串生成对应的子密钥的方法。
以前述步骤得到的第二字符串string1_1为例,其对应的随机数表示为rand1,本申请的实施例中,可以首先将第二字符串string1_1中的密钥字符序列(如前文所述的字符string1[0]、string1[1]、…、string1[42]构成的子字符序列)和随机数rand1进行连接,得到一个融合有随机信息的字符序列;然后,采用预设安全散列算法对进行连接得到的融合有随机信息的字符序列,进行加密运算,生成与所述第二字符串string1_1对应的子密钥。其中,所述预设安全散列算法可以采用SHA-1算法,这样,经过对第二字符串结合随机数进行加密运算,可以得到长度为160的子密钥。相比于长度为128的主密钥,基于子密钥进行数据保护,具有更高的安全性。
同理,基于前述步骤得到的第二字符串string1_2和随机数rand2,可以得到另一个子密钥;基于前述步骤得到的第二字符串string1_3和随机数rand3,可以得到又一个子密钥。
根据前述生成子密钥的方法可知,每个子密钥基于主密钥中不同的部分生成,并且融合了随机信息,在保护数据的过程中,具有更强的安全性。
本申请的一些实施例中,在根据不同的第二字符串生成对应的子密钥时,可以采用相同的安全散列算法,也可以采用不同的安全散列算法,只要生成的子密钥的长度大于主密钥即可。此处,对根据第二字符串生成对应的子密钥的加密算法不再一一举例。
接下来,进一步对执行各预设操作时,采用生成的子密钥进行数据保护的具体实施方式进行举例说明。
一、数据加密操作和数据解密操作
在本申请的一些实施例中,所述预设操作包括:数据加密操作、数据解密操作,所述子密钥还包括:与所述数据加密操作和所述数据解密操作对应的第一子密钥,所述响应于执行预设操作,通过与所述预设操作对应的所述子密钥,对所述预设操作对应的数据进行相应数据保护,包括:响应于执行所述数据加密操作,以所述第一子密钥和目标源数据作为第一预设加密算法的输入,对所述目标源数据进行加密处理,得到所述目标源数据对应的加密数据;和/或,响应于执行所述数据解密操作,以所述第一子密钥和目标加密数据作为预设解密算法的输入,对所述目标加密数据进行解密处理,得到所述目标加密数据对应的源数据。
例如,响应于通过云平台存储源数据,通过所述第一子密钥对待存储的源数据执行所述数据加密操作,得到所述源数据关联的加密数据;之后,将所述加密数据发送至所述云平台进行存储。具体举例而言,当数据所用者通过客户端将源数据上传到云平台进行存储时,客户端响应于用户触发的数据存储操作,对源数据执行数据加密操作。例如,客户端以第一子密钥和待存储的源数据作为第一预设加密算法的输入,通过基于该输入执行第一预设加密算法,得到所述源数据对应的加密数据。之后,客户端将加密数据上传到云平台存储。本申请的一些实施例中,可以采用如下公式表示数据加密操作:Y=E(SecKey1,(X)),其中,SecKey1表示第一子密钥,(X)表示源数据,Y表示加密数据,E()表示加密算法。其中,加密算法例如可以采用BlowFish算法。
另一方面,用户还可以通过客户端下载自己上传到云平台的数据。当用户通过客户端触发数据下载操作时,客户端将从云平台下载用户选择的加密数据,之后,执行数据解密操作。客户端通过所述第一子密钥对从所述云平台获取的目标加密数据执行数据解密操作,得到所述目标加密数据对应的源数据。具体举例而言,通过客户端以本地存储的第一子密钥和下载的加密数据作为预设解密算法的输入,基于该输入执行解密算法,得到该加密数据对应的源数据。本申请的一些实施例中,可以采用如下公式表示数据解密操作:(X)=D(SecKey1,(Y)),其中,SecKey1表示第一子密钥,(X)表示源数据,Y表示加密数据,D()表示解密算法。其中,解密算法为前述加密算法的逆运算。
二、数据签名操作
本申请的一些实施例中,所述预设操作包括:数据签名操作,所述子密钥还包括:与所述数据签名操作对应的第二子密钥,所述响应于执行预设操作,通过与所述预设操作对应的所述子密钥,对所述预设操作对应的数据进行相应数据保护,包括:以所述第二子密钥和所述加密数据作为输入,进行预设哈希运算,得到所述加密数据对应的数据签名;将所述数据签名发送至服务端与所述加密数据进行关联存储,所述数据签名用于:所述服务端在接收到所述客户端访问所述加密数据的请求时,获取所述客户端发送的第二子密钥,并对所述客户端发送的第二子密钥和所述加密数据进行所述预设哈希运算,得到所述加密数据对应的待验证数据签名;之后,所述服务端将与所述加密数据关联存储的所述数据签名与所述待验证数据签名进行一致性比对,得到指示签名是否验证成功的验证结果。
例如,在客户端将加密数据上传至云平台存储之后,客户端进一步对上传的加密数据进行签名,以表示该加密数据的所有者。本申请的一些实施例里中,客户端在对加密数据执行数据签名操作时,以加密数据和客户端本地存储的第二子密钥作为预设哈希算法的输入,通过执行该预设哈希算法,得到一个哈希标签,并将得到的哈希标签作为该加密数据的数据标签,然后,将该数据标签发送到云平台,使得云平台将该数据标签和加密数据进行关联存储。其中,所述预设哈希运算可以为HMAC(Hash-based Message AuthenticationCode)哈希运算,生成的数据标签以消息形式输出,例如可以表示为SigTag1。
所述数据标签用于对访问该加密数据的用户访问权限进行验证。例如,当用户通过客户端触发了某一加密数据的下载、共享等访问操作时,客户端会将本地存储的第二子密钥发送至云平台;之后,云平台的服务端以客户端发送的第二子密钥和用户待访问的目标加密数据作为输入,通过执行前述预设哈希算法,得到一个哈希标签,作为待验证数据签名,例如记为SigTag2;然后,服务端获取与待访问加密数据关联存储的数据签名,例如记为SigTag1,并将待验证数据签名SigTag2和存储的数据签名SigTag1进行一致性比对,若两个签名相同,则签名验证成功,否则,签名验证失败。
本申请的实施例中,只有在签名验证成功的情况下,用户才有权限访问该待访问的目标加密数据。
三、编辑授权操作
本申请的一些实施例中,所述预设操作包括:编辑授权操作,所述子密钥包括:与所述编辑授权操作对应的第三子密钥,所述响应于执行预设操作,通过与所述预设操作对应的所述子密钥,对所述预设操作对应的数据进行相应数据保护,包括:响应于执行所述编辑授权操作,向服务端发送所述第三子密钥,使得所述服务端将接收到的所述第三子密钥,与所述编辑授权操作针对的数据的数据所有者关联的第三子密钥进行一致性比对,并根据比对结果确定所述编辑授权操作的授权结果。
例如,当用户通过客户端访问云平台,并选择云平台上存储的数据,触发编辑授权操作时,客户端将本地存储的第三子密钥发送至云平台的服务端,以进行授权验证。服务端将接收到的所述第三子密钥与所述编辑授权操作针对的数据关联的第三子密钥进行一致性比对,若两个第三子密钥相同,则验证通过,用户将获得对该加密数据的编辑授权;若验证失败,则用户将不被允许对该加密数据执行编辑操作。其中,与加密数据关联的第三子密钥为该加密数据的所有者共享给云平台的用于进行编辑授权的子密钥。
以上预设操作仅为部分可应用本申请实施例公开的数据保护方法的操作,在实际应用中,预设操作还可以包括其他操作,相应的,还可以根据主密钥生成其他数目的子密钥,以使得每种预设操作可以对应一个子密钥,本申请实施例中不再一一举例。
本申请实施例公开的数据保护方法,通过获取主密钥对应的第一字符串;对所述第一字符串进行分割,得到预设数量的第二字符串;基于每个所述第二字符串,分别生成对应的子密钥,其中,所述子密钥的长度大于所述主密钥的长度;响应于执行预设操作,通过与所述预设操作对应的所述子密钥,对所述预设操作对应的数据进行相应数据保护,有效提升了数据保护的可靠性,并且,运算成本低。
本申请实施例中公开的数据保护方法,通过生成多个不同的子密钥,分别用于通过云平台执行的不同数据操作,并且,子密钥的长度大于主密钥,可以有效提升数据保护的可靠性。由于不同类型的数据操作对应的子密钥不同,可以进一步增强数据保护安全性。
另一方面,通过从一个主密钥构建多个独立的子密钥用于数据保护,避免直接生成多个独立的主密钥,有效降低了生成密钥的运算成本。
本申请的另一些实施例中,密钥还可以在云平台侧生成,然后,加密传输至用户侧客户端进行存储。相应的,如图2所示,本申请实施例公开了一种数据保护方法,应用于服务端,所述方法包括:步骤210至步骤250。
步骤210,基于客户端的触发,获取主密钥对应的第一字符串。
用户在云平台进行注册之后,当用户通过客户端访问云平台,并首次触发数据存储操作时,云平台的服务端可以根据用户的触发操作,为该用户生成主密钥。或者,可以在客户端设置获取密钥的入口,在用户触发该入口之后,客户端向云平台的服务端发送获取密钥请求,以触发服务端生成主密钥。
其中,主密钥为包含若干密钥字符的字符序列。其中,所述主密钥可以基于用户信息按照预设密钥生成算法生成,也可以根据默认的随机信息按照预设密钥生成算法生成。
本申请的实施例中,例如可以使用标准的128位BlowFish算法生成主密钥。BlowFish是一个对称加密块算法能保证很好的加密速度,并且目前为止没有发现有效地破解方法。使用BlowFish生成主密钥的具体方法可参见现有技术,本申请实施例中不再赘述。
以使用标准的128位BlowFish算法生成主密钥为例,本申请实施例中将得到128的主密钥,即主密钥为包括128个密钥字符的字符序列。
步骤220,对所述第一字符串进行分割,得到预设数量的第二字符串。
对所述第一字符串进行分割,得到预设数量的第二字符串的具体实施方式,参见前文中客户端对所述第一字符串进行分割,得到预设数量的第二字符串的具体实施方式,此处不再赘述。
步骤230,基于每个所述第二字符串,分别生成对应的子密钥,其中,所述子密钥的长度大于所述主密钥的长度。
基于每个所述第二字符串,分别生成对应的子密钥的具体实施方式,参见前文中客户端基于每个所述第二字符串,分别生成对应的子密钥的具体实施方式,此处不再赘述。
步骤240,将所述子密钥发送至所述客户端。
服务端在生成预设数量子密钥之后,按照预设规则,将子密钥与各预设操作进行对应关联,并在云平台与该用户账户进行关联存储。同时,服务端将与各预设操作对应关联的子密钥发送到所述客户端,在客户端本地存储各子密钥。
步骤250,响应于执行预设操作,通过与所述预设操作对应的所述子密钥,对所述预设操作对应的数据进行相应数据保护。
客户端在接收到各子密钥之后,在基于用户的触发执行各预设操作时,可以通过与所述预设操作对应的所述子密钥,对所述预设操作对应的数据进行相应数据保护。
客户端通过与所述预设操作对应的所述子密钥,对所述预设操作对应的数据进行相应数据保护的具体实施方式参见前文所述,此处不再赘述。
客户端在执行上述预设操作时,服务端需要执行对应的操作。下面,对服务端执行各预设操作的具体实施方式进行举例说明。
一、数据加密操作和数据解密操作
本申请的一些实施例中,所述预设操作包括:数据加密操作、数据解密操作,所述子密钥还包括:与所述数据加密操作和所述数据解密操作对应的第一子密钥,所述响应于执行预设操作,通过与所述预设操作对应的所述子密钥,对所述预设操作对应的数据进行相应数据保护,包括:接收客户端发送的加密数据,其中,所述加密数据是所述客户端响应于执行所述数据加密操作,以所述第一子密钥和目标源数据作为第一预设加密算法的输入,对所述目标源数据进行加密处理之后得到的;和/或,向客户端发送加密数据,使得所述客户端基于所述第一子密钥对所述加密数据执行所述数据解密操作。
客户端将通过第一子密钥加密的加密数据发送给云平台的服务端之后,服务端存储该加密数据。当用户需要下载该加密数据时,服务端首先对用户进行数字签名验证,并在验证成功之后,将该加密数据发送给用户登陆的客户端。
客户端接收到服务端发送的加密数据之后,通过用本地存储的相应子密钥对该加密数据进行解密,即可得到源数据。本申请的一些实施例中,所述客户端基于所述第一子密钥对所述加密数据执行所述数据解密操作,包括:以所述第一子密钥和目标加密数据作为预设解密算法的输入,对所述目标加密数据进行解密处理,得到所述目标加密数据对应的源数据。
客户端对接收到的加密数据进行解密的具体实施方式参见前文描述,此处不再赘述。
二、数据签名操作
本申请的一些实施例中,所述预设操作包括:数据签名操作,所述子密钥还包括:与所述数据签名操作对应的第二子密钥,所述响应于执行预设操作,通过与所述预设操作对应的所述子密钥,对所述预设操作对应的数据进行相应数据保护,包括:接收客户端发送的目标加密数据关联的数据签名;将所述数据签名和所述目标加密数据进行关联存储;在接收到所述客户端访问所述加密数据的请求时,获取所述客户端发送的第二子密钥;对所述客户端发送的第二子密钥和所述目标加密数据进行预设哈希运算,得到所述目标加密数据对应的待验证数据签名;将与所述目标加密数据关联存储的所述数据签名与所述待验证数据签名进行一致性比对,得到指示签名是否验证成功的验证结果。
如前所述,客户端在云平台存储加密数据时,还会将该加密数据关联的数据签名发送至云平台的服务端,服务端接收到客户端发送的加密数据关联的数据签名之后,将所述数据签名和所述加密数据进行关联存储。
当用户需要下载访问在云平台上的数据时,用户通过客户端执行数据访问操作,触发客户端向云平台的服务端发送访问目标加密数据的请求。服务端在接收到客户端发送的请求时,通过该客户端获取用于进行数据签名验证的密钥。接下来,服务端对从该客户端获取的密钥和需要访问的目标加密数据进行预设哈希运算,得到所述目标加密数据对应的待验证数据签名,并将与所述目标加密数据预先关联存储的数据签名与所述待验证数据签名进行一致性比对,如果两个数据签名一致,则验证成功,否则,验证失败。
其中,服务端进行数据签名验证的具体实施方案可以参见前文描述,此处不再详细描述。
验证成功之后,服务端将允许该客户端访问该目标加密数据。
三、编辑授权操作
本申请的一些实施例中,所述预设操作包括:编辑授权操作,所述子密钥包括:与所述编辑授权操作对应的第三子密钥,所述响应于执行预设操作,通过与所述预设操作对应的所述子密钥,对所述预设操作对应的数据进行相应数据保护,包括:基于客户端触发的所述编辑授权操作,获取客户端发送的待验证第三子密钥;将所述待验证第三子密钥,与所述编辑授权操作针对的数据的数据所有者关联的第三子密钥进行一致性比对;根据比对结果确定所述编辑授权操作的授权结果。
当用户需要在云平台上编辑指定数据时,用户通过客户端触发数据编辑操作,此时,将触发客户端向云平台的服务端发送编辑指定数据的请求。服务端在接收到客户端发送的请求时,通过该客户端获取用于进行编辑授权的密钥,作为待验证第三子密钥。服务端在接收到该密钥之后,进一步获取待编辑的该指定数据的数据所有者关联的用于进行编辑授权的密钥(即第三子密钥),并将待验证第三子密钥与所述编辑授权操作针对的数据关联的第三子密钥进行一致性比对,若两个密钥相同,则验证通过,用户将获得对该指定数据的编辑授权;若验证失败,则用户将不被允许对该指定数据执行编辑操作。
本申请实施例公开的数据保护方法,通过基于客户端的触发,获取主密钥对应的第一字符串;对所述第一字符串进行分割,得到预设数量的第二字符串;基于每个所述第二字符串,分别生成对应的子密钥,其中,所述子密钥的长度大于所述主密钥的长度;将所述子密钥发送至所述客户端;响应于执行预设操作,通过与所述预设操作对应的所述子密钥,对所述预设操作对应的数据进行相应数据保护,有效提升了数据保护的可靠性,并且,运算成本低。
本申请实施例中公开的数据保护方法,通过生成多个不同的子密钥,分别用于通过云平台执行的不同数据操作,并且,子密钥的长度大于主密钥,可以有效提升数据保护的可靠性。由于不同类型的数据操作对应的子密钥不同,可以进一步增强数据保护安全性。
另一方面,通过从一个主密钥构建多个独立的子密钥用于数据保护,避免直接生成多个独立的主密钥,有效降低了生成密钥的运算成本。
本申请的发明人通过采用相同大小的数据集,分别在Hadoop(一种分布式数据处理集群)环境下采用不同数量的集群计算节点,将本申请实施例中公开的数据保护方法和目前主流的加密算法3DES算法、AES算法以及Blow Fish算法进行对比,验证算法的加密以及解密效率,得出了采用本申请实施例中公开的数据保护方法执行数据加密操作和数据解密操作的时间均短于其他算法的实验结论。并且,通过在不同数量的集群计算节点上对不同大小的数据集执行本申请实施例中公开的数据保护方法,的得出了随着集群计算节点数量增加,大数据集的时间效率明显提升的实验结果。
并且,通过对采用本申请实施例中公开的数据保护方法执行数据加密操作得到的加密数据进行分析发现,采用本申请实施例中公开的数据保护方法加密后得到的加密数据,呈无相关性的随机分布状态。并且在字节数据值达到加密位数临界值时,可以产生雪崩效应,使得破译的难度增大。因此可以得出采用本申请实施例中公开的数据保护方法执行数据保护,具有较高的安全性。
本申请实施例公开的数据保护装置,应用于客户端,如图3所示,所述装置包括:
第一字符串获取模块310,用于获取主密钥对应的第一字符串;
第二字符串获取模块320,用于对所述第一字符串进行分割,得到预设数量的第二字符串;
子密钥生成模块330,用于基于每个所述第二字符串,分别生成对应的子密钥,其中,所述子密钥的长度大于所述主密钥的长度;
数据保护模块340,用于响应于执行预设操作,通过与所述预设操作对应的所述子密钥,对所述预设操作对应的数据进行相应数据保护。
其中,所述预设数量与待生成的子密钥的数量匹配。
可选的,所述第二字符串获取模块320,进一步用于:
针对每个所述第二字符串,基于所述第二字符串,以及,与所述第二字符串对应的随机数,生成所述第二字符串对应的子密钥。
可选的,所述子密钥生成模块330,进一步用于:
将与所述第二字符串对应的随机数,与所述第二字符串中的密钥字符序列进行连接,得到密钥连接结果;
采用安全散列算法对所述进行连接得到的所述密钥连接结果进行加密运算,生成与所述第二字符串对应的子密钥。
可选的,所述对所述第一字符串进行分割,得到预设数量的第二字符串,包括:
对所述第一字符串进行分割,得到预设数量长度相当的第二字符串。
可选的,所述预设操作包括:数据加密操作、数据解密操作,所述子密钥还包括:与所述数据加密操作和所述数据解密操作对应的第一子密钥,所述数据保护模块340,进一步用于:
响应于执行所述数据加密操作,以所述第一子密钥和目标源数据作为第一预设加密算法的输入,对所述目标源数据进行加密处理,得到所述目标源数据对应的加密数据;和/或,
响应于执行所述数据解密操作,以所述第一子密钥和目标加密数据作为预设解密算法的输入,对所述目标加密数据进行解密处理,得到所述目标加密数据对应的源数据。
可选的,所述预设操作包括:数据签名操作,所述子密钥还包括:与所述数据签名操作对应的第二子密钥,所述数据保护模块340,进一步用于:
以所述第二子密钥和所述加密数据作为输入,进行预设哈希运算,得到所述加密数据对应的数据签名;
将所述数据签名发送至服务端与所述加密数据进行关联存储,所述数据签名用于:所述服务端在接收到所述客户端访问所述加密数据的请求时,获取所述客户端发送的第二子密钥,并对所述客户端发送的第二子密钥和所述加密数据进行所述预设哈希运算,得到所述加密数据对应的待验证数据签名;之后,所述服务端将与所述加密数据关联存储的所述数据签名与所述待验证数据签名进行一致性比对,得到指示签名是否验证成功的验证结果。
可选的,所述预设操作包括:编辑授权操作,所述子密钥包括:与所述编辑授权操作对应的第三子密钥,所述数据保护模块340,进一步用于:
响应于执行所述编辑授权操作,向服务端发送所述第三子密钥,使得所述服务端将接收到的所述第三子密钥,与所述编辑授权操作针对的数据的数据所有者关联的第三子密钥进行一致性比对,并根据比对结果确定所述编辑授权操作的授权结果。
本申请实施例公开的数据保护装置,用于实现本申请实施例中所述的数据保护方法,装置的各模块的具体实施方式不再赘述,可参见方法实施例相应步骤的具体实施方式。
本申请实施例公开的一种数据保护装置,通过获取主密钥对应的第一字符串;对所述第一字符串进行分割,得到预设数量的第二字符串;基于每个所述第二字符串,分别生成对应的子密钥,其中,所述子密钥的长度大于所述主密钥的长度;响应于执行预设操作,通过与所述预设操作对应的所述子密钥,对所述预设操作对应的数据进行相应数据保护,有效提升了数据保护的可靠性,并且,运算成本低。
本申请实施例中公开的数据保护装置,通过生成多个不同的子密钥,分别用于通过云平台执行的不同数据操作,并且,子密钥的长度大于主密钥,可以有效提升数据保护的可靠性。由于不同类型的数据操作对应的子密钥不同,可以进一步增强数据保护安全性。
另一方面,通过从一个主密钥构建多个独立的子密钥用于数据保护,避免直接生成多个独立的主密钥,有效降低了生成密钥的运算成本
本申请实施例还公开了一种数据保护装置,应用于服务端,如图4所示,所述装置包括:
第一字符串获取模块410,用于基于客户端的触发,获取主密钥对应的第一字符串;
第二字符串获取模块420,用于对所述第一字符串进行分割,得到预设数量的第二字符串;
子密钥生成模块430,用于基于每个所述第二字符串,分别生成对应的子密钥,其中,所述子密钥的长度大于所述主密钥的长度;
子密钥发送模块440,用于将所述子密钥发送至所述客户端;
数据保护模块450,用于响应于执行预设操作,通过与所述预设操作对应的所述子密钥,对所述预设操作对应的数据进行相应数据保护。
可选的,所述预设操作包括:数据加密操作、数据解密操作,所述子密钥还包括:与所述数据加密操作和所述数据解密操作对应的第一子密钥,所述数据保护模块450,进一步用于:
接收客户端发送的加密数据,其中,所述加密数据是所述客户端响应于执行所述数据加密操作,以所述第一子密钥和目标源数据作为第一预设加密算法的输入,对所述目标源数据进行加密处理之后得到的;和/或,
向客户端发送加密数据,使得所述客户端基于所述第一子密钥对所述加密数据执行所述数据解密操作。
可选的,所述预设操作包括:数据签名操作,所述子密钥还包括:与所述数据签名操作对应的第二子密钥,所述数据保护模块450,进一步用于:
接收客户端发送的目标加密数据关联的数据签名;
将所述数据签名和所述目标加密数据进行关联存储;
在接收到所述客户端访问所述加密数据的请求时,获取所述客户端发送的第二子密钥;
对所述客户端发送的第二子密钥和所述目标加密数据进行预设哈希运算,得到所述目标加密数据对应的待验证数据签名;
将与所述目标加密数据关联存储的所述数据签名与所述待验证数据签名进行一致性比对,得到指示签名是否验证成功的验证结果。
可选的,所述预设操作包括:编辑授权操作,所述子密钥包括:与所述编辑授权操作对应的第三子密钥,所述数据保护模块450,进一步用于:
基于客户端触发的所述编辑授权操作,获取客户端发送的待验证第三子密钥;
将所述待验证第三子密钥,与所述编辑授权操作针对的数据的数据所有者关联的第三子密钥进行一致性比对;
根据比对结果确定所述编辑授权操作的授权结果。
本申请实施例公开的数据保护装置,用于实现本申请实施例中所述的数据保护方法,装置的各模块的具体实施方式不再赘述,可参见方法实施例相应步骤的具体实施方式。
本申请实施例公开的数据保护装置,通过基于客户端的触发,获取主密钥对应的第一字符串;对所述第一字符串进行分割,得到预设数量的第二字符串;基于每个所述第二字符串,分别生成对应的子密钥,其中,所述子密钥的长度大于所述主密钥的长度;将所述子密钥发送至所述客户端;响应于执行预设操作,通过与所述预设操作对应的所述子密钥,对所述预设操作对应的数据进行相应数据保护,有效提升了数据保护的可靠性,并且,运算成本低。
本申请实施例中公开的数据保护装置,通过生成多个不同的子密钥,分别用于通过云平台执行的不同数据操作,并且,子密钥的长度大于主密钥,可以有效提升数据保护的可靠性。由于不同类型的数据操作对应的子密钥不同,可以进一步增强数据保护安全性。
另一方面,通过从一个主密钥构建多个独立的子密钥用于数据保护,避免直接生成多个独立的主密钥,有效降低了生成密钥的运算成本。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上对本申请提供的一种数据保护方法及装置进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其一种核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
本申请的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本申请实施例的电子设备中的一些或者全部部件的一些或者全部功能。本申请还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本申请的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
例如,图5示出了可以实现根据本申请的方法的电子设备。所述电子设备可以为PC机、移动终端、个人数字助理、平板电脑等。该电子设备传统上包括处理器510和存储器520及存储在所述存储器520上并可在处理器510上运行的程序代码530,所述处理器510执行所述程序代码530时实现上述实施例中所述的方法。所述存储器520可以为计算机程序产品或者计算机可读介质。存储器520可以是诸如闪存、EEPROM(电可擦除可编程只读存储器)、EPROM、硬盘或者ROM之类的电子存储器。存储器520具有用于执行上述方法中的任何方法步骤的计算机程序的程序代码530的存储空间5201。例如,用于程序代码530的存储空间5201可以包括分别用于实现上面的方法中的各种步骤的各个计算机程序。所述程序代码530为计算机可读代码。这些计算机程序可以从一个或者多个计算机程序产品中读出或者写入到这一个或者多个计算机程序产品中。这些计算机程序产品包括诸如硬盘,紧致盘(CD)、存储卡或者软盘之类的程序代码载体。所述计算机程序包括计算机可读代码,当所述计算机可读代码在电子设备上运行时,导致所述电子设备执行根据上述实施例的方法。
本申请实施例还公开了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本申请实施例一所述的数据保护方法的步骤。
这样的计算机程序产品可以为计算机可读存储介质,该计算机可读存储介质可以具有与图5所示的电子设备中的存储器520类似布置的存储段、存储空间等。程序代码可以例如以适当形式进行压缩存储在所述计算机可读存储介质中。所述计算机可读存储介质通常为如参考图6所述的便携式或者固定存储单元。通常,存储单元包括计算机可读代码530’,所述计算机可读代码530’为由处理器读取的代码,这些代码被处理器执行时,实现上面所描述的方法中的各个步骤。
本文中所称的“一个实施例”、“实施例”或者“一个或者多个实施例”意味着,结合实施例描述的特定特征、结构或者特性包括在本申请的至少一个实施例中。此外,请注意,这里“在一个实施例中”的词语例子不一定全指同一个实施例。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本申请的实施例可以在没有这些具体细节的情况下被实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本申请可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (9)
1.一种数据保护方法,应用于客户端,其特征在于,所述方法包括:
获取主密钥对应的第一字符串;
对所述第一字符串进行分割,得到预设数量的第二字符串;
基于每个所述第二字符串,分别生成对应的子密钥,其中,所述子密钥的长度大于所述主密钥的长度;响应于执行预设操作,通过与所述预设操作对应的所述子密钥,对所述预设操作对应的数据进行相应数据保护;
所述基于每个所述第二字符串,分别生成对应的子密钥,包括:将与所述第二字符串对应的随机数,与所述第二字符串中的密钥字符序列进行连接,得到密钥连接结果;采用安全散列算法对所述进行连接得到的所述密钥连接结果进行加密运算,生成与所述第二字符串对应的子密钥;
所述预设操作包括:数据加密操作、数据解密操作,所述子密钥包括:与所述数据加密操作和所述数据解密操作对应的第一子密钥,
所述响应于执行预设操作,通过与所述预设操作对应的所述子密钥,对所述预设操作对应的数据进行相应数据保护,包括:响应于执行所述数据加密操作,以所述第一子密钥和目标源数据作为第一预设加密算法的输入,对所述目标源数据进行加密处理,得到所述目标源数据对应的加密数据;和/或,响应于执行所述数据解密操作,以所述第一子密钥和目标加密数据作为预设解密算法的输入,对所述目标加密数据进行解密处理,得到所述目标加密数据对应的源数据。
2.根据权利要求1所述的方法,其特征在于,所述对所述第一字符串进行分割,得到预设数量的第二字符串,包括:
对所述第一字符串进行分割,得到预设数量长度相当的第二字符串。
3.根据权利要求1所述的方法,其特征在于,所述预设操作包括:数据签名操作,所述子密钥还包括:与所述数据签名操作对应的第二子密钥,
所述响应于执行预设操作,通过与所述预设操作对应的所述子密钥,对所述预设操作对应的数据进行相应数据保护,包括:
以所述第二子密钥和所述加密数据作为输入,进行预设哈希运算,得到所述加密数据对应的数据签名;
将所述数据签名发送至服务端与所述加密数据进行关联存储,所述数据签名用于:所述服务端在接收到所述客户端访问所述加密数据的请求时,获取所述客户端发送的第二子密钥,并对所述客户端发送的第二子密钥和所述加密数据进行所述预设哈希运算,得到所述加密数据对应的待验证数据签名;之后,所述服务端将与所述加密数据关联存储的所述数据签名与所述待验证数据签名进行一致性比对,得到指示签名是否验证成功的验证结果。
4.根据权利要求1至2任一项所述的方法,其特征在于,所述预设操作包括:编辑授权操作,所述子密钥包括:与所述编辑授权操作对应的第三子密钥,
所述响应于执行预设操作,通过与所述预设操作对应的所述子密钥,对所述预设操作对应的数据进行相应数据保护,包括:
响应于执行所述编辑授权操作,向服务端发送所述第三子密钥,使得所述服务端将接收到的所述第三子密钥,与所述编辑授权操作针对的数据的数据所有者关联的第三子密钥进行一致性比对,并根据比对结果确定所述编辑授权操作的授权结果。
5.一种数据保护方法,应用于服务端,其特征在于,所述方法包括:
基于客户端的触发,获取主密钥对应的第一字符串;
对所述第一字符串进行分割,得到预设数量的第二字符串;
基于每个所述第二字符串,分别生成对应的子密钥,包括:将与所述第二字符串对应的随机数,与所述第二字符串中的密钥字符序列进行连接,得到密钥连接结果;采用安全散列算法对所述进行连接得到的所述密钥连接结果进行加密运算,生成与所述第二字符串对应的子密钥;其中,所述子密钥的长度大于所述主密钥的长度;
将所述子密钥发送至所述客户端;
响应于执行预设操作,通过与所述预设操作对应的所述子密钥,对所述预设操作对应的数据进行相应数据保护;
所述预设操作包括:数据加密操作、数据解密操作,所述子密钥还包括:与所述数据加密操作和所述数据解密操作对应的第一子密钥,所述响应于执行预设操作,通过与所述预设操作对应的所述子密钥,对所述预设操作对应的数据进行相应数据保护,包括:
接收客户端发送的加密数据,其中,所述加密数据是所述客户端响应于执行所述数据加密操作,以所述第一子密钥和目标源数据作为第一预设加密算法的输入,对所述目标源数据进行加密处理之后得到的;和/或,
向客户端发送加密数据,使得所述客户端基于所述第一子密钥对所述加密数据执行所述数据解密操作。
6.一种数据保护装置,应用于客户端,其特征在于,所述装置包括:
第一字符串获取模块,用于获取主密钥对应的第一字符串;
第二字符串获取模块,用于对所述第一字符串进行分割,得到预设数量的第二字符串;
子密钥生成模块,用于基于每个所述第二字符串,分别生成对应的子密钥,进一步用于:将与所述第二字符串对应的随机数,与所述第二字符串中的密钥字符序列进行连接,得到密钥连接结果;采用安全散列算法对所述进行连接得到的所述密钥连接结果进行加密运算,生成与所述第二字符串对应的子密钥,其中,所述子密钥的长度大于所述主密钥的长度;
数据保护模块,用于响应于执行预设操作,通过与所述预设操作对应的所述子密钥,对所述预设操作对应的数据进行相应数据保护;
所述预设操作包括:数据加密操作、数据解密操作,所述子密钥还包括:与所述数据加密操作和所述数据解密操作对应的第一子密钥,所述数据保护模块,进一步用于:
响应于执行所述数据加密操作,以所述第一子密钥和目标源数据作为第一预设加密算法的输入,对所述目标源数据进行加密处理,得到所述目标源数据对应的加密数据;和/或,
响应于执行所述数据解密操作,以所述第一子密钥和目标加密数据作为预设解密算法的输入,对所述目标加密数据进行解密处理,得到所述目标加密数据对应的源数据。
7.一种数据保护装置,应用于服务端,其特征在于,所述装置包括:
第一字符串获取模块,用于基于客户端的触发,获取主密钥对应的第一字符串;
第二字符串获取模块,用于对所述第一字符串进行分割,得到预设数量的第二字符串;
子密钥生成模块,用于基于每个所述第二字符串,分别生成对应的子密钥,进一步用于:将与所述第二字符串对应的随机数,与所述第二字符串中的密钥字符序列进行连接,得到密钥连接结果;采用安全散列算法对所述进行连接得到的所述密钥连接结果进行加密运算,生成与所述第二字符串对应的子密钥,其中,所述子密钥的长度大于所述主密钥的长度;
子密钥发送模块,用于将所述子密钥发送至所述客户端;
数据保护模块,用于响应于执行预设操作,通过与所述预设操作对应的所述子密钥,对所述预设操作对应的数据进行相应数据保护;
所述预设操作包括:数据加密操作、数据解密操作,所述子密钥还包括:与所述数据加密操作和所述数据解密操作对应的第一子密钥,所述数据保护模块,进一步用于:
接收客户端发送的加密数据,其中,所述加密数据是所述客户端响应于执行所述数据加密操作,以所述第一子密钥和目标源数据作为第一预设加密算法的输入,对所述目标源数据进行加密处理之后得到的;和/或,
向客户端发送加密数据,使得所述客户端基于所述第一子密钥对所述加密数据执行所述数据解密操作。
8.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在处理器上运行的程序代码,其特征在于,所述处理器执行所述程序代码时实现权利要求1至5任意一项所述的数据保护方法。
9.一种计算机可读存储介质,其上存储有程序代码,其特征在于,该程序代码被处理器执行时实现权利要求1至5任意一项所述的数据保护方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211116573.1A CN115589284B (zh) | 2022-09-14 | 2022-09-14 | 数据保护方法、装置,及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211116573.1A CN115589284B (zh) | 2022-09-14 | 2022-09-14 | 数据保护方法、装置,及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115589284A CN115589284A (zh) | 2023-01-10 |
CN115589284B true CN115589284B (zh) | 2024-07-02 |
Family
ID=84778831
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211116573.1A Active CN115589284B (zh) | 2022-09-14 | 2022-09-14 | 数据保护方法、装置,及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115589284B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108173640A (zh) * | 2017-12-11 | 2018-06-15 | 上海高顿教育培训有限公司 | 一种高安全性的字符串对称加密和解密方法 |
CN114285575A (zh) * | 2021-12-28 | 2022-04-05 | 中国电信股份有限公司 | 图像加密和解密方法和装置、存储介质及电子装置 |
-
2022
- 2022-09-14 CN CN202211116573.1A patent/CN115589284B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108173640A (zh) * | 2017-12-11 | 2018-06-15 | 上海高顿教育培训有限公司 | 一种高安全性的字符串对称加密和解密方法 |
CN114285575A (zh) * | 2021-12-28 | 2022-04-05 | 中国电信股份有限公司 | 图像加密和解密方法和装置、存储介质及电子装置 |
Also Published As
Publication number | Publication date |
---|---|
CN115589284A (zh) | 2023-01-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9735962B1 (en) | Three layer key wrapping for securing encryption keys in a data storage system | |
US8171306B2 (en) | Universal secure token for obfuscation and tamper resistance | |
US10284372B2 (en) | Method and system for secure management of computer applications | |
Hoang et al. | Hardware-supported ORAM in effect: Practical oblivious search and update on very large dataset | |
CN108809646B (zh) | 安全共享密钥共享系统 | |
CN107689869B (zh) | 用户口令管理的方法和服务器 | |
KR100823738B1 (ko) | 컴퓨팅 플랫폼의 설정 정보를 은닉하면서 무결성 보증을제공하는 방법 | |
CN107038383B (zh) | 一种数据处理的方法和设备 | |
CN106776904B (zh) | 一种不可信云计算环境中支持动态验证的模糊查询加密方法 | |
CN113691502B (zh) | 通信方法、装置、网关服务器、客户端及存储介质 | |
CN108259171B (zh) | Shader文件的保护方法及装置 | |
CN109508552A (zh) | 分布式云存储系统的隐私保护方法 | |
CN113268715A (zh) | 软件加密方法、装置、设备及存储介质 | |
CN103457733A (zh) | 一种云计算环境数据共享方法和系统 | |
CN108431819B (zh) | 保护客户端访问视频播放器的drm代理的服务的方法和系统 | |
CN105468940A (zh) | 软件保护方法及装置 | |
CN117240625B (zh) | 一种涉及防篡改的数据处理方法、装置及电子设备 | |
CN109302442B (zh) | 一种数据存储证明方法及相关设备 | |
US20200396054A1 (en) | Secure Memory Read | |
CN114143312A (zh) | 基于区块链的边缘计算终端认证方法、系统及设备 | |
GB2488753A (en) | Encrypted communication | |
EP2286610B1 (en) | Techniques for peforming symmetric cryptography | |
CN115589284B (zh) | 数据保护方法、装置,及电子设备 | |
CN113542187A (zh) | 文件上传下载方法、装置、计算机装置及介质 | |
CN115840954A (zh) | 隐私计算方法、装置、系统以及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant |