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:

Enigma_Verkehrshaus_Luzern

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.


instalando gcipher no ubuntu

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