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

Chaves de A: (e,d), n
2: Recebe m cifrada... 4: Assina nova "mensagem" y

2: c 3: y 5: ..., s

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 =

c = me mod n s = yd mod n

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

Agente B
3: Gera mensagem expria M; Gera n. randmico r < n; Calcula x = r mod n Calcula m = xM mod n Solicita autenticao de m, 7: Calcula t = r-1mod n Autenticador de M : ts mod

Chaves de A: (e,d), n
5: Reconhece firma de m

4: m 6: s

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

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... cA = m cB = m

2: A, cA 3: B, cB

Agente I
4: Usa Euclides extendido para calcular onde xeA + yeB = 1 5: Desvela m: Se x<0 ento m =

x,y

eA mod n

eB mod n

Supe mdc(eA,eB)=1

(cA-1)-x eBy mod n seno m = (cB-1)-y eAx mod n

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... 3: e o criptograma assinado por A

2: B, eB 4: u 6: B,eB

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

c = meB mod nB u = cdA mod n

Mx =

(meB mod nB)dA mod nA

7: Acusa A de ter lhe enviado M xe d = (M B mod nB) A mod nA = u

6: Publica novo eB xeB

m mod nB;

Este ataque possvel quando B puder bancar a soluo do problema do logaritmo discreto para encontrar x, conhecendo a fatorao de nB. assinatura antecedesse a cifragem, B teria que buscar x sem saber fatorar nA Se a

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