(计算机应用技术专业论文)aes加密ip软核的研制.pdf_第1页
(计算机应用技术专业论文)aes加密ip软核的研制.pdf_第2页
(计算机应用技术专业论文)aes加密ip软核的研制.pdf_第3页
(计算机应用技术专业论文)aes加密ip软核的研制.pdf_第4页
(计算机应用技术专业论文)aes加密ip软核的研制.pdf_第5页
已阅读5页,还剩51页未读 继续免费阅读

(计算机应用技术专业论文)aes加密ip软核的研制.pdf.pdf 免费下载

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

文档简介

摘要 a e s ( a d v 如c c de n c r y p t i o ns t 柚d a f d ) 高级加密标准是n i s t ( n a t i o n a li n s t i t u t eo f s t 趾d 棚sa n d1 k h n o l o 鳓于2 0 0 1 年公布,用于信息安全领域的数据加解密。钲s 可以用软件或者是硬件来实现,其中硬件实现址蕊具有更高的处理速度,更可靠 的保密性等优点。对于硬件实现a e s 算法的研究,以前的工作主要集中在s b o x , m i x c o i u m n ,k e y e x p a n s i o n 等模块电路的优化和系统架构上。 本文给出了a e s 加密口核的一种完整的r t l ( r e 西s t e rt r a n s f e rl 胛e 1 ) 级实 现。在系统设计的初期,为了对各个模块之间的逻辑关系和时序关系分别有一个 清晰的理解,我们用c + + 语言完成了a e s 加密算法的行为级描述,设计了a e s 加密m 核的有限状态机,并在此基础上进一步给出了墟s 加密口核的外部端口 及其时序关系的一种定义。在系统架构中,系统最大的特点是具有轮问流水线和 轮内流水线的结构,这是为了在总体设计上最大限度提高口核的吞吐量。对于具 体的模块设计,我们在以往工作的基础上,采用了成熟的复合域和5 级流水线的 技术实现s b o x ,这样就避免了大量使用r o m 。并且对k e y e x p a 璐i 进行了7 级 流水线设计,使之与总体架构相互配合。 最后我们完整地实现了一种高速a e s 加密口软核,经过大量的功能验证和时 序分析,证明了我们设计的r t l 代码的正确有效性。在f p g a 上的试验表明:设 计可以轻松运行在1 0 0 m h z 频率以上,最高频率可达到2 0 0 m h z 左右,其实际的 吞吐量最高可达到2 3 0 4 g b p s 。 关键词: e si p 核有限状态机寄存器传输级综合 a b s t l a c t a e s ( a d v a l l c e de n c r y p t i o ns t 卸d 盯d s ) w a sp u b l i s h e db yn i s t 州a t i o n a lh 塔t i t u t e o fs t a i l d a r d sa n dt e c i l n o l o g y ) i n2 0 0 1 ,w h i c he n c r y p tt h ed a t a si nt 1 1 ef i e l d0 f i i l f 0 皿a t i o ns 咖r i t y t h e r c 缸es o f t w a r ca n dh 盯d w a r ej m p l e m e n t a t i o na p p r o a c h e sf o r 山ea e sa 1 9 0 r i t h 1 o ) m p a r c dt os o f i v a r ci m p l e m e n t a t i o n ,删w a r ci m p l e m 如t a t i o 璐 p r o v i d em o r cp h y s i c a ls e c i l r i t y 鹤w e u 笛h i g h e rs p e e d m 柚yw o r l 【sh a v eb e 如d o n e 妣u s0 nt h eo p t i m i z a t i o n0 fs - b o x ,m i x c o l u m n 卸dk e y e x p 卸s i o nm o d u l e ht h i st h e s i s ,a m p l e l er t li i i l p l e m e n 诅t i o no fa e se n c r y p t i o n 口r ci s p r e s e n 刚a tt h eb e 百n n i n go fs y s t c ms “1 i c t u r c ,c + + i su s e di nt 1 1 eb e h a v i o rl e v e lo f a 】巳s 卸df i n j l cs t a t cm a c h i n e0 fj 址强口c o r ci sd e s i 印e dt o 硼d e r s t 锄dc l e a r l yt h e r c l a t i o 璐h i po fl o g i c 柚dt i m i n g b e t 、v c c nt h em o d u l 龉b 笛e do nt h e s e 、v o r k s ,、cd e f m e t h ei op o n sa n di t st i m i i l gr e l a t i s h i po ft h ea e se n a y p t i 口c o r e ht h ep m c c s so f s y s t e ms t m d u r c ,b 髓e d0 ni i l t e h d u n d 卸di n t m - r o u n dp i p e l i n ea r c h i t e c t u r e ,w ep r e s 如t 卸e 伍c i e n th a r d w a r cd e s i 驴t oi n c r c a t h r o u g l l p u tf o rt h ea e si pc o r e d u r i n gt h e m o d u l e sd e s i g t h ej m p l e m e n t a t i o no fs b o xi so p t i m i z e dt oa v o i dt o om a n yr o m u s e db yu s i n g m p o s i t ef i e l da r i t h m e t i c 肌d5p i p e l i n el e v e l t 0w o r kw i t ht h e m o d u l c s ,t b ea d c h j t e c i u r eo f7p i p e l i n el c v e lh a sb c c nu s c di nt h ck e y e x p a 璐i m o d u l e d e s i g n f i n a u y w ef m i s ht h ed e s i 印o fa e ss o f t 口c o r c f u n c t i o nv e 商c a t i 卸dt i m j i l g 卸a l y s i sp r o v et h cd e s i 印o fr t l c o d e si sf e 笛i b l e t c s t i n gi nf p g 八吐”c l o c k 丘e q u e n t 0 f0 u rd e s i 印啪r e a c h1 0 0 m h z 一2 0 0 m h z a e s f t 口c o r ec 卸p e 面加e n c r y p t i o na t ad o c kf r c q u c n c yo f1 8 0 m h za c h i e v i n gat h r u u g h p u to f2 3 0 4 g b p s k e y w o r d s :a e s i pc o m研n s t a t em a c h i n e r e 舀s 由盯i h n s 缸rl e v e l s y n t h e s i s 创新性声明 本人声明所呈交的论文是我个人在导师指导下进行的研究工作及取得的研究 成果。尽我所知,除了文中特别加以标注和致谢中所罗列的内容以外,论文中不 包含其他人已经发表或撰写过的研究成果;也不包含为获得西安电子科技大学或 其它教育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做 的任何贡献均已在论文中做了明确的说明并表示了谢意。 申请学位论文与资料若有不实之处,本人承担一切相关责任。 本人签名:坎瑰l 戈日期2 。7 苫埸 关于论文使用授权的说明 本人完全了解西安电子科技大学有关保留和使用学位论文的规定,即:研究生 在校攻读学位期间论文工作的知识产权单位属西安电子科技大学。本人保证毕业 离校后,发表论文或使用论文工作成果时署名单位仍然为西安电子科技大学。学 校有权保留送交论文的复印件,允许查阅和借阅论文;学校可以公布论文的全部 或部分内容,可以允许采用影印、缩印或其它复制手段保存论文。( 保密的论文在 解密后遵守此规定) 本学位论文属于保密在年解密后适用本授权书。 本人签名: 导师签名: 舢茂 压讯 日期2 一矗2 甥 日期乃印。2 劣 第一章绪论 第一章绪论 1 1 研究背景 随着计算机和通信技术的不断快速发展,用户对信息的安全存储、安全处理 和安全传输的需求越来越迫切,如何保护数据的安全,已经成为人们首要面对的 问题。密码学是保障信息安全的核心技术,应用涉及军事,国防,商贸及人们日 常生活的各个方面。分组密码以其高效率,低开销,实现简单和易于标准化等特 点成为信息与网络安全中实现数据加密、数字签名、认证及密钥管理的核心体制。 在信息安全领域,对信息数据进行加密是一种常用且行之有效的安全措旌。 但近年来随着分布式计算和并行处理技术的发展,5 6 位密钥的d e s ( 数据加密标 准) 已难胜任公用数据加密标准算法。1 9 9 7 年4 月,美国国家标准和技术委员会 n i s t ( n a t i o n a l h s t i t i i t eo f s t 柚d a r d s 卸dt c c h i l o l o g y ) 开始征集先进加密标准( a e s ) 算法。1 9 9 8 年5 月,n i s t 宣布接受1 5 个新的候选算法并提请全世界密码研究界协助 分析这些候选算法,包括对每个算法的安全性和效率特性进行初步检验。 n i s t 考察了这些初步的研究结果,并选定m a r s ,r c 6 ,r i j n d a e l ,s e r p e n t 和 t w o f i s h 5 个算法作为参加决赛的算法。2 0 0 0 年1 0 月2 日,经公众对决赛算法进行更 进一步的分析评论,n i s t 宣布由比利时的j o a nd a e m e n 和v i n c e n tr i j e n 提交的、 由j o a nd a e m e n 设计的名为r i j n d a e l 的密码算法当选为先进加密标准( a e s ) 。a e s 算法是分组迭代密码算法,其分组长度和密钥长度可分别被指定为1 2 8 b i t ,1 9 2 b i t 或2 5 6 b i t 。该算法的主要优点是:设计简单,密钥安装快、需要的内存空间少,在 所有平台上运行良好,支持并行处理,抗己知所有攻击【j j a e s 算法可以应用于很多方面,例如存储介质,邛s c c 协议和w 乙n 等技术 中的数据加密。特别是随着无线局域网( w i a 技术的发展,无限网络安全问题越 来越受到人们的关注。但e e 8 0 2 1 1 协议中包含的有线等效保密( w e p ) 子协议存 在各种各样的安全缺陷,无法保证数据的机密性、完整性和对接入用户实现身分 认证。为了改善其协议的安全性能。正e e 8 0 2 1 1 i 中定义了一种基于a e s 的全新加 密算法,以实施更强大的加密和消息完整性检查【2 】a 1 2a s i c 设计技术 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 ) 即专用集成电路,是指应 2 a e s 加密i p 软核的研制 特定用户要求和特定电子系统的需要而设计、制造的集成电路。a s i c 设计主要有 全定制( f u l lc u s t o m ) 设计方法和半定制( s e m i c u s t 伽) 设计方法。半定制设 计又可分为门阵列设计、标准单元设计、可编程逻辑设计等等。全定制方法是完 全由设计师根据工艺,以尽可能高的速度和尽可能小的面积以及完全满意的封装、 独立地进行芯片设计。这种方法虽然灵活性高,而且可以达到最优的设计性能, 但是需要花费大量的时间与人力来进行人工的布局布线,而且一旦需要修改内部 设计,将不得不影响到其它部分的布局。所以,它的设计成本相对较高,适合于 大批量的a s i c 芯片设计,如存储芯片的设计等等。相比之下,:半定制方法是一种 基于库元件的约束性设计。约束的主要目的是简化设计、缩短设计周期,并提高 芯片的成品率。它更多地利用了e d a 系统来完成布局布线等工作,可以大大地减 少设计工程师的工作量,因此它比较适合于小规模设计生产和实验。 与传统的电路设计方法相比,a s i c 设计具有如下优点:用a s i c 来设计和改 造电子产品可以大幅度地减小印刷电路板的面积和接插件,降低装配和调试费用, 从而降低产品的综合成本。提高产品的可靠性。采用a s i c 后,可以大幅度减少 焊点和接插件数目,系统的可靠性可以大幅度提高。提高产品的保密程度和竞 争能力,维护设计者i p 权力。降低电子产品的功耗。由于a s i c 内部电路尺寸 很小,互连线短、分布电容小,驱动电路的功耗可以大大降低;另外由于芯片内 部受外界干扰很小,可以使用比较低的工作电压以降低功耗。提高电子产品的 工作速度。a s i c 芯片内部很短的互连线能大大缩短延迟时间,且芯片内部不易受 外界干扰,对提高系统运行速度非常有利。大大减小电子产品的体积重量。 主流a s i c 设计大体可分为三个阶段:系统开发阶段,髓l 设计阶段和门级验 证阶段。 在系统开发阶段,主要完成:项目策划:形成项目任务书( 项目进度,周期 管理等) 。具体流程为:市场需求一调研一可行性研究一论证一决策任务书。 总体设计:确定设计对象和目标,进一步明确芯片功能、内外部性能要求、参数 指标,论证各种可行方案,选择最佳方式等。具体流程为:需求分析一系统方案 系统设计系统仿真。详细设计和可测性设计:分功能确定各个模块算法的实 现结构,确定设计所需的资源。按芯片的要求、速度、功耗、带宽、增益、噪声、 负载能力、工作温度等和时间、成本、效益要求,选择加工厂家,确定实现方式, 如全定制、半定制、f p g a 等;可测性设计在总体设计阶段就要开始考虑,确定芯 片的测试方案和方法。总体设计在整个设计中,约占设计时间的3 0 。 在r t l 设计阶段即源码设计阶段,主要完成:设计输入:完成设计的行为或 结构描述。可以采用图形输入、文本输入、状态机输入等方式。代码调试:对 设计输入的文件进行代码调试和语法检查。功能仿真:对代码进行功能验证, 保证源码能完成预想的功能。综合:把设计转换成标准逻辑单元,保证设计源 第一章绪论 3 码的可综合性。以上阶段一般统称为前端设计。 在门级验证阶段,主要完成:逻辑综合( s y n t h e s i s ) :逻辑综合是面向给 定的设计约束,将高级的设计描述翻译和优化到厂家库中的门级网表的自动化过 程。静态时序分析( s t a t i ct i m i n ga n a l y z e ) :静态时序分析是检测综合结果 是否满足时序约束的一个手段。主要验证寄存器的建立和保持时间的异常,它具 有较高的计算效率,是对仿真的补充。形式验证( f o r 眦lv e r i f i c a t i o n ) ,也 就是等效性检查,对设计过程中每一步的设计输入和输出间进行逻辑功能的等效 检查。经常进行的是综合后的网表与r t l 的设计输入之间的等效检查。与静态时 序分析一起,构成设计的静态验证。布局( f l o o rp l a n ) :就是确定设计中各 个模块的位置,整个芯片的尺寸等。主要的过程有:i 0 规划,确定i 0b u f f e r 的 位置,定义电源和地p a d 的位置。模块放置,定义各种物理的组、区域或模块; 对这些大的宏单元进行放置,现在已经有许多好的b l o c k p l a c e r ,帮助设计者更快 的形成模块布局。供电设计:设计整个供电网络,基于电势降和电迁移进行拓扑 优化。微调:通过添加布局和布线的阻碍、以及密度、属性等的修改,达到优化, 布线阻塞率,甚至时序的目的。总之,f 1 0 0 rp l a n 就是在保证布线能够走通、性 能允许的前提下,如何最大限度的减少芯片面积。布线:布线应该算是设计上的 最后一个阶段。布线策略的应用,会影响整个芯片的性能。可以选择手动走一些一 比较关键,或者对自动走线效果不满意的一些线。然后,对关键路径上的走线和 时钟线尽量在走线时先走,避免绕线,确保时序收敛。最后,还要进行门级验证 和版图逻辑图对比( l v s ,l o g i cv s s c h e i n a t i c ) 和设计规则检查( d r c ,d e s i g n r u l ec h e c k ) 。 以上所述主要是数字电路的设计流程。模拟电路的设计流程与之相比有所不 同。模拟电路的设计主要包括:模拟仿真环境:模拟仿真环境主要是提供完整 的模拟电路设计解决方案,并使最终用户的应用得到最优化且支持完整的从前端 到后端的设计流程。完整的模拟设计环境应该是所有的解决方案集成在一起,具 有完全的中间可操作性。版图编辑工具:对于一些全定制的设计,需要对最终 的版图进行编辑。版图编辑器应以强大的交互式版图功能来提高全定制i c 设计的 生产率。版图验证:版图验证包括设计规则检查( d r c ) 、电学规则检查( e r c ) 、 版图逻辑图对比( l v s ) 、版图参数提取( l p e ) 和寄生电阻提取( p r e ) ,电磁 兼容分析( e m c ) 等等。 a s i c 设计流程随着不同的设计目标、设计方法、设计工艺的变化而变化。一 般而言,数字电路设计中几个关键的环节分别为:设计、综合、仿真以及布局布 线等。如何熟练使用这些工具软件、掌握使用技巧以及不断解决出现的问题等等, 都与工具使用的熟练程度和相关经验分不开。下面特别就综合和仿真进行一点阐 述。 4 a e s 加密口软核的研制 综合是将行为级描述的设计在一定的规约下转化为逻辑结构。它是面向给定 的设计约束,将高级的设计描述翻译和优化到工艺库中的门级网表的自动化过程。 ( c o m p i l e r = t r a n s l a t i o n + m a p p i n g + 0 p t i m i z a t i o n ) 。综合约束包括时序、 面积和功耗的约束。其中时序是最复杂和最关键的约束,决定了整个芯片的性能。 时序约束中,输入输出的约束由芯片的应用环境决定,通常需要抽象出输入的驱 动和输出的负载信息。另外一个重要的方面,就是时钟树( c 1 0 c kt r e e ) 的综合 和插入。时钟树的定义、约束的设置,对最后时钟偏斜起着决定性的作用。时钟 树插入后,偏斜往往会导致某些保持时间( h 0 1 dt i m e ) 方面的问题。还有,传统 的a s i c 综合工具本身能力限制了综合模块的门数不能超过2 0 0 k 。随着百万门甚至 千万门的设计的出现,工程师们不得不把一个设计分成更多的子模块来进行综合。 一般情况下,在采用传统a s i c 综合技术时,工程师们习惯按照功能和时序来进行 子模块的划分,而不是按照设计门数的大小来划分模块。不管是谁进行综合,在 现有的技术下,都要对综合的质量和综合的效率进行折衷。因此,综合问题必须 通盘考虑。 仿真是模拟出芯片工作的过程,故又称为设计的动态验证。如果带有时序信 息,在验证功能的同时,也可以验证时序性能。仿真主要有:r t l 级仿真、门级 仿真,它们也分别简称为前仿和后仿。在r t l 层进行的仿真,其特点是不考虑构 成电路的逻辑和门的时间延迟,着重考虑电路在理想环境下的行为和设计构想的 一致性。即r t l 级仿真是没有延时的、基于周期的事件驱动的仿真方式。门级仿 真是在电路已经映射到特定的工艺环境后,将电路的路径延迟和门延迟考虑进去 对电路行为的影响后,来比较电路的行为是否还能够在一定条件下满足设计构想。 后仿是基于最终时序的仿真,故往往作为流片前签收( s i g n o f fo rt y p eo u t ) 的条件。所有时序的仿真,一般是使用s d f ( 标准延时) 文件来输入延时信息。 仿真不是一个孤立的过程,它和综合、时序分析等形成一个反馈工作过程, 只有这个过程收敛,各个环节才有意义, 如果在时序分析过程中发现时序不满足, 行。 而孤立的功能仿真通过是没有意义的, 需要更改代码,则功能仿真必须重新进 代码覆盖率( c o d ec o v e r a g e ) 是验证仿真激励是否完备、检验代码质量的一 个重要标准。测试激励的代码覆盖率至少要达到9 5 以上,才能基本认为代码在 逻辑上是通过质量控制的,是基本可测的。在大的设计中,如果想通过一个激励 就验证完一个设计或者模块是不现实的。一方面是从逻辑功能上很难做到;另外 一方面是因为如果在一个激励中包括了各种情况,整个仿真过程的速度会随着计 算机内存的消耗而成线性下降,效率低下。通常的做法是每一个激励只验证电路 功能的某个方面。整个电路的功能验证由数个激励共同完成。在这种验证方法中 代码覆盖率更显重要,因为可以通过代码覆盖率来控制激励对功能的覆盖程度。 第一章绪论 5 另外,由于设计复杂度越来越高,基于时序的仿真往往需要较长的时间,同时对 机器性能也有较高要求。目前的仿真工具都支持并行处理,用几台机器同时来进 行处理,还出现了硬件仿真加速器,进一步提高时序仿真的速度。 另外,值得一提的是,h d l 语言虽然是一种语言,但它是描述r t l 的语言,所 以其着眼点是电路实现而非逻辑推理。r t l 就是电路在寄存器层的一种表现,虽然 已经不像门级电路那样具体,但也没有抽象到逻辑层。因此写代码的正确方法是: 在大脑中构思出电路的结构,然后用代码把它点滴不漏的表现出来,而不是先写 一些只是逻辑上行得通的代码,然后等待工具帮你综合成能实现的电路。工具永 远只能做繁重而低级的工作,因此如果你的电路性能不好,说明你对如何实现电 路还没有清晰的思路。还有,不要只指望通过提高器件的速度等级来使你的电路 达到要求,如果你的电路在第一次综合后已经有8 0 的路径满足时间要求了,那 么就不要想着用更快的器件,而应该考虑改变你的电路拓扑结构和设计构架,来 使另外的2 0 逐渐达到要求p j 。 1 3s o c 与i p 知识产权 t s 0 c 就是将系统的全部功能模块集成到单一半导体芯片上,包括c p u 、i 0 接, 口、存储器,以及一些重要的模拟集成电路等。功能模块化的系统芯片具有易于 增加新功能和缩短上市时间的显著特点,是a s i c 设计业当前、乃至可预见未来的 主流设计方式。一个芯片如果包含了可编程处理器( p r o g r a i 硼a b l ep r o c e s s o r ) 、 控制器( c o n t r 0 1 l e r s ) 、信号处理器( s i g n a lp r o c e s s o r s ) 和片上存储器( o n c h i p m e o r y ) 等部分就是一个s 0 c 芯片。 一个典型的s o c 系统结构如图1 1 所示。 s o c 正在掀起一场前所未有的变革。从技术层面看,s o c 技术是超大规模集 成电路发展的必然趋势和主流,它以超深亚微米v d s m ( v e qd e c ps u b m i c r o n ) 工艺和知识产权口核复用技术为支撑。从应用开发的角度来看,s o c 的主要含义 是在单芯片上集成微电子应用产品所需的所有功能系统。s o c 技术研究内容包括: 开发工具、口核及其复用技术、可编程系统芯片、信息产品核心芯片开发和应用、 s o c 设计技术与方法、s o c 制造技术和工艺等。从使用角度来看,s o c 有三种类型: 专用集成电a s i a a p p l j c a t i s p e c i 丘ci o ,可编程s o c ( s y s i e mo np r o 伊锄m a b l e c h i p ) 和0 e m ( 0 r i g i n a le q u i p m e n tm 柚u f a c t u r e r ) 型s o c 。 6 a e s 加密m 软核的研制 图l 1 典型s o c 系统结构图 s 0 c 设计虽然在过去的十几年中已经取得了显著的发展,但是它所面l 临的挑 战也是不容忽视的。作为基于口核的设计,s o c 设计主要向两个方向发展,一是 以可重用口核为基础的系统级设计,这主要关心的是口核之问的互连性,是s o c 设计面临的挑战之一;二是以设计可重用口核为目的的口核设计,这主要关心的 是口核的可重用性,同时也是s 0 c 设计面临的又一个挑战。对于第一个挑战,现 在通常采用片上总线结构来解决口核之间的互连性,即核与核之间并非直接相连 而是通过片上总线进行互连。使用片上总线结构虽然可以解决口核之间的互连问 题,但这同时又出现了另外一个问题,由于不同厂商使用不同的总线结构,例如 a r m 的a m b a 总线,m s 的e c 总线,m m 的c ( 1 r c c o 加e c t 总线,因此不同厂 商口核之间的互连几乎是不可能的,而建立一种通用的片上总线结构是v s i a ( n u a ls o c k e ti n t e 血c c a s s o c i a t i o n ) 一直努力的目标。最近,提出一种基于片上 网络的互连结构,即i p 核之间通过网络结构来实现数据的传输,这种结构虽然可 解决通用总线的问题,但建立一个高效的路由算法是非常必要的。典型的互连结 构如图1 2 所示。 图1 2 典型的基于片上网络的m 核互连结构图 除了以上的挑战之外,伴随着集成电路时钟频率超过2 2 g h z 以及晶体管的特 征尺寸缩小到小于0 1 弘m ,对传统的设计者来说,s o c 设计还将面l | 缶着下面的一 些挑战: 第一章绪论 7 ( 1 ) 由于连接延时的不确定性,在时钟频率为1 0 g h z 集成了上亿晶体管的 v l s i ( 叫l a r g cs c a l ei n t e g r a t i o l l ) 芯片上,时钟同步是一个关键问题,必须通过解 决时钟抖动和减少摆率的技术来减少时序的混乱,一个全局异步,局部同步的时 钟策略是绝对必须的。为解决时钟摆率带来的问题,推荐采用网状树组合结构, 而且分布式p l l 也变得很有可能。 ( 2 ) 由于高集成度和频率,在将来的生产过程中信号完整性问题将变得更加 严重。 ( 3 ) 在将来的生产过程中,过程变量成为影响时序确定性的潜在因素,因为 要控制已经减小的特征尺寸是非常困难的。 ( 4 ) 功耗问题仍然是限制s o c 设计的因素1 4 j 。 s o c 设计以可重用口核为基础,将设计建立在较高的层次上,以保证设计的 效率和成功率。i p ( i n t e l l e c t u a lp r o p e r t y ) 就是常说的只是产权。硅知识产权是 用于a s i c ,p l d 等当中,并且是预先设计好的电路功能模块。i p 核分为软核,固 核和硬核【5 。软核与生产工艺无关,它是用计算机高级语言的形式描述功能块的 行为,但是并不涉及用什么电路和电路元件实现这些行为。软i p 核的最终产品基 本上与通常的应用软件大同小异,开发过程与应用软件也十分相象,只是所需的 开发软、硬件环境,尤其工具软件要昂贵很多。软核的设计周期短,设计投入少, 由于不涉及物理实现,为后续设计留有很大的发挥空间,增大了i p 的灵活性和适 应性。然而针对不同的生产工艺,软核需要一定程度的修正。 固核是在软核的基 础上开发的,一种可综合并带有布局规划的软核,以网表的形式提交客户使用。 目前设计复用方法在很大程度上依靠固核,将r t l 级描述结合具体标准单元库进 行逻辑综合优化,形成门级网表。硬核是具有和特定工艺相联系的物理版图,已 经通过流片测试验证,可被新设计作为特定的功能模块直接调用,它的缺点是一 旦生产工艺改变就不能够再使用了,即使是在采用同样生产工艺的情况下,由于 模块的物理尺寸已经确定因而也影响了布局( n o o r - p l 加) 的灵活性;它的优点是 在设计采用同样生产工艺的产品并且其物理尺寸不影响芯片布局的情况下,能够 直接应用,不需用重新设计。硬坤提供设计的最终阶段产品:掩膜。由于半导体 工艺发展极快,通常重用“软模块”比较多。 “重用”( r e 惦e ) 指的是在设计新产品时采用已有的各种功能模块,即使进 行修改也是非常有限的。这样,可以减少设计人力和风险,缩短设计周期,确保 优良品质。s o c 的设计原则,就是尽可能重用各种功能模块并集成为所需的系统 级芯片。设计重用,必须对重用时需要考虑的因素作一些说明。首先,重用的功 能模块要有详尽的说明书,对模块的功能和适用范围以及芯片集成时的总线接口 进行说明:其次,要提供该模块过去已实现的生产工艺;第三,要提供用于测试 该模块的测试程序及测试平台;最后,也是最重要的,就是模块的设计内核。 8 a e s 加密i p 软核的研制 一个可重用的口核应该具有以下的特征: ( 1 ) 可读性:这是针对软核和固核来说的,即使用者对i p 核的功能和算法有 比较详细的了解后,才能正确使用和充分发挥口核的优点。这就要求口核的提供 商采用一种恰当的方法描述设计,使用户可以方便正确的使用口核。同时还要采 取措施,保护其知识产权不受侵犯。 ( 2 ) 设计的延展性和工艺适应性:口核是经过精心设计、验证并且优化的, 一经定型就要求其具有一定的应用范围,即针对不同的设计应用具有一定的适应 性。 ( 3 ) 可测性:口核必须是经过测试验证的,当用于具体的设计中时,并非一 点改变都没有。因此,i p 核的功能和性能还应该被使用方测试,不仅能对其进行 单独的测试并且能在系统的应用环境中进行测试。 ( 4 ) 端口定义标准化:即i p 核的端口要有一个统一的定义。 ( 5 ) 版权保护以及交付的数据资料完整,方便芯片的集成过程。 1 4 论文主要工作及章节安排 本文在详细介绍a e s 加密算法的基础上,对a e s 加密i p 软核进行了实现。主 要工作集中在以下几个方面:a e s 加密i p 核的有限状态机的研究,在此基础上确 定了i p 核的端口及其时序关系;a e s 加密i p 核的内部模块架构的研究;a e s 加密 i p 核的内部各模块的r t l 级电路图实现及流水线的设计 本文各章节的基本内容组织如下: 第一章介绍一些a s i c 设计,s o c 和口核的一些知识 第二章介绍了a e s 算法的数学基础,加解密过程和算法的工作模式 第三章按照a s i c 设计流程,首先介绍了口核的行为级实现,通过对m 核 的有限状态机的分析,确定了口核的外部端口和内部架构,在充分对 系统和模块的优化后实现了口核的r t l 级电路原理图 第四章通过试验数据,证明按照本文所写的a e s 加密口的r t l 代码在仿真 ,上符合逻辑要求,综合后的电路原理图同我们的设计相一致,在时序 上满足要求。 第五章总结了本文的主要内容,以及自己在a e s 加密口软核上所作的研究 工作,并且总结自己设计的不足从而明确了以后的研究方向。 本研究受到陕西省西安市重点信息项目( z x 0 5 0 2 0 ) 资助。 第二章a e s 数据加密标准 第二章a e s 数据加密标准 2 1 引言 9 密码学的起源可能要追溯到人类刚刚出现,并且尝试去学习如何通信的时候。 他们不得不去寻找方法确保他们的通信的机密。但是最先有意识的使用一些技术 方法来加密信息的可能是公元六年前的古希腊人。他们使用的是一根叫s c y t a l e 的棍子。送信人先绕棍子卷一张纸条,然后把要写的信息打纵写在上面,接着打 开纸送给收信人。如果不知道棍子的宽度( 这里作为密匙) 是不可能解密里面的 内容的。后来,罗马的军队用凯撒密码( 三个字母表轮换) 进行通信。 在随后的1 9 个世纪里面,主要是发明一些更加高明的加密技术,这些技术的 安全性通常依赖于用户赋予它们多大的信任程度。在1 9 世纪k e r c h o f f s 写下了现 代密码学的原理。其中一个的原理提到:加密体系的安全性并不依赖于加密的方 法本身,而是依赖于所使用的密匙。那么,从这个角度来看,加密体系应该能够 满足那些需求的。可是,当时的加密体系仍然缺少数学的背景,因而也缺少测量 或评价这些体系抗攻击的能力。要是有人能最终达到密码学的终极目标,即找到 百分之百无条件安全的体系那该有多好呀! 在1 9 4 8 年和1 9 4 9 年,香农 ( c 1 a u d es h a n n o n ) 在他的两篇论文里,把科学背景加入了密码学。这两篇论文 是通信的数学原理以及主要的秘密体系的通信原理。那些文章把许多的希 望和偏见都扫开了。同时香农( c 1 a u d es h a n n o n ) 还证明了v e r 朐m 密码( 也称为 o n et i m ep a d ) 是当时唯一无条件安全的体系。不幸的是,那个体系在使用上是 不可行的这就是为什么现在评价体系的安全性相反是基于理论上计算得到 的安全性的理由。如果还没有找到一种攻击方法比完全搜索得到密匙的方法更有 效的话,你可以说这种密匙加密方法是安全的。 迄今为止,应用最为广泛的加密类型有两种:对称加密和非对称加密。对称 加密,也称传统加密或单钥加密。其加密和解密所用的密钥相同,系统的保密性 主要取决于密钥的保密性,与算法的保密性无关,需要保密的仅是密钥,即由密 文和加解密算法不可能得到明文。对称加密基本都是基于替换和置换这些初等方 法之上的。d e s 和a e s 都是典型的对称加密算法。对称加密对明文消息的加密有 两种方式:一种是明文消息按照字符逐位的加密,称之为流密码;另一种是将明 文消息分组( 含有多个字符) ,逐组地进行加密,称为分组密码。非对称加密又称 公钥密码,与使用一个密钥的对称加密不同的是,非对称加密使用两个独立的密 1 0 a e s 加密l p 软核的研制 钥,一个可以公开,另外一个则是秘密的。非对称加密的主要特点是将加密和解 密能力分开,可以实现多个用户加密的消息只能由一个用户解读,或者一个用户 加密的消息而使得多个用户可以解读。非对称加密是基于数学函数基础之上的, 其典型代表是r s a 算法。 要介绍a e s 加密算法,不得不先提到d e s 算法。数据加密标准( d e s ) 是迄 今为止世界上最为广泛使用的一种分组密码算法。1 9 7 7 年,n i s t ( 美国国家标准 和技术协会) 公布实施了d e s 算法之日起,人们对它就开始了广泛的研究。它的 分组长度为6 4 比特,密钥长度为5 6 比特,并且在d e s 基础上发展出了三次加密 的3 d e s 加密。m s t 每五年将其作为美国政府加密标准进行重新评估,并重新批 准它是否继续作为联邦加密标准。随着计算机性能的提高,d e s 不再成为安全的 加密算法。美国已经决定1 9 9 8 年1 2 月后不再使用d e s ,同时征集新的更安全的 加密算法。2 0 0 0 年1 0 月,n i s t 宣布通过从1 5 种侯选算法中选出的一项新的密钥 加密标准,新的标准将会代替1 日的d e s 算法。r i j n d a e i 被选中成为将来的a e s 。 这个加密算法是分组加密算法,信息的内容是以1 2 8 位长度的分组为加密单元, 加密密匙长度有1 2 8 ,1 9 2 和2 5 6 位3 种选割”。 表2 1 是三s 和3 d e s 的比较说明,a e s 算法较以前的d e s 算法从速度到保 密性有着不可比拟的优势【8 】。 表2 1a e s 与3 d e s 比较 a e s 3 d e s 算法类型对称b l o c k 密码对称f c i s t e l 密码 密钥大小 1 2 8 ,1 9 2 ,2 5 6 位 1 1 2 ,1 6 8 位 速度高低 解密时间 ( 每秒2 5 5 个密钥) 1 4 9 0 0 0 0 亿年4 6 亿年 资源消耗低 由 n i s t 标准编号 f i p s l 9 7f 1 p s4 6 3 2 2a e s 算法的数学基础 a e s 加解密过程中的数据基本运算都是建立在有限域g f ( 2 s ) 基础之上的, g f ( 2 8 ) 中有2 8 个元素,其中模多项式为川 ) = 工8 + x 4 + 工3 + 工+ 1 。g f ( 2 8 ) 中的 多项式,o ) 一口工”1 + 口一”2 + + 口一+ 一口f 一可以由它的n 个二进制 箭 第二章a e s 数据加密标准 系数( 口口。- 2 五1 口o ) 惟一的表示。因此,g f ( 2 8 ) 中的每个多项式都可以表示成 一个n 位的二进制整数【9 】。 2 2 1g f ( 2 8 ) 的加法 g f ( 2 8 ) 上元素的加法可以看作是多项式的加法,而多项式加法是将相应的系数 分别在z 2 上相加,而乞上的加法其实就是异或( x 0 r ) 运算。所以g f ( 2 8 ) 中两个 多项式的加法就等同于按位异或运算。 例如:( 5 7 ) 1 6 + ( 8 3 ) 1 6 = ( 0 1 0 1 0 1 1 1 ) 2 + ( 1 0 0 0 0 0 1 1 ) 2 = ( 1 1 0 1 0 1 0 0 ) 2 = ( d 4 ) j 6 或是( x 6 + x 4 + z 2 + z + 1 ) + 7 + z + 1 ) = z 7 + 石6 + 工4 + 石2 。 2 2 2 g f ( 2 8 ) 的乘法 简单的异或运算不能完成g f ( 约上的乘法,但是可以使用一种合理且容易实现 的技巧,这个技巧基于下面的等式: z 8 i i 】l o d m ) 暑【,竹o ) 一工8 】- 工4 + z 3 + 工+ 1 式( 2 1 ) 现在考虑g f ( 2 8 ) 上的多项式: , ) = 岛x 7 + 略6 + 玩工5 + 啦4 + 6 矿3 + 哆2 + 啦+ 6 0 ,将它乘以x ,可得: 并,( x ) = 0 工8 + 6 工7 + 魄工6 + 6 4 工5 + 西铲4 + 6 3 + 6 1 工2 + 6 栌) m o d 朋0 ) 式( 2 2 ) 如果以= 0 ,那么结果就是一个次数小于8 的多项式,不需要进一步计算。如 果玩= 1 ,那么通过等式( 2 1 ) 进行除m ( x ) 取余运算: z , ) = q f 7 + 魄x 6 + 匆,+ 6 4 + 6 3 + 岛x 2 + 白声) + 4 + 矿+ z + 1 ) 这表明乘以x ( 如0 0 0 0 0 0 1 0 ) 得运算可以通过左移一位后按位异或0 0 0 1 1 0 1 1 来实 现,其表示为“4 + ,+ 工+ 1 ) 。总结如下: ,、f 地6 4 岛o 若6 7 2 0 工,b ) 2 1 ( 6 6 魄懒轨6 0 0 ) ( 0 0 0 1 1 0 1 1 ) 若岛= 1 式2 3 ) 乘以一个高于一次得多项式可以通过反复使用等式( 2 3 ) 来实现。这样以来, g f ( 2 8 ) 上的乘法可以用多个中间结果相加的方法实现,我们可以把这种运算表示为 列妇p ) 。例如: 5 7 1 3 。- 髓 5 7 v 0 2 。一以拥p ( 5 7 ) - 肛 5 7 1 0 4 一州胁p 似) 4 7 1 2 a e s 加密软核的研制 5 7 0 8 。- 粗蛔e ( 4 7 ) - 8 e 5 7 v 1 0 。一矗砌e ( 8 e ) - 0 r 7 5 7 。1 3 一5 7 f 0 1 t 。0 2 l 。1 0 一5 7 i 。肚l 。0 7 - 。阿 2 3a e s 算法加解密过程 2 3 1a e s 加密过程 在r i j n d a c l 算法中【1 0 1 1 1 ,分组长度和密钥长度均能分别被指定为1 2 8 位,1 9 2 位,2 5 6 位。在a e s 高级加密标准规范中,密钥的长度可以使用三者中的任意一种, 但明文的分组长度只能是1 2 8 位。图2 1 显示了a e s 加密的完整结构。 p i a i n i e x t 2 8b “s l 匕x f 咖d k e y ( 0 j s u h l ;y t e si 二二二 二二 s h | f i r ( ) w sl 二二j 二二 塑竖型! ! 竺! ! ! l d om u n d f l s u h l y i c sj 萧磊s h i i l r ) w s 刁;= 二k e y c i p h e i e x t1 1 2 8 b i t s , 蠢 魂 图2 1a e s 加密结构 1 2 8 位的明文经过n r 轮循环加密运算得到相对应的1 2 8 位密文,其中轮操作 的基本运算包括密钥加( a d d r o u n d k e y ) ,字节替换( s u b b y t e s ) ,行移位( s h i f t r o w s ) 列混淆( m i x c 0 1 u 衄s ) 这些功能模块,其中每一轮的密钥加运算所需的密钥是经 过密钥扩展功能得到的。n r 的取值与密钥的长度有关。如表2 2 所示。 表2 2 密钥长度与加密轮数的关系 a e s 类型 密钥长度n k ( b i t s )分组长度n b 倾t s )循

温馨提示

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

评论

0/150

提交评论