Google logo  MAIS PARA BAIXO  Google logo

Ad Unit (Iklan) BIG


Privacidade das Comunicações: criptografia, simétrica ou de chave privada, assimétrica ou de chave pública e assinatura digital

Criptografia
A palavra criptografia tem origem grega (kriptos = escondido, oculto e grifo = grafia,escrita) e define a arte ou ciência de escrever em cifras ou em códigos, utilizando um conjunto de técnicas que torna uma mensagem incompreensível, chamada comumente de texto cifrado, através de um processo chamado cifragem, permitindo que apenas o destinatário desejado consiga decodificar e ler a mensagem com clareza, no processo inverso, a decifragem.

Criptografia é a ciência de escrever ocultamente e hoje, sem dúvida, é a maneira mais segura de se enviar informações através de um canal de comunicação inseguro como, por exemplo, a Internet.

A criptografia representa um conjunto de técnicas que são usadas para manter a informação segura. Estas técnicas consistem na utilização de chaves e algoritmos de criptografia. Tendo conhecimento da chave e do algoritmo usado é possível desembaralhar a mensagem recebida.

Simétrica ou de chave privada
Estes são os algoritmos convencionais de criptografia, onde a mesma chave secreta é utilizada tanto para cifrar como para decifrar uma mensagem, devendo ser conhecida por ambos os lados do processo. Este é o grande problema do método, pois a chave tem de ser entregue aos participantes de modo seguro, e as transações só podem ser realizadas depois disso.
O fato de ambos os lados conhecerem a chave também leva à possibilidade de repúdio da transação, pois um lado pode sempre alegar que o outro usou a chave e realizou a transação em seu nome, indevidamente.

Como cada par de participantes deve ter uma chave própria, o número de chaves necessárias para comunicação segura entre muitos participantes cresce combinatoriamente, com agravante adicional de que todas essas chaves são secretas e devem ser protegidas adequadamente. Ou seja, um participante do ciclo de criptografia deverá ter a chave de todos os outros para se comunicar com cada um deles. Isso inviabiliza o uso destes algoritmos isoladamente em certas aplicações.

Os algoritmos de chave simétrica são usados para cifrar a maioria dos dados ou fluxos de dados. Estes algoritmos são projetados para serem bem rápidos e (geralmente) terem um grande número de chaves possíveis. Os melhores algoritmos de chave simétrica oferecem boa segurança quando os dados são cifrados com determinada chave, e dificilmente pode-se decifrar os dados sem possuir a mesma chave. Como a criptografia é sempre uma carga adicional ao processamento, esta vantagem é importante e deverá ser utilizada adequadamente.

Os algoritmos de chave simétrica podem ser divididos em duas categorias: de bloco e de fluxo:
  1. Algoritmos de Bloco – Cifram os dados a partir de blocos, ou seja, se o dado a ser cifrado é um texto, esse texto será dividido em blocos e a criptografia será aplicada em cima de cada bloco. Um problema com essa cifragem é que se o mesmo bloco de texto simples aparecer em dois lugares, ele encriptará o mesmo texto, gerando assim, um padrão de repetição.
  2. Algoritmos de Fluxo – Cifram os dados byte a byte. O dado a ser criptografado não é cifrado por blocos, como o anterior e sim, serialmente. A informação vai sendo criptografada do inicio ao fim, sem separações.
Há muitos algoritmos de chave simétrica em uso atualmente. Alguns dos algoritmos mais comuns no campo da segurança são:

DES – o Padrão para Criptografia de Dados (Data Encryption Standard) foi adotado como padrão pelo governo dos EUA em 1977, e como padrão ANSI em 1981. O DES é um algoritmo de bloco que usa uma chave de 56 bits e tem diferentes modos de operação, dependendo da finalidade com que é usado. O DES é um algoritmo poderoso, mas o seu reinado no mercado começou a ruir em janeiro/1997, quando a empresa RSA Data Security Inc. (que detém a patente do sistema criptográfico RSA) - decidiu colocar o DES à prova, oferecendo um prêmio de US$ 10 mil à primeira pessoa ou instituição que decifrasse uma frase criptografada com o DES (vencido o primeiro desafio, a RSA decidiu repeti-lo a cada semestre, condicionando o pagamento do prêmio à quebra do recorde de tempo estabelecido até o momento). Atualmente uma máquina preparada para a tarefa é capaz de decifrar uma mensagem cifrada com o DES em poucas horas.

Triple DES – É uma maneira de tornar o DES pelo menos duas vezes mais seguro, usando o algoritmo de criptografia três vezes, com três chaves diferentes. Usar o DES duas vezes com duas chaves diferentes não aumenta tanto a segurança quanto se poderia pensar devido a um tipo teórico de ataque conhecido como meet-in-the-midle (encontro no meio), com o qual o atacante tenta cifrar o texto limpo simultaneamente com uma operação do DES e decifrar o texto com outra operação, até que haja um encontro no meio. Atualmente, o Triple-DES está sendo usado por instituições financeiras com uma alternativa para o DES.

IDEA – O International Data Encryption Algorithm (IDEA - Algoritmo de Criptografia de Dados Internacional) foi desenvolvido em Zurique, na Suíça, por James L. Massey e Xuenjia Lai, e publicado em 1990. O IDEA usa chave de 128 bits, e é bastante forte.
RC2 – Este algoritmo de bloco foi desenvolvido originalmente por Ronald Rivest, e mantido em segredo pela RSA Data Security. Foi revelado por uma mensagem anônima na Usenet em 1996, e parece ser relativamente forte (embora algumas chaves sejam vulneráveis). O RC2 é vendido com uma implementação que permite a utilização de chaves de 1 a 2048 bits.

RC4 – Inventado em 1987 pela RSA, nunca teve o seu algoritmo de funcionamento interno publicado. Esse segredo possuía interesses financeiros e não de segurança. A empresa esperava que o mantendo em segredo, ninguém mais o implementaria e o comercializaria. É uma cifragem muito utilizada hoje em dia, até fazendo parte no protocolo de comunicação SSL (Security Socket Layer).

RC5 – Este algoritmo de bloco foi desenvolvido por Ronald Rivest e publicado em 1994. O RC5 permite que o tamanho da chave, o tamanho dos blocos de dados e o número de vezes que a criptografia será realizada seja definida pelo usuário.

Blowfish – É um algoritmo de criptografia em bloco, rápido, compacto e simples, inventado por Bruce Schneier. O algoritmo permite a utilização de uma chave de tamanho variável, de até 448 bits, e é otimizado para executar em processadores de 32 ou 64 bits. Não é patenteado e foi colocado em domínio público.

Assimétrica ou de chave pública
A existência da criptografia de chave pública foi postulada pela primeira vez em meados de 1975 por Withfield Diffie e Martin Hellman. Os dois pesquisadores, na época na universidade de Stanford, escreveram um artigo em que pressuponham a existência de uma técnica criptográfica com a qual a informação criptografada com uma chave poderia ser decifrada por uma segunda chave, aparentemente sem relação com a primeira. Robert Merkle, então estudante em Berkeley que tinha idéias semelhantes mas, devido à lentidão do processo de publicação acadêmica, seus artigos só foram publicados quando a idéia de criptografia de chave pública já era bem conhecida.

Os algoritmos assimétricos utilizam-se de duas chaves diferentes, uma em cada extremidade do processo. As duas chaves são associadas através de um relacionamento matemático, pertencendo a apenas um participante, que as utilizará para se comunicar com todos os outros de modo seguro.

Essas duas chaves são geradas de tal maneira que a partir de uma delas não é possível calcular a outra a um custo computacional viável, possibilitando a divulgação de uma delas, denominada chave pública, sem colocar em risco o segredo da outra, denominada chave secreta ou privada.

Os principais sistemas de chaves públicas atualmente em uso são:
Diffie-Hellman – Um sistema para troca de chaves criptográficas entre partes. Na verdade, não é um método de criptografia ou decifragem, é um método para troca de chave secreta compartilhada por meio de um canal de comunicação público. Com efeito, as duas partes estabelecem certos valores numéricos comuns e cada uma delas cria uma chave. As transformações matemáticas das chaves são intercambiadas. Cada parte calcula então uma terceira chave (a chave de sessão) que não pode ser descoberta facilmente por um atacante que conheça os valores intercambiados.

ElGamal – Batizado com o nome de seu criador, Taher ElGamal, é um sistema criptográfico de chave pública baseado no protocolo de troca de chaves de Diffie- Hellman. O ElGamal pode ser utilizado para criptografia e assinatura digital, de forma semelhante ao algoritmo RSA.

DSS – O Digital Signature Standard (DSS - Padrão de Assinatura Digital) foi desenvolvido pela Agência Nacional de Segurança (NSA), e adotado como Padrão Federal de Processamento de Informação (FIPS) pelo Instituto Nacional de Padrões Tecnologia (NIST) dos EUA. O DSS é baseado no Algoritmo de Assinatura Digital - DSA (Digital Signature Algorithm) - que permite a utilização de qualquer tamanho de chave, embora no DSS FIPS só sejam permitidas chaves entre 512 e 1024 bits. O DSS só pode ser usado para a realização de assinaturas digitais, embora haja implementações do DSA para criptografia.

RSA – RSA é um sistema criptográfico de chave pública conhecido, desenvolvido por Ronald Rivest, Adi Shamir e Leonard Adleman, então professores do MIT (Instituto de Tecnologia de Massachusets). O RSA utiliza criptografia em blocos e possui uma segurança muito forte, devido ao alto poder computacional necessário para se tentar quebrar uma chave RSA. Pode tanto ser usado para cifrar informações como para servir de base para um sistema de assinatura digital. As assinaturas digitais podem ser usadas para provar a autenticidade de informações digitais. A chave pode ser de qualquer tamanho, dependendo da implementação utilizada.
Assinatura Digital
Outra grande vantagem dos algoritmos assimétricos, particularmente o RSA, que é o mais conhecido e utilizado atualmente, é que o processo funciona também na criptografia no outro sentido, da chave secreta para a chave pública, o que possibilita implementar o que se denomina assinatura digital.

O conceito de assinatura é o de um processo que apenas o signatário possa realizar, garantindo dessa maneira sua participação pessoal no processo. Como a chave secreta é de posse e uso exclusivo de seu detentor, um processo de cifragem usando a chave privada do signatário se encaixa nesse conceito, permitindo, assim, a geração de uma assinatura por um processo digital.

No caso da assinatura digital, é inadequado cifrar toda a mensagem ou documento a ser assinado digitalmente devido ao tempo gasto na criptografia de um documento utilizando chaves assimétricas. A criptografia é aplicada apenas sobre um identificador unívoco do mesmo. Normalmente é utilizado como identificador o resultado da aplicação de uma função tipo HASH, que mapeia um documento digital de tamanho qualquer num conjunto de bits de tamanho fixo. Ao valor do HASH podem ainda ser anexados a data/hora, número de seqüência e outros dados identificadores, e este conjunto é então cifrado com a chave secreta do signatário constituindo a assinatura digital do documento. A função de HASH será explicada em seguida.

Qualquer participante pode verificar a autenticidade de uma assinatura digital, bastando decifrá-la com a chave pública do signatário, o qual todos podem ter acesso. Se o resultado é significativo, está garantido o uso da chave secreta correspondente na assinatura, e portanto sua autenticidade. Resta ainda comprovar a associação da assinatura ao documento, o que é feito recalculando o HASH do documento recebido e comparando-o com o valor incluído na assinatura. Se forem iguais, prova-se ainda a ligação com o documento, assim como a integridade (não alteração) do mesmo. Uma vez que a verificação é realizada utilizando a chave pública, sua validação pode ser realizada por terceiros, tais como árbitros e auditores.

Artigos relacionados

Enviar um comentário


Iscreva-se para receber novidades