0
点赞
收藏
分享

微信扫一扫

ECC/DH 和 ECDH

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计算b
A = baG。
6.A、B计算的结果相同。



举报

相关推荐

0 条评论