首 页文档资料下载资料维修视频包年699元
请登录  |  免费注册
当前位置:精通维修下载 > 文档资料 > 家电技术 > 单元电路介绍 > 其它电路
基于FPGA的改进DES算法的实现
来源:本站整理  作者:佚名  2011-07-08 07:56:50



    此设计方案消除了子密钥之间的相关性,便于子密钥在迭代过程中动态分发。同时,简化了子密钥的产生,有效地节约了硬件资源。
2.2 单轮迭代运算模块
    DES算法是典型的迭代分组密码算法,实现过程的核心是16轮次迭代运算。16轮迭代运算过程完全相同,只是轮迭代的输入参数不同。迭代运算中的轮函数f是非线性的,它是每轮实现扩散和混淆的关键。其中,E盒扩展置换和P盒置换都是线性变换,而S盒代换部件是一个十分复杂的非线性函数,正是经过它的非线性变换才使明文实现了较好的混乱,达到加解密的效果,从而具有较强的安全性。因此,S盒设计在整个DES算法中是非常关键的。
    S盒的功能描述:如果用a1a2a3a4a5a6表示6 bit输入,那么4 bit的输出值可以通过查表得到,行的a1a6索引的表示与列的a2a3a4a5索引表示均为二进制数。因此,建立S盒模型时,一般采用case语句来实现。用case多分支选择语句实现S盒有两种方法:(1)直接使用输入为6变量,输出为4变量的case语句对S盒描述,形成一个4 bit 64个存储空间的表。此方法可读性强,但8个S盒需要8×64个存储空间,占用大量资源,综合效率低,速度慢,不利于整个系统设计实现; (2)由于S盒是一个4×16的二维数组,使用双重case语句,外层使用2个变量,对应S盒输入的第1、6位。内层使用4个变量,对应S盒输入的第2、3、4、5 位。采用双重case语句可以直接定位输出结果。该方案可充分利用FPGA的内部资源,提高综合效率,加快算法执行速度。经过综合后,单个S盒的实现仅占用24个逻辑单元,相对于直接使用6个变量的case语句的实现,占用资源约减少50%。
     本文对单轮迭代运算进行功能模块设计,实现过程调用了密钥生成模块和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] 

关键词:

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分)
Copyright © 2007-2017 down.gzweix.Com. All Rights Reserved .
页面执行时间:217,914.10000 毫秒