对我来说,不清楚椭圆曲线是否可以互换?可以说鲍勃有prime256v1,爱丽丝有prime521v1密钥。他们是否能够以加密方式相互通信?
相同的问题是,不同的原点椭圆曲线是否可以相互通信。 primve256v1可以与brainpoolP521t1进行通信吗?
Afaik它应该能够在diffie hellman序列中达成密钥协议,因为派生密钥可以由共享公钥的标量积创建。但是在开始部分,双方都同意算法尚不清楚。它们是否在起点处交换椭圆曲线?如果可以,怎么办?
是否有任何好的代码示例,例如Java实现这种方法?
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)}参数'没有使用相同的加法/乘法定义,因此上面的符号变得毫无意义。