主页

索引

模块索引

搜索页面

常用

简介:

别名:
 单向散列函数(one-way hash function)
 消息摘要函数(message digest function)
 哈希函数
 杂凑函数

散列值:
 哈希值
 密码校验(cryptographic checksum)
 指纹(fingerprint)
 消息摘要(message digest)

原消息: 原像(pre-image)
完整性
 等同一致性

摘要算法的特点:

1.不同的数据,即使是一字节改变,其摘要的结果变化非常大
2.无论摘要的输入长度是多少,其输出是固定长度,对于MD5而言输出16字节;对于SHA1而言,输出20字节
3.无法从摘要的结果中得出原文.只有输入相同的明文数据经过相同的摘要算法才能得到相同的结果

哈希函数的性质与应用:

1.抗碰撞性
2.原像不可逆
3.难题的友好性

特性:

1. 抗碰撞性(collision resistance)
 鸽巢原理(pigeon-hole principle)
 1.1 强抗碰撞性
    找出相同散列值但互不相同的消息是困难的
    or
    如果难以找到任意两个明文,发生碰撞
 1.2 弱抗碰撞性
    找出和某条消息具备相同散列值的另一消息是困难的
    or
    如果给定一个明文前提下,难以找到碰撞的另一个明文

2. 单向性
 指无法从散列值反算出消息

一个优秀的 hash 算法,将能实现:

* 正向快速:给定明文和 hash 算法,在有限时间和有限资源内能计算出 hash 值。
* 逆向困难:给定(若干) hash 值,在有限时间内很难(基本不可能)逆推出明文。
* 输入敏感:原始输入信息修改一点信息,产生的 hash 值看起来应该都有很大不同。
* 冲突避免:很难找到两段内容不同的明文,使得它们的 hash 值一致(发生冲突)。

实际应用:

PBE(Password Based Encryption)基于口令的加密
消息认证码
数字签名
伪随机数生成器
一次性口令(one-time password)

备注

数字摘要是 Hash 算法最重要的一个用途。在网络上下载软件或文件时,往往同时会提供一个数字摘要值,用户下载下来原始文件可以自行进行计算,并同提供的摘要值进行比对,以确保内容没有被修改过。

攻击/破解:

暴力破解:
 从「冗余性」入手
 破解「弱抗碰撞性」
 原像攻击(pre-image Attach)
 第二原像攻击(Second pre-image Attach)

生日攻击(Birthday Attach):
 冲突攻击(Collision Attach)
 破解「强抗碰撞性」
 23个人就有一半以上的可能有2人生日相同

无法解决的问题:

能辨别「篡改」不能辨别「伪装」

主页

索引

模块索引

搜索页面