This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
此常见问题解答简要讨论了 mbedTLS 的配置和 MbedTLS 存储器封装的优化、MbedTLS 在中作为独立库提供、开箱即用 MCU_PLUS_SDK 08.06进行编程 传递函数 am243x、am263x、am273x 和 am64x
如何配置 MbedTLS 功能?
MbedTLS 功能由位于的顶层头文件控制 mcu_plus_sdk/source/networking/mbedtls_library/mbedtls_ti/alt_config.h
config 头文件 包含#define 宏以启用或禁用 MbedTLS 的以下功能:
注: 在配置文件或源代码中进行任何更改后、需要重建 MbedTLS 库。
如何减少 MbedTLS 库的存储器封装?
MbedTLS 库的存储器占用量可通过缩减 正在禁用 配置文件中的某些功能、如上所述。
从功能上讲、MbedTLS 可分为 TLS 层实施和加密模块支持。
在应用中使用时、MbedTLS 存储器占用量为:
版本构建(176.4 KB) |
|||
代码 |
RO 数据 |
RW 数据 |
总计(字节) |
127988. |
39289. |
9159. |
176436. |
上述存储器占用量是启用了大多数功能的开箱即用库的占用量。 如果禁用某些不需要的功能、则可以进一步减少存储器占用空间。 上图展示了该分布、将 MbedTLS 功能分为多个子部分。
SSL:
TI 器件 | 大小(以字节为单位) | ||
代码 | RO 数据 | RW 数据 | |
SSL TLS | 26298. | 9359. | 52. |
SSL 服务器 | 12450 | 5462. | 0 |
SSL 客户端 | 11464 | 5035. | 0 |
SSL 加密套件 | 218. | 6047. | 317. |
在大多数应用中、可能需要 TLS 客户端或 TLS 服务器功能、可以禁用其中一种 TLS 服务以减少存储器占用空间。 例如、 禁用 TLS 服务器功能会将库大小减小约23%(17.1 KB)、类似地、禁用 TLS 客户端将库大小减小约21%(16.4 KB)。 下图显示了 TLS/SSL 服务的存储器分布。
TI 器件 | 减小库大小 |
TLS 服务器 | 23% |
TLS 客户端 | 21% |
加密:
根据 alt_config.h 中启用的加密模块、 mbedTLS 加密的示例大小分布如下表所示:
评估板 | 大小(字节) |
AES | 13491. |
Bignum | 8422. |
ECP | 8277 |
X509 | 7719. |
ECP 曲线 | 7416. |
RSA | 5270 |
SHA1. | 5080 |
OID | 5016. |
第512章 | 4830. |
PK 解析 | 3757. |
SHA256 | 3066 |
MD5 | 2572. |
X509 | 2534. |
密码 | 1942年 |
GCM | 1652. |
密码换行 | 1631. |
RSA 内部文件 | 1562. |
ECDSA | 1422. |
dhm | 1408. |
PEM | 1191. |
CCM | 1142. |
熵 | 30. |
PK 后续处理 | 993. |
CTR DRBG | 964. |
PKCS12. | 922. |
ASN1解析 | 774. |
PKCS5. | 770 |
峰值 | 737. |
MD5 | 668 |
ECDH | 638. |
MD 缠绕 | 613. |
HMAC GRBG | 594. |
基数64 | 500 |
ASN1写入 | 384. |
它可以通过两种主要方式进一步优化:
例如、如果所选的密码套件为 MBEDTLS_TLS_RSA_WITH_AES_256_CBC_SHA256 , 仅要求对 RSA、AES、SHA 和其他实用程序的加密支持,而其他实用程序可以禁用,例如 HMAC、GCM、CCM、 ECDSA 等可被禁用、进一步节省~28.5 KB。
注: 上述数字仅用作示例演示、并不代表 MbedTLS 库的最佳优化情况。
如何将 MbedTLS 加密转移至定制实施或加密引擎?
MbedTLS 加密可转移到备用加密引擎或定制实施。 大多数加密模块都支持替代实施、通常用于将加密转移到硬件加密引擎(对于 am2x 器件、如 SA2_UL 和 DATH)。
要检查硬件支持的特性和驱动程序支持的特性、请检查以下各项:
1. SA2_UL - AM243x MCU+ SDK:SA2UL (TI.com)
2. DTHE - AM263x MCU+ SDK:DTHE (TI.com)
3. pka - AM243x MCU+ SDK:pka (TI.com)
卸载加密的简单步骤:
根据替代实施方案的效率和优化程度、性能吞吐量可以得到提高、例如在 am24x 上、加密转移到 SA2_UL 加密加速器上、使 AES-CBC 的性能提高~700%- 900%。
注: 本常见问题解答中显示的数据仅用于演示、通过 am243x 和 am263x 的 mcu_plus_SDK 08_06获取、这些数字不是最优化的、或不表示最佳的器件性能。