如果y已知,哈希(x + y)有多强?

时间:2013-08-03 00:31:44

标签: security hash

如果您有两个二进制blob,xy。你把它们一起哈希,让我们说使用SHA-512。入侵者知道y,它会更容易扭转哈希值吗?

y成为关注点之前,是否有x与{{1}}相比较的指南?它有意义吗?

2 个答案:

答案 0 :(得分:3)

如果您使用加密强哈希(如SHA-512,或新的SHA3,但不是像MD4那样的破坏哈希),那么打破hash(x || y)的难度(其中||表示在知道hash(x)时,串联)至少与打破y一样困难。在许多情况下,添加已知y非常有用:

  • 使用随机y作为盐,因此散列相同的两个x会产生不同的结果
  • 添加一个长填充字符串以减慢哈希计算以阻止暴力(这也可以通过多次迭代哈希来实现)
  • 作为创建一次性共享密钥的随机数

这些方案的安全性取决于上述打破hash(x || y)的难度。

答案 1 :(得分:1)

本身并不强于hash(x)。强度取决于你使用哪种哈希算法,即如果入侵者知道你如何组合这两个值,并且他知道y,那么强度并不比你刚刚离开y更好。