我需要考虑哪些因素来确定我是否应该“信任加密的默认值”

时间:2010-08-24 22:51:37

标签: language-agnostic cryptography

背景

关于密码学,一般来说,以下建议非常普遍,甚至可能与平台和语言无关。

密码学是一个非常复杂的主题,开发人员应该留给安全专家`

我理解并同意本声明背后的原因,因此在应用程序中使用加密时遵循建议。

话虽如此,因为密码学在除密码专用参考资料之外的所有内容都是如此轻率,但我对密码学的工作原理还不了解,以便能够确定提供给我的默认是否适合这种情况我在。有无数种不同语言的数千个加密框架,我拒绝相信这些实现中的每一个都是安全的,因为我不相信每个加密实现都是由加密专家创建的,主要是因为如果要相信流行的观点,那就不是那么多了。

问题:

关于给定的加密算法,我需要了解哪些信息才能确定我自己算法是否是一个合理的选择?

3 个答案:

答案 0 :(得分:1)

  • 您需要知道每种算法变体的当前中断时间估计值。
  • 您需要了解特定图书馆的认证。
  • 您需要知道要加密的数据所需的有效安全级别。例如,美国的健康信息有特殊要求。电力设施也是如此。

您希望通过加密算法评估获得的技术越多,您就越想要专家的服务。 : - /

http://www.cryptopp.com视为所提供信息的示例。例如,它由NIST认证。

答案 1 :(得分:0)

  

我需要了解哪些信息   关于给定的加密算法   能够为自己确定   算法是否合理   选择?

一旦确定了您所需要的内容,您就可以信赖的同行评审解决方案很少。例如:

对称加密:AES(Rijndael),三重DES 非对称加密:Diffie-Hellman,RSA
散列:SHA函数族

这些是久经考验的经过验证的解决方案。除非有人证明,否则可以安全使用。已经有一段时间了,因为加密技术通过默默无闻而脱离了安全性并且“滚动了你自己的”实现。

那里有很多加密骗局,在选择解决方案时要小心。确保它建立在经过验证的技术基础之上,如果听起来太好或者说“坚不可摧”,“革命性”之类的话,你可以99%肯定它是假的。

答案 2 :(得分:0)

有效的方法已被充分记录并广泛使用。我倾向于考虑与加密相关的三种情况:

  1. 如果政府规模的实体想要你的东西,他们就会得到它。
  2. 对于机密的个人或商业用途,社交工程和非加密方式几乎总是比几乎任何可以想象的情况下的代码破解更有效。
  3. 为了隐藏朋友,关系和闯入者的东西,现成的东西就足够了。在这些场景中,你隐藏的东西通常比这些东西本身更糟糕。
  4. 曾经有一段时间,铁路棚车从重型挂锁切换到容易失败但难以锻造的线圈。使锁更牢固,他们只是穿过墙壁。将锁转变为入侵探测器,你已经获得了一些东西。

    签名和身份验证结果是更好地使用加密技术,而不仅仅是加密。