1001Ferramentas
🔑Segurança

Cifra Vernam (One-Time Pad)

Cifra Vernam XOR byte-a-byte com chave de mesmo tamanho. Saída hex.

Hex

XOR de chave repetida não é one-time pad

A frase de que o one-time pad é matematicamente inquebrável é verdadeira, e é por isso que ela tanto engana. Ela só vale sob três condições simultâneas: chave aleatória de verdade, do mesmo tamanho da mensagem em bytes, e usada uma única vez. Quebre qualquer uma delas e o que sobra é uma cifra de XOR comum, do tipo que se resolve com análise de frequência por posição.

A ferramenta converte texto e chave para bytes UTF-8, faz o XOR byte a byte e mostra o resultado em hexadecimal. HELLO com a chave XMCKL dá 10080f0703: cinco bytes de texto contra cinco de chave, um pad legítimo. Se a chave for menor que o texto, ela é repetida ciclicamente sem nenhum aviso, e nesse instante deixa de ser Vernam. A conta é em bytes, não em caracteres: coração ocupa oito bytes em UTF-8, não sete.

Para um exemplo honesto, gere bytes aleatórios no mesmo comprimento em bytes do texto e não reaproveite a chave em outra mensagem. Esta página só cifra: não existe caminho de volta de hexadecimal para texto aqui, mas como o XOR é simétrico qualquer conversor de XOR hex com a mesma chave recupera o original. O cálculo acontece inteiro no navegador, sem requisição. Ainda assim, use isto para aprender: distribuir e destruir pads é o problema que torna o OTP impraticável fora do papel.

Perguntas frequentes

Como faço o caminho de volta?
Esta página não aceita hexadecimal na entrada. Como XOR é sua própria inversa, aplique a mesma chave sobre os bytes cifrados em qualquer ferramenta de XOR e o texto reaparece.
Por que a saída é em hexadecimal?
O XOR produz bytes arbitrários, boa parte deles não imprimíveis ou inválidos em UTF-8. O hexadecimal mostra cada byte exatamente como ele é, sem perder informação.
Chave mais curta que o texto funciona?
Funciona no sentido de produzir saída, e a ferramenta repete a chave em silêncio. Só que aí não é one-time pad: chave repetida cai com pouco texto cifrado em mãos.

Ferramentas Relacionadas