Rijndael算法深入的研究doc.doc

上传人:创****公 文档编号:3804392 上传时间:2019-07-19 格式:DOC 页数:29 大小:336KB
下载 相关 举报
Rijndael算法深入的研究doc.doc_第1页
第1页 / 共29页
Rijndael算法深入的研究doc.doc_第2页
第2页 / 共29页
Rijndael算法深入的研究doc.doc_第3页
第3页 / 共29页
Rijndael算法深入的研究doc.doc_第4页
第4页 / 共29页
Rijndael算法深入的研究doc.doc_第5页
第5页 / 共29页
点击查看更多>>
资源描述

1、I购买论文和程序请加 QQ:631633191 登录 发邮件到目录摘要 .1Abstract.21 绪论 .31.1 最初阶段 .31.2 AES:范围和意义 .31.3 AES 制定过程的启动 .31.3.1 第一轮评估 .41.3.2 评估准则 .51.3.3 安全性、代价、5 个最终的候选者 .51.4 选择 .62 有限域 .72.1 群、环、域的介绍 .72.1.1 群 .72.1.2 环 .82.1.3 域 .82.2 含有有限个元素的域 .82.3 域上的多项式 .82.3.1 GF(28)的定义 .82.3.2 加法 .92.3.3 乘法 .93 Rijndael 的描述 .

2、103.1 Rijndael 和 AES 的区别 .103.2 加、解密的输入/输出 .103.3 Rijndael 的结构 .113.4 轮变换 .123.4.1 步骤 SubBytes .123.4.2 步骤 ShiftRows .143.4.3 步骤 MixColumns .143.4.4 密钥加法 .163.5 轮的数目 .163.6 两轮 Rijndael 的解密 .173.7 等价解密算法 .184 AES 加密举例 .195 AES 算法的实现 .245.1 C#语言概述 .24II购买论文和程序请加 QQ:631633191 登录 发邮件到5.2 C#语言的特点 .245.3

3、 C#的弱点 .265.4 C#AES 算法的实现 .266 结束语 .27参考 文献 .28致 谢 .291购买论文和程序请加 QQ:631633191 登录 发邮件到高级加密标准 Rijndael 算法的分析及实现摘要:随着计算机和通信技术的发展,用户对信息的安全存储、安全处理和安全传输的需求越来越迫切。随着攻击手段的日益提高和计算机计算速度的增长,原有的 DES 密码体制由于密钥长度太短,无法满足需要的安全强度。最新的密码体制 AES 具有简洁、实现速度快、安全性高等优点,是分组密码加密体制的一个相当好的标准。本文主要对美国高级加密标准 Rijndael 算法进行了比较深入的研究,包括

4、算法的代数性质。主要成果有 :1 对 Rijndael 算法进行了详细的介绍,包括算法的设计原理、设计原则,并对国内外的研究现状进行了总结2 针对 AES S 盒的设计特性,详细的分析了其代数性质,给出了 S 盒的 一个性质,并发现了其 8 个布尔函数之间的等价性,为进一步分析 AES 提供了理论基础。3 研究了 Rijndael 算法 S 盒、列变换及其逆运算、整个轮变换的优化方法,从运算单位、数据访问时间和简化矩阵运算等方面提高算法的实现效率。将移位寄存器实现高效流密码的思想用于分组密码 Rijndael 算法的实现,获得与查表法相当的效率。关键词: 分组密码; Rijndael 算法;A

5、ES; S 盒2购买论文和程序请加 QQ:631633191 登录 发邮件到The Analysis And Realization of Advance Encryption Stardard Rijndael AlgorithmicAbstract: With the development of the computer and communication technology, the users requirements for the informations safety storage, safety process and safety transmission are g

6、etting more and more exigent. With the improvement of attack method and computing, DES is not secure for its too short key in length. The Advanced Encryption Standard is a good cryptosystem for its simplicity, high rate and security.This paper has a detail investigation on Rijndael, including its al

7、gebraic proper .The central contribution is as follows:1 A detail introduction of Rijndael is presented, including the design principle and the current research result.2 The only nonlinear part S-box is analyzed and an important algebraic property is introduced. The equivalence of eight Boolean func

8、tions is found, and it is a help to analyze AES in detail.3 The optimisations of Rijndael Sbox, of ColumnMix and its inverse, and of the round transformation are thoroughly studied for purpose of better performance. Meanwhile, the implementation of such block cipher as Rijndael with shifting registe

9、rs is designed with performance as good as that of method of table-lookup.Keywords: Block Cipher ; Rijndael Algorithmic ; AES; S-Box;3购买论文和程序请加 QQ:631633191 登录 发邮件到1 绪论如果没有高级加密标准(AES)的制定过程,那么本章的主旨或许仍将仅是密码研究中一个名字绕口的深奥课题而已。因此,我们认为有必要首先对 AES 的制定过程进行简单的回顾。1.1 最初阶段1997 年 1 月,美国国家标准和技术研究所(NIST )发布公告征集新的加

10、密标准,AES 新的加密标准将取代旧的数据加密标准(DES)和三重 DES 而成为一个(美国)联邦信息处理标准(FIPS) 。与 DES、安全散列算法(SHA-1)和数字签名算法(DSA)的选择过程不同,NIST 宣布 AES 的选择过程将是公开的。任何人都可以提交侯选密码算法,任何符合要求的提案都将被仔细考虑。NIST 本身不进行任何的安全或效率评估,而是邀请密码学界攻击侯选算法并进行密码分析,并且任何感兴趣的人都可以评估侯选算法的实现代价。所有的结果都可以作为公开评论发给 NIST,并在NIST 的 AES 网站发布,或者也可以提交 AES 会议进行陈述。NIST 只是收集这些评论,将其作

11、为评选 AES 的依据,并在评估报告中促进它们被选择 13。1.2 AES:范围和意义FIPS 标准的官方范围非常有限,它只适用于美国联邦行政部门。进而,新的 AES 将仅仅用于保护包含敏感但非机密的信息的文档。然而,AES 预期的影响将远远不止这些:由于 AES 是 DES的继承者,它自从被接纳为标准之日起就已经被银行业、行政部门和工业界作为事实上的密码标准。Rijndael 被正式批准为政府标准的事实赋予了它一个官方的“质量证书“。目前,AES 已经提交国际标准化组织(ISO)和因特网工程任务组(IETF ) ,同时电子和电气工程师协会(IEEE)也正在考虑接纳其作为标准。甚至 Rijnd

12、ael 成为 AES 之前,已经有多家组织和公司声明接纳 Rijndael。欧洲电信标准协会(ETSI)在其 MILENAGE 算法集中集成了 Rijndael 模块,而且有多家密码库提供商也早已在它们的产品中包含了 Rijndael.Rijndael 被迅速接受的原因主要在于其可免费获得,而且能够在不明显降低带宽的前提下易于在大量的平台上实现。1.3 AES 制定过程的启动1997 年 9 月,AES 侯选提名的最终要求公布了。其最基本的功能要求是对称分组密码,分组长度为 128 比特,密钥长度支持 128、192 和 256 比特。AES 功能要求的一个早期版本也曾要求算法同时支持 192

13、 比特和 256 比特的分组长度,但是后来这个要求被去掉了。然而,由于提名要求中提及4购买论文和程序请加 QQ:631633191 登录 发邮件到鼓励额外的功能设计,因此一些设计者决定在设计中保留了可变的分组长度(例如 RC6 和 Rijndael) 。NIST 声明它所寻找的分组密码算法必须与三重 DES 一样安全,而且实现效率更高。NIST 的另一个强制要求是:一旦被选定为 AES,那么算法的提交者必须同意算法在全球范围内可以免费使用。为了获得正式的 AES 侯选者资格,设计者必须提供:1. 以算法形式给出的分组密码的完整书面说明。2. 基于 ANSI C 语言的参考实现及基于 ANCI

14、 C 和 Java 的数学优化实现。3. 一系列以知结果和 Monte Carlo 测试的实现,以及测试这些算法正确实现所对应的预期输出。4. 关于以下各项的声明:在硬件和软件环境下预计的计算效率、抗击密码分析攻击的一起强度、密码在不同应用中的优势和局限。5. 对抗以知密码分析攻击的强度分析。事实证明,提交一个“完整正确“的提案所需要的努力已经筛除了几个提案。在提交阶段的早期,Cryptix 小组声称将为所有提交的密码以及已知结果和 Monte Carlo 测试提供基于 Java 的实现。虽然这项慷慨的帮助减轻了设计者的负担,但是编辑一个提案所需要的努力对于某些设计者来说还是太繁重了。实际上,

15、所有提案都必须遵循的 AES 应用编程接口( API)在提交过程中两次被更新的事实更加重了设计者的工作负担。表 1 以字母顺序列出了按时完成并被接受的 15 个提案 11。1.3.2 评估准则第一轮的评估准则主要分为 3 类:安全性、代价和算法与实现特性。NISI 邀请密码学团体对不同的侯选草案实施攻击并进行密码分析,并且任何对此有兴趣的人都可以评估侯选草案的实现代价,结果可以作为公开评论发送给 NIST 或者递交给第二届 AES 会议陈述。NIST 负责收集这些评价,并籍此将选出 5 个草案进行下一轮评定。1.3.3 安全性、代价、5 个最终的候选者安全性 15在所在分类准则中是最重要的,但

16、可能而是最难评估的。除了很少的几个侯选草案表明存在一些理论上的设计缺陷外,绝大部分的侯选方案都声称其没有可证实的弱点 4。侯选草案的“代价” 被细分为不同的子类。第一类代价与知识产权(IP)问题有关。首先,所有的提交者被要求同意:一旦草案被选定为 AES。那么该密码必须可以免费使用。第二,每个提交者都被要求签署书面声明。同意不会对最终选定为 AES 的其他提案中的设计思想保留所有权或者行使专利权。第二类代价与侯选草案的实现和执行有关,它包括了以下多个方面:计算效率、程序尺寸、软件实现时的内存需求以及专用硬件实现的芯片面积。 5购买论文和程序请加 QQ:631633191 登录 发邮件到199

17、9 年 3 月,第二界 AES 会议在意大利的罗马召开。美国政府部门在欧洲召开关于美国一个未来标准的会议是不平常的,但是这也很容易解释:NIST 选择了与每年举行一次的快速加密研讨会合并召开,这两个会议的参加者性质大致相同,而且后者已经预定在罗马召开。本界会议收集的论文覆盖了密码攻击、密码交叉分析、智能卡以及所谓的算法短评,在关于密码攻击的分组讨论中表明了 Frog、Magenta 和 LOK197 没有满足 NIST 提出的安全需求;并且,此前已经知道 DEAL 也无法满足安全需求。而早先提交给 NIST 的一篇论文则证明了 HPC 的弱点,至此这 5 个侯选草案已经被排除研讨会后是一段相对

18、平静的时期,直到 NIST 于 1999 年 8 月公布入围的 5 个候选草案,它们是MARS、 RC6、 Rijndael、Serpent、Twofish 。3)单位元 e=14)逆元存在。1 的逆元素为 1 本身,即(1)(1)=1,或 1-1=1.同理(-1) -1=-1例 2 G0,1,n-1,关于 mod n 的加法是一个阿贝尔群。1. 封闭性;aG,b G,(a+b)mod n 只能在 G 中。2. 结合律显然成立。3. 单位元 e=04. aG,a -1=n-a,a+a-1=n0mod n例 3 a1,2, ,p-1,P 是一素数,则 mod p 关于乘法构成阿贝尔群。1. 封闭

19、律:aG,b G,ab=baG2. 结合律成立,而且 abba mod p3. 单位元 e=14. 逆元素。aG,gcdi,p=1,故存在整数 l 和 m 使 la+mp=1,故la1mod p,l=a-12.1.2 环环包含一个集合 R 和两个定义在 R 上元素的运算,这里分别用“+”和“”表示。为使 R 在这两个运算下构成环,其运算应当满足以下条件:1 是阿贝尔群。2R 上的运算“”满足封闭性和结合律。R 关于运算“”存在零元素。3运算“+”和“”服从分配律 )()(:, cbacbcba运算“”下的零元素通常用 1 表示。若运算“”具有可交换性。则环被称为交换环。6购买论文和程序请加 Q

20、Q:631633191 登录 发邮件到2.1.3 域结构 称为一个域,如果满足以下两个条件:1 是一个交换环。2 除了中的零元素 0 以外,F 中的其他所有元素关于运算“”在 F 中均存在逆元素。2.2 含有有限个元素的域有限域是具有有限个元素的域。集合中元素的个数称为域的阶。M 阶域存在当且仅当 m 是某元素的幂,即存在某个整数 n 和素数 p,使得 m=pn。p 称为有限域的特征。在 Rijndael 的描述中均使用以 2 为特征的有限域,并一直用符号“ ”表示 2 特征域中的加法运算。2.3 域上的多项式域 F 上的多项式形如b(x)=bn-1xn-1+bn-2xn-2+b2x2+b1

21、x+b0x 称为多项式的变元,b iF 是多项式的系数。例 GF(2)| 8 中的多项式x6+x4+x2+x+1等价于比特串 01010111,亦即 16 进制表示中的 572.3.1 GF(28)的定义假设一个字节 b 由 b7b6b5b4b3b2b1b0 组成,我们可以把这些 bi 想象成一个 7 次多项式的系数,而这些系数不是 0 就是 1:b7 x7+ b6 x6+ b5 x5+ b4 x4+ b3 x3+ b2 x2+ b1 x + b0,例如,(57) 16 的二进制表示法为(0101,0111) 2 表示成多项式,则为:x6+ x4+ x2+ x + 1 .2.3.2 加法两个多

22、项式的加法,则是定义为相同指数项的系数和再模余 2,简单的说就是作 XOR 运算( 如, 1+1=0)。例如:(57)16+(83)16=(01010111)2+(10000011)2 = (11010100)2 = (D4)16或是(x 6+x4+x2+x+1) + (x7+x+1) = x7+x6+x4+x22.3.3 乘法在乘法里面,多项式相乘之后的结果很容易造成溢位的问题,解决溢位的方式是把相乘的结果,再模余一个不可分解的多项式 m(x)。在 Rijndael 中,定义一个这样子的多项式为m(x)=x8+x4+x3+x+1 或是(11B) 167购买论文和程序请加 QQ:6316331

23、91 登录 发邮件到例如:(57)16(83)16 = ( x6+ x4+ x2+ x + 1) ( x7+ x + 1) = x13+ x11+ x9+ x8+ x7+x7+ x5+ x3+ x2+x+x6+ x4+ x2+ x + 1= (x13+ x11+ x9+ x8+ x6+ x5+ x4+ x3+ 1) (x 7+ x6+ 1)mod (x 8+ x4+ x3+ x + 1)=(C1)16若把 b(x)乘上 x,得到 b7 x8+ b6 x7+ b5 x6+ b4 x5+ b3 x4+ b2 x3+ b1 x2 + b0x。若 b7=0,不会发生溢位问题,答案即是正确的;若 b7

24、=1,发生溢位问题,必须减去 m(x)。我们可以把这种运算表示为xtime(x),其运算方式为 left shift(若溢位则和(1B) 16 做 XOR 运算) ,例如:57 13 = FE57 02 = xtime(57) = AE57 04 = xtime(AE) = 4757 08 = xtime(47) = 8E57 10 = xtime(8E) = 0757 13 = 57 (010210) = 57 AE 07 = FE8购买论文和程序请加 QQ:631633191 登录 发邮件到3 Rijndael 的描述P2 P6 P10 P14P3 P7 P11 P15K0 K4 K8

25、K12 K16 K20K1 K5 K9 K13 K17 K21K2 K6 K10 K14 K18 K22K3 K7 K11 K15 K19 K23图 1 当 Nb=4、Nk=6 是状态和密码密钥的大致分布图3.3 Rijndael 的结构Rijndael 是一个密钥迭代分组密码 11,14,包含了轮变换对状态的重复作用。用 Nr 表示轮数,它依赖于分组长度和密钥长度。值得注意的是,本章中的轮变换包含了密钥加法,这样做的目的是使本章的描述与 FIPS 标准一致。根据 B.Gladman 的建议,我们对最初所提交的 AES 提案中描述的一些步骤的名称进行了修改。这些新的名称更加统一,已被 FIPS

26、 标准采用。同时也做了更进一步的改进,均为了使描述更加清楚、全面,但对分组密码本身没有做任何改变。Rijndael 的加密过程包括一个初始密钥加法,记作 AddRoundKey,接着进行 Nr-1 次轮变换Round,最后再使用一个轮变换 FinalRound。初始的密钥加法和每个轮变换均以状态 State 和一个轮密钥作为输入。第 i 轮的轮密钥记为 ExpandedKeyi,初始密钥加法的输入记为 ExpandedKey0。从CiherKey 的过程记为 KeyExpansion。Rijndael 的高级语言伪 C 符号描述见列表 1列表 1 使用 Rijndael 进行加密的高级算法Rijndael (State CipherKey )一个砖匠置换,该置换包含一个作用在状态字节上的 S-盒,用 SRD 表示 Rijndeal 所使用的特定的 S盒 9,10。图 2 给出了 SubBytes 步骤对于状态的影响。图 3 给出了用于表示 SubBytes 和它的逆InvSubByts 的示意图。SRD 的设计准则:在设计 SRD 时,所遵循的准则按照其重要性的大小依次为:1 非线性度1 相关性:输入-输出之间的最大相幅度必须尽可能小。2 差分传播概率:差分传播概率的最大值必须尽可能小

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育教学资料库 > 课件讲义

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。