接着他们互换 。Alice 使用她的秘密整数计算 ,Bob 同样计算 ,此时他们都拥有了共享密钥:。后续他们就可以将这个共享密钥用于对称密码系统中。表 6.5 总结了椭圆曲线下的 Diffie-Hellman 密钥交换。例 6.19 Alice 和 Bob 都选择使用以下的素数、椭圆曲线、点
Alice 和 Bob 选择各自的秘密整数 ,然后他们分别计算
Alice 将 发送给 Bob, Bob 将 发送给 Alice,最后他们分别计算
Bob 和 Alice 都计算出了 ,接着他们会丢弃 坐标的值,使用值 作为最后真正的共享密钥值。那么对于 Eve 来说,想要获得这个共享密钥值,一种方法就是解决 ECDLP 问题,这样他就可以获取 ,然后计算 。当然,也有可能存在某个方法 Eve 不需要解决 ECDLP 问题就能够获取密钥值。定义 设 为有限域上的椭圆曲线,并有点 。那么 Elliptic Curve Diffie–Hellman Problem 即为根据已知的 计算值 。
注 6.20 椭圆曲线的 Diffle-Hellman 密钥交换需要 Alice 和 Bob 交换曲线上的点。曲线上的一个点 包含两个坐标 ,其中 时有限域 上的元素,所以 Alice 就需要给 Bob 发送两个数字。然而,这两个数字并不是相互独立的,他们之间有如下关系
注意到 Eve 是知道 A 和 B 的,所以如果她能够猜到正确的 ,那么对于 就只有两种可能了,而实际上计算这两种可能并不是什么难事。
对于 Alice 来说,她没必要将 的两个坐标都发给 Bob ,因为 坐标并没有包含多少有用的消息。如果 Alice 只给 Bob 发送 坐标,那么 Bob 能在两个 坐标中选择一个。如果他选择了正确的 ,那么它使用的就是 ,如果他选择了错误的 (即 ),那么它使用的就是 。无论如何,Bob最后计算将是 之一。
同样的,Alice最后计算的也将是 之一。最后,Alice 和 Bob 都是用 坐标作为共享秘密值进行计算,因为无论选择哪个 , 的值都是一致的。
评论