版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精品文档1、AES加密算法基本流程AES算法的数据分组长度为128比特、密钥长度为 128/192/256比特。明文块Plain IcKlAdd Reund K'lRuivlKev IAdd Rcund KxtPkaiffl l eitSubs ti:ute BvtesSliitl Run*Mix CcilumiiB.,Add Rvuiid KcmInm MxCubtrmsi nverse Sub BvlssInverse Shift KqwsRM=laRmrnd NrRoundlk cyNrAdd Rwnd KeyK-三nd 一Cipher TextE n enp twinDccry
2、ph nnAES加解密包括Nr轮,前面Nr-1轮包含S盒变换、行移位、列混淆、轮密钥加4个阶段,最后一轮则少了列混淆这个阶段。Rijnadel(State, CipherKey)初始化KeyExpansion( CipherKey, ExpandedKey );/ 生成子密钥 AddRoundKey( State, ExpandedKey );/ 与子密钥位与 /前Nr-1轮 for(i =1; i < Nr; i+) ByteSub(State);/ S-盒 ShiftRow(State);/ 行被移位 MixColumn(State); 列被混叠 AddRoundKey (State
3、, ExpandedKey ); / 与子密钥位与 最后一轮ByteSub(State);ShiftRow(State);AddRoundKey (State, ExpandedKey );2、AES加密算法2.1、 状态、密钥、轮数 状态:军密过程中的中间数据。以字节为元素的矩阵,或二维数组。所有的操作都在状态上进行。01 Z-4| 11 13 1$ 14 15状态可以用以字节为元素的矩阵阵列表示,如上图所示该阵列有4Nb, Nb等于分组长度除以 4。符号说明:Nb 明密文所含的数据字数。Nk -密钥所含的数据字数。Nr 迭代轮数。轮数Nr与Nb和NkNrNb=6NB8Nk=4101214N
4、k=6121214Nk=81414142.1、 S盒变换S盒变换其实是一个查表的过程, 分别取一个字节的高 4位和低4位作为行值和列值(因 此是),然后在S盒中找到对应的字节替换之。该变换是一个非线性变换。这个非线性就体 现在S盒的构造上。S盒变换是AES的唯一非线性变换,是 AES安全的关键。关于S盒是按如下方式构造:1)初始化S盒,按行升序排列的字节初始化。行 x列y的字节是xy,行号和列号从 0 开始计数。2)求出每一个元素在 GF(2”)中的逆。00被映射为它自身。3)仿射变换。对上一步中的每一个字节的每一位作如下变换,Ci是字节0x63yi=xi + x(i+4)mod8 + x(i
5、+5)mod8 + x(i+6)mod8 + x(i+7)mod8 + ci 的第i位。该变换用矩阵表示如下所示:V。yiV2y3y4y5y6y71 0 i i i ii i i i 0 i0 00 00 0 i i i i x0 0 0 0 i i i xi i 0 0 0 i i x2 i i 0 0 0 i x3 i i i 0 0 0 x4 i i i i 0 0 x5 i i i i i 0 x6 0 i i i i i x7i i0 00 ii02.2、 行移位变换在行移位变换中,状态的第一行没有任何变化,第二行循环移位Ci字节,第三行循环移位 C2字节,第四行循环移位 C3字节。
6、位移量 Ci、C2和C3与分组长度 Nb有 关,如下表:对于不同分组长度的位移量NhClC2C3|-JI7361731 _34行移位举例如下所示:徜环才移1字节循环左移3字珏2.3、 列混合变换列混淆即是用一个常矩阵乘以第二步变换后的矩阵,以达到矩阵中每一个元素都是该元素原所在列所有元素的加权和。2 u? iM 川.% %:如也fl.,tJ'%蜀.1如,如01 (12 03 川$B(Li % 3二岗山此III祗112陷S" Si' Ji i4 句,士 ,“*ill 1)3叱/川为 5霜虬L现&忌出% = (2 %)© (3 JM) © 3
7、® 限/=i2*5H)e(33力=啊曲七6(2 , %)® U %) 凡=T 初)®2.4、 轮密钥加变换状态与轮密钥(16 byte)异或相加。轮密钥由种子密钥通过密钥调度算法产生得到,轮 密钥长度等于分组长度Nb。A»nAmjAiJ+JhkDJIiujIw 二lu_lJio.O'lln.iUtLlgA-i jiAyjAuAwK iiK iK -Ki -Bi.vBi iRi -Bij1AlLnAijKjjvKi.K KjjTh.R> kIftvRuAtjiAuAijA.UKiaECi.iIORwHuRuRinAi.3 + Ka.3 =日】
8、j (mod 2)3、密钥调度算法轮密钥是通过密钥调度算法从密钥中产生的,这其中包括两个部分: 密钥扩展和轮密钥选取。基本原理如下:1、所有轮密钥比特的总数等于轮数加1乘以分组长度(如128比特的分组长度和10轮迭代,共需要1408比特的密钥);2、将密钥扩展成一个扩展密钥;3、轮密钥按下述方式从扩展密钥中选取:第一个轮密钥由一开始的Nb个字组成,第二个轮密钥由接下来的Nb个字组成,如此继续下去。3.1 密钥扩展扩展密钥用数组WNb*(Nr+l)表示,前Nk个字是种子密钥,其它的密钥字通过递归定义生成。由于密钥扩展函数取决于Nk的值,我们分了Nk< 6和Nk>6两种情况。对于密钥扩
9、展,用类 C语言描述如下:KeyExpansion(byte key4*Nk, word wNb*(Nr+1), Nk) begin word temp i = 0while (i < Nk)wi = word(key4*i, key4*i+1, key4*i+2, key4*i+3) i = i+1end while1 = Nkwhile (i < Nb * (Nr+1)temp = wi-1if (i mod Nk = 0)temp = SubWord(RotWord(temp) xor Rconi/Nkelse if (Nk > 6 and i mod Nk = 4)
10、temp = SubWord(temp)end ifwi = wi-Nk xor tempi = i + 1 end while end 扩展算法如下:最前面的Nk个字是由种子密钥填充的。之后的每一个字Wj等于前面的字Wj-1的与Nk个位置之前的字Wj-Nk的而且对于 Nk的整数倍的位置处的字,在异或之前,对 Wj-1的进行如下变换:1、字节的循环移位RotByte,即当输入字为(a,b,c,d)时,输出字为(b , c, d, a )2、用S盒进行变换字中的每个字节3、异或轮常数 Rconi/Nk轮常量是一个字,这个字最右边三个字节总是0。每轮的轮常量均不同,其定义为Rconj=(RCj,0
11、,0,0),其中 RC1 = 1, RCj = 2*RCj-1,且乘法定义在域 GF(2”)上。j12345678910RC皿HEX)01020408102040801B363.2轮密钥的选择在进行密钥加时,密钥长必须与分组长相等,所以第 i轮的密钥与分组长度有关,并 且由扩展密钥的字 wNb*i, wNb*i+1,,wNb*(i+1)构成。如下图所示给出了Nb=4 ,Nk=4时的轮密钥选择情况。uOwlw2w3w4w5w7wHw9wLOwll 轮滞阴1轮密耕2 A *4、AES 四种模式:ECB、CBC、CFB、OFB4.1 ECBAES为128位)分成若ECB是最简单的块密码加密模式,加密
12、前根据加密块大小(如 干块,之后将每块使用相同的密钥单独加密,解密同理。PlaintextPlaintextPlaintextblock 匚ipheencryptionblock cipherencryptionblock cipher - encryptionCiphertextCiphertextCiphertextElectronic Codebook (ECB) mode encryptionCiphertextCiphertextCiphertextTBlock CipherDecryptionf I I 】【1 I I II I I I I I IT1i I I I I I I I
13、 IBlock GpherBlock CipherDecryption Kgy DecryptionI,I I I I I I I I JI I I 门 I 1 口PlaintextPlaintextPlaintextElectronic Codebook (ECB) mode decryptionECB模式由于每块数据的加密是独立的因此加密和解密都可以并行计算,ECB模式最大的缺点是相同的明文块会被加密成相同的密文块,这种方法在某些环境下不能提供严格的数据保密性。4.2 CBCCBC模式对于每个待加密的密码块在加密前会先与前一个密码块的密文异或然后再用加密器加密。第一个明文块与一个叫初始化向
14、量的数据块异或。Pla irttextPlaintextPla intext口口Initialization Vector <IVIBlock CipherEncryptionKeyBlock CipherEncryptionBlock CmherEncryptiori门 I " I I I ICiphertextCiphertextCiphertextCipher Block Chaining (CBC) mode encryptionItkidAlizetlon Vector(iv)CiphertextCiphertextCip-hertextrTTTTTTTl日 I dU
15、 CipherDecryptionBlock CipherDecryptionPipck CipherDecryptionPlaintextPEinEtPlaintextCipher Block Chaining (CBC mode decryptionCBC模式相比ECB有更高的保密性,但由于对每个数据块的加密依赖与前一个数据块 的加密所以加密无法并行。与ECB 一样在加密前需要对数据进行填充,不是很适合对流数 据进行加密。Openssl中的AES cbc encrypt 允许length不是16(128位)的整数倍,不足的部分会IV。用0填充,输出总是16的整数倍。完成加密或解密后会更新初
16、始化向量4.3 CFB与ECB和CBC模式只能够加密块数据不同,CFB能够将块密文(Block Cipher)转换为流密文(Stream Cipher )。Initialization Vector (IV)irblock cipherencrypti&nKeyblock cipherencryptionCiphertextblock cipher encryptionPlaintext】 1PlaintextI 口 1 I E E 口 ICiphertextPlaintext1 I E 11I 厂CiphertextCipher Feedback (CFB) mode encrypt
17、ionInitialization Vector (IV)block cipherencryptionblock cipher encryptionblock cipherencryptionCiphertextI I I I I I I I I I I I ICiphertext 0-1 I I I I I I I I I I I I ICiphe-rtext e-i 口 口 11 口口 111PlaintextPlaintextPlaintextCipher Feedback (CFB) mode decryptionCFB的加密工作分为两部分:1、将一前段加密得到的密文再加密2、将第1步
18、加密得到的数据与当前段的明文异或。由于加密流程和解密流程中被块加密器加密的数据是前一段密文,因此即使明文数据的长度不是加密块大小的整数倍也是不需要填充的,这保证了数据长度在加密前后是相同的。4.4 OFBOFB是先用块加密器生成密钥流(Keystream ),然后再将密钥流与明文流异或得到密 文流,解密是先用块加密器生成密钥流,再将密钥流与密文流异或得到明文,由于异或操作的对称性所以加密和解密的流程是完全一样的。Initialization Vector (IV)block cipherencryptionblock cipherencryptionblock cipkierencryptionPlaintextPlai
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年版专业长期借款协议模板大全版B版
- 职业学院关于双师素质教师队伍建设实施办法
- 2024年离岗创业事业单位人员合同3篇
- 2024年版标准协议格式样本指导书版B版
- 2024年离婚证明英文版
- 2024版学校教学楼建设合同服务内容扩展
- 2024年艺术品销售外包服务合同范本3篇
- 2024陶瓷制品线上销售与推广合同
- 2024年稻米订购协议3篇
- EPC工程总承包项目运作模式研究
- 【MOOC期末】《形势与政策》(北京科技大学)期末慕课答案
- 2024年医疗健康知识科普视频制作合同3篇
- 2024年古董古玩买卖协议6篇
- QC/T 1209-2024汽车噪声与振动(NVH)术语和定义
- 安全风险隐患举报奖励制度
- 江苏省苏州市2023-2024学年高三上学期期末考试 数学 含答案
- 教学成果奖培育工作方案
- 药品省区经理管理培训
- 建筑幕墙工程检测知识考试题库500题(含答案)
- 消防疏散演练宣传
- 新班主任教师岗前培训
评论
0/150
提交评论