Você está na página 1de 5

Algoritmo RSA

É um dos primeiros sistemas de criptografia de chave pública e é amplamente utilizado


para transmissão segura de dados. Neste sistema de criptografia, a chave de encriptação
é pública e é diferente da chave de desencriptação que é secreta ou privada. No
algoritmo RSA, esta assimetria é baseada na dificuldade prática da factorização do
produto de dois números primos grandes. O acrônimo RSA é composto das letras
iniciais dos sobrenomes de Ron Rivest, Adi Shamir e Leonard Adleman, fundadores da
actual empresa RSA Data Security, Inc., os quais foram os primeiros a descrever o
algoritmo em 1978. Clifford Cocks, um matemático Inglês que trabalhava para a
agência de inteligência britânica Government Communications Headquarters (GCHQ),
desenvolveu um sistema equivalente em 1973, mas ele não foi revelado até 1997.
É considerado dos mais seguros, pois chegou a mandar
por terra todas as tentativas de violar. Foi também o primeiro algoritmo a possibilitar
criptografia e assinatura digital, e uma das grandes inovações em criptografia de chave
pública. Um utilizador do algoritmo RSA cria e publica uma
chave pública baseada em dois números primos grandes, junto com um valor auxiliar.
Os números primos devem ser mantidos secretos. Qualquer um pode usar a chave
pública para encriptar a mensagem, mas com métodos actualmente publicados, e se a
chave pública for muito grande, apenas alguém com o conhecimento dos números
primos pode descodificar a mensagem de forma viável. O RSA é um algoritmo
relativamente lento e, por isso, é menos usado para criptografar directamente os dados
do utilizador. Mais frequentemente, o RSA passa chaves criptografadas partilhadas para
criptografia de chave simétrica que, por sua vez, pode executar operações de
criptografia-descriptografia em massa a uma velocidade muito maior.
Funcionamento
O Algoritmo RSA envolve um par de chaves, uma chave pública que pode ser
conhecida por todos e uma chave privada que deve ser mantida em sigilo. Toda
mensagem criptografada usando uma chave pública só pode ser descriptografada usando
a respectiva chave privada. A criptografia RSA actua directamente na internet, por
exemplo, em mensagens de emails, em compras on-line, etc.

Criação de Chaves

No algoritmo RSA as chaves são geradas da seguinte forma:

1) Escolha aleatória de dois números primos p e q ;


2) Cálculo do valor de n, dada pela fórmula n= p∗q;
3) Cálculo da função totiente de Euler em n, dada pela fórmula φ(n)=( p−1)(q−1);
4) Escolha um inteiro e de tal que 1<e <φ(n), de forma que e e φ(n) sejam coprimos
entre si;
5) Determinar a chave pública k p=( n , e), ou seja, o n e e é a chave pública;
6) Determinar a Chave privada k s=(n , d), com a condição d∗e mod φ(n )=1 , para d
= 1 até ao infinito, desde que ele seja um número primo.

Encriptação

Para transformar uma mensagem m numa mensagem cifrada utilizando a chave pública
do destinatário n e e basta fazer uma potenciação modular, e é dada pela fórmula:

e
c=m mod n

onde:

c – Mensagem cifrada.

m – Texto a ser cifrado transformado em números inteiros.

Desencriptação

Para recuperar uma mensagem m da mensagem cifrada c usando a respectiva chave


privada do receptor, será feita outra potenciação modular, e é dada pela fórmula:

ks
m=c mod n
Tabela de Transformação de letras em números

A = 10 H = 17 O = 24 V = 31
B = 11 I = 18 P = 25 W = 32
C = 12 J = 19 Q = 26 X = 33
D = 13 K = 20 R = 27 Y = 34
E = 14 L = 21 S = 28 Z = 35
F = 15 M = 22 T = 29
G = 16 N = 23 U = 30

Tab.1: Tabela para transformar letras em números em função do algoritmo RSA.


Exemplo 1.: Tendo em conta o algoritmo RSA, com os parâmetros p=5 e q=7 . Calcule
a chave pública k p e a chave secreta ou privada k s e realiza o processo de encriptação e
desencriptação, com a mensagem de texto ISUTC.

Dados:

p=5 n= p∗q=5∗7 φ(n)= ( p−1 ) ( q−1 )=( 5−1 ) ( 7−1 )=4∗6

q=7 n=35 φ(n)=¿ 24

Com a condição: 1<e <φ(n) ,escolhemos o número inteiro primo e=7 .


Satisfazendo a condição d∗e mod φ(n )=1, d = 7, pois 7∗7 mod 24=1. A
chave pública k p, dada pela expressão k p=( n , e), será k p=(35 , 7) e a chave privada k s,
dada pela expressão k s=(n , d), será k s=(35,7).

Encriptação

m=ISUTC m = 1828302912, dividindo em pares fica m = 18-28-30-29-12.

e
c=m mod n Logo teremos: m = 32-7-30-29-33.

7
c=1 8 mod 35=32 A mensagem codificada será: m = 327302933.

7
c=28 mod 35=7
7
c=30 mod 35=30
7
c=29 mod 35=29
7
c=1 2 mod 35=3 3

Desencriptação

d
m=c mod n Logo teremos: m = 18-28-30-29-12.

m=327 mod 35=18 A mensagem descodificada: m = 1828302912 = ISUTC.

7
m=7 mod 35=28

m=307 mod 35=30


7
m=29 mod 35=2 9

m=3 37 mod 35=12


Exemplo 2.: Tendo em conta o algoritmo RSA, com os parâmetros p=23e q=47.
Calcule a chave pública k p e a chave secreta ou privada k s e realiza o processo de
encriptação e desencriptação, com a mensagem de texto SICO.

Dados:

p=23 n= p∗q=23∗4 7 φ(n)= ( p−1 ) ( q−1 )=( 23−1 ) ( 47−1 )=22∗46

q=4 7 n=1081 φ(n)=¿ 1012

Com a condição: 1<e <φ(n) ,escolhemos o número inteiro primo e=5 .


Satisfazendo a condição d∗e mod φ(n )=1, d = 405, pois 405∗5 mod 1012=1. A
chave pública k p, dada pela expressão k p=( n , e), será k p=(1081 , 5) e a chave privada
k s, dada pela expressão k s=(n , d), será k s=(1081, 405).

Encriptação

m=SICO m = 28181224, dividindo em pares fica m = 28-18-12-24.

e
c=m mod n Logo teremos: m = 848-1061-202-1059.

5
c=28 mod 1081=848 A mensagem codificada: m = 84810612021059.

5
c=1 8 mod 1081=1061
5
c=12 mod 1081=202
5
c=2 4 mod 1081=1059

Desencriptação

d
m=c mod n Logo teremos: m = 28-18-12-24.

405
m=848 mod 1081=2 8 A mensagem descodificada: m = 28181224 = SICO.

m=1061405 mod 1081=1 8


405
m=202 mod 1081=12

m=1059 405 mod 1081=24

Você também pode gostar