北京交通大学 密码学 第11章 Hash函数
- 格式:ppt
- 大小:4.55 MB
- 文档页数:78


hash散列函数Hash散列函数是一种常见的密码学算法,用于将任意长度的数据映射为固定长度的散列值。
它具有快速计算、不可逆、唯一性等特点,在密码学、数据完整性验证等领域被广泛应用。
一、散列函数的定义和作用散列函数是一种确定性函数,它将输入的数据映射为固定长度的散列值。
这个散列值通常是一个较短的字符串,称为哈希值或散列码。
散列函数的主要作用是将任意长度的输入数据转化为固定长度的输出,使得无论输入数据的长度如何,其散列值的长度始终保持不变。
散列函数的应用十分广泛,其中最常见的应用之一是密码学中的消息摘要算法。
在密码学中,我们通常需要对敏感信息进行加密或验证数据的完整性。
而散列函数正是一种可以将数据转化为固定长度的摘要信息的算法。
通过对比两个数据的散列值是否相等,我们可以快速判断数据是否被篡改。
二、散列函数的特点1. 快速计算:散列函数的计算速度非常快,无论输入数据的大小如何,散列函数都能在短时间内完成计算。
2. 不可逆性:散列函数是一种单向函数,即无法通过散列值逆向推导出原始数据。
这意味着无法通过散列值来恢复原始数据,从而保护数据的安全性。
3. 唯一性:散列函数的输出值是唯一的,即不同的输入数据将会产生不同的散列值。
这保证了散列函数的稳定性和可靠性。
三、常见的散列函数算法1. MD5:MD5是一种广泛使用的散列函数,它将输入数据转化为128位的散列值。
然而,由于其算法的安全性存在缺陷,已经不再推荐作为密码学中的消息摘要算法使用。
2. SHA-1:SHA-1是一种安全性较高的散列函数,它将输入数据转化为160位的散列值。
然而,随着计算机技术的发展,SHA-1的安全性也受到了一定的威胁,不再适用于一些高安全性的场景。
3. SHA-256:SHA-256是SHA-2系列散列函数中的一种,它将输入数据转化为256位的散列值。
SHA-256具有较高的安全性和强大的抗碰撞能力,目前被广泛应用于密码学、区块链等领域。
第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函数。