共享金鑰加密演算法(對稱加密演算法)
加密和解密的金鑰也一樣
公鑰加密演算法(非對稱加密演算法)
加密和解密的金鑰不一樣
共享金鑰/對稱加密演算法
資料加密標準(DES)
一種分組密碼,在加密前,先對整個明文進行分組。每一個分組為64位,之後進行16論迭代,產生一組64位密文資料,使用的金鑰是56位
3DES
使用兩個金鑰,執行三次DES演算法,金鑰長度是112位
國際資料加密演算法(IDEA)
使用128位金鑰,把明文分成64位的塊,進行8輪迭代。IDEA可以使用硬體或軟體實現,比DES快
高階加密標準(AES)
AES支援128位、192位、256位三種金鑰長度,可透過硬體實現
流加密演算法和RC4
加密速度快,可以達到DES的10倍
公鑰加密演算法/非對稱加密演算法
每兩個實體有兩個金鑰,公鑰公開,私鑰自己儲存
公鑰加密,私鑰解密,可實現保密通訊
私鑰加密,公鑰解密,可實現數字簽名
典型公鑰加密演算法:RSA、DH
數字簽名
數字簽名是用於確認傳送者身份和訊息完整性的一個加密訊息摘要,具體特點如下:
- 接收者能夠核實傳送者
- 傳送者事後不能抵賴對報文的簽名
- 接收者不能偽造對報文的簽名
數字簽名和資料加密聯合使用的流程如下:
- 傳送者A 使用 A的私鑰 對資料進行加密,進行數字簽名
- 傳送者A 使用 B的公鑰 對資料進行加密,進行資料加密
- 接收者B 使用 B的私鑰 對資料進行解密,進行資料解密
- 接收者B 使用 A的公鑰 對資料進行解密,進行身份核實
報文摘要(雜湊/雜湊)
MD5
對任意長度報文進行運算,先把報文按512位分組,最後得到128位報文摘要
SHA
對512位長的資料進行復雜運算,最終產生160位雜湊值,比MD5更安全,計算比MD5慢
將一段資料(任意長度)經過一道計算,轉換為一段定長的資料
雜湊Hash(雜湊函式)
不可逆性(單向)
幾乎無法透過Hash結果推匯出原文,即無法透過x的Hash值推匯出x
無碰撞性
幾乎沒有可能找到一個y,使得y的Hash值等於x的Hash值
雪崩效應
輸入輕微變化,Hash輸出值產生巨大變化
使用場景
- 釋出檔案的完整性驗證,如炒股軟體+MD5驗證軟體完整性
- 下載檔案+MD5驗證檔案完整性
- 伺服器中儲存使用者的密碼
- 增加一個key做雜湊
HMAC = Hash(檔案+key)
需要雙方預先知道這個key
HMAC:消除中間人攻擊,源認證+完整性校驗(數字簽名也能實現)
- 數字簽名
數字證書與CA
數字證書可類比為身份證的作用,用於證明身份
CA是電子商務認證授權機構
比如:
要證明傳送者是否是A
需要得到A的數字證書
要證明得到的數字證書是否真的是A的數字證書
可以得到的A的數字證書是否有CA數字簽名(簽名用CA的私鑰)
證書鏈
如果使用者數量很多,通常由多個CA。每個CA為一部分使用者發行和簽署證書
如果有兩個CA,X1和X2,假設使用者A從CA機構X1獲得了證書,使用者B從X2獲得證書。如果兩個證書發放機構X1和X2彼此間安全交換了公鑰,彼此信任,那麼他們的證書可以形成證書鏈
A透過一個證書鏈來獲取B的公鑰,證書連結串列示為:
X1《X2》X2《B》
B也能透過相反的證書鏈來獲取A的公開金鑰:
X2《X1》X1《A》