减少 SHA-256 中根数的缺点?

问题描述 投票:0回答:1

我目前在 GO 中实现 SHA-256,我知道按照标准,我们必须使用前 64 个素数的根,但我很好奇减少这个数字会如何影响算法的保护。

现在我已经实现了 24 个素数的变体。如果按照所有标准,暴力破解的计算次数等于2的256次方,除了减少计算次数之外,还会有什么缺点吗?

var k = []uint32{
    0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,
    0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,
    0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,
}
sha
1个回答
1
投票

让我们逐点分析,从最明显到不明显:

  • 减少 NOR(根数)会导致复杂性损失,使其更可预测
  • 碰撞/原像攻击:
  • 比 NOR 少,发生碰撞和失去确定性的机会更高
    hash function
  • 不符合标准;可能与常规
    SHA-256
    算法不兼容
  • 尚未证明,但密码
    hash functions
    仍然可以通过某种方式以相反的顺序解密。因此减少 NOR 可能会导致它被解密
  • 输入的微小变化会导致“完全不同”的输出损失

Solution:

  • 只需增加 NOR 或迭代次数即可达到所需的复杂度
© www.soinside.com 2019 - 2024. All rights reserved.