两把相关而不同的密钥

公钥密码学也称非对称密码学,其核心是使用一对数学相关的密钥。公钥可以让其他参与者知道,私钥由持有者秘密保管;合适的方案与参数应使仅凭公钥推导私钥在计算上不可行。这种分工改变了通信前必须把同一秘密交给双方的方式。

“公开”不表示可以随意接受来历不明的密钥。公钥不需要保密,却需要保证完整性及其与预期对象的对应关系。私钥则不能因为公钥已经公开而降低保护要求;两者承担不同职责,并非两份可以互换发布的口令。

参考:[1] [4]

加密、签名与密钥建立

在公钥加密方案中,发送者用接收者的公钥保护消息,接收者用对应私钥解密。在数字签名方案中,签名者用自己的私钥生成签名,验证者用对应公钥检查它。前者主要解决谁能够读取,后者帮助验证数据来源与完整性,不能混称为同一种操作。

密钥协商又是不同用途:参与者结合自身秘密和对方公开的信息,建立共享密钥材料。公钥密码学包含这些不同机制,并不意味着每种算法都支持全部用途,也不意味着一对密钥应该在不同协议中随意复用。签名本身不是把正文隐藏起来的加密服务。

参考:[2] [4]

公开分发仍需要认证

若攻击者把自己的公钥冒充为接收者的公钥,发送者可能把信息保护给错误对象;数学运算正常并不能弥补身份认错。数字签名也一样:拿到一个能验证签名的公钥,只说明签名与该密钥的数学关系成立,还需要确认它属于声称的签名者。

证书把主体标识、公钥及相关信息放入被签署的数据结构,是建立这种绑定的一种办法。验证者还要有可信的验证依据,不能因为证书外观完整就自动接受。FIPS 186-5 特别区分数学验签与包含身份、密钥有效性等保证的签名确认过程。

参考:[2] [4]

与对称密码共同工作

对称密码使用通信双方共享的秘密密钥,适合承担大量数据的保护。混合系统把它与公钥机制结合:公钥机制处理认证或建立密钥,对称算法处理后续数据。两者通常是互补关系,不是新方法彻底取代旧方法。

TLS 1.3 展示了这种职责分离:握手协商参数、认证并建立共享密钥材料,记录层使用流量密钥和对称认证加密保护通信。协议也允许预共享密钥认证,因此不能断言每次 TLS 连接都必须用证书,或都通过公钥直接加密会话密钥。理解实际协议时,应分别辨认认证方式、密钥建立方式和数据保护方式。

参考:[3] [2]