資訊保安的基礎:對稱加密、非對稱加密、摘要演算法
加密分為兩大類:對稱加密、非對稱加密,兩類加密演算法各有優點,在不同的場景使用不同的演算法。
對稱加密
加密方將原始資料和加密金鑰一起經過特殊加密演算法處理後,生成密文結果,解密方使用相同的祕鑰及相同加密演算法的逆演算法對密文結果進行解密,公式如下:
加密方:密文結果 = 加密演算法(原始資料 + 加密金鑰)
解密方:原始資料 = 對應的逆演算法(密文結果 + 解密祕鑰)
加密金鑰 == 解密祕鑰
該演算法具有以下特點:
- 加密方和解密方使用相同的祕鑰
- 加解密的速度比非對稱加密演算法快,適合資料內容比較大的加密場景
- 資料傳輸的過程不安全,且容易被破解
- 金鑰管理比較麻煩
應用場景:
- 防止明文傳輸資料被竊取
- 適合資料內容比較大的加密場景
非對稱加密
非對稱加密演算法需要兩個金鑰:公開金鑰(publickey)和私有金鑰(privatekey)。公開金鑰與私有金鑰是一對,如果用公開金鑰對資料進行加密,只有用對應的私有金鑰才能解密;如果用私有金鑰對資料進行加密,那麼只有用對應的公開金鑰才能解密。因為加密和解密使用的是兩個不同的金鑰,所以這種演算法叫作非對稱加密演算法。
非對稱加密演算法實現機密資訊交換的基本過程是:甲方生成一對金鑰並將其中的一把作為公用金鑰向其它方公開;得到該公用金鑰的乙方使用該金鑰對機密資訊進行加密後再發送給甲方;甲方再用自己儲存的另一把專用金鑰對加密後的資訊進行解密。
另一方面,甲方可以使用乙方的公鑰對機密資訊進行簽名後再發送給乙方;乙方再用自己的私匙對資料進行驗籤。
該演算法具有以下特點:
- 保密性比較好,消除了使用者交換祕鑰的需要
- 演算法強度複雜,安全性比較強
- 加解密速度沒有對稱加密演算法快
- 用私鑰加密,用其公鑰解密,實現數字簽名(注意:數字簽名只是非對稱加密的一種)。
應用場景:
1、公鑰用於加密,私鑰用於解密
請求的雙方,接收方公佈自己的公鑰,傳送方通過指定的加密演算法和公鑰對原始資料進行加密,接收方通過指定的逆加密演算法和自己的私鑰對密文資料進行解密。
傳送方:密文結果 = 加密演算法(原始資料 + 接收方的公鑰)
接收方:原始資料 = 對應的逆演算法(密文結果 + 接收方的私鑰)
接收方的公鑰 != 接收方的私鑰
2、公鑰用於解密,私鑰用於加密(即數字簽名)
請求的雙方,傳送方公佈自己的公鑰,傳送方通過指定的加密演算法和自己的私鑰對原始資料進行加密,接收方通過指定的逆加密演算法和傳送方的公鑰對密文資料進行解密。
傳送方:密文結果 = 加密演算法(原始資料 + 傳送方的私鑰)
接收方:原始資料 = 對應的逆演算法(密文結果 + 傳送方的公鑰)
接收方的公鑰 != 接收方的私鑰
摘要
資料摘要演算法是密碼學演算法中非常重要的一個分支,它通過對資料內容進行雜湊得到一個固定長度的密文資訊。資料摘要演算法也被稱為雜湊(Hash)演算法、雜湊演算法。
該演算法具有以下特點:
- 對於任何長度的輸入內容,都可以通過摘要演算法生成一個固定長度的密文資訊
- 摘要演算法是防衝突的,即找不出摘要結果相同的兩條資訊
- 摘要結果是不可逆的,也就是無法通過摘要結果還原出相應的原始內容
- 任何輸入內容的變化都將導致摘要結果的明顯變化
應用場景:
當資料內容進行傳輸時,我們一般在傳輸前對資料內容進行摘要計算,並將資料內容和摘要結果傳送給接收方,接收方收到資料後,使用相同的摘要演算法對接收到的資料內容(不含傳送方的摘要結果)也進行摘要計算,之後與傳送方的摘要結果進行比較,如果結果一致,則說明資料是完整的,沒有被串改,也沒有發生資料丟失。常用的場景如下:
- 下載檔案時,檔案的完整性校驗
- 介面互動時,互動資料的完整性校驗
- 數字證書的指紋生成演算法
最近對加密演算法比較感興趣,整理一些文章,分享給大家,如有不正之處,歡迎批評指正。