发布时间:2025-06-22 17:23:08 点击量:
HASH GAME - Online Skill Game GET 300
Hash 算法及其应用 [日期2004-07-30] --------------- 什么是 Hash Hash 的重要特性 Hash 函数的实现 主要的 Hash 算法 Hash 算法的安全问题 Hash 算法的应用 结 论 --------------- Hash 一般翻译做 “散列” 也有直接音译为哈希的 就是把任意长度的输入 又叫做预映射 pre-image 通过散列算法变换成固定长度的输出该输出就是散列值。这种转换是一种压缩映射也就是散列值的空间通常远小于输入的空间不同的输入可能会散列成相同的输出而不可能从散列值来唯一的确定输入值。 数学表述为h = H(M) 其中 ...
Hash 算法及其应用 [日期2004-07-30] --------------- 什么是 Hash Hash 的重要特性 Hash 函数的实现 主要的 Hash 算法 Hash 算法的安全问题 Hash 算法的应用 结 论 --------------- Hash 一般翻译做 “散列” 也有直接音译为哈希的 就是把任意长度的输入 又叫做预映射 pre-image 通过散列算法变换成固定长度的输出该输出就是散列值。这种转换是一种压缩映射也就是散列值的空间通常远小于输入的空间不同的输入可能会散列成相同的输出而不可能从散列值来唯一的确定输入值。 数学表述为h = H(M) 其中 H( )--单向散列函数M--任意长度明文h--固定长度散列值。 在信息安全领域中应用的 Hash 算法还需要满足其他关键特性 第一当然是单向性(one-way)从预映射能够简单迅速的得到散列值而在计算上不可能构造一个预映射 使其散列结果等于某个特定的散列值 即构造相应的 M=H-1(h)不可行。 这样散列值就能在统计上唯一的表征输入值 因此 密码学上的 Hash 又被称为消息摘要(message digest) 就是要求能方便的将消息进行摘要 但在摘要中无法得到比摘要本身更多的关于消息的信息。 第二是抗冲突性(collision-resistant) 即在统计上无法产生 2 个散列值相同的预映射。 给定 M计算上无法找到 M满足 H(M)=H(M) 此谓弱抗冲突性计算上也难以寻找一对任意的 M 和 M使满足 H(M)=H(M) 此谓强抗冲突性。要求强抗冲突性主要是为了防范所谓生日攻击(birthday attack)在一个 10 人的团体中你能找到和你生日相同的人的概率是2.4%而在同一团体中有 2 人生日相同的概率是 11.7%。类似的当预映射的空间很大的情况下算法必须有足够的强度来保证不能轻易找到相同生日的人。 第三是映射分布均匀性和差分分布均匀性散列结果中为 0 的 bit 和为 1 的 bit 其总数应该大致相等输入中一个 bit 的变化散列结果中将有一半以上的 bit 改变这又叫做雪崩效应(avalanche effect)要实现使散列结果中出现 1bit 的变化则输入中至少有一半以上的 bit 必须发生变化。其实质是必须使输入中每一个 bit 的信息尽量均匀的反映到输出的每一个 bit 上去输出中的每一个 bit都是输入中尽可能多 bit 的信息一起作用的结果。