數據加密和解密:
安全實現的目標:
機密性:,保證數據信息不泄露;
完整性: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.接收方接受報文之後,先用自己的私鑰解密對稱加密算法的密鑰;然後用發送方的公鑰去解密被加密的特徵值,證明數據來源的可靠性,再利用相同的單項加密算法計算數據的特徵值,將兩次特徵值進行比較;以證明數據的完整性;再用對稱密鑰解密加密的數據即可;