【发布时间】:2021-11-03 02:06:35
【问题描述】:
我正在尝试根据这篇 Wikipedia 文章编写一个计算 Rijndael S-box 的函数。 Rijndael S-box
#define ROTL8(x,shift) ((uint8_t) ((x) << shift | ((x) >> (8 - (shift)))))
uint8_t sbox(uint8_t b)
{
uint8_t s = b ^ ROTL8(b,1) ^ ROTL8(b,2) ^ ROTL8(b,3) ^ ROTL8(b,4) ^ 0x63;
return s;
}
现在,当我尝试 sbox(0x00)=0x63 和 sbox(0x01)=0x7c 时,这有效,但它开始偏离 sbox(0x02),应该是 0x77,但我得到的是 0x5d。我怀疑问题可能是轮换工作不正常,但现在看来这不是问题......
这里有什么问题?
【问题讨论】:
标签: c cryptography