在非对称加密算法下,客户机如何得到公钥?客户机和服务器该如何加解密数据

在非对称加密算法下,客户机怎么得到公钥?客户机和服务器该怎么加解密数据 ?
1. 客户机怎么获取服务器下发的公钥 ?公钥的载体是什么 ?

2. 客户机使用什么密钥加密和解密待传输到服务器的数据和接收到的服务器发过来的数据 ?
    服务器使用什么密钥加密和解密待传输到客户机的数据和接收到的客户机发过来的数据 ?

谢谢!

------解决方案--------------------
建议了解一下SSL协议,其建立安全链接之前,需要交换公钥。

你所讲的客户端得到服务器公钥,这个过程是对服务器的认证,一般是通过数字证书的形式发送到客户端的。
------解决方案--------------------
1. 客户机怎么获取服务器下发的公钥 ?公钥的载体是什么 ?

通过从服务器获取通讯双方的证书。证书中包含了公钥。


2. 客户机使用什么密钥加密和解密待传输到服务器的数据和接收到的服务器发过来的数据 ?
    服务器使用什么密钥加密和解密待传输到客户机的数据和接收到的客户机发过来的数据 ?

数据是使用了对称加密算法加密的,加密时使用一个叫会话密钥的数据当加密密钥,再使用通信接收方的公钥加密会话密钥。

------解决方案--------------------
通常是通过一个第三方的公证机构,有这个第三方公证机构用它的密钥对服务器的公钥进行数字签名,而这个结果我们称为这个服务器的证书。于是所有的客户端就可以使用这个第三方公证机构的公钥对证书的合法性进行验证。
当然,这里又有一个鸡生蛋还是蛋生鸡的问题,就是第三方公证机构的公钥如何分发呢?这个通常就是这恶第三方公证机构对自己的公钥进行签名,生成一个根证书,然后通过安全途径分发
实际上,比如Windows系统,安装操作系统时,微软就可以安装一个