电子学本科毕业设计(论文)前期报告_第1页
电子学本科毕业设计(论文)前期报告_第2页
电子学本科毕业设计(论文)前期报告_第3页
电子学本科毕业设计(论文)前期报告_第4页
电子学本科毕业设计(论文)前期报告_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、河北工业大学城市学院本科毕业设计(论文)前期报告河北工业大学城市学院本科毕业设计(论文)前期报告毕业设计(论文)题目:基于FPGA的DES加密算法的研究与实现专业:电子科学与技术学生信息:学号:075467 姓名: xxx 班级:电技C073指导教师信息:教师号:02109 姓名:武一 职称:教授报告提交日期:2011年3月14日一、毕业设计前期报告要求阐述工作过程,遇到的问题、解决问题的方法、效果、启示,任务书要求进度完成情况、课题研究的主要内容随着通信技术和网络技术的飞速发展,计算机应用渗透到社会生活的各个领域,特别是军事的应用,使人们对于数据传输安全性的要求也随之增强,因此信息安全技术显

2、得格外重要。加密作为信息安全中一个最为有力的武器,正在发挥着重要的作用。人们提出了很多数据加密算法。基本加密算法有两种:对称密钥加密、非对称密钥加密。其中最著名的对称密钥加密标准是DES(Data Encryption Standard)。DES算法是一种分组加密算法,以64位分组数据进行加解密,数据加密和解密使用相同的算法结构,只是密钥的使用顺序不同。密钥通常为64位,每个第8位都作奇偶校验,实际密钥长度为56位。DES算法的保密性取决于密钥,选择合适的密钥对明文进行加密和解密运算。DES加密算法在成为加密标准到今天,经历了长期的考验。实践证明DES算法的安全性是能够满足大部分的安全要求的。

3、采用软件方式实现的DES算法会在很大程度上占用系统资源,造成系统性能的严重下降,而DES算法本身并没有大量的复杂数学计算,在加解密过程和密钥生成过程中仅有逻辑运算和查表运算,因而无论是从系统性能还是加解密速度的角度来看,采用硬件实现都是一个理想的方案。随着微电子技术的发展,可编程逻辑器件由早期的只读存贮器(PROM)发展到今天十分流行并广泛应用的现场可编程门阵列FPGA, FPGA技术是门阵列(Gate Array)技术与可编程逻辑器件(PLDProgrammable Logic Device)技术的合成。伴随着大规模集成电路和计算机技术的高速发展,在涉及工业自动化、仪器仪表、计算机设计与应用

4、、通信、国防等领域的电子系统中,FPGA技术的含量正以惊人的速度提升。FPGA具有体系结构和逻辑单元灵活、集成度高以及实用范围宽等特点,可以实现较大规模的电路,在实现算法方面具有灵活性、安全性,成为硬件实现DES算法的最好选择。、拟采用的研究方法1熟悉EDA 开发工具和相关软件,熟悉DES算法的流程,掌握软件开发的设计方法。2采用模块化设计的思想,通过编写Verilog HDL语言程序实现DES功能模块。3. 通过EDA开发平台ModelSim环境下完成加密/解密的综合与验证。、任务书要求进度完成情况1、任务书完成进度情况经过两周的研究讨论,也查阅了大量的相关资料,已经基本建立项目模型,对项目

5、中用到的基本技术有了一定的了解,因此完成了前期报告并有了成熟的设计思路。2、工作启示及其感想工作过程中遇到了一些难处,以前没有接触过DES加密算法,对DES的算法原理不理解;对其设计流程不明确;进行功能模块设计时对其实际的设计流程和设计思想不了解,不能正确的进行软件编程。正式开始准备毕业设计后,发现自己以前对于FPGA的理解并不准确。通过查找相关资料,对FPGA有了进一步了解,同时对DES加密算法的设计思想有了初步认识。为了能顺利的完成毕业设计,必须认真的去学习其中涉及的各个方面。在学习方法上要充分利用各种图书和文献资料,不能忽视所遇到的每一个问题。二、文 献 综 述、课题研究现状、意义及应用

6、前景现场可编程门阵列FPGA(Field Programmable Gate Array)是最近10年发展起来的新型可编程逻辑器件。由于FPGA器件的功能由逻辑结构的配置数据决定,工作前需要从芯片外部加载配置数据。配置数据存储在片外的EPROM或其它存储体上,人们可以控制加载过程,在现场修改器件的逻辑功能,即所谓现场编程。FPGA采用了逻辑单元阵列LCA(Logic Cell Array)这样一个概念,内部包括可配置逻辑模块CLB(Configurable Logic Block)、输出输入模块IOB(Input Output Block)和内部连线(Interconnect)三个部分。FPG

7、A的基本特点1)采用FPGA设计ASIC电路(专用集成电路),用户不需要投片生产,就能得到合用的芯片。 2)FPGA可做其它全定制或半定制ASIC电路的中试样片。 3)FPGA内部有丰富的触发器和IO引脚。 4)FPGA是ASIC电路中设计周期最短、开发费用最低、风险最小的器件之一。 5) FPGA采用高速CHMOS工艺,功耗低,可以与CMOS、TTL电平兼容。由于FPGA技术突出的特点,FPGA与CPLD一起在数字电路中发挥着巨大的作用。FPGA的使用非常灵活,同一片FPGA通过不同的编程数据可以产生不同的电路功能。FPGA在通信、数据处理、网络、仪器、工业控制、军事和航空航天等众多领域得到

8、了广泛应用。随着功耗和成本的进一步降低,FPGA还将进入更多的应用领域。可以说,FPGA芯片是小批量系统提高系统集成度、可靠性的最佳选择之一。随着通信技术和网络技术的飞速发展,对于数据传输安全性的要求也随之增强, 为了解决数据在网络通信中的安全传输问题,因此人们提出了很多数据加密算法。基本加密算法有两种:对称密钥加密、非对称密钥加密。其中,对称密钥加密也叫秘密/ 专用密钥加密,即发送和接收数据的双方必须使用相同的/ 对称的密钥对明文进行加密和解密运算。最著名的对称密钥加密标准是数据加密标准DES。DES算法是一种分组加密算法,以64位分组数据进行加、解密,数据加密和解密使用相同的算法结构,只是

9、密钥的使用顺序不同。DES加密算法可同时对大量数据进行快速加密。通常在通信网络的两端,双方约定一致的Key,在通信的源点用Key对核心数据进行DES加密,然后以密码形式在公共通信网(如电话网)中传输到通信网络的终点,数据到达目的地后,用同样的Key对密码数据进行解密,便再现了明码形式的数据核心。这样便保证了核心数据(如PIN、MAC等)在公共通信网中传输的安全性和可靠性。DES 的实现方法通常分为软件实现和硬件实现两种。软件实现时速度较慢,软件实现DES 算法的最快速度不到150 Mb/ s ,在某些高速数据传输的场合,数据传输速率达到1 Gb/ s 以上,用软件实现算法是无法满足要求的;同时

10、,软件实现DES 算法在安全性方面也存在隐患,因此必须采用硬件实现。DES 算法全部是逻辑运算,用硬件实现时速度很快,通常可以达到软件实现速度的几十倍。所以,应用FPGA来设计和实现DES加密算法具有十分重要的现实意义和广阔的应用前景、关键问题1熟悉DES算法的流程及算法原理,采用模块化设计的思想,合理设计初始置换IP、l6 轮子密钥生成、S盒迭代以及初始置换的逆四个功能模块的问题。2解决软件编程问题以实现DES模块功能。3使用ModelSim实现加密的综合与验证。、解决方法1、DES算法原理及流程图DES算法的入口参数有三个:Key,Data,Mode。其中Key为8字节共64位,是DES算

11、法的工作密钥;Data也为8字节共64位,是要被加密或被解密的数据;Mode为DES的工作方式,包括加密和解密两种。若Mode为加密,则用Key把数据Data进行加密,生成Data的密码形式(64位)作为DES的输出结果。若Mode为解密,则用Key把密码形式的数据Data解密,还原为Data的明码形式(64位),作为DES的输出结果。图1 DES 算法的流程图密文输出Reverse initial permutation (IP)R0 (32)L16= R15R16= L15 f( R15, K16)16轮相同运算R1= L0 f( R0, K1 )L1 = R0K1f函数异或运算(XOR)

12、L0 (32)Initial permutation (IP)明文输入DES 算法的基本流程如下:首先,输入明文通过初始置换,将其分成左、右各为32 位的两个部分,然后进行16轮完全相同的迭代运算。经过16 轮运算后,左、右半部分合并在一起经过一个末置换(初始置换的逆置换) ,于是整个算法结束。图1 为DES 算法的流程图。2、功能模块设计DES加密模块总体构架:S1Initial permutation(IP)Key-gendesrounddesS3S2S4S5S6S7S8图2 DES加密总体构架图中:IP :初始置换模块 Key-gen:密钥产生模块 S1S8 :S盒置换模块 desrou

13、nd :一轮变换模块 des :顶层模块其中密钥产生模块被desround模块调用。顶层模块des综合连接其余各模块。2-1 Initial permutation (IP)模块2-1-1初始置换在第一轮运算之前执行,对输入分组实施如表2-1所示的变换。此表应从左向右、从上向下读。例如,初始置换把明文的第58位换到第1位的位置,把第50位换到第2位的位置,把第42位换到第3位的位置,等等。表2-15850423426181026052443628201246254463830221466456484032241685749413325179159514335271911361534537292

14、11356355473931231572-1-2 再将这64位数据分为左右两部分,每部分分别为32位,左32位称为L0,右32位称为R0,将左32位留下,将右32位按照表2-2进行排列表2-232123454567898910111213121314151617161718192021202122232425242526272829282930313212-2 key-gen模块2-2-1 由于不考虑每个字节的第8位(每个字节第8位可作为奇偶校验位以确保密钥不发生错误),DES的密钥由64位减至56位,如表2-3所示。 表2-3574941332517915850423426181025951

15、433527191136052443663554739312315762544638302214661534537292113528201242-2-2 将56位密钥分成两部分,每部分28位。开始的28位称为C0,最后的28位称为D0。 2-2-3 生成16个子密钥,初始轮数I=1。 2-2-4 同时将CI、DI左移1位或2位,根据I值决定左移的位数。表2-4给出了每轮移动的位数。表2-4I12345678910111213141516左移位数11222222122222212-2-5 在DES的每一轮中,从56位密钥选出以表5中的48位子密钥(Sub Key),这些子密钥KI由下面的方式确定

16、。(将CIDI作为一个整体按表2-2-3进行变换,得到48位的子密钥KI)表2-514171124153281562110231912426816727201324152313747553040514533484449395634534642503629322-2-6 从2-2-1处循环执行,直到K16被计算完成2-3 S盒置换模块2-3-1 用16个子密钥加密数据,初始I=1。 2-3-2 将32位的RI-1按表2-6扩展为48位的EI-1表2-63212345456789891011121312131415161716171819202120212223242524252627282928

17、2930313212-3-3当产生了48位密钥后就可以和右边32位明文进行异或运算了,即EI-1 XOR KI,得到48位的密文2-3-4再经过下论的S盒跌带,其功能是把6bit数据变为4bit数据,每个S盒是一个4行、16列的表。盒中的每一项都是一个4位的数。具体操作为:1将异或后的结果分为8个6位长的部分,假定第1位到第6位称为B1,第7位到第12位称为B2,依此类推,第43位到第48位称为B8。 2按S表变换所有的BJ,初始J=1。所有在S表的值都被当作4位长度处理。3将BJ的第1位和第6位组合为一个2位长度的变量M,M作为在SJ中的行号。M从0到34将BJ的第2位到第5位组合,作为一个

18、4位长度的变量N,N作为在SJ中的列号。 N从0到155用SJMN来取代BJ。6.循环执行,直到B8被替代完成。 S盒的6个位输入确定了其对应的输出在哪一行哪一列。例S3,S6S3100914631551131271142813709346102851412115113649815301112125101471101306987415143115212S61211015926801334147511101542712956113140113891415528123704101131164321295151011141760813例如,假设第6个S盒的输入(即异或函数的第31位到36位)为110

19、011。第1位和最后一位组合形成了11,它对应着第6个S盒的第三行。中间的4位组合在一起形成了1001,它对应着同一个S盒的第9列。S盒6的第三行第9列处的数是14(记住,行、列的记数均从0开始而不是从1开始),则值1110就代替了110011。2-3-5 S盒代替运算后的32位输出依照P盒进行置换。该置换把每输入位映射到输出位,任意一位不能被映射两次,也不能被略去,这个置换叫做直接置换。表2-7给出了每位移到的位置。表2-716720212912281711523265183110282414322739191330622114252-3-6 将P盒置换的结果与最初的64位分组的左半部分异或

20、,然后左、右半部分交换,接着开始另一轮。即异或P和LI-1结果放在RI,即RI=P XOR LI-1; LI=RI-1 ;从2-3-2处循环执行,直到K16被变换完成。2-3-7 组合变换后的R16L16,最终进行一次末置换,形成密文表2-8408481656246432397471555236331386461454226230375451353216129364441252206028353431151195927342421050185826331419491757252-4 desround模块desround模块执行DES算法中的一轮非线性变换。R(32)E R(48) K(48)异

21、或运算S1S2S3S4S5S6S7S8P 32位图3 desround一轮变换其作用过程如下:在每一轮运算中,密钥位移位,然后再从密钥的56 位中选取48 位。通过一个扩展置换,将数据的右半部分扩展为48 位,并通过一个异或操作与一个48 位密钥结合,通过8 个S 盒将这48 位替代成新的32 位数据,再通过一级置换操作。2-5 DES模块顶层模块des综合连接其余各模块。输入密钥、待加密数据的左半信号及右半信号,各经过一个两路数据选择器后连接到desround模块的数据输入端和密钥输入端,时钟在高电平时接收外部数据,低电平时由数据选择器选择输出数据,desround模块每轮变换后的输出密钥和数据,将被送到desround模块的输入端执行下一轮变换。16轮变换结束后,当时钟再次跳变为高电平时,模块对下一个明文分组进行加密。、参考文献1National Institute of Standard and Technology. Data Encryption Standard(DES)M. Federal Information Processing Standards Publication, 19992 刘艳萍,高振斌,李志军. EDA实用技术及应用M. 北京:国防工业出版社,20063 徐光辉,程东旭,黄如.基于FPGA的嵌入式开发与应

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论