加解密相关算法简单了解

加密算法

  • 对称加密: DES;3DES;RC2;RC4;IDEA;AES;Blowfish
  • 非对称加密: RSA;Elgamat;Rabin;D-H;ECC;DSA
  • 数字签名算法: MD5;SHA;CRC
  • 对称与非对称区别:
    • 对称加解密所使用的秘钥相同;非对称加解密使用公私钥加解密

非对称加密算法的应用:HTTPS

HTTPS 与 HTTP 特别之处

  1. 浏览器将自己支持的规则发送给网站。(协议版本、加密方法、压缩方法以及一个随机数)
  2. 网站确认协议版本、加密方式,并将一个随机数及自己的身份信息以证书的形式发回给浏览器。证书里面包含了网站地址,加密公钥,以及证书的颁发机构等信息。
  3. 获得网站证书之后浏览器要做以下工作:
    a. 验证证书的合法性(颁发证书的机构是否合法,证书中包含的网站地址是否与正在访问的地址一致等),如果证书受信任,则浏览器栏里面会显示一个小锁头,否则会给出证书不受信的提示。
    b. 如果证书受信任,或者是用户接受了不受信的证书,浏览器会生成一串随机数,并用证书中提供的公钥加密。
    c. 将编码改变通知(表示随后的信息都用双方商定的加密方式和密钥发布)、客户端握手结束通知、所有内容的hash值,发送给网站。
  4. 网站接收浏览器发来的数据之后要做以下的操作:
    a. 使用自己的私钥将信息解密取出随机数,并验证HASH是否与浏览器发来的一致。
    b. 使用三个随机数生成“会话密钥”加密一段握手消息(编码改变通知、服务器握手结束通知),发送给浏览器。
  5. 浏览器解密并计算握手消息的HASH,如果与服务端发来的HASH一致,此时握手过程结束.

补充

HTTP三次握手

三次握手

HTTP四次挥手

四次挥手

注:HTTP 握手与挥手流程图 摘自 博客园

0

发表评论

This site uses Akismet to reduce spam. Learn how your comment data is processed.