基本概念 Hash函数一般满足以下几个基本需求: (1)输入x为任意长度; (2)输出数据长度固定; (3)容易计算,给定任何x,容易计算出的Hash值H(X): (4)单向函数:即给出一个Hash值,很难反向计算出原始 输入; (5)唯一性:即难以找到两个不同的输入会得到相同的 Hash输出值(在计算上是不可行的)
◼ Hash函数一般满足以下几个基本需求: ◼ (1)输入x为任意长度; ◼ (2)输出数据长度固定; ◼ (3)容易计算,给定任何x,容易计算出x的Hash值H(x); ◼ (4)单向函数:即给出一个Hash值,很难反向计算出原始 输入; ◼ (5)唯一性:即难以找到两个不同的输入会得到相同的 Hash输出值(在计算上是不可行的)。 基本概念
Hashi函数的其他性质 ◆Hash值的长度由算法的类型决定,与输入的消息大小无关,一般为 128或者160位。常用的单向Hash算法有MDS、SHA-l等。 ◆Hash函数的一个主要功能就是为了实现数据完整性的安全需要。 ◆ Hash函数可以按照其是否有密钥控制分为两类: 一类有密钥控制,为密码Hash函数;用于消息认证码MAC 一类无密钥控制,为一般Hash函数。 ◆关于Hash函数的安全性设计的理论主要有两点: 一个是函数的单向性, ■二是函数影射的随机性
Hash函数的其他性质 ◆ Hash值的长度由算法的类型决定,与输入的消息大小无关,一般为 128或者160位。常用的单向Hash算法有MDS、SHA-l等。 ◆ Hash函数的一个主要功能就是为了实现数据完整性的安全需要。 ◆ Hash函数可以按照其是否有密钥控制分为两类: ◼ 一类有密钥控制,为密码Hash函数;用于消息认证码MAC ◼ 一类无密钥控制,为一般Hash函数。 ◆ 关于Hash函数的安全性设计的理论主要有两点: ◼ 一个是函数的单向性, ◼ 二是函数影射的随机性
攻击Has函数的典型方法 ◆生日攻击的基本观点来自于生日问题:在一个教室里最少有多少学生 时,可使得在这个教室里至少有两个学生的生日在同一天的概率不小 于50%?这个问题的答案是23。 这种攻击不涉及Hash算法的结构,可用于攻击任何Hash算法。目前 为止,能抗击生日攻击的Hash值至少要达到128bit。 中途相遇攻击这是一种选择明文/密文的攻击,主要是针对迭代和级 连的分组密码体制设计的Hash算法
攻击Hash函数的典型方法 ◆ 生日攻击的基本观点来自于生日问题:在一个教室里最少有多少学生 时,可使得在这个教室里至少有两个学生的生日在同一天的概率不小 于50%?这个问题的答案是23。 ◆ 这种攻击不涉及Hash算法的结构,可用于攻击任何Hash算法。目前 为止,能抗击生日攻击的Hash值至少要达到128bit。 ◆ 中途相遇攻击这是一种选择明文/密文的攻击,主要是针对迭代和级 连的分组密码体制设计的Hash算法
改击Has函数的典型方法 除生日攻击法、中间相遇攻击外,对一些类型的Hash函数还有一些特 殊的攻击方法,例如,修正分组攻击和差分分析法等。 山东大学王小云教授等于2004年8月在美国加州召开的国际密码大会 (Crypto'2004)上所做的Hash函数研究报告中指出,她们已成功破译了 MD4、MD5、HAVAL-128、RIPEMD-128等Hash算法。 2006年,王小云宣布了攻破SHA-1的消息。她的研究成果表明了从理 论上讲电子签名可以伪造,必须及时添加限制条件,或者重新选用更 为安全的密码标准,以保证电子商务的安全
◼ 除生日攻击法、中间相遇攻击外,对一些类型的Hash函数还有一些特 殊的攻击方法,例如,修正分组攻击和差分分析法等。 ◼ 山东大学王小云教授等于2004年8月在美国加州召开的国际密码大会 (Crypto’2004)上所做的Hash函数研究报告中指出,她们已成功破译了 MD4、MD5、HAVAL-128、RIPEMD-128等Hash算法。 ◼ 2006年,王小云宣布了攻破SHA-1的消息。她的研究成果表明了从理 论上讲电子签名可以伪造,必须及时添加限制条件,或者重新选用更 为安全的密码标准,以保证电子商务的安全。 攻击Hash函数的典型方法
完整性检验一般方法 ■消息完整性检验的一般机制如图所示。 图 存储、传输文件,需同时存储或发送该文件的数字指纹: ■} 验证时,对得到的文件重新产生其数字指纹; ■再与原数字指纹对比,如一致,文件是完整。否则,不完整。 消息 消息 产生数字指纹 产生数字指纹 消息数字指纹 所期望的数字指纹 判断二者是 否相同?若 数字指纹 相同,则消 实际收到的数字指纹 息是完整的
完整性检验一般方法 ◼ 消息完整性检验的一般机制如图所示。 ◼ 存储、传输文件,需同时存储或发送该文件的数字指纹; ◼ 验证时,对得到的文件重新产生其数字指纹; ◼ 再与原数字指纹对比,如一致,文件是完整。否则,不完整