一、团队介绍

我们是学堂路三轮车队,报名编号卫CICC1449。这是我们分享的第六篇文章,此前的五篇文章链接如下:

非常感谢此开源论坛,确实收获满满!

二、作品简介

我们设计了基于NICE接口的AES加解密协处理单元,拓展了6条拓展指令,支持EBC、CBC、、CFB、OFB、CTR五种加密模式,和软件相比,速度提高约2000倍。整体框架如下:

image.png

工程设计主要分成三个部分:软件上指令拓展、接口调度、硬件协同优化。

1.软件上指令拓展

我们采用中等粒度方式设计了6条拓展指令,通过适当组合,可以支持五种加解密模式,具体的指令功能如下图:
image.png

2.接口调度

接口实现是工程的难点,需要非常仔细设计其中的数据流和控制流,期间碰到大小端转换问题、文本密钥缓存问题等,总体框图如下:
image.png

3.硬件协同优化

AES的硬件实现有许多开源的项目,但若要取得更高的性能,需要特别设计,比如轮密钥拓展的时序、状态机的控制、密钥缓存的设计等,总体框架如下:
image.png

三、测试结果

最后测试不同明文块下,ECB、CBC软件和硬件加解密的周期数,取得约2000倍的加速效果。
image.png

标签: AES

添加新评论