AES加密解密算法的FPGA实现(二)

本文详细介绍了AES解密在FPGA中的实现,包括解密部分结构设计,如Simkeyreq、Time_adjust和Inv_comb模块,以及解密部分密钥扩展结构和运算控制。解密过程中,通过优化密钥扩展存储和运算顺序,实现了资源的有效利用。最终在CycloneIV和Spartan6 FPGA上验证,解密速率达到14.1Mbps,存在进一步优化的空间。
摘要由CSDN通过智能技术生成

解密部分结构设计


加密部分总体概述


加密部分算法如下:
这里写图片描述

解密部分与加密部分大体一致,故而Xorkey、key8bit、用于行变换的dpram,用于key8bit的sbox是通用的,row_trans和col_trans进行了部分改变。同时,考虑到解密部分的密钥异或模块使用的密钥与密钥扩展运算顺序相反,即第一次密钥异或模块使用的密钥是密钥扩展第十轮的结果,第二次则为第九轮结果……故采取先算出十轮密钥扩展结果并进行存储,轮变换时再进行读取并运算的方法。
解密部分用于密钥扩展有Simreq, Time_adjust与Keysave模块,存储输入数据使用了一片FIFO,逆Sbox运算使用Inv_sbox模块,同时增加了用于调整运算顺序的Inv_comb模块。
解密部分的所有模块如下:
Inv_storekey:用于存输入数据的FIFO
Simkeyreq:模拟keyreq变化
Key8bit:密钥扩展模块(与加密共用)
Sbox用于密钥扩展部分(共用)
Time_adjust:密钥读写地址控制
Keysave:用于存扩展秘钥的ram
Xorkey:密钥异或模块(共用)
Inv_sbox:逆S盒变换
Row_trans:行变换(部分共用)
Dpram:用于行变换的ram(共用)
Col_tran:列变换(部分共

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值