zoukankan      html  css  js  c++  java
  • HASH碰撞

    如果两个输入串的hash函数的值一样,则称这两个串是一个碰撞(Collision)。既然是把任意长度的字符串变成固定长度的字符串,所以必有一个输出串对应无穷多个输入串,碰撞是必然存在的。

    一个优良的hash函数 f 应当满足以下三个条件:

    (1)对于任意y,寻找x,使得f(x)=y,在计算上是不可行的。

    (2)给定x1∈A,找x2∈B,,使得f(x1)=f(x2),在计算上是不可能的,这也就是弱无碰撞性。

    (3)寻找x1,x2,使得f(x1)=f(x2),在计算上也是不可行的,这也就是强无碰撞性。

    这样就称为安全保密的Hash函数,除了枚举外不可能有别的更快的方法。如第3条,根据生日定理,要想找到这样的x1,x2,理论上需要大约2^(n/2)的枚举次数。

    因为前两条都能被破坏的hash函数太弱而被抛弃,几乎所有的hash函数的破解,都是指的破坏上面的第3条性质,即找到一个碰撞。在密码学上还有一个概念是理论破解,指的是提出一个算法,使得可以用低于理论值得枚举次数找到碰撞。

  • 相关阅读:
    将文件移出版本控制 (Revision Control)
    luogu 1966 火柴排队
    bzoj 1069 最大土地面积
    bzoj 1060 时态同步
    luogu 1901 发射站
    bzoj 1007 水平可见直线
    bzoj 2654 tree
    luogu 2024 食物链
    10.21 模拟赛
    tyvj 1013 找啊找啊找GF
  • 原文地址:https://www.cnblogs.com/sohobloo/p/2695138.html
Copyright © 2011-2022 走看看