Bem Vindo!!! Adicione o blog aos seus favoritos. Toda semana estou apresentando conteudos novos diferenciados. Boa leitura!
Abraço!!!

INICIANDO ESTUDO DE CRIPTOGRAFIA DE DADOS

Se 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 e' 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 ja que a SEGURANCA esta se tornando um problema critico.
Bom, o que ‚ 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 encriptaçã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 encriptaçã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 nao 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 decodificar a mensagem se nao 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 robustez a 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 e' 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 utilizam-se as operações de ciframento e deciframento. O que ocorre na operação de deciframento é normalmente o inverso da de ciframento.
É 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 é uma peca crucial nestes sistemas.
Quando podemos deduzir uma mensagem usada 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.

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 árdua n‚:)... ele terá que recuperar as chaves utilizadas e deduzir as chaves utilizadas.

ATAQUE DO TEXTO CONHECIDO (KNOWN-PLAINTEXT)

O, ai o negocio fica mais fácil, porque 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.

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 proxima 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 ideias e a sua posterior confirmação. Tarefa ‚ deduzir as chaves utilizadas (ou método) para recuperar mensagens cifradas com a mesma chave.

ATAQUE DO TEXTO CIFRADO ESCOLHIDO (CHOOSEN-CIPHERTEXT)

Esse método é o melhor para deduzir as chaves usadas tendo a disposição uma grande quantidade de 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 decifrafragem automática.

ATAQUE DE CHAVE ESCOLHIDA (CHOOSEN-KEY)

Este nem é considerado um ataque, pois a chave já é 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. Só 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 encriptação realmente phodas de quebrar, levando tempo, alguns chegando perto do infinito. Será que realmente as informações que esperamos obter com a desencriptação vale o custo e o tempo que e' levado para resolver o mesmo?
Putz! Já estão com projetos que em um futuro proximo os metodos criptográficos serão tão fortes que mesmo computadores da ordem de Tera 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 caractere (ou grupo de caracteres) na mensagem é 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 polialfabética ‚ 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 substituicao monoalfabética, onde cara letra do alfabeto é substituída por outra.

LETRA DO TEXTO LETRA CIFRADA
A──────────────────────────────── I
B────────────────────────────────S
C────────────────────────────────N
D──────────────────────────────── L
E────────────────────────────────B
F────────────────────────────────Q
G────────────────────────────────C
H────────────────────────────────R
I────────────────────────────────D
J────────────────────────────────T
K────────────────────────────────P
L────────────────────────────────E
M────────────────────────────────Z
N A
O G
P U
Q Y
R K
S O
T X
U J
V W
W H
X M
Y V
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 levaríamos 10 na potencia de 13 anos pra tentar todas...
Dá 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 monofônica, a substituição polialfabética 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 caractere original não é 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 é tão importante não, mas se você 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 é que a primeira trabalha com grupos de comprimento fixo, enquanto o ultimo utiliza comprimento variável, normalmente manipulando as próprias palavras da frase. Cada palavra e' substituída por uma outra (ou por símbolos) de acordo com um livro código.

CRIPTOGRAFIA COMPUTACIONAL DE CHAVE UNICA

Hoje em dia a criptografia tradicional ta 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 padrao 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, expansõ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 força 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 potencia 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 e decifragem combinando a utilização de duas chaves).
Lucifer (percursor do DES).
Madryga (trabalha com 8 bits, utilizando ou-exclusivo e deslocamento 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 em menos de 8 passos).
REDOC II e III (realizam operações sobre bytes).
LOKI (bloco e chave de 64 bits).
Khufu e Khafre (parece nome de japonês lutador de caratê, 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).
MMB (blocos e chave de 128 bits).
Skipjack (chave de 80 bits e 32 passos de processamento).
O que eu posso falar de Cifragem de Blocos? Bom, vamos falar o que vcs precisam saber.

Modo do Livro de Códigos (ELETRONIC CODE BOOK - ECB)

Método onde a vantagem e' a simplicidade, cada bloco de mensagem original é individual e independente cifrado para produzir os blocos da mensagem cifrada. O bloco típico tem 64 bits, o que produz um livro de códigos de 2 na 64 potencias de entradas (Obs. Quando digo 2 na potencia 2 é o mesmo que 2 x 2 que e' igual a 4) com essas características ele se torna complexo o suficiente para phuder com o criptoanalista.
E bem útil pra bancos de dados, pois os blocos são independentes e no caso da necessidade de modificar pode se decifrar apenas o bloco onde ele esta localizado.

Modo de Encadeamento de Blocos (CIPHER BLOCK CHAINING - CBC)

Pra evitar problemas do ECB, o CBC realimenta a cifragem do bloco atual com o resultado das cifragens dos blocos anteriores. Operação mais utilizada e' o ou-exclusivo com o bloco anterior dessa forma os blocos iguais serão normalmente cifrados de forma diferente, desde que no mínimo um dos blocos anteriores seja diferente na mensagem.

Modo de Realimentação de Cifra ( CIPHER FEEDBACK - CFB )

Quando ha necessidade de enviar-se mensagem que possuem tamanho menor que um bloco utiliza-se o método CFB que trabalha com grupos (8 bits por exemplo - 1 caractere), neste caso a realimentação e' feita sobre o grupo, utilizando-se também o ou-exclusivo.

Modo de Encadeamento de Blocos (BLOCK CHAINING)

Neste modo, a entrada do cifrador e' operada com um ou-exclusivo de todos os blocos anteriormente cifrados.

Modo de Encadeamento Propagado (PROPAGATING CIPHER BLOCK CHAINING-PCBC)

A entrada do cifrador e' operada com ou-exclusivo os blocos normais e cifrados anteriores

E pessoal, espero que com esses conhecimentos novos vocês possam abrir suas mentes, fazer programas mais eficientes na parte de encriptacao e desencriptacao e o mesmo entender seus mecanismos. O que eu coloquei acima e' o basico do basico, sei que é meio chato ficar lendo uma porrada de coisa mais vê se larga de ser viadinho se quer chegar a algum lugar.
Eu demorei pra escrever essa porra, tomara que fique do seu entendimento.