Introdução
O envio e o recebimento de informações sigilosas é uma
necessidade antiga, que existe há centenas de anos. Com o
surgimento da internet e sua facilidade de entregar
informações de maneira precisa e extremamente rápida, a
criptografia tornou-se uma ferramenta fundamental para
permitir que apenas o emissor e o receptor tenham acesso
livre à informação trabalhada. Este artigo tem por objetivo
dar uma abordagem introdutória à criptografia, mostrando os
aspectos e conceitos mais importantes. O que é
Criptografia
O termo Criptografia surgiu da fusão das palavras gregas
"Kryptós" e "gráphein", que significam "oculto" e
"escrever", respectivamente. Trata-se de um conjunto de
conceitos e técnicas que visa codificar uma
informação de forma que somente o emissor e o receptor
possam acessá-la, evitando que um intruso consiga
interpretá-la. Para isso, uma série de técnicas são usadas e
muitas outras surgem com o passar do tempo.
Na computação, as técnicas mais conhecidas envolvem o
conceito de chaves, as chamadas "chaves
criptográficas". Trata-se de um conjunto de bits baseado em um
determinado algoritmo capaz de codificar e de decodificar
informações. Se o receptor da mensagem usar uma chave
incompatível com a chave do emissor, não conseguirá extrair a
informação.

Os primeiros métodos criptográficos existentes usavam
apenas um algoritmo de codificação. Assim, bastava que o
receptor da informação conhecesse esse algoritmo para poder
extraí-la. No entanto, se um intruso tiver posse desse
algoritmo, também poderá decifrá-la, caso capture os dados
criptografados. Há ainda outro problema: imagine que a pessoa
A tenha que enviar uma informação criptografada à pessoa B.
Esta última terá que conhecer o algoritmo usado. Imagine agora
que uma pessoa C também precisa receber uma informação da
pessoa A, porém a pessoa C não pode descobrir qual é a
informação que a pessoa B recebeu. Se a pessoa C capturar a
informação envida à pessoa B, também conseguirá decifrá-la,
pois quando a pessoa A enviou sua informação, a pessoa C
também teve que conhecer o algoritmo usado. Para a pessoa A
evitar esse problema, a única solução é usar um algoritmo
diferente para cada receptor.
Com o uso de chaves, um emissor pode usar o mesmo algoritmo
(o mesmo método) para vários receptores. Basta que cada um
receba uma chave diferente. Além disso, caso um receptor perca
ou exponha determinada chave, é possível trocá-la, mantendo-se
o mesmo algoritmo.
Você já deve ter ouvido falar de chave de 64 bits, chave de
128 bits e assim por diante. Esses valores expressam o tamanho
de uma determinada chave. Quanto mais bits forem utilizados,
mais segura será a criptografia. Explica-se: caso um algoritmo
use chaves de 8 bits, apenas 256 chaves poderão ser usadas na
decodificação, pois 2 elevado a 8 é 256. Isso deixa claro que
8 bits é inseguro, pois até uma pessoa é capaz de gerar as 256
combinações (embora demore), imagine então um computador.
Porém, se forem usados 128 ou mais bits para chaves (faça 2
elevado a 128 para ver o que acontece), teremos uma quantidade
extremamente grande de combinações, deixando a informação
criptografada bem mais segura.
Chaves simétricas e assimétricas
Existem dois tipos de chaves: simétricas e assimétricas.
Ambas são vistas a seguir.
Chave simétrica
Esse é um tipo de chave mais simples, onde o emissor e o
receptor fazem uso da mesma chave, isto é, uma única chave é
usada na codificação e na decodificação da informação. Existem
vários algoritmos que usam chaves simétricas, como o DES, o
IDEA, e o RC:
DES (Data Encryption Standard): criado pela IBM em
1977, faz uso de chaves de 56 bits. Isso corresponde a 72
quadrilhões de combinações. É um valor absurdamente alto, mas
não para um computador potente. Em 1997, ele foi quebrado por
técnicas de "força bruta" (tentativa e erro) em um desafio
promovido na internet;
IDEA (International Data Encryption Algorithm):
criado em 1991 por James Massey e Xuejia Lai, o IDEA é um
algoritmo que faz uso de chaves de 128 bits e que tem uma
estrutura semelhante ao DES. Sua implementação em software é
mais fácil do que a implementação deste último;
RC (Ron's Code ou Rivest Cipher): criado por Ron
Rivest na empresa RSA Data Security, esse algoritmo é muito
utilizado em e-mails e faz uso de chaves que vão de 8 a 1024
bits. Possui várias versões: RC2, RC4, RC5 e RC6.
Essencialmente, cada versão difere da outra por trabalhar com
chaves maiores.
Há ainda outros algoritmos conhecidos, como o AES (Advanced
Encryption Standard) - que é baseado no DES - ,
o 3DES, o Twofish e sua variante Blowfish, entre outros.
O uso de chaves simétricas tem algumas desvantagens,
fazendo com que sua utilização não seja adequada em situações
onde a informação é muito valiosa. Para começar, é necessário
usar uma grande quantidade de chaves caso muitas pessoas
estejam envolvidas. Ainda, há o fato de que tanto o emissor
quanto o receptor precisa conhecer a chave usada. A
transmissão dessa chave de um para o outro pode não ser tão
segura e cair em "mãos erradas".
Chave assimétrica
Também conhecida como "chave pública", a chave assimétrica
trabalha com duas chaves: uma denominada privada e
outra denominada pública. Nesse método, uma pessoa deve
criar uma chave de codificação e enviá-la a quem for mandar
informações a ela. Essa é a chave pública. Uma outra chave
deve ser criada para a decodificação. Esta - a chave privada -
é secreta.
Para entender melhor, imagine o seguinte: O InfoWester
criou uma chave pública e a enviou a vários outros sites.
Quando qualquer desses sites quiser enviar uma informação
criptografada ao InfoWester deverá utilizar a chave pública
deste. Quando o InfoWester receber a informação, apenas será
possível extraí-la com o uso da chave privada, que só o
InfoWester tem. Caso o InfoWester queira enviar uma informação
criptografada a outro site, por exemplo, o
BRY.BR22.NET, deverá
conhecer sua chave pública.

Entre os algoritmos que usam chaves assimétricas, têm-se o
RSA (o mais conhecido) e o Diffie-Hellman:
RSA (Rivest, Shamir and Adleman): criado em 1977 por
Ron Rivest, Adi Shamir e Len Adleman nos laboratórios do MIT (Massachusetts
Institute of Technology), é um dos algoritmos de
chave assimétrica mais usados. Nesse algoritmo, números primos
(número primo é aquele que só pode ser dividido por 1 e por
ele mesmo) são utilizados da seguinte forma: dois números
primos são multiplicados para se obter um terceiro valor.
Porém, descobrir os dois primeiros números a partir do
terceiro (ou seja, fazer uma fatoração) é muito trabalhoso. Se
dois números primos grandes (realmente grandes) forem usados
na multiplicação, será necessário usar muito processamento
para descobrí-los, tornando essa tarefa quase sempre inviável.
Basicamente, a chave privada no RSA são os números
multiplicados e a chave pública é o valor obtido;
ElGamal: criado por Taher ElGamal, esse algoritmo
faz uso de um problema matemático conhecido por "logaritmo
discreto" para se tornar seguro. Sua utilização é freqüente em
assinaturas digitais.
Existem ainda outros algoritmos, como o DSA (Digital
Signature Algorithm), o Schnorr (praticamente
usado apenas em assinaturas digitais) e Diffie-Hellman.
Assinatura Digital
Um recurso conhecido por Assinatura Digital é muito
usado com chaves públicas. Trata-se de um meio que permite
provar que um determinado documento eletrônico é de
procedência verdadeira. O receptor da informação usará a chave
pública fornecida pelo emissor para se certificar da origem.
Além disso, a chave fica integrada ao documento de forma que
qualquer alteração por terceiros imediatamente a invalide.
É importante frisar que assinatura digital não é o mesmo
que assinatura digitalizada. Esta última consiste em uma
assinatura feita a mão por um indivíduo que depois é capturada
por scanner e incluída em documentos.
No Brasil, uma das empresas que fornecem assinatura digital
é a
CertSign.
PGP
PGP é a sigla para Pretty Good Privacy.
Trata-se de um software livre de criptografia criado por
Philip Zimmermman em 1991. A intenção de Zimmermman foi a de
ajudar na defesa da liberdade individual nos Estados Unidos e
no mundo inteiro, uma vez que ele percebeu que o uso do
computador seria algo cada vez mais maior e que o direito à
privacidade deveria ser mantido nesse meio. Por ser
disponibilizado de forma gratuita, o PGP acabou se tornando
uns dos meios de criptografia mais conhecidos, principalmente
na troca de e-mails.
No PGP, chaves assimétricas são usadas. Além disso, para
reforçar a segurança, o software pode realizar um segundo tipo
de criptografia através de um método conhecido como "chave de
sessão" que, na verdade, é um tipo de chave simétrica.
Um fato curioso a ser citado é que Zimmermman foi alvo de
uma investigação policial que durou quase 3 anos. Isso porque
a legislação americana proíbe a exportação de software
criptográfico sem expressa autorização do governo. Porém, na
investigação, ficou provado que alguém sem identificação e não
o próprio Zimmermman é que distribuiu o programa pela internet.
O PGP então passou a ser enviado para outros países através de
uma brecha na legislação americana: novas versões tiveram seu
código-fonte publicado em livros. Estes são exportados de
forma legal, pois a lei americana proíbe a exportação do
software, mas o código impresso não é considerado programa.
Finalizando
Criptografia só pode ser considerada como tal se 4
princípios básicos forem seguidos e oferecidos:
confidencialidade, autenticação, integridade da informação e
não repudiabilidade (o remetente não pode negar o envio da
informação). É por isso que a criptografia é um recurso tão
importante na transmissão de informações pela internet e,
mesmo assim, não é capaz de garantir 100% de segurança, pois
sempre existe alguém que consegue criar um jeito de quebrar
uma codificação. Por isso é que técnicas existentes são
aperfeiçoadas e outras são criadas, como a "Criptografia
Quântica". Na criptografia há ainda outros conceitos
envolvidos, como a Função Hashing (usada em assinaturas
digitais), e aplicações, como a Certificação Digital.
Para quem deseja trabalhar com computação, criptografia é
uma área interessante. Obviamente, é necessário ter muita
afinidade com cálculos, afinal, como pode ser notado no
artigo, matemática é a base para os conceitos que envolvem a
criptografia.
Escrito por Emerson Alecrim
|