If you're seeing this message, it means we're having trouble loading external resources on our website.

Se você está atrás de um filtro da Web, certifique-se que os domínios *.kastatic.org e *.kasandbox.org estão desbloqueados.

Conteúdo principal

Lógica binária XOR

A Cifra de Troca Suprema

Se você já viu a aula sobre a cifra de chave única, você sabe ela é a cifra de troca suprema. Ela envolve a aplicação de uma lista aleatória de trocas igual ao comprimento da mensagem. É importante entender exatamenta como e por que a cifra de chave única é inquebrável, ou, perfeitamenta secreta.
Para entender o porquê, precisamos primeiro introduzir as operações AND, OR e XOR (E, OU e OU Exclusivo, em português) de bit a bit. Especificamente por que XOR deve ser usado ao executar a cifra de chave única em computadores. Bit a bit significa simplesmente que estamos lidando com os bits individuais, ou números binários. Em qualquer esquema de criptografia moderno/informatizado, representamos nossos símbolos usando dígitos binários. Se você esqueceu o motivo, você pode conferir este vídeo sobre a memória do computador

Criptografando cores

Vamos começar com um exemplo visual, criptografando a cor do avatar folha verde da Khan Academy.
Como transformar uma cor em um número? Na sua tela você está olhando para cores HTML que são definidas usando o modelo de cor RGB. Esse é um modelo aditivo baseado na mistura de quantidades especificas de luz vermelha, verde e azul (Red, Green e Blue em inglês).
Podemos definir exatamente a quantidade de vermelho, verde e azul utilizando um número de 0 a 255. Preto é totalmente desligado (0,0,0), enquanto branco é totalmente ligado (255,255,255). Entre esses dois códigos de cores há 16 milhões de cores possíveis (256 * 256 * 256). Em seguida, vamos procurar o verde do avatar da Khan Academy em qualquer ferramenta de edição de imagem:
Captura de tela do selecionador de cores do Photoshop, com verde selecionado.
Observe que a cor é apresentada como VERMELHO=156, VERDE=181, AZUL=58.
Escrevendo esses números em binário, temos:
VERMELHO=10011100, VERDE=10110101, AZUL=00111010.
Podemos colocá-los juntos como: 100111001011010100111010
Representação binária do RGB do verde do avatar da Khan Academy:
Fundo verde com 100111001011010100111010 em cima

Aplicação de Trocas Aleatórias

Agora vamos dizer que você gerou uma sequência de troca jogando uma moeda e convertendo o resultado em binário como:
CACOCACOCOCACOCACACACACOCOCACOCOCOCOCACOCOCACACA = 010110100001101111011000
Vamos pensar em como podemos aplicar essa sequência de troca na nossa cor para criptografá-la usando a cifra de chave única.
100111001011010100111010 + 010110100001101111011000 = start text, question mark, end text
Para fazer a cifra de chave única funcionar, precisamos escolher a operação correta para que a sequência resultante possa ser qualquer cor. Vamos verificar três operações diferentes: AND, OR e XOR.

AND

O operador AND também é conhecido como conjunção lógica e funciona como a multiplicação. 
Ele exibe um 1 somente se todas as entradas forem 1. Aqui está a tabela verdade:
0 AND 0 = 0
0 AND 1 = 0
1 AND 0 = 0
1 AND 1 = 1
Vamos tentar:
100111001011010100111010 AND 010110100001101111011000 = 000110000001000100011000
Isso resulta em um roxo muito escuro. Observe que quando executamos a operação AND em qualquer número binário, a sequência resultante não pode ser maior. In our color example this eliminates many possible shades as it pushes the color towards black.

OR

O operador OR também é conhecido como disjunção lógica. Ele exibe um 1 sempre que uma ou mais de suas entradas forem 1. Aqui está a tabela verdade:
0 OR 0 = 0
0 OR 1 = 1
1 OR 0 = 1
1 OR 1 = 1
Vamos tentar:
100111001011010100111010 OR 010110100001101111011000 = 110111101011111111111010
Isso resulta em um roxo claro. Observe que quando executamos a operação OR em qualquer sequência binária, a sequência resultante não pode ser menor. Isso elimina muitas possibilidades, pois aproxima a cor do branco.

XOR

O operador XOR exibe um 1 sempre que as entradas não forem compatíveis, o que ocorre quando uma das duas entradas for exclusivamente verdade. É o mesmo que adição mod 2. Aqui está a tabela verdade:
0 XOR 0 = 0
0 XOR 1 = 1
1 XOR 0 = 1
1 XOR 1 = 0
Vamos tentar:
100111001011010100111010 XOR 010110100001101111011000 = 110001101010111011100010
roxo escuro
Isso resulta num roxo um pouco mais escuro em comparação à operação OR. Observe que quando executamos a operação XOR em uma sequência binária, o resultado pode ser qualquer sequência possível. Dada uma cor criptografada, tudo que nós sabemos é que a cor original“tem a mesma probabilidade de ser uma cor qualquer”. Não temos nenhuma informação que poderia melhorar um palpite às cegas (1/16 milhões).
Por fim, vamos fazer uma demonstração visual para que possamos ver a cifra de chave única em ação. Então, podemos ganhar mais pontos de energia!

Quer participar da conversa?

  • Avatar leaf blue style do usuário Guilherme Augusto Schünemann
    No parágrafo após o título "XOR", o que uma entrada "exclusively true" significa. Como a operação XOR é igual a uma operação mod 2?
    (5 votos)
    Avatar Default Khan Academy avatar do usuário
    • Avatar leafers sapling style do usuário Kim Tisott
      Exclusively true significa que é a única verdadeira ou a única falsa. Como existem apenas duas possibilidades, o zero será apenas falso ou apenas verdadeiro, enquanto que o um será apenas verdadeiro ou apenas falso. A operação mod 2 se refere a transformar a operação XOR, como no exemplo abaixo:
      0 XOR 1 = mod 2 = 1
      1 mod 2 = 1
      (5 votos)
Você entende inglês? Clique aqui para ver mais debates na versão em inglês do site da Khan Academy.