在文章非对称加密和签名认证中,我们介绍了双钥系统的两种应用场景:
- 加密解密时,公钥用于加密,私钥用于解密
- 身份认证时,私钥用于签名,公钥用于验证
椭圆曲线密码学(ECC,Elliptic Curve Cryptogphay)是一种流行的非对称加密算法,其背后的数学原理,是椭圆曲线上的离散对数难题。我们还知道,ECC 的私钥,本质是一个整数,其对应的公钥,是椭圆曲线上的一个点。
在将 ECC 作为双钥系统使用时,针对不同的应用场景,会涉及到不同的算法。常见的有
- 在加密和解密时使用的椭圆曲线集成加密框架(ECIES,Elliptic Curve Integrated Encryption Schema)
- 用于协商和交换公共密钥的椭圆曲线 Diffie-Hellman 密钥交换算法(ECDH,Elliptic Curve Diffie-Hellman Key Exchange)
- 用于生成和验证数字签名的椭圆曲线数字签名算法(ECDSA,Elliptic Curve Digital Signature Algorithm)
本文将介绍并实现 ECDSA 的相关内容。