首先,这是对我上一个问题的不同看法:小整数到32位整数的Pailler加密
我必须使用Paillier密码系统编码小整数(范围为0-50)。在我的数据集中将多次(100,000)遇到这些值。
我用不同的r编码这51个数字,因此我得到了51个不同的密文。这种方法的优点是每次任何密文被乘以,例如,MOD(c(1)*c(2),n2)我总是得到相同的乘积。
攻击者知道范围很小(<100),但是查看51种不同的密文值,他现在可以猜测范围是0-50 (0必然是最小的值)。这能让他从密文中得到纯文本吗?
每次在我的数据集中遇到其中一个数字时,我都使用不同的r。因此,我现在有100,000*51密文。现在攻击者不可能真正从密文中获取纯文本。但问题是,每次任何密文被乘以MOD(c(1)*c(2),n2)时,我并不总是得到相同的乘积纯文本1和2被用不同的密文多次编码.,尽管这些不同的产品总是会解密成相同的明文之和。
显然,第2版更安全。但我宁愿使用版本1,因为它的简单性和更容易的处理。这些值的有限范围是否使破解Paillier密码系统更容易?
让我们放一个中间版本。对于0,50中的每个值,我最多使用10个(或更多)不同的随机值r/值。这意味着,对于纯文本0,我将得到多达10个密文。总体上,51条明文=> 510密文。这应该会在某种程度上限制版本1的问题,而不会完全崩溃。
发布于 2015-09-29 17:51:06
对于版本1,您实际上使用的是一个附加的同态替换密码。我知道数据库是相当大的,但是不同值的数量很少。这(通常)意味着可以使用统计分析来获取大量信息,特别是如果攻击者有一些辅助信息(通常是这种情况)。这是个非常糟糕的主意。
第3版类似于第1版,但做统计工作有点困难。问题是数据库太大了,所以这也很容易。当然,我很难判断在不了解应用程序和不知道哪些辅助信息可用的情况下进行统计是多么容易。
尽管如此,您的实际问题是它是否帮助攻击者实际解密(例如,没有任何辅助信息)。答案是否定的。为了了解为什么会出现这种情况,请考虑一种游戏,攻击者可以接收0到50的加密,或者接收0的51加密。很容易看出,对手可以猜出概率只有大于1/2的情况(例如,这是多重加密实验)。现在,这个游戏中的对手可以模拟数据库,假设它有0到50的加密,并且可以看到数据库的对手可以学到什么。如果它能学到一些东西,那么加密对手必须接收到0到50的加密(因为零加密只显示什么)。
无论如何,请不要将上述解释解释为版本1的“批准”。我认为这是一个非常糟糕的想法,并强烈提倡版本2。
https://crypto.stackexchange.com/questions/29478
复制相似问题