什么使得椭圆曲线加密中的陷门功能难以逆转?

时间:2015-03-24 19:26:47

标签: cryptography elliptic-curve

我一直在阅读有关椭圆曲线加密的文章及其工作原理: http://arstechnica.com/security/2013/10/a-relatively-easy-to-understand-primer-on-elliptic-curve-cryptography/

在文章中,他们说:

  

事实证明,如果你有两个点[在椭圆曲线上],一个初始点"点缀"自己n次到达最终点[在曲线上],当你只知道最后一点并且第一点很难时找出n。

接着说明找出n的唯一方法(如果你只有第一个和最后一个点,并且你知道曲线eqn),就是重复点初始点,直到你最终得到匹配的终点。

我想我理解这一切 - 但令我感到困惑的是 - 如果n是私钥,最后一点对应公钥(我认为是这种情况),那么它是不是需要完全相同的工作量来计算来自私有的公钥,因为它来自公共私有(两者都必须递归地点在曲线上的一个点)?我误解了文章的内容吗?

1 个答案:

答案 0 :(得分:0)

编辑: 我之前曾声明n不是私钥。在您的示例中,n 服务器或客户端私钥。

它的工作原理是任何人都知道一个起点。

  • 您选择随机整数 k 并执行“点击操作” k - 次。然后将此新点发送到服务器。 ( k 是您的私钥)
  • 服务器对起点执行相同操作,但 q - 次并将其发送给您。 ( q 是服务器的私钥)
  • 你从服务器得到的点和“点”它 k - 次。最后一点是起点“点缀” k * q -times。
  • 服务器通过它从您那里得到的信息也是如此。它的最后一点将是起点“点缀” q * k -times。

这意味着最后一点(=起点“点缀” k * q -times)是共享秘密,因为任何攻击者都知道的是起点,起点点缀为k时间和起点点缀q次。只给出那些数据,除非知道任何数据,否则几乎不可能将最终点作为k * q的乘积。

编辑: 不,在给定已知值的情况下,从G = kP计算 k 并不需要相同的时间G(发送点)和P(起始点)。更多评论部分和: