首先我们来看一下AES的整体结构。
对于任何长度的明文,都需要分成128bits每组。如果明文不是128bits的倍数的话,我们需要调用padding,将它补足。
AES是对byte进行操作的,因此我们将16byte的明文,输入为4x4的矩阵(按列进行填充)
然后我们进行初始转换,需要用到的是第0个轮密钥
对于AES128,我们使用的轮密钥数是10,因此我们进行了十轮加密,前九轮需要用到subbyte,rowshift,mixcolumn,addroundkey,最后一轮只需要用到subbyte,rowshift,addroundkey。最后我们就得到了一个对应的4x4的密文输出。

网友评论