信息安全基础(加密)

信息安全概述

信息安全的任务是保护信息财产,以防止偶然的故意为之的未授权者对信息的恶意修改、破坏以及泄漏,从而导致信息无法处理,不完整、不可靠。

    信息安全具有以下基本属性:

    (1)保密性(Confindentialy):保证未授权者无法享用信息,信息不会被非法泄漏而扩散;

    (2)完整性(Integrity):保证信息的来源、去向、内容真实无误;

    (3)可用性(Availability):保证网络和信息系统随时可用;

    (4)可控性(Controllability):保证信息管理者能对传播的信息及内容实施必要的控制以及管理;

    (5)不可否认性(Non-Repudiation):又称不可抵赖性,保证每个信息参与者对各自的信息行为负责;

其中,前三者又称为信息安全的目标——CIA。

CIA又可概括为如下三点:

    1.机密性

     2.完整性

     3.身份验证

机密性:为了确保数据的机密性,就要对数据加密。为了实现数据在传输前进行加密,接收后能够对数据解密。

    则必须采用对称加密。对称加密需要双方约定加密密钥。由于对称加密需要事先约定密钥,则在互联网

    上无法实现密钥的安全约定。并且对称加密的密钥无法有效的管理,假如A与B、C、D、E......通讯,为

    使他们之间的通讯都是安全的,A必须使用不同的密钥,随A通讯人数的增加,密钥将很难管理。综上所述

    对称加密在一定程度上解决了数据机密性问题,但无法提供密钥的有效管理。

    综上所述:解决机密性存在密钥无法安全约定,和无法有效管理的问题。

完整性:数据的完整性就是保证数据不被篡改。保证数据完整性的解决方案是使用单向加密算法。

     单向加密算法特征:

            1.输入一样,输出必然一样。

            2.雪崩效应,输入微小的改变将会引起结果巨大改变。

            3.定长输出,无论原始数据多长,结果长度一样。

            4.不可逆。

假如:A与B通讯

   A:A----->提取明文特征码------>特征码加密------>明文+特征码一起发送----->B

  B:B解密特征码,然后使用相同算法提取明文特征码与A的特征码比较,如果一样则说明数据是

     完整的。

  以上A与B之间的通讯需要一个约定好的对称加密密钥。由于互联网不存在一个安全的渠道供双方

  约定对称加密密钥。要想在互联网上实现对称密钥的约定,需要协议的支撑。最著名的密钥交换协议Diffie-Hellman协议,实现原理如下:

    假如A—B之间进行密钥约定过程如下:P,g(大素数,生成数)

    1.A选取一个大素数P,一个生成数g,发送给B

     2.A在本机内部随机选取一个数x

       B在本机内部随即选取一个数y

      (A、B相互都不知道自己选取的数)

     3.A将g^x%P的结果发送给B

       B将g^y%P的结果发送给A

    (目前在网上传输的数据有P、g、g^x%P、g^y%P;由于离散对数问题,根据这四个数无法推

        算出x或者y)

     4.A得到的数据为g^y%P、x、g、P四个数,根据(g^y%P)^x 生成 g^xy%P作为对称密钥;

      B得到的数据位g^x%P、y、g、P四个数,根据(g^x%P)^y生成g^xy%P作为对称密钥;

     

     5.之后A、B之间就可以使用g^xy%P作为对称密钥。

综上所述:密钥交换协议可以很容易实现对称密钥的约定,我们可以把以上过程用软件来实现密钥

的自动交换和验证数据的完整性。由于以上过程密钥是自动交换的,就会出现身份无法验证的问题。假如A、B交换密钥时,C窃取了A的数据,然后再与B交换,则B无法验证C的身份。要想保证数据的完整性,还需解决身份验证的问题。

身份验证:实现身份验证的技术是数字签名,数字签名的原理是非对称加密算法。非对称加密算法

     有一个密钥对:公钥、私钥。

      非对称加密算法特性:

         公钥是公开的,任何人都可以看到。

         私钥是私有的,只有自己知道。

         利用非对称加密算法,公钥和私钥用任何一个加密,都可以用另一个解密。

         公钥加密,私钥解密------>可以保证机密性。

         私钥加密,公钥解密------>可以验证身份。(因为私钥只有本人自己拥有,只

            要用他的公钥能解密,就能确定这个人的身份因此,私钥也可以认为是个人身份的证

                                明。

私钥加密,公钥解密是唯一一种可以确定消息来源的机制————数字签名。

数字签名

 要实现的功能是我们平常的手写签名要实现功能的扩展。平常在书面文件上签名的主要作用有两点,一是因为对自己的签名本人难以否认,从而确定了文件已被自己签署这一事实;二是因为自己的签名不易被别人模仿,从而确定了文件是真的这一事实。采用数字签名,也能完成这些功能:

  (1)确认信息是由签名者发送的;

  (2)确认信息自签名后到收到为止,未被修改过(消息的完整性);

  (3)签名者无法否认信息是由自己发送的。

  数字签名如下:

    假如现在A向B发消息

 

     

   简单解释:

        A:将明文进行摘要运算后得到摘要(消息完整性),再将摘要用A的私钥加密(身份认证),得到数字签名,将密文和数

            字签名一块发给B。

        B:收到A的消息后,先将密文用自己的私钥解密,得到明文。将数字签名用A的公钥进行解密后,得到正确的摘要(解密

           成功说明A的身份被认证了)。

      对明文进行摘要运算,得到实际收到的摘要,将两份摘要进行对比,如果一致,说明消息没有被篡改(消息完整性)。

        数字证书 

            理解了数字签名之后,数字证书就好理解了。

            由于网络上通信的双方可能都不认识对方,那么就需要第三者来介绍,这就是数字证书。

            数字证书由Certificate Authority( CA 认证中心)颁发。

            关于数字证书的具体描述,需要百度,目前未完全理解。记一个TODO。

            图解如下:

            首先A B双方要互相信任对方证书。//TODO

              然后就可以进行通信了,与上面的数字签名相似。不同的是,使用了对称加密。这是因为,非对称加密在解密过程

            中,消耗的时间远远超过对称加密。如果密文很长,那么效率就比较低下了。但密钥一般不会特别长,对对称加密的密

            钥的加解密可以提高效率。