第七章 杂凑函数

文章探讨了杂凑函数的基本概念、性质和应用,特别关注了MD5和SHA-1两种广泛使用的算法。MD5算法通过特定的初始化和压缩过程生成128位报文摘要,而SHA-1则产生160位的消息摘要,提供更强的安全性。文中还讨论了针对杂凑函数的攻击方法,如生日攻击,并指出MD5在密码分析方面的弱点,而SHA-1相对较强。
摘要由CSDN通过智能技术生成

目录

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杂凑函

7.1 杂凑函数

  • MD5、SHA-1等

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

7.1.1 杂凑函数的性质及应用

1.分类

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

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

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

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

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

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

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

4.应用

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

7.2.1 自由起始碰撞攻击

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

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

7.2.2 生日攻击

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

杂凑函数的消息填充

7.4 MD5杂凑函数

7.4.1 MD5杂凑算法

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

  • 输出:128位的报文摘要

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

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

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

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

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

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位

7.5.2 SHA-1的压缩函数

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

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

3.SHA工作过程:

4.SHA-1的消息扩展

5.SHA算法的设计特点

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)

  • 没有本质区别

  • 3
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值