Criptografia

Da era da informação, estamos mudando para a era da segurança! Tendo em vista os acontecimentos relacionados à segurança nas internet, é necessário manter o mínimo de sigilo de nossos dados quando os enviamos pela internet. Não queremos que o filho nerd do vizinho ou outra pessoa mal intencionada obtenha acesso aos seus dados na hora de você acessar sua conta online ou realizar alguma compra online. Através da criptografia é possível que seus dados possam trafegar de uma maneira "segura" através da internet, mas o que é criptografia? Como ela funciona? 



É uma técnica (ou ciência) utilizada para embaralhar as informações que pretendemos guardar ou enviar. O termo criptografia é derivado de duas palavras gregas: “kryptós”, que significa oculto e “gráphein”, que significa escrever. A criptografia é tão antiga quanto a arte da escrita e já estava presente na escrita hieroglífica dos egípcios, nos planos de batalha utilizados pelos romanos e em várias outras situações em que se desejava o sigilo das informações.
Depois da segunda guerra mundial, com o surgimento do computador, essa área cresceu muito pelo fato de ser possível desenvolver e executar vários algoritmos matemáticos de criptografia. Todo o trabalho criptográfico desenvolvido na segunda guerra mundial formou a base para a computação moderna.
A codificação das mensagens podem ser feitas utilizando várias técnicas. As mais antigas utilizavam a substituição de caracteres do alfabeto e a esteganografia. Hoje, além de substituições, utilizam-se transposições, equações lineares, funções polinomiais, números primos e por aí vai... É uma ciência que envolve muitos princípios  matemáticos no desenvolvimento, inclusive, os grandes matemáticos foram os que mais se destacaram nas descobertas de algoritmos.

Basicamente existem duas categorias: criptografia de chave simétrica e de chave pública. Mas antes de começar a falar sobre elas, é importante saber de alguns termos utilizados:
Texto claro: mensagem ou dados originais, inteligíveis;
Algoritmo de criptografia: Operações (substituição, transposição...) a serem feitas no texto claro para serem transmitidas;
Chave secreta: É a entrada para algoritmo de criptografia, assim como o texto claro. O algoritmo irá produzir uma saída diferente do texto claro se baseando no valor da chave.
Texto cifrado: Mensagem embaralhada, produzida como saída e depende da chave secreta. Se utilizar duas chaves diferentes, dois textos cifrados diferentes serão gerados.
Algoritmo de decriptografia: É o algoritmo de criptografia executado de modo inverso. O texto cifrado e a chave serão as entradas para produzir o texto claro.

Exemplo: Cifra de César. Método antigo e simples de uma cifra de substituição, consiste em substituir a letra do alfabeto pela letra que fica a três posições adiante no alfabeto.
Texto claro: MENSAGEM SIGILOSA
Texto cifrado:    PHQVDJHP  VLJLORVD
Neste exemplo podemos perceber que o algoritmo de criptografia consiste na substituição da letra do alfabeto, a chave secreta é o valor três e o algoritmo de decriptografia é o processo inverso da substituição.

A criptografia de Chave simétrica é aquela em que o emissor e o receptor irão compartilhar a mesma chave para criptografar e desencriptografar as mensagens. Nesse caso é preciso ter cuidado ao compartilhar a chave para que nenhum intruso possa ter acesso às mensagens.
Os algoritmos DES, AES, IDEA, RC4, além de outros, utilizam chave simétrica em seu funcionamento. 
Outro grande detalhe é a questão do tamanho das chaves geradas, quanto maior a chave, mais trabalhoso será para quebrá-la. O trabalho de tentar descobrir a chave chama-se ataque por força bruta, no qual várias tentativas (e erros) serão feitas até que se encontre a chave correta e o intruso possa decifrar o texto cifrado (supondo que o mesmo saiba do algoritmo de criptografia, o que para os hackers não é difícil saber).
Essa tabela mostra um exemplo do trabalho de alguém que quiser descobrir uma determinada senha através da técnica de força bruta. Porém, esse trabalho já está sendo amenizado por hardwares atuais, juntamente com softwares específicos, veja. Criptografia assimétrica é quela em que se utiliza duas chaves diferentes para a criptografia e decriptografia, sendo uma privada e outra chamada de chave pública. Essa técnica foi considerada uma revolução na história, e ao contrario de algumas concepções, ela não é mais eficiente do que a criptografia simétrica. A diferença está na forma que as chaves são utilizadas. No criptossistema de chave assimétrica, qualquer uma das duas chaves relacionadas pode ser usada para criptografar, com a outra usada para a decriptografia. 




Com base na imagem acima, um exemplo de troca de mensagem utilizando chave pública, segue as seguintes etapas: Fulano: gera uma chave privada e uma pública que é enviada para Beltrano.< Beltrano: gera uma chave privada e uma pública que é enviada para Fulano. As chaves públicas de cada um é compartilhada de uma forma segura utilizando um registro público ou um arquivo acessível. Como Beltrano quer mandar uma mensagem para Fulano, ele utiliza a chave pública de fulano para criptografar a mensagem. Finalmente Fulano poderá decriptografar a mensagem utilizando sua chave privada. Cada usuário pode distribuir sua chave pública para seus contatos confiáveis, desde que sua chave privada permaneça protegida e secreta, caso contrário, será necessário gerar outro par de chaves e refazer a distribuição. Os algoritmos que utilizam criptografia simétrica são: RSA, ElGamal, Diffie-Hellman, etc. Uma aplicação prática que vemos no nosso cotidiano são os protocolos de criptografia utilizados em redes Wi-Fi: WEP, WPA, WPA2... Quando configuramos a senha de nossos roteadores wireless, estamos definindo a chave simétrica secreta, que em alguns protocolos são utilizados somente na autenticação inicial. O WPA e WPA2, que são mais recomendado que o WEP, utilizam o protocolo TKLP e RC4 respectivamente. No entanto, já existem tutoriais para a quebra destes, mas sendo possível apenas para senhas fáceis e pequenas. Esse texto trata apenas da ponta do iceberg do mundo da segurança e criptografia. A nível de leitor, pode parecer relativamente simples os mecanismos utilizado para um sistema de criptografia, mas ao fazer uma rápida pesquisa sobre o assunto, serão encontrados centenas de artigos e pesquisas complexas sobre o mesmo. É uma área que gosto muito e que em breve continuarei a colocar mais assuntos relacionados aqui no ElectronWare.
Sobre o Autor:

Ramon Santos é um dos colunistas do blog Electronware e publicará textos sobre hardware, software (inclusive livre), redes e segurança. Sempre em busca do conhecimento e desafios. "O segredo do sucesso é a moderação..."(matanza)

Um comentário: