




已阅读5页,还剩60页未读, 继续免费阅读
(电力电子与电力传动专业论文)基于fpga的aes加密系统及其在plc中的应用.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
a bs t r a c t t h ec o n t r o lp r o c e d u r e so fe l e c t r i c a lt r a n s m i s s i o ns y s t e m a sb u s i n e s s s e c r e t ,a r ef a c i n gt h eg r e a ts e c u r i t yc h a l l e n g e s av a r i e t yo fm e a n so f d e c r y p t i o nc a u s e dag r e a td e a lo fh a r m m o r ea n dm o r ea t t e n t i o nh a sb e e n p a i dt ot h ep r o t e c t i o no ft h ec o n t r o lp r o c e d u r e s i nt h i sd i s s e r t a t i o n f p g a b a s e de n c r y p t i o nf o rc o n t r o ls y s t e mo ft h ee l e c t r i c a lt r a n s m i s s i o n s y s t e mi ss t u d i e d f p g a d e s i g nh a sa d v a n t a g e so ff l e x i b l e ,f a s td e l i v e r ya n ds h o r t d e v e l o p m e n tc y c l ea n dl e s si n v e s t m e n t t h i sp a p e rs e l e c t st h ef p g aa s t h eh a r d w a r ep l a t f o r mo f e n c r y p t i o no nt h ep o w e rt r a n s m i s s i o ns y s t e m t h ea e se n c r y p t i o ns y s t e mi st h ec o r ep a r to ft h i sa r t i c l e t h e d i s s e r t a i o n p r e s e n t s t h em a t h e m a t i c s f o u n d a t i o n ,d e s i g np r i n c i p l e , s t r u c t u r eo fa e sa l g o r i t h m t h e na n a l y z et h ed e s i g ns k i l l f i n a l l y , t h e i m p l e m e n t a t i o n s k i l l sa r ep r o p o s e d t h ed i s s e r t a t i o nd i s c u s s e st h e h a r d w a r ei m p l e m e n t a t i o nm e t h o d ,t h ef e e d b a c km o d ea n dn o n f e e d b a c k m o d eo ft h ea e sa l g o r i t h md e t a i l e d l y s e v e r a l i m p l e m e n t a t i o ns t r u c t u r e s s u c ha sb a s i cs t r u c t u r e ,c i r c u l a rs t r u c t u r e ,i n t e r i o rp i p e l i n es t r u c t u r ea n d e x t e r i o rp i p e l i n es t r u c t u r ea r er e c o m m e n d e d t h ed i s s e r t a t i o ns e l e c t s n o n f e e d b a c km o d ew i t ht h ec o m b i n a t i o no fi n t e r n a la n de x t e m a lp i p e l i n e s t r u c t u r ea n dt a k e st o p - d o w nd e s i g nm e t h o dt or e a l i z et h es y s t e m t h e s y s t e m i sd e v i d e di n t os e v e r a l m o d u l e s ,i n c l u d i n gc o n t r o lm o d u l e , i n p u t o u t p u tm o d u l e ,e n c r y p t i o n d e c r y p t i o nm o d u l e ,k e ye x p a n s i o n m o d u l e t h e k e yt e c h n o l o g i e s a n d i m p l e m e n t a t i o n s c h e m ea r e d e t e r m i n e db yt h ea n a l y s i so ft h e s em o d u l e s t h ed i s s e r t a t i o ns e l e c t st h e v e r i l o gh d l a sah a r d w a r ed e s c r i p t i o nl a n g u a g e t h ep a p e rt e s t i f i e st h es y s t e mb yt i m i n gs i m u l a t i o n ,a n dt h ed a t ao f t h et e s tr e s u l ti sr e c o r d e d i nt h ee n d ,t h ee n c r y p t i o n d e c r y p t i o ns y s t e mi s a p p l i e dt od e s i g nak i n do fh y d r a u l i c - b r i c k m a c h i n ec o n t r o lp r o c e d u r e s e n c r y p t i o nm a c h i n e t h ed i s s e r t a t i o na n a l y z e st h e s t r u c t u r ea n dt h e p r o t o c o lo ft h ee n c r y p t i o nm a c h i n e ,a n dt h ed e t a i l e dp r o g r a m m ei sg i v e n t h eh a r d w a r ee n c r y p t i o nm e t h o di su s e d ,i n s t e a do fs o f t w a r ee n c r y p t i o n m e t h o d ,t oi m p r o v et h es e c u r i t yo fp r o c e d u r e so fc o n t r o ls y s t e m k e yw o r d s :e l e c t r i c a lt r a n s m i s s i o ns y s t e m ;f p g a ;a e s ;v e r i l o g h d l ; m o d u l e 原创性声明 本人声明,所呈交的学位论文是本人在导师指导下进行的研究 工作及取得的研究成果。尽我所知,除了论文中特别加以标注和致谢 的地方外,论文中不包含其他人已经发表或撰写过的研究成果,也不 包含为获得中南大学或其他单位的学位或证书而使用过的材料。与我 共同工作的同志对本研究所作的贡献均己在论文中作了明确的说明。 作者签名:玺塞1日期:皇翌曼年五月上日 学位论文版权使用授权书 本人了解中南大学有关保留、使用学位论文的规定,即:学校 有权保留学位论文并根据国家或湖南省有关部门规定送交学位论文, 允许学位论文被查阅和借阅;学校可以公布学位论文的全部或部分内 容,可以采用复印、缩印或其它手段保存学位论文。同时授权中国科 学技术信息研究所将本学位论文收录到中国学位论文全文数据库, 并通过网络向社会公众提供信息服务。 作者签名:立导师签名丝日期:型年月三日 硕士学位论文 第一章绪论 第一章绪论 随着信息化进程,信息已经成为一种财富或者一种资源。信息安全的重要性 已经得到普遍的认知和空前的重视,而加密技术作为信息安全的关键技术,亦在 严酷的考验下得到充分的发展。在计算机处理速度和网络传输速度不断提高的前 提下,加密技术不但要考虑安全性,还要考虑加密速度。在此要求下,以硬件作 为加密平台成为首选。f p g a 具有处理速度高、设计周期短、开发费用低的特点, 成为非常适合的加密硬件平台。 本文重点研究a e s 加密算法的硬件高速实现问题。本章作为本文的开篇, 介绍了加密的发展现状,介绍了密码学的发展,a e s 算法及其硬件实现的状况 及发展,压砖机及其控制系统的特点,并概述了本文所作的研究。 1 1 加密算法简介 密码的研究和应用已经有几千年的历史,但密码学作为一门系统科学则仅仅 是上个世纪5 0 年代的事情。1 9 4 9 年,信息论的创始者s h a n n o n 发表的著名论文 “保密通信的信息理论”将密码学的研究纳入了科学的轨道,使密码学正式成为 一门科学。1 9 7 6 年,美国著名学者d i f f i e 和h e l l m a n 的经典论文“密码学的新 方向奠定了公钥密码学的基础,它标志着密码学的研究和实践由传统走向现 代。1 9 7 7 年,美国公布并实施的数据加密标准d e s ,揭开了密码学的神秘面纱, 使密码学的研究和应用从秘密走向公开,吸引了众多学者和技术人员对其进行研 究,从此密码学成为了一门蓬勃发展的学科。而今,随着因特网的迅速普及,信 息安全问题引起了全人类的重视,密码学作为信息安全的核心更得到了长足发 展。 密码体制的分类方法有很多,一般是按照加密算法与解密算法所使用的密钥 是否相同的原则分为:对称( 私钥) 密码体制和公钥密码体制。前者的安全性基于 复杂的非线性变换,是目前商业领域比较重要而流行的一种加密体制;而后者一 般是基于一个数学上的难题实现,适用于开放的使用环境,可以安全方便的实现 数字签名和认证。对称密码体制从加密模式上又可分为:序列密码和分组密码。 序列密码是使用短的密钥比特串生成长的密钥比特串,然后再与明文按位模2 相 加产生密文,它的安全基于密钥的随机性。 应用在网络通信环境中的数据加密方法更多的是采用分组密码体制。分组密 码算法通常由加、解密算法和密钥扩展算法两部分组成。密钥扩展算法用于生成 m 个子密钥。加密算法由一个密码学上的函数f 对数据分组进行一系列变换之后, 每次与一个子密钥迭代,总共迭代r 次完成对一个数据分组的加密。 硕士学位论文第一章绪论 1 2 硬件平台f p g a 概述 在数字化、信息化的时代,数字集成电路应用得非常广泛。随着微电子技术 与工艺的发展,数字集成电路从电子管、晶体管、中小规模集成电路、超大规模 集成电路逐步发展到今天的专用集成电路( a s i c ) 。a s i c 的出现降低了产品的生 产成本,提高了系统的可靠性,减少了产品的物理尺寸,推动了杜会的数字化进 程。但是a s i c 因其设计周期长,改版投资大,灵活性差等缺陷制约着它的应用 范围。硬件工程师希望有一种更灵活的设计方法,根据需要,在实验室就能设计、 更改大规模数字逻辑,研制自己的a s i c 并马上投入使用。这就是可编程逻辑器 件提出的基本思想。f p g a 的概念首先是由美国x i l i n x 公司提出,该公司于1 9 8 5 年推出第一个现场可编程门阵列器件,现在已经历了5 代的发展历程【2 】。 简化的f p g a 的结构由4 部分组成:输入、输出模块、二维逻辑阵列模块、 连线资源和内嵌存储器结构。输入、输出模块是芯片与外界的接口,完成不同电 气特性下的输入、输出功能要求;二维逻辑阵列模块是可编程逻辑的主体,可以 根据设汁灵活地改变连接与配置,完成不同的逻辑功能;连线资源连接所有的二 维逻辑阵列模块和输入、输出模块,连线长度和工艺决定着信号在连线上的驱动 能力和传输速度;内嵌存储器结构可以在芯片内部存储数据【3 】。 当代f p g a 有以下特点【4 j : 1 规模越来越大。 2 开发大投资小。 3 f p g a 一般可以反复地编程、擦除。 4 保密性能好。在某些场合下,根据要求选用防止反向技术的f p g a 能很好 地保护系统的安全性和设计者的知识产权。 5 新型f p g a 内嵌c p u 或d s p 内核,支持软硬件协同设计,可以作为片上 可编程系统( s o p c ) 的硬件平台。 6 采用f p g a 设计a s i c 电路,用户不需要投片生产,就能得到合用的芯片; f p g a 可做其它全定制或半定制a s i c 电路的中试样片;f p g a 内部有丰富的触 发器和f o 引脚;f p g a 采用高速c h m o s 工艺,功耗低,可以与c m o s 、t t l 电平兼容。 可以说,f p g a 芯片是批量系统提高系统集成度、可靠性的最佳选择之一【5 1 。 1 3 高级加密标准a e s 1 3 1 算法的诞生 1 9 7 2 年,国家标准局( n b s ) 拟定了一个旨在保护计算机和通信数据的计 2 硕士学位论文第一章绪论 划,开发一个单独的标准密码算法;1 9 7 3 年公开征集算法;1 9 7 4 年第二次公开 征集算法,i b m 的l u c i f e r 的变形当选;1 9 7 6 年1 1 月被宣布成为联邦标准d e s , 随后投入使用。d e s 是世界上第一个公认的实用分组密码算法标准。迄今为止, 在针对d e s 的攻击中最有效的方法还是穷举,遍历密钥空间。 随着密码分析水平、芯片处理能力和计算技术的不断进步,d e s 密钥长度 太短的缺陷就显露了出来,由于计算机硬件的速度越来越快,最终能在合理的时 间内完成对5 6 比特密钥的强力攻击。对于另一种由d e s 衍生出来的算法一三 重d e s ,它的安全性并不意味着建立在1 6 8 比特的密钥之上,研究表明,可以 将其转化为对1 0 8 比特密钥的攻击。最重要的是,三重d e s 的加密和解密时间 消耗较大,不能很好的适应飞速增长的实时信息加密要求。d e s 的安全强度已 经难以适应新的安全需要,其实现速度、代码大小和跨平台性均难以继续满足应 用需求。 1 9 9 7 年1 月2 日,n i s t ( 美国国家标准与技术研究所) 开始筹划a e s 算法 的开发研究工作,旨在取代d e s ,作为保护2 1 世纪敏感政府信息的新型加密标 准,并于同年9 月1 2 日正式发出征集算法的公告。1 9 9 7 年9 月1 2 日,为了替 代即将退役的d e s ,n i s t 在联邦记事上发出了征集a e s 算法的公告。1 9 9 9 年3 月2 2 日,公布了5 个候选算法: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 。 2 0 0 0 年l o 月2 日,由比利时密码学家j o a nd a e m e n 和v i n c e n tr i j m e n 提交的 r i j n d a e l 算法被确定为a e s 算法,该算法的名字是由两位提出者的名字合成的。 r i j n d a e l 算法以其简洁,高效,安全的设计被接纳为a e s ,并于2 0 0 1 年1 1 月2 6 号正式公布在f i p ( f e d e r a li n f o r m a t i o np r o c e s s i n gs t a n d a r d s ) 出版的f i p s p u b1 9 7 中。作为d e s 的继承者,a e s 自从被接纳为标准之日起就已经被工业界、银行 业和行政部门作为事实上的密码标准【6 】。 n i s t 指出,从密码学的角度,这5 个候选算法都找不到弱点,之所以最终 选择r i j n d a e l 是因为它是安全性、性能、效率、实现方便性和灵活性的最佳组合。 尤其是因为以下原因f 7 1 : ( 1 ) 在各种计算机的软、硬件平台上性能良好; ( 2 ) 在反馈和非反馈模式中性能良好; ( 3 ) 密码设置时间准确; ( 4 ) 密码极为敏捷、快速; ( 5 ) 不需要太多记t l ; ( 6 ) 在电源攻击和定时攻击时有极好的防护。 硕士学位论文第一章绪论 1 3 2 高级加密标准的研究现状 目前对高级加密标准算法的研究主要集中在三个方面:设计原理、安全性能 分析和统计性能分析。设计原理方面主要研究算法在设计时所遵循的原则、算法 采用的整体结构以及各组成部分的数学基础和性能。安全性能研究主要集中在分 析抵抗现有已知密码攻击方法上,主要包括强力攻击、差分密码分析、线形密码 分析、专用攻击和插值攻击。目前对差分密码分析和线形密码分析研究得比较深 入,对专用攻击主要集中在基本攻击原理上,对插值攻击的研究主要集中在寻找 算法的代数表示。统计性能主要是研究算法随机化数据的能力,目前有关r i j n d a e l 算法的统计性能方面的研究还较少,所见统计测试在测试项目的选择和测试数据 的构造上也不尽相同,但大多数测试都基于n i s t 统计测试工具包进行。 高级加密标准自2 0 0 2 年5 月生效以来,经历了从软件实现到硬件实现的发 展过程。在新的标准诞生初期,人们多是用软件实现,因此对软件实现的研究也 比较深入,而且实现起来也比较容易。随着网络传输速度提升为g i g a b i t s 数量级 时,对算法的执行速度的要求也越来越高,基于软件的密码算法便显得性能不足, 需要采用硬件加密的方式,它采用一些特殊的优化技术( 如流水线和查找表等) , 可以极大的提高数据的流量并减少密钥的生成时间;另外,用硬件实现加密算法 及与之相关的密钥生成过程,并且封装到芯片中,因为它们不易被外部攻击者读 取或更改,会有较高的物理安全性。因此,基于硬件实现的密码算法就受到业界 的普遍关注。以f p g a 为代表的可重构硬件以其自身所固有的特点既具有硬 件的安全性和高速性又有软件的灵活性和易维护性,已经成为分组密码算法硬件 实现的热点研究方向1 8 j 。 1 4 压砖机及其控制系统加密 压砖机主要用于陶瓷墙地砖的压制成形,是集机、电、液为一体化的高技术、 高精度的现代化陶瓷墙地砖生产线中的关键设备。压砖机具有压制成形力大、整 机刚度大、压制制度( 压制力、压制速度、压制时间) 灵活可调、各种参数数字 显示、压制过程监控、故障跟踪显示、程序存储方便、自动化程度高、性能可靠 等优点,可以满足不同墙地砖压制成形工艺的要求,因此在陶瓷墙地砖生产中得 到了广泛的应用一j 。 压砖机的控制系统主要由p l c ( 可编程逻辑控制器) 组成,p l c 控制系统 具有可靠性高,抗干扰能力强的优点。而且编程简单,使用方便,功能完备,通 用性强。p l c 控制系统在工业控制中得到了极为广泛的应用。 目前p l c 控制系统中普遍存在的问题是程序的保密性不强,而且程序的保 密大多是通过软件加密的方法实现,容易被破解,对p l c 控制系统的知识产权 4 硕士学位论文第一章绪论 保护带来很大损害。以压砖机p l c 控制系统为例,在业内普遍的付款方式是分 期付款。即压砖机对生产量进行统计,在达到一定生产量后p l c 启动密码,等 待付部分款项后才能得到当前密码;然后再生产一段时间后又启动新的密码。而 目前很多压砖机使用客户并不向生产厂家支付应付的款项,而是寻找p l c 的破 解软件,修改内部程序来逃避支付“尾款”的义务。而这些“尾款 往往是生产 厂家利润的大部分。 1 5 本论文的研究意义 随着通信和计算机技术的发展,用户对信息的安全存储、安全处理和安全传 输的需求越来越迫切。压砖机的控制系统是由p l c 程序控制,其程序做为一种 知识产权,其经济价值往往相当不菲。基于f p g a 的具有加密功能的控制系统具 有相当大的发展前景。 1 6 课题研究工作内容及论文结构安排 本论文研究重点a e s 算法的硬件高速实现方面。研究内容主要有: ( 1 ) 研究系统结构,进行f p g a 总体设计; ( 2 ) 具体对a e s 算法的加、解密系统的f p g a 设计进行代码的编写; ( 3 ) 进行系统仿真,综合编译及测试,得出性能数据和测试数据; ( 4 ) 基于f p g a 的a e s 加、解密系统的扩展与应用。 本文后继各章节安排如下: 第二章是a e s 算法简介,简要介绍了高级加密标准a e s 的设计原理, 详细论述了a e s 算法的算法描述,包括算法的整体结构,算法的步骤以及基本 变换,最后,简析了算法的安全性和算法本身的性能;第三章与第四章是a e s 加、解密系统的设计分析,详细分析了这个系统的设计,对各个模块的设计均作 了具体的论述,包括f p g a 实现系统的分析、系统的整体结构设计、各系统分支 模块设计以及算法的简化;第五章是a e s 加、解密系统的f p g a 设计及仿真验 证,简要介绍了开发环境和所选用的f p g a 芯片;重点阐述了实现此系统的成果, 给出了仿真测试结果和综合编译结果。第六章描述了本论文的应用前景,并给出 了一种应用本论文加、解密系统设计的压砖机控制系统加密机的设计方案;第七 章是结论与展望,对本论文所做的工作进行总结,同时指出了实现中的局限以及 今后的研究和发展方向;在论文的最后附上致谢、参考文献以及在攻读硕士学位 期问发表的学术论文的情况。 硕士学位论文第二章a e s 算法简介 第二章a e s 算法简介 a e s 加密算法是一种对称加密算法,其安全性高且易于实现,本论文选取 其作为各种控制系统中程序保密用的加密算法。 2 1a e $ 算法设计原则 密码系统的实现是极其困难的,即使经验丰富的专家也会设计出一些几年后 被攻破的系统。一个重要问题是缺乏测试。没有已知的方法可以测试一个系统是 否安全,能够做到的最好的方法就是公布该系统然后等待其他专家来攻击它【9 】。 a e s 算法是当前密码算法设计最高水平的反映,设计者在进行算法设计时 主要考虑了以下三点: 1 要能抵抗所有已知的攻击方式。 2 在各平台上具有良好的性能,如较快的速度、编码要紧凑等。 3 设计要简单。 第一点强调的是安全性原则,而后两点强调的是实现性原则,这是a e s 算 法所遵循的两个重要的原则。a e s 算法在整体结构上采用的是替代置换( s p ) 网络的迭代结构方式,在安全性方面能抵抗各种攻击。下面就分别从这两个方面 对a e s 算法的设计原理进行说明。 2 1 1 安全性原则 针对某一特定的分组密码算法,其攻击的方法可分为通用攻击方法和专用攻 击方法。所谓通用攻击方法就是对所有的分组加密算法攻击都有效的方法,而专 用攻击方法只针对某特定的算法有效,一般与具体密码算法的某种特定的结构有 关。 为了能有效地抵抗通用攻击,设计现代实用密码算法时,一般遵循仙农 ( s h a n n o n ) 提出的混淆( c o n f u s i o n ) 原则和扩散( d i f f u s i o n ) 原则【l o 】。同时, 混淆和扩散也是分组密码算法的设计理论中保证明文能够可靠、隐蔽的最基本技 术。 所谓混淆性原则是指所设计的密码应使密文对密钥和明文的依赖关系相当 复杂,以至于这种依赖性对于密码分析者来说是无法利用的。混淆用于掩盖明文、 密文和密钥之间的关系。这可以挫败通过研究密文以获取冗余度和统计模式的企 图。做到这一点最容易的方法是通过代替,一个简单的代替密码,如单字母密码, 其中每一个确定的明文字符被一个密文字符所代替。现代的代替密码更复杂:一 个长的明文分组被代替成一个不同的密文分组,并且代替的机制随明文或者密钥 6 硕士学位论文第二章a e s 算法简介 中的每一位发生变化。好的混淆可以使这种统计关系变得复杂以致强有力的密码 分析工具都不能有效。 所谓扩散性原则是指所设计的密码应使得密钥的每一位数字能影响密文的 许多位数字,以防止对密钥进行逐段破译,同时明文的每一位数字也能影响密文 的许多位数字,以便隐藏明文的数字统计特性。扩散通过将明文冗余度分担到密 文中使之分散开来,把单个明文位和密钥位的影响尽可能扩大到更多的密文中 去。密码分析者寻求这些冗余度将会更难。产生扩散最简单的办法是换位( 也称 为置换) 。为了能抵抗专用攻击,则需要对算法的自身结构进行分析,消除其中 的不安全因素。 a e s 算法在设计时,设计者通过轮函数的多轮迭代,为抵抗通用攻击提供 了必要的混淆和扩散,同时这种多轮迭代的方法也消除了a e s 算法面向字节处 理的不安全因素,有效地抵抗了对算法的专用攻击。 2 1 2 实现性原则 一个好的密码算法要求设计简单,结构合理,易于用软件或硬件实现,也就 是说密码具有良好的实现性。 一个密码算法若要用软件实现,则尽量使密码算法针对某一特定的长度进 行,子块的长度应尽可能地适应软件编程,如采用8 位、1 6 位、3 2 位的子块, 这是因为在软件实现中,单个比特之间的置换是难于实现的,除了使用子块外, 密码算法应采用一些易于软件实现的运算,如标准处理器能直接处理的加、减、 乘、移位运算等。密码算法若要用硬件实现,那么要求密码算法的结构尽可能地 紧凑,轮变换尽可能地一致,这样就便于用a s i c 或f p g a 实现;同时在设计时, 使加密和解密过程尽可能地相似,这样就可以用一个功能模块同时实现加密和解 密。 a e s 算法的运算是针对字节进行的,密码运算也非常简单,并且结构紧凑, 每一轮变换也基本一致,易于用软件或硬件实现,因此具有良好的实现性。 2 2 数学基本知识 a e s 的加、解密和密钥扩展中有时需要对字节( 8 比特) 进行操作,有时需 要对4 字节字进行操作。该算法首先定义了在有限域g ( 2 8 ) 上的一组加、乘运 算,基本单元为l 字节和4 字节。 2 2 1 字节运算 有限域中的元素可以采用不同方式描述,在这罩我们采用特征多项式的方式 来描述。一个字节a 7a 6a 5a 4a 3a 2a la o 可以看作是一个系数属于 o ,1 ) 的多项 7 硕士学位论文第二章a e s 算法简介 式a 7 x 7 + a 6 x 6 + a s x 5 + a 4 x 4 + a 3 x 3 + a 2 x 2 + a l x + a o 。根据取值的不同,有限域g ( 2 8 ) 中共有2 5 个字节和2 5 6 个多项式一一对应。例如某字节为1 6 进制5 7 h ( 二进制 数表示为0 1 0 1 0 111 ) ,其对应的多项式为x 6 + x 4 + x 2 + x + 1 定义两个字节的和为这 两个字节的逐位异或所得的值。例如, 0 x 5 7 + 0 x 8 3 = 0 x d 4 ,最口“0 1 0 1 0 1l l ”o “1 0 0 0 0 0 1l = “1 1 0 1 0 1 0 0 ”。 定义两个字节的乘积为它们所对应的多项式的乘积,再与一个8 阶的不可约 的二进制多项式r e ( x ) 相模。不可约的多项式是在有限域g ( 2 8 ) 上除了l 和自身 外不存在其他的因子。其中m ( x ) = x 8 + x 4 + x 3 + x + l 是有限域g ( 2 8 ) 中的不可约 多项式例如,0 x 5 7x0 x 8 3 = 0 x c l ,即( x 6 + x 4 + x 2 + x + 1 ) x ( x 7 + x + 1 ) = x 1 3 + x 1 1 + x 9 + x 8 + x 7 + x 7 + x 5 + x 3 + x 2 + x + x 6 + x 4 + x 2 + x + 1 = x 1 3 + x 1 1 + x 9 + x 8 + x 6 + x 5 + x 4 + x 3 + 1 = ( x 1 3 + x 1 1 + x 9 + x 8 + x 6 + x 5 + x 4 + x 3 + 1 ) m o d ( x 8 + x 4 + x 3 + x + 1 ) = x 7 + x 6 + x 3 + 1 定义字节在有限域g ( 2 8 ) 上的乘法逆为:当( “x ) b ( x ) ) m o dm ( x ) = l 时 b ( x ) 称为a ( x ) 的逆元【l l 】。 2 2 2 四字节运算 和上述定义类似,一个4 字节字 a 3a 2a la o ) ( a i 为一个字节) 和一个次数小 于4 的多项式a 3 x 3 + a 2 x 2 + a l x + a o 相对应。 定义两个4 字节字的加法为对应多项式相应系数之和,即 a ( x ) = a 3 x j + a 2 x 2 + a l x + a o ,b ( x ) = b 3 x j + b 2 x z + b t x + b o a ( x ) + b ( x ) = ( a 3ob 3 ) x + ( a 2ob 2 ) x z + ( a lobo x + ( a oob o ) 定义两个4 字节字的乘法为对应的两个多项式相乘再模d ( x ) = x 4 + l ,即 ( a ( x ) b ( x ) ) m o dd ( x ) = c ( x ) = c 3 x j + c 2 x oc l x + 0 0 c o = ( a o xb o ) o ( a lxb oo ( a 2 b e ) o ( a 3 b 3 ) c l = ( a l b o ) o ( a o x b oo ( a 3 x b 2 ) o ( a 2 b 3 ) c 2 = ( a 2 b o ) o ( a l b oo ( a o x b 2 ) o ( a 3 b 3 ) c 3 = ( a 3xb o ) o ( a 2 b 1 ) o ( a l b 2 ) o ( a o b 3 ) 用矩阵表示为表达式( 2 1 ) 。 白 q 巳 龟 口3 q 口2 口l q口2 呸口l 口3口2 口。吩 口l 口o 8 玩 岛 如 6 3 ( 2 1 ) 硕士学位论文第二章a e s 算法简介 2 3 整体结构 分组加密算法是由轮变换的函数通过多次迭代构成的,轮变换的构成包括非 线性层,扩散层和密钥调度等元素。这些设计是基于仙农提出的设计原则:非线 性替代与线性混合函数交替进行。这样结合的结果导致来自密码的重要的统计特 性是高度相关的和敏感的类型,即通过混合变换的扩散和混淆产生充分的混合, 使加密后的分组统计特性分布更均匀。 2 3 1 迭代密码算法的结构分类 为了符合安全性和实现性原则,现代实用分组密码算法一般采用了轮函数多 次迭代的结构,也称为迭代密码算法。尽管所有的迭代密码算法在采用迭代方式 上是一致的,但具体密码算法的整体结构却不尽相同。 分组迭代密码的整体结构大致有三类:f e i s t e l 网络结构,如d e s ,c a s t - 2 5 6 , d e a l 等;替代置换( s p ) 网络结构,如s q u a r e ,s a f e r + ,s e r p e n t 等;除了这两 种结构以外的算法归为第三类。最近几年s p 结构应用比较广泛。其中f e i s t e l 网 络结构和s p 网络结构如图2 1 所示。 子密钥 ( 8 ) f e is t e l 网络结构( b ) s p 网络结构 图2 1 分组迭代密码的2 种结构 2 3 1 1f e i s t e l 网络结构 f e i s t e l 网络结构是h o r s tf e i s t e l 在设计l u c i f e r 分组密码时发明的,并由于 i e d 的广泛使用而流行,对一个分组密码长度为2 n 的r 轮f e i s t e l 型密码,其中 一轮的加密过程如图2 1 ( a ) 所示。 图中的。表示两个长度为n 的比特串的异或,f 表示迭代密码的轮函数,k 表示第i 轮子密钥,“,蹦表示第i 轮输入同时也是第i 1 轮输出的前n 位和后 位,其中l i r 。对图2 1 ( a ) 中每一轮变换有: l i = r i 1 r i = l i lo f ( r i - 1 k i ) 9 硕士学位论文 第二章a e s 算法简介 由此可知,f e i s t e l 型算法必须经过两轮变换才能改变输入的每一位,这就说 明了采用这种网络结构的密码算法扩散似乎就有点慢,但f e i s t e l 型的密码算法 加密和解密相似,所以具有良好的实现性能。图2 一l ( a ) 的网络结构左边和右边的 比特串长度是相同的,所以称这种网络结构为平衡的f e i s t e l 网络结构,近年又 出现了左右两边比特串长度不等的f e i s t e l 网络结构,称为非平衡f e i s t e l 网络结 构【1 2 1 。 2 3 1 2 替换置换( s p ) 网络结构 s p 网络结构是近几年来应用比较广泛的一种结构,这种网络的结构非常清 晰,每一轮由非线性层s 层和线性层p 层组成,s p 型密码的一轮加密过程如图 2 1 ( b ) 所示。s p 型密码的每一轮变换中,首先将s 层作用于轮输入使其混淆,然 后经过p 层作用使之得到扩散,图2 1 ( b ) 中的子密钥放在s 层,在实际实现 中子密钥可放在其他位置。s p 型密码具有一个很大的优点,就是当给定s 层和 p 层的密码指标后,可以从理论上给出抵抗差分密码攻击和线性攻击的能力,除 此之外,经一轮变换后,轮输入的每一位均得到了扩散,从这个角度来看,s p 型密码比f e i s t e l 型密码能更快的扩散。 2 - 3 1 3a e s 算法的结构 a e s 算法的结构紧凑、规整,加密和解密过程相似,算法结构属于s p 结构, 组成其每一轮轮变换的4 个函数分别属于s 层、p 层和密钥加层。图2 2 所示是 a e s 加、解密过程。 图2 2a e s 加、解密过程 l o 硕士学位论文第二章a e s 算法简介 s 层是由字节代换函数( s u b b y t e ) 组成,该函数的作用主要是确保多轮迭 代后结果的高度混淆,所以也称为非线性层。p 层由行移函数( s h i f l r o w s ) 和列 混合函数( m i x c o l o u m n s ) 组成,这两个函数的主要作用是确保多轮迭代后的高 度扩散,所以又称为线性层。密钥加层由密钥加法函数( a d d r o u n d k e y ) 组成, 该层主要起到子密钥的控制作用,即实现了密钥与明文的结合。许多密码分析方 法对迭代密码的第一轮和最后一轮与中间的轮的分析方法不同,一般根据假定的 密钥值和明文、密文进行运算来剥去迭代密码的首轮和末轮,为此,a e s 算法 对第一轮和最后一轮进行了特殊的处理:第一轮之前加了一个密钥控制下的前期 变换;而最后一轮则去掉了其中的列混合运算。因此,a e s 算法在总体结构上 采用了第一轮和最后一轮特殊对待的s p 结构。 2 3 2 加、解密的输入输出 a e s 算法的输入输出是以字节为单位的一维数组。对加密来说,其输入是 一个明文分组和一个初始密钥,输出是一个密文分组。对解密而言,输入是一个 密文分组和一个初始密钥,而输出是一个明文分组。a e s 算法的轮变换及其每 一步均作用在中间结果上,我们将中间结果称为状态。状态是可以形象地表示为 个矩阵的字节数组,该状念矩阵共有4 行。状态矩阵中的列数记为n b ,它等 于数据分组长度的比特数除以3 2 。将明文分组记为 p op lp 2p 3p 4 p 4 n b i 其中,p o 表示明文分组的第一个字节,p 4 n b 1 表示明文分组的最后一个字节。 类似地,将密文分组记为 c oc lc 2c 3c 4 c 4 n b 1 将状态记为 s i j ,0 i 4 ,0 一 j n b 这里,s i ,i 表示位于状态矩阵第i 行第j 列的字节。输入的字节依次映射到状 态字节s o ,0 ,s l ,0 ,s 2 ,0 ,s 3 ,0 ,s o ,i ,s l ,l ,s 2 2 ,s 3 ,l 一上。当加密时,输入是一个明 文分组,映射是 s i j 。p i + 4 j ,0 i 4 ,0 一j n b 当n b = 4 时,明文状态矩阵的映射如表2 1 所示。 类似地,当解密时,输入是一个密文分组,映射是 s i j 2 c i + 4 j ,o i 4 ,0 一j n b 当加密结束时,密文分组以相同的顺序从状态矩阵中取出,即 c i = s i m o d 4 ,o i 4 n b 硕士学位论文第二章a e s 算法简介 p op 4p ap l z p lp 5p 9p 1 3 p 2p 6p l op 1 4 p 3 p 7 p l l p 1 5 k ok 4k 8k l :k 1 61 2 0 k ll ( 5k 9k 1 3k 1 7k 2 1 1 2k 6k l ok 1 4k 1 81 2 2 1 3k 7k l lk 1 5k 1 91 2 3 表2 - 1 明文一状态矩阵的映射表2 - 2 初始密钥一密钥矩阵的映射 当解密结束时,明文分组以相同的顺序从状态矩阵中取出,即 p i = s i m o ( 1 4 i 4 ,o i 4 n b 类似地,初始密钥被映射到两维密钥矩阵上。 密钥矩阵可以形象地表示为一个与状态矩阵类似的矩阵,该矩阵数组也有4 行。密钥矩阵的列数记为n k ,它等于初始密钥长度的比特数除以3 2 。 当n k = 6 时,初始密钥密钥矩阵的映射如表2 2 所示。 a e s 算法是一种迭代分组密码,采用的是代替置换网络( s p ) 。它是对一个 1 2 8 比特的数据块进行加、解密操作。作为高级加密标准的r i j n d a e l 算法,其数 据分组长度和初始密钥长度都是可变的,但为了满足a e s 的要求,将分组长度 固定为1 2 8 比特,密钥长度为1 2 8 1 9 2 2 5 6 比特,相应的轮数为1 0 1 2 1 4 轮。进 行a e s 加、解密运算时,首先将输入的1 2 8 比特数据排成4 4 的字节矩阵,然 后根据不同的密钥长度,进行1 0 ( 1 2 8 比特密钥) ,1 2 ( 1 9 2 比特密钥) 或1 4 ( 2 5 6 比特密钥) 轮的运算。轮的数目由密钥长度决定,其关系如表2 3 所示。 密钥长度分组大小轮数 441 0 6 4 1 2 8 4 1 4 2 4a e s 算法描述 表2 - 3 加密轮数一密钥长度关系 2 4 1 字节替换( s u b b y t e ) 字节替换:字节替换( s u b b y t e ) 是一个基于s 盒的非线性置换,它通过一 个简单的查表操作将输入或中问状态的每一个字节映射为另一个字节。 s 盒在本质上可以看做是一个多输入的布尔函数,对于其性能的研究集中 在:线性结构与退化性;非线性度与非线性次数;雪崩准则与扩散准则【1 3 之3 1 。 1 2 硕士学位论文第二章a e s 算法简介 在设计字节代换时所遵循的准则为: ( 1 ) 非线性度 相关性:输入一输出之间的最大相关幅度必须尽可能小。 差分传播概率:差分传播概率的最大值必须尽可能小。 ( 2 ) 复杂度:在g f ( 2 8 ) 中字节代换应当具有复杂的代数表达式。 每个字节都可以表示成一个8 x1 的列向量,s u b b y t e 就是通过s 一盒独立地 作用在每个字节上的非线性变换。该变换由两个子变换构成: a 对每个字节求其在有限域g ( 2 8 ) 上的乘法逆。注意,元素 o o ,的映射为 其本身。 b 对每个字节做有限域g ( 2 8 ) 上的仿射变换。仿射变换f 定义如表达式( 2 2 ) 所示( 注意,a o ,a l ,a 2 ,a 3 ,a 4 ,a s ,a 6 ,a 7 就是状态中每个字节乘法逆元的比 特表示) : 6 7 6 6 6 5 玩 岛 乞 6 l 6 b x 状态矩阵经过s u b b y t e 变换作用后,其效果如图2 3 所示。 图2 3 字节替换示意图 ( 2 - 2 ) 0 1 1 1 0 o 1 1 所徘绒以纵现仍踟 0 o 0 1 1 1 1 l 0 0 1 1 1 l l 0 0 1 1 1 1 1 0 0 1 1 l 1 1 0 0 0 l 1 1 l 0 o o l 1 1 1 0 0 o l 1 1 1 0 0 o 1 1 1 l 0 0 0 l l 1 1 硕士学位论文第二章a e s 算法简介 2 4 2 行移变换( s h i f t r o w s ) s h i f l r o w s 是线性变换,它和列混合运算相互影响,在多轮变换后,使密码 信息达到充分的扩散。行移变换是在状态矩阵的每个行间进行的,是状态矩阵中 的行按照不同的偏移量进行循环左移运算,第0 行循环左移c o 字节,第1 行循 环 左移c l 字节,第2 行循环左移c 2 字节,第3 行循环左移c 3 字节,从而使 第i 行第j 列的字节移到位置第i 行第( j c i ) m o dn b 列。移动
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030中国工业危险废物处理行业运营趋势与前景动态预测报告
- 三只小猪绘本课件教学
- 期货从业资格之《期货基础知识》过关检测参考答案详解
- HRBP招聘专家面试题库及答案
- 难点解析-北师大版8年级数学上册期末试卷及参考答案详解【达标题】
- 小儿颅内出血
- 启东医院面试常见问题及答案精 编
- 南京数学面试全攻略:各类问题解析与答案
- 宁波浙东建材集团有限公司校园招聘85人公开引进高层次人才和急需紧缺人才笔试参考题库答案详解版审定版
- 小儿腺样体肥大课件
- 2025上海市八年级升九年级数学暑假提升讲义:相似三角形压轴题(六大题型)原卷版
- 2025年工业互联网工程技术人员考核试题题库及答案
- 供货组织方案范文
- 2025年《药品经营和使用质量监督管理办法》培训试题及答案
- 2024年云南省县乡教师选调考试《教育学》真题汇编带解析(原创题)
- 羊肚菌栽培及其管理课件
- 教师身体健康管理指南
- 2025高空作业考试试题及答案(完整版)
- 出租车车辆GPS定位承包合同范本
- 焊接机器人教学培训课件
- 肝脓肿病人护理
评论
0/150
提交评论