Você está na página 1de 2

Nmeros Primos e a Criptografia RSA

Introduo Criptografia RSA


Histrico
Encaminhar uma mensagem de forma segura uma preocupao que remonta aos primeiros estrategistas que se tm notcia, na Grcia Antiga. Houve poca em que soldados tinham mensagens escritas em seu couro cabeludo como estratgia para transpassar uma informao pelas linhas inimigas, bastando chegar ao seu destino e ter sua cabea raspada. Com o passar dos anos, a evoluo da Matemtica e a criatividade humana em desenvolver novos mecanismos fez com que a arte cifrar mensagens grande destaque nas decises polticas, com influncia direta nos acontecimentos histricos. Na Segunda Guerra Mundial, a Alemanha dispunha de um intrincado sistema de informaes criptografadas. A base de todo esse sistema era uma mquina eletro-mecnica conhecida como enigma, capaz de gerar mensagens criptografadas com enorme facilidade. A preocupao com a guarda das informaes a base da Criptografia, essencial para o trfego de informaes, especialmente nos dias atuais.

O algoritmo RSA
Um dos algoritmos mais seguros de encriptao de informaes atuais originou-se dos estudos de Ronald Rivest, Adi Shamir e Leonard Adleman, um trio de Matemticos brilhantes que mudaram a histria da Criptografia. O princpio do algoritmo construir chaves pblicas e privadas utilizando nmeros primos. Uma chave uma informao restrita que controla toda a operao dos algoritmos de criptografia. No processo de codificao uma chave quem dita a transformao do texto puro (original) em um texto criptografado.

Chave Privada
uma informao pessoal que permanece em posse da pessoa - no publicvel.

Chave Pblica
Informao associada a uma pessoa que distribuda a todos. Uma analogia amplamente conhecida no meio acadmico a transmisso de mensagens entre Alice e Bob. Alice e Bob so personagens fictcios que precisam trocar mensagens seguras sem interceptao. O algoritmo RSA permite essa troca segura de mensagens pela utilizao de chaves pblicas e privadas: 1. Alice cria seu par de chaves (uma pblica e outra privada) e envia sua chave pblica para todos, inclusive Bob; 2. Bob escreve sua mensagem para Alice. Aps escrita, Bob faz a cifragem do texto final com a chave pblica de Alice, gerando um texto criptografado; 3. Alice recebe o texto criptografado de Bob e faz a decifragem utilizando a sua chave privada. O procedimento realizado com sucesso porque somente a chave privada de Alice capaz de decifrar um texto criptografado com a sua chave pblica. importante destacar que se aplicarmos a chave pblica de Alice sobre o texto criptografado no teremos a mensagem original de Bob. Dessa forma, mesmo que a mensagem seja interceptada impossvel decifr-la sem a chave privada de Alice.

Funcionamento
Conforme mencionado, o algoritmo RSA baseado na construo de chaves pblicas e privadas utilizando nmeros primos. Inicialmente devem ser escolhidos dois nmeros primos quaisquer P e Q. Quanto maior o nmero escolhido mais seguro ser o algoritmo. A ttulo de exemplificao, sero escolhidos nmeros primos pequenos, para permitir um acompanhamento de todo o processo de cifragem e decifragem. P = 17 Q = 11 A seguir so calculados dois novos nmeros N e Z de acordo com os nmeros P e Q escolhidos: N=P*Q Z = (P - 1) * (Q - 1) No caso obtm-se como resultado: N = 17 * 11 = 187 Z = 16 * 10 = 160 Agora define-se um nmero D que tenha a propriedade de ser primo em relao Z. Pode-se escolher qualquer nmero que satisfaa essa propriedade. Nesse exemplo, visando simplificao dos clculos, opta-se pela escolha: D=7 De posse desses nmeros comea o processo de criao das chaves pblicas e privadas. necessrio encontrar um nmero E que satisfaa a seguinte propriedade: (E * D) mod Z = 1 Se forem feitos os testes com 1, 2, 3... teremos: E = 1 => (1 * 7) mod 160 = 7 E = 2 => (2 * 7) mod 160 = 14 E = 3 => (3 * 7) mod 160 = 21 ... E = 23 => (23 * 7) mod 160 = 1

... E = 183 => (183 * 7) mod 160 = 1 ... E = 343 => (343 * 7) mod 160 = 1 ... E = 503 => (503 * 7) mod 160 = 1 ... Logo at o momento os nmeros 23, 183, 343, 503 satisfazem a propriedade indicada. Para efeito de simplificao de clculos, ser tomado como referncia: E = 23. Com esse processo definem-se as chaves de encriptao e desencriptao. para encriptar: utilizar E e N - esse par de nmeros ser utilizado como chave pblica. para desencriptar: utilizar D e N - esse par de nmeros utilizado como chave privada. As equaes so: TEXTO CRIPTOGRAFADO = (TEXTO ORIGINALE ) mod N TEXTO ORIGINAL = (TEXTO CRIPTOGRAFADO D) mod N

Caso prtico para o exemplo


Seja a necessidade de se encaminhar uma mensagem bem curta de forma criptografada, como o nmero 4 por exemplo, tendo por base as chaves aqui estabelecidas. Para criptografar: TEXTO ORIGINAL = 4 TEXTO CRIPTOGRAFADO = (423) mod 187 TEXTO CRIPTOGRAFADO = 70.368.744.177.664 mod 187 TEXTO CRIPTOGRAFADO = 64 Para desencriptar: TEXTO RECEBIDO = 64 TEXTO ORIGINAL = (647) mod 187 TEXTO ORIGINAL = 4.398.046.511.104 mod 187 TEXTO ORIGINAL = 4 A questo das escolhas dos nmeros primos envolvidos fundamental para o algoritmo. Por essa razo escolhem-se nmeros primos gigantescos para garantir que a chave seja inquebrvel. Assim como o exemplo apresentado, existem outras combinaes que podem ser feitas rapidamente para confirmao, sem que se exija uma aplicao especial para os clculos envolvidos.