AES硬件运算单元

功能描述
AES单元主要功能如下:
支持解密密钥扩展
支持128bit/192bit/256bit的密钥长度支持ECBCBCCTRM支持DMA进行自动数据传输
支持GF(2^128)域下的乘法,支持GMAC

工作模式
AES有4种工作模式,通过配置MODE1:0]寄存器设置。
模式1:用存储在AES KEYRx寄存器中的密钥加密。
模式2:密钥扩展,把初始存储在AESKEYRx寄存器的加密密钥覆盖成在密钥扩展完成后存储在内部寄存器的密钥计算结果。
模式3:用存储在AESKEYRX寄存器中的解密密钥(预计算的)解密。
模式4:用存储在AESKEYRx寄存器中的加密密钥进行密钥扩展和解密。(在CTR模式下不使用)

首先通过配置MODEF1:01寄存器确定工作模式,MODE寄存器必须在AES使能前(EN=0时)才能够配置。KEY寄存器也应该在AES使能前配置。之后配置数据流处理模式寄存器CHMOD[1:0],在 CBC/CTR/GCM模式下还需要配置IV寄存器。
接着可以使能EN,在模式1/模式3/模式4下,AES模块等待软件往AESDINR寄存器写入输入数据,写4次写完128bit后AES开始计算。在模式2时,使能EN后就马上进行密钥扩展运算了。
计算完成后标志CCF会置起,如果CCFIE=1,会产生一个中断信号。软件再从AESDOUTR寄存器中读4次共128bit的结果。
AES还支持DMA模式。通过配置DMAOUTEN=1和DMAINEN=1,AES可以配合DMA连续的处理数据,无需CPU的介入。
错误标志RDERR和WRERR会在一次错误的读写操作时置起,如果ERRIE使能,还会产生相应的错误中断。AES在产生错误后还会继续正常工作。通过重置EN寄存器能够在任何时候复位AES模块。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小小菜鸡叶不凡

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值