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