Criptografia

A criptografia é uma arte: a arte de escrever ocultamente. Talvez tão antiga quanto a própria escrita, hoje é um dos métodos mais eficientes de se transferir informações, sem que haja a possibilidade de comprometimento do sigilo.

Baseada em chaves, uma informação pode ser codificada através de algum algoritmo de criptografia, de modo que, tendo conhecimento do algoritmo utilizado e da chave utilizada, é possível recuperar a informação original fazendo o percurso contrário da encriptação, a decriptação.

Com o aumento da capacidade computacional, podemos hoje utilizar complexos esquemas criptográficos, que antes eram impraticáveis pela demora com os quais eram codificadas pequenas informações. E além da capacidade técnica, possuímos algumas características na criptografia moderna que a faz se subdividir em dois grandes grupos: Criptografia de Chave Simétrica e Criptografia de Chave Assimétrica.

  Criptografia de Chave Simétrica

Esta é a criptografia tradicional, onde a mesma chave utilizada na codificação deve ser utilizada da decodificação. Alguns algoritmos de criptografia de chave simétrica: IDEA (International Data Encryption Algorithm), DES (Data Encryption Standard) da IBM e o RC2/4, da RSA Data Security.

O problema óbvio dessa simetria é: como vamos informar ao destinatário a chave para a decriptação de forma segura? Se encontrarmos um modo seguro de lhe contar a chave, não poderíamos utilizar este modo para lhe passar a informação de uma vez? Realmente, este não é o melhor método para trocarmos nossos segredos.

No entanto, a criptografia simétrica é bastante eficiente em conexões seguras na Internet, onde processos computacionais trocam senhas temporárias para algumas transmissões críticas e, ao contrário do que você pode estar imaginando, já utilizou algumas delas: quando você navega pela Internet e visita sites ditos "seguros", onde geralmente são preenchidos dados sigilosos, você está utilizando o SSL (Secure Sockets Layer) que funciona à base de criptografia simétrica, muito provavelmente um DES ou algo da RSA.

  Criptografia de Chave Assimétrica  

Ah... Aqui a história fica muito mais divertida! Estudos realizados há uns 20 anos tornaram possíveis algoritmos de criptografia utilizando duas chaves. Criptografando-se com a chave A, só seria possível a decriptação com a chave B, sendo a recíproca verdadeira!

Chave Pública e Chave Privada

Esta assimetria nos dá uma outra abordagem, que talvez não se tenha pensado no início do projeto: a de chave pública e chave privada. Com duas chaves, não precisamos ficar presos a uma "troca" para o processo de de/codificação. Cada um poderá possuir sua chave pública e sua chave privada. Como o próprio nome já diz, a chave privada é de conhecimento único e exclusivo seu. Já a pública deve estar disponível a quem quiser lhe enviar informações encriptadas.

Como a encriptação/decriptação depende das duas chaves, se você quiser, por exemplo, nos mandar uma mensagem criptografada, deve encriptá-la com a nossa chave pública. Como dito anteriormente, a única chave que decripta esta mensagem é o par da chave pública, ou seja, nossa chave privada! Presto! Somente nós conseguiremos ler a mensagem (desde que nossa chave privada seja mantida em um lugar seguro).

Continuando nosso exemplo, caso nós queiramos mandar uma mensagem criptografada para você, nós primeiro conseguimos uma cópia da SUA chave pública e a uso na encriptação. Somente sua chave privada poderá decriptar esta mensagem, e mesmo que a mensagem tenha sido interceptada, não passará de um conjunto de caracteres malucos...

PS. Lembre-se que uma mensagem comum, em texto simples, pode ser lida em qualquer canto da Internet, em especial no seu provedor de acesso, ou na sua conta do hotmail ou algo do gênero. Apesar da política na maioria dos serviços proibir a leitura de mensagem dos usuários, ela é praticamente possível! Se você tem assuntos secretos a tratar por e-mail, faça uso da criptografia. (existem sistemas de criptografia por telefone, mas ambos os lados precisam possuir o mesmo sistema, e a criptografia é por chave simétrica)

Assinatura Digital

Uma das maiores sacadas em termo de autenticidade dos últimos tempos! Como vimos no início, a criptografia por chaves assimétricas vale para ambos os lados: Pública » Privada e Privada » Pública. Vamos supor que nós encriptemos uma mensagem com a nossa chave PRIVADA! Qual é a única chave capaz de decriptá-la? Um bombom para quem respondeu "a chave PÚBLICA". O que aparentemente não é muita vantagem, pois todos têm acesso à nossa chave pública e poderão ler a mensagem. Mas...

Aí está! Realmente, todos os que possuírem nossa chave pública poderão ler nossa mensagem, mas também é verdadeiro que, se foi possível decriptar com nossa chave pública, é porque ela foi encriptada com nossa chave privada! Como as únicas pessoas que sabem a nossa chave privada somos nós, está assegurada a nossa identidade como autores daquela mensagem.

Criptografia + Assinatura Digital

Pode-se ainda, com o uso de quatro chaves, criptografar e autenticar a mensagem. Primeiro nós criptografamos nossa mensagem com a NOSSA chave PRIVADA. Depois  criptografamos novamente a mensagem, desta vez com a SUA chave PÚBLICA. Ao receber, você deverá usar sua chave privada para decriptar a mensagem e, após, usar a nossa chave pública, para decriptá-la novamente e se assegurar de que fomos realmente nós que lhe escrevemos esta mensagem.

Neste caso, a ordem com que usamos a nossa chave privada e a sua chave pública faz diferença. Veja bem: no exemplo anterior, você não tem como provar que fomos realmente nós que enviamos esta mensagem até que você a decripte com sua chave privada. Se nós tivéssemos invertido a ordem, primeiro encriptando a mensagem com sua chave pública e depois assinando com nossa chave privada, você (e toda a torcida do flamengo) saberia que fomos realmente nós que escrevemos aquela mensagem, apesar de só você conseguir ler o seu conteúdo.

- Simétrica, Assimétrica, Salada Mista!  

Há um pequeno problema na criptografia com chave assimétrica: ela é muito lenta! É preciso um "Sr." computador para que o tempo de criptografia se torne viável, pois um texto grande pode levar de alguns minutos a várias horas. Já a simétrica... Ela é rápida, mas possui o problema da chave única.

Então, que tal se fizermos o seguinte: nós criptografamos uma mensagem com uma chave qualquer simétrica. A mensagem é grande, mas a simétrica é rápida. Então nós pegamos essa chave, que é pequena, e criptografamos assimetricamente com a SUA chave pública! Eureka! Só você saberá qual é a chave (decriptando-a com sua chave privada), e poderá decriptar a mensagem com a "nossa" chave simétrica.

Ótimo, mas ainda há um problema. Desta maneira, perdemos a confiança na mensagem, pois não podemos comprovar de que fomos realmente nós que lhe enviamos esta mensagem. Mas há uma outra maneira...

("- ih... lá vêm eles..." - você deve estar pensando. ;-)

  Um tal de "Message Digest"

Vamos logo avisando que nós não inventamos nada disso! Mas que o desgraçado funciona, não podemos negar... O negócio é o seguinte: existe uma maneira de se criar um código a partir de uma mensagem, que reflita o seu conteúdo em um pequeno conjunto de caracteres. Aplica-se um cálculo na mensagem e este cálculo nos retorna um "message digest", como se fosse uma impressão digital da mensagem. Uma letrinha trocada e o message digest será diferente.

Alguns algoritmos que fazem a "extração" do message digest mais utilizados no mercado: MD4/5 e o SHA (Secure Hash Algorithm).

O cálculo do message digest possui duas características fundamentais: não pode ser possível inverter o cálculo sobre o message digest para recuperar a mensagem original; e o message digest deve ser único por mensagem, ou seja, não pode existir um mesmo message digest para duas mensagens diferentes.

Com essa nova ferramenta, podemos assegurar a autencidade com criptografia assimétrica, mas nos poupando tempo. Vamos supor que nós tenhamos uma mensagem "não-secreta" para lhe enviar: Primeiro calculamos o message digest da nossa mensagem. Encriptamos o message digest com a NOSSA chave PRIVADA, e lhe mandamos a mensagem junto com o message digest encriptado. Ao receber a mensagem, você calcula o message digest da nossa mensagem, e compara com o message digest encriptado (utilizando nossa chave pública para decriptá-lo). Sendo igual, você terá certeza de que fomos nós que escrevemos aquela mensagem.

Mas a mensagem em si foi enviada sem criptografia. Qualquer um poderia ter lido! Então, vamos continuar... (já está acabando, prometemos!)

   Tudo ao Mesmo Tempo Agora 

Antes de continuarmos, feche os olhos e mentalize: "tranqüilas águas azuis, tranqüilas águas azuis..." Você está calmo... Muito calmo... calmmmm...

Agora vamos lá: Nós queremos enviar para você uma mensagem grande, criptografada e assinada, e pretendemos poupar tempo. Portanto, criptografar a mensagem inteira (duas vezes!) com chaves assimétricas está fora de cogitação. O que faremos? Vejamos...

Primeiro criamos um message digest da nossa mensagem e o encriptamos com a NOSSA chave PRIVADA. Depois, escolhemos uma chave SIMÉTRICA qualquer e encriptamos a mensagem inteira. Então nós encriptamos a chave simétrica com a SUA chave PÚBLICA. Agora enviamos tudo para você: o message digest da nossa mensagem encriptado com nossa chave privada, a mensagem criptografada com a chave simétrica, e a chave simétrica encriptada com a sua chave pública.

Ao receber a mensagem, você deverá fazer o seguinte: decriptar a chave simétrica com a sua chave privada. Com a chave simétrica decriptada, decripte a mensagem. Agora decripte nosso message digest com nossa chave pública e calcule o message digest da mensagem original. Finalmente, compare os dois message digest: o que lhe mandamos e o que você calculou. Se forem iguais, você terá certeza de que fomos nós que enviamos a mensagem e que a mensagem não sofreu nenhuma alteração.

Ufa!

  O que? Ainda tem mais

Não, acabou! ;-) Mas vamos deixar uma questão para ser pensada e, quem sabe mais tarde, venhamos a falar no assunto...

É o seguinte: essa história de chave pública é muito bacana, mas precisamos dar um jeito para que as outras pessoas conheçam nossas chaves públicas. E ainda, você não pode pegar uma chave pública de alguém em qualquer lugar! Quem garante que aquela chave é verdadeira? Pode ser uma chave falsa, para que o falsificador possa ler as mensagens criptografadas.

A saída mais sensata neste caso é criar sites onde se guardariam todas as chaves públicas, e onde se teria certeza de que as chaves lá postadas são autênticas. Estes sites emitiriam "certificados" de autenticidade, assinados por eles próprios.

Entretanto, as assinaturas destes sites seriam baseadas no mesmo esquema das chaves públicas e privadas. O site assinaria o certificado de autenticidade com sua chave privada e, caberia a nós, através da chave pública daquele site, julgar a "autenticidade do certificado de autenticidade". Portanto, caímos no mesmo problema: como as chaves públicas dos sites autenticadores seriam distribuídas, de forma que seus pares de chaves não possam ser falsificados?

Criptografia de dados
e vamos detonar alguma coisa somos obrigados  a conhecer intimamente as estruturas de
proteção de dados de estão envolvidas.
Um dos tópicos principais que temos que ter completo domínio é sem duvida
nenhuma a criptografia de dados.

As redes hoje transportam cada vez mais informações vitais para organizações,
empresas e ate mesmo para o governo, a criptografia esta hoje mais

dos que nunca ligada a segurança de dados já que a SEGURANÇA esta se tornando
um problema critico.

Pra criptografia???

Vem do grego, kriptos=escondido oculto + grafia, e' a arte ou ciência de escrever
em cifra ou em códigos, seria então um conjunto de técnicas que tornam
uma mensagem incompreensível permitindo apenas que o destinatário que conhece a chave
de encriptacão consiga desencriptar e ler a mensagem com clareza.
Agora existem pessoas que por meios ilícitos podem ter acesso a mensagem
cifrada e determinar a chave de encriptacão, estes se chamam criptoanalistas
que não fazem nada mais que a decomposição da mensagem
sem conhecer a chave quebrando o sisteminha! ;)
A segurança de um criptosistema não pode estar baseada nos
algoritmos de codificação e decodificação, mas sim em um valor a chave.
Este mecanismo deve ser tão seguro que mesmo o autor de um algoritmo
não seja capaz de decodificara mensagem se não possuir a chave.
Podemos dizer então que um bom criptoanalista conhece todo o sistema
com exceção das chaves que foram utilizadas. Esta é conhecida como
a premissa de "Kerckoffs".
Para um algoritmo ser  analisado do ponto de vista de robusteza ataques
São assumidas as seguintes premissas:
-
> o criptoanalista tem acesso a descrição completa do algoritmo
> o criptoanalista tem acesso a grande volumes de mensagens originais
e suas mensagens cifradas correspondentes; o criptoanalista é capaz de
escolher quais mensagens serão cifradas e receber as mensagens
cifradas correspondentes.
Por sigilo da informação  entende-se  que somente os usuários autorizados
tenham acesso a informação.

Em um sistema criptográfico típico utiliza-se as operações de ciframento
e deciframento. O que ocorre na operacao de deciframento é normalmente o
inverso da de ciframento. Podemos observar um sistema
criptográfico típico abaixo:

CHAVE DE CIFRAMENTO          CHAVE DE DECIFRAMENTO
                      |                             |
                      |                             |
                ------------                  --------------
TEXTO ORIGINAL- |CIFRAMENTO| -----------------|DECIFRAMENTO|- TEXTO
                ------------         |        --------------  ORIGINAL
                                     |
                                     |
                              CANAL INSEGURO DE
                                 COMUNICACAO


E' adotado em sistemas criptográficos para que estes permaneçam seguros
mesmo quando os algoritmos  de ciframento e de deciframento
a técnica de utilizar chaves ao pares, uma delas a chave de ciframento
e outra a de deciframento. Deve-se possuir um grande conjunto de pares de chaves
para  que o espião não as descubra, entretanto o  sigilo das chaves e'
uma peca crucial nestes sistemas.
Quando podemos deduzir uma mensagem usado a mesma chave tanto
para o ciframento quanto para o deciframento toma-se a chave do sistema
como  simétrica.  Caso estas chaves sejam diferentes, fala-se de um sistema  de
chaves assimétricas ou chave publica.

Bom, podemos definir 6 tipos gerais de ataques ( ou criptonalise ),
listados em ordem crescente de efetividade. Supondo em todos
eles que o criptoanalista possui conhecimento total sobre os métodos de
cifragem e decifragem utilizados , mas não sobre as chaves.

1.ATAQUE DO TEXTO CIFRADO ( CYPHRTEXT-ONLY )

Neste tipo de ataque, o  criptoanalista tem a sua disposição  uma
grande quantidade de mensagens cifradas, mas desconhece  as mensagens
originais e as chaves utilizadas, tarefa ardua  n‚ :)... ele terá que recuperar as
chaves utilizadas e deduzir as chaves utilizadas.

2. ATAQUE DO TEXTO CONHECIDO ( KNOWN-PLAINTEXT )

Ai o negocio fica mais fácil, pq o criptoanalista tem a sua disposição uma grande
quantidade de mensagens cifradas e ainda por cima  conhece também as mensagens
originais equivalentes. Objetivo ‚ deduzir as chaves utilizadas utilizando o caminho feito
pelo sistema criptográfico.

3. ATAQUE ADAPTATIVO DO TXT ESCOLHIDO ( ADAPTATIVE-CHOOSEN-PLAINTEXT )
    

Este ataque se diferencia do anterior porque agora pode existir uma realimentação entre a msg
escolhida para cifragem e a próxima msg.
Agora ele pode fornecer um pequeno conjunto, analisar os resultados fornecer
outro conjunto e assim por diante.
Este ataque e' bem mais efetivo, pois permite o teste de novas idéias e a sua posterior
confirmação.
Tarefa ‚ deduzir as chaves utilizadas ( ou método para recuperar mensagens cifradas
com a mesma chave.

4. ATAQUE DO TEXTO CIFRADO ESCOLHIDO ( CHOOSEN-CIPHERTEXT )

Esse método e' o melhor para deduzir as chaves usadas tendo a disposição uma grande
quantidade e mensagens e seus equivalentes cifrados alem do que o criptoanalista pode
produzir uma mensagem cifrada especifica para ser decifrada e obter o resultado produzido.
Utiliza-se geralmente nesse ataque uma"caixa-preta" que faz a decifragem automática ;)
i know bud...

5. ATAQUE DE CHAVE ESCOLHIDA ( CHOOSEN-KEY )
Este nem é considerado um ataque pois a chave já e' conhecida, mas   o criptoanalista pode
testar o sistema com as diversas chaves diferentes, ou pode convencer diversos usuários
legítimos  do  sistema a utilizarem  determinadas chaves.
Nesse ultimo caso, a finalidade e' poder decifrar as mensagens cifradas com estas chaves.

Todos os sistemas possuem graus diferentes de segurança, isso depende
muito da facilidade ou  dificuldade com que são quebrados. So teremos um
sistema  condicionalmente  seguro quando ele for teoricamente inquebrável ou
seja, não importa a quantidade de texto normal ou cifrado a disposição do
analista, nunca se tem informação suficiente para se quebrar as cifras ou
deduzir as chaves que foram usadas.
Existem alguns métodos de encriptacão realmente phodas de quebrar, levando
tempo,  alguns chegando  perto  do infinito. Será que realmente
as informações  que esperamos obter com a desencriptacão vale o custo e
o tempo que e' levado para resolver o mesmo?
Putz! Já estão com projetos que em um futuro próximo os métodos criptográficos
serão tão fortes que mesmo computadores da ordem de Terá operações
por segundo e  levariam alguns milhares de anos pra quebrar um texto bem
cifrado. :|

Vamos dar uma olhada bem rápida nos métodos da criptografia tradicional:

USANDO CIFRAS DE SUBSTITUICAO

No método cada caracter ( ou grupo de caracteres ) na mensagem e'
substituído por outro na mensagem cifrada. Esta substituição e' realizada para
tornar o texto cifrado o mais obscuro e incompreensível. Para decifrar e'
feita a substituição de modo inverso, restaurando-se assim o texto
original. Na maioria dos casos são considerados apenas as 26 letras do
alfabeto.
A substituição polialfabetica ‚ muito melhor que a mono, mas pode ser
quebrada pelo mesmo método. Somente se descobrindo o tamanho da
chave K e analisar um bloco de K caracteres do texto verificando a freqüência
de repetição dos caracteres.
Vem abaixo então uma tabela demonstrando a substituição monoalfabetica,
onde cara letra do alfabeto e' substituída por outra.

LETRA DO TEXTO        LETRA CIFRADA | LETRA DO TEXTO        LETRA CIFRADA
                                   
      A ------------------- I      |      N ------------------ A
      B ------------------- S     |       O ------------------ G
      C ------------------- N    |        P ----------------- U
      D ------------------- L     |       Q ------------------ Y
      E ------------------- B     |       R ------------------ K
      F ------------------- Q     |       S ------------------ O
      G ------------------- C     |       T ------------------ X
      H ------------------- R     |       U ------------------ J
      I -------------------- D     |       V ------------------ W
      J -------------------- T     |       W ------------------ H
      K ------------------- P     |       X -------------------M
      L ------------------- E      |      Y -------------------V
      M ------------------ Z      |      Z ------------------- F


Tah, vamos escrever uma frase: "Como estou aprendendo"
Cifrada por esta tabela a frase fica: "Ngzg boxgj iukbalbalg"
Com esta tabelinha podemos fazer 26!=4*10
na 26 chaves diferentes.
Testando uma tabela a cada microsegundo levariamos 10
na potência de 13 anos pra tentar todas...

Dah pra quebrar fácil este sistema usando a lógica e ver que vogais se
repetem mais que as consoantes e deduzindo valores.

Bom, ainda tem a substituição monofonica, a substituição polialfabetica
a substituição por poligramos  ( aquela que substitui
um grupo de caracteres tipo: ABA corresponde a RTQ... )

- = CIFRAS DE TRANSPOSICAO = -
Esse método e' bem original, pois o caracter
original não e' alterado, mas sim sua
posição de acordo com alguma regra ou função
que também podem estar baseadas em alguma chave.

- = CODIGO E MAQUINHAS DE CIFRAGEM = -
Olha ,esta parte não e' tão importante não, mas se vc realmente quer saber
Neste método  os caracteres podem ser agrupados para serem
cifrados e conforme o tamanho do grupo aumenta começa-se a falar de um código.
A principal diferença entre uma cifra e um código e' que a primeira trabalha com
grupos de comprimento fixo, enquanto o ultimo utiliza comprimento
variavel normalmente manipulando as próprias palavras da frase.
Cada palavra é' substituída por uma outra ( ou por símbolos ) de acordo com um
livro código.


CRIPTOGRAFIA COMPUTACIONAL DE CHAVE ÚNICA
 
Hoje em dia a criptografia tradicional esta cedendo lugar para a computacional onde as
operações são implementadas por um computador ou por um
circuito especial.
O exemplo mais conhecido de cifrador computacional de chave única
e' o DES ( Data Encryption Standard ) originalmente
desenvolvido pela IBM e adotado como padrão nos EUA em 1997.
O DES cifra blocos de 64 bits que correspondem a 8 caracteres usando um
chave de 56 bits mais 8 bits de paridade ( o que soma 64 bits ).
O que ocorre e' que o algoritmo inicia uma transposição sobre os 64 bits
da mensagem, seguida de 16 passos de cifragem e conclui realizando uma
transposição final, que e' inversa da transposição inicial. As transposições
são independentes da chave. Vão ser utilizados então 16 passos de cifragem
com as 16 sub-chaves todas originadas da chave original através
de deslocamento e transposições. Cada passo vai dividir o bloco em duas
metades de 32 bits ( L e R ) e realiza transposições, substituições, expancões
( duplicamentos ) de bits e redução ( eliminação ) de bits, alem
de utilizar operações lógicas do tipo ou exclusivo.
Essa porra do Des exerce uma cifragem com dois objetivos:
difusão e confusão. Difunde eliminando a redundância da mensagem original
e confunde tornando a chave tão complexa quanto pode.
Tipo, mudando as características da mensagem original!
Quando aparecer  e foi aprovado o DES foi alvo d muita critica e debate.
O projeto original da IBM previa a utilização de 128 bits mas a NSA
( National Security Agency ) o reduziu pra 64 sem explicações... coisas dos
malucos do governo americano.
O DES pode ser quebrado ( como não ;) ) mas pelo método de forca bruta
tentando-se todas as combinações possíveis de chaves. Tendo a chave de 56
bits tem-se um total de 2 elevado a 56 potência de chaves possíveis.
O que sabemos e' que existem diversos métodos de cifragem de blocos de
chave única que foram proposto, tem alguns exemplos ai:

Triple-DES ( o DES aplicado três vezes, com seqüência de cifragem ;
decifragem combinando a utilização de duas Chaves; Lucifer    ( percursor do DES ).
Madryga     ( trabalha com 8 bits, utilizando ou-exclusivo e desloca mento de bits ).
NewDES     ( blocos de 64 bits e chave de 120 bits )
FEAL-N     ( baseado no DES, pode-se especificar o numero de passos de cifragem,
fraco se utiliza-se em menos de 8 passos ).
REDOC II e III   ( realizam operações sobre bytes ).
LOKI        ( bloco  e chave de 64 bits ).
Khufu e Khafre  ( parace nome de japonês lutador de carate, mas ele trabalha de forma
semelhante ao DES, usam tabelas de substituição de 256 posições de 32 bits contra as
de 6 posições de 4 bits do DES - usam chaves de 512 bits e um numero de passos
flexíveis, múltiplo de 8 ).
IDEA       ( blocos de 64 bits com chave de 128 bits ).
Hosted by www.Geocities.ws

Copyright © Cyber Nine/Crack's S.A todos direitos reservados
Hosted by www.Geocities.ws

Hosted by www.Geocities.ws

Hosted by www.Geocities.ws

1