1. 公钥与私钥
简单粗暴的理解,公钥可以理解为用户名,私钥可以理解为密码. 只是简单粗暴的理解.
公钥和私钥是非对称加密算法中的内容.公钥 可以被大家知道,所以叫公吗,public key, 私钥是只能自己知道的,所以是private key.
公钥和私钥是成对出现的,它们互相解密.
公钥加密,私钥解密
私钥数字签名,公钥负责验证.
2. 数字签名
数字签名是一种类似写在纸上的普通的物理签名,但是使用了公钥加密领域的技术实现,用于鉴别数字签名的方法.
数字签名技术运用了信息摘要和非对称的加密技术.
2.1 信息摘要
- 定义: 信息摘要就是一个单项散列的函数. 简单粗暴的理解就是我们说的常用的hash 函数. (因为单项散列是一个 不可逆的过程,e.g., A可以根据某种算法的到结果B,但是结果B不能根据某种算法的到结果A)
- 作用: 数据库经过单项的散列函数得到一个固定长度的散列值,攻击这不可能通过散列值编造数据库.
- 常用的信息摘要算法; MD5, SHA256, sha1 等等
2.2 数字签名
发送者计算原始数据的信息摘要,用自己的密钥对信息摘要加密.
之后发送者将加密的信息摘要和原始数据一起传给接收者.
接受者拥有传送者的公钥,可以解密信息摘要. 用相同的hash 函数对原始数据计算hash 值,和解密的信息摘要对比,可以判断数据是否被改动过.