加密,是以某種特殊的算法改變原有的信息數據,使得未受權的用戶即便得到了已加密的信息,但因不知解密的方法,仍然沒法瞭解信息的內容。在信息安全領域咱們經常使用加密算法來達到如下3方面的安全目標:
①保密性:防止用戶的數據被讀取;
②數據完整性:防止數據被篡改;
③身份驗證:確保數據發自特定的一方。算法
常見的加密算法主要可分爲3大類:對稱加密、非對稱加密、單向加密。數據庫
對稱加密
定義:安全
加密和解密使用相同密鑰的加密算法,因爲其速度快,對稱性加密一般在消息發送方須要加密大量數據時使用。對稱性加密也稱爲密鑰加密,所謂對稱,就是採用這種加密方法的雙方使用方式用一樣的密鑰進行加密和解密。網絡
對稱加密的優缺點:併發
對稱加密算法的優勢是算法公開、計算量小、加密速度快、加密效率高。工具
對稱加密算法的缺點是產生的密鑰過多和密鑰分發困難;加密
經常使用算法:spa
DES、3DES、TDEA、Blowfish、RC二、RC四、RC五、IDEA、SKIPJACK、AES等。blog
加密過程(如圖):get
非對稱加密
定義:
與對稱加密算法不一樣,非對稱加密算法須要兩個密鑰:公開密鑰(publickey)和私有密鑰(privatekey)。公開密鑰與私有密鑰是一對,若是用公開密鑰對數據進行加密,只有用對應的私有密鑰才能解密;
若是用私有密鑰對數據進行加密,那麼只有用對應的公開密鑰才能解密。由於加密和解密使用的是兩個不一樣的密鑰,因此這種算法叫做非對稱加密算法。
公鑰:
從私鑰中提取產生;可公開給全部人;pubkey
私鑰:
經過工具建立,使用者本身留存,必須保證其私密性;secret key
特色:
用公鑰加密的數據,只能使用與之配對兒的私鑰解密;反之亦然
用途:
數字簽名:主要在於讓接收方確認發送方的身份;
密鑰交換:發送方用對方公鑰加密一個對稱密鑰,併發送給對方;
數據加密
經常使用算法:
RSA, DSA, ELGamal,DSS數字簽名標準 只能簽名,DSA數字簽名算法 既能簽名又能解密
加密過程(如圖):
單向加密
定義:
單向加密算法只能用於對數據的加密,沒法被解密,其特色爲定長輸出、雪崩效應。單向加密算法用於不須要對信息進行解密或讀取的場合,好比用來比較兩個信息值是否同樣而不須要知道信息具體內容,
在實際中的一個典型應用就是對數據庫中的用戶信息進行加密,好比當建立一個新用戶及密碼時,將這些信息通過單向加密後再保存到數據庫中。
常見的算法包括:
MD五、sha一、sha224等等,其常見用途包括:數字摘要、數字簽名等等。
附:PKI
公鑰基礎設施PKI(Public KeyInfrastructure),是一種遵循既定標準的密鑰管理平臺,它可以爲全部網絡應用提供加密和數字簽名等密碼服務及所必需的密鑰和證書管理體系。
簡單來講,PKI就是利用公鑰理論和技術創建的提供安全服務的基礎設施,PKI技術是信息安全技術的核心。由4個部分組成:
①簽證機構:CA
②註冊機構:RA
③證書吊銷列表:CRL
④證書存取庫
X.509v3:定義了證書的結構以及認證協議標準:
版本號、序列號、簽名算法ID、發行者名稱、有效期限、主體名稱、主體公鑰、發行者的唯一標識、主體的唯一標識、發行者的簽名
證書的申請、發佈、使用:
使用證書的通訊過程:
- 發送方對要傳輸消息原文進行hash,生成消息摘要,用發送方的私鑰生成數字簽名;
- 隨機生成對稱祕鑰,對原文加密,生成密文;
- 用接收方公鑰加密對稱祕鑰;
- 將加密後的對稱祕鑰、數字簽名與密文一通發送;
- 接收方收到後,用本身的私鑰解密對稱祕鑰;
- 用對稱祕鑰解密密文,獲得原文;
- 對原文hash獲得摘要,用發送方的公鑰解密簽名獲得摘要,對比兩份摘要。
完整過程請參考文章:https://www.jianshu.com/p/c65fa3af1c01