Os segredos da Criptografia com o
Gcipher.
Descrição: Neste artigo
abordo um pouco da história da criptografia, como surgiu, quais
são as técnicas existentes e como funcionam, e para
completar e por na prática tudo que foi falado, eu apresento o
GCipher, uma simples mas fantástica ferramenta open source para
criptografia. Confira!
Se você pensa que a criptografia é
coisa
moderna e surgiu num passado recente com a informática,
está errado. Ela é tão antiga quanto os
computadores e foi criada numa época em que algarismos
arábicos não eram nem conhecidos pelos ocidentes.
Por incrível que pareça a criptografia é algo bem
antigo
e surgiu no Império Romano Antigo, com o grande imperador
traído Júlio César, numa tentativa de
comunicar -se
com seus subalternos de uma maneira segura, em que somente ele e
seus subordinados de confiança conheciam as mensagens cifradas.
A idéia é extremamente simples, mas
que tinha extrema capacidade, e que seria usada até hoje,
centenas de anos depois. Ela se baseia assim: Em suas mensagens
atravéz de cartas, as letras 'A' seriam substituídas por
'D', as
letra 'B' por 'E', 'C' por 'F' e assim sucessivamente, surgia assim a
criptografia simétrica ou por chave privada.
De uma forma bem sintética, a criptografia
simétrica usa uma "chave" para encriptar e desencriptar as
mensagens, consequentemente tanto o receptor quanto a pessoa que envia,
necessariamente precisariam saber a chave certa para poderem
comunicar -se. Com o passar do tempo a tecnologia foi se desenvolvendo,
mas a idéia permaneceu a mesma.
Depois de muito tempo da invenção por
Júlio Cesar, uma nova forma de usar a criptografia foi sendo
necessária, formas mas sofisticadas e mais desenvolvidas para
codificar e enviar mensagem se fez essencial, ainda mais para as
potências mundiais da época, como Estados Unidos e
Inglaterra. E em 1976, Martin Hellman e Whitifield Diffie, criaram um
novo sistema criptogŕafico baseado em duas chaves, sistema batisado
depois de criptografia assimétrica.
O porque deste sistema ter -se tornado popular
é que o problema de se usar apenas chaves prividas era que tanto
a pessoa que enviava a mensagem e tanto o receptor necessitavam
conhecer a chave, e para tanto era necessário envia -la de
alguma forma, e bastava que este envio da chave fosse interceptado, que
todo o sistema de criptografia falhava, agora imagine isto com a
crescente disseminação da informática e da
internet que ocorria na época, era extremamente complicado. A
dor de cabeça que os governos da
Aliaça e do Eixo
tiveram deve ter sido
insuportável. Mas graças ao sistema de chaves
públicas, isto estava resolvido, as chaves usadas neste sistemas
eram públicas e privadas, de uma forma resumida funciona assim;
a chave pública é divulgada na internet e como o
pŕoprio nome já diz "é de todos", enquanto a chave
privada, apenas o remetente e receptor sabiam, com isto, a forma de
criptografica ficava mais complicada de ser quebrada e por
consequência tinhamos sistemas criptogŕaficos mais fortes e
robustos.
Para ilustrar melhor este cenário vou
explicar melhor; em um sistema de chaves publico-privada, cada pessoa
tem estas duas chaves, e uma mensagem encriptada por uma destas,
só pode ser desencriptada pela outra. Imagine que
você enviou uma email encriptado pela chave pública
de uma pessoa, então apenas ela, que tem a chave privada dela
mesma, pode fazer o processo inverso e desencriptar o email, podendo -o
assim lê -lo. Podê -se ainda encriptar a mensagem com a sua
própria chave privada, à qual você tem controle, e
então, apenas quem tiver o acesso a sua chave pública
pode decifrá -lo. De uma forma bem sintética e resumida,
as mensagens encriptadas pela chave pública de uma pessoa,
só podem ser desencriptadas com a chave privada desta mesma
pessoa.
Mas apesar de este sistema de chaves
publico-privadas parecer bem seguro, surge ai um problema. Como ter
certeza que a pessoa que te enviou uma chave pública é
realmente quem ela diz ser? É neste contexto que surge o
Certificado Digital. No qual o Brasil tem se especialisado, tomando
como exemplo o ITI(Institudo Nacional de Tecnologia da
Informação) que tem se aprofundando nesta tecnologia e
disponibiliza inúmeros materias em seu site
oficial(www.iti.gov.br) sobre o assunto e ainda coordena as autoridades
CA(Certificate Authorities) do Brasil que emitem estes certificados.
Mas este assunto tão interessante fica para um próximo
artigo.
A Criptografia e a
Segunda Guerra:
Apesar de as guerras serem extremamente ruins para todo o mundo, com a
morte de milhões de civis e a falência de inúmeros
paises, levando a população ao fundo do posso, enquanto
os políticos que as organizaram desfrutam do melhor do
capitalismo, a tecnologia se desenvolveu apartir delas, veja a
própria internet, que veio da arpanet(um projeto militar
norte-americano, que visava uma melhor disseminação e
comunicação entre as bases militares), as redes wifi, com
a exploração das ondas eletro-magnéticas, dentre
inúmeros outros projetos, nos trazem muitos benefícios,
neste ambito de desenvolvimento militar, vale citar, como complemento
neste artigo os sistemas de criptografia Fish e Enigma. O Fish foi criado
pelo governo nazista alemão para enviar e receber mensagem entre
o alto comando militar de forma segura, a máquina que o produzia
foi batisada de Lorentz. Para decifra -la os britanicos desenvolveram o
Colossus, que chegou por fim a quebrar o código. Além do
Fish, os alemães desenvolveram também o Enigma, que
também foi decifrado, mas que chegou a receber uma variante para
o Unix, mas que não teve muito sucesso pela sua base fraca de
encriptação.
Máquina Enigma usada pelo alemães:
Fonte Bibliográfica:
1a Edição Manual Hacker - 2003 Editora Digerati Books
O GChiper e a
Criptografia
Para que você tenha uma melhor visão
sobre criptografia irei apresentar um interessante programa Open
Source chamado GCipher, que foi criado por Shannon -jj Behren.
O GCipher é, como eu ja disse, um software open source simples
para criptografia, que pode ser utilizado na linha de comando ou
atravez de sua GUI(Guide User Interface).
Antes de mais nada é necessário instala -lo na
máquina. Nos sistemas Ubuntu faça:
$sudo apt-get install gcipher
Ou atravez de Aplicações > Adicionar/Remover...
Digite em Pesquisar : gcipher
Tecle enter, selecione a opção existente e clique depois
em aplicar.
Se você usa sistemas baseados no RedHat pode fazer o download no
rpmfind.net
http://www.rpmfind.net/linux/rpm2html/search.php?query=gcipher&submit=Search+...&system=&arch=
Ou ainda pode fazer o download dos pacotes deb,rpm, src.rpm, tar.gz e
tgz no próprio site do projeto no sourceforge.net:
http://sourceforge.net/project/showfiles.php?group_id=83832&package_id=86339
Bom, depois de instala -lo abra um terminal e digite gcipher para carregar o GUI. Mas a
frente ensinarei como usar no modo texto.
Depois de carregado o programa, digite um texto qualquer na caixa de
texto abaixo de onde está escrito Decrypted, por exemplo 'Viva o
Linux!' e clique em Encrypt:
O resultado com a encriptação Gie foi:
Erez l Ormfc!
Agora repare que se você digitar ' Erez l Ormfc! ' na caixa de
texto embaixo de Encrypted e clicar em Decrypt, veja o que aparece!
Viva o Linux!
Repare que se você for no menu Cipher e mudar para Ceasar's
Code(Isso mesmo, o código criado pelo imperador romano
Júlio Cesar!) e cliquar em Encrypt, o resultado muda.Veja a
imagem:
Para desencriptar, o processo é o mesmo, digite o texto
encriptado na caixa de texto embaxo de Encrypted e clique no
botão Decrypt.
Existe ainda a opção Rot(que usa uma
rotação linear, que é feita por uma chave a qual
deve ser um número de 0 a 25.). Para usar esta
opção, clique no botão Key e digite um
número de 0 a 25 e depois clique em Aplicar e clique em seguida
em Encrypt. Conforme o número escolhido o resultado é
diferente, veja:
Por fim temos a opção Vigenere, que é uma
versão do Rot que usa chave privada, é interessante para
podermos aplicar os conceitos mostrados acima. Só pra lembrar,
esta opção não usa case-sensitive, então,
só usa letras minúsculas e não aceita
números, e conforme você muda as letras usadas, você
muda a chave privada e por consequência você muda os
resultados da mensagem encriptada.Veja as imagens para entender.
Usando a Linha de
Comando:
O GCipher ainda te permite usar a linha de comando. Para poder melhor
demonstrar, criei um arquivo chamado cript.txt com o seguinte conteudo:
viva o linux!
teste com o gcipher na linha de comando.
Abri o terminal aonde está o arquivo texto e digite assim:
$gcipher -c Gie cript.txt
e o resultado obtido foi com a encriptação Gie foi:
erez l ormfc!
gvhgv xln l txrksvi mz ormsz wv xlnzmwl.
Agora mudando para usar a encriptação Rot, colocando a
especificação 5 para a chave privada:
$gcipher -c Rot -k 5 cript.txt
e o resultado:
anaf t qnszc!
yjxyj htr t lhnumjw sf qnsmf ij htrfsit.
Usando o Vigenere com a chave privada 'has':
$gcipher -c Vigenere -k has cript.txt
cinh o dpnme!
aekae uvm g ncawhwy ns sifoa vl cgtafko.
Agora para demonstrar o processo inverso, de decriptação,
criei o arquivo encript.txt, com o conteudo:
erez l ormfc!
gvhgv xln l txrksvi mz ormsz wv xlnzmwl.
veja os resultados do comando:
$gcipher -C Gie encript.txt
viva o linux!
teste com o gcipher na linha de comando.
Veja que foi necessário mudar o parametro -c para -C para
podermos desencriptar.
Agora vamos testar com o Vigenere, usando o seguinte texto no
encript.txt:
cinh o dpnme!
aekae uvm g ncawhwy ns sifoa vl cgtafko.
Com a chave-privada has, que foi usada anteriormente, mas pode ser
qualquer outra, de acordo como você for usar.
Veja os resultados do comando:
$gcipher -C Vigenere -k has encript.txt
e o resultado foi:
viva o linux!
teste com o gcipher na linha de comando.
Conclusão:
Espero que vocês tenham gostado deste artigo, e que eu
possa
ter levado a você que não conhecia nada sobre criptografia
um maior conhecimento sobre assunto. Sei que não fui muito breve
no artigo, mas tentei abranger o máximo de
informação da forma mais simples e resumida
possível.
Obrigado a todos.
Fico no aguardo pelos cometários.
Matheus Santana Lima
matheusslima@yahoo.combr
www.matheussantanalima.x-br.com