关于ECDSA/ECC(密钥加密传输)和ECDSA/ECDH(密钥磋商)

关于ECDSA/ECC(密钥加密传输)和ECDSA/ECDH(密钥磋商)

来源: https://blog.csdn.net/xueyepiaoling/article/details/62433378

ECC:Elliptic Curves Cryptography,椭圆曲线密码编码学

ECDSA:用于数字签名,是ECC与DSA的结合,整个签名过程与DSA类似,所不一样的是签名中采取的算法为ECC,最后签名出来的值也是分为r,s。

ECDH:是基于ECC(Elliptic Curve Cryptosystems,椭圆曲线密码体制,参看ECC)的DH( Diffie-Hellman)密钥交换算法。

重点说一下,ECDH用途:

由于通过ECDH,双方可以在不共享任何秘密的前提下协商出一个共享秘密,因此,ECDH广泛用于协议之中,通过ECDH得到对称加密密钥。如TLS中的*_ECDH_*密码套件。使用DH算法的协议,都可以升级到ECDH算法。ECDH具有ECC的高强度、短密钥长度、计算速度快等优点。

密钥交换过程:

假设密钥交换双方为Alice、Bob,其有共享曲线参数(椭圆曲线E、阶N、基点G)。

1.Alice生成随机整数a,计算A=a*G。Bob生成随机整数b,计算B=b*G。
2.Alice将A传递给Bob。A的传递可以公开,即攻击者可以获取A。由于椭圆曲线的离散对数问题是难题,所以攻击者不可以通过A、G计算出a。Bob将B传递给Alice。同理,B的传递可以公开。

3.Bob收到Alice传递的A,计算Q=b*A

4.Alice收到Bob传递的B,计算Q‘=a*B

总结:

  Alice、Bob双方即得Q=b*A=b*(a*G)=(b*a)*G=(a*b)*G=a*(b*G)=a*B=Q' (交换律和结合律),即双方得到一致的密钥Q。

参考资料:

ECDH   

ECC-ECDSA

ECC-ECDH

ECDH -wiki

ECDH-PYTHON

原文地址:https://www.cnblogs.com/lsgxeva/p/9173937.html