Tenho um exame em que posso usar uma calculadora simples. Em alguns exemplos de perguntas, eles nos pedem para XOR dois valores (para chave redonda AES) e eu sei como escrevê-lo à mão, mas existe alguma outra maneira mais rápida porque o exame é cronometrado, é claro.

Resposta

Se você tiver sorte, a definição de “calculadora simples” pode incluir todas as calculadoras não gráficas. Nesse caso, você pode usar um Casio FX-115ES Plus, que inclui os modos de base hexadecimal e octal e tem um operador XOR. Ela pode operar em grupos de octetos de até 32 bits.

Se você não tiver essa sorte, a mesa XOR é sua melhor amiga. Dependendo de quantos cálculos você precisa realizar, pode ser muito mais rápido criá-los em uma folha de rascunho durante o exame. Você pode até ter permissão para trazer um com você.

Tabela XOR 0

Eu tinha um requisito de uma tabela XOR para realizar cálculos rápidos em um livro de código impresso para comunicação criptograficamente forte em um canal de voz público. Também teve que ser feito rapidamente, sem o uso de um computador ou qualquer dispositivo eletrônico, e teve que caber em uma pequena folha 4×6 no espaço sob o texto cifrado.

Eu vim com vários métodos para condensar o mesa e ainda utilizável. Se você for inteligente e engenhoso, o conhecimento de como criar as versões condensadas pode permitir que você execute muitos cálculos XOR rapidamente. Há um padrão recursivo para a tabela hexadecimal XOR que pode ser explorado; a tabela acima é codificada por cores para mostrar esse padrão, que se estende até os caracteres individuais. Aqui estão as tabelas condensadas:

Tabela XOR 1

Embora a tabela acima ocupe menos espaço, ela tem a mesma quantidade de caracteres e, portanto, leva quase o mesmo tempo para ser criada. É necessária uma regra simples para selecionar os caracteres corretos.

Tabela XOR 2

O próximo nível agora ocupa metade do espaço do anterior, bem como metade dos caracteres. A regra é mais complexa, mas alguns minutos de prática tornam o uso quase tão rápido quanto a mesa inteira. Mesmo a regra pode ser simplificada com XOR, o resultado será correto se o XOR das seleções de regra for 1.

Tabela XOR 3

O nível final é mais uma vez metade do espaço e metade dos caracteres (quase) como o anterior, embora exija uma regra adicional para fazer o trabalho. Se você se lembra da estrutura recursiva e do layout básico desta tabela, pode recriá-la em menos de um minuto com uma caneta e papel.

Comece com o cabeçalho da coluna interna, primeiro nibble; 0 1 2 3 4 5 6 7
Em seguida, adicione o segundo nibble, que é o primeiro nibble + 8; 8 9 ABCDEF
O cabeçalho da coluna externa é o cabeçalho da coluna interna com as metades invertidas
O cabeçalho da linha interna é a primeira metade do cabeçalho da coluna interna
O cabeçalho da linha externa é a primeira metade da coluna externa header
Então você preenche a tabela com a estrutura recursiva, construída a partir do cabeçalho da coluna interna.
A criação da tabela compactada dupla omite os cabeçalhos externos, mas usa um cabeçalho de linha completo.

Um único exemplo na tabela tripla:

25 XOR B6
2 XB = [2a] X [3b] (1 2 2) = 9
Como 2 é o primeiro nibble e B é o segundo, usamos o segundo nibble de [19]
5 X 6 = [5d] x [ 6e] (1 1 1) = 3
Como 5 é o primeiro nibble e 6 é o primeiro, usamos o primeiro nibble de [3b]
Portanto, 25 XOR B6 = 93

Resposta

Tente converter números hexadecimais em números binários e execute ORs exclusivos em cada bit. Em seguida, converta os números binários de volta em números hexadecimais.

Comentários

  • Além disso, como 16 é exatamente 2 ^ 4, você pode fazer isso digitando. Ou seja, você não ' não precisa converter o número inteiro em binário de uma vez, você pode fazer um dígito por vez, xor, e então converter o resultado de volta em hexadecimal

Resposta

xar 2 bits é fácil.
converter um dígito hexadecimal em 4 bits é fácil.

A combinação desses 2 fatos deve tornar a correção de um único dígito hexadecimal muito fácil. Se você escrever uma tabela para cada dígito em binário (em um teste cronometrado, se vale a pena ou não depende do número de conversões que você terá que fazer), você não terá que fazer nenhum cálculo escrito realmente. Por exemplo, para xor e e 3, é 1110 xou 0011 que é 1101 que é d. Se você tiver uma tabela pronta, esse cálculo é basicamente instantâneo.

Agora, basta repetir isso para todos os dígitos. Isso pode ser feito em dígitos, já que cada dígito hexadecimal reenvia exatamente 4 bits

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *