消息认证(Message Authentication)
- 格式:ppt
- 大小:607.00 KB
- 文档页数:46
第七讲散列函数与消息认证码马春光machunguang@计算机科学与技术学院哈尔滨工程大学1 /•网络安全威胁:–被动攻击(Passive Attack):敌手通过侦听和截获等手段获取数据;–主动攻击(Active Attack):敌手通过伪造、重放、篡改、乱序等手段改变数据;图1 无线网络中的四种通信安全威胁(a)监听;(b)篡改;(c)伪造;(d)阻断2 /•消息认证(Message Authentication)的目的:–验证消息的完整性,确认数据在传送和存储过程中未受到主动攻击。
•消息认证的方式:–消息加密函数:加密整个消息,以消息的密文文件作为认证,可使用对称密码或公钥密码体制进行加密;–散列函数(Hash):将任意长度的消息变换为定长的消息摘要,并加以认证;–消息认证码(MAC):依赖公开的函数(密钥控制下)对消息处理,生成定长的认证标识,并加以认证;3 /提纲•1 散列函数–1.1 散列函数的定义–1.2 散列函数的通用结构–1.3 MD5•2 消息认证码–2.1 MAC函数–2.2 MAC的安全性–2.3 CBC-MAC•作业4 /提纲•1 散列函数–1.1 散列函数的定义–1.2 散列函数的通用结构–1.3 MD5• 2 消息认证码•作业5 /散列函数的定义•散列函数H 是一个公开的函数,它将任意长度的消息M变换为固定长度的散列码h 。
•h=H (M)–M:变长消息,H(M):定长的散列值•散列函数是一种算法,算法的输出内容称为散列码或者消息摘要。
•消息摘要要唯一地对应原始消息,如果原始消息改变并且再次通过散列函数,它将生成不同的消息摘要,因此散列函数能用来检测消息地完整性,保证消息从建立开始到收到为止没有被改变和破坏。
•运行相同算法的接受者应该收到系统的消息摘要,否则保温是不可信的。
•散列函数又称为:哈希(Hash )函数、数字指纹(Digital fingerprint)、压缩(Compression)函数、数据认证码(DataAuthentication Code)等6 /散列函数的要求•H 能用于任意大小的分组;•H 能产生定长的输出;•对任何给定的x,H(x)要相对易于计算,使得硬件和软件实现成为实际可能;•对任何给定的码h ,寻找x 使得H(x)=h 在计算上是不可行的,即单向性(one-way);•对任意给定的分组x,寻找不等于x 的y,使得H(x)=H(y)在计算上是不可行的,即弱抗冲突性(Weak Collision-free);•寻找对任意的(x, y) 对使得H(x)=H (y) 在计算上是不可行的,即强抗冲突性(Strong Collision-free);7 /提纲•1 散列函数–1.1 散列函数的定义–1.2 散列函数的通用结构–1.3 MD5• 2 消息认证码•作业8 /2.2 Hash函数的通用结构•由Ron Rivest于1990年提出MD4•几乎被所有Hash函数使用•具体做法:–把原始消息M分成一些固定长度的块Y i–最后一块padding 并使其包含消息M长度–设定初始值CV0–压缩函数f, CV i=f(CV i-1, Y i-1)–最后一个CV i为Hash值9 //提纲•1 散列函数–1.1 散列函数的定义–1.2 散列函数的通用结构–1.3 MD5• 2 消息认证码•作业11 /MD5 描述•1989年,Merkle提出Hash function模型•1990年,Ron Rivest提出MD4•1992年, Ron Rivest完成MD5 (RFC 1321) –/rfcs/rfc1321.html•在最近数年之前,MD5是最主要的Hash算法•现行美国标准SHA-1以MD5的前身MD4为基础•MD5(Message Digest)–输入:任意长度的消息–输入分组长度:512 bit–输出:128 bit 消息12 /(4)(3)13 /14/MD5 描述-(1)•消息填充•对消息进行填充,使其比特数与448模512同余,即填充长度为512的整数倍减去64,留出64比特在(2)中使用:•填充方法:填充比特串的最高位为1,其余各位均为0。
密码技术模型
密码技术模型是一种用于描述密码技术的概念性、理论模型,通常包括密码学的基本要素、假设、算法和安全性分析等方面。
以下是几种常见的密码技术模型:
1. 传统密码模型(Classical Cryptography Model):传统密码
模型主要用于描述古典密码技术,如凯撒密码和仿射密码等。
它通常包括明文空间、密文空间、密钥空间、加密算法和解密算法等。
2. 非对称密码模型(Asymmetric Cryptography Model):非对
称密码模型是一种基于两个互相关联、但具有不同的密钥的密码模型,也称为公钥密码模型。
它通常包括公钥空间、私钥空间、加密算法和解密算法等。
3. 对称密码模型(Symmetric Cryptography Model):对称密
码模型是一种基于相同密钥进行加密和解密的密码模型。
它通常包括密钥空间、加密算法和解密算法等。
4. 散列函数模型(Hash Function Model):散列函数模型用于
描述散列函数的基本特性和安全性要求。
它包括散列函数的输入空间、输出空间、安全性要求和安全性分析等。
5. 消息认证码模型(Message Authentication Code Model):消息认证码模型用于描述消息认证码的基本特性和安全性。
它通常包括消息认证码的输入空间、输出空间、密钥空间、安全性要求和安全性分析等。
需要注意的是,以上只是几种常见的密码技术模型,实际上还有其他的密码技术模型,如基于标签的密码模型、公钥基础设施模型等,每种模型都有其特定的应用领域和技术要求。
哈希算法分类“哈希算法分类”哈希算法是计算机科学中常用的一种算法,用于将任意长度的数据映射为固定长度的哈希值。
根据不同的特性和应用场景,哈希算法可以分为以下几类:1.散列函数(Hash Function):这是哈希算法最基本的分类。
散列函数接受输入,并将其映射为固定长度的哈希值。
常见的散列函数有MD5、SHA-1、SHA-256等。
散列函数具有快速计算、哈希值分布均匀等特点,常用于数据校验、密码存储等场景。
2.消息认证码(Message Authentication Code,MAC):MAC是一种基于密钥的哈希算法。
它使用一个密钥将输入数据和哈希值绑定在一起,以实现数据完整性和认证。
常见的MAC算法有HMAC、CMAC 等。
MAC算法广泛应用于数据完整性验证、数字签名等领域。
3.消息摘要(Message Digest):消息摘要是一种单向哈希函数,它将输入数据映射为固定长度的哈希值,但无法从哈希值恢复原始数据。
常见的消息摘要算法有SHA-1、SHA-256等。
消息摘要广泛应用于密码学、数据完整性验证等场景。
4.布隆过滤器(Bloom Filter):布隆过滤器是一种概率型数据结构,用于判断一个元素是否属于一个集合。
它使用多个散列函数将输入数据映射到位图中,并根据位图的结果进行判断。
布隆过滤器具有高效的查询速度和节省内存的特点,常用于缓存、数据去重等场景。
5.跳跃一致性哈希(Jump Consistent Hash):跳跃一致性哈希是一种特殊的哈希算法,用于实现分布式哈希表中的数据分布。
它通过将输入数据映射到一个范围内的整数值,并基于这个整数值选择相应的服务器节点。
跳跃一致性哈希算法具有高效的负载均衡和节点扩缩容特性,被广泛应用于分布式缓存、分布式数据库等场景。
在使用哈希算法时,需要根据具体的应用场景选择适合的算法类型。
同时,为了保障数据的安全性和完整性,还需要注意选择安全性较高的算法,并合理使用密钥和盐值等技术手段。
消息认证算法一、介绍消息认证算法(Message Authentication Algorithm)是一种用于验证消息完整性和真实性的算法。
在信息传输过程中,为了防止消息被篡改或伪造,需要使用消息认证算法对消息进行保护。
本文将介绍消息认证算法的基本原理、常见的算法以及应用场景。
二、基本原理消息认证算法的基本原理是通过对消息进行加密和生成消息认证码(Message Authentication Code,MAC),然后将消息和MAC一起传输给接收方。
接收方在接收到消息后,使用相同的算法对消息进行解密,并重新生成MAC。
如果接收到的MAC与重新生成的MAC相符,则说明消息没有被篡改或伪造。
三、常见的算法3.1 HMACHMAC(Hash-based Message Authentication Code)是一种基于散列函数的消息认证算法。
它使用一个密钥和一个散列函数来生成MAC。
常用的散列函数有MD5、SHA-1、SHA-256等。
HMAC算法具有高效、安全和可靠的特点,被广泛应用于网络通信、数字签名等领域。
3.2 RSARSA(Rivest-Shamir-Adleman)是一种非对称加密算法,也可以用于消息认证。
RSA算法使用两个密钥,一个公钥和一个私钥。
发送方使用私钥对消息进行签名,接收方使用公钥对签名进行验证。
RSA算法具有较高的安全性,但计算量较大,适用于对安全性要求较高的场景。
3.3 DSADSA(Digital Signature Algorithm)是一种数字签名算法,也可以用于消息认证。
DSA算法使用一个密钥对,包括一个私钥和一个公钥。
发送方使用私钥对消息进行签名,接收方使用公钥对签名进行验证。
DSA算法具有较高的安全性和较快的计算速度,适用于对计算效率要求较高的场景。
3.4 ECDSAECDSA(Elliptic Curve Digital Signature Algorithm)是一种基于椭圆曲线的数字签名算法,也可以用于消息认证。
消息认证码的工作原理
消息认证码(Message Authentication Code,MAC)是一种用
于验证消息完整性和真实性的技术。
它采用密码学算法对消息进行处理,并生成一个固定长度的认证码,该认证码用于验证消息是否被篡改。
MAC的工作原理基于对称密钥密码体制,包括生成和验证两
个步骤:
1. 生成认证码:
a. 首先,将消息和一个秘密密钥输入到MAC算法中。
b. MAC算法通过运行一系列加密、哈希和位运算等操作来
加工消息。
c. 最终,MAC算法生成一个固定长度的认证码,它与消息
绑定在一起,用于验证消息完整性和真实性。
2. 验证认证码:
a. 接收者通过使用相同的秘密密钥和相同的MAC算法对接
收到的消息进行处理,生成一个新的认证码。
b. 将生成的认证码与接收到的消息携带的认证码进行比较。
c. 如果两个认证码相同,则说明消息没有被篡改;如果不同,则说明消息可能已经被篡改或被篡改过程中引入了错误。
MAC的安全性依赖于以下两个关键要素:
1. 秘密密钥:发送方和接收方必须共享一个秘密密钥,只有知道该密钥的人才能正确生成和验证认证码。
2. 强大的算法:MAC算法需要具备抗碰撞、抗信息泄露和强
抗击穷举等特性,以确保攻击者无法通过暴力破解或其他手段伪造有效的认证码。
需要注意的是,MAC仅用于验证消息的完整性和真实性,并不提供消息的保密性。
如果需要同时实现消息的完整性、真实性和保密性,可以结合使用MAC和对称密钥加密算法进行操作。