USTC密码学课件:安全散列与消息认证算法详解

需积分: 10 9 下载量 152 浏览量 更新于2024-08-23 收藏 1.24MB PPT 举报
本章要点主要集中在现代密码学理论中的消息认证和散列函数部分,具体包括以下几个关键知识点: 1. **安全散列函数的通用结构**: 所有的安全散列函数都遵循一个共同的结构,如图11.9所示。这种结构通常包括接收输入数据、分割处理、压缩函数以及最终输出固定长度的散列值。散列函数的主要目的是确保消息的完整性,即使数据稍有改变,散列值也会发生巨大变化。 2. **压缩函数的分类**: 安全散列函数中使用的压缩函数有两种类型:一是专门设计用于散列功能的函数,如SHA系列;二是基于对称分组密码的函数,如Whirlpool。SHA算法就是这类专门设计的典型代表,而Whirlpool则展示了另一种实现方式。 3. **安全散列算法(SHA)**: SHA,特别是SHA-1,是NIST提出的联邦标准,最初由MD4算法发展而来,但因为存在碰撞攻击的风险,后续发布了SHA-256、SHA-384、SHA-512等更安全的版本。SHA-1曾面临王晓云在Crypto05会议上发布的碰撞攻击方法,促使NIST考虑废弃该版本。 4. **SHA的参数和比较**: SHA算法有严格的输入限制,要求输入不超过264位,输出为160位。它通过分块处理的方式生成信息摘要,每块512位,经过多次迭代生成最终结果。尽管效率略低于MD5,但安全性更高。 5. **消息认证码(MAC)的分类**: 类似散列函数,消息认证码也分为两类:一类是基于安全散列算法的,如HMAC,它结合了密钥和散列函数来提供认证和加密功能;另一类是使用对称分组密码的,如CMAC,它依赖于密钥对数据进行加密后再散列。 6. **SHA-1的弃用与替代**: NIST因碰撞攻击风险而计划弃用SHA-1,建议转向SHA-2等更安全的版本,以确保信息安全。 本章内容深入探讨了散列函数在现代密码学中的核心作用,强调了不同类型的散列和消息认证算法的设计、性能以及安全性的考量,对于理解和应用密码学技术具有重要意义。