一、加密通信(保证机密性)
场景:A 想安全地发送消息给 B
步骤:
1. B 生成一对密钥:公钥 + 私钥
2. B 把【公钥】发给 A(可以公开广播)
3. A 用 B 的【公钥】加密消息
4. 加密后的消息只有 B 能用【私钥】解密
5. 即使中间人截获了密文和公钥,也无法解密(没有私钥)
二、数字签名(保证真实性 & 完整性)
场景:B 要发布一条消息,并证明“这消息确实是我发的,没被篡改”
步骤:
1. B 对消息计算一个“指纹”(哈希值)
2. B 用【私钥】对这个指纹进行加密 → 得到【数字签名】
3. B 把【原始消息 + 数字签名】一起发出去
4. 接收方 A 用 B 的【公钥】解密签名,得到原始指纹
5. A 自己也对消息算一遍哈希,对比两个指纹- 相同 → 消息真实且未被修改- 不同 → 被伪造或篡改