打印
[MM32软件]

MM32 支持硬件AES加密

[复制链接]
929|14
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
AES简介:
AES 硬件加速器使用 AES 算法可以对数据进行加密和解密。完全兼容实现以下标准:
• 由 FIPS 定义 (FIPS PUB 197, 2001 November 26) 的高级加密标准 (AES)
加速器使用 128bit 或 192bit 或 256bit 密钥加密和解密 128bit 的数据块。它也能执行密钥
扩展。当处理一些数据使用到相同的密钥时,为了简化 CPU 或者 DMA 的操作,加密或解
密密钥被存储在一个内部的寄存器组中。
默认情况下,电子密码本 (ECB) 被选中。密码分组链接 (CBC)、计算器模式 (CTR)、密文
反馈模式 (CFB) 和输出反馈模式 (OFB) 也被该硬件支持。
AES 支持输入和输出数据的 DMA 传输 (需要 2 个 DMA 通道)。



使用特权

评论回复
沙发
hanzhen654|  楼主 | 2020-4-19 15:26 | 只看该作者
AES 特征:
使用 AES Rijndael 块密码算法的加密/解密
• 兼容 NIST FIPS 197 AES 加密/解密算法的实现
• 内部 256 bit 寄存器存储加密和解密密钥 (8x32 bit 寄存器组)
• 支持五种链接模式
– 电子密码本 (ECB)
– 密码分组链接 (CBC)
– 计数器模式 (CTR)
– 密文反馈模式 (CFB)
– 输出反馈模式 (OFB)
• 密钥调度
• 针对解密进行密钥拓展
• 处理 128 bit 数据块
• 支持三种密钥长度
– 128bit
– 192bit
– 256bit
• 1x32 bit 输入缓存和 1x32 bit 输出缓存
• 仅支持 32 位数据宽度的寄存器访问
• 如果需要处理具有较高优先级的另一个消息,则挂起消息
• 自动数据流控制支持直接存储器访问 (DMA),使用 2 个通道,一个用于传入数据,一个
用于输出数据

使用特权

评论回复
板凳
hanzhen654|  楼主 | 2020-4-19 15:28 | 只看该作者
加密和密钥扩展
AES_KEYRx 寄存器用于存储加密或解密密钥。这 4 个 (192bit 密钥 6 个, 256bit 密钥
8 个) 寄存器按小端组织配置:寄存器 AES_KEYR0 必须加载密钥的 32 位 LSB。因此,
AES_KEYR3(AES_KEYR5, AES_KEYR7) 必须装载 128 位密钥的 32 位 MSB(192 位密
钥的 32 位 MSB, 256 位密钥的 32 位 MSB)。
注意:
1. 当密钥长度为 128bit, 192bit 或 256bit 时, AES_KEYR0 到 AES_KEYR3 都会被使用。
2. 当密钥长度为 192bit 或 256bit 时, AES_KEYR4 和 AES_KEYR5 也被使用。
3. AES_KEYR6 和 AES_KEYR7 仅在密钥长度为 256bit 被使用。
当 AES 被禁用 (AES_CR 寄存器的 EN = 0) 时,加密或解密的密钥必须存储在这些寄存器
中。它们的存储次序是固定的。
在模式 2(密钥扩展), AES_KEYRx 需要加载加密密钥。然后,使能 AES。在计算阶段结束
时,扩展密钥自动存储在 AES_KEYRx 寄存器中,覆盖以前的加密密钥。当扩展密钥可用
时, AES 由硬件禁用。如果软件需要将 AES 切换到模式 3(解密模式),则如果 AES_KEYRx
寄存器的内容对应于扩展密钥 (先前由模式 2 计算),则不需要再写入 AES_KEYRx 寄存器。
在模式 4(密钥扩展 + 解密), AES_KEYRx 寄存器仅包含加密密钥。在不对这些寄存器进
行任何写入的情况下,内部计算扩展密钥。

使用特权

评论回复
地板
hanzhen654|  楼主 | 2020-4-19 15:29 | 只看该作者
AES 链接算法
ES 硬件支持五种算法,当 AES 被禁用 (位 EN = 0) 时,可以通过 AES_CR 寄存器中的
CHMOD[2: 0] 位进行选择:
• 电子密码本 (ECB)
• 密码分组链接 (CBC)
• 计数器模式 (CTR)
密文反馈模式 (CFB)
• 输出反馈模式 (OFB)

使用特权

评论回复
5
hanzhen654|  楼主 | 2020-4-19 20:00 | 只看该作者
密码分组链接(CBC)
在密码分组链接 (CBC) 模式,在加密之前,每个明文块与先前的密文块进行异或。为了使
每个消息唯一,在第一块处理期间使用初始化向量 (AES_IVRx)。
在加密模式期间,数据交换管理之后初始化向量被异或;在解密模式期间,数据交换管理
之前初始化向量被异或。

CBC模式加密:


CBC模式解密:

使用特权

评论回复
6
hanzhen654|  楼主 | 2020-4-19 20:05 | 只看该作者
给定消息的暂停模式
如果需要处理具有较高优先级的另一个消息,则可以挂起消息。在该最高优先级消息的发送
结束时,可以在加密或解密模式中恢复暂停的消息。此功能仅在通过 CPU 访问 AES_DOUTR
和 AES_DINR 寄存器完成数据传输时可用。建议在 DMA 控制器管理数据传输时不要使用
它。
为了正确操作,必须在处理块结束时暂停消息 (在第四次读取 AES_DOUTR 寄存器之后并
且在下一个对应于要处理的下一个块的输入的 AES_DINR 写访问之前)。
在 AES_CR 寄存器中写入 EN = 0, AES 应该被禁用。软件必须读取 AES_IVRx,它包含在
消息中断之前用于链接异或操作的最新值。必须在已恢复中断消息时 (在禁用 AES 时) 写
入 AES_IVRx 寄存器来存储此值以供重用。

使用特权

评论回复
7
hanzhen654|  楼主 | 2020-4-19 20:09 | 只看该作者
计算器模式(CTR)
在计数器模式,除了用于使用密文或纯文本的异或运算的随机数值之外,还使用 32 位计数器 。CTR 模式加密:

CTR 模式解密:

使用特权

评论回复
8
hanzhen654|  楼主 | 2020-4-19 20:11 | 只看该作者
密文反馈模式 (CFB)
密文反馈模式类似于 CBC,可以将块密码变为自同步的流密码;工作过程亦非常相似, CFB
的解密过程几乎就是颠倒的 CBC 的加密过程。 CFB 模式加密流程分解为
• 将明文与 IV 的加密结果异或得到密文,如图 262所示
• 使用加密器加密初始化向量 (IV)
CFB 模式解密流程分解为
• 使用加密器加密初始化向量 (IV)
• 将密文与 IV 的加密结果异或得到明文,如图CFB 密文反馈模式加密:

CFB 密文反馈模式解密:

使用特权

评论回复
9
labasi| | 2020-5-9 17:07 | 只看该作者
非常感谢楼主分享

使用特权

评论回复
10
paotangsan| | 2020-5-9 17:09 | 只看该作者
非常感谢楼主分享

使用特权

评论回复
11
renzheshengui| | 2020-5-9 17:09 | 只看该作者
灵动单片机内嵌了这个模块吗

使用特权

评论回复
12
wakayi| | 2020-5-9 17:10 | 只看该作者
需要咱们自己写算法吗

使用特权

评论回复
13
wowu| | 2020-5-9 17:10 | 只看该作者
在上位机上可以做这个工作吗

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

73

主题

1766

帖子

2

粉丝