【问题标题】:PRNG for hash-based authenticationPRNG 用于基于哈希的身份验证
【发布时间】:2016-03-03 14:32:54
【问题描述】:

我正在尝试使用http://www.springer.com/us/book/9783540887010 或https://www.imperialviolet.org/2013/07/18/hashsig.html 中描述的“树链”结构实现基于哈希的身份验证

为此,我需要一个(确定性的)PRNG 能够从种子/密钥和私钥列表的索引中生成大量私钥。我想简单地 Hash(secretkey + index) 来生成密钥,但在阅读了一些 NIST 对 PRNG 的建议后,我想知道是否有更好/更安全的方法?假设 sha-3 作为散列函数,这种 Hash(secretkey + index) 方法是否存在严重问题?

谢谢

【问题讨论】:

  • CTR 模式下的任何分组密码都可以完成这项工作。

标签: random hash keccak


【解决方案1】:

一个潜在的问题是hash("100" + "10") == hash("1001" + "0")。可能更好的是单独散列参数之一:

hash(key + hash(index))

【讨论】:

  • 我可能应该在问题中提到这一点,但假定 secretkey 始终是一个具有全熵和 '+' 符号整数加法的 n 位数字,而不是字符串连接......跨度>
  • ...with 2^n >= max(index)
  • @Kris 一些散列算法在处理连接数据时很弱(请参阅security.stackexchange.com/questions/79577/…)。我不知道它如何与整数加法一起工作 - 它是否也不安全。
猜你喜欢
  • 2016-04-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-12
  • 2020-10-08
  • 2021-01-25
  • 2021-05-30
相关资源
最近更新 更多