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