☞ 【幹貨】
☞ 【幹貨】
來源:華三
國密演算法是指由中國國家密碼管理局釋出的密碼演算法標準,旨在保障國家資訊保安。目前,國家密碼管理局已釋出了一系列國產商用密碼標準演算法,包括 SM1 ( SCB2 )、 SM2 、 SM3 、 SM4 、 SM7 、 SM9 以及祖沖之密碼演算法( ZUC) 等。透過在金融、電子政務及安防等領域廣泛套用國密演算法,在對敏感數據進行機密性、完整性和可用性保護的同時,減少對外部密碼產品的依賴,提升國家資訊保安水平。
為什麽需要國密演算法?
國密演算法的產生背景
在網路資訊傳輸和儲存過程中,數據的保密性和安全性是一項重要的需求。傳統的國際標準加密演算法雖然安全可靠,但由於無法保證原始碼的安全性,因此存在著原始碼被外部惡意攻擊者滲透或篡改的風險。為了構建安全的行業網路環境並增強國家行業資訊系統的「安全可控」能力,中國積極開展了針對資訊保安需求的研究和探索。自2007年開始,中國制定了國密演算法標準,並於2010年正式釋出。
經過多年的發展、改進和完善,國密演算法已成為中國自主研發的密碼演算法標準,並在各行業得到廣泛套用。它的誕生不僅顯著提升了中國在密碼技術領域的核心競爭力,還為國家資訊保安建設作出了重要貢獻。
國密演算法的特點
國密演算法具備如下特點:
• 安全性高:國密演算法采用了嚴密的密碼學原理和復雜的運算方式,具有較高的安全性。它在加密、數位簽名和哈希等功能上都能提供可靠的保護,抵抗了各種傳統和現代密碼攻擊手段。
• 高效性與靈活性:國密演算法在保證安全性的同時,註重演算法的效率。它的加密速度和執行效率相對較高,同時也能適應不同的密碼長度和金鑰長度,以滿足不同場景的需求。
• 標準化廣泛:國密演算法已被國家標準化機構認可和采用。它符合國際密碼學標準的基本要求,具備與國際演算法相媲美的能力。同時,國密演算法也在國內推廣和套用廣泛,成為中國資訊保安領域的基礎核心演算法之一。
• 自主創新:國密演算法是中國自主研發的密碼演算法,所以對於演算法的實作和推廣都具有獨立的掌控能力。這意味著中國可以更好地保護自己的國家資訊保安,減少對外依賴,提高自主抵抗能力。
• 面向多領域套用:國密演算法不僅局限於某個特定領域的套用,它適用於金融業、電子商務、通訊、物聯網、區塊鏈等不同領域的資訊保安保護。它的廣泛套用範圍使得國密演算法可以滿足不同行業的安全需求。
國密演算法如何工作?
國密演算法包括SM1(SCB2)、SM2、SM3、SM4、SM7、SM9以及祖沖之密碼演算法(ZUC)等。其中,SM1、SM4、SM7、祖沖之密碼(ZUC)屬於對稱演算法;SM2、SM9屬於非對稱演算法;SM3屬於雜湊演算法。
下文將主要介紹國密演算法中的常用演算法SM1、SM2、SM3和SM4的實作和套用。
SM1演算法的實作和套用
SM1演算法是國密演算法中的一種對稱加密演算法,其特點是加解密使用相同金鑰。利用SM1對稱加密演算法加解密數據的過程。
SM1演算法未公開,僅以IP核(Intellectual Property Core,一種預先做好的積體電路功能模組)的形式存在於芯片中。SM1演算法主要用於小數據量的加密保護,因此被廣泛用於研制智慧IC卡、智慧密碼鑰匙、門禁卡、加密卡等安全產品。
SM2演算法的實作和套用
SM2演算法是基於ECC(Elliptic Curve Cryptography)橢圓曲線的非對稱加密演算法,包括了SM2-1橢圓曲線數位簽名演算法、SM2-2橢圓曲線金鑰交換協定和SM2-3橢圓曲線公鑰加密演算法,分別用於實作數位簽名、金鑰協商和數據加密等功能。
SM2演算法在許多領域都有廣泛的套用。在電子商務領域,SM2演算法被用於保護使用者個人資訊的安全傳輸,確保使用者在網上交易過程中的私密和財產的安全。在互聯網金融領域,SM2演算法被用於數位支付、電子銀行等場景,實作使用者身份認證和交易的安全性。此外,SM2演算法還適用於物聯網領域,保護物聯網裝置之間的通訊安全,確保數據的可靠傳輸。
數據加密
在非對稱加密演算法中,可對外公布的金鑰稱為「公鑰」,只有持有者所知的金鑰稱為「私鑰」。發送者使用接收者的公鑰來加密訊息,接收者用自己的私鑰解密和讀取該訊息。
利用SM2非對稱加密演算法加解密數據的過程。
金鑰協商
由於橢圓曲線的計算復雜性高,破解難度大,因此SM2演算法在金鑰協商技術領域也起著關鍵作用。利用SM2演算法進行金鑰協商的過程。
(1) 會話雙方生成自己的私鑰(隨機數)。
(2) 會話雙方由私鑰、ECC橢圓曲線參數G各自計算出公鑰。
(3) 會話雙方將自己的公鑰傳遞給對方,傳遞過程公開。由於橢圓曲線的計算復雜性高,破解難度大,因此攻擊者難以透過公鑰和橢圓曲線參數G反推出私鑰。
(4) 雙方將自己的私鑰與對方的公鑰進行運算,最終得到相同的會話金鑰,該會話金鑰可作為共享金鑰用於對稱加密(例如SM4演算法)通訊。
數位簽名
數位簽名是一種用於驗證資訊完整性、真實性和來源的技術手段。它通常用於確保數據在傳輸或儲存過程中沒有被篡改,並且可以追溯到特定的發送方。發送方使用自己的私鑰對訊息進行加密,生成數位簽名。接收方使用發送方的公鑰對簽名進行解密和驗證,以驗證訊息的完整性和真實性。
在數位簽名套用中,SM2演算法通常與SM3摘要演算法一起使用。
SM3演算法的實作和套用
SM3雜湊(Hashing)演算法是國密演算法中的一種摘要演算法。SM3演算法透過哈希函式將任意長度的訊息壓縮成固定長度的摘要。摘要具有唯一性,即不同資訊生成的摘要不同,且無法由摘要恢復出原始資訊,更無法偽造資訊獲得相同摘要,因此SM3演算法被廣泛用於實作數位簽名、數據完整性檢測及訊息驗證等功能。
基於SM3演算法的特點,在資訊保安領域,SM3演算法被用於保護密碼學協定、電子證書和電子簽名等數據的完整性。在區塊鏈領域,SM3演算法被用於加密貨幣的區塊生成和鏈上交易的校驗,確保區塊鏈的安全性。此外,SM3演算法還可以套用於密碼學隨機數的生成和偽隨機序列的校驗等領域,增加了數據的安全性和可靠性。
利用SM2演算法和SM3演算法對使用者數據進行數位簽名認證及完整性校驗的過程。
(1) 使用者A發送的數據A經過SM3哈希演算法運算生成摘要A。
(2) 摘要A經過使用者A的私鑰加密生成數位簽名。
(3) 使用者A的明文數據和數位簽名經加密演算法(SM1/SM2/SM4)加密成密文後發送給使用者B。加密演算法以非對稱加密演算法SM2為例,即加解密使用不同金鑰。
(4) 密文到達使用者B處,經加密演算法(SM1/SM2/SM4)解密後,還原成明文數據和數位簽名。
(5) 使用者B使用使用者A的公鑰解密封包中的數位簽名:
ο 解密成功,數據來源合法,得到摘要A;
ο 解密失敗,數據來源非使用者A,丟棄本次數據。
(6) 收到的封包中的明文數據經過SM3哈希運算生成摘要A’。對比摘要A和摘要A’:
ο 摘要A’=摘要A,數據完整;
ο 摘要A’≠摘要A,數據被篡改,丟棄本次數據。
SM4演算法的實作和套用
與SM1演算法分類相同,SM4演算法同樣為分組對稱加密演算法,但SM4演算法實作公開。
分組加密演算法是將明文數據按固定長度進行分組,用同一金鑰逐組加密,密文解密時同樣使用相同金鑰逐組解密。SM4演算法實作簡單,因此加解密速度較快,消耗資源少,主要用於大數據量的加密和解密,例如靜態儲存或數據訊號傳輸通道中數據的加解密。
在網路安全領域,SM4演算法被用於保護網路傳輸和儲存的敏感數據,如銀行卡資訊、密碼等。在物聯網領域,SM4演算法被用於物聯網裝置之間的通訊和數據加密,確保物聯網數據的私密安全。此外,SM4演算法還可以套用於區塊鏈領域,保護加密貨幣的交易安全等領域,為相關系統和數據的安全提供了保障。
加解密模式
SM4演算法支持ECB、CBC、CFB等多種分組模式,下文將介紹ECB和CBC兩種基礎模式。
• ECB模式
SM4演算法基於ECB模式對數據加解密的過程。
(1) 發送端將明文按固定長度分組,對每個明文分組分別使用相同的金鑰進行加密生成密文分組。完整的密文由所有密文分組按序排列組合而成。
(2) 接收端將密文按固定長度分組,對每個密文分組分別使用相同的金鑰進行解密生成明文分組。所有明文分組按序排列組合而成完整的明文數據。
ECB模式實作簡單,各段數據間互不影響,有利於並列運算,但相同的明文塊會被加密成相同的密文塊,不能提供嚴格的數據保密性。
CBC模式
SM4演算法基於CBC模式對明文加密的過程。
(1) 將明文按固定長度分組。
(2) 明文分組1與初始向量IV進行異或運算,異或運算的結果經金鑰加密後得到密文分組1。
(3) 剩余的明文分組依次與前一個密文分組進行異或運算後再加密,得到對應的密文分組。
(4) 完整的密文由所有密文分組按序排列組合而成。
SM4演算法基於CBC模式對密文解密的過程。
(1) 將密文按固定長度分組後,對密文分組進行倒序處理。
(2) 對密文分組n先使用金鑰進行解密,密文分組n解密後的數據與密文分組n-1進行邏輯逆運算,得到明文分組n。微信搜尋公眾號:Linux技術迷,回復:linux 領取資料 。
(3) 同理,剩余的密文分組解密後再與前一個密文分組進行邏輯逆運算,得到對應的明文分組。
(4) 最後,密文分組1用金鑰解密後的數據是與初始向量進行邏輯逆運算,然後得到明文分組1。
(5) 完整的明文由所有明文分組按序排列組合而成。
CBC模式安全性高於ECB,但明文塊不能平行計算,且誤差會傳遞下去。
國密演算法與國際標準演算法的對比
國密演算法和國際標準演算法都是現代密碼學中常用的加密演算法,但在技術和優劣方面存在一些區別。常見國密演算法與國際標準演算法各參數效能的對比如下:
對比項 | DES演算法 | AES演算法 | SM1演算法 | SM4演算法 |
計算結構 | 難,基於標準的算數和邏輯運算,不含非線性變換 | 極難,基於字節代換、行代換等,不含非線性變換 | 未公開 | 極難,基於基本輪函式+叠代,含非線性變換 |
分組長度 | 64位元 | 128位元 | 128位元 | 128位元 |
金鑰長度 | 64位元(3DES為128位元) | 128/192/256位 | 128位元 | 128位元 |
計算輪次 | 16輪(3DES為48輪) | 20/12/14輪 | 未公開 | 32輪 |
安全性 | 較低(3DES較高) | 較高 | 與AES相當 | 較高 |
對比項 | RSA演算法 | SM2演算法 |
計算結構 | 難,基於可逆冪模運算 | 極難,基於橢圓曲線上點群離散對數難題 |
計算復雜度 | 亞指數級 | 完全指數級 |
金鑰長度(相同安全效能下) | 較長 | 較短 |
金鑰生成速度 | 慢 | 較RAS演算法快百倍以上 |
安全性 | 一般 | 較高 |
對比項 | SHA1演算法 | SHA256演算法 | SM3演算法 |
計算結構 | 函式結構類似,但SM3演算法設計更復雜 | ||
摘要長度 | 160位元 | 256位 | 256位 |
運算速度 | 較快 | 略低於SHA1 | 略低於SHA1 |
安全性 | 一般 | 較高 | 高於SHA256 |
國密演算法的典型套用場景有哪些?
AD-WAN縱向IP/MPLS組網
國密演算法可以與AD-WAN技術結合,套用於IP/MPLS縱向網場景。透過AD-WAN智慧運維平台,實作國密配置一鍵下發,在網路中構建國密數據加密通道,實作基於國密的端到端的IPsec隧道保護。
國密演算法在端到端的IPsec隧道中的工作原理如下:
(1) 在IKE金鑰協商階段,使用IKE協定進行金鑰協商過程中,采用SM2演算法生成會話金鑰。
(2) 在身份認證階段,本端使用SM2和SM3演算法生成身份資訊的數位簽名,並使用SM1或SM4演算法和會話金鑰對身份資訊和數位簽名進行加密;對端收到加密的身份資訊後,使用相同的會話金鑰解密,然後透過SM2和SM3演算法進行身份認證。
(3) 在數據傳輸階段,本端使用SM2和SM3演算法生成使用者數據的數位簽名,並使用SM1或SM4演算法以及會話金鑰對使用者數據和數位簽名進行加密;對端收到加密的使用者數據後,使用相同的會話金鑰解密,然後透過SM2和SM3演算法進行數據完整性檢查。
4G/5G VPDN業務組網
4G/5G VPDN(Virtual Private Dialup Network,虛擬專有撥號網路)業務是在4G/5G無線網路中采用撥號方式實作的一種虛擬專有網路業務。它利用L2TP技術為客戶構建與互聯網隔離的隧道,以滿足客戶分支和總部內網通訊的需求。VPDN組網同時支持將L2TP和IPsec技術結合,透過L2TP完成使用者認證確保接入安全,並利用IPsec保障通訊數據安全。
(1) 4G/5G VPDN組網中分支閘道器由4G/5G路由裝置擔任,透過撥號接入營運商網路。
(2) 營運商對4G/5G路由裝置的APN(Access Point Name,存取點名稱)、帳戶、SIM/USIM卡資訊進行認證。
(3) 4G/5G路由裝置認證透過後被營運商判斷是VPDN使用者,同時由營運商AAA伺服器向LAC(L2TP Access Concentrator,L2TP存取集中器)裝置下發L2TP隧道內容,LAC裝置將基於下發的L2TP隧道內容資訊向該VPDN使用者所屬總部的LNS(L2TP Network Server,L2TP網路伺服器)裝置發起隧道建立請求。
(4) L2TP隧道建立後,LAC裝置會透過此隧道向LNS裝置透傳使用者的認證資訊。LNS裝置向總部內網的AAA伺服器發起對VPDN使用者的二次認證,認證透過後為VPDN使用者分配一個企業內網IP地址。分支終端使用者和總部可以開始通訊。
(5) 分支閘道器與總部閘道器裝置上均安裝有國密板卡,透過IPsec協商建立起端到端的IPsec隧道,使用國密演算法對傳輸的資料包進行加密保護和數據完整性檢查。
(6) 經IPsec加密後的資料包在LAC裝置處進行L2TP封裝後,透過L2TP隧道傳輸到LNS。
(7) LNS收到資料包後首先對L2TP報文進行解封裝,然後經過IPsec解密還原出資料包,根據報文目的IP地址轉發報文。
<END>
點這裏👇關註我,記得標星呀~
往期精選:
GPT中文網站
可以在國內同ChatGPT直接進行對話,支持GPT4.0 和 AI繪圖,簡直太方便了,今天新註冊的直接送4.0提問次數 !
點「在看」的人都變好看了哦