用输入密码打破Rfc2898DeriveBytes键但没有盐

时间:2014-05-26 19:28:30

标签: .net aes rijndael rijndaelmanaged rfc2898

我使用C#RijndaelManaged类进行AES加密。密钥和IV是使用Rfc2898DeriveBytes类从输入密码和salt生成的。我的问题是,如果有人获得输入密码而不是盐,那么打破加密有多难?

1 个答案:

答案 0 :(得分:0)

检索密钥和IV几乎是不可能的。实际上,有时存储在源代码中的静态盐秘密盐另外用于公共随机盐。这样,攻击者除了使用salt和密码哈希值之外,还需要获取源代码或运行时代码。

这种方案 需要足够大的(秘密)盐,比如128字节。最好使用串联来创建公共和秘密组合盐。

当然,总是可以搞乱加密,例如,易受填充oracle攻击,忘记加密等认证标签(HMAC)等。