加解密算法分為對稱算法加密和非對稱算法加密。
對稱算法:加解密密鑰相同要求發(fā)送方和接收方在安全通信之前,商定一個密鑰。所以密鑰的保密性對通信的安全性至關重要。對稱加密算法的特點是算法公開、計算量小、加密速度快、加密效率高。
非對稱加密算法需要兩個密鑰:公開密鑰(publickey:簡稱公鑰)和私有密鑰(privatekey:簡稱私鑰)。公鑰與私鑰是一對,如果用公鑰對數(shù)據(jù)進行加密,只有用對應的私鑰才能解密。因為加密和解密使用的是兩個不同的密鑰,所以這種算法叫作非對稱加密算法。非對稱算法安全性高、加密速度遠低于對稱算法。
對稱算法和非對稱算法,各有各的優(yōu)點,也各有缺點。隨著計算機系統(tǒng)能力的不斷發(fā)展,單獨的使用某一種算法或某一類算法已不能滿足實際的使用需求。所以混合加密這種方式已成為當前主流加密方案之一。取對稱密碼之長補公鑰密碼之不足,取公鑰密碼之長補對稱密碼之不足。下面簡單介紹下混合加密的應用。
加密流程如下:
使用隨機數(shù)生成器產(chǎn)生臨時會話密鑰tmpkey。
用臨時會話密鑰,將消息轉(zhuǎn)換為密文C1。
使用非對稱密鑰的公鑰加密tmpkey得到密文C2。
C1 || C2組合得到終的密文C3。
解密流程如下:
分離出C1和C2。
使用非對稱密鑰的私鑰解密C2得到臨時會話密鑰tmpkey。
用臨時會話密鑰tmpkey對密文C1解密得到明文消息。
混合加密中,要求會話密鑰有較好的隨機性;對稱算法有足夠的密鑰長度;非對稱算法也要有足夠的密鑰長度,滿足以上條件才能使加密系統(tǒng)更加安全。LKT加密芯片具有真隨機數(shù)發(fā)生器,可以產(chǎn)生隨機性很高的會話密鑰,還可以支持硬件非對稱算法,例如RSA、SM2,對私鑰和tmpkey的存儲和運算過程起到良好保護作用。