第十讲 密码Hash函数.ppt

合集下载

密(研)11-密码学Hash函数

密(研)11-密码学Hash函数

第11章 密码学Hash函数Crytographic Hash Functions课程内容大纲1. 引言第一部分:对称密码2. 传统加密技术第三部分:密码学数据完整性算法11.密码学Hash函数3. 分组密码与数据加密标准(DES) 12.消息认证码(MAC) 4. 数论与有限域的基本概念 13.数字签名 5. 高级加密标准(AES) 6. 分组密码的工作模式 7. 伪随机数的产生和流密码第四部分:相互信任14.密钥管理与分发 15.用户认证第二部分:公钥密码8. 数论入门 9. 公钥密码学与RSA 10. 密钥管理和其他公钥密码体制讲课内容11.1 密码学Hash函数的应用 11.2 两个简单的Hash函数 11.3 需求和安全性、安全Hash函数结构 11.4 基于分组密码链接的Hash函数 11.5 安全Hash算法(SHA) 补充:Hash函数MD511.1 密码学Hash函数的应用Hash函数定义• (单词"hash"的翻译:哈希、杂凑、散列、… ) • Hash函数H是一公开函数,用于将任意长的消息 M映射为较短的、固定长度的一个值H(M)。

称函 值H(M)为杂凑值、杂凑码或消息摘要 M → h = H(M)• 在安全应用中使用的Hash函数称为密码学Hash 函数(cryptographic hash function)Hash函数特点• Hash值 H(M) 是消息中所有 比特的函数,因此提供了一 种错误检测能力,即改变消 息中任何一个比特或几个比 特都会使杂凑码发生改变。

Hash函数的应用(1)消息认证 (2)数字签名 (3)其它一些应用Hash函数应用之一:消息认证• 消息认证是用来验证消息完整性的一种机制或服务 完整性 • 当Hash函数用于提供消息认证功能时,Hash函数 值通常称为消息摘要(message digest)• 一般地,消息认证是通过使用消息认证码(MAC) 实现的,即带密钥的Hash函数。

HASH函数简介

HASH函数简介

② 弱单向性:已知x,找出x’ (x’ ≠x),使得 h(x’ )= h(x) 在计算上是不可行的,满足这一 性质的单向散列函数称为弱单向散列函数。
Hash函数的安全性
问题 碰撞
实例:Hash函数h:X → Y
找出:x,x’∈X使得x’ ≠x,并且h(x’ )= h(x) ③ 强单向性:找出任意两个不同的输入x,x’ 使得h(x’ )= h(x)在计算上是不可行的,满足 这一性质的单向散列函数,则称其为强单向 散列函数
它适用在32位字长的处理器上用高速软件实 现--它是基于 3ash算法:
MD5:1992年4月Ron Rivest公布的MD4的改 进RFC 1321称为MD5 它对输入仍以512位分组,其输出是4个32位 字的级联,与 MD4 相同。MD5比MD4来得 复杂,并且速度较之要慢一点,但更安全, 在抗分析和抗差分方面表现更好。
Hash算法
从密码分析的角度来看,MD5被认为是易受 攻击的 2004年山东大学王小云教授破译了MD5, 采用”比特追踪法”(模差分方法)可以很 快的找到一个碰撞。而且这种攻击已经部 分的可实用化,即找到有意义的碰撞。
Hash算法
著名的Hash算法:
SHA1:安全杂凑算法(secure hash algorithm,
Hash函数
Hash函数
在实际的通信保密中,除了要求实现数 据的保密性之外,对传输数据安全性的 另一个基本要求是保证数据的完整性。 密码学中的Hash函数可为数据完整性提 供保障
数据的完整性是指数据从 发送方产生后,经过传输 或存储以后,未被以未授 权的方式修改的性质。
Hash函数
Hash函数通用来构造数据的短“指纹”(函 数值);一旦数据改变,指纹就不再正确。 即使数据被存储在不安全的地方,通过重新 计算数据的指纹并验证指纹是否改变,就能 够检测数据的完整性。

第十讲 密码Hash函数

第十讲 密码Hash函数
第十讲 密码Hash函数
本讲提要
分类与架构 基本构造 修改发现码(MDC) 消息认证码(MAC)
1 分类与架构
1.1 基本性质与定义 定义1 Hash函数(在不严格意义下)是至少满 足下列两条性质的函数h。 (1) 压缩:h将任意有限比特长度的输入x映 射为固定长度为n的输出h(x)。 (2) 容易计算:给定h和输入x,容易计算出 h (x )。
1.1 基本性质与定义(续) 定义 3 单向 Hash 函数 (OWHF) 是满足定义 1 以 及定义2中(1)和(2)的Hash函数。 定义4 抗碰撞Hash函数(CRHF)是满足定义1以 及定义2中(2)和(3)的Hash函数。 # 虽然几乎所有实际使用的 CRHF 都有抗原像 攻击的性质,但由于技术原因定义 4 并未给出。
定义 2 修改发现码 (MDC) 是 Hash 函数 h ,对于输入 x 和x以及相应输出y和y满足如下性质: (1) 原像不可逆:对于几乎所有的 Hash 输出不可能 计算出其的Hash输入。也就是,在不知道输入的情 况下给定任意一个输出y,找到任意一个输入x满足 h(x)=y是计算不可能的。 (2) 二次原像不可逆:对于任何一个给定的输入 x, 找到另一个输入 xx ,且满足 h(x)=h(x) ,在计算上 不可能。 (3) 抵抗碰撞:找到两个不同的输入 x 和 x ,满足 h(x)=h(x),在计算上不可能(注意:这里两个输入可 以自由选择)。
1 分类与架构(续)
1.4 其他应用
MDC的其他应用 (1) 知识确认。 (2) 密钥产生。 (3) 伪随机数发生。 # 这些MDC可能需要满足一些超过之前定 义的附加性质。
2 基本构造
2.1 迭代结构的一般模型
高级视图
任意长度输入

哈希函数.ppt

哈希函数.ppt
二次探测法:如果di取值可能为1,-1,2,-2,4,-4,9,-9,16,-16,...k*k,-
k*k(k<=m/2)称二次探测再散列,用公式表达如下:
例:在长度为11的哈希表中已填有关键字分别17,60,29的 记录,现有第四个记录,其关键字为38,由哈希函数得到 地址为5,若用线性探测再散列,如下:
哈希函数 哈希表中的元素是由哈希函数确定的。将
数据元素的关键字K作为自变量,通过一定的函数关系 (称为哈希函数)计算出的值,即为该元素的存储地址。 表示为:
Addr = H(key) 这个函数就是哈希函数
二、冲突及冲突处理
由于哈希函数是一个压缩映像,因此,在一般情况下, 很容易产生“冲突”现象
在哈希元素(地址)求解过程中,不同关键字值对应到同一 个存储地址的现象称为冲突。即关键字K1 K2, 但哈希函 数值 H(K1)= H(K2)。 均匀的哈希函数可以减少冲突,但不能避免冲突。发生冲突 后,必须解决;也即必须寻找下一个可用地址。 处理冲突是建立哈希表过程中不可缺少的一部分。
0 1 2 3 4 5 6 7 8 9 10
(a)插入前
60 17 29

0 12 3 4 5
6
7
8
9 10
(b)线性探测再散列
60 17 29 38
0 1 2 3 4 5 6 7 8 9 10 38 60 17 29
(c)二次探测再散列
0123
45
6
7
8 9 10
38
60 17 29
(d)伪随机探测再散列,伪随机数列为9,5,3,8,1...
解题思路:首先,明确一下几格概念:什么是hash表、 什么是hash函数、什么是线性探查法、冲突在哪里; 其次逐一求余;最后找出冲突,利用线性探查法解决 问题。

HASH函数

HASH函数
B C D
A
MD4 (1990年10月作为RFC1320发表) by Ron Rivest at MIT
• MD4的设计目标 • 安全性: • 速度:32位体系结构下计算速度快. • 简明与紧凑:易于编程. • 有利的小数在前的结构(Intel 80xxx, Pentium ) • MD4与MD5的区别 • MD4用3轮,每轮16 步,MD5用4轮,每轮16步. • MD4中第一轮没有常量加;MD5中64步每一步用了一 个不同的常量 T[i]; • MD5用了四个基本逻辑函数,每轮一个;MD4用了三 个. • MD5每轮加上前一步的结果;MD4没有.
y 取 k 个随机值得到函数的 k 个输出中至少有一个 等于h(x)的概率为 1-[1-1/n]k 由(1+x)k≈1+kx,其中|x|<<1,可得
1-[1-1/n]k≈1-[1-k/n]=k/n
给定 h(x) ,如果对 h 随机取 k 个输入,至少有一个 输入 y 使得 h(y)=h(x) 的概率为 1-[1-1/n]k≈1-[1-k/n]=k/n • 若使上述概率等于0.5,则 k=n/2。特别地,如果 h 的输出为 m 比特长,即可能的输出个数 n=2m,则 k=2m-1。
• 生日攻击(基于生日悖论) 在k个人中,找一个与某人生日相同的人的 概率超过0.5时,只需k>183; 而在此人群中, 至少有两个人生日相同的概率超过0.5,只 需k>23.
将生日悖论推广为下述问题:已知一个在1到n 之间均匀分布的整数型随机变量,若该变量的 k 个 取值中至少有两个取值相同的概率大于0.5,则k至 少多大? n! P(n, k ) 1 与上类似, (n k )!n k 令P(n, k)>0.5,可得 k 1.18 n n 若取 n=365,则

《现代密码学》散列函数与消息鉴别ppt课件

《现代密码学》散列函数与消息鉴别ppt课件

• SHA–1产生音讯摘要的过程类似MD5,如下图
填充位
L×512 bit= N×32 bit K bit
这一步为MD5的主循环,包括四轮。每个循环 都以当前的正在处置的512比特分组Yq和128比 特缓冲值ABCD为输入,然后更新缓冲内容。
3.MD5的输出
由A、B、C、D四个存放器的输出按低位字节在 前的顺序(即以A的低字节开场、D的高字节终 了)得到128位的音讯摘要。
• 单个512比特分组的MD5主循环处置:
对散列函数必需具有的性质的了解: 系统能够存在的伪造方式 伪造方式一:假设攻击者截获某一音讯摘要h,假
设H的逆函数H-1是易求的,可算出H-1(h)=m, 满足h=H(m)。为防止这一点,必需求求散列 函数H为单向的,即计算H的逆函数H-1在计算 上是不可行的。 伪造方式二:从一个有效签名(m,y)开场,此处y= sigk(H(m))。首先计算h=H(m),并企图找到一 个m’=m满足H(m’)=H(m)。假设做到这一点, 那么(m’,y)也将为有效签名。为防止这一点, 要求函数h具有弱抗冲突特性,即,对给定音 讯m,在计算上几乎找不到不同于m的m’ ∈ X 使H(m)=H(m’)。
(1)单向性:对任何给定的码h,寻觅m使得 H(m) = h在计算上是不可行的
(2)具有弱抗碰撞性〔week collision resistance〕 :对于任何给定的音讯m, 寻觅一个与m不同的音讯m’使得 H(m)=H(m’)在计算上不可行。
(3)具有强抗碰撞性〔 strong collision resistance 〕:寻觅恣意两个不同的音讯 m和m’使得使得H(m)=H(m’)在计算上不 可行。
对散列函数的生日攻击
• 假定其输出为m比特,那么寻觅一个音讯,使其散 列值与给定散列值一样那么需求计算2m次;而寻 觅两个音讯具有一样的散列值仅需求实验2m/2个 随机的音讯。

Hash函数

Hash函数

第3轮 以 [ABCD k s i]表示如下操作 A = B + ((A + H(B,C,D) + X[k] + T[i]) <<< s). Do the following 16 operations. [ABCD 5 4 33] [DABC 8 11 34] [CDAB 11 16 35] [BCDA 14 23 36] [ABCD 1 4 37] [DABC 4 11 38] [CDAB 7 16 39] [BCDA 10 23 40] [ABCD 13 4 41] [DABC 0 11 42] [CDAB 3 16 43] [BCDA 6 23 44] [ABCD 9 4 45] [DABC 12 11 46] [CDAB 15 16 47] [BCDA 2 23 48]
3、强无碰撞hash函数是单向的。 总之,Hash函数应该满足 1)由自变量求函数是容易的,反之是困难的。 2)寻找碰撞是困难的
四、Hash函数实例 MD5
MD:Merkle-Damgard结构 输入:任意长度的消息 输出:128位消息摘要 处理:以512位输入数据块为单位
L×512 bits=N ×32bits × K bits 报文
填充 (1 to 448 bits)
100…0
报文长度 (K mod 264)
512 bits
512 bits
512 bits
512 bits
Y0
512
Y1
512
Yq
512
YL-1
512
128
128 128 128
HMD5
IV CV1
HMD5
CVq
HMD5
CVL-1

Hash函数

Hash函数

4 Hash函数的需求 函数的需求
– H能用于任何大小的数据分组 能用于任何大小的数据分组; 能用于任何大小的数据分组 – H产生定长输出 产生定长输出; 产生定长输出 – 对任意给定的 H(x)要相对易于计算 使得 对任意给定的x, 要相对易于计算,使得 要相对易于计算 软硬件实现都实际可行; 软硬件实现都实际可行 – 对任意给定的码 寻求 使得 对任意给定的码h, 寻求x使得 使得H(x)=h在计算 在计算 上是不可行的(单向性 单向性); 上是不可行的 单向性 – 任意给定分组 寻求不等于 的y, 使得 任意给定分组x, 寻求不等于x的 H(y)= H(x)在计算上不可行 弱抗攻击性 在计算上不可行(弱抗攻击性 在计算上不可行 弱抗攻击性); – 寻求对任何的 寻求对任何的(x,y)对使得 对使得H(x)=H(y)在计算 对使得 在计算 上不可行(强抗攻击性 强抗攻击性); 上不可行 强抗攻击性
Hash函数 散列 哈希函数 函数(散列 哈希函数) 函数 散列,哈希函数
1 Hash函数 函数
– Hash函数是将任意长度的报文映射成一个 函数是将任意长度的报文映射成一个 较短的定长输出报文的函数. 较短的定长输出报文的函数 – 如下形式: h = H(M), M是变长的报文,h是定 如下形式: M是变长的报文 是变长的报文,h是定 长的Hash值. 长的 值 – Hash函数的目的是为文件、报文或其它的 函数的目的是为文件、 函数的目的是为文件 分组数据产生“数字指报文认证的方式 续.) 码提供报文认证的方式(续 码提供报文认证的方式 – (d) A->B: Ek(M || EKRa( H(M) ) )
• 提供认证和数字签名 • 提供保密 仅A和B共享 提供保密(仅 和 共享 共享K)

harsh函数-概述说明以及解释

harsh函数-概述说明以及解释

harsh函数-概述说明以及解释1.引言1.1 概述概述部分的内容可以描述一下harsh函数是什么以及它的重要性和作用。

可以参考以下内容:概述:随着计算机科学的快速发展,数据安全和隐私保护变得尤为重要。

在这个数字化时代,我们需要一种可靠的方法来保护数据的完整性和安全性。

在这方面,hash函数扮演着至关重要的角色。

Hash函数是一种常见的密码算法,主要用于将数据转换为固定长度的字符串。

它通过对任意长度的数据应用哈希算法,生成一个唯一的哈希值。

这个哈希值可以用来验证数据的完整性,检测数据的变化和确定数据的唯一性。

在hash函数的世界里,harsh函数是一种特殊类型的hash函数,它具有许多独特的特点和优势。

与传统的hash函数相比,harsh函数不仅具有更高的效率和更低的冲突率,还可以提供更好的数据安全性和隐私保护。

harsh函数的工作原理是将输入数据通过一系列复杂而精确的计算,转换为一个唯一的哈希值。

这个哈希值具有不可逆的特性,即无法通过哈希值来恢复原始数据。

这种不可逆的特性使得harsh函数成为密码学中重要的工具,广泛应用于数字签名、数据验证、身份验证等各个领域。

此外,harsh函数还具有较低的碰撞概率,即不同的输入数据生成相同哈希值的概率非常低。

这使得harsh函数在数据完整性验证等关键应用场景中更加可靠。

另外,harsh函数还具有良好的计算性能和效率,使得它能够承担大规模数据处理的任务。

总的来说,harsh函数在确保数据安全性和完整性方面发挥着重要作用。

它的独特特性使其在各个领域得到广泛应用,同时也推动了数据安全和密码学的发展。

未来,随着计算机技术的不断进步,人们对于更加高效和安全的harsh函数算法的需求也将不断增加。

1.2文章结构文章结构部分的内容可以描述整篇文章的组织架构和章节安排:在本文中,我将按照如下结构来阐述关于harsh函数的相关知识。

首先,我将在引言部分进行概述,简要介绍harsh函数的定义、背景和应用领域。

网络安全-10-密码学Hash函数

网络安全-10-密码学Hash函数

Hash函数

浓缩任意长的消息 M 到一个固定
长度的取值 h = H(M)

通常假设 hash 函数是公开的且不
使用密钥(MAC使用密钥)

Hash函数用户检测对消息的改变
2015/8/12
西安电子科技大学计算机学院
5
密码学Hash函数
哈希函数的应用

消息认证
数字签名
2015/8/12
西安电子科技大学计算机学院
2015/8/12
西安电子科技大学计算机学院
31
2015/8/12
西安电子科技大学计算机学院
32
推荐的SHA标准
2015/8/12 2015/8/12
西安电子科技大学计算机学院 西安电子科技大学计算机学院
33
33
2015/8/12
西安电子科技大学计算机学院
34
2015/8/12
西安电子科技大学计算机学院
哈希函数
在公钥密码的内容中,已经介绍了“单向 函数”的概念。而哈希函数是一类特殊的单 向函数。 设数据文件是任意长度的比特串 x 。在密 码应用中,希望有这样的函数 y=H(x),满足: (1)将x压缩成为固定长度的比特串y。 (2)不同的x一定要生成不同的 y 。(一般 情况) (3)由y的值无法倒算x的值。

如果采用64-bit的Hash码,以一半概率找到碰撞 的代价的数量级是232
2015/8/12 西安电子科技大学计算机学院 14
生日悖论
2015/8/12
西安电子科技大学计算机学院
15
Hash安全特性之间的关系
抗弱碰撞攻击
抗原像攻击
抗强碰撞攻击
2015/8/12

哈希函数

哈希函数

哈希函数1 基本原理我们使用一个下标范围比较大的数组来存储元素。

可以设计一个函数(哈希函数,也叫做散列函数),使得每个元素的关键字都与一个函数值(即数组下标)相对应,于是用这个数组单元来存储这个元素;也可以简单的理解为,按照关键字为每一个元素"分类",然后将这个元素存储在相应"类"所对应的地方。

但是,不能够保证每个元素的关键字与函数值是一一对应的,因此极有可能出现对于不同的元素,却计算出了相同的函数值,这样就产生了"冲突",换句话说,就是把不同的元素分在了相同的"类"之中。

后面我们将看到一种解决"冲突"的简便做法。

总的来说,"直接定址"与"解决冲突"是哈希表的两大特点。

2 函数构造构造函数的常用方法(下面为了叙述简洁,设h(k) 表示关键字为k 的元素所对应的函数值):a) 除余法:选择一个适当的正整数p ,令h(k ) = k mod p这里,p 如果选取的是比较大的素数,效果比较好。

而且此法非常容易实现,因此是最常用的方法。

b) 数字选择法:如果关键字的位数比较多,超过长整型范围而无法直接运算,可以选择其中数字分布比较均匀的若干位,所组成的新的值作为关键字或者直接作为函数值。

3 冲突处理线性重新散列技术易于实现且可以较好的达到目的。

令数组元素个数为S ,则当h(k) 已经存储了元素的时候,依次探查(h(k)+i) mod S , i=1,2,3…… ,直到找到空的存储单元为止(或者从头到尾扫描一圈仍未发现空单元,这就是哈希表已经满了,发生了错误。

当然这是可以通过扩大数组范围避免的)。

4 支持运算哈希表支持的运算主要有:初始化(makenull)、哈希函数值的运算(h(x))、插入元素(insert)、查找元素(member)。

设插入的元素的关键字为x ,A 为存储的数组。

2010 密码学第10周 认证理论与技术——Hash函数课件

2010 密码学第10周  认证理论与技术——Hash函数课件

窜扰者
信 源
认证编码器
认证译码器 信道 安全信道
信 宿
认证信道 密钥源 图 纯认证系统模型
认证与认证系统实现方式
(1) 消息认证:用消息的密文本身充当认证信息。 (2) 消息认证码 (MAC Message Authentication Code): 由以消息和密钥作为输入的公开函数产生的认证信 息,也称“消息摘要”或“报文摘要”。 (3) 散列值:以消息作为唯一输入的散列函数产生的 认证信息(无需密钥)
SUM32 160 bits CVq+1
SHA-1 压缩函数
处理程序:4 回合,共计 80 次;5 个缓存器 A = E + f1-4(t,B, C, D) + S5(A) + W[t] + K1-4 B=A 本次 A B C D 暫存器 30(B) C=S f D=C E=D S
1~4 5
E
其中 f1-4(t,B, C, D) =步t的基本 逻辑函数 Sk =循环左移k位 Wt=一个从当前512位输入 数据块导出的32位字 K1-4=一个用于加法的常量, 下次 暫存器 四个不同值 +=模 232加
填充实例
例如若原始消息由704比特二进制组成,那么在 其末尾添加256比特(255≡(447-704) mod 512,即 1个“1”后面255个“0”),消息扩展到960比特( 960 mod 512=448);再例如消息由448比特二进制 组成,那么末尾添加512比特(511≡(447-448) mod 512,即1个“1”后面511个“0”),消息扩展到960 比特(950 mod 512=448)。
Hash函数在物联网的应用举例
物联网(The Internet of things)的定义是:通过射频识别 (RFID)、红外感应器、全球定位系统、激光扫描器等信 息传感设备,按约定的协议,把任何物品与互联网连接起来 ,进行信息交换和通讯,以实现智能化识别、定位、跟踪、 监控和管理的一种网络。

Hash函数

Hash函数

Hash函数概念将任意长度的输⼊变换为固定长度的输出的不可逆的单向密码体制Hash函数在数字签名和消息完整性检测等⽅⾯有着⼴泛的应⽤Hash函数同时是⼀种具有压缩特性的单向函数,其像通常称为数字指纹,消息摘要或散列值。

散列值的⽣成过程可以表⽰为h = H(M)其中h是定长的散列值,H是哈希函数,M是⼀个变长消息散列函数主要⽤于消息认证和数字签名,因此需要具备以下特性1. H可应⽤于任意长度的消息2. H产⽣定长的输出3. 对任意给定的消息x,计算H(x)⽐较容易,⽤硬件软件均可实现4. 单向性:对任意给定的散列值h,找到满⾜H(x) = h 的x在计算上是不可⾏的5. 抗弱碰撞性:对任意给定的消息x,找到x != y并且H(x) = H(y)的消息y在计算上是不可⾏的6. 抗强碰撞性:找到任何满⾜H(x) = H(y) 的偶对(x,y)在计算上是不可⾏的性质2是哈希函数的基本特性,性质3是哈希函数的可⽤性,性质4,5,6是哈希函数为满⾜不同应⽤⽽需具备的基本安全性质应⽤数字签名由于消息散列值通常⽐消息本⾝短的多,因此对消息散列值进⾏数字签名在处理上⽐对消息本⾝进⾏签名要⾼效的多。

⽣成程序或⽂档的数字指纹hash函数可以⽤来保证消息的完整性。

⾸先,通过哈希函数变换得到程序或⽂档的散列值,然后将散列值存储,对程序或⽂档进⾏定时的检测,与已存储的散列值进⾏⽐较,以此来实现完整性验证。

⽤于安全传输和⽤户⼝令⽤于保存⽤户登陆⼝令(密码),通过⽤户id及⼝令⽣成相应的散列值,然后保存,⽤户在进⼊系统输⼊⼝令时,⽣成散列值与存储的散列值进⾏⽐较,这样可以确保⽤户⼝令不被管理员或攻击者获取到哈希算法消息认证消息认证的作⽤主要有两个:⼀个是验证信息来源的真实性,⼀般称之为信息源认证;另⼀个是验证消息的完整性消息认证码(MAC)利⽤消息和双放共享的密钥通过认证函数来⽣成⼀个固定长度的短数据块,并将该数据块附加在消息后⽐如发送⽅A和接收⽅B共享密钥K,若A向B发送消息M,则MAC = C(K,M) ,其中C是认证函数,MAC是消息认证码(a)为明⽂传输,(b)为先计算MAC后,将MAC数据块附加在M信息后进⾏加密传输,(c)为先将M进⾏加密,再⽣成MAC,并附在消息块后进⾏传输基于哈希的消息认证码HMAC是实际应⽤中使⽤最多的⽅案,如SSL就使⽤HMAC来实现消息认证功能。

Hash 函数

Hash 函数

1. 2 基于分组密码的Hash 函数
基于分组密码的CFB 工作模式的Hash 函数H
首先选取一个初始向量

然后计算
基于分组密码的CBC 工作模式的Hash 函数H
首先选取一个初始向量

然后计算
1. 3 Hash函数MD4
设x 是一个消息, 用二进制表示。首先由x 生成一个数组
是长度为32 比特(bit)的(0,1) 序列,
②对i = 0 至N/16 - 1 执行第3 步至第10 步
③对j = 0 至15 执行X[j] = M[16i + j ] ④ 对j = 16 至79 执行 X[j] = (X[j - 3] ⊕ X[j - 8] ⊕ X[j -14] ⊕ X[j -16]) ≤ 1
⑤将寄存器A、B、C、D、E 中的值存储到另外四个寄存器AA、BB、CC、DD
中, AA = A, BB = B, CC = C,DD = D,EE=E
⑥ 执行Round1 ⑦ 执行Round2
点此查看Round1
点此查看Round2
⑧ 执行Round3 ⑨ 执行Round4
点此查看Round3
点此查看Rouቤተ መጻሕፍቲ ባይዱd3
⑩A = A + AA,B = B + BB,C = C + CC, D = D + DD,E=E+EE
现代密码学
主要内容
公钥密码的理论基础 RSA 公钥密码 大素数的生成
EIGamal 公钥密码
1. 1 Hash 函数的性质
定义8.1 设H 是一个Hash函数, 给定一个消息x, 如果寻找另外
一个与x 不同的消息 使得
是计算上不可行的,
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2019-8-29
谢谢您的观赏
28
3 无密钥密码Hash函数:MDC (续)
3.2 定制的Hash函数:SHA-1(续)
2019-8-29
谢谢您的观赏
14
1 分类与架构(续)
1.3 性质之间的关系 事实1 Hash函数的抗碰撞隐含抗二次原像。
事实2 Hash函数抗碰撞不能保证抗原像。
事实3 Hash函数抗二次原像不能保证抗原像, 抗原像也不能保证抗二次原像。
攻则事应实击该4者抗h不k是二知M次道A原密C像,钥、hkk,符抗h碰合k抗撞计选、算择抗抵消原抗息像性。攻质击。若,
Ci

Eki
(Mi
)

M

i
H 2019-i8-29 CLi || CRi; H谢i 谢您C的观L赏i || CRi。
23
3 无密钥密码Hash函数:MDC(续)
3.1 基于分组密码的Hash函数:MDC-2 (续)
Mi
Eg(Hi-1)
Eg'(Hi-1)
CLi CRi
CL'i CR'i
(1) 令 H0 IV,H0 IV 。 (2) || 表示连接操作,CLi 和CRi表示 Ci的左和右32 比特位。输出Hash值 是h(M ) = Ht || Ht,按如下公 式计算(1 i t):
ki g(Hi-1),
Ci

Eki
(Mi)
M

i
ki g(Hi-1),
假定EK为标准 DES。对于U u1u2 u64,定义两个函 数g和g,将64比特的U映射成适合于DES密钥的56比 特值如下:
g(U ) u110u4u5u6u7u9u10 u63, g(U ) u101u4u5u6u7u9u10 u63。 从推荐值集合中选择两个无需保密的64比特常量IV和
2 基本构造(续)
2.1 迭代结构的一般模型(续)
Hi表示第i步的部分结果,输入为x=x1x2…xt 的迭代函数的一般模型为
H0=IV; Hi=f(Hi-1, xi),1it ;h(x)=g(Ht)。 Hi-1表示第i-1步和第i步之间的n比特链变量, H0是预定义的开始值或初始值(IV)。最后一 步用可选的输出变换g将n比特链变量映射为 m比特结果g(Ht),通常g(Ht)=Ht。

CV2
CVq
HSHA

HSHA
CVL-1
消 息


2019-8-29
谢谢您的观赏
26
3 无密钥密码Hash函数:MDC(续)
3.2 定制的Hash函数:SHA-1(续)
SHA-1消息处理过程:
(1) 消息填充。填充使得消息的比特长度为512比特的 某个倍数减64,即使原始消息已满足要求,仍要填充。 这样填充的比特数在1到512。填充方式是第一位为1 其他位是0。最后64比特位用来填充消息被填充前的 长度。这形成了长度为512比特的一系列分组Y0, Y1,… ,YL-1。
1.1 基本性质与定义(续)
(2) 压缩:函数hk可以将任意有限比特长度 的输入x映射为固定n比特长度的位串。进一 步,给出函数族h的算法描述,对于任何一 个固定符合要求的密钥值k(攻击者不知其值), 需要满足如下性质:
(3) 计算抵抗:给定0个或多个消息-MAC值
对(xi,hk(xi)),找到任意消息-MAC值对(x,
7
1 分类与架构(续)
1.1 基本性质与定义(续) 攻击者攻击 MDC的主要目标如下: (1) 给定Hash值y,发现原像x满足y=h(x); 或者给定对(x,h(x))发现另一个像x满足 h(x)=h(x)。 (2) 发现两个Hash输入x和x满足h(x)=h(x)。
2019-8-29
谢谢您的观赏
谢谢您的观赏
4
1 分类与架构(续)
1.1 基本性质与定义(续)
定义2 修改发现码(MDC)是Hash函数h,对于输入x 和x以及相应输出y和y满足如下性质:
(1) 原像不可逆:对于几乎所有的Hash输出不可能 计算出其的Hash输入。也就是,在不知道输入的情 况下给定任意一个输出y,找到任意一个输入x满足 h(x)=y是计算不可能的。
IV (这两个常量在MDC验证中也需要使用)。一组默认
值为(十六进制):IV = 5252525252525252,IV = 25252
52525252525。
2019-8-29
谢谢您的观赏
22
3 无密钥密码Hash函数:MDC(续)
3.1 基于分组密码的Hash函数:MDC-2 (续) 将消息 M 按 64比特分组M [M1,M 2,,M t ]。 使用DES的MDC - 2 按如下步骤进行:
2019-8-29
谢谢您的观赏
13
1 分类与架构(续)
1.2 特定应用需要的性质
与特定性质联系在一起的是开销,如 CRHF 一 般 比 OWHF 要 难 于 构 造 , 且 其 Hash值应是OWHF的比特长度的两倍。
因此,考虑具体应用十分重要。假如可 由不可信方控制Hash函数的输入的准确 内容,则可能需要CRHF,如数字签名。 假如只是可信方的单方应用,使用 OWHF就足够了,如口令表的应用。
L×512比特 K比特
需要产生Hash值的消息
100…0
2019-8-29
填充长度1谢-5谢12您比的特观赏
消息长度K
27
3 无密钥密码Hash函数:MDC(续)
3.2 定制的Hash函数:SHA-1(续)
(2) 初始化。 SHA-1使用160比特的缓冲区存 储中间和最终Hash值,可用5个32比特寄存器 A,B,C,D,E表示,初始值为(十六进制) A=67452301,B=efcdab89,C=98badcfe, D=10325476,E=c3d2e1f0。
2019-8-29
谢谢您的观赏
15
1 分类与架构(续)
1.4 其他应用
MDC的其他应用 (1) 知识确认。 (2) 密钥产生。 (3) 伪随机数发生。 # 这些MDC可能需要满足一些超过之前定 义的附加性质。
2ቤተ መጻሕፍቲ ባይዱ19-8-29
谢谢您的观赏
16
2 基本构造
2.1 迭代结构的一般模型
高级视图
任意长度输入
2019-8-29
谢谢您的观赏
11
1 分类与架构(续)
1.1 基本性质与定义(续)
攻击者攻击MAC的目标为:
在不知道密钥k的情况下,给定一个或多个消息MAC值对(xi,hk(xi)),计算出一个或多个新消息MAC值对(x,hk(x)),满足xxi。 攻击者潜在的能力有:
(1) 已知消息攻击。
(2) 选择消息攻击:掌握一个或多个由攻击者选择
算上不可能,则有:(1) OWHF要求n80;(2) CRHF要求n160;(3) MAC对大部分环境要求n64
以及64-80比特的密钥,如果有特别控制,可小到 n=32或64。
2019-8-29
谢谢您的观赏
20
3 无密钥密码Hash函数:MDC
3.1 基于分组密码的Hash函数:MDC-2
2019-8-29
谢谢您的观赏
19
2 基本构造(续)
2.2 实际安全需要的输出比特大小
事实5 一个n比特输出的不带密钥Hash函数是理想 安全的,如果:(1) 给定一个Hash输出,产生一个 原像和二次原像需要大约2n次操作规模;(2) 产生 一个碰撞需要大约2n/2次操作规模。
事实6 假定n比特输出的Hash函数,280次操作在计
迭代压缩函数
固定长度输出
可选输出变换
2019-8-29
谢谢您的输观出赏
17
2 基本构造(续)
2.1 迭代结构的一般模型(续)
详细视图
初始输入x
预处理
附加填充比特
Hash函数h
附加长度分组
格式化输入x=x1x2…xt
迭代处理
Hi-1
xi
压缩
f
函数f
Hi Ht
g
2019-8-29
谢谢您的观赏
18
输出h(x)=g(Ht)
定义1和定义2的说明:
(1) “容易”和“计算上不可能”都留下来没 有准确定义。“容易”意味着多项式时间和 空间;“计算上不可能”意味着超越多项式 的计算需求。
(2) 一般认为,抗原像单向;抗二次原像抗 弱碰撞;抵抗碰撞抗强碰撞。
2019-8-29
谢谢您的观赏
6
1 分类与架构(续)
1.1 基本性质与定义(续)
2019-8-29
谢谢您的观赏
3
1 分类与架构(续)
1.1 基本性质与定义(续)
密码中使用的Hash函数主要为两类: (1) 修改发现码(MDC):不带密钥的Hash 函数,主要用于提供消息完整性检查。
(2) 消息认证码(MAC):带密钥的Hash函 数,主要用于认证消息源及保证其完整性。
2019-8-29
2019-8-29
谢谢您的观赏
25
3 无密钥密码Hash函数:MDC(续)
3.2 定制的Hash函数:SHA-1(续)
SHA-1算法的输入为小于264比特长的任意消 息,输出为160比特的消息摘要,算法处理过 程如下图。
Y0(512比特) Y1
Yq
YL-1
HSHA
IV (160比特)
HSHA CV1 (160比特)
的xi对应的消息-MAC值对(xi,hk(xi))。
(3) 适应性选择消息攻击:允许根据前面的询问结
果连续做出消息选择。
2019-8-29
谢谢您的观赏
相关文档
最新文档