AES - 如何在 C++ 中编写反向子字节?

AES - How do I write Inverse Sub Bytes in C++?

如何在 C++ 中为 AES 解密编写反向子字节?我只找到了 AES 加密的子字节,如下所示。

void SubBytes(unsigned char* state)
{
    for(int i=0, i<16; i++)
    state[i] = sbox[state[i]];
}

我算不上程序员,但您可以使用 sbox table 定义一个逆 sbox table。通过

定义其条目

sboxinv[sbox[u]]:=u

因为 u 的范围在 0 到 255 之间。

然后使用与上面代码片段相同的结构

void InvSubBytes(unsigned char* state)
{
    for(int i=0, i<16; i++)
    state[i] = sboxinv[state[i]];
}