國密算法學習


一、國產算法概述

簡介

國產密碼算法(國密算法)是指國家密碼局認定的國產商用密碼算法,在金融領域目前主要使用公開的SM2、SM3、SM4三類算法,分別是非對稱算法、哈希算法和對稱算法。

      SM2算法:SM2橢圓曲線公鑰密碼算法是我國自主設計的公鑰密碼算法,包括SM2-1橢圓曲線數字簽名算法,SM2-2橢圓曲線密鑰交換協議,SM2-3橢圓曲線公鑰加密算法,分別用於實現數字簽名密鑰協商和數據加密等功能。SM2算法與RSA算法不同的是,SM2算法是基於橢圓曲線上點群離散對數難題,相對於RSA算法,256位的SM2密碼強度已經比2048位的RSA密碼強度要高。

      SM3算法:SM3雜湊算法是我國自主設計的密碼雜湊算法,適用於商用密碼應用中的數字簽名和驗證消息認證碼的生成與驗證以及隨機數的生成,可滿足多種密碼應用的安全需求。為了保證雜湊算法的安全性,其產生的雜湊值的長度不應太短,例如MD5輸出128比特雜湊值,輸出長度太短,影響其安全性SHA-1算法的輸出長度為160比特,SM3算法的輸出長度為256比特,因此SM3算法的安全性要高於MD5算法和SHA-1算法。

     SM4算法:SM4分組密碼算法是我國自主設計的分組對稱密碼算法,用於實現數據的加密/解密運算,以保證數據和信息的機密性。要保證一個對稱密碼算法的安全性的基本條件是其具備足夠的密鑰長度,SM4算法與AES算法具有相同的密鑰長度分組長度128比特,因此在安全性上高於3DES算法。

常用國產密碼算法

國密算法是我國自主研發創新的一套數據加密算法,經過多年的發展,已經頒布多個算法標准,包括SM1、SM2、SM3、SM4、SM7、SM9、祖沖之密碼算法(ZUC)等。

目前應用最廣泛的是SM2、SM3、SM4三種商用密碼算法,分別為非對稱加密算法、哈希算法和對稱加密算法

1. SM1算法。
該算法是由國家密碼管理局編制的一種商用密碼分組標准對稱算法,分組長度和密鑰長度均為128位,算法的安全保密強度及相關軟硬件實現性能與AES算法相當,目前該算法尚未公開,僅以IP核的形式存在於芯片中。調用該算法時,需要通過加密芯片的接口進行調用。

2. SM2算法
該算法是一種基於ECC算法的非對稱密鑰算法,其加密強度為256位,其安全性與目前使用的RSA1024相比具有明顯的優勢。

由於該算法基於ECC,故其簽名速度與秘鑰生成速度都快於RSA。ECC 256位(SM2采用的就是ECC 256位的一種)

3. SM3算法
該算法也叫密碼雜湊算法,屬於哈希(摘要)算法的一種,雜湊值為256位,和SM2算法一起被公布。功能與MD5,SHA-1相同。產生256位的編碼。該算法為不可逆的算法。具體算法也是保密。

4. SM4算法
該算法為對稱加密算法,隨WAPI標准一起被公布,其加密強度為128位。此算法是一個分組算法,用於無線局域網產品。

該算法的分組長度為128比特,密鑰長度為128比特。加密算法與密鑰擴展算法都采用32輪非線性迭代結構。解密算法與加密算法的結構相同,只是輪密鑰的使用順序相反,解密輪密鑰是加密輪密鑰的逆序。

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

5. SM7對稱密碼
SM7算法是一種分組密碼算法,分組長度為128比特,密鑰長度為128比特。SM7的算法文本目前沒有公開發布。SM7適用於非接IC卡應用包括身份識別類應用(門禁卡、工作證、參賽證),票務類應用(大型賽事門票、展會門票),支付與通卡類應用(積分消費卡、校園一卡通、企業一卡通、公交一卡通)。

6. SM9非對稱算法
SM9是基於對的標識密碼算法,與SM2類似,包含四個部分:總則,數字簽名算法,密鑰交換協議以及密鑰封裝機制和公鑰加密算法。在這些算法中使用了橢圓曲線上的對這一個工具,不同於傳統意義上的SM2算法,可以實現基於身份的密碼體制,也就是公鑰與用戶的身份信息即標識相關,從而比傳統意義上的公鑰密碼體制有許多優點,省去了證書管理等。
雙線性對的雙線性的性質是基於對的標識密碼SM2中的總則部分同樣適用於SM9,由於SM9總則中添加了適用於對的相關理論和實現基礎。

其他參考:淺談DES、RAS、SHA-256與SM1、SM2、SM3、SM4區別

SM2

詳解國密SM2的數字簽名

SM2算法的加密簽名消息語法規范

OID

Object identifier 對象標識符,OID智庫

1、國密標准GM/T 0010定義的oid如下:

  • 數據類型data                                                             1.2.156.10197.6.1.4.2.1
  • 簽名數據類型signedData                                           1.2.156.10197.6.1.4.2.2
  • 數字信封數據類型envelopedData                              1.2.156.10197.6.1.4.2.3
  • 簽名及數字信封數據類型signedAndEnvelopedData  1.2.156.10197.6.1.4.2.4
  • 加密數據類型encryptedData                                      1.2.156.10197.6.1.4.2.5
  • 密鑰協商類型keyAgreementInfo                                1.2.156.10197.6.1.4.2.6

國密及PKCS7的OID

2、證書OID

 

SM2國密算法證書解析

國密開發系列

寫給開發人員的使用密碼學 from 陳正勇,公眾號:雲水木石

二、國密文檔

國密局

文檔下載方式:

1、國密地址: 國家標准全文公開系統.

2、標准標號查詢: 工標網.

eg:《SM2密碼算法加密簽名消息語法規范》

在全文公開系統查詢到是:

在工標網上查到是:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM