信息安全概论:Hash函数概念与性质

信息安全除了要保障信息的机密性外,还要保障信息在存储、使用、传输过程中不被非法篡改,即信息的完整性。
Hash函数可以将“任意长度“的输入经过变换以后得到固定长度的输出,也称为消息摘要。
消息摘要能有用于完成消息的认证功能,消息认证是保证信息完整性的重要措施。
Hash函数也成散列函数、哈希函数、杂凑函数等,是密码学的一个重要分支,Hash函数可以看做是一种单向密码体制,即它是从一个明文到密文的不可逆映射,即只有加密过程,不能解密。

Hash函数的基本概念
Hash函数的单向特征和输出数据长度固定的特征使得它可以生成消息或其他数据块的“数据指纹”(消息摘要或hash值),用于消息认证和数字签名等区域。
hash值的生成过程可以表示为h=H(M),其中M是“任意”长度的消息,H是hash函数,h是固定长度的hash值。

  • H可以用于“任意”长度的消息,“任意”是指实际存在的
  • H产生的hash值是固定长度的,这是hash函数的基本性质
  • 对于任意给定的消息M,容易计算H(M)值,这是要求hash函数的可用性。

Hash函数的性质

  • 抗第一原像(单向性):对于给定的hash值h,要找到M使得H(M)=h在计算上是不可行的
  • 抗第二原像(抗弱碰撞性):对于给定的消息M1,要发现另一个消息M2,满足H(M1)=H(M2)在计算上是不可行的
  • 抗强碰撞性:找任意一对不同消息M1、M2,使H(M1)=H(M2)在计算上是不可行的

消息对应hash值的每一比特应与消息的每一个比特有关联
当消息原文发生改变时,求得的消息摘要必须相应的变化

hash函数结构
hash函数的设计主要分为两类:

  • 基于加密体制实现,例如使用对称分组密码算法的CBC模式来产生hash值
  • 直接构造复杂的非线性关系实现单向性,是目前使用较多的设计方法

典型的hash算法中著名的是MD系列和SHA系列

消息认证技术

  • 消息认证的目的主要包括:验证信息来源的真实性和验证消息的完整性
    消息认证码是一种重要的消息认证技术,利用消息和双方共享密钥通过认证函数来生成一个固定长度的短数据块,并将该数据块附在消息后
  • 消息认证码是与密钥相关的hash函数,也称消息鉴别码
    消息认证码与hash函数类似,都具有单向性,此外消息认证码还包括一个密钥
    不同的密钥会产生不同的hash函数,这样就能在验证消息没有经过篡改的同时,验证是由哪个发送者发送的

消息认证码的实现过程
在这里插入图片描述

由于消息在发送过程中是明文形式,所以只提供认证性而未提供保密性
提供保密性可在生成MAC之后或之前进行一次加密,而且加密密钥也需被收发双方共享
通常希望直接对明文进行认证,因此先计算MAC再加密的使用方式更为常用
MAC算法与加密算法类似,不同之处是MAC不必是可逆的,因此与加密算法相比更不易被攻破

生成消息认证码的方法主要包括:基于加密函数的认证码和基于hash的认证码

猜你喜欢

转载自blog.csdn.net/weixin_43916678/article/details/105272920