目錄
密碼學
密碼學發展
- 古典密碼:古代----19世紀末
- 近代密碼:20世紀初---1949年
- 現代密碼:1949(香農發表的《保密系統的加密原理》)---1975
- 公鑰密碼:1976(W.Diffie和M.Hellman發表的《密碼學的新方向》)--至今
對稱加密體制
加密和解密秘鑰相同,或者由一個能很容易的推出另一個。對稱加密算法如:DES、3DES、AES等
優點:
- 效率高,算法簡單,系統開銷小
- 適合加密大量數據
- 明文長度和密文相同
缺點:
- 需要以安全方式進行密鑰交換
- 密鑰管理復雜
非對稱加密體制
加密和解密秘鑰不相同。其中,對外公開的秘鑰,稱為公鑰。不對外公開的秘鑰,稱為私鑰。對稱加密算法如:RSA加密算法
優點:
- 解決密鑰傳遞問題、密鑰管理簡單
- 大大減少密鑰持有量
- 提供了對稱密碼技術無法或很難提供的服務(數字簽名)
缺點:
- 計算復雜、耗用資源大
- 非對稱會導致得到的密文變長
混合加密
由於對稱加密體制和非對稱加密體制各有優缺點。所以,在實際生活中,我們還是經常用混合加密方式來對數據進行加密的。
常見的混合加密算法主要是指 RSA加密算法 和 DES加密算法 這兩種加密算法混合加密
數字信封
混合加密實現方式:
- 信息(明文)采用DES密鑰加密得到密文。
- 使用RSA加密前面的DES密鑰信息得到key,最終將密文和key進行傳遞。
接收到信息后解密:
- 用RSA解密key得到DES密鑰。
- 再用DES秘鑰解密文信息,最終就可以得到我們要的信息(明文)。
哈希算法
哈希(Hash),一般翻譯做"散列",也有直接音譯為"哈希"的,就是把任意長度的輸入(又叫做預映射, pre-image),通過散列算法,變換成固定長度的輸出,該輸出通常稱作散列值、數字指紋 或 消息摘要。這種轉換是一種壓縮映射,也就是,散列值的空間通常遠小於輸入的空間(不同的輸入有可能會散列成相同的輸出,幾率非常小),而不可能從散列值來逆向推出輸入值,也就是說,哈希函數是不可逆的。簡單的說就是一種將任意長度的消息壓縮到某一固定長度的消息摘要的函數。
哈希函數也稱為散列函數、雜湊函數等。
哈希函數的特點:不可逆性,碰撞約束
目前網上大部分的哈希破解都是利用哈希值的密碼字典進行爆破。
常見的哈希算法有:MD4 、MD5 、 SHA1、 SHA224 、 SHA256 、 SHA384 、SHA 512
- MD5 , 輸出128bit的散列值
- SHA1 , 輸出160bit的散列值
- SHA224, 輸出224bit的散列值
- SHA256, 輸出256bit的散列值
- SHA384, 輸出384bit的散列值
- SHA512, 輸出512bit的散列值
哈希算法的用途:文件校驗、數字簽名、安全傳輸和存儲口令