AES算法用于保护文档的机密性

2026/4/26 18:49:23

2. 算法实现

2.1 AES算法每一轮都是用代替和混淆处理整个数据分组,由4个不同的阶段组成,包括:1)字节代替SubBytes:用一个S盒完成分组中的按字节的代替;2)行移位ShiftRows:一个简单的置换;3)列混淆MixColumns:一个利用在域GF(2^8)上的算术特性的代替;4)轮密钥加AddRoundKey:一个利用当前分组和扩展密钥的一部分进行按位异或。

2.2 给定一个明文X,将State初始化为X,并进行AddRoundKey操作,将轮密钥与State异或。对前Nr-1轮中的每一轮,用S盒进行一次SubBytes代替操作;对State做一次ShiftRows行移位操作;再对State做一次MixColumns列混淆操作;然后进行AddRoundKey操作。最后一轮(即第Nr轮)依次进行SubBytes,ShiftRows,AddRoundKey操作。将最后State中的内容定义为密文Y。即在第一轮之前要进行一个AddRoundKey操作,中间各轮依次进行SubBytes,ShiftRows,MixColumns,AddRoundKey操作,最后一轮中没有MixColumns操作。

伪代码描述为:

Cipher(byte in[4*Nb], byte out[4*Nb], word w[Nb*(Nr+1)]) Begin

Byte state[4, Nb] State=in

AddRoundKey(state,w)

for round=1 step 1 to Nr-1 //前Nr-1轮

SubBytes(state) ShiftRows(state) MixColumns(state)

AddRoundKey(state, wound*Nb) end for

SubBytes(state) ShiftRows(state)

AddRoundKey(state, w+Nr*Nb) out=state

end

其中in[],out[],w[]和state中分别存储加密处理的输入,输出,密钥和中间态数据;Nr和Nb分别为迭代轮数和中间态的列数。

2.3基本加密变换

2.3.1 S盒变换-SubBytes(字节运算)

SubBytes()变换是一个基于S盒的非线性置换,它用于将输入或中间态的每一个字节用过一个简单的查表操作,将其映射为另一个字节。映射方法是:把输入字节的高4位作为S盒的行值,,低4位作为列值,然后取出S盒中对应行和列的元素作为输出。例如,输入为“95(十六进制表示)”的值所对应的S盒的行值为’9’,列值为’5’,S盒中相应位置的值为’2a’,就说明’95’被映射为’2a’。 SubBytes()的伪代码描述如下: SubBytes(byte state[4, Nc], Nc) Begin

for r=0 step 1 to 3 for c=0 step 1 to Nc-1

State[r,c]=Sbox[state[r,c]] end for

end for

end

S盒(十六进制)

2.3.2 列混合变换-MixColumns(字运算) MixColumns()实现逐列混合,其方式是: S`(x)=c(x)*s(x)mod(x^4 + 1)

式中,c(x)={03}*x^3+{01}*x+{02},{}内的数表示是字节; s`(x)=s`0,c+s`1,c*x+s`2c*x^2+s`3,c*x^3; s(x)=s0c+s1c+s2c*x^2+s3c*x^3.

伪代码描述为:

MixColumns(byte state[4,Nc], Nc) begin byte t[4]

for c=0 step 1 to Nc-1 for r=0 step 1 to 3 t[r]=state[r,c]

end for for r=0 step 1 to 3

state[r,c]=FFmul(0x02, t[r])xor FFmul(0x03,t[(r+1)mod4])xor t[(r+2)mod4]xor t[(r+3)mod4] end for end for end

2.3.3 行移位运算--ShiftRows

ShiftRows()完成基于行的循环移位操作,变换方法如图所示,即行移位变换作用在中间态的行上,第0行不变,第1行循环左移1个字节,第2行循环左移2个字节,第3行循环左移3个字节。

ShiftRows()的伪代码描述: ShiftRows(byte state[4,Nc],Nc) begin byte t[Nc]

for r=1 step 1 to 3 for c=0 step 1 to Nc-1

t[c]=state[r,(c+h(r,Nc))moodNc]


AES算法用于保护文档的机密性.doc 将本文的Word文档下载到电脑
搜索更多关于: AES算法用于保护文档的机密性 的文档
相关推荐
相关阅读
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 10

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219