09 加解密技術(shù)原理

思維導(dǎo)圖:

加解密技術(shù)發(fā)展
加解密定義
數(shù)據(jù)加密的基本過程就是對原來為明文的文件或數(shù)據(jù)按某種算法進行處理,使其成為不可讀的一段代碼,通常稱為“密文”,通過這樣的途徑來達到保護數(shù)據(jù)不被非法人員竊取、閱讀的目的。
數(shù)據(jù)解密的過程就是對密文使用相應(yīng)的算法和密鑰進行解密處理,將密文解密成明文的過程。
加密的安全性取決于:
密鑰的生成,管理,存儲;
加密算法的安全性;
加解密的環(huán)境。
加密產(chǎn)生背景

加密的目的
通過加密可保證信息的:
機密性
完整性
鑒別性
不可否認性
加解密技術(shù)原理
加密技術(shù)分類
加密技術(shù)包含:
對稱加密
非對稱加密
對稱加密算法
對稱加密算法的加密和解密都是用同一個密鑰。
如圖所示,客戶端與服務(wù)器進行數(shù)據(jù)交互,采用對稱加密算法??蛻舳伺c服務(wù)器事先協(xié)商好對稱密鑰A,具體加解密過程如下:

非對稱加密算法
非對稱加密算法需要一組密鑰對,分別是公鑰和私鑰,這兩個密鑰是成對出現(xiàn)的。
非對稱加密解決了對稱密鑰的發(fā)布和管理問題,一個用于加密信息,另一個則用于解密信息,通信雙方無需事先交換密鑰就可進行保密通信。通常以公鑰作為加密密鑰,以私鑰作為解密密鑰。
如圖所示,客戶端與服務(wù)器進行數(shù)據(jù)交互,采用非對稱加密算法,具體加解密過程如下:

對稱和非對稱加密比較

非對稱加密與對稱加密結(jié)合
采用非對稱加密與對稱加密結(jié)合的方式,可以減少非對稱加密的次數(shù),HTTPS就是采用了這種方案。首先通過非對稱加密交換對稱加密密鑰,然后使用對稱加密算法加密業(yè)務(wù)數(shù)據(jù),具體交互流程如下:

加解密常見算法
常見的對稱加解密算法

IDEA(International Data Encryption Algorithm)是對稱分組密碼算法,輸入明文為64位,密鑰為128位,生成的密文為64位。應(yīng)用方面有很多,其中SSL就將IDEA包含在其加密算法庫中。
常見的非對稱加密算法

非對稱加密算法此處有兩個作用:
?根據(jù)算法自動生成一對公私鑰;
?按照非對稱加密算法的交互數(shù)據(jù)。
散列算法
散列算法簡介
僅對數(shù)據(jù)加密是不夠的,數(shù)據(jù)仍能夠被非法破解并修改。使用散列算法可檢查出數(shù)據(jù)在通信過程中是否被篡改,從而實現(xiàn)數(shù)據(jù)完整性校驗。
散列算法就是把任意長度的數(shù)據(jù)作為輸入,然后通過Hash得到一個固定長度的輸出值,該輸出值就是散列值,它是一種數(shù)據(jù)壓縮映射關(guān)系。簡單來說就是將任意長度的消息轉(zhuǎn)換到某一固定長度的消息摘要的函數(shù)。散列算法具有正向快速、不可逆、輸入敏感、抗碰撞的特點。
正向快速:給定明文和Hash算法,在有限時間和有限資源內(nèi)計算Hash值;
不可逆性:給定任意的Hash值,在有限時間內(nèi)很難逆推出明文;
輸入敏感:如果輸入的數(shù)據(jù)信息被輕微修改,輸出的Hash值也會有很明顯的變化;
抗碰撞性:任意輸入不同的數(shù)據(jù),其輸出的Hash值不可能相同。對于一個給定的數(shù)據(jù)塊,找到和它hash值相同的數(shù)據(jù)塊極為困難。
散列算法應(yīng)用
在數(shù)據(jù)通信過程中發(fā)送方對報文進行Hash,并將報文和Hash值發(fā)送給接收方。接收方采用相同的算法對報文進行Hash,然后通過對比兩個Hash值,來判斷通信過程中報文是否受到篡改,從而實現(xiàn)完整性校驗。
常見散列算法

以上幾種算法各有特點,MD5算法的計算速度比SHA-1算法快,而SHA-1算法的安全強度比MD5算法高,SHA-2、SM3算法相對于SHA-1來說,加密數(shù)據(jù)位數(shù)的上升增加了破解的難度,使得安全性能要遠遠高于SHA-1。