有效的不经意置换制造技术

技术编号:22758120 阅读:15 留言:0更新日期:2019-12-07 05:16
一种用于不经意地移动在存储器硬件(114)中所存储的N个数据块(102)的方法(700),包括将存储器硬件的存储器位置(118)组织为大致上

Effective inadvertent replacement

A method (700) for inadvertently moving n data blocks (102) stored in memory hardware (114), including organizing memory locations (118) of memory hardware into roughly

【技术实现步骤摘要】
【国外来华专利技术】有效的不经意置换
本公开涉及不经意地(obliviously)移动在存储器上所存储的数据块。
技术介绍
企业和个人正在使用分布式存储系统(即,云存储服务)将数据存储在覆盖多个存储器位置的存储器上。这些企业和个人中有许多在将他们的数据上传到分布式存储系统之前对该数据进行加密。为了使用由云存储服务所提供的基本功能,诸如对存储的数据进行搜索查询,企业需要提供对云存储服务的纯文本访问。结果,尽管云存储服务增加了便利性和成本优势,但是许多政府和敏感的私营部门,诸如卫生、金融和法律,或不愿意使用云存储服务。另外,仅加密可能不足以确保数据私密性,因为仅了解数据访问模式就可以提供有关数据的大量信息,而无需解密数据。
技术实现思路
本公开的一个方面提供了一种用于将数据块不经意地移动到存储器硬件上的新的存储器位置的方法。方法包括在数据处理硬件从客户端接收置换(permutation)请求,以不经意地移动在与数据处理硬件进行通信的存储器硬件中所存储的N个数据块。N个数据块中的每一个与客户端相关联,并且被存储在存储器硬件的相对应的存储器位置。响应于接收到置换请求,方法包括通过数据处理硬件将存储器硬件的存储器位置划分为个数据桶。每个数据桶包含个数据块。方法还包括通过数据处理硬件分配存储器硬件中的新的存储器位置,用于存储N个数据块,以及通过数据处理硬件初始化与新的存储器位置相关联的个缓冲桶。每个缓冲桶与在客户端所初始化的相对应的缓存槽相关联。方法进一步包括从数据处理硬件向客户端迭代地提供个数据桶。响应于接收到每个数据桶,客户端被配置为:对相对应的数据桶内的个数据块应用随机置换,以确定与每个置换的数据块相关联的相对应的存储器硬件的新的存储器位置和相对应的缓冲桶;将每个置换的数据块提供到相对应的缓存槽中;将高达阈值的置换的数据块从每个缓存槽喷射(spray)到相对应的缓冲桶中;以及将任何剩余的置换的数据块存储在相对应的缓存槽中。本公开的实施方式可以包括以下可选特征中的一个或多个。在一些示例中,大致上(substantially)包括值的范围,诸如在N0.1和N0.75之间。其他范围也是可能的。在其他示例中,大致上包括:N0.5,其提供具有一个往返(round-trip)的算法);N1/3,其提供具有2个往返的算法;以及N0.20,其提供具有4个往返的算法。相对较小的值可能不太有用,因为N可能不切实际地(impractically)大。对于相对较大的值,算法中的增益也可能不太有用。在一些实施方式中,客户端通过以下方式对相对应的数据桶内的个数据块应用随机置换:对在相对应的数据桶内所接收的个数据块中的每一个进行解密;对个数据块中的每一个进行重新加密;以及对重新加密的个数据块应用随机置换。随机置换可以包括基于由客户端随机选择的高级加密标准密钥,使用对数据处理硬件隐藏的随机位(randombit)在客户端对重新加密的个数据块进行洗牌(shuffe)。在一些示例中,独立于当前被存储在相对应的缓存槽内的置换的数据块的数量,随机地选择从每个缓存槽所喷射的置换的数据块的阈值。在至少一个迭代期间,从至少一个缓存槽所喷射的置换的数据块的阈值可以不同。当相对应的缓存槽包含至少阈值的置换的数据块时,客户端可以从相对应的客户端缓存喷射等于阈值的数个置换的数据块。在一些实施方式中,客户端进一步被配置为:在客户端将每个置换的数据块提供给相对应的缓存槽中之后,识别包含小于阈值的数个置换的数据块的至少一个缓存槽;以及基于阈值与相对应的缓存槽内的置换的数据块的数量之间的差异,将数个虚假(dummy)块喷射到相对应的缓冲桶中。客户端可以在将每个虚假块喷射到相对应的缓冲桶中之前对每个虚假块进行加密。在一些示例中,从数据处理硬件向客户端迭代地提供个数据桶包括:从客户端迭代地接收请求下载数据桶中的一个的桶下载请求;以及响应于接收到每个桶下载请求,将相对应的数据桶上传到客户端。在客户端将所有置换的数据块从所有缓存槽喷射到相对应的缓冲桶中之后,方法可以包括通过数据处理硬件从存储器硬件解除分配所有数据桶。在客户端将所有置换的数据块从所有缓存槽喷射到相对应的缓冲桶中之后,方法可以包括:通过数据处理硬件从存储器硬件解除分配所有数据桶;以及从数据处理硬件向客户端迭代地提供个缓冲桶。响应于接收到每个缓冲桶,客户端可以被配置为:从相对应的缓冲桶移除任何虚假块;对相对应的缓冲桶内的数据块进行重新排序;以及将缓冲桶上传到分布式系统。本公开的另一方面提供了一种用于将数据块不经意地移动到存储器硬件上的新的存储器位置的系统。系统包括客户端设备,与客户端设备进行通信的分布式系统的数据处理硬件,以及与数据处理硬件进行通信的存储器硬件。存储器硬件存储指令,当在数据处理硬件上执行指令时,指令使得数据处理硬件进行操作。操作包括从客户端设备接收置换请求,以不经意地移动在与数据处理硬件进行通信的存储器硬件中所存储的N个数据块,N个数据块中的每一个与客户端设备相关联,并且被存储在存储器硬件的相对应的存储器位置。响应于接收到置换请求,操作包括将存储器硬件的存储器位置划分为个数据桶。每个数据桶包含个数据块。操作还包括分配存储器硬件中的新的存储器位置,用于存储N个数据块,以及初始化与新的存储器位置相关联的个缓冲桶。每个缓冲桶与在客户端设备所初始化的相对应的缓存槽相关联。操作还包括向客户端设备迭代地提供个数据桶。响应于接收到每个数据桶,客户端设备被配置为:对相对应的数据桶内的个数据块应用随机置换,以确定与每个置换的数据块相关联的相对应的存储器硬件的新的存储器位置和相对应的缓冲桶;将每个置换的数据块提供到相对应的缓存槽中;将高达阈值的置换的数据块从每个缓存槽喷射到相对应的缓冲桶中;以及将任何剩余的置换的数据块存储在相对应的缓存槽中。该方面可以包括以下可选特征中的一个或多个。在一些实施方式中,客户端设备通过以下方式对相对应的数据桶内的个数据块应用随机置换:对在相对应的数据桶内所接收的个数据块中的每一个进行解密;对个数据块中的每一个进行重新加密;以及对重新加密的个数据块应用随机置换。随机置换可以包括基于由客户端设备随机选择的高级加密标准密钥,使用对数据处理硬件隐藏的随机位在客户端设备对重新加密的个数据块进行洗牌。在一些示例中,独立于当前被存储在相对应的缓存槽内的置换的数据块的数量,随机地选择从每个缓存槽所喷射的置换的数据块的阈值。在至少一个迭代期间,从至少一个缓存槽所喷射的置换的数据块的阈值可以不同。当相对应的缓存槽包含至少阈值的置换的数据块时,客户端设备可以从相对应的客户端缓存喷射等于阈值的数个置换的数据块。在一些实施方式中,客户端设备进一步被配置为:在客户端设备将每个置换的数据块提供给相对应的缓存槽中之后,识别包含小于阈值的数个置换的数据块的至少一个缓存槽;以及基于阈值与相对应的缓存槽内的置换的数据块的数量之间的差异,将数个虚假块喷射到相对应的缓冲桶中。客户端设备还可以被配置为在将每个虚假块喷射到相对应的缓冲桶中之前对每个虚假块进行加密。在一些示例中,向客户端设备迭代地提供个数据桶包括本文档来自技高网...

【技术保护点】
1.一种用于不经意地移动在与数据处理硬件(112)进行通信的存储器硬件(114)中所存储的N个数据块(102)的方法(700),N个数据块(102)中的每一个与客户端(104)相关联并且被存储在所述存储器硬件(114)的对应的存储器位置(118),其特征在于,所述方法(700)包括:/n通过所述数据处理硬件(112)将所述存储器硬件(114)的所述存储器位置(118)组织为大致上

【技术特征摘要】
【国外来华专利技术】20170427 US 62/490,8041.一种用于不经意地移动在与数据处理硬件(112)进行通信的存储器硬件(114)中所存储的N个数据块(102)的方法(700),N个数据块(102)中的每一个与客户端(104)相关联并且被存储在所述存储器硬件(114)的对应的存储器位置(118),其特征在于,所述方法(700)包括:
通过所述数据处理硬件(112)将所述存储器硬件(114)的所述存储器位置(118)组织为大致上个数据桶(350),每个数据桶(350)包含大致上个数据块(102);
通过所述数据处理硬件(112)分配与所述存储器硬件(114)中的新的存储器位置(118)相关联的大致上个缓冲桶(360),每个缓冲桶(360)与在所述客户端(104)所分配的用于存储缓存的置换的数据块(102)的对应的缓存槽(370)相关联;以及
从所述数据处理硬件(112)向所述客户端(104)迭代地提供所述大致上个数据桶(350),响应于接收到每个数据桶(350),所述客户端(104)被配置为:
对对应的所述数据桶(350)内的所述大致上个数据块(102)应用随机置换以生成置换的数据块(102);
为每个置换的数据块(102)确定对应的缓冲桶(360)和对应的缓存槽(370);
对于每个缓冲桶(360),确定要被喷射到所述缓冲桶(360)中的数据块(102)的数量,以及用于从以下中的至少一个选择要被喷射到所述缓冲桶(360)中的数据块(102)的策略:对应的置换的数据块(102);来自对应的缓存槽(370)的缓存的置换的数据块(102);或者虚假数据块(103);
根据所述策略将选择的所述数据块(102)喷射到所述缓冲桶(360)中;
将任何未选择的置换的数据块(102)存储在它们对应的缓存槽(370)中;以及
将任何选择的缓存的置换的数据块(102)从它们对应的缓存槽(370)移除。


2.根据权利要求1所述的方法(700),其特征在于,所述客户端(104)通过以下方式对对应的所述数据桶(350)内的所述大致上个数据块(102)应用所述随机置换:
对在对应的所述数据桶(350)内所接收的所述大致上个数据块(102)中的每一个进行解密;
对所述大致上个数据块(102)中的每一个进行重新加密;以及
对重新加密的所述大致上个数据块(102)应用所述随机置换。


3.根据权利要求2所述的方法(700),其特征在于,所述随机置换包括,使用对所述数据处理硬件(112)隐藏的加密安全随机密钥,在所述客户端(104)对重新加密的所述大致上个数据块(102)进行洗牌。


4.根据权利要求1-3中任一项所述的方法(700),其特征在于,独立于与缓冲桶(360)对应的置换的数据块(102)的数量,确定要被喷射到所述缓冲桶(360)中的数据块(102)的数量。


5.根据权利要求1-4中任一项所述的方法(700),其特征在于,在相同的迭代期间,要被喷射到一个缓冲桶(360)中的数据块(102)的数量与要被喷射到另一桶中的数据块(102)的数量不同。


6.根据权利要求1-5中任一项所述的方法(700),其特征在于,在单独的迭代之间,要被喷射到一个缓冲桶(360)中的数据块(102)的数量与要被喷射到另一桶中的数据块(102)的数量不同。


7.根据权利要求1-6中任一项所述的方法(700),其特征在于,所述选择要被喷射到所述缓冲桶(360)中的数据块(102)的数量遵循严格的优先级顺序,包括:
第一,从对应的所述置换的数据块(102)中选择;
第二,从来自对应的所述缓存槽(370)的所述缓存的置换的数据块(102)中选择;以及
第三,选择虚假数据块(103)。


8.根据权利要求1-7中任一项所述的方法(700),其特征在于,所述客户端(104)在将每个虚假块(103)喷射到对应的所述缓冲桶(360)中之前,对每个虚假块(103)进行加密。


9.根据权利要求1-8中任一项所述的方法(700),其特征在于,从所述数据处理硬件(112)向所述客户端(104)迭代地提供所述大致上个数据桶(350)包括:
从所述客户端(104)迭代地接收请求下载所述数据桶(350)中的一个的桶下载请求(304);以及
响应于接收到每个桶下载请求(304),向所述客户端(104)发送对应的所述数据桶(350)。


10.根据权利要求1-9中任一项所述的方法(700),其特征在于,进一步包括,在所述客户端(104)将所有所述置换的数据块(102)从所有所述缓存槽(370)喷射到对应的所述缓冲桶(360)中之后,通过所述数据处理硬件(112)从所述存储器硬件(114)解除分配所有所述数据桶(350)。


11.根据权利要求1-10中任一项所述的方法(700),其特征在于,进一步包括,在所述客户端(104)将所有所述置换的数据块(102)从所有所述缓存槽(370)喷射到对应的所述缓冲桶(360)中之后,从所述数据处理硬件(112)向所述客户端(104)迭代地提供所述大致上个缓冲桶(360),响应于接收到每个缓冲桶(360),所述客户端(104)被配置为:
从对应的所述缓冲桶(360)移除任何虚假块(103);
对对应的所述缓冲桶(360)内的所述数据块(102)进行解密;
对所述数据块(102)中的每一个进行重新加密;
对对应的所述缓冲桶(360)内的重新加密的所述数据块(102)进行排序;以及
将所述缓冲桶(360)上传到所述数据处理硬件(112)。


12.一种用于在分布式系统(140)中不经意地移动N个数据块(102)的系统(100),N个数据块(...

【专利技术属性】
技术研发人员:凯文·亚萨卡萨尔瓦尔·帕特尔杰赛普·佩尔夏诺
申请(专利权)人:谷歌有限责任公司
类型:发明
国别省市:美国;US

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

1
相关领域技术
  • 暂无相关专利