• 9.2 数据安全加密(第一部分)



    指的是什么对称什么不对称呢?对称加密技术的加密密钥和解密密钥是相关的.非对称加密的加密密钥和解密密钥不同.对称和非对称是指的加密密钥和解密密钥是否对称.

    把一段文字进行传输.传输要保证它的一个正确,保证它的安全性,而且保证传输过程的一个正确性,不被别人篡改.对明文进行加密以免别人截获明文而得到这些秘密的信息.那么我们就可以采用这种对称加密技术.对称加密呢有一个密钥,用这个密钥配合加密算法可以将这么一段文字加密成这样子的一段文字.那么我们称前面这种为明文,而这种呢称为密文.密文就在公共的互联网上进行传播、传输.从A传到B处.B得到密文之后呢他也看不懂这个密文,必须要进行解密才行.B就用同样的一个密钥(注意是同样的一个密钥,这两个密钥是相同的),对这一段密文用解密算法进行解密,那么就得到了我们的明文.这样子就完成了一次加密解密的一个全过程.

    之所以称它为对称加密技术呢就是这个解密密钥和这个加密密钥它们是一样的.它们是对称的.那么现在我们就来了解几种比较常见的这个对称加密算法.


    首先我们要看到的就是DES算法.DES又被称为数据加密标准算法.DES它的密钥长度是64位.但是有效密钥它只有56位,那剩余的8位是做校验来用的,不是有效密钥.那么密钥它是对64位,它是固定长度的块,对64位的二进制数据进行加密,加密完成之后呢它还是一个64位的块.所以对于DES加密算法的话,它的输入原文是64位的块,密文也是64位的块.它是通过一系列的替换和移位来完成这个算法的.总共要进行16轮的编码.经过这16轮的编码,然后我们的明文就已经变得面目全非,已经是完全不同的64位的一个密文了.那么我们的DES算法它有什么长处它有什么优点呢?

    DES算法的全过程:用64位的原文加一个56位的有效密钥,把这两个作为参数输入到这个加密算法,然后就产生了一个64位的密文.而这个密文呢我们加一个同样的密钥作为参数给解密程序,那么解密程序就产生了64位的原文.

    这就是DES算法它的一个处理过程.DES算法的安全性如何呢?其实DES算法它的安全性还是比较高的.它的安全性比较高主要体现在两个方面:

    第一个方面:现在目前为止你想攻击DES这种加密方式的话,这种加密算法,还只发现了一种有效的方式:穷举法.也就是说现在它一般的这个对于DES的一个解密的话只能够用穷举法而没有其他的高效的方法.只能够是穷举.那么我们56位的这一个密钥长度,56位的密钥的穷举空间是256,这个256是一个什么概念?比如我们有一台PC机,它每一秒钟它能够检测100万个密钥,就检测这种密钥,每秒钟能够检测100万个,速度已经非常快了.那么它对于这种256的这种穷举空间的话多长时间才能够穷举完所有的密钥呢?是2285年才能够穷举完这些密钥.这还是56位长度的密钥,那么它就要以每秒钟100万的这个速度来穷举密钥,要2285年.所以说这种方式几乎是不可能的.但是我们举的例子是PC机,不是超大型的服务器,不是超大型巨型机.而且现在随着科学技术的增长,超高速计算机的发展,那么我们有可能,如果说有可能要破解这个DES算法的话,那就是因为它的密钥比较短.如果说它56位的密钥不够,我们再把它增长的话,增长到128位或者是112位的密钥,那么它的一个保密性、可破解性也就越来越低了.

    这是DES算法,就目前而言它还是比较安全的.因为它就一种穷举法可以对它进行破解.


    三重DES它所采用的算法和这个DES算法是一样的.它是在DES算法的基础上而发展起来的.它的不同之处在哪里呢?它用到了两个56位的密钥,一重DES算法只有一个密钥K.三重DES算法有两个密钥,不是有三个密钥.两个都是56位的密钥.它的一个过程就比较复杂一些了,它首先呢发送方用第一个密钥K1对这个明文进行加密,加密完了以后它是用K2来进行解密,K2进行解密.那么解密之后呢可能就是一个更为没有规律、复杂的一个数据了.然后再次用K1又加密,这个处理过程就比较复杂了.而接收方就刚好相反,首先用K1解密,再用K2加密,再用K1解密,一个逆过程.这样子的效果就相当于把我们的密钥长度增长了.所以说三重的DES算法比单重的DES算法它的安全性要高,破解难度也大了很多很多.你不要看这里只是三次的这么加密,它的这种穷举空间是呈数量级的一个增长.

    三重DES算法的加密解密过程:

    首先看加密.同样是64位的原文.把这个原文和密钥K1作为参数给加密算法,这一个箭头形成的其实已经是一段密文了.然后这段密文再用DES的解密算法,我们用解密算法配合密钥K2(第二个密钥)进行解密.解密出来的是一段更加复杂的密文,复杂的密文.然后再用DES的加密算法,用密钥K1再次加密.这个密文就相当的复杂了.但是长度还是64位.

    解密过程和它是一个逆过程.首先用K1解密,再用K2加密,再用K1解密就得到了原文.

    这个是三重DES算法.


    RC-5我们就了解它,它是一个对称加密算法就行了,不要过多地去详细的了解它的相关知识.了解它是对称加密算法就行了.


    再下来我们要看到的是这个IDEA算法.那么IDEA算法是怎样的一个算法呢?IDEA算法又被称为国际数据加密算法.这一个算法呢和三重DES算法有点相似,它的明文和密文也都是64位.不同的在于密钥的长度长一些,是128位.因为在设计这一个IDEA算法的时候,当时已经有了DES算法.而且有人提出来DES算法呢它的密钥长度太短了,有可能呢产生一些不安全的因素.那么在设计IDEA算法的时候就把密钥的长度提到了128位.这个IDEA算法它的性能呢比DES这种算法性能要好,而且对计算机功能的要求也没那么高,可以说IDEA算法它的一个性能就比原来设计出来的DES算法性能要好.IDEA算法呢它以前呢并不是叫IDEA算法,它是叫PES算法.是92年的时候被命名为IDEA算法.IDEA算法呢也是现在公认的一个安全性相当高的一种分组密码算法.这种加密方式呢被PGP系统所使用.

    这就是我们常见的几种对称的加密算法.


    因为我们的加密算法主要就是进行安全通信,保证这个秘密的信息不被泄漏.那么这个应用,要应用到这项技术当中,应用的最广泛的呢应该是这个电子商务.因为电子商务交易频繁,然后它要求的这种安全性又比较高.

    第一个问题:密钥难以传输.比如A有一段秘密的信息要传给B,A要把信息传给B.可以把我的明文加密,加成密文之后就传输给B.B收到密文之后解密,就得到明文.这一个过程呢看似没有问题,但是实际上是存在问题的.就是最开始我们怎么把这个key给B?怎么把这个key给B?因为key是密钥,密钥我们不可能就最开始的时候,我和B交流的时候就明文地去传送密钥.如果明文传送密钥有可能造成密钥的丢失,一旦密钥丢失不管这个算法有多么好,那么都失去了它的安全性.因为如果说第三方C它知道密钥,那么A给B传送密文的时候它截获密文,如果说别人截获这个密文没有密钥那么这个密文没用.但是C现在有密钥的话它就可以把这个密文破解成明文,密文破解成明文.C如果已经截获到了这一个key,截获到了密钥那么它可以截获密文之后转成明文,这也就没有安全性可言了.然而我们的密钥又不可能说我A和B之间我要进行秘密数据交换了,那么我A跑到B那里把密钥给它,那不可能,因为本身电子商务就是一种远程的一种交互.如果说密钥要面对面的进行交换,那么我们的密钥加密这种传输也就失去了它的必要性.所以说这个对称加密算法第一大难题就是这个密钥难于传输.密钥一旦泄露了这个后果是很严重的.

    第二点是密钥的数目难于管理.A和B要进行通信,它们呢要有相同的密钥.A与C加密,秘密传输文件那么呢A又要和C有共同的密钥.如果我把A和B之间通信的密钥定为key1,然后A和C之间的密钥定为key2.A和D之间的定为key3.A和E之间的定为key4.这样子我们就发现,A要和几个人通信.那么他就要保存几个密钥.如果A要和成千上万的人来通信的话,那么他就要保存成千上万个密钥.这是一个很头疼的问题.而且这些密钥非常的要紧,不容丢失,丢失的话就可能对以后的一些信息传输带来不安的一些因素,带来不安全因素.

    第三点就是对称加密算法一般不能够提供信息完整性的识别.就是不能够确定这一些密文在途中是否被篡改.

    第四点就是对于对称密钥的分发管理是一个很繁琐的一个过程.一个很复杂的一个工作.


    例题:

    DES算法加密完密文同样是64位.如果是三重DES的有效密钥是多少?它用到了两个56位的有效密钥,2个56位的有效密钥.所以对于三重DES算法,它的密钥长度是112.

    DES算法的密钥长度只有56位,这对于这一个算法而言它是一个隐患.就是因为它的密钥太短了,如果说计算机它的处理速度在以非常快的速度发展,那么56位的这个密钥有可能现在就已经能够被破解了.用很多台计算机同时来进行密码的这个试验,进行破解.所以说后面的三倍DES和IDEA算法它采用的密钥都比DES的要长.


    非对称加密技术就是指的加密密钥和解密密钥是不同的.我们在讲对称加密这个技术的时候呢,我们的这个密钥都是写的密钥,而且是一模一样的.而在非对称加密技术里面呢就分了公钥和私钥,不同的.它们是不同的.然后同样对一段明文,我们首先是用公钥对它加密就形成了密文.这个明文就变成了密文.然后解密的时候并不是用公钥去进行解密,不是用公钥进行解密,而是用私钥进行解密.只有私钥才能够把这个密文翻译成/破解成原文.如果解密的时候用公钥去解密,是解不出来的.不能够得到正确的原文的.所以公钥和私钥是配对使用的.它是配对使用的.一个对里面的公钥和私钥,它们才有这种关系.公钥加密,私钥解密.反过来行不行呢?用私钥加密,公钥解密.也行,用私钥加密的是只能够用公钥进行解密的.它这么来设计有什么好处呢?它提出来公钥和私钥这种非对称加密技术,主要就是为了密钥的管理.我们刚才已经提到了,这一个对称加密它的密钥管理是一个很大的问题.因为密钥不能够泄漏,但是它最开始的时候需要传输密钥.这种就带来很大的隐患.那么对于我们的这个非对称加密就不是这样子了.你比如说同样还是A要给B传送一个秘密文件,现在的做法是A有自己的公钥和私钥,B也有自己的一套公钥和私钥,那么B首先以这个明文的方式,注意是以明文的方式,把这个公钥把它传给A.此时公钥如果被C截获了,那不要紧.然后呢A用公钥对它的文档进行加密,对它的数据进行加密,然后传送给B.即使途中被这个C截获了这个密文,C也知道公钥但是还是没用,因为公钥用于加密的时候只有这个私钥它才能够解密.所以C拿到了公钥也拿到了加密后的密文,它是无法解密的.因为公钥无法解公钥的密.而只有B用私钥,用它自己的私钥解密才能够解出原文.所以说每个人在非对称加密技术当中每一个人它只需要保存好自己的这一个私钥就行了,公钥可以四处流布,可以把它放在服务器上公然下载,别人要给我传什么信息它就先去下载我的公钥,用公钥把明文进行加密,然后把它传给我.我只要保证好自己的私钥不泄露、自己的私钥不泄露那么别人呢就无法把给我密文破解出来,所以说这样子就对这个密钥的一个管理,使密钥的管理变得简单很多,就能够很方便地进行密钥管理、密钥的传输.同样呢这一个公钥和私钥的这个体系它还有一个很重要的一项应用,就是数字签名.

    数字签名和数字加密它的一个过程刚好是相反的.数字签名是用私钥加密,用公钥解密.那么我们的非对称加密它的一个最主要的一个代表作是RSA算法.RSA算法是最出名的非对称加密技术、非对称加密算法.


    我们的对称加密算法和非对称加密算法讲完了,后面讲信息摘要、数字签名等内容.

  • 相关阅读:
    MySql主从库配置
    Linux安装MySql5.6.43(亲测)
    Linux安装ffmpeg(亲测)
    Linux JDK安装(亲测)
    Linux磁盘挂载(亲测)
    Finance_CAPM&APT
    Python_QT_量化投资/量化交易 基础入门课
    581. Shortest Unsorted Continuous Subarray
    3. Longest Substring Without Repeating Characters
    239. Sliding Window Maximum
  • 原文地址:https://www.cnblogs.com/ZHONGZHENHUA/p/7388474.html
Copyright © 2020-2023  润新知