网络安全之数字签名

数字签名定义

数字签名就是对数字信息进行签名,以防止他人对信息进行伪造和篡改,也可以用于身份识别

数字签名的特性

  • 签名是可信的
  • 签名的信息是不可篡改的
  • 签名是不可复制的
  • 签名是不可伪造的
  • 签名是不可抵赖的

简而言之,某人对某信息进行签名可以证明:这个信息是这个人写的,且无其他人进行修改。

数字签名的原理

背景环境:小明对信息M进行签名,并发送给小红,小红校验信息以确保该信息是小明发送的,且未被篡改

小明对信息进行处理

  1. 小明用hash函数对信息 M 进行 hash处理 ,得到信息摘要 M’(hash值)
  2. 小明使用自己的 私钥 对摘要值 M’ 进行加密,得到签名文本 S (签名,证书次hash值由小明创建)
  3. 小明使用小红的 公钥S进行加密,得到加密的签名文本 S’ (加密,防止他人修改hash值)
  4. 小明将M和**S’**发送给小红

小红收到信息后,验证信息M使用小红发出的和信息M未被篡改

  1. 小红用自己的 私钥S’ 进行解密,得到签名文本 S
  2. 小红用小明的公钥S 进行解密,得到信息摘要 M’
  3. 小红用同样的hash函数对信息 M 进行hash处理,得到信息摘要 M’'
  4. M’M’’ 进行比较,若相同,则信息M由小明撰写发送,且未被篡改

数字签名原理的论证

首先,对于任意信息M有且只有一个hash值(对于同一个hash函数),且很难找到2个有相同hash值的 信息M,故信息M与其hash值在很大程度上有这一 一对应的特点。
其次,小明使用了自己的私钥对信息摘要 M’ 进行加密签名,故他人无法在不破坏签名的基础上对信息摘要M’进行修改,故无法同时随意修改信息M
再其次,对小明用小红的私钥对签名文本S进行了加密,故他人并不知道真实的hash值,故无法找到拥有相同hash值的另一个信息对信息M做替换篡改。
综上所述,攻击者既无法将篡改后的信息的hash值替换原hash值,也无法通过已知hash值找到另一个拥有相同hash值的信息对M进行替换,所以在理论上很难伪造数字签名和篡改签名后的信息

一家之言,请多指教

posted on 2020-04-14 20:21  createwell  阅读(758)  评论(0编辑  收藏  举报