W55MH32 应用笔记: WIZnet W55MH32 的 AES(ECB/CBC)硬件加密功能说明
目录
W55MH32 应用笔记: WIZnet W55MH32 的 AES(ECB/CBC)硬件加密功能说明
1. 简介
WIZnet 的 W55MH32 是一款高性能微控制器,内建 ARM Cortex-M3 内核,并集成了硬件加密引擎。其支持的对称加密算法之一是 AES(高级加密标准),被广泛应用于现代嵌入式系统中的数据安全保护。本应用笔记介绍了 AES 算法的结构、W55MH32 中的工作流程、支持的工作模式(ECB 和 CBC),以及在 SSL/TLS 协议中的重要性和常见应用场景。
2. AES 算法概述
什么是 AES?
AES 是一种对称块加密算法,由 NIST 在 FIPS PUB 197 标准中发布。它以 128 位(16 字节)块 为单位进行加密,支持的密钥长度为 128、192 或 256 位。W55MH32 内建 AES-128(128 位密钥) 的硬件加密模块,支持 ECB(电子密码本) 和 CBC(密码块链接) 两种模式。
AES 的加密结构
AES 的运算基于一个 4×4 字节的状态矩阵。加密过程包括多个轮次,每轮主要由以下四个步骤组成:
- SubBytes(字节替换):通过固定的 S-Box 进行非线性替换。
- ShiftRows(行移位):对状态矩阵中的每行进行循环移位。
- MixColumns(列混合):在有限域上对每列执行矩阵乘法,实现扩散效果。
- AddRoundKey(轮密钥异或):状态矩阵与当前轮的密钥进行异或操作。
AES-128 总共执行 10 轮 加密;解密过程则为上述步骤的逆运算。
3. W55MH32 支持的 AES 加密模式
W55MH32 的硬件 AES 引擎支持以下标准模式:
🔹 ECB(电子密码本模式)
- 每个 128 位块独立加密。
- 简单、速度快、易于并行处理。
- 缺点:相同的明文块生成相同的密文块,容易暴露数据结构。
- 应用场景:适用于加密无结构或随机数据的情况。
🔹 CBC(密码块链接模式)
- 每个明文块在加密前与前一个密文块进行异或。
- 第一个块使用 初始化向量(IV)。
- 优点:避免相同明文生成相同密文,提升安全性。
- 应用场景:适合常规数据保护,TLS 通信,固件存储等。
4. AES 在 W55MH32 中的工作流程
W55MH32 的 AES 引擎可通过寄存器或 DMA 实现高速数据加解密,其典型使用流程如下:
加密/解密步骤:
- 参数初始化:
- 设置 AES 模式(ECB/CBC)。
- 加载 128 位密钥。
- 设置初始化向量(CBC 模式下)。
- 加载输入数据:
- 将 16 字节的明文写入 AES 硬件引擎。
- 触发加解密操作:
- 启动 AES 引擎进行运算。
- 读取输出数据:
- 获取加密或解密后的 16 字节结果。
硬件加速优势:
- 降低 CPU 运算负担,提升系统性能。
- 具备恒定时延,增强抗侧信道攻击能力。
- 高速且节能,适用于低功耗嵌入式设备。
5. AES 在 SSL/TLS 协议中的重要性
在 SSL/TLS 等安全协议中,AES 是数据加密的核心算法之一:
在 TLS 握手阶段:
- 客户端与服务器通过非对称加密(如 RSA、ECDHE)协商共享密钥。
- 握手完成后,使用 AES 对称加密算法 对数据传输进行加密保护。
AES 常用于以下 TLS 模式中:
- CBC 模式(TLS 1.0~1.2 常见)
- GCM 模式(TLS 1.2+ 的认证加密方案)
为什么 AES 对 TLS 至关重要:
- 提供高速、低延迟的数据加密能力。
- 与 HMAC 搭配可实现完整性保护。
- 已被所有现代网络通信协议广泛支持。
在嵌入式系统中,W55MH32 提供的硬件 AES-CBC 能高效支持 TLS 协议的负载加密部分,适用于嵌入式服务器、物联网安全通信等场景。

最低0.47元/天 解锁文章
2997

被折叠的 条评论
为什么被折叠?



