![[硕士论文精品]基于xc2s300e芯片的高级加密标准算法的fpga设计_第1页](http://file.renrendoc.com/FileRoot1/2017-12/8/3361ec9b-a1b3-42ee-a3c3-db7a14de2be9/3361ec9b-a1b3-42ee-a3c3-db7a14de2be91.gif)
![[硕士论文精品]基于xc2s300e芯片的高级加密标准算法的fpga设计_第2页](http://file.renrendoc.com/FileRoot1/2017-12/8/3361ec9b-a1b3-42ee-a3c3-db7a14de2be9/3361ec9b-a1b3-42ee-a3c3-db7a14de2be92.gif)
![[硕士论文精品]基于xc2s300e芯片的高级加密标准算法的fpga设计_第3页](http://file.renrendoc.com/FileRoot1/2017-12/8/3361ec9b-a1b3-42ee-a3c3-db7a14de2be9/3361ec9b-a1b3-42ee-a3c3-db7a14de2be93.gif)
![[硕士论文精品]基于xc2s300e芯片的高级加密标准算法的fpga设计_第4页](http://file.renrendoc.com/FileRoot1/2017-12/8/3361ec9b-a1b3-42ee-a3c3-db7a14de2be9/3361ec9b-a1b3-42ee-a3c3-db7a14de2be94.gif)
![[硕士论文精品]基于xc2s300e芯片的高级加密标准算法的fpga设计_第5页](http://file.renrendoc.com/FileRoot1/2017-12/8/3361ec9b-a1b3-42ee-a3c3-db7a14de2be9/3361ec9b-a1b3-42ee-a3c3-db7a14de2be95.gif)
已阅读5页,还剩53页未读, 继续免费阅读
[硕士论文精品]基于xc2s300e芯片的高级加密标准算法的fpga设计.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
华中科技大学硕士学位论文摘要加密算法一直在信息安全领域起着无可替代的作用,它直接影响着国家的未来和发展。随着密码分析水平、芯片处理能力和计算技术的不断进步,原有的数据加密标准DES算法及其交形的安全强度已经难以适应新的安全需要,其实现速度、代码大小和跨平台性均难以继续满足新的应用需求。在未来的20年内,高级加密标准AES将替代DES成为新的数据加密标准。高级加密标准算法是采用对称密钥密码实现的分组密码,支持128比特分组长度及128比特、192比特与256比特可变密钥长度。无论在反馈模式还是在非反馈模式中使用AES算法,其软件和硬件对计算环境的适应性强,性能稳定,密钥建立时间优良,密钥灵活性强。存储需求量低,即使在空间有限的环境使用也具备良好的性能。在分析高级加密标准算法原理的基础上,描述了圈变换及密钥扩展的详细编制原理,用硬件描述语言VL描述了该算法的整体结构和算法流程。详细论述了分组密码的两种运算模式反馈模式和非反馈模式下算法多种体系结构的实现原理,重点论述了基本体系结构、循环展开结构、内部流水线结构、外部流水线结构、混合流水线结构及资源共享结构等。最后在XILINX公司XC2S300E芯片的基础上,采用自顶向下设计思想,论述了高级加密标准算法的FPGA设计方法,提出了具体模块划分方法并对各个模块的实现进行了详细论述。圈变换采用内部流水线结构,多个圈变换采用资源共享结构,密钥调度与加密运算并行执行。占用芯片面积及引脚资源较少,在芯片选型方面具有很好的适应性。关键词高级加密标准,加密,解密,密钥扩展,现场可编程门阵列华中科技大学硕士学位论文ABSTRACTENCRYPTIONALGORITHMALWAYSPLAYSAVERYIMPORTANTROLEINTHEINFORMATIONSECURITYAREAITDIRECTINFLUENCESTHEFUTUREANDPROGRESSOFTHECOUNTRYASTHEDEVELOPMENTOFTHECRYPTANALYSIS,CHIPANDCOMPUTERSCIENCEANDTECHNOLOGY,THEOLDENCYPTIONSTANDARDDATAENCRYPTIONSTANDARDDESOR3DESCANNOLONGERMEETTHENEWSECURITYREQUIREMENTANDITSREALIZATIONSPEED,CODESIZEANDADAPTABILITYCALLNOTMEETTHEAPPLICATIONDEMAND,INTHENEXT20YEARS,ADVANCEDENCRYPTIONSTANDARDAESWILLREPLACEDESANDBECOMETHENEWENCRYPFIONSTANDARDOFINFORMATIONSECURITYTECHNOLOGYTHEADVANCEDENCRYPTIONSTANDARDAESALGORITHRNISASYMMETRICKEYBLOCKCIPHERALGORITHMITSBLOCKLENGTHIS128BITSANDITSKEYSIZEIS128BITS,192BITSOR256BITSEITHERINFEEDBACKORNONFEEDBACKMODE,ITSADAPTABILITYOFSOFTWAREORHARDWAREISEXCELLENTITSREALIZATIONPERFORMANCEISSTEADY,KEYSETUPTIMEISFINEANDITSKEYISFLEXIBLEASITSLOWMEMORYREQUIREMENT,EVENINTHELIMITEDSPACEENVIRONMENT,THEAPPLICATIONOFAESALSOHASAHIGHPERFORMANCEITDISCUSSEDTHETHEORYOFAESALGORITHM,DESCRIBEDROUNDFUNCTIONANDKEYEXPANSIONENCIPHERMENT,THENDESCRIBEDTHESTRUCTUREANDALGORITHMFLOWUSINGTHEHARDWAREDESCRIPTIONLANGUAGEVHDLFORTHETWOBLOCKCIPHEROPERATIONMODEFEEDBACKANDNONFEEDBACK,ITDETAILEDLYDISCUSSEDTHEREALIZATIONTHEORYOFTHESESYSTEMARCHITECTUREBASICARCHITECTURE,LOOPUNROLLINGARCHITECTURE,INTERNALPIPELININGARCHITECTURE,EXTERNALPIPELININGARCHITECTURE,MIXEDPIPELININGARCHITECTUREANDSOURCESHARINGARCHITECTURETHENBASEDONTHECHIPOFXILINXSXC2S300E,USINGTOPDOWNDESIGNMETHOD,ITDISCUSSEDTHEFPGADESIGNOFAESALGORITHMITALSOPARTIONEDTHEALGORITHMINTOSEVERALMODULESANDDESCRIBEDTHEREALIZATIONOFEACHMODULEIL华中科技大学硕士学位论文INDETAILEACHROUNDFIMCTIONUSESINTERNALPIPELININGARCHITECTURE,ANDALLROUNDFUNCTIONSUSESOURCESHARINGARCHITECTUREKEYEXPANSIONFUNCTIONANDENCRYPTIONFUNCTIONUSEPARELLELMODEITHASLESSCHIPAREAANDLESSINPUTANDOUTPUTPINS,S0ITISFLEXIBLEINSELECTINGCHIPTYPESKEYWOLEDSAES,ENCRYPTION,DECRYPTION,KEYEXPANSION,FPGAIII独创性声明本人声明所呈交的学位论文是我个人在导师指导下进行的研究工作及取得的研究成果。尽我所知,除文中已经标明引用的内容外,本论文不包含任何其他个人或集体己经发表或撰写过的研究成果。对本文的研究做出贡献的个人和集体,均己在文中以明确方式标明。本人完全意识到本声明的法律结果由本人承担。学位论文作者签名屎J昼万久日期王跚年厂月1日学位论文版权使用授权书本学位论文作者完全了解学校有关保留、使用学位论文的规定,即学校有权保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权华中科技大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。保密口,在年解密后适用本授权书。本论文属于不保密口。请在以上方框内打“”学位论文作者签名睬乡荟嗽日期。呼年F月日华中科技大学硕士学位论文1引言11高级加密标准算法研究的现状和意义密码技术是信息安全的支撑技术,事关国家的根本利益,同时直接影响着国家的未来和发展,因此世界各国都十分重视。密码技术在信息安全工作中具有独特的效应,随着社会的不断变革和技术的飞速发展,密码技术的应用越来越广泛,它在社会中所起的作用也越来越重要。早期的密码主要是在阶级、集团内部作为暗号、标识和特定的符号使用,近代的密码技术主要应用于军事、外交、保密通信等方面,现代密码技术则是信息安全的基石,它在政治、经济、军事、外交等方面都有着广泛的应用。111高级加密标准算法的制定过程密码技术发展到今天,逐渐形成了以私钥加密和公钥加密为代表的两种密码体制。私钥加密体制由来己久,它是利用同一共享密钥进行保密通信。与之不同,公钥加密体制始于20世纪70年代中期,是利用密钥对公开的公钥与保密的私钥来进行通信。公钥加密体制可以避免私钥加密体制涉及的密钥分配的安全性和复杂性问题,但是缺点是计算的复杂性高,因而私钥加解密从速度上讲具有优势。实际上,通常把这两种方法混合使用,公钥体制用来建立对话密钥,而对话的数据则用私钥体制来进行加密。如电子商务安全的交易协议SET中通过DES算法和RSA算法的结合使用,在一定程度上保证了数据的一致性和完整性。其中DES算法就是1977年公布的IBM专利第一代私钥数据加密标准DATAENCRYPTIONSTANDARD。但是DES经过实践的检验证明己经不再是可靠的密码算法了,虽然“三重DES”变异加密标准曾经确实起到过很强的安全作用,但已不足以胜任安全保密工作。鉴于这种情况,美国国家标准技术研究所NIST于1997年1月2日宣布启动高级数据加密标准AESADVANCEDENCRYPTIONSTANDARD的开发研究计划,并于1997华中科技大学硕士学位论文年9月12日正式发出征集算法的公告。征集公告指明了NIST的目标,就是要确定一种无密级的、公开透露加密算法的、免费使用的、全世界通用的AES,以保护政府的敏感无密级信息安全进入2L世纪,NIST期望该算法将来由美国政府使用,民间组织自愿使用。并对AES提出了以下基本要求1采用对称密钥密码实现的分组密码2支持128比特分组长度;3支持128、192、256比特密钥长度。1998年8月20日,NIST在第一届AES候选算法会议AESL上宣布了十五个AES候选算法,并恳求公众评选这些候选算法。来自十二个国家的产业和学术界的算法提交者推荐了这十五个算法。第一轮的评估准则主要分为3类安全性、代价和算法与实现特性。关于算法与实现特性,一方面,AES必须适合8位微处理器和智能卡,它们仅有有限的程序存储及非常有限的工作内存另一方面,AES的专用硬件需要在通信链路上实现千兆比特每秒的加解密速度。如果其他方面都相同,NIST认为简单的候选算法更具有优势,因为它们易于实现且安全性更高。1999年3月,第二届AES会议在罗马召开。文献1,2,3指出,在PENTIUM处理器上,RC6、RIJNDAEL、TWOFISH、MARS和CRYPTON是最快的5个密码算法,而DAEL、FROG、MAGENTA、SAFERS11SERPENT则表现得非常慢。文献4】指出,RIJNDAEL是目前最适合智能卡应用平台的密码算法。对于候选算法的实现过程,文献5】和文献6分别给出了NIST对ANSIC和JAVATM编码的检测结果。文献7】给出了候选算法的安全性能评估,文献【8,9,101讨论了强力分析攻击以及不同的候选算法对于抗击这些攻击实现的适用性。1999年8月,NIST宣布从十五个候选算法种选定了五个参加决赛的算法,这五个选定的算法是MARS、RC6、RIJNDAEL、SERPENT和TWOFISH。2000年10月2日,NIST正式宣布RIJNDAEL将被不加修改地作为AES。表1一L是AES发展的大事记录【LI】。华中科技大学硕士学位论文表11AES评选时间表时间活动1996年NIST着手开发AES替代DES1997年1月2臼宣布AESFIPS研究计划1997年9月12日发布征集候选算法公告1998年8月20日第一届AES会议召开,宣布15个候选算法1999年3月第二届AES会议召开1999年8月选出5个算法进行第二轮评估2000年4月第三届AES会议召开2000年10月2日NIST宣布评选结果2000年11月发布AESF1PS草案112高级加密标准算法研究的状况AES算法借鉴了以往分组密码算法SHARKRL21、SQUAREL13】及BKSQTL4】的设计经验,是当前密码算法设计最高水平的反映。人们正在对它进行系统的科学研究。研究的主要方向集中在算法设计的原理分析、安全性分析和统计性能分析等几个方面。对于设计原理,主要研究它所采用的数学基础,它所遵循的原则和整体结构。AES算法所遵循的是安全性原则和实现性原则,在整体结构上采用的是替代置换SP网络的迭代结构方式。对于安全性能的研究体现在以下几个方面DES型的对称性和弱密钥【15】,与IDEA类似的SB密钥【16L,差分密码分析【171,线性密码分析118201,缩短差分,SQUARE攻击231,插值攻击241,相关密钥攻击26】及时间攻击【27】和能量分析【281,能量分析又分为简单能量分析和差分能量分析129。31】。因此当前人们的研究主要集中在AES算法抵抗这几种攻击手段的能力分析。出于差分密码分析和线性密码分析历史比较早,人们对它的研究也比较深入,己经从理论上得出了AES算法抗差分密码分析和线性密码分析的能力。对于SQUARE攻击,主要集中在前四圈的基华中科技大学硕士学位论文本攻击分析和扩展后的六圈攻击分析。目前这种方式不比强力攻击有效,所以人们对于这方面的研究也比较少。关于AES算法的统计性能的研究,目前不管是国内还是国外都比较少,NIST也仅仅是用工具包对密文分组的频数、明密文的相关性及密钥更改的有效性进行了简单的测试,并没有从理论上进行分析。113高级加密标准算法实现的现状算法的实现可以用软件或硬件的方式,出于人们对软件实现方式的研究己比较深入,实现起来也比较容易,我们这里主要讨论它的硬件实现。我们所谓的硬件实现是指用硬件描述语言将AES算法进行系统设计和编码,然后用适当的EDA工具进行仿真和综合,最后用ASIC或FPGA等恰当的方式来实现。目前,美国的GMU和NSA等大学和机构提供了有关AES的IP核。其中以GMU大学的核性能最为优越,具有以下特点1支持NIST所要求的三种不同密钥长度;2加密和解密功能采用了资源共享;3实现了ECB与CBC模式;4密钥调度与加密或解密并行进行;5具有很高的速度吞吐量;6充分利用电路资源;7外部接口简单通用。所以,人们在硬件设计的时候大多将GMU大学的IP核作为参考。其缺点是占用芯片引脚资源较多,对芯片选型是不利的。除一些大学和研究机构提供AES核外,一些公司也推出了各自的AES核以供测试,主要有HELION技木有限公司、DCRYPTPTE技术有限公司及OCEANLOGICPTY技术有限公司。这些公司提供的AES在性能上与各大学和研究机构所提供的相似,只是在外部接口有所不同,如OCEANLOGICPTY技术有限公司提供的AES核。图L1、12分别是GMU大学和OCEANLOGICPTY技术有限公司的AES核的外围接口示意图华中科技大学硕士学位论文图11GMU大学AES核外部接口示意图DIN31O】DLNREQDSIZEI0】K1N31O】KEYREQKSIZE10】AESGOENDOUT310RSTNDOUTVLDCLKAU蝤UTAV鼍ILAB略READ图12OCEANLOGICPTY公司AES核外部接口示意图另外,文献32,33,34给出了AES算法的几种FPGA硬件设计方法。114研究高级加密标准算法的意义随着信息时代的到来,用户信息的存储处理和传输都必须得到安全保护。要想华中科技大学硕士学位论文有效地保护信息的安全,建立完善的信息安全体系是势在必行的,研究AES算法,促进该算法的广泛应用,有助于我们更好地维护信息时代社会的正常秩序。AES日益受到人们的广泛关注。研究AES算法,有助于我们将来设计具有自主性的密码算法,使我们更好地维护本国的数据通信不受侵犯。研究AES算法的硬件实现,可以促进该标准在国际民生中产生作用。12论文主要研究内容本文主要分析了AES算法原理,详细论述了圈变换及密钥扩展算法的编制原理,并介绍了其设计原则及安全性能。用硬件描述语言VHDL描述了该算法的整体结构和算法流程。从系统的高度出发来讨论AES算法的实现。对于分组密码的两种运算模式反馈模式和非反馈模式,均详细论述了算法的基本体系结构、循环展开结构、内部流水线结构、外部流水线结构、混合流水线结构及资源共享结构等多种体系结构的实现原理。并基于XILINX公司的XC2S300E芯片,采用自顶向下的设计思想,论述了高级加密标准算法的FPGA设计方法,提出了具体的模块划分并对各个模块的实现进行了详细论述。该设计具有以下优点1外部接口简单2占用较少的芯片引脚资源3圈变换采用内部流水线结构;4多个圈变换采用资源共享结构,减少了综合需要的资源;5密钥调度与加密运算并行执行。速度较快,占用芯片面积及引脚资源较少,所以在芯片选型方面具有很好的适应性,利于该设计的普及应用。13论文章节安排全文共分五章,各章的内容安排如下第一章,简单介绍了高级加密标准AES算法的制定过程和对AES算法实现研究的现状,并说明了研究AES算法及其实现的意义。第二章,主要分析了AES算法原理,详细论述了圈变换及密钥扩展算法的编制原理,并介绍了其设计原则及安全性能。华中科技大学硕士学位论文第三章,主要从系统的高度出发来讨论AES算法的实现。介绍了FPGA设计方法及开发流程,对XC2S300E芯片的结构做了详细描述,按照自顶向下的设计方法,对AES算法进行了模块划分。第四章,主要讨论AES算法硬件实现的有关细节问题。对划分的五个模块进行了详细描述,并对算法的工作模式和体系结构选项进行了详细论述。第五章,总结。华中科技大学硕士学位论文2AES算法原理NIST规定AES算法是一种分组加密算法。所谓分组加密,是指该算法在加密或解密时将明文待加密的数据或密文待解密的数据分成若干具有相同长度的数据段。同时NIST还要求密钥长度的灵活性,应分别支持长度为128比特、L92比特和256比特的密钥。这里我们所要讨论的AES算法是指由比利时人JOANDAEMEN和VINCENTRIJMEN两位密码专家提交的AIJNDAEL算法。RJJNDAEL算法满足NIST对AES算法的要求,它所支持的分组长度是128比特。21AES算法的数学基础AES算法定义了两种基本运算,运算基本单位是字节和四字节字。211字节运算由BTB6B5B4BB2BJBO构成的字节可以用有限域OF28上的多项式B7X7B6X6B5FB4X4B3X3B2X2BLXBO来表示。加法在多项式表示中,两个元素的和是一个多项式,其系数是两个元素对应系数的模2加即110。乘法在多项式表示中,OF28中的乘法与模二元域上的一个8次不可约多项式的多项式乘法是致的。对于AES算法,这一不可约多项式称为REX,且由下式给出MX1X8X4X3X1,或由十六进制表示中的11B给出。X乘如果我们用多项式X乘以BX,有B7X8B6X7B5X6B4X5B3X4B2X3BTX2BOX。将上面的结果进行模REX化简就得到XBX。如果B70,则这一化简是恒等运算,如果B71,则必须减去MX即异或掉MX。由此得出X十六进制02,乘可以用字节内左移和紧接着的一个与LB的条件比特异或来实现,该运算记为BXTIMEA。在专用芯片中,XTIME只需4个异或EXORAX的更高次的乘法可以重复应用XTIME来实现。通过加上中间结果,任意常数乘法都可以实现。华中科技大学硕士学位论文212四字节运算多项式可以定义为其系数在OF28中。在这方法中,4字节向量对应于次数小于4的多项式。加法对相应的系数简单相加可以实现多项式的相加。由于GF28中的加法为比特异或,因此,两个向量的加法是一个简单的异或。乘法MXX4L,乘法运算定义为两个多项式模MX相乘。X乘对应于向量内字节的一个循环移位。22AES算法描述分组加密算法是由一种叫做圈变换的函数通过多次迭代构成的,圈变换的构成包括非线性层、扩散层和密钥调度等元素。这样设计是基于香农提出的设计原则,即非线性代替与线性混合函数交替进行。这样结合的结果导致来自密码的重要的统计特性必须是高度相关的和敏感的类型,即通过混合变换的扩散和混乱产生充分的混合,使加密后的分组统计特性分布更均匀。非线性的目标就是通过一个较小的非线性元素得到一个大的非线性构件。而线性的目标就是使非线性元素取得尽可能简单。而一个高强度的圈函数就是通过重复这些简单的函数变化,并且在每圈迭代中,通过密钥调度引入密钥。这样便以简单的运算代价而取得了更大的加密效果。在AES算法中,也包含非线性结构、线性结构及圈密钥的混合。221AES算法的整体结构和算法流程分组迭代密码的整体结构大致有三类。1FEISTEL网络结构;2代替置换SP网络结构;3其它结构。在FEISTEL结构中,圈变换通常是将中间状态的部分比特不加改变地简单转置到其它的位置。最近几年,SP结构应用比较广泛。这种结构的每一圈由S层和P层组9华中科技大学硕士学位论文成。它的一圈加密过程如图21所示子密钥图2。1SP型密码一圈加密过程SP结构密码的每一个圈变换中,圈输入首先被作用于S层使之混乱,然后再被作用于P层使之得到扩散,图21中的子密钥放在S层,在实际实现中子密钥可放在其它位置。SP型密码的结构非常清晰,因此给定S层和P层的密码指标后,可以从理论上给出抵抗差分密码攻击和线性密码攻击的能力,另外,圈输入的每一位经一圈变换后均得到了扩散,它具有很高的扩散速度。AES算法在整体上采用的就是代替置换SP网络结构。它由以下三个部分组成1初始圈密钥加;2N,1圈变换;3结尾圈变换。在伪C代码中,这给出RIJNDAELSTATE,CIPHERKEYKEYEXPANSIONCIPHERKEY,EXPANDEDKEY;ADDROUNDKEYSTATE,EXPANDEDKEY;华中科技大学硕士学位论文FORIL;I6时,对于NKINBNR1,如图25所示。M西踟M丌IIIIJOJJ儿叭叭吆叭眈叭眈虬叭叭规华中科技大学硕士学位论文W。WW图24NK一6时的密钥扩展其中,ROTBYTE把A,B,C,D变为B,C,D,A,A,B,C,D是8比特字节RCONTICPCI,00,00,00;RC1I,RCIXRCI、1X”。,即RCI表示有限域OF28中值为X”1的元素。使用不同的圈常数可以对付文献【40】描述的“滑动攻击”。圈密钥选取密钥经扩展产生了NBNR1个32比特字,把它们均等地分成NR1块,每块包含NB个32比特字,那么第一个密钥就是第一个块,第二个密钥就是第二个块,依次类推得到所有的圈密钥4“。2,24逆密码AES密码算法的结构满足其逆变换序列与该密码的变换序列相同,但这种结构上的一致性不同于采用FEISTEL结构的许多密码中的组件和结构的一致性421,逆密码中的变换为该密码中变换的逆,另外在逆密码的密钥调度中还有一个变化。构造变换的逆BYTESUB变换的逆是应用BYTESUB中表的逆表的字节代替,SHIFTROW变换的逆是后面3行分别循环移位NBCL字节、NBC2字节、NBC3字节,MIXCOLUMN变换的逆与MIXCOLUMN变换类似,每列用一个特定的多项式DX相乘就得到了,DX;0BX3OD7X209X0E,ADDROUNDKEY的逆是它本身。在实现方面,解密运算与加密运算的对称性使各个步骤都显示出很大程度的并行性,也使得多处理机所支持的并行能力得到了更有效的发挥【431。华中科技大学硕士学位论文225AES算法的设计原则密码算法在设计时一般要遵循安全住原则和实现性原则等。在现代实用分组密码算法设计中,安全性原则一般指香农SHANNON提出的混乱、扩散原则【44【和抵抗现有己知密码攻击原则;而实现性原则主要指算法的设计要简单,易于软件和硬件实现,并且在各平台上的实现都应具有良好的性能。AES算法在设计时就从这两个原则出发考虑了以下三个方面的因素1抗所有己知的攻击;2在多个平台上速度快,编码紧凑;3设计简单。23AES算法的安全性能在高级加密标准算法的选择过程中,算法的安全|生能是一个相当重要的评判依据。关于安全性能,我们在这里主要讨论算法对现有的各种密码攻击手段的抗攻击能力。231强力攻击现有的强力攻击手段有穷尽密钥搜索攻击、字典攻击、查表攻击和时间一存储权衡密钥攻击,这些攻击手段可以作用于任何一种密码算法,但是它们的复杂程度随着密钥长度的增加成指数增长,对于AJES算法,密钥长度最小也是128比特,就算是每秒钟能够完成256DES的密钥长度为56个密钥的搜索,要完成AES的密钥搜索,需要的时间大约是149万亿年,所以要在现有条件下完成AES算法的强力攻击是不现实的。232DES型的对称性和弱密钥尽管AES算法中存在大量的对称性,但已通过每圈使用不同的圈常数得到了消除。AES算法的加密和解密运算采用不同的变换这一事实,实际上排除了DDAVIES在文献【151中描述的对于DES算法那样的弱密钥和半弱密钥存在的可能性。同时,华中科技大学硕士学位论文密钥扩展的非线性性实际上也排除了等价密钥存在的可能性。233与IDEA类似的弱密钥本小结中讨论的弱密钥可以产生一种可被检测弱点的置换。这种弱密钥类型的最著名代表就是IDEA中的那些弱密钥。典型地,当密码严重地依赖于密钥来提供非线性时,这种弱密钥就会出现。AES算法是一个密钥迭代型密码,所有的非线性均是由一个与密钥独立的S盒来提供,园而也就不存在这种类型的弱密钥。234差分密码攻击和线性密码攻击差分密码攻击实质上是一种选择明文攻击,其基本思想是通过分析明文对的特定差分对密文对差分的影响来恢复某些密钥比特,所以其本质是研究明文对的差分、密码算法中间过程输出对的差分及密文对差分之间的关系。线性密码攻击实质上是一种己知明文攻击,其基本思想是寻找密码算法的一个有效线性逼近,而整体密码算法的线性逼近又是由多个圈变换的线性逼近构成,所以,线性密码攻击的本质是找出密码算法的有效线性逼近及各圈线性逼近之间的关系。对于AES算法构造S盒的数学基础有限域GF28的逆映射,其最大扩散率和最大输入输出相关系数分别取为26和2一。通过对P层的性能分析,我们可以知道,4圈以上的ALES算法就可以有效地抵抗差分密码攻击和线性密码攻击。235缩短差分缩短差分攻击利用了某些密码中差分轨迹趋于聚集的事实。对于某些输入和输出的差分模式集合,当差分轨迹的数量超乎寻常大时,聚集现象就会发生。一个处于聚集范围之中的差分轨迹的期望概率可以被独立地计算,而不依赖于那些位于聚集之外的单个差分概率的轨迹。通过研究,对于6圈或更多圈的AES密码,没有找到有其它什么攻击方法比穷举密钥攻击要快。华中科技大学硕士学位论文236SQUARE攻击SQUARE攻击是一种选择明文攻击并且与BYTESUB的特定选取、MIXCOLURNN的乘积多项式和密钥调度无关。它比6圈和6圈以下的所有AES版本的穷举密钥攻击都要快,但对于7圈或更多圈的AES密码,没有找到有其它什么攻击方法比穷举密钥攻击要快。237插值攻击插值攻击是利用密码的输入输出对来构造一些多项式。如果密码中元素有一个紧凑的代数表达式,而且这些元素能够被组合成具有可控制复杂性的表达式,这种插值攻击方法对于该密码就是可行的。AES密码的S盒在GF2中的复杂表达式,以及与扩散层作用的组合,防止了几圈以上进行这攻击。S盒的表达式为638FXL27B5X19TOLX223F4X23925X247F9X25109X25305X25423。8相关密钥攻击在相关密钥攻击中,密码分析者可以利用具有选择关系的不同密钥未知或部分未知来进行密码操作。AE密码的密钥调度具有高的扩散性和非线性性,这使得这类攻击对AES密码获得成功是非常不可能的。239实现攻击实现攻击不但基于密码的数学特性,而且也基于实现的物理特性。典型的例子是时间攻击和能量分析攻击。在时间攻击中,通过测量整个加密算法的执行时间来获得密钥信息。在能量分析中,通过测量执行加密设备的能量消耗来获得密钥信息。如果加密算法的执行时间依赖于密钥值,则可以实施时间攻击。通过确保加密时间与密钥取值无关,可以使得一个实现能够抵抗时间攻击。在AES中,对于时间攻击的唯一可能缺陷就是MIXCOLUMN中有限域乘法的实现,即XFIME子程序。通过定义一个256字节的表并采用查表法来实现XTIME程序,就可以轻易地消除XTIME中的缺陷。华中科技大学硕士学位论文简单能量分析SPA是攻击者可以在一次加密执行过程中测量设备能量消耗。典型地,这种攻击适用于那些依靠外部电源输入的设备,如智能卡。如果硬件的能量耗费模式依赖于被执行的指令,那么攻击者就可以推算出指令的序列。如果这个序列或者指令类型依赖于密钥的取值,那么能量消耗模式就会泄露密钥的信息。AES很容易采用一个固定的指令序列来实现,因而可以防止这种攻击。在大多数的处理器中,指令的能量消耗模式依赖于操作数的值。通过组合许多次加密的测量,攻击者可以平均掉噪声的影响而获得关于操作数值的信息。这种类型的攻击被称之为差分能量分析DPA4547。24本章小结本章主要分析了AES算法原理,详细论述了圈变换及密钥扩展算法的编制原理,AES算法在整体上采用的是代替置换SP网络结构。它由以下三个部分组成初始圈密钥加、N,L圈变换及结尾圈变换。密钥调度包括密钥扩展和圈密钥选取两个组成部分。最后介绍了其设计原则及抵抗现有己知各种密码攻击的能力。华中科技大学硕士学位论文3AES算法FPGA设计分析31FPGA设计方法与开发流程311VHDL语言及其特点随着计算机和半导体工艺技术的发展,数字逻辑电路的设计正悄悄地进行着一场重大的革命,这场革命的核心是采用硬件描述语言来设计复杂的数字逻辑系统。VNDLVHSICHARDWAREDESCRIPTIONLANGUAGE作为电路硬件设计的语言,具有以下犄点设计技术齐全、方便灵活、支持广泛,系统硬件描述能力强,可以实现与工艺无关编程,标准、规范、易于共享和复用,可移植性好,设计不因芯片的工艺与结构的变化而变化,更利于向ASIC的移植。31。2FPGA简介现场可编程门阵列FFGAFIELDPROGRAMMABLEGATEARRAY器件是XILINX公司1985年首家推出的,它是新型的高密度PLD,采用CMOSSRAM工艺制作。FPGA的内部由许多独立的可编程逻辑块CLB组成,逻辑块之间可以灵活地相互连接。FPGA的结构一般分为三部分可编程逻辑块、可编程YO模块和可编程内部连线。CLB的功能很强,不仅能够实现逻辑函数,还可以配置成RAM等复杂的形式。配置数据存放在片内的SRAM或者熔丝图上,基于SRAM的FPGA器件工作前需要从芯片外部加载配置数据。配置数据可以存储在片外的EPROM或者计算机上,设计人员可以控制加载过程,在现场修改器件的逻辑功能,即所谓现场可编程。FPGA的出现是超大规模集成电路VLSI技术和计算机辅助设计CAD技术发展的结果。FPGA器件集成度高、体积小,具有通过用户编程实现专门应用的功能。它允许电路设计者利用基于计算机的开发平台,经过设计输入、仿真、测试和校验,直到达到预期的结果。使用FPGA器件可以大大缩短系统的研制周期,减少资金投入。更吸引人的是,采用FPGA器件可以将原来的电路板级产品集成为芯片华中科技大学硕士学位论文级产品,从而降低了功耗,提高了可靠性,同时还可以很方便地对设计进行在线修改。FPGA器件成为研制开发的理想器件,特别适合于产品的样机开发和小批量生产,因此有时人们也把FPGA称为可编程的ASIC。FPGA出现后受到电子设计工程师的普遍欢迎,市场发展十分迅速。XILINX、ALTERA和ACTEL等公司都提供高性能的FPGA芯片。各大FPGA厂商不断采用新技术来提高FPGA器件的容量,降低器件的成本,增强软件的性能。如今,FPGA器件广泛应用于通信、自动控制、信息处理等诸多领域。313EDA设计方法通常进行EDA设计,具有两种不同的方法,第一种方法称为自底向上BOTTOMUPJ的设计方法。在传统的电路设计中,一个系统的硬件设计过程是从选择具体的逻辑元件开始的,用这些元件首先进行逻辑设计,完成系统内各个独立功能模块的设计,再把这些独立的功能模块连接起来,总装成个系统。上述的过程是从最底层的设计开始,因而叫做自底向上的设计过程,这种设计方法的一般特征是1采用通用的逻辑元、器件2在系统硬件设计的后期进行仿真和调试3主要设计文件是电路原理图。自底向上的设计方法适合于设计规模小,电路实现原理比较成熟的系统,对于大的集成电路系统,这种方法很难成功。另一种方法就是自顶向下TOPDOWN的设计方法。利用该方法实现一个完整的硬件设计任务。首先由总设计师将系统划分为多个可以操作的模块,编制出相应的模型,通过仿真验证后,再把这些模块分配给下层的设计师。这就允许许多设计师同时设计一个硬件系统中的不同部分,而由上级设计师对下一层设计者完成的设计用行为级上层模块进行验证。使用VHDL语言,采用自顶向下的设计方法具有如下优点华中科技大学硕士学位论文1能够处理复杂设计;2节省殴计时间3提高设计质量;4有可能用FPGA迅速得到设计的样机;5有较好的设计重用性。自顶向下的设计是从系统开始的,把系统划分为基本单元,然后每个基本单元再划分为下一个层次的基本单元,直到可用EDA元件库的元件来实现为止。在不同的层次具体模块的设计所用的方法有所不同,在高层次上往往采用一些行为级的模块通过仿真加以验证,其主要目的是对系统性能的总体考虑和各个模块的指标分配,并非具体电路的设计。而当设计的层次比较接近时,功能描述往往用电路逻辑来实现,这时的模块不仅需要通过仿真加以验证,还需要进行综合、优化、布线和后仿真。总之具体电路是自底向上逐步实现的。EDA工具不仅支持硬件描述语言也支持电路原理图输入,有效利用这两种方法是提高设计效率的办法之。314FPGA设计流程FPGA设计流程包括设计准备、设计输入、功能仿真、设计处理、时序仿真和器件编程及测试等六个步骤,如图31所示。1设计准备在系统设计之前,首先要进行方案论证、系统设计和器件选择等准备工作。设计人员根据任务要求,如系统的功能和复杂度,对工作速度和器件本身的资源、成本及连线的可布性等方面进行权衡,选择合适的设计方案和合适的器件类型。一般采用自顶向下的设计方法。2设计输入根据工程师的设计方法将所设计的功能描述给EDA软件。常用的设计输入方法有原理图输入、硬件描述语言HDL输入、波形输入和状态机输入。我们用VHDL语言的输入方式。华中科技大学硕士学位论文3功能仿真功能仿真也口Q前仿真。用户所设计的电路必须在编译之前进行逻辑功能验证,此时的仿真没有延时信息,对于初步的功能检测非常方便。如果发现错误,则返回设计输入中修改逻辑设计。4设计处理设计处理是核心环节。在设计处理过程中,FPGA开发系统将对设计输入文件进行逻辑化简、综合优化、适配和布局布线,最后产生编程用的编程文件。5时序仿真时序仿真又称后仿真或延时仿真。将布局布线的时延文件反标到设计中,使仿真既包含门延时,又包含线延时信息。能较好地反映芯片的实际工作情况。6器件编程及测试设计开发的最后步骤就是在线调试或者将生成的配置文件写入芯片中进行测试。图31FPGA设计流程华中科技大学硕士学位论文32XC2S300E芯片简介本次设计分析是基于XILINX公司的XC2S300E芯片进行的,XC2S300E芯片是XILINX公司SPARTANIIE系列FPGA中的一员,SPARTANIIE系列用户可编程门阵列,由以下5个主要的可配置部件构成1输入输出块IOBS;2可配置逻辑块CLBS;3内部块RAMBLOCKRAM4延时锁相环DLLSDELAYLOCKEDLOOPS;5灵活的内部连接结构。图32显示了S鼢R,RANIIE系列FPGA顶层逻辑结构。口口口口口口口口回00咖咖垂苦鲁猢斟回姗幽口口口口口口口咖叩叩回乏匹菩耐耄旺季D图32SPARTANIIE系列FPGA顶层逻辑结构可配置逻辑块CLBSCONFIGURABLELOGICBLOCK构成了主要的逻辑结构,并与23D口口凸口DD口D口口口叩叩团图固N刚华中科技大学硕士学位论文所有的支持结构和布线结构有机结合在一起。输入输出块LOBSINPUTOUTPUTBLOCK分布在所有的逻辑单元和存储单元的周围,以便能够方便地对芯片内外的信号进行布线,存储在静态存储单元的数据控制所有的可配置逻辑单元和所有的内部布线资源,这些数据在芯片上电的时候载入到存储单元中,如果需要改变设备的功能,也可以重新载入数据。SPA盯AN1IE系列FPGA的输入输出块IOBS,支持多种标准的输入输出信号,这些高速的输入输出结构支持存储器和总线结构的多种状态。每一个输入输出块IOB有3个寄存器,这些寄存器既可以作为边沿触发的D型触发器,也可作为电平敏感的锁存器,每个输入输出块LOB都有一个时钟信号为它的三个寄存器所共享,另外,每一个寄存器都有它们自己的时钟允许信号。如图33所示。图33SPARTANLIE系列FPGA的IOBS除了时钟信号和时钟允许信号以外,这三个寄存器还共享同一个SETRESET信号,对任何一个寄存器来讲,这个信号既可配置成一个同步的SET信号,也可以配置成一个同步的RESET、异步的PRESET或者异步的CLEAR信号。图中没有显24,姒惟辨O;B华中科技大学硕士学位论文示出来的还有信号的极性,这由软件来控制,输入输出缓冲器和所有的输入输出块IOBS的控制信号具有相对独立的极性控制。每个引脚都附有可选的上拉或下拉电阻。在配置FPGA以前,所有的输出都被强制拉到高阻状态。下拉电阻在此时也不起作用,但是输入信号在此时可能被拉到高电平状态。构成SPARTANIIE的可配置逻辑块CLBS的基础是逻辑单元LCLOGICCELL,一个LC包括4个输入函数发生器传输逻辑,存储单元,输入驱动和输出驱动。每个CLB具有四个LC,它们构成相似的两片SLICE结构。片的结构如图34所示。图34逻辑单元的一片结构SPARTANIIE的函数发生器是一个四输入的查找表LUTLOOKUPTABLE,另外,它也可以作为一个16X1的同步RAM,而且,同一片中的两个函数发生器可以构成一个162或32L同步RAM,也可以构成一个16L的双端口的同步RAM,查找表还可以提供一个16比特的移位寄存器,这很适合于用来捕获高速或突发数据,华中科技大学硕士学位论丈也适合于用在数字信号处理中来存储数据。SPARTANIIE的存储单元既可以配置成个边沿触发的D型触发器,也可以配置成一个电平敏感的锁存器。D一触发器可以由片内的函数发生器或通过函数发生器的片输入来驱动。每片由一个同步的SR和BY信号组成,SR强制将存储单元初始化到配置中要求的状态,BY是将其初始化与配置中相对的状态。两个信号也可以配置成异步信号。所有的控制信号都是可以独立反向的,并由片内的两个触发器所共用。SPARTANIRE系列的FPGA与几块大的RAM存储器协同工作。块RAM按列的形式排列,每个芯片有两列,分别分布在芯片的两个垂直边缘。这就扩大了芯片的垂直宽度。每一列存储器的宽度是个CLB的四倍。每个块RAM都是有4096BIT存储空间的全同步双口RAM,每个口各有独立的控制信号,块RAM的配置方式十分灵活,可以是12入1出、11入2出、10入4出、9入8出或8入16出。另外,由于双口RAM的灵活性,一个9入8出亦可配置成两个独立的8入8出RAM。这对于实现AES算法中字节代替运算是十分方便的。图35显示了双口RAM的结构。RAMB4一SSWEAENAFLSTADOA滞O】CLKAADD0】DIA0】WEBEN8RSTBDOB借01CLKBADDFTI3I010LB阱01图35双口块RAM结构最大路径延时限制了芯片的最高工作频率,不过SPARTANIIE系列的FPGA具有一个优化的可编程布线结构和布线优化算法,这两者的结合缩短了芯片的最大路径延时,使得系统的工作达到最佳状态。华中科技大学硕士学位论文;33AES算法实现的模块划分331算法实现的任务AES算法的功能是将数字信息按128比特分组进行加密,并且支持三种密钥长度128比特、192比特和256比特。我们用FPGA硬件实现AES算法,任务就是对输入数据进行加密或解密。在设计中不包括对信息进行分组的功能,而是假设信息已是按128比特分组输入的,不需要硬件去分组。为简单起见,我们只对128比特长度密钥做详细论述,因分析方法同样适用于192比特及256比特长度密钥。另外,AES解密算法的性能被认为远不如加密算法的性能重要,在分组密码的许多应用中,比如消息认证码MAC、消息加密的CFB模式或OFB模式等4引。所以,在以下的讨论中,我们只考虑加密算法的FPGA实现,但分析方法同样适用于解密算法的设计,因AES密码的结构满足其逆的变换序列与该密码本身的变换序列相同,解密算法中的变换用该密码中变换的逆来代替,以及在密钥调度中做一个变换即可。在既实现AES加密算法又实现解密算法的硬件电路中,部分电路可以供两个函数共同使用。综上所述,我们的任务是用FPGA硬件实现AES加密算法,使它能够对128比特的输入数据按128比特的密钥进行AES算法的加密。332硬件加密系统的基本构成随着人们对高容量、高速度、高安全性和物理安全相结合的需求的增长,利用硬件实现的加密设备在新世纪将会得到极大的发展,硬件实现的密码体系通常包括以下几个部分1加密解密单元用于对输入的数据加密或者解密;2密钥发生器把一个外部密钥变换成内部可用的加密密钥;3输入输出接口单元输入要加解密的数据,暂存加解密后的数据4控带4单元;输出所有的控制信号。27华中科技大学硕士学位论文2;J自;一333系统划分的依据和结果前面提到我们采用了自顶向下的设计方法,所以需要对设计先进行模块划分,在划分的过程中,我们主要依据功能来划分模块,根据AES算法的基本过程和加密算法的一般结构,将系统划分成以下五个相对独立的子模块1输入接口模块;2控制模块;3加密运算模块;4密钥扩展模块;5输出接口模块。控制信号明文密钥图36AES系统的结构其中,输入接口模块用来输入数据和密钥;控制模块用来输出所有的控制信号;加密运算模块用来对输入的数据进行加密;密钥扩展模块负责对输入的初始密钥进行扩展,并将扩展的结果按一定的方式传送到加密运算模块输出接口模块用来将加密后的数据输出。图36显示了整个系统的结构。334系统的接口描述我们的设计目的是实现AES算法。在设计过程中,考虑到输入输出接口过多对28华中科技大学硕士学位论文我们选择合适的器件是不利的,所以在设计时输入、输出数据总线宽度定为16位,并且数据输入和密钥输入共用相同的数据端口,尽量降低了我们对器件引脚资源的要求。综合考虑各种因素,我们设计的AES算法模块具有的输入输出引脚如表3所示。表31系统的引脚描述端口名称端口宽度BIT作用描述TOPCLOCKL外部时钟输入TOP_RESETL系统异步复位信号TOP_ITL_DK16数据或密钥输入TOP_KEYIN1指示当前输入的是密钥TOPDATAINL指示当前输入的是数据TOP_OUTD16加密后的数据输出TOPDONE1指示完成了一组数据的加密运算根据表3L的描述,我们可以画出整个系统的输入输出示意图,如图37所示。匦霎里一TOPCLOCKTOPAES围翌巫一1却脚T匝亘重里畛一TOPIND畸【5OLLOP_DONE匦登重E一TOPKEYINTOPOUTD150阿西莨丽R一TOPDANTN图37顶层模块示意图335各子模块的引脚描述及实现1输入接口模块输入接口模块的主要任务是将外部的控制信号传送到控
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年全民(生态日环境保护及相关规定)知识考试题库与答案
- 现代汉语修辞学练习题库及答案解析
- 2024年质量月(全面质量管理)安全生产知识考试题库与答案
- 2025年全国电力安全工作规程考试题及参考答案
- 2024年高等教育自学考试管理经济学试题及答案
- 摇滚马绅士游记课件
- 四川省成都市青白江区2024-2025学年八年级下学期期末语文试题(解析版)
- 摄影剪辑培训课件
- 牛生产技术试题及答案
- 2025企业租赁合同范本
- 红星照耀中国选择题及答案50道
- 开放性伤口止血包扎技术课件
- 重症患者中心静脉导管管理中国专家共识(2022版)
- 氯甲烷泄露应急预案
- 2.PaleoScan详细操作流程
- 林业有害生物防治知识竞赛真题模拟汇编(共184题)
- 苏州银行总行信息科技部招聘考试真题2022
- 铜陵横港化工园区总体发展规划(2021-2035年)环境影响报告书
- 专升本数学教材(新)
- GB/T 11547-2008塑料耐液体化学试剂性能的测定
- (完整版)人工智能介绍课件
评论
0/150
提交评论