




已阅读5页,还剩60页未读, 继续免费阅读
(应用数学专业论文)可重用分组密码协处理器的设计与应用.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 摘要 本文设计并f p g a 硬件实现了种分组密码协处理器,主要的目标是设计能 在多种总线环境下可重用的协处理器,并且要求能灵活更换协处理器内部的分 组密码算法模块。为了实现设计目标,协处理器采用了分层的控制结构、 s t a r t - d o n e 控制协议以及类似r a m 的外部接口信号定义。实验证明,只需进行 较小的修改,就能将协处理器的3 d e s 算法模块更换为a e s 一1 2 8 算法模块或者将 a e s 一1 2 8 算法模块更换为3 d e s 算法模块。 分组密码协处理器现已成功的应用到了广州大学信息安全技术实验室研制 的p c i f p g a 密码卡中。本文介绍了协处理器在密码卡的p c i 9 0 5 4 局部端总线环 境中的应用,并且介绍了协处理器在w i n d o w s2 0 0 0 x p 操作系统下与主处理器 ( i n t e lp e n t i u m4 ) 协同工作对文件数据进行加解密所需的软硬件协同设计 方法。此外,协处理器也已经在l e o n 2 片上系统中进行了初步的应用。利用协 处理器外部接口信号的特性,可以以一种快捷的方式将协处理器应用到l e o n 2 的a h b 片上总线环境中。文中还介绍了使用s p a r cv 8 指令( l e o n 2 嵌入式3 2 位r i s c 处理器所采用的指令体系) 控制协处理器与嵌入式主处理器协同工作的 基本方法。p c i 9 0 5 4 局部端总线与a h b 片上总线具有较大的差异,分组密码协 处理器能不经修改的应用到这两种总线环境中,证明了其设计具有较高的可重 用性。 关键词:分组密码;协处理器;密码卡;片上系统;f p g a a b s t la c t a b s tr a c t ab l o c kc i p h e rc o p r o c e s s o rw a sd e sg n e da n df p g a m pe m e n t e d t h e d e s g ng o a l st h a tt h ec o p r o c e s s o rs h o u l db er e u s a b l ei ns e v e r a lk i n d s o f 。a p p l i c a t i o ne n v i r o n m e n ta n dt h eb l o c kc i p h e ra l g o r jt h mm o d u leo ft h e c o p r o c e s s o rs h o u l db ef l e x i b iys u b s t i t u t e d t h f e ec h a r a c t e r si n c u d i n g h i e r a r c h i c a lc o n t r o la r c h i t e c t u r e ,s t a r td o n ec o n tr o l p r o t o c o la n d r a m 一1 _ ik ee x t e r n a ije t e r 。a c ew e r ea s s i g n e dt ot h ec o p r o c e s s o rt oa c h i e v e t h ed e s i g ng o a l 1tw a sp r o v e dt h a tt h e3 d e sa i g o r i t h i nm o d u i eo ft h e c o p r o c e s s o lc a nb es u b s t i t u t o dt oa s s 一1 2 8a l g o r it h mm o d u _ lew i t h t t l e m o di f i c a t i o nt :ot h ec o p r ( ) c e s s o r ,a n dt h es a m ew i t hs u b s t i r u t jn ga e s1 2 8 a l g o t i t h mm o d u l et o3 d e sa l g o t i t h i nm o d u l e l h eb l o c kc :i p h e rc e p r o c e s s o rh a sb e e na p p l i e dir lap c if p o ac i f ) h e r c a r dd e s i g n e db yt h ei n f o r m a t i o ns e c u r it y t e c h n o l o g yl a b o r a t o r yo f 。 ( ;u a n g z h o uu n iv e r s i t y t h ea p p l jc a t i o no ft h ec o p r o c e s s o ri nt h ep c i 9 0 5 4 l o c a lb u ss y s t e mr e s i d i n gi nt h ec ip l e rc a r dw a sd e s c zj b e d i no r d e rt o e n a b l ec o o p e g a t i or lt h ec o p r o c e s s o ra n t 】t h em a i l ldz o c e s s e e ( je l t e lp e nl iu m 4 ) jnt h ep r o g r e s so fe n c r y p t i n g d e c zy p t i n gt h ef i e ( i a t au n d e rw i i 1 0 w s 2 0 0 0 x pt h es o n w 8 r e h a r d w a f ec o d e s i g ni sn e c e s s a r y ,w h i c his 削s o d e s c r i b e dint h ep a p e r m 【) t e e t e r ,t h eb l o c kc i p h e rc o p r o c e s s o e h a sas ob e e nh a s i c a ll v a p p i o c li n e o n 2 ,w h ic h sas y s t e m o na c h i pe q u i p p e c lw i t ha3 2b i tr s c p r o c e s s o ri m p le m e n t i n gt h es p a r cv 8i n s wu c o na l ( n i t e c t u r ew i t ht h e r a m l _ i k eex t e r n a i n t e r f a c e ,t h ec o pr o c e s s o rc a nb ee a s ivi r i t erf a c e d t ol h ea i i bo n c h i pb u so fl e o n 2 t h eb a s icv a tt oc o n tr o lt h ec o p r o c e s s o r w i t hl ,h es p a r cv 8i n s z r u c t i o n sisd e s c r i b e da tt h ee n do ft h ep a p e r t h ea p p l i c a t i ee lo f t h e ! ) _ lo c kc ip h e rc o p r o c e s s o ri nb o t hp c i 9 0 5 4l o c a l b u ss y s t e ma n da h bb u ss y s t e mw it hf i er o o d i f c a tio nw e ll p f o v e c l t h e r e u s a b i lit yo f t h ec o p r o c e s s o rd e sg n k e yw o r d s :b l o c k ( :ip h e r :c ( ) p r o c e s s ( ) r ,c i p h e z c a r d :s o c f p g a 广州大学学位论文原创性声明 本人郑重声明:所呈交的学位论文,是本人在导师的指 导下,独立进行研究工作所取得的成果。除文中已经注明引 用的内容外,本论文不含任何其他个人或集体已经发表或撰 写过的作品成果。对本文的研究做出重要贡献的个人和集体, 均已在文中以明确方式标明。本人完全意识到本声明的法律 后果由本人承担。 学位论文作者签名:础勒日期:汕f 年f 月r 日 广州大学学位论文版权使用授权书 本人授权广州大学有权保留并向国家有关部门或机构送 交论文的复印件和磁盘,允许论文被查阅和借阅。本人授权 广州大学可以将学位论文的全部或部分内容编入有关数据库 进行检索,可以采用影印、缩印或扫描等复制手段保存、汇 编学位论文。( 保密的学位论文在解密后适用本授权书) 学位论文作者签名:纠磊日期:z 耐年f 月产日 导师签名:万j o 日期:冽年厂月夕日 第一章绪论 第一章绪论 1 1 分组密码协处理器研究的背景及意义 随着社会信息化程度的不断提高,信息的安全问题越来越受到人们的重视。 密码技术是保护信息安全的有效手段,但采用密码技术也意味着密码计算所带来 的巨大的计算负载,以及由这些计算产生的能量消耗。使用密码算法专用硬件协 处理器可以有效的提高密码算法的计算速度,分担主处理器的计算负载,提高能 量使用效率。目前密码算法专用硬件协处理器主要有两种物理实现方式:a s i c ( a p p l i c a t i o ns p e c i f i ci n t e g r a t e dc i r c u i t ) 实现和f p g a ( f i e l dp r o g r a m a b l e g a t ea r r a y ) 实现,而这两种实现方式在设计阶段都是基于数字逻辑系统的设计。 现阶段,集成电路制造工艺己进入超深亚微米阶段,芯片集成度成指数级增 长,单一芯片的已经可以达到o 3 2 g 的门电路,许多原先在一个系统内的多个芯 片可以集成在单一芯片上了,因此,采用s o c ( s y s t e mo nac h i p ) 技术的产品 正在成为超大规模集成电路产品的主流。而与此同时要求产品投放市场的时间却 越来越短。尤其是进入s o c 时代,单个人、甚至单个公司已经不能单独地进行芯 片的完整逻辑设计,取而代之的是很多公司根据它们各自的经验进行联合设计或 者开发单个模块。随着s o c 时代的推进,越来越多的i p ( i n t e l l e c t u a lp r o p e r t y ) 模块被设计开发出来,极大的丰富了i p 库的内容,工程师可以利用现有的i p 资源, 根据系统需求选用适当的i p 模块进行系统集成实现系统设计。 以此为背景,一个优秀的分组密码协处理器i p 应当具有很高的可重用性。这 里的可重用性包含两个方面的意思:一是指分组密码协处理器作为一个整体不经 修改或者只经过较少的修改就能应用到多种应用环境中;二是指分组密码协处理 器内部的各个功能模块具有相对独立的功能和定义良好的接口,能被灵活的替换 和重用。所以,分组密码协处理器的研究内容不仅仅包括对特定密码算法的硬件 实现以及对计算速度的提高,更为重要的是在设计过程中引入先进的s o c 设计方 法,研究分组密码协处理器应当具有怎样的体系结构才能具有更好的可重用性。 研究如何提高分组密码协处理器设计的可重用性不仅对优化系统结构设计具有 理论上的意义,而且具有加快设计速度、降低出错可能、减少设计成本等实际意 义。 本文以此为出发点设计了一种分组密码协处理器,能不经修改的应用于两种 差异较大的总线应用环境中,并且只需较小的修改就能替换其内部的分组密码算 法模块,证明了该协处理器的设计具有较高的可重用性。 1 2 相关研究综述 目前已经有大量的文献讨论了复杂系统的设计方法和设计原则,这些方法和 原则涵盖了软件系统的设计及硬件系统的设计。w e s t e “”和e s h r a g h i a n “”列举了 四种在所有的数字电路设计中都应该遵循的原则:层次化、规则化、模块化和局 部化。在复杂数字系统的设计中,层次化的设计至关重要,层次化使得可以通过 抽象的方法来屏蔽底层设计细节以控制复杂性。层次化可以通过将一个大的模块 l3 课题来源及主要研究内容 划分成一系列小的模块来实现,小的模块比大的模块更容易为人所理解,并且通 常具有更高的可重用性。将一个电路分解为子模块的方法类似于软件开发中的分 而治之( d i v i d e a n d c o n q u e r ) 技术。规则化将层次分解过程中得到的子模块的数 量控制在一定的范i i i l 2 :内。规则化的子模块在相同或者类似的项目中可以通过实 例化的技术被多次重用,a s i c 中的标准单元就是规则化了模块的个例子。模 块化要求模块对外部具有定义良好的接口,接口明确的定义了模块的一系列属 性,这些属性包括了模块的名称、功能、接口信号、电气特性等等。在利用小的 模块搭建更大的模块时,定义良好的接口将提供很大的便利。局部化的设计要求 模块对外部应该隐臧其具体实现的细节。只有通过隐藏细节才能抽象出模块的功 能和特性。由满足局部化原则的子模块搭建而成的模块的特性可以直接通过其子 模块的特性来进行预测,而不必再追溯到子模块的内部细节。采用寄存揣输出的 子模块的时序特性就很好的满足了局部化的原则,由这样的子模块搭建的模块的 最大时钟频率可以通过分析子模块的时序特性来得到。 协处理器与主处理器的接口主要有外部设备接口和协处理器接口两种方法。 l l o d j a t ”“采用了外部设备接k i 的方式将a e s 协处理器与主处理器l e o n 进行了接 口,a e s 协处理器作为a h b j 上总线的一个外部设备与主处理器l i ;o n 相连,协处理 器的控制寄存器及数据寄存器都被映射到t l e o n 的存储空间中,l e o n 通过访问存 储器的指令来与协处理器交互数据。r a v i ”“在其呵编程安全处理器平台的设训中 则采用了协处理器接口的方式,密码算法协处理器作为个新的功能模块被添加 到了主处日! 器( x t e n s a ) 的指令流水线中,这种方式需要向主处理器的指令集中 添加与密码算法协处理器相关的用j 、r 白定义指令,当主处理器的指令流水线的得 到这些白定义指令时,这些指令将被译码并被发射到相应的密码算法协处理器中 去执行。 迭代分组密码的硬件实现主要有两种方式:流水线实现和迭代实现。 v e r b a u w h e d e 。“采用迭代实现的方式实现了a e s2 5 6 ,利用0 1 8 - u nc m o s 标准单7 l 工艺达到f 2 2 9o b i t s 的计算速度。h o d j a 1 则采用完全流水线实现的方式实 现t a f f s ,在x i i l q x 公司的v i r t e x i ip r ox c 2 v p 2 07f p g a 上达到了2 1 5 4g b i t s 的计算速度,其实现总共使用了8 4 个b l o c kr a m 矛i j 5 1 7 7 个s c e 。 1 3 课题来源及主要研究内容 本课题来源于2 0 0 4 年广州市属高校科技计划项闩“f p g a 上的椭圆m 线公钥 体制的实现研究( 编号:2 0 0 3 ) ”,是该项目的一部分。分组密码咖处理器没计 的主要研究内容包括以下四个方面,这四个方面的内容也依次在文中的第二、三、 叫、五章进行了介绍。 1 分组密码算法模块的设计 通过对比研究迭代分组密码算法硬件实现的流水线实现方式与迭代线实现 方式在计算速度、硬件资源消耗量上的差别,选择迭代实现方式作为a e s1 2 8 和 3 i ) e s 的实现方式。在确定实现方式之后,研究了a e s 和d e s 算法中各个主要变 换的即g a 实现方法,综合这些实现方法并添加上相应的迭代控制逻辑以迭代方 式f p g a 实现了a e s12 8 算法以及3 d e s 算法,并且讨论了实现结果的计算速度及 资源占用量等参数。在算法实现的基础上,根掘分组密码协处理器的设计原则, 为算法模块定义了合理的外部接口和时序行为。 2 分组密码协处理器体系结构的没计。 第一章绪论 分组密码协处理器采用了数据通路与控制通路分离的设计方式。通过将协处 理器的行为抽象成数据通路和控制通路两个部分,不仅对协处理器的复杂行为进 行了清晰的建模,减少了代码实现中出错的可能性,而且大大提高了模块的可重 用性。 控制通路的设计定义了协处理器分层控制的控制结构和s t a r t d o n e 控制协 议,并且设计了协处理器控制器的状态转换流程。数据通路的设计定义了协处理 器接口信号的配置参数,这些配置参数包括协处理器外部信号接口配置参数和内 部信号接口配置参数两部分,并且定义了外部信号的接口和行为。数据通路的设 计还包括了数据通路中各个模块的功能设计及接口设计。 在体系结构设计的基础上,对协处理器整体可重用性和内部模块可重用性进 行了实验证明。 3 分组密码协处理器在密码卡中的应用 为了将分组密码协处理器应用到广州大学信息安全研究所研制的密码卡上, 需要将协处理器集成到密码卡中的p c i 9 0 5 4 局部端总线环境中。此外,为了使协 处理器能与主处理器( i n t e lp e n t i u m4 ) 在w i n d o w s2 0 0 0 x p 操作系统下协同 对文件数据进行) j n 解密计算,需要设计w i n d o w s 系统下对协处理器的控制软件。 软件的设计定义了文件) j n 解密时主处理器与协处理器的协同工作过程,以及软 硬件接口。软件的实现需要用到p l x 公司为p c i 9 0 5 4 提供的s d k ,这大大加快了 控制软件的开发进程。 4 分组密码协处理器在片上系统中的初步应用 分组密码协处理器在开放源代码的l e o n 2 片上系统中进行了初步的应用,协 处理器通过l e o n 2 的a h b 片上总线与l e o n 2 进行了片上集成,利用l e o n 2 嵌入式 主处理器的s p a r cv 8 指令可以控制协处理器与主处理器协同工作。分组密码协 处理器与l e o n 2 的片上集成在a l t e r a 公司s t r a t i x 系列的e p i s 2 5 1 0 2 0 c 5f p g a 上 进行了实现。实现结果表明,在进行密码计算时,l e o n 2 只需对协处理器发出控 制信息并向协处理器的输入数据f i f o 写入待加密( 或解密) 的数据,然后l e o n 2 便可转而处理其它的任务,此时协处理器与l e o n 2 并行运行,协处理器处理完毕 输入数据f i f o 中的全部数据后向l e o n 2 发出中断信号,l e o n 2 将调用相应的中 断例程进行响应。 21 分组密码算法的实玑方式 第二章分组密码算法模块的设计 2 1 分组密码算法的实现方式 2 1 1 迭代分组密码的特点 迭代分组密码就是以迭代一个简单的轮函数r 为基础的密码,即通过选择某 个较简单的密码变换,在密钥控制下以迭代方式多次利用它进行加密变换。每一 轮函数的输入就是前一轮函数的输m ,即y ( r ) - f y ( r 一1 ) ,k ( r ) ,其中k ( r ) 是第 r 轮迭代用的子密钥,由密钥k 通过密钥扩展算法产生。特别是在相同的轮函数之 下,迭代次数的小同即代表了安全强度的1 i 同级别。 例如e e ls t e l 型密码就是一种迭代密码,是分组密码的典型代表,其数学思 想简单而灵巧。目前常用的分组密码算法a e s 、d e s 、3 d e s 和i d e a 等都是迭代分 组密码。根据迭代分组密码的特点,其算法的硬件实现方法主要分为流水线实现 和迭代实现两利l 方式,下面将对这两种实现方式进行对比讨论,并选定其巾一种 作为分组密码胁、处理器算法模块的算法实现方式。 2 1 2 迭代分组密码的流水线实现 设迭代分组密码算法的迭代次数为n r ,则输入数据依次流过n i 、个轮函数便 能得到输出数据,该过程的硬件流水线实现方式就是硬件实现n r 个轮函数模块, 每个轮函数模块都采用寄存器输出,此外需要一个子密钥产生器产牛n r 个子密 钥按序输山到这n r 个轮函数模块,将这m 个轮函数模块及子密钥产生器组织成 图2 - 1 所示的结构便构成了算法的流水线实现。在这样的结构下,如果输入数据 不依赖于输出数据,则每个时钟周期都可以向输入端输入新的数据,输出端在等 待n r 个时钟周期得到第一个输出数据后,以后侮个时钟周期都能得到一个输出 数据。 p ) 图21 迭代分组密码的流水线实现结构 f i g u r e 21t h ep i p e l jn ei m p l e m e n t a t i o no f t h ei t e r a t i v ob l o c kcjp h e r y 第二章分组密码算法模块的设计 2 1 3 迭代分组密码的迭代实现 由于迭代分组密码是将输入数据经过同一个轮函数的n r 次迭代处理以得到 输出数据,所以利用这个特点可以仅硬件实现一个带寄存器输出的轮函数模块, 然后控制数据按时钟反复流过这一个模块,与此同时需要一个子密钥模块根据数 据反复流过轮函数模块的次数向轮函数模块输出相应的子密钥,即当数据第i 次 进入轮函数模块时子密钥模块向轮函数模块输出的子密钥必须为k ( i ) ( i = l ,2 ,n r ) 。要实现上述功能,还需要设计一个迭代控制器来控制数据流 动并控制子密钥模块协调工作,所有这些模块构成了如图2 2 所示的算法的迭代 实现结构。由于只有一个轮函数模块,所以每一个输入数据都要经过n r 个时钟 周期才能得到相应的输出结果。 y ( n r ) = y 图2 2 迭代分组密码的迭代实现结构 f i g u r e 2 2t h ei t e r a t i v ei m p l e m e n t a t i o n o ft h ei t e r a t i r eb l o c kc i p h e r 2 1 4 两种实现方式的对比选择 迭代分组密码的流水线实现方式和迭代实现方式各有利弊,表2 1 从计算速 度、硬件资源消耗、适用范围三个方面对两种实现方式进行了对比。通过对表 2 1 中两种实现方法的三个方面的特性的比较权衡,本文认为分组密码协处理器 适用范围的广泛性是首先应当保证的,其次才考虑实现方法的速度及硬件资源消 耗情况。在对两种实现方法的三方面特性进行综合比较之后,本文确定在分组密 码协处理器的密码算法模块的实现中均采用迭代实现方式。 22a e s 算法的硬件实现 表2 一l 流水线实现方式和迭代实现方式的对比 t a b l e 21t h ec o m p a r i s o nb e t w e e np i p e l i n ei m p l e m e n t a t i o n a n di e r a t i v ei m d l o m e n t a tio n 流水线实现迭代实现 计在输入数据与输出数据无关时,可以每个不能在每个时钟周期连续输入 算时钟周期连续输入分组数据。在连续输入分组数据,必须在完成前一个 速的情况下,除第一个分组的结果数据需要分组数据的计算后才能输入下 度等待n r 个时钟周期外,以后每个时钟周一个分组的数据。总是需要等 期的都可以得到一个分组的结果数据,这待n r 个时钟周期才能得到一 是迭代实现计算速度的n r 倍。个分组的结果。 硬需要硬件实现n r 个轮函数模块,整体硬只需实现一个轮函数模块,但 件件资源的消耗大约为迭代实现的n r 倍。需要设计一个相对流水线实现 资可以不需要控制逻辑或者只需简单的控而言较为复杂的控制逻辑。整 源 制逻辑。体硬件资源的消耗约为流水线 消实现的1 6 。 耗 适只有当输入数据与输出无关时才能完全适用于分组密码算法的所有工 用 发挥流水线实现的性能,含则性能与迭代作模式,在各种工作模式下的 一 巳 实现的性能相同。所以流水线实现只适用性能都相同。 围于e c b 模式,在其它带反馈的计算模式下 性能与迭代实现相同,但又消耗了相对太 多的硬件资源 2 2a e s 算法的硬件实现 2 21a e s 算法简介 2 211a e s 的定义 a e s 的分组长度可以为1 2 8 、1 9 2 5 d 2 5 6 比特,明文分组以及每次变换的巾 间结果分组叫做状态,一个状态出4 行字节( b y t e ) 构成,每行包含n h 个宁甘。 图3 1 左边部分显示了一个n b4 的状态。a e s 的密钥长度可以为1 2 8 、1 9 2 并n 2 5 6 比 特,蜘i 果用n k 表示密钥的3 2 b it 的个数,j j n k 的值可以为4 、6 4 ;u 8 。a e s 中轮变换 的次数n r 由密钥长度决定:n k4 时,n r1 0 :n k = 6 时,n r - 1 2 ;n k8 时,n r :1 4 。 a e s 密钥长度、分组长度和轮变换次数的组合关系如图2 - 3 的右边部分所示。 第二章分组密码算法模块的设计 s m os n ls o 2s o ,3 s 1 os 1 ,l s 1 2s 1 3 s 2 o s 2 1 s 2 ,2s 2 3 s 3 。o s 3 1 s 3 。2 s 3 ,3 k e yl e n g t hb l o c ks i z e n u m b e ro f ( n kw o r d s ) ( n bw o r d s )r o u n d s ( n r ) a e s 1 2 8441 0 a e s 一1 9 2641 2 a e s - 2 5 684 1 4 图2 3a e s 状态及密钥长度一分组长度一轮变换次数组合关系 f i g u r e 2 。3a e ss t a t ea n dk e y b l o c k - r o u n dc o m b i n a t i o n s 2 2 1 2a e s 加密 a e s 的加密过程可以用以下的伪代码来表示。加密中用到的s u b b y t e s 、 s h i f t r o w s 、m i x c o l u m n s 和a d d r o u n d k e y 这四个函数以及密钥扩展中用到的 r o t w o r d 函数的f p g a 硬件实现方法将在2 2 2 节中进行详细的介绍。 c i p h e r ( b y t ei n 4 * n b ,b y t eo u t 4 * n b ,w o r dw n b * ( n r + 1 ) ) b e g i n b y t es t a t e 4 ,n b s t a t e = i n a d d r o u n d k e y ( s t a t e ,w 0 ,n b 一1 ) f o rr o u n d = ls t e p1t on r l s u b b y t e s ( s t a t e ) s h i f t r o w s ( s t a t e ) m i x c o l u m n s ( s t a t e ) a d d r o u n d k e y ( s t a t e ,w r o u n d * n b ,( r o u n d + 1 ) * n b 1 ) e n df o r s u b b y t e s ( s t a t e ) s h i f t r o w s ( s t a t e ) a d d r o u n d k e y ( s t a t e ,w n r * n b ,( n r + 1 ) * n b 一1 ) o u t = s t a t e e n d 加密过程中的子密钥w 可以用以下伪代码所表示的密钥扩展算法来生成。 k e y e x p a n s i o n ( b y t ek e y 4 * n k ,w o r dw n b * ( n r + 1 ) n k ) b e g i n w o r dt e m p i = 0 w h i l e ( i 曲,。) m i x c o l u m n s 矗。= ( o e ) 吼) ( o b ) ) o ( o d ) ( 0 9 ) 而。) s 0 = ( 0 9 ) s o ,) ( o e ) 丑。) o ( o b ) ) o ( o d ) 屯,。) 蔓,= ( o d ) 而,。) o ( 0 9 丑。j o ( o e ) s 2 ,) o ( o h ) s 3 ,。) ,。= ( o b 而,。) o ( o d q ,。) o ( 0 9 s 2 。) ( 而,。) i n v m i x c o l u m n s 图2 - 6m i x c o l u m n s 和i n v m i x c o l u m n s 的定义 f i g u r e 2 - 6t h ed e f i n i t i o no fm i x c o l u m n sa n di n v m i x c o l u m n s 2 2 2 4a d d r o u n d k e y 的实现 a d d r o u n d k e y 的硬件实现十分的简单,只需将状态数据与子密钥数据按位异 或即可,在v h d l 中对应的运算符为x o r 。 2 2 3a e s 在f p g a 中的实现结果 2 2 2 描述了a e s 主要功能模块的f p g a 硬件实现方法,以此为基础再设计 相应的控制逻辑便可完成a e s 的迭代实现,由于篇幅所限,本文不再描述控制逻 辑的设计。a e s 一1 2 8 已经在a i t e r as t r a t i xe p l s 2 0 f 6 7 2 c 7 上进行了实现,表2 2 列举了实现结果的部分参数。a e s 一1 2 8 的迭代实现需要1 0 个时钟周期完成l o 次 轮变换,在l o 次轮变换结束后还需要一个周期将结果保存到输出寄存器中,然 后再从输出寄存器输出结果,所以从输入数据到输出数据总共需要1 1 个时钟周 期。 表2 2a e s - 1 2 8 的f p g a 实现结果 t a b l e 2 2a e s 一1 2 8f p g ai m d l e m e n t a t i o nr e s u l t 实现算法: a e s 一1 2 8 f p g a :a 1 t e r as t r a t i xe p l s 2 0 f 6 7 2 c 7 逻辑单元存储空间时钟频率完成一次计算 计算速度 ( 个)( b i t )( h z ) 的时钟周期数( b i t s ) ( 个) 3 5 6 86 6 9 4 47 8 8 8 m1 1 9 1 7 9 m 2 33 d e s 算法的硬件实现 注:在进行解密运算时,当更新一次密钥时,需要额外的11 个周3 舅生成予密 钥。 需要说明的是,由于目前的f p g a 设计广泛采用的是先用硬件描述语言进行 逻辑设计,再用f , d a 工具进行综合、布局布线的方法,所以除了逻辑设计本身, e d a 工具的选择及约束条件的设定都对最后f p g a 实现结果也有很火的影响。表 2 2 的数据来自q u a r t u si i5 。0 的一次实现结果,约束条件主要由时序优先的 约束构成,其r 卜主要的约束包括:时钟最大频率f 。、全局时钟信号的设定、最 大扇出的约束、状态机编码的约束( 这里选择o n e h o t 编码) 等等。不同约束条 件的设定会产生不同的时钟速度和硬件资源消耗结果,表2 2 只是同一个逻辑漫 计的多种可能实现结果中的一种。此外,对于同一个逻辑设计,使用不同的f p g a 芯片来实现也会得到不同的结果,本文5 2 5 节中当f p g a 芯片为a l t e r as t r a t i x e p l s 2 5 f 1 0 2 0 c 5 时,采用了同样a f , s 一1 2 8 算法模块的分组密码协处理器可以运行 在9 7 3 1 m h z 的频率下,峰值计算速度到达1 1 3 2 ,3 m b i t s 。 2 33 d e s 算法的硬件实现 2 3 1d e s 、3 d e s 算法简介 23 1 1d e s 计算过程 d e s 的加密运算应用了置换、代替、代数等多种密码技术,经过多次迭代, 是一种乘积密码。要对一个分组的数据进行加密,首先要经过初始置换i p 的处 理,然后通过一系列的运算,最后经过初始簧换的逆置换i 得到加密结果。解 密运算是加密运算的逆过程。d e s 加密计算的过程如下,计算过程中涉及的轮函 数f 和子密钥k 将分别存2 3 1 2 和2 mf 3 两个小= 育中介绍: 1 初始置换工p :首先对6 4 位的明文按初始置换t p 表进行换位。 2 将置换输出的6 4
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 山东建筑大学《歌曲分析与写作(二)》2023-2024学年第一学期期末试卷
- 江苏省南通市如东县、徐州市丰县2025届招生全国统一考试·英语试题含解析
- 武平县2025年四年级数学第二学期期末联考试题含解析
- 江西应用工程职业学院《矩阵论3》2023-2024学年第二学期期末试卷
- 湛江市大成中学高二上学期第二次月考物理试题
- 2025年度长期借款合同示范文本
- 2025公路运输合同范本
- 2025电子产品销售劳动合同范本
- 2025实验室建设项目合同书
- 2025年朋友咨询关于劳动合同的问题求解答
- 微观经济学(山东大学)知到智慧树章节测试课后答案2024年秋山东大学
- 2024届九省联考英语试题(含答案解析、MP3及录音稿)
- 2024年司法考试刑法真题及答案
- 2023“原理”练习题题库
- 《工程伦理》练习题集
- 2024年高考真题-政治(江苏卷) 含答案
- 文勘土方施工方案
- 港航实务 皮丹丹 教材精讲班课件 52-第2章-2.5.3-铺面面层施工-2.5.4-铺面连接施工-2.5.5-堆场构筑物施工
- 危险品仓储危险品贮运车辆考核试卷
- 酒店工作安全培训(共60张课件)
- 中国超级计算行业市场运行态势及发展趋向研判报告
评论
0/150
提交评论