terça-feira, 21 de abril de 2015

Criptografia Assimétrica

Vamos começar hoje a segunda parte do assunto de criptografia. Tudo que vimos até agora era criptografia simétrica, ou seja, usava a mesma chave para a criptografia do texto claro e para a decriptografia do texto cifrado.

A partir de agora vamos ver um pouco sobre criptografia assimétrica, que não usa a mesma chave na cifragem e decifragem, normalmente usa um par de chaves, diretamente relacionadas, uma sendo usada para cifrar e outra para decifrar.

Até agora foi mencionado que existem algoritmos antigos (clássicos), algoritmos atuais mas não mais utilizados e algoritmos atuais sendo utilizados. Agora estamos mencionando outro tipo de criptografia e a primeira pergunta que vem a mente é, "qual é melhor" ou "porque dois tipos"? A resposta é simples, depende (praticamente todas as perguntas da área podem ser respondidas com esta palavra :D). Depende do seu objetivo, cada modelo de criptografia é o melhor para sua função. Vimos que com algoritmos simétricos como o AES podemos criptografar e decriptografar grandes quantidades de dados de uma forma rápida, então uma finalidade boa para este algoritmo é a criptografia de arquivos e de disco.

Já no caso da criptografia assimétrica vamos ver no decorrer de nossos estudos.

Pontos negativos da criptografia simétrica

Antes de iniciarmos de fato com a assimétrica vamos entender alguns pontos onde a simétrica não é muito boa:

- Necessidade de canal seguro: A criptografia simétrica necessita obrigatoriamente de um canal seguro, onde será trafegada a chave, como já vimos anteriormente. Neste caso, se o canal seguro for comprometido, toda a criptografia vai por água abaixo, já que portando a chave uma parte mal intencionada pode lançar qualquer tipo de ataque, incluindo decifrar conteúdos cifrados.

- Gerenciamento complexo: Como tudo depende de apenas uma chave e com ela tanto cifragem quanto decifragem são realizadas acabamos gerando outros problemas. Por exemplo, você vai precisar de uma cópia da chave de cada uma das pessoas com quem você se relaciona e troca informação sensível. Este armazenamento e gerência tem de ser seguro, caso você ou alguém que tenha sua senha seja comprometido, todas as mensagens cifradas que você e outras pessoas que tenham suas chaves armazenadas trocaram podem ser decifradas por esse atacante.

Ok, para resolver esses problemas você poderia pensar em criar uma nova chave para cada comunicação ou para cada pessoa que você conversa, mas essa não seria uma boa idéia, além de ter que gerenciar as chaves de todos, vai ter o trabalho de gerencias várias chaves próprias diferentes, sem falar em comunicar sempre que mudar de chave.



Imagine que um grupo de 4 pessoas está trabalhando em um projeto altamente sigiloso, e essas 4 pessoas se reportam a uma outra pessoa. Todas as suas mensagens tem de ser trocadas de forma sigilosa. Usando a criptografia simétrica isso não seria uma tarefa fácil, cada um dos membros deveria ter uma cópia armazenada da chave dos outros membros, o que geraria muita confusão já que cada mensagem deveria ter uma chave diferente, de acordo com o destino dela. Outra possibilidade para simplificar seria o uso de uma chave única, o que resolveria boa parte da confusão, mas ainda seriam muitos pontos de falha, se qualquer um dos cinco integrantes tiver sua máquina comprometida, a chave pode vazar, resultando em exposição de tudo o que já foi criptografado com esta chave.

Para resolver esse tipo de questão e algumas outras foi inventada a criptografia assimétrica em 1976, quando Whitfield Diffie e Martin Hellman apresentaram um algoritmo para troca de chaves, no ano seguinte Ron Rivest, Adi Shamir e Len Adleman criaram um algoritmo de fato que era de criptografia assimétrica, e em 1978 é publicado o algoritmo RSA, que é o algoritmo assimétrico mais usado até hoje.

Funcionamento básico das chaves

Como já foi comentado antes, os algoritmos assimétricos usam 2 chaves, diferentes, mas matematicamente relacionadas. As chaves são comumente chamadas de Chave Pública e Chave Privada. Pelos seus nomes já da para ter uma idéia de suas funções :)

Diferentes, mas matematicamente relacionadas quer dizer que as chaves são de fato diferentes, onde o que uma chave cifrar apenas a outra poderá decifrar. A mesma chave não pode decifrar o que cifrou e o algoritmo funciona independente de ordem, qualquer uma das duas pode ser usada na criptografia.

Veremos em outros textos os usos de criptografia com a chave pública e com a chave privada e seus objetivos.

Mesmo as chaves sendo matematicamente interligadas é (ou espera-se que seja) impossível de recriar uma chave a partir da outra.

Veja um exemplo simples da criptografia assimétrica:


No próximo texto veremos mais informações sobre as chaves, funcionamento e possíveis uso deste tipo de criptografia.

0 comentários:

Postar um comentário

Subscribe to RSS Feed Follow me on Twitter!