关于数据传输中加密解密那点事儿(一)

  • A+
所属分类:安全闲碎

随着互联网的兴起,越来越多的信息和资源要通过网络传输完成;然而在这些数据传输中总有一些“无关人员”做一些窃听、盗取、篡改等危害数据安全的行为,所以我们要对数据进行加密处理,以保证数据的安全传输;

  所以有了一下几种加密方式:

  一、对称加密:

    这种算法简单来说就是 数据的发送方和接收方都必须要有同一种密钥(加密数据所用到的密钥),在数据的传输中 数据与密钥都通过加密的方式传送;

    特性:在数据加密中,数据被分成固定大的块,逐个加密;加密和解密速度也快;

     缺陷:因为加密和解密使用同一种密钥,所以需要发送方和传送方都要保留密钥,导致对于保存密钥的数量也会越来越多;密钥的分发的保密性也过于困难;

 二、单向加密:

    这种加密方式就是单纯的加密过程,无法自己进行解密;所以不能用作直接进行加密数据信息。常用的算法有两种:MD5和SHA算法,用这种方法对数据中的某一段进行加密处理,获得一个叫“特征码”的东西。 这种“特征码”可以用来确定原数据真伪性和数据的完整性;

    特性:定长输出;雪崩效应(更改原数据中任意一个字节,都会使得特征码有截然不同的变化)

 三、公钥加密算法:

    这种算法中所用到的密钥有两种:私钥和公钥(由私钥抽取生成的)

    私钥的大小:512bit、1024bit、2048bit、4096bit、8192bit、16384bit;

    这种加密方式对数据的加密安全等级较高;简单来说就是使用私钥加密数据,解密则必须用公钥来解密;若使用公钥加密,则必须使用私钥来解密;

    由于私钥的大小过大,对于数据的加密所消耗的系统资源和时间也会过多;所以就产生了缺陷;

    通常这种加密方式很少用来加密大批量的数据,所以它可以用来加密以下几种:

     ⑴数字签名的加密

        数字签名是用来让数据的接收方确认发送方的身份的;

     ⑵密钥加密

        在对称加密中的密钥交换时,可以用公钥加密法来加密密钥;

     ⑶小段数据的加密

        当所需要传送的数据是少量的情况下,可以使用公钥加密;

    常用的公钥加密算法:

     RSA:加密数字签名

     DSA:数字签名算法;只能实现数字签名的功能;有时该算法被称为DSS;

     ELgamal


  有了以上几种加密方式,在数据传输中的联合应用,就可以达到安全传输数据的目的;

     

    从公钥加密方式可知,传输数据双方都要有对方的公钥才可以对数据进行解密;那么问题来了,这个公钥如何获得?所以这里产生了第三方机构,也就是CA(Certification Authority)。

    

    CA是认证身份的中心,是用来确认公钥拥有者的真实身份的;类似于我们生活中的身份证;


    CA机构的工作:

         1.通信双方交换证书;

 2.双方协商加密算法;

     3.双方验证证书的真伪;

 4.用CA的公钥解密证书中CA的签名,能解密说明证书来源可靠

 5.用通用的加密算法加密证书,取得特征值;与解密出来的特征值比较,如果相同,说明证书完整性可靠;

 6.检查证书的有效期是否在合法时间范围,如果过期则证书不被认可;

 7.检查证书的主体名称和此通信的目标是否能够对应


     国际标准化组织(ISO)定义了证书的机构和认证标准,X.509协议标准

     证书里面主要包括:

  拥有者的名称:

  拥有者所提交的公钥

  有效期

  证书的版本号

  证书的序列号

  签发算法ID

  签发CA的名称

  主体名称

  发证者的唯一标识

  发证者的数字签名;

  扩展信息;

    

  有了这个机构我们就能安心的在网络中传输数据了;简单的总结下数据是如何传输的:

      1.通信双方互相交换证书,并到信任的CA进行证书验证;


      2.发送方使用某种对称加密算法对数据进行加密;对加密后的数据使用单向加密计算其特征值;发送方再用自己的私钥加密此特征值,以证明数据来源的可靠;发送方使用接收方的证书加密对称密钥;


      3.接收方在收到数据之后,先使用自己的私钥解密对称密钥;然后使用发送方的公钥解密特征值,再利用相同的单向加密算法,重新结算加密数据的特征值;比较两个特征值;如果特征值一致,则表明数据完整;再用解密出来的对称密钥解密出原始数据



本文始发于微信公众号(飓风网络安全):关于数据传输中加密解密那点事儿(一)

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: