1 / 4
文档名称:

AES加密算法主要步骤.doc

格式:doc   大小:62KB   页数:4页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

AES加密算法主要步骤.doc

上传人:sssmppp 2020/8/24 文件大小:62 KB

下载得到文件列表

AES加密算法主要步骤.doc

相关文档

文档介绍

文档介绍:•个明文x,将State初始化为x,并进行AddRoundKey操作,将RoundKey与State异或。I对前Nr・1轮中的每一轮,用S盒对进行一次代换操作,称为SubBytes;对Sate做一置换ShiftRows;再对State做一次操作MixColumns;然后进行AddRoundKey操作。依次进行SubBytes、ShiftRows和AddFtoundKey操作。I将State定义为密文y。(bytein[4*Nb],byteout[4*Nb],wordw[Nb*(Nr+1)])beginbytestate[4,Nb]state=inAddRoundKey(state,w[0,Nb-1])forround=1step1toNr-1SubBytes(state)ShiftFtows(state)MixColumns(state)AddRoundKey(state,w[round*Nb,(round+1)*Nb-1])endforSubBytes(state)ShiftFtows(state)AddRoundKey(state,w[Nr*Nb,(Nr+1)*Nb-1])out=stateendKeyExpansion(),再上初始及最后2轮,需构造11轮密钥。每一轮密钥由4个字组成。每个字由4个byte组成。:byte[]key,byte[]w//key为密钥w为扩展的密钥输出:byte[]w〃扩展密钥长度为4m处理:建立一个4byte的一维数组,存放一个字。Byte[]temp;将密钥key[0.,15]送至w[0..15];//已赋值4个字给w。forI=4to43〃以下每次处理一个字(32bit)temp=w[l-1];if(I=0mod4)〃处理一个字thenforj=1to4〃字的4byte处理在此循环中取temp数组下标的次序为1,2,3,0//RotWord操作如果是字的首byte,取Rcon常数Rcon(l/4);temp[j]=Sbox(temp[(j+1)/4]ARcon常数endfortemp=SubWord(FtotWord(temp))©Rcon[i/4]endifw[l]=w[I-4]©temp;endfor输出w3多项式乘法modGF(28)(28)按多项式乘法,并mod不可约多项式m(x)=x8+x4+x3+x+1。:bytea,byteb输出:byter数学基础:GF(28)有限域性质:两个元索的加法与两个字节按位模2加是-致的;乘法满足结合律;考虑多项式中的一项aixi(ieO-7),用一次x乘以多项式:b(x)=b7x7+b6x6+b5x5+b4x4+b3x3+b2x2+b1x+bO,得到b7x8+b6x7+b5x6+b4x5+b3x4+b2x3+b1x2+bOx(式1)将结果模m(x)求余得到x*b(x)o如果b7=0,则式1就是x*b(x)o如果b7不等于0,则必须从式1屮减去m(x)后结果为x*b(x)o用x乘一个多项式简称x乘。由此得出,aixi乘以b(x),可以作i次x乘。x(十六进制表