國密演算法學習

2022-09-14 12:48:08 字數 2534 閱讀 6968

國產密碼演算法(國密演算法)是指國家密碼局認定的國產商用密碼演算法,在金融領域目前主要使用公開的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演算法的加密簽名訊息語法規範

object identifier 物件識別符號,oid智庫

1、國密標準gm/t 0010定義的oid如下:

國密及pkcs7的oid

2、證書oid

sm2國密演算法證書解析

國密局2、標準標號查詢: 工標網.

eg:《sm2密碼演算法加密簽名訊息語法規範》

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

在工標網上查到是:

國密演算法(二)

接上文 sm4對稱演算法是乙個分組演算法,用於無線區域網產品。該演算法的分組長度為128位元,金鑰長度為128位元。加密演算法與金鑰擴充套件演算法都採用32輪非線性迭代結構。解密演算法與加密演算法的結構相同,只是輪金鑰的使用順序相反,解密輪金鑰是加密輪金鑰的逆序。此演算法採用非線性迭代結構,每次迭代...

國密演算法(三)

接上文 為了降低公開金鑰系統中金鑰和證書管理的複雜性,以色列科學家 rsa演算法發明人之一adi shamir在1984年提出了標識密碼 identity based cryptography 的理念。標識密碼將使用者的標識 如郵件位址 手機號碼 qq號碼等 作為公鑰,省略了交換數字證書和公鑰過程,...

國密演算法介紹以及Fabric國密擴充套件

國密即國家密碼局認定的國產密碼演算法。主要有sm1,sm2,sm3,sm4。金鑰長度和分組長度均為128位。sm1 為對稱加密。其加密強度與aes相當。該演算法不公開,呼叫該演算法時,需要通過加密晶元的介面進行呼叫。採用該演算法已經研製了系列晶元 智慧型ic卡 智慧型密碼鑰匙 加密卡 加密機等安全產...