У меня есть Sbox для реализации типа AES, какКак получить биты шестнадцатеричного числа реализации AES
int box[4][4] = {{0xA,0x3,0xC,0xB},
{0xE,0xF,0x2,0xE},
{0x6,0x4,0x0,0xF},
{0xC,0x4,0xF,0x3}};
я хочу, чтобы получить первые 2 бита и последние 2 бита шестнадцатеричного числа, а затем заменить она с положением в Sbox, например
int x = 0xA //Because A has a binary representation from hex as 1010
то номер строки станет первым 2 битом A «10» и номером столбца станет вторым 2 битом A «10», следовательно, INT х будет перейдите в sbox и замените на «0xF»
Как я могу получить бит A и использовать его для поиска моего sbox?
Wh y заменяется на '0xF', когда в этой позиции есть' 0x0'? –
oi имеют начало с позиции 0, поэтому у sbox есть столбцы 0 1 2 3 и строки , но в любом случае 0x0 или 0xF вы знаете, как получить бит указанной позиции и получить доступ к sbox – theForgottenCoder
Вы должны помнить, что шестнадцатеричный - это просто * презентационная * особенность. Все равно хранятся в двоичном формате внутри компьютера. Кроме того, вы хотите, чтобы (всего) четыре бита * наименьшего nibble *, вы не можете забыть, что 'int' обычно составляет 32 бита, что означает, что выражение« самые высокие два бита »означает что-то еще. –