1. 程式人生 > >系統安全之數據加密解密

系統安全之數據加密解密

數據加密解密

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.收到數據後,再用單向加密獲得特征碼,與之前得到的特征碼按位對比,確保數據信息的完整性



系統安全之數據加密解密