EGC 5004 - EPISTEMOLOGIA E CIÊNCIA AS BASES EPISTEMOLÓGICAS DA FENOMENOLOGIA Carlos Henrique Prim.
Cripts Egc
-
Upload
heloisa-dias -
Category
Documents
-
view
213 -
download
0
description
Transcript of Cripts Egc
-
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.
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:
Fermat: O algoritmo funciona como cifra devido ao Teorema de Euler-Fermat:
cd =(me)d = m1+r(p-1)(q-1) = m*mr(p-1)(q-1)
= 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).
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)
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
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}
-
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.
ts mod n = r-1ydmod n = r-1xdcdmod n = r-1rcdmod n = cdmod n = m
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.
1: RSA, mesmo par de chaves de cifra e assinatura
Chaves de A: (e,d), n Agente I2: c
2: Recebe m cifrada...
c = me mod n4: Assina nova "mensagem" y
s = yd mod n
2: Gera n. randmico r < n ;
Calcula x = re mod n Calcula y = xc mod n Solicita assinatura de y,
6: Calcula t = r-1mod n Desvela m = ts mod n
Caso 1: Vazamento de mensagem
3: y
5: ..., s
x = re mod n r = xd mod n
1: RSA, para autenticao em rede aberta
Chaves de A: (e,d), nAgente B2: A, e
5: Reconhece firma de m
s = md mod n
3: Gera mensagem expria M; Gera n. randmico r < n;
Calcula x = re mod n Calcula m = xM mod n Solicita autenticao de m,
Caso 2: Autenticao fraudulenta
4: m
6: s
(rm)d mod n = rdmd mod n7: Calcula t = r-1mod n
Autenticador de M : ts mod n
-
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.
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 Poligh-
Hellman 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:
1: RSA, mesmo mdulo para pares de chaves na cifra
Agentes A, B Agente I2: A, cA
2,3: A e B recebem a mesma mensagem m cifrada...
cA = meA mod n
cB = meB mod n
4: Usa Euclides extendido para calcular x , y onde xeA + yeB = 1
5: Desvela m: Se x
-
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.
1: RSA, usado para cifra e depois assinatura
Chaves de A: (eA,dA), nA Agente B2: B, eB
2: m cifrada para B...
c = meB mod nB3: e o criptograma assinado por A
u = cdA mod nA
5: Verifica e decripta u; Gera mensagem expria M;
Calcula x < nB tal que Mx =
m mod nB;6: Publica novo eB xeB7: Acusa A de ter lhe enviado
M
Fraude de assinatura lavrada sobre mensagem encriptada
4: u
6: B,eB
(meB mod nB)dA mod nA = (M
xeB mod nB)dA mod nA = u