公钥可以用来做什么

Photo by Mo on Unsplash

数据加密是为了确保传输信道上的信息不被泄露。数据认证是为了确保传输信道上的数据不被篡改。非对称加密算法中的公钥既可以用来进行数据加密也可以用来进行数据认证。它们都是用到了私钥加密公钥解密和公钥加密私钥解密这一非对称加密性质。

数据加密——公钥加密

传递公钥用于数据加密。在 HTTPS 中双方交换公钥,双方分别使用对方的公钥对某个对称密钥进行加密,对端再用自己的私钥进行解密。

为了防止中间人攻击权威证书机构 (Certificate Authority,简称 CA) 对合法的服务器公钥信息利用自身的私钥生成数字签名,交由服务端一并发送给客户端。客户端在收到证书信息之后,利用浏览器中内置的、由 CA 派发的公钥对数字签名进行解密。若解密的数字签名与证书中的信息的摘要相吻合,那么就可以认为服务器端公钥未被篡改,客户端可以通过这个公钥来加密信息。

继续阅读公钥可以用来做什么