图解密码技术笔记数字签名——消息到底是谁写的
Posted nceuaprsf
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了图解密码技术笔记数字签名——消息到底是谁写的相关的知识,希望对你有一定的参考价值。
数字签名(digital signature)
数字签名是一种将相当于现实世界中的盖章,签字的功能在计算机世界中进行实现的技术。使用数字签名可以识别篡改和伪装,还可以防止否认。
签名的生成和验证:
生成消息签名是由消息的发送者完成,生成签名就是根据消息内容计算数字签名的值
验证数字签名是由接受者完成,验证签名就是检查该签名是否属于发送者
发送者使用“发送者的私钥”来进行签名,接受者使用“发送者的公钥”验证签名
数字签名就是将公钥签名“反过来用”而实现的:
私钥 | 公钥 | |
---|---|---|
公钥密码 | 接受者解密时使用 | 发送者加密时使用 |
数字签名 | 签名者生成签名时使用 | 验证者验证签名时使用 |
数字签名的方法
1 直接对消息进行签名(实际上并不会使用)
2 对消息的散列值进行签名(实际中一般使用这种方法):
通过RSA实现数字签名
用RSA生成签名:
在RSA中,被签名的消息,密钥以及最终生成的签名都是以数字形式表示的,在对文本进行签名时,需先将文本编码成数字
签名=消息^D mod N (RSA生成签名)
这里的D和N就是签名者的私钥。签名就是对消息的D次方求modN的结果
用RSA验证签名:
由签名求得的消息=签名^E mod N (RSA验证签名)
这里的E和N就是签名者的公钥。接受者计算签名的E次方并求modN,得到“由签名得到的消息”,将其与发送者直接发送的消息内容进行对比,如果内容一样则签名通过
其他的数字签名:
EIGamal:可用于公钥密码和数字签名
DSA:只能用于数字签名
Rabin:可用于公钥密码和数字签名
各种密码技术的对比
密钥是机密性的精华,散列值是完整性的精华
对称密钥 | 公钥密钥 | |
---|---|---|
发送者 | 用共享密钥加密 | 用公钥加密 |
接受者 | 用共享密钥解密 | 用私钥解密 |
密钥配送问题 | 存在 | 不存在,但公钥需要认证 |
机密性 | Yes | Yes |
消息认证码 | 数字签名 | |
---|---|---|
发送者 | 用共享密钥计算MAC值 | 用私钥生成签名 |
接受者 | 用共享密钥计算MAC值 | 用公钥验证签名 |
密钥配送问题 | 存在 | 不存在,但公钥需要认证 |
完整性 | Yes | Yes |
认证 | Yes | Yes |
防止否认 | No | Yes |
以上是关于图解密码技术笔记数字签名——消息到底是谁写的的主要内容,如果未能解决你的问题,请参考以下文章