资源描述:
《des加密算法的硬件实现》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、DES加密算法的硬件实现//.paper.edu.cn-1-DES加密算法的硬件实现王厚荣北京邮电大学信息与通信工程学院,北京(100876)摘要:本文通过对DES算法的简单介绍,了解其基本的工作原理,利用硬件描述语言(VerilogHDL)和Xilinx的ISENavigator仿真平台来实现。DES加密算法是一种对称的加密算法,具有很高的可靠性,应用非常广泛。而作为一种硬件描述语言,VerilogHDL是在C语言的基础上发展而来,它具有简洁、优美而且易学的特点,利用它可以缩短硬件设计的周期,提高设计的速度和质量,同时利用Xilinx提供的仿真平台
2、ISE,可以逼真的模拟硬件环境,芯片特性。而其提供的各种基本模块和调试工具可以简化设计,提高设计的可靠性。由于硬件本身的一些特性,如XilinxFPGA是基于查找表结构(LUT),可以充分利用这些特性来实现设计的优化,设计出的硬件可以以更少的硬件资源来达到更快的速度。关键词:VerilogHDL;DES;LUT中图分类号:TP371.引言随着通信技术和网络技术的飞速发展,对于传输过程中数据的安全性的要求已经越来越迫切,加密算法应运而生,人们提出各种的数据加密算法,但基本的包括两种:对称和非对称加密[1]。1972年美国IBM公司提出了DES加密算法,
3、它是对称密码体制,可同时对大量数据进行快速加密。具有很好的加密效果,是目前为止比较可靠的加密算法。近年来,随着硬件描述语言的快速发展,使得硬件的设计变得简单、易学,考虑到硬件本身的一些特点,如进行很快的逻辑运算,运算速度快等,非常适合实现DES加密算法,因为DES有大量的逻辑运算,而且数据量大,需要很快的速度,从安全的方面考虑,利用硬件来实现DES,可以更加保证加密的安全和可靠。采用Xilinx公司提供的仿真环境ISE,包括其自身提供的各种功能,可以使设计变得更加的快捷。2.DES加密原理DES算法全称为DataEncryptionStandard,
4、即数据加密算法,它是IBM公司于1975年研究成功并公开发表的。DES算法的入口参数有三个:Key、Data、Mode。其中Key为8个字节共64位,是DES算法的工作密钥;Data也为8个字节64位,是要被加密或被解密的数据;Mode为DES的工作方式,有两种:加密或解密。DES算法是这样工作的:如Mode为加密,则用Key去把数据Data进行加密,生成Data的密码形式(64位)作为DES的输出结果;如Mode为解密,则用Key去把密码形式的数据Data解密,还原为Data的明码形式(64位)作为DES的输出结果。具体工作过程如下:DES算法把6
5、4位的明文输入块变为64位的密文输出块,它所使用的密钥也是64位,整个算法的主流程如下:其功能是把输入的64位数据块按位重新组合,并把输出分为L0、R0两部分,每部分各长32位,其置换规则如下[2]:58,50,42,34,26,18,10,2,60,52,44,36,28,20,12,4,62,54,46,38,30,22,14,6,64,56,48,40,32,24,16,8,57,49,41,33,25,17,9,1,59,51,43,35,27,19,11,3,//.paper.edu.cn-2-61,53,45,37,9><>29,21,1
6、3,5,63,55,47,39,31,23,15,7,即将输入的第58位换到第1位,第50位换到第2位,……,依此类推,最后一位是原来的第7位,L0、R0则是换位输出后的两部分。L0是输出的左32位,R0是右32位,例:设置换前的输入值为D1D2D3……D64,则经过初始变换后的结果为:L0=D58D50……D8;R0=D57D49……D7。经过16次迭代运算后,得到Ll6、Rl6,将此作为输入,进行逆置换,即得到密文输出。逆置换正好是初始置换的逆运算。DES的每轮迭代由如下函数完成:R[i]=L[i-1]xorf(R[i-1],k[i]);L[i]
7、=R[i-1];其中,轮密钥Ki为48bit,轮输入R为32bit,R首先被扩展为48bit,其中将R的16bit各重复一次。扩展后的48bit再与子密钥Kj异或,然后通过一个S盒,产生一个32bit的输出。其中函数f是通过8个S-box来实现的,每个S-box输入长为6比特,输出为4比特,它可以实现非线性变换,是整个算法的关键。DES加密算法如图1所示:3.DES硬件实现3.1DES设计思想DES的硬件实现可以分为三个模块:密钥产生模块,一轮加/解密模块,最后由一个控制模块来实现顶层模块并把其它两个模块组合起来,密钥模块产生所需要的16个密钥,一轮
8、加/解密模块来实现一轮的变换,顶层控制模块来控制对数据进行加密还是解密并对明文进行置换,因为DES加解密所用