目录
1. 算法简介
ECDH(Eclliptic Curve Diffile-Hellman Key Exchange)是迪菲-赫尔曼密钥交换的变种,采用椭圆曲线加密来加强算法的安全性,常被称为密钥协商算法,可用于通信双方协商生成端到端加密的会话密钥。在ECDH协议中,利用椭圆曲线加密算法生成的公私钥对,通过迪菲-赫尔曼密钥交换算法,在不安全的通道中交换信息,生成仅通信双方知悉的共享秘密,用于生成加密密钥。
2. 算法原理
假设通信双方为Alice和Bob,利用ECDH协商产生共享秘密的流程如下:
- Alice生成用于密钥交换的公私钥,并将公钥发送给Bob
(1)生成随机数,即为Alice的私钥;
(2)计算倍点,其中为所采用的ECC算法的基点,即为Alice的公钥;
(3)将发送给Bob。
- Bob生成用于密钥交换的公私钥,并将公钥发送给Alice
(1)生成随机数,即为Bob的私钥;
(2)计算倍点,其中为所采用的ECC算法的基点,即为Bob的公钥;
(3)计算共享秘密;
(4)将发送给Alice。
- Alice计算共享秘密。
3. 公式推导
- 将代入中,可得;
- 将代入,可得。