当前位置:   article > 正文

椭圆曲线加密算法_非对称加密,椭圆曲线算法是什么

非对称加密,椭圆曲线算法是什么

椭圆曲线密码学(Elliptic curve cryptography),简称ECC,是一种建立公开密钥加密的算法,也就是非对称加密。类似的还有RSA,ElGamal算法等。ECC被公认为在给定密钥长度下最安全的加密算法。比特币中的公私钥生成以及签名算法ECDSA都是基于ECC的。下面简单介绍ECC以及ECDSA的原理。
在这里插入图片描述

从公钥加密说起

公钥加密,也称非对称加密。可以说它现在是现代网络安全或者网络信任链的基础。公钥加密最大的特征就是通信双方各有一对公私钥,这一对公私钥有着千丝万缕的数学关系。每个人保存自己的私钥,公开自己的公钥。这样做的好处是不怕通信线路被窃听,因为攻击者拿到公钥是无法解出密文的。公私钥的基本使用场景主要有两种:

假设通信双方叫Alice(公钥A、私钥a)和Bob(公钥B、私钥b)。

  • 公钥加密,私钥解密
  1. Alice写了一封信,她不想让别人知道。于是它用Bob的公钥B对信的明文做了加密,密文为m。之后发送给了Bob。
  2. Bob收到密文m,用自己的私钥b对密文解密,正确的读出了信的内容。

整个过程中,即使窃听者拿到密文m、两个人的公钥A、B都没有什么用,无法解密出任何东西。事实上,只有拥有私钥b的人才能解密出这份信息。换个角度来说,每个人都可以拥有Bob的公钥B,也就是说,每个人都可以创造一份只有Bob可以使用或者说只对Bob来说有效的信息。

  • 私钥加密,公钥解密
  1. Alice写了一份公开声明文件,她用自己的私钥a对文件加了密,生成加密文件m,公布在自己的网站中。
  2. Bob下载了这份声明文件,并用Alice的公钥A进行解密,正确的读出文件内容。

这个过程听起来有点奇怪,Alice既然公布的是声明文件,是想让别人阅读的,而且每个人都可以拿到Alice的公钥A,那么为什么还要加密呢?确实,每个人都可以对文件解密,可是这里的目的主要不是解密,而是对这份文件的来源验证,证明它肯定是由Alice发出的声明。即使文件被恶意篡改,那么此时再拿公钥A解密,就是无效的,由此可证明信息被改动过了,并不是Alice的原来文件。用这种方式使用公私钥可以证明信息的来源并且有不可否定的特性。(即Alice不能否认此信息不是由她发出的,因为只有私钥a可以产生加密文件m)

以上是使用公钥加密算法的基础场景,但事实上用上述方法进行通信还远远不够,例如需要提高加密速度,需要先对文件进行hash;再如不能抵御中间人攻击,(即获取的公钥不一定是正确的)需要引入证书,不过这些不在本文讨论范围之内。下面我们来看ECC是如何产生密钥对的。

椭圆曲线

这一节让我们来了解一些数学知识。

一般来说,椭圆曲线可以用下列方程式表示,a,b,c,d为系数(a≠0,有重根)
在这里插入图片描述
例如,当a=1,b=0,c=-2,d=4时,所得到的椭圆曲线为:
在这里插入图片描述
椭圆曲线下图所示。

在这里插入图片描述
E _ 1 : y 2 = x 3 − 2 x + 4 E\_1:y^2=x^3-2x+4 E_1:y2=x32x+4曲线

其实椭圆曲线并不是我们高中学习的椭圆形状,其名字的由来是因为椭圆曲线的描述方程,类似于计算一个椭圆周长的方程。这里用于加密的椭圆曲线的定义是一个特殊情况,完整定义参考这里

有了图像,我们接下来就可以搞一搞事情了

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/612266
推荐阅读
相关标签