gpt4 book ai didi

cryptography - 使用确定性算法加密 boolean 值的最安全方法?

转载 作者:行者123 更新时间:2023-12-04 05:08:53 24 4
gpt4 key购买 nike

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

在这种特定情况下,我必须用 boolean 值对表进行加密。这很好,只是使用确定性算法来这样做几乎没有用。

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

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

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

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

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

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

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

最佳答案

根据论文,CryptDB 通过根据执行的查询调整加密级别来工作。

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

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

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

关于cryptography - 使用确定性算法加密 boolean 值的最安全方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14540760/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com