Prof RG Crespo
Introduo (1)
Para alm de garantir a segurana dos criptogramas, as cifras enfrentam dois problemas
Distribuio das chaves. Autenticao do autor da mensagem.
Em 1976 Diffie e Hellman propem novo tipo de cifra de bloco baseada na existncia de chaves pblica KP e secreta KS, que devem satisfazer as seguintes propriedades:
1. Funes D e E (cifra e decifra) so distintas e conhecidas por todos. 2. M = DKs(EKp(M)) s o conhecedor de KS consegue decifrar criptograma 3. Impossvel identificar KS a partir de KP 4. No possvel conhecer M a partir de KP e EKs(M) 5. M = DKp(EKs(M)) todos podem aceder s mensagens cifradas pelo conhecedor de KS
Prof RG Crespo Criptografia e Segurana de Comunicaes Cifras assimtricas : 2/42
Introduo (2)
Cifras de chave assimtricas baseadas em grupos abelianos:
A. Protocolo Diffie-Hellman: Chaves geradas por exponenciao no grupo (ataque por logaritmo discreto: dado a, ak mod q pretendese determinar k) B. Chave RSA: Chaves geradas por exponenciao no grupo (ataque por factorizao de nmero composto: dado n, pretende-se determinar dois primos tais que n=p*q) C. Curva elptica: Chaves geradas por somas sobre curvas elpticas (ataque: dado a, a*k pretende-se determinar k).
Prof RG Crespo
Diffie-Hellman (1)
Protocolo de acordo de chaves proposto em 1976, para troca de chave simtrica num meio inseguro. Usado pelo SSH, baseia-se na dificuldade em identificar logaritmos discretos. a) Protocolo
Publicamente so conhecidos p (nmero primo), g (base). Nota: p e (p-1)/2 devem ser primos, p deve ser grande (pelo menos 512 bits); g deve ser raz primitiva de p. Alice e Bruno seleccionam dois nmeros secretos a,b mod p
Alice
ga mod p gb mod p
Bruno
Bruno calcula KAB = (ga mod p)b mod p Alice calcula KBA = (gb mod p)a mod p
Cifras assimtricas : 4/42
Prof RG Crespo
Diffie-Hellman (2)
KBA = (gb mod p)a mod p = (gb)a mod p = (ga)b mod p = (ga mod p)b mod p = KAB Alice e Bruno calculam a mesma chave O intruso no consegue calcular a chave a partir de (ga mod p) e (gb mod p), devido dificuldade de identificar logaritmos discretos.
Prof RG Crespo
Diffie-Hellman (3)
Exemplo: sejam p=353, g=3
Alice selecciona a=97 e envia 397 mod 353= 40 Bruno selecciona b=233 e envia 3233 mod 353= 248 Alice calcula K = 24897 mod 353 = 160 Bruno calcula K = 40233 mod 353 = 160
b) Ataques Uma vez que no verifica autenticao das mensagens, o protocolo Diffie-Hellman passvel do ataque por interposio (man-in-the-middle).
Prof RG Crespo
Diffie-Hellman (4)
O intruso intercepta todas as mensagens trocadas entre Alice e Bruno. Para o Bruno, o intruso manifesta-se como Alice, substituindo o valor ga mod p por um novo valor gia mod p. Assim, o intruso consegue estabelecer uma sesso secreta com Bruno. Alice a g mod p gbi mod p Intruso gia mod p gb mod p Bruno
Diffie-Hellman (5)
Nota: O valor de g deve ser raz primitiva de p. c) Criptoanlise A identificao da chave um problema DLP. Exemplo na dificuldade do DLP: dado g=13,p=19, qual o valor de a tal que 13a mod 19=7? Calculando todos os gi mod 19 tem-se a=12
g g2 g3 g4 4 g5 g6 g7 g8 g9 g10 g11 g12 g13 g14 g15 g16 g17 g18 6 2 7 15 5 8 9 3 1
13 17 12
14 11 10 16 18
Prof RG Crespo
RSA-introduo (1)
Primeira implementao publica de chaves assimtricas em 1978 por Ron Rivest, Ado Shamir e Leonard Adleman (patente expirou em 2000) do MIT. Baseada na dificuldade em factorizar nmeros de grandes dimenses.
Prof RG Crespo
RSA-introduo (2)
Tem resistido a ataques de criptoanalistas, custa do aumento da dimenso das chaves, mas h necessidade de ter ateno aos desenvolvimentos.
Nota: relao entre nmero de dgitos decimais e binrios dada por 10D = 2B D = B.log 2 0.3B Nota histrica: servios secretos britnicos MI6 j usavam este mtodo nos anos 50. Apesar da matemtica subjacente ser conhecida, a cifra RSA surgiu apenas nos anos 70 porque aplicvel apenas com numeros primos de grande dimenso e s nos anos 70 apareceram computadores potentes de custo aceitvel.
Prof RG Crespo Criptografia e Segurana de Comunicaes Cifras assimtricas : 10/42
RSA-introduo (3)
a) Cifra:
1. 2. 3. 4. Seleccionar 2 nmero primos p,q (> 150 dgitos decimais cada) Calcular N=pq e z=(p-1)(q-1) Escolher d<N, que seja co-primo de z Escolher e, tal que ed=1 mod z
Chave pblica: (e,N) Chave privada: (d,N) Cifrar: E(pi) = ci = pie mod N Decifrar: D(ci) = cid mod N Nota 1: O produto de dois primos designado por semiprimo (4,6,9,10,14,15,21,22,25,26,)
Prof RG Crespo Criptografia e Segurana de Comunicaes Cifras assimtricas : 11/42
RSA-introduo (4)
Nota 2: e normalmente reduzido (estilo 3) para apressar a cifra. Nota 3: os semiprimos devem satisfazer condies que dificultem o ataque cifra RSA
RSA-introduo (5)
As funes E e D so simtricas?
D(c) = cd mod N = (pe mod N)d = (pe)d mod N = ped mod N = pt(N)+1 mod N = (p(N))t p mod N = 1t p mod N = p mod N A cifra RSA comuta, i.e, dada qualquer mensagem M e duas cifras E1 e E2, tem-se que E1(E2(M)) = E2(E1(M)). Nota: demonstrao baseia-se no pequeno teorema de Fermat.
Prof RG Crespo
RSA-mensagens fracas
Suponha p=0. Ento, c=0e mod N=0 independentemente da chave! Suponha p=1. Ento, c=1e mod N=1 independentemente da chave! Suponha c=ke para um inteiro k. Ento, p=k. Todas as mensagens p<N(1/e) so fracas! Regra: encher mensagens antes de cifrar!
Prof RG Crespo
RSA-criptoanlise (1)
Curiosidade, no faz parte da avaliao
Vrios ataques tm sido propostos Por observao do consumo Em 1996, Paul Kocher divulga ataque por medio do tempo de clculo (ou alterao do consumo de energia) diferente nos bits 1-maior e 0-menor. Resposta: RSA security efectua multiplicaes aleatrias antes de decifrar (blinding): desempenho degradado entre 2% e 10%. Preve-se que a computao quntica esteja disponvel na proxima dcada, permitindo quebrar qualquer nmero RSA
Prof RG Crespo Criptografia e Segurana de Comunicaes Cifras assimtricas : 15/42
RSA-criptoanlise (2)
A segurana do RSA reside no seguinte problema:
Conhecidos N,e Para determinar a chave secreta d, o intruso deve
1. Factorizar N=pq operao computacionalmente pesada 2. Calcular z=(p-1)(q-1), d=e-1 mod z
Prof RG Crespo
RSA-criptoanlise (3)
Curiosidade, no faz parte da avaliao
c) I.
Criptoanlise Qual o custo de factorizar o nmero N=pq ? Factorizao por fora bruta : tentar todos os primos at N/2 (pesado!! H cerca de N/ln N primos at N). O custo dos clculos O(N). Exemplo: seja N = 408 508 091
1. Divisvel por 3? No! 2. Divisvel por 5? No! 3. . 2099. Divisvel por 18 313 (2099 primo)? Sim, identificado p! 2100. q = N / 18 313 = 22 307
Demorou 2099 passos, e N s tem 9 dgitos! Imagine RSA-640 com 193 dgitos decimais
Prof RG Crespo Criptografia e Segurana de Comunicaes Cifras assimtricas : 17/42
RSA-criptoanlise (4)
Curiosidade, no faz parte da avaliao
II.
Factorizao de Fermat Fazendo N = pq = (r-s).(r+s) = r2 s2 N+s2 = r2 Algoritmo: Procurar N, N+12, N+22, , N+s2, at encontrar um quadrado perfeito r2. Os factores so p=(r-s) e q=(r+s).
Exemplo: seja N = 408 508 091 408 508 091+12 = 408 508 092 quadrado perfeito? No! 408 508 091+22 = 408 508 095 quadrado perfeito? No! 408 508 091+19972 = 412 496 100 = 203102 Logo N = (20310-1997).(20310+1997) = 18_313 * 22_307
Prof RG Crespo
RSA-criptoanlise (5)
Curiosidade, no faz parte da avaliao
A factorizao de Fermat pouco eficiente, porque demorado verificar se um nmero quadrado. Para o exemplo N= 408 508 091, a diminuio do nmero de passos foi marginal. 1 melhoria: em vez de varrer no s, faz-lo no r! Refazendo N = r2 s2 , tem-se s2 = r2 - N. Fazendo r1= N, ri+1= ri +1 Algoritmo: Procurar ri2-N, at encontrar o quadrado perfeito s2.
Nota: Relembrar que factores so p=(ri-s) e q=(ri+s).
Prof RG Crespo Criptografia e Segurana de Comunicaes Cifras assimtricas : 19/42
RSA-criptoanlise (6)
Curiosidade, no faz parte da avaliao
2 melhoria: todos os quadrados terminam por 0,1,4,5,6 e 9. Este resultado permite que sejam saltados alguns valores de i.
Prof RG Crespo
RSA-criptoanlise (7)
Curiosidade, no faz parte da avaliao
RSA-criptoanlise (8)
Curiosidade, no faz parte da avaliao
Guardado o valor de 2(i-1)!, porque 2i! = 2(i-1)!*i = (2(i-1)!) Sempre que o valor intermdio ultrapassar N, calcular mod N
Nota 2: quando i se torna elevado, a factorizao Pollard p-1 deve ser abandonada a favor de algoritmos mais potentes
Prof RG Crespo Criptografia e Segurana de Comunicaes Cifras assimtricas : 22/42
RSA-criptoanlise (9)
Curiosidade, no faz parte da avaliao
RSA-concurso (1)
Curiosidade, no faz parte da avaliao
d) Empresa RSA security submete a concurso factorizao de nmeros RSA com prmios at $200 mil (RSA-2048).
Primeiro prmio (100 USD) atribudo em Abril 1994, por factorizao RSA-129. Prmio mais elevado (20 000 USD) ganho em Novembro 2005 na descodificao do RSA-640 (193 dgitos) por equipa da U. Bonn/ Alemanha.
Usado algoritmo GNFS-General Number Field Sieve. Clculos efectuados durante 540 dias por um conjunto de 80 AMD64 Opteron @ 2.2 GHz (CPU que equipa cerca 10% dos supercomputadores mais rpidos do mundo).
Prof RG Crespo
Nota: como o tempo de cifra/decifra cresce com o cubo da dimenso da chave, para proteger dados reais (transferncias bancrias, SSH,...) so usadas cifras simtricas.
Criptografia e Segurana de Comunicaes
RSA-concurso (2)
Curiosidade, no faz parte da avaliao
ECC (1)
a) Introduo
Proposta de forma independente por V. Miller e N. Koblitz em 1985, baseia-se
Computao em pontos de curvas elpticas Dificuldade na determinao do logaritmo discreto
GF(2m)
Prof RG Crespo
ECC (2)
Vantagens
Exige cifras mais curtas para o mesmo grau de segurana do RSA (dimenso da chave na EEC deve ser da ordem de 150-300 bits, contra 1200 bits na RSA) Velocidades de cifra superiores ao RSA e menor consumo
Inconvenientes
Matemtica mais complexa Representaes distintas, que dificultam a normalizao Algumas representaes foram patentiadas, nomeadamente compresso de dados pela certicom (http://www.certicom.com) empresa canadiana com 130 patentes.
Prof RG Crespo
ECC (3)
Usada preferencialmente em
Troca de chaves Assinatura digital Troca (limitada) de mensagens Implementaes em coprocessadores dedicados: Siemens Pluto-IC para dispositivo de cifra ELCRODAT 6, Infineon SLE66xxP para smart card1, Motorola MPC180x.
1 Dispositivos limitados (CPU 8 bits @ 3.5MHz, RAM 128B-1KB, ROM 6-16KB, EEPROM 1-16KB) para cartes de crdito, bilhetes de identidade,
Prof RG Crespo
ECC (4)
Curiosidade, no faz parte da avaliao
b) Escolha das curvas elpticas A procura das melhores curvas elpticas tem sido tema de investigao. NIST1 recomenda curvas elpticas sobre F(p)
p192 = 2192 264 1 p224 = 2224 296 + 1 p256 = 2256 2224 + 2192 + 296 1 p384 = 2384 2128 296 + 232 1 p521 = 2521 1
Prof RG Crespo
ECC (5)
Curiosidade, no faz parte da avaliao
Exemplo: para qualquer c<p1922 na ECC sobre F(p192) tem-se c = c52230 +c42256 +c32192 +c22128 +c1264 +c0, ci[0, 264-1]
como
2192 264 + 1 mod p192 2256 2128 + 264 mod p192 2320 2128 + 264 + 1 mod p192
c = c5(2128 +264+1)+c4(2128+264)+c3(264+1)+c22128+c1264+c0 Para calcular c mod p192 basta adicionar os quatro inteiros de 192 bits, subtraindo p192 sempre que a soma ultrapasse o valor
c52128 + c5264 +c5, c42128 + c4264, c3264 +c3, c22128 + c1264 + c0
Prof RG Crespo
ECC (6)
c) Criptosistemas 1. Criptosistema ECDH (Elliptic Curve Diffie-Hellman): variante do protocolo DH para estabelecimento de chave simtrica
a) Protocolo Publicamente so conhecidos a,b (coeficientes da curva elptica), G (ponto base), n (ordem do ponto base), h (cofactor) Alice e Bruno seleccionam dois nmeros secretos nA, nB < n. As chaves pblicas so KPA=nAG, KPB= nBG A chave partilhada nAKPB = nBKPA
Prof RG Crespo Criptografia e Segurana de Comunicaes Cifras assimtricas : 31/42
ECC (7)
b) Ataque MOV (Menezes,Okamoto,Vanstone): se pr=1 mod q, ento o ECDLP reduz-se a um DLP no corpo F(pr ). Soluo: seleccionar o primo Ep(a,b) que satisfaa pr=1 mod q para um valor r pequeno- muito menor que k2/log2 k (k=log2 p)
Prof RG Crespo
ECC (8)
2. Criptosistema ECMV (Elliptic Curve MenezesVanstone)
a) Inicializao Publicamente so conhecidos:
1. Ep(a,b) : coeficientes da curva elptica e Zp 2. G : gerador
Nota: pode parecer o espao de chaves ser curto, mas lembrar que o DLP computacionalmente pesado!
Prof RG Crespo
ECC (9)
b) Cifra
i. Alice usa chave pblica de Bruno, Kp, selecciona um nmero aleatrio qualquer k (k{2,3,#Ep(a,b)-1}) e calcula Kp k = (c1,c2) ii. Formado um bloco de mensagem M1M2 iii. C(M1M2,k)=(kG, c1M1 mod p, c2M2 mod p)
c) Decifra
i. Bruno recebe (Y0, Y1, Y2) e calcula Y0 n = (c1,c2) ii. M1= Y1c1-1 mod p M2= Y2c2-1 mod p
Prof RG Crespo
ECC (10)
Exemplo: Seja a curva elptica E31(16,7) e gerador G=(3,12). Bruno selecciona KS=17 e divulga KP=17G=(26,22). Alice pretende enviar, de forma cifrada, (m1,m2)=(10,12)
1. Alice selecciona aleatoriamente k=19 e calcula
1. kG = 19 (3,12) = (21,5) 2. kKP = 19 (26,22) = (19,3) 3. y1 = 19 10 mod 31 = 4 y2 = 3 12 mod 31 = 5
2. Alice envia a Bruno a mensagem cifrada ((21,5),4,5) 3. Bruno calcula KS (21,5) = (19,3) 4. Bruno decifra mensagem:
1. m1=4/19 mod 31=418 mod 31=10 2. m2=5/3 mod 31=521 mod 31=12 (19-1 mod 31=18) (3-1 mod 31=21)
Prof RG Crespo
Simtrica
Assimtrica Disperso
Prof RG Crespo
Prof RG Crespo
Cifra simtrica
senha
A cifra simtrica (ex: AES) Funo disperso $ necessita de uma senha IV, chave (128 bits) (passphrase)
AES-128-CBC Texto plano
sal
enter aes-128-cbc encryption password: Verifying - enter aes-128-cbc encryption password: U2FsdGVkX18pDpsby/kyInMxsbPm4gVkBgG35+W4JbI=
Prof RG Crespo Criptografia e Segurana de Comunicaes
Prof RG Crespo
C. Cifra assimtrica
asterix.ist.utl.pt> openssl genrsa out key.pem 100
Generating RSA private key, 100 bit long modulus ....+++++++++++++++++++++++++++ .+++++++++++++++++++++++++++ e is 65537 (0x10001)
# Nota: para proteger ficheiro, usar a opo des3 asterix.ist.utl.pt> more key.pem
-----BEGIN RSA PRIVATE KEY----MFICAQACDQmybOkOynsqUTqwa4kCAwEAAQINAojkVStrmpORI8LBrQI HAyfKpvto swIHAxK2w/Jg0wIGevL+XW+/AgcCmXjqhYOrAgcBxTF6FivW -----END RSA PRIVATE KEY----Prof RG Crespo Criptografia e Segurana de Comunicaes Cifras assimtricas : 41/42