首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对称密码密钥大小与轮数之比。更长的密钥=更安全的密码?

对称密码密钥大小与轮数之比。更长的密钥=更安全的密码?
EN

Cryptography用户
提问于 2018-04-16 12:42:41
回答 3查看 1.2K关注 0票数 12

我会有与在这篇文章下讨论相关的问题。Bruce回答了有关键大小与数目或轮数的问题:

为什么你需要更长钥匙的子弹?你是怎么想出这些看似武断的数字来进行更多回合的?当块密码被破坏时,它们总是由于扩散失败而被破坏。更多的子弹会给你更多的扩散。密钥是密钥的两倍长,因此需要更多的回合才能得到密钥的完全扩散。至于你的第二个问题,选择一个密码的回合数是经验和猜测的结合。

例如,Threefish 512有72发,Threefish 1024有80发。

我想知道你对这些问题的看法:

  • 如果Threefish 1024只会有72发子弹(如Threefish 512),它会不会在某种程度上比Threefish 512更不安全?
  • 如果回合数是“猜测”,那么Threefish 1024 (完整的80轮)是否仍然不如Threefish 512 (72发)安全,因为“错误的猜测”(8次额外的回合不足以提供更多的扩散以保持较长的密钥)?
EN

回答 3

Cryptography用户

回答已采纳

发布于 2018-04-16 14:36:58

如果有足够的明文/密文可用(明文比密钥大小大得多),任何密码都可以通过尝试所有密钥来攻击;这是野蛮的力量。因此,对于任何密码,太短密钥的⟹不安全密码。

一个常见的对称密码设计目标是,最好的攻击是在一个小因素范围内,受到密钥大小限制的蛮力。因此,为了满足对称密码的设计目标,长密钥⟺更安全。

一个常见的分组密码设计目标是尽可能快地满足其安全级别(与前一个目标匹配其密钥大小)。增加回合数可以使密码更加安全,但确实会使密码速度变慢。因此,为了满足其安全性和速度设计目标的密码设计,更安全的密码⟺更多轮。

没有确定的方法来找到足够数量的子弹。一种典型的方法是检查已知的攻击;试图保守地估计在某些安全级别上可以中断多少次,并推断到所需的安全级别(可能要高得多);然后取所有攻击中找到的最大数量,然后将其中一些作为设计裕度。

我通过了问题的三个方面。

票数 13
EN

Cryptography用户

发布于 2018-04-16 16:31:04

我们可以做个有根据的猜测。我们通常会发现,对于某些扩散特性,需要最少的轮数,而不是增加。例如,我们表明,单比特翻转将翻转50%的输出/状态比特后k轮,然后需要一些显着更大的轮数。

如果你看一下AES和SHA3的比赛,你会发现你花了大量的精力攻击减少了的圆形版本。在某些情况下,您会看到申请者增加了回合数,因为他们不喜欢攻击次数好于推荐数量之间的小差距。

在许多方面,所有对称密码设计都是有根据的猜测。如果过去擅长破解密码的聪明人不能破解你的密码,甚至不能在稍弱的密码版本中找到弱点,那么我们就认为它是安全的。不幸的是,这种缺乏反例的证明是我们所能做的最好的。

票数 4
EN

Cryptography用户

发布于 2018-04-16 17:29:07

这主要是一个对1024位密码要求更高安全性的问题。也就是说,大键的变体有更多的圆圈,所以它有1024位的安全性,而不是“只”512位。

然而,至少在理论上,具有相同次数但较大键的变体可能更弱。额外的密钥位为相关的密钥攻击提供了更多的自由。在许多用例中,这并不是一个非常现实的攻击模型,但是对于使用密码作为哈希函数来说就很重要了。

那么,72轮1024位的三重效应会比512位更弱吗?可能不是,因为对钥匙的野蛮攻击是我们所知道的对付后者的最好方法。然而,它的安全保证金会更低。

票数 1
EN
页面原文内容由Cryptography提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://crypto.stackexchange.com/questions/58385

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档