(通信与信息系统专业论文)基于fpga加密模块研究及上端软件平台开发.pdf_第1页
(通信与信息系统专业论文)基于fpga加密模块研究及上端软件平台开发.pdf_第2页
(通信与信息系统专业论文)基于fpga加密模块研究及上端软件平台开发.pdf_第3页
(通信与信息系统专业论文)基于fpga加密模块研究及上端软件平台开发.pdf_第4页
(通信与信息系统专业论文)基于fpga加密模块研究及上端软件平台开发.pdf_第5页
已阅读5页,还剩53页未读 继续免费阅读

(通信与信息系统专业论文)基于fpga加密模块研究及上端软件平台开发.pdf.pdf 免费下载

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

文档简介

摘要 摘要 随着计算机网络技术的飞速发展和广泛的应用,人们通过计算机网络传输的 信息量也日益增加,这使得数据安全显得尤为重要,因此,研究对信息有加密功 能的数据加密卡有着广泛的应用空间和价值。 本文的目的在于研制一种用于个人及企业使用的数据加密卡,它具有加密速 度快,安全,方便携带,成本低的优点。针对d e s 加密算法密钥过短的缺点,而采 用了密钥相对更长的3 一d e s 加密算法对数据加密,并实现了基于f p g a 硬件平台加密 模块。 本文首先介绍了d e s 加密算法和3 一d e s 加密算法的原理,然后在q u a r t u s 软件 环境下,使用v e r io g 硬件描述语言设计d e s 加密芯片电路和3 一d e s 加密芯片电路, 在m o d elsim 下,对所研制的d e s 加密芯片电路和3 _ d e s 加密芯片电路设计进行了仿 真验证。最后将设计好的电路下载到f p g a 开发板上,q u a r t u s 软件环境下,对电 路做最后的仿真测试,达到了预期的设计要求。 软件部分通过串口与开发板连接,在软件中发送测试数据给硬件加密电路, 数据经过加密锯密后传回软件,显示在软件界面中,从而实现对加密解密数据验 证的目的。 关键词:d e s ;3 d e s ;加密芯片 黑龙江大学硕十学位论文 a b s t r a c t w i t ht h er a p i dd e v e i o p m e n ta n dw i d ea p p ii c a t i o n so fc o m p u t e rn e t w o r k t e c h n oio g y m o r ea n dm o r e in f o r m a tio nist r a n s m it t e dt h r o u g hc o m p u t e r n e t w o r k s w h i c hm a k e st h ed a t as e c u r i t yb e c o m ep a r t i c u i a ri yi m p o r t a n t t h e r e f o r e s t u d yin gt h ed a t ae n c r y p tio nc a r dw ;t he n c r y p tio nf e a t u r e sf o r i n f o r m a t i o nh a sv a i u ea n dw i d ea p p ii c a t i o ns p a c e t hist h e sis ist od e v e io pak in do fd a t ae n c r y p tio nc a r d ,w h ic h h a s t h ea d v a n t a g e ss u c ha sf a s te n c r y p tio n , s e c u rit y , p o r t a b i lit y ,a n ds oo n d e se n c r y p t io na lg o ri t h mf o rt h es h o r t c o m in g so ft h ek e yist o os h o r t a n d r e i a t i v e i yi o n g e ru s i n gt h ek e y3 一d e se n c r y p t i o na l g o ri t h mt oe n c r y p tt h e d a t a , a n di m pie m e n t a tio no ff p g a b a s e dh a r d w a r epia t f o r mc r y p t o g r a p hic m o d u i e t hist h e sisin t r o d u c e st h ed e s 3 一d e se n c r y p tio naig o rit h m a n dt h e n iu s ev e r ii o gh a r d w a r ed e s c r i p t i o nl a n g u a g et od e s i g nd e se n c r y p t i o nc h i p c ir c u i ta n d3 一d e se n c r y p t i o nc h i pc ir c u i t r yi nq u a r t u ss o f t w a r e e n vir o n m e n t ,a n dt h ed e se n c r y p tio nc hipcir c ui ta n d3 一d e se n c r y p ti o nc hip c ir c u i tw a ss i m u i a t e di nm o d e l s i m f i n a ii y t h ed e s i g n e dc ir c u i ti s d o w nio a d e dt ot h ef p g ad e v e io p m e n tb o a r d a n dt h ecir c ui tissi m u la t e din q u a r t u si i t h esi m uia tio na c hie v e st h ed e sig nr e q uir e m e n t s s o f t w a r eisc o n n e c t e dt ot h ed e v eio p m e n tb o a r dt h r o u g ht h es e riai p o r t a n dt h e nw es e n dt e s td a t ai nt h es o f t w a r et oh a r d w a r ee n c r y p ti o nc ;r c u i t t h ed a t aisr e t u r n e dt os o f t w a r ea f t e rt h ee n c r y p tio na n dd e c r y p t io n ,a n d t h ed a t aisd i s p i a y e di nt h es o f t w a r ej n t e r f a c e ,a n d t h ee n c r y p t i o na n d d e c r y p t i o no fd a t ai sv a ii d a t e d k e y w o r d s :d e s ,3 d e s e n c r y p t io nc hip u - 第一章绪论 第一章绪论 1 1 课题研究背景与意义 近些年来,计算机网络技术得到了飞速的发展和广泛的应用,人们通过计算 机网络传输的信息量也日益增加,这使得数据安全显得尤为重要,因此,对信息 有加密功能的数据加密卡有着广泛的应用空间,对数据加密技术和硬件加密产品 的研究有着重要意义和价值【1 2 】。 硬件加密技术相比软件加密方案有着明显的优势,主要表现为:硬件加密产 品具有加密速度快,保密性强的特点p 】。目前,由于集成电路的快速发展,f p g a 在容量、性能和可靠性上有了很大的提高,采用f p g a 设计数据加密产品已成为 主要设计方式之一,基于f p g a 的加密技术研究已成为一个新的研究热点1 4 1 。 数据信息的安全性关系到国家利益、集体利益和个人利益,目前我国没有自 己的互联网,在网络上传输数据是很不安全的,容易被其他人篡改和盗取信息, 以至于造成重大经济损失,所以,必须拥有自主知识产权的数据加密产品,并且 加大在此类产品上的研发能力,这样有利于我们应对全球激烈的信息战,并且在 这场没有硝烟的战争中拥有主动性是至关重要的事情。独立研发基于f p g a 的数 据加密芯片不仅具有现实意义,而且具有经济效益。 本课题研究的数据加密卡是将密钥生成模块、数据接口模块、控制模块和加 密算法模块组成加密芯片,并在f p g a 硬件申实现对数据加密解密的功能,使得一 数据信息在网络安全传输。 1 2 国内外研究进展及现状 1 2 1 序列密码 在1 9 4 9 年,信息论的创始人s h a n n o n 发表了保密系统的通信理论,从而奠定 黑龙江大学硕士学位论文 了近代密码学的理论基础【5 1 。序列密码是密码技术的一个非常重要的分支,序列 密码也称之为流密码,序列密码的原理是将明文序列使用密钥序列逐位运算加密, 加密后的新数据称之为密文。在实际应用中,为了到达上述要求,密钥序列大多 是采用移位寄存器来产生的【咖。 在f p g a 中,实现移位寄存器的功能是比较容易的,而且线性反馈移位寄存 器序列具有很好的随机性【】。对于长度为n 的线性反馈移位寄存器来说,发生器 前n 位输出就是它的内部状态【1 m 1 2 1 。线性反馈移位寄存器序列的理论已经十分成 熟,m 序列具有非常好的随机性【”。1 们。我们为了获得较高的序列线性复杂度和随 机性,可以采取对多个线性移位寄存器序列进行非线性组合的办法【1 弛1 1 。 1 2 2d e s 加密算法 目前在国内,d e s 加密算法在金融行业、公共交通行业、学校等领域被广泛 使用,如各种磁卡,从而实现对重要数据的保护,防止他人盗取篡改田】。 数据的保护工作主要是用软件加密的方式实现的,就是用计算机实现对数据 加密解密的软件技术,但是这种方式有它的弊端,黑客技术不断发展的今天,用 软件方式来保护数据已经捉襟见肘了,这是由于软件加密技术在计算机运算时, 硬盘或者内存中不可避免地保存密钥,这样就有可能被他人获取,所以,从本质 上来说,通过软件实现的信息加密系统很难做到真正的保密功能;而采用f p g a 硬件加密技术就克服了软件加密技术的这个致命缺点,加密解密过程是在硬件加 密模块的内部运行的,而外界无法获得f p g a 硬件中的信息,这样就可以实现真 正意义上的数据保密和信息安全。由于微电子技术的发展,采用f p g a 硬件技术 实现的保密工作具有更好的优良特性,这种硬件方法具有高速数据加密解密、更 高可靠性的特点。由于d e s 工作在加密解密过程中,只是采用简单的移位运算、 简单的替换和简单的异或运算操作,所以,d e s 加密算法更适合采用f p g a 硬件 实现1 2 3 1 。 d e s 加密算法于1 9 7 7 年开始应用,随着计算机技术的飞速发展,特别是超 第一章绪论 高速计算机速度的提高和分布式计算大力发展,人们就可以利用很多台计算机穷 举攻击的方法来破解d e s ,就能够破译d e s 算法并获得任何5 6 位的密钥【2 4 1 。在 一个加密算法的选择过程中,这就要求该算法具有高的安全性,就是说黑客等攻 击者在知道了该算法的内部特性,但是仍然不能在一个短的时间内破译该算法, 也就是说,要求该算法应该具有不存在针对它的特定攻击方法,正是由于d e s 加 密算法具备了这样的性质,除了穷举攻击方法外,没有其他攻击能够破译d e s 加 密算法,因此d e s 加密算法是一种十分安全的加密算法。 目前,对d e s 算法提出了许多种改良方案,但是针对穷举攻击方法,只有增 加密钥空间长度的方法,使得破译时间延长,多重d e s 加密算法就是这样的改进 方案,它主要使用多个加解密密钥,利用d e s 加密算法对明文进行多次加密或者 解密,这样就能有效提高抵抗对初始密钥穷举搜索攻击的能力【2 卯。现在实际应用 最广泛的改进方案是3 d e s 加密算法,在基于f p g a 的d e s 加密产品中i 升级 使用3 d e s 加密算法时,在无需对原d e s 保密系统改动的情况下,既提高了该 系统的安全性,又不必更换现有的硬件资源,避免浪费,节约成本,所以对3 - d e s 加密算法的研究有很大的意义。 1 2 3f p g a 简介 现代互联网技术、多媒体电脑技术、现代移动电话系统以及我们日常生活中 的一些小电子产品都要用到数字集成电路,只是集成电路的规模不同【2 们。数字集 成电路本身也在不断地进步和更新换代,数字集成电路从早期体积很大的电子管, 到较小的晶体管,再到如今日常生活中经常使用到的超大规模集成电路,和很多 具有专一功能的集成电路。 现在,微电子技术的发展,实验室的开发人员更倾向于自己设计适合自己项 目的专用集成电路芯片,而且非常想让这个设计过程尽可能的缩短,能够很好的 将产品推上市场,抢占市场份额,并且最好在自己的实验室就能用简单的工具设 计出能够满足自己需要的集成电路a s i c 芯片,而且能够在最短的时间内完成测 黑龙江大学硕士学位论文 试和调试,批量生产,将科技快速转化为生产力,实现利益最大化,现场可编程 门阵列f p g a 和复杂可编程逻辑器件c p l d 的出现解决了这个问剐2 7 2 引。 f p g a 和c p l d 都具有结构比p l d 复杂、逻辑单元更加灵活、集成度更高和 实际应用范围更宽广的特点,正是由于他们具有这些优点,所以f p g a 和c p l d 可以用来实现规模较大、功能更复杂的电路,而且它们的编程也十分灵活;除了 上述优点外,它们还有具有设计开发周期短、设计制造成本低、开发工具先进( 更 新速度快) 优点,因此被广泛应用于产品的原型设计、产品的测试和产品生产。 高端的f p g a 内部资源是非常丰富的,具有由许多基本的逻辑单元组成的内 部阵列,逻辑单元之间的连接是通过其周围的布线通道互连实现,逻辑单元及布 线通道还可以由用户现场配置( 模块间与i o 之间的连接和断开) ,通过向内部静 态存储器单元加载配置数据来实现的,因此一块f p g a 通过不同的配置就可以实现 不同的逻辑功能,也可以在不跟换硬件电路时,方便的更新电路功能【2 9 1 。 f p g a 的性能指标不断的提升,规模也越来越大,功能也越来越全,时间性 也越来越好,而且f p g a 的这种特殊结构使得它具有多次编程性,具有快速对新 设计进行优化的灵活性,因而,现今的电子系统大量的采用f p g a 作为系统的核 心控制器件,f p g a 在数字系统设计中占据了越来越重要的位置。 1 3 本文主要研究内容 本文研究的主要内容就是基于f p g a 硬件芯片来设计和实现d e s 、3 - d e s 加 密模块,设计简单的软件来测试加密模块。具体完成了以下四方面的工作: l :用v e r i l o g 硬件描述语言设计d e s 、3 d e s 加密算法的整体设计,整个算 法主要包括d e s 、3 d e s 加密核心模块。 2 :用v 嘶1 0 9 硬件描述语言设计u a r t 通信接口模块,并且用串口调试工具, 调试u 趾盯通信接口。 3 :用谳l o g 硬件描述语言设计3 d e s 密钥生成模块,该模块由用户6 位初 始密钥作为输入,生成三组6 4 位密钥,供给3 d e s 加密解密模块使用。 第一章绪论 4 :在m i c r o s 0 rv i s u a ls t u d i o2 0 0 8 软件环境下设计软件平台,利用开发板和 软件平台测试并验证了整个系统的功能。 1 4 本文的结构安排 第一章是绪论。主要阐述了本课题的学术背景和研究意义、概括了国内外相 关领域的研究发展状况,最后给出了本文的研究内容和意义。 第二章是加密算法的介绍。首先,简单的介绍了密码学的基本知识;其次, 阐明了本课题的加密系统总体设计方案;第三,介绍了d e s 算法和算法的加密解 密过程;最后,指出了d e s 加密算法存在密钥过短的缺陷,阐述了改进的3 一d e s 加密算法以及它的加密解密过程。 第三章是基于f p g a 的d e s 和3 d e s 电路硬件设计和实现,是本文的重点。 首先,介绍了f p g a 的相关知识;其次,在深入分析算法的基础上,对采用f p g a 硬件方案实现d e 怒、3 d e s 进行了详细的研究,具体体现在各子模块的f p g a 实 现:第三,完成了d e s 、3 d e s 加密芯片电路的f p g a 设计,并给出了各个阶段 的子模块f p g a 设计图;最后,主要给出了各个阶段所做模块的仿真图和整个系 统运行在加密解密时的仿真图。 第四章是软件平台设计,主要包括软件界面设计和软件功能设计,之后还有 数据加密解密实验。 总结。本章是对课题研究工作的一个总结,叙述了研究的进展、研究的创新 点,并指出了不足之处和将来研究工作的方向。后面附有本文引用的参考文献和 本人发表的论文及在读研期间参加的科研项目,最后为本人的致谢。 黑龙江大学硕十学位论文 第二章加密算法 2 1d e s 加密系统现状及发展 随着计算机技术和网络技术的快速发展,二者已经应用到社会生活的各个领 域,人们在日常社会活动中对网络传输信息的依赖程度越来越大,因此,在网络 上确保信息安全显得十分重要【3 0 1 。从网络技术角度来说,网络的安全性除了依赖 安全的网络通信协议和应用协议外,还取决于网络安全设备,如交换机、路由器、 网桥等提供的数据信息加密解密功能。目前,基于d e s 算法的加密解密硬件产品 已经广泛地应用于网关服务器、通信、机顶盒等大量数据传输业务中i j 。 数据加密标准d e s ( d a :t ae r k :r ) 哦i o n s t a 玎d a r d ) 是由i b m 公司研制的,并由美国 国家安全局认证为安全的数据加密算法,并于1 9 7 6 年作为联邦标准,在1 9 7 7 年 美国国家标准局正式批准【3 2 1 。判断一个算法是否是安全的,应该要求算法必须满 足以下的几点设计标准【3 3 】: 1 、算法的安全性必须取决于对密钥的保密,而不能依赖于对算法本身的保密 性; 2 、算法应该具备一定的复杂度,而且不能太低; 3 、算法的细节必须公开,以便使任何人都能够在硬件中或软件中实现; 4 、算法的硬件实现必须实用,成本不需要太高,硬件运算速度不会太慢; 5 、在实时条件下应当能够测试和验证这种密码算法; d e s 算法从研制成功到现在已有将近4 0 年的历史了,d e s 具有很好的安全 性,虽然有些人对它的加密强度抱有怀疑态度,但现在还没有发现实用有效的破 译方法【3 4 1 。d e s 加密解密运算速度很快,也衍生了很多更安全的算法,如3 重 d e s 算法、带有交换s 盒的d e s 算法等,这也使得d e s 具有更强的安全性和应 用性3 5 1 。到目前为止,除了用穷举搜索法能对d e s 算法进行攻击外,人们还没有 发现更有效更快速的破译办法1 3 6 1 。可见,这个破译过程是难以实现的,因此,d e s 第章加密算法 算法在信息安全领域仍有广泛的应用。 2 2 系统总体设计 数据通过u 盯接口传送给f p g a 的加密部分进行加密解密,加密解密后的 数据再经过u 触玎接口送给计算机。加密部分主要包括两部分:数据加密模块和 密钥生成模块。数据加密部分采用d e s 加密算法或者3 d e s 加密算法。 加密解密流程图如图2 1 所示。由用户输入密码,并由密钥产生模块来产生 初始密钥k e y ,供给d e s 作为加密解密使用的密钥,实际加密解密过程中,密钥 k e y 只用到了“位中的5 6 位,这样密钥k e y 也具有高的安全性。接受数据i 是被加密解密明文数据。当f p g a 加密模块工作在加密模式时,i 明文数据被 按照每6 4 位划分为一组,划分完成后由许多组构成了明文数据组,用密钥k e y 对每一组明文数据组加密( 轮函数) ;当f p g a 工作模式为解密模式时,密钥k e y 则用于对密文数据解密。最后明文密文数据被送到发送模块t x 中,等待发送。 当出现超高速计算机后,我们应对穷举攻击方法主要是可考虑把d e s 密钥的 长度再增长一些,或者将初始密钥k e y 的安全级别提高,以此来提高d e s 加密算 法的安全性,因此,本设计中密钥生成部分将用户输入的六位个人密码经过m 序 列加密生成安全级别更高的密钥k c y ,使得加密解密过程更加安全。 黑龙江大学硕十学位论文 图2 1 加密解密流程图 f i g 眦2 1m n o wc h a r to f e m 吲叫o na n dd e 叫i ,p t i 2 3d e s 加密算法 2 3 1d e s 加密算法原理简介 d e s 算法的安全性并不是依赖于算法的保密性,而其安全性是依赖加密密钥 的安全性j 。d e s 算法是一个对称分组加密算法,它主要有四个入口参数:k 掣, d a l ai n ,d a _ t ao u t ,啪d e 。每6 4 位数据为一分组,对分组数据加密解密,6 4 位一 组的明文从算法的一端输入d a t ai n ,6 4 位的密文从另一端输出o l i t ;工作模 式有两种:加密和解密,用i d e 来选择。加密和解密用的是同一种算法,只是 加密过程和解密过程所使用的子密钥的顺序不同【3 引。密钥通常表示为“位的序 列,这6 4 位中有8 位被用作奇偶校验位,可以被忽略,所以参与加密解密过程中 的密钥长度是5 6 位,密钥就成了任意的5 6 位序列【”l 。 岳 第_ 章加密算法 科位明 6 4 l 密 图2 - 2d e s 加密解番框图 f i g 眦2 2b l o c kd i a 鲫no fd e s 朗吖面锄dd e c d r 两o n d e s 算法解密过程可以看成是将“位明文序列用6 4 位密文序列代替的结 果,这个过程所选用的运算方法使得当密钥改变一位,就可以使密文中的每一位 大约有5 0 的可能无法还原成相应的明文,所以解码位平均有一半以上是错误的。 d e s 加密解密过程是将原始数据经过初始的置换,然后经过一系列迭代运算 将置换后的数据与相应的子密钥作用完成加密,最后再将加密后的数据经过逆置 换,即可得到密文m l 。d e s 算法流程图如图2 3 所示,d e s 算法对6 4 位明文数 据运算加密,首先要将这6 4 位数据进行初始序列变换i p ,之后得到了两组3 2 位 数据,再将这两组数据经过图中的1 6 轮的加密解密运算,然后将两组数据合并成 “位数据,最后再通过初始序列i p 变换的逆变换i i p 得到“位的密文数据【4 i j , 算法结束。其中的1 6 次迭代运算中每次又包括:扩展运算e 、密钥加密运算、选 择压缩运算s 和置换运算p ,运算的结果再和块左边3 2 位数据进行异或操作, d e s 算法是通过s 盒来实现非线性变换的【4 2 1 。 黑龙江大学硕十学位论文 2 3 2 子密钥模块 图2 3 d e s 算法流程图 f i g 嗽2 3 n l en o wc l 掰0 f d e sa l 鲥吼 每次迭代运算中所使用的密钥长度都是4 8 位,而且每次迭代所使用的密钥均 不相同;子密钥产生框图如图2 - 4 所示,d e s 算法中输入的密钥长度为6 4 位,其 中有8 位是奇偶校验位,而实际参与加密解密运算的密钥长度为5 6 位,而1 6 次 加密解密迭代过程是在相应的1 6 个4 8 位子密钥( k ( d ,i = 1 ,2 ,1 6 ) 的控制下进行 的。初始的6 4 位子密钥k e y 经过置换选择p c i 去掉6 4 位密钥中的8 位奇偶校 验位,然后剩下的5 6 位密钥被分为左2 8 位密钥和右2 8 位的数据,并且左右2 8 位密钥按照规律做循环左移,每次迭代的移位次数如表2 2 所示,之后将左右2 8 位密钥合并成5 6 位密钥数据,然后将得到的新5 6 位密钥再根据表2 3 去掉相应 第审加密算法 的8 位数据,再经过阵列选择变换p c 2 的运算,最终得到1 6 个不同的4 8 位子密 钥【4 3 1 。 图2 4 子密钥产生模块流程图 f i g u 陀2 - 4 t h en o w c h a n0 fs 啦k e yg e n 钉撕蚰m o d u l e 表2 1 左右2 8 位数据 t a b l e 2 - 12 8b i td a _ t a 列 行 1234567891 0 l l 1 21 31 4 左l 5 74 94 l 3 32 5 1 79l5 85 04 23 4 2 61 8 左2 1 0 2 5 95 14 33 52 71 91 136 05 2 4 4 3 6 右l 6 35 54 7 3 93 12 3 1 5 76 25 44 63 83 02 2 右2 1 4 66 1 s 34 53 72 92 11 352 82 01 24 表2 2 循环移位 1 陌b l e2 2c i r c u l 盯s h i f i 第i 次循环迭代 l2 34567 8 91 01 l1 21 31 41 51 6 循环左移次数 l12 2 22 2 2l222222l 黑龙江大学硕士学位论文 表2 3 置换选择p c 2 t a b l e2 - 3r 叫咖e m 跎l e c t i 伽p c 2 勇 叭 12345678 l1 41 71 12 41532 8 21 562 1l o2 31 91 24 32 68 1 672 72 01 32 44 l5 23 13 74 75 53 04 0 55 l4 53 33 84 44 9 3 95 6 6 3 45 34 64 2 5 03 6 2 93 2 2 3 3 初始序列置换 初始序列置换i p 是按表2 - 4 的顺序将初6 4 位原始明文序列进行置换得到“ 位新的混乱明文数据序列,再将数据分成左3 2 位明文数据和右3 2 位明文数据。 表2 4 初始置换口 t a b l e2 - 41 1 1 i t i a lp e m l u 切畦0 n 口 列 l2345678 疗 l5 85 0 4 23 42 61 81 02 26 05 2 4 43 62 82 01 24 36 25 34 63 83 02 21 46 46 45 64 84 0 3 22 41 68 55 74 94 13 32 51 79l 6 5 95 l4 33 52 71 91 l3 76 l5 34 53 72 92 l1 35 8 6 35 54 73 9 3 12 31 57 初始序列置换i p 运算过程可以描述为将原数据序列中第5 8 位明文数据作为 第章加密再法 新序列中的第1 位明文数据,原序列中的第5 0 位明文数据作为新序列中的第2 位明文数据,其他位也都同样地进行序列变换,最后一位数据是原序列的第7 位 明文数据,经过这样的置换就完成了明文数据的初始置换过程,然后再将新的6 4 位数据分成左3 2 位明文数据和右3 2 位明文数据1 4 4 1 。 2 3 4 选择扩展运算 选择扩展运算e 的功能可以看成是一个函数,它的功能是将迭代过程中右边 输入的3 2 位数据扩充为与加密过程密钥长度相同( 4 8 位) 的数据块作为输出。 选择扩展运算e 是将右边的3 2 位明文数据按照表2 5 的规律扩展成4 8 位新的数 据。具体实现是复制右边3 2 位数据中的某些位,并插入到相应的位置上,以实现 将3 2 位的数据扩展到4 8 位的目的。选择扩展运算e 表2 5 中的头五位位数据在 右边数据中的位置分别是3 2 ,1 :2 ,3 和4 ,而表2 5 中的最后五位数据则分别 是右边数据中是第2 9 ,3 0 ,3 1 ,3 2 和l 位。 表2 5 选择扩展运算e 1 a b l e2 - 5e x p a n ds e l e c t e d0 p e r 撕o ne 毒 12345678 l3 2l23 4 545 26 7 89891 0 1 1 31 21 31 21 31 41 51 61 7 41 61 71 81 92 02 l2 02 l 52 22 32 42 52 42 52 62 7 62 82 92 8 2 9 3 03 l3 2l 黑龙江大学硕十学位论文 2 3 5 加密运算 加密过程是将扩展后的4 8 位数据与子密钥模块产生的4 8 位子密钥逐位进行 异或运算,最后得到4 8 位加密的密文序列f 4 5 】。加密函数f 的运算框图如图2 5 所 示。 2 3 6 选择压缩运算 选择压缩运算s 将来自加密运算的4 8 位数据自左到右分成8 组数据,如图 2 6 所示,每组数据6 位,之后并行进入8 个s 盒,每个s 盒可以看成是一个非 线性变换网络,按照规律压缩掉2 位数据,最后就得到输出的4 位压缩数据。 (开始) i 4 8 位加密数据 幸申申申申申申唪 3 2 位加密数据 l ( 结束 ) 图2 - 6 选择压缩运算s f i g u 托2 6s e l e c tc o m 胛燃i o na l g 嘶t h ms s 盒的原理相同,只是压缩规律不同。假设s l 盒的输入矢量为:x o x 。x 2 x 3 x x , 输出矢量为y o y l y 2 y 3 。s l 盒的代换表如表2 6 所示。为了确定s l 盒的输出,d e s 标准规定将输入矢量中的首尾2 位看成是控制s l 盒中的行号( o ,l ,2 ,3 ) ,将中间 四位用来确定列号( 0 ,1 ,1 5 ) ,每组输入一个数据就可以唯一确定表中的一个数 据,这个过程可以看做是二进制编码。例如,当输入为1 1 1 0 1 0 时,可确定行号为 2 ( 1 0 ) ,列号位1 3 ( 1 1 0 1 ) ,对应表中的数据是1 0 ,则输出矢量为l o l o 。 通常s 盒具有非线性的特点,s 盒为d e s 的安全提供了保障,使得被加密的 数据具有很好的杂乱无章性,这就使得它具有较强的安全性m 。 第_ 章加密算法 表2 6s l 盒 1 a b l e2 :6s lb o x 刃 0 l 2 3 4 567 1 3 9 1 0 l l 1 21 31 41 5 行 01 441 3121 5l l83l o61 259 o7 101 5741 421 31 l o61 21 19538 2411 481 3621 l1 51 29731 05 0 31 51 28 2 4 9 l751 131 41 0o61 3 表2 7s 2 盒 t a b l e 2 7s 2b ( ) x 列ol23456789l ol l1 21 31 41 5 铲 0 1 5l81 46 1 l34 9 721 31 205l o 13 1 3 47 1 5 2 8 1 4 1 20 l 1 06 9l l5 201 47l l1 041 3l581 269321 5 31 381 0131 5421 1671 2o51 49 表2 8s 3 盒 t a b l e 2 - 8s 3b 魄 列 纡 ol234567891 0l l1 21 31 41 5 o1 0091 4631 55l31 27l l428 l1 37093461 02851 41 2l l1 5l 21 364981 53 ,01 ll21 25l o1 47 311 01 3o698741 51 431 1521 2 1 5 - 黑龙江大学硕士学位论文 表2 9s 4 盒 1 a b l e 2 9 s 4 b 似 列0123456789l o l l1 21 31 41 5 铲 071 3 1 43o691 01285l l1 241 5 11 38 1 1 5 6 1 503 4721 2l1 01 49 2l o69 01 21 171 31 5131 4528 4 331 50 61 0l1 38945l l1 27 21 4 表2 1 0 s 5 盒 m i b l e 2 1 0s 5b 假 列 行 01234567891 0 1 11 21 31 41 5 021 24l7l o1 168531 5 1 301 49 l1 4l l21 2471 3l501 51 039 86 242l l l1 01 3781 591 256 301 4 3 1 l81 2711 421 361 5o9 1 0453 表2 一1 1s 6 盒 t 2 i b l e 2 - 1 1s 6 b 傩 列 ol23 4 5678 9l o1 l1 21 31 41 5 万 o1 2ll o1 5926801 3341 4 75l l 11 01 54271 2956l1 3 1 4o1 l38 291 41 55281 237o 41 0l1 3l l6 3 4321 2951 5l o1 l1 4l 76o81 3 一1 6 一 第二章加密算法 表2 1 2s 1 盒 t a b l e2 - 1 2s b o x 刃 疗 - o1234567891 01 11 21 31 41 5 o4l l2 1 41 5081 331 29751 0 6l l 1 301 1749l1 01 4351 221 586 2l4 l l1 31 2371 41 01 568o59 2 361 11 38l4l o79501 51 4231 2 表2 1 3s s 盒 t a b l e 2 1 3s 8b o x 列 万 0 l2345 6 789 l ol l1 21 31 41 5 o1 3284 61 5l lll o931 45o1 27 ll1 51 381 037 。41 256l lo1 492 271 14l91 21 42061 01 31 5358 32l1 474l o81 31 51 290356 1 1 2 3 7 置换运算 置换运算p 是将s 1 盒到s 8 盒输出的4 位数据依次合并成3 2 密文位数据, 然后再进行坐标变换,具体规律如表2 1 4 所示。 表2 1 4 置换运算p t a b l e2 1 4p e m u t ;砥a l g 谢t l 帅p 列 行 l23456 78 11 672 02 l2 91 22 81 7 2l1 52 32 651 83 11 0 3282 41 43 22 7 39 41 91 33 062 2l l42 5 1 7 黑龙汀大学硕士学位论文 2 3 8 乘积交换 置换运算p 的输出结果要与左边的3 2 位数据l ( i - 1 ) 进行逐位异或运算,所得 结果作为下一轮迭代用的用的右边数据r ( i ) m 。如图2 2 。所示,并将r ( i - 1 ) 传递 给左边的寄存器,作为下一轮迭代用的左边数据l ( j ) 。 2 3 9 逆初始置换 1 6 次迭代运算结束后,将左边3 2 位数据和右边的3 2 位数据合并,得到6 4 位的密文序列,再将得到的6 4 位密文序列按照逆初始置换规律进行置换h 引。逆 初始置换规律如表2 1 5 所示。从而得到新的6 4 位密文数据,并且将其作为d e s 的加密的最终结果。 表2 1 5 逆初始置换 t a b l e2 1 5i n v e 传ei i l i t i a lp e m 喇i o n 刃 l2345678 疗 l4 084 81 65 62 4 6 43 2 23 974 71 55 52 36 33 l 33 864 61 45 42 26 2 3 0 43 754 51 35 32 16 l2 9 53 644 41 25 22 06 02 8 63 534 3l l5 l1 95 92 7 73 424 2l o5 01 85 8 2 6 83 3l4 194 91 75 7 2 5 2 4d e s 解密过程 d e s 解密过程与加密过程基本相同,区别在于迭代时使用的子密钥顺序与加 第_ 章加密剪法 密时的子密钥顺序相反,即第一次迭代时使用的子密钥l 江y 是k 1 6 ,第二次迭代 使用的子密钥l 江y 是k 1 5 ,最后一次子密钥l 江y 是k l ,其他过程与加密过 程完全相同。 2 53 一d e s 算法 目前,针对d e s 算法密钥过短的问题,有多种改进方案,应用最广泛的是 3 d e s ( 1 啷l e d e s ) 加密算法【4 9 1 。3 d e s 是d e s 向高级加密标准a e s 过渡的加密 算法,是d e s 算法的一个更安全的变形。3 d e s 加密算法实际上就是运行3 次 d e s 算法的过程,只不过这3 次过程中的密钥不同而已,也就是增加了密钥空间 长度,提高了抵抗对初始密钥穷举搜索攻击的能力【5 0 1 。 3 d e s 的加密解密步骤为: 3 一d e s 使用三个不同的密钥k e y l 、k e y 2 和k e y 3 对6 4 位数据块进行三次d e s 加密,这样密钥的长度就能扩展到1 6 8 位,所以它通常提供极其强大的安全性【5 1 1 。 如图2 7 所示,图中加密过程的第一阶段、第三阶段d e s 运行在加密模式,第二 阶段d e s 运行在解密模式,从而能有效的对抗穷举攻击。3 d e s 解密时,第一阶 段、第三阶段d e s 运行在解密模式,而第二阶段运行在加密模式。如果三个5 6 位的子元素都相同,则3 d e s 向后兼容d e s 【5 2 5 3 1 。 图2 73 d e s 加密解密流程图 f i g 叭2 7t h ef i o wc h 缸0 f3 - d e sa i g 嘶t h i i l 黑龙江大学硕士学位论文 第三章加密算法的f p g a 实现 3 1f p g a 芯片 在本课题项目的开发中,既有软件部分又有硬件部分,硬件部分是整个项目 的载体,怎样选择适合自己的开发芯片类型也是本课题中的一项非常重要的工作, 主要芯片的选择直接关系到项目的性能特性,产品的尺寸,开发速度和成本问题, 它是整个硬件电路系统设计的基础。f p g a 芯片厂商较多,选择合适的芯片,本 人认为应该考虑一下3 个方面的事情: 1 ) 一般选择自己熟悉的低端的、功能简单的芯片,如本课题中选用的c y c l 0 舱 芯片e p 3 c 1 0 e 1 4 4 c 8 n ,以便于快速设计出新的产品,尽快完成设计,也可选 择主流厂商a j t e r a 和x i l i n 】【公司低端的产品,这样还能降低制造成本,由于a h e m 和x i l i n 】【是竞争对手关系,所以两家厂商提供的产品功能都很相近,一家厂商产 品中的新功能,另一家厂商也都有相对应的功能,只是名称不同,在软件中的使 用不同。因为a n e r a 公司的芯片在大部分研究所、国内大部分高校和公司中较为 普遍使用,而且论坛和资料相对多一些,所以,本课题选取了黼公司提供的 c y c l o m 产品; 2 ) 如果想要改进当前产品的稳定性和提高运行速度时,可以选择高端的芯片 类型,如s t 俄i ) 【系列性能高,价格贵,但也要注意成本的增加; 3 ) 如果产品工作环境十分恶劣苛刻,如在航天航空中的地磁辐射很大,则需 要选择高抗干扰性能的芯片类型。 c y c l o n e 系列采用全新的构架,个人认为是目前a n e m 公司性价比最高的 f p g a 系列,该系列支持多种i o 标准,而且具有丰富的嵌入式存储资源,支持嵌 入式处理器。 本文设计选用a h e m 厂商提供的低功耗、低成本、高性能c y c l o 鹏芯片 e p 3 c l o e l 4 4 c 8 n ,它具有1 0 3 2 0 l e ,4 6 个m 9 kb l o c k ,4 2 3 9 3 6 b 凡m ,2 3 个 1 8 1 8 乘法器,2 个p l l s ,1 0 个g 1 0 v e sc l o c k n e 嘶r k s ,最大用户i o s1 8 2 个, 第_ 章加密算法 资源丰富足以满足项目设计要求。 3 2f p g a 实现 采用软件方案实现数据加密的方案,当出现大量数据需要加密解密时,往往 在处理速度上力不从心,就会造成整个系统运算速度的下降,软件变慢。由于d e s 算法在加密解密过程和密钥序列生成过程中只使用到了替换运算、异或运算和移 位运算等简单数学运算,所以,采用f p g a 硬件方案来实现d e s 加密算法要比采 用软件技术实现算法更好,能够满足对大量数据加密解密的设计要求州。 3 2 1f p g a 总体模块划分 在基于e d a 技术的设计中,通常有两种设计思想,其中一种是自顶向下 t o p d o 、州的设计思路,另一种是自底向上b o ”的m u p 的设计思路【5 5 】。 t o p d o w n 的设计方法:首先,本课题从整个加密解密功能设计入手,设 计规划顶层功能方框图。然后划分子模块,对模块进行仿真验证。最后,用综合 工具将设计转化为网表文件( f p g a 、c p l d ) 。 系统的总体框图如图3 1 所示。本设计将系统划分为三个基本模块:数据接 口模块、密钥产生模块和加密解密模块。接口模块又可分为:时钟产生模块、数 据接收模块l 和数据发送模块t x 。其中加密解密模块又可划分为:子密钥产生 模块、组合电路模块和时序控制模块;其中组合电路模块又可划分成:扩展模块 e 、异或加密运算模块、s 盒压缩运算模块、置换运算p 模块和左右分组异或运算 模块。 黑龙江大学硕士学付论文 图3 1 系统的总体框图 f i g u r e3 - lb l o c k 击a 鲫no fs ) ,s t e m d e s 算法运算时,每次迭代的内部运算都是可以用组合逻辑实现,系统控制 部分只负责控制好迭代次数和乘积交换两部分就可以了,子密钥的产生是由单独 的密钥产生模块完成的。 组合电路模块功能主要完成迭代中的逻辑运算,包括选择扩展运算e 、加解 密运算、选择压缩运算s 、置换运算p 和左右分组异或运算,这些运算都是由组 合逻辑完成的,不需要时钟信号的控制;1 6 次迭代过程的管理和控制是由时序电 路来完成的,时序电路是一个状态机,依次完成读原始密钥、读数据、循环迭代 的控制和输出数据控制

温馨提示

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

评论

0/150

提交评论