图解密码技术 - 数字签名
Contents
数字签名(Digital Signature)是一种相当于现实世界中的盖章、签字的功能在计算机世界中实现的技术,使用数字签名可以识别篡改、伪装、防止否认。
公钥密码与数字签名
在公钥密码中,发送者拥有接收者的公钥,发送者使用公钥对消息进行加密,接收者使用与之对应的私钥进行解密。公钥私钥一一对应。任何人都可以使用公钥对消息进行加密,发送给接收者。

在数字签名中,与公钥密码正好相反。发送者通过私钥对消息进行加密,接收者通过公钥对加密后的消息进行解密。任何人都可以通过公钥对加密后的密文进行解密。

用私钥加密的过程相当于是生成签名,用公钥解密的过程相当于是验证签名。
数字签名的方法
对数字签名的方式有两种:
- 直接对消息进行签名
 - 对消息的散列值进行签名
 
不推荐直接对消息进行签名的方式,因为在使用公钥密码计算签名时,速度会很慢。
数字签名的用途
- 安全信息公告:防篡改
 - 软件下载:防篡改
 - 公钥证书:
 - SSL/TLS
 
针对数字签名的攻击
中间人攻击,假设发送者Alice向接收者Bob发送的公钥被攻击者Eve截获,攻击者Eve将自己的公钥发送给接收者Bob。这样攻击者Eve就能对发送者Alice伪装成接收者,对接收者Bob伪装成发送者。