博客
关于我
区块链 - 比特币加密算法之椭圆曲线
阅读量:203 次
发布时间:2019-02-28

本文共 1140 字,大约阅读时间需要 3 分钟。

椭圆曲线加密算法是密码学中的核心技术,特别是在比特币系统中,椭圆曲线乘法(ECDSA)是私钥生成和公钥签名的基础。比特币选择了secp256k1曲线,这是一种特定的椭圆曲线参数,结合了优化的数学常数。

椭圆曲线的定义

椭圆曲线是一种满足方程 ( y^2 = x^3 + ax + b ) 的点集,其中:

  • ( x ) 和 ( y ) 是实数坐标。
  • ( a ) 和 ( b ) 是常数,满足 ( 4a^2 - 27b^3 \neq 0 )。
  • 包含无穷远点(定义为0)。
  • 椭圆曲线的形状根据 ( a ) 和 ( b ) 的值有所不同。比如,secp256k1曲线是一个经过优化的椭圆曲线,适合于高安全性的加密应用。

    椭圆曲线上的点加法

    椭圆曲线加法是基于几何意义上的加法,涉及曲线上的点和直线交点。假设一条直线与椭圆曲线交于三个点 ( P, Q, R ),则有 ( P + Q = R )(其中 ( R ) 是无穷远点)。具体操作如下:

  • 当 ( Q ) 是无穷远点时,( P + Q = P )。
  • 当 ( P ) 和 ( Q ) 关于X轴对称时,( P + Q = 0 )。
  • 当 ( P ) 和 ( Q ) 不是对称点时,( P + Q ) 会是另一个点 ( R )。
  • 当 ( P = Q ) 时,( P + P = -R ),即 ( 2P = -R )。
  • 椭圆曲线上的点数乘

    椭圆曲线上的点数乘是通过倍乘法实现的。例如,计算 ( 8G ) 可以通过连续的加法得到,但这会导致大量计算。倍乘法通过以下步骤优化:

  • 计算 ( -2G )(即过 ( G ) 做切线的交点)。
  • 将 ( -2G ) 上下翻转,得到 ( 2G )。
  • 重复类似步骤计算 ( 4G, 8G ) 等。
  • 有限域椭圆曲线

    为了实现离散的点集,椭圆曲线的方程在有限域 ( \mathbb{F}_p ) 上进行模运算,其中 ( p ) 是质数。椭圆曲线上的点 ( (x, y) ) 满足:[ y^2 = x^3 - 7x + 10 \mod p ]

    不同质数 ( p ) 会产生不同的有限域椭圆曲线,点数随着 ( p ) 的增大而增加。例如,当 ( p = 3 ) 时,椭圆曲线上的点集非常有限。

    有限域椭圆曲线的直线

    在有限域椭圆曲线中,直线方程为:[ y = mx + b \mod p ]其中 ( m ) 是斜率,( b ) 是截距。直线与椭圆曲线的交点个数决定了加法和乘法的性质。

    代数加法

    在有限域椭圆曲线中,代数加法通过以下公式进行:[ y = m x + b ]其中 ( m ) 和 ( b ) 是直线参数,用于确定点的位置。


    通过以上知识,我们可以理解椭圆曲线在比特币中的重要性,以及其在加密和签名中的具体应用。

    转载地址:http://ukzp.baihongyu.com/

    你可能感兴趣的文章
    Pycharm+Django搭建第一个Python Web程序
    查看>>
    pycharm+pyqt5配置
    查看>>
    PyCharm不突出显示错误
    查看>>
    pycharm中windows找不到chrome解决办法
    查看>>
    Pycharm中基于Ollama和Proxy AI使用本地算力进行AI辅助编程
    查看>>
    Pycharm中配置项目的打开方式(This Window,New Window)
    查看>>
    PyCharm为什么这么牛?
    查看>>
    Pycharm出现 Cannot find declaration to go to 解决方法(全)
    查看>>
    pycharm出现Can‘t get remote credentials for deployment server 的解决方法
    查看>>
    pycharm可视化数据库
    查看>>
    pytorch 中的 #@save的意思
    查看>>
    Pycharm如何取消自动换行
    查看>>
    PyCharm安装及使用说明
    查看>>
    pycharm导入自己写的模块时,模块下方出现红色波浪线的解决方案
    查看>>
    Pycharm常用快捷键大全
    查看>>
    PyCharm快捷键
    查看>>
    Pycharm快捷键记录
    查看>>
    pycharm怎么支持WPS?
    查看>>
    pycharm打印不全问题
    查看>>
    pycharm提示This inspection detects instance attribute definition outside __init__ method
    查看>>