零点芝士 | 椭圆曲线密码学入门2
来源:知乎ustcsse308
椭圆曲线之所以用在加密系统中,是因为它有一些很好的特性可以适合用来加密。它一个特性是关于X轴对称。另一个特性是任何不垂直的线最多与曲线有三个交点。基于这些特性,在椭圆曲线上定义一些运算。(后面的“加法“和“乘法‘’只是为方便而取的名字,和我们所熟知的加法和乘法完全不同)
在椭圆曲线上两点的加,指的是经过椭圆曲线上两点的线,和椭圆曲线的交点(第三个点)关于X轴的对称点。
譬如说,在下面这张图中,A+D = E
还有这种,P+Q=R (右图)
特别地,如果要计算P+P(也即P=Q),那就作椭圆曲线在P点处的切线,与曲线相交于第二点,然后关于X轴对称得到第三点,则第三点为P点与自身的和,R=P+P。(左图)根据这种定义,可以看出加法具有交换律。
还能定义乘法。
P+P首先得到2P。连接2P和P的直线与椭圆曲线相交,通过取与X轴对称的点,得到3P。如此,可以一直计算下去,得到kP(1 < k < n)。
椭圆曲线难以破解的地方在于,给定点G和K,K = kG (1 < k < n),想要推导出k是一件很困难的事情,目前没有比枚举k的值好很多的算法,而通常n会很大。