哈希游戏- 哈希游戏平台- 哈希游戏官方网站
4.抗碰撞性。即随机找到两个消息 M 和 M,使 H(m)=H(m)在计算上 不可行。 64 位的 Hash 函数在生日攻击面前显得太小。大多数的 Hash 函数产 生 128 位的散列值。这迫使试图进行生日攻击的攻击者必须对 264 个随机文 件进行散列运算才能找到散列值相同的两个文件,因此不足以维持散列函数 的安全性。NIST 则在其安全散列标准 (SHS)中用的是 160 位的散列值。这使 生日攻击更难进行,需要进行 280 次随机散列运算。 不难分析得出,散列值越长则安全性越好。许多实际应用的单向散列 函数产生 128 位的散列值,如我们将要使用的 MD5 算法,这就使得任何想 要攻击一次性函数的黑客们望而生畏,因此我们不妨考虑如何生成一个长的 散列值。以下即为生成一个长散列值的法: (1)运用单向散列函数生成一则消息的散列值。 (2)将该散列值附于消息之后。 (3)产生包含散列值和消息在内的一连串的数值的散列值。
Hash 是作用于一任意长度的消息 M,返回一固定长度的散列值 h:h=H(m)。其中 h 的长度为 m。Hash 函数主要用于封装或者数字签名的过程 当中,它必须具有如下几个性质: 1.给定 h,根据 H(M)=h 计算 M 在计算上是不可行的; 2.给定 M,要找到另一消息 M。并满足 H(m)=H(m)在计算上是不可 行的。 上述特性中的任何弱点都有可能破坏使用 Hash 函数进行封装或者签 名的各种协议的安全性,如生日攻击。Hash 函数的重要之处就是赋予 M 唯 一的指纹。如果用户 A 用数字签名算法 H(m)进行签名,而 B 能产生满足 H(m)=H(m)的另一消息 M,那幺 B 就可以声称 A 对 M 进行了签名。 Hash 函数除了需要上述性质外还需要的性质有: 3.给定 M,很容易计算 h;
Hash 函数 H(m)也名单向散列函数,它是现代密码学的核心。散列函 数一直在计算机科学中使用,散列函数就是把可变的输入长度串转换成固定 长度输出值(叫做散列值)的一种函数。而单向散列函数是在一个方向上工作 的散列函数,从预映射的值很容易计算机其散列值,但要使其散列值等于一 个特殊值却很难。好的散列函数也是无冲突的:难于产生两个预映射的值, 使他们的散列值相同。 散列函数是公开的,对处理过程并不保密,单向散列函数的安全性是 它的单向性,其输出不依赖于输入。平均而言,预映射值的单个位的改变, 将引起散列值中一半位的改变。已知一个散列值,要找到预映射的值,使它 的值等于已知的散列值在计算上是不可行的,可把单向散列函数看作是构成 指纹文件的一种方法。如果你验证某人持有一个特定的文件(你同时也持有该 文件),但你不想他将文件传给你,那幺,就要通知他将该文件的散列值传给 你,如果他传送的散列值是正确的,那幺可以肯定他持有那份文件。散列函 数可用于数字签名、消息的完整性检测、消息起源的认证检测等。常见的散 列算法有 MD5、SHA、Snefru 和 HVAL 等。