【问题标题】:Why is it recommended to make crypto algorithms public?为什么建议公开加密算法?
【发布时间】:2013-03-31 01:37:38
【问题描述】:

密码学书籍说你应该公开你的加密/解密算法来测试它是否可以抵御攻击和密码分析,并且未公开的算法不被认为是强大的,因为它没有针对攻击进行测试,但他们也说密码算法主要依靠密钥长度和密钥随机分布来保护它免受暴力攻击和密钥的数学分析。

我的问题是为什么我们需要公开我们的算法,而它主要取决于密钥长度,如果我的密钥足够长并且真正随机化,那么了解算法有什么好处?

【问题讨论】:

  • 一个完美的算法和你提到的元素一样好(挥手)。 有缺陷的算法可以用不需要探索整个键空间的快捷方式来破解。公开你的算法将有助于确定它是否有缺陷。
  • 有了密码学——可能重要的信息被锁起来——没有“通过默默无闻的安全”这样的东西。该算法可能在通过简单的“密钥长度”挥手之后的方式存在微小缺陷。例如,采用简单的 XOR 算法 - 采用较大的密钥长度。输入一系列数据并观察输出。裂缝。请记住,甚至一些行业安全协议也已被证明被破坏 - 还记得 WEP 吗?
  • 但关键是,据我所知,经过审查的算法现在向所有人公开,因此每个黑客都知道该算法以及如何反转它,这意味着与被黑客入侵时的隐藏算法没有区别。如果我误解了什么,请告诉我。 @pst
  • @MohammadDorgham Thilo 已经解释了它(两次)以回复他自己的答案。
  • 如果您查看并理解了一个有缺陷的算法,您可能会比不查看它更容易扭转它。了解完美的算法根本不会帮助您逆转它。有点(好)加密的美丽。

标签: security cryptography encryption cryptanalysis


【解决方案1】:

了解该算法的好处是您不必相信制造商它真的很安全。

如果我知道所使用的算法已经过大规模测试和同行评审,并且普遍认为它是安全的,那么这会让我对系统更有信心。

相反的方法被称为“安全到默默无闻”,完全取决于没有人知道事情是如何运作的。如果他们这样做了(就像黑客习惯的那样),你就有问题了。

理论上,无论您是否与其他人分享新安全算法的详细信息,都没有区别。但在实践中,这是确定它是否真的安全的唯一方法,也是让其他人信任你的算法的唯一方法。

关键是安全算法只能通过暴力破解(使用长密钥使其不可行)受到攻击。但并非所有算法都是安全的。与暴力破解密钥相比,它们可以用更少的努力来破解。如果您的算法没有经过审核,我们将不会相信您它是安全的(您也不应该相信,聪明的头脑以前在这些事情上都失败过)。

【讨论】:

  • 不!关键是 secure 算法只能通过蛮力攻击(可以使用长密钥使其不可行)。但并非所有算法都是安全的。与暴力破解密钥相比,它们可以用更少的努力来破解。如果您的算法没有经过审核,我们将不会相信您它是安全的(您也不应该相信,聪明的头脑以前在这些事情上都失败过)。
  • 你知道AES的所有细节。现在继续打破它。如果算法是安全,那么即使你知道所有细节,你也不能“逆转”它。只有知道钥匙才能帮助你。这就是“安全算法”的定义。
  • 理论上,是否与其他人分享安全算法的细节并没有什么区别。但在实践中,这是确定它是否真的安全的唯一方法,也是让其他人信任你的算法的唯一方法。
  • @Mohammad,如果 AES 设计良好,则需要强制反转(当然,假设您没有密钥)。使用大键,这将需要一段时间。宇宙的多重时代。
  • @Thilo: MD5 实际上有a serious basic algorithmic flaw
猜你喜欢
  • 2018-01-07
  • 2011-10-28
  • 1970-01-01
  • 2017-10-02
  • 1970-01-01
  • 2011-05-17
  • 2016-07-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多