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

时间:2019-04-23 22:16:54

标签: c++ aes

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

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

1 个答案:

答案 0 :(得分:3)

我几乎不是程序员,但是您可以使用sbox表定义逆sbox表。通过

定义其条目
  

sboxinv [sbox [u]]:= u

当您的范围介于0到255之间。

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

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