正如标题所说,我正在研究如何搜索加密的数据。而且,我看到cryptDB使用了Song等人的文章“加密数据检索的实用技术”中的加密方案来搜索加密数据上的单词。但是为什么他们不对每个单词使用DET加密,并且搜索一个单词,只对一个单词进行加密并进行比较?
发布于 2019-01-09 17:12:04
如果你用欧洲央行模式加密这些单词,那么它就会显示出我们称之为频率攻击的信息。攻击者可以看到哪些单词在行中重复,并尝试提取信息,特别是如果攻击者对数据库中包含的数据有一定的了解。
如果用欧洲央行模式加密,我们可以在一个小的搜索栏中看到这一点;
| ID |...| SEARCH |
| x01 |...| 0xF41, 0x650, 0x086, 0x331 .... |
| x02 |...| 0xF41, 0x165, 0x086, 0x63f, 0x754 .... |
| x03 |...| 0x650, 0x331, 0x1E6, 0x12f, 0x004 .... |如您所见,如果直接使用欧洲央行模式,则可以从搜索行中提取信息。在ECB中使用CryptDB列是您的选择。如果您认为数据是要攻击的易受伤害,请不要使用ECB模式。
他们没有使用欧洲央行,而是选择宋的作品和已修改;
他们用标准分隔符分割单词,删除重复,随机排列重复的单词,将每个单词填入相同的大小,然后加密。
他们声称他们的SEARCH几乎和他们的RND模式一样安全,每种加密都带有随机IV的CBC模式。他们还声称DBMS服务器无法区分一个单词是否在多个行中重复,它只是通过比较RND列和SEARCH列的大小来泄漏不同的单词数。
从他们的文章中还不清楚这是如何影响性能的。实际上,很明显,数据库中没有对每一行执行不同密钥的加密。整个系统的负担都是基于代理服务器的,本文没有对代理服务器的开销进行度量。
发布于 2019-01-09 17:37:54
一个简单的确定性加密和搜索方法的大问题是,它使得该方案在字典攻击和蛮力攻击时非常脆弱。它允许对手有效地对数据集执行统计攻击,以获取信息,这在处理加密数据时是不可取的。从根本上说,宋的方案背后的想法是依赖确定性加密和确定性伪随机流,但他们确实改进了“最简单”的方法,以尝试避免一些问题。
宋的方案背后的目标是实现比简单方法更好的安全性,这就是为什么他们依赖于“概率搜索”的概念:在搜索给定的单词时,该方案返回该单词在明文中出现的所有位置,以及可能出现的其他错误位置。
您说得对,在查看加密数据的搜索时,确定性加密方案是获得解决方案的最简单方法之一,但它们在以下几个方面存在缺陷:
首先,加密的数据集和搜索关键字将泄漏信息到服务器。由于您使用的是确定性加密方案,所以在查找给定关键字时,请注意相同的关键字将始终加密到相同的密文中。
最值得注意的是,这意味着服务器可以检查并查看给定密文在数据集中出现的次数,它还泄漏相应的加密文档,其中包含一个共同的关键字。这使得确定性方案更容易进行频率分析。请注意,Song的计划并没有真正解决这个问题,尽管他们在5.2节中确实提出了一个解决办法。
下一个问题是,由于它使用确定性加密,服务器将始终知道客户端何时对同一事物进行多次搜索。请注意,宋的计划没有解决这个问题。
现在,也可能出现的第三个问题是确定性加密方案可能是公钥方案。这意味着所有加密都是使用客户端的公钥完成的。由于它是公开的,服务器可以通过创建加密关键字列表并将其与加密数据集或搜索查询中的关键字进行比较,轻松地提取加密数据集上的字典攻击。一旦找到匹配,它就找到了相当于明文的.
最后,如果您对比宋的方案更简单、确定的方法感兴趣,您可以阅读Bellare等人关于确定性、可搜索加密的以下内容:https://eprint.iacr.org/2006/186.pdf
最后,宋的方案实际上是建立在确定性加密的基础上的,只是提高了它的技术水平。
https://crypto.stackexchange.com/questions/66362
复制相似问题