ImageVerifierCode 换一换
格式:DOCX , 页数:20 ,大小:513.98KB ,
资源ID:6625306      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/6625306.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于verilogHDL的DES加密算法设计及仿真验证.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

基于verilogHDL的DES加密算法设计及仿真验证.docx

1、基于verilogHDL的DES加密算法设计及仿真验证摘要现在的时代是一个信息的时代,信息与我们每一个人都密切相关,信息的安全性关乎每一个人的切身利益,从而人们要求信息在传输过程中要绝对的安全。信息的安全和保密性对每个人都至关重要,从而出现数据加密技术来解决这一问题,因而研发出DES加密算法,它的全称为Data Encryption Standard,也称为数据加密标准,加密和解密使用相同的密码,是对称密码体制。DES至今还在我们的生活中广泛应用,因此值得研究。本论文通过VerilogHDL语言编码来实现DES加密算法的仿真与验证,介绍DES加密技术研究背景及意义,DES加密算法工作原理,DE

2、S加密算法模块设计与仿真,以及使用Modesim软件进行仿真和XILINX ISE软件进行模块综合。该论文采用自顶向下的设计思想,将DES加密算法分为六个模块:密钥产生模块、一次轮运算模块、控制模块、初始置换模块、逆初始置换模块和顶层调用模块。通过Modesim软件对每个模块的仿真和预期设计的一样,本设计能够正确的实现加密解密功能。关键字:DES;Modelsim;XILINX ISE;VerilogHDL;加密解密AbstractPresent era is an era of information, information and each of us is closely relate

3、d to the security of information relating to the vital interests of each individual, so it requires information to be absolute secure during transmission. Data Encryption technology is an important weapon to solve information security and plays an increasingly important role in social life. DES call

4、ed the Data Encryption Standard is a symmetric cryptosystem. Currently, DES encryption and decryption algorithms are still widely used in satellite communications set-top boxes video transmission and other large amounts of data transmission service.In this paper, VerilogHDL language coding realize s

5、imulation and verification of DES encryption algorithm. This paper describes sequentially background of DES encryption technology,principle of DES encryption algorithm,design of DES encryption and decryption module and usesModelsim software to simulationand XILINX ISE software to integrated. design

6、of the paper uses top-down design method which is divided into six modules: control Module, key generation module, Round operation module, Initial permutation module, reverse initial permutation module and a top-level call module. By Modesim as software design simulation and expectations of each mod

7、ule, the design can be implemented correctly encryption and decryption functions.Key word: DES;Modelsim;VerilogHDL;Encryption and decryption引言数据加密标准(DES,DataEncryptionStandard)也称为数据加密算法(DEA,DataEncryptionAlgrithm)(ANSI)和DEA-1(ISO),是近20年来使用的加密算法。后来,人们发现DES在强大攻击下太脆弱,因此使DES的应用有所下降。但是,任何一本安全书籍都不得不提到DES,

8、因为它曾经是加密算法的标志。介绍DES的细节还有两个作用:第一,介绍DES;第二,更重要的是分析和理解实际加密算法。利用这个方法,我们还要从概念上介绍其他加密算法,但不准备深入介绍,因为通过DES介绍已经可以了解计算机加密算法的工作原理。DES通常使用ECB,CBC,或CFB模式。DES产生可以追溯到1972年,美国的国家标准局(NBS,即现在的国家标准与技术学会,NIST)启动了一个项目,旨在保护计算机和计算机通信中的数据。它们想开发一个加密算法。两年之后,NBS发现IBM公司的Lucifer相当理想,没有必要从开头开发一个新的加密算法。经过几次讨论,NBS于1975年发布了这个加密算法的细

9、节。到1976年底,美国联邦政府决定采用这个算法,并将其更名为数据加密标准。不久,其他组织也认可和采用DES作为加密算法。DES算法为密码体制中的对称密码体制,又被成为美国数据加密标准,是1972年美国IBM公司研制的对称密码体制加密算法。其密钥长度为56位,明文按64位进行分组,将分组后的明文组和56位的密钥按位替代或交换的方法形成密文组的加密方法。DES(DataEncryptionStandard)算法,于1977年得到美国政府的正式许可,是一种用56位密钥来加密64位数据的方法。虽然56位密钥的DES算法已经风光不在,而且常有用DES加密的明文被破译的报道,但是了解一下昔日美国的标准加

10、密算法总是有益的,而且目前DES算法得到了广泛的应用,在某些场合,仍然发挥着余热第1章 绪论1.1 DES加密算法背景 随着互联网在全球的普及,人们更多的使用计算机网络传递敏感信息,如网上电子支付,网上银行业务,军事和商业敏感信息的传递等。如何确保信息可以正确认证和保密,使得数据在传输过程中不被窃密,是密码学研究的主要内容。在多数情况下,数据加密是信息不被非法篡改和截取的仅有方法,现在已经有几百种的数据加密算法。 DES加密算法是IBM公司研发的,它是对称密码体制加密算法,即加解密的密钥相同。明文按每64位为一组进行分组,密钥也为64位,实际上用到的密钥为56为,其中8位(64位中每8位都有一

11、个奇偶校验位)是奇偶校验位。DES加密算法的原理现在已经公开,任何人都可以了解到,截取者要得到明文,只需要知道密钥即可,因此密钥的安全性对DES加密算法至关重要,可以说完全依赖于密钥。密钥输入64位,它可以组成非常多种可能性,密钥在这么多的密钥数中产生,如果在不知道密钥的情况下进行破解的话,即变利用每微秒可以进行一次加密的计算机来破译密码也需要好几千年,因此DES加密技术具有很高的安全性和保密性。然而计算机技术的飞速进步,DES加密算法变的越加不安全,越加的容易被破解。1997年6月28日,一个研究小组采用穷搜索方法破译DES加密算法,经过一个季度破解成功。该次破译的成功意义是非常重大的。其一

12、是仅仅使用数万台个人电脑历时一个季度就能将DES加密算法加密的数据破译成功,严重的说明DES加密算法不够安全。其二是促使研发更为保密和安全的加密算法,从而促进密码学的发展。DES算法已可以被攻克和密码分析技术的快速发展的情况下,美国商业部提出以AES为下一代的加密算法。DES与AES加密算法思想一定程度上相似。直到今天,DES加密算法仍然被运用,作为分组密码体制中曽经的典型代表,对DES的研究能然有很大的价值和借鉴意义。1.2 研究DES加密算法的意义本论文研究DES加密算法的意义是:(1)学习对称密码体制中经典的DES加密算法,熟悉该加密算法的工作原理。(2)从对DES加密算法的研究可以体会

13、到加密、解密的一般方法。(3)引起人们对密码学的兴趣,感受密码学的奇妙之处,以达到寓教于乐的目的,从而促进密码学的进步。第2章 DES加密算法工作原理2.1 DES加密算法概述DES加密算法是一个对称加密算法,加解密使用相同的密钥,使用异或、代换、置换、移位四种运算方法。DES加密算法明文按每64位为一组进行分组,密钥也为64位,实际上用到的密钥为56为,其中8位(64位中每8位都有一个奇偶校验位)是奇偶校验位,密钥对DES加密算法的安全性可以说是生死攸关,因为该算法的过程已经对外公开了,任何人都可以知道。DES加密算法中密钥的生成先是通过一个置换将输入的64位密钥变换为56位,再分成左右各2

14、8位密钥并不断的向左循环移位(加密)/右循环移位(解密),每次移位后通过另一个置换密表将56位变换为 48位,该48位就是一个密钥,16轮的循环就可以产生16个密钥。在DES算法结构中64位的明文分别通过初始置换IP,16轮运算,逆初始置换IP这三个模块可得一组与之相对应的64位密文,其中16轮运算是DES加密算法的重点和难点,16轮循环运算中的一次运算是这样的:经过初始置换的64位分为左右各32位两部分,左半部分先不变,右半部分依次经过:数据扩展(E盒子)、与48位密钥异或运算、数据压缩(S盒子)、P盒子、与左半部分异或运算得到的作为下一循环的左半部分,原左半部分作为下一循环的左半部分,如此

15、循环16次,得到的64位作为逆初始置换IP的输入,如此就完成了对一组64位二进制明文的加密。因为DES加密算法是对称加密体制,加密和解密过程的区别是加密和解密所用的密钥是对称的,即16轮运算中加密第1轮所用到的密钥和解密的第16轮的密钥相同,依次加密第2轮和解密第15轮的密钥相同加密第16轮和解密第1轮密钥相同。另外解密的明文是加密的密文。图2.1 对称加密算法框图图2.2 DES算法结构框图2.2 DES加密算法主要流程2.2.1 密钥置换函数PC-1DES加密算法主要流程描述如下:对于输入的64位密钥Key,由于奇偶校验位在每个字节第8位,不参与DES运算,故实际用到的密钥为56位。在子密

16、钥生成过程中64位密钥Key经过密钥函数PC-1去掉奇偶校验位并换位为56位,表2.1 密钥置换函数PC-1密表(密钥函数中PC-1密表中的数字57的意思是:输入key57换到输出的第1位,同理,输入的key49位换到输出的第2位,输入key4换到输出的第56位。)2.2.2 密钥移位经密钥置换函数PC1产生的56位均分为28位为一组的C0、DO两部分,两个同时进行第1次循环左移(加密)/循环右移(解密),得到C1,D1。然后将C1、D1进行第2次循环左移(加密)/循环右移(解密),得到C2,D2,将C15、D15进行第16循环左移(加密)/循环右移(解密),得到C16,D16加解密的16轮中

17、每次移动的位数如下:表2.2 加密循环左移位数表2.3 解密循环右移位数2.2.3 密钥置换函数PC-2在产生密钥模块的每一轮运算中将每轮得到的Ci、Di合并在一起为56位,再将56位经过密钥置换函数PC-2,得到48位密钥Ki,如此16个时钟周期将依次产生密钥k1,k2,k16。表2.4 密钥置换函数PC-2密表 K1 Ki+1 K16图2.3 DES加密算法密钥产生流程图2.2.4 初始置换IPDES加密算法中64位输入明文先要经过初始置换IP。初始置换IP的功能是将输入的64位明文数据块重新整合,增加DES加密算法的混乱性,增强其安全性。表2.5 初始置换IP的密表2.2.5 数据扩展(

18、E盒子)产生L0、R0两部分后,DES加密算法进入到16轮运算模块中,16轮运算是完全相同的16轮循环运算,所以只需要明白第一轮运算即可。在第一轮运算中,由初始置换IP产生的各32位L0、R0,L0先保持不变,对R0进行数据扩展(E盒子)操作,使得R0由43位变换为48,目的是使得改变换得到的结果能够与48位密钥进行异或运算。表2.6 E盒子密表2.2.6 数据压缩(S盒子)将经过数据扩展得到的48位与产生的48位密钥K1进行异或运算,接下来异或运算得到的结果要经过数据压缩盒子变为32位。S 盒子是DES加密算法中至关重要的一个环节,其他的运算方法都是线性的,在整个DES加密算法中只有一个是非

19、线性的,正式经过S盒子的非线性变换才使得明文得到了很好的混乱,从而具有较强的安全性,S盒子的运算规则是将经过数据扩展得到的48位每6位分成一组,共计8组,每一组6位二进制数对应着64中可能性,输出为4位二进制数。即8组对应着8个密表,每个密表为64个数,每组输出4位,它们按照顺序组合在一起为32位。这样就将48位的输入压缩为32位的输出。8个选则函数密表为表2.7至表2.14。表2.7 S1盒密表表2.8 S2盒密表表2.9 S3盒密表表2.10 S4盒密表表2.11 S5盒密表表2.12 S6盒密表表2.13 S7盒密表表2.14 S8盒密表2.2.7 P盒子置换经过S盒子的数据压缩,产生3

20、2位的一组二进制数,该32位还通过P盒子进行数据的换位,增加DES加密算法的混乱度,增强它的安全性。表2.15 P盒子置换密表经过P盒子的变换产生一个更加混乱的32位数,此时将其与一直没有做任何变化的32位左半部分进行按位异或运算,得到的结果作为下一轮的右半32位,而右半原32为作为下一轮的左半32位,如此进行16轮加密。2.2.8 逆初始置换IP16轮加密后得到一组64位的输出,此输出还要经过逆初始置换,进一步的增强DES加密算法的混论性。得到的输出为64位明文和16个密钥共同运算所对应64位密文。表2.16 逆初始置换IP密表第3章 DES加密算法模块设计及仿真3.1 DES加密算法模块总

21、体方案DES加密算法的实现有两种方法,其一是采用状态机实现算法功能,优点是占用的资源少,缺点是速度慢,即用速度来换取面积,其二是采用17级流水线实现算法功能,此方法的优点是速度非常的快,缺点是占的资源多。该论文是采用第二种17级流水线实现算法功能。将DES加密算法分为六个模块:密钥产生模块、一次轮运算模块、初始置换模块、控制模块、逆初始置换模块和顶层调用模块,调用五个次级模块来实现DES加密算法功能。总体方案见图3.1图3.1 DES加密算法模块总体方案采用17级流水线实现DES加密算法模块总体方案主要信号描述表:表3.1 DES加密算法模块总体方案信号描述序号信号名位宽功能描述1clk150

22、%占空比,输入数据在clk的上升沿采样,输出数据在时钟上升沿变化。2reset1复位信号,高电平有效,为电路提供异步复位信号。3mode1DES算法加密时为0时,DES算法解密时为1时。4key64每隔16个时钟周期输入一组有效值。5data64每隔16个时钟周期输入一组有效值。6en1高电平有效的使能信号。7count5复位有效时为零,等于16时,在下一个时钟周期为零。8outflag1高电平有效的标志信号。9datain64每隔16个时钟周期输入一组有效值。10k48每个时钟周期输出一组密钥11in64每个时钟周期更新一组有效值12cipher64DES加密算法一组data和key所对应的

23、密文。采用17级流水线实现DES加密算法模块总体方案主要信号的时序时序见图3.2。图3.2 总体方案主要信号的时序由信号时序图和总体模块方案可以看出en和outflag两信号是由计数器进行控制,而en和outflag信号控制另外的模块内信号。由信号时序图还可以看出轮运算中所需的密钥总是在该时钟的前一个时钟已经产生,产生密钥模块在该时钟上升沿产生下一轮运算所需的时钟,这样所轮运算所需密钥总是满足建立时间的要求。经过16个时钟周期已产生16个密钥,在第17个时钟周期虽然也产生密钥但它不会参与运算,在第17个时钟周期,轮运算进行DES加密算法轮运算的最后一轮。3.2 控制模块control控制模块作

24、为DES加密算法实现整个功能的中枢神经。控制电路可以采用两种方法:一是采用移位寄存器,二是采用计数器,该论文采用计数器作为控制中心。根据建立时间、保持时间和DES加密算法结构可以看出,在16轮运算中E盒子之后的异或运算所用到的密钥Ki总是在异或运算之前产生并且保持稳定,所以说密钥的产生至少超前异或运算一个时钟,即密文在每17个时钟周期后输出一组,用一个标志outflag信号来作为密文生成的标志,其高电平有效,在其有效时下一个时钟密文cipher输出,之后outflag变为低电平。在控制模块输出还有轮运算模块用到的控制信号en、count。 图3.3 控制模块的仿真波形从时序仿真图可以看出,它和

25、总体方案中的主要信号的时序图完全吻合,即控制模块的设计按照总体方案是完全正确的。3.3 密钥产生模块create_key 密钥产生模块包含有密钥置换函数PC-1、密钥移位、密钥置换函数PC-2这三个部分。在这个模块中输入为64位Key先执行密钥置换函数PC-1,然后使用case嵌套语句,根据控制模块的计时输出count和加/解密模式信号mode作为判断,按照每轮循环左移(加密)/循环右移(解密)移动位数编码,然后通过密钥置换函数PC-2生成所需密钥。该密钥产生模块每一个时钟周期产生一个密钥,即16个时钟周期可以产生加/解密所需的所有密钥。在这16个时钟内任何的Key输入都不起作用,增强了DES

26、加密算法的稳定性。密钥产生模块中密钥的移位以及产生加密解密所需密钥用到case语句的嵌套来实现。图3.4 密钥产生模块的仿真波形从该仿真波形看出:在reset信号有效时,密钥k为0,64位key输入,从reset信号无效后的第一个时钟上升沿开始,密钥k每个时钟周期都在产生下一个密钥,在count为16时,下一个时钟周期内虽然产生密钥,但该密钥不参与运算,不影响DES加密算法的准确性,因为在always块中用的是阻塞赋值。3.4 轮运算模块lun轮运算模块包括数据扩展(E盒子)、两次异或运算、数据压缩(S盒子)、P盒子置换、缓冲器。由建立时间、保持时间和DES加密算法结构可以看出在16轮运算中E

27、盒子之后的异或运算所用到的密钥Ki总是在异或运算之前产生并且保持稳定,所以说密钥的产生至少超前异或运算一个时钟,即轮运算所用到的密钥是前一个时钟密钥产生模块所产生的,因此轮运算总是延迟与密钥产生模块一个时钟周期,为了使得轮运算在本质为并行的VerilogHDL语言中能够正确运行,这一个时钟的延迟用一个带使能信号en的缓冲器来实现,en为高电平时有效,初始置换IP所产生的64位数据此时输入。缓冲器只在一个时钟周期内有效,之后无效,即en信号为零。en信号为零时才执行整个16轮运算。缓冲器和轮运算之间的关系是:一个有效,另一个必然无效。在轮运算中数据扩展(E盒子)和P盒子置换按照密表来实现,数据压

28、缩(S盒子)采用8个case语句来实现,缓冲器和轮运算分别采用en和!en作为判断,轮运算中每一轮的衔接采用三目运算符来实现。在这16个时钟内任何的datain输入都不起作用,增强了DES加密算法的稳定性。轮运算模块中缓冲器代码:always(posedge clk or posedge reset) beginif(reset) begin buff=64d0; end else if(en) begin buff=datain; end end在第1至15轮中每轮产生的右半部分32位是下一轮的右半部分32位,原右半部分32位是下一轮的左半部分32位,而在第16轮中产生的右半部分32位置换到

29、输出的左半部分,原右半部分32位还是输出的右半部分。实现其功能使用三目运算符。代码为: dataout=(count=5d16)?NEXT_R1:32,R1:32:R1:32,NEXT_R1:32;图3.5 轮运算模块的仿真波形 从该仿真波形看出:dataout信号在reset信号有效是复位,在其无效的第二个时钟上升沿后才发生了变化,在联系密钥产生模块得到轮运算总是之后密钥产生模块一个周器,与总设计方案完全一致。3.5逆初始置换模块IP_1逆初始置换模块只包含逆初始置换IP。这个模块直接关系到密文的输出形式,一种是每一轮都输出一个密文,优点为电路简单,只用一个assign语句就可以完成,缺点是

30、这些每17个密文中只有一个是对的,这对于密文的检测十分不利的,不利于DES加密算法的稳定性;另一种是用标志信号outflag作为判断,当输出的密文为正确的时候,进行选择输出,其余时间密文一直为零,这样一眼就可以看出正确的密文。图3.6 逆初始置换IP模块内部框图图3.7 逆初始置换IP模块的仿真波形 从该仿真波形看出:只有当outflag信号为1时,下个时钟周期才输出cipher,否则cipher一直为0;逆初始置换IP模块相对应的是初始置换IP模块,初始置换IP模块的实现只用一个assign语句就可完成。3.6 顶层调用模块DES_TOP 顶层调用模块是将控制模块control、密钥产生模块

31、creat_key、轮运算模块lun、初始置换模块IP、逆初始置换模块IP_1五个模块以打点实例化的形式,例化到顶层调用模块中。16个时钟内任何的data输入都不起作用,增强了DES加密算法的稳定性。图3.8 顶层调用模块的仿真波形:从该仿真波形 看出:cipher是在rese变为无效后的第18个时钟周期输出第一个,mode位0时,加密;为1时,解密。通过激励DES加密算法加/解密功能完全正确。以下是激励加/解密的测试数据表:表3.2 激励加/解密的测试数据modedatakeycipher031323334353637382122232425262728990910cce36ee2981990910cce36ee29821222324252627283132333435363738031323334353637385B5A57676A56676E675b0181f050d0ef1675b0181f050d0ef5B5A57676A56676E3132333435363738

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1