以太坊椭圆曲线数字签名
本文主要描述椭圆曲线密码学
及数字签名
相关的理论
椭圆曲线密码学
椭圆曲线密码学(ECC, Elliptic Curve Cryptography)是基于椭圆曲线数学的一种公钥加密方法。
什么是公钥加密方法
在如 DES
、AES
这类对称密码系统中,信息的发送方使用一把**进行加密,接收方使用相同的**进行解密。
而在公钥加密方法中,信息的加密和解密使用的**是不同的,称之为公钥
和私钥
(注:既可以公钥加密私钥解密,也可以私钥加密公钥解密),常用的公钥加密方法有
-
RSA
- 基于大因数分解 -
ECC
- 基于椭圆曲线和离散对数
两者都基于数学上一种双向运算,但这种运算一个方向计算容易,反方向计算却十分困难。以RSA背后的因数大数分解理论为例:
笔算完成下面的等式:
如果你用笔在纸上画画 ,会发现这并不是很困难,那么如果是下面的等式呢?
太困难了 ! 即使是使用计算器,我觉得也没有谁一时半会儿也算不出来。
答案是 ,这就是RSA
的理论基础,两个质数(素数)的乘积很容易计算,但要将一个这样的乘积分解回去就困难了。ECC
采用的与之类似,不同的是它采用的是离散对数问题(DLP,Discrete Logarithm Problem)制造单向计算的困难(稍后有例子)。
什么是椭圆曲线
我们在中学课本里一定都学过椭圆的定义。如下图所示,
椭圆上的点都满足
而密码学中的椭圆曲线是满足以下等式的点组成的集合,
加上一个想象中的无穷远点