ECDH全称是椭圆曲线迪菲-赫尔曼秘钥交换(Elliptic Curve Diffie–Hellman key Exchange),主要是用来在一个不安全的通道中建立起安全的共有加密资料,一般来说交换的都是私钥,这个密钥一般作为“对称加密”的密钥而被双方在后续数据传输中使用。
ECDH是建立在这样一个前提之上的,给定椭圆曲线上的一个点P,一个整数k,求Q=KP很容易;但是通过Q,P求解K很难。
ECDH是一种匿名密钥协商方案,允许双方在不安全的信道上建立共享密钥,双方各有一个椭圆曲线公钥-私钥对。ECDH非常类似于经典的DHKE(Diffie–Hellman key exchange)算法,但它使用ECC点乘而不是模幂运算。ECDH基于EC点的以下特性:
(a * G) * b = (b * G) * a
如果我们有两个秘密数a和b(两个私钥,属于Alice和Bob)和一条带生成点G的ECC椭圆曲线,我们可以在不安全的信道上交换值(a*G)和(b*G)(Alice和Bob的公钥),然后我们可以导出一个共享秘密:secret = (a * G) * b = (b * G) * a。非常简单,上述方程采用以下形式:
alicePubKey * bobPrivKey = bobPubKey * alicePrivKey = secret
ECDH算法(Elliptic Curve Diffie–Hellman Key Exchange)非常简单:
1.Alice 生成一个随机ECC密钥对:{alicePrivKey,alicePubKey=alicePrivKey*G}
2.Bob生成一个随机ECC密钥对:{bobPrivKey,bobPubKey=bobpriwkey*G}
3.Alice和Bob通过不安全的渠道(例如,通过互联网)交换公钥
4.Alice 计算sharedKey=bobPubKey*alicePrivKey
5.Bob计算sharedKey=alicePubKey*bobPrivKey
6.现在,Alice 和Bob拥有相同的sharedKey==bobPubKey*alicePrivKey==alicePubKey*bobPrivKey文章来源:https://www.toymoban.com/news/detail-515315.html
在下一节中,我们将实现ECDH算法并用代码示例进行演示。文章来源地址https://www.toymoban.com/news/detail-515315.html
到了这里,关于ECDH秘钥协商算法原理(ECDH Key Exchange)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!