什么是 Elliptic Curve Diffie Hellman (ECDH)?
Elliptic Curve Diffie Hellman (ECDH) 是双方在公开通道上协商相同秘密密钥的一种方法。任何一方都不会泄露私密,然而双方最终得到匹配的密钥。可以把它想象成两位咖啡师各自调配不同糖浆,最后却神奇地得到相同口味,而旁人只看到杯子。
Elliptic Curve Diffie Hellman (ECDH) 本身并不加密你的消息。它只提供一个共享秘密;要真正完成加密和解密,还需要经过认证的密码方案或加密算法。
Elliptic Curve Diffie Hellman (ECDH) 的工作原理
简要说明:想象你的钱包应用与一台新设备配对。它们在公开通道交流,但在数学上悄悄对话。
- 开始:每一方生成一个随机的 私钥 并将其保密,然后生成对应的公点。该密钥对是更广泛的 加密密钥 概念的一部分。
- 交换:它们通过任何公开渠道交换公点,哪怕是在嘈杂的聊天中。
- 混合:每一方将自己的私密与对方的公点结合,从而得到相同的共享点。
- 派生:将该共享点通过密钥派生函数处理,生成新的对称密钥。
- 使用:该对称密钥用于会话的加密和消息完整性校验。ECDH 只是搭好了桌子。
这就是全部流程。静默的数学,明显的效果。
为什么 Elliptic Curve Diffie Hellman (ECDH) 很重要
要点如下:
- 优点:较小的密钥和较快的握手可节省带宽、电量和时间,这对手机和费用都有好处。
- 安全基础:它的安全性基于 椭圆曲线离散对数问题 ECDLP 的难解性,目前的计算机难以逆向该问题。
- 适用场景:你会在钱包配对、点对点消息、Lightning 节点握手以及 TLS 的加密部分遇到它。
在信任会话之前,总是先验证对方的 公钥。快速的指纹核对或签名验证可以防止中间人悄然冒充。
Elliptic Curve Diffie Hellman (ECDH) 的主要特性
突出的点:
- 紧凑:与传统方案如 RSA 相比,使用更短的密钥即可实现强安全性。
- 快速:计算速度快,适合移动设备和高流量系统。
- 保密:共享密钥不会通过网络传输,只有公点会被发送。
- 前向安全:使用临时密钥时,即使设备以后被攻破,过去的消息仍能保持安全。
变体
不同形式适合不同威胁模型:
- 静态:长期密钥保持会话一致性,但隐私性较低。
- 临时:每次会话使用新密钥,默认提供前向安全。
- 混合:一方使用静态密钥、一方使用临时密钥,可在身份确认和隐私间取得平衡。
密钥协商并不等同于身份认证。若无认证,攻击者可能进行消息中继。配合签名算法,例如 Elliptic Curve Digital Signature Algorithm (ECDSA),可证明通信对象的身份。
示例
当两台 Lightning 节点连接时,它们会运行 Elliptic Curve Diffie Hellman (ECDH) 来生成共享会话密钥,钱包随后可能使用 Elliptic Curve Integrated Encryption Scheme (ECIES) 发送加密的设备配对请求。
趣闻
椭圆曲线加密由 Koblitz 和 Miller 在八十年代中期提出,晚于 Diffie 和 Hellman 的原始想法。它流行开来是因为能用更短的密钥达到相近的安全性。手机上更少的计算意味着其他功能有更多电量可用。
总结
简短结论:ECDH 让双方在公开环境下协商出一个秘密密钥,然后用它进行私密通信或支付,没有戏剧性问题。
