java安全架构____AES加密原理(2)
转自百度百科:http://baike.baidu.com/link?url=M7pa7jAmotjxTnXdSO3Xt7BAGjDbsNM0lMWy7SDfKSo6l9rQiZ7EsGx5NFBtVlrUB2pscwq8TzdHgayYfe-Brq 收藏 查看 我的收藏 641有用+1已投票
-
aes
(高级加密标准)
编辑 锁定
- 中文名
- 高级加密标准 外文名
- Advanced Encryption Standard 提出者
- Joan Daemen、Vincent Rijmen 提出时间
- 1998年
- 应用学科
- 密码学 适用领域范围
- 计算机,网络安全 派生自
- Square 集成算法
- Anubis, Grand Cru 结 构
- 置换组合网络
目录
- 1沿革
- 2设计者
- 3形成过程
- 4设计思想
- 5密码说明
- 6加密标准
aes沿革
编辑 Rijndael是由Daemen和Rijmen早期所设计的Square改良而来;而Square则是由 SHARK发展而来。 不同于它的前任标准DES,Rijndael使用的是代换-置换网络,而非 Feistel架构。AES在软件及硬件上都能快速地加解密,相对来说较易于实作,且只需要很少的 存储器。作为一个新的加密标准,目前正被部署应用到更广大的范围。aes设计者
编辑 该算法为 比利时密码学家Joan Daemen和Vincent Rijmen所设计,结合两位作者的名字,以Rijndael之命名之,投稿 高级加密标准的 甄选流程。Rijdael的发音近于 "Rhinedoll,两位设计者的名字,参考荷兰语原发音可译为尤安·达蒙、文森特·莱蒙。(Joan不能译为女性化的名字“琼”。另外,西欧的姓名很多是有相同拉丁文或希腊文源头的,故译成中文是可能相同)aes形成过程
编辑 1997年4月15日,美国ANSI发起征集AES(advanced encryption standard)的活
Joan Daemen 与 Vincent Rijmen 动,并为此成立了AES工作小组。 1997年9月12日,美国联邦登记处公布了正式征集AES候选算法的通告。对AES的基本要求是: 比三重DES快、至少与三重DES一样安全、数据分组长度为128比特、密钥长度为128/192/256比特。 1998年8月12日,在首届AES候选会议(first AES candidate conference)上公布了AES的15个候选算法,任由全世界各机构和个人攻击和评论。 1999年3月,在第2届AES候选会议(second AES candidate conference)上经过对全球各密码机构和个人对候选算法分析结果的讨论,从15个候选算法中选出了5个。分别是RC6、Rijndael、SERPENT、Twofish和MARS。 2000年4月13日至14日,召开了第3届AES候选会议(third AES candidate conference),继续对最后5个候选算法进行讨论。 2000年10月2日,NIST宣布Rijndael作为新的AES。经过3年多的讨论,Rijndael终于脱颖而出。 Rijndael由比利时的Joan Daemen和Vincent Rijmen设计。算法的原型是Square算法,它的设计策略是宽轨迹策略(wide trail strategy)。算法有很好的抵抗差分密码分析及线性密码分析的能力。 aes设计思想
编辑 Rijndael密码的设计力求满足以下3条标准: ① 抵抗所有已知的攻击。 ② 在多个平台上速度快,编码紧凑。 ③ 设计简单。 当前的大多数分组密码,其轮函数是Feistel结构。 Rijndael没有这种结构。 Rijndael轮函数是由3个不同的可逆均匀变换
Rijndael (State, ExpandedKey) { AddRoundKey (State, ExpandedKey); for (i=1; i aes密码说明
编辑 严格地说,AES和Rijndael加密法并不完全一样(虽然在实际应用中二者可以互换),因为Rijndael加密法可以支持更大范围的 区块和密钥长度:AES的区块长度固定为128 比特,密钥长度则可以是128,192或256比特;而Rijndael使用的密钥和区块长度可以是32位的整数倍,以128位为下限,256比特为上限。加密过程中使用的密钥是由Rijndael密钥生成方案产生。 大多数AES计算是在一个特别的 有限域完成的。 AES加密过程是在一个4×4的 字节矩阵上运作,这个矩阵又称为“状态(state)”,其初值就是一个明文区块(矩阵中一个元素大小就是明文区块中的一个Byte)。(Rijndael加密法因支持更大的区块,其矩阵行数可视情况增加)加密时,各轮AES加密循环(除最后一轮外)均包含4个步骤:- AddRoundKey — 矩阵中的每一个字节都与该次轮秘钥(round key)做XOR运算;每个子密钥由密钥生成方案产生。
- SubBytes — 通过个非线性的替换函数,用 查找表的方式把每个字节替换成对应的字节。
- ShiftRows — 将矩阵中的每个横列进行循环式移位。
- MixColumns — 为了充分混合矩阵中各个直行的操作。这个步骤使用线性转换来混合每列的四个字节。
aes加密标准
编辑 对称密码体制的发展趋势将以分组密码为重点。分组密码算法通常由 密钥扩展算法和加密(解密)算法两部分组成。密钥扩展算法将b字节用户主密钥扩展成r个子密钥。加密算法由一个密码学上的弱函数f与r个子密钥迭代r次组成。混乱和密钥扩散是分组密码算法设计的基本原则。抵御已知明文的差分和线性攻击,可变长密钥和分组是该体制的设计要点。 AES是美国国家标准技术研究所NIST旨在取代 DES的21世纪的加密标准。 AES的基本要求是,采用对称分组密码体制,密钥的长度最少支持为128、192、256,分组长度128位,算法应易于各种硬件和软件实现。1998年NIST开始AES第一轮分析、测试和征集,共产生了15个候选算法。1999年3月完成了第二轮AES2的分析、测试。2000年10月2日美国政府正式宣布选中 比利时密码学家Joan Daemen 和 Vincent Rijmen 提出的一种密码算法RIJNDAEL 作为 AES. 在应用方面,尽管DES在安全上是脆弱的,但由于快速DES芯片的大量生产,使得DES仍能暂时继续使用,为提高安全强度,通常使用独立密钥的三级DES。但是DES迟早要被AES代替。流密码体制较之分组密码在理论上成熟且安全,但未被列入下一代加密标准。 AES加密数据块分组长度必须为128比特,密钥长度可以是128比特、192比特、256比特中的任意一个(如果数据块及密钥长度不足时,会补齐)。AES加密有很多轮的重复和变换。大致步骤如下:1、密钥扩展(KeyExpansion),2、初始轮(Initial Round),3、重复轮(Rounds),每一轮又包括:SubBytes、ShiftRows、MixColumns、AddRoundKey,4、最终轮(Final Round),最终轮没有MixColumns。- 参考资料
-
- 1. 高级加密标准 .维基百科[引用日期2013-05-30]
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
