1 CRIPTOGRAFIA
A Criptografia é a ciência e técnica de algoritmos que garantem
comunicação segura através de um canal inseguro. Estes algoritmos são
chamados algoritmos criptográficos, e as estruturas que
resultam deles são chamadas criptosistemas.
Tipos de problemas
Um algoritmo criptográfico pode ser empregado para resolver uma série
de problemas:
- Sigilo da informação: garantir que uma mensagem sensível é
legível apenas para as entidades às quais ela pertence;
- Integridade da informação: garantir que uma mensagem chegue
a seu destino inalterada, ou seja, detectar alterações intermediárias na
mensagem;
- Autenticação da informação: garantir que a mensagem
recebida de fato vem do remetente, e não de um falso remetente;
- Integridade da informação armazenada: garantir que a
informação recebida com uma mensagem e armazenada com o destinatário não
será lida ou alterada por uma entidade desautorizada.
Tipos de algoritmos
Os algoritmos empregados para a atacar estes problemas são de três
tipos:
- Algoritmos de criptografia simétrica ou de chave
secreta: são algoritmos usados para atacar os problemas (1) e (4).
Nesses algoritmos, uma chave combinada entre remetente e destinatário
(que pode ser uma palavra, um número, ou uma sequência de bits) é usada
para criptografar a mensagem (i.e. torná-la ilegível) e a mesma chave é
usada para descriptografá-la (i.e. torná-la legível novamente). Exemplos
são as cifras elementares, o DES e o AES. ^246b93
- Algoritmos de criptografia assimétrica ou de chave
pública: são algoritmos usados para atacar os problemas (1) e (4).
Nesses algoritmos, duas chaves inversas são geradas: o que uma fizer, a
outra poderá desfazer, e vice-versa. Dessa maneira, a primeira chave,
chamada chave pública, pode ser transmitida sem comprometimento para que
qualquer um a utilize para criptografar uma mensagem, mas a segunda,
chamada chave secreta, fica na posse apenas do destinatário, de forma
que apenas ele possa decriptografar uma mensagem. ^b5336c
- Algoritmos de criptografia híbrida: são algoritmos
que tem uma parte assimétrica e uma parte simétrica. Um exemplo são os
algoritmos Key Encapsulation Mechanism (KEM), onde um algoritmo
assimétrico é usado para se estabelecer uma chave para um algoritmo
simétrico, que é usado a partir daí. Essa é uma prática comum pois
algoritmos assimétricos costumam ser muito menos eficientes do que
algoritmos simétricos (e.g. o 7
RSA é aproximadamente 60 vezes mais lento que o AES).
- Algoritmos de identificação: são algoritmos usados
para atacar o problema (2).
- Algoritmos de assinatura: são algoritmos de
criptografia assimétrica que são empregados para atacar o problema (3).
Aqui ocorre o uso inverso: publica-se uma mensagem e a sua versão
criptografada pela chave secreta, chamada de assinatura. Assim, qualquer
um que obter as duas mensagem pode decriptografar a ilegível usando a
chave pública. Se o resultado for idêntico à outra mensagem, sabemos que
a mensagem de fato foi enviada pelo remetente, pois a chave pública
desfaz apenas o que a secreta faz. Além disso, o remetente não pode
mentir dizendo que nunca enviou a mensagem, pois a assintura só pode ser
gerada por ele. Esse aspecto se chama não-repudiação.
Estratégias e considerações
Algumas das estratégias empregadas por esses algoritmos são: 1.
Confusão da informação: como definido por Claude
Shannon em A Mathematical Theory of Cryptography, a informação
de um criptosistema é dita confusa se cada bit de informação depende de
diversas partes da chave, o que implica numa desconexidade aparente
entre chave e criptotexto. ^bee153 2. Difusão da
informação: definido igualmente, a informação de um
criptosistema é dita difusa se a informação de cada bit do texto legível
é usada por determinar diversas partes do criptotexto; ou seja,
significa que a informação de cada bit é “espalhada” pelo criptotexto,
criando uma desconexidade aparente entre texto legível e criptotexto.
Esse efeito também é chamado de efeito avalanche. A
difusão de um sistema é ideal quando mudar qualquer bit da mensagem
resulta na inversão de aproximadamente 50% dos bits do criptotexto, sem
um padrão estatístico reconhecível. ^71b338 3.
Composição: muitas vezes é interessante concatenar mais
de um algoritmo criptográfico em um sistema composto. Concatenar dois
algoritmos iguais com chaves diferentes pode ser mais forte do que
dobrar o tamanho da chave. 4. Redução de
redundância: uma redundância no criptosistema representa uma
vulnerabilidade, pois expõe o sistemas a análises estatísticas que podem
resultar no comprometimento da chave.
Algumas considerações adicionais são: 1. O funcionamento e
implementação de algoritmos criptográficos em contextos reais costuma
ser complicado e cheio de detalhes, o que abre brechas de
vulnerabilidade. A realidade é que sistemas de segurança são dificeis de
se fazer e, por isso, muitos sistemas são comprometidos sem que sequer
se saiba do ocorrido. 2. A maioria dos crimes eletrônicos são realizados
por “insiders”: pessoas que estão inseridos na operação, como
funcionários de uma empresa, que tem acesso a informação sigilosa. Por
isso é necessario ter uma mentalidade meticulosa quando se trata de
segurança eletrônica.