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