不同的椭圆曲线可以相互通信/加密吗? (例如带有prime521v1的prime256v1)

时间:2019-10-19 06:49:09

标签: cryptography elliptic-curve

对我来说,椭圆曲线是否可以互换还不清楚? 可以说鲍勃有prime256v1,爱丽丝有prime521v1密钥。他们能够以加密方式相互通信吗?

同样的问题是,不同的原点椭圆曲线是否可以相互通信。 primve256v1可以与BrainpoolP521t1进行通信吗?

Afaik应当能够在diffie hellman序列中达成密钥协议,因为派生密钥可以由共享公钥的标量积创建。但是在开始部分,双方都同意算法尚不清楚。它们是否在起点处交换椭圆曲线?如果可以,怎么办?

有没有好的代码示例,例如为Java实现这种方法?

1 个答案:

答案 0 :(得分:1)

ECDH公式为shared_coordinate = your_private_coefficient * their_public_coordinate。如果双方使用不同的曲线,则它们的公共坐标将毫无意义。

爱丽丝逻辑上以dAlice * dBob * GBob结尾,而鲍勃以dBob * dAlice * GAlice结尾。代数上,这些仅在GAlice == GBob时是相同的。

虽然两条曲线可能与其他不同的参数具有相同的G值,但由于a / b / n / {p | m,f(x)}参数与两方都不匹配,因此无法进行数学运算没有使用相同的加/乘定义,并且上面的符号变得毫无意义。