sha-1是否会为小于160位的输入消息产生冲突?

Mal*_*ith 14 java hash sha1 rsa cryptographic-hash-function

我有一个128位ID,我想要执行单向散列,但我不想为输入消息获得相同的摘要.有没有人知道sha-1或替代方案是否保证不会产生小于其输出摘要大小的消息集的冲突?这至少在理论上是可能的......

我还考虑过使用RSA,丢弃私钥给我一个单向加密,但是我需要将结果存储在一个32 char数据库字段中,而我可用的加密方案不会产生足够小的东西.

任何关于产生原始值的确定性,不可逆和无碰撞变换的方法的建议都是受欢迎的.

Tom*_*ine 7

对于给定的输入,加密散列给出了随机数的非常好的近似值.那么在你得到相同的160位之前,你需要在一个房间里有多少随机哈希?关于平方根(免责声明:我不是统计学家).所以你应该看到大约80位的冲突.

我想实用性意味着你应该知道宇宙射线何时比碰撞更大的问题.

  • @hoang这是2 ^ 63的攻击复杂性,而不是消息长度.所以你应该能够通过计算2 ^ 63个哈希来找到碰撞.但如果我们谈论"随机"选择的消息,它仍然是2 ^ 80.当然,如果您选择了特定的消息(并且有足够的机制来查找它们),您只需要两个用于碰撞! (4认同)

Jam*_*olk 5

如果要计算128位到128位的秘密置换,一个简单的解决方案是使用带有固定但密钥的AES等128位块密码.当然,你必须能够永远保持密钥的秘密,否则你什么都没有.