关于在FPGA上实现AES算法的笔记
2007-12-17 10:22
288 查看
针对 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。
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=510864
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。
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=510864
相关文章推荐
- 关于在FPGA上实现AES算法的笔记
- 关于在FPGA上实现AES算法的笔记
- 关于在FPGA上实现AES算法的笔记
- 关于在FPGA上实现AES算法的笔记
- 关于在FPGA上实现AES算法的笔记
- 关于在FPGA上实现AES算法的笔记
- 关于在FPGA上实现AES算法的笔记
- 关于在FPGA上实现AES算法的笔记
- 关于在FPGA上实现AES算法的笔记
- 关于在FPGA上实现AES算法的笔记
- 关于在FPGA上实现AES算法的笔记
- 关于在FPGA上实现AES算法的笔记
- 关于在FPGA上实现AES算法的笔记
- 关于在FPGA上实现AES算法的笔记
- 关于在FPGA上实现AES算法的笔记
- 【C++】【学习笔记】【未成功实现】关于指针的函数【very difficult】
- 深度学习FPGA实现基础知识5(网友一致认可的----Deep Learning(深度学习)学习笔记整理及完整版下载)
- 安卓开发笔记——关于开源组件PullToRefresh实现下拉刷新和上拉加载(一分钟搞定,超级简单)
- STL学习笔记,关于iterator的实现细节
- 转载论文关于fir滤波器的fpga实现