本发明属于信息安全,涉及一种分布式数据存储系统中数据加解密方法以及相关装置。
背景技术:
1、随着当前科学技术的飞速发展,信息化和大数据时代的到来,海量数据这一资源的重要性越发凸显,如何有效的保护隐私数据的安全也成为当前重要的研究课题之一。当前对于海量数据的处理,通常的做法是将本地的数据外包到云服务器中进行存储和管理。但是,将数据完全交由第三方托管并不是绝对安全的,近年来被爆出的数据泄露等安全问题屡见不鲜。针对云服务器安全问题,目前常见的安全保护技术是对数据进行先加密后存储到云端,需要用到数据时将密文从服务器下载到本地解密后进行后续操作,这种方案会显著降低云端数据的可用性,极易使得操作效率过低。然而将数据加密后,会造成数据之间的联系减少,所以如何高效的在云服务器进行密文检索成为当前面临着巨大的挑战之一。
2、现有加密数据库如cryptdb,通过对数据库进行的操作(选择、连接、投影等)进行特殊的处理,使得在已加密的数据上能够执行相应操作。虽然在一定程度上解决了云服务器检索密文数据的困难问题,但其存储的数据类型单一,而且无法应对大规模用户多密钥场景下的性能和安全挑战。因此在保证云端数据安全性的前提下,建立高效的加密存储系统是非常有必要的。
技术实现思路
1、本发明提供一种分布式数据存储系统中数据加解密方法以及相关装置,该方法能够提高数据安全性。
2、第一方面,本申请提供一种分布式数据存储系统中数据加解密方法,包括:接收待加密数据,确定所述待加密数据对应的用户身份信息,并基于所述用户身份信息确定所述待加密数据对应的第一加密密钥;利用所述第一加密密钥对所述待加密数据进行加密,得到第一加密信息,并将所述第一加密信息存储至存储端的工作节点;基于所述第一加密密钥生成第二加密密钥,利用所述第二加密密钥对存储所述第一加密信息的数据块进行加密,得到第二加密信息,并将所述第二加密信息存储至所述存储端的管理节点。
3、其中,所述接收待加密数据,确定所述待加密数据对应的用户身份信息,并基于所述用户身份信息确定所述待加密数据对应的第一加密密钥的步骤之前,包括:基于所述用户身份信息生成加密密钥,并基于所述用户身份信息和所述加密秘密生成第一键值对;所述基于所述用户身份信息确定所述待加密数据对应的第一加密密钥的步骤,包括:基于所述用户身份信息从所述第一键值对中确定所述待加密数据对应的第一加密密钥。
4、其中,所述方法还包括:接收数据查询信息,确定所述数据查询信息对应的用户身份信息,并基于所述用户身份信息确定所述数据查询信息对应的第一加密密钥;利用所述第一加密密钥对所述数据查询信息进行加密,得到第三加密信息;基于所述第三加密信息确定所述数据查询信息对应的查询结果。
5、其中,所述基于所述第三加密信息确定所述数据查询信息对应的查询结果的步骤,包括:将所述第三加密信息与所述管理节点中的所述第二加密信息进行比对;响应于所述第二加密信息与所述第三加密信息匹配,则基于匹配的所述第二加密信息确定所述数据查询信息对应的查询结果在所述工作节点中的存储地址;基于所述存储地址得到所述第一加密信息;利用所述第一加密密钥对所述第一解密信息进行解密,得到所述数据查询信息对应的查询结果。
6、其中,所述基于匹配的所述第二加密信息确定所述数据查询信息对应的查询结果在所述工作节点中的存储地址的步骤,包括:利用所述第二加密密钥对匹配的所述第二加密信息进行解密,得到所述数据查询信息对应的查询结果在所述工作节点中的存储地址。
7、其中,对每一数据块进行加密时的第二加密密钥不同。
8、其中,所述基于所述第一加密密钥生成第二加密密钥的步骤,包括:利用伪随机函数基于所述第一加密密钥生成第二加密密钥。
9、第二方面,本申请提供一种分布式数据存储系统中数据加解密装置,包括:接收模块,用于接收待加密数据,确定所述待加密数据对应的用户身份信息,并基于所述用户身份信息确定所述待加密数据对应的第一加密密钥;第一加密模块,用于利用所述第一加密密钥对所述待加密数据进行加密,得到第一加密信息,并将所述第一加密信息存储至存储端的工作节点;密钥派生模块,用于基于所述第一加密密钥生成第二加密密钥;第二加密模块,用于利用所述第二加密密钥对存储所述第一加密信息的数据块进行加密,得到第二加密信息,并将所述第二加密信息存储至所述存储端的管理节点。
10、第三方面,本申请提供一种分布式数据存储系统中数据加解密系统,包括:客户端代理,所述客户端代理用于接收待加密数据,确定所述待加密数据对应的用户身份信息,并基于所述用户身份信息确定所述待加密数据对应的第一加密密钥;利用所述第一加密密钥对所述待加密数据进行加密,得到第一加密信息;服务端代理,所述服务端代理用于基于所述第一加密密钥生成第二加密密钥,利用所述第二加密密钥对存储所述第一加密信息的数据块进行加密,得到第二加密信息;存储端,包括工作节点和管理节点,所述工作节点用于存储第一加密信息,所述管理节点用于存储第二加密信息。
11、本申请提供的数据加解密方法,包括:接收待加密数据,确定所述待加密数据对应的用户身份信息,并基于所述用户身份信息确定所述待加密数据对应的第一加密密钥;利用所述第一加密密钥对所述待加密数据进行加密,得到第一加密信息,并将所述第一加密信息存储至存储端的工作节点;基于所述第一加密密钥生成第二加密密钥,利用所述第二加密密钥对存储所述第一加密信息的数据块进行加密,得到第二加密信息,并将所述第二加密信息存储至所述存储端的管理节点。该方法能够提高数据安全性。
1.一种分布式数据存储系统中数据加解密方法,其特征在于,包括:
2.根据权利要求1所述的数据加解密方法,其特征在于,所述接收待加密数据,确定所述待加密数据对应的用户身份信息,并基于所述用户身份信息确定所述待加密数据对应的第一加密密钥的步骤之前,包括:
3.根据权利要求1所述的数据加解密方法,其特征在于,所述方法还包括:
4.根据权利要求3所述的数据加解密方法,其特征在于,所述基于所述第三加密信息确定所述数据查询信息对应的查询结果的步骤,包括:
5.根据权利要求1所述的数据加解密方法,其特征在于,所述基于匹配的所述第二加密信息确定所述数据查询信息对应的查询结果在所述工作节点中的存储地址的步骤,包括:
6.根据权利要求1~5任一项所述的数据加解密方法,其特征在于,对每一数据块进行加密时的第二加密密钥不同。
7.根据权利要求1~5任一项所述的数据加解密方法,其特征在于,所述基于所述第一加密密钥生成第二加密密钥的步骤,包括:
8.一种分布式数据存储系统中数据加解密装置,其特征在于,包括:
9.一种分布式数据存储系统中数据加解密系统,其特征在于,包括: