用于安全存储数据的数据存储服务器和客户端设备制造技术

技术编号:36548460 阅读:15 留言:0更新日期:2023-02-04 17:01
本发明专利技术涉及一种用于将数据(125a)存储在数据存储服务器(120)的数据库(125)中的客户端设备(110)。所述数据包括数据元素,每个数据元素在范围的由子范围标识符标识的子范围内。所述客户端设备用于:对所述数据元素进行加密,并且将包括密文数据元素的所述数据发送给所述服务器。所述客户端设备还用于:对于每个子范围,对子范围数据桶进行加密,其中,每个子范围数据桶包括所述相应子范围内的数据元素和对应的密文数据元素。此外,所述客户端设备用于:对于每个子范围,将相应的加密子范围数据桶和相应子范围标识符的消息摘要或者相应的加密子范围数据桶和相应子范围标识符的消息验证码(message authentication code,MAC)发送给所述服务器,以存储在所述数据库中。以存储在所述数据库中。以存储在所述数据库中。

【技术实现步骤摘要】
【国外来华专利技术】用于安全存储数据的数据存储服务器和客户端设备


[0001]本专利技术涉及数据存储系统。更具体地,本专利技术涉及用于安全存储安全敏感数据(包括数值数据和/或文本数据)并实现安全敏感数据的范围查询的客户端设备和数据存储服务器。

技术介绍

[0002]由于远程数据存储(例如云数据存储)使得用户客户端设备(通常只能存储有限数据)将数据和文件保存在一个或多个能够通过公共互联网或专用私网连接访问的远程数据存储服务器中,因此越来越受欢迎。云存储提供商承载、保护、管理和维护数据存储服务器和关联的基础设施,并且确保用户客户端设备对数据的访问。云存储的主要优点之一是,当数据已删除、损坏或在用户客户端设备上无法访问时,可以从远程数据存储服务器恢复用户数据。然而,由于云存储提供商负责保护传输到远程数据存储服务器的用户数据,云存储提供商很可能访问到安全敏感用户数据,这是用户不希望看到的和/或违反法律法规。通常,待存储在远程数据存储服务器中的安全敏感数据包括安全敏感数据,例如数值数据或文本数据,这些数据可以以明文查询,但如果加密,则不能通过范围查询等方便地查询。

技术实现思路

[0003]本专利技术的目的是提供一种改进的客户端设备和一种改进的数据存储服务器,以实现安全敏感数据(例如数值数据和/或文本数据)的安全云存储,从而实现安全敏感数据的范围查询。
[0004]上述和其它目的是通过由独立权利要求请求保护的主题来实现的。其它实现方式在从属权利要求、说明书和附图中是显而易见的。
[0005]根据第一方面,提供了一种包括处理器的客户端设备。所述处理器用于,例如,从运行在所述客户端设备或其它通信设备上的应用,获取安全敏感数据。所述安全敏感数据包括多个明文数据元素,所述多个明文数据元素中的每个数据元素在范围(例如,取值范围)的多个子范围中的一个子范围内,所述多个子范围中的每个子范围由子范围标识符标识。所述多个明文数据元素可以以明文查询,并且可以包括,例如,数值和/或文本数据,即字母串。
[0006]所述客户端设备中的所述处理器用于使用第一加密密钥对所述多个明文数据元素进行加密,以得到多个密文数据元素。此外,所述客户端设备中的所述处理器用于将包括所述多个密文数据元素的所述数据发送给数据存储服务器,以将所述数据存储在所述数据存储服务器的数据库中,具体是存储在所述数据库的第一表中。所述客户端设备中的所述处理器还用于:对于所述多个子范围中的每个子范围,使用第二加密密钥对子范围数据桶进行加密,其中,每个子范围数据桶包括所述相应子范围内的明文数据元素和对应的密文数据元素。此外,所述客户端设备中的所述处理器用于:对于所述多个子范围中的每个子范围,将相应的加密子范围数据桶和相应子范围标识符的消息摘要或者相应的加密子范围数
据桶和相应子范围标识符的基于消息验证码(message authentication code,MAC)密钥的MAC发送给所述数据存储服务器,以将所述多个加密子范围数据桶和所述子范围标识符的多个消息摘要或多个MAC存储在所述数据存储服务器的所述数据库中,具体是存储在所述数据库的第二表中。所述客户端设备可以是用于将安全敏感数据存储在远程存储服务器中的多个客户端设备中的一个客户端设备。
[0007]在所述第一方面的又一种可能的实现方式中,所述数据库是关系数据库,包括所述多个密文数据元素的所述数据存储在所述关系数据库的第一表中,所述多个加密子范围数据桶和所述子范围标识符的多个消息摘要或MAC存储在所述数据库的第二表中。
[0008]在所述第一方面的又一种可能的实现方式中,所述多个密文数据元素存储在所述关系数据库的所述第一表的一列或多列中。在一种实现方式中,所述关系数据库的所述第一表中的一个或多个加密列可以包括使用不同加密密钥进行加密的列元素。例如,第一列元素可以使用第一客户端设备的加密密钥进行加密,而第二列元素可以使用第二客户端设备的加密密钥进行加密。
[0009]在所述第一方面的又一种可能的实现方式中,所述客户端设备中的所述处理器还用于将所述第一加密密钥的标识符与包括所述多个密文数据元素的所述数据一起发送给所述数据存储服务器,以根据所述第一加密密钥的所述标识符将所述数据存储所述数据存储服务器的所述数据库中,具体是存储在所述数据库的所述第一表中。换句话说,根据所述第一加密密钥的所述标识符,所述远程数据库服务器用于确定所述数据库中存储加密安全敏感数据的位置。
[0010]在所述第一方面的又一种可能的实现方式中,所述客户端设备中的所述处理器还用于从远程密钥管理服务器获取所述第一加密密钥、所述第二加密密钥和所述MAC密钥中的至少一个的加密版本,其中,所述加密的第一加密密钥、所述加密的第二加密密钥和所述加密的MAC密钥中的至少一个是使用客户端设备主密钥进行加密的。在又一种实现方式中,所述客户端设备中的所述处理器可以用于从所述远程密钥管理服务器接收所述客户端设备主密钥。在又一种实现方式中,所述客户端设备用于生成所述第一加密密钥、所述第二加密密钥和所述MAC密钥中的至少一个。
[0011]在所述第一方面的又一种可能的实现方式中,所述客户端设备中的所述处理器还用于将所述加密的第一加密密钥、所述加密的第二加密密钥和所述加密的MAC密钥中的至少一个发送给所述数据存储服务器。在一种实现方式中,所述加密的第一加密密钥可以用作所述第一加密密钥的所述标识符,以根据第一标识符将包括所述多个密文数据元素的所述数据存储在所述数据存储服务器的所述数据库中,具体是存储在所述数据库的所述第一表中。
[0012]在所述第一方面的又一种可能的实现方式中,为了处理对存储在所述数据存储服务器的所述数据库中的包括所述多个密文数据元素的所述数据的选择查询,所述客户端设备中的所述处理器用于:确定查询取值范围(例如由所述选择查询限定的查询取值范围)所覆盖的子范围的子范围标识符,以得到所述多个子范围标识符的子集;根据所述多个子范围标识符的子集内的一个或多个子范围标识符的消息摘要或MAC,从所述数据存储服务器的所述数据库的所述第二表中获取所述多个加密数据桶中的一个或多个数据桶;使用所述第二加密密钥对所述一个或多个加密数据桶进行解密,以得到每个加密数据桶的多对明文
数据元素和密文数据元素中的一对或多对;根据所述一个或多个密文数据元素,获取存储在所述数据存储服务器的所述数据库中的所述数据,即使用所述一个或多个密文数据元素查询存储在所述数据存储服务器的所述数据库中的所述数据,以得到与所述一个或多个密文数据元素相关联的至少一部分所述数据。
[0013]在所述第一方面的又一种可能的实现方式中,所述客户端设备中的所述处理器还用于根据所述明文数据元素检查相应的数据元素是否在所述查询范围内。
[0014]在所述第一方面的又一种可能的实现方式中,所述客户端设备中的所述处理器还用于根据随机加密方案或确定性加密方案使用所述第一加密密钥对所述明文数据元素进行加密。
[0015]在所述第一方面的又一种可能的实现方式中,所述第一加密密钥和所述第二加密密钥是相本文档来自技高网
...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】1.一种客户端设备(110),其特征在于,所述客户端设备(110)包括处理器(111),所述处理器(111)用于:获取包括多个明文数据元素(200b)的数据(125a),其中,所述多个明文数据元素(200b)中的每个数据元素在范围的多个子范围中的一个子范围内,所述多个子范围中的每个子范围由子范围标识符(200a)标识;使用第一加密密钥(115a)对所述多个明文数据元素(200b)进行加密,以得到多个密文数据元素(210a);将包括所述多个密文数据元素(210a)的所述数据(125a)发送给数据存储服务器(120),以将所述数据(125a)存储在所述数据存储服务器(120)的数据库(125)中;对于所述多个子范围中的每个子范围,使用第二加密密钥(115a)对子范围数据桶(220b)进行加密,其中,每个子范围数据桶(220b)包括所述相应子范围内的明文数据元素(200b)和对应的密文数据元素(210a);对于所述多个子范围中的每个子范围,将相应的加密子范围数据桶(220b)和相应子范围标识符(200a)的消息摘要或者相应的加密子范围数据桶(220b)和相应子范围标识符(200a)的基于消息验证码(message authentication code,MAC)密钥(115b)的MAC(220a)发送给所述数据存储服务器(120),以将所述多个加密子范围数据桶(220b)和所述子范围标识符(200a)的多个消息摘要或MAC(220a)存储在所述数据存储服务器(120)的所述数据库(125)中。2.根据权利要求1所述的客户端设备(110),其特征在于,所述处理器(111)还用于从远程密钥管理服务器(130)获取所述第一加密密钥(115a)、所述第二加密密钥(115a)和所述MAC密钥(115b)中的至少一个的加密版本,其中,所述加密的第一加密密钥(115a)、所述加密的第二加密密钥(115a)和所述加密的MAC密钥(115b)中的至少一个是使用客户端设备主密钥进行加密的。3.根据权利要求1或2所述的客户端设备(110),其特征在于,所述处理器(111)还用于将所述第一加密密钥(115a)的标识符与包括所述多个密文数据元素(210a)的所述数据(125a)一起发送给所述数据存储服务器(120),以根据所述第一加密密钥(115a)的所述标识符将所述数据(125a)存储在所述数据存储服务器(120)的所述数据库(125)中。4.根据权利要求3所述的客户端设备(110),其特征在于,所述处理器(111)还用于将所述加密的第一加密密钥(115a)、所述加密的第二加密密钥(115a)和所述加密的MAC密钥(115b)中的至少一个发送给所述数据存储服务器(120)。5.根据上述权利要求中任一项所述的客户端设备(110),其特征在于,为了处理对存储在所述数据存储服务器(120)的所述数据库(125)中的包括所述多个密文数据元素(210a)的所述数据(125a)的查询,所述处理器(111)用于:确定由所述查询限定的查询范围所覆盖的子范围的子范围标识符,以得到所述多个子范围标识符(200a)的子集;根据所述多个子范围标识符(200a)的子集内的一个或多个子范围标识符的消息摘要或MAC,从所述数据存储服务器(120)的所述数据库(125)中获取所述多个加密数据桶(220b)中的一个或多个数据桶;使用所述第二加密密钥(115b)对所述一个或多个加密数据桶(220b)进行解密,以得到
每个加密数据桶(220b)的多对明文数据元素和密文数据元素中的一对或多对;根据所述一个或多个密文数据元素,获取存储在所述数据存储服务器(120)的所述数据库(125)中的所述数据(125a)。6.根据权利要求5所述的客户端设备(110),其特征在于,所述处理器(111)还用于根据所述明文数据元素(200b)检查相应的数据元素是否在所述查询范围内。7.根据上述权利要求中任一项所述的客户端设备(110),其特征在于,所述处理器(111)还用于根据随机加密方案或确定性加密方案使用所述第一加密密钥(115a)对所述明文数据元素(200b)进行加密。8.根据上述权利要求中任一项所述的客户端设备(110),其特征在于,所述第一加密密钥(115a)和所述第二加密密钥(115a)是相同的加密密钥(115a)。9.根据上述权利要求中任一项所述的客户端设备(110),其特征在于,所述MAC是基于哈希的消息验证码(hash

based message authentication code,HMAC)。10.一种用于操作客户端设备(110)的方法(700),其特征在于,所述方法(700)包括:获取(701)包括多个明文数据元素(200b)的数据(125a),其中,所述多个明文数据元素(200b)中的每个数据元素在范围的多个子范围中的一个子范围内,所述多个子范围中的每个子范围由子范围标识符(200a)标识;使用第一加密密钥(115a)对所述多个明文数据元素(200b)进行加密(703),以得到多个密文数据元素(210a);将包括所述多个密文数据元素(210a)的所述数据(125a)发送(705)给数据存储服务器(120),以将所述数据(125a)存储在所述数据存储服务器(120)的数据库(125)中;对于所述多个子范围中的每个子范围,使用第二加密密钥(115a)对子范围数据桶(220b)进行加密(707),其中,每个子范围数据桶(220b)包括所述相应子范围内的明文数据元素和对应的密文数据元素;对于所述多个子范围中的每个子范围,将相应的加密子范围数据桶(220b)和相应子范围标识符的消息摘要或者相应的加密子范围数据桶(220b)和相应子范围标识符的基于消息验证码(message authentication code,MAC)密钥(115b)的MAC(220a)发送(70...

【专利技术属性】
技术研发人员:
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1