Visite também: Br-Linux ·  VivaOLinux ·  LinuxSecurity ·  Dicas-L ·  NoticiasLinux ·  SoftwareLivre.org ·  [mais]
Voltar   Under-Linux.org Fóruns > UnderLinux Wiki
Wiki Classificados Galeria Reviews Jogos Comunidades RSS Feeds FAQ Termos de Uso Sobre
Cadastre-se FotosBlogs Lista de Membros Calendário Pesquisar Mensagens de Hoje Marcar Fóruns Como Lidos

Ferramentas pessoais
Publicidade

From UnderLinux Wiki

Tabela de conteúdo

Conceitos de criptografia

Introdução

A palavra criptografia deriva de dois termos gregos: "kryptos", que significa secreto, e de "grapho", que significa escrita. A base da criptografia consiste em escrever secretamente, ou seja, em se comunicar de tal modo que, nenhuma outra pessoa, fora o remetente e o destinatario, possam decifrar a mensagem.

A criptografia pode ser considerada tao antiga quanto a escrita, pois, desde que as pessoas comecaram a escrever, passaram a sentir a necessidade de esconder ou de nao permitir que qualquer um lesse o que foi escrito. Os antigos reis e imperadores usavam muito essa tecnica, para enviar informacoes para outros povos, para trocar segredos com outros reis, e principalmente, em epocas de guerra, para saber mais sobre o adversario, por meio da troca de segredos com os espioes.

O principal objetivo da criptografia, eh o de garantir o armazenamento e a circulacao de mensagens com seguranca, tornando-as ininteligiveis para um adversario qualquer. E para tornar uma mensagem ininteligivel, sao usadas varias chaves e algoritmos. Uma chave eh uma informacao que o remetente e o destinatario possuem, para permitir a encriptacao e desencriptacao do texto. Um algoritmo, eh uma serie de procedimentos, pre-definidos, usados para manipular a mensagem. Antigamente os algoritmos eram bastante simples, e facil de serem quebrados, sendo basicamente formados por substituicao e permutacao de letras ou palavras de uma mensagem. Atualmente, com o avanco nos estudos dos algoritmos, e com o crescimento computacional, os algoritmos puderam ser melhorados e tornados mais fortes. Os metodos criptograficos atuais, podem ser considerados inquebraveis, ou praticamente, pois ate um super-computador, levaria anos para decifra-los.

Operações

Na criptografia, sao usadas varias operacoes para manipular a mensagem, os bons algoritmos mesclam varias dessas operacoes varias vezes. As principais sao:

Rotacao

Consiste no deslocamento dos bits de uma variavel, ou para a esquerda, ou para a direita. Podendo ser de dois modos:

Circular

O bit saido retorna do outro lado.

Ex: C->3 0111 1010 (rodar circularmente, 3 casas para a direita)
ficando assim:
1101 0011
C<-1 0010 1001 , ficando 0101 0010

Nao Circular

O bit saido eh eliminado, sendo substituido pelo zero. Ex:

N<-2 0111 0110 , ficando 1101 1000
N->3 0101 1010 , ficando 0000 1011

Permutacao

A permutacao consiste em embaralhar os elementos ou partes de um elemento.

Ex: Cj = (e1 , e2 , e3 , e4 , e5 , en) (conjunto de elementos) V= ( p1 , p2 , p3 , p4 , p5 , pn) (vetor de permutacao)

Esse vetor "V" eh usado para alterar a ordem, e possivelmente, o numero de elementos de um conjunto, mas sem alterar os seus valores.

Um exemplo, temos a palavra Daniel (Cj), e um vetor de permutacao V= (2 ,3 ,1 ,5, 6, 4). A palavra criptografada ficaria:

D a n i e l
1 2 3 4 5 6

Fazendo a permutacao:

2 3 1 5 6 4
a n d e l i

Ou seja, a palavra ficaria "ANDELI"

Substituicao Monoalfabetica

Esse tipo de operacao, consiste em substituir uma letra pela outra, seguindo um padrao fixo. Cada letra (l), seria substituida por outra (l+ x), e para desincriptar, seria l-x. Ex:

daniel , com a chave(x) = 2
alterando cada letra, por duas letras subsequentes, ficaria :
fcpkgn (d + 2 = f , a + 2 = c ...)

Substituição Polialfabetica

Sao aqueles em que se tem a combinacao ordenada de diversos sistemas monoalfabeticos. Ele adota uma chave (x), com "n" letras, com divide a mensagem em "n" blocos.

Ex:

A mensagem (m) seria: O site da underlinux esta muito bom. E a chave (x) seria Linux.

m=OSITEDAUNDERLINUXESTAMUITOBOM , que dividia em blocos de 5 ( Linux tem 5 letras), ficaria:
m= (OSITE) (DAUND) (ERLIN) (UXEST) (AMUIT) (OBOM) , e considerando cada Letra como um numero, (a=1, b=2 ...)
m= (15 19 9 20 5) (4 1 21 14 4) (...), e somando com os numeros relativos da chave(x) = Linux, (12 9 14 21 23)
Mcript= (15 + 12, 19 + 9 , 9 + 14 , 20 + 21 , 5 + 23) (...)
Mcript= (27, 28, 23, 41, 28) (16, 10, 35, 35, 27) (...)
Mcript= (BCXPC) (PJJJB) (...) ficando assim o texto criptografado.

Como se pode ver, a substituicao polialfabetica eh muito mais complexa que a monoalfabetica, mas ambas sao inuteis (usando-as isoladamente), visto que, qualquer computador pode quebra-la facilmente.

Algoritmos de Bloco

Os Algoritmos de bloco, processam os dados consederando-os como um conjunto de bits, aumentando-o com isso, a seguranca de um sistema que o utilize. Eles sao os mais seguros e os mais rapidos para a comunicacao digital. Os mais importantes desse grupo (dos de bloco), sao:


DES (Data encryption Standart)

Ele foi criado em 1977 e eh um dos mais usados atualmente. Ele eh tido como padrao recomendado pelo "National Bureau of Standarts" dos EUA.

Ele eh formado por blocos de 64 bits e sua chave eh dita como de 64 bits tambem, mas como ela eh formada por grupos de 8 bits, e o oitavo bit de cada grupo eh de paridade impar, ele trabalha mesmo com uma chave de 56 bits.

IDEA (International Data Encryption Algorithm)

Em 1990 foi criado o PES (Proposed encryption standart), que sofreu algumas modificacoes, originando o IPES (Improved Proposed encryption standart), que algum tempo depois mudou de nome para o IDEA.

O IDEA, trabalha com um bloco de 64 bits, e com uma chave de 128 bits. Que lhe da uma boa seguranca. Esse algoritmo se utiliza basicamente de 4 operacoes, o XOR bit-a-bit, a rotacao circular, a soma modulo 2^16, e a multiplicacao modificada 2^16 +1.

RC5

Criado em 1995 pelo professor R. Rivest, eh um algoritmo parametrizado, simetrico e muito rapido. Nele voce pode escolher o tamanho do bloco (w), o numero de interacoes (r) e o tamanho da chave (b). A vantagem desse tipo de parametrizacao, eh que se pode adaptar o algoritmo as nossas necessidades, e o grande problema, eh que se os parametros nao forem bem escolhidos, o algoritmo podera ficar muito fraco. Os parametros de escolha sao:

-tamanho da palavra (w) - O RC5 usa blocos de 2 palavras, por isso, se voce escolher um "w" de 16 bits, seu bloco sera de 32, se escolher de 32, seu bloco sera de 64 bits.

-numero de interacoes (r)- Esse parametro define o numero de interacoes a serem executadas,o ideal, eh um "r" maior que oito.

-tamanho da chave (b) - Com esse parametro voce escolhe o tamanho da chave a ser usado, o idela eh um "b" de 12 ou 16 bits, que lhe dara uma chave de 96 e 128 bits respectivamente. Pois a chave eh igual ao "b" multiplicado por oito.

Para se designar o RC5, usa-se a notacao RC5 - w/r/b. E de acordo com a Rivest, o RC5 ideal, seria o RC5 - 32/12/16, mas cada um usa o que melhor se adapta as suas necessidades.

Algoritmos de Fluxo

Os algoritmos de fluxo encriptam a mensagem bit a bit, independentemente e em um fluxo continuo, sem esperar que se venha um bloco completo de bits, como eh feito nos algoritmos de bloco. Esses tipos de algoritmos possuem sua chave simetrica, ou seja, a chave de encriptacao eh igual a de desincriptacao.

ONE-TIME PAD

Esse algoritmo eh o unico matematicamente inquebravel. Ele se utiliza de uma chave aleatoria, do mesmo tamanho que a mensagem, e que soh pode ser utilizada uma vez. Como eles tem o mesmo tamanho, o texto encriptado poderia representar qualquer palavra, e como a chave soh eh utilizada uma vez, nao sera possivel descobrir a mensagem original, tendo a apenas a mensagem encriptada.

RC4

Criado em 1987 por R. Rivest (da RSA), ele eh utilizado para se criar bytes aleatorios a partir de uma chave de tamanho variavel. Esses bytes aleatorios servem para encriptar a mensagem. No RC4 a escolha da chave eh livre tambem, sendo recomendado o uso de pelo menos 16 bytes (128 bits).

Conclusão

Bem, esse texto foi soh para dar uma visao geral de alguns algoritmos e de algumas tecnicas criptograficas. Pra variar, eu ando meio sem tempo pra escrever textos mais completos... Quando acabar a parte das "chaves" (simetrica, assimetrica...) e a parte dos algoritmos (explicando cada um detalhadamente) eu re-publico esse texto...


Daniel B. Cid (sinistrow , swx) http://www.underlinux.com.br http://www.geocities.com/danielcid

Horários baseados na GMT -3. Agora são 7:43.


Powered by vBulletin®
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd
SEO by vBSEO 3.2.0 ©2008, Crawlability, Inc.