我需要使用256位密钥对明文消息进行加密。
密文可以是任意长度(不等于明文长度)
有没有一种加密方法可以在我允许密文更长的时候给我额外的安全性?
例如:将256位明文编码为8192位密文比将其编码为256位密文更安全。
发布于 2011-03-14 15:43:35
从理论上讲,没有办法通过将明文加密为更长的密文来获得任何额外优势。如果我天真地试图通过尝试所有可能的解密密钥来破解您的加密,那么密文的长度并不重要,因为我仍然在同一密钥空间上进行暴力搜索。在实践中,这可能会有所帮助,因为它会减慢我尝试反向加密的速度,但您不会因为拥有较长的密文而获得额外的安全性。
这样做的原因是,破解密码(而不攻击密码本身)的难度在于尝试探索要解密的整个密钥空间。如果您的密文更长,但仍然可以使用256位密钥解密,那么我必须搜索的空间不会比我开始搜索的空间大。
现在,如果您通过某种方式引入更大的密钥空间来使密文更长(例如,通过选取四个随机密钥并使用每个密钥加密消息的不同部分),那么您确实可以获得额外的安全性,因为我在尝试解密消息时必须搜索的密钥空间现在大大增加了。
发布于 2011-03-14 15:40:37
添加随机填充可能是一个好主意,它确保相同的加密消息每次都会产生不同的密文(这样您就无法通过查看密文来判断消息是否相同)。
但8192位似乎有点杀伤力。在总数为512的情况下,多出256个就足够了。
添加任何非随机的东西应该根本不会提高安全性。
发布于 2011-03-14 15:42:45
不,至少不是以任何有意义的方式。256位足以使用(例如)具有256位密钥的AES。块大小固定为128位。AES是历史上最被仔细研究的密码之一,但仍然没有任何东西可以接近对它的实际攻击。您通常希望在消息中包含IV,但它实际上并不是加密消息本身的一部分(而且它的大小是一个额外的块,所以如果使用AES,它将是额外的128位)。
https://stackoverflow.com/questions/5295880
复制相似问题