图解密码技术——第九章 数字签名

1、介绍

 使用签名秘钥生成数字签名、使用验证秘钥验证数字签名是不是发送者的。

使用验证秘钥是无法生成数字签名的

2、方法

  • 直接对消息进行数字签名

  • 对消息的散列值进行数字签名

3.疑问

数字签名没有对信息进行加密,不能保证机密性

只有持有该密钥的人才能够生成的信息,称为认证符号。数字签名就是一种认证符号

消息和数字签名可以被篡改,但是无法通过验证。

如果数字签名被重复使用,由于信息不同,也无法通过验证。

Q:带有数字签名的合同是计算机文件,无法保证是否留存副本。那么如何作废合同

  • 写一份文书,声明该合同上的公钥作废,加上数字签名
  • 在合同上声明消息的有效期,加上数字签名

Q:如何防止否认?

消息认证码的秘钥由双方共享,所以第三方无法确定该消息由谁发送。但是数字签名只有发送者才能生成。

Q:数字签名能够代替纸质签名和印章吗?

暂时不能。我们在签名时不能确保该软件是否安全,签名的可能是另一个文件。

4.具体事例

  • 安全信息公告
  • 软件下载——防止被篡改
  • 公钥证书——保证公钥合法,对公钥进行数字签名
  • SSL/TLS——认证服务器身份是否合法

五、RSA实现数字签名

1.用RSA进行加密

在RSA中,所有的数据都是数字,如果消息不是数字,要先将消息变为数字

2.由RSA进行解密

六、其他方式实现数字签名

1、ElGamal——公钥密码和数字签名(有漏洞)

2.DSA——数字签名

3.Rabin——公钥密码和数字签名

七、对数字签名的攻击

1、中间人攻击

防御方法

打电话和对方确认公钥,为了方便,计算公钥的散列值,对比散列值,这个散列值叫做指纹。

在密码软件PGP中。定义了一套单词表,以方便在在电话中确认指纹,该单词表称为生物识别单词表,其中包括256个容易通过声音来识别的单词。

PGP在用16进制序列显示签名指纹的时候还会显现出对应的单词序列,这样就可以通过口头确认了。如果不能通过电话确认,可以使用公钥证书。

2.对单项散列函数攻击

用于消息相同散列值的消息替换消息

3.使用数字签名攻击公钥密码

公钥密码与数字签名的加解密公式相反,如果公钥密码与数字签名使用的密钥对一样,就容易被破解。只要Mallory将密文发给Alice,让其进行数字签名,就可以破解密文,但这样风险较大。

防御方式

  • 对消息的散列值进行数字签名,不要对消息进行签名
  • 公钥密码和数字签名最好使用不同的密钥对

4.其他攻击

攻击公钥密码的方法可以用来攻击数字签名

八、对比

九、数字签名无法解决的问题

无法确认公钥是否合法,这需要使用证书。

公钥以及数字签名成为一种社会性基础设施,即公钥基础设施,简称KPI

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值