1. 程式人生 > >數據的加密和解密

數據的加密和解密

系統 運維

數據加密和解密:

安全實現的目標:
    機密性:,保證數據信息不泄露;
    完整性:integrety,保證信息不被篡改;
    可用性:availability,保證數據信息的內在價值;

威脅安全的行為:
    威脅機密性的攻擊行為:竊聽,網絡嗅探,通信量分析;
    威脅完整性的攻擊行為:篡改,偽裝,重放,否認;
    威脅可用性的攻擊行為:拒絕服務(DoS),分布式拒絕服務;(DDoS)

安全解決方案:
    技術:
        加密和解密:
            傳統的加密方法:
                置換加密
                替代加密
            現代加密方法:
                塊加密方法
    服務:
        用於抵禦攻擊而提供的為了實現上述安全目標而特別設計的安全服務;
            身份認證;
            訪問控制;

加密方案:
因素:
加密算法和協議:
加密密鑰:

加密算法和協議:
    對稱加密算法:加密和解密使用同一密鑰
        主流的加密算法:
            DES:Data Enctryption Standard,數據加密標準;
                64bits塊,加密密鑰長度56bits;
            3DES:經過NSA(美國國家信息安全局)重新編譯升級;
            AES:Advanced Encryption Standard,高級加密標準
                加密密鑰長度:128bits,192bits,256bits
            Blowfish
            Twofish
            IDEA
            RC4, RC6
            CAST5

        特性:
            1.每對通信主機都需要保有一個唯一的通信密鑰,用於加密和揭秘數據;
            2.將原始的數據分割成固定大小的塊,逐個加密;
            3.加密和解密速度非常快;
        缺陷:
            1.在一臺主機上需要保有的密鑰數量會比較多;
            2.密鑰的分發非常困難;

    公鑰加密算法(非對稱加密算法):密鑰是由私鑰和公鑰組成;公鑰是在私鑰中抽取生成的;
        私鑰:512bits,1024bits,2048bits,4096bits,8192bits,16384bits;
        私鑰:通過特定的工具隨機創建生成,有使用者自己存留,務必保證其私密性;也被稱為 secret key 或 private key ;
        公鑰:通過特定的工具從私鑰中抽取生成,僅僅是私鑰的一部分;公開給所有人使用;被稱為 public key ;
    主流的公鑰加密算法:
        RSA:加密,數字簽名;
        DSA:Digital Signature Algorithm,數字簽名算法;有時此算法也被稱為DSS,Digital Signature Standard;
        Elgamal:商業版(收費)

        特性:
            1.是用密鑰進行加密和解密的時候,私鑰加密的數據只能由與之對應的公鑰才能解密,使用公鑰加密的數據只能有與其對應的私鑰才能解密;
            2.私鑰的長度比較長,加密後的數據安全等級較高;

        缺陷:
            1.加密數據的時候,所消耗的系統資源較多,速度很慢,因此極少用來加密大量數據;

    公鑰加密算法的用途:
        1.密鑰交換:發送方使用接收方的公鑰加密對稱算法的密鑰,將加密後的密鑰,發送給接收方。接收方使用自己的密鑰解密數據;
        2.數字簽名:確保數據傳輸過程中發送方的身份的正確性;發送方使用自己的私鑰進行加密,接收方使用發送方的公鑰進行解密,進行身份確認;

    單向加密算法(Hash加密算法,數據指紋算法 ,不可逆):只能加密不能解密,又稱為數據指紋提取;數據指紋即數據的特征碼;
        主流的單項加密算法:
            md5:Message Digest  version5,信息摘要算法;
                128bits定長輸出;
            sha系列:Security Hash Algorithm,安全的哈希算法;
                sha-1:160bits定長輸出
                sha224:224bits定長輸出
                sha256:256bits定長輸出
                sha284:284bits定長輸出
                sha512:512bits定長輸出

        特性:
            1.定長輸出
            2.雪崩效應:加密後的數據稍有改動,則解密後輸出結果將發生翻天覆地的變化;

    認證協議:
        密鑰交換算法:
            1.公鑰加密
            2.DH算法:Diffie-Hellman
                用於在通信雙方生成一對用於公鑰加密算法的密鑰對;
                    A:p, g
                    B:p, g

                    A:x
                    B:y

                    A:p^x%g  --> B:(p^x%g)^y == p^xy%g
                    B:p^y%g  --> A:(p^y%g)^x == p^xy%g

加密算法的應用方式:
    1.通信雙方要互相交換各自的證書,並到信任的CA進行證書有效性認證;
    2.如果證書認證有效,發送方使用某種協商好的對稱加密算法進行數據加密;對加密後的數據進行特征值抽取,用自己的私鑰加密抽取出的特征值;以證明數據來源可靠性;發送方利用接收方公鑰加密對稱加密算法的密鑰;
    3.接收方接受報文之後,先用自己的私鑰解密對稱加密算法的密鑰;然後用發送方的公鑰去解密被加密的特征值,證明數據來源的可靠性,再利用相同的單項加密算法計算數據的特征值,將兩次特征值進行比較;以證明數據的完整性;再用對稱密鑰解密加密的數據即可;

數據的加密和解密