现代密码学-第5章Hash函数与消息认证
- 格式:ppt
- 大小:749.50 KB
- 文档页数:84
HASH函数进行消息认证的过程一、概念解释我们需要了解什么是HASH函数。
HASH函数是一种对数据进行加密的方法,它通过将输入转换为固定长度的输出,在加密技术中有着重要的作用。
在消息认证中,HASH函数用于验证消息的完整性和真实性,因为它能够将一段消息转换成固定长度的HASH值,任何轻微的改动都会导致HASH值发生巨大变化,从而确保消息内容的完整性和不可篡改性。
二、消息认证的过程接下来,让我们来探讨HASH函数进行消息认证的过程。
在实际应用中,消息认证通常分为以下几个步骤:1. 发送方使用HASH函数对待发送的消息进行HASH运算,得到HASH值。
2. 发送方将消息和HASH值一起发送给接收方。
3. 接收方收到消息后,使用相同的HASH函数对收到的消息进行HASH运算,得到一个新的HASH值。
4. 接收方将计算得到的HASH值与接收到的HASH值进行比较,如果两者一致,则消息没有被篡改;否则,消息被篡改。
这一过程可以确保消息的完整性和真实性,因为只有发送方知道如何对消息进行HASH运算,并且HASH值是通过特定的算法计算得到的,接收方也能通过相同的算法验证消息的完整性和真实性。
三、个人观点和理解在我看来,HASH函数进行消息认证的过程非常重要,特别是在网络通信安全领域。
通过HASH函数,我们可以确保消息在传输过程中不会被篡改,保护通信的安全性。
HASH函数也广泛应用于数字签名、密码学等领域,具有非常重要的意义。
了解HASH函数进行消息认证的过程对于我们拓展知识面、提高信息安全意识具有重要意义。
总结回顾通过本文的介绍,我们了解了HASH函数进行消息认证的过程及其重要性。
消息认证通过HASH函数可以确保消息的完整性和真实性,在信息安全领域有着重要的应用。
我们也对HASH函数的概念和消息认证的过程有了更深入的理解,这对我们在实际应用中能更好地运用HASH函数进行消息认证具有重要帮助。
在实际撰写过程中,我们应该遵循从简到繁、由浅入深的方式来探讨主题,同时也要兼顾总结和回顾性的内容,以便读者能全面、深刻和灵活地理解主题。
4消息认证与哈希函数密码学基础4 消息认证和哈希函数4.1 消息认证 Message Authentication加密抗击被动攻击(获取消息的内容、业务流分析)保密性 Confidentiality消息认证抗击主动攻击(假冒、重放、消息篡改、业务拒绝)真实性 Authenticity对称加密不能保证真实性流密码:主动攻击者通过置乱相应密⽂ bit,可以改变任意明⽂ bit。
ECB 模式分组密码:攻击者记录⼀些过去的密⽂分组,替代新的密⽂分组。
如果分组消息之间不相关,接收者不可能检测到攻击。
公钥加密可以提供保密性,但不能提供认证发⽅ Alice 采⽤收⽅ Bob 的公钥K B P对消息 m 进⾏加密。
只有 Bob 知道⾃⼰的私钥K B S,故只有 Bob 才能对收到的消息准确解密。
任何⼈可以假冒 Alice,⽤ Bob 的公钥K B P对消息 m 加密,因此不能确保发送者⾝份的真实性。
认证⽅式的分类对称认证 Symmetric Authentication通信双⽅相互信任的认证(如企业内部⼈员之间)。
主要防⽌来⾃第三⽅的攻击(如检查⽂件是否被⼈修改过)。
⾮对称认证 Asymmetric Authentication通信双⽅相互不信任的认证(如商业伙伴之间)。
主要防⽌来⾃对⽅的攻击(如查验收到的⽂件是否真实)。
4.2 Hash 函数将任意长的数字串 m 映射为⼀个较短的定长的数字串 h。
⽬标:确定消息是否被修改。
攻击:修改消息后,Hash 值不变。
h=H(m) 满⾜:m 任意长度,h 固定长度快速性:∀m,计算 h 容易单向性:∀h,计算 m 困难弱抗碰撞性:已知m1,寻找m2≠m1满⾜H(m2)=H(m1) 困难强抗碰撞性:∀m1,寻找m2≠m1满⾜H(m2)=H(m1) 困难雪崩效应:m 发⽣很⼩的变动,引起 h 较⼤变动。
完全单向:已知 h ⽆法推算出 m,已知两个输出的差别⽆法推算出输⼊的差别。
第5章 Hash 函数与消息认证习题及参考答案1. 指出强抗碰撞H ash 函数与弱抗碰撞H ash 函数之间的区别。
答:弱抗碰撞H ash 函数是任给一个消息x,寻找另一个不同的消息x ,使得他们的H ash 函数值相等是不可行;强抗碰撞Hash 函数是同时寻找两个不同的消息使得他们的Hash 函数值相等是计算上不看行的,可以看出强抗碰撞Hash 函数一定是弱抗碰撞的。
2. 考虑Gibson Hash 函数h 。
设p 、q 是两个素数,N =p ⨯q ,g 是(Z N )*的生成元。
N 作为公钥,p 与q 作为签名者的私钥。
对任意消息m ,其摘要定义为:h (m )= g m mod N 。
(1) 令N =4897,g =2231。
分别计算消息m =132748,m '=75676的摘要。
(2) 证明:如果得到了两个碰撞的消息,那么就可以求出N 的分解。
(3) 证明:如果得到了N 的分解,那么就可以找到碰撞的消息。
解:(1)由h (m )= g m mod N 。
所以h (132748)=2231132748mod4897=2611 h(75676)=2611(2)证明:若h (m)= h (m ')则有g m mod N= g m ' mod N假设 N 的分解为 N=p*q 所以代入 然后根据中国剩余定理可以解得 p ,q 。
3. 设p 是一个素数,g 1、g 2是(Z p )*的两个生成元,使得离散对数p g g mod log21的计算是困难的。
对任意消息m =(m 1, m 2),定义H ash 函数h 的摘要为:p g g m m h m m mod ),(212121⨯=。
(1) 设p =65867,g 1=11638,g 2=22770。
分别计算消息m =(33123, 11789),m '=(55781, 9871)的摘要。
(2) 证明:求解H ash 函数h 的碰撞等价于计算离散对数p g g mod log21。
消息认证和散列(Hash)函数1 散列函数1.1散列函数的概念1.2 简单散列函数的构造1.3 作为消息认证的散列函数应具有的特性2 基于散列函数的消息认证方式2.1 对称密钥加密方式2.2 公开密钥与对称密钥结合的加密方式2.3公共秘密值方式在网络通信环境中,可能存在下述攻击:1.泄密:将消息透露给没有合法密钥的任何人或程序。
2.传输分析:分析通信双方的通信模式。
在面向连接的应用中,确定连接的频率和持续时间;在面向业务或无连接的环境中,确定双方的消息数量和长度。
3.伪装:欺诈源向网络中插入一条消息,如攻击者产生一条消息并声称这条消息是来自某合法实体,或者非消息接受方发送的关于收到或未收到消息的欺诈应答。
4.内容修改:对消息内容的修改,包括插入、删除、转换和修改。
5.顺序修改:对通信双方消息顺序的修改,包括插入、删除和重新排序。
6.计时修改:对消息的延时和重放。
7.发送方否认:发送方否认发送过某消息。
8.接收方否认:接收方否认接收到某消息。
其中,对付前两种攻击的方法属于消息保密性范畴;对付第3种至第6种攻击的方法一般称为消息认证;对如第7种攻击的方法属于数字签名;对付第8种攻击需要使用数字签名和为抗此种攻击而涉及的协议。
这样归纳起来,消息认证就是验证所收到的消息确实来自真正的发送方且未被修改的消息,它也可验证消息的顺序和及时性。
任何消息认证在功能上基本可看做有两层。
下层中一定有某种产生认证符的函数,认证符是一个用来认证消息的值;上层协议中将该函数作为原语使接收方可以验证消息的真实性。
产生认证符的函数类型通常可以分为以下三类:1.消息加密:整个消息的密文作为认证符。
2.Hash函数:它是将任意长的消息映射为定长的hash值得公开函数,以该hash 值作为认证符。
3.消息认证码(MAC):它是消息和密钥的公开函数,它产生定长的值,以该值作为认证符。
实际上消息认证码也属于Hash函数的范畴,它是带密钥的Hash函数。
哈希函数与消息认证码MDSHA等的原理与应用在当今数字化的时代,信息的安全传输和存储变得至关重要。
哈希函数和消息认证码作为保障信息完整性和真实性的重要技术手段,发挥着不可或缺的作用。
接下来,让我们深入了解一下哈希函数与消息认证码 MDSHA 等的原理与应用。
哈希函数,简单来说,就是一种将任意长度的消息压缩成固定长度摘要的函数。
它具有一些独特的特性,比如单向性,即从哈希值很难反推出原始消息;抗碰撞性,意味着很难找到两个不同的消息产生相同的哈希值。
常见的哈希函数有 MD5、SHA-1、SHA-256 等。
以 SHA-256 为例,它会对输入的消息进行一系列复杂的位运算和逻辑操作,最终生成一个 256 位的哈希值。
无论输入的消息有多长,输出的哈希值长度始终固定。
这种特性使得哈希函数在很多领域都有广泛的应用。
在数据完整性验证方面,哈希函数大显身手。
比如,当我们从网上下载一个软件时,发布者通常会同时提供软件的哈希值。
我们在下载完成后,可以对软件计算哈希值,并与发布者提供的哈希值进行对比。
如果两者一致,那么就可以确认软件在传输过程中没有被篡改,保证了数据的完整性。
在密码存储中,哈希函数也起着关键作用。
我们不会直接将用户的密码明文存储在数据库中,而是存储密码的哈希值。
这样,即使数据库被攻击者获取,由于哈希函数的单向性,攻击者也很难从哈希值反推出原始密码,从而保护了用户的密码安全。
消息认证码(MAC)则是一种用于验证消息来源和完整性的机制。
它与哈希函数有相似之处,但又有所不同。
MDSHA 就是其中一种常见的消息认证码算法。
消息认证码的生成通常需要一个共享密钥。
发送方使用这个密钥和要发送的消息计算出一个认证码,并将消息和认证码一起发送给接收方。
接收方使用相同的密钥和接收到的消息重新计算认证码,如果计算出的认证码与接收到的认证码一致,就可以确认消息的来源和完整性。
在网络通信中,消息认证码可以防止恶意攻击者篡改或伪造消息。