【发布时间】:2011-03-14 19:24:23
【问题描述】:
我需要使用 256 位密钥加密纯文本消息。
密文可以是任意长度(不等于明文长度)
当我允许密文更长时,是否有一种加密方法可以为我提供额外的安全性?
例如:将 256 位明文编码为 8192 位密文会比将其编码为 256 位密文更安全。
【问题讨论】:
标签: security language-agnostic encryption
我需要使用 256 位密钥加密纯文本消息。
密文可以是任意长度(不等于明文长度)
当我允许密文更长时,是否有一种加密方法可以为我提供额外的安全性?
例如:将 256 位明文编码为 8192 位密文会比将其编码为 256 位密文更安全。
【问题讨论】:
标签: security language-agnostic encryption
从理论上讲,没有办法通过将明文加密为更长的密文来获得任何额外的优势。如果我天真地尝试通过尝试所有可能的解密密钥来破坏您的加密,那么密文的长度并不重要,因为我仍在对相同的密钥空间进行暴力搜索。在实践中,这可能会有所帮助,因为它会减慢我尝试反转加密的速度,但使用更长的密文不会获得额外的安全性。
这样做的原因是破解密码(不攻击密码本身)的困难在于尝试探索整个密钥空间以进行解密。如果您的密文较长但仍可使用 256 位密钥解密,那么我必须搜索的空间不会比我开始时的空间大。
现在,如果您通过某种方式引入更大的密钥空间(例如,通过选择四个随机密钥并用每个密钥加密消息的不同部分)使密文更长,那么您确实会获得额外的安全性,因为空间我在尝试解密消息时必须搜索的密钥现在大大增加了。
【讨论】:
添加随机填充可能是个好主意,它可以确保相同的加密消息每次都会产生不同的密文(这样您就无法通过查看密文来判断消息是否相同)。
但是 8192 位似乎有点过头了。总共 512 个额外的 256 个就足够了。
添加任何非随机内容根本不会提高安全性。
【讨论】:
不,至少没有任何意义。 256 位足以使用(例如)带有 256 位密钥的 AES。块大小固定为 128 位。 AES 是历史上研究最仔细的密码之一,但仍然没有任何方法可以对它进行实际攻击。您通常希望在消息中包含一个 IV,但它实际上并不是加密消息本身的一部分(而且它是一个额外的块大小,因此如果您使用 AES,它将是额外的 128 位)。
【讨论】: