17 de set. de 2010

Elementos básicos da criptografia

Introdução

A criptografia compreende dois processos: encriptação e decriptação. O primeiro corresponde à codificação dos dados. O segundo é caracterizado pela situação inversa, ou seja, transformar a codificação nos dados em sua forma original, inteligível.

Algoritmos de Criptografia

Todo processo de encriptação e decriptação faz uso de algum algoritmo de criptografia. Tais algoritmos geralmente são construídos com base em conceitos matemáticos tais como aritmética modular e operações com números primos.

Termos utilizados

Criptografia (kriptós = escondido, oculto; grápho = grafia) : é a arte ou ciência de escrever em cifra ou em códigos, de forma a permitir que somente o destinatário a decifre e a compreenda.

Criptoanálise (kriptós = escondido, oculto; análysis = decomposição) : é a arte ou ciência de determinar a chave ou decifrar mensagens sem conhecer a chave. Uma tentativa de criptoanálise é chamada ataque.

Criptologia (kriptós = escondido, oculto; logo = estudo, ciência) : é a ciência que reúne a criptografia e a criptoanálise.

A criptografia computacional como a conhecemos protege o sistema quanto a ameaça de perda de confiabilidade, integridade ou não-repudiação, é utilizada para garantir :

Sigilo: somente os usuários autorizados têm acesso à informação.

Integridade: garantia oferecida ao usuário de que a informação correta, original, não foi alterada, nem intencionalmente, nem acidentalmente.

Autenticação do usuário: é o processo que permite ao sistema verificar se a pessoa com quem está se comunicando é de fato a pessoa que alega ser.

Autenticação de remetente: é o processo que permite a um usuário certificar-se que a mensagem recebida foi de fato enviada pelo remetente, podendo-se inclusive provar perante um juiz, que o remetente enviou aquela mensagem.

Autenticação do destinatário: consiste em se ter uma prova de que a mensagem enviada foi como tal recebida pelo destinatário.

Autenticação de atualidade: consiste em provar que a mensagem é atual, não se tratando de mensagens antigas reenviadas.

O desenvolvimento de “bons” algoritmos de criptografia é uma tarefa bastante complexa, pois não há regras de projeto bem definidas para facilitar a vida de um projetista. Geralmente, os algoritmos são baseados em estudos matemáticos e em lógicas criadas pelos projetistas. Contudo, veremos ainda nesta aula que algumas técnicas são bastante utilizadas em grande parte dos algoritmos.

Quando falamos em bons algoritmos queremos dizer o quão é difícil obter o texto plano a partir do texto cifrado. Em outras palavras, suponhamos que você enviou uma mensagem criptografada para uma outra pessoa e alguém interceptou tal mensagem. Quanto mais esta mensagem for diferente do texto original e quanto mais for difícil de se obtê-lo a partir do texto cifrado, melhor será o algoritmo.

Um outro detalhe interessante é que a grande maioria dos algoritmos existentes tem seus processos de encriptação e decriptação conhecidos publicamente, isto é, o código dos algoritmos é divulgado livremente.

Você então deve estar pensando: Mas se o código do algoritmo é conhecido, se sei todos os passos dele, então é fácil obter o texto plano a partir do texto cifrado. Errado. A geração do texto cifrado não é baseada somente no algoritmo, mas também em um outro elemento, a chave.

Chave

Além do algoritmo de criptografia, um outro elemento necessário aos processos de encriptação e decriptação é a chave. Embora o algoritmo possa ser conhecido, a chave é o segredo do usuário. Ela é um valor que deve ser passado ao algoritmo e que interfere diretamente na criptografia.

Mesmo que alguém obtenha o criptograma e conheça o algoritmo, para decriptografar a mensagem ele precisará descobrir qual foi a chave utilizada na encriptação. É o que comumente chamamos de “quebrar o algoritmo”. É aqui que entra o trabalho do criptoanalista: tentar quebrar o algoritmo, descobrindo a chave utilizada a partir da análise do criptograma.

Considerando um mesmo algoritmo e uma mesma mensagem, é importante que cada chave distinta gere um criptograma diferente. Isto dificulta ainda mais a quebra do algoritmo.

Com base na utilização de chaves, podemos caracterizar os algoritmos de criptografia em dois tipos: simétricos e assimétricos.

Os algoritmos simétricos são aqueles em que a mesma chave é utilizada tanto no processo de encriptação quanto na decriptação. Ou seja, se você enviar uma mensagem para alguém usando um algoritmo simétrico, o destinatário terá que saber qual foi a chave utilizada para poder decriptografar a mensagem.

Já os algoritmos assimétricos fazem uso de duas chaves distintas, isto é, uma chave é utilizada para encriptação e a decriptação, por sua vez, é feita utilizando-se uma chave distinta. Isto melhora a segurança do algoritmo.

Processos Básicos de Cifragem

Cifragem por Substituição

A criptografia por substituição baseia-se na troca de um caracter ou grupo de caracteres do texto plano com base em uma tabela de substituição.

Cifra de César

Por volta de 50 a.C., o imperador romano Júlio César criou um processo de encriptação e decriptação de mensagens que se baseava na substituição cíclica de letras do alfabeto, ou seja, cada letra na mensagem original era substituída por uma outra localizada três posições à frente.

Dessa forma, a letra A seria substituída por D, B por E, C por F e, assim por diante. Observe que a substituição é cíclica, o que implica que X será substituído por A, Y por B e Z por C.

Observe que o processo da cifra de César pode sofrer alterações aumentando-se ou diminuindo-se a quantidade de letras deslocadas. Veja também que o destinatário da mensagem precisa saber qual foi o deslocamento utilizado para que ele possa converter o criptograma no texto original.

Cifragem monoalfabética

Na cifragem monoalfabética, uma letra do texto claro é substituida por uma outra letra qualquer do alfabeto de acordo com uma tabela. Neste caso, esta tabela representa a chave de encriptação, tendo em vista que o destinatário da mensagem terá que conhecer também esta tabela para que ele possa decriptografar a mensagem recebida.

Cifragem polialfabética

A cifragem polialfabética, por sua vez, caracteriza-se pelo uso de mais de uma tabela de substituição, combinando o uso de várias substituições monoalfabéticas de acordo com uma chave. Dessa forma, tem-se uma chave que diz qual das tabelas será usada para cada letra do texto original.

Uma das cifragens polialfabéticas mais conhecidas é a Cifra de Vigenère. Para criptografar um texto, é preciso utilizar uma chave.

Conclusão

Dentro do ciclo de vida da informação quando precisamos manusear dados restritos e ou confidenciais necessitamos "escondelas" de tal forma que garanta a confidencialidade de tal forma que esteja disponível e integrar para seus receptores. Para tanto, utilizamos essa técnica de criptografia que desde os tempos do império romano e até mesmo antes já eram utilizados. Vimos nesse artigo o que é criptograria, chave e os tipos de cifragem deixando simples para o leitor a sua utilização e aplicação com objetivo de proteger o sistema quanto a ameaça de perda de confiabilidade, integridade ou não-repudiação.

Nenhum comentário:

Postar um comentário