版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、基于FPGA的DES加密系统设计与实现摘要随着信息技术的发展,计算机应用渗透到社会生活的各个领域,特别是军事的应用,使人们对信息的依赖程度越来越高,因而信息安全技术显得格外重要。加密作为信息安全中一个最为有力的武器,正在发挥着重要的作用。DES (Data Encryption Standard)加密算法在成为加密标准到今天,经历了长期的考验。实践证明DES算法的安全性是能够满足大部分的安全要求的。采用软件方式实现的DES算法会在很大程度上占用系统资源,造成系统性能的严重下降,而DES算法本身并没有大量的复杂数学计算,在加/解密过程和密钥生成过程中仅有逻辑运算和查表运算,因而,无论是从系统性能
2、还是加/解密速度的角度来看,采用硬件实现都是一个理想的方案。随着微电子技术的发展,可编程逻辑器件由早期的只读存贮器(PROM)发展到今天十分流行并广泛应用的现场可编程门阵列FPGA 。 FPGA具有体系结构和逻辑单元灵活,集成度高以及实用范围宽等特点,可以实现较大规模的电路,编程也很灵活,而且设计开发周期短,设计制造成本低,开发工具先进,标准产品无需测试,质量稳定以及可实时在线检验等优点,因此被广泛应用于产品的原型设计和产品生产。所以,应用FPGA来设计和实现DES加密算法具有十分重要的现实意义和广阔的应用前景。本文设计实现了一种基于FPGA的DES加密系统。概括起来,本文主要完成了以下几方面
3、的主要工作:1: 完成了DES加密系统的整体设计。整个系统包括DES加密核心模块,UART通信接口模块和BLOCKRAM存储模块。 2: 以EITS2003开发板为硬件开发平台,ISEwebpack为开发软件,用Verilog硬件描述语言设计并且实现了三大模块的具体功能及整体连接。 3: 用PC,串口调试工具,UART通信接口和EITS2003开发板测试并验证了整个系统的功能。 4: 探讨了DES加密系统在军事通信总站内的应用。关键字:DES, FPGA, Verilog, UART, B1ockRAM, 数据加密ABSTRACT With the development of informa
4、tion technology, the application of computer has come into social any field. Especially in military field, people rely on information more seriously. So information security becomes very important. Encryption as a sort of power weapon is widely used in the field of information security. DES (Data En
5、cryption Standard) encryption arithmetic has stood the long test from when it became the encryption standard to now. It is proved by much practice that the security of the DES encryption can satisfy the voluminous need of security. Implementing the DES arithmetic by software will engross much system
6、 resource and make the system function decline. But the DES arithmetic has not much and complex mathematics count and only has logic operation and look-up-table operation. So, thinking from the point of system function and speed of encryption and decryption, implementing the DES arithmetic by hardwa
7、re is an ideal project. With the development of micro-electronic technology, the programmable logic device develop from earlier ROM to very popular and extensive applied FPGA(Field Programmable Gate Array) today. The FPGA has the characteristic of flexible system structure and logic unit, high Integ
8、ration and wide application. Especially, the FPGA can carry out the more large-scale circuit, programmed flexibly. When the engineers use the FPGA to design and develop the product, the time is short, the cost is low, the tool is advanced, the standard product don't need to test, the quality is
9、steady and the product can be inspected on line. So, the FPGA is widely used to design and make product. Therefore, using the FPGA to design and implement the DES encryption arithmetic is very important and it will be widely used in much field. The main contributions of the paper are as follow: 1: C
10、ompleted the whole design of the DES encryption system .The whole system includesthe DES encryption core module, he UART communication interface module and Block RAM memory module. 2: Used the Verilog hardware design language to design and implement the function and the whole connection of the three
11、 modules by the EITS2003 as the hardware development flat roof and the ISEwebpack as the software development tool. 3: Used the PC, SCOMAssistant, the UART communication interface and the EITS2003 development plat roof to test and rerify the function of the whole system. 4: Discussed the application
12、 of the DES encryption system in the military communication station.Key words:DES,FPGA, Verilog, UART, BIockRAM, Data Encryption摘要.工ABSTRACT.工工第一章绪论. 11. 1 DES的基本概念及特点. .1 1. 2基于FPGA的DES加密系统的研究背景,意义,及应用前景.1 1. 2. 1 DES加密系统现状及发展.1 1. 2. 2 PLD发展过程. .1 1. 3本文主要工作及章节安排.2 1. 3. 1本文主要工作.2 1.3.2章节安排.2 本章小结
13、.3第二章DES加密算法原理及系统开发环境.4 2. 1 DES加密算法原理.4 2. 1. 1 DES加密算法原理简介.4 2. 1. 2初始序列变换IP.5 2. 1. 3加密函数f.6 2. 1. 4子密钥生成.9 2. 2系统开发环境.11 2. 2. 1硬件开发平台E工TS2003.11 2. 2. 2软件开发工具ISE WebPack.12 2. 2. 3硬件描述语言Verilog HDL.13 本章小结.15第三章DES加密系统设计与实现.16 3. 1 DES加密系统设计方案.16 3. 1. 1 DES加密核心设计方案.16 3. 1. 2通信接口设计方案.17 3. 1.3
14、 BlockRAM存储模块设计方案.18 3. 1. 4系统设计实现的功能.18 3. 2 DES加密系统的实现.19 3. 2. 1 DES加密核心模块的实现.19 3. 2. 2 UART通信接口模块的实现.21 3.2.3 B1ockRAM存储模块的实现.22 3. 2. 4 DES加密系统整体设计结果.25 本章小结.31第四章性能分析与功能验证.32 4. 1性能分析.32 4. 1. 1 DES加密核心的性能分析.32 4. 1. 2整体性能分析.32 4. 2功能验证.33 4. 2. 1基于ModelSim仿真的功能验证.33 4. 2. 2实际硬件验证.34 本章小结.36第
15、五章DES加密系统在军事通信总站内的应用.37 5. 1 DES加密系统在军事通信总站内的应用背景37 5. 2军事通信总站用户服务呼叫中心系统结构.37 5. 3 DES加密系统在军事通信总站用户服务呼叫系统中的应用39 本章小结40结束语41参考文献42致谢42第一章绪论1.1 DES的基本概念及特点 数据加密标准(Data Encryption Standard, DES)1,作为ANSI的数据加密算法(Data Encryption Algorithm ,DEA)和IS0的DEA-1,成为一个世界范围内的标准己经20多年了。尽管它带有过去时代的特征,但它很好地抗住了多年的密码分析,除可
16、能的最强有力的敌手外,对其他的攻击仍然是安全的。DES是一个分组加密算法,它以64位为分组对数据加密。64位一组的明文从算法的一端输入,64位的密文从另一端输出。DES是一个对称算法:加密和解密用的是同一种算法。密钥的长度为56位。(密钥通常表示为64的数,但每个第8位都用作奇偶校验,可以忽略。)密钥可以是任意的56为的数,且可在任意的时候改变。其中极少量的数被认为是弱密钥,但能容易地避开它们。所有的保密性依赖于密钥。21. 2 基于FPGA的DES加密系统的研究背景,意义,及应用前景1.2.1 DES加密系统现状及发展 随着信息技术的发展,计算机应用渗透到社会生活的各个领域,特别是在军事中的
17、应用,使人们对信息的依赖程度越来越大,从而使信息安全技术显得格外重要。从技术角度讲,网络安全除了依赖安全的网络通信协议及应用协议外,更多地取决于网络设备如交换机、路由器、网桥等所提供的加/解密功能。目前,基于DES算法的加/解密硬件广泛地应用于军事,卫星通信、网关服务器、机顶盒、视频传输以及其它大量的数据传输业务中。 DES (Data Encryption Standard)加密技术是一种常用的对称加密技术,该技术算法公开,加密强度大,运算速度快,在各行业甚至军事领域得到广泛的应用。DES算法从1977年公布到现在已有将近30年的历史,虽然有些人对它的加密强度持怀疑态度,但现在还没有发现实用
18、的破译DES的方法。并且在应用中,人们不断提出新的方法增强DES算法的加密强度,如3重DES算法、带有交换S盒的DES算法等.因此 DES算法在信息安全领域仍有广泛地应用。采用软件方式实现的DES算法会在很大程度上占用系统资源,造成系统性能的严重下降,而DES算法本身并没有大量的复杂数学计算(如乘、带进位的加、模等运算)3,在加/解密过程和密钥生成过程中仅有逻辑运算和查表运算,因而,无论是从系统性能还是加/解密速度的角度来看,采用硬件实现都是一个理想的方案。1.2. 2 PLD发展过程 当今社会是数字化的社会,是数字集成电路广泛应用的社会。信息高速公路,多媒体电脑,移动电话系统,数字电视,各种
19、自动化设备以及我们日常的一些小制作都要用到数字集成电路。随着科学技术的发展,数字集成电路本身也在不断地进行更新换代.它由早期的电子管,晶体管,小规模集成电路,中规模集成电路,大规模集成电路,发展到超大规模集成电路以及许多具有特定功能的专用集成电路。但是,随着微电子技术的发展,设计与制造集成电路的任务己不完全由半导体厂商来独立承担。系统设计们更愿意自己设计专用集成电路(ASIC)芯片,而且希望ASIC的设计周期尽可能短,最好在实验室就能设计出合适的ASIC芯片,并且立即投入实际应用之中,因而出现了现场可编程逻辑器件(FPLD),其中应用最广泛的当属现场可编程门阵列(FPGA)和复杂可编程逻辑器件
20、(CPLD)4 。 早期的可编程逻辑器件只有可编程只读存贮器(ROM),紫外线可擦除只读存贮器(EPROM)和电可擦除只读存贮器(EEPROM)。其后,出现了一类结构上稍复杂的可编程芯片,即可编程逻辑器件(PLD),它能够完成各种数字逻辑功能。这一阶段的产品主要有PAL(可编程逻辑阵列)和GAL(通用阵列逻辑)。这些早期的PLD器件的一个共同特点是可以实现速度特性较好的逻辑功能,但其过于简单的结构也使他们只能实现规模较小的电路。而FPGA和CPLD则都具有体系结构和逻辑单元灵活,集成度高以及实用范围宽等特点。他们可以实现较大规模的电路,编程也很灵活,而且有具有设计开发周期短,设计制造成本低,开
21、发工具先进,标准产品无需测试,质量稳定以及可实时在线检验等优点,因此被广泛应用于产品的原型设计和产品生产。几乎所有应用门阵列,PLD和中小规模通用数字集成电路的场合均可应用FPGA和CPLD器件。FPGA芯片及其开发系统问世不久,就受到世界范围内电子工程设计人员的广泛关注和普遍欢迎。综上所述,应用FPGA来设计和实现DES加密系统具有十分重要的现实意义和广阔的应用前景。1.3本文主要工作及章节安排1.3.1本文主要工作 本文研究的主要内容就是应用FPGA来设计和实现DES加密系统.具体完成了以下三方面的工作: I: 完成了DES加密系统的整体设计。整个系统包括DES加密核心模块,UART通信接
22、口模块和BLOCKRAM存储模块。 2: 以EITS2003开发板为硬件开发平台,ISEwebpack为开发软件,用Verilog硬件描述语言设计并且实现了三大模块的具体功能及整体连接。3: 用PC,串口调试工具,UART通信接口和EITS2003开发板测试并验证了整个系统的功能。1.3.2章节安排 全文共分五章,各章内容安排如下: 第一章介绍了DES加密系统的研究背景,现状,意义及应用前景。 第二章介绍了DES加密算法原理以及系统的开发环境。 第三章介绍了DES加密系统的设计与实现。整个系统由三大模块组成:DES加密核心,UART通信接口模块和BLOCKRAM存储模块。 第四章对系统进行了性
23、能分析并对系统进行了功能验证。第五章介绍了DES加密系统在军事通信总站内的应用方案。本章小结本章首先介绍了DES的基本概念及特点,然后讲述了DES加密系统的研究背景,现状,意义及应用前景。本章的最后给出了本文的主要研究工作及各章节的安排。第二章DES加密算法原理及系统开发环境2.1 DES加密算法原理2. 1. 1 DES加密算法原理简介 DES运算的明文(加密前数据)和加密密钥都是64位的,将原始数据经过初始的置换,然后与子密钥(由加密密钥产生)经过一系列迭代运算,最后再经过逆置换,即可到密文(加密后数据)。解密过程与此类似。分组密码是将明文消息编码表示后的数字序列X1,X2,Xi.划分成长
24、为m的组=(),各组(长为m的矢量)分别在密钥=()的控制下变换成等长度的输出数字序列()(长为n的矢量),其加密函数×,是维矢量空间。 为密钥空间, 如图1所示,DES算法是64位明文由一个初始序列变换(IP)开始,经过16轮的加密运算,再通过初始序列变换的逆变换(IIP)得到所需的密文。在每一轮中,数列块的右边32位数据和密钥(KEY)一起传送给函数f,函数f运算的结果再和数列块左边32位数据进行异或操作。其中S盒(选择函数)是DES算法的心脏,靠它实现非线性变换5。2. 1. 2初始序列变换IP如表1所示:表2-1 IP IP运算可以描述为将原数据序列中第58位作为新序列中的第
25、1位,原序列中的第50位作为新序列中的第2位,其他位也都同样地进行序列变换,最后一位数据是原序列的第7位6。 图1中的具体运算如以下算式(1),(2),(3)所示:L=R (1)R=Lf(R,K)Kn=KS(n,KEY) (2)Ln=Rn-1Rn=Ln-1f(R,Kn) (3)初始序列变换的逆运算(IIP)如表2所示:表2-2 IP序列变换的过程和IP类似。2.1.3加密函数f加密函数f的运算框图如图2所示7。图2-2加密函数f的运算框图E运算是一个函数,它将32位输入数据扩充为48位的数据块作为输出。E(R)的前三位在R中的位置分别是32, 1和2,而E(R)中的最后两位则分别是R中是第32
26、和1位。表2-3 E变换表每个单独的选择函数S1 ,S2. ., S8 ,将6位数据块作为输入,并且产生4位数据块作为输出,选择函数S,根据下表进行运算。表2-4选择函数S1 假设S1是如上表定义的选择函数,B是输入的6位数据块,那么S1(B)定义如下:B的第1和6位构成03的一个数,设它为i。B的中间4位代表015的一个数,设它为j。在上表中查询第i行,第j列的那个数。比如,输入6位数据为011011,行是01,表示第1行,列由1101定义,表示第13列。第l行第13列的数是5,那么输出就0101 选择函数S1 ,S2. ., S8分别如下所示; 表2-5选择函数S图2-2中的P运算如下表所
27、示:表2-6 P运算2.1.4子密钥生成 图2-3子密钥生成 首先,64位的密钥KEY通过阵列选择变换操作PC-1,成为48位数据。这48位数据又被分成两个部分,第1部分为C0,第2部分为D0。如果KEY的数据从1到64进行标号,那么C0就分别是KEY的57, 49, 41, ,44和36位,同样地,D0分别是KEY的63, 55, 47,,12和4位。表2-7 PC-1C0和D0定义后,再接着定义Cn和Dn如何从Cn-1:和Dn-1得到,n=1,2, ,16。这是根据表7的每个数据块的左移运算完成的。表2-8左移表 比如,C3和D3分别由C2和D2通过左移两位得到,C16和D16分别由C15
28、和Dl5左移位得到。为了得到子密钥,Cn和Dn需经过阵列选择变换PC-2的运算8 a。PC-2如下: 表2-9 PC-2DES算法的原理和整个过程如上所述。2.2系统开发环境2. 2.1硬件开发平台EITS2003 EITS2003是多用途EDA(电子设计自动化)开发实验平台,核心器件是Xilinx公司的Spartan-IIE系列的FPGA芯片,可选型号的门阵列规模从5万门到30万门不等.Spartan一IIE基于先进的Virtex-E FPGA架构,专为价格敏感的消费类电子设计,具有强大的功能,可能达到与ASIC相比拟的系统级集成度9。 平台在设计中兼顾了试验与科研开发的需要,在提供了大量可
29、用IO同时,采用核心芯片“嵌入式”的架构,使得可以在Spartan-IIE多种型号间自由选择所需的目标芯片。这种主芯片嵌入式结构,连同平台设计中采用的其他耐用性措施,使得平台具有灵活的使用方式,长期的使用寿命和低廉的维护费用。EITS2003实验平台在FPGA周围提供了丰富的资源:有串口,PS/2接口,VGA接口,LED和七段数码显示管,拨码开关和按钮,AT89S52单片机,SRAM, 12C, A/D, D/A转换,扬声器,电源,时钟晶振等10。EITS2003的用户可以在PC机上通过并口对FPGA进行配置,也可以使用板上的单片机配合EEPROM来配置FPGA。EITS2003的性能与特点:
30、*可编程逻辑器件Xilinx Spartan-IIE系列FPGA-XC2S100E,PQ208封装,10万门,其他兼容可选的FPGA规模从5万门到30万门不等。*板载晶体震荡器,50MHz频率,可选购晶振频率从l0MHz到100MHz: *六个按钮和一个八路拨码开关,可用作通用地逻辑输入;*八个LED和四个七段数码管,可用来显示FPGA和单片机的输出信息; *标准RS232接口,可方便的连接PC及其他工业设备; *标准PS/2接口,用来外联键盘或鼠标,扩展输入设备; *标准VGA接口,可显示64种颜色; *集成Xilinx PBI型并口下载接口,允许PC机下载配置文件; *ADC电路,把FPG
31、A的数字信号转换成模拟信号输出; *板载Atmel S系列的AT89S52单片机,可减轻FPGA编程负担,也可独立进行单片机实验,AT89S52不需要编程器,在线可编程; *I2C EERPROM-24C256,提供另一种通用存储方式; *恒定直流供电,分为5V, 3. 3V, 1.8V o 实物图如下: 图2-4 EITS2003实验开发板2. 2. 2软件开发工具ISE WebPackEITS2003选用的软件是Xilinx公司提供的ISE5.2 WebPack,加上配合ISE使用的ModelSim Xilinx Edition(MXE)5.6E11。WebPack是基于Xilinx工SE
32、的一个软件套件,提供了原理图输入,综合,布局布线,编程下载等功能。在仿真方面,Mentor公司的Model Technology为Xilinx ISE专门定制T一个Xilinx版本的ModelSim,称为ModelSim Xilinx Edition(MXE)。 MXE可以用来做逻辑仿真(前仿真),也可以做精确的布局布线后仿真(后仿真)。配合MXE的仿真,ISE WebPack提供T基于GUI的TestBench生成工具,方便直观的生成用户想要的测试模块。下面是WebPack结合MXE的典型设计流程: 图2-5 WebPack典型设计流程 1:根据设计思路进行逻辑输入,可以选择的有:使用ECS
33、进行原理图输入,使用Design Entry进行硬件描述语言输入(VHDL, Ver i logHDL, ABEL),使用StateCAD进行状态机转换图的输入。 2:使用MXE进行功能仿真,仿真时可以自己单步控制逻辑量的变化,也可以用语言写一个TestBench来进行仿真,还可以使用WebPack中提供的TestBench生成工具HDLBencher来用图形化的界面生成一个TestBencho 3:使用Xilinx ISE WebPack中集成的XST综合工具进行逻辑综合。 4:在布局布线这个步骤中,对FPGA来说,有四个步骤: 1) Translate一解释设计,执行规则检查。 2) Ma
34、p一对不同的目标器件来计算和分配资源。 3) Place and Route一对可配置逻辑块进行布局,使用布线资源. 4) Configure一生成可以下载编程的Bit流文件。 5:在布局布线后,也可以使用与功能仿真相同的TestBench来对设计进行仿真,这称为后仿真。后仿真结合了布局布线的因素,可以精确的反映下载后芯片内部的执行情况,可以观测逻辑变量的延迟情况,毛刺,冒险竞争等。 6:使用WebPack集成的IMPACT工具进行下载芯片。2. 2. 3硬件描述语言Yerilog IiDL 硬件描述语言HDL是一种用形式化方法描述数字电路和系统的语言。利用这种语言,数字电路系统的设计可以从上
35、层到下层(从抽象到具体)逐层描述自己的设计思想,用一系列分层次的模块来表示极其复杂的数字系统。然后,利用电子设计自动化(EDA)工具,逐层进行仿真验证,再把其中需要变为实际电路的模块组合,经过自动综合工具转换到门级电路网表。接下去,再用专用集成电路ASIC或现场可编程门阵列FPGA自动布局布线工具,把网表转换为要实现的具体电路布线结构12。 硬件描述语言HDL的发展至今己有20多年的历史,并成功地应用于设计的各个阶段:建模、仿真、验证和综合等。到20世纪80年代,已出现了上百种硬件描述语言,对设计自动化曾起到了极大的促进和推动作用。但是,这些语言一般各自面向特定的设计领域和层次,而且众多的语言
36、使用户无所适从。因此,急需一种面向设计的多领域、多层次并得到普遍认同的标准硬件描述语言。20世纪80年代后期,VHDL和Verilog HDL语言适应了这种趋势的要求,先后成为IEEE标准。 Verilog.HDL是一种应用广泛的硬件描述语言,可以用于从算法级,门级到开关级的多种抽象层次的数字系统设计。 Verilog HDL是在1983年,由GDA (Gateway Design Automation)公司的PhilMoorby首创的。Phil Moorby后来成为Verilog-XL的主要设计者和Cadence公司的第一合伙人。在19841985年,Phil Moorby设计出T第一个名为
37、Verilog-XL的仿真器;1986年,他对Verilog HDL的发展又作出了另一个巨大的贡献:提出了用于快速门级仿真的XL算法。 随着Verilog-XL算法的成功,Verilog HDL语言得到迅速发展。1989年,Cadence公司收购 GDA公司,Verilog HDL语言成为Cadence公司的私有财产。1990年,Cadence公司决定公开Verilog HDL语言,于是成立了OVI (Open Verilog International)组织,负责促进Verilog HDL语言的发展。基于Verilog HDL的优越性,IEEE于1995年制定了Verilog HDL的IEE
38、E标准,即Verilog HDL 1364-1995; 2001年发布了Verilog HDL 1364-2001标准。在这个标准中,加入了 Verilog HDL-A标准,使Verilog有了模拟设计描述的能力。 从语法结构上看,Verilog HDL语言与C语言有许多相似之处,并继承和借鉴了C语言的多种操作符和语法结构。下面列出的是Verilog HDL硬件描述语言的一些主要特点:l 能形式化地表示电路的结构和行为。l 借用高级语言的结构和语句,例如条件语句,赋值语句和循环语句等,在VerilogHDL中都可以使用,既简化了电路的描述,又方便了设计人员的学习和使用。l 能够在多个层次上对所
39、设计的系统加以描述,从开关级,门级,寄存器级到功能 级和系统级,都可以描述。设计的规模可以是任意的,语言不对设计的规模施家任何限制。l Verilog HDL具有混合建模的能力,即在一个设计中各个模块可以在不同设计层次 上建模和描述。l 基本逻辑门,例如and, or和nand等都内置在语言中;开关级结构模型,例如pmos和nmos等也被内置在语言中,用户可以直接调用。l 用户定义原语创建的灵活性。用户定义的原语既可以是组合逻辑原语,也可以是 时序逻辑原语。Verilog HDL还具有内置逻辑函数。 Verilog HDL语言最大的特点就是易学易用,通过学习和使用,可以在最短的时间内掌握该语言
40、。另外,该语言的功能强大,可以满足各个层次设计人员的需要,从高层的系统描述到地层的版图设计,都可以很好的支持。由于Verilog HDL巨大的优越性,使得它广泛流行,尤其是在ASIC设计领域,更是处于主流地位。在美国,日本等国家,Verilog HDL语言也一直是使用最为广泛的硬件描述语言,其使用人数大大超过其他语言的使用人数。在国内,Verilog HDL的应用群体也在不断扩大,越来越多的人使用该语言进行设计和仿真。本章小结本章先介绍了DES加密算法的基本原理,然后介绍了本系统开发的环境,包括硬件,硬件开发平台EITS2003,软件开发工具ISE WebPack和3硬件描述语言Verilog
41、 HDL。第三章DES加密系统设计与实现3.1 DES加密系统设计方案整个系统包括DES加密核心,UART通信接口和BLOCKRAM存储模块三大功能块,DES加密核心即对DES算法的硬件实现,以在合理的资源占用下实现尽可能高的性能为目标;而UART通信接口则负责加密核心与外界通信链路之间的数据吞吐。由于外界通信链路的速率不尽相同,如何协调加密核心与通信接口之间的数据率也是一个值得考虑的问题。FPGA内部的B1ockRAM主要起到两方面作用:1、缓冲数据;2, UART与DES模块之间的位宽转换。3.1.1 DES加密核心设计方案DES加密算法以多轮的密钥变换轮函数和密钥十数据运算轮函数为特征,
42、与之相对应的硬件实现,既可以通过轮函数的16份硬件拷贝,达到深度细化的流水线处理,实现性能上的最优;也可以通过分时复用,重复调用一份轮函数的硬件拷贝,以时间换空间,从而得到硬件资源占用上的最小化。究竟选择怎么样的实现方式,根据实际硬件条件进行了选择。1 性能优先方案:采用循环全部打开和流水线结构来设计。循环全部打开后,实现全部16个轮函数的硬件级联,只要一个时钟周期就可以完成一个数据块的加密或解密;通过多占很大的空间来换得速度上的大幅度提高,然后再在每轮的中间加上寄存器来实现流水线。在第一时钟周期,第一块数据经过第一轮处理存入寄存器1中。在下一个时钟周期,寄存器1中的结果经过第二轮处理存入寄存
43、器2中;同时,第二块数据可以经过第一轮处理存入寄存器1。这样,多块数据实现了同时处理,使得加/解密速度可以提高近16倍,确实让性能有了大幅度的提高,但是由于实验平台上搭载的Spartan IIE FPGA总资源为10万门左右,一味地追求性能无疑是不切实际的。后来的综合验证肯定了这一观点13。2 资源优先方案:与性能优先方案相反,资源优先仅硬件实现一套密钥变换轮函数和密钥+数据运算轮函数,通过反复16次调用这一硬件结构来实现一次DES加密运算。这在大大减少硬件开销的同时也在性能上作出了相应的牺牲。基于性能和资源占用的综合考虑,采取了以资源优先方案为基础的实现形式,通过在轮函数内部设置3级流水线,
44、提高整体处理的速度性能;将数据+密钥轮函数和密钥变换函数在硬件上单独实现,减少了相邻流水线级间的逻辑复杂度14。最终采取的整体方案可以用下图简要表示:图3-1 DES加密核心原理图 通过设置轮计数器对所进行的轮运算进行计数,控制DATAMUX和KEYMUX两个数据选择器选择进入轮函数运算的是加密中间数据还是原始输入数据,以达到复用轮函数的目的。3.1. 2通信接口设计方案通信接口负责为DES加密核心吞吐数据,需要根据不同的通信介质进行设计,以以太网应用为例,需实现相应的以太网MAC控制器以与物理层设备接口,或提供与已有以太网控制器硬件相接口的逻辑总线。但是考虑到通用性的问题,由于通信链路速率的
45、不同,通信接口与DES加密核心之间很难实现数据传输和加密的同步,因此需要在两者之间设计相应的机制。在数据跨越不同时钟边界时,如何稳定可靠地传输数据是一个值得重视的问题,而握手或缓冲是常用的实现方案。由于Xilinx系列的FPGA普遍提供了片B1ockRAM.并且支持双端口、独立时钟操作,采用双口RAM实现FIFO缓冲为解决这一问题提供了切实可行的方案。考虑实验平台上硬件条件的限制,现成可用的通信接口只能选择UART。由于UART传输的低速率,无疑成为了整个系统性能的瓶颈,使得加密性能的实际测试无法进行。但是从功能演示和熟悉系统实现的流程上来说,UART的简易、可操作又不失为一个不错的选择。因此
46、,在本设计中,选取了UART作为通信接口15。UART通信接口部分的系统框图如下图所示:图3-2 UART通信接口原理图3.1.3 B1ockRA11存储模块设计方案对FPGA内部的B1ockRAM,考虑采用8片片内B1ockRAM并行的方式,UART数据帧(8位宽度)循环串行写入,DES模块则采取8片并行输入输出的方式来达到位宽匹配的目的16。3.1.4系统设计实现的功能本设计采用时钟独立的双口RAM,实现UART与DES加密核心之间的数据缓冲;采用片内8片8位宽度BlockRAM并行输入输出,实现与DES加密数据总线的位宽匹配。整个系统功能如下图所示: 图3-3系统功能简图3.2 DES加
47、密系统的实现 本设计采用试验开发板EITS2003上Xilinx公司SPARTANIIE结构的XC2S100e作为算法载体,通过UART串口进行实验板和PC的通信,将所需加(解)密的文件通过串口下载到FPGA的BLOCKRAM中,在FPGA中实现控制器和DES模块以及密钥的生成,通过控制器实现加、解密功能,最后将加(解)密完成的数据再次通过串口传回PC,可以通过现成的DES算法程序检验正确性。从前面的介绍可以看到,DES算法没有大量的复杂数学计算(如乘、带进位的加、模等),在加/解密过程和密钥生成过程中仅有逻辑运算和查表运算。这些特点为采用FPGA进行硬件实现提供了可能性和可行性。3. 2.1
48、 DES加密核心模块的实现3. 2.1.1 S盒设计通过分析发现,S盒在整个设计中占了很大的比重。S盒性能的提高对于整个设计性能会有很大的改善,因此S盒是整个设计优化的重点17。DES的8个S盒分别是一个满足特殊性能的64位的变换。在VHDL或Verilog语言中,可以直接用CASE语句来实现。这是最简单的实现方法,但是HDL语言都属于高级语言,它们强烈依赖于编译器的优化能力,往往对设计者来说,涉及得越少、编程越简单,代码效率越不高,这对于性能考虑的实现来说是不可取的。在实现过程中通过分析工具也发现,依赖于编译器的实现不但复杂,而且占用大量的空间。这样,S盒成了速度的瓶颈,为此,采用ROM来实
49、现。XC2S100的LUT可以配置为16X 1位的ROM,把输入的6位作为地址,对应的地址空间里存放的就是输出的4位,从而实现了6"4位的查找表LUT,所需时间只是FPGA中CLB的传输时间加上传输线上的延时,如图8。图3-4 S盒在XC2S100e的实现3.2.1.2密钥生成器设计 密钥生成器的设计是独立于DES轮函数运算实现的,采用3级流水线来与轮函数中的流水线相平衡,单轮的实现如图9。 其中,3级流水线由移位寄存器(SR)和1个触发器(FF)构成,在SR中完成两级流水线,在FF中实现第三级。XC2S100的LUT中的每个查找表LUT可以用来生成116个移位寄存器,而且在一个单独
50、的可配置逻辑功能块CLB中连接8个移位寄存器来构成一个128位的移位寄存器18。图3-5单轮子密钥生成在XC2S100e的实现3. 2. 1. 3 DES加密核心模块的顶层框圈通过上述分析,DES加密核心模块的顶层框图如下: 图3-6 DES加密核心模块的顶层框图3. 2. 2 UART通信接口模块的实现 RS - 232的实现通常采用专用的UART(Universal Asynchronous Receiver and Transmitter)接口芯片或利用单片机本身所带有的异步通信功能,但有些情况下也需要利用可编程芯片通过软件的编制来实现UART的功能。在本设计中,为了方便文件的传输,我们也设计了基于UA RT的串口通信模块。3. 2. 2.1通信协议 异步串口包括接收和发送两个部分。接收部分将收到的以帧为单位的串行输入信号转化为并行信号供取走。发送部分则完成信号的并一串转换。同时会给传送的8位数据加上起始位,奇偶校验位和停止位。异步串行通信关键要保证通信双方收发同步。由于没有时钟线,所以双方必须以一个固定的频率,同步的收发数据,才能保证数据传送的正确性19。异步串行通信的数据传送格式如下图: 3.2.2.2 UART通信接口实现原理串口发送数据格式:1位起始位(0),8位数据位,1位停止位(1),空闲位(1)。接收数据: 按照串口
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 防空设施租赁合同
- 如何撰写对外加工合同
- 托儿所门卫聘请合同样本
- 2024年融资业务咨询服务协议书
- 建筑工程钢筋工承包协议
- 2024年乌鲁木齐住宅租赁合同
- 建筑维修合同范本
- 土方工程推土机租赁合同
- 工程合同范本-土建合同样本
- 个人借款合同样式大全
- 唐钢钢材材质单(共2页)
- 美国高中化学酸碱反应 Acid-Base Reactions
- 施工现场临时用电安全检查表(共3页)
- 勇者斗恶龙9图文攻略
- 医院年度财务报表和部门决算报表审计工作规程
- 阳离子纤维素总结资料
- 学校(纸盘画)社团活动课程简案
- 下肢动脉置管溶栓的护理要点
- 现代自然科学大事年表(1894 1985)
- 阿坝藏族羌族自治州羌族文化生态保护实验区实施方案 - 阿坝州羌族
- 转体梁施工技术总结(宝兰-陈明涛)
评论
0/150
提交评论