ECC椭圆曲线加密入门

本文章是对 https://zhuanlan.zhihu.com/p/529733453 的总结,完整版可看该链接

什么是椭圆曲线

利用高中几何二维坐标系知识:

img

图像大致这样

img

椭圆曲线运算法则

定义加法:过两点做直线,该直线与椭圆曲线相交的第三点,则这三点加起来为0

负数:关于x轴对称

乘法:多个自己相加,A+A,即经过A点的切线

减法:加上一个负数

0点,A+(-A)与椭圆曲线的交点,即无穷远,没有交点

img

ECC加密过程

Alice先定义公私钥:选取椭圆曲线(a,b),取一个基点P,私钥K,计算Q=K*P,Q即是公钥

Alice加密明文M:取一个随机数r,明文C=(rP,M+rQ)

Alice解密密文C:M = M+rQ - k*(rP) = M + rQ - rQ = M

有限域上的椭圆曲线

有限域,即取模

已知两点A(x1,y1),B(x2,y2),求A+B(x3,y3)的公式:

img

k是斜率,A=B的时候是椭圆曲线的切线,即求导

x3,y3公式由联立 直线方程和椭圆曲线方程 解出,可以自行推到证明,证明过程链接:

https://blog.csdn.net/Carrot_kexin/article/details/120676750

取模后椭圆曲线图像如下

img

分数取模

0.5 % 23 == k
2k % 23 == 1
2k == 24
k == 12
所以 0.5 % 23 == 12
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值