Вы находитесь на странице: 1из 37

Protocolos Criptogr acos

06/2012

Instituto de Computa c ao - UNICAMP

IC-Unicamp

Roteiro

Gerenciamento de Chaves Certica c ao de Chaves Protocolos de Identica c ao Protocolos para Estabelecimento de Chaves Esquema de Compartilhamento de Segredos de Shamir Emparelhamentos Bilineares

IC-Unicamp

Gerenciamento de chaves

Atividade cr tica em qualquer sistema criptogr aco. As chaves devem ser:


criteriosamente geradas e disponibilizadas aos seus leg timos donos; cuidadosamente empregadas e armazenadas; ao m da sua vida u til, ser destru das ou arquivadas seguramente.

Aqui, damos aten c ao ao aspecto do estabelecimento (cria c ao e disponibiliza c ao) de chaves, pois e o que depende mais fortemente de t ecnicas criptogr acas.

IC-Unicamp

Tipos de chaves

Pelo seu tempo de vida: Chaves de sess ao. Ef emeras, sim etricas usadas durante uma sess ao de comunica c ao e depois descartadas. Chaves de longa vida. Chaves n ao-ef emeras, sim etricas ou assim etricas, usadas com certa freq u encia para
distribui c ao encriptada de chaves de sess ao; confec c ao e verica c ao de assinaturas digitais; confec c ao de Macs.

IC-Unicamp

Tipos de chaves

Chaves de longa vida (cont.) Chaves sim etricas s ao distribu das com protocolos de pr e-distribui c ao de chaves e armazenadas ou em hierarquias de chaves ou hardware dedicado, como smartcards e Hardware Secure Modules HSMs, ou frases-senha (passphrases). Chaves p ublicas devem ser distribu das nos seus certicados. Chaves perenes. Chaves cr ticas, de vida muito longa, como chaves mestras e chaves privadas de autoridades certicadoras. Armazenamento combina HSMs e fracionamento da chave.

IC-Unicamp

Certica c ao de chaves p ublicas

Certica c ao e a forma de vincular uma chave p ublica ` a entidade que e sua leg tima dona, ou seja, de prover conan ca a um sistema de chaves p ublicas. Na pr atica, algu em atesta (assina) a chave p ublica de outros. O documento de atesta c ao e o certicado digital. Formas antag onicas para provimento dessa conan ca:

IC-Unicamp

Certica c ao de chaves p ublicas (cont.)

Auto-gerida. Cada entidade mant em os certicados em que cona e troca certicados com entidades nas quais cona.
custo baixo, dif cil responsabiliza c ao. PGP (Phil Zimmerman, 1991). Zphone (VoIP Phone Encryption Software).

Delega c ao a terceiros. Autoridades certicadoras, etc.


custo alto, f acil responsabiliza c ao. Infra-estruturas de chaves p ublicas (ICP/PKI).

IC-Unicamp

Criptograa baseada em identidades

Alternativa ao uso de certicados digitais. Proposta como esquema de assinaturas em 1984 por Adi Shamir. Ganhou impulso em 2001 com a primeira proposta pr atica de esquema de encripta c ao baseado em identidades, de Boneh e Franklin. Chaves p ublicas auto-identic aveis: Esta chave pertence a alice@alice.com.

IC-Unicamp

Criptograa baseada em identidades (cont.)

Chaves privadas s ao geradas em conjunto pelo usu ario e um gerador de chaves privadasGCP.
Perda de independ encia das entidades. (cust odia das chaves)

Outras informa c oes na chave p ublicas (datas, etc). Propostas alternativas: Certicateless Public Key Cryptography), (Al-Riyami e Paterson), 2003. (sem cust odia das chaves)

IC-Unicamp

Protocolos de Identica c ao (autentica c ao de entidades)

Aspectos importantes: dom nio de validade de uma identidade: Alice deve ter conhecimento pr evio de alguma evid encia da identidade de Beto (n umeros IP, URLs, email, user logins, etc). natureza das informa c oes de identica c ao enviadas por Beto: algo que a entidade seja, algo que a entidade possua, algo que a entidade conhe ca.

IC-Unicamp

Protocolos de Identica c ao...

Aspectos importantes: seguran ca e robustez do protocolo: ataques pela quebra dos algoritmos criptogr acos ou falhas no projeto do protocolo. identica c ao fraca vs. identica c ao forte (com desao-resposta). reciprocidade da autentica c ao: identica c ao unilateral vs. m utua.

IC-Unicamp

Identica c ao fraca, unilateral, com senhas

Contexto inicial: A j a possui (B , hB ), onde hB = H(senhaB ). Resultado: A aceita ou n ao a identica c ao de B . 1. 2. 3. 4. B: A: B: A: A: B . B : Digite a senha. A: senhaB . localiza (B , hB ) no seu arquivo de senhas; y H(senhaB ); se y = hB , ent ao aceita B , sen ao rejeita.

IC-Unicamp

Identica c ao fraca, unilateral, com senhas descart aveis


Contexto inicial: A j a possui (B , hB ), com hB = Hn (senhaB ). Resultado: A aceita ou n ao a identica c ao de B . 1. 2. 3. B: A: B: B: A: A: B . B : Digite a senha. y Hni (senhaB ) na i - esima sess ao. A: y . localiza (B , hB ) no arquivo de senhas; y Hi (y ); se y = hB , ent ao aceita B e (B , hB ) (B , y ); sen ao rejeita.

4.

IC-Unicamp

Identica c ao forte, unilateral, com t ecnicas sim etricas

Contexto inicial: A, B compartilham uma chave secreta kAB . Resultado: A aceita ou n ao a identica c ao de B . 1. 2. B: A: A: B . sorteia(r ); B : (A, r ). y MackAB (B r ); A: y . y MackAB (B r ); se y = y , ent ao aceita B , sen ao rejeita.

3.

B:

4.

A:

IC-Unicamp

Identica c ao forte, m utua, com t ecnicas sim etricas


Contexto inicial: A, B compartilham uma chave secreta kAB Resultado: A e B aceitam ou n ao a identica c ao um do outro. 1. B: sorteia(rB ); A: (B , rB ). sorteia(rA ); y1 MackAB (A rB rA ); B : (rA , y1 ). y1 MackAB (A rB rA ); se y1 = y1 , ent ao y2 MackAB (B rA ), sen ao rejeita A e p ara; A: (y2 ). y2 MackAB (B rA ); se y2 = y2 , ent ao aceita B , sen ao rejeita.
IC-Unicamp

2.

A:

3.

B:

4.

A:

Identica c ao forte, m utua, usando chaves p ublicas


Contexto inicial: A, B t em certicados certA , certB . Resultado: A e B aceitam ou n ao a identica c ao um do outro. 1. B: sorteia(rB ); A: (certB , rB ). sorteia(rA ); sA SignA (B rB rA ); B : (certA , rA , sA ). Valida certA ; se VerA (sA ), ent ao sB SignB (A rA ), sen ao rejeita A e p ara; A: (A, sB ). valida certB se VerB (sB ) ent ao aceita B , sen ao rejeita.
IC-Unicamp

2.

A:

3.

B:

4.

A:

Identica c ao forte, m utua, com t ecnicas sim etricas


Contexto inicial: A, B compartilham uma chave secreta kAB Resultado: A e B aceitam ou n ao a identica c ao um do outro. 1. B: sorteia(rB ); A: (B , rB ). sorteia(rA ); y1 MackAB (A rB rA ); B : (rA , y1 ). y1 MackAB (A rB rA ); se y1 = y1 , ent ao y2 MackAB (B rA ), sen ao rejeita A e p ara; A: (y2 ). y2 MackAB (B rA ); se y2 = y2 , ent ao aceita B , sen ao rejeita.
IC-Unicamp

2.

A:

3.

B:

4.

A:

Identica c ao forte, m utua, usando chaves p ublicas


Contexto inicial: A, B t em certicados certA , certB . Resultado: A e B aceitam ou n ao a identica c ao um do outro. 1. B: sorteia(rB ); A: (certB , rB ). sorteia(rA ); sA SignA (B rB rA ); B : (certA , rA , sA ). Valida certA ; se VerA (sA ), ent ao sB SignB (A rA ), sen ao rejeita A e p ara; A: (A, sB ). valida certB se VerB (sB ) ent ao aceita B , sen ao rejeita.
IC-Unicamp

2.

A:

3.

B:

4.

A:

Estabelecimento de chaves

Protocolos para pr e-distribui c ao de chaves n ao-ef emeras, utilizadas para a distribui c ao de chaves de sess ao. Protocolos para distribui c ao de chaves de sess ao. Esquema para fracionamento de chaves cr ticas, de vida muito longa.

IC-Unicamp

Pr e-distribui c ao de chaves I (Die-Hellman)

Contexto inicial: - Par ametros p ublicos s ao: grupo (G , .) e G de ordem n. Resultado: Chave de sess ao k compartilhada por A e B . 1. A: sorteia(rA ), inteiro em {0 . . . n 1}; xA rA ; B : (A, xA ); sorteia(rB ), inteiro em {0 . . . n 1}; xB rB ; A: (B , xB );
rA k = xB ; rB k = xA ;

B:

2.

A: B:

IC-Unicamp

Pr e-distribui c ao de chaves II (Die-Hellman com certicados)

Contexto inicial: - Par ametros p ublicos s ao: grupo (G , .) e gerador de G . - A e B t em: chaves privadas dA e dB , 0 dA , dB |G | 1; chaves p ublicas eA = dA e eB = dB . Resultado: Chave k compartilhada por A e B . 1: A: B: obt em e valida certB ; k eB dA ; obt em e valida certA ; k eA dB .

IC-Unicamp

Distribui c ao de chaves de sess ao com t ecnicas sim etricas (Kerberos V5 simplicado)


Contexto inicial: A, B t em kAT , kBT pr e-combinadas com a TPC. Resultado: Chave de sess ao k compartilhada por A e B . 1. A: sorteia(rA ); TPC: (A, B , rA ); sorteia(k ); DeneLimiteTempo(l ); y1 EnckAT (rA B k l ); tkt B EnckBT (k A l ); A: (y1 , tkt B ); x1 DeckAT (y1 ); se x1 n ao tem os campos esperados, ent ao p ara; t HoraCorrente; y2 Enck (A t ); B : (y2 , tkt B );
IC-Unicamp

2.

TPC:

3.

A:

Distribui c ao de chaves de sess ao com t ecnicas sim etricas (Kerberos V5 simplicado)

4.

B:

tkt B DeckBT (tkt B ); se tkt B n ao tem os campos esperados, ent ao p ara; x2 Deck (y2 ); se x2 n ao tem os campos esperados ou t > l , ent ao p ara; y3 Enck (t + 1); A: y3 ; x3 Deck (y3 ); se x3 = t + 1, ent ao rejeita y3 , sen ao aceita.

5.

A:

IC-Unicamp

Distribui c ao de chaves de sess ao com t ecnicas sim etricas (Bellare-Rogaway)


Contexto inicial: A, B t em kAT , kBT pr e-combinadas com a TPC. Resultado: Chave de sess ao k compartilhada por A e B . 1. 2. 3. A: B: TPC: sorteia(rA ); B : (A, B , rA ); sorteia(rB ); TPC: (A, B , rA , rB ); sorteia(k ); yA EnckAT (k ); yA MackAT (B A rA yA ); yB EnckBT (k ); yB MackBT (A B rB yB ); A: (yA , yA ); B : (yB , yB ); se yA = MackAT (B A rA yA ), ent ao aceita k , sen ao rejeita; se yB = MackBT (A B rB yB ), ent ao aceita k , sen ao rejeita.
IC-Unicamp

4. 5.

A: B:

Distribui c ao de chaves de sess ao usando encripta c ao com chaves p ublicas


Contexto inicial: - A tem chaves p ublica e privada eA e dA ; - B tem chaves p ublica e privada eB e dB ; Resultado: Chave de sess ao k transmitida de A para B . 1. A: sorteia(k ); obt em e valida certB ; y EnceB (k ); sA SignA (y ) B : (A, y , sA ). obt em e valida certA ; se VerA (sA ) ent ao k DecdB (y ); sen ao rejeita.

2.

B:

IC-Unicamp

Acordo de chaves usando t ecnicas sim etricas (Encrypted-key Exchange)


Contexto inicial: - Par ametros p ublicos s ao: grupo (G , .) e G de ordem n. - A e B compartilham chave secreta kAB . Resultado: Chave de sess ao k compartilhada por A e B . 1. A: sorteia(rA ), inteiro em {0 . . . n 1}; xA rA ; yA EnckAB (xA ); B : (A, yA ); sorteia(rB ), inteiro em {0 . . . n 1}; xB rB ; yB EnckAB (xB ); A: (B , yB ); xB DeckAB (yB ); xA DeckAB (yA ); k = (xB )rA ; k = (xA )rB ;
IC-Unicamp

2.

B:

3. 4.

A: B:

Acordo de chaves (Station-to-station)


Contexto inicial: - Par ametros p ublicos s ao: grupo (G , .); G de ordem n. Resultado: Chave de sess ao k , compartilhada por A e B . 1: A: sorteia(rA ), inteiro em {0 . . . n 1}; xA rA ; B : (certA , xA ). Valida certA ; sorteia(rB ), inteiro em {0 . . . n 1}; xB rB ; sB SignB (A xB xA ); rB k xA ; A: (certB , xB , sB ). Valida certB ; se VerB (sB ), ent ao aceita, sen ao rejeita e p ara; rA sA SignA (B xA xB ); k xB ; B : sA . se VerA (sA ), ent ao aceita, sen ao rejeita e p ara.
IC-Unicamp

2:

B:

3:

A:

4:

B:

Armazenamento de chaves cr ticas: m etodo de Shamir

Chaves cr ticas devem ser armazenadas sem aux lio de outras chaves. Uso de esquemas de limiar e ideal:
Permite fracionar a chave entre n usu arios, de forma que t t n fra c oes sejam necess arias e sucientes para recuperar a chave. Equil brio dos valores de t e n e essencial.

Esquema de Shamir foi o pioneiro.

IC-Unicamp

Esquema de limiar de Shamir

Inicializa c ao. Escolha n inteiros, x1 , x2 , . . . , xn Zp , n ao nulos, p n + 1. Distribua xi para a entidade Ei . Fracionamento do segredo s . Seja s Zp . Sorteie, em segredo, a1 , a2 , . . . , at 1 Zp , t n, denindo assim o polin omio
t 1

a(x ) = s +
j =1

aj x j . mod p , i = 1 . . . n.

Calcule yi a(xi ) = s +

t 1 j j =1 aj (xi )

Distribua yi para a entidade Ei .

IC-Unicamp

Esquema limiar de Shamir


Observe que a(0) = s . Pelo Teorema Fundamental da Algebra, qualquer subconjunto de at e t 1 pontos (xi , yi ) n ao revela informa c ao alguma sobre os coecientes a1 , a2 , . . . , at 1 do polin omio a(x ), mas um conjunto com t ou mais pontos (xi , yi ) determina exatamente um polin omio, a saber, a(x ) e, portanto, o valor a(0) = s . Interpola c ao polinomial de Lagrange: t x xk a (x ) = t i =1 yi j =1,j =i xj xk (mod p) s = a(0) =
t i =1 yi t xk j =1,j =i xj xk

(mod p).

IC-Unicamp

Exemplo:Esquema limiar de Shamir

Par ametros: p = 17, n = 5, t = 3, s = 13 Dados: x1 = 1, x2 = 2, x3 = 3, x4 = 4, x5 = 5 y1 = 8, y3 = 10, y5 = 11 Polin omio: a(x ) = a2 x 2 + a1 x + a0 Interpola c ao polinomials de Lagrange m odulo p = 17: a(x ) = 2x 2 + 10x + 13 Portanto: s = a(0) = 13

IC-Unicamp

Esquema de Identica c ao de Schnorr

Esquema interativo, onde um usu ario (Beto) aceita a prova de identidade de outro usu ario (Alice) Par ametros p ublicos: p , q , , t
p : n umero primo |p |2 1024 bits q : n umero primo tal que q |(p 1) e |q |2 160 bits q gerador de Z p e = 1 (mod p) t : par ametro de seguran ca: t < q

Chave privada: um n umero aleat orio a, 0 a q 1 Chave P ublica: v = a mod p. (= qa mod p)

IC-Unicamp

Esquema de Identica c ao de Schnorr

1. Alice escolhe um n umero aleat orio k , onde 0 < k < q 1, e calcula = k mod p. Envia para Beto: , v e Certicado Digital (CD-Alice). 2. Beto verica a chave p ublica de Alice, v . Beto escolhe um desao (aleat orio) r , 1 r < 2t e o envia para Alice. 3. Alice calcula y = k + ar mod q e envia y para Beto. 4. Beto verica que y v r (mod p). Se verdadeira, ent ao Beto aceita a prova de identidade de Alice. Sen ao, rejeita. Processo de verica c ao: y v r k +ar v r k +ar v ar k (mod p).

IC-Unicamp

Emparelhamentos Bilineares
Deni c ao Sejam G1 grupo aditivo, G2 um grupo multiplicativo, ambos de ordem prima n. Seja um gerador de G1 . Um emparelhamento bilinear e um mapeamento e : G1 G1 G2 , tal que:
1

(bilinearidade) Para todos , , G1 , e ( + , ) = e (, ) e (, ) e e (, + ) = e (, ) e (, ); (n ao-degenera c ao) e (, ) = 1; (computabilidade) e e ecientemente comput avel.

2 3

Conseq u encia muito util: e (a, b ) = e (, )ab , para todos a, b , inteiros. Emparelhamentos bem conhecidos: Tate e Weil.
IC-Unicamp

(1)

Emparelhamentos - exemplo de uso

Alice, Beto e Carlos (C ) querem estabelecer uma chave comum k . Com Die-Hellman cl assico, duas rodadas s ao necess arias: 1. A 2. A B : rA , B B : rC rA , B C : rB e C C : rA rB e C A : rC . A : rB rC .

Ap os essas rodadas, os tr es calculam k = rA rB rC . poss E vel estabelecer a chave k com apenas uma rodada de mensagens? Sim, mas com emparelhamentos bilineares,

IC-Unicamp

Pr e-distribui c ao de chaves tripartite (Joux)


Contexto inicial: A, B , C usam um emparelhamento e Resultado: Chave de sess ao k compartilhada por A, B e C . 1. A: sorteia(rA ), inteiro em [0, n 1]; xA rA ; {B , C }: (A, xA ); sorteia(rB ), inteiro em [0, n 1]; xB rB ; {A, C }: (B , xB ); sorteia(rC ), inteiro em [0, n 1]; xC rC ; {A, B }: (C , xC ); ke (xB , xC )rA ; ke (xA , xC )rB ; ke (xA , xB )rC .
IC-Unicamp

B:

C:

2.

A: B: C:

Assinaturas curtas com emparelhamentos (BLS)

Entrada: Mensagem m, uma cadeia qualquer de bits. Sa da: Assinatura s , um elemento de G1 . Gera c~ ao de chaves: Chave privada e d , inteiro aleat orio em [1, n 1]; Chave p ublica e a = d , elemento de G1 . Assinatura: m H (m) G1 ; s d m ; elemento de G1 . Verifica c~ ao: m H (m ); se e (, s ) = e (a, m ), ent~ ao aceita s , sen~ ao rejeita.

IC-Unicamp

Вам также может понравиться