zoukankan      html  css  js  c++  java
  • 简述HTTPS(二):混合加密机制

    一、对称加密

    加密和解密同用一个密钥的方式就叫对称加密,也称为共享密钥加密
    例如:A和B是进行通信的双方
    假设A手握一把密钥 key1,那么A需要克隆一把相同的密钥 key1'
    在第一次通信中,A将报文连同 key1'一起发送给B
    此后:A和B则分别使用 key1、key1' 分别对接收/发送的报文进行解密/加密

    对称密钥加密的优点在于:
    加密算法公开、计算量小、加密速度快
    缺点在于:
    1、转发密钥的通信若被监听,则密钥可能落入攻击者之手
    2、通信双方需要使用其他人不知道的密钥,这会使得双方持有的钥匙数量巨大,难以管理和维护

    二、非对称加密

    通信双方使用一把私有密钥和一把公开密钥,也称为公开密钥加密

    顾名思义:任何人都可以获得公开密钥,但私有密钥不能让其他人知道

    例如:B希望自己发送给A的报文被加密
    假设A手握公钥 key2 和私钥 key2'
    首先,A将报文主体连同 key2 一起发送给B
    此后,B向A发送的报文都将使用 key2 加密
    而被 key2 上锁的报文 只有A手上的 key2' 才能解密

    同理:当A想要回复B时,正好相反
    此时A就使用B的公钥对数据进行加密
    而B就用自己的私钥进行解密

    非对称加密很好地解决了对称加密的问题:
    它消除了通信双方交换密钥的需要,进一步保证了通信的安全性
    然而,非对称加密的加密解密速度非常慢,算法复杂
    HTTPS采用的混合加密机制 则充分利用了两者的优势

    三、混合加密机制

    在交换密钥的环节使用非对称加密,之后的通信则使用对称加密
    例如:A手握一对非对称密钥(公钥key3、私钥key3'),B手握一对对称密钥(key4、key4')

    阶段1:交换密钥-使用非对称加密

    1、A将公钥 key3 发送给B
    2、B将下一阶段加密/解密用的 key4' 放在报文中,并使用公钥 key3 对报文进行加密
    3、A使用私钥 key3' 解密报文,得到 key4'

    阶段2:数据通信-使用对称加密

    A和B分别使用 key4' 和 key4对接收/发送的报文进行解密/加密


    一方面,第一阶段的非对称加密 保证了对称密钥的安全性
    另一方面,第二阶段的对称加密 可以提高加密/解密处理的速度,提高数据传输的效率


    然而,这种混合加密机制还是存在一些问题
    那就是:无法证明第一阶段派发的公钥 是货真价实的公钥
    解决方式:请看 简述HTTPS(三):数字证书

  • 相关阅读:
    jquery easyui 时间控件的使用
    3101 php 学习推荐
    报到
    《C++语言的设计和演化》摘录
    怀念下以前听摇滚乐的日子
    Maven無法下載依賴時的解決方案
    RDF和Jena RDF API入门(2)
    WEB数据挖掘(五)——Aperture数据抽取(1)
    RDF和Jena RDF API入门(1)
    Ubuntu SVN安装配置十分简单
  • 原文地址:https://www.cnblogs.com/baebae996/p/13789552.html
Copyright © 2011-2022 走看看