在熟悉RSA加密方式之前,先了解SSL,SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议(百科)。
SSL流程:
服务器认证阶段:1)客户端向服务器发送一个开始信息“Hello”以便开始一个新的会话连接;2)服务器根据客户的信息确定是否需要生成新的主密钥,如需要则服务器在响应客户的“Hello”信息时将包含生成主密钥所需的信息;3)客户根据收到的服务器响应信息,产生一个主密钥,并用服务器的公开密钥加密后传给服务器;4)服务器回复该主密钥,并返回给客户一个用主密钥认证的信息,以此让客户认证服务器(可选操作)。
用户认证阶段:在此之前,服务器已经通过了客户认证,这一阶段主要完成对客户的认证。经认证的服务器发送一个提问给客户,客户则返回(数字)签名后的提问和其公开密钥,从而向服务器提供认证(个人觉得也是可选)
在公开密钥密码体制中,加密密钥(即公开密钥)PK是公开信息,而解密密钥(即秘密密钥)SK是需要保密的。加密算法E和解密算法D也都是公开的。虽然解密密钥SK是由公开密钥PK决定的,但却不能根据PK计算出SK。RSA算法是一种非对称密码算法,所谓非对称,就是指该算法需要一对密钥,使用其中一个加密,则需要用另一个才能解密。
以上是从网络上摘取的解释,现在自己对其加密流程进行概括
客户端和服务端加密流程:
1、服务器发送给客户端一个public秘钥
2、客户端自己生成一个字串,将之后需要对称加密的秘钥1,放进去,传送给服务器端。
3、服务器端根据自己的私钥,解出对称加密的秘钥1。
4、服务器和客户端对传送的消息使用对称加密的方式(各自使用自己的秘钥1),进行信息传输。
----------------------------------------------------------------------RSA加密方式学习------------------------------------------------------------------------------------
继承学习:ssl