第七章 杂凑函数

目录

7.1 杂凑函数

7.1.1 杂凑函数的性质及应用

7.2 杂凑函数的基本攻击方法

7.2.1 自由起始碰撞攻击

7.2.2 生日攻击

7.3 基于分组密码的杂凑函数设计

7.4 MD5杂凑函数

7.4.1 MD5杂凑算法

7.4.2 MD5算法的设计特点

7.5 SHA杂凑函数

7.5.1 SHA-1概述

7.5.2 SHA-1的压缩函数

7.6 SHA-1与MD-5的比较A杂凑函

第七章 杂凑函数_第1张图片

7.1 杂凑函数

第七章 杂凑函数_第2张图片

  • MD5、SHA-1等

  • 由于抵抗生日攻击的原因,杂凑函数的杂凑值不小于128比特

7.1.1 杂凑函数的性质及应用

1.分类

(1)不带密钥的杂凑函数,它只有一个被通常称为消息的输入参数;

(2)带密钥的杂凑函数,它有两个不同的输入,分别称为消息和密钥。

2.应用需求上杂凑函数H必须满足的性质

(1)H能够应用到任何大小的数据块上;

(2)H能够生成大小固定的输出;

(3)对任意给定的x,H(x)的计算相对简单,使得硬件和软件的实现可行。

3.安全意义上杂凑函数应满足以下特性

第七章 杂凑函数_第3张图片

4.应用

第七章 杂凑函数_第4张图片

7.2 杂凑函数的基本攻击方法

7.2.1 自由起始碰撞攻击

  • 目的:找到两个不同的报文m1和m2使得H(m1)=H(m2)

第七章 杂凑函数_第5张图片

碰撞攻击算法的指标分析:

第七章 杂凑函数_第6张图片

第七章 杂凑函数_第7张图片

7.2.2 生日攻击

第七章 杂凑函数_第8张图片

第七章 杂凑函数_第9张图片

第七章 杂凑函数_第10张图片

第七章 杂凑函数_第11张图片

7.3 基于分组密码的杂凑函数设计

第七章 杂凑函数_第12张图片

第七章 杂凑函数_第13张图片

杂凑函数的消息填充

第七章 杂凑函数_第14张图片

第七章 杂凑函数_第15张图片

7.4 MD5杂凑函数

7.4.1 MD5杂凑算法

  • 输入:长度小于264的明文

  • 输出:128位的报文摘要

第七章 杂凑函数_第16张图片

1.MD5报文摘要流程

(1)初始化处理:消息填充

增加填充位,使长度模512等于448;填充长度,用64位表示原始消息长度,低位在前。

  • 填充一个1和若干个0及64比特的(未填充)消息长度,使得填充后的消息比特总长度成为512比特的整数倍。

(2)明文分组,每组512位,分为L组

输入信息M按顺序每512位一组进行分组:M = M1,M2,…,Mn-1,Mn

(3)初始化MD缓冲区

MD5算法的中间结果和最终结果保存在128位的缓冲区中,缓冲区用4个32位的变量表示,这些变量被称为链接变量,初始化为(16进制):

A=0x67452301

B=0xEFCDAB89

C=0x98BADCFE

D=0x10325476

(4)处理消息

逐个分组用HMD5处理消息。每组分为16个32位字,M[k], k = 0, 1, 2…, 15

(5)输出

2.压缩函数HMD5

  • 若压缩函数具有抗碰撞能力,那么迭代散列函数也具有抗碰撞能力

第七章 杂凑函数_第17张图片

  • 由四轮运算组成,每轮16步,共64步;每步对4个32位寄存器A,B,C,D中的数据进行处理;最后A,B,C,D中的值即为128位摘要

MD5的主循环(记为MD)框图:

第七章 杂凑函数_第18张图片

(1)MD5主循环使用的轮(圈)

第七章 杂凑函数_第19张图片

第七章 杂凑函数_第20张图片

第七章 杂凑函数_第21张图片

7.4.2 MD5算法的设计特点

  • MD5是一个不要求可逆的、无密钥的分组密码算法。

  • 相对于异或运算来说,MD5中使用的四个非线性函数中的非线性运算是“按位或”和“按位与”。单纯从这四个非线性函数来看,它不提供输入比特信息的横向扩散,提供扩散性质的环节是模232加法运算,它不仅由于低位向高位进位的原因,实现了输入、输出的非线性关系,同时提供了使得该环节输入信息的低位向输出比特的高位扩散,再结合循环左移的运算,从而实现输入信息的完全扩散。

MD5强度:

  • MD5的每一位都依赖于消息的所有位

  • 逻辑函数F,G,H,I的使用增加了混淆程度

  • MD5可能是128位Hash码中最强的算法

  • MD5抗密码分析的能力较弱

    • 生日攻击代价为264数量级

    • 王小云教授的碰撞攻击算法效率很高

7.5 SHA杂凑函数

7.5.1 SHA-1概述

  • SHA-1建立在MD4算法之上产生160比特消息摘要

  • 输入小于264位,输出为160位

第七章 杂凑函数_第22张图片

7.5.2 SHA-1的压缩函数

1.SHA的主循环(记为SHA)框图

第七章 杂凑函数_第23张图片

2.SHA使用的轮(或称圈)函数

第七章 杂凑函数_第24张图片

第七章 杂凑函数_第25张图片

第七章 杂凑函数_第26张图片

3.SHA工作过程:

第七章 杂凑函数_第27张图片

4.SHA-1的消息扩展

第七章 杂凑函数_第28张图片

5.SHA算法的设计特点

第七章 杂凑函数_第29张图片

7.6 SHA-1与MD-5的比较A杂凑函数

1.抗强行攻击的安全性

  • SHA-1较强

2.抗密码分析的安全性

  • 王小云教授的算法对MD5较高效,对SHA-1偏低

3.速度

  • 都是32位加法运算

  • SHA-1执行80步,缓冲区160位

  • MD5执行64步,缓冲区128位

4.简单性和紧凑性

  • 都易于实现

5.低字节在前(MD5)和高字节在前结构(SHA-1)

  • 没有本质区别

你可能感兴趣的:(密码学,密码学)