CISP——散列函数(哈希函数)与消息鉴别

散列函数(也叫哈希函数)

  • 将任意长度的消息映射陈一个较短的定长输出报文的函数
  • 作用:完整性校验
  • 主要算法:MD5、SHA-1
  • 数学性质
    • 单向性
    • 弱抗碰撞性
    • 强抗碰撞性

基于hash的模型

CISP——散列函数(哈希函数)与消息鉴别_第1张图片

散列函数(哈希函数)与消息鉴别

Hash函数的特点

        可以应用到任意长度的数据上

        可以生成大小固定的输出

        对于任意给定的x,H(x)的计算相对简单

        对于给定的散列值h,要发现满足于H(x)=h的x在计算上是不可行的

        对于给定的消息x,要发现另一个消息y满足于H(y)=H(x)在计算上是不可行的

        主要的散列算法:MD5(128位)、SHA(160位)等

散列的碰撞

        原因:数学上分析是完全存在的——对源数据无限制,转换为固定大小(有限,有范围)

        如——MAD52^128SHA-12^160

                        则SHA相对更安全

MD5算法

MD:MessageDigest,消息摘要

  • 输入:任意长度的消息(无限制
  • 输出:128位消息摘要(空间为2^128)
  • 处理:512位输入数据块为单位

SHA-1算法

SHA(Secure Hash Algorithm,安全哈希算法)由美国国家标准技术研究所NIST开发,作为联邦信息处理标准于1993年发表(FIPSPUB180),1995年修订,作为SHA-1(FIPSPUB180-1),SHA-1基于MD4设计

  • 输入:最大长度为2^64的消息(有限制)
  • 输出:160位消息摘要(空间为2^160)
  • 处理:512位输入数据块为单位

对比

SHA-1/MD5

散列长度

安全性(相对来说)

速度(相对来说)

SHA-1

160bits

相对较高,但是SHA-1的设计原则没有公开

相对较慢

MD5

128bits

相对较低(原因:128bits<160bits)

相对较快

数字签名

  • 附加在数据单元上的一些数据,或是对数据单元所做的密码变换,这种数据或变换能使数据单元的接收者确认数据单元来源和数据单元的完整性,并保护数据,防止被人伪造
  • 作用
    • 不可伪造性
    • 不可否认性
    • 保证消息完整性

基于RSA的数字签名——抗抵赖性模型

1、

2、

CISP——散列函数(哈希函数)与消息鉴别_第2张图片

CISP——散列函数(哈希函数)与消息鉴别_第3张图片

注:用户A拿自己的私钥加密hash的过程就是数字签名

数字签名的基本条件

  • 签名者不能否认自己的签名
  • 接受者能够验证签名,而其他任何人都不能伪造签名
  • 当关于签名的真伪发生争执时,存在一个仲裁机构或第三方能够解决争执

注:保护好自己的私钥

你可能感兴趣的:(CISP,密码学,哈希,hash,安全)