我正在编写一个程序来实现AES加密和解密。这是一个学校项目。
我已经成功地实现了AES-128加密,但我对解密中的addRoundKey函数有点困惑。
对于加密,您使用11个循环密钥,第一个密钥在第一轮之前使用,最后一个密钥在最后一轮期间使用。
当谈到解密时,对于解密的第一个预循环,我是使用加密中预循环1使用的第一个密钥,还是使用上一轮加密中使用的最后一个密钥?
加密是这样的:加密预录制(addRoundkey[0]*状态(THEN(子字节、移位行、mixColumns、addRoundKey[1~9](9次,最后一轮子字节、位移行和addRoundKey[10]
是解密预循环-(addRoundKey[10]*密文(OR(addRound Key[0]]*密文
比方说第三轮解密,我会使用addRoundKey[3]还是addRoundKey[7]
谢谢。
(addRoundKey[10]*密文(
是正确的。