Por que a criptografia com o mesmo teclado único não é boa?

20

Para criptografar uma mensagem com uma tecla de teclado único faça .m1kEnc(m1,k)=m1k

Se você usar o mesmo para criptografar uma mensagem diferente obtém , e se você executa Xor dos dois textos cifrados, obtém km2Enc(m2,k)=m2k

(m1k)(m2k)=m1m2

então, ok, há algum vazamento de informações porque você aprende , mas por que não é seguro? Não tenho como aprender (digamos) menos que eu saiba . Então, por que é errado usar duas vezes?m1m2m1m2k

Tocou.
fonte
sim, isso está semeando. Principalmente, semeando o debate sobre a fronteira entre crypto.se e cs.se.
Ran G.
Por favor, veja aqui uma discussão sobre as tags usadas.
Raphael
Lembro que vi uma visualização que a deixa realmente clara, mas não consigo encontrá-la agora. Alguém sabe do que estou falando? (Espero não confundi-lo com outra imagem criptográfica, como o ECB linux-pinguin, etc.)
Ran G.
1
@Tocou. : right - a pergunta crypto.se correspondente está em Aproveitando a reutilização de tecla única do teclado?
David Cary

Respostas:

14

Não tenho como aprender (digamos) menos que eu saiba .m 2m1m2

Esse é exatamente o problema - se você reutilizar a mesma chave e alguém tiver acesso a uma mensagem que você criptografou em texto simples e criptografado, eles poderão usá-lo para encontrar sua chave:

(m2k)m2=k

Como cenário alternativo, se você usar a mesma chave repetidamente, os atacantes poderão adivinhar apenas partes de várias mensagens criptografadas, e cada palpite bem-sucedido revelará uma parte da chave , para que, com o tempo, mais e mais chave é revelada.k

Essa estratégia geral para quebrar um sistema de criptografia é conhecida como um ataque de texto sem formatação conhecido . Muitos sistemas, como AES e RSA, são considerados seguros contra esses ataques. Mas um bloco único se torna completamente inseguro contra eles, a menos que um novo bloco seja usado para cada criptografia, e é por isso que eles são chamados de "blocos únicos".

Carl Mummert
fonte
11

É inseguro precisamente devido ao motivo que você mencionou - há algum vazamento de informações.

Basicamente, se você tem alguma suposição sobre textos simples (texto em inglês, arquivos com estrutura conhecida etc.), isso leva a uma análise estatística fácil. Provavelmente, usá-lo duas vezes não altera significativamente a praticidade do ataque, mas usá-lo várias vezes com um texto não aleatório pode revelar informações suficientes para recuperar a chave.

Finalmente, se você puder usá-lo apenas duas vezes , também poderá usá-lo apenas uma vez - a restrição é que essas almofadas únicas não devem ser usadas potencialmente desconhecidas e, com o tempo, prejudicando o número de vezes.

m1m2

Os ataques conhecidos de texto sem formatação são bastante comuns, é razoavelmente fácil coagir um mecanismo de criptografia para criptografar algo que você conhece a priori. Caso contrário, você geralmente pode fazer suposições estatísticas razoáveis.

qdot
fonte
Além disso, os blocos únicos têm a propriedade de que, se você conhecer o texto cifrado e até parte do texto simples, poderá recuperar imediatamente a parte correspondente da chave, o que significa que parte de todas as futuras mensagens criptografadas com o mesmo bloco será efetivamente enviada no claro (tornando mais fácil adivinhar mais texto simples, revelando mais da chave, etc.). Se você estiver criptografando muitas coisas, como solicitações de email ou HTTP, o invasor quase sempre poderá conhecer parte do texto sem formatação simplesmente devido à estrutura desses protocolos.
Ben
6

(m1k)(m2k)=m1m2

registro226=4.7

Se você quiser usar o teclado descartável duas vezes, precisará compactar sua mensagem primeiro. E mesmo assim, se você não usar um algoritmo de compactação quase perfeito e usar o teclado único várias vezes, haverá entropia suficiente para recuperar teoricamente as mensagens. Eu não sei o quão difícil seria na prática.

Peter Shor
fonte
4

m1m2m1m2

Na verdade, para muitos casos, é muito simples. Aqui está uma visualização simples.

Tocou.
fonte
2

Aqui está uma maneira intuitiva de representar a abordagem sem recorrer à matemática. Digamos que você tenha duas mensagens criptografadas que foram criptografadas pelo mesmo teclado único.

  1. Adivinhe uma palavra ou frase que possa estar contida em uma das mensagens. Digamos que a frase "boletim meteorológico"
  2. Começando com a mensagem 1, suponha que "Relatório Meteorológico" ocorra na posição da primeira letra.
  3. Calcule novamente os 14 primeiros caracteres do teclado único.
  4. Descriptografe os 14 primeiros caracteres da mensagem 2 usando o OTP calculado novamente.
  5. Se o texto simples parecer gobble-di-gook, volte para a etapa 2 e repita na posição da 2ª letra. No entanto, se você receber um texto significativo (por exemplo, "Bom dia eu", parabéns, você trabalhou os primeiros 14 caracteres do OTP (e os primeiros 14 caracteres de cada letra)
  6. Se você chegar ao final da mensagem 1 sem exibir nada além de letras aleatórias, poderá concluir que a frase "Boletim Meteorológico" não ocorre na mensagem 1. Volte ao passo 1 com uma frase diferente como "Caro Coronel "
Johnno
fonte