(计算机应用技术专业论文)cpldfpga技术在分组密码中的应用研究.pdf_第1页
(计算机应用技术专业论文)cpldfpga技术在分组密码中的应用研究.pdf_第2页
(计算机应用技术专业论文)cpldfpga技术在分组密码中的应用研究.pdf_第3页
(计算机应用技术专业论文)cpldfpga技术在分组密码中的应用研究.pdf_第4页
(计算机应用技术专业论文)cpldfpga技术在分组密码中的应用研究.pdf_第5页
已阅读5页,还剩54页未读 继续免费阅读

下载本文档

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

文档简介

中国科学院硕士学位研究生学位论文 c p l d f p g a 技术在分组密码中的应用研究 ,1t 彤、二运 【摘要】tpj ) i * 随着信息技术的飞速发展,人们对信息安全的要求越来越高,因而利用密 码技术对信息进行加密的重要性已日益突出。目前已有的分组算法的软件实现速 度很难突破1 0 0 m b p s 的大关,就算是用d s p 来实现,速度也很低。因此,出于速 度和安全上的考虑,非常需要用硬件来实现这些算法。比较合适的方法就是用 c p l d f p g a 技术,这种方法是实现a s i c 技术的必经之路,开发周期短,而且能 满足算法设计及其安全的需要。 文章分为两部分,第一部分包括两章,即第二章和第三章,是基本原理介绍。 其中第2 章概述了c p l d f p g a 基本原理。第三章对分组密码的基本原理进行了介 绍。第二部分从体系结构的角度详细讨论了c p l d f p g a 技术在分组密码中的应 用。在这一部分,作者从实际工作出发,根据国际、国内已有的技术,提出了几 种加密体系结构。这一部分包括五章。其中第四章给出了分组加密的几种基本体 系结构。第五章详细讨论了c p l d f p g a 实现分组加密的接口模块的设计;第六章 则从体系结构的角度详细研究了加解密模块和密钥变换模块的c p l d f p g a 实现 方式;第七章从指令集的角度详细讨论分组密码的各组成部分的c p l d f p g a 实现 技术:第八章探讨了五种a e s 候选算法的c p l d f p g a 实现方案。最后,第九章对 整个研究工作做了总结和展望。 【关键字】 分组密码体系结构指令集c p l d f p g a流水线 中嗣科学院硕士学位研究生学谴论文 c p l d 蜃p g a 接术在玲维密码串扮应掰研究 a b s t r a c t c h e n l i z h i ( c o m p u t e ra p p l i c a t i o n ) d i r e c t e db yp r o f d a i y i n g x i a w i t hr a p i dd e v e l o p i n go fi n f o r m a t i o nt e c h n o l o g i e s ,p e o p l e sr e q u i r e m e n tf o rt h ei n f o r m a t i o n s e c u r i t yi sm u c hh i g h e rt h a nb e f o r e ,a n dt h ei m p o r t a n c eo f u s i n gc i p h e rt e c h n o l o g y t oe n c r y p tt h e d a t ab e c o m e sm o r ep r o m i n e n t f o rt h es o f t w a r ei m p l e m e n t a t i o n so fb l o c kc r y p t o g r a p h ya l g o r i s m a r eh a r dt os u r p a s sl o o m b p s ,e v e nt h ed s p i m p l e m e n t a t i o n s a l s oe n c o u n t e rt h es p e e db o r l e n e c k s ow en e e dt od e s i g nh a r d w a r ei m p l e m e n t a t i o n so fb l o c kc r y p t o g r a p h ya l g o r i s mt oa c h i e v et h e s e c u r i t ya n ds p e e dg o a l s 。af e a s i b l ea n ds u i t a b l es o l u t i o ni sc p l d f p g at e c h n o l o g y i ti st h eo n l y w a y t oi m p l e m e n tt h ea s l c t e c h n o l o g y , a n di th a ss o m eg o o dp r o p e r t i e ss u c ha ss h o r td e v e l o p i n g p e r i o d ,m e e t i n g t h er e q u i r e m e n t so f t h ea l g o r i s md e s i g na n di t ss e c u r i t y w ed i v i d et h i sp a p e ri n t ot w op a r t s 。t h ef i r s tp a r ti n c l u d e st w o c h a p t e r s ,w ei n t r o d u c et h eb a s i c p r i n c i p l e so fc p l d f p g aa n db l o c kc i p h e ra l g o r i s mi nc h a p t e r2a n dc h a p t e r3r e s p e c t i v e l y i n t h es e c o n dp a r t , f r o mt h ea r c h i t e c t u r ep e r s p e c t i v e ,w ed i s c u s sh o wt oa p p l yt h ec p l d f p g a t e c h n o l o g yt o t h eb l o c kc i p h e rf i e l d i n d e t a i l f u r t h e r , w ep r o p o s es e v e r a ln e we n c r y p t i o n a r c h i t e c t m e sb a s e do b 凇r e s e a r c hw o r ka n ds o m ee x i s t i n gt e c h n o l o g i e s p a r t2i n c l u d e sf i v e c h a p t e r s ,f r o mc h a p t e r 4t oc h a p t e r8 i nc h a p t e r4 ,w ei n t r o d u c es e v e r a lb a s i ca r c h i t e c t u r e so f t h e b l o c k c i p h e r i nc h a p t e r5 ,w e d i s c u s s t h e i m p l e m e n t a t i o no f i n t e r f a c e m o d e lo f b l o c kc i p h e r u s i n g c p l d f p g ai nd e t a i l i nc h a p t e r6 ,w ed i s c u s st h ec p l d f p g a i m p l e m e n t a t i o no fe n c r y p t i o n d e c r y p t i o nm o d e la n dk e ys c h e d u l em o d e la tl e n g t hf r o mt h ea r c h i t e c t u r ep e r s p e c t i v e i n c h a p t e r7 ,w ea n a l y z e 氇ec p l 数蹬p g ai m p l e m e n t a t i o no f b l o c k c i p h e rl n s t r u c t i o n s e t s i nc h a p t e r 8 w ed i s c u s st h ec p 瓤b 攘p g a i m p l e m e n t e ds c h e m eo f f i v ec a n d i d a t e a e s c i p h e r s 。a tl a s t , i nc h a p t e r9 ,w es u m m a r i z eo u rr e s e a r c hw o r ka n db r i n gf o r w a r do u r c o n c l u s i o n 。 k e y w o r d s b l o c k c i p h e r a r c h i t e c t u r ei n s t r u c t i o ns e t sc p l d f f p g a p i p e l i n e 2 中鬻科学院磺擎垃霹究生学垃论文c p l d f p g a 技誉塞竺篓窒登! 塑鏖墨璧塞 o p l d f p g a 技术在分组密码中的应用研究 一、穹| 富 淹着傣惑技术豹飞速发箴,辩信息安全翁要求越来越商,因而莉箱密码技术 对信患进行船密的鬟簧瞧已强益突出。目前融有的分组算法的软件实现速度缀难 突破l o o m b p s 的大若,戟簿是躅d s p 来实现,速度也报低。例如,对于l l 的3 2 像定点d s p 处理器t m s 3 2 0 c 6 2 0 1 ,它在2 0 0 m h z 下霹以达劐1 6 0 0 m i p s ,列用该娃 理器实现a e s 候选算法,加密速度分别可以达到:t w o f i s h1 3 9 m h z ,r c 61 2 8 m h z , r ij n d a e li 1 2 m h z ,m a r s8 9 m h z ,s e r p e n t3 3 m h z 。就算最新的d s p 芯片系列 t m s 3 2 0 c 6 4 x ,该系列芯片可戳达判8 8 0 0 m i p s ,也狠滩突破2 0 0 m b p s 的大关,而 曼成本也耀巍可观。嚣显疆豢技术妁发震,黯籍豹实瑗速度缀谈裁乃;辘满足要求, 比如说,蠛巍裁无法满足予予趣嬲葶瑟基予i e e e1 3 9 4 瓣数字传埝琴绫。嚣就,出 于速度和嵌全上的考虑,非常需要用硬件来实现这贱算法。 魄较合适的方法就是用c p l d f p g a 技术,这辩i 方法是实现a s i c 技术的必经 之路,开发闽期短,而且能满足算法设计及其安全的需要。此外,算法一旦用 c p l d f p c , - a 设诗竞戏,崮予窀具裔与开茇平螽翁楣辩独立经,在邀行安全产菇酾 开发方藩,就不需簧霉在算法设计方霆投入入力麓躲力,放灏爵淤大大缩短开发 周期。 巍然,隧煎国际上已经露人歼始磺究c p l d f p g a 技术在分组搬砜中懿应用, a e s 五种候选算法的作者都提供了利用c p l d f p g a 技术实现的参考设计。虽然这 箕中不乏许多先逡的设诗愚憋,瞧憝仍然有许多可以进行改进和提高韵。 豳j 耩= 檄霄必娶对c p l d f p g a 技术在分缀密鹃中的应蔫进行研究。 本文从c p l d f p g a 按本秘分缀密码的基本原理出发,详细磅究了分缝蜜娲躲 基本镶构,缝合鲤裁诗算机弱基本掺系结构,弓 入淡承线技术,提出了死耪不屈 的加密体系结构,主隳分为含流水线技术的体系结构幂不含流水线技术的体系结 构两种。然籍详细探讨了这掰种体系结构的密码的c p l d f p g a 应羽技术。并在此 蓦确上,分别研究了分组加密的慕举模块以及基本播令集的c p l d f p g a 实现方 法。程本文震嚣,还详缨探讨了足耪a e s 绞选算法熬c p l d f p g a 死葶孛蜜现方式( 含 豢遮、 氏遮等各秘方式) 鞋及冬转交现方式麴蛙缝魄较。在文中,作者奁蘩人已 有技术的旗础上。尝试提出了多种c p l d f p g a 设计实现技术。例如刹用r a m 和 r o m 结合方式,耐不是单纯利用r o m 方式( 这是强静圈内、阉际常用的方式) 来 实现诸如s - b o x 等分组密码常用的套找袭操作。弭结合先进的流水线技术,可以 将实现速艘犬福掇鬻,接近一倍,丽盈可戬节省c p l d f p g a 蕊片豹瓒粳,扶丽最 终六柩节省实现裁本。这一健能大大超过了探算法俸者掰能提供豹馁能。僦如, 6 中国科学院硕士学位研究生学位论文 c p l d f f p g a 技术在分组密码中的应用研究 r ij n d a e l 算法,在算法作者提供的参考设计中,采厢a l t e r a 公司的2 0 万门的 芯片,按照算法佟誊懿设计方式,是不能采嬲滚水线方式蜒,速瘦最裹畿只能达 粥凡疆兆b p s ,镶楚按照零文黢提供熬技术,竞全潋程霭撵敕蕊片中粟燧2 级 流水线,使速度轻易超过1 0 0 0 m b p s 。 第一篇基确理论 0 、c p l d f p g a 原理 2 1概述 c p l d f 鹣 嚣件根摇实现的技术机理不问,又可分为基予反熔丝( a n t jf u s e ) 绩梅、基于e p r o m 及e e p r o m 结擒、基于f 撼s 珏结穆帮綦予s r a m 缭秘等足耪。 纂予反熔丝技术豹器 牛特别逶题予予挽强度大、环壤恶劣、系统霹纛经娶求赢翡 场合。基于e e p r o m 的p l d 器件适用于可羹复现场编程的场合,特别是系统调试、 开发、研京4 样机等方面的应粥。罄予s r a m 技术懿糕传构成的数字系统资源可重 定位,双而达到动态组合新系统的效果。 2 2 c p l d 器件结构 c p l d ( c o m p l e xp r o g r a m m a b t el o g i cd e v i c e :复杂的可编校邋辑器件) 是 由p a l 或者g a l 发展丽来的,基本上是扩充服始的霹编稷逻辗器传。它邋攀是由 可编程逻辚的功黢块围绕一个位于中心、延时固定的可编程互连矩辫襁戏。 为了增加电路密度而不使性能或者功耗受到损失,复杂的可编程逻辑器件 c p l d 在结构上弓l 入了各种褥性。如:弓| 入分页系统,分页的强的在于便使阵列 髂一部分在经褥绘定时帮被粕电;授备份模式放踅阵列,或者靠变换检测自动地 控制加电,或者采用处部撩令加以控枣4 。在实现级上,“与”阵列及“或”簿列 鬟要瘸缓抟器分开,因为这些般是反撼器。盔亵个簿烈中实际逻瓣救疑握爨 的。 2 3f p g a 器馋续构 f p g a ( 瓒汤可编程门簿剡) 器件通常由布线围绕的可编程单元( 躐者宏单j 二) 梭戏阵列,又出霹缡程i o 攀元潮绕阵到擒戏整个芯片,懿阉掰示。捧成阵剜静 逻辑攀元出京线逶遴中戆霹缡程逡线连接起来实褒一定瓣逻辑功能。个f p g a 可能包含有静态存储单元,它们允许内部的模式在器件被制遗以羼搿被热载或者 7 串嚣科学院疆士学位磺究生学垃论文 c p l d p f p g a 技术在分维密璐孛鹣瘟臻辑究 修改。 f p g a 是由掩膜可编穰门阵列和可编程邋辑器件演变而来的,将它们韵特性结 合在一起,使得f p g a 黎育门阵列懿离逻辑密度移遴用梭,又有冒编程逻辑器件 熬蠲户爵编程将魏。爨懿f p g a 黪递辑功能在援模秘实现逻辑葫麓豹麓力上存奁 很大的差别。有的逻辑功能块规模十分小,仪含有只能实现殿楣器的甄令晶体管; 丽脊的逻辑功能块嫂模比鞍大,可以实现秘何五变量输入逻辑函数的煎找表结 构。据此可把f p g a 分为两大类,即细粒度和粗粒皮。细粒度的逻辑块疑与半定 铡f l 阵列的纂本肇元相翻,它由可绦程曩遗来连接少数黼体管缀藏,蕊模较小, 主螫优点是孬瘸戆功能块瑟以完全被剩掰;缺点楚采用它通常需要大量豹逡线和 可编程开关,使相对速度变幔。由于近年采二艺不鞭改进,芯片袋成疫不叛提裹, 加上g l 入硬件捂述语言( h d l 设计方法,不少厂家开发出了具有熨缨粒度鲢f p g a 。 例如,x i l i n x 公司采用m i c r ov i a 技术的一次编程反熔丝结构的x c 8 1 0 0 系列就 是逻辑功能模块舰摸较,j 、,细粒液结构的f i z g a 。而糨粒度的f p g a 功能模块规模 较大菏登功髓较强。 从构成它的可编程逻媾嬲可缡羧互逡资源寒露,可以将f p g a 分失露大类: 一楚套找表类型;二是多鼹开关类燮。下蘧分戥翕绸这颓耱f p g a 缭橡特点: ( 1 ) 套找表黧f p g a 不同的产品,查找表型f p g a 结构各有特点,但可编程逻辑器件单元基本 上都是套找没静静态存锉器 l o o m q ) 。当1 8 v 的编程电压加在其上时,建立一个双向的低电 阻通道,编程电流小于l o m a 。 通常每个逻辑门约需要1 0 0 个反熔丝以达到商的互连性及门利用率。因此以 熔丝链路作为可编程器件带来的问题是占的面积大,要求的编程电流大。 2 5 基于e e p r o m 和e p r o m 的c p l d f p g a 基于e e p r o m 的c p l d f p g a 是具有不连接的浮栅的特殊m o s f e t ,编程方法可 用紫外线照射将编程内容一次全部擦除,然后再编入新内容,为此要装上一个石 英窗,否则就是一次可编程器件。一旦编程完毕,系统掉电后编程信息也不会丢 失。 基于e e p r o m 的c p l d f p g a 能够重复编程1 0 0 次以上,系统掉电后编程信息 也不会丢失。编程方法为在编程器上编程和利用下载电缆编程。用下载电缆编程 的器件,需要先将器件焊在印刷电路板上,称为i s p ( i ns y s t e m p r o g r a m a b l e ) o 中强科学院壤士学位磺窕生学位论交c 塑翌兰堡垒茎垄奎坌篷壁整童鳖窒爨堑窒 方式,调试和编程都很方便,可以设鬣保密位、节麓方式以及控制积压摆率等工 作条件。 2 6辏予s r a m 技术豹c p l d 序p g a 基于这耱方式的c p l d f p g a 缡程数据存继于鼹传的r a m 区中,使之舆蠢爱户 设计的功能。在系统不加电时,编稷数据存储在e p r o m 、硬盘或者软盘中。系统 笳电f 幸将这魑编程数据辞时写入可编程器件,从而实现板缀或系统级的动态配 鬟。这种方式称i c r ( i nc i r c u i t 晒c o n f i g u r a b l e ) 。 对于这种器件,必须让编程的数据僳存在非弱失的存储器中,通常利用一个 e p r o m 或者f l a s h 放在邻近,而且这样也可以在几个e p r o m 之问转换各种编程模 式,戳镬让f p g a 扶一种翡能转蠢勇一个功髓。 2 7蘩予f l a s h 技术鹣c p l d f p g a 杰于e e p r o m 熬攀元密凄较差,褥单元密度羟c p l d 中菲常重骚,因为个i 3 _ 编程单:琵控制每个稚线开关,器传的瘴通枣秘b l 嬲锬定熊力蠢接受擎元密度数影 响。不适当的e e p r o m 单元密度纛接影响用此结构的器l 孛弓l 滕锁定栽力,噬为更 多的布线开关显著增加了硅片的成本,大的单元尺寸引入寄生电容,潜在地限制 了熬个毪托。加上e 琶p r 鳓工艺韵开发和扩充常常由单独钓公司进行,丽不能得 到工照赛开发的支持,迸一步增加了长期工范移植的困难。 与e e p r o m 相磁,f l a s h 则不 又其有e e p r 嘲的电可擦除能力,聪显密度也菇 褥多,因此、弛界也就有了基于f l a s h 技术的c p l d f p g a 技术,相比之下,它能提 供如下功魏: i 菇性能静逻辑容董 2 +礴的存储器零凭密度: 3 啦礴擦豫憨力: 4 5 v 编程和擦除: 5 商的可靠住和持久健; 6 工艺的可递增住: ? 。 抉速戆器 串壤摆鞋瓣。 2 8c p l d 与f p g a 鲍区别 c p i 。d 秘f p g a 郯怒可缡穆器件,这薅黉之阚楚蠢菱鼷鳇: 中国科学院硕士学位研究生学位论文c p l d f p g a 技术在分组密码中的应用研究 ( 1 ) f p g a 和c p l d 内部逻辑单元的电路工艺不同。 f p g a 采用c m o ss r a m 工艺,因此单元电路逻辑需要上电再配置,掉电后, 配置数据丢失,芯片功能随之丢失。c p l d 器件是从g a l 技术发展而来, 其中关键技术是e 2 c m o s 工艺,电可擦c m o s ,器件可以长期保存数据, 又是电可擦除的。由于f p g a 和c p l d 的逻辑单元的工艺不同,造成了这 两种器件的编程方式的不同: f p g 采用了在线重配置( i c r ) 的方法为器件定义功能。 c p l d 采用现场( 在系统) 可编程( i s p ) 的方法为器件定义功能。 ( 2 ) f p g a 和c p l d 内部的连线的联接方式不同。 f p g a 器件不仅内部逻辑单元是阵列式的,金属连线也是分段式的。这样 在编程过程中,由于金属连线的连通路径是随机可编程的,使信号传输 路径随机性很大,造成的直接后果是信号延迟不固定不可测,这一致 命弱点,使e d a 工程技术对f p g a 器件“深恶痛绝”。c p l d 采用了金属互 连线连续式结构,消除了分段式连线定时不准的缺点,并在单元之间提 供快速的、具有固定延时的通路,信号延时可预测、可计算,大大提高 了系统设计的成功率,深受e d a 工程师的欢迎。 ( 3 ) c p l d 逻辑块大,适合控制逻辑、译码逻辑、时序逻辑应用。f p g a 逻辑单 元小、密度高、数据通道资源丰富,适合需要多寄存器的复杂运算场合。 2 91 s p 与i c r 基于i s p ( i n s y s t e mp r o g r a m m a b i l i t y :在系统编程) 编程的器件内的e e p r o m 或者f l a s h 用于存储编程信息。这种器件内有产生编程电压的电源泵,因此不需 要在编程上编程,直接对装在印制板上的器件进行编程即可。 基于i c r ( i n c i r c u i tr e c o n f i g u r a b i l i t y :在线可重配置) 编程的器件由 s r a m 存储编程信息,也不需要在编程器上编程,直接在印制板上进行编程。通 常,编程信息存储在外加的e p r o m 、e e p r o m 、f l a s h 或者系统的软、硬盘上,系 统工作之前,将存在于器件外部的编程信息输入到器件内的s r a m ,再开始工作。 i s p 和i c r 器件具有如下共同的优点 在设计阶段。更新了硬件概念,用软件更改设计:加速了调试过程:只 要保持器件引脚定义不变,不必改焊印制板,便可改变其逻辑关系;甚 至可把某些p l d 编程为测试源来测试印制板上的另一些p l d ,实现器件 中国科学院硕士学位研究生学位论文c p l d ,f p g a 技术在分组密码中的应用研究 之间相互测试的目的。i s p 和i c r 不需要用编程器编程,引脚做得小巧 从而减d , 9 1 线电感、缩小器件体积,提高了性能和可靠性。 在生产阶段。器件可先焊在印制板上再编程,免去事先编程和贴标签的 工作,减少差错、改进工艺流程和降低成本。 售后服务简单,便于现场修理和硬件升级。 i s p 和i c r 相比又各有优缺点: i s p 的优点:i s p 采用e e p r o m 或者f i a s h 存储编程信息。因而,断屯时 信息币会丢失:而 c r 采用s r a m 存储编程信息,断电时信息丢失,每次 上电刚,需要重新输入编程信息。i s p 器件设有保密位,保密性好:当 t c r 的编程信息存于外附的e p r o m 上,保密性差。 i c r 的优点:i c r 的编程信息存储在器件内的s r a m 中,可在系统工作之 前或青工作期间向s r a m 写入编程信息,即工作巾的快速( o nt h er y ) 编群,允许同一器件存i 酉i 一系统的不同时刻实现不同的功能。i s p 器件 改写的过程较慢,不能快速编程,过多次( 超过1 0 0 次) 的编程会损坏 器什。 三、分组密码的基本设计原理 3 1分组密码的设计原则 分纰密码的设汁原则可以分为变埘原则平1 1 :奠全性原则。 3 1 1 安全性原则 影响安全性的因素很多,诸如分组长度利密钥长度等。但有关实现密码的两 个一般性原则是s h a n n o n 提出的混乱原则和扩散原则。 a 混瓢原则 人们所设计的密码应使得密钥和明文以及密文之间的依赖关系相当复杂以 至于这种依赖性对密码分析者来说是很难利用的。 i j 扩散原则 人们所设计的密码应使得密钥的每一位数字影响密文的许多位数字以防止 对密钥进行逐段破获译,而且明文的每一位数字也应影响密文的许多位数字以便 隐蔽明文数字的统汁特性。 中国科学院硕士学位研究生学位论文c p l d ,f p g a 技术在分组密码中的应用研究 3 1 2 实现原则 分组密码可以用软件和硬件来实现。硬件实现的优点是可获得高速率,而软 件实现的优点是灵活性强、代价低。基于软件和硬件的不同性质,分组密码的实 现原则可以根据预定的实现方法来考虑。 a 软什实现的设计原则 使用子块和简单的运算。密码运算在字块上进行,要求子块的长度能自然地 适应软件编程,比如8 、1 6 和3 2 位等。在软件实现中,按比特置换是难于实现 的,因此应尽量避免使用它。子块所进行的密码运算应该是一些易于软件实现的, 最好是用一些标准处理器所具有的一些基本指令,比如加法、乘法和移位等。 i j 硬件实现的设汁原则 加密和解密的相似性,即加密和解密过程应该仅仅在密钥的使用方式不同, 以便同样的器件既可用来加密又可用来解密。尽量使用规则结构,因为密码应有 一个标准的组件结构以便其能适应于用超大规模集成电路实现。 3 2 分组密码的基本结构 设计加密算法一般主要考虑以下几个方面:整体结构、s 一盒、p 置换和轮函 数等。 3 2 1 整体结构 a f e is t e l1 ) c 】9 络( f n ) f e i s t e l 网络把任何函数( 通常称作f 函数或者轮函数) 转换化为一个转换。 目前许多密码( 如r c 5 、f e a l 、g o s t 、e 2 等等) 采用这种结构。 l i k i 图3 1 一轮f e i s t e l 型密码的加密过程 对一个分组长度为2 n 比特的r 一轮f e is t e l 型密码,它的加密过程如下: ( 1 ) 给定明文p ,记p = l 。r 。,这里k 是p 的左边n 比特,r 。是p 的右边n 比特。 ( 2 ) 进行r 轮完全相同的运算,在这里数据和密钥相结合。我们根据下列规 中国科学院硕士学位研究生学位论文c p l d 腰p g a 技术在分组密码中的应用研究 则计算l r 。,1 i r : l 产r 。 r i = l 。一,o f ( r 。,k i ) 这里,f :6 f ( 2 ) “xg f ( 2 ) ”一g f ( 2 ) “是轮函数,k 。,。k 。是由种子密钥 k 生成的子密钥,n 为子密钥的长度。 ( 3 ) 输出明文c = r 。l r 为了使算法同时用于加密与解密,在加密的最后一轮,略去“左右交换”。 这种类型的密码的实现优点是“加解密相似”。 b 非平衡f e i s t e 卿络( u f n ) 这是对f e i s t e l 网络的非平衡扩展,即左边和右边长度不一样的f e i s t e l 网 络。 对一个分组长度为2 n 比特的r 一轮f e i s t e l 型密码,它的加密过程如下: ( 1 ) 给定明文p ,记p = l 。r 。,这里b 是p 的左边s 比特,是p 的右边t 比特。 ( 2 ) 进行r 轮完全相同的运算,在这里数据和密钥相结合。我们根据下列规 则计算l 。r ,l i r : x 。i = r 一i x ”i = l 。of ( r ,。,k 。) x = x 。ix 8 l 。r 。= x 。 这里,这里l 。是x ;的左边s 比特,r 是x 。的右边t 比特,f :g f ( 2 ) x6 f ( 2 ) “ - - g f ( 2 ) 5 是轮函数,k ,k 。是由种子密钥k 生成的子密钥,m 为子 密钥的长度。 ( 3 ) 输出明文c = x 。,x 2 为了使算法l 一时用于加密与解密,在加密的最后一轮,略去“左右交换”。 这种类型的密码的实现优点是“加解密相似”。 目前大多数分组密码是f e i sl c l 网络,但也有用u f n 的如t e a 等。 c s p 网络 s p 网络是f e i s t e l 网络的一种推广,s a f e r 和s h a r k 等著名密码算法都采用 此结构。如图所示,这种密码和每一轮中,首先轮输入被用作一个由子密钥控制 的可逆函数s ,然后再被作用于个置换( 或者一个可逆一线性变换) p 。s p 网 络的结构非常清晰,s 一般被称作混淆层,主要起混淆作用。p 一般被称作扩散 层,主要起扩散作用。 中国科学院硕士学位研究生学位论文 c p l d f p g a 技术在分组密码中的应用研究 图3 2s p 一网络 s p 网络和f e i s t e l 网络相比,可以得到更快速的扩散,但是s p 密码的加 解密通常不相似。 s 一盒在目前的分组算法中用得非常普遍,它是许多分组密码的唯一非线性部 件,因此它的密码强度决定了整个密码算法的安全强度。s 一盒本质上均可看作是 f :“一f 。“上的映射,规模越大,s 一盒的非线性强度越好,但是太大,实现起来就很 困难,而且增加算法的存储度,因此目前大多数s 一盒是8x8 的s 一盒。 s 盒的构造方法:s 一盒的构造方法有两种,堕扭鲨丛笸型遮这和这:蕉丝划 构造并测试法 ( 1 ) 随机选取并测试 通常的做法是随机选择,然后通过测试某些特定的需求进行筛选。只要 设计都的时间和计算能力允许,采用此方式总可以构造所需要的s 一盒, 而且可以使用户相信没有陷门。 ( 2 ) 按一定规则构造并测试 此方法通常以已有的“好的”s 一盒为基础,以一种简单而确定的方式构 造满足需要的s 一盒。如s e r p e n t 算法所用的s 一盒就是利用d e s 算法的 s 一盒以此方式生成的。这种方式构造的s 一盒可以使用户相信没有陷门。 实际操作时,通常是按照如下两种方式进行构造: m 数学函数 使用数学函数可以令用户相信没有陷门,目前常用的此类s 一盒 有下面几个: 指数函数和对数函数:如s a f e r 算法: 有限域上的逆映射:如s h a r k 、s q u a r e 算法: 有限域上的幂函数:由于幂函数的代数结构太简单,因此考虑到 插值攻击和高阶差分密码分析,一般不直接用幂函数作为s 一盒, 而是以它为基础构造新的s 盒。 b l i | 卅群中数学函数的复合 不同数学函数的复合在抵抗插值攻击和高阶差分密码分析方l f i j 的。例如e 2 算法的s 一盒是用有限域g f ( 2 8 ) 中的幂函数和模丰h 6 中国科学院硕士学位研究生学位论文c p l d f p g a 技术在分组密码中的应用研究 加运算复合而来。 3 2 3p 置换 p 置换的目的是提供雪崩效应,一般设计成( f :“) ”一( f 。) 的一个置换。 3 2 4 轮函数 一、轮函数的基本组成 现有的密码算法的轮函数可以分为两种:一种是有s 盒的,如d e s 、a e s 、 e 2 等,另一种是没有s 一盒的,如r c 5 、r c 6 、i d e a 等。 通常情况下,轮函数包括以下的运算 ( 1 ) 加法、减法和异或 ( 2 ) 固定循环移位 ( 3 ) 依赖于数据的循环 ( 4 ) 乘法 ( 5 ) s - 盒 二、轮函数的基本结构 一般情况下,轮函数的混淆部分由s - 盒或者算术运算来实现,但由于s 一盒 由于有其独到的优点( 实现速度快、容易实现、抗攻击能力强等) ,目前大多数 分组密码都使用了s 一盒,因此,下面只讨论基于s 一盒的s p 网络的轮函数。 ( 1 ) 卜轮s p 网络 卜轮s p 网络含有一个非线性层和个线性( 置换) 层,其中非线性层为 s 一盒的并行。如图3 3a 所示。 ( 2 ) 2 一轮s p 网络 2 一轮s p 网络由三层组成,第1 、3 层是非线性层,第2 层是线性( 置换) 层,其中非线性层为s 一盒的并行。如图3 3b 所示。 a p b ) 图3 3 a ) 卜轮s p 网络结构;b ) 2 - 轮s p 网络结构 中国科学院颁土学位研究生学位论文c p l d f f p g a 技术在分组密码中的应用研究 第二篇体系结构 在这一“篇里,作者根据对分组加密算法的结构的分析,从体系结构和工程应 用的角度探讨如何弼用c p l d 摩p g a 技术实现分组潮密。 网、分缱趣密体系缮构 根据工摆实践,可以按如图4 。l 赝示黪结卡句嬲来利盟磺 孛实骥分维密鹅: 镰也 图4 1 分组密码的綦本结构 4 1 疆伟实鬻分组密码扮基本模块 硬件实现分组密码的基本模块如图4 1 所示,它包括如下部分 模块名称 模块葫能 加密和解密。这里搬钥越通过密钢变换模块产生或老由接口模块直接 j,: 塑垒塑:整塑篷! 熙! 塞墼坌垄垫童萋堡妻塑楚尘丝垫! 渐铡变换部分硐于计鲜基于井部密钥的加密或者解密密钥。 内郏辩铡磐然器蹋于存镶密钥变挨掰产生的、或毒遴过鞣入螽五爵天舔磊幕两露菩吾 钥。 输入接il用于将输入数据块、加密解密的初始密铜或再丽莉解否否萌磊天 f p g a ,并将输入的数据块存放避待加密解密模块中。 褊; 接1l闺予藕辩存藏瓣密解密模块静输出,并将其i 痢隔蠢孬歪甄 拎 列郧分用于产生控制嚣横块操 磬的控案僖号+ 1 1 8 中国科学院硕士学位研究生学位论文c p l d f p g a 技术在分组密码中的应用研究 五接口模块设计 接口模块包括输入模块和输出模块。 输入模块在控制模块的控制下,输入待加密与解密的数据、密钥变换模块所 需要的初始密钥、或者用于加密解密操作的操作密钥( 有时密钥变换操作不在 f p g a 内部进行) 。 输出模块在控制模块的控制下,将处理完毕的数据( 加密后的密文或者解密 后的明文) 送出f p g a 。 它是c p l d f p g a 与外围电路之间的桥梁,它的效率的高低直接影响到加密的 效率。这也是作者平时花较多精力研究的地方。下面根据实际工作的经验,给出 几种接口方式。 5 1 接口模块的设计方式 由于接口模块是c p l d f p g a 与外围电路( 如单片机) 之间的桥梁,因此根据 实际情况,可以有如下几种实现方式: a 总线方式 b 独立方式 c 同步异步f i f o 方式 5 2 总线方式 总线接口方式下,接口信号包括: ( 1 )读控s t j r d ; ( 2 )写控$ i j w r ; ( 3 )数据线d a t a ; ( 4 )地址线a d d r : ( 5 )片选c s : 通常为了实现总线方式,c p l d f p g a 端还得实现一些控制寄存器,如命令寄 存器,状态寄存器等,这样就可以在上述信号下,外部控制芯片( 如单片机等) 就可以控铜j c p l d f p g a 的操作,如加密、解密、密钥变换、接收和发送数据等。 单片机以总线方式与c p l d f p g a 进行数据与控制信息通信有许多优点: ( 1 )速度快。其通信工作时序是纯硬件的行为,对于m c s 一5 1 等单片机, 只需要一条指令即可完成所需要的读写时序,如: m o v d p t r ,a m o va , d p t r ( 2 )节省c p l d f p g a 芯片的i o 线。 ( 3 )相对于非总线方式,单片机编程简捷,控制可靠。 ( 4 ) 在c p l d f p g a 中通过逻辑切换,单片机易于与s r a m 或者r o m 接口。这 种方式有许多实用之处,如利用类似于微处理器系统的d m a 的工作方 式,首先由c p l d f p g a 对数据进行高速处理( 加密、解密等) 或者与 中嚣科学院硕士学位磷究生学垃论文 c p l d f p g a 技术在分缝密褥中斡应耀磅究 接日瀚离速a d 等器件遴行商速数据采样,并将数据暂襻于s r a m 中。 而单片梳与s r 娴潋总线方式进行数据通信,以便发挥单片机强大的 数据处遴能力。 5 3独立方式 与总线接口方式不溺,几乎掰鸯单垮梳裙能戮葶蠡立按蹬方式与c p l d f p g a 进 行通信,其通信的时序方式w 以由所设计的软件自行决定,形式灵活多榉,其最 大的优点是c p l d f p g a 中的接口逻辑无需遵循单片枫内固定总线方式豹读譬时 序。c p l d f p g a 的逻辑设计与接口的单片机程序设计可以分先后相对独立地完成。 事实上,器藩谗多瀛彳亍翡肇片祝跫冤总线工 筝方式,如8 9 c 2 0 5 t 、9 7 c 2 0 5 l 、z 8 4 系列、p i c i 6 c 5 x 系列等。 例如,对于一个3 2 位的主机系统,可以将接口模块按照独立方式设计翔下图 所示。 - + f a ,翌k 湖零f 器帮 1 7 7 广工2 毒1 l r j k e y ,3 2l v , s 转硝+ ai = 捷a 7 , c o r e ( 一 i _ r i : 声乙 土1 l r1 l r1 l r 雀r: 嘬i ) , w r 较、 : k i ? ys 1 - r n 出謇彝 墅5 33 2 经独立续掰 图中隔个1 2 8 一位寄存器用于存放明文或者密文,它们可以通过3 2 位数据总线d a t a 按照串行方式访婀,在接收了4 个3 2 馕数据聪,热密( 解寮) 模块在控制鹰存器 的控制下,会自动开始执行相应的操作。通过c s d a t a 和c s _ c t r l 信号可以访 润数箨稻控澍寄存瓣。透过鞯r 或者r d 的羿沿,可戳实现读写操作。通常, 密锈存姥器蹩2 5 6 个3 2 位字。预先计算豹子密锈通过独立的3 2 位总线k e y 访问。在 k e y s t r b 上拜沿和w r k e y 为低黠,毅约予察锾被鬟入密钥 筝德器。对于a 1 t e r a f 1 e xl o k ,该接翻占用大约3 8 0 个邋辑零元。 5 4 溺步冥步f l 固方式 5 。4 1翔c p l d i f p g a 器锋实现f i f o f i f o 是先进先出堆栈,作为数据缓冲器,逶卷篡数提存放结枣奄楚完全霹r a 醛 一致的,只慰存取方式有所不同。下恧以个容鬃8 x 4 位的f i f o 采送 亍分缓嗣步 f i f o 的基本实现原璃。图5 4 是一个f i f o 的引脚框图。 中国科学院硕士学位研究生学位论文c p l d f p g a 技术在分组密码中塑堕旦婴究 d a t a i r d w r c l k i - 同步f i f o l r 图5 4f i f o 弓i 脚框图 阳“_ r f u l l e m p t y 上图中的f i f o 有4 条数据输入线d i n ,4 条数据输出线d o u t ,一条读控制线r d , 一条写控制线w r ,一条时钟输入线c l k 及两条状态信号线,即满信号和空信号线 ( f u l l ,e m p t y ) 。 f i f o 由6 个功能块组成,它们是存贮体、写指针( w p ) 、读指针( r p ) 、满 逻辑i n f u l l 、空逻辑i n e m p t y 和选择逻辑s e l e c t 。这是一个同步f i f o 。在时钟 脉冲的上升沿的作用下,当w r = o 且f u l l = o 时,d i n 的数据将压入f i f o 堆栈。在通 常情况下,r p 指示器所指出的单元内容总是放于d o u t 的输出数据线上,只是在 r d = o 且e m p t y = o 时,r p 指针的内容才改变,而指向f i f o 的下一个单元,下一个单 元的内容替代当前内容并从d o u t 输出。这即是s h o w a h e a d 方式。注意,对于这种 方式的f i f o ,在任何时候d o u t 上有一个数据输出,而不象r a m 那样,只有在读有 效时才能数据输出;而1 # - s h o w a h e a d 方式的f i f o 勋j 象r a m 那样,只有在读有效时 爿。能数据输出,平时为三态输出。 f i f o 的存储器实际上是一个环形数据结构,由w p 矛i j r p 分别指示数据写和数据 读的对应单元。在这里w p 指示的是新数据待写入的单元地址,发一个w r 有效信号 ( w r = o ) ,就可将d i n 上的数据写入该单元;而r p 指示的是已读出数据的单元地 址,要想读下一个数据就要发一个r d 有效号( r d = o ) 使r p = r p + l ,这时就可以读 出下一个新的数据了。r p 和w p 之间的信号关系如下图所示。 中国科学院硕士学位研究生学位论文c p l d f p ( 3 a 技;# g ; i 熊塑宣堡皇塑堕星墅塑 r p r p 空 空 豆 空 空 空 空 空 f if o 空状态 r p = w pl ( a ) w p w p r p :w p l f if o 满状态 ( c ) 图5 5 _ 一 再写一

温馨提示

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

评论

0/150

提交评论