【问题标题】:the best method for encryption data加密数据的最佳方法
【发布时间】:2014-02-07 06:23:36
【问题描述】:

我们有 1 兆字节大小的数据。

什么样的加密方法最安全?

  1. XOR 相同大小密钥(随机 1Mb 密钥)的数据。

  2. 使用对称密钥加密,如 AES 256(使用 256 位大小的密钥)

问题的关键是,如果我们可以为数据使用相同大小的密钥,那么哪种方法最适合加密。

谢谢。

【问题讨论】:

  • (1) 几乎没有资格作为加密。这里没有理由避免 (2)。
  • (1) 是加密的基准,至少就香农的完美保密而言。你真的不能比一次性垫更安全。但是,正如我在下面所说,它在现实生活中并不是很有用。
  • @EJP First 是一种终极加密,实际上是一次性密码。
  • 这个问题似乎是题外话,因为它一般是关于加密的,而不是专门关于编程的。
  • 就个人而言,我认为您不能推荐任何没有特定用例的加密算法。如果您需要一种非常通用且安全的数据加密方法,则可以使用 AES-GCM 模式加密(具有良好的 IV,IV 包含在 GCM 的其他经过身份验证的数据中)。如果您一开始就不知道如何应用 AES 或加密/安全性,那么密钥大小可能不会像您预期的那么重要。

标签: encryption cryptography xor


【解决方案1】:

“最佳”取决于您的要求。对于一次性加密,假设您将密钥安全地存储在某个安全的地方 a) 你不能失去它 b) 其他人无法理解

也许我们应该添加 c)如果它永远丢失了,那不会造成任何你无法忍受的伤害

或至少 d) 你宁愿永远丢失数据也不愿让其他人得到它

在这种情况下,一次性填充(假设它是真正随机的)是确保无法进行任何解密的唯一方法。所以这很安全。

不过,对于大多数实际用途来说,它根本没有用。例如,为了在通信中继续使用,您需要能够安全地传输长度为 1MB 的消息,以便加密每 1MB。你可以做到这一点,你不妨在这个假定的安全通道上传输你的消息。对于实际的安全性,使用已知且迄今为止可靠的密码原语的一些经过测试的开放实现是可行的方法。

【讨论】:

  • 感谢您的快速回复。你启发了我。
  • 那篇文章中有一些有趣的观点,但他的方法在其应用中仍然受到严重限制。例如,只有在您碰巧事先知道您将需要与特定人员进行安全通信并且您不厌其烦地为此做好准备时,它才可用。它不能一概而论,因为它需要与每个通信者进行直接的身体接触。它非常庞大——你必须为每个通讯员保持一个随机性的水库,并跟踪它的水平。太多了,空间太小了。参加 Dan Boneh 的加密课程,你会喜欢的。
猜你喜欢
  • 2011-08-12
  • 2012-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-24
  • 1970-01-01
  • 2014-10-15
  • 2011-05-20
相关资源
最近更新 更多