知识卡片

摘要加密签名三种密码学基础应用的本质区别

普通读书笔记卡

内容

现代密码学的三种基础应用容易被混为一谈,但目的完全不同。摘要(数字指纹) 依赖两个特性:易变性(输入哪怕变动一个字节,输出结果就会剧烈变化,即 “雪崩效应”)和不可逆性(无法从摘要结果反推输入),用途是”在源信息不 泄漏的前提下辨别真伪”——常说的”MD5被破解”指的是找到了高效率碰撞方法 (能构造出摘要相同的另一段输入),而不是能从摘要还原出原文,这和”解密” 是两回事。加密与摘要的本质区别是可逆——现代密码学的安全不再依赖算法本身 保密(算法完全公开),而是依赖特定数学问题的计算复杂度不对称(比如两个 大素数相乘很容易,把乘积反过来做质因数分解却极难)。签名则是”私钥加密、 公钥解密”这条路径的应用:只有私钥持有者能生成让公钥验证通过的签名,因此 签名能证明”这是私钥持有者本人发布的、且未被篡改”,但并不保证内容不被 他人看到。三者的差异用一句话概括:摘要证明”没变过”,加密保证”看不到”, 签名证明”是谁发的且没变过”——理解这三个目标的正交关系,才能理解为什么 JWT令牌的签名(HMAC对头和负载做摘要+密钥)能保证不可篡改和不可抵赖, 却完全不解决”负载明文会被看到”这个泄漏问题。

参考来源

- 位置:《凤凰架构:构建可靠的大型分布式系统》第5章"架构安全性" 5.5.1节"摘要、加密与签名"(源文件:_epub-src对应OEBPS/Text/chapter71.xhtml) - 结论依据:原文定义摘要的易变性和不可逆性、说明现代密码学安全建立在 计算复杂度不对称之上而非算法保密、区分公钥加密(保密但可能被篡改)与 私钥签名(防篡改但不保密),直接支撑本卡片对三者本质区别的归纳。 - 原始内容:摘要的意义是在源信息不泄漏的前提下辨别其真伪……加密与摘要的 本质区别在于加密是可逆的……公钥加密,私钥解密,这种就是加密……私钥 加密,公钥解密,这种就是签名,用于让所有公钥所有者验证私钥所有者的 身份。