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]];
}
如何在 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]];
}