第四章 hash函数与消息认证码
- 格式:ppt
- 大小:2.37 MB
- 文档页数:90
消息认证码和哈希函数的区别
消息认证码(MAC)和哈希函数在数据完整性校验和身份验证方面起着关键作用,但在使用和目的上有显著区别。
以下是关于它们的更多细节。
哈希函数,有时也称为散列函数,主要用于从任何长度的数据(例如消息)中创建固定长度的哈希值。
这个哈希值可以看作是输入数据的“指纹”或“摘要”,具有不可逆的特点,也就是说,无法从输出的哈希值逆向推导出原始输入数据。
此外,哈希函数的一个重要特性是它的单向性,意味着如果有人尝试从已知的哈希值中反向生成原始数据,这在计算上是非常困难的,而且时间成本会随着哈希值的增加而急剧上升。
消息认证码(MAC),则是一种更为复杂的机制。
它不仅使用哈希函数,还结合了密钥,为通信双方提供了一种验证消息完整性和来源的方法。
具体来说,MAC算法会将密钥和消息本身结合起来生成一个值,这个值只能由拥有相应密钥的发送方产生。
因此,接收方可以通过比较自己计算的MAC值和接收到的MAC值来验证消息的完整性和来源。
如果两者匹配,则消息被认为是有效的;如果不匹配,则消息可能已被篡改或发送方可能不是预期的发送方。
在实际应用中,例如在数据传输中,哈希函数可以用来检测数据是否在传输过程中发生了变化。
如果接收到的数据的哈希值与原始数据的哈希值不匹配,那么可以认为数据已经损坏或被篡改。
而MAC则可以用来确保数据不仅完整,而且确实来自预期的发送方。
总的来说,哈希函数和MAC都用于验证数据的完整性和来源,但MAC提供了更多的安全性,因为它结合了密钥。
在处理敏感数据或需要在不安全的通信环境中验证数据完整性和来源的情况下,通常会使用MAC。
哈希函数与消息认证码MDSHA等的原理与应用在当今数字化的时代,信息的安全传输和存储变得至关重要。
哈希函数和消息认证码作为保障信息完整性和真实性的重要技术手段,发挥着不可或缺的作用。
接下来,让我们深入了解一下哈希函数与消息认证码 MDSHA 等的原理与应用。
哈希函数,简单来说,就是一种将任意长度的消息压缩成固定长度摘要的函数。
它具有一些独特的特性,比如单向性,即从哈希值很难反推出原始消息;抗碰撞性,意味着很难找到两个不同的消息产生相同的哈希值。
常见的哈希函数有 MD5、SHA-1、SHA-256 等。
以 SHA-256 为例,它会对输入的消息进行一系列复杂的位运算和逻辑操作,最终生成一个 256 位的哈希值。
无论输入的消息有多长,输出的哈希值长度始终固定。
这种特性使得哈希函数在很多领域都有广泛的应用。
在数据完整性验证方面,哈希函数大显身手。
比如,当我们从网上下载一个软件时,发布者通常会同时提供软件的哈希值。
我们在下载完成后,可以对软件计算哈希值,并与发布者提供的哈希值进行对比。
如果两者一致,那么就可以确认软件在传输过程中没有被篡改,保证了数据的完整性。
在密码存储中,哈希函数也起着关键作用。
我们不会直接将用户的密码明文存储在数据库中,而是存储密码的哈希值。
这样,即使数据库被攻击者获取,由于哈希函数的单向性,攻击者也很难从哈希值反推出原始密码,从而保护了用户的密码安全。
消息认证码(MAC)则是一种用于验证消息来源和完整性的机制。
它与哈希函数有相似之处,但又有所不同。
MDSHA 就是其中一种常见的消息认证码算法。
消息认证码的生成通常需要一个共享密钥。
发送方使用这个密钥和要发送的消息计算出一个认证码,并将消息和认证码一起发送给接收方。
接收方使用相同的密钥和接收到的消息重新计算认证码,如果计算出的认证码与接收到的认证码一致,就可以确认消息的来源和完整性。
在网络通信中,消息认证码可以防止恶意攻击者篡改或伪造消息。
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,已知两个输出的差别⽆法推算出输⼊的差别。