Lição
A teoria — Bloco de uso único: inquebrável uma vez, vulnerável em duas
Um bloco de uso único combina cada carácter de uma mensagem com um carácter de chave escolhido ao acaso, utilizado exclusivamente nesse carácter e nunca mais repetido. Nesta lição, a operação é o OU exclusivo (XOR) bit a bit, calculado byte a byte: C = P ⊕ K, sendo a decifração a mesma operação, P = C ⊕ K. Se a chave for perfeitamente aleatória e tiver o comprimento da mensagem, a cifra atinge o sigilo perfeito: o conhecimento do texto cifrado não altera a probabilidade atribuída a nenhuma mensagem concebível. Quando a mesma chave é partilhada por duas mensagens, ela anula-se: C₁ ⊕ C₂ = P₁ ⊕ P₂. O arraste de palavra provável (crib-dragging) consiste em deslizar um termo suposto w ao longo desta soma: onde quer que uma mensagem contenha w, a operação w ⊕ C₁ ⊕ C₂ revelará a outra mensagem.
O que significa cada símbolo
P- a mensagem, com um byte por carácter
K- a chave: bytes aleatórios, em número igual ao de caracteres da mensagem
C- o texto cifrado, P ⊕ K
⊕- OU exclusivo: cada bit do resultado é 1 quando os dois bits correspondentes diferem
w- a palavra provável, uma palavra que se supõe existir numa das mensagens
- Pressupõe
- As mensagens são constituídas por letras minúsculas e espaços, codificados como bytes ASCII. Os bytes da chave provêm de um gerador iniciado com uma semente de 32 bits, pelo que esta página alcança apenas 232 ≈ 4,3 × 109 chaves; a partir de sete caracteres, o total de chaves passa a ser inferior ao de mensagens possíveis e, segundo o critério de Shannon, a máscara desta demonstração deixa de ter sigilo perfeito. Um bloco autêntico exige bytes verdadeiramente irreproduzíveis. Considera-se que um excerto «se assemelha a texto» se cada byte for uma letra ou espaço e se todas as suas sequências de três caracteres figurarem nos dois primeiros terços de «O Escaravelho de Ouro» de Poe (1843); as medições foram calculadas com o terço final da obra. Utiliza-se o XOR em vez da soma modular de letras (módulo 26) porque o XOR não tem sinal: o resultado obtido é o mesmo, qualquer que seja a mensagem onde se situe a palavra provável.
Problema resolvido na íntegra
-
Cinco letras a partir de duas mensagens com o mesmo bloco 4 passos
Duas mensagens de 50 caracteres foram transmitidas com o mesmo bloco de uso único. Entre as posições 32 e 36, C₁ ⊕ C₂ apresenta em hexadecimal os valores 54 06 09 0c 4e. Suponha que uma das mensagens contém “ the ” nesse intervalo, correspondente aos bytes 20 74 68 65 20. O que diz a outra mensagem nessas cinco posições? Se essa hipótese pertencer à mensagem 2, cujo texto cifrado nesse trecho é 9d 8e 23 40 9e, quais são os cinco bytes da chave? Em seguida, clique em Problema resolvido e avance um passo na página.
Abrir este problema na ferramenta
-
Escreva o primeiro par em binário: 0x54 é 01010100 e o espaço 0x20 é 00100000. O XOR ativa o bit onde ambos diferem, resultando em 01110100, ou seja, 0x74, que corresponde à letra t. Antes de qualquer dedução, o bit 0x40 em 0x54 já revelava que uma das mensagens tem um espaço na posição 32.
-
Os quatro restantes: 0x06 ⊕ 0x74 = 0x72, r; 0x09 ⊕ 0x68 = 0x61, a; 0x0c ⊕ 0x65 = 0x69, i; 0x4e ⊕ 0x20 = 0x6e, n. A outra mensagem revela a palavra “train”, e as suas três sequências de três letras, “tra”, “rai” e “ain”, constam na íntegra no texto de referência.
-
Se “ the ” estiver na mensagem 2, a chave é obtida por C₂ ⊕ P₂: 0x9d ⊕ 0x20 = 0xbd, 0x8e ⊕ 0x74 = 0xfa, 0x23 ⊕ 0x68 = 0x4b, 0x40 ⊕ 0x65 = 0x25, 0x9e ⊕ 0x20 = 0xbe. Se a hipótese coubesse à mensagem 1, a mensagem 2 leria “train” e os bytes da chave seriam C₁ ⊕ “ the ”. O valor de C₁ ⊕ C₂ é idêntico em qualquer dos casos, pelo que a aritmética não consegue distinguir entre as duas opções.
-
Na página, fixa-se “ the ” na mensagem 2 na posição 32, enquanto o campo da palavra provável passa a ter “ train ” na posição 31, apostando que “train” é uma palavra completa na mensagem 1. Surge então “y the r” na mensagem 2: apenas letras e espaços, com todos os seus trigramas já catalogados. Ao fixá-lo na mensagem 1, ambas as linhas crescem para sete caracteres.
Resposta
“train”, e os bytes de chave bd fa 4b 25 be se a palavra pertencer à mensagem 2. Nada em C₁ ⊕ C₂ indica qual das mensagens contém “ the ”, nem nunca indicará: trocar a ordem das duas mensagens na íntegra não altera em nada o valor de C₁ ⊕ C₂. A dedução seguinte serve apenas para decidir que fragmentos pertencem à mesma mensagem. A página calcula ainda quantos caracteres recuperados estão certos porque conhece ambas as mensagens de antemão. Um analista externo dispõe apenas destas duas linhas e do sentido que o texto fizer.
-
Percurso de aprendizagem
Como se quebram os códigos
Referências (2)
- The first insight's perfect secrecy and its cost in keys, and the Vigenère link: C. E. Shannon, "Communication Theory of Secrecy Systems," Bell System Technical Journal 28(4), pp. 656–715, October 1949. §10 "Perfect Secrecy", Theorem 6 (pp. 679–682).
- The second insight's Venona history: the additive key, the duplicate pages, Gardner's first message: "VENONA: An Overview," Cryptologic Almanac 50th Anniversary Series, Center for Cryptologic History, National Security Agency. DOCID 3575728, approved for release 2009.