一、公开密钥加密:
1、每个参与通信的实体都有一对密钥:公钥和私钥。公钥可以被分享给其他人,用于加密数据;私钥只能由持有者使用,用于解密数据。
2、加密的是对称密钥而不是报文主体
3、具体通信过程如下:
(1)客户端发送一个加密请求给服务器端。
(2)服务器端返回包含公开密钥的数字证书给客户端。
(3)客户端使用服务器端提供的公开密钥加密一个随机生成的对称密钥,用这个对称密钥来对数据主题进行加密,并将加密后的数据发送给服务器端。
(4)服务器端使用自己的私有密钥来解密客户端发送的加密后的对称密钥,并用这个解密后的对称密钥来对数据进行解密。
(5)服务器端和客户端使用这个对称密钥来进行加密和解密通信数据。所有发送的数据都是用这个对称密钥加密的。
二、共享密钥加密:
1、是指在加密和解密数据时,使用同一个密钥来进行加密和解密的过程。这个密钥被称为共享密钥,因为它需要在通信双方之间共享。
2、在共享密钥加密中,加密方使用共享密钥将明文加密成密文,而解密方则使用相同的共享密钥将密文解密成明文。
3、这种加密方式通常比公开密钥加密要快,但密钥分配和管理的难度相对较高,因此通常用于小范围的安全通信,例如局域网内的通信。
4、由于通信双方使用的是同一个密钥,因此在数据传输过程中,密钥也需要通过一些安全的方式进行传输,以确保它不会被窃取。在实际应用中,为了提高密钥的安全性,通常会采用一些措施来保护密钥,例如使用安全的通信渠道传输密钥、定期更换密钥、使用密钥协商算法等。