1. Introdução à Criptografia

Criptografia, derivado do grego “escrita oculta”, é o estudo das técnicas de ocultação de informações. Esta é uma área tradicionalmente ligada à segurança da informação, remontando a um passado de milhares de anos.

A criptografia atual está fortemente ligada à Ciência da Computação, dada a enorme quantidade de cálculos e manipulações realizadas a cada operação de codificação e decodificação. De forma recíproca, a natureza segura de algumas técnicas criptográficas se baseia na computabilidade dos algoritmos aplicados – dado um computador, ou grupo de computadores, com poder suficiente, algumas técnicas passam a ser quebradas com facilidade.

Criptografia, criptologia e criptoanálise

A criptografia é, na realidade, um subconjunto da criptologia, área de estudo que envolve também a criptoanálise. Enquanto a criptografia busca esconder informações, a criptoanálise objetiva o inverso: quebrar as técnicas usadas e tentar obter informações a partir de dados codificados sem ter acesso aos segredos requeridos pela decodificação normal.

A evolução de ambas ao longo da história corre paralelamente. Com freqüência, o desenvolvimento de uma nova técnica de criptografia é motivado pelo descobrimento de formas eficientes de ataque às técnicas atuais.

As técnicas tradicionais de criptografia – que não envolvem princípios de física quântica – são historicamente divididas em clássicas e modernas. Técnicas clássicas foram utilizadas até o advento da computação; as técnicas modernas são mais recentes, baseadas em computadores e dividem-se em algoritmos simétricos e assimétricos.

Técnicas clássicas

Existem registros do uso da chamada criptografia clássica datando de cerca de três milênios. A criptografia clássica era utilizada normalmente para transportar mensagens seguramente, de forma que, caso fosse interceptada por inimigos, estes não pudessem entendê-las, ou para proteger segredos comerciais armazenados.

Auxílios computacionais são uma evolução recente na história da criptografia. As técnicas clássicas eram operadas apenas por humanos com lápis e papel ou, no máximo, com equipamentos mecânicos. Por esta razão as técnicas eram simples, normalmente atuando na transposição ou substituição de caracteres. Ao contrário do que acontece atualmente, a segurança das técnicas encontrava-se com freqüência no segredo da própria técnica aplicada.

Exemplos de técnicas clássicas de substituição são a cifra Atbash (inversão das letras do alfabeto, com origens no hebraico) e a cifra de César (rotação das letras do alfabeto por um número fixo). Na transposição, a ordem das letras ou das palavras na mensagem é alterada segundo algum esquema previamente combinado.

A criptoanálise desenvolveu durante a era medieval técnicas de análise de freqüência, na qual as freqüências das letras na mensagem são comparadas às freqüências médias em textos do idioma da mensagem, permitindo quebrar com facilidade cifras de substituição. Dado o baixo requerimento computacional da análise de freqüência, as cifras clássicas são consideradas atualmente como incapazes de fornecer qualquer segurança real, sendo utilizados apenas como formas ocasionais de entretenimento.

Linha do Tempo

A partir do início do século XX começou-se a usar aparelhos mecânicos para aplicar e remover cifras, combinando mensagens em texto puro, chaves secretas e operações matemáticas. A Segunda Guerra Mundial foi prolífica em métodos criptográficos e aparelhos para quebra de cifras; a máquina Enigma tornou-se célebre por ser usada pelo exército alemão durante a guerra e por ter tido sua cifra quebrada pelos aliados, que descobriram segredos militares alemães.

Entre as décadas de 1950 e 1970 a criptografia foi tratada como segredo de estado e muito pouco foi divulgado; suas evoluções voltaram a ser públicas na década de 1970, fundamentadas sobre as teorias de matemática, informação e comunicação e calcadas nos computadores digitais.

Linha do Tempo:

Criptografia simétrica

A criptografia simétrica é a forma mais comum de criptografia e a de mais simples entendimento. Os dados a serem protegidos são alimentados a um algoritmo que recebe uma chave secreta e fornece como saída o dado criptografado, ou seja, modificado e aparentemente sem sentido. A informação é então transmitida ao receptor (ou armazenada para uso posterior). Para obter os dados originais, a informação criptografada é alimentada a um algoritmo que realiza um procedimento inverso e, se fornecida a mesma chave secreta, tem como saída os dados originais.

Criptografia Simetrica

O fato marcante da criptografia simétrica, e origem de seu nome, é o uso da mesma chave secreta (ou de chaves trivialmente relacionáveis) para codificação e decodificação. Para um envio criptografado bem-sucedido, a chave deve ser acordada previamente entre o emissor e o receptor. Surge então o grande problema, que não possui fácil solução: a transmissão da chave. Caso esta transmissão não seja segura o bastante, a segurança de toda a criptografia do dado principal fica abalada.

Por ser mais intuitiva, a criptografia simétrica era a única forma conhecida até meados da década de 1970. Ela possui vantagens que ainda a fazem ser utilizada até hoje, como a velocidade na codificação e decodificação. Ela também é vantajosa quando a troca de chaves secretas não é um problema, como no armazenamento local de arquivos criptografados. Exemplos de algoritmos de criptografia simétrica são o AES (Advanced Encryption Standard), Blowfish e RC4.

Veja mais: AES passo a passo

Criptografia assimétrica

Criptografia Assimetrica

A criptografia assimétrica ou criptografia de chave pública, cujo desenvolvimento teve início em 1976, tem como principal vantagem aquele que era o ponto fraco da criptografia simétrica: as chaves de codificação e decodificação são diferentes, eliminando o problema da comunicação. Os algoritmos usados no processo de criptografia são relacionados, porém um é de resolução muito mais fácil que o outro (chamados funções de mão única) – a chave original, chamada de chave privada, pode dar origem à chave que é divulgada, chamada de chave pública, mas o inverso não é possível em tempo hábil.

Os algoritmos de criptografia assimétrica são em geral baseados em problemas de difícil solução, como curvas elípticas, logaritmos discretos e fatoração de números primos. São exemplos de técnicas de criptografia assimétrica o protocolo Diffie-Hellman de troca de chaves, o algoritmo RSA e o padrão DSA (Digital Signature Algorithm).

Uma das grandes desvantagens da criptografia assimétrica é o custo computacional dos algoritmos, muito mais lentos que os da criptografia simétrica, mesmo se implementados em hardware. Por esta razão as transmissões freqüentemente iniciam-se com o envio de uma chave secreta através de criptografia assimétrica, e os dados propriamente ditos – em muito maior quantidade – são enviados codificados com criptografia simétrica.

Veja mais: RSA em detalhes