文章目录
- 一、核心区别:目的完全不同
- 二、协同工作关系:缺一不可的安全组合
- 三、技术结合点:都基于ECC(椭圆曲线密码学)
ECDH(椭圆曲线迪菲-赫尔曼密钥交换)和数字签名(如ECDSA,椭圆曲线数字签名算法)是两种截然不同但又经常协同工作的密码学原语。
它们的关系可以概括为:分工明确,互补共赢
一、核心区别:目的完全不同
特性 | ECDH (密钥协商) | 数字签名 (如 ECDSA) |
---|---|---|
核心目的 | 保密性 (Confidentiality) | 认证性与完整性 (Authentication & Integrity) |
要解决的问题 | “我们如何安全地生成一个只有我们俩知道的秘密,用来加密消息?” | “我如何向你证明这条消息确实是我发的,并且没有被篡改?” |
数学操作 | 椭圆曲线上的标量乘法和点运算 | 椭圆曲线上的标量乘法和点运算(但用法和目的不同) |
密钥使用 | 使用对方的公钥 | 使用自己的私钥 |
输出结果 | 一个共享的秘密值(通常是对称加密密钥) | 一个可被任何人用公钥验证的签名值 |
类比 | 商量一个只有你们俩懂的暗号(密钥)。 | 在文件上盖上你的个人印章(签名)。 |
二、协同工作关系:缺一不可的安全组合
尽管目的不同,但在实际的安全通信协议(如TLS/SSL、SSH)中,它们几乎总是成对出现,共同构建完整的安全体系。
最常见的合作模式:ECDHE + 数字签名
这个模式解决了基础ECDH最大的安全缺陷:缺乏身份认证,易受中间人攻击(MITM)。
攻击场景(无认证的ECDH):
-
Alice想和Bob通信。
-
攻击者Carter截获了Alice的公钥 A,将自己的公钥 M1 发给Bob。
-
Carter截获了Bob的公钥 B,将自己的公钥 M2 发给Alice。
-
Alice和Carter建立了共享密钥 S1。
-
Bob和Carter建立了共享密钥 S2。
-
Alice以为她在和Bob安全通信,但实际上所有消息都被Carter解密、窃听甚至篡改后再加密转发给Bob。Bob亦然。
解决方案(ECDHE + 签名):
为了防御这种攻击,必须对交换的ECDH公钥进行身份认证。这就是数字签名发挥作用的地方。
三、技术结合点:都基于ECC(椭圆曲线密码学)
虽然目的不同,但ECDH和ECDSA等技术经常基于相同的椭圆曲线参数(例如相同的曲线 secp256k1
或 prime256v1
和相同的基点 G
)。这使得一个系统可以使用同一套底层密码学基础设施来支持两种功能。
- Bob的密钥对:
-
用于ECDH:Bob可以生成一个临时的密钥对 (b_临时, B_临时 = b_临时 * G) 用于一次会话。
-
用于签名:Bob拥有一个长期的密钥对 (b_长期, B_长期 = b_长期 * G)。私钥 b_长期 用于对握手信息(包含 B_临时)进行签名,公钥 B_长期 则被放在证书中。
关系 | 阐述 |
---|---|
分工关系 | ECDH 负责建立保密的共享密钥。数字签名 负责认证通信方的身份和数据的完整性。 |
互补关系 | ECDH解决了对称密钥分发的难题,但需要签名来解决其固有的身份认证缺陷。签名确保了ECDH过程不会被中间人劫持。 |
协同关系 | 在现代安全协议(TLS)中,ECDHE(ephemeral ECDH)与 RSA 或 ECDSA 签名结合,共同提供了前向保密、身份认证和密钥协商这三大功能,构成了安全通信的基石。 |
简单来说:ECDH用来商量“暗号”,而数字签名用来证明“你是你”。两者合作,才能实现既保密又可信的安全通信。