terça-feira, 13 de setembro de 2011

Criptografia

A criptografia é um ramo da Matemática dedicado a estudar os diversos modelos de codificação de mensagens, isto é, o sigilo da informação. Sendo uma 'arte' muito antiga, que remonta a época das guerras entre reinos e impérios, a criptografia era utilizada como artifício de comunicação entre os militares que por vezes necessitavam de mandar mensagens sigilosas a suas tropas.

O modelo mais conhecido de criptografação é o Código de César, que se baseia na substituição unitária de letras dentro de um alfabeto. Por exemplo, imagine um alfabeto com 5 letras (A,B,C,D,E), agora eu substituo cada letra do alfabeto original por uma outra (B,C,D,E,A), com isso a palavra  'ABC', do original, passa a ser 'BCD'. Esse foi um método ulitizado pelo Império Romano durante anos.  Apesar de na época ter sido uma boa modelagem, nos dias de hoje essa é uma opção ruim, pois é relativamente simples para um computador determinar essa substituição unitária por meio de um  Estudo de Ocorrência, que é um estudo estatístico da aparição das letras desse alfabeto. A partir das porcentagens é possível determinar por quais letras o alfabeto original foi substituído. Por exemplo, na Língua Portuguesa a vogal 'a' é utilizada com muita frequencia, imaginemos que ela tenha sido substituída pela letra 'x'. O computator vai avaliar estatísticamente a porcentagem da ocorrência da letra 'x' no texto  criptografado e vai comparar com a tabela de ocorrência da Língua Portuguesa, daí ele determina facilmente o alfabeto criptografado.


Atualmente a modelagem mais segura é o RSA que é bem simples de ser construído e extremamente difícil de ser decifrado. Ele se baseia na circulação de mensagens numéricas (informação por meio digital). Seu princípio é o seguinte, imagine que eu deseje passar a mensagem 'm' para você. Eu devo buscar um número primo extremamente grande que se relacione com 'm' e um outro número primo 'p' extremamente grande que seja de conhecimento apenas meu e seu. Eu faço o produto de 'p' por 'm' e publico esse produto. Você recebe esse protudo, divide por 'p' e encontra o 'm'. Simples, não!?

Mas por quê esse é um método eficiente? Simples, os números primos utilizados são da ordem de 100 dígitos. Um supercomputador ao receber o produto vai ficar tentando dividir esse número pelos primos conhecidos, e com isso ele gasta muito tempo, podendo em alguns casos levar muitos anos.
Aí está a eficiência de uma modelagem: simples codificação e descodificação extremamente complicada.

Nenhum comentário:

Postar um comentário