隨著信息化技術的飛速發展,信息安全問題已經影響到日常生活甚至國家安全。擺脫對國外技術和產品的過度依賴,建設行業網絡安全環境,增強行業信息系統的“安全可控”能力顯得尤為必要和迫切,國家有關機構站在國家安全和長遠戰略的高度提出了推動國密算法應用實施、加強行業安全可控的要求。
極海APM32F407系列MCU,結合當前環境要求,設計出了支持國密算法(SM2,SM3,SM4)的IP, 符合國家密碼管理局認定和公布的密碼算法標準及其應用規范,并憑借顯著的性能優勢,已應用至新能源、工業控制、醫療設備等眾多領域。國密算法成員介紹 ·
國密算法(國家商用密碼算法),是國家密碼管理局指定的自主可控的國產算法,包含SM1,SM2,SM3,SM4,SM7,SM9,ZUC(祖沖之算法)等。
SM1
分組加密算法(算法不公開),安全保密強度跟 AES 相當,僅以IP核的形式存在于芯片中,需要通過加密芯片的接口進行調用。
SM2
非對稱加密算法(算法公開),基于橢圓曲線密碼(ECC)的公鑰密碼算法標準,適用簽名/驗簽,加解密,密鑰交換,信息加密,登錄認證等。可替代RSA/DH/ECDSA/ECDH等國際算法。
SM3
是一種密碼雜湊算法,其算法公開。適用于數字簽名和驗證、消息認證碼的生成與雜湊算法(算法公開),適用數字簽名/驗證、消息認證碼的生成/驗證,以及隨機數摘要的生成,可滿足電子認證服務系統等應用需求。可替代MD5/SHA-1/SHA-2等國際算法。驗證以及隨機數的生成,可以滿足電子認證服務系統等應用需求。用于替代MD5/SHA-1/SHA-2等國際算法。
SM4
是一種分組加密算法,其算法公開。是我國自主設計的分組對稱對稱加密(算法公開),我國自主設計的分組對稱密碼算法,與AES算法具有相同的密鑰長度、分組長度,即128bit,適用無線區域網標準。可替代DES/AES等國際算法。密碼算法,與AES算法具有相同的密鑰長度、分組長度,都是128bit。用于替代DES/AES等國際算法。
SM7
分組加密算法(算法不公開)。適用于非接IC卡應用包括身份識別類應用,票務類應用,支付與通卡類應用。
SM9
基于標識的非對稱密碼算法(算法公開)。加密強度等同于3072位密鑰的RSA加密算法,適用與身份認證(云技術,電子郵件,智能終端,互聯網等),可替代基于數字證書的PKI/CA體系。
ZUC
對稱加密與非對稱加密 ·
對稱加密:指信息的發送方和接收方采用同一個密鑰去進行數據的加密和解密。
非對稱加密:指需要兩個不同的密鑰(公開密鑰public key、私有密鑰private key)進行加解密,如果用公開密鑰對數據進行加密,只有對應的私有密鑰才能解密;如果用私有密鑰對數據進行加密,那么只有對應的公開密鑰才能解密。
SM2/SM3/SM4 ·
在物聯網和信息安全領域,主要使用SM2,SM3,SM4對設備進行驗證、簽名、加密通信,從而實現完整數據的安全傳輸。極海APM32F407通過軟硬結合的方式實現了上述三種國密算法。
SM2詳解
基于《SM2橢圓曲線公鑰密碼算法》由軟件設計實現。
功能特性
抗攻擊性強、CPU占用少、內存占用少、網絡消耗低、加密速度快。
|
SM2 |
RSA |
算法結構 |
基本橢圓曲線(ECC) |
基于特殊的可逆模冪運算 |
計算復雜度 |
完全指數級 |
亞指數級 |
公鑰位數 |
256bit |
2048bit |
秘鑰生成速度 |
較RSA算法快百倍以上 |
慢 |
解密加密速度 |
較快 |
一般 |
安全性:ECC算法的單位安全強度遠高于RSA算法,可用較少的計算能力提供比RSA算法更高的安全強度,而所需的密鑰長度卻遠比RSA算法低。目前基于ECC的SM2 證書普遍采用256位密鑰長度,加密強度等同于 3072 位 RSA證書,遠高于業界普遍采用的2048位RSA證書。此外,為了提高安全強度必須不斷增加密鑰長度,ECC算法密鑰長度增長速度較慢,而RSA算法密鑰長度則需呈倍數增長。
對稱秘鑰長度(bit) |
ECC秘鑰長度(bit) |
RSA秘鑰長度(bit) |
保密 年限 |
80 |
160 |
1024 |
2010 |
122 |
224 |
2048 |
2030 |
128 |
256 |
3072 |
2040 |
192 |
384 |
7680 |
2080 |
256 |
512 |
15360 |
2120 |
高效性:
在TLS握手過程中,更長的密鑰意味著必須來回發送更多數據以驗證連接,產生更大性能損耗和時間延遲。因此,ECC算法能夠以較小的密鑰和較少的數據傳遞建立HTTPS連接,確保相同安全強度的前提下提升連接速度。
函數描述
函數 |
描述 |
SM2_Cinfig |
初始化ECC算法參數,執行其余函數前必須配置此函數。 |
SM2_Gen_KeyPair |
生成一對密鑰,公鑰(32Bytes)和私鑰(64Bytes) |
SM2_Encryption |
加密明文(1-2048 Bytes),生成密文,輸出為:(04 || C1 || C2 || C3). |
SM2_Decryption |
解密密文(98-2145 Bytes),生成明文。 |
SM2_Preprocess |
簽名預處理,輸入Message and ID,生成 e: pointer to the H256. |
SM2_Signature |
簽名,輸入e值,生成signature.R(32Bytes)signature.S(32Bytes) |
SM2_Verify |
驗簽,返回驗簽結果(SM2_VERIFY_SUCESS) |
1. 密文輸出順序為 C1,C2,C3(舊標準),C1,C3,C2(新標準GM/T 0009-2012)。
2. 04為壓縮標識(1Byte),C1為公鑰xy分量(64Bytes),C2為加密數據(與明文長度一致),C3為摘要值(32Bytes)。
性能描述
芯片型號:APM32F407IGT6驗證平臺:Keil_V5.29
驗證方法:循環執行1000次
驅動版本:APM32F4xx_SM_DriverV1.0
操作 |
明文長度(Byte) |
時間(s) |
平均時間(ms) |
SM2_Gen_KeyPair |
2048 |
3.89465367 |
3.89 |
SM2_Encryption |
2048 |
0.21780688 |
0.21 |
SM2_Decryption |
2048 |
22.01989933 |
22 |
SM2_Preprocess |
2048 |
1.73319654 |
1.7 |
SM2_Signature |
2048 |
4.10555868 |
4.1 |
SM2_Verify |
2048 |
7.90497210 |
7.9 |
注:該性能數據由極海實驗室獲得。
SM3詳解
基于GM/T0004-2012《SM3密碼雜湊算法》由硬件設計實現。
功能特性
在商用密碼體系中,SM3主要用于數字簽名及驗證、消息認證碼生成及驗證、隨機數生成等,其安全性及效率與 SHA-256 相當。
|
消息長度(bit) |
塊大小(bit) |
RSA秘鑰長度(bit) |
摘要長度(bit) |
SHA-1 |
<2^64 |
512 |
32 |
160 |
SHA-224 |
<2^64 |
512 |
32 |
224 |
SHA-256 |
<2^64 |
512 |
32 |
256 |
SM3 |
<2^64 |
512 |
32 |
256 |
SHA-384 |
<2^128 |
1024 |
64 |
384 |
SHA-512 |
<2^128 |
1024 |
64 |
512 |
SHA-512/224 |
<2^128 |
1024 |
64 |
224 |
SHA-512/256 |
<2^128 |
1024 |
64 |
256 |
函數描述
函數 |
描述 |
SM3_Config |
初始化SM3參數,初始化模式(IVinit),存儲模式(endian) |
SM3_Update |
更新SM3計算值(內部調用,僅SM2使用) |
SM3_Final |
計算最后信息塊(內部調用,僅SM2使用) |
SM3_Calc |
輸入:消息,輸出:摘要值(32Bytes) |
性能描述
芯片型號:APM32F407IGT6
驗證平臺:Keil_V5.29
驗證方法:循環執行1000次
驅動版本:APM32F4xx_SM_DriverV1.0
操作 |
明文長度(Byte) |
時間(s) |
平均時間(ms) |
SM3_Calc |
512 |
0.36011912 |
0.36 |
SM3_Calc |
1024 |
0.53363102 |
0.53 |
SM3_Calc |
2048 |
0.88014293 |
0.88 |
SM3_Calc |
4096 |
1.57265483 |
1.57 |
注:該性能數據由極海實驗室獲得。
SM4詳解
基于GM/T0002-2012《SM4分組密碼算法》由硬件設計實現。
功能特性
該算法的分組長度為128bits,密鑰長度為128bits。與DES和AES算法類似,加密算法與密鑰擴展算法都采用32輪非線性迭代結構。
|
SM4 |
DES |
算法結構 |
基本輪函數加迭代,包含非線性變換。 |
使用標準的算術和邏輯運算,先代替后置換,不包含非線性變換。 |
計算輪數 |
32輪 |
16輪(TDES 16輪*3) |
秘鑰長度 |
128bit |
64bit(TDES 128bit) |
實現性能 |
軟件和硬件實現都快 |
軟件實現慢,硬件實現快。 |
安全性 |
較高 |
較低(TDES 較高) |
加解密模式
功能 |
描述 |
ECB |
電子密碼本模式 每個明文塊對應固定的密文塊。 優點:并行運算,速度快,易標準化,適合短數據加密。 缺點:不能隱藏數據格式,抗攻擊性弱(重放,替換,刪除) |
CBC |
密碼分組鏈接模式 每個明文快與前一個密文塊異或后再進行加密。 優點:隱藏數據格式,抗攻擊性強,適合報文完整性和用戶身份認證。 缺點:不能并行加密,易出現錯誤傳播。 |
ECB(Electronic Codebook)CBC(Cipher Block Chaining)
函數描述
函數 |
描述 |
SM4_ECB |
ECB加解密模式,輸入明文長度必須為128bits倍數,無IV參數。 |
SM4_CBC |
CBC加解密模式,輸入明文長度必須為128bits倍數,IV參數為16 Bytes。 |
注:
1. IV:初始化向量(Initialization Vector) 使用 CBC 模式時需輸入該參數。
2. 由于加密第一個明文分組時,不存在前一個密文分組,所以要事先準備好一個分組長度的 IV 變量來替代前一個密文分組。
性能描述
芯片型號:APM32F407IGT6
驗證平臺:Keil_V5.29驗證方法:循環執行1000次驅動版本:APM32F4xx_SM_DriverV1.0
操作 |
明文長度(Byte) |
時間(s) |
平均時間(ms) |
SM4_ECB_Encryption |
256 |
0.05038697 |
0.05 |
SM4_ECB_Decryption |
256 |
0.05357748 |
0.05 |
SM4_CBC_Encryption |
256 |
0.05200602 |
0.05 |
SM4_CBC_Decryption |
256 |
0.05523221 |
0.05 |
SM4_ECB_Encryption |
1024 |
0.18686316 |
0.18 |
SM4_ECB_Decryption |
1024 |
0.21655959 |
0.21 |
SM4_CBC_Encryption |
1024 |
0.18520844 |
0.18 |
SM4_CBC_Decryption |
1024 |
0.21491673 |
0.21 |
注:該性能數據由極海實驗室獲得。
審核編輯 :李倩
-
mcu
+關注
關注
146文章
17173瀏覽量
351656 -
國密算法
+關注
關注
0文章
7瀏覽量
8563
原文標題:極海APM32F407系列MCU支持國密算法,助力國產安全可控
文章出處:【微信號:mcugeek,微信公眾號:MCU開發加油站】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論