ECC椭圆曲线入门

这篇具有很好参考价值的文章主要介绍了ECC椭圆曲线入门。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

区块链学习网站

https://web3study.club/

简介​

ECC(Ellipse Curve Cryptography)又称椭圆曲线密码体制、椭圆曲线加密算法等。 椭圆曲线加密算法在比特币、区块链上有着广泛的应用。

公式: y^2 = x^3 + ax + b

这里使用简单易懂的方式对大家介绍这部分内容,让大家有个简单的理解

原理简介​

公私钥加密内容​

公钥未公开部分,私钥则是不可泄露的 过程就是吧需要加密的信息用公钥进行加密,然后发送给私钥进行解密,且只有私钥可以进行解密 这里就会牵扯出两个问题:

  1. 公钥加密的过程是快速的,且简单的
  2. 加密后的信息是不可逆的且直接进行解密是困难的,即不可逆。

图形讲解​

椭圆曲线示例:

ECC椭圆曲线入门

  1. 椭圆曲线是x轴对称的,在y轴正向随便选择一个点,-y一定会有一个对称点
  2. 随便在图形上找两个点,两个点连成线,然后延长会经过第三个点(垂直线除外)

ECC椭圆曲线入门

如图,A、B延长线之后,寻找y轴的对称点,会得到点C,即一个运算,A-B得到C 简单的说为点运算(此点运算就是椭圆曲线的加运算):A点B=C

ECC椭圆曲线入门

连接AC,相交于一点,找到其对称点 D,即:A点C=D

依次类推,比如点E,再一次连接AE,可以找到更多的点

假设一个条件: 已知起点为A、终点为F点,请问经过多少次点运算可以得到点F

ECC椭圆曲线入门

如果说给出路径来看的话,肯定是可以得出F点的点运算次数,但是如果没有的话就相当困难了,比如你打桌球,让你的朋友看到白球的起点,然后闭眼, 你开始打,停到某个位置后告诉你朋友睁眼,问他:请问我打出白球的路线,这肯定是不知道的,包括有可能你自己都忘记了。 这也就是其中的一个原则:正向容易,逆向难(加密简单,解密困难)

ECC椭圆曲线入门

但是有一个特例,比如说上图,点P是一个切点,延长线的对称点为Q点,切点可以当做是2个点的重合点,即P点P=Q = 2P 然后再次延长相交对称:P点2P=3P 再依次对称可以得到6P点,6P就很特殊了,只看此定义,可以这样: (3p)2 = 6P (2p)3 = 6p 乘法问题。

DH算法原理​

简单举一个例子糖醋排骨,Alice和Bob都有一个独特的配方,Alice的糖,Bob的醋,Cindy是他们之间的联络员,但是Cindy总想偷他们的配方 Alice这里加糖处理好排骨之后,会通过Cindy发给Bob,Bob使用醋处理好排骨之后会通过Cindy发给Alice, 这时候Cindy是没法获取完全的配方及成品的,然后Alice和Bob获得各自货物后,进行再加工,Alice加白糖,Bob加醋,就形成了糖醋排骨的原始材料, 进行烹制后就是糖醋排骨了,这样就可以拿取卖了,这里会发现,Cindy虽然都接触到了,但是没有拿到核心的配方,也么有办法窃取他们的成果。

ECC椭圆曲线入门

其中排骨是公开的,这个就可以类比为公钥,Cindy因为没有其他人的私钥,所以最终也获取不到糖醋排骨。

在此基础上加上椭圆曲线算法

ECC椭圆曲线入门

  1. Alice生成私钥a,Bob生成私钥b,
  2. Alice和Bob都有一个公共的数据G,其是开放的,所有人都可以知道,然后Alice使用私钥经过a次点运算生成公钥A,Bob也是用生成公钥B
  3. 然后进行交换,A、B的运算就是使用的椭圆曲线加密运算,因为a次后生成A,这个次数是很难知道的,不可逆的,所以A是不能反向退出a的,相同的B也不能反向退出点b
  4. 互换之后,Alice产生一个新密钥,aB,Bob产生一个新密钥bA,然后根据刚才描述的(3p)2 = 6P问题,将aB与bA拆解:
    1. aB = a(bG)
    2. bA=b(aG) 其中就可以把 a(bG) = b(aG) ,即 aB = bA

ECDHE就是以上的椭圆曲线与DH混合起来的密钥交换算法,正向容易、逆向困难

扩展阅读​

ECC椭圆曲线密码学的原理、公式推导、例子、Python实现和应用 - 知乎

[以太坊源代码分析] IV. 椭圆曲线密码学和以太坊中的椭圆曲线数字签名算法应用 - 程序员大本营

ECC椭圆曲线详解(有具体实例) - Kalafinaian - 博客园文章来源地址https://www.toymoban.com/news/detail-408427.html

到了这里,关于ECC椭圆曲线入门的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 区块链数字签名、验签,以及椭圆曲线算法JS库—elliptic的使用

    目录 一、简介 二、椭圆曲线密码elliptic 1、安装elliptic和js-sha3 2、Keccak256 3、签名过程

    2024年02月02日
    浏览(46)
  • 椭圆曲线加密原理与应用

    由于RSA、AES等国际算法面临高强度算法禁售和被部署后门风险,我国基于ECC椭圆曲线,自研SM2/SM3/SM4/SM9一套安全算法。根据国家整体战略,金融及重要领域要逐步实现国密算法替换,另根据人民银行总体规划,在2022年金融行业要全面应用国密算法。 在FireFly移动金融开发平台

    2024年02月05日
    浏览(48)
  • 常用椭圆曲线介绍

    chat-gpt生成,对应python的miracl/core/python库 ED系列 一、ED25519 ED25519使用的椭圆曲线是Curve25519,它是一种高效且安全的椭圆曲线,由Daniel J. Bernstein等人设计。 ED25519的 密钥长度为256位,提供了128位的安全性。 ED25519可以用于生成密钥对、进行数字签名和验证签名。 由于其高效性

    2024年02月14日
    浏览(40)
  • 椭圆曲线密码(SM2)

    1. 公钥生成 ① Alice首先构造一条椭圆曲线E,在曲线上选择一点G作为生成元,并求G的阶为n,要求n必须为质数。此时构成了一个循环群G. ② Alice选择一个私钥k (k n),生成公钥 Q = kG ③ Alice将公钥组E、Q、G发送给Bob 2. 加密过程 ① Bob收到信息后,将明文编码为M,M为曲线上一点,

    2024年02月17日
    浏览(42)
  • 圆/椭圆/双曲线/抛物线等二次曲线的各种情况方程

    二次曲线(quadratic curves)由一般的具有两个变量的二次方程所隐含确定,即 其中, A = [ a i j ] A=[a_{ij} ] A = [ a ij ​ ] 为对称的2x2矩阵 B = [ b i ] 、 [ X = [ x i ] B=[b_{i}]、[X=[x_i] B = [ b i ​ ] 、 [ X = [ x i ​ ] 为2x1向量 二次曲线方程的矩阵形式表示为: 二次曲线方程可以定义点、线

    2024年02月12日
    浏览(43)
  • SM2椭圆曲线公钥密码算法实现项目

    Python 3.9 、PyCharm SM2椭圆曲线公钥密码算法是我国自主设计的公钥密码算法,包括SM2-1椭圆曲线数字签名算法,SM2-2椭圆曲线密钥交换协议,SM2-3椭圆曲线公钥加密算法,分别用于实现数字签名密钥协商和数据加密等功能。 (1)有限域上的椭圆曲线上的点的加法 (2)dB*C1=dB*k

    2024年02月12日
    浏览(45)
  • sCrypt 合约中的椭圆曲线算法:第二部分

    我们在脚本中实现了椭圆曲线 (EC) 算法。在之前的实现中,我们进行链下计算并在脚本中验证结果。我们这里直接用脚本计算。 基于EC的应用非常多,特别是在密码学领域,如数字签名、加密、承诺方案等。作为具体示例,我们重新实现了 ECDSA 签名验证,允许使用任意消息验

    2024年01月16日
    浏览(50)
  • 在比特币上支持椭圆曲线 BLS12–381

    通过使用智能合约实现来支持任何曲线 BLS12–381 是一种较新的配对友好型椭圆曲线。 与常用的 BN-256 曲线相比,BLS12-381 的安全性明显更高,并且安全目标是 128 位。 所有其他区块链,例如 Zcash 和以太坊,都必须通过硬分叉才能升级到新曲线,因为所使用的曲线是在协议级别

    2024年02月06日
    浏览(40)
  • SM2椭圆曲线公钥密码算法(Python实现)

    Windows11 PyCharm2019.3.3 x64 通过编写代码实现SM2椭圆曲线公钥密码算法,加深对SM2椭圆曲线公钥密码算法的理解,体会该算法在解决实际问题的价值; 将密码学和数学知识相联系,并灵活运用到密码学的设计方案中; 提高实践能力和逻辑思维能力。 random math gmssl SM2算法和RSA算法

    2024年02月02日
    浏览(55)
  • 椭圆曲线在SM2加解密中的应用(三)

    1.1加密原始数据 SM2加密运算首先是用户A对数据加密,用户A拥有原始数据 椭圆曲线系统参数 长度为klen比特的消息M 公钥Pb 椭圆曲线系统参数,已经在 椭圆曲线参数(二)中详细介绍;M就是需要加密消息,长度为klen; 1.1.1 公钥Pb的计算方式 公钥Pb=dBG,其中dB是私钥,是256b

    2024年02月08日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包