ECC (椭圆曲线算法)
和 RSA 类似,也属于非对称加密算法,比 RSA 更新,相比 RSA 可以用更短的秘钥达到相同的安全程度。 😃
KEY(公钥)=key(私钥)G(椭圆曲线上的点)
由于椭圆曲线的特性,给定k和G可以计算出K,但给定K和G无法计算出k。
加密过程:
1.A选定一椭圆曲线上的点 G 2.A创建私钥key,生成公钥KEY = key*G 3.A将椭圆曲线、KEY、G发送给B
4.B选择椭圆曲线上的一点M,产生一随机数r 5.B计算点C1=M+r*KEY,C2=r*G 6.B把C1,C2发送给A
7.A计算C1 - key*C2 = M + r*KEY*G - key*r*G = M
DH (秘钥协商协议)
1.A和B协商使用两个确定的数 p = 23 和 g = 5 2.A创建一私钥a = 6,计算 g^a mod p = 5^6 mod 23 = 8(^次方,mod取余数)发送给B。
3.B创建一私钥b = 15,计算 g^b mod p = 5^15 mod 23 = 19 发送给 A。
4.A计算B a mod p = 19^6 mod 23 = 2,B计算A b mod p = 8^15 mod 23 = 2
ECDH(ECC&DH)
1.A选定一椭圆曲线上的点 G,创建私钥a,计算 A(公钥) = a*G。
2.同理B计算 B(公钥) = b*G。
3.A将公钥A发送给B,B将公钥B发送给A。因为椭圆曲线的特性,已知公钥、G无法计算出私钥,所以这个过程是安全的。
4.A计算aB = abG。
5.B计算bA = baG。
6.A、B计算的结果相同。









