淺談國密演算法

SoarYuan發表於2020-04-04

前言

加密是通過“加密演算法”將明文加密成密文,可以通過“金鑰”和“解密演算法”將密文還原成明文。

密碼學中應用最為廣泛的三類演算法:

  • 對稱演算法(分組密碼演算法):AES/DES/SM4

  • 非對稱演算法(公鑰密碼演算法):RSA/SM2

  • 摘要演算法(雜湊演算法):MD5/SHA-I/SM3

一.國密演算法概述

國密演算法是我國自主研發創新的一套資料加密處理系列演算法。從SM1-SM4分別實現了對稱、非對稱、摘要等演算法功能。特別適合應用於嵌入式物聯網等相關領域,完成身份認證和資料加解密等功能。當然,預設的前提條件是演算法金鑰必須保證安全性,因此要將國密演算法嵌入到硬體加密晶片中結合使用。

二、國密演算法的意義

隨著金融安全上升到國家安全高度,近年來國家有關機關和監管機構站在國家安全和長遠戰略的高度提出了推動國密演算法應用實施、加強行業安全可控的要求。擺脫對國外技術和產品的過度依賴,建設行業網路安全環境,增強我國行業資訊系統的“安全可控”能力顯得尤為必要和迫切。

密碼演算法是保障資訊保安的核心技術,尤其是最關鍵的銀行業核心領域長期以來都是沿用3DES、SHA-1、RSA、AES等國際通用的密碼演算法體系及相關標準。2010年底,國家密碼管理局公佈了我國自主研製的“橢圓曲線公鑰密碼演算法”(SM2演算法)。為保障重要經濟系統密碼應用安全,國家密碼管理局於2011年釋出了《關於做好公鑰密碼演算法升級工作的通知》,要求“自2011年3月1日起,在建和擬建公鑰密碼基礎設施電子認證系統和金鑰管理系統應使用國密演算法。自2011年7月1日起,投入執行並使用公鑰密碼的資訊系統,應使用SM2演算法。”

三.國密演算法介紹

國密即國家密碼局認定的國產密碼演算法。主要有SM1,SM2,SM3,SM4。金鑰長度和分組長度均為128位。

SM1:為對稱加密。其加密強度與AES相當。該演算法不公開,呼叫該演算法時,需要通過加密晶片的介面進行呼叫。

SM2:非對稱加密,基於ECC(橢圓加密演算法)。該演算法已公開。由於該演算法基於ECC,故其簽名速度與祕鑰生成速度都快於RSA。ECC256位(SM2採用的就是ECC256位的一種)安全強度比RSA 2048位高,但運算速度快於RSA。即SM2>RSA2048,安全度高且運算速度塊。

SM3:訊息摘要,可以用MD5作為對比理解。該演算法已公開。校驗結果為256位。

SM4:對稱加密,金鑰長度和分組長度均為128位。無線區域網標準的分組資料演算法。

由於SM1、SM4加解密的分組大小為128bit,故對訊息進行加解密時,若訊息長度過長,需要進行分組,要訊息長度不足,則要進行填充。

四.加密演算法安全性比較

  • SM2和RSA

256位的SM2>2048位的RSA

  • SM3/MD5/SHA-1

MD5輸出長度128bit

SHA-1輸出長度160bit

SM3輸出長度256bit

輸出長度越長,安全性越高,所以SM3>SHA-1>MD5

  • SM4/AES/3DES

對稱加密演算法用於實現資料的加密和解密運算。要保證一個對稱加密演算法的安全性的基本條件是其具備氹的金鑰長度,SM4金鑰長度為128bit,分組長度為128bit。所以安全性:SM4>AES>3DES

五.總結

國密演算法也不完全是安全的,對演算法的攻擊,一種常見的手段是SCA(side channel attack,邊通道攻擊)。RSA/AES/DES都可以被攻破,SM2/SM4也一樣。

所以金融領域的產品,特別是銀行的移動端產品,都要求必須經過演算法的安全認證,那麼帶有獨立演算法引擎的安全硬體--加密機就非常重要了。也就是銀行中的密管平臺系統。