对称加密


      对称加密是最快速、最简单的一种加密方式,加密与解密用的是同样的密钥。对称加密有很多种算法,由于它效率很高,所以被广泛使用在很多加密协议的核心当中。对称加密通常使用的是相对较小的密钥,一般小于256 bit。因为密钥越大,加密越强,但加密与解密的过程越慢。如果你只用1 bit来做这个密钥,那***们可以先试着用0来解密,不行的话就再用1解;但如果你的密钥有1 MB大,***们可能永远也无法破解,但加密和解密的过程要花费很长的时间。密钥的大小既要照顾到安全性,也要照顾到效率。

         对称加密的一大缺点是密钥的管理与分配,也就是说,如何把密钥发送到需要解密你的消息的人的手里是一个问题。在发送密钥的过程中,密钥有很大的风险会被***们拦截。所以就产生了非对称加密,而且在现实中通常使用的都是非对称加密。

       下面通过一张图来说明下对称加密是一个什么样的过程



  

       对称与非对称加密详解_第1张图片

   

       可以看到,在图中,有两个人a和b,a要将一份机密的数据发送给a,这份数据被加上了锁,a和b都各自拥有一把钥匙,a将数据发送给b后,b在通过这把钥匙打开这份数据,不必担心数据在路上被人截获,因为只有拥有钥匙的a和b才能解开这个文件,这其实也就是传统的将重要资源送到目的地的方式,而对称加密也就是类似的方式。

        在对称加密中,a将数据以及经过某种算法加密过的密钥发送给b,b拿到后,只有通过相同的密钥,以及算法的逆算法,对数据进行解密才能获得数据。


非对称加密


     与对称加密不同,非对称加密为数据的加密与解密提供了一个非常安全的方法,它使用了一密钥,公钥和私钥。私钥只能由一方安全保管,不能外泄,而公钥则可以发给任何请求它的人。非对加加密使用这对密钥中的一个进行加密,而解密则需要另一个密钥。比如,你向银行请求公钥,银行将公钥发给你,你使用公钥对消息加密,那么只有私钥的持有人--银行才能对你的消息解密。与对称加密不同的是,银行不需要将私钥通过网络发送出去,因此安全性大大提高。

       虽然非对称加密很安全,但是和对称加密比起来,它非常的慢,所以我们还是要用对称加密

来传送消息,但对称加密所使用的密钥我们可以通过非对称加密的方式发送出去。

           

           下面通过一张图片,解释下这个过程是如何实现的

 

         对称与非对称加密详解_第2张图片

   

     可以看到,图中的a和b,都有自己的公钥和私钥,由于公钥是公开的,所以a有b的公钥也就是

gkb,这时候,a将一份文件用gkb加密后传给b,b用自己与之对应的私钥也就是pka,就可以解密这

份文件,而就算途中被***截获,由于只有对应的私钥才可以解锁文件,而***并没有与之对应的私钥(pka),所以并无法打开这份文件。