首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >非线性表查找的密码分析

非线性表查找的密码分析
EN

Cryptography用户
提问于 2014-08-15 10:55:53
回答 1查看 165关注 0票数 2

我试图基于主键导出一个对称密钥,并将其与一个简单的字符串结合起来。根据我有限的知识,像PBKDF2这样的东西似乎会以一种明确的方式为我做这件事:

代码语言:javascript
复制
DK = PBKDF2(PRF, Password, Salt, c, 256)
  • 密码=主密钥
  • 盐=简单串
  • C=迭代次数
  • DK是256位派生密钥。

但是,我是在一个非常受限的嵌入式环境中工作的,所以“c”的高编号并不是一种选择。现在我的问题是:

如果我对'c‘使用一个低值,但是作为最后一步我做了某种表查找,那么我会提高安全性吗?

代码语言:javascript
复制
DK_final = table[F(DK,i) MOD size]
  • 假设DK是DF_final的两倍大,因此分别是256位和128位。
  • 表=随机选择的字节的大表(超过4000个元素)
  • F( DK,i) =一个从字符串DK取I‘’th 2字节对的简单函数
  • size =表中的元素数
  • DK_final =最终派生密钥,本例中为128位

除了一个模糊的参考这里之外,我找不到关于这种方法的任何已发表的材料。然而,没有给出密码分析的迹象。

对这样一个方案的任何帮助都将受到感谢,如果只是警告它:一般的经验法则似乎永远不会发明你自己的聪明的想法,它涉及到密码学。

EN

回答 1

Cryptography用户

回答已采纳

发布于 2014-08-15 12:54:29

  1. 如果主键是强的(例如,随机256位键),c=1就很好,或者您可以使用香港发展基金。只有当您从密码或其他低熵字符串派生密钥时,才需要大量的迭代。
  2. 如果您可以安全地存储一个4000个元素表,您可以只使用随机键而不是派生密钥。
  3. 如果您需要派生密钥依赖于低熵主密钥,则可以使用随机生成的盐来保证安全性。在这种情况下,泄漏的盐将允许暴力或字典攻击的主键,但不知道盐,攻击者不能攻击它。

最理想的是,你的情况是1,你不需要做任何特别的事情。也是一个安全的替代方案,但需要存储更多的密钥。如果您没有其他选项,则只应该使用3。在这种情况下,您应该使用尽可能高的c

现在实际的问题是,这样的桌子安全吗?

如果您有一个只用于一个键的足够大的表,它不会损害派生键的质量。但是,如果不是这样,则可能是这样,因为键将共享表定义的非均匀概率分布。

当然,拥有该表的攻击者可以像没有使用表时一样容易地导出密钥,因此,它并不比使用我在上文3中建议的随机秘密盐更好。所以我建议不要用它。

票数 1
EN
页面原文内容由Cryptography提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://crypto.stackexchange.com/questions/18641

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档