Você está na página 1de 6

Algoritmos criptogrficos de chave pblica

Histrico A descoberta em 1976 por Diffie, Hellman e Merkle de algoritmos


criptogrficos assimtricos, onde a segurana se baseia nas dificuldades de
1. Deduzir a mensagem a partir do criptograma;
2. Deduzir uma chave de cifragem a partir da outra chave;
possibilitou o desenvolvimento da criptografia moderna, onde os mecanismos de
distribuio de chaves, autenticao de mensagens, e provas de identidade,
alcanaram novos patamares de versatilidade.
Protocolos que fazem uso de algoritmos assimtricos, podem dispensar o
sigilo de uma das chaves do par. Os que usam esta opo so chamados
protocolos de chave pblica, e devem ser bem projetados para serem seguros

Segurana dos sistemas de chave pblica Esses sistemas so desenhados para resistir a ataques de texto pleno
escolhido, mas podem ser sensveis a ataques por criptograma escolhido.
Portanto, nos sistemas onde a assinatura operao inversa da cifragem, pares
distintos de chaves devem ser usados para estes dois servios.
Dos algoritmos assimtricos at hoje propostos, apenas quatro so seguros
e prticos para ambos servios: RSA, ElGamal, Rabin e ECC. Existe uma
famlia de algoritmos teis apenas para assinatura, e outros pouco prticos por
serem inseguros, muito lentos ou usarem chaves muito longas.

RSA
O mais usado e fcil de implementar dos algoritmos assimtricos, conhecido
pela ligra das iniciais dos descobridores, Rivest, Shamir & Adleman. Resiste a quase
20 anos de anlise, sendo sua robustez baseada na dificuldade (custo computacional)
de se fatorar nmeros inteiros.
Gerao de parmetros e par de
chaves do sistema: {t = tamanho}
p = geraprimo(rand(t))
q = geraprimo(rand(t))
f = (p-1)*(q-1) {p, q, f secretos}
n = p*q; e= rand(t)
e = e / mdc(e,f) [>1] EA = (e,n)
d = euclext(e,f,1)
DA = (d,n)

Cifragem (comea com eA pblica)


c = me mod n {encripta bloco}
m = cd mod n

{decripta bloco}

Assinatura (comea com dA privada)


s = h(m)d mod n
{assina hash}
h(m) = se mod n ? {verifica hash}

d = e -1 mod f : A segunda chave de um par formada pelo mesmo mdulo e a inversa


do expoente da primeira no anel Zf(n), calculada pelo algoritmo Euclides extendido:
Algoritmo de Euclides extendido recursivo: Dados a, b, c onde
mdc(a,b) divide c, o algoritmo retorna o menor x>0 tal que
/* a*x = c mod b */
euclext(a, b, c) begin
r = b mod a
se r == 0
ento retorne( (c div a) mod (b div a) )
seno retorne( (euclext(r,a,-c)*b+c) div a mod b)
end

Fermat: O algoritmo funciona como cifra devido ao Teorema de Euler-Fermat:


d
e d
1+r(p-1)(q-1)
r(p-1)(q-1)
c =(m ) = m
= m*m
= m*1 mod n = m

i.e., as funes EA( ) e DA( ) (representadas pelo par de chaves de A) so inversas


uma da outra supondo que m tem menos bits que n, o que sempre ocorre nos
esquemas de envelope e de assinatura digitais (nos protocolos em que so teis).

Anlise do RSA

Premissas sobre a segurana do algoritmo 1. Qualquer dos parmetros p, q e f(n) permite o clculo trivial de d em DA a

partir de EA, devendo portanto serem protegidos (sigilo) juntamente com DA.
2. O ataque mais eficiente (conhecido) ao algoritmo consiste em tentar fatorar n

para se obter f(n) e saber em que anel inverter e (divulgado em EA). Pode-se
tambm tentar adivinhar f(n), mas o custo deste ataque to alto quanto o de
fatorar n, sendo maior ainda o custo de se tentar adivinhar EA-1.
3. Em princpio, poderia existir um mtodo de ataque mais eficiente ao RSA. Porm

tal mtodo serviria tambm para fatorao de n, e o problema da fatorao vem


sendo extensamente estudado desde 340 A.C., para o qual o algoritmo mais
eficiente conhecido tem complexidade O(ec+x1/3ln2(x)), exponencial.
4. Nmeros randmicos so selecionados como primos, para o mdulo n, por um

algoritmo de Monte Carlo (ex: Leehman). Existem, entretanto, os pseudo-primos


(nmeros de Carmichael), que, sem serem primos, passam no teste de Monte
Carlo independentemente do n. de iteraes. Pseudo-primos so muito raros, mas
se pegos causaro falha na cifra. Por isso o teste do par de chaves importante,
pois o n. de interaes de Monte Carlo tem um limite prtico (e emprico).

Ataques a protocolos que usam o RSA Mtodos conhecidos exploram falhas nos protocolos (no diretamente no
algoritmo), devido exponenciao preservar estruturas multiplicativas:
Criptograma escolhido contra assinatura;
Mdulo comum;
Expoente pequeno para encriptao;
Ordem de operaes de cifra e assinatura.

Ataque por criptograma escolhido contra assinatura Este ataque possvel contra protocolos que assinam a mensagem por
extenso (e no um hash da mesma), e prescinde da conivncia ou negligncia do
agente fraudado em assinar mensagens sem motivo aparente.
Caso 1: Vazamento de mensagem
1: RSA, mesmo par de chaves de cifra e assinatura
2: c

Chaves de A: (e,d), n
2: Recebe m cifrada...

3: y

c = me mod n

4: Assina nova "mensagem" y

5: ..., s

s = yd mod n

Agente I
2: Gera n. randmico r < n ;

Calcula x = r mod n
Calcula y = xc mod n
Solicita assinatura de y,
6: Calcula t =
Desvela m =

x = re mod n r = xd mod n

r-1mod n
ts mod n

d
d d
d
d
ts mod n = r-1y mod n = r-1x c mod n = r-1rc mod n = c mod n = m

Caso 2: Autenticao fraudulenta


1: RSA, para autenticao em rede aberta
2: A, e

Chaves de A: (e,d), n

4: m

3: Gera mensagem expria M;


Gera n. randmico r < n;

6: s

Calcula x = r mod n
Calcula m = xM mod n
Solicita autenticao de m,

5: Reconhece firma de m

s = md mod n
d
d d
(rm) mod n = r m mod n

Agente B

7: Calcula t = r-1mod n
Autenticador de M : ts mod

Concluso: Para autenticao oponvel a terceiros (p.ex., em rede aberta), a


assinatura deve ser feita sobre um hash da mensagem, e no sobre a mensagem.

Ataque em mdulo comum Este ataque possvel se a distribuio de chaves para a cifra que usa o
RSA atribui chaves com o mesmo mdulo a usurios distintos. Qualquer
mensagem encriptada por mais de um usurio pode ser facilmente vazada.

Vazamento de mensagens em mdulo comum

1: RSA, mesmo mdulo para pares de chaves na cifra

Agentes A, B
2,3: A e B recebem a mesma
mensagem m cifrada...

eA mod n

cA = m
cB = m

eB mod n

Supe mdc(eA,eB)=1

2: A, cA
3: B, cB

Agente I
4: Usa Euclides extendido para calcular
onde xeA + yeB = 1

x,y

5: Desvela m: Se x<0 ento

(cA-1)-x eBy mod n seno


m = (cB-1)-y eAx mod n
m =

Ataque com expoentes pequenos de encriptao Encriptao/verificao de assinatura no RSA mais rpido quanto menor
for a chave pblica. Porm, esse tipo de ataque, que usa o algoritmo PolighHellman para fatorar n, torna-se possvel com a encriptao de e(e+1)/2
mensagens linearmente independentes, possivelmente eficiente com e pequeno.
Concluso: gerar exponente de chave pblica pequeno s deve ocorrer para par
de chaves destinados apenas para assinatura digital.

Ataque com assinatura sobre mensagem encriptada As operaes de assinatura e encriptao devem ser executadas nessa
ordem, para evitar fraudes decorrentes deste tipo de ataque, onde nem mesmo o
uso de funo de hash para assinatura pode evitar:

Fraude de assinatura lavrada sobre mensagem encriptada

1: RSA, usado para cifra e depois assinatura

Chaves de A: (eA,dA), nA
2: m cifrada para B...

2: B, eB

c = meB mod nB

4: u

u = cdA mod n

6: B,eB

3: e o criptograma assinado por A


A

(meB mod nB)dA mod nA

Agente B
5: Verifica e decripta u; Gera
mensagem expria M;
Calcula x < nB tal que

Mx =

m mod nB;

6: Publica novo eB xeB

7: Acusa A de ter lhe enviado


M
xe
d
= (M B mod nB) A mod nA = u

Este ataque possvel quando B puder bancar a soluo do problema do


logaritmo discreto para encontrar x, conhecendo a fatorao de nB.

Se a

assinatura antecedesse a cifragem, B teria que buscar x sem saber fatorar nA

Preveno contra ataques conhecidos ao RSA 1. Conhecimento de um par de expoentes (e,d) permite a fatorao do mdulo n.
2. Conhecimento de um par (e,d) permite encontrar outros para mesmo n

3. Mdulo comum no deve ser usado em rede aberta.


4. Mensagens a serem cifradas devem ser acolchoadas (padded) com bits

randmicos at completar o tamanho de n menos 1 (m < n)


5. O expoente pblico deve ser grande, e a assinatura anteceder a cifragem.

Padronizao e patentes O RSA um padro de facto para criptografia assimtrica: Anexo da norma
ISO 9796, draft de uma norma ANSI, padro bancrio na Frana e Austrlia.
No padro nos EUA por problemas de disputa sobre direitos de patente. A
patente, vlida somente nos EUA, expira em 20/9/2000.

Você também pode gostar