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