我正在使用XTEA加密我存储在数据库中的密码。(我需要以后能够解密这些密码,以便登录到另一个系统。)但是现在我注意到了一些事情:如果我用不同的密钥解密密码,我仍然可以在纯文本中看到一些模式。我并不担心对XTEA加密的攻击,我担心的是对使用加密密码的其他系统的攻击。
例如:
Password A = "111222111"
Password B = "222111222"我用一些密钥加密它们,然后用另一个密钥解密它们。输出内容类似于:
A: qqqwwwqqq
B: wwwqqqwww(使用q和w表示可读性,它实际上是两个难以辨认的字符。)正如您所看到的,对于弱密码,这可以显示大量信息,从而使对这些密码的暴力或字典攻击变得更容易:
这里的假设是:
我的问题是:
发布于 2015-09-14 13:22:42
XTEA是一种分组密码。它需要一个分组密码工作方式。与块密码操作模式一起,您可以生成一些安全的内容。为此,您至少需要一个IV,因为否则可能会将相同的密码(针对不同的用户)加密到相同的值。或者,如果将每个字符分别加密,则将相同的字符值加密到相同的密文中。
分组密码本身就是一个PRP,一个伪随机排列。给定一个键,它将始终将一个明文转换为与其关联的密文。如果您在例如块茶中使用XTEA,这将没有什么不同;您将始终得到相同的密文。
你可以做以下事情:
00十六进制)这应该是安全的,只要您选择的操作模式是安全的。您可能希望为此使用经过身份验证的加密(例如GCM),但这并不是真正的要求。
通常最好不要存储密码,但在您的情况下,这似乎是一个要求。您可能需要检查运行时环境中是否存在可用的安全密码错误。如果没有使用XTEA的紧迫参数,则应该使用AES。
https://crypto.stackexchange.com/questions/29154
复制相似问题