nunojob:~ dscape/08$ echo The Black Sheep

Posts tagged ‘one time pad’

Introducação a Criptografia: One Time Pad

Na criptografia clássica o One Time Pad é o mais famoso algoritmo de encriptação simétrica. O principio é simples. Um simples XOR entre a chave e o texto que quer deseja encriptar, sendo que a chave deve ser do mesmo tamanho que o texto e aleatória. Não compreenderam? Passo a explicar com uma história ilustrativa:

Imaginemos que a Alice convidou o Manel – o Bob foi fazer séries televisivas para crianças sobre construção civil – para sair mas assume que a Eva – provavelmente a ex-namorada – recebe todas as mensagens que são enviadas pelo Manel (mania da perseguição ou principio de Kerckhoff , eis a questão.). Então quando o convidou para sair disse ao Manel para usar como chave um simples ’1′ e para responder ’0′ caso não tivesse disponibilidade e ’1′ caso tivesse.

O Manel quer e responde sim e supõe-se que a Eva viu a mensagem resultante – 0. Como a chave foi gerada aleatoriamente pela Alice e é partilhada apenas pelos dois a Eva apenas sabe que existe a probabilidade de 50% de ele ter aceite, e outros 50% de ele ter recusado. Mas bem isto já ela sabia sem ter que recorrer a métodos de cryptanalysis.  E mesmo se as probabilidade forem diferentes a analise vai sempre mostrar apenas aquilo que já se sabia. A probabilidade de cada digito acontecer.

Esta conclusão é generalizável a um qualquer número de bits, como foi provado por Claude Shannon.

Parece perfeito mas é impraticavel. Como é obvio é preciso de uma chave do tamanho do texto que precisamos de enviar, todas as vezes. E essa chave tem que ser do conhecimento dos dois interlocutores. Se quiserem saber o que aconteceu depois para resolver o assunto vão ter que aprender muita criptografia pelo meio. Mas não é isto que me levou a escrever este artigo.

O que me levou a escrever este artigo foi uma pergunta – de um exame antigo de criptografia – na qual se perguntava como era possível que, num banco que conseguia usar este método (apesar de ser impossível, mas ok!), tivesse havido uma transacção na qual teria sido depositada 500 euros em vez de 100 que tinham sido ordenados pelo titular da conta. Teria forçosamente que existir um man-in-the-middle mas como podia ele romper este algoritmo.

Apesar de não ter a certeza penso que a resposta seria: Ou o bandido tem a chave ou então ele sabe onde está o ’1′, fez XOR com um dos 256 dígitos disponíveis e teve a sorte do input ser aceite pela entidade bancária como 500 euros. Por outras palavras o OTP protege a confidencialidade mas não garante a preservação do seu conteúdo (acho que normalmente se refere a isto como integridade dos dados :|).

Alguma ideia que não estas?

Follow

Get every new post delivered to your Inbox.