以太坊椭圆曲线数字签名

本文主要描述椭圆曲线密码学数字签名相关的理论。

椭圆曲线密码学

椭圆曲线密码学(ECC, Elliptic curve cryptography)是基于椭圆曲线数学的一种公钥加密方法。

什么是公钥加密方法

在如 DESAES 这类对称密码系统中,信息的发送方使用一把密钥进行加密,接收方使用相同的密钥进行解密。
而在公钥加密方法中,信息的加密和解密使用的密钥是不同的,称之为公钥私钥(注:既可以公钥加密私钥解密,也可以私钥加密公钥解密),常用的公钥加密方法有

  • RSA - 基于大因数分解
  • ECC - 基于椭圆曲线和离散对数

两者都基于数学上一种双向运算,但这种运算一个方向计算容易,反方向计算却十分困难。以RSA背后的因数大数分解理论为例:
笔算完成下面的等式:

373 751 =

如果你用笔在纸上画画 ,会发现这并不是很困难,那么如果是下面的等式呢?
280123 =

太困难了 ! 即使是使用计算器,我觉得也没有谁一时半会儿也算不出来。

答案是 373 751 = 280123 ,这就是RSA的理论基础,两个质数(素数)的乘积很容易计算,但要将一个这样的乘积分解回去就困难了。ECC采用的与之类似,不同的是它采用的是离散对数问题(DLP,Discrete Logarithm Problem)制造单向计算的困难(稍后有例子)。

什么是椭圆曲线

我们在中学课本里一定都学过椭圆的定义。如下图所示,
ecc
椭圆上的点都满足 a x 2 + b y 2 = c o v e r R

而密码学中的椭圆曲线是满足以下等式的点组成的集合,

y 2 x 3 + a x + b ( mod p ) x , y Z p

加上一个想象中的无穷远点

猜你喜欢

转载自blog.csdn.net/chenmo187J3X1/article/details/80910447
今日推荐