关于在FPGA上实现AES算法的笔记

针对 key 长度为 128 bits 的AES算法。

1. AES算法要做10轮运算,最基本的实现实现用11cycles。

2. 每轮加密要用到16个Sbox,每个Sbox要占用1个2048 bit 的ROM。key expansion要用4个Sbox。如果on-the-fly 地进行,那么一共要20个Sbox;如果提前做好key expansion,那么需要16个Sbox外加1408bits RAM来存放Subkey。

3. 在Altera FPGA上每个Sbox要占用一个ESB或EAB,在Xilinx FPGA上,每两个Sbox占用一个Block RAM(因为每个Block RAM都是dual-port的)。那么理论上,AES encryption 可以用一片Spartan-II XC2S100(10 Block RAMs)或者一片FLEX EPF10K200S (24 EABs)实现。

4.为了能在ACEX 1K30这种便宜的芯片(6 EABs)上实现,要把一轮分解为4步来做,这样只用4个Sbox,连同存放Subkey,一共用5 EABs。当然,完成一个128-bit block加密就需要41 cycles,吞吐量也降为1/4。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值