公钥密码学
公钥密码学——或称非对称密码学——是一种密码系统,其中密钥成对出现。一个密钥执行的转换只能用另一个密钥撤销。其中一个密钥(私钥)保密,而另一个密钥公开。
数字签名
当用于数字签名时,私钥用于签名,公钥用于验证。这意味着任何人都可以验证签名,但只有相应私钥的所有者才能生成它。
加密
当用于加密时,公钥用于加密,私钥用于解密。这使得公钥加密系统比对称加密系统具有优势:加密密钥可以公开。任何人都可以向私钥所有者加密消息,但只有私钥所有者才能解密它。
然而,公钥加密系统通常比对称算法慢得多,并且它们可以加密的消息大小与密钥大小成正比,因此它们不适用于长消息。
因此,常见的做法是加密系统使用对称算法加密消息,然后使用公钥系统加密对称密钥。这种安排可以兼具两种系统的优点。
常见的公钥密码系统
常用的公钥密码系统有 RSA(用于签名和加密)、DSA(用于签名)和 Diffie-Hellman(用于密钥协商)。
椭圆曲线密码学为这些密码系统提供了另一种方法,其优势在于使用相对较小的密钥大小、更快的操作以及更小的存储和传输。流行的椭圆曲线算法包括 椭圆曲线 Diffie-Hellman 和 椭圆曲线数字签名算法,开发者通常会将其缩写为 ECDH 和 ECDSA。