Elliptic曲线diffie hellman计算是否与此处定义的标准曲线有任何不同:
/*
* The basic Diffie-Hellman Key Agreement Equation
*
* The client initiates
* A = g^a mod p
*
* Sends (g p A) to the server
*
* The server calculates B
* B = g^b mod p
*
* Sends B back to client
*
* The client calculates K
* K = B^a mod p
*
* The server calucaltes K
* K = A^b mod p
*
*/
或者它只是选择g,a,p和b的特定方式?无论如何选择g,a,p和b?
答案 0 :(得分:7)
基本原理是相同的,但私钥的选择以及如何计算公钥是显着不同的。此外,每个人都必须事先就椭圆曲线达成一致意见。
如上所述,在Diffie-Hellman的椭圆曲线版本中,您首先要确定您使用的椭圆曲线。这确定了许多称为域参数的独立参数。在没有太过技术性的情况下,事实证明有些曲线比其他曲线更好用于加密目的,因此参数实际上是谨慎选择而不是随机选择。这有点类似于选择好的素因子。
有两组域参数:
E 和 G 是必要且足以描述您需要的所有信息。
在ECC-DH中,私钥 d 是通过在[1, n-1]
区间内随机选择的数字来计算的,其中n
是 {{3 G 的。公钥 Q 是通过Q = dG
计算的。在那之后,一般的想法是相同的,除了不是试图解决一个难的 order ,你试图解决一个难的 integer factorization problem