密码学——ECC椭圆曲线加密算法
2023-03-30 19:54 作者:Vector永远的神 | 我要投稿
ECC椭圆曲线加密算法是一个经典的非对称加密算法,利用的就是 y^2 = x^3 +ax +b 的椭圆曲线进行加密,曲线会随着a和b的变化而发生形态变化。其中4a^3 + 27 b^2 != 0为了使得曲线不包含奇点,曲线上没一点都存在切线。
在曲线上 点P为基点, Q = K * P Q作为公钥,k作为私钥存在。
给定 K和 P 求解公钥Q是十分容易的,但是给定PQ想求解 私钥K是十分复杂的。

曲线上的加法运算规则是在曲线上两个点A和B相连接的直线一定会与椭圆曲线相交于一点C1,此点关于x轴的对称点则为点C 写作A+B=C。

切线的时候可以理解为A+A的情况,得到的结果就是2A,这个就是乘法的含义了。

当A和2A相连接得到交点的对称点就是3A了。
这个记录表达的方式就是参考了正常的四则运算。但是可以把这个理解为点运算,也满足交换律和结合律等形式。
给定参数a和b确定一条椭圆曲线Ep(a,b),并且在此曲线上选择一个基点P
选择一个大数 k 作为私钥 , 计算得到公钥 Q = k * P。
加密过程是 选择一个随机数r,将消息M生成密文C ,密文C是一个点对(r*P,M + r * Q)
解密过程就是使用私钥 k去乘以 r*P , M + r * Q - k*(r * P )= M + r * k * P - k*(r * P ) = M。
数学过程过于复杂,不说了。