我试图基于主键导出一个对称密钥,并将其与一个简单的字符串结合起来。根据我有限的知识,像PBKDF2这样的东西似乎会以一种明确的方式为我做这件事:
DK = PBKDF2(PRF, Password, Salt, c, 256)但是,我是在一个非常受限的嵌入式环境中工作的,所以“c”的高编号并不是一种选择。现在我的问题是:
如果我对'c‘使用一个低值,但是作为最后一步我做了某种表查找,那么我会提高安全性吗?
DK_final = table[F(DK,i) MOD size]除了一个模糊的参考这里之外,我找不到关于这种方法的任何已发表的材料。然而,没有给出密码分析的迹象。
对这样一个方案的任何帮助都将受到感谢,如果只是警告它:一般的经验法则似乎永远不会发明你自己的聪明的想法,它涉及到密码学。
发布于 2014-08-15 12:54:29
最理想的是,你的情况是1,你不需要做任何特别的事情。也是一个安全的替代方案,但需要存储更多的密钥。如果您没有其他选项,则只应该使用3。在这种情况下,您应该使用尽可能高的c。
现在实际的问题是,这样的桌子安全吗?
如果您有一个只用于一个键的足够大的表,它不会损害派生键的质量。但是,如果不是这样,则可能是这样,因为键将共享表定义的非均匀概率分布。
当然,拥有该表的攻击者可以像没有使用表时一样容易地导出密钥,因此,它并不比使用我在上文3中建议的随机秘密盐更好。所以我建议不要用它。
https://crypto.stackexchange.com/questions/18641
复制相似问题