无零日泄漏的加密搜索制造技术

技术编号:38280870 阅读:10 留言:0更新日期:2023-07-27 10:29
一种计算机实现方法,当由数据处理硬件执行时,使所述数据处理硬件执行以下操作,包括:接收对关键字的搜索查询,所述关键字出现在存储在不可信存储设备上的加密文档的语料库中的一个或多个所述加密文档中;基于所述关键字、私有加密密钥和唯一文档的计数,生成可委托的伪随机函数(DPRF),其中,所述唯一文档在包含有所述关键字的所述加密文档的语料库中;评估DPRF的第一部分;将所述DPRF的剩余的第二部分委托给所述不可信存储设备;从所述不可信存储设备接收与所述DPRF的剩余的第二部分相关的一个或多个所述加密文档的至少一部分中的每一个加密文档的标识符。的每一个加密文档的标识符。的每一个加密文档的标识符。

【技术实现步骤摘要】
无零日泄漏的加密搜索
相关申请的交叉引用
[0001]本申请是申请日为2020年12月11日、申请号为202080095861.6、专利技术名称为“无零日泄漏的加密搜索”的专利技术专利申请的分案申请,其要求2019年12月12日提交的题为“无零日泄漏的加密搜索”的美国专利申请No.16/712,151的优先权,在此将其全文引入作为参考。


[0002]本公开涉及执行无零日泄漏的加密搜索。

技术介绍

[0003]随着在云端存储大量数据变得越来越普遍,可搜索加密(即加密的搜索)越来越受欢迎。越来越多的用户或客户端拥有大量加密文档,这些文档存储在不受客户端控制的服务器上(即,服务器不受信任)。使用可搜索加密,客户端可以将其加密的文档存储在不受信任的服务器上,但仍保持搜索文档的能力,例如,检索包含特定关键字的所有文档的标识符。然而,这种可搜索的加密通常伴随着安全和隐私方面的缺陷。

技术实现思路

[0004]本公开的一个方面提供了一种用于提供无零日泄漏的加密搜索的方法。该方法包括在与用户相关联的用户设备的数据处理硬件处接收对关键字的搜索查询。关键字出现在存储于不可信存储设备上的加密文档的语料库中的一个或多个加密文档中。该方法还包括由数据处理硬件访问计数表以从包括关键字的加密文档的语料库中获得加密文档的语料库唯一文档的计数,以及由数据处理硬件基于关键字、私有加密密钥和包含该关键字的唯一文档的计数来生成可委托的伪随机函数(DPRF)。该方法还包括由数据处理硬件评估DPRF的第一部分以及由数据处理硬件将DPRF的剩余的第二部分委托给不可信存储设备。当不可信存储设备接收到DPRF的剩余第二部分时,使得不可信存储设备评估DPRF的剩余第二部分并访问与存储在不可信存储设备上的加密文档的语料库相关联的加密搜索索引。不可信存储设备还基于加密的搜索索引确定与DPRF的剩余第二部分相关联的加密文档的语料库中的一个或多个加密文档,并向用户设备返回每个加密文档的标识符,该标识符至少为一个与DPRF的剩余第二部分相关联的一个或多个加密文档的一部分。
[0005]本公开的实现可以包括以下可选特征中的一个或多个。在一些实施方式中,生成DPRF包括生成二叉树,其中二叉树包括一组节点,该一组节点包括根节点和多个其他节点。每个其他节点包括非叶节点或叶节点。该方法还可以包括其中二叉树的叶节点的数量等于或大于包括关键字的唯一文档的计数。
[0006]在一些示例中,二叉树的根节点包括私有加密密钥和关键字的第一散列。根节点可以与第一子节点和第二子节点相关联,其中第一子节点包括私有加密密钥和关键字的第一散列的第二散列的第一部分,第二子节点包括私有加密密钥和关键字的第一个散列的第
二散列的第二部分。可选地,与第二散列的第二部分连接的第二散列的第一部分等效于私有加密密钥和关键字的第一散列的第二散列。
[0007]二叉树的节点集合中的每个叶节点可以与存储在加密搜索索引中的值相关联。二叉树的节点集合中的每个其他节点可以包括与对应的其他节点相关联的父节点的散列的一部分。在一些实施方式中,评估DPRF的第一部分包括评估二叉树的节点集合的第一子集。当不可信存储设备评估DPRF的剩余第二部分时,不可信存储设备评估二叉树的节点集的第二子集。第二子集包括来自二叉树节点集合的与第一子集不同的节点。
[0008]在一些示例中,该方法还包括:对于用户上传到存储在不可信存储设备上的加密文档的语料库中的新加密文档的每个唯一关键字,由数据处理硬件在计数表中递增加密文档的语料库中包括相应的唯一关键字的唯一文档的计数,加密文档的语料库以及由数据处理硬件从包括相应的唯一关键字的加密文档的语料库中基于私有加密密钥、相应的唯一关键字和唯一文档的递增计数生成唯一关键字散列。该方法还可以包括由数据处理硬件生成包含唯一关键字散列和与用户上传的新的加密文档相关联的加密文档标识符的散列对,以及由数据处理硬件将散列对发送到不可信存储设备。
[0009]当不可信存储设备返回与DPRF的剩余第二部分相关联的一个或多个加密文档的至少一部分的每个加密文档的标识符时,不可信存储设备可以返回与每个返回的标识符相关联的加密元数据。
[0010]本公开的另一方面提供了一种用于提供无零日泄漏的加密搜索的系统。该系统包括与用户相关联的用户设备的数据处理硬件和与数据处理硬件通信的存储器硬件。存储器硬件存储当在数据处理硬件上执行时使数据处理硬件执行操作的指令。这些操作包括接收对关键字的搜索查询。关键字出现在存储在不可信存储设备上的加密文档的语料库中的一个或多个加密文档中。这些操作还包括访问计数表以获取加密文档的语料库中包含关键字的唯一文档的计数,以及基于关键字、私有加密密钥和包括关键字的唯一文档的计数生成可委托的伪随机函数(DPRF)。该操作还包括评估DPRF的第一部分并将DPRF的剩余第二部分委托给不可信存储设备。当不可信存储设备接收到DPRF的剩余第二部分时,使不可信存储设备评估DPRF的剩余第二部分并访问与存储在不可信存储设备上的加密文档的语料库相关联的加密搜索索引。不可信存储设备还基于加密搜索索引确定与DPRF的剩余第二部分相关联的加密文档的语料库中的一个或多个加密文档,并向用户设备返回每个加密文档的标识符,该标识符至少为与DPRF的剩余第二部分相关联的一个或多个加密文档的一部分。
[0011]该方面可以包括以下可选特征中的一个或多个。在一些实施方式中,生成DPRF包括生成二叉树,其中二叉树包括一组节点,该一组节点包括根节点和多个其他节点。每个其他节点包括非叶节点或叶节点。操作还可以包括二叉树的叶节点的数量等于或大于包括关键字的唯一文档的计数的情况。
[0012]在一些示例中,二叉树的根节点包括私有加密密钥和关键字的第一散列。根节点可以与第一子节点和第二子节点相关联,其中第一子节点包括私有加密密钥和关键字的第一散列的第二散列的第一部分,第二子节点包括私有加密密钥和关键字的第一散列的第二散列的第二部分。可选地,与第二散列的第二部分相连接的第二散列的第一部分等效于私有加密密钥和关键字的第一散列的第二散列。
[0013]二叉树的节点集合中的每个叶节点可以与存储在加密搜索索引中的值相关联。二
叉树的节点集合中的每个其他节点可以包括与对应的其他节点相关联的父节点的散列的一部分。在一些实施方式中,评估DPRF的第一部分包括评估二叉树的节点集合的第一子集。当不可信存储设备评估DPRF的剩余第二部分时,不可信存储设备评估二叉树的节点集的第二子集。第二子集包括来自二叉树节点集合的与第一子集不同的节点。
[0014]在一些示例中,操作进一步包括,对于用户上传到存储在不可信存储设备上的加密文档的语料库中的新加密的文档的每个唯一关键字,增加加密文档的语料库内的唯一文档的计数,包括计数表中对应的唯一关键字,并基于私有加密密钥、对应的唯一关键字和加密文档的语料库中包括对应唯一关键字的唯一文档的递增计数生成唯一关键字散列。操作还可以包括生成包含唯一关键字散列和与用户上传的新加密文档相关本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种计算机实现方法,其特征在于,当由数据处理硬件执行时,使所述数据处理硬件执行以下操作,包括:接收对关键字的搜索查询,所述关键字出现在存储在不可信存储设备上的加密文档的语料库中的一个或多个所述加密文档中;基于所述关键字、私有加密密钥和唯一文档的计数,生成可委托的伪随机函数(DPRF),其中,所述唯一文档在包含有所述关键字的所述加密文档的语料库中;评估DPRF的第一部分;将所述DPRF的剩余的第二部分委托给所述不可信存储设备;从所述不可信存储设备接收与所述DPRF的剩余的第二部分相关的一个或多个所述加密文档的至少一部分中的每一个加密文档的标识符。2.如权利要求1所述的计算机实现方法,其特征在于,所述操作进一步包括访问计数表以获得包括所述关键字的所述加密文档的语料库中唯一文档的计数。3.如权利要求1所述的计算机实现方法,其特征在于,所述将所述DPRF的剩余的第二部分委托给所述不可信存储设备使得所述不可信存储设备:评估所述DPRF的剩余的第二部分;访问与存储在所述不可信存储设备上的所述加密文档的语料库相关联的加密搜索索引;基于所述加密搜索索引,确定与所述DPRF的剩余的第二部分相关联的所述加密文档的语料库中的一个或多个所述加密文档。4.如权利要求1所述的计算机实现方法,其特征在于,生成所述DPRF包括:生成二叉树,所述二叉树包括一组节点,所述一组节点包括根节点和多个其他节点,每个所述其他节点包括非叶节点或叶节点,其中,所述二叉树的所述叶节点的数量等于或大于包括所述关键字的所述唯一文档的所述计数。5.如权利要求4所述的计算机实现方法,其特征在于,所述二叉树的所述根节点包括所述私有加密密钥和所述关键字的第一散列;以及所述根节点与第一子节点和第二子节点相关联,所述第一子节点包括所述私有加密密钥和所述关键字的所述第一散列的第二散列的第一部分,所述第二子节点包括所述私有加密密钥和所述关键字的所述第一散列的所述第二散列的第二部分。6.如权利要求5所述的计算机实现方法,其特征在于,与所述第二散列的所述第二部分连接的所述第二散列的所述第一部分等效于所述私有加密密钥和所述关键字的所述第一散列的所述第二散列。7.如权利要求4所述的计算机实现方法,其特征在于,所述二叉树的所述一组节点中的每个所述叶节点与存储在所述加密搜索索引中的值相关联。8.如权利要求4所述的计算机实现方法,其特征在于,所述二叉树的所述一组节点的每个所述其他节点包括与对应的所述其他节点相关联的父节点的散列的一部分。9.如权利要求4所述的计算机实现方法,其特征在于,评估所述DPRF的第一部分包括评估所述二叉树的所述一组节点的第一子集。10.如权利要求9所述的计算机实现方法,其特征在于,所述不可信存储设备评估所述
二叉树的所述一组节点的第二子集,所述第二子集包括来自所述二叉树的所述一组节点中的不同于所述第一子集的节点。11.一种系统,其特征在于,包括:...

【专利技术属性】
技术研发人员:凯文
申请(专利权)人:谷歌有限责任公司
类型:发明
国别省市:

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

1