One-time pad
One-time pad (OTP), em português cifra de uso único ou chave de uso único, é uma técnica de criptografia que não pode ser quebrada se utilizada corretamente.
Imagem: Adrian · BY-NC-ND · Openverse
Consiste num algoritmo em que o purotexto é combinado, caractere por caractere, a uma chave secreta aleatória que para isso deve ter, no mínimo, o mesmo número de caracteres do purotexto. Para garantir que a criptografia seja imperscrutável, a chave só deve ser usada uma única vez, sendo imediatamente destruída após o uso. Foi primeiramente descrita pelo banqueiro e criptografista Frank Miller em 1882. Em 1917 foi re-inventada e, poucos anos depois, registrada. A chave de uso único deriva da cifra de Vernam, cujo nome se deve a Gilbert Vernam, um de seus inventores. O sistema de Vernam consistia numa cifra que combinava uma mensagem com uma chave lida numa fita perfurada. Em sua forma original, o sistema de Vernam era vulnerável porque a fita com as chaves era reutilizada ao chegar ao fim. O uso único veio apenas posteriormente, quando Hoseph Maugorgne percebeu que se a fita fosse totalmente aleatória, a criptoanálise poderia ser impossível.
Imagem: OnceAndFutureLaura · BY-NC-SA · Openverse
O banqueiro Frank Miller, em 1882, foi o primeiro a descrever o funcionamento de chaves de uso único para uso em mensagens telegráficas. Já no século XX, em 1917, foi criado para a AT&T o sistema eléctrico de Gilbert Vernam, patenteado em 1919, que se baseava na tecnologia utilizada no teletipo. Cada caractere na mensagem era electricamente combinado com uma chave contida numa fita perfurada. Joseph Mauborgne, então capitão das forças armadas dos Estados Unidos, percebeu que caso a sequência de caracteres na fita fosse totalmente aleatória, a criptoanálise seria mais difícil. Foi então introduzido o primeiro sistema de fita de uso único. O próximo passo foi o desenvolvimento do sistema que utilizava a caderneta de papel. Durante muito tempo, os diplomatas usaram códigos e cifras para receber informações confidenciais e também reduzir os custos com telégrafo. Utilizando os códigos, as palavras e as frases eram convertidas em grupos de números (geralmente 4 ou 5 dígitos) usando um livro de códigos que funcionava como uma espécie de dicionário. Para aumentar a segurança, números secretos podiam ser combinados (geralmente por meio de adição modular) com cada grupo de números antes da transmissão, com os números secretos sendo trocados periodicamente. Esse sistema era chamado de superencryption. No início dos anos 1920, três criptografistas alemães — Werner Kunze, Rudolf Schauffler e Erich Langlotz -— que estavam envolvidos em descodificar esses sistemas, perceberam que eles poderiam ser indecifráveis se um número escolhido aleatoriamente fosse usado para codificar cada grupo. Eles possuíam cadernetas de papel idênticas, com grupos de números aleatórios. Cada página tinha um número de série e oito linhas; por conseguinte cada linha tinha seis números de cinco dígitos cada um. Uma página seria usada para codificar uma mensagem e imediatamente destruída. O número serial da página seria enviado com a mensagem codificada, para que o receptor soubesse qual a página a usar. Para descodificar, o destinatário deveria apenas realizar o processo inverso ao de codificação, destruindo a página após terminar. O ministério das relações exteriores alemão pôs o sistema em operação em 1923.
Imagem: Ralph@CipherHistory.com · BY-NC-SA · Openverse
Suponhamos que Alice deseje emitir a mensagem HELLO ("olá") a Bob. Suponha que ambos estejam de posse de cadernetas que contenham sequências aleatórias idênticas previamente produzidas. Alice escolhe a página apropriada (ainda não-utilizada) da caderneta. O critério de escolha deve ser combinada previamente entre as partes. Geralmente usa-se regras como "usar a primeira folha disponível" ou "usar a folha X para o dia tal". O material na folha selecionada é a chave para codificação e decodificação da mensagem. Cada letra da cifra será combinada de uma forma padrão a uma letra da mensagem. Geralmente, atribui-se a cada letra um valor numérico: por exemplo, A=0, B=1, e assim por diante, até Z=25. Neste exemplo, a técnica é combinar a chave e a mensagem usando a adição modular. Assim, somam-se os numéricos de cada letra da mensagem ao seu correspondente na cifra. Deve-se lembrar de considerar o módulo 26, de modo que, se uma soma ultrapassa 26, o número deve ser dividido por 26, tomando-se, no lugar dele, apenas o resto da divisão inteira.
Tentativa de interceptação
Continuando no mesmo exemplo acima, suponhamos que Eve intercepte a mensagem cifrada de Alice: “EQNVZ.” Se Eve tivesse capacidade infinita de computação, descobriria que a chave “XMCKL” pode produzir o texto “HELLO”, mas descobriria também que a chave “TQURI” produziria a mensagem igualmente plausível “LATER” ("mais tarde"): De fato, vemos que, ao tentar decifrar, é possível chegar a qualquer mensagem com o mesmo número dos caracteres fora da mensagem cifrada usando uma chave diferente e nenhuma informação na mensagem cifrada permitirá a Eve fazer uma escolha acertada entre as várias leituras possíveis da mensagem cifrada.
Imagem: renaissancechambara · BY · Openverse
As cifras de uso único são “informações teoricamente seguras” já que as mensagens cifradas não fornecem nenhuma informação sobre a mensagem original a um criptanalista, exceto seu tamanho máximo possível. Esta é uma noção muito forte de segurança primeiramente desenvolvida e provada matematicamente durante a 2ª Guerra Mundial por Claude Shannon, cujos resultados foram publicados no Jornal Técnico dos Laboratórios Bell em 1949. As cifras de uso único, se usadas corretamente são seguras mesmo se o adversário tiver capacidade computacional infinita. A maioria de algoritmos convencionais de criptografia, seja simétrica ou assimétrica, usa padrões de teste complexos de substituição e transposição. Para o uso melhor destes atualmente, não se sabe se pode haver um procedimento criptanalítico que possa inverter (ou inverter parcialmente) estas transformações sem saber a chave usada durante a criptografia. Em termos práticos nenhum procedimento como esse é conhecido, embora já possam existir algoritmos de computador que poderiam fazê-lo em tempo “razoável”. Um dos problemas proeminentes centrais não-solucionados da informática carrega neste problema; se P=NP então seria possível que tais algoritmos pudessem ser encontrados, e se ele fossem procurados mais vigorosamente do que são hoje. Mesmo se não, os cripto sistemas atuais do indivíduo poderiam ainda ser quebrados.
Imagem: Ato (talk) (Uploads) · BY-SA · Openverse
A segurança perfeita teórica da cifra de uso único aplica-se somente em um ajuste teoricamente perfeito; nenhuma execução do mundo-real de todo o cripto-sistema pode fornecer a segurança perfeita porque as considerações práticas introduzem vulnerabilidades potenciais. Estas considerações práticas da segurança e da conveniência significam que cifra de uso único é, na prática, pouco usada. Contudo, um cifra de uso único retêm algum interesse prático limitado:
Imagem: Ato (talk) (Uploads) · BY-SA · Openverse
Em algumas situações de espionagem, a chave de uso único pode ser útil porque pode ser computada à mão, com lápis e papel. Quase todas as outras cifras de igual qualidade são pouco práticas se não se utilizar um computador. Espiões podem receber suas cadernetas pessoalmente por meio de portadores. Entretanto, no mundo moderno os computadores e outros dispositivos capazes de realizar cálculos complexos são tão ubíquos que possuir um dispositivo capaz de executar criptografia convencional (por exemplo, um telefone que possa funcionar um software criptográfico escondido) não atrairá nenhuma suspeita. As cifras de uso único foram usadas em circunstâncias especiais desde os anos 1900. O Serviço Diplomático da República de Weimar começou a usar o método por volta de 1920. Em 1923, era empregado para comunicações diplomáticas pelo serviço diplomático alemão. A quebra da frágil criptografia soviética pelos Ingleses, com publicação das mensagens por razões políticas em dois momentos nos anos 1920, parece ter levado a URSS a adotar chaves de uso único por volta de 1930. Os espiões da KGB são conhecidos também por terem continuado a usar lápis e papel nas cifras de uso único mais recentemente. Um exemplo é o do coronel Rudolf Abel, que foi preso e condenado em Nova York nos anos 1950, e os “Krogers” (Morris e Lona Cohen), que foram presos e condenados por espionagem no Reino Unido nos anos 60. Ambos foram encontrados em posse cifras de uso único físicas.
Imagem: Ato (talk) (Uploads) · BY-SA · Openverse
Cifras de uso único são seguras se geradas e usadas corretamente, mas erros pequenos podem fazer com que a criptoanálise seja bem sucedida. Em 1944-1945, a agência da segurança do exército dos Estados Unidos conseguiu decifrar o sistema de cifras de uso único usado alemão GEE (Erskine, 2001). O GEE era inseguro porque as chaves não eram completamente aleatórias - a máquina usada gerar as cifras produziu saídas previsíveis. Em 1945, os Estados Unidos descobriram que mensagens enviadas de Camberra a Moscou eram cifradas primeiramente usando um livro de códigos e depois uma cifra de uso único. Entretanto, a cifra de uso único usada era mesma usada por Moscou para mensagens de Washington, D.C.. Isso, somado ao facto de que algumas das mensagens de Camberra a Moscou incluíram documentos originais britânicos conhecidos pelo governo estadunidense, permitiu que algumas das mensagens cifradas fossem quebradas.


