椭圆曲线密码学(Elliptic Curve Cryptography, ECC),又称椭圆曲线密码体制、椭圆曲线加密算法等。椭圆曲线加密算法在比特币、区块链领域有着广泛的应用。
本文先回顾了椭圆、离散对数、离散对数问题(DLP)、数论等基本概念;接着引出椭圆曲线、有限域、有限域加法法则(给出Python代码实现)、椭圆曲线离散对数问题(ECDLP)、ELGAMAL,EC ELGAMAL;然后基于Python实现了ECC加密解密,并介绍了ECC在比特币(ECDSA、Secp256k1)上的应用;最后对ECC进行总结,并对比了ECC与RSA,指出二者的一些区别。
本文层层推进,从ECC椭圆曲线密码学的概念、原理、公式推导、例子、Python实现、应用等来构建椭圆曲线密码学的完整体系,使读者对ECC有系统概览。文章的目录如下:
一、ECC基础
1、椭圆
2、离散对数
3、数论
二、ECC原理
1、椭圆曲线
2、求解
3、加法法则
4、ECDLP
5、ELGAMAL
6、EC ELGAMAL
三、ECC应用
1、Python实现ECC
2、比特币
四、ECC总结
1、RSA VS ECC
2、密码学
直接上PPT。
一、ECC基础
1、椭圆
介绍椭圆、椭圆参数方程、椭圆周长、椭圆积分是为了引出椭圆曲线而做的基础铺垫。
什么是椭圆?
什么是椭圆的周长?
什么是椭圆积分?
椭圆积分丰富内涵可以参考维基百科:
椭圆积分zh.wikipedia.org其中,第二类完全椭圆积分E的定义:
注意:上面推导过程,阐述了为什么叫椭圆曲线。
2、离散对数
介绍离散对数、DLP是为了引出ECDLP椭圆曲线离散对数问题而做的基础铺垫。
什么是离散对数?
什么是DLP离散对数问题?
离散对数问题(Discrete LogarithmProblem, DLP)。
举个例子说明离散对数问题(DLP)。
3、数论
群、域、域上四则法则是椭圆密码学的基础,所有的ECC加密解密都是围绕这些基本性质展开的。
什么是阿贝尔群?
什么是环?
什么是域?
什么是域上四则运算?
这是ECC计算的基本原理,是ECC最重要、最重要、最重要的知识点。
二、ECC原理
1、椭圆曲线
什么是椭圆曲线