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