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.

|