您的位置:首页 > 汽车 > 时评 > 现代密码学-数字签名

现代密码学-数字签名

2024/12/28 19:04:06 来源:https://blog.csdn.net/weixin_40042143/article/details/139420942  浏览:    关键词:现代密码学-数字签名

从消息认证码到数字签名

前面讲到,消息认证码无法防止否认,A,B之间共享密钥计算出MAC,A,B都能计算出MAC,对于第三方C来说,他无法证明这个MAC是A计算的还是B计算的。

通过数字签名解决问题。

A,B各自使用不同的密钥-公钥密码,A用私钥生成一个签名,B可以用A公开的公钥进行验证。

签名的生成和验证

数字签名中的两种行为:

        生成消息签名

        验证消息签名

数字签名:将公钥密码反过来用,

私钥公钥
公钥密码接收者解密使用发送者加密使用
数字签名签名者生成签名使用验证者验证签名使用
个人持有公开

数字签名的方法

直接对消息签名

  1. A用私钥对消息进行加密
  2. A将消息和签名发给B
  3. B用A的公钥对收到的签名进行解密
  4. B将解密出来的消息和A发的消息进行对比

直接对消息签名

对消息的散列值签名

A用单向散列函数计算消息的散列值

A用自己的私钥对散列值加密

A将消息和签名发给B

B用A的公钥对收到的签名进行解密

B将解密得到的散列值和A发来的消息的散列值进行比较

对消息的散列值签名

对消息的散列值签名时序图 

使用公钥密码的私钥生成签名,主要是利用了私钥只有特定的人才持有这一特性。签名和消息是具有对应关系的,消息不同,签名内容不同。如果将一份签名提取出来放在另一个消息后面,验证签名的时候会失败。

应用实例

安全信息公告

软件下载

公钥证书

SSL/TLS

对数字签名的攻击

中间人攻击:确认自己得到的公钥是否真的是通信对象的

单向散列函数攻击:散列函数抗碰撞性

利用数字签名攻击公钥密码-不要直接对消息进行签名,对散列值进行签名更安全;公钥密码和数字签名分别使用不同的密钥

数字签名无法解决的问题

数字签名可以识别出篡改和伪装,还可以防止否认。前提条件是用于签名的公钥属于真正的发送者。数字签名用来识别消息篡改、伪装及否认,但我们必须从一个没有被伪装的发送者得到没有被篡改的公钥才行----死循环。

怎样才能确认自己得到的公钥是合法 的 ---使用证书。那么证书又由谁来颁发才安全呢?---公钥基础设施PKI

 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com