




已阅读5页,还剩65页未读, 继续免费阅读
(电磁场与微波技术专业论文)基于fpga的aes算法快速小面积实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 a e s 算法是一种分组密码算法,具有极高的安全性能,自提出之日起便成为 信息安全领域研究的热点。由于该算法在实现方面具有设计简单,速度快,可并 行处理,分组长度可以改变,对处理器结构无特殊要求,不涉及复杂数学运算等 特性,使得其选用f p g a 实现具有极大的优越性。可是如何设计,使得该算法在 f p g a 中运行速度更快,占用资源更少,功耗更低一直是摆在国内外学者面前的 问题,目前并没有统一的定论。 本文针对以上目标,研究了采用f p g a 实现a e s 算法的模型改进方法。将 算法中密钥扩展的处理采用f p g a 以外的微控制器单片机配合完成,同时采用 共享技术实现算法中加密和解密模块共享同一密钥。对于加密和解密模块的设 计,从结构上采用基本结构以节省资源,从各个运算步骤上采用数据并行处理, 查表等方法以提高运算速度。改进的结果非但满足了实时性的要求,且大大节 省了f p g a 资源,降低了功耗,为在低端小容量f p g a 器件中实现实时a e s 算 法的目标提供了重要的设计参考依据。并且,由于该算法电路数据端口长度最小 也是1 2 8 位,很难直接与外部器件接口相连,因而本设计开发了相应的8 位并行 输入输出接口电路,通过单片机相配合完成加解数据与密钥扩展数据的传输。最 终整个设计用硬件实现,通过了相关的测试调试,使加解密数据结果借助于串口 调试器得以显示。 关键词:a e s 算法、密钥扩展、f p g a 、加密、解密 a bs t r a c t a e si so n eo fb l o c kc i p h e ra l g o r i t h m b e c a u s eo ft h e h i g hs a f e t y a e sh a sb e e n t h er e s e a r c hh o t s p o ts i n c ei tw a sb o r n a n dt h er e a l i z a t i o no f t h ea l g o r i t h mh a sm a n v a d v a n t a g e s ,s u c ha sd e s i g n i n ge a s i l y ,p r o c e s s i n gf a s t ,d a t ap a r a l l e lp r o c e s s i n g ,m a k i n g ac h a n g eo ft h el e n g t ho ft h ed a t ab l o c k ,h a v i n gn o s p e c i a ln e e dt ot h ep r o c e s s o r s t r u c t i o n ,h a v i n gn oc o m p l e xo p e r a t i o na n ds oo n a l lo ft h e s em a k ei tag o o dc h o i c e t or e a l i z et h ea e sa l g o r i t h mb a s e do nf p g a h o w e r e ,h o wt od e s i g na e s w i t h f p g at om a k ei to p e r a t ef a s t e r ,u s es m a l l e rr e s o u r c ea n dr e d u c ep o w e ri s s t i l la p r o b l e m b a s e do nt h ea i m sa b o v e ,t h i sp a p e rp r e s e n t san e wa r c h i t e c t u r em o d e it o i m p l e m e n ta e sa l g o r i t h mb a s e do nf p g a i nt h i sm o d e l ,t h ep a r to f k e ye x p a n s i o ni s i m p l e m e n t e db ym i c r o p r o c e s s o rw i t h o u tf p g a ,a n dt h es e c r e tk e y s t o r a g ei ss h a r e d b yb o t he n c r y p t i o na n dd e c r y p t i o nm o d u l e t ot h ed e s i g no fe n c r y p t i o na n d d e c r y p t i o n ,t h eb a s i cs t r u c t u r ei su s e dt os a v ef p g ar e s o u r c e ,t h et e c h n i q u e so fd a t a p a r a l l e lp r o c e s s i n g ,l o o k i n gu pt a b l ea n ds oo na r eu s e dt os p e e du pt h eo p e r a t i o n t h u si tn o to n l ym e e t st h ed e m a n do fr e a l t i m e ,a n ds a v e sal o to ff p g a r e s o u r c e r e d u c e s p o w e rw a s t e t h i sm o d e lc a np r o v i d e i m p o r t a n tr e f e r e n c ef o rt h e i m p l e m e n t a t i o no fa e sa l g o r i t h mi ns m a l la r e af p g aa tl o wv o l t a g e b e c a u s et h e d a t al e n g t ho fa e si s12 8 b i ta tl e a s ls ot h ec i r c u i to fa e s i sd i m c u l tt oc o n n e c tt h e o u t e q m p m e n td i r e c t l y i no r d e rt or e s l o v et h ep r o b l e m ,t h e8 b i td a t ap o r ti s s u c c e s s f u l l yd e s i g n e d t h ed a t ao fe n c r y p t i o no rd e c r y p t i o no rk e y e x p a n s i o ni s t e a n s m i t t e db ys i n g l e c h i p f i n a l l yt h ed e s i g nm o d e li sr e a l i z e db yh a r d w a r e ,p a s s e d t h ec o r r e l a t i v et e s t s t h er e s u l td a m so f e n c r y p t i o na n dd e c r y p t i o na r es h o w e db yt h e s e r i a lp o r td e b u g g e r k e y w o r d s :a e sa l g o r i t h m ,k e ye x p a n s i o n ,f p g a ,e n c r y p t i o n ,d e c r y p t i o n 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工作和取得的 研究成果,除了文中特别加以标注和致谢之处外,论文中不包含其他人已经发表 或撰写过的研究成果,也不包含为获得岙鲞盘堂或其他教育机构的学位或证 书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中 作了明确的说明并表示了谢意。 学位论文作者签名:惭 签字日期:。穷年月二日 学位论文版权使用授权书 本学位论文作者完全了解丞洼盘鲎有关保留、使用学位论文的规定。 特授权苤鲞盘堂可以将学位论文的全部或部分内容编入有关数据库进行检 索,并采用影印、缩印或扫描等复制手段保存、汇编以供查阅和借阅。同意学校 向国家有关部门或机构送交论文的复印件和磁盘。 ( 保密的学位论文在解密后适用本授权说明) 学位论文作者签名: 专出 签字日期:口2 年多月2 , - 日 导师签名: 签字日期: o 扩年i ;月2 同 第一章绪论 1 1 信息安全发展简介 第一章绪论 信息安全是一个悠久的话题,它从人类开始进行信息传递不久便出现了。 尤其自从2 0 世纪7 0 年代以来,伴随着计算机网络的迅猛发展,网络信息安全问 题的不断暴露,信息安全技术也越来越得以重视,得到了快速发展。目前,信 息安全已成为一门独立的学科,是计算机网络体系中不可或缺的一部分。 由文献 1 可知,迄今为止,信息安全的发展主要经历了三个阶段。在第一阶 段,信息安全的主要任务是保证机密数据的正确传输,主要使用的是密码技 术。在第二阶段,信息安全的主要任务是确保信息和信息系统的安全,没有过 多的考虑信息的可用性和有效性问题。在这一阶段,信息安全的主要技术是密 码学、防火墙和入侵检测等。而到了第三阶段,也就是目前,信息安全不仅要 实现信息的安全性和保密性,还要保障信息的可用性和有效性,实现信息保障 或者信息的可生存性,进而保障信息空间更高层次的安全。这个阶段,信息安 全技术与理论主要包括密码学技术、容忍入侵、访问控制、防火墙和入侵检测 技术等。然而,这一阶段理论和技术仍然不是很完善,许多方面有待于突破。 可见,随着信息系统的广泛建立和各种网络的互连,信息安全扩展到了系统乃 至体系,成为全方位的安全问题。 1 2 本课题研究出发点 从信息安全发展的过程来看,密码学技术无论在过去还是将来都将扮演着 重要角色。随着科学技术的进步,密码学的发展已进入到今天的电子与计算机 阶段。,密码分析日益依赖数学方面的知识,研究涉及到数学的各个分支,例如 代数、数论、概率论、信息论、几何和组合学等。不仅如此,密码学的研究还 需要具有其它学科的专门知识,比如物理、量子力学、计算机科学、电子学、 系统工程与语言学等。目前,由于商业应用和大量计算机网络通信的需要,民 间对数据保护、数据传输安全性、防止工业谍报活动等问题越来越重视。密码 学己开始大规模地扩展到民用。 第一章绪论 a e s ( a d v a n c e de n c r y p t i o ns t a n d a r d ) 作为最新密码技术的一种,自2 0 0 1 年1 1 月被美国国家标准和技术研究所( u sn a t i o n a li n s t i t u t eo fs t a n d a r d sa n d t e c h n o l o g y 。n i s t ) 正式公布后,便受到各国研究人员的广泛关注。从技术角度 来讲,a e s 算法的结构复杂,不同与以往的密码技术,数据分组长度可以改变, 并且具有良好的可扩充性。从设计实现的角度来讲,a e s 算法具有设计相对简 单,实现速度快,对处理器无特殊要求,可并行处理等特点。该算法不但安全 性能好,而且设计实现起来也相对简单,非常适用于现代商业等需求。因而, 对a e s 算法的研究具有很大的理论和实际意义。 a e s 算法具有的以上特点,使其非常适合于用f p g a 进行开发,从而确保当 今信息时代对信息传输实时性、准确性及保密性的要求。本论文便从a e s 算法 利用f p g a 实现的角度出发,依据制定的算法标准,以提高算法实现速度,节 省算法占用的资源,降低算法实现功耗等为目标进行该算法的研究设计。 1 3 研究方案的提出及意义 a e s 算法安全性能高,是新一代的分组数据加密标准。因而,自被公布之 日起,各国便对其实现方式进行了大量的研究。目前,该算法己分别从软硬件 的角度利用多种语言如c 、v h d l 、v e r i l o gh d l 等进行了开发设计,取得了不 少成果,可对该算法的执行速度、耗用资源量及涉及到硬件时的功耗仍没有最 终定论,仍需继续探索。 从信息传输实时性的角度来讲,f p g a 是目前业界公认的数据处理速度最快 的处理器。因而,a e s 算法用f p g a 来实现,无疑会最大程度的满足实时性要 求。 而且,基于f p g a 来实现该算法,可以满足算法的并行处理要求,极大的提高 算法的执行速度,提高算法的资源利用率。由于在算法中,处理的分组数据最 少为1 2 8 位,其次还有1 9 2 位和2 5 6 位,因而若采用并行加速的方式来设计算 法,任何一个通用处理器都不能实现同时对一个分组数据进行运算处理。并且 若采用通用处理器,在运算过程中的任一时刻,只能对某一部分数据进行运 算,其它数据资源处于闲置状态,极大影响了资源利用率和算法执行速度。而 采用f p g a 来实现算法,便可以克服通用处理器的以上缺点。并且从a e s 算法 本身来讲,并不涉及复杂的数学运算,诸如乘法、取模等,而是简单的逻辑和 查表运算,因而非常适合于用f p g a 开发。 从a e s 算法结构来讲,该算法包含了三大模块,分别是密钥扩展模块、加 密模块和解密模块。在进行的1 1 轮加或解密运算中,密钥扩展模块的作用是在 第一章绪论 每轮适当的时间向加或解密模块提供相应的轮密钥。所以如果将这三大模块均 在f p g a 中实现,考虑到算法本身的复杂性,将会耗费大量的资源。每次加解 密的运算,都需启动密钥扩展模块产生每轮相应的密钥,并在时序上还需考虑 每轮密钥与加解密一方准确的配合,这无疑增加了算法的设计复杂性,加大了 芯片的功耗。从实际的角度考虑,通信双方并不会频繁的变更双方密钥,只有 在密钥被盗等必要情况下才会改变双方密钥。所以可以完全将密钥扩展部分放 在外部处理器中实现,将计算好的l l 轮密钥存放在f p g a 中的r a m 中,作加 解密运算时,只需直接从r a m 中调用轮密钥即可。这样的话,不但会加快 f p g a 的算法处理速度,而且极大降低了算法设计复杂度,提高算法的稳定 性,进而减少f p g a 资源利用量,降低了算法执行功耗。 基于以上考虑,在选用外部处理器时可以选择8 0 5 1 系列单片机,即算法中 密钥扩展模块可以在8 0 5 1 系列单片机上用c 语言开发完成。目前,8 0 5 1 系列的 单片机的c 编译器已相当成熟,可达到专业化的水平,被广大的用户所接受。 另外,只有8 0 5 l 系列被多家公司成功研制出实时多任务操作系统( r t o s ) , r t o s 对用户有效管理应用程序的运行、合理分配c p u 时间和资源都带来了极 大的方便,为用户开发复杂应用系统带来好处。并且,单片机具有体积小,价 格低,功能全,面向控制等特点,开发后可嵌入产品内部,使产品实现智能 化。从密钥扩展模块所作的运算来看,单片机完全可以满足其程序存储器及数 据存储器的要求。 这样,a e s 算法用单片机配合f p g a 来实现,既可以发挥f p g a 处理速度 快、可并行运算的优势,又能发挥单片机数据运算能力强等特性,具有极大的 实践价值。 1 4 论文主要结构和内容 在对a e s 算法具体标准与流程进行了研究,并阅读国内外近几年相关文 献,了解了国内外对该算法研究进展后,在前人研究实现该算法的基础上,提 出了自己的设计方法。 本设计实现的目标是算法实现的实时性、小面积和低功耗性以及实用性。 实时性:通过转变算法实现的方式,减除密钥扩展模块对整个算法执行时 间的影响,进而提高算法整体执行速度。 小面积和低功耗性:通过密钥扩展模块采用单片机来实现,加解密核心模 块共享同一密钥存储空间,基本结构设计加解密模块的方式,以及通过控制电 第一章绪论 路来有效管理模块的触发进程的方式,极大的节省了f p g a 资源,降低了功 耗。 实用性:由于该算法分组长度最小的也是1 2 8 位,很难与外部电路进行相应 的配合,因而本设计开发了相应的8 位并行输入输出接口程序,通过单片机相 配合完成加解数据与密钥扩展数据的传输。并且,制作出了实现该算法相应的硬 件电路,可实际运用。 本论文主要的结构为: 第一章为绪论部分,介绍了信息安全学的发展历史,本课题研究的出发点, 设计方案的提出及意义,并且提出了本设计实现的目标。 第二章介绍了a e s 算法的理论体系,对算法中涉及到的各个步骤进行了详 尽的描述。 第三章主要介绍了开发该算法所用到的软硬件环境。 第四章从软件的角度介绍了a e s 算法设计的整个流程,并包括了对实现该算 法f p g a 具体器件的选型。 第五章介绍了该算法硬件电路设计部分。 第六章介绍了a e s 算法在硬件电路上的调试流程。 最后对本论文进行了总结,大致介绍了本设计取得的成果以及对算法研究方 向进行了展望。 4 第二章a e s 算法理论体系 第二章a e s 算法理论体系 2 1a e s 算法的提出 由文献【2 可知,为了推出安全性能更好的分组加密算法,以便替换安全性能 逐渐减弱的d e s 算法,1 9 9 7 年4 月1 5 日,美国国家标准技术研究所n i s t 向全 世界征集高级加密标准a e s 算法活动。自提出之日起,便引起了全世界密码学 界的重视和兴趣,并纷纷提交了自己的密码设计方案。到了1 9 9 8 年,n i s t 在制 定的算法评估标准( 安全性;成本;算法和实现特性等) 下,接受1 5 个候选算 法并重新检验其技术性能。经过再一轮的评审,19 9 9 年8 月2 0 日公布了m a r s , r c 6 ,r i j n d e a l ,s e r p e n t ,t w o f i s h5 个算法作为最后一轮的预选算法。在全世界 诸多密码学机构的参与分析和严格检测性能后,历时三年之久,n i s t 在2 0 0 0 年 1 0 月2 日终于宣布r i j n d a e l 数据加密算法获胜。根据规定,只有从公布之日起, 经过三个月的公众评议期结束没有疑问的情况下,才能正式被批准。可实际 上,n i s t 从2 0 0 1 年11 月2 6 日才正式公布r j n d a e l 数据加密算法成为高级加密 标准a e s ,并于2 0 0 2 年5 月2 6 日才正式生效,总历时达五年之久。 r i j n d a e l 算法是比利时密码学家j o a nd a n m e n 博士( 国际质子世界 p r o t o n w o r l di n t e r n a t i o n a l 公司) 和v i n c e n tr i j n m e n ( k a t h o l i e k eu n i v e r s i t yl e u v e n 电子工程系) 博士后开发的。该算法依据良好的有限域有限环数学理论基础, 既高强度的隐藏信息,又同时保证了算法的可逆性,解决了加解密问题。该算 法的软硬件适应能力强,性能稳定,密钥使用灵活,存储需求量低,即便使用 空间有限也具有良好的性能。 2 2a e s 算法安全性能分析 自a e s 算法被公布后,各国学者对其安全性能一直在进行探讨,但目前为 止,人们普遍认为r i j n d a e i 算法具有很好的安全i - t - 厶匕f j 匕。f 1 3 3 礅 2 3 ,经过归结 可知,主要有以下几个方面: 该算法对密钥的选择没有任何限制,基本没有发现弱密钥和半弱密钥之类 的存在。 第二章a e s 算法理论体系 可抗击穷举密钥的攻击。有两个参数决定了穷举攻击的速度,一是需测试的 密钥量,二是每个测试的速度。因为a e s 算法密钥长度是可变的,有12 8 19 2 2 5 6 比特三种,针对上述三种长度的密钥,对应的搜索空间大约为 1 7 x 1 0 3 8 3 1 x 1 0 5 7 5 8 x 1 0 7 6 次算法,其算法保密强度要比d e s 高的多。其次,以 目前的计算机运行速度来看,用该方法攻破a e s 几乎是不可能的。 可抗击线性攻击,经过4 圈变换后,该算法的线性轨迹相关性立。5 ,而8 圈 后其线性相关性立。5 0 ,并且对所有的数据块都满足上面提到的要求。 可抗击差分攻击。差分密码攻击是利用高概率特征或差分恢复密钥。可经过 测量,a e s 算法在经过4 轮或8 轮变换后,差分轨迹预测概率是立。1 5 0 或是 立。3 0 0 。 可抗击不可能差分攻击。不可能差分攻击是利用概率为0 ( 或非常小) 的特征 或差分,通过排除具有这些特征的密钥来寻找真正的密钥。对于5 圈的r i j n d a e l 密码,可以利用不可能差分攻击方法。但它要求2 2 吼5 个选择明文,23 1 个密文, 2 4 2 个存储字和2 2 6 个小时的预先处理时间。然后对于圈数更高的r i j n d a e l 算法, 则该方法就不是那么适用了。 可抗击积分密码攻击,即所谓的s q u a r e 攻击。因为一般情况下,一个一般 的积分均衡子集经过一轮迭代后,就可以使加密结果面目全非,而实际上, a e s 算法经过4 轮迭代后就可以抗击积分密码分析了。 可抗击插入攻击。插入攻击是指攻击将密文看作明文在g f ( 2 ) 上的多维多项 式,如果多项式的项数较少时,就可用较少的明文或密文解出多项式的系数。 而a e s 算法在字节交替变换中具有较复杂的多项式表示,从而在一般情况下是 可以抵抗插入攻击的。 2 3a e s 算法描述 2 3 1a e s 算法整体结构 a e s 算法是分组迭代加密算法的一种,在提出时便以可抗击所有攻击、适 应多个平台快速运算和紧凑编码且力求简单为目标,因而设计者便将该算法的 数据块长度和密钥长度设计成可变的,两者可分别指定为1 2 8 b i t ,1 9 6 b i t 和 2 5 6 b i t 。 a e s 算法加解密过程中每次变换操作产生的中间结果称之为一个状态,一 个数据块要经过多次数据变换才能完成。状态可以用字节为元素组成二维数组 阵列,共4 行,n b 列,n b 等于数据块长度除以3 2 。密钥的设计类似二维字节数 第二章a e s 算法理论体系 组,也是4 行,n k 列,且n k 等于密钥块的长度除以3 2 。当n b = 6 ,n k :4 时,数 据块与密钥块对应的矩阵如图2 1 所示。 a 0 , 0a 0 1a 0 2 a0 , 3 a 0 , 4 a0 5 a 1 0 a 1 1 a1 2 a 1 3a 1 4 a 1 5 a 2 , 0a 2 1a2 , 2a2 , 3 a 2 , 4 a2 , 5 8 3 oa 3 1 a 3 , 2 a3 , 3 a 3 4 a3 , 6 k o ok 0 1k0 , 2k0 , 3 k 1 0k 1 1k 1 2 k 1 3 k 2 0k 2 1k 2 2 k 2 3 k 3 0 k3 1 k 3 2 k 3 3 图2 1n b = 6 ,n k - 4 时对应矩阵 a e s 算法使用的是圈变换,其变换的圈数n ,由n b 和n k 共同决定,见于文 献【4 】,具体如表2 一l 所示。 表2 1a e s 算法圈数 n , n b = 4n b = 6n b = 8 n k = 4 1 01 21 4 n k = 6 1 21 21 4 n k = 8 1 41 41 4 下面简单介绍一下a e s 中基于状态数组的数据是如何进行处理的。先设算 法加解密时输入数组表示为:x - - x o x l x 2 x 1 2 6 x 1 2 7 ,其中x i e g f ( 2 ) ,0 _ i 1 2 7 。 并将x 划分为1 6 个字节:a o ,a 1 ,a 2 a 1 5 。另外设加解密的输出数组表示为: y = y o y l y 2 y 1 2 6 y 1 2 7 ,其中y i e g f ( 2 ) ,0 i 1 2 7 。并将y 划分为1 6 个字节,表示 为:b o ,b 1 ,b 1 5 。从而,在加解密数据时,先将a o ,a 1 ,a 2 ,a 1 5 复制到状态数 组,然后在加解密过程中对这一状态进行技术处理,处理结束后,将最后一个 状态数组复制到b 0 ,b l ,b 1 5 ,最后将其输出得到加解的结果。其映射过程如图 2 - 2 。 6 1 2 、 ; i b l5j 输入数组中间状态输出数组 图2 2数据映射流程 依据文献 5 】 6 】,从具体规则上,a e s 算法在进行加解密运算时都会按照三 大步骤进行,依次为1 ) 初始化的圈密钥加法;2 ) 0 , 4 ,1 ) 圈变换;3 ) 最后一圈变 换。这里以加密过程为例,其加密过程用伪代码表示如下。 加;奶 ,。一 兮 、, 2 5t1,l s s如;好 ,。- 、, 2 5,:11 口 口 第二章a e s 算法理论体系 r i j n d a e l ( s t a t e ,c i p h e r k e y ) k e y e x p a n s i o n ( c i p h e r k e y e x p a n d e d k e y ) a d d r o u n d k e y ( s t a t e ,e x p a n d e d k e y ) f o ri = l s t e p 1t on 广1 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 ,e x p a n d e d k e y + n b 宰n 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 ,e x p a n d e d k e y + nb 宰n r ) e n d ) 解密过程是加密过程的逆过程。整个加解密的结构图如图2 3 所示。 1 2 8 b i t 明文 初始加密钥 字节替换( 1 9 轮) 行移位( 1 9 轮) 列混合( 1 9 轮) 轮加密钥( 1 9 轮) 字节替换( 第1 0 轮) 行移位( 第10 轮) 轮加密钥( 第1 0 轮) 1 2 8 b i t 密文 1 2 8 b i t 密文 初始加密钥 反行移位( 1 9 轮) 反字节替换( 1 9 轮) 轮加密钥( 1 9 轮) 反列混合( 1 9 轮) 反行移位( 第1 0 轮) 反字节替换( 第1 0 轮) 轮加密钥( 第10 轮) 1 2 8 b i t 明文 图2 3 加密和解密结构图 2 3 2a e s 算法圈变换部分 a e s 算法的加解密运算部分都是基于圈变换的,而圈变换中的运算又都是 基于数据块的。因而,以下运算规则都是以数据块为基本单元介绍的。 2 3 2 1 字节替换部分 算法加密过程中字节替换b y t e s u b 0 的目的就是将状态中的每一个字节都非 线性的变换为另外一个字节,常称之为s 盒变换。a e s 算法中s 盒是圈变换中 第二章a e s 算法理论体系 唯一的非线性结构,它的任何缺点都将影响整个算法的安全性,见于文献 7 】。 变换的完成可以有两种方式,一是数学方式,另外便是查表方式。 前一种方式是先将字节看作g f ( 2 8 ) 上的元素,其值用它的乘法逆代替,其中 “o o ”的逆为其本身。然后,再对以上处理后的字节进行在g f ( 2 ) 上可逆的仿射 变换,如式( 2 - 1 ) 。 + ( 2 1 ) 将以上变换的实现,均放在一个8 b i t 输入和输出的s 盒中进行便是后一种 方式。该s 盒如表2 2 所示。 表2 2 加密算法中的s 盒 0l23 456789abcdef 06 37 c7 77 bf 26 b6 fc 53 0l6 72 bf ed 7a b7 6 1c a8 2c 9t d f a5 94 7f 0a dd 4a 2a f9 ca 47 2c o 2b 7f d9 32 63 63 ff 7c c3 4a 5e 5f l7 1d 83 l1 5 34 c 72 3c 31 89 659 at1 28 0e 2e b2 7b 2t 5 498 32 c1 al b6 e5 aa 05 23 bd 6b 32 9 e 3 2 f8 4 55 3d l 0e d2 0f cb l5 b6 ac bb e3 94 a4 c5 8c f 6d 0e fa af b4 34 d3 38 54 5 f 927 f5 03 c9 f a 8 75 1a 3 4 08 f9 29 d3 8f 5b eb 6d a2 11 0f ff 3f 1 2 8c dci 3e c5 f9 74 41 7c 4a 77 e 3 d6 45 d 1 97 3 96 08 1 4 fc l c2 22 a9 08 84 6e eb 81 4d ef i ebf i b a e 03 23 a a4 9 62 45 cc 2d 3a c 6 29 19 5 e 4 7 9 be 7c 8 3 76 d8 dd 54 ea 96 c5 6f 4e a6 57 aa e8 c b a7 82 5 2 el c a 6b 4c 6e 8d d 7 4i f4 bb d8 b8 a d7 0 3 eb 56 64 83f 6e6 l3 55 7b 98 6c 11 d9 e e e 1f 89 8i 1 6 9d 9 8 e9 49 b1 e 8 7e 9 c e 5 52 8d f f 8 ca 18 9db fe 64 26 84 19 92 dfb 05 4b b1 6 9 0 l l 0 o 0 1 1 0 1 2 3 4 5 6 7 x x x x x x x x 1 l 1 1 o o 0 1 1 1 1 0 0 0 l 1 1 l 0 0 0 l 1 1 1 0 0 o l l 1 1 o 0 o 1 l l 1 l o 0 1 1 1 1 1 o 0 l 1 1 l 1 o 0 l l l l 1 0 o 0 o ,2 3 4 5 6 7 少少y y 少少少少 第二章a e s 算法理论体系 通过这方式实现b y t e s u b 0 时,只需依据所要查找的字节选取与之对应的字 节即可。如一字节s = 6 6 ,则作b y t e s u b 0 运算后输出s 盒中第6 行6 列的字节3 3 作为结果。 解密中的字节替换i n v b y t e s u b 0 是加密算法字节替换b y t e s u b ( ) l 拘逆变换。 它是经过与b y t e s u b 0 相同的仿射变换后求其在g f ( 2 8 ) 中的逆得到的。同样的, 解密算法中字节的替换也可以用s 盒查表的方式,且其查表方式与加密算法中 的一致。解密算法对应的s 盒如表2 3 所示。 表2 3 解密算法中的s 盒 0 1 23c l56789abcdef 05 296 ad 53 03 6a 53 8b f4 1 3a 39 e 8 lf 3d 7f b i7 ee 33 98 2 9 b2 f f f 8 73 48 e4 34 4c 4d ee 9c b 25 47 o9 43 2a 6e 22 33 de e4 c9 5b4 2 f ac 34 e 3 82 e a l 6 6 2 8d 9 2 4 b 27 65 ba 24 96 d8 bd l2 5 47 2f 8f 66 48 66 89 81 6d ea 4 5 c c c5 4 6 5b 69 2 5 6 c 7 04 85 0f de d b 9d a5 e1 54 65 7a 78 d9 d8 4 69 0d 8a b08 cb cd 3 a f 7e 4 5 85b 8b 34 56 7d o2 c1 e8 fc a3 ff2c 1a fb d31 1 38 a6 b 8 3 a9 1 1 l4 i4 f6 7 d c e a9 7f 2c fc ef 0b 4e 67 3 g9 6a c了42 2e 7a d 3 58 5e 2f 9 3 7 e 8 l c7 5d f6 e a4 7f l1 at l1 d2 9c 58 96 fb 76 2ea a1 8b el b b f c6 63 e4 b c 6 d 27 9 2 09 ad bc 0- f o7 8c d5 af 4 cl fd da 83 38 87c 73 1b 11 21 05 92 7 8 0e c5 f d 6 05 i了a 9 王9 b 5c a a 2 de 5 7 a9 f9 3e 99 ce f ea 0e 03 b4 da e2 af 5b 0c 8e bb b3 c8 3 5 39 9 6 1 f1 72 b47 eb a7 7c 1 62 6e 16 91 46 35 5 2 l c7 d 2 3 2 2 行移位部分 在加密算法中,行移位s h i f t r o w 0 是指在给定的状态下不同的行对应移不同 的字节。算法规定,行1 不移位,行2 移c 1 字节,行3 移c 2 字节,行4 移c 3 字节,并且移位值大小与加密块长度n b 有关,具体如表2 - 4 所示。 1 0 第二章a e s 算法理论体系 表2 - 4 行移量 n b c l c 2c 3 4l23 6123 8 l33 在解密算法中,行移位i n v s h i f t r o w 0 是s h i f t r o w 0 的逆变换,规定为对于给 定的状态后3 行分别移动n b c 3 ,n b - - c 2 ,n b - - c 1 个字节。其中c 1 ,c 2 ,c 3 定义 与上同。 2 3 2 3 列混合变换部分 在a e s 算法中,列混合变换是为了将给定的状态逐列进行变换。在变换中, 它将状态矩阵中的每一列看作系数在g f ( 2 8 ) 上的一个次数小于4 的多项式,并与 一固定的多项式c ( x ) 进行模x 4 + 1 相乘。其中c ( x ) 为模x 4 + l 可逆多项式。 在加密运算中,c ( x ) 可以表示为式( 2 2 ) ,见于文献e 8 ,即: c ( x ) = 0 3 x 3 + 0 1 x 2 + 0 1 x + 0 2 ( 2 2 ) 在这里,为便于分析,我们将经过这一变换前后状态表示为图2 - 4 。 s o o s o i s i 0s 1 1 $ 2 0s 2 1 $ 3 0 岛1 m i x c o l u m n s o o s o i s i os l i s 2 08 2 1 与os 3 1 s 0 28 0 3 s 1 2s 1 3 $ 2 2 $ 2 3 s 3 2s 3 3 图2 4 状态转换图 令 一( 戈) = s 3 ,x + s 2 ,x 2 + ,x + s o , ( x ) = 蠢,x 3 + s 2 ,x 2 + s l ,x + s o f 贝0 有s := c ( x ) s i ( x ) ,其中o i 3 。 从而,对于加密运算来说,列混合变换m i x c o l u m n 0 可以表示为g f ( 2 8 ) 上的 可逆线性变换,如式( 2 3 ) 所示。 s 0 , 一, s 2 j 邑, 0 20 3 0 10 2 0 10 l 0 3o l 0 10 1 0 30 1 0 2 0 3 0 10 2 s q l & , s 2 , 邑, ( 2 3 ) 解密运算中的列混合变换i n v m i x c o l u m n 0 是加密运算中列混合变换 第二章a e s 算法理论体系 m i x c o l u m n 0 的逆变换。它与m i x c o l u m n 0 运算相似,只是固定多项式变成c ( x ) 的逆c - i ( x ) ,其中该多项式可以表示为式( 2 4 ) ,g 于文献 8 1 。 c _ ( z ) = o b x 3 + o d ) x 2 + 0 9 ) 石+ o e ) ( 2 - 4 ) 同样基于以上的状态转换,解密运算的列混合变换可以表示为式( 2 5 ) 。 s o i , 是, s 3 i 0 e 0 6 0 90 e 0 d0 9 0 60 d 0 d0 9 0 60 d 0 e0 6 0 90 e s b | s l , 是, s 3 i ( 2 - 5 ) 2 3 2 4 圈密钥加法部分 a e s 算法中,加密和解密运算的圈密钥加法运算a d d r o u n d k e y ( ) 规则是一样 的,都是简单的使用异或操作到一个状态上,每一圈的密钥都是通过密钥扩展模 块经过计算提供的。每组圈密钥的长度与数据块的长度是相同的。如果用 ( s o i ,s l i s 2 i ,s 3 i ) 表示圈密钥加法的运算结果状态,用( s 0 i ,s 1i , s 2 i ,s 3 i ) 表示初始的待 运算状态,用( k o i ,k li , k 2 i ,k 3 i ) 表示与初始状态对应的圈密钥,其中0 i 6 时算法与n k 6 时算法不同之处在于:当i 为4 的倍数时,应将 前一个字w i - l 】经过s u b b y t e 0 变换操作来实现。 从以上伪代码可以看出,该运算主要设计以下运算: 函数s u b b y t e ( w ) 的输出字的每一个字节都取决于s 盒变换作用的结果,输入 一个4 字节的字由s 盒变换后输出一个4 字节的字。 函数r o t b y t e ( w ) 返回值是输入字w 的一个字节循环移位,即如果输入字表示 为w = ( a o 。a l ,a 2 ,a 3 ) ,则输出字可以表示为w = ( a 1 a 2 ,a 3 ,a o ) 。 数组r c o n i n k 】实际上是一个常数数组,其值可以表示为: r c o n i = ( x i l , 0 0 ,0 0 ,0 0 ) 。如果字节用1 6 进制表示,同时理解为g f ( 2 8 ) 上的元素, 则x 卜1 为g f ( 2 8 ) 域中的多项式x 的i - 1 次方所对应的字节。其中x 对应的字节为 0 2 ,因而该常数数组可以表示为r c o n i = ( ( 0 2 ) i - 1 0 0 ,0 0 ,o o ) 。 以加密过程为例,第r 次调用圈密钥加法运算时使用的圈密钥是由密钥扩展 运算的第4 r ,4 r + l ,4 r + 2 ,4 r + 3 个字组成的。 2 4 本章小结 本章介绍了a e s 算法的提出背景,算法具有的安全性质,并且从理论的角 度对该算法涉及到的运算进行系统的描述,包括了密钥扩展部分以及加解密部 分,为以下介绍算法的软件实现奠定了基础。 第三章a e s 算法开发环境 第三章a e s 算法开发环境 3 1a e s 算法开发的软件环境 3 1 1q u a r t u s i i 软件介绍 。q u a r t u s l i 软件是a l t e r a 的综合开发工具,它集成了a l t e r a 的f p g a c p l d 开 发流程中所涉及的所有工具和第三方软件接口。通过使用此综合开发工具,设 计者可以创建、组织和管理自己的工具。在本课题设计中,算法的核心模块加 解密模块和密钥扩展存储器便是基于此软件开发的。 有文献【9 】可知,q u a r t u s l l 具有以下特点: ( 1 ) 支持多时钟定时分析、l o g i c l o c k t m 基于块的设计以及s o p c ( 单芯片可 编程系统) ,并且内嵌s i g n a l t a p l i 逻辑分析器、功率估计器等高级工具; ( 2 ) 包含有m
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025版土石方工程全方位服务居间服务协议
- 2025年文化旅游园区厂房租赁安全生产与景区安全管理协议
- 2025年度环保建材三方买卖合同
- 2025版商铺买卖双方权益保障及转让合同
- 2025版森林资源砍伐与生态补偿金支付合同范本
- 2025版股份制企业股权质押合同范例
- 2025房地产项目委托开发与绿色建筑认证管理合同范本
- 2025版移动通信基站租赁及运营合同
- 2025版石灰生产原料进口合同范本
- 2025年度陶瓷行业环保专员劳动合同书
- 班级管理常规优质课件
- IT运维服务方案信息运维服务方案
- ZSL1000、ZSL750塔吊外挂架施工方案
- 文化自信作文800字议论文
- GB/T 28287-2012足部防护鞋防滑性测试方法
- GB/T 27677-2017铝中间合金
- GB/T 19627-2005粒度分析光子相关光谱法
- 芜湖宜盛置业发展有限公司招聘3名编外工作人员(必考题)模拟卷
- 混凝土结构设计原理教学教案
- 齿轨卡轨车课件
- 中国监察制度史
评论
0/150
提交评论