ECDH ( Elliptic Curve Diffie-Hellman Key Exchange ) 是一种 匿名密钥协商方案
是一种基于共享密钥的密钥交换策略
ECDH 与传统的 DHKE ( Diffie-Hellman Key Exchange ) 算法很相似,主要变化在于 ECDH 使用 ECC点乘 (ECC point multiplication) 替换掉了 模幂运算(modular exponentiations) 。
(a*G)*b=(b*G)*a
具体流程
有两个待加密的数据a,b,分别产生了自己的私钥(aPrivateKey , bPrivateKey),和一个使用点 G 作为生成元的 ECC 椭圆曲线
a将自己的私钥aPrivateKey 与 G点 点乘生成a的公钥(aPrivateKey * G = aPublicKey)传输给b,同理,b将自己的私钥bPrivateKey 与 G点 点乘生成b的公钥(bPrivateKey * G = bPublicKey)传输给a
a,b收到对方的公钥后,将它与自己的私钥进行点乘形成共享密钥(secret = (bPrivateKey * G ) * aPrivateKey = (aPrivateKey * G) * bPrivateKey )
参考: