Diffie-Hellman密码学的椭圆曲线版本如何工作?

时间:2010-04-23 19:06:48

标签: elliptic-curve diffie-hellman

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?

1 个答案:

答案 0 :(得分:7)

基本原理是相同的,但私钥的选择以及如何计算公钥是显着不同的。此外,每个人都必须事先就椭圆曲线达成一致意见。

如上所述,在Diffie-Hellman的椭圆曲线版本中,您首先要确定您使用的椭圆曲线。这确定了许多称为域参数的独立参数。在没有太过技术性的情况下,事实证明有些曲线比其他曲线更好用于加密目的,因此参数实际上是谨慎选择而不是随机选择。这有点类似于选择好的素因子。

有两组域参数:

  • E ,椭圆曲线本身。
  • G E 上的一个点,称为基点

E G 是必要且足以描述您需要的所有信息。

在ECC-DH中,私钥 d 是通过在[1, n-1]区间内随机选择的数字来计算的,其中n {{3 G 。公钥 Q 是通过Q = dG计算的。在那之后,一般的想法是相同的,除了不是试图解决一个难的 order ,你试图解决一个难的 integer factorization problem