(计算机应用技术专业论文)aes算法ip化的仿真综合验证研究.pdf_第1页
(计算机应用技术专业论文)aes算法ip化的仿真综合验证研究.pdf_第2页
(计算机应用技术专业论文)aes算法ip化的仿真综合验证研究.pdf_第3页
(计算机应用技术专业论文)aes算法ip化的仿真综合验证研究.pdf_第4页
(计算机应用技术专业论文)aes算法ip化的仿真综合验证研究.pdf_第5页
已阅读5页,还剩53页未读 继续免费阅读

(计算机应用技术专业论文)aes算法ip化的仿真综合验证研究.pdf.pdf 免费下载

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

文档简介

摘要 摘要 a e s 加密标准是2 0 0 0 年1 0 月美国国家标准与技术研究所( n i s t ) 提出来的新 型加密算法标准,用来取代上一代的d e s 数据加密标准。本文基于a 】强( 埘v 趾c e d e i 婀y p t i o ns t a n d a r d ) 加密标准算法,研究其在婵设计中的应用。在设计a e s 算 法软硬口实现方面采用自顶向下,从逻辑层到物理层的多层次设计方法,层层验 证确保各层设计的正确,最终实现整体设计的正确性。在首先设计完成体系结构 后,进行代码编写和仿真综合验证,其中主要分为4 个层次:c 语言代码的软件实 现及其仿真验证;s y s t e i n c 语言代码的系统级实现及其仿真验证;v e r i l o z 语言代 码的r t l 级实现及其仿真综合验证:最后是s y s t e m c 和v c r i l o g 语言的协同设计和 协同仿真。在设计并仿真综合验证完成v e r i l o g 语言的r t l 级代码就可以上f p g a 进行原型验证,测试结果符合设计要求。文章又讨论了引入i c 设计中的新语言一 s y s t e m c ,它的研究在国外很热,但在国内还是一个空白领域。通过a e s 加密模 块i p 设计这个项目,将s y s t e m c 语言引入i c 设计流程中,比较对传统的i c 设计 所带来的不同,给出对s y s t e m c 语言的一个综合评价结果。 关键词:加密标准协同仿真层次设计 a b s t r a c t 3 a e si san e wd a t ae n c r y p t i o ns t 锄d a r dw h i c hb r i n gf b n v a r db yn i s ti l lo c t2 0 0 0 i th a ss u b s t i t i l t e dt h ed a t ae n c r y p t i o ns t a l l d a r d ( d e s ) w h i c hh a s t 、) l r c n t y y e a r a p p l i c a t i o nh i s t o r y t h ep a p c rs t i l d i e st h e 叩p l i c a t i o no fa e si pc o r c ,b a s e d0 nt l l e a l g o f i t i l mo fa e s ( a d v 托c e de n c r y p t i o ns t 蛐d a r d ) w ed e s i 驴e dt h es o 腑a r ea l l d h a r d w a r ei pb a s e do nan e ww a yw h i c hi sb o t h 丘o mt o pt ob o t t o ma n df r o ml o 酉cl a v e l t op h y s i c sl e v e l w eh a v et oi n s u r et h ec o r r e c t n e s so fe a c hl e v e no r d e rt oe n s u r et l l e c o n c t n e s so ft 叩l e v e l a tt h eb e g 删n gw e d c s i g nt h ea r c h i t e c t u r eo fa e s ,t h e nc o d e s , s j i n u l a t ea i l dv a l i d a t et b ea 1 9 0 r i t 】l l l l l n e r e 盯ef o u r l e v e l s 蚰t h es i m u l a t i o na n d v a l i d a t i o n t h ef i r s tl c v e li sc o d i n g 锄ds i m u l a t i 彻o fl 孤g t l a g cc t h es e c o n dl c v e li s c o d i n g ,s j m u l a t i o n 蛐dv a l i d a t i o n 时l a n g u a g es y s t e m c t h et l l i r dl e v e li s d i n g , s i m u l a t j o na n dv a l j d a t j 彻o fl a g t j a g ev e r i l o g n el a s t l e v e li sc o o p e r a t e - s i i l l u l a t i 咖 a n d o p e r a t e v a l i d a t i o no fs y s t e m ca n d 、7 色r i l o g f i n a l l y ,a e sa l g o d t h mv a l i d a t e so n a r c h e t y p e ,w h i c hc o d e so nr t ll e v e lb yv c 瑚o g1 孤g i l a g c ,s i i n u l a t e s ,v a l j d a t e sa n dn l n s o n 即( 认n et e s tf c s u l ta c c o r d sw i t ho u rr e q u i r c m e n t 1 1 l ep a p e ra l s os t u d i e san e w l a n g u a g ei no u rd e s i 目r s y s t e m c r e s e a f c ho fs y s i e m ci sv e r yh o ta ta b m a d ,b u t t h e r ei sal i t t l er e s e a r c hi no u rc o u n t t h m u 曲t h ep 删e c to fa e si pc o r cd e s i 驴i n g , w ei n v e s t i g a t et h a th o wm 蛐ym e r i t so fs y s t e m cl 卸g i l a g eb 血gi n t ot h et r a d i t i o n a l i c d e s i 弘n o w a l l dg i v ea ni m p e r s o n a l i i ys t a d p o j n ta b o u ts y s t c m c1 柚g u a g e k e y w o r d s :e c r y p t i 叫s t a n d a r dc p e m t e - s i m u l a t 五蛐 h m e 腑r c h yd e s i 驴 创新性声明 y 8 5 9 0 0 7 本人声明所呈交的论文是我个人在导师指导下进行的研究工作及取得的研究 成果。尽我所知,除了文中特别加以标注和致谢中所罗列的内容以外,论文中不 包含其他人已经发表或撰写过的研究成果;也不包含为获得西安电子科技大学或 其它教育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做 的任何贡献均己在论文中做了明确的说明并表示了谢意。 申请学位论文与资料若有不实之处,本人承担一切相关责任。 本人签名 关于论文使用授权的说明 本人完全了解西安电子科技大学有关保留和使用学位论文的规定,即:研究 生在校攻读学位期间论文工作的知识产权单位属西安电子科技大学。本人保证毕 业离校后,发表论文或使用论文工作成果时署名单位仍然为西安电子科技大学。 学校有权保留送交论文的复印件,允许查阅和借阅论文;学校可以公布论文的全 部或部分内容,可以允许采用影印、缩印或其它复制手段保存论文。( 保密的论文 在解密后遵守此规定) 本学位论文属于保密在一年解密后适用本授权书。 日期 第一章绪论 第一章绪论 1 1 研究背景及意义 随着计算机和通信网络的广泛应用,信息的安全性已受到人们的普遍重视。 信息安全已不仅仅局限于政治、军事以及外交等领域,而且也与人们的日常生活 息息相关。现在,密码学理论和技术已得到了迅速的发展,它是信息科学和技术 中的一个重要研究领域【1 1 。 a e s 算法是1 9 9 7 年4 月美国国家标准和技术研究所( n i s d 开始征集的先进加 密标准算法,用来取代过时的d e s 加密标准。2 0 0 0 年1 0 月最终刚n d a e l 算法被 选中成为a e s 。则n d l 算法的设计者是两位来自比利时的密码专家:p m t o nw b r l d h t e m a t i o n a l 的j o a nd a e m e n 博士和k a t h o l i e k eu n i v e r s i t e j tk u v c n 电子工程系s 筒r ) 的v i n c e n t r m e n 博士后【2 1 。该算法汇聚了设计简单、密钥安装快、需要的内存空 间少、在所有的平台上运行良好、支持并行处理并且可以抵抗所有已知攻击等优 点。 到目前为止,a e s 还没有出现任何致命缺陷。a e s 取代d e s 和3 d e s 以增强 安全性和效率已是大势所趋【3 】。其中,d e s ( d a t ae n c r y p t i o ns t 锄d a r d ) 是1 9 7 7 年1 月1 5 日美国正式公布实施的数据加密标准,由于密钥长度太短,导致数据加密的 安全性达不到目前人们的要求,所以被a e s 所取代。a e s 算法现在在国内外,有 很多的研究,并有相应的产品。 以下介绍a e s 算法的部分应用【4 - 9 j : ( 1 ) 直接将算法用于软件设计中,对存储数据进行加密和保护: 朗科密钥u 盘、移动硬盘,内置高强度钲搭算法保护数据。 采用a e s 加密的一些共享,免费或者企业级的软件如:加密金刚锁,战神加 密,s p e c i a le p a s 鲥o r dp m t e c t o r 等等。 ( 2 ) 用于网络安全方面、,p n 方案: a e s 被确认为适用于所有安全数据通信系统的标准,a e s 也是p s c c 协议指 定的加密解密算法之一,n 的主流技术就是口s c c 协议。纯软件w 产品,采 用a e s 加密算法防止数据被窃听和篡改。目前国内成熟的软件v p n 有:迅博v p n 、 深信服v p n 、科迈n 、安软v p n 。硬件v p n 将加密和解密功能交由专门的高 速硬件处理,提供了较好的性能,并且可以提供强大的物理和逻辑安全,更好地 防止非法入侵。 ( 3 ) 用于l m 软件: 2 a e s 算法i p 化的仿真验证研究 风靡全球的i m 软件t o m s k ) ,p e 的通话就是使用a e s 加密,动态的将每个 呼叫和即时消息加密,在接收到的时候进行解密,不会在中途被窃听。用户不仅 与好友们联络感情而且即使进行商务会谈使用1 u m s k y p e 都能够非常放心。 上面讨论了不少创巳s 算法的应用,说明a e s 目前已经应用于很多领域,出现 了很多不错的产品。为什么我们还要设计a e s 算法的m 实现呢? 第一、a e s 算法 在实现过程中,体系结构的建立有多种实现方法,体系结构的好坏值得探讨。其 二、在设计过程中,我们引入了s y s t e m c 语言,s y s t 锄c 语言是一门新兴语言, 国际上在大力推动这一语言的标准化,它的强处在于系统建模。但是,它是不是 有介绍的那么好,那么理想呢? 通过我们后面的研究才能知道。 1 2 知识产权坤介绍 本文介绍a e s ( a d v a n c e de n c r y p t i o ns t a l l d a r d ) 加解密算法的硬件实现,通过设 计实现a e s 加密的i p 化。口这个词文章中已经多次提到,到底什么是i p 呢? i p ( h t e l l e c t u a lp r o p e n y ) 就是常说的知识产权。美国d a t a q u e s t 咨询公司将半导体产 业的口定义为用于a s l c 、f p g a 、p u ) 等当中,并且是预先设计好的电路功能模 块。i p 分为:软p 、固口和硬i p 【2 卯。 软i p 用计算机高级语言的形式描述功能块的行为,但是并不涉及用什么电路 和电路元件实现这些行为。软口的最终产品基本上与通常的应用软件大同小异, 开发过程与应用软件也十分相象,只是所需的开发软、硬件环境,尤其工具软件 要昂贵很多。软m 的设计周期短,设计投入少,由于不涉及物理实现,为后续设 计留有很大的发挥空间,增大了i p 的灵活性和适应性。 固i p 是完成了综合的功能块,有较大的设计深度,以网表形式提交客户使用。 如果客户与固i p 使用同一个生产线的单元库,i p 的成功率会比较高。 硬l p 提供设计的最终阶段产品:掩膜。随着设计深度的提高,后续工序所需 要做的事情就越少,当然,灵活性也就越少。不同的客户可以根据自己的需要订 购不同的i p 产品。 i p 的产生主要是为了提高集成电路的设计效率,还有就是基于平台的设计思 想。所谓基于平台的设计,关键在于知识产权口的设计重用( d e s i g nr c l l s c ) ,人们 希望像搭积木一样将一个复杂的集成电路构建起来。我们的这个项目主要设计 a e s 算法的软硬i p ,由于时间有限,研究主要是设计软i p 并涉及部分硬i p 。 第一章绪论 1 3 论文主要研究工作 3 本文通过对a e s 算法的研究,希望能从体系结构的建立,s y s t e m c 语言的可 用性,设计代码的仿真综合验证实现三个方面做出一定的探究。本研究涉及到了 密码学中的a e s 加密算法,集成电路( i c ) 设计的相关知识,还涉及各种描述语言, 各种e d a 工具,内容涉及广泛。首先清楚密码学,搞清楚a e s 加密算法的加密 解密过程;然后懂得集成电路设计流程,描述语言,设计工具,和代码的综合仿 真,最后在f p g a 上进行硬件仿真【姗。我们使用的工作平台分别有w i n d o w s ) 口 和s u n 公司的s o l a r i s 操作系统,使用的e d a 工具有w i n d o w sx p 下m o d e l s i m 6 o , s y n p l i f yp f 0 7 5 1 ,q u a r t u s 5 o ;s o l a r i s 操作系统下s y n o p s y s 公司的d c ,v c s 工 具。f p g a 平台我们选用a l t e r a n i o s i i 嵌入式开发板。 本论文的研究工作是在西安市重点信息项目“a e s 加密模块i p ”( 项目编号: z x 0 5 0 2 0 ) 和国家高技术研究发展计划( 8 6 3 ) 子项目“基于i p 复用的s o c 设计 技术研究”( 项目编号:2 0 0 4 a a l z l l 3 0 ) 支持下完成的。 4 a e s 算法i p 化的仿真验证研究 2 1 1 引言 第二章a e s 数据加密标准简介 2 1 密码学概述 密码学是一门既古老又年轻的学科,其历史可以追溯到几千年以前。 古典密码主要应用于政治、军事以及外交等领域,可以说,自从有了战争, 就有了保密通信。交战双方都为了保护自己的通信安全、窃取对方的情报而研究 各种信息加密技术和加密分析技术。 在1 9 4 9 年以前,密码技术基本上可以说是一门技巧性很强的艺术,而不是一 门科学。在这一时期,密码专家常常是凭借直觉和信念来进行密码设计和分析, 而不是推理证明。在1 9 4 9 年,c e s h 锄o n 发表了“保密系统的通信理论 ( c d m 砌n i c a t i o nn e o r yo fs e c r e c ys y s t e m s ) ”一文,为密码学奠定了坚实的理论 基础,是密码学成为一门真正的科学,但从1 9 4 9 到1 9 7 5 年,密码学的理论研究 工作进展不大。 1 9 7 6 年,w d i 彪e 和m e h e l l i n a n 发表了“密码学中的新方向( n e w d i r e c t i o n s i nc r y p t o g r a p h y ) ”一文,提出了一种崭新的密码设计思想,导致了密码学的一场 革命。他们首次证明了从发送端到接收端无密码传输的保密通信是可能的,从而 开创了公钥密码学的新纪元。1 9 7 7 年,美国国家标准局( t i o n a lb u r c a uo f s t a n d a r d s ) 正式公布了数据加密标准d e s ( d a t ae n c r y p t i o ns t a n d a r d ) ,将d e s 算 法公开,从而揭开了密码学的神秘面纱。从此,密码学的研究进入了一个崭新的 时代【1 l 】。 2 1 2 密码学的基础概念 一、加密、解密 原始的信息称为明文( p l a i n t e x t ) 。加密后的信息称为密文( c i p h e r t c x t ) 。从明文到 密文的变换称为加密( c n c r y p t i o n ) 。从密文到明文的变换称为解密( d e c r y p t i o n ) 。研究 各加密方案的学科称为密码编码学,而加密方案则称为密码体制或密码。研究破 译密码获得消息的学科称为密码分析学。密码编码学和密码分析学统称为密码学 咀 加密和解密都是在密钥( k e y ) 的控制下进行的。给定一个密钥,就可确定一对 第二章a e s 数据加密标准的简介 具体的加密变换和解密变换。 一个密码体制 y p y t o s y s t 伽吣通常有五部分组成: ( 1 ) 明文空间肛:全体明文的集合。 ( 2 ) 密文空间毋:全体密文的集合。 ( 3 ) 密钥空间r :全体密钥的集合。通常每一密钥七都由加密密钥七。和解密密 钥屯组成,七= ,七。与k 可能相同也可能不同。 ( 4 ) 加密算法亭:由加密密钥控制的加密变换的集合。 ( 5 ) 解密算法0 :由解密密钥控制的解密变换的集合。 二、对称密码与非对称密码 如果一个密钥体制的加密密钥与解密密钥相同,则称其为对称密码( s y m m e y c i p h c r ) 体制或单密钥密码体制;否则,称其为非对称密码体制或双密钥密码体制 【1 4 】。 在一个非对称密码体制中,由加密密钥七。计算解密密钥是困难的,公开七。 不会损害k 的安全性,则可以将加密密钥屯公开。这样的密码体制也称为公钥密 钥体制( p u b l i c k e yc r y p t o s y s t e m ) 叫。 非对称密码体制的优点是加密密钥可以公开传播,缺点是运算速度较慢,适 合少量数据传输。对称密码体制则不同,它的运算处理速度快,适合大量的数据 传输。我们所研究的a e s 算法就是对称密码体制。 三、流密码与分组密码 分组密码( b l o c kc i p h e r ) 又称秘密钥密码( s e c r e t k e yc i p h e r ) 。利用分组密码对密 文进行加密时,首先需要对明文进行分组,每组的长度都相同,然后对每组明文 分别加密得到等长的密文。分组密码的特点是加密密钥与解密密钥相同。分组密 码的安全性应该主要依赖于密钥,而不依赖于对加密算法和解密算法的保密。因 此,分组密码的加密和解密算法可以公开。我们所研究的a e s 算法属于分组密码 体制,即对称分组密码体制1 1 j 。 流密码也可称为序列密码搿密码可以认为是起源于2 0 世纪2 0 年代的v e r n a m 体制,当v c m 枷体制中的密钥流是随机的( 0 ,1 ) 序列时,它就是“一次一密”密 码体制。s h 砌o n 已经证明“一次一密”密码体制在理论上是不可破译的。由于随 机的密钥流的产生、存储以及分配等方面存在一定的困难,v e m 枷体制在当时并 没有得到广泛的应用。随着微电子技术和数学理论的发展与完善,基于伪随机序 列的流密码得到了长足的发展和应用。在流密码中,加密和解密所用的密钥流都 是伪随机序列。伪随机序列的产生比较容易并且有比较成熟的数学理论工具。目 前,流密码是世界各国的军事和外交等领域中使用的主要密码体制之一【1 6 j 。 6 a e s 算法l p 化的仿真验证研究 2 1 3 密码分析 对于一个密钥体制,如果能够根据密文确定明文或密钥,或者能够根据明文 和相应的密文确定密钥,则我们说密码体制是可破译的;否则,称其为不可破译 的【”。绝对不可破译的密码在理论上是存在的。但是,如果能够利用足够的资源, 那么任何实际的密码都是可以破译的。因为,更有实际意义的是在计算上不可破 译( c o m p u t a t i o n a l l yu n b r e a k a b l e ) 的密码。所谓计算上不可破译是指密码分析者根据 可利用的资源来进行破译所用的时间非常长,或者破译的时间长到使原来的明文 失去保密的价值。 密码分析者攻击密码体制的方法主要有以下三种: ( 1 ) 穷举攻击:密码分析者通过试遍所有的密钥来进行破译。显然,可以通过 增大密钥量来对抗穷举攻击。 ( 2 ) 统计分析攻击:密码分析者通过分析密文和明文的统计规则来破译密码。 对抗统计分析供给的方法是设法使明文的统计特性与密文的统计特性不样。 ( 3 ) 解密变换攻击:密码分析者针对加密变换的数学基础,通过数学求解的方 法来设法找到相应的解密变换。为对抗这种攻击,应该选用具有坚实的数学基础 和足够复杂的加密算法。 通过上面的介绍,给出一个密码系统模型,见图2 1 所示。 图2 1 密码系统模型 密码系统的使用者通常称为用户。密码系统的破坏者有时称为对手。对手分 为“窃听型”和“干扰型”两种。“窃听型”对手只是截取信道上传送的信息,而 “干扰型”对手则会篡改信道上传送的信息【i l o 2 2 高级加密标准a e s 1 9 7 3 年5 月1 3 日美国国家标准技术研究所s t 的前身国家标准局n b s 向公众 第二章a e s 数据加密标准的简介 7 发出通告,征求用于保护政府部门非机密敏感数据的加密算法。这一举措最终导 致了数据加密标准d e s 西a t a e n c r y p t i o n s t 柚d a r d ) 算法的产生。就d e s 的密钥而言, 5 6 比特的长度确实太短了,己经抵挡不住穷尽密钥搜索攻击,所以才出现了a e s 算法作为它的替代。1 9 9 7 年4 月1 5 日美国国家标准技术研究所n i s i y n a t i o n a l i n s t i t u t eo fs t 孤d a r d 粕d1 k 1 1 n o l o g y ) 发起征集a e s ( a d v a n c e de n c r ) ,p t i o ns t a l l d a r d ) 算法的活动,目的是为了确定一个安全性能更好的分组密码算法用于取代d e s 。 a e s 的基本要求是比三重d e s 快,并且至少与三重d e s 一样安全,分组长度为1 2 8 位、密钥长度为1 2 8 位、1 9 2 位、2 5 6 位。1 9 9 8 年8 月2 0 日,n i s t 公布了满足要求的 1 5 个a e s 候选算法。1 9 9 9 年3 月2 2 日,n i s t 公布了第一阶段的分析和测试结果,并 从1 5 个算法中选出了5 个作为a e s 的候选算法。2 0 0 0 年1 0 月2 日,美国商务部宣布 a e s 的最终评选结果,比利时密码专家j o a nd a e m e n 和n c e n tr i m e n 提出的 “r i j n d a e l 数据加密算法”最终获胜,“r i j n d a e l 数据加密算法”将成为高级加密标 准a e s 。2 0 0 1 年1 1 月2 6 日,n i s t 正式公布高级加密标准a e s ,并于2 0 0 2 年5 月2 6 日 正式生效【1 7 】。 a e s 的安全性能是良好的。经过多年来的分析和测试,至今没有发现a e s 的 明显缺点,也没有找到明显的安全漏洞。a e s 能够抵抗目前已知的各种攻击方法 的攻击。 2 2 1a e s 的输入输出和中间状态 a e s 的分组长度为1 2 8 位。对于1 2 8 位的输入,经a e s 加密和解密处理后, 得到的输出也为1 2 8 位【1 1 。 在a e s 中,各种运算是以字节为单位来进行处理的。设 z = z o 气z 2 z 1 2 6 2 1 2 7 , ( 2 - 1 ) 其中乞g f ( 2 ) ,o s fs 1 2 7 。将z 划分为1 6 个字节 f o ,f 1 ,f 2 ,f 1 5 。 这1 6 个字节中的各位与z 中的各位的对应关系为 f o 号z o 毛一z 6 2 7 , f 12 气z 9 ”z 1 4 气5 , f 2 肆毛6 2 1 7 一三2 2 2 2 3 , i f 1 5 = z 1 2 1 2 l “白2 1 ”。 ( 2 - 2 ) 在一个字节中,最右端的位为字节低位,最左端的位为字节高位。 a e s 加密和解密过程中的中间各步的结果称为一个状态,每个状态也是1 2 8 位。设 8 a e s 算法l p 化的仿真验证研究 s 蛊s d s l s 2 j 1 2 1 ”( 2 - 3 ) 是一个状态,其中砖6 f ( 2 ) ,0 s f s l 2 7 。从左到右按顺序将s 划分为1 6 个字节 s 0 0 ,s l o ,s 2 0 ,j 3 0 ,s 0 1 ,s l l ,s 2 1 ,s 3 l ,s 0 2 ,s 1 2 ,s 2 2 ,s 3 2 ,s 0 3 ,墨3 ,s 2 3 ,s 3 3 将这1 6 个字节排成一个二维数组 s o o 1 s l o墨l s 加s 2 1 s 3 0岛1 s 0 2 s 0 3 s 1 2墨3 s 2 2s 2 3 5 3 2 称之为状态数组,a e s 中的各种变换都是基于状态数组来进行处理的。 设 x2 j c o 鼍z 2 ”2 6 2 7( 2 4 ) 为a e s 在加密或解密时的输入,其中葺( 疆( 2 ) ,o s l s l 2 7 。将z 划分为1 6 个 字节 口o ,口1 ,口2 ,口巧, 设 y2y o 欺y 2 岁1 2 6 咒2 7 ( 2 - 5 ) 为a e s 在加密或解密时的输出,其中y f g f ( 2 ) ,0 s f s l 2 7 。将y 划分为1 6 个 字节 6 0 ,6 1 ,6 2 ,以;。 a e s 在加密或解密开始时,首先将口o ,口1 ,口2 ,口1 5 复制到状态数组;然后,加密 或解密过程对这个状态数组进行处理:最后,加密或解密过程处理完后,将状态 数组复制到,岛,6 2 ,岛5 ,就得到a l 强加密或解密的最终输出结果。a e s 的输 入输出与状态数组之间的关系如下所示: 口o口4口8n 1 2 口1口5n 9n 1 3 n 2口6口1 0口1 4 口3以71 1 口1 5 s s 0 1 s l o墨l s 2 ds 2 1 s 3 0 屯1 s 0 2s 0 3 墨2s 1 3 s 2 2s 2 3 s 3 2s 3 3 a e s 算法是一种分组长度为1 2 8 b j t s ,而密钥长度为1 2 8 b i t s 1 9 2 b i t s ,2 5 6 b j t s 的 分组密码算法。根据密钥长度的不同,数据加密和解密的循环轮数也不同。轮转 次数可以通过查下表2 1 得到,见表2 1 。其中,密钥长度记为,分组长度记为 n b ,加密轮数记为n r 。 a e s 类型 ( b i t s ) n b ( b i 固i n r a e s - 1 2 81 2 81 2 8 1 0 2 3 4 5阢魏魏魄玩珈跏加 以如既胁 加执现如 第二章a e s 数据加密标准的简介 9 a e s 一1 9 21 9 21 2 81 2 a e s 2 5 62 5 61 2 81 4 表2 1 密钥长度与加密轮数的关系 a e s 加密过程中的圈变换由四个不同的变换组成,用伪c 语言代码描述为 r o u n d ( b y t es t a t e 【4 ,n b 】,w o r dw 【n b + + 1 ) 】) b e g i n s u b b y t c s ( s t a t e ) s l l i f t r o w 吕( s t a t e ) m i x c o l u m n “s t a t e ) a d d r o u n d k y ( s t a t c ,w 【r + n b ,( f + 1 ) 4 - l 】) e n d 加密过程中的最后一个轮变换略有不同,定义为 f i n a l r o u n d ( b y t es t a t e 【4 ,n b 】 w o r dw n b + ( n r + 1 ) 】) b e 百n 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 【r 4 n b ,( r + 1 ) 4 n b - 1 】) e n d a 】巳s 解密过程中的轮变换定义为 h l v r o u n d ( b ”es t a t c 【4 ,n b 】 w o r dw 【n b + ( n r + 1 ) 】) b e 百n i n v s b i f t r o w s ( s t a t c ) l n v s u b b ”e s ( s t a t e ) a d 胀o u n d k c “s t a l c ,w 【r 8n b ,( r + 1 ) + n b - 1 】) i n v m i x c o l u m n s ( s t a t e ) e n d 解密过程中的最后一个轮变换略有不同,定义为 h f i n a l r 0 u n d ( b y t es t a t e 【4 ,n b 】,w o r dw 【n b + + 1 ) 】) b e 百n h v s h i f t r o w s ( s t a t e ) 目n v s u b b ”e s ( s t a t e ) a d d r o 叻d k e y ( s t a t e ,w 【0 ,n b l 】) e n d 我们这里给出的轮变换都是用伪c 语言代码描述的,后面将具体解释其含义。对 望a e s 算法l p 化的仿真验证研究 于a e s 的加密过程和解密过程,我们也将用伪c 语言代码来描述【1 1 。 2 2 2a e s 的加密过程 a e s 加密运算主要有4 种加密变换,描述如下: 1 位变换s u b b y t e s ( ) 位变换s u b b y t e s ( ) 是一个关于字节的非线性变换,它将状态数组中的每一个 字节非线性的变换为另一字节。位变换s u b b y t e s ( ) 是可逆的。可以将位变换 s u b b y t e s ( ) 对各种可能的变换结果排成一个表,如表2 2 所示。表2 2 称为a e s 的 字节代替表或s 盒( s b o x ) 。我们可以通过查表得到s u b b y t e s ( ) 的输出。如果状态 中的一个字节为x y ,则s 盒中第x 行第y 列的字节就是s u b b y t e s ( ) 的输出。例如: 假如s 1 1 = 5 3 ,则s u b b y t e s ( ) 的输出为s 盒中的第5 行第3 列的字节e d 【1 8 m 】。 h e x 0123456789baf 06 37 c7 77 b26 b6 fc 53 0o i72 bf ed 7 a b 7 s le 2c 97 df a5 94 7o订d 4a 2a f9 ca 47 2c 口 2b 7f d9 32 63 63 ff 73 4a 5e 5f 17 ld 83 11 5 3o 哇c 72 3c 31 89 60 59 a0 71 2e oe 2e b2 7b 27 5 t0 98 32 c1 al bg e5 aa 0s 23 bd 5b 32 9e 32 f8 4 55 3 d 1 o o e d 2 0f cb 1 5 b 6 a曲b e3 9 4 a4 c s 8c f 6d 0e ff b4 34 d3 38 s4 sf 90 27 s o3 c9 fa 8 7 5 ia 34 08 f9 29 i l3 bf 5b cb 6d a2 l1 0f ff 3d 2 8c d0 c1 35 f9 74 41 7c t a 7 7 e3 d6 4s d1 9 7 3 96 08 14 f d c2 2 2 a 9 a 8 84 6 b 8 1 4 d e s o b曲 e 03 2 3 a 0 a哇90 62 4s cc 2 d 3 6 29 l9 5e 47 9 be 7 c 8 3 7 6 de d d s 4 e矗96 c5 6f t6 57 矗0 8 b a7 82 52 el ca 6b 40 6e 日d d7 41 f4 bb d9 b8 a d7 03 eb 5 6 6 哇80 3 f 6 0 ee 1 3 5 s 7b 98 5c 11 d 9 e e 1 f 89 9 1 1 e 9d 9 8 e 9 哇璺b 1 e e 7e 95 s2 b d f8 ca 1 a 9 o db fe 6 26 84 19 92 do fb 0s 4b b1 6 变换过程可以用下图2 2 表示: 表2 2s - b 表 图2 2s l l b b ”e ) 运算示意图 第二章a e s 数据加密标准的简介 2 行移位变换s l l i f t r o w s ( ) 行移位变换s

温馨提示

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

评论

0/150

提交评论