2013级集成电路EDA设计与实践
第一章 绪论
1.1 DES加密系统的研究背景及意义
随着信息技术的发展,计算机应用渗透到社会生活的各个领域,特别是在军事中的应用,使人们对信息的依赖程度越来越大,从而使信息安全技术显得格外重要。从技术角度讲,网络安全除了依赖安全的网络通信协议及应用协议外,更多地取决于网络设备如交换机、路由器、网桥等所提供的加/解密功能。目前,基于DES算法的加/解密硬件广泛地应用于军事,卫星通信、网关服务器、机顶盒、视频传输以及其它大量的数据传输业务中。
DES加密技术是一种常用的对称加密技术,该技术算法公开,加密强度大,运算速度快,在各行业甚至军事领域得到广泛的应用。DES算法从1977年公布到现在已有将近30年的历史,虽然有些人对它的加密强度持怀疑态度,但现在还没有发现实用的破译DES的方法。并且在应用中,人们不断提出新的方法增强DES算法的加密强度,如3重DES算法、带有交换S盒的DES算法等。因此DES算法在信息安全领域仍有广泛地应用。
采用软件方式实现的DES算法会在很大程度上占用系统资源,造成系统性能的严重下降,而DES算法本身并没有大量的复杂数学计算(如乘、带进位的加、模等运算),在加/解密过程和密钥生成过程中仅有逻辑运算和查表运算,因而,无论是从系统性能还是加/解密速度的角度来看,采用硬件实现都是一个理想的方案。
1.2 DES基本概念及特点
数据加密标准(Data Encryption Standard,DES),作为ANSI(American National Standards Institute,美国国家标准学会)的数据加密算法(Data Encryption Algorithm,DEA)和ISO(International Organization for Standardization,国际标准化组织)的DEA-1,成为一个世界范围内的标准己经20多年了。DES起源于1973年美国国家标准局(NBS)征求国家密码标准方案。IBM就提交了其在20世纪60年代末设立的一个计算机上密码编码学方面的研究项目的成果的结果,这个项目在1971年底研制了一种称为Lucifer的算法。
6
2013级集成电路EDA设计与实践
它是当时提出的最好的算法,因而在1977年被选为数据加密标准,有效期限为5年,随后在1983,1987,1993年三次再度被授权续用5年。
DES(Data Encryption Standard)满足了国家标准局欲达到的4个目的:提供高质量的数据保护,防止数据未经授权的泄露和未被察觉的修改;具有相当高的复杂性,使得破译的开销超过可能获得的利益,同时又要便于理解和掌握。
DES算法把64位的明文输入块变为64位的密文输出块,它所使用的密钥也是64位,首先,DES把输入的64位数据块按位重新组合,并把输出分为L0、R0两部分,每部分各长32位,并进行前后置换(输入的第58位换到第一位,第50位换到第2位,依此类推,最后一位是原来的第7位),最终由L0输出左32位,R0输出右32位,根据这个法则经过16次迭代运算后,得到L16、R16,将此作为输入,进行与初始置换相反的逆置换,即得到密文输出。
DES算法的入口参数有三个:Key、Data、Mode。其中Key为8个字节共64位,是DES算法的工作密钥;Data也为8个字节64位,是要被加密或被解密的数据;Mode为DES的工作方式,有两种:加密或解密,如果Mode为加密,则用Key去把数据Data进行加密,生成Data的密码形式作为DES的输出结果;如Mode为解密,则用Key去把密码形式的数据Data解密,还原为Data的明码形式作为DES的输出结果。在使用DES时,双方预先约定使用的”密码”即Key,然后用Key去加密数据;接收方得到密文后使用同样的Key解密得到原数据,这样便实现了安全性较高的数据传输。DES算法在POS(Point Of Sells,电子收款机系统),ATM(Automatic Teller Machine,自动取款机),IC卡,加油站,高速公路收费站等领域被广泛应用。
1.3 DES加密原理
DES算法的加密过程经过了3个阶段(如图2-1所示):首先,64位的明文在一个初始置换IP后,比特重排产生了经过置换的输入,明文组被分成右半部分和左半部分,每部分32位,以L0和R0表示。接下来的阶段是由对同一个函数进行16次循环组成的,16轮迭代被成为乘积变换或函数F。这个函数本身既包含换位又包含替代函数,将数据和密匙结合起来,最后1轮的输出由64位组成,左边和右边两部分经过交换后就得到预输出。最后阶段,预输出通过一个逆初始
7
2013级集成电路EDA设计与实践
置换IP-1算法就生成了64位的密文结果。
DES的详细加密计算过程如图1-1所示。
密钥生成 迭代 密钥选取 密钥移位 等分密钥 56位密钥 明文 初始换位 数据扩展 数据压缩 数据换位 交换数据 迭代 数据整理 密文
图1-1 DES加密处理略图
8
2013级集成电路EDA设计与实践
1.4 硬件描述语言VHDL简介
传统的硬件电路设计方法是采用自下而上的设计方法,即根据系统对硬件的要求,详细编制技术规格书,并画出系统控制流图;然后根据技术规格书和系统控制流图,对系统的功能进行细化,合理地划分功能模块,并画出系统的功能框图;接着就进行各功能模块的细化和电路设计;各功能模块电路设计、调试完成后,将各功能模块的硬件电路连接起来再进行系统的调试,最后完成整个系统的硬件设计。采用传统方法设计数字系统,特别是当电路系统非常庞大时,设计者必须具备较好的设计经验,而且繁杂多样的原理图的阅读和修改也给设计者带来诸多的不便。为了提高开发的效率,增加已有开发成果的可继承性以及缩短开发周期,各ASIC研制和生产厂家相继开发了具有自己特色的电路硬件描述语言(Hardware Description Language,简称HDL)。但这些硬件描述语言差异很大,各自只能在自己的特定设计环境中使用,这给设计者之间的相互交流带来了极大的困难。因此,开发一种强大的、标准化的硬件描述语言作为可相互交流的设计环境已势在必行。于是,美国于1981年提出了一种新的、标准化的HDL,称之为VHSIC(Very High Speed Integrated Circuit)Hardware Description Language,简称VHDL。这是一种用形式化方法来描述数字电路和设计数字逻辑系统的语言。设计者可以利用这种语言来描述自己的设计思想,然后利用电子设计自动化工具进行仿真,再自动综合到门级电路,最后用PLD实现其功能。 综合起来讲,VHDL语言具有如下优点:
1.覆盖面广,描述能力强,是一个多层次的硬件描述语言。在VHDL语言中,设计的原始描述可以非常简练,经过层层加强后,最终可成为直接付诸生产的电路或版图参数描述。
2.具有良好的可读性,即容易被计算机接受,也容易被读者理解。
3.使用期长,不会因工艺变化而使描述过时。因为VHDL的硬件描述与工艺无关,当工艺改变时,只需修改相应程序中的属性参数即可。
4.支持大规模设计的分解和已有设计的再利用。一个大规模的设计不可能由一个人独立完成,必须由多人共同承担,VHDL为设计的分解和设计的再利用提供了有力的支持。
9
2013级集成电路EDA设计与实践
1.5 Quartus ||开发工具简介
Quartus II是Altera公司推出的CPLD/FPGA开发工具,Quartus II提供了完全集成且与电路结构无关的开发包环境,具有数字逻辑设计的全部特性,包括:
1.可利用原理图、结构框图、VerilogHDL、AHDL和VHDL完成电路描述,并 将其保存为设计实体文件;
2.芯片(电路)平面布局连线编辑;
3.LogicLock增量设计方法,用户可建立并优化系统,然后添加对原始系统的性能影响较小或无影响的后续模块; 4.功能强大的逻辑综合工具;
5.完备的电路功能仿真与时序逻辑仿真工具; 6.定时/时序分析与关键路径延时分析;
7.可使用SignalTap II逻辑分析工具进行嵌入式的逻辑分析; 8.支持软件源文件的添加和创建,并将它们链接起来生成编程文件; 9.使用组合编译方式可一次完成整体设计流程; 10.自动定位编译错误; 11.高效的编程与验证工具;
12.可读入标准的EDIF网表文件、VHDL网表文件和Verilog网表文件; 13.能生成第三方EDA软件使用的VHDL网表文件和Verilog网表文件。 Quartus II设计流程:
1.设计输入:完成期间的硬件描述,包括文本编辑器、块与符号编辑器、 MegaWizard插件管理器、约束编辑器和布局编辑器等工具; 2.综合:包括分析和综合器以、辅助工具和RTL查看器等工具;
3.布局连线:将设计综合后的网表文件映射到实体器件的过程,包括Fitter工具、约束编辑器、布局图编辑器、芯片编辑器和增量布局连线工具; 4.仿真:Quartus II提供了功能仿真和时序仿真两种工具;
5.器件编程与配置:包括四种编程模式,即被动串行模式、JTAG模式、主动串行模式和插座内编程模式。
使用New Project新建一个工程的过程:
10