为什么建议公开加密算法?

Dor*_*ham 2 security encryption cryptography cryptanalysis

密码学书籍说你应该公开你的加密/解密算法来测试它以防止攻击和密码分析,并且非暴露算法不被认为是强大的,因为它没有针对攻击进行测试,但他们也说加密算法的安全性取决于主要是关键长度和关键随机分布,以保护它免受暴力攻击和数学分析的关键.

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

Thi*_*ilo 5

了解算法的好处是,您不必相信制造商确实是安全的.

如果我知道正在使用的算法已经过大量测试和同行评审,并且普遍的共识是它是安全的,那么这让我对系统更有信心.

相反的方法被称为"默默无闻",完全取决于没有人发现事情是如何运作的.如果他们这样做(正如黑客通常那样),那你就有问题了.

理论上,如果您与其他人共享新安全算法的详细信息,则没有任何区别.但实际上,这是找出它是否真的安全的唯一方法,也是让别人信任你的算法的唯一方法.

关键是安全算法只能通过强制攻击来攻击(使用长键可以使其不可行).但并非所有算法都是安全的.与暴力破解密钥相比,它们可以轻松打破.如果你没有对你的算法进行审查,我们就不会相信它是安全的(你也不应该,聪明的头脑在这些事情上都失败了).

  • 你知道AES的所有细节.现在继续打破它.如果算法是*安全*,那么即使您知道所有细节,也无法"逆转"它.只知道钥匙会对你有所帮助.这就是"安全算法"的定义. (4认同)
  • 没有!重点是*secure*算法只能通过强制攻击来攻击(使用长键可以使其无法实现).但并非所有算法都是安全的.与暴力破解密钥相比,它们可以轻松打破.如果你没有对你的算法进行审查,我们就不会相信它是安全的(你也不应该,聪明的头脑在这些事情上都失败了). (3认同)
  • @Mohammad,如果AES设计得很好,它需要被强制逆转(假设你没有钥匙,当然).使用大键,需要一段时间.多重时代的宇宙同时. (2认同)