|
|||||||
| Wiki | Classificados | Galeria | Reviews | Jogos | Comunidades | RSS Feeds | FAQ | Termos de Uso | Sobre |
| Cadastre-se | Fotos | Blogs | Lista de Membros | Calendário | Pesquisar | Mensagens de Hoje | Marcar Fóruns Como Lidos |
FerramentasPublicidade |
From UnderLinux Wiki
[editar] Conceitos de criptografia[editar] IntroduçãoA 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. [editar] OperaçõesNa criptografia, sao usadas varias operacoes para manipular a mensagem, os bons algoritmos mesclam varias dessas operacoes varias vezes. As principais sao: [editar] RotacaoConsiste no deslocamento dos bits de uma variavel, ou para a esquerda, ou para a direita. Podendo ser de dois modos: [editar] CircularO 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 [editar] Nao CircularO bit saido eh eliminado, sendo substituido pelo zero. Ex: N<-2 0111 0110 , ficando 1101 1000 N->3 0101 1010 , ficando 0000 1011 [editar] PermutacaoA 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" [editar] Substituicao MonoalfabeticaEsse 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 ...) [editar] Substituição PolialfabeticaSao 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. [editar] Algoritmos de BlocoOs 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:
[editar] 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. [editar] 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. [editar] RC5Criado 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. [editar] Algoritmos de FluxoOs 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. [editar] ONE-TIME PADEsse 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. [editar] RC4Criado 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). [editar] ConclusãoBem, 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...
|