[国密算法]一文了解国密算法
國密算法
- 概述
- 1 SM1對稱密碼
- 2 SM2橢圓曲線公鑰密碼算法
- 3 SM3雜湊算法
- 4 SM4對稱算法
- 5 SM7對稱密碼
- 6 SM9標識密碼算法
- 7 ZUC祖沖之算法
- 總結
| SM1 | 對稱密碼算法 | 芯片 | 分組長度、密鑰長度均為 128 比特 |
| SM2 | 公鑰密碼算法 | 加密 | ECC橢圓曲線密碼機制256位 相比RSA,處理速度快,消耗更少 |
| SM3 | Hash函數算法 | 完整性 | 安全性及效率與SHA-256相當 壓縮函數更復雜 |
| SM4 | 對稱密碼算法 | 無線局域網產品 | 分組長度、密鑰長度均為 128 比特 計算輪數多 |
| SM7 | 對稱密碼算法 | 非接觸式IC卡 | 分組長度、密鑰長度均為 128 比特 |
| SM9 | 標識密碼算法(IBE) | 端對端離線安全通訊 | 加密強度等同于3072位密鑰的RSA加密算法 |
| ZUC | 序列密碼算法 | 移動通信4G網絡 | 流密碼 |
概述
眾所周知,為了保障商用密碼的安全性,國家商用密碼管理辦公室制定了一系列密碼標準,包括SM1(SCB2)、SM2、SM3、SM4、SM7、SM9、祖沖之密碼算法(ZUC)那等等。
在金融領域目前主要使用公開的SM2、SM3、SM4三種商用密碼算法,分別為非對稱加密算法、哈希算法和對稱加密算法。
其中SM1、SM4、SM7、祖沖之密碼(ZUC)是對稱算法;SM2、SM9是非對稱算法;SM3是哈希算法。目前,這些算法已廣泛應用于各個領域中,期待有一天會有采用國密算法的區塊鏈應用出現。
SM2,3,9已被納入國際標準
其中SM1、SM7算法不公開,調用該算法時,需要通過加密芯片的接口進行調用;比較少人了解這些算法,在這里對這些國密算法做簡單的科普
1 SM1對稱密碼
SM1 算法是分組密碼算法,分組長度為128位,密鑰長度都為 128 比特,算法安全保密強度及相關軟硬件實現性能與 AES 相當,算法不公開,僅以IP核的形式存在于芯片中。
采用該算法已經研制了系列芯片、智能IC卡、智能密碼鑰匙、加密卡、加密機等安全產品,廣泛應用于電子政務、電子商務及國民經濟的各個應用領域(包括國家政務通、警務通等重要領域)。
2 SM2橢圓曲線公鑰密碼算法
SM2算法就是ECC橢圓曲線密碼機制,但在簽名、密鑰交換方面不同于ECDSA、ECDH等國際標準,而是采取了更為安全的機制。另外,SM2推薦了一條256位的曲線作為標準曲線。
SM2標準包括總則,數字簽名算法,密鑰交換協議,公鑰加密算法四個部分,并在每個部分的附錄詳細說明了實現的相關細節及示例。
SM2性能更優更安全:密碼復雜度高、處理速度快、機器性能消耗更小
SM2算法主要考慮素域Fp和F2m上的橢圓曲線,分別介紹了這兩類域的表示,運算,以及域上的橢圓曲線的點的表示,運算和多倍點計算算法。然后介紹了編程語言中的數據轉換,包括整數和字節串,字節串和比特串,域元素和比特串,域元素和整數,點和字節串之間的數據轉換規則。
詳細說明了有限域上橢圓曲線的參數生成以及驗證,橢圓曲線的參數包括有限域的選取,橢圓曲線方程參數,橢圓曲線群基點的選取等,并給出了選取的標準以便于驗證。最后給橢圓曲線上密鑰對的生成以及公鑰的驗證,用戶的密鑰對為(s,sP),其中s為用戶的私鑰,sP為用戶的公鑰,由于離散對數問題從sP難以得到s,并針對素域和二元擴域給出了密鑰對生成細節和驗證方式。總則中的知識也適用于SM9算法。
在總則的基礎上給出了數字簽名算法(包括數字簽名生成算法和驗證算法),密鑰交換協議以及公鑰加密算法(包括加密算法和解密算法),并在每個部分給出了算法描述,算法流程和相關示例。
數字簽名算法,密鑰交換協議以及公鑰加密算法都使用了國家密管理局批準的SM3密碼雜湊算法和隨機數發生器。數字簽名算法,密鑰交換協議以及公鑰加密算法根據總則來選取有限域和橢圓曲線,并生成密鑰對。
SM2算法在很多方面都優于RSA算法(RSA發展得早應用普遍,SM2領先也很自然),與RSA安全性對比如下圖
3 SM3雜湊算法
SM3安全性高:壓縮函數更復雜
Hash函數的性質
- 抗第一原像(單向性):對于給定的hash值h,要找到M使得H(M)=h在計算上是不可行的
- 抗第二原像(抗弱碰撞性):對于給定的消息M1,要發現另一個消息M2,滿足H(M1)=H(M2)在計算上是不可行的
- 抗強碰撞性:找任意一對不同消息M1、M2,使H(M1)=H(M2)在計算上是不可行的
SM3****密碼雜湊(哈希、散列)算法給出了雜湊函數算法的計算方法和計算步驟,并給出了運算示例。此算法適用于商用密碼應用中的數字簽名和驗證,消息認證碼的生成與驗證以及隨機數的生成,可滿足多種密碼應用的安全需求。在SM2,SM9標準中使用。
此算法對輸入長度小于2的64次方的比特消息,經過填充和迭代壓縮,生成長度為256比特的雜湊值, 安全性及效率與SHA-256相當。其中使用了異或,模,模加,移位,與,或,非運算,由填充,迭代過程,消息擴展和壓縮函數所構成。具體算法及運算示例見SM3標準。
4 SM4對稱算法
SM4更安全:計算輪數多、增加非線性變化
此算法是一個分組算法,用于無線局域網產品。該算法的分組長度為128比特,密鑰長度為128比特。加密算法與密鑰擴展算法都采用32輪非線性迭代結構。解密算法與加密算法的結構相同,只是輪密鑰的使用順序相反,解密輪密鑰是加密輪密鑰的逆序。
此算法采用非線性迭代結構,每次迭代由一個輪函數給出,其中輪函數由一個非線性變換和線性變換復合而成,非線性變換由S盒所給出。其中rki為輪密鑰,合成置換T組成輪函數。輪密鑰的產生與上圖流程類似,由加密密鑰作為輸入生成,輪函數中的線性變換不同,還有些參數的區別。SM4算法的具體描述和示例見SM4標準。
5 SM7對稱密碼
SM7算法,是一種分組密碼算法,分組長度為128比特,密鑰長度為128比特。SM7適用于非接觸式IC卡,應用包括身份識別類應用(門禁卡、工作證、參賽證),票務類應用(大型賽事門票、展會門票),支付與通卡類應用(積分消費卡、校園一卡通、企業一卡通等)。
6 SM9標識密碼算法
為了降低公開密鑰系統中密鑰和證書管理的復雜性,以色列科學家、RSA算法發明人之一Adi Shamir在1984年提出了標識密碼(Identity-Based Cryptography)的理念。標識密碼將用戶的標識(如郵件地址、手機號碼、QQ號碼等)作為公鑰,省略了交換數字證書和公鑰過程,使得安全系統變得易于部署和管理,非常適合端對端離線安全通訊、云端數據加密、基于屬性加密、基于策略加密的各種場合。2008年標識密碼算法正式獲得國家密碼管理局頒發的商密算法型號:SM9(商密九號算法),為我國標識密碼技術的應用奠定了堅實的基礎,加密強度等同于3072位密鑰的RSA加密算法。
SM9算法不需要申請數字證書,適用于互聯網應用的各種新興應用的安全保障。如基于云技術的密碼服務、電子郵件安全、智能終端保護、物聯網安全、云存儲安全等等。這些安全應用可采用手機號碼或郵件地址作為公鑰,實現數據加密、身份認證、通話加密、通道加密等安全應用,并具有使用方便,易于部署的特點,從而開啟了普及密碼算法的大門。
7 ZUC祖沖之算法
祖沖之序列密碼算法是中國自主研究的**流密碼算法,**是運用于移動通信4G網絡中的國際標準密碼算法,該算法包括祖沖之算法(ZUC)、加密算法(128-EEA3)和完整性算法(128-EIA3)三個部分。目前已有對ZUC算法的優化實現,有專門針對128-EEA3和128-EIA3的硬件實現與優化。
總結
密碼算法作為國家戰略資源,比歷史上任何時候都顯得更為關鍵。在大數據和云計算的時代,關鍵信息往往通過數據挖掘技術在海量數據中獲得,所以每一個人的信息保護都非常重要。
轉載鏈接:https://m.qukuaiwang.com.cn/news/2271.html
參考鏈接:https://zhuanlan.zhihu.com/p/34618269
總結
以上是生活随笔為你收集整理的[国密算法]一文了解国密算法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [Leedcode][JAVA][按摩师
- 下一篇: [密码学基础][每个信息安全博士生应该知