1. 國密演算法
國密即國家密碼局認定的國產密碼演算法。主要有SM1,SM2,SM3,SM4。密鑰長度和分組長度均為128位。
SM1 為對稱加密。其加密強度與AES相當。該演算法不公開,調用該演算法時,需要通過加密晶元的介面進行調用。
SM2為非對稱加密,基於ECC。該演算法已公開。由於該演算法基於ECC,故其簽名速度與秘鑰生成速度都快於RSA。ECC 256位(SM2採用的就是ECC 256位的一種)安全強度比RSA 2048位高,但運算速度快於RSA。
國家密碼管理局公布的公鑰演算法,其加密強度為256位
SM3 消息摘要。可以用MD5作為對比理解。該演算法已公開。校驗結果為256位。
SM4 無線區域網標準的分組數據演算法。對稱加密,密鑰長度和分組長度均為128位。
由於SM1、SM4加解密的分組大小為128bit,故對消息進行加解密時,若消息長度過長,需要進行分組,要消息長度不足,則要進行填充。
分組密碼演算法(DES和SM4)、將明文數據按固定長度進行分組,然後在同一密鑰控制下逐組進行加密,
公鑰密碼演算法(RSA和SM2)、公開加密演算法本身和公開公鑰,保存私鑰
摘要演算法(SM3 md5) 這個都比較熟悉,用於數字簽名,消息認證,數據完整性,但是sm3安全度比md5高
總得來說國密演算法的安全度比較高,2010年12月推出,也是國家安全戰略,現在銀行都要要求國際演算法改造,要把國際演算法都給去掉
C 語言實現
https://github.com/guan/GmSSL/
Go 語言
https://github.com/tjfoc/gmsm
https://github.com/ZZMarquis/gm
Java 語言
https://github.com/PopezLotado/SM2Java
Go語言實現,調用 gmsm
2. 國密演算法指的是什麼
國密演算法是國家密碼局制定標準的一系列演算法。其中包括了對稱加密演算法,橢圓曲線非對稱加密演算法,雜湊演算法。具體包括SM1,SM2,SM3等,其中:
SM2為國家密碼管理局公布的公鑰演算法,其加密強度為256位。
SM1,對稱加密演算法,加密強度為128位,採用硬體實現。
SM3,密碼雜湊演算法,雜湊值長度為32位元組,和SM2演算法同期公布,參見《國家密碼管理局公告(第 22 號)》。
SMS4,對稱加密演算法,隨WAPI標准一起公布,可使用軟體實現,加密強度為128位。
應用舉例:
在門禁應用中,採用SM1演算法進行身份鑒別和數據加密通訊,實現卡片合法性的驗證,保證身份識別的真實性。 安全是關系國家、城市信息、行業用戶、百姓利益的關鍵問題。
國家密碼管理局針對現有重要門禁系統建設和升級改造應用也提出指導意見,加強晶元、卡片、系統的標准化建設。截止目前,國密門禁系統的升級的案例也逐漸增多,基於自主國產知識產權的CPU卡、CPU卡讀寫設備及密鑰管理系統廣泛受到關注。
3. 科普:國產密碼演算法
密碼學(cryptography): 通過將信息編碼使其不可讀,從而達到安全性。
演算法 :取一個輸入文本,產生一個輸出文本。
加密演算法 :發送方進行加密的演算法。
解密演算法 :接收方進行解密的演算法。
對稱密鑰加密 (Symmetric Key Cryptography):加密與解密使用相同密鑰。
非對稱密鑰加密 (Asymmetric Key Cryptography):加密與解密使用不同密鑰。
密鑰對 :在非對稱加密技術中,有兩種密鑰,分為私鑰和公鑰,私鑰是密鑰對所有者持有,不可公布,公鑰是密鑰對持有者公布給他人的。
公鑰 :公鑰用來給數據加密,用公鑰加密的數據只能使用私鑰解密。
私鑰 :如上,用來解密公鑰加密的數據。
摘要 :對需要傳輸的文本,做一個HASH計算。
簽名 :使用私鑰對需要傳輸的文本的摘要進行加密,得到的密文即被稱為該次傳輸過程的簽名。
密碼協議是指兩個或兩個以上的參與者為了達到某種特定目的而採取的一系列步驟。規定了一系列有序執行的步驟,必須依次執行。必須有兩個或兩個以上的參與者,有明確的目的。參與者都必須了解、同意並遵循這些步驟。
常見的密碼協議包括IPSEC VPN 協議、SSL VPN 協議、密鑰交換協議等。
密碼是指描述密碼處理過程的一組運算規則或規程,一般是指基於復雜數學問題設計的一組運算,其基本原理基於數學難題、可證明計算、計算復雜度等。主要包括:對稱密碼、公鑰密碼、雜湊演算法、隨機數生成。
在對稱加密演算法中,加密使用的密鑰和解密使用的密鑰是相同的,加密和解密都是使用同一個密鑰,不區分公鑰和私鑰。
通信雙方採用相同的密鑰來加解密會話內容,即一段待加密內容,經過同一個密鑰的兩次對稱加密後,與原來的結果一樣,具有加解密速度快和安全強度高的優點。
國際演算法:DES、AES。
國產演算法:SM1、SM4、SM7。
非對稱加解密演算法又稱為 公鑰密碼 ,其密鑰是成對出現的。雙方通信時,首先要將密鑰對中的一個密鑰傳給對方,這個密鑰可以在不安全的信道中傳輸;傳輸數據時,先使用自己持有的密鑰做加密,對方用自己傳輸過去的密鑰解密。
國際演算法:RSA
國產演算法:SM2
優點:
密鑰分發數目與參與者數目相同,在有大量參與者的情況下易於密鑰管理。
支持數字簽名和不可否認性。
無需事先與對方建立關系,交換密鑰。
缺點:
速度相對較慢。
可能比同等強度的對稱密碼演算法慢10倍到100倍。
加密後,密文變長。
密碼雜湊演算法 :又稱為散列演算法或哈希函數,一種單向函數,要由散列函數輸出的結果,回推輸入的資料是什麼,是非常困難的。
散列函數的輸出結果,被稱為訊息摘要(message digest)或是 摘要(digest) ,也被稱為 數字指紋 。
雜湊函數用於驗證消息的完整性, 在數字簽名中,非對稱演算法對數據簽名的速度較慢,一般會先將消息進行雜湊運算,生成較短的固定長度的摘要值。然後對摘要值進行簽名,會大大提高計算效率 。
國際演算法:MD5、SHA1、SHA2、SHA3
國產演算法:SM3
2009年國家密碼管理局發布的《信息安全等級保護商用密碼技術實施要求》中明確規定,一、二、三、四級信息系統應使用商用密碼技術來實施等級保護的基本要求和應用要求,一到四級的密碼配用策略要求採用國家密碼管理部門批准使用的演算法。
2010年年底,國家密碼管理局公開了SM2、SM3等國產密碼演算法。
2011年2月28日,國家密碼管理局印發的【2011】145號文中明確指出,1024位RSA演算法正在面臨日益嚴重的安全威脅,並要求各相關企業在2012年6月30日前必須使用SM2密碼演算法
國家密碼管理局在《關於做好公鑰密碼演算法升級工作的函》中要求2011年7月1日以後建立並使用公鑰密碼的信息系統,應使用SM2演算法;已經建設完成的系統,應盡快進行系統升級,使用SM2演算法。
2014年底,國家密碼管理局啟動《重要信息系統密碼應用推進總體研究課題》,確定十三五密碼 科技 專項。
2017年11月底,國家密碼管理局下發了《政務雲密碼支撐方案及應用方案設計要點》。
2017年國家密碼管理局發布了42項金融和重要領域國產密碼應用試點任務。
2018年,中共中央辦公廳、國務院辦公廳印發《金融和重要領域密碼應用與創新發展工作規劃(2018-2022年)。
2018年,為指導當時即將啟動的商用密碼應用安全性評估試點工作,國家密碼管理局發布了密碼行業標准GM/T0054-2018《信息系統密碼應用 基本要求》。
2021年3月,國家市場監管總局、國家標准化管理委員會發布公告,正式發布國家標准GB/T39786-2021《信息安全技術信息系統密碼應用基本要求》,該標准於2021年10月1日起實施。
SM1 演算法是分組密碼演算法,分組長度為 128 位,密鑰長度都為 128 比特,演算法安全保密強度及相關軟硬體實現性能與AES相當,演算法不公開,僅以IP核的形式存在於晶元中。
演算法集成於加密晶元、智能 IC 卡、智能密碼鑰匙、加密卡、加密機等安全產品,廣泛應用於電子政務、電子商務及國民經濟的各個應用領域(包括政務通、警務通等重要領域)。
SM2橢圓曲線公鑰密碼演算法是我國自主設計的公鑰密碼演算法,是一種基於ECC演算法的 非對稱密鑰演算法, 其加密強度為256位,其安全性與目前使用的RSA1024相比具有明顯的優勢。
包括SM2-1橢圓曲線數字簽名演算法,SM2-2橢圓曲線密鑰交換協議,SM2-3橢圓曲線公鑰加密演算法,分別用於實現 數字簽名密鑰協商 和 數據加密 等功能。
SM3雜湊演算法是我國自主設計的密碼雜湊演算法,屬於哈希(摘要)演算法的一種,雜湊值為256位,安全性要遠高於MD5演算法和SHA-1演算法。
適用於商用密碼應用中的 數字簽名 和 驗證消息認證碼的生成與驗證 以及 隨機數 的生成,可滿足多種密碼應用的安全需求。
SM4 分組密碼演算法 是我國自主設計的分組對稱密碼演算法,SM4演算法與AES演算法具有相同的密鑰長度分組長度128比特,因此在安全性上高於3DES演算法。
用於實現數據的加密/解密運算,以保證數據和信息的機密性。軟體和硬體加密卡均可實現此演算法。
商用密碼技術框架包括 密碼資源、密碼支撐、密碼服務、密碼應用 等四個層次,以及提供管理服務的密碼管理基礎設施。
密碼資源層: 主要是提供基礎性的密碼演算法資源。
密碼支撐層: 主要提供密碼資源調用,由安全晶元、密碼模塊、智能IC卡、密碼卡、伺服器密碼機、簽名驗簽伺服器、IPSCE/SSL VPN 等商密產品組成。
密碼服務層: 提供密碼應用介面,分為對稱和公鑰密碼服務以及其他三大類。
密碼應用層: 調用密碼服務層提供的密碼應用程序介面,實現數據的加解密、數字簽名驗簽等服務。如應用 於 安全郵件、電子印章系統、安全公文傳輸、移動辦公平台、可信時間戳等系統。
密碼管理基礎設施: 獨立組件,為以上四層提供運維管理、信任管理、設備管理、密鑰管理等功能。
完整的PKI系統必須具有權威認證機構(CA)、數字證書庫、密鑰備份及恢復系統(KMC)、證書作廢系統(CRL)、應用介面(API)等基本構成部分,構建PKI也將圍繞著這五大系統來著手構建。
CA 系統:Ca系統整個PKI的核心,負責證書的簽發。CA首先產生自身的私鑰和公鑰(密鑰長度至少為1024位),然後生成數字證書,並且將數字證書傳輸給安全伺服器。、CA還負責為操作員、安全伺服器以及注冊機構伺服器生成數字證書。安全伺服器的數字證書和私鑰也需要傳輸給安全伺服器。
CA伺服器是整個結構中最為重要的部分,存有CA的私鑰以及發行證書的腳本文件,出於安全的考慮,應將CA伺服器與其他伺服器隔離,任何通信採用人工干預的方式,確保認證中心的安全。
(1)甲使用乙的公鑰對明文進行加密,生成密文信息。
(2)甲使用HASH演算法對明文進行HASH運算,生成數字指紋。
(3)甲使用自己的私鑰對數字指紋進行加密,生成數字簽名。
(4)甲將密文信息和數字簽名一起發送給乙。
(5)乙使用甲的公鑰對數字簽名進行解密,得到數字指紋。
(6)乙接收到甲的加密信息後,使用自己的私鑰對密文信息進行解密,得到最初的明文。
(7)乙使用HASH演算法對還原出的明文用與甲所使用的相同HASH演算法進行HASH運算,生成數字指紋。然後乙將生成的數字指紋與從甲得到的數字指紋進行比較,如果一致,乙接受明文;如果不一致,乙丟棄明文。
SSL 協議建立在可靠的傳輸協議(如 TCP)之上,為高層協議提供數據封裝,壓縮,加密等基本功能。
即可以協商加密演算法實現加密傳輸,防止數據防竊聽和修改,還可以實現對端設備身份驗證、在這個過程中,使用國密演算法進行加密、簽名證書進行身份驗證、加密證書用於密鑰交換
SSL協商過程:
(1)客戶端發出會話請求。
(2)服務端發送X.509證書(包含服務端的公鑰)。
(3)客戶端用已知Ca列表認證證書。
(4)客戶端生成隨機對稱密鑰,並利用服務端的公鑰進行加密。
(5)雙方協商完畢對稱密鑰,隨後用其加密會話期間的用戶最終數據。
利用SSL卸載技術及負載均衡機制,在保障通訊數據安全傳輸的同時,減少後台應用伺服器的性能消耗,並實現伺服器集群的冗餘高可用,大幅度提升整個業務應用系統的安全性和穩定性。此外,藉助多重性能優化技術更可縮短了業務訪問的響應等待時間,明顯提升用戶的業務體驗。
基於 數字證書 實現終端身份認證,給予密碼運算實現本地數據的加密存儲,數字證書硬體存儲和密碼運算由移動終端內置的密碼部件提供。
移動應用管理系統伺服器採用簽名證書對移動應用軟體安裝包進行簽名,移動應用管理系統客戶端對簽名信息進行驗簽,保障移動應用軟體安裝包的真實性和完整性。
移動辦公應用系統採用簽名證書對關鍵訪問請求進行簽名驗證。
採用加密證書對關鍵傳輸數據和業務操作指令,以及移動終端本地存儲的重要數據進行加密保護。
移動辦公系統使用商用密碼,基於數字證書認證系統,構建覆蓋移動終端、網路、移動政務應用的安全保障體系,實現政務移動終端安全、接入安全、傳輸安全和移動應用安全 。
4. 003 國密演算法【技術】
國密演算法:國家密碼局認定的國產密碼演算法,即商用密碼。
非對稱密碼(公鑰演算法):SM2,SM9
對稱密碼(分組密碼,序列密碼):SM1,SM4,SM7,ZUC
雜湊演算法(散列,哈希演算法):SM3
概述 : 對稱加密演算法(分組密碼) ,分組長度128位,密鑰長度128位, 演算法不公開 ,通過加密晶元的介面進行調用。
場景 :採用該演算法已經研製了系列晶元、智能IC卡、智能密碼鑰匙、加密卡、加密機等安全產品,廣泛應用於電子政務、電子商務及國民經濟的各個應用領域(包括國家政務通、警務通等重要領域)。
概述 : 非對稱加密演算法(公鑰演算法) ,加密強度為256位,是一種橢圓曲線演算法。
公鑰密碼學與其他密碼學完全不同, 使用這種方法的加密系統,不僅公開加密演算法本身,也公開了加密用的密鑰。公鑰密碼系統與只使用一個密鑰的對稱傳統密碼不同,演算法是基於數學函數而不是基於替換和置換。公鑰密碼學是非對稱的,它使用兩個獨立的密鑰,即密鑰分為公鑰和私鑰,因此稱雙密鑰體制。雙鑰體制的公鑰可以公開,因此稱為公鑰演算法。
使用私鑰加密後的密文只能用對應公鑰進行解密,反之使用公鑰加密的密文也只能用對應的私鑰進行解密。通過對私鑰進行橢圓曲線運算可以生成公鑰,而由於橢圓曲線的特點,知道公鑰卻很難反推出私鑰,這就決定了SM2演算法的安全性。SM2演算法最常見的應用是進行身份認證,也就是我們熟知的數字簽名與驗簽,通過私鑰的私密性來實現身份的唯一性和合法性。
場景: 適用於商用應用中的 數字簽名和驗證 ,可滿足多種密碼應用中的 身份認證 和 數據完整性,真實性 的安全需求。
場景: 適用於商用密碼應用中的 密鑰交換 ,可滿足通信雙方經過兩次或可選三次信息傳遞過程,計算獲取一個由雙方共同決定的共享秘密密鑰(會話密鑰)。
場景: 適用於國家商用密碼應用中的 消息加解密 ,消息發送者可以利用接收者的公鑰對消息進行加密,接收者用對應的私鑰進行解,獲取消息。
涉及國密標准: GB/T 32918.1-2016、GB/T 32918.2-2016、GB/T 32918.3-2016、GB/T 32918.4-2016、GB/T 32918.5-2017、GB/T 35275-2017、GB/T 35276-2017。
概述:哈希演算法(散列演算法,雜湊演算法) ,任意長度的數據經過SM3演算法後會生成長度固定為256bit的摘要。SM3演算法的逆運算在數學上是不可實現的,即通過256bit的摘要無法反推出原數據的內容,因此在信息安全領域內常用SM3演算法對信息的完整性進行度量。
場景: 適用於商用密碼應用中的 數字簽名和驗證 , 消息認證碼的生成與驗證 以及 隨機數的生成 ,可滿足多種密碼應用的安全需求。
涉及國密標准: GB/T 32905-2016
概述:對稱加密演算法(分組密碼) ,分組長度128位,密鑰長度128位,使用某一密鑰加密後的密文只能用該密鑰解密出明文,故而稱為對稱加密。SM4演算法採用32輪非線性迭代實現,加解密速度較快,常應用於大量數據的加密,保存在存儲介質上的用戶數據往往就使用SM4演算法進行加密保護。
場景:大量數據的加密,解密,MAC的計算 。
分組密碼就是將明文數據按固定長度進行分組,然後在同一密鑰控制下逐組進行加密,從而將各個明文分組變換成一個等長的密文分組的密碼。其中二進制明文分組的長度稱為該分組密碼的分組規模。
分組密碼的實現原則如下:必須實現起來比較簡單,知道密鑰時加密和脫密都十分容易,適合硬體和(或)軟體實現。加脫密速度和所消耗的資源和成本較低,能滿足具體應用范圍的需要。
分組密碼的設計基本遵循混淆原則和擴散原則
①混淆原則就是將密文、明文、密鑰三者之間的統計關系和代數關系變得盡可能復雜,使得敵手即使獲得了密文和明文,也無法求出密鑰的任何信息;即使獲得了密文和明文的統計規律,也無法求出明文的任何信息。
②擴散原則就是應將明文的統計規律和結構規律散射到相當長的一段統計中去。也就是說讓明文中的每一位影響密文中的盡可能多的位,或者說讓密文中的每一位都受到明文中的盡可能多位的影響。
涉及國密標准: GB/T 32907-2016
概述 : 對稱加密演算法(分組密碼) ,分組長度128位,密鑰長度128位, 演算法不公開 ,通過加密晶元的介面進行調用。
場景 :適用於非接觸式IC卡,應用包括身份識別類應用(門禁卡、工作證、參賽證),票務類應用(大型賽事門票、展會門票),支付與通卡類應用(積分消費卡、校園一卡通、企業一卡通等)。
概述:非對稱加密演算法(標識密碼) ,標識密碼將用戶的標識(如郵件地址、手機號碼、QQ號碼等)作為公鑰,省略了交換數字證書和公鑰過程,使得安全系統變得易於部署和管理,非常適合端對端離線安全通訊、雲端數據加密、基於屬性加密、基於策略加密的各種場合。
SM9演算法不需要申請數字證書,適用於互聯網應用的各種新興應用的安全保障。如基於雲技術的密碼服務、電子郵件安全、智能終端保護、物聯網安全、雲存儲安全等等。這些安全應用可採用手機號碼或郵件地址作為公鑰,實現數據加密、身份認證、通話加密、通道加密等安全應用,並具有使用方便,易於部署的特點,從而開啟了普及密碼演算法的大門。
概述 : 對稱加密演算法(序列密碼) ,是中國自主研究的流密碼演算法,是運用於移動通信4G網路中的國際標准密碼演算法,該演算法包括祖沖之演算法(ZUC)、加密演算法(128-EEA3)和完整性演算法(128-EIA3)三個部分。目前已有對ZUC演算法的優化實現,有專門針對128-EEA3和128-EIA3的硬體實現與優化。
5. SM演算法是如何獲得國際認可
眾所周知,為了保障商用密碼的安全性,國家商用密碼管理辦公室制定了一系列密碼標准,為了以後獲得國際認可和認同。SM演算法包括SM1(SCB2)、SM2、SM3、SM4、SM7、SM9、祖沖之密碼演算法(ZUC)那等等。其中SM1、SM4、SM7、祖沖之密碼(ZUC)是對稱演算法;SM2、SM9是非對稱演算法;SM3是哈希演算法。目前,這些演算法已廣泛應用於各個領域當中,期待有一天會有採用國密演算法的區塊鏈應用出現。其中SM1、SM7演算法不公開,調用該演算法時,需要通過加密晶元的介面進行調用;比較少的人了解這些演算法的使用方式,在這里對這些國密演算法做一下簡單的科普。SM1 演算法是分組密碼演算法,分組長度為128位,密鑰長度都為 128 比特,演算法安全保密強度及相關軟硬體實現性能與 AES 相當,演算法不公開,僅以IP核的形式存在於晶元中。採用該演算法已經研製了系列晶元、智能IC卡、智能密碼鑰匙、加密卡、加密機等安全產品,廣泛應用於電子政務、電子商務及國民經濟的各個應用領域(包括國家政務通、警務通等重要領域)。SM7演算法,是一種分組密碼的演算法,分組長度一般為128比特,密鑰長度為128比特。SM7適用於非接觸式IC卡,應用包括身份識別類應用(門禁卡類、工作證、參賽證),票務類應用(大型賽事門票、展會門票),支付與通卡類應用(積分消費卡、校園一卡通、企業一卡通等)。
6. 金稅專用加密機的功能特點是什麼
漁翁信息金稅專用加密機功能特點:
1.密鑰生成
支持國密SM2演算法密鑰對的生成、支持RSA密鑰對生成、支持對稱密鑰的生成。
2.密鑰存儲
默認存儲64對SM2密鑰對和64對RSA密鑰對,支持存儲1024個對稱密鑰,可根據客戶需求擴展。
3.密鑰銷毀
支持銷毀 SM2密鑰對、RSA 密鑰對和通信密鑰,且銷毀後通過任何技術均無法恢復。
4.密鑰更新
支持非對稱密鑰對和對稱密鑰的更新功能。
5.密鑰備份和恢復
支持設備內部密鑰以密文形式備份至設備外部存儲,並採用門限秘密共享機制確保密鑰備份安全,備份密鑰可恢復到相同型號的其他加密卡設備中。
6.真隨機數生成
採用經國密局批准使用的物理雜訊源產生器生成真隨機數,確保密鑰安全。
7.非對稱加解密
支持國密SM2橢圓曲線密碼演算法加解密,密鑰長度為256位;支持RSA演算法加解密。
8.對稱加解密
支持國密SM1、SM4對稱演算法加解密;支持DES、3DES、AES、AES192、AES256等演算法加解密。
9.完整性運算
支持國密SM3雜湊演算法,支持SHA1演算法確保數據完整性。
10.簽名/簽名驗證
支持非對稱演算法的私鑰對數據進行簽名,使用對應的公鑰進行簽名驗證。
11.身份識別
支持使用非對稱演算法的公鑰進行用戶身份鑒別。
12.開發支持
支持微軟PKCS#11介面、JCE介面等標准介面;支持用戶定製介面的開發;支持《密碼設備應用介面規范》國家標准介面;支持多進程、多線程調用。
13.密鑰管理
採用三級密鑰管理體系,包括主密鑰、密鑰保護密鑰及工作密鑰,密鑰均以密文形式存在密碼卡內部,密鑰管理安全。
14.許可權管理
採用分級許可權管理,分為操作員和管理員,管理員可生成3個或以上,最多5個,只有登錄半數以上的管理員才能大大滿足管理許可權,進行各種管理操作。管理員和操作員的身份通過USBKEY實現雙因子認證。
15.系統監控
支持對設備CPU/內存的使用率、當前業務並發量、正在處理的業務操作等進行實時監控。
16.業務連續性
支持斷鏈修復功能;支持多機並行及負載均衡。
17.日誌審計
支持對伺服器密碼機的操作行為進行審計。
7. 加密機為什麼要罐密鑰
加密機為什麼要罐密鑰的原因是,
軟體加密實現容易,投資較小,但密鑰及演算法易於外泄,安全級別較低,所以需要灌密鑰,加強保密性。