
探秘STM32U5安全特性|硬件加解密引擎与软件算法对比 ' r1 r& ~# g" J8 E1 D![]() STM32U5 是ST在2021年推出的新一代超低功耗产品,不仅在工艺(40nm制程),性能(主频160MHz),低功耗(超低功耗模式低至:110nA,动态功耗低至:19μA/MHz )等多个方面都有显著提升,在信息安全方面也增加很多新特性。 STM32U5目前已经推出STM32U575、 STM32U585两个系列,这两者区别之一是 STM32U585芯片内置了AES,SAES和PKA硬件加解密引擎, STM32U575只有软件方式实现的加解密算法。6 t) w3 t4 x4 }. w1 [; A STM32U5的硬件加解密引擎相对于纯软件实现有多方面的优势,比如:硬件SAES、PKA模块具备侧信道攻击防御能力,有更高的安全性,更高的性能,更快的运算速度,计算过程中不需要CPU参与,CPU可以处理其他更具有实时性要求的任务,同时在存储空间占用和功耗上也更有优势。0 O! `8 ]# B" `" s7 e) `: N6 I 我们将从性能、功耗和存储空间占用几方面 ,将STM32U5硬件加解密引擎和软件实现算法做一个对比。 通过EEMBC SecureMarkTLS评测跑分,对比软硬件算法实现 C9 [: M: Y: X p( c& n) r2 z. h我们使用 EEMBC SecureMarkTLS 对U575(纯软件)和U585(带硬件加速引擎)分别进行性能和能耗的对比。$ V" ~! w. W9 K% R$ P# }5 ` EEMBC SecureMark是一个公认标准化的、用于衡量加解密操作效率的基准测试套件。在SecureMark中,EEMBC计划支持对不同应用领域的各种安全配置进行测试和分析。其中第一个授权可用的是SecureMark-TLS,它专注于物联网(IoT)边缘节点的传输层安全(TLS)。 SecureMark-TLS基准配置文件对用于安全互联网通信的传输层安全(TLS)协议所需的加解密操作进行建模。TLS协议提供了交换消息的机密性和完整性,并且可以对通信双方进行身份验证。SecureMark-TLS测量物理设备(可以是开发板或最终产品) 在执行一组指定的加解密操作时的性能和功耗。功耗测量被换算成一个最终的单一分数,该分数代表物联网边缘节点设备的TLS操作。想了解 SecureMark-TLS 测试套件的更多信息 ,请访问 https://www.eembc.org/securemark/ ✦ EEMBC SecureMarkTLS跑分对比 点击链接访问https://www.eembc.org/securemark/scores.php ,可以看到 ST发布的使用 EEMBC SecureMarkTLS测试套件的测试报告。) h! F1 l# C: p; Q6 V0 L 选择STM32U575 RevB Core MHz:160 和STM32U585 RevB Core MHz:160 (我们选择的是最大主频 160MHz),可以看到测试的硬件环境如下图所示: ![]() ![]() 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自带的硬件加解密引擎。5 `% o9 X8 d5 P9 P; @ 在下图的测试结果中,SecureMark-TLS 是对整体功耗的跑分总评,SecureMark-TLS Performance 是对整体性能的跑分总评。后面我们又分别列出了不同算法的性能和功耗的分数。 Benchmark跑分总评! W3 X* L* R& q ![]() 测试中硬件加速的部分采用mbedtls ALT function方式,由于数据存储方式,API等原因,并未使U585 HW crypto性能得到最大化利用;# e: Q% Q: h# | 实际应用程序如果直接调用Driver,则可有更高的性能和能耗表现。 V n6 A" L: n 0 j( ?& w0 s4 Z$ H7 k: z S Mbedtls软件作为运行的代码进行benchmark,对比U575纯软件和U585带硬件加速的性能和能耗。 Benchmark子项:AES 性能 + 能耗; E( Q* t4 b+ u ![]() ![]() ![]() 硬件加解密引擎(HAL驱动)与Cryptolib软件算法对比 6 N b! b: U7 A7 r7 `8 M软件算法部分采用ST 的 X-CUBE-CRYPTOLIB作为对比的对象。X-CUBE-CRYPTOLIB是基于STM32的软件算法库,支持STM32全系列产品,提供多种主流算法的实现,针对不同的内核进行了算法优化,支持多种使用的配置模式(高性能、小代码量等选择)。硬件引擎的使用则通过直接调用HAL驱动来完成。! a6 c. x" G6 Z( j( y' v7 U 我们通过以下几个常用的典型算法进行对比,比较的内容为软硬件实现的性能和存储空间占用情况:5 }, a3 d* }" v0 P' O+ w- Y2 s ·AES CBC加密和解密 ·RSA加密和解密0 y/ C. B a& f* N2 c* R9 t6 e ·ECDSA签名和验签4 l2 V3 v7 [7 | % `3 y% z4 F- ]5 S1 q# s W5 h 6 O. ^$ a$ ^1 v ✦ 性能对比 AES CBC 数据流加解密:每秒数据处理能力 (以8KB数据做测试, 每次处理大小分别为128, 512, 1024, 2048字节的结果)- [$ t3 a& l6 x5 ]5 d ![]() ![]() ![]() : b9 L0 A! R/ q; G X 存储空间的占用和选择的编译器、编译器版本、编译选项和配置等很多因素有关,下面的数据仅供参考。' ^4 ?1 C3 _! |: G X-CUBE-CRYPTOLIB 的更多详细数据,请参考https://wiki.stmicroelectronics. ... Library_Performance$ \& B& h! j4 K- n0 T Memory Footprint HAL + HW vs. Cryptolib SW ![]() ![]() 硬件加解密引擎优势总结 ; V& X8 x( \4 d$ S* ?8 B; F: W综上所述,硬件加解密引擎具有更高安全性、更高性能、更低功耗和更少的系统资源需求。$ P- S; W7 H% N# |" d! h( g* t0 e ✦ 更高安全性 SAES和PKA引擎具备攻击防御能力(侧信道攻击,错误注入攻击) HUK+SAES提供基于硬件的安全存储功能,防克隆,防软件逻辑攻击8 z% y2 X ~( L' o ✦ 更高性能5 w" {9 q( G2 [ r$ v; Z& D 相较于软件实现 x5 倍的数据AES加解密处理能力 相比软件实现快5~10倍的签名验签操作 十倍的Hash运算4 z& `% I0 s, i& q7 j J ✦ 更低功耗 完成相同运算所消耗的能量只有软件运算的几分之一5 @! I5 r3 u, ]8 b6 w; { ✦ 更少系统资源需求 运算过程中CPU可以处理器其他高优先级事物( Q9 ~5 _: `% M& ~) h 运算无需占用额外Flash与RAM空间4 U5 P, U6 M0 w; o4 H, O. s+ O 3 B. t* j' a5 W- B7 P; c/ ^ |
U5的性能还是不错的,关注一下安全方面1 w9 M, @( d. V& j |
STM32U5低功耗测试
STM32怎么选型
内存配置的艺术:STM32为嵌入式系统高端UI优化RAM和闪存的三大策略
STM32U5 系列使用 LPBAM 进行功耗优化
【STM32U545】实现CAN数据收发
【我的STM32U5 项目秀】+04-MPU6050在STM32U5上的移植
实战经验 | 基于 STM32U5 创建 USBx_CustomHID 通信
STM32U5 x E-BIKE,记录你的骑行多巴胺
基于STM32U5系列TIMER+DMA+DAC应用经验分享
实战经验 | 基于 STM32U5 片内温度传感器正确测算温度