系統安全之數據加密解密

1.爲什麼要進行數據加密?

  若不對數據加密,難免在進程間通信時,會有第三者竊聽甚至修改通信數據;因此爲了更好的確保數據的機密性,完整性,需要對數據加密。

2.加密方案組成

    加密算法及協議

    加密密鑰

3.常用的數據加密算法

    1.對稱加密算法:

        特點:加密密鑰和解密密鑰相同(祕鑰長度一般爲56bits,128bits, 192bits, 256bits)

           主流的加密算法

            DES

            3DES

            AES

            TWOFISH

            ....

        其他特性:    

           1.對於一對通信主機,需要保證密鑰的唯一性

           2. 會對原始的數據分割成固定塊大小逐個加密

           3.加密和解密的速度非常快(加密密鑰的長度比較短)

        缺陷:

           1.因爲需要保證密鑰的唯一性,當一臺主機要和多臺主機通信時,需要擁有大量的密鑰

           2.密鑰需要一臺主機發送給另一臺主機,途中很難保證密鑰安全,所以密鑰分發困難

    2.非對稱的加密算法(也叫公鑰加密算法)

        特點:密鑰不同;由私鑰和用私鑰抽取生成的公鑰組成

            私鑰:由特定的工具生成,僅由使用者自己保存,需要保證一定的私密性(512bits, 1024bits, 2048bits, 4096bits, 8192bits, 16384bits)

            公鑰:由特定的工具,從私鑰中抽取,抽取的其中不重要的一部分,可以公開

            主流的加密算法

                RSA:加密,數字簽名;

DSA:數字簽名算法;

Elgamal:

        其他特性:

                1.在加密和解密的時候,私鑰加密的數據只能其對應的公鑰才能解開,公鑰加密的數據只能對應的私鑰才能解開

                 2.私鑰長度比較長,加密後的數據更安全

        缺陷:

                因爲祕鑰太長,加密數據會消耗較多的系統資源;所以很少用來加密大量數據

        公鑰加密的用途

                1.密鑰交換:發送方用接收方的公鑰去加密自己的密鑰,接收方收到後可以用自己的私鑰解密

                2.數字簽名:用自己的私鑰加密數據,然後將公鑰發送給接收方,讓接收方解密


        單向加密算法

只能加密不能解密,又稱爲"數據指紋提取";數據指紋即數據的特徵碼;

主流的單向加密算法:

md5:Message Digest version 5,信息摘要算法第5版;

128bits定長輸出;

sha系列:Security Hash Algorithm,安全的哈希算法;

sha-1:160bits定長輸出;

sha224:224bits定長輸出;

sha256:256bits

sha384:384bits

sha512:512bits

                特性:

                    1.定長輸出:無論加密的明文有多長,輸出都是定長的

                    2.雪崩效應:若明文有一絲變化,其加密後內容,差別很大

4.如何在通信時加密數據,使通信更爲安全?

     1.發送方先用單向加密抽出數據中的一部分加密,得到結果稱爲特徵碼;同時用自己的私鑰加密特徵碼

     2.發送方用對稱加密去加密數據;同時用接收方的公鑰加密對稱密鑰

     3.接收方用發送方的公鑰解密特徵碼,認證發送方

     4.接收方用自己的私鑰解密對稱密鑰,隨後用解密出來的密鑰解密數據

     5.收到數據後,再用單向加密獲得特徵碼,與之前得到的特徵碼按位對比,確保數據信息的完整性



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章