数字签名

荒凉一梦 提交于 2019-12-02 12:17:43

一、数字签名简介

数字签名过程的一般模型:
在这里插入图片描述
在这里插入图片描述
在收发双方不能完全信任的情况下,需要除认证之外的其他方法来解决他人伪造或当事人否认的问题。
数字签名是解决这个问题最好的方法。

数字签名必须具有的特征:

  • 验证签名者、签名日期和时间(消息来源
  • 认证被签的消息内容(数据完整性
  • 签名由第三方仲裁以解决争执

数字签名具有认证功能。

攻击:
在这里插入图片描述
伪造:
在这里插入图片描述
在这里插入图片描述
数字签名应满足的条件:
在这里插入图片描述
直接数字签名:
只涉及通信双方(发收双方)的数字签名方案
假定接收方已知发送方的公钥,用共享的密钥(对称密码)对整个消息和签名加密,则可以获得保密性
先进行签名,再执行外层的加密,在发生争执时,第三方可以查看消息及签名。
该方法的有效性依赖于发送方私钥的安全性。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

二、数字签名算法(DSA)

使用安全Hash算法(SHA),最新版本还包括基于RSA和椭圆曲线密码的数字签名算法。
两种数字签名的方法:
在这里插入图片描述
DSA使用的是只提供数字签名功能的算法,与RSA不同,DSA虽然是一种公钥密码方案,但不能用于加密或密钥交换。
在RSA方法中,Hash函数的输入是要签名的消息,输出是定长的Hash码,用发送方的私钥将该Hash码加密成签名,然后发送消息及其签名。接收方收到消息,计算Hash码。接收方用发送方的公钥对签名解密,如果计算出的Hash码与解密出的结果相同,则认为签名是有效的。因为只有发送方拥有私钥,所以只有发送方能够产生有效的签名。
DSA方法也使用Hash函数,它产生的Hash码和为此次签名而产生的随机数k作为签名函数的输入,签名函数依赖于发送方的私钥和一组参数,这些参数为一组通信伙伴所共有,我们可以认为这组参数构成全局公钥。签名由两部分组成,标记为s和r。
在这里插入图片描述
DSA是建立在求离散对数之困难性以及ElGamal和Schnorr最初提出的方法之上。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

三、椭圆曲线数字签名算法(ECDSA)

在这里插入图片描述
在这里插入图片描述

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!