数据的加密与解密基础

            系统安全实现的目标:
                                      1)机密性:保证数据信息不泄露;
                                                                2)完整性:保证数据信息不被篡改;
                                                                3)可用性:保证数据信息的内在信息;

         威胁系统安全的行为:
                                 1)威胁机密性的***行为:窃听,嗅探,通信量分析;
                                                         2)威胁完整性的***行为:篡改,伪装,重放,否认;
                                                         3)威胁可用性的***行为:拒绝服务,分布式拒绝服务;

         安全解决方案:
                                1)技术:加密和解密
                                                             传统的加密算法:
                                                                                      置换加密
                                                                                                            替代加密
                                                                现代的加密算法:
                                                                                      块加密

                                                     2)服务(用于抵御***而特别设计的安全服务)
                                                          身份认证
                                                                访问控制

            加密方案:
                      因素:
                                    1)加密算法和协议
                                        2)加密的密钥

                               加密的算法和协议:
                                    1)对称加密算法
                                        2)公钥加密算法(非对称的加密算法)
                                        3)单项加密算法(数据指纹算法)
                                        4)认证协议

                              1)对称加密算法:加密解密使用同一个密钥
                                    DES:64bits块,密钥长度56bits
                                            AES:  密钥长度128/192/256bits
                                    算法特性:1.通信双方都需持有唯一密钥
                                                    2.将数据分割成固定大小的块,逐个加密
                                                    3.加密速度快

                                     缺点:1.同一台主机上保留的密钥可能会很多
                                               2密钥的分发非常困难

                                2)公钥加密算法(密钥由私钥和私钥抽取生成的公钥组成)
                                      RSA:加密,数字签名
                                            DSA:数字签名算法
                                            。。。
                                    算法特性:1.使用密钥加密或解密时,私钥加密的数据必须由与之对应的公钥才能解密,公钥加密的数据需与之对应的私钥才能解密;
                                                    2.私钥长度较长,加密后安全等级较高
                                    缺点:       加密数据时,消耗系统资源和时间较多,速度慢;

                                    算法用途:
                                                    1.发送数据一方利用接收数据一方的公钥对对称加密算法的密钥进行加密,后将加密结果发送给接收方;
                                                    2.数字签名:确保数据传输过程中发送方身份的准确性

             3)单向加密算法:只能加密不能解密又称数据指纹算法,数据指纹即特征码,
                                   md5:128bits定长输出
                                         sha系列:sha1
                                                        sha224
                                                                        sha256
                                                                        ...
                                         算法特性:1.定长输出
                                                         2.雪崩效应

                                4)认证协议:
                                          密钥交换算法:
                                                              1.公钥加密
                                                              2.DH算法:在通信双方间生成一对用于公钥加密算法的密钥对;

            加密算法的应用:
                      1.通信双方互相交换各自的证书到信任的CA进行认证
                      2.如果证书有效,发送方使用某种协商好的对称加密算法进行数据加密,对数据进行特征值抽取,再用自己的私钥对抽取的特征值
                        进行加密,以证数据来源的可靠性,发送发利用接收方的公钥加密对称加密算法的密钥;
                                3.发送方接收到数据后,先用自己的私钥解密对称加密算法的密钥,然后用发送方的公钥解密被加密的特征值,以证可靠性,再利用
                                   相同的单向加密算法计算数据的特征值,比较两个特征值来证明数据的完整性,再用对称密钥解密加密的数据即可;