高级加密标准AES.ppt
《高级加密标准AES.ppt》由会员分享,可在线阅读,更多相关《高级加密标准AES.ppt(37页珍藏版)》请在第壹文秘上搜索。
1、第5章 高级加密标准(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/
2、rijmen/rijndael/2.AES的设计原则的设计原则 能抵抗所有已知的攻击;能抵抗所有已知的攻击;在各种平台上易于实现,速度快;在各种平台上易于实现,速度快;设计简单。设计简单。Rijndael是一个分组密码算法,其是一个分组密码算法,其分组长度和密钥长度相互独立,都可以分组长度和密钥长度相互独立,都可以改变。改变。分组长度分组长度(bit)128192256密钥长度密钥长度(bit)128192256表表 1.分组长度和密钥长度的不同取值分组长度和密钥长度的不同取值3.AES 算法的一般描述算法的一般描述Rijndael Round的构成的构成ByteSubstitutionByt
3、eRotationMixColumn+RoundKey一般的轮变换一般的轮变换ByteSubstitutionByteRotation+RoundKey最后一轮的轮变换最后一轮的轮变换3.AES 算法加密部分的实现算法加密部分的实现明文分组和密钥的组织排列方式明文分组和密钥的组织排列方式 0 1 2 3 4 5 6 789 10 11 12 13 14 150481215913261014371115Fig 1.以明文分组为以明文分组为128bits为例组成的阵列为例组成的阵列04 81215 91326 10 1437 11 1504812 16 2015913 17 21261014 18
4、 22371115 19 2304812 16 20242815913 17 2125292610 14 18 2226303711 15 19 232731Fig 2.以明文分组(或密钥)为以明文分组(或密钥)为128bits、192bits、256bits为例组成的阵列为例组成的阵列 一些相关的的术语定义和表示一些相关的的术语定义和表示 状态(状态(State):):密码运算的中间结果称为状态。密码运算的中间结果称为状态。State的表示:状态用以字节为基本构成元素的矩的表示:状态用以字节为基本构成元素的矩阵阵列来表示,该阵列有阵阵列来表示,该阵列有4行,列数记为行,列数记为Nb。Nb=分
5、组长度(分组长度(bits)32 Nb可以取的值为可以取的值为4,6,8,对应的分组长度为,对应的分组长度为128,192,256 bits。密码密钥(密码密钥(Cipher Key)的表示:)的表示:Cipher Key类类似地用一个似地用一个4行的矩阵阵列来表示,列数记为行的矩阵阵列来表示,列数记为Nk。Nk=密钥长度(密钥长度(bits)32 Nk可以取的值为可以取的值为4,6,8,对应的密钥长度为,对应的密钥长度为128,192,256 bits。Fig 3.当当Nb=6时的状态和时的状态和Nk=4时的密钥布局时的密钥布局a0,0a0,1a0,2a0,3a0,4a0,5a1,0a1,1
6、a1,2a1,3a1,4a1,5a2,0a2,1a2,2a2,3a2,4a2,5a3,0a3,1a3,2a3,3a3,4a3,5Nb=6Block Length=192 bitsK0,0K0,1K0,2K0,3K1,0K1,1K1,2K1,3K2,0K2,1K2,2K2,3K3,0K3,1K3,2K3,3Nk=4Key Length=128 bitsFig 4.分组长度和密钥长度均为分组长度和密钥长度均为128 bits时的时的Rijndael加密算法框图加密算法框图Data/Key AdditionRnd0Rnd1Rnd8FinalRndKeyScheduleCipherTextKeyPla
7、inText表表 2.轮数(轮数(Round)的不同取值)的不同取值轮数轮数(Round)Block Length=128Block Length=192Block Length=256Key Length=128101214Key Length=192121214Key Length=256141414用伪代码表示的用伪代码表示的Rijndael轮变换轮变换一般的轮变换一般的轮变换Round(State,RoundKey)ByteSubstitution;ByteRotation;MixColumn;AddRounKey;结尾轮变换结尾轮变换FinalRound(State,RoundKey
8、)ByteSubstituion;ByteRotation;AddRoundKey;ByteSubstitution(字节替代字节替代)ByteSubstitution是一个非线性的字节替代,独立地在是一个非线性的字节替代,独立地在每个状态字节上进行运算。它包括两个变换。每个状态字节上进行运算。它包括两个变换。1.在有限域在有限域GF(28)上求乘法逆,上求乘法逆,00映射到它自身。映射到它自身。2.在在GF(2)上进行下面的仿射变换:上进行下面的仿射变换:y0 1 1 1 1 1 0 0 0 x0 0y1 0 1 1 1 1 1 0 0 x1 1y2 0 0 1 1 1 1 1 0 x2 1
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 高级 加密 标准 AES