InícioSobreServiçsosMetodologiaVisãoNegóciosParceirosO TimeArtigosContato

Criptografia Simétria e Assimétrica

linuxjournal.com

Quando você envia o número do seu cartão de croedito por uma rede pública, como a Internet,  a sua  credibilidade financeira pode ser comprometica se este número não for protegido (cifrado) de alguma forma. É impossível saber se existem alguem "grampeando" a sua conexão em quanto vocês faz a compra de CDs ou livros pelo computador.

Frequentemente uma técnica de criptografia conhecida como RSA é usada para esconder o número do seu cartão de crédito ou os seus dados bancários em quanto faz "home banking". Com a RSA temos duas chaves, uma pública para esconder suas informações e outra privada para revelá-las.

Criptografia simétrica vesus Assimétrica

O melhor modo para compreender a criptografia asimétrica é imaginar uma caixa com uma fechadura que aceita  duas chaves diferentes: uma chave só serve para trancar a caixa e a outra chave somente serve para abrir a caixa.

Qualquer um que tiver uma cópia da chave que tranca a caixa (a chave pública) pode colocar segredos nesta caixa. Como somente você possui a chave que abre a caixa (chave privada), ninguém mais pode bisbilhotar o seu segredo. Isto é diferente da criptografia simétrica, na qual a mesma chave é usada tanto para trancar quanto para abrir a caixa.

Aqui temos um exemplo de criptografia usando uma única chave:

Primeiro escolhemos um número qualquer para ser a chave. Queremos cifrar nosso cartão de crédito, então subtraimos a chave de cada dígito do número do cartão. Por exemplo,  tomemos um número de cartão de crédito hipotético, 1424 3135 2435 1556 e escolhemos o número 12 para ser a nossa chave. Poderíamos encriptar o segredo assim:

             chave  12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12
segredo -1 -4 -2 -4 -3 -1 -3 -5 -2 -4 -3 -5 -1 -5 -5 -6
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
segredo cifrado 11 8 10 8 9 11 9 7 10 8 9 7 11 7 7 6

Então, poderíamos transmitir o segredo cifrado e assim protegido pela Internet.

Para "abrir a caixa" e ver o segredo, temos que subtrair novamente só que desta vez subtraimos o a mensagem cifrada da chave:
 

           chave   12 12  12 12 12  12 12 12  12 12 12 12  12 12 12 12
segredo cifrado -11 -8 -10 -8 -9 -11 -9 -7 -10 -8 -9 -7 -11 -7 -7 -6
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
segredo 1 4 2 4 3 1 3 5 2 4 3 5 1 5 5 6


Métodos modernos de criptografia como o AES e Triple DES são muito maix complexos e muito mais seguros do que essa técnica, mas o exemplo serve para mostrar como uma só chave (simétrica) é usada para embaralhar e desembaralhar uma mensagem. Antes que cada uma das partes, que usam uma chave simétrica, possam conversar de modo seguro ambos precisam saber a chave, neste cado o número 12. As equações algébricas que resumem o método são:

	C = K - M
M = K - C

onde M é o número a ser protegido (cifrado), K é a chave (12 no exemplo) e C é a mensagem/número encriptado. Se ambas as partes já estão de acordo com qual chave usar antes de iniciar a conversa, então a criptografia simétrica é o suficiente. Entretanto, este acrodo prévio nem sempre é possível!

Imagine que você entra em uma livraria virtual e resolve comprar um livro com o seu cartão de crédito. Como você pode saber que chave usar? Você ou a livraria tem que escolher uma chave (K), mas ela não pode ser enviada pela Internet pois ela só pode ser enviada abertamente, desprotegida (não cifrada). Neste caso é que o sistema RSA torna-se útil...

As equações para encriptar e desencriptar são apenas um pouco mais complexas do que a técnica de subtração anterior:

     C = ME mod N
M = CD mod N

Obs.:  O operador 'mod' significa o resto da divisão, ou seja  (7 laranjas) mod (3 pessoas) = 1, pois
          cada pessoas recebe duas laranjas e sobra uma, que é o resultado da conta.

Na primeira equação, nós elevamos M na potência E e dividimos o resultado por N e então armazenamos o resultado disto em C. Deste modo, M é o segredo (informação a ser protegida) e C é a mensagem já cifrada. Existem duas chaves: E serve para codificar, em quanto D é para decodificar a mensagem.
O melhor analoagia para N é como sendo a caixa usada para gurdar a mensagem.

Um exemplo, imagina que queremos configicar o número 6. Escolhemos como chave pública E=3, D=17 para a chave provada e uma caixa N=25. Desejamos enviar uma mensagem secreta (M=6) para a livradia virtual onde compramos um livro, a codificação ocorre assim:

    C = 63 mod 25 = 16

Quando entramos na livraria virtual,

Quando entramos na e-livraria, o sistema de venda digitial dela nos envia a chave E=3 e a caixa N=25 então podemos codificar a nossa mensagem (cartão de crédito) para fazer a compra on-line. Entretanto, a decodificação é impossível sem a chave privada, que no caso é D=17:

    M = 1617 mod 25 = 6

Devido ao fato de ninguém saber que D=17, é impossível para qualquer um descobrir o conteúdo da mensagem C, além da própria livraria. Deste modo, você pode comprar on-line sem o receio de ter seu número de cartão roubado.

Voltar

© 2003 Cristhom, Ltda., todos os direitos reservados.