数字签名
出现的原因:
对称加密算法、公开密钥算法都不能防止抵赖。数字签名的目的是为了防抵赖。
抵赖的概念:
A、B、C三方共享同一对称加密算法,A向B发送了消息后可以抵赖说消息不是他发送的,因为C也有相同的密钥,B无法证明消息的来源是A还是C。
抵赖出现的根本原因在于通信双方无法确认对方的身份,不能进行身份验证。
数字签名技术:
密码学中,以PSA密钥对为例,私钥只有密钥对的生成者持有,如果不考虑密钥泄漏的问题,私钥持有者使用密钥签署一条消息,然后发送给任意的接收方,接收方只要拥有私钥对应的公钥,就能成功反解签署消息,由于只有私钥持有者才能“签署”消息,不能抵赖说这条签署消息不是他发送的。
数字签名技术的特点:
- 防篡改:数字不会被修改
- 防抵赖:消息签署者不能抵赖
- 防伪造:发送的消息不能够伪造
数字签名的流程
签名生成流程:
- 发送者对消息计算摘要值
- 发送者用私钥对摘要值进行签名得到签名值
- 发送者将原始消息和签名值一同发送给接收者
注:1、数字签名技术的本质不是加密,所以和签名值一同传递的消息不是用加密的,当然也可以对消息加密后再计算签名值
2、数字签名算法建议对消息摘要值进行签名,因为摘要值的长度是固定的,运算时候的速度会比较快。
签名验证流程:
- 接收者接收到消息后,拆分出消息和消息签名值A。
- 接收者使用公钥对消息进行运算得到摘要值B。
- 接收者对摘要值B和签名值A进行比较,如果相同表示签名验证成功,否则就是验证失败。
RSA数字签名算法
RSA加密算法是公钥加密,私钥解密;
RSA签名算法是私钥签名,公钥验证签名。