 嵌(qian)入式系(xi)統中基于(yu)硬件加速器的(de)AES-GCM加密性(xing)能優化實踐
							時間:2025-04-07      來源:華清遠見
							嵌(qian)入式系(xi)統中基于(yu)硬件加速器的(de)AES-GCM加密性(xing)能優化實踐
							時間:2025-04-07      來源:華清遠見 
							單片機的(de)內置硬(ying)件(jian)(jian)加(jia)(jia)(jia)速(su)器(qi)(qi)(qi)是為了提(ti)高特定任務的(de)處(chu)理速(su)度(du)和效率而設計的(de)專用硬(ying)件(jian)(jian)模塊(kuai)。這些加(jia)(jia)(jia)速(su)器(qi)(qi)(qi)可以顯著減(jian)輕(qing)CPU的(de)負擔(dan),提(ti)高系統的(de)整體性(xing)能。常見的(de)硬(ying)件(jian)(jian)加(jia)(jia)(jia)速(su)器(qi)(qi)(qi)包括(kuo)DMA控(kong)制器(qi)(qi)(qi)、硬(ying)件(jian)(jian)乘法器(qi)(qi)(qi)、硬(ying)件(jian)(jian)除(chu)法器(qi)(qi)(qi)、加(jia)(jia)(jia)密/解(jie)密加(jia)(jia)(jia)速(su)器(qi)(qi)(qi)、哈希算法加(jia)(jia)(jia)速(su)器(qi)(qi)(qi)等(deng)。下面我們一起來看下加(jia)(jia)(jia)密/解(jie)密加(jia)(jia)(jia)速(su)器(qi)(qi)(qi)。
1. AES的誕生與核心特點
取代(dai)DES的必然性
AES的前(qian)身是DES(Data Encryption Standard),但隨著計算(suan)(suan)機算(suan)(suan)力(li)的提升(sheng),DES的56位密鑰(yao)長度已無(wu)法(fa)(fa)抵御暴力(li)破(po)解。1997年NIST發起公開競賽(sai),最終比(bi)利時密碼學家設計的Rijndael算(suan)(suan)法(fa)(fa)勝出,成為AES標(biao)準。
核心優(you)勢(shi)
·密(mi)鑰靈活(huo):支持128、192、256位三種密(mi)鑰長度,安全性遞增(zeng)。
·高效加(jia)解密:基于(yu)分組密碼設計,適合硬件加(jia)速和(he)并行計算。
·抗攻(gong)(gong)擊性強:至今無已知的實(shi)用(yong)化數學(xue)漏洞攻(gong)(gong)擊手段。
2. AES算法結構與加密流程
AES將(jiang)明(ming)文劃分為(wei)128位(wei)(wei)(16字節(jie))的塊進行加(jia)密,核心(xin)流程包含多輪(lun)迭代的替代和置換操作。以128位(wei)(wei)密鑰為(wei)例,加(jia)密過程共10輪(lun)(不(bu)同(tong)密鑰長度輪(lun)數不(bu)同(tong))。
2.1 加密核心步(bu)驟
.初始輪密鑰加(AddRoundKey)
將(jiang)明文(wen)塊(kuai)與(yu)首輪密(mi)鑰按字節(jie)異或(XOR),作為后續處理的輸入(ru)。
.輪(lun)函數迭代(共10輪(lun))
每(mei)輪包(bao)含四個(ge)關鍵操(cao)作:
·字節(jie)(jie)代換(SubBytes):通過(guo)S盒(非線性(xing)替換表(biao))將每個字節(jie)(jie)映(ying)射為新值,提(ti)供混淆性(xing)。
·‌行(xing)(xing)移位(ShiftRows):將狀態矩陣的每(mei)行(xing)(xing)循(xun)環左移不(bu)同位數(shu)(第0行(xing)(xing)不(bu)移,第1行(xing)(xing)移1位,依此類推),破(po)壞數(shu)據局部性。
·列混淆(MixColumns):對每列進行矩陣乘法運(yun)算,擴散比特間的關聯性。
·輪密鑰加(AddRoundKey)‌:將(jiang)當前(qian)輪密鑰與狀(zhuang)態矩陣異或(huo)。
.最終輪(省(sheng)略MixColumns)
第10輪僅執(zhi)行SubBytes、ShiftRows和AddRoundKey,提升算法安全性。
2.2 密鑰擴展(Key Expansion)
通過密(mi)鑰擴展算法,將初始密(mi)鑰生成多輪使用的(de)子密(mi)鑰:
·輪常(chang)量(liang)(Rcon)‌:每輪使用不(bu)同的常(chang)數(shu)消除(chu)對稱性。
·S盒替換與循環移(yi)位:確保子密(mi)鑰不可預測。
3. AES的工作模式
為(wei)加(jia)密長于(yu)128位(wei)的(de)數(shu)據,AES需結合工作模式(shi)(shi)‌,常見模式(shi)(shi)包括:
·ECB(電子(zi)密碼(ma)本):每個塊(kuai)獨(du)立加(jia)密,簡(jian)單但相同明文(wen)生成相同密文(wen),易遭模式分析攻擊。
·CBC(密碼塊鏈(lian)接):引入初始化向量(IV),前一塊密文(wen)與當前明文(wen)異或后(hou)再加(jia)密,提(ti)升安全性。
·CTR(計數(shu)器模式):將計數(shu)器加密后與明文異或,支持并行計算,適合實時流數(shu)據。
·GCM(伽羅瓦/計數器模式(shi)):結合CTR加密和GHASH認證,實現(xian)加密與完整性校驗(如TLS 1.3標準)。
4. AES-GCM算法與硬件加速原理
4.1 算(suan)法流程
·加密過程:明文(wen)通(tong)過AES-CTR模式加密,同時使用Galois域(yu)乘(cheng)法生成認證標簽(qian)(TAG)。
·認證(zheng)機制:關(guan)聯數據(AAD)和密(mi)文共(gong)同參(can)與TAG計算,確保數據完整性。
4.2 硬件加速優勢
·并行計算(suan)‌:硬件模塊(kuai)獨立(li)處理加解密(mi)與認證,減少CPU占(zhan)用。
·時鐘周期優化:專用電路實(shi)現AES輪函數,速(su)度提升10倍以上(對比軟件實(shi)現)。
5. STM32硬件加密模塊解析
5.1 支持型(xing)號
·STM32H7/H5系列:集成AES-256硬件加速器(qi),支持GCM模式。
·L4+/U5系列:部分型(xing)號(hao)支持AES-128/256,需結合DMA優化吞(tun)吐量。
5.2 關(guan)鍵(jian)寄存器(qi)與(yu)功(gong)能
·AES_CR‌:控(kong)制模式(如GCM)、密鑰(yao)長(chang)度、加解密方(fang)向。
·AES_DIN/DOUT:數(shu)據輸(shu)(shu)入/輸(shu)(shu)出(chu)寄存(cun)器,支(zhi)持(chi)DMA傳輸(shu)(shu)。
·AES_IVR:初(chu)始化(hua)向量(IV)配置,需(xu)確保唯一性。
6.典型應用案例
案例1:安全固件升級(ji)
·使用AES-GCM加(jia)密(mi)固件(jian)鏡像,通過硬件(jian)加(jia)速實現(xian)快(kuai)速解密(mi)與(yu)認(ren)證(zheng)。
·密鑰通過STM32的OTP(One-Time Programmable)區域保護。
案例2:工(gong)業傳感(gan)器網絡
·傳感器節點通過硬件加(jia)速(su)實時加(jia)密(mi)采集數據,確(que)保傳輸到云端的機密(mi)性。

