系統安全之數據加密解密
若不對數據加密,難免在進程間通信時,會有第三者竊聽甚至修改通信數據;因此為了更好的確保數據的機密性,完整性,需要對數據加密。
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.收到數據後,再用單向加密獲得特征碼,與之前得到的特征碼按位對比,確保數據信息的完整性
系統安全之數據加密解密