是的,椭圆曲线 Diffie-Hellman 与 Diffie-Hellman 非常相似,但它对相同的“使用绘画”算法使用了不同的数学基础。
经典 Diffie-Hellman 是基于有限域密码术 (FFC) 的,具有公式s = mod(exp(mod(exp(g, a), p), b), p)
(如果 a 和 b 翻转,则产生相同的值)。这是一个相当不友好的公式。
EC Diffie-Hellman 基于椭圆曲线密码学 (ECC),其公式s = a*b*G
为 ,只需要相信乘法的交换性即可理解其工作原理(最后只使用 X 坐标,而且...当然,乘以的实际数学G
非常难看;但两者a
和b
都只是(大)整数)。
使用经典 DH 的油漆颜色类比:
- 双方使用共同的曲线。ECC 中的每条“曲线”都有一个既定的起点(
G
=generator);与维基百科的图片进行比较,称其为黄色。
- Alice 有一个私钥
a
,它表示让 Press Your Luck 游戏板围绕色轮前进多少次。所选颜色与 G 组合产生桃色。
- Bob 有一个私钥,
b
. 使用 Press Your Luck 类比,在与 G 组合后,他会变成浅蓝色。
就像经典的 DH 图片一样,将 Alice 的桃红色与 Bob 的秘密 Press Your Luck 颜色合并产生的颜色与将 Bob 的浅蓝色与 Alice 的秘密 Press Your Luck 颜色合并产生的颜色相同。
出于数学原因,ECC 密钥更“安全”。因此,160 位 ECC DH 密钥与 1024 位 FFC DH 密钥一样安全。因此,它可以让相同的安全性更快地进行,这就是 ECDH 正在取代 DH 而 ECDSA 正在取代 DSA 的原因。使用更常见的 secp256r1 曲线(使用 256 位 ECC 密钥),它获得了相当于 3072 位 FFC DH 密钥的效果。