1.爲何要進行數據加密?算法
若不對數據加密,不免在進程間通訊時,會有第三者竊聽甚至修改通訊數據;所以爲了更好的確保數據的機密性,完整性,須要對數據加密。
安全
2.加密方案組成ide
加密算法及協議
工具
加密密鑰
加密
3.經常使用的數據加密算法spa
1.對稱加密算法:
進程
特色:加密密鑰和解密密鑰相同(祕鑰長度通常爲56bits,128bits, 192bits, 256bits)
md5
主流的加密算法資源
DES
it
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.收到數據後,再用單向加密得到特徵碼,與以前獲得的特徵碼按位對比,確保數據信息的完整性