AES 解密 - AddRoundKey 函数
AES Decrypt - AddRoundKey function
我正在写一个程序来实现AES加解密。这是一个学校项目。
我已经成功实现了AES-128加密,但是我对解密中的addRoundKey函数有点困惑。
对于加密,您使用 11 个回合密钥,第一个密钥在第一轮之前使用,最后一个在最后一轮使用。
关于解密,对于第一轮解密,我是使用第一轮加密中使用的第一个密钥,还是使用最后一轮加密中使用的最终密钥?
加密是这样的:加密预轮(addRoundkey[0] * state)
THEN (subbytes,shiftrows,mixColumns,addRoundKey[1 to 9]) 9 次和最后一轮 subbytes,shiftrows 和 addRoundKey [10]
是解密前轮 - (addRoundKey[10] * ciphertext) OR (addRoundKey[0] * ciphertext)
假设第 3 轮解密,我会使用 addRoundKey[3] 还是 addRoundKey[7]
谢谢。
我找到了答案。
(addRoundKey[10] * ciphertext)
正确。
我正在写一个程序来实现AES加解密。这是一个学校项目。
我已经成功实现了AES-128加密,但是我对解密中的addRoundKey函数有点困惑。
对于加密,您使用 11 个回合密钥,第一个密钥在第一轮之前使用,最后一个在最后一轮使用。
关于解密,对于第一轮解密,我是使用第一轮加密中使用的第一个密钥,还是使用最后一轮加密中使用的最终密钥?
加密是这样的:加密预轮(addRoundkey[0] * state) THEN (subbytes,shiftrows,mixColumns,addRoundKey[1 to 9]) 9 次和最后一轮 subbytes,shiftrows 和 addRoundKey [10]
是解密前轮 - (addRoundKey[10] * ciphertext) OR (addRoundKey[0] * ciphertext)
假设第 3 轮解密,我会使用 addRoundKey[3] 还是 addRoundKey[7]
谢谢。
我找到了答案。
(addRoundKey[10] * ciphertext)
正确。