STM32U5 是ST在2021年推出的新一代超低功耗產(chǎn)品,不僅在工藝(40nm制程),性能(主頻160MHz),低功耗(超低功耗模式低至:110nA,動(dòng)態(tài)功耗低至:19μA/MHz )等多個(gè)方面都有顯著提升,在信息安全方面也增加很多新特性。
STM32U5目前已經(jīng)推出STM32U575、 STM32U585兩個(gè)系列,這兩者區(qū)別之一是 STM32U585芯片內(nèi)置了AES,SAES和PKA硬件加解密引擎, STM32U575只有軟件方式實(shí)現(xiàn)的加解密算法。
STM32U5的硬件加解密引擎相對(duì)于純軟件實(shí)現(xiàn)有多方面的優(yōu)勢(shì),比如:硬件SAES、PKA模塊具備側(cè)信道攻擊防御能力,有更高的安全性,更高的性能,更快的運(yùn)算速度,計(jì)算過程中不需要CPU參與,CPU可以處理其他更具有實(shí)時(shí)性要求的任務(wù),同時(shí)在存儲(chǔ)空間占用和功耗上也更有優(yōu)勢(shì)。
我們將從性能、功耗和存儲(chǔ)空間占用幾方面 ,將STM32U5硬件加解密引擎和軟件實(shí)現(xiàn)算法做一個(gè)對(duì)比。
通過EEMBC SecureMarkTLS評(píng)測(cè)跑分,對(duì)比軟硬件算法實(shí)現(xiàn)
我們使用 EEMBC SecureMarkTLS 對(duì)U575(純軟件)和U585(帶硬件加速引擎)分別進(jìn)行性能和能耗的對(duì)比。
EEMBC SecureMark是一個(gè)公認(rèn)標(biāo)準(zhǔn)化的、用于衡量加解密操作效率的基準(zhǔn)測(cè)試套件。在SecureMark中,EEMBC計(jì)劃支持對(duì)不同應(yīng)用領(lǐng)域的各種安全配置進(jìn)行測(cè)試和分析。其中第一個(gè)授權(quán)可用的是SecureMark-TLS,它專注于物聯(lián)網(wǎng)(IoT)邊緣節(jié)點(diǎn)的傳輸層安全(TLS)。
SecureMark-TLS基準(zhǔn)配置文件對(duì)用于安全互聯(lián)網(wǎng)通信的傳輸層安全(TLS)協(xié)議所需的加解密操作進(jìn)行建模。TLS協(xié)議提供了交換消息的機(jī)密性和完整性,并且可以對(duì)通信雙方進(jìn)行身份驗(yàn)證。SecureMark-TLS測(cè)量物理設(shè)備(可以是開發(fā)板或最終產(chǎn)品) 在執(zhí)行一組指定的加解密操作時(shí)的性能和功耗。功耗測(cè)量被換算成一個(gè)最終的單一分?jǐn)?shù),該分?jǐn)?shù)代表物聯(lián)網(wǎng)邊緣節(jié)點(diǎn)設(shè)備的TLS操作。
選擇STM32U575 RevB Core MHz:160 和STM32U585 RevB Core MHz:160 (我們選擇的是最大主頻 160MHz),可以看到測(cè)試的硬件環(huán)境如下圖所示:
測(cè)試的軟件和Crypto信息如下:
請(qǐng)注意藍(lán)框中標(biāo)出測(cè)試的算法庫和版本:Software Library(ies) and Version: mbedTLS 2.4.2。
mbedTLS 現(xiàn)已被arm公司收購(gòu)并由arm技術(shù)團(tuán)隊(duì)進(jìn)行維護(hù)更新,是對(duì)TLS和SSL協(xié)議實(shí)現(xiàn)的算法庫。mbedTLS的目標(biāo)是:易于理解,使用,集成和擴(kuò)展。它主要是面向小型嵌入式設(shè)備,代碼緊湊,而且執(zhí)行效率高,可以說是行業(yè)內(nèi)最小巧的SSL加密算法庫。并且mbedTLS是完全OpenSource的,支持Apache 2.0 license 或者GPL 2.0 license雙重許可,可以自由應(yīng)用于商業(yè)項(xiàng)目中。
在 U575 上,我們直接運(yùn)行的是開源的mbedTLS 2.4.2,算法部分是開源的mbedTLS 2.4.2里面實(shí)現(xiàn)的軟件算法; 在U585上,同樣運(yùn)行的是開源的mbedTLS 2.4.2,但算法部分使用U585自帶的硬件加解密引擎。
在下圖的測(cè)試結(jié)果中,SecureMark-TLS 是對(duì)整體功耗的跑分總評(píng),SecureMark-TLS Performance 是對(duì)整體性能的跑分總評(píng)。后面我們又分別列出了不同算法的性能和功耗的分?jǐn)?shù)。
Benchmark跑分總評(píng)
說明:
●測(cè)試中硬件加速的部分采用mbedtls ALT function方式,由于數(shù)據(jù)存儲(chǔ)方式,API等原因,并未使U585 HW crypto性能得到最大化利用;
●實(shí)際應(yīng)用程序如果直接調(diào)用Driver,則可有更高的性能和能耗表現(xiàn)。
Mbedtls軟件作為運(yùn)行的代碼進(jìn)行benchmark,對(duì)比U575純軟件和U585帶硬件加速的性能和能耗。
Benchmark子項(xiàng):AES 性能 + 能耗
Benchmark子項(xiàng):SHA 性能 + 能耗
Benchmark子項(xiàng):ECC 性能 + 能耗
硬件加解密引擎(HAL驅(qū)動(dòng))與Cryptolib軟件算法對(duì)比
軟件算法部分采用ST 的 X-CUBE-CRYPTOLIB作為對(duì)比的對(duì)象。X-CUBE-CRYPTOLIB是基于STM32的軟件算法庫,支持STM32全系列產(chǎn)品,提供多種主流算法的實(shí)現(xiàn),針對(duì)不同的內(nèi)核進(jìn)行了算法優(yōu)化,支持多種使用的配置模式(高性能、小代碼量等選擇)。硬件引擎的使用則通過直接調(diào)用HAL驅(qū)動(dòng)來完成。
我們通過以下幾個(gè)常用的典型算法進(jìn)行對(duì)比,比較的內(nèi)容為軟硬件實(shí)現(xiàn)的性能和存儲(chǔ)空間占用情況:
●AES CBC加密和解密
●RSA加密和解密
●ECDSA簽名和驗(yàn)簽
? 性能對(duì)比
AES CBC 數(shù)據(jù)流加解密:每秒數(shù)據(jù)處理能力 (以8KB數(shù)據(jù)做測(cè)試, 每次處理大小分別為128, 512, 1024, 2048字節(jié)的結(jié)果)
RSA加解密
ECC簽名驗(yàn)簽
? 存儲(chǔ)空間占用情況
存儲(chǔ)空間的占用和選擇的編譯器、編譯器版本、編譯選項(xiàng)和配置等很多因素有關(guān),下面的數(shù)據(jù)僅供參考。
Memory Footprint HAL + HW vs. Cryptolib SW
硬件加解密引擎優(yōu)勢(shì)總結(jié)
綜上所述,硬件加解密引擎具有更高安全性、更高性能、更低功耗和更少的系統(tǒng)資源需求。
? 更高安全性
●SAES和PKA引擎具備攻擊防御能力(側(cè)信道攻擊,錯(cuò)誤注入攻擊)
●HUK+SAES提供基于硬件的安全存儲(chǔ)功能,防克隆,防軟件邏輯攻擊
? 更高性能
●相較于軟件實(shí)現(xiàn) x5 倍的數(shù)據(jù)AES加解密處理能力
●相比軟件實(shí)現(xiàn)快5~10倍的簽名驗(yàn)簽操作
●十倍的Hash運(yùn)算
? 更低功耗
●完成相同運(yùn)算所消耗的能量只有軟件運(yùn)算的幾分之一
? 更少系統(tǒng)資源需求
●運(yùn)算過程中CPU可以處理其他高優(yōu)先級(jí)事物
●運(yùn)算無需占用額外Flash與RAM空間