Chave usada duas vezes
Uma chave aleatória do tamanho da mensagem é inquebrável, desde que seja usada uma vez só.
O bloco de uso único (one-time pad) é a única cifra comprovadamente inquebrável: a chave é aleatória, tem o mesmo tamanho da mensagem e é usada uma única vez. Com XOR, C = M XOR K. Sem a chave, qualquer mensagem do mesmo tamanho é igualmente possível.
O problema aparece quando alguém reaproveita a chave. Se duas mensagens foram cifradas com a mesma chave:
C1 = M1 XOR K
C2 = M2 XOR K
C1 XOR C2 = M1 XOR M2 (a chave some)
Sobram as duas mensagens misturadas, sem chave nenhuma. Aí entra o texto conhecido: se você souber ou adivinhar um pedaço de M1, faz XOR dele com M1 XOR M2 na mesma posição e aparece o pedaço correspondente de M2. Se esse pedaço faz sentido, o palpite estava certo; ele sugere a próxima palavra de M2, que revela mais de M1, e assim por diante. Essa técnica se chama arrastar o palpite (crib dragging).
Exemplo: M1 XOR M2 começa com 14 00 18 00 17 08 08. Apostando que M1 começa com Bom, o XOR dá Vou, que faz sentido. Apostando em Ola, dá [ly, que não faz: palpite errado.
No CyberChef: From Hex num cifrado, XOR com o outro cifrado como chave (formato Hex) e mais um XOR com o seu palpite (formato UTF8). Como o CyberChef repete a chave, só valem os primeiros caracteres da saída, tantos quanto o palpite tem.
Na vida real, espiões soviéticos reaproveitaram blocos de uso único nos anos 1940, e o projeto americano Venona leu parte das mensagens por causa disso. O mesmo tipo de erro, repetir a chave ou o número que deveria ser único, enfraqueceu o WEP, a primeira proteção do Wi-Fi.