- 1、本文档共46页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
高级加密标准(AES) AES的起源 AES的设计原则 AES算法描述 1. AES的起源 1997年9月,NIST征集AES方案,以替代DES。 1999年8月,以下5个方案成为最终候选方案:MARS, RC6, Rijndael, Serpent, Twofish。 2000年10月,由比利时的Joan Daemen和Vincent Rijmen提出的算法最终胜出。( Rijndael 读成Rain Doll。) http://www.esat.kuleuven.ac.be/~rijmen/rijndael/ AES竞争过程及RIJNDAEL概述 鉴于DES的没落,美国政界和商界一直在寻求高强度、高效率的替代算法。1997年,美国国家标准技术研究所(NIST)为了履行其法定职责,发起了一场推选用于保护敏感的(无密级的)联邦信息的对称密钥加密算法的活动。于是密码学界的精英们纷纷加入竞争的行列,提交自己设计的分组密码算法。与此同时,NIST制定了用于比较候选算法的评估准则。该评估准则分为三大项:(1)安全性;(2)成本;(3)算法和实现特性。 1998年,NIST宣布接受15个候选算法并提请全世界密码学界协助分析这些候选算法。分析的内容包括对每个算法的安全性和效率进行初步检验。 NIST通过对这些初步研究结果的考察,于1999年8月20日选定了MARS、RC6、RIJNDAEL、Serpent、Twofish等5个算法作为参加决赛的算法。 经公众对决赛算法进行更进一步的分析评论,NIST决定推荐RIJNDAEL作为高级加密标准(AES)。2000年10月2日,美国商业部长Norman Y. Mineta宣布,“RIJNDAEL数据加密算法”最终获胜,同时为此而在全球范围内角逐了3年的激烈竞争随即结束。 RIJNDAEL的数学基础 有限域GF(28); 系数在GF(28)上的多项式 。 有限域GF(28) GF(28)上的元素通常采用字节值来表示。但为了更方便地运算,此处对GF(28)上的元素采用传统的多项式表示法。由b7b6b5b4b3b2b1b0构成的一个字节b看成系数在{0, 1}中的多项式: b7x7+b6x6+b5x5+b4x4+b3x3+b2x2+b1x+b0。 在多项式表示中,GF(28)上两个元素的和仍然是一个次数不超过7的多项式,其系数是原来两个元素对应系数的模2加(比特异或)。 要计算GF(28)上的乘法,必须先确定一个GF(2)上的8次不可约多项式;GF(28)上两个元素的乘积就是这两个多项式的重模积。(次数模此8次不可约多项式,系数模2)。 此8次不可约多项式称为模多项式。对于RIJNDAEL密码,模多项式确定为 m(x)= x8+x4+x3+x+1 。 模多项式的二进制表示为9比特100011011,十六进制表示为“11B” 。以下是一个乘法的例子: (x6+x4+x2+x+1)×(x7+x+1)=x7+x6+1(mod2, mod m(x)); 或者×= ; 或者“57”ד83”=“C1” 。 另外,对于u∈GF(28),u≠0,计算u的乘法逆元v可直接采用GF(2)上多项式的欧几里德扩充算法得 u(x)u(x)+m(x)h(x)=1(mod2), 或 u(x)u(x)=1(mod2, modm(x)), 其中u=u(x),v=v(x)。所计算出的v就是u的乘法逆元,即u(x)×v(x)=1或者u×v=1。 系数在GF(28)上的多项式 4个字节的向量可以表示为系数在GF(28)上的次数小于4的多项式。多项式的加法就是对应系数相加;换句话说,多项式的加法就是4字节向量的逐比特异或。 多项式的乘法运算必须要取模M(x)=x4+1,这样使得次数小于4的多项式的乘积仍然是一个次数小于4的多项式。即 (a3x3+a2x2+a1x+a0)×(b3x3+b2x2+b1x+b0) =c3x3+c2x2+c1x+c0 , 其中 c0=a0b0+a1b3+a2b2+a3b1; c1=a0b1+a1b0+a2b3+a3b2; c2=a0b2+a1b1+a2b0+a3b3; c3=a0b3+a1b2+a2b1+a3b0。 注意所有的加法和乘法运算都是在域GF(28)中的。可以将上述计算表示为 定理 系数在GF(28)上的多项式 b3x3+b2x2+b1x+b0 是模(x4+1)可逆的,当且仅当以下矩阵在GF(28)上可逆。 2. AES的设计原则 能抵抗所有已知的攻击; 在各种平台上易于实现,速度快; 设计简单。 3. AES 算法的一般描述 3. AES 算法加密部分的实现 一些相关的的术语
文档评论(0)