【问题标题】:Adler32 and MD4 for checksumsAdler32 和 MD4 用于校验和
【发布时间】:2011-12-03 23:25:39
【问题描述】:

哪种算法可以提供更安全的“快速校验和”?仅从 MD4Adler32 中选择。

【问题讨论】:

  • 为什么我只能从这些中选择?我永远不会使用它们。这是一道测试题吗?
  • @Chris:你为什么不使用那些散列函数?
  • 有可能发生碰撞。
  • 这取决于您可以预期的错误类型,因为每个校验和算法都有不同类别的错误,它无法检测到。

标签: hash checksum


【解决方案1】:

我会将它们都用于校验和。由于两者都“相对较快”,因此您不能比同时使用这两个 - 古老的 - 选项更安全。

但是,如果您正在寻找最安全的选择——我会说 MD4。

引用:

在最初的 SWID 要求中,可接受的碰撞率是 确定为千万分之一。这里的唯一性程度是 重要,但它不必像 MD4 声称的 2^64 那样强大 可能发生碰撞之前的操作。

来源:MD4-SWID.pdf

对于短消息,Adler32 有一个需要注意的弱点:

Jonathan Stone 在 2001 年发现 Adler-32 有一个弱点 非常短的消息。他写道:“简而言之,问题在于,对于非常 短数据包,Adler32 保证对 可用位。不要相信我的话,问马克阿德勒。 :-)“ 这 问题是 sum A 不会为短消息换行。最大值 128 字节消息的 A 值为 32640,低于该值 65521 由模运算使用。扩展解释可以是 在 RFC 3309 中找到,它要求使用 CRC32 而不是 Adler-32 SCTP,流控制传输协议。

和:

在几组 100 万个随机数上运行 Adler、CRC32 和两者 生成 16 到 128 个字符的类似 url 的字符串 长度,阿德勒在约 1% 的情况下产生了重复; CRC32产生 ~0.2%;在几次运行中,两者的组合仅发现 2 重复(大约 0.002%,但没有足够的样本来判断 代表)。

来源:Hashing urls with Adler32

考虑到冲突的可能性很高 [尤其是] 使用 Alder32 的短消息,MD4 有我的投票权。

【讨论】:

    猜你喜欢
    • 2017-03-09
    • 2020-07-02
    • 2010-11-21
    • 2014-03-02
    • 2013-08-29
    • 1970-01-01
    • 2012-03-30
    • 1970-01-01
    • 2017-04-20
    相关资源
    最近更新 更多