4

在我的一项学校工作中,我需要使用确定性算法 (http://en.wikipedia.org/wiki/Deterministic_encryption) 来加密几个字段。

在这种特定情况下,我必须用布尔值加密一个表。这很好,除了使用确定性算法这样做几乎没有用处。

为什么呢?(你可能会问)

碰巧当我加密(例如)值“true”时,我总是得到“AB1”的密文,而当我加密值 false 时,我总是得到“SQ2”的密文。因此,我没有用值“真”和“假”填充表,而是用值“AB1”和“SQ2”填充表。任何攻击者都会立即明白我的表存储布尔值,他很快就会发现 AB1=true 和 SQ2=false。

这是我想在作业中防止的。为了避免这个问题,我尝试使用具有某些属性的数字。例如,“真”的值被一个素数替换,而“假”的值被一个非素数替换。因此,我的表将充满许多不同的素数和非素数。

如果不是为了一件小事,这将是一个可以接受的解决方案:我们可以计算的素数是“有限的”(计算大素数需要很长时间)。在 10000000 个数字的区间中,只有 664579 是素数(只有 6.64579% )。

所以我考虑使用奇数而不是质数,但我不确定奇数的质量。我认为攻击者将能够从密码中检索“奇怪”的属性,从而进行攻击。

我对奇数的假设正确吗?还有其他解决方案吗?你们有什么想法吗?

我真的很感激任何帮助或想法,提前佩德罗。

4

4 回答 4

3

根据论文,CryptDB 的工作原理是根据执行的查询调整加密级别。

当不执行查询时,所有值都使用所谓的Random加密存储。这基本上是 CBC 模式下的 AES,带有随机 IV。由于所有字段的 IV 都不同,因此所有字段将具有不同的加密。

当他们需要对列(对于 JOIN、GROUP BY 等)执行相等检查时,他们会将加密降级为Deterministic加密。这种加密级别的主要要求是给定的明文总是被加密为相同的密文。所以对于这个级别,一个布尔列将只有两个可能的密文值。是的,这会将信息泄露给可以观察表格的攻击者,但没有办法绕过它。存储素数/非素数将不起作用:数据库将无法执行所需的操作。

对不起,但你需要为你的作业找到另一个想法。

于 2013-01-27T19:31:51.623 回答
1

您可以获取一组布尔值并将它们视为二进制数

于 2013-01-26T19:41:40.993 回答
1

这里最大的误解是您不会单独加密每个值。您应该做的是将所有值打包到某种数据结构中(例如,数组bool),然后将数据结构作为一个整体进行加密(使用 CBC 模式,如果您还没有这样做的话)。

就加密而言,选择的数据结构(即如何选择将表打包成单个二进制实体)并不重要。

于 2013-01-26T19:41:54.987 回答
0

好吧,我不知道这是否会对你们有所帮助,但我的最终结论是结合了我的一些建议。

我通过进行以下分配解决了这个问题:

true = 随机整数 PRIME 数

false = 随机整数(不是素数)

现在显而易见的问题来了:

问:如果我选择随机数,如何保证不重复而不保存每个生成的数字?

A:我把随机数转换成字节,和同一张表的ID混在一起。这样,如果我生成一个随机重复的数字并不重要,因为当我将它与 ID(这是唯一的)混合时,我搞砸了输出。

然而,计算素数可能非常繁重,因此我将在此处发布我的报告的一小部分,其中有其他建议:

Although we selected the property of being prime as an equivalent to the boolean of true, we could have also used other properties, such as:
  <li>
    <ul>
        Representing a true boolean by a random odd number and 
        a false boolean by a random even value
    </ul>
    <ul>
        Representing a true boolean by a sequence of numbers 
        that belongs to PI and a false boolean by a random 
        number sequence that doesn't belong to PI
    </ul>
  </li>

这对我来说是一个非常有趣和意想不到的挑战。我从来没有想过,这么简单的事情需要这么聪明。

我希望我的解决方案对大家有所帮助,如果您喜欢密码学,请看一下该项目:P

于 2013-01-28T18:40:16.683 回答