(通信与信息系统专业论文)aes协处理器ip核的设计与实现.pdf_第1页
(通信与信息系统专业论文)aes协处理器ip核的设计与实现.pdf_第2页
(通信与信息系统专业论文)aes协处理器ip核的设计与实现.pdf_第3页
(通信与信息系统专业论文)aes协处理器ip核的设计与实现.pdf_第4页
(通信与信息系统专业论文)aes协处理器ip核的设计与实现.pdf_第5页
已阅读5页,还剩50页未读 继续免费阅读

(通信与信息系统专业论文)aes协处理器ip核的设计与实现.pdf.pdf 免费下载

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

文档简介

摘要 本文基于“高性能网络处理器技术研究项目,在设计网络处理器时,为了 使其在数据加密解密方面获得更好的性能,设计了专门的加密解密硬件单元来对 数据进行安全处理。 论文选取a e s 算法作为网络处理器芯片内部的加密解密算法,首先阐述了 a e s 算法的数学知识,接着详细描述了算法流程,包括加密算法流程、解密算法 流程和密钥扩展方案。在此基础上对a e s 算法的i p 核进行硬件设计,将其划分 为加密、解密和密钥扩展三个部分,并逐步将功能细化,设计了轮结构中s 盒置 换、行移位、列混淆和轮密钥加等各个变换和轮密钥生成等模块。采用v e r i l o gh d l 硬件描述语言实现了加密解密单元内的各个功能模块。在设计中使用查表法解决 了一些复杂数学运算结构影响速度的问题,并改善了列混淆的运算结构,从而大 大减少了算法所占资源。 在仿真与验证的过程中,首先构建了与处理器相结合的系统测试环境,编写 数据聚合模块、异步f i f o 缓存模块和输入控制模块,用开源的i p 核o p e n r i s e l 2 0 0 向该a e s 单元发送测试数据,完成对该单元的系统级测试。然后将i p 核设计成 串行结构,利用r i j n d a e l 提供的测试向量集对i p 核进行了向量集覆盖测试。测试 结果验证了加密解密功能正确性。 关键词:a e si p 核加密解密密钥 a b s t r a c t t l l i sp a p e ri ss u p p o r t e db yt h ep r e - r e s e a r c hp r o j e c t ”r e s e a r c hi nt e c h n o l o g yo f h i g l lp e r f o r m a n c en e t w o r kp r o c e s s o r n oi no r d e rt oa c h i e v eh i g h e rp e r f o r m a n c e ,t h e a u t h o rd e s i g n e dt h es p e c i a le n c r y p t i o n d e c r y p t i o nm o d u l et op r o c e s st h ed a t a i nt h i sp a p e r ,t h ea u t h o rc h o s et h ea e s a l g o r i t h ma st h ee n c r y p t i o n d e c r y p t i o n a l g o r i t h mw h i c h w o u l db er e a l i z e di nt h ec h i po fn e t w o r kp r o c e s s o r , f i r s t l ye l a b o r a t e d s o m em a t h e m a t i c sk n o w l e d g ef o rs t u d y i n ga e sa l g o r i t h m s e c o n d l y ,t h ea e s a l g o r i t h mw a sd e s c r i b e di n t h i sp a p e r , i n c l u d i n gi t se n c r y p t i o n 、d e c r y p t i o na n d k e y e x p a n s i o n t h e n t h eh a r d w a r ed e s i g nw a sc a r r i e d t h r o u g h t h e w h o l e a r c h i t e c t u r e 、t h ef u n c t i o no ft h em o d u l ea n dt h er e l a t i o n s h i pb e t w e e nt h em o d u l e sw e r e r e s e a r c h e d t h ea e sm o d u l eh a sb e e nd i v i d e di n t ot h r e ep a r t s :e n c r y p t i o n 、d e c r y p t i o n a n dk e y e x p a n s i o n t h es b o x 、s h i f t r o w 、m i x c o l u m na n da d d r o u n d k e yw e r ea l s o d e s i g n e d t h r o u g ht h eo p t i m i z a t i o n , t h ep r o b l e mt h a ts o m ec o m p l i c a t e dm a t h e m a t i c s o p e r a t i o nt a k e sn e g a t i v ea f f e c to nt h es p e e do fd a t ap r o c e s sh a db e e nr e s o l v e d t h e s t r u c t u r eo fm i x c o l u m na l s oh a db e e no p t i m i z e ds ot h a tt h er e s o u r c e su s e db y p o l y n o m i a lm u l t i p l i c a t i o nw e r er e d u c e dg r e a t l y i nt h ep r o c e s so fs i m u l a t i o na n d v e r i f i c a t i o n ,t h ea u t h o rr e s e a r c h e do nt h ei pc o r e o ft h eo p e n r i s cl2 0 0 ,d e s i g n e dt h ed a t a c o m b i nm o d u l ea n dt h ea s y n c h r o n o u sf i f o m o d u l e ,s e tu pav e r i f i c a t i o ns y s t e mt os i m u l a t ea n dv e r i f i yt h er e s u l t t h e nt h ea u t h o r u s e dt h ev e e t o rs p a c es u p p l i e db yr i j n d a e l ,m a d et h ea e si pc o r eas e r i a ls t r u c t u r e w h i c hc a ne n c r y p tt h ei n p u td a t aa n dt h e nd e c r y p tt h ed a t ao u t p u tb ye n c r y p t i o n t h i s w o r kh a sp r o v e dt h ec o r r e c t n e s so ft h ee n c r y p t i o n d e c r y p t i o na n de s t a b l i s h e dt h e f o u n d a t i o nf o rt h ef u r t h e rr e s e a r c hi nh a r d w a r ed e s i g ni ne n c r y p t i o n d e c r y p t i o ni nt h e c h i po f n e t w o r kp r o c e s s o r k e y w o r d :a e s i pc o r e e n c r y p t o r d e c r y p t o rc i p h e rk e y 创新性声明 本人声明所呈交的论文是我个人在导师的指导下进行的研究工作及所取得的 研究成果尽我所知,除了文中特别加以标注和致谢巾所罗列的内容以外,论文 中不包含其它人已经发表或撰写过的研究成果;也不包含为获得西安电子科技大 学或其它教育机构的学位或证书而使用过的材料。与我一同工作的同志所做的任 何贡献均已在论文中做了明确的说明并表示了谢意 申请学位论文与资料若有不实之处,本人承担一切相关责任。 来人签名: 熬鱼 关于论文使用授权的说明 本人完全了解西安电子科技大学有关保留和使用学位论文的规定即:研究 生在校攻读学位期间论文工作的知识产权单位属西安电子科技大学。本人保证毕 业离校后,发表论文或使用论文工作成果时署名单位仍然为西安电子科技大学。 学校有权保留送交论文的复印件,允许查阅和借阅论文:学校可以公布论文的全 部或部分内容,可以允许采用影印、缩印、或其它复制手段保存论文。( 保密的论 文在解密后遵守此规定) 本学位论文属于保密,在年解密后适用本授权书。 日期:圣! ! z :! :竺 第一章绪论 第一章绪论 1 1 课题研究背景和意义 i n t e m e t 是公众网,要在网上传递一项秘密非常不可靠,通信信息可能会被别 人窃取。随着i n t e m e t 的快速扩展,人们对它的依赖程度也越来越高。信息可以 在i n t e r a c t 网上便宜而方便的传输,许多应用直接在网上进行,如公司通过i n t e r a c t 销售产品和提供服务、客户使用信用卡在i n t e r a c t 上购物、通过i n t e r a c t 在办事机 构之间传输的电子邮件、通过i n t e r n e t 传输的敏感的公司内部资料等,这时通信 的安全是一个最基本的前提。对于信用卡这样的敏感信息来说,它们必须得到有 效的保护。而电子邮件通过i n t e m e t 在办事机构之间传输,敏感的公司内部资料 也可能通过i n t e m e t 传输,机密的和非机密的信息都以同一种方式传输,这对保 密来说,其中的不安全因素是显而易见的。当然,i n t e m e t 的安全问题并不仅仅涉 及做生意的公司,每个人都需要,而且有权利保护自己的隐私。 于是如何保证i n t e m e t 上信息传输的安全,成为网络技术研究的热点问题。 目前来说,i n t e m e t 传输的信息安全技术有很多,但是不管是i p s e c ,还是v p n 等 信息安全技术,任何一种方法都离不开对传输数据的加密。通过对传输数据进行 加密,使得在网络上传输的数据即使被他人窃取,也不能被还原利用,造成损失。 所以说,保证公众网上信息安全的首要措施就是对数据进行加密。 另外,路由器作为内外网之间数据通信的核心设备,其本身的安全性能的重 要性不言而喻,强化路由器本身的安全防范往往可以收到事半功倍的作用,因此 基于这一理念而出现的新型网络设备安全路由器便成为了网络安全产业中的 一支尖兵。作为网络转接设备的路由器,需要不断接收与发送路由信息及i p 数据 报,而路由信息与敏感i p 数据报的安全正是网络安全防护的核心。针对网络潜在 的各种安全威胁,安全路由器在实现常规路由功能的基础上,在设计时强化了数 据传输加密这一关键技术问题,增强了信息保护与数据加密性能,能够有效检测 及防范各类攻击事件的发生。具备i p s e c ( i ps e c u r i t y ) 协议支持、能够有效利用 i p s e c 保证数据传输机密性与完整性或能够借助其它途径强化本身安全性能的路 由器,将成为保证在公众网上安全通信的关键。 在保证数据传输的安全方面,目前在i p s e e 中主要的对称加密算法还是d e s , 由于该算法的密钥强度只有5 6 位,随着计算机技术和破解密技术的发展,在1 9 9 7 年被志愿者联络7 0 0 0 0 多个系统用了9 6 天攻破。在最近有2 l 小时破解d e s 加密 算法的报道。说明d e s 算法已经不能满足安全需求了。n i s t 于2 0 0 0 年1 0 月2 日选r i j n d a e l 算法作为a e s 算法。然而对于1 2 8 位分组的a e s 算法,如何在路 2a e s 协处理器1 p 核的设计与实现 由器中快速实现,是目前开发安全路由器的一个需要突破的问题。 安全路由器的核心芯片是网络处理器,这种专用的处理器芯片不仅能进行快 速的路由交换,还可以对不同的网络业务进行复杂的智能化处理,国外大公司已 经有了成熟的产品,像m o t o r o l a 的p o w e r q u i c ci i 通信处理器芯片和i n t e l 公司 的i x p 网络处理器芯片都是杰出的代表。网络处理器在业务处理速度和应用灵活 性之间取得了较好的平衡,在新一代的综合业务网中日益得到重视和广泛应用。 但目前国内在网络处理器的研发和涉及上同国外还有一定的差距,仅仅是基于国 外前期网络处理器开发板和芯片从事应用开发工作,并没有设计和制造网络处理 器:卷片的能力。为此我校将“高性能网络处理器技术研究 作为未来几年的重点 研究项目,力求在不久的将来推出一款性能优良的面向网络业务的专用处理器。 笔者的论文和工作内容正是基于该项目背景而开展的。这款高性能网络处理 器的构架主要采用s o c 的集成设计思想,其内部集成了多种专用处理模块和多个 特殊功能的处理器,包括控制平面上的用于整个芯片的控制和高层次网络协议处 理的a r m 核心处理器,还有数据平面上的专门用于处理数据业务的多块被称为 微引擎的处理器。 对加密解密处理而言,现有的国外网络处理器主要采用了两种方式:一是利 用微引擎的可编程性,用微码编程实现加密解密的功能,这种方式比传统的用c 语言实现的加密解密速度要快,但加密解密复杂的数学运算会使微引擎的任务比 较繁重,从而影响芯片的性能;二是外挂专用的加密解密芯片,但这样往往需要 对网络处理器外围接口进行设计,增加了安全路由器系统的复杂性。 为此,笔者研究了加密解密算法,在算法的基础上用硬件设计了一个专用的 可重用的a e s 加密解密i p 核,从而可以在设计的芯片内部集成此模块。使用硬 件可以以线速处理加密解密,这在开发高性能网络处理器时,提升其在数据加密 解密方面的性能有很重要的意义。 1 2 数据加密算法的发展过程 1 2 1 数据加密标准d e s 1 9 7 2 年,国家标准局( n b s ) 拟定了一个旨在保护计算机和通信数据的计划,开 发一个单独的标准密码算法,1 9 7 3 年公开征集算法,1 9 7 4 年第二次公开征集,i b m 的l u c i f e r 的变形当选,1 9 7 6 年l1 月宣布成为联邦标准d e s ,随后投入使用。不久 d e s 的应用范围迅速扩大到涉及美国以外的公司,甚至某些美国的军事部门也使 用了d e s 。d e s 是世界上第一个公认的实用分组密码算法标准。迄今为止,在针 对d e s 的攻击中最有效的方法还是穷举,遍历密钥空问。 第一章绪论3 由于计算机硬件的速度越来越快,d e s 密钥长度太短的缺陷就显露了出来。 最终能在合理的时间内完成对5 6 位密钥的强力攻击。1 9 8 7 年宣布d e s 不安全, 但由于商业上己广泛使用,且没有合适的方案替代,所以还是继续使用。进入上 世纪九十年代后,另一种由d e s 衍生出来的算法三重d e s ,被广泛使用。但是 它的安全性并不意味着建立在1 6 8 位的密钥之上,研究表明,可以将其转化为对 1 0 8 位密钥的攻击。最重要的是,三重d e s 的加密和解密时间消耗较大,不能很 好的适用飞速增长的实时信息加密需求。2 0 0 0 年,原设计寿命1 0 年左右的d e s 己使用2 3 年,单重己攻击成功。 1 2 2 高级加密标准a e s l 3 1 9 9 7 年1 月2 日,美国国家标准和技术研究所( n i s t ) 【8 i 正式宣布启动高级加 密标准( a e s ) 的开发研究工作,并于同年9 月1 2 日正式发出了征集算法的公告。n i s t 的目标是确定一种保护敏感信息的、公开的、免费的并且全球通用的算法作为 a e s ,以弥补d e s 退出后,数据加密标准留下的空缺。在征集公告中,n i s t 对算 法作了最低要求:算法必须是对称密钥体制的分组密码,并且要支持1 2 8 位的分组 长度和1 2 8 、1 9 2 、2 5 6 位的密钥长度。 1 9 9 8 年8 月2 0 日,n i s t 召开了第一次a e s 候选会议1 9 l ,在会议上宣布了1 5 个 a e s 候选算法,并恳请公众对这1 5 个算法进行评估。经过一年时间的评估,n i s t 于1 9 9 9 年8 月又召开了第二次候选会议,在这次会议上,n i s t 宣布从1 5 个候选算 法中选出了5 个候选算法参加最后的决赛,并再次恳请公众对这5 个候选算法进行 评估,并规定评估于2 0 0 0 年5 月2 5 同结束。为了更好的选出一种候选算法作为a e s , n i s t 在评估正式结束前的一个多月又召开了第三次a e s 候选会议,在这次会议 上,对各种评估结果作了详细的分析,为a e s 算法的确定提供了详尽的材料。 2 0 0 0 年1 0 月2 日,n i s t 宣布采用r i j n d a e l 算法作为a e s ,此后n i s t 授权 联邦信息处理标准出版社为a e s 制定了标准草案,用以征集公众的评议,随后在 公众评议的基础上对草案进行修改,于2 0 0 1 年1 1 月2 6 日发布了正式的1 9 7 号标 准a e s 标准,并指出标准生效的具体时间为2 0 0 2 年5 月2 6 日,至此经历数年 的a e s 开发研究才大功告成。 1 3 1 算法研究 1 3 高级加密标准研究现状 目前对高级加密标准算法【7 1 的研究主要集中在三个方面:设计原理、安全性能 分析和统计性能分析。 4 a e s 协处理器l p 核的设计与实现 设计原理方面主要研究算法在设计时所遵循的原则、算法采用的整体结构以 及各组成部分的数学基础和性能。 安全性能研究主要集中在分析抵抗现有己知密码攻击方法上,主要包括强力 攻击、差分密码分析、线性密码分析、专用攻击和插值攻击。目前对差分密码分 析和线性密码分析研究的比较深入,对专用攻击主要集中在基本攻击原理上,对 插值攻击的研究主要集中在寻找算法的代数表示。 统计性能主要是研究算法随机化数据的能力,目前有关r i j n d a e l 算法的统计 性能方面的研究还较少,可以见到的统计测试在测试项目的选择和测试数据的构 造上也不尽相同,大多测试都是基于n i s t 统计测试工具包进行。 1 3 2 硬件实现研究 高级加密标准生效才三年多,因此现在正处于新i h5 b 1 1 密标准更替时期,目前 所见的a e s 算法的实现大多是测试性或实验性的,还没有太多正式的商业产品。 就硬件实现而言,国外( 大部分是美国) 的一些机构和公司推出了供测试的a e s 核, 处于正式生产前的实验阶段,而国内受有关条件的限制,对a e s 的研究主要集中 在算法本身上,有关硬件实现的报到不多。 ( 1 ) 一些大学或研究机构提供的a e s 核 目前部分大学和研究机构提供了a e s 核1 1 7 l ,下面以美国乔治梅森大学( g m u ) 的a e s 核为代表介绍当前的研究现状。g m u 大学所提供的a e s 核具有以下性能: 支持n i s t 所要求的三种不同密钥长度;加密和解密功能采用了资源共享;密钥调 度模块与加解密模块并行进行;在有限的电路面积上具有很高的速度。并且外部 接口简单,如图1 1 ,可应用于各种安全协议,如s s l 、v p n 、i p s e c 等。 图1 1g m u 大学a e s 核外部接口 第一章绪论 5 ( 2 ) 一些公司所提供的a e s 核 除了一些大学和研究机构外,某些公司也推出a e s 核以供测试,如h e l i o n 公司,o c e a n l o g i c 公司等。他们在性能上大体相似,只是外部接口上不同。h e l i c o n 公司的a e s 核外部接口如图1 2 所示: ” i 。h e l i c o na e s :d e c r y p t i o nc o r e -| 1 4 1i p 核的简介 图1 2h e l i c o n 公司的a e s 核外部接口 1 4i p 核f 5 l o u t1 2 舡m h s t a t u s 在一般含义下,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 单元库支持,所以系统设计者可以引入外部i p 产品,再与自己的优 势相结合,完成具有自己知识产权的系统设计。 设计复用有多方面的益处,其中最主要最明显的就是在a s i c 的开发中可以 充分利用己有的开发成果,消除重复劳动,避免重新开发可能引入的错误,从而 缩短系统芯片的设计周期,提高系统芯片的设计生产率,并由此而降低芯片生产 的代价。另外,设计复用还有其它一些优点,如:提高设计质量、推动标准化工 作、支持原型开发等等。 一般来说,i p 是一个已经完成了设计和验证的硅电路模块,通常的规模在 5 0 0 0 门以上,可以用它在半导体芯片上构造更大更复杂的应用。在本论文中则采 用了i pc o r e 的叫法。 i p 核可以是软核、固核或硬核。硬核是目前使用得最多的,是针对某个特定 工艺的一套物理版图,已经过样品电路的验证。硬核的优点是它的高速度和安全 性,但由于依赖特定的工艺,所以缺少灵活性。软核指能在不同工艺间转移的网 表,比硬核灵活,但在不同工艺上实现时缺乏延迟的可预测性,而且难以保密。 固核则介于硬核和软核之间,是一套带有物理布局信息的网表。 6a e s 协处理器i p 核的设计与实现 软核是一个仅仅以软件形式存在的可综合的硬件描述语言h d l 描述,因而 它可以重新配置,映射到不同的半导体工艺上,灵活性最大。但是这种灵活性的 代价是:无法获得目标电路的性能和面积的保证。在目前的综合工具的水平下, 可综合软核在寄存器传输级r t l ( r e g i s t e rt r a n s f e rl e v e l ) 完成描述。 固核是可以直接进行布局布线的结构级或门级网表。提供固核的目的是可以 在确定的工艺上估计目标电路的性能,有一定的灵活性。 软核和固核依赖于特定的e d a 工具和系统集成中的数据格式,而硬核则包 括了版图和时序信息,如果工艺上兼容,它可以直接进行生产,但是很难移植到 其它工艺。对于大多数硬核( 如:处理器和存储器) 而言,都必须提供功能测试向 量、a t p g ( a u t ot e s tp a t t e ng e n e r a t i o n ) 或b i s t ( b u i l di ns e l ft e s t ) 。 从国外的i p 设计和使用情况看,i p 核在a s i c 和f p g a 中使用较多。f p g a 中使用的是规模不大的核设计,如:a l t e r a 的6 5 0 2 八位微处理器和x i l i n x 的p c i 核。它们通常不包括宽位或高性能的p c i ,a t m 接口和微处理器。a l t e r a 发布 了系统可编程门阵歹i j ( s p g a ) ,它把f p g a 和用户a s i c 模块结合起来。典型的用 户a s i c 模块有p c i 接口、路由器和d m a 控制器。a s i c 核包括两种类型: 工艺无关核,如:l s il o g i c 、i b mm i c r o e l e e t r o n i c s 、m o t o r o l af l e x w a r e 和l u c e n t t e c h n o l o g i e s ,它们提供的核面向多种应用:处理器、d s p 、接1 2 和模拟电路。 工艺相关核,如:d i g i t a ld e s i g n 的m i d i 核、h i t a c h i 和p a l m c h i p 的m p e g 核;v i r a g el o g i c 和a r t i s a n 的专用存储器核;v l s ic o r e s 和a s i ci n t e r n a t i o n a l 的 加密核;e u r e k a 、v i r t u r a lc h i p s 、o k is e m i c o n d u c t o r 、s a n d 和s i e r r am i c r o e l e c t r o n i c s 则致力于网络接口,比如:p c i 、u s b 、a t m 和以太网接口;b u t t e r f l y 、i n t e r n a t i o n a l s i l i c o ns y s t e m s 、a n a l o gd e v i c e s 和d s pg r o u p 则专攻d s p 核。 这一节主要介绍了论文研究所应用的主要技术i p 技术。阐述了在制造工 艺迅速发展、集成规模f i 益扩大的形势下,应用l p 技术进行集成电路设计是当今 集成电路设计的最新潮流和最先进的方法。只有充分应用i p 技术,才能解决制造 工艺提供的高集成度与设计的低效率间的矛盾。 1 4 2i p 核的验证方法 设计验证一直以来都是设计中最困难和最有挑战性的课题之一,而面向可重 用设计的软核又提出了一些更新的挑战: ( 1 )由于i p 核很有可能用于一些关键性的应用,如太空飞船等,因此对 i p 核的验证要求达到消除i p 核中所有错误的程度; ( 2 )对于所有合理配置和正确参数,要求i p 和绝对正常工作; ( 3 )由于i p 核作为单独模块本身和整体设计中的一部分都要求进行验证, 第一章绪论 7 所以i p 核级的测试平台和测试集对于设计团队中的其他成员必须是 可重用的; ( 4 )由于i p 核很有可能会被重新设计,所以要求i p 核的测试平台和测试 集对于其他设计团队必须是可重用的; ( 5 )由于测试平台中的一些部分可能在系统测试中会被使用,因此测试平 台必须与系统测试中所使用的验证工具保持兼容。 i p 核的验证由三个阶段构成:子模块的验证,i p 核的验证和建立原型。 i p 核的一种定义是,可以作为可重用设计单元的被封装的模块及其验证环 境,在通常情况下,构成i p 核的子模块验证环境在以后的项目或者后续版本中不 会再继续保留。 在进行i p 核验证时,使用正确的验证策略应该可以得到非常高的测试覆盖 率,例如在所有可能的配置情况下,保证i p 核的所有功能完全正确。为了达到这 种覆盖率,就需要投入很大的精力建立完善的验证测试环境和完备的测试向量, 同时需要一些验证工具和验证技巧,例如,总线功能模型、总线监控器、高层验 证描述语言、自动回归测试、代码覆盖工具等。验证环境就是由以上这些部件所 构成的,并且当设计修改后这个测试环境可以进行重复使用。验证环境的一部分 将随着i p 核一起交付给用户,以方便用户验证特定的功能是否正确,比如总线功 能模型和总线监控器就有可能与i p 核一起交付给用户,用来搭建芯片级验证环 境。 子模块验证的目标就是要达到足够高的功能覆盖率,使得子模块集成到i p 核 中的时候不会带来任何子模块本身的功能错误。任何情况下,多个子模块的集成 都是一件非常困难的事情,而且非常浪费时间。如果子模块本身有一些功能错误, 那么整个i p 核的验证将变得非常困难,非常浪费时间。但是,提高子模块的验证 覆盖率是与子模块的设计密切相关的。对于一些子模块,用一些简单的h d l 测 试平台就可以达到很高的功能覆盖率,但是对于另外一些设计,除非建立一个验 证环境并且完成与其接口的其他子模块的设计,否则很难得到满意的功能覆盖率。 因此,对于这些难以验证的子模块,就非常有必要先用简单的测试平台验证基本 功能,同时详细检查子模块的接口模型,最后在i p 核验证的时候对子模块进行全 面详细的验证。 一般情况下,对于子模块的代码,由于容易进行观测和控制,因此子模块的 错误比起i p 核的错误更加容易发现和修正。完善的子模块验证有助于加快整个i p 核的验证过程。 在验证的每一个阶段,整个设计团队除了需要决定用什么类型的测试平台进 行测试,还要决定用哪种验证工具进行验证测试。 基本的验证测试类型有:兼容性测试、边界测试、随机测试、应用程序测试、 8a e s 协处理器i p 核的设计与实现 回归测试、特性检查等。 目前比较流行的验证工具有:仿真工具、硬件验证语言( h a r d w a r ev e r i f i c a t i o n l a n g u a g e ) 、可验证知识产权核( v e r i f i a b l ei p ) 、代码覆盖率工具、硬件建模、硬件 仿真加速器、设计原型等。 1 5 论文工作及内容安排 本章为绪论,主要讨论了课题研究的背景和意义,a e s 加密解密算法的产生 背景、发展概况和研究现状;i p 核的介绍与其验证方法;论文的研究内容和结构 安排。 第二章主要介绍了a e s 的基本数学原理与加密解密流程,为算法提出了理论 支持,对算法的细节进行了详细的介绍。 第三章结合实际项目的需求,详细描述了a e s 加密解密协处理器i p 核的设 计方法,并构造了一个带有c p u 的验证系统对a e s 协处理器的功能进行验证。 第四章针对第三章整体设计的功能模块,进一步分层次的在m o d d s i m 中进 行软件仿真,并对仿真结果进行详细分析,进而验证功能的正确性。 最后对本论文所做的工作做一个总结性的说明,提出工作中存在的不足以及 需要如何进一步完善:另外也对下一步的工作进行理论上的展望,给出一个延续 的方向和目标。 第二章a e s 算法综述 9 第二章a e s 算法综述 n i s t 己经选择a e s ( 高级加密标准) 替代d e s ( 数据加密标准) 。竞争是公开的, 并请求了公众在每一步过程中参与和评论。a e s 成为美国政府指定采用的加密算 法,将保护敏感( 非保密) 的政府信息,同样也将被商业和金融机构广泛采用。i e t f i p s e c 工作组己经把a e s 用作i p s e ce s p 的默认密码算法。a e s 算法有以下特点: + 安全( s e c u r i t y ) ; + 非保密的( u n c l a s s i f i e d ) : + 公开了的( p u b l i c l yd i s c l o s e d ) ; + 在全球可以以自由版权获得的; + 能够处理至少1 2 8 比特大小的块; + 能够处理1 2 8 、1 9 2 、和2 5 6 比特大小的密钥; + 能在各种软件和硬件平台满足计算效率和内存要求,包括智能卡; + 灵活、简单、且易于实现。 2 0 0 0 年lo 月2 日,n i s t 宣布采用r i j n d a e l 算法作为a e s ,r i j n d a e l 算法是一个 可变数据块长和可变密钥长的分组迭代加密算法,数据块长和密钥长可分别为 1 2 8 ,1 9 2 或2 5 6 1 :1 , 特,但为满足a e s 的要求,分组长度为1 2 8 比特,密钥长度为1 2 8 , 1 9 2 或2 5 6 比特。数据块要经过多次数据转换操作,每一次转换操作产生一个中间 结果,这个中间结果叫做状态。状态可表示为二维字节数组,它有四行,n b 列, 且n b 等于数据块长除3 2 ,在标准a e s 里n b = 4 。密钥也可类似地表示为二维字节 数组,它有四行,n k 列,且n k 等于密钥块长除3 2 。算法转换的圈数n r 由n b 和 n k 共同决定,有等式n r = m a x ( n k ,n b ) + 6 。 a e s 采用的是替代置换网络。每一圈由3 层组成: ( 1 ) 非线性层:进行b y t e s u b 变换,由1 6 个s 盒并置而成,起到混淆的作用: ( 2 ) 线性混合层:进行s h i f t r o w 运算和m i x c o l u m n 运算以确保多轮之上的 高度扩散; ( 3 ) 密钥加层:子密钥简单的异或到中间状态上。 2 1 1 有限域g f ( 2 8 ) 2 1 r i j n d a e l 算法的数学基础 一个有限域1 6 1 中的元素可以用多种不同的方式表示。对于任意素数的方幕q , 只有唯一一个有限域o f ( q ) ,因此,g f ( 2 8 ) 的所有表示是同构的。尽管有这一等价 性,但不同的表示方法对o f ( 2 8 ) 上的运算复杂度是有影响的。此处采用传统的多 1 0a e s 协处理器i p 核的设计与实现 项式表示法。 由b 7 b 6 b 5 b 4 b 3 b e b l b o 构成的一个字节b 看成系数在 0 ,1 中的多项式: b 7 x 7 + b 6 x 6 + b s x 5 + b 4 x 4 + b 3 x 3 + b 2 x 2 + b l x + b o 例如:十六进制数“5 7 对应的二进制数为0 1 0 1 0 1 1 l 看作一个字节,对应的多项 式为x 6 + x 4 + x 2 + x + l 。 在多项式表示中,g f ( 2 8 ) 上的两个元素的和仍然是一个次数不超过7 的多项式, 其系数是原来两个元素对应系数的模2 j i l ( 比特异或) 。要计算g f ( 2 8 ) 上的乘法, 必须先确定一个g f ( 2 8 ) 上的8 次不可约多项式,g f ( 2 8 ) 上两个元素的乘积,就是这 两个多项式的乘积,再对此8 次不可约多项式求模。对于r i j n d a e l 密码,这个8 次不 可约多项式确定为: m ( x ) = - x 8 + x 4 + x 3 + x + 1 式( 2 1 ) 这个8 次不可约多项式的十六进制表示为11 b ,二进制表示为9 l t 特1 0 0 0 11 0 11 。 以下是一个乘法的例子: ( x 6 + x 4 + x 2 + x + 1 ) ( x 7 + x + 1 ) = ) 【7 + x 6 + l ( m o dm ( x ) )式( 2 2 ) 或者5 7 8 3 = c 1 以上的运算虽然不是标准的按字节的运算,但也是比较简单的计算部件。另 外,对于u eg f ( 2 8 ) ,u 0 ,计算u 的乘法逆元v 可直接采用o f ( 2 ) 上多项式的欧 几里德扩充算法得: 蠡,x ) 双x ) + m ( x ) h ( x ) = 1 式( 2 3 ) 其中u - 坟x ) ,v = g ( x ) 。即f i x ) * g ( x ) = l ( m o dm ( x ) ) 或者u 母v = l 。 2 1 2 系数在g f ( 2 8 ) 上的多项式 类似的,4 个字节的向量可以表示为系数在g f ( 2 8 ) 上的次数小于4 的多项式。 多项式的加法就是对应系数相加:换句话说,多项式的加法就是4 字节向量的逐比 特异或。我们规定多项式的乘法运算必须要取模m ( x ) + l ,这样使得次数小于4 的多项式的乘积仍然是一个次数小于4 的多项式。即 ( a 3 x 3 + a 2 x 2 + a l x + a o ) ( b 3 x 3 + b 2 x 2 + b , x + b o ) = d 3 x 3 + d 2 x 2 + d l x + d o式( 2 4 ) 其中d o = a o b o + a 3 b l + a 2 b 2 + a l b 3 ; d l = a l b o + a o b l + a 3 b e + a 2 6 3 ; d e = a 2 b o + a l b l + a o b 2 + a 3 b 3 ; d 3 = a 3 b o + a 2 b l 十a l t u + a o b 3 我们可以将上述计算表示为 第二章a e s 算法综述 r至=r至至圣三r至1 式。2 5 , a 2a 1 l a 3a 2l l a oa 3i i a ia ol j 在g f ( 2 8 ) 上可逆 证明如下:a 3 x 3 + a 2 x 2 + a l x + a o 是模x 4 + 1 可逆的,当且仅当存在多项式 h 3 x 3 + h 2 x 2 + h l x + h o 使得 ( a 3 x 3 + a 2 x 2 + a l x + a o ) ( h 3 x 3 + h 2 x 2 + h l x + h o ) = l ( m o d x 4 + 1 ) 因此有 ( a 3 x 3 + a 2 x 2 + a l x + a o ) ( h 2 x 3 + h l x 2 + h o x + h 3 ) - - x ( m o dx 4 + o ( a 3 x 3 + a 2 x 2 + a l x + a o ) ( h l x 3 + h o x 2 + h 3 x + h 2 ) - - x 2 ( m o dx 4 + 1 ) ( a 3 x 3 + a 1 2 x 2 + a i x + a o ) ( h o x 3 + h 3 x 2 + h 2 x + h 1 ) - - x 3 ( m o dx 4 + 1 ) 又当且仅当存在多项式h 3 x 3 + h 2 x 2 + h l x + h o 使得 定理得证。 2 2 1r i j n d a e l 算法简述 h 。h ,h :h 。 h 。h oh ,h : h :h h 。h , h ,h 2h 。h 。 2 2r i j n d a e l 算法的设计 式( 2 6 ) 分组加密算法是由一种叫圈变换的函数通过多次迭代构成的,圈变换的构成 包括非线性层、扩散层和密钥调度等元素。这样设计是基于香农提出的设计原则, 即非线性替代与线性混合函数交替进行。这样结合的结果导致来自密码的重要的 o 0 0 l o 0 l 0 0 1 0 0 l 0 0 0 孙 趾 如 跏 趾 籼 跏 孙 如 跏 跏 趾 跏 籼 趾 籼 1 2 a e s 协处理器i p 核的设计与实现 统计特性必须是高度相关的和敏感的类型,即通过混合变换的扩散和混乱产生充 分的混合,使加密后的分组特性分布更均匀。非线性的目标就是通过一个较小的 非线性元素得到一个大的非线性构件。而线性的目标就是使非线性元素取得尽可 能简单。而一个高强度的圈函数就是通过重复这些简单的函数变化,并且在每圈 迭代中,通过密钥调度引入密钥。这样便以简单的运算代价而取得了更大的加密 效果。在a l e s 算法中,也包含非线性结构、线性结构和圈密钥的混合。它是一个 迭代型分组密码,其分组长度和密钥长度都可变,各自可以独立的指定为1 2 8 l g 特、 1 9 2 比特j f n 2 5 6 k l , 特。 r i j n d a e l 规范i m 】与a e s 标准之间的唯一差别,在于各自所支持的分组长度和 密钥长度的范围不同,r i j n d a e l 是具有可变分组长度和可变密钥长度的分组密码算 法,其分组长度均可独立地设定为3 2 比特的任意倍数最小值为1 2 8k g 特,最大值 为2 5 6 k 1 5 特,而a e s 将分组长度固定为1 2 8 比特而且仅支持1 2 8 、1 9 2 或2 5 6 比特长度 的密钥。 r i j n d a e l 密码l l j 】的设计力求满足以下3 条标准: ( 1 ) 能抵抗所有的已知攻击; ( 2 ) 在多个平台上速度快,编码紧凑; ( 3 ) 设计简单。 r i j n d a e l 密码设计的轮函数是由三个不同的可逆一致变换组成的,每一层都 有自己的功能: 线性混合层:确保多轮之上的高度扩散。 非线性层:将具有最优的“最差情形非线性特性的s 盒并行使用。 密钥加层:单轮子密钥简单的异或到中间状态上,实现一次性掩盖。 在第一轮之前,应用了一个初始密钥加层。这一设计的用意很简单,就是为 了使攻击者无法从明文端消去其他计算部件。 为了使加密和解密算法在结构上更加接近,最后一轮的线性混合层与前面各 轮的线性混合层不同。可以证明这种设计不以任何方式提高或降低该密码的安全 性。 2 2 2 加解密的输入输出 a e s 算法的输入输出是1 2 8 比特的序列,可被看做是1 6 个字节的一个一维数 组。加密时j 其输入是一个明文分组和一个密钥,输出是一个密文分组;解密时 输入是一个密文分组和一个密钥,而输出是一个明文分组。a e s 的轮变换的每一 步都作用在中问结果上,我们将该中间结果称为状态( s t a t e ) 。状态被看成一个矩形 的字节数组,该数组共有4 行状态,其中的列数记为n b ,它等于分组长度除以3 2 。 第二章a e s 算法综述 1 3 将明文分组记为 p o p l p 2 p 3 p 4 * n b - i 其中p o 表示第一个字节,p 4 * n b - l 表示明文分组的最后一个字节。类似地,将密文 分组记为 c o o l c 2 c 3 c 4 * n b - ! 将状态记为:蛳,0 i 4 ,o j n b ,式中,a i l j 表示位于第i 行第j 列的字节。 输入字节依此映射到状态字节 a o

温馨提示

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

评论

0/150

提交评论