加密演算法
目錄
進位&儲存單位
一種計數的方法
- 用有限的數字符號來表示無限的數值,例如阿拉伯數字的10進位制(0-9)
- 可使用的計數符號的數目決定了進位制,簡稱
進位制
- 2進位制(0,1),計算機機器語言唯一能明白的
- 16進位制(0-9,A,B,C,D,E,F),每一個16進位制的字元代表4個人二進值組合的數字
- 進位制間的關係
- 10進位制: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
- 2進位制: 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 10000
- 16進位制:0 1 2 3 4 5 6 7 8 9 A B C E F
- 計算機為什麼不使用10進位制而用2進位制?
為了穩定性!
計量術語
- 位(bit)位元-- 最小的資料單位
- 位元組(Byte)--8個bit組成,儲存空間最小的單位
- k-kilo 表示千。1024 (2^10次方)
...
加密
對稱加密
- 用相同金鑰對原文進行加密和解密
- 加密過程: 金鑰 + 原文 => 密文
- 解密過程: 密文 - 金鑰 => 原文
- 缺點: 無法確保金鑰被安全傳遞
非對稱加密
公鑰&私鑰
- 公鑰用於加密,私鑰用於解密
- 公鑰由私鑰生成,私鑰可以推匯出公鑰
- 從公鑰無法推匯出私鑰
- 優點:解決了私鑰傳輸中的安全性問題
- Q: 解決了資訊傳遞的問題,如何驗證是"確實是傳送方傳送的, 信件沒有被篡改"?
- 通過數字簽名
雜湊- Hash
- 將一段資料(任意長度)經過一道計算,轉換為一段定長的資料
- 不可逆性 - 幾乎無法通過hash的結果推匯出原文,即無法通過x的Hash值,而推匯出x
- 無法通過人的指紋瑞到處他是誰
- 無碰撞性, 幾乎沒有可能找到一個y, 使得y的HASH值等於的hash值
- 幾乎沒有兩個人的指紋是一樣的
- 使用場景:
- 校驗檔案的完整性
- 伺服器中使用hash儲存使用者名稱的密碼
- 數字簽名
數字簽名 - Digital Signature
目的 : 為了證明發送人是想要接收資訊的人
流程:
- 傳送方
Tony
: 傳送訊息原文"hello kitty"---T a. 用接收方公鑰
(公開) 對原文進行加密成密文 A; b. 用雜湊演算法
對原文雜湊,生產原文的摘要
B c. 使用傳送方私鑰
對原文摘要
B簽名得到訊息 C
d. 傳送方將密文A級簽名訊息C傳送給接收方
- Q1 使用私鑰
簽名
,用公鑰
解密獲得原文,這就是問什麼原文不能直接使用私鑰簽名,防止傳送的原文資訊洩露。
- Q1 使用私鑰
- 接收方: a. 接收方收到傳送方傳送的密文A及簽名訊息C b. 接收方使用自己的
私鑰
解密,獲得原文T c. 接收方將原文T
進行雜湊演算法,生成雜湊摘要B'
d. 用傳送方的公鑰
對簽名信息C進行解密獲得摘要資訊B
e. 比較雜湊摘要B'與B是否一致,如果一致說明此訊息是Tony傳送
-
圖解