简介
椭圆曲线加密法是一种基于离散对数问题的非对称(或公钥) 加密法, 可以用对椭圆曲线上的点进行加法或乘法运算来表达。在Bitcoin中使用的是secp256k1这条椭圆曲线
椭圆曲线
- y2mod p = x2 +ax+b mod p
- a、b满足:4a3+27b2 mod p!=0 这保证了x3+ax+b不包含重复的因子,所以该曲线就可用于生成一个群组
- 在一个有限域Fp,素数阶p的有限域内
- p=2256-232-29-28-27-26-24-1
椭圆曲线上的加法
P3=P1+P2
计算方法:P1和P2之间画一条线,恰好与椭圆曲线上的一点相交,记此点为:P3’=(x,y),然后再x轴做映射的:P3=(x,-y)
特殊的情况
- P1与P2为同一点,P1和P2之间的连线为P1的切线,曲线上有且只有一个新的点与该切线相交
- P1和P2具有相同的x值,但不同的y值,则切线会垂直,这种情况下,P3=“无穷远点”
- 若一点是无穷远点,则与其相加不变,无穷远点类比0处理
secp256k1
y2=x3+ax+b,其中a=0且b=7,就是曲线secp256k1
G是生成元,n是G的素数阶
则任取k,Q=k*G,则k为私钥,Q为公钥
优点
- 占用很少的带宽和存储资源,秘钥的长度很短
- 让所有的用户都可以使用同样的操作完成域运算
小结
今天看了一些关于BrainWellets的东西,感觉还蛮有意思的,明天要把它的来龙去脉都讲清楚了,技术尽量去看吧,然后再把整个PPT从头到尾慢慢品尝。
来源:CSDN
作者:Stride Max Zz
链接:https://blog.csdn.net/qq_35324057/article/details/104268461