小舍YZ 发表于 2017-8-25 15:22:35

DES加密系统设计与核心设计

DES加密系统设计

整个系统包括DES加密核心,UART通信接口和BLOCKRAM存储模块三大功能块,DES加密核心即对DES算法的硬件实现,以在合理的资源占用下实现尽可能高的性能为目标;而UART通信接口则负责加密核心与外界通信链路之间的数据吞吐。由于外界通信链路的速率不尽相同,如何协调加密核心与通信接口之间的数据率也是一个值得考虑的问题。
FPGA内部的B1ockRAM主要起到两方面作用:1、缓冲数据;2, UART与DES模块之间的位宽转换。

DES加密核心设计

DES加密算法以多轮的密钥变换轮函数和密钥十数据运算轮函数为特征,与之相对应的硬件实现,既可以通过轮函数的16份硬件拷贝,达到深度细化的流水线处理,实现性能上的最优;也可以通过分时复用,重复调用一份轮函数的硬件拷贝,以时间换空间,从而得到硬件资源占用上的最小化。究竟选择怎么样的实现方式,根据实际硬件条件进行了选择。
1 性能优先方案:

采用循环全部打开和流水线结构来设计。循环全部打开后,实现全部16个轮函数的硬件级联,只要一个时钟周期就可以完成一个数据块的加密或解密;通过多占很大的空间来换得速度上的大幅度提高,然后再在每轮的中间加上寄存器来实现流水线。在第一时钟周期,第一块数据经过第一轮处理存入寄存器1中。在下一个时钟周期,寄存器1中的结果经过第二轮处理存入寄存器2中;同时,第二块数据可以经过第一轮处理存入寄存器1。这样,多块数据实现了同时处理,使得加/解密速度可以提高近16倍,确实让性能有了大幅度的提高,但是由于实验平台上搭载的Spartan IIE FPGA总资源为10万门左右,一味地追求性能无疑是不切实际的。后来的综合验证肯定了这一观点。
2 资源优先方案:

与性能优先方案相反,资源优先仅硬件实现一套密钥变换轮函数和密钥+数据运算轮函数,通过反复16次调用这一硬件结构来实现一次DES加密运算。这在大大减少硬件开销的同时也在性能上作出了相应的牺牲。
基于性能和资源占用的综合考虑,采取了以资源优先方案为基础的实现形式,通过在轮函数内部设置3级流水线,提高整体处理的速度性能;将数据+密钥轮函数和密钥变换函数在硬件上单独实现,减少了相邻流水线级间的逻辑复杂度。



页: [1]
查看完整版本: DES加密系统设计与核心设计