0%

有关Bitcoin的椭圆曲线-secp256k1

简介

椭圆曲线加密法是一种基于离散对数问题的非对称(或公钥) 加密法, 可以用对椭圆曲线上的点进行加法或乘法运算来表达。在Bitcoin中使用的是secp256k1这条椭圆曲线

椭圆曲线

  • y^2^mod p = x^2^ +ax+b mod p
  • a、b满足:4a^3^+27b^2^ mod p!=0 这保证了x^3^+ax+b不包含重复的因子,所以该曲线就可用于生成一个群组
  • 在一个有限域Fp,素数阶p的有限域内
  • p=2^256^-2^32^-2^9^-2^8^-2^7^-2^6^-2^4^-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

y^2^=x^3^+ax+b,其中a=0且b=7,就是曲线secp256k1
G是生成元,n是G的素数阶
则任取k,Q=k*G,则k为私钥,Q为公钥

优点

  • 占用很少的带宽和存储资源,秘钥的长度很短
  • 让所有的用户都可以使用同样的操作完成域运算

小结

今天看了一些关于BrainWellets的东西,感觉还蛮有意思的,明天要把它的来龙去脉都讲清楚了,技术尽量去看吧,然后再把整个PPT从头到尾慢慢品尝。

-------------本文结束感谢您的阅读-------------
#