基于FPGA的改进DES算法的实现

[10-10 20:38:44]   来源:http://www.88dzw.com  其它电路   阅读:8294

文章摘要: 本文对单轮迭代运算进行功能模块设计,实现过程调用了密钥生成模块和S盒模块。由于该设计的子密钥是独立产生的,彼此不相关,因此在一轮运算中,不需把子密钥输出作为下轮运算用来产生密钥的输入。子密钥通过控制信号直接控制子密钥生成模块产生分发,在一轮运算中只参与与E扩展后的数据进行“异或”运算,既节省了器件的管脚资源,又提高了算法的执行效率。同样,S盒在具体实例调用时,亦采用了此方法。单轮迭代变换仿真结果如图4所示。图中,ki_i为控制子密钥动态分发的控制信号;L_i和R_i是第i轮非线性变换的输入;R_i是经过轮函数一系列运算生成的数据与输入L_i“异或&

基于FPGA的改进DES算法的实现,标签:电路设计,http://www.88dzw.com
     本文对单轮迭代运算进行功能模块设计,实现过程调用了密钥生成模块和S盒模块。由于该设计的子密钥是独立产生的,彼此不相关,因此在一轮运算中,不需把子密钥输出作为下轮运算用来产生密钥的输入。子密钥通过控制信号直接控制子密钥生成模块产生分发,在一轮运算中只参与与E扩展后的数据进行“异或”运算,既节省了器件的管脚资源,又提高了算法的执行效率。同样,S盒在具体实例调用时,亦采用了此方法。单轮迭代变换仿真结果如图4所示。图中,ki_i为控制子密钥动态分发的控制信号;L_i和R_i是第i轮非线性变换的输入;R_i是经过轮函数一系列运算生成的数据与输入L_i“异或”,产生的结果作为输出R_o;把R_i直接赋值给输出L_o。

2.3 顶层模块的设计与实现
    顶层模块的功能就是调用单轮迭代运算模块,实现16轮次循环迭代,完成DES算法的总体设计。采用组合逻辑设计实现了数据的初始置换IP、轮函数f、子密钥的产生以及最后的逆初始置换IP-1。图5所示为DES算法的最终设计工程文件生成的原理图。

    顶层模块仅在数据装载控制信号load为高电平时,接收外部数据din;发送控制信号ready为高电平时,输出dout为有效数据。由于16轮迭代的每一轮运算都要用到上一轮的最后计算结果,并且每轮迭代都是调用单轮迭代运算模块。因此,设计了算法执行状态指示位dt,用来协调控制整个DES算法的各轮迭代运算结果的反馈赋值。采用ALTEra公司的CycloneII系列的EP2C8Q208C8器件作为平台,在Quartus II 8.0下对Verilog HDL代码进行综合,然后布局布线对其进行时序仿真,仿真结果完全符合时序要求,达到了设计目的。由表1给出的DES算法硬件实现性能对比结果表明,在资源使用和实现速度方面,本文算法实现方案都比较理想。DES系统的实现所占用的逻辑单元数仅为468,小于整个硬件资源的6%,可见设计资源得到了极大的优化利用。
    本文的创新点:在传统硬件实现资源优先方案的基础上,采取在轮函数内部设置流水线结构来提高系统的整体运行速度,既节省了硬件资源,又提高了系统的性能;简化了子密钥与外部密钥的生成关系,消除了各个子密钥之间的相关性,保证了在子密钥和数据异或运算的轮函数实现时,子密钥的动态分发。
    通过对整个DES算法的详细分析,提出了合理的分模块设计思想,并采用Verilog硬件描述语言对算法进行了验证仿真。设计文件最终生成的原理图可以完成DES算法的功能,对其进行适当改进,可以作为功能模块嵌入到实际系统中,实现通信数据的实时、可靠传输,具有一定的实际应用价值。
参考文献
[1] 王简瑜, 张鲁国. 基于FPGA实现DES算法的性能分析 [J]. 微计算机信息, 2007, 23(3-2): 217-218.
[2] MCLOONE M, MCCANNY J V. High-performance FPGA implementation of DES using a novel method for implementing the key schedule [J]. IEEE, Circuits DevICes System. 2003, 150(5): 373-378.
[3] 郑东, 李祥学, 黄征. 密码学—密码算法与协议[M]. 北京: 电子工业出版社, 2009.
[4] STALLINGS W. Cryptography and network security principles and practices[M]. Prentice Hall,1996.
[5] 姚霁, 刘建华, 范九伦. 一种密钥可配置的DES加密算法的FPGA实现[J].电子技术应用,2009,35(7):145-148.
[6] 张峰, 郑春来, 耶晓东. DES加密算法的FPGA实现[J].现代电子技术, 2008, 31(7):80-82.
 

上一页  [1] [2] [3] 


Tag:其它电路电路设计家电维修 - 单元电路介绍 - 其它电路