区块链-椭圆曲线加密法(ECC)

目录:https://blog.csdn.net/qq_40452317/article/details/89646633

椭圆曲线生成公钥:https://blog.csdn.net/qq_40452317/article/details/90082353

椭圆曲线加密法(Elliptic Curve Cryptography)简称ECC。一种建立公开公钥加密算法,基于椭圆曲线数学。

secp256k1曲线

比特币中使用的是secp256k1曲线。一般的椭圆曲线表示位:

                                                  y^2=x^3+a*x^2+b

其中a,b为系数。当参数a=0,b=7时,得到函数

                                                      y^2=x^3+7

这个方程产生的曲线就是secp256k1曲线。

图示如下:(可以到此测试:https://www.desmos.com/calculator/0mnue7w8lk

           

椭圆曲线时连续的,不适合加密,所以需要把椭圆曲线变成离散的点。把椭圆曲线定义在有限域上。

扫描二维码关注公众号,回复: 6197715 查看本文章

什么是有限域?

在抽象代数中,域是一种可进行加、减、乘和除运算的代数结构。是一个可以在其上进行加法、减法、乘法和除法运算而结果不会超出域的集合。如有理数集合、实数集合都是域,但整数集合不是(使用除法得到的分数或小数已超出整数集合)。如果域F只包含有限个元素,则称其为有限域。有限域中元素的个数称为有限域的阶

给出一个有限域Fp,其中有p个元素(p是质数)0,1,2,3····p-2,p-1。

Fp加法:a+b=c(mod p)

Fp乘法:a*b=c(mod p)

Fp除法:a/b=c(mod p)

椭圆曲线运算

加法(测试:https://www.desmos.com/calculator/0mnue7w8lk

过曲线上的点A,B画一条直线,找到与椭圆曲线的交点,交点关于x轴的对称点定义位A+B。

          

A,B重合时

将曲线在A点的切线与椭圆曲线的交点管于x轴的对称点定义位A+A,即2A。

正负运算 

A点的关于x轴的对称点就称为-A。

无穷远点 

如果将A与-A相加,过A与-A的直线平行于y轴,可以认为直线与椭圆曲线相交与无穷远点。

综上,如果给定椭圆曲线一点G,可以求出2G(G+G),3G(2G+G)····。当给出G时,已知x,求出xG并不困难,但是反之,已知xG时,求x时非常困难的。

椭圆曲线生成公钥:https://blog.csdn.net/qq_40452317/article/details/90082353

猜你喜欢

转载自blog.csdn.net/qq_40452317/article/details/90075982
今日推荐