我正在使用Java中的对称算法,使用javax.crypo和B儿GY城堡库,我需要计算不同对称算法(如DES、3 DES、Blowfish和AES )的雪崩效应。
我读过关于雪崩效应的文章,意思是当输入文本稍微改变(例如,翻转一位)时,输出会发生显著的变化。为了计算这一点,我做了一些测试,方法是创建一个新文本,更改原始文本中的第一个单词,然后对这两个文本进行加密。在此之后,我比较了原始文本和新文本之间的变化。
对于这个测试,我在CBC操作模式和PKCS5PADDING中使用了这四种算法。正如我所知道的,加密文本之间的变化必须很高,尽管更改的单词仅在文本的第一个块中,因为CBC模式下的输入是由前一个块生成的加密文本,所以所有块都用于生成最终文本。因此,我认为这种变化一定是相当大的。
我读到50%的变化是一个令人满意的值,因为它意味着输入中的一个字或一个位的变化会以50%的概率改变输出,而且它是很强的。问题是,在我的测试中,这四种算法的测试结果大约是50%,我认为这是不正确的,因为差别会更大,我认为,作为加密替代的S盒工作的AES必须有更多的变化。我一直在为这些算法搜索雪崩效应结果值的估计值,以与我的结果进行对比,但我还没有找到估计值。所以,我不知道我是否正确地计算了雪崩效应。
我计算了产生的密文中的雪崩效应,而不是在加密过程中的每一轮。
我在寻找信息,我发现很少有关于这个主题的文章,它们显示:密码使用,原始密文,以及上面的加密文本已经做了一个改变。比较是通过两个加密文本之间按位执行的,所以我理解,而不是在加密过程中的密文中。不是这样的吗?其中一些文章是:链接和链接
对称算法中的雪崩效应计算正确吗?
算法中是否有关于这一效应的估计值?
发布于 2016-10-01 21:29:55
你似乎觉得AES应该比DES得分更好,因为AES比DES强。
问题是,您的测试非常粗糙;任何像样的分组密码都将通过测试。
如果我用一个类比来比喻,就好像你设计了一个汽车试验,唯一的检验是‘有发动机吗?’你在余戈上运行你的测试,它通过了,你在高端保时捷上运行你的测试,它通过了;你问,保时捷是一辆比Yugo好得多的汽车;为什么它的得分没有更好呢?
至于AES和DES的区别,重要的是:
您的测试不会发现任何这些差异,因此(就您的测试而言),DES和AES看起来一样好。
发布于 2016-10-01 20:46:06
如果超过50%的比特平均翻转,这将是一个弱点。为了说明这一点,比如75%的输出位翻转了。
然后,只需分别更改两个区域输入位,您就会得到50%的输出位的相同子集正在翻转,这是高度非随机行为。
https://crypto.stackexchange.com/questions/40371
复制相似问题