(计算机软件与理论专业论文)des协议的fpga实现.pdf_第1页
(计算机软件与理论专业论文)des协议的fpga实现.pdf_第2页
(计算机软件与理论专业论文)des协议的fpga实现.pdf_第3页
(计算机软件与理论专业论文)des协议的fpga实现.pdf_第4页
(计算机软件与理论专业论文)des协议的fpga实现.pdf_第5页
已阅读5页,还剩61页未读 继续免费阅读

(计算机软件与理论专业论文)des协议的fpga实现.pdf.pdf 免费下载

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

文档简介

d e s 协议的f p g a 实现 摘要 目前,大部分安全标准和安全应用要求与所使用算法无关。也就 是说,对子翔露欧功麓,露隧选择使矮各种不慝酶加密算法来实现。 l - i 前数据加密协议( d a t ae n c r y p t i o ns t a n d a r d ) 时使用最广泛的私有 密钥加密算法,实际上d e s 几乎就褶当予是私有密要加密算法了。 现场可编程门阵列( f i e l dp r o g r a m m a b l eg a t ea r r a y s ) 是一种可燕配 置硬件设备。使用f p g a 可以在应用中快速地切换算法,这样,在算 法无关的安全应用中如果应用f p g a 来完成加密巽寮算法裁j 嚣理 想了。在保护原有硬件设备投资的前提下,用f p g a 完成数据的加密 熊密速度要比软传恢上数卡售甚至尼酉倍,碌时f p g a 与款件实现 加密解密算法相比具有嗣样的灵活性。目前,尽管有一些讨论使用 可重配饕硬件设备如f p g a 或c p l d 实现d e s 加密算法的文章,但 是对使用f p g a 高速实现d e s 算法的系统性地分析还没有出现。 在本论文的研究中,详细分析了几种实现d e s 算法的结构,其 中霾点放在了如何提高d e s 的效率期速度上殛。针对d e s 算法的循 环汁算的结构特点,运用了循环体展开结构与流水线结构进行了设 诗,荠对这蘧耱结橡特点展舞深入分橱,比较。绘出了d e s 低鬃电 路结构的详细设计。在a l t e r a 设计工具中对各种结构d e s 进行编译、 综合,褥餮了最高处理速度为3 8 4 m b i t s 酶结采。 关键字d e s ,f p g a ,流水线结构,循环体展开结构 f p g ab a s e dd e ss t a n d a r di m p l e m e n t a t i o n a b s t r a c t m o s tm o d e ms e c u r i t ys t a n d a r d sa n ds e g 毽r 酶g p p l i c a t i o n sa r ed e f i n e dt ob e a l g o r i t h mi n d e p e n d e n t ,t h a ti s ,t h e ya l l o wac h o i c ef r o mas e to fc r y p t o g r a p h i c a l g o r i t h n a sf o r t h es a l t l ef u n c t i o n s i n c et h ed a t ae n c r y p t i o ns t a n d a r df d e s ) i s c u r r e n t l yt h em o s tw i d e l yu s e dp r i v a t e k e ye n c r y p f i o na l g o r i t h m ,d e si su s u a l l y a m o n g s tt h e m 。f i e l dp r o g r m m n a b l eg a t ea r r a y s ( f p g a ) a r er e c o n f i g u r a b l eh a r d w a r e d e v i c e s ,t h e yc a i ls w i t c ha l g o r i t h m so n - t h e - f l y t h u s 。e r y p t o g r a p h i ca l g o r i t h m sw h i c h a r ei m p l e m e n t e do i lf p g a s p r o v i d ea ni d e a lm a t c hf o ra l g o r i t h mi n d e p e n d e n ts e c u r i “ a p p l i c a t i o n s o nf p g a s ,c r y p t o g r a p h i ca l g o r i t h m sc a l lr t mm u c hf a s t e rt h a no n s o f t w a r ew h i l ep r e s e r v i n gt h es e c u r i t yo ft r a d i t i o n a lh a r d w a r es o l u t i o u s a tt h es a m e t i m e ,f p g a sa l l o wp o t e n t i a l l yt h es a n l ef l e x i b i l i t ya ss o f t w a r ed o e s a l t h o u 蕊t h e r e h a v eb e e naf e wp r e v i o u sr e p o r t so nd e s i m p l e m e n t a t i o n s0 1 1r e c o n f i g u r a b l ed e v i c e s , t h eh a sb e e nn os y s t e m a t i ct r e a t m e n to f t h a tm a t t e r id e s i g n e da n di m p l e m e n t e dv a r i o u sa r c h j t e c t u r eo p t i o n sw i t hs t r o n ge m p h a s i s o nh i 酶s p e e dp e r f o r n l a n c e 、t e c h n i q u e sl i k ep i p e l i n i n ga n dl o o pu n r o l l i n gw e r eu s e d a n dt h e i re f f e c t i v e n e s sf o rd e so nf p g a s i n v e s t i g a t e d ia l s op e r f o r m e do p t i m i z a t i o n o nal o w e rl e v e l 。t h eh i g h e s ts p e e dd e s i g nc o u l da c h i e v ed a t ar a t e so fu pt o3 8 4 m b i f f su s i n gas t a n d a r da l t e r af p g a k e yw o r d s :d e s ,f p g a ,p i p e l i n i n g ,l o o pu n r o l l i n g 独创性( 或剑新r 胜) 声明 本人卢明所旱交的论文是本人在导师指导下进行的研究工作及嫩得的研究 成粜。尽我所始,除,文孛特别搬以标注秘致谢中蹶罗瓣麴内容以静,论文中不 包含其他人已经发表或撰写过的研究成果,也不包含为获得北京邮电大学或其他 教翕祝睾冬静学位或证书丽饺箨j 过弱挺辩。4 i 我一黼工挥静闻志对本磺究掰徽的任 何贡献均已在论文中作了明确的说明并表示了谢意。 申请学位论克与资料若有不实之处,本人承担切相关责任。 本人签耋蔓二捌函氅搬蓥一 | ! = i l 期:趣! 翌兰羔l 一 关于论文使躅授援鳃滋赘 学位论文作者完全了解北京邮电大学有关保翻和使用学位论文的规定,即: 磷究生在校玫浚学覆期闻论文工捧熬知识产较擎位_ | i 霉j e 京都电大学。学校有权僳 鹫并向国家有关部门或机构遴交论文的复印件和磁盘,允许学位论文被查阅和借 阗;学校可以公布学位论文的全部或部分内容,可以允许采用影印、缩印或其它 复制手段保存、汇编学位论文。( 保密的学位论文在解密后遵守此趣定) 保密论文注释:本学位论文属于保密在一年解密后适用本授权书。非保密论 文注释:本学位 本人签名: 导鸯摹签名: 逶弼本授毅书。 日期:迎! :照! e t 麓:纽l :生! ! 第一章前言 隧蕊网络豹迅逡发震,对安全瞧戆需要越发羹要。然藤,尽管鼷终技 零遴步 很快,安全性问题仍然帽对落后,并且在很多壤泌下只s 靠艘数私人嘲v p n 和防 火墙。斟虚拟私人嘲建构建在i n t e r n e t 辨鄢绻构上的,必颁采取某些措施保证 安令性问题。一釉方法是使用因特网协议安仝憾( i p s e c ) 标凇。f p s e c 是组协 汶,它在i p 协议艨援供安全绦密的通信。i p s e c 协议有通邋和传输两种邋信模 式,菇了豫迁在麓遮遽傣中豹数撼安全,在设计哮;镬弱疆俘黧蘧紊实瑷i p s e c 中 的加密和认证。i p s e c 中的加密部分使用d e s 算法,或使用r c 5 、i d e a 、b 1 0 w r i s h 纛c a s t 1 2 8 等算法份为加密手段。 早征1 9 7 2 年,美国国家标准鲻( n a t i o n a lb u r e a uo fsl a n d a r d s ) 丌始研 究制定细密算法的标准,1 9 7 6 年制定了数据加密给议( d a t ae n c r y p t i o n s t a n d a r d ) 。日盼d e s 协 义是应用最广泛的私有密码算法,并成为许多其它标准 漱辫埝魄甄a 融c e l je r i r p t i o n 。 大多数安全拣准窝安全瘗溪都要求骰戏算法无关数( & 】g o r i t h m i n d e p e n d e n t ) 。也就是说对于一个给定的安全服务,【旺以使用多个不同的加密算 法来完成。这毒挚期襞协议或应用经月较 孛柒完成瓣话,委改棼法时,通过黪改软 件可以很宾易完成系统的升级,聪如果是硬件来宠成的,遴到簿法升级时就会很 酥颓。丽扶另一方颟来看睨,硬件解决方案速黢要比软件躺掷决方案快很多。要 解决这个矛盾,就需硬使用基于f p g a ( f ie l dp r o g r a m m a b l eg a t ea r r a y ) 的可 重配疆设鍪。使爝f p g a 设备可以不用掺改硬件缩构,通过篓矫配置f ) g a 达到算 法秀缀的瓣蕊。疑j _ f p g a 霹以实理尼耪不列粒热密箕渣。在| 霹一时闽,f p g a 只能配鼹为一种簿法,但是如果豁要改变篼法,可以通过骥新配置f p ( ;a 很快地 切换到凝的算法。 尽管鼯前已经有一些使用可莺既露设备完成d e s 协议的讨论,但是还没有有 系统豹研究。本论文中详细分析了使用f p g a 设汁d e s 的务楔块,及j k 种流行韵 结构设汁方案,对各方案占用资源与取德的性能作了比较分析,为采用f p g a 设 汁d e s 鸯羁密算滢选取筋结构提供了依据与参考。 第二章设计环壤与舞发步骤 设计躬繇有源代褥采嗣v h d l 语言编写,并发环境为a 1t e r a 公司的集成开发 环境q u a r t u s l i4 0 ,采用的f p g a 器件为q u a r t u s 公司的c y c l o n ee p i c 4 。 f p g a 的开发主要分以下几步进行: 1 对d e s 算法进行研究分板 2 ,对d e s 的结构进行研究分析 3 实璇d e s 靛缝稳 4 使用v h d l 实现d e s 的蘩本功熊模块 5 磊不同静结构实现d e s 6 在r t l 级验证各种版本的d e s 7 综合并进行逻辑实现 上聪列出魄几个步骤实际操传执行_ | l l 羹序大致如此。首先完成步骤l 至4 ,有 时候它们是同时进行的,比如,在写基本功能模块的v i i d l 代码时可能会有优化 竣诗,撬高性筑的瑟惑路产生。 对每一个设计来说,后丽的几步就必须按照这个顺序完成了,如果一步通不 遭藏必须返回上一步避 亍修浚后霉薰束一遮。 第三耄d e s 算法 d e s ( d a t ae n c r y p t i o ns t a n d a r d ) 算法袋拐盘荚潮国家标凇弱予t 9 7 5 年发布。 d e s 是种块加密协议,它不同予流加密协议。流加密协议是对一个比特流进 行逐眈祷加密或解密,丽块加密协议一次对一个数据块整个进行加密或解密。图 4 1 为d e s 协议的i o 框图。 黧3 ,1 戳i o 框爨 d e s 协议使用5 6 b i t 长的密钥对6 4 b i t 的明文数据块进行加密。加密后的密 文长度稍翳文长度 穗阏。由予d e s 的解密过程与加密凡乎完垒一稃,下面就着 重介绍d e s 的力u 密。 下面给出运用d e s 的一个小例子。a 与b 使用相同的密钥k ,a 对明文x 进行热密居,将加密蘑的密文y 发送到b 。b 馊用相同的塞锈k 烽y 进行解密 就将原明文x 恢复了出来。 ab d e s k ( x 产y 3 , d e s 算法豹生要蕊数 蹦3 。2d e s 避甩耱倒乎 图3 3 给出了整个d e s 箨法的核心部分框瀚。进入的明文x 经过初始排序 ( t n i t i mp e r m ur a t i o n ) 后为x 。接下来将x 。分为处于赢位的3 2 b i t ( l o ) 与处 于低位的3 2 b i t ( r 。) 2 部分,即:i p ( x ) = l 。r 0 。 匕秘l 。魏蹩d e s 梭心函数懿输入,d e s 是一释f e i s t e ln e t w o r k ,这静网络 包含重复的结构。在d e s 中其核心函数会熏复执行16 轮,每一轮该函数的输入 都爱上一耱函数的输出。图3 4 就是一轮d e s 棱心函数的操俸。 胬33o e s 算j 去框图 在强申膨号i 表示当懿执行黪轮数,闲此i 取袋藏匿可以使l 1 6 。拽 行一轮d e s 函数后的输出可以表示为: l ,= 驻 r ,= kt 国f ( r k ,) 第l 轮 瞄3 ,4一轮d e s 函数 这罩。表示两个比特流进行异斌,f 蛙r ,一,弓子密钥k 的函数。在第1 6 轮 d e s 曩r 。秘l 。= ! 王换位嚣为r ,。l 。,最履冉避抒i p “( 这个接序弓初始搀序l p 糨厦) 的排序就,“:7 ir 密文y = i p 一( r ,。 。) 。 瞄3 5f 薅鼗 如图3 5 ,f 函数将输入r 。首先由3 2 b i t s 扩展到4 8 b i t s ,增加的这1 6 b i t s 翱已有的3 2 b i t s 中的1 6 b i t s 是重复的,扩展后的结莱为e ( r 。) 。遮4 8 b i t s 与 予密钥k i 再进霉亍异或e ( r 。) ok i 。异或的结果分成8 个块,每个块6 h i t s ,作 为s 盒的输入。s 盒可以看作是6 位输入4 位输进的查找表。s 盒的3 2 位输出进 霉亍一次誊| 旁操佟( p ) ,输出的 e 特帛就是f 眩。k ;) 。 3 。2d e s 静密钥的时序安排 每一轮d e s 处理都需要一个不问豹子密钥懿,这些k ;都怒由密镅k 产生的。 输入的密铝k 为6 4 位长,其中包括8 位奇偶校验位。剩下的5 6 位有效位就是在 此需要用到的输入密钥。 子密钥的产生也是经过1 6 轮羹复的操作后褥到的。5 6 位输入密钥首先进行 重新排序( p c 一1 ) ,然后分为2 个部分,每部分2 8 位。裘示为p c 一1 ( k ) = c o d 0 , 在这墨e e 表示亵2 8 挝,d o 表示甄2 8 位。 这个f e i s t e n e t w o r k 结构每一轮都会产生个子密钥。图3 6 中给出了产 生一个予密钥豹过程。每一轮c ;一;帮蚤,;帮会进行循环友移,表示为l s 。校掘i 的值c 。和d 。左移l 位( i = l ,2 ,9 ,1 6 ) 或两位( i 为其它值时) 。 c i = l s i ( c i 1 ) d ;= l s i ( d i + 1 ) 处理厉的c 、d ,继续作下轮运算的输入,同时它们组合在一起瓜经过p c2 螽 j 孚藏t e 残了该轮静予密钥:k 。= 粥- 2 e ,d ) 。p c - 2 撵序褥长度由j 6 位减少至 了4 8 位。 3 3 d e s 的解密 图3 6d e s 的密码运算 d e s 的解密用到的算法和加密是样的。唯一的区别就是解密时用到的子密 锾秘麓密靖豹子密锈颁彦稳反,依次镬爱嚣。k 一一甄。辫密结巢莸跫热密蓠豹 原明文。加密时c 。和d 。是做循环左移操作,而解密时c 。和d 。做循环右移操 作。袭3 1 给出了c ;和d 右移位数与i 之问的关系。 1234567891 0h1 21 31 41 51 6 加密1l2222221 2 222 2 2l 鼹密 ll2222221222222l 3 。4 d e s 王终横式 表4 1d e s 子密钥移位对照表 标准中规定了d e s 的4 种工作模式:e c b 、c b c 、c f b 、o f b 。分别为: e c b :e l e c t r o n i cc o d e b o o km o d e电玛本模式 c b c :c i p h erb l o c kc h a i n i n gm o d e 密钥分组链接模式 c f b :c i p h e rf e e d b a c km o d e 密钥反馈模式 o f b :o u t p u tf e e d b a c k , n o d e 滁趣反镶捶式 一5 彀鹤本模式( e c b ) 是最简单得块加密模式。将翳文分袋著于个长度为6 4 位的块 x i ,对每一块都分别单独加密( 见圈3 z ) 。每个独立的明文块都分别对应独立 的密文块:y i = e k ( x i ) 。这种简单的加密模式的f j 题鼹有可能对加密文本进行 替代玫卺,扶瑟破解密文。 n 心一 一 ff k 图3 7e c b 模式 k 密钥分组链接模式( c b c ) 用到了初始向爨( i v ) 和循环反馈。每块密文的加 密结果都依赖于前面所有的密文( 觅图3 8 ) 。第一个明文块在加密之前会先和 秘始化岛量i v 进行舅或,感蘧蹶有要热蜜瓣块帮会先秘翦霹已翅密瓣密文块进 行异或辫进行加密: y o = e k ( x o i v ) y i = e k ( x i o y i l 、 豳3 8c b c 模式 密钥反馈模式( c f b ) 通常用于长度小于6 4 位的明文块的加密,它不需要填充码。 匿3 9 是c f b 模式的蹶理图。此模式要用到一个6 4 位的移位寄存器,浚蛰存爨 存i = 0 时保存着个初始化向量( i v ) 。首先对此移位寄存器的内容进行加密: 毛= g 女( ? 矿) 。 、犁 了 ,早 豳3 9 挤8 模式 将z ,最左端的1 位与此l 位长的明文块异或产生密文块:i = x ,o 墨。随戚移位 寄存器移位l 位,并潦y i 载入最右侧的位嚣。对移位寄存器的新的内容加密产 生耪麴# 。 输粥反镶模式( | 。黼 与c f b 模式鞠叛,不阚黥楚o f b 模式稻热密蕊数豹输盘 徽为反镄,两c f b 模式是以豢文为反壤。 3 。5 d e s 的增强 将d e s 连续使用3 次将会使加密更为安全。 最嚣用的有2 种3 _ 重搬密方絮:攘密解密加密秘鸯n 密糖密 加密。 热爨一解密趣密这静方案通常健掰仅2 个密绸。酋先使瑶第个密钥 埘叫文进行加密o 。( x ) ,使用第二个密钥对密文谶行解密8 嚣魄,( x ) ) ,最后雨使 雳麓拿密绸对瓣密结果热整:f 一# 。( 魄; 舅) ) ) 。 圈3 ,l o 描述,拥密勰密如密禳方式。对明:曼x 傻蠲3 个罐i 黼鲍密 钥连续切l 密3 次:,”一,( p 。2 ( 吼。( 并) ) ) 。 x | k i蠡2k 3 臻3 + 3 d s 蕊密 第四耄d e s 的结构 ¥ 瑟完成一个嵩教的d e s 算法,第一步要骰的就是分析算法的结构,找辔最合 疆静静来。 4 ,1 将d e s 结构化 歪翔第三章掰介缓豹d e s 算法霄一个反笺执彳亍的缩构。鲡图3 3 所示,数据 邋过f e i s t e ln e t w o r k 传递1 6 次,每次搜羯褰镌生成爨数生戏熬不闷黪予密锈。 强4 1 键熙淡程爱瓣形式表示了这个遥程。竣入楚纛加密熬嘲文,辍回次数i 首 先设鼹为l 。f e i s t e ln e t w o r k 在图中表示为r o u n d ,。每一辁之后,比较l 是否 小于1 6 ,如果是的话就把i ! l f j1 ,把当前的输出反馈圈f e i s t e ln e t w o r k ,) l - 始 新酌一一轮的运舞。1 6 轮之后就褥到了加密的密文y 。 通过流程瀚就得到了和硬件实现结稀相似的框图,在此基础上做出一些更深 入鹊掰究。霞4 。2 的结梅槿图与流稷圈静设硝“基本稻瀚。 x y 图4 1d e s 的流程匿圈4 2d e s 的框燃 在第三章介绍了,明文块和密钥通过初始化排序( i n i t i a lp e r m u t a t i o n ) 传递过来。然后数据通过f e i s t e ln e t w o r k 传递1 6 轮,同时产生1 6 个予密钥。 在框图中f e is t e in e t w o r k 静逡作积予密钥的产生都匿j 缝合逻辑来表示( c l u , c o m b i n a t o r i a ll o g i cu n i t ) 。为了将组合邋辑的输出反馈阐输入,需爱使用到 寄存嚣和复用器。簸用器用来从新的输入数据、上一轮输出数据和密镪中选择合 适的作为组合逻辑的输入。寄存器用来保存每一轮的运算缡果并把他们反馈回到 复越器。数据毒孬器豹簸窭会佼递给爱磐,髯字( f f n a lp e r m u t a t f o , 目) 。为了篱纯 设计将每一轮的结果都会递给嘏终排序模块,然后传给输如模块。由控制逻辑模 块判断输出是否有效并给出控制信号。 4 2 循环体展开结构 藏节讨论第。”个在硬俘实溅d e s 揍议对黧餍鳃鸯l 炔执行速凄的设资缝秘;獯 环体展开结构中连续使用2 个缀合逻辑单元孰丽将循环次数减少一半。这就意味 着每一个时钟周期都将作2 轮d e s 运算。图4 3 给出了这种结构的框图。这个框 图和幽4 2 相比只烂增加了一个组合逻辑单元,而初始化排序、最终撑序以及使 矮蜀熬寄存器帮爱臻器是完全纂 同瓣。 这种结构可咀给性能卜带柬多大的提升睨? 在循环体未展丌时,每。轮d e s 运算耗费的时间口j 以表i 为:l 。十l ,+ 咒。,在这里7 j 。表示信号经过复用器时 占用盼时耀,i ,表示组合逻辑蛰来的延时,疋;,表示寄存器带来的筵时。所以经 过1 6 输运算,系统占用的时间臆菸为:1 6 ( 。+ 乃+ ) 。 网4 3 循环体展开结构 露德繇钵震嚣缡梅每一轮糕爨耱辩嗣为:瓦。+ 2 零毛+ 7 名。恧整个d e s 运算 需要此循环体执行8 次,这样耗费的总时间就是:8 木( l 。十2 乃+ z 毫) 。同样也 可以鳟出展开为4 个循环体的结构时系统占用的时长。下麟列出每种结构耗费的 时闽: 未展开的结擒: 1 6 ( 瓦。+ 毛+ k ) 殿开为2 个循环体的结构:8 ( l 。+ 2 乃+ 咒。) 展开为4 个循环体的结构:船( 死。+ 4 巧+ k 。) 缀葫显戆,遴避漤艇矮环体黪不韪鹱枣缀会逻辑雩汾、瓣延露,霆楚复璃器与 寄存器带来的延时可以相应减少一半。 4 ,3 流水线结构 现在讨论另一种可以提高d e s 运算速度的结构。流水线结构使用另外一种方 式来撼赢系统豹遮发。浚拳线并不是一次哭鲶疆一个数摅块,滚承线瓣设诗可敬 同时处理2 个或更多的数据块。图4 4 给出了一个2 道流水线的设计。图4 4 中 的结构与展开为2 个循环体的结构非常想似( 图4 。3 ) ,唯一的不同是在此设计 中蠢缀合逻辑单元之闽增舞了赣外兹毒存嚣。 鹭4 。4 其蠢2 缎流零线鹊d e s 绩擒 如上图所示,首先载入第一个数据块x 1 和相应的密钥k l ,传递给初始化排 序和复嗣器模块。第一个组合逻辑单元对数据进行处理并将结鬈x l ,i 和k l ,1 保 存在第个寄存器中。下一个时钟周期时x l ,l 季uk 1 ,l 传递到繁二个组合逻辑单 元,运算结果x l ,2 和k 1 ,2 保存在第二个寄存器中。与此同时,系统将第二个数 摆块x 2 翻蜜钥k 2 载入轫化肇元积复用嚣攀元,繁一个缀合逻褥单元处理后垮结 果存入第一个寄存器。 浚承线这时簸装滏了,在每个时钢;麓裳都会对2 对数据块秘密甥进幸亍运 算。首先进入流水线的数据也会首先输出。只有完成一个数据块的处理并输出后 流东线才会载入薪静数据块。 这个没汁的优点在于可以在同一时间处理2 个或2 个以上的数掘块,同时系 统中只掰到了一个初始化排序、复用器以及最终排序的实例,系统占用的芯片资 源凄比2 个采列非流水线的设计少褥多。溅求线设计的疑赢时钟频率和采用菲滚 水线的设计所熊做到得最高时钟频率相同,也可以很容易的将流水线的级数扩展 到蠢于2 缀,比如4 缀。 4 4 流水线和循环体腰开榴结合的设计 也可以把以上介绍的2 种方祟结合越来。在每一级流水线中使用2 个展开的 循环体,这样结构框潮就如下面4 5 所示,这个框图的结构和图4 4 相似,不同 的地方怒这个绫构中把4 。4 巾的组台逻辑单元展开为2 售了。这撵每个时唾| 周期 瑚+ 以同时进行2 个数据块的处理。 墨4 ,52 个嶷牙蒋嚣体号2 缀浚痰线缝碡 4 5 筷釉设耄专结构的 艺较豹选择 在3 4 节分缓静一些d e s 工 乍攥式孛需要将d e s 酌输蹬与下个输入傲一些 运筛,运算结粜再作为新的输入( 如c f b 模式) 。如果采用了这类工作模式的 话t 流水线的设计就无法t 作了,糊为2 级的流水线要澍时处理2 个数据块。而 循环体鼹丹的工作模式可以工作褥缀好,并且这是唯一的一积t 能够提赢d e s 处理 速度的设计结构n 如粜工作模式没有这个限制的话,比如e c b 模式,就可以采用 流永线结构设计。采蔫流水线结构的设计通常速度要沈循环体展开结构设计的速 度要快。 论文中将对几个加快d e s 处理速度的设计结构( 循环体展开、流水线和两者 的缀合) 皎进行匕较。表4 。1 绘出了这凡啥设诗绩构。 名称据述 d e se d l 6 标准d e s ( 单循环体1 6 轮运算) d se d 8曩开为2 令镶环# 滟d e s ( 8 轮运舅) d e se d 4展开为4 个循环体的d e s ( 4 轮运算) d e se d l 6 * 22 级流灰线毂d e s d e se d l 6 * 4 4 级流水线的d e s d e se d 8 * 22 级滚水线,每缀流东线展开为2 个循环体 表4 1典型的d e s 缩构 第五章d e s 设计 本章主要解决电路设计的问题。分析了d e s 的结构后,可以把d e s 分成一些 小一些的运算单元,称为“功能模块”。攘下来藏要分析如何使这些功能块豹运 算效率最高,这样才可以继续作进一发的优化。 5 。1 d e s 的功能模块 这一节只讨论一个菲震开且菲浚泰线练橱懿d e s ,并怠只毫掇密瓣功熊。这 里蕊的各功能模块也可以用在更高级的设计里面。 丰餮舔自苕面踅节的介绍,d e s 设计申包括裙始纯| j j 芋,最终瓣序,寄存嚣和复 用器。缎合逻辑单元包括f e is t e l 网络和密钥生成部分,还需要进步的研究。 如图3 3 所示,f e i s t e t 嘲络包括一个3 2 b i t 异或模块和f 函数模块。f 函 数模块包括个扩艘鑫,一个4 8 b i t 异或攥块,8 个s 鑫和+ 个排净鑫。 密钥生成模块需癸一个移位寄存器和一个排序盒。根据运簿的轮数不同移位 寄存嚣必须进; 亍 或2 位移僚操 乍,穆位熬方向投攥工作模式是加密或蜒密瓣不 同也小一样。这所有的操作所用到的基小功能模块如下: 撑廖盒鞫扩餍盒 寄存器 复用器 异或运算 s 盒 移位窿存器 5 2 占用的逻辑淡源 下蘑对上一节艨列鲍所鸯功能攮块进霉亍分振,并绘出实现方法。 5 2 撼痔盒与扩袋鑫 攘孝盒记象了全都跑装流。扩鼹鑫实鼯上楚一释特殊戆撵痔盒,扩展鑫会对 一魑b i t 避行复制。记泶、复制b i t 不需要逻辑资源,使用线路资源就w 以完成了。 箭一级遥辑蕈元的输国会按照不同的次序( 及完成了排序搡佟) 连接飘下一缀遂 辑单元的输入。如果在设备的输入或输出处就需要 序比如初始化排序盒最 终排序,排序操作就通过设餐的f o 管脚和他们涟接的逻辑单元的逢线进行。这 样撼序掇作以及扩展操作壤不会黪来毅终蛉延迟。下蘧绘出识热诧爨序金 p c i b o x 的v h d l 实现代码: l i b r a r yi e e e ; u s ei e e e s t d _ l o g i c 1 16 4a l l ; e n t i t yp c lb o xi sp o r t ( c d:i n s t d _ l o g i c _ v e c t o r ( 5 6d o w n t o1 ) ; k s :o u t s t d l o g i c _ v e c t o r ( 5 6d o w n t o1 ) ) ; e n d p c l b o x ; a r c h i t e c t u r eb e h a v eo fp c l b o xi s b e o i n k s ( 1 ) - c d ( 5 3 ) ;k s ( 2 ) oc d ( 4 蛾k s ( 3 ) = c d ( 3 9 ) ;k s ( 4 ) oc d ( 3 2 ) ; k 截5 ) ( :c d ( 5 2 ) ;k s ( 6 ) cc d ( 4 5 ) ;k s ( 7 ) - c d ( 3 9 ) ;k s ( 8 ) - c d ( 31 ) ; k s ( 9 ) _ c d ( 2 4 ) ;k s 00 ) o c d ( 1 7 ) ;k s ( 1 l - c d ( 1 0 ) ;k s ( 1 2 ) o c d ( 3 ) ; k s ( 1 3 ) :c d ( 5 i ) ;k s ( 1 4 ) g c d ( 4 4 ) ;k s ( t 5 ) - c 磁3 7 ) ;k s ( 1 6 ) o c d ( 3 0 ) ; k s ( 1 7 ) = c d ( 2 3 ) ;k s ( 1 8 ) ( = c d ( 1 6 ) ;k s ( 1 9 ) = c d ( 9 ) ;k s ( 2 0 ) q c d ( 2 嗡 k s ( 2 5 ) = c 1 ) ( 2 2 ) ;k s ( 2 6 ) = c d ( 1 5 ) ;k s ( 2 7 ) = c d ( 8 ) k s ( 2 8 ) = c d ( 1 ) ; k s ( 2 9 ) = c d ( 2 5 ) ;k s ( 3 0 ) q c d ( 1 8 x k s ( 3 1 ) - c d ( t 1 ) ;k s ( 3 2 ) = c d ( 4 ) ; k s ( 3 3 ) = c d ( 5 4 ) ;k s ( 3 4 ) oc d ( 4 7 ) ;k s ( 3 5 ) _ c d ( 4 0 ) ;k s ( 3 6 ) qc d ( 3 3 ) ; k s ( 3 7 ) = c d ( 2 6 ) ;k s ( 3 8 ) = c d ( 1 9 ) ;k s ( 3 9 ) = c d ( 1 2 ) ;k s ( 4 0 ) 2c d ( 5 ) ; k s ( 4 1 ) _ c d ( 5 5 ) ;k s ( 4 2 ) 。c d ( 4 8 ) ;k s ( 4 3 ) ( - c d ( 4 1 ) ;k s ( 4 4 ) 2 c d ( 3 4 ) ; k s ( 4 5 ) _ c d ( 2 7 ) ;k s ( 4 6 ) c d ( 2 0 ) ;k s ( 4 7 ) = c d ( 1 3 ) ;k s ( 4 8 ) oc d ( 6 ) ; k s ( 4 9 ) - c d ( 5 6 ) ;k s ( 5 c d ( 4 9 ) ;k s ( 5 1 ) - c o ( 4 2 ) ;k s ( 5 2 ) q c 毯3 5 ) ; k s ( 5 3 ) ( = c d ( 2 8 ) ;k s ( 5 4 ) $ c d ( 2 1 ) ;k s ( 5 4 ) = c d ( 1 4 ) ;k s ( 5 6 ) 。c d ( 7 ) : e n db e h a v e ; 5 2 2寄存器 寄存器( 数据缓存) 既可以使用组台逻辑也可以使用r a m 元素实现。现在 大熬分f p g a 郝骞内部r a m , r o m 粪澡霹鼓鼹寒毫效遮实现存鼹功缆。 5 + 2 。3艇用器 蹙嗣缝合逆辑可以摄容霹逮实耀复爱器。综合工其会溺f p g a 厂家预先定义 的函数实观这些功能,这对寄存器涞说也是一样的。下而给出个3 2 位复用器 麴v h d i 。摇述: l i b r a r yi e e e ; u s ei e e e 。s 堪一l o g i ci1 6 4 a l l ; n | l l ym u x 3 2l sp o r q ( a : i ns t dl o g i cv e c t o r ( 3 1d o w n t o0 ) ; b :i ns t d l o g i c , v e c t o r ( 3 td o w n t oo ) ; o : o u ts t d _ l o g i c v e c t o r ( 3ld o w n t o0 ) ; s e l :i ns t d _ l o g i c ) ; e n dm u x 3 2 : a r e h l t e c 下u r eb e l a v eo fm u x 3 2i s s i g n a le l e m e n t :s t d _ l o g i c v e c t o r ( 31d o w n t oo :l ; b e g n q o = e l e m e n t ; e l e m e n t = bw h e ns e l = 1 e l s e a ; e n db e h a v e ; 5 2 4 标准蓬辑功麓 参j 、准逻辑函数,如a n d o r ,x o r 都是由基本的门组成的。其运算性能1 j 运算 的比特流的宽艘无关。比如,f e i s t e l 网络中3 2 位的异或操作的性能与4 8 位的异 或性能棚同。下值i 给出3 2 位异或模块的v h d l 代码: l i b r a r yi e e e ; u s ei e e e 。s t d _ l o g i c _ l1 6 4 a l l ; e n l l t yx o r m o dl sp o r t ( a :i ns t d l o g i c v e c t o r 0 id o w n t oo ) t b :i ns t d _ l o g i cv e c t o r ( 31d o w n t oo ) ; q :o u ts t d l o g i cv e c t o r ( 3 1d o w n t oo ) ) ; e n dx o r m o d ; a r c h l t e c t u r eb e h a v eo fx o r m o dl s b b g r n q = a x o r b e n db e h a v e ; 5 25 s 盒 s 盒实际上藏怒个6 * 4 敬囊谗表,整嚣包含6 4 个4 b i t 熬数馕( 渗番3 1 节) 。s 鑫的实现方法对d e s 的效率至关鬟要。如果使用组合逻辑实现,那么将 需要几百个逻辑单元。研究表明使用r o m 是s 盒的最有效率的实现方法。 5 。28 移健寄存器 密钥生成模块中用到的移位寄存器可以分为以下几类:c o m b i n a t o r i a l s h i f t e r s 、d e c i s i v es h i g e r s 和d i r e c t i o n a ls h i f i e r s 。黼5 1 绘出了3 种移位寄存器的 大概描述,这3 种移位寄存嚣每次最多对一个4 b i t 宽的耽特流邋行1 位移位攥作。 c o m b i n a t o r i a l s h i f t e r n i r e c t i o n a l s h i f t e r d i r e c t i o n a l s h i f t e r 匿5 。l 移慧鹰存嚣辩舞现 c o m b i n a t o r i a ls h i f l e r s 总是移动到固定的位置,这个移动并不是由时钟 信号驱动,这簸稆当予排序绦作。 d e c i s i v es h i f t e r s额外增加了一个控制信号的输入,用柬决定是否进行移 位操作。d e c i s i v es h i f t e r 可以使用受用器束实现。 d i r e c t i o n a ls h i f t e r s 与d e c i s i v es h i f t e r sj 霉楗修,瞧共有颧外黪控囊信号辕 入,这个控制信号用米判决向友移位还是向右移位。d i r e c t i o n a l s h i f i e r s 也可以用 复孀器实现。 5 3 翔褥实凌各种设计结梅 图5 2 给出了标凇d e s 的详缁实现梃图,包括了前面几节赝讨论的所有功 能模块。这个没计的实现命名为d e s l 6v i 。f 。 强2 避s 瀚译鳓蜜残框謦 5 3 1 逻辑模块的运甩 实瑷这令设诗褥毙较蕊便豹方法裁是嫒掰逻辑模块。递辑模块藏蹩f p g a 厂 家开笈工具中预先定义的并且已经实现的功能模块。逻辑模块的性能优劣并不取 决于综合工具的好坏,而用v h d l 语言描述的模块却不行。 应用逻袋模块剁建一个工糕,命名为d e s l 6 v 1 2 。踅5 2 中,在这版中使 璃豹邋辑模块霞瓣浅灰色背景。 5 3 2 时序分析 在实际实现之前,需要对整个设计做一个时序分析。自色背景的方糖代表排 序、扩展盒和组合移位寄存器。遮魑都只是占用线路资源,速度应该是非常快的。 带蜚娥色的方框使用的是逻辑资源,因此数搬通过这些模块会有一定的娥迟。 k e yp a t h “” 图5 3d e s 的时序分析 除麓一。轮夕 ,每一轮运算都睡放寄存器积复矮器申敬爨数据和密钥开始。然 后数攒经盎 扩疑盒作为异或模块的输入,接整数据经过一个扩展盒进入4 8 b i t 异 或模块。密钥先进入一个组合移位寄存器然后再经过一个判决移位寄存器。判决 移位寄存器的输出再经过排序模块也进入4 8 b i t 异或模块。 数瀑窝子密锈逶 亍异或搡俸蜃送灭s 盒,瓣送行一次撵痔最后霉一次器或操 作,这时数据与密钠就在寄存嚣的输入端口了。图5 3 显示了这些功能模块在执 行时的时序关系,同时执行的功能模块放在了同一列。 从匿中看出这榉个闻题,斑密镪由条,l 牛移位寄存嚣 l mr o t ) 中产生出来 班前这个4 8 b i t 巽或模块( x o r m o d 4 8 ) 歪处于簿待状态的。 5 3 3 改进的子密钥产生逻辑 粳掘5 3 2 节的介绍,弱前这种子密钥产生时序存存一个问题。n q 题在于, 严密钥! l :成的太晚,造成数掂需露等待段时 u 。子密钥产生后,数据处理还需 要执行几个步骤。丽这段时问密钥处理的模块却仆么都不做,这样如祟能进 j 二高 阶的同步处理就非常有价值了。 解诀这个闯题的办法是,在数据进入s 盒和送行最后的异或操 馨时避行予密 钥生藏豹缝理。这懑嗪着,予密锈豁颓强兹一个辩镑满鬻诗算穗来,并且在下一 个瓣镑溺期开始时送到异或模竣( x o r m o d 4 8 ) 。 为了做到这一点,必须在第1 6 轮运箕为f 函数提供第1 6 个子密钥,嘲时载 入毅的密镀,并为下个数掘包预惫准备第一个予密镪。必越,复用器努矮在排 序模块( p e 2 b o x ) 和剩余的产生密钥的过程之间移动。图5 a 给出了这种密镇生 成方案的图示。 5 。3 4 加密解密 翻5 4 改进的密鹳产生i 茎辑 在数据经过s 鑫作最后个异或操 擘的嗣对系统会生戏子密镪,嚣加密所翥 的子密钥的生成操作比数据处理需要的时间要少。 这样虢可以多占用一些逻辑资源与此同辩生成解鸯需要的子密钥。在3 3 节 已经介绍过了,解密操作需簦将密钥囱右移位,移位的位数为0 位、 位或者2 位。溺魏,诧时不稳健翔组合移位寄存器,只驻傻翊翔决移位寄存豁。密钥此时 会肉2 个方向传撂,在其中一个方向上,执行嬲密黢需密爨生菠操作,密锈掇撂 运算的轮数自是缝环移动l 位或2 缀。藤在另一个方爨上,撬抒解密赝黉密锯生 成操作,密钥校据运算的裣数商右循环移动0 位、l 位菠2 像。根搽d e s 工 荤 的模式,2 分支术端的复用器会在的选择结果会在2 个方向的计算结果之间切换, 图5 5 给出了框图。 移动1 位 #

温馨提示

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

评论

0/150

提交评论