1. 安全的目標
- 私密性(confidentiality):將資料加密,他人截獲後無法解密;
- 完整性(integrity):報文沒有被篡改過(分為資料完成性和系統完整性);
- 可用性(availability):
- 源認證(不可否認性):對發起者的身份進行認證;
2. 加密演算法簡述
- 對稱加密:加密和解密使用同一個金鑰,加密速度快,但不安全,常用於加密資料;例如:DES, 3DES, AES;
- 非對稱加密:加密和解密使用不同的祕鑰,公鑰加密,私鑰解密,加密速度慢,常用於加密祕鑰,但是安全;例如:RSA, DSA;
- 單向加密:定長輸出、雪崩效應、不可逆,常用於完整性校驗;例如:MD5, SHA;
3. 加密與解密過程
通訊雙方即A與B,A傳送資料給B;
加密過程
- A使用單線加密演算法計算出資料的特徵碼;
- A使用自己的私鑰加密特徵碼形成數字簽名;將數字簽名放到明文資料的後面;
- A生成一個一次性的對稱祕鑰,然後結合對稱加密演算法和對稱金鑰對明文資料與數字簽名進行加密;
- A使用B的公鑰加密對稱金鑰,然後將加密後對稱金鑰放到密文資料的後面一起傳送給B;
解釋:即便第三方將A傳送給B的資料截獲了,也無法破解資料,因為想要解密密文資料,就需要知道對稱祕鑰,想得到對稱祕鑰就需要知道B的私鑰,其他人是沒有B的私鑰的,所以通過這種方式保證了資料的私密性。(如果保管B的私鑰,不是這裡要考慮的問題了)
解密過程
- B收到之後使用自己的私鑰解密加密後的對稱祕鑰,得到對稱祕鑰;
- B使用同樣的對稱祕鑰和對稱加密演算法解密密文資料,得到明文資料和數字簽名;
- B使用A的公鑰解密數字簽名,得到特徵碼,如果能解密說明這是A發過來的;
- B使用單向加密演算法對明文資料進行計算得出特徵碼,然後與解密得來的特徵碼進行對比,如果一致則表示資料沒有被篡改過;
以上僅是點到點的通訊機制;
通過上述流程保證了身份驗證,完整性驗證和保密性,三種加密演算法全用到了:單向加密、對稱加密、分對稱加密(公鑰加密);這個過程中公鑰加密演算法的兩種作用:身份認證,金鑰交換;