我会有与在这篇文章下讨论相关的问题。Bruce回答了有关键大小与数目或轮数的问题:
为什么你需要更长钥匙的子弹?你是怎么想出这些看似武断的数字来进行更多回合的?当块密码被破坏时,它们总是由于扩散失败而被破坏。更多的子弹会给你更多的扩散。密钥是密钥的两倍长,因此需要更多的回合才能得到密钥的完全扩散。至于你的第二个问题,选择一个密码的回合数是经验和猜测的结合。
例如,Threefish 512有72发,Threefish 1024有80发。
我想知道你对这些问题的看法:
发布于 2018-04-16 14:36:58
如果有足够的明文/密文可用(明文比密钥大小大得多),任何密码都可以通过尝试所有密钥来攻击;这是野蛮的力量。因此,对于任何密码,太短密钥的⟹不安全密码。
一个常见的对称密码设计目标是,最好的攻击是在一个小因素范围内,受到密钥大小限制的蛮力。因此,为了满足对称密码的设计目标,长密钥⟺更安全。
一个常见的分组密码设计目标是尽可能快地满足其安全级别(与前一个目标匹配其密钥大小)。增加回合数可以使密码更加安全,但确实会使密码速度变慢。因此,为了满足其安全性和速度设计目标的密码设计,更安全的密码⟺更多轮。
没有确定的方法来找到足够数量的子弹。一种典型的方法是检查已知的攻击;试图保守地估计在某些安全级别上可以中断多少次,并推断到所需的安全级别(可能要高得多);然后取所有攻击中找到的最大数量,然后将其中一些作为设计裕度。
我通过了问题的三个方面。
发布于 2018-04-16 16:31:04
我们可以做个有根据的猜测。我们通常会发现,对于某些扩散特性,需要最少的轮数,而不是增加。例如,我们表明,单比特翻转将翻转50%的输出/状态比特后k轮,然后需要一些显着更大的轮数。
如果你看一下AES和SHA3的比赛,你会发现你花了大量的精力攻击减少了的圆形版本。在某些情况下,您会看到申请者增加了回合数,因为他们不喜欢攻击次数好于推荐数量之间的小差距。
在许多方面,所有对称密码设计都是有根据的猜测。如果过去擅长破解密码的聪明人不能破解你的密码,甚至不能在稍弱的密码版本中找到弱点,那么我们就认为它是安全的。不幸的是,这种缺乏反例的证明是我们所能做的最好的。
发布于 2018-04-16 17:29:07
这主要是一个对1024位密码要求更高安全性的问题。也就是说,大键的变体有更多的圆圈,所以它有1024位的安全性,而不是“只”512位。
然而,至少在理论上,具有相同次数但较大键的变体可能更弱。额外的密钥位为相关的密钥攻击提供了更多的自由。在许多用例中,这并不是一个非常现实的攻击模型,但是对于使用密码作为哈希函数来说就很重要了。
那么,72轮1024位的三重效应会比512位更弱吗?可能不是,因为对钥匙的野蛮攻击是我们所知道的对付后者的最好方法。然而,它的安全保证金会更低。
https://crypto.stackexchange.com/questions/58385
复制相似问题