【CN007】数据安全笔记7 —— 哈希函数与数字签名

笔者:YY同学

生命不息,代码不止。好玩的项目尽在GitHub



哈希函数(Hash Function)

哈希实质上是一个映射,哈希函数的作用是将变长的数据映射成定长的数据。期间可能会有多个原像(pre-image)对应到同一个输出上,一个好的哈希函数会让这些分布尽可能看上去随机。
在这里插入图片描述


哈希函数必须满足的三个标准

  1. 原像抗性(preimage resistance)

给出哈希值 y,攻击者会设法找出一个原像 M’ 满足 y=h(M’) 来破解哈希函数,因此我们的哈希函数不能轻易让攻击者找出这样的原像 M’,这叫做原像抗性。
在这里插入图片描述

  1. 第二原像抗性(Second Preimage Resistance)

第二原像抗性又称弱碰撞抗性。给出原像 M 和哈希函数 h(M),攻击者会设法找出另一个不等于 M 的原像 M’ 满足 h(M)=h(M’),第二原像抗性是指不让攻击者轻易找到这样的 M’
在这里插入图片描述

  1. 碰撞抗性(Collision Resistance)

如果不给出任何条件,攻击者没办法找出两个不同的原像 MM’ 满足 h(M)=h(M’),那么该哈希函数具有碰撞抗性。通过生日悖论(Birthday Paradox)我们可以算出,破坏碰撞抗性比破坏第二原像抗性更容易(在一定数量的一群人中,找出两个生日是同一天的人的概率要大于找出一个和自己生日同一天的人的概率)。
在这里插入图片描述


认证(Authentication)

  • 认证对象
    • 数据:数据在传输途中是否被修改过
    • 数据源:发送数据方是否是特定的对象而不是冒名顶替者
  • 认证方法
    • 对称密钥加密
    • Message Authentication Codes(MAC)
    • 哈希函数
    • 公私钥加密(数字签名)

数字签名(Digital Signature)

用于认证该信息是否为特定的人寄出以及验证数据完整性(数据是否被更改)。就像父母在孩子的考卷上签名一样,如果不是孩子的父母签的名字,或者已签名考卷的签名部分被涂改过,那么该签名就会和之前的不一样,一经比对就能发现端倪。同理,如果信息不是特定人发送,或者签名过后信息被修改,那么数字签名就会和之前截然不同。此外,数字签名会和信息一并寄送给收信方。

  • 传统模式(无 Key)
    在这里插入图片描述

  • 公钥私钥模式(发送方生成一对 Key,私钥加密,公钥解密)
    在这里插入图片描述


三种数字签名算法

  • ElGamal Scheme
    在这里插入图片描述
    在这里插入图片描述
  • Schnorr Scheme
    在这里插入图片描述
    在这里插入图片描述
  • Digital Signature Algorithm(DSA)
    在这里插入图片描述
    在这里插入图片描述

其他签名算法

  • MD5
    在这里插入图片描述

  • SHA
    在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值