密码学与网络安全 - 11 密码学Hash函数

11 密码学Hash函数

Hash函数输入长度可变,而输出长度固定

合格的Hash函数输出应该均匀分布,看起来随机

Hash函数两个要求:1. 抗碰撞性(找到两个不同的输入对应相同的输出在计算上不可行),2.单向性(通过Hash值找到输入值在计算上不可行)

Hash函数的操作过程:

  1. 把输入数据的长度填充成固定长度分组的整数倍,填充内容包括原始消息的位长度信息,填充长度信息能够增加攻击者更改数据而要保持hash值不变的难度

11.1 密码学Hash函数的应用

Hash函数用于各种安全应用和网络协议中

11.1.1 消息认证

用于检验消息的完整度,有两件事情要做:1.是确保数据正确,2是确保发送方的身份真实

并且当提供消息认证功能时,Hash值通常称为信息摘要

操作过程:发送者先将信息M(以后均用M代表信息)进行Hash,然后将【M+Hash】一起发送给B,B再做一次Hash运算将结果与Hash值比较,相同则没有篡改

注意:此种情况下必须保证Hash的安全传输,因为中间人攻击完全可以改完信息之后再算一个新的Hash值,接收者并不会发现

使用不同方法提供消息认证服务

  1. 使用对称密码一起加密M和Hash:认证功能+保密性
  2. 使用对称密码只加密Hash:认证功能
  3. 不使用加密算法,但是使用一个双方都知道的秘密值S和M一起计算Has

你可能感兴趣的:(#,密码学与网络安全,哈希算法,web安全,安全,Hash函数,消息认证)