区块链中的密码学

密码学包括经典密码学和现代密码学,经典密码主要研究对称密码,现代密码学是非对称密码学。

在区块链中使用了较多的非对称加密算法,比较有名的是比特币中使用的椭圆曲线密码学(Elliptic Curve Cryptography,简称ECC),在比特币中,利用椭圆曲线密码学生成私钥、公钥和数字签名。

椭圆曲线密码学的主要优势:

  • 比其他方法使用更小的密钥。小的密钥便于网络传输,所以在对带宽要求比较高的场景中十分有用。
  • 可以定义群之间的双向性映射

椭圆加密算法的使用:

# 导入椭圆加密算法
from ecdsa import SigningKey, SECP256k1

# 生成私钥
sk = SigningKey.generate(curve=SECP256k1)
# 生成公钥
vk = sk.get_verifying_key()
# 用私钥对Something生成签名
signature = sk.sign("Something".encode("utf-8"))
# 用公钥判断签名是否正确
res = vk.verify(signature, "Something".encode("utf-8"))
print(res)    # True

椭圆曲线加密码算法原理:https://www.jianshu.com/p/e41bc1eb1d81

推荐阅读文章:

https://www.jianshu.com/p/e297a162c92e

 

你可能感兴趣的:(区块链)