riptografie şi Securitate - Prelegerea 21.2 - Sistemul de criptare ElGamal Adela Georgescu, Ruxandra F. Olimid Facultatea de Matematică şi Informatică Universitatea din Bucureşti
Cuprins 1. Scurt istoric 2. Sistemul de criptare ElGamal 3. Securitate Criptografie şi Securitate 2/19,
Sistemul de criptare ElGamal 1976 - Diffie şi Hellman definesc conceptul de criptografie asimetrică; Criptografie şi Securitate 3/19,
Sistemul de criptare ElGamal 1976 - Diffie şi Hellman definesc conceptul de criptografie asimetrică; 1977 - R.Rivest, A.Shamir şi Leonard Adleman introduc sistemul RSA; Criptografie şi Securitate 3/19,
Sistemul de criptare ElGamal 1976 - Diffie şi Hellman definesc conceptul de criptografie asimetrică; 1977 - R.Rivest, A.Shamir şi Leonard Adleman introduc sistemul RSA; 1985 - T.ElGamal propune un nou sistem de criptare. Criptografie şi Securitate 3/19,
Sistemul de criptare ElGamal Se bazează pe DLP... Criptografie şi Securitate 4/19,
Sistemul de criptare ElGamal Se bazează pe DLP...... sau mai exact pe dificultatea problemei DDH... Criptografie şi Securitate 4/19,
Sistemul de criptare ElGamal Se bazează pe DLP...... sau mai exact pe dificultatea problemei DDH...... şi pe următoarea observaţie simplă: Criptografie şi Securitate 4/19,
Sistemul de criptare ElGamal Se bazează pe DLP...... sau mai exact pe dificultatea problemei DDH...... şi pe următoarea observaţie simplă: Observaţie Fie G un grup finit şi m R G. Dacă g R G, atunci g = m g rămâne aleator în G: Pr[m g = g ] = 1/ G unde probabilitatea este dată de alegerea aleatoare a lui g. Criptografie şi Securitate 4/19,
Sistemul de criptare ElGamal Dacă emitătorul şi receptorul folosesc g drept cheie secretă, atunci un mesaj m G se criptează ca: g = m g Criptografie şi Securitate 5/19,
Sistemul de criptare ElGamal Dacă emitătorul şi receptorul folosesc g drept cheie secretă, atunci un mesaj m G se criptează ca: Receptorul decriptează: g = m g m = g g 1 Criptografie şi Securitate 5/19,
Sistemul de criptare ElGamal Dacă emitătorul şi receptorul folosesc g drept cheie secretă, atunci un mesaj m G se criptează ca: Receptorul decriptează: g = m g m = g g 1 Abordarea este asemănătoare cu OTP, unde se folosea grupul secvenţelor de lungime fixată împreună cu operaţia XOR; Criptografie şi Securitate 5/19,
Sistemul de criptare ElGamal Dacă emitătorul şi receptorul folosesc g drept cheie secretă, atunci un mesaj m G se criptează ca: Receptorul decriptează: g = m g m = g g 1 Abordarea este asemănătoare cu OTP, unde se folosea grupul secvenţelor de lungime fixată împreună cu operaţia XOR; O astfel de construcţie este deci perfect sigură (dacă g este total aleator!). Criptografie şi Securitate 5/19,
Sistemul de criptare ElGamal În criptografia cu cheie publică, se foloseşte g pseudoaleator, deci se pierde securitatea perfectă; Criptografie şi Securitate 6/19,
Sistemul de criptare ElGamal În criptografia cu cheie publică, se foloseşte g pseudoaleator, deci se pierde securitatea perfectă; Ideea de bază este alegerea lui g astfel încât la recepţie să poată fi calculat pe baza cheii secrete... Criptografie şi Securitate 6/19,
Sistemul de criptare ElGamal În criptografia cu cheie publică, se foloseşte g pseudoaleator, deci se pierde securitatea perfectă; Ideea de bază este alegerea lui g astfel încât la recepţie să poată fi calculat pe baza cheii secrete...... dar g să pară aleator pentru un adversar; Criptografie şi Securitate 6/19,
Sistemul de criptare ElGamal În criptografia cu cheie publică, se foloseşte g pseudoaleator, deci se pierde securitatea perfectă; Ideea de bază este alegerea lui g astfel încât la recepţie să poată fi calculat pe baza cheii secrete...... dar g să pară aleator pentru un adversar; Pentru aceasta se foloseşte prezumţia DDH, construcţia fiind imediată din schimbul de chei Diffie-Hellman. Criptografie şi Securitate 6/19,
Sistemul de criptare ElGamal Definim sistemul de criptare ElGamal pe baza ideii prezentate anterior; 1. Se generează (G, q, g), se alege x R Z q şi se calculează h = g x ; Cheia publică este: (G, q, g, h); Cheia privată este (G, q, g, x); 2. Enc: dată o cheie publică (G, q, g, h) şi un mesaj m G, alege y R Z q şi întoarce c = (c 1, c 2 ) = (g y, m h y ); 3. Dec: dată o cheie secretă (G, q, g, x) şi un mesaj criptat c = (c 1, c 2 ), întoarce m = c 2 c x 1. Criptografie şi Securitate 7/19,
Securitate - Problema 1 Problema 1: Determinismul Întrebare: Este sistemul ElGamal determinist? Criptografie şi Securitate 8/19,
Securitate - Problema 1 Problema 1: Determinismul Întrebare: Este sistemul ElGamal determinist? Răspuns: NU! Sistemul este nedeterminist, datorită alegerii aleatoare a lui y la fiecare criptare. Criptografie şi Securitate 8/19,
Securitate - Problema 1 Problema 1: Determinismul Întrebare: Este sistemul ElGamal determinist? Răspuns: NU! Sistemul este nedeterminist, datorită alegerii aleatoare a lui y la fiecare criptare. Un acelaşi mesaj m se poate cripta diferit, pentru y y : c = (c 1, c 2 ) = (g y, m h y ) c = (c 1, c 2) = (g y, m h y ) Criptografie şi Securitate 8/19,
Securitate - Problema 1 Problema 1: Determinismul Întrebare: Este sistemul ElGamal determinist? Răspuns: NU! Sistemul este nedeterminist, datorită alegerii aleatoare a lui y la fiecare criptare. Un acelaşi mesaj m se poate cripta diferit, pentru y y : c = (c 1, c 2 ) = (g y, m h y ) c = (c 1, c 2) = (g y, m h y ) În caz contrar, sistemul NU ar putea fi CPA-sigur. Criptografie şi Securitate 8/19,
Securitate - Problema 2 Problema 2: Dificultatea DLP Întrebare: Rămâne ElGamal sigur dacă problema DLP este simplă? Criptografie şi Securitate 9/19,
Securitate - Problema 2 Problema 2: Dificultatea DLP Întrebare: Rămâne ElGamal sigur dacă problema DLP este simplă? Răspuns: NU! Se determină x a.î. h = g x, apoi se decriptează orice mesaj pentru că se cunoaşte cheia secretă. Criptografie şi Securitate 9/19,
Securitate - Problema 3 Problema 3: Proprietatea de homomorfism Fie m 1, m 2 2 texte clare şi c 1 = (c 11, c 12 ), c 2 = (c 21, c 22 ) textele criptate corespunzătoare; Criptografie şi Securitate 10/19,
Securitate - Problema 3 Problema 3: Proprietatea de homomorfism Fie m 1, m 2 2 texte clare şi c 1 = (c 11, c 12 ), c 2 = (c 21, c 22 ) textele criptate corespunzătoare; Atunci: c 1 c 2 = (c 11 c 21, c 12 c 22 ) = (g y1 g y 2, m 1 h y1 m 2 h y 2 ) Criptografie şi Securitate 10/19,
Securitate - Problema 3 Problema 3: Proprietatea de homomorfism Fie m 1, m 2 2 texte clare şi c 1 = (c 11, c 12 ), c 2 = (c 21, c 22 ) textele criptate corespunzătoare; Atunci: c 1 c 2 = (c 11 c 21, c 12 c 22 ) = (g y1 g y 2, m 1 h y1 m 2 h y 2 ) Întrebare: Dacă un adversar cunoaşte c 1 şi c 2 criptările lui m 1, respectiv m 2, ce poate spune despre c 1 c 2? Criptografie şi Securitate 10/19,
Securitate - Problema 3 Problema 3: Proprietatea de homomorfism Fie m 1, m 2 2 texte clare şi c 1 = (c 11, c 12 ), c 2 = (c 21, c 22 ) textele criptate corespunzătoare; Atunci: c 1 c 2 = (c 11 c 21, c 12 c 22 ) = (g y1 g y 2, m 1 h y1 m 2 h y 2 ) Întrebare: Dacă un adversar cunoaşte c 1 şi c 2 criptările lui m 1, respectiv m 2, ce poate spune despre c 1 c 2? Răspuns: c 1 c 2 este criptarea lui m 1 m 2 folosind y = y 1 + y 2 : c 1 c 2 = (g y 1+y 2, m 1 m 2 h y 1+y 2 ) Criptografie şi Securitate 10/19,
Securitate - Problema 3 Problema 3: Proprietatea de homomorfism Fie m 1, m 2 2 texte clare şi c 1 = (c 11, c 12 ), c 2 = (c 21, c 22 ) textele criptate corespunzătoare; Atunci: c 1 c 2 = (c 11 c 21, c 12 c 22 ) = (g y1 g y 2, m 1 h y1 m 2 h y 2 ) Întrebare: Dacă un adversar cunoaşte c 1 şi c 2 criptările lui m 1, respectiv m 2, ce poate spune despre c 1 c 2? Răspuns: c 1 c 2 este criptarea lui m 1 m 2 folosind y = y 1 + y 2 : c 1 c 2 = (g y 1+y 2, m 1 m 2 h y 1+y 2 ) Un sistem de criptare care satisface Dec s k(c 1 c 2 ) = Dec sk (c 1 ) Dec sk (c 2 ) se numeşte sistem de criptare homomorfic. (homomorfismul este deseori o proprietate utilă în criptografie) Criptografie şi Securitate 10/19,
Securitate - Problema 4 Problema 4: Utilizarea multiplă a parametrilor publici Este comun în practică pentru un administrator să fixeze parametrii publici (G, q, g), apoi fiecare utilizator să îşi genereze doar cheia secretă x şi să publice h = g x ; Criptografie şi Securitate 11/19,
Securitate - Problema 4 Problema 4: Utilizarea multiplă a parametrilor publici Este comun în practică pentru un administrator să fixeze parametrii publici (G, q, g), apoi fiecare utilizator să îşi genereze doar cheia secretă x şi să publice h = g x ; Întrebare: Este corect să se utilizeze de mai multe ori aceiaşi parametrii publici (G, q, g)? Criptografie şi Securitate 11/19,
Securitate - Problema 4 Problema 4: Utilizarea multiplă a parametrilor publici Este comun în practică pentru un administrator să fixeze parametrii publici (G, q, g), apoi fiecare utilizator să îşi genereze doar cheia secretă x şi să publice h = g x ; Întrebare: Este corect să se utilizeze de mai multe ori aceiaşi parametrii publici (G, q, g)? Răspuns: Se consideră că DA. Cunoaşterea parametrilor publici pare să nu conducă la rezolvarea DDH. Criptografie şi Securitate 11/19,
Securitate - Problema 4 Problema 4: Utilizarea multiplă a parametrilor publici Este comun în practică pentru un administrator să fixeze parametrii publici (G, q, g), apoi fiecare utilizator să îşi genereze doar cheia secretă x şi să publice h = g x ; Întrebare: Este corect să se utilizeze de mai multe ori aceiaşi parametrii publici (G, q, g)? Răspuns: Se consideră că DA. Cunoaşterea parametrilor publici pare să nu conducă la rezolvarea DDH. Atenţie! Acest lucru nu se întâmpla şi la RSA, unde modulul NU trebuie utilizat de mai multe ori. Criptografie şi Securitate 11/19,
Securitate - teoremă Teoremă Dacă problema decizională Diffie-Hellman (DDH) este dificilă în grupul G, atunci schema de criptare ElGamal este CPA-sigură. Criptografie şi Securitate 12/19,
Securitate - teoremă Teoremă Dacă problema decizională Diffie-Hellman (DDH) este dificilă în grupul G, atunci schema de criptare ElGamal este CPA-sigură. Notăm cu Π schema de criptare ElGamal. E suficient să arătăm că schema este sigură la interceptare simplă; Criptografie şi Securitate 12/19,
Securitate - teoremă Teoremă Dacă problema decizională Diffie-Hellman (DDH) este dificilă în grupul G, atunci schema de criptare ElGamal este CPA-sigură. Notăm cu Π schema de criptare ElGamal. E suficient să arătăm că schema este sigură la interceptare simplă; Fie A un adversar PPT; notăm cu ɛ(n) = Pr[PubKA,Π eav (n) = 1] probabilitatea ca A să câstige experimentul de mai jos folosit pentru a defini securitatea la interceptare simplă. Criptografie şi Securitate 12/19,
Demonstraţie Criptografie şi Securitate 13/19,
Demonstraţie Considerăm schema modificată Π care diferă de schema Π prin faptul că algoritmul de criptare alege aleator y, z Z q şi întoarce textul criptat (g y, g z m) Criptografie şi Securitate 13/19,
Demonstraţie A doua componentă a textului criptat din Π este un element uniform distribuit din G şi independent de m; Criptografie şi Securitate 14/19,
Demonstraţie A doua componentă a textului criptat din Π este un element uniform distribuit din G şi independent de m; Prima componentă este şi ea independentă de m; rezultă că Pr[PubK eav A, Π (n) = 1] = 1 2 Criptografie şi Securitate 14/19,
Demonstraţie A doua componentă a textului criptat din Π este un element uniform distribuit din G şi independent de m; Prima componentă este şi ea independentă de m; rezultă că Pr[PubK eav A, Π (n) = 1] = 1 2 Deşi Π nu e o schemă de criptare (nu se poate decripta), experimentul PubK eav (n) este bine-definit pentru că foloseşte A, Π doar algoritmul de criptare; Criptografie şi Securitate 14/19,
Demonstraţie A doua componentă a textului criptat din Π este un element uniform distribuit din G şi independent de m; Prima componentă este şi ea independentă de m; rezultă că Pr[PubK eav A, Π (n) = 1] = 1 2 Deşi Π nu e o schemă de criptare (nu se poate decripta), experimentul PubK eav (n) este bine-definit pentru că foloseşte A, Π doar algoritmul de criptare; Aratăm că A poate fi folosit de un algoritm D ca o subrutină pentru a rezolva problema DDH cu probabilitate ɛ(n); Criptografie şi Securitate 14/19,
Demonstraţie Algoritmul D primeşte la intrare tuplul (G, q, g, g 1, g 2, g 3 ), unde g 1 = g x, g 2 = g y şi g 3 = g xy sau g 3 = g z pentru x, y, z aleatoare, după care: Criptografie şi Securitate 15/19,
Demonstraţie Algoritmul D primeşte la intrare tuplul (G, q, g, g 1, g 2, g 3 ), unde g 1 = g x, g 2 = g y şi g 3 = g xy sau g 3 = g z pentru x, y, z aleatoare, după care: 1. Alege pk = (G, q, g, g 1 ) şi execută A(pk) şi obţine două mesaje m 0 şi m 1 ; Criptografie şi Securitate 15/19,
Demonstraţie Algoritmul D primeşte la intrare tuplul (G, q, g, g 1, g 2, g 3 ), unde g 1 = g x, g 2 = g y şi g 3 = g xy sau g 3 = g z pentru x, y, z aleatoare, după care: 1. Alege pk = (G, q, g, g 1 ) şi execută A(pk) şi obţine două mesaje m 0 şi m 1 ; 2. Alege un bit aleator b şi notează c 1 = g 2 şi c 2 = g 3 m b ; Criptografie şi Securitate 15/19,
Demonstraţie Algoritmul D primeşte la intrare tuplul (G, q, g, g 1, g 2, g 3 ), unde g 1 = g x, g 2 = g y şi g 3 = g xy sau g 3 = g z pentru x, y, z aleatoare, după care: 1. Alege pk = (G, q, g, g 1 ) şi execută A(pk) şi obţine două mesaje m 0 şi m 1 ; 2. Alege un bit aleator b şi notează c 1 = g 2 şi c 2 = g 3 m b ; 3. Îi dă textul criptat (c 1, c 2 ) lui A şi obţine de la el un bit b. Dacă b = b, D întoarce 1, altfel întoarce 0. Criptografie şi Securitate 15/19,
Demonstraţie Algoritmul D primeşte la intrare tuplul (G, q, g, g 1, g 2, g 3 ), unde g 1 = g x, g 2 = g y şi g 3 = g xy sau g 3 = g z pentru x, y, z aleatoare, după care: 1. Alege pk = (G, q, g, g 1 ) şi execută A(pk) şi obţine două mesaje m 0 şi m 1 ; 2. Alege un bit aleator b şi notează c 1 = g 2 şi c 2 = g 3 m b ; 3. Îi dă textul criptat (c 1, c 2 ) lui A şi obţine de la el un bit b. Dacă b = b, D întoarce 1, altfel întoarce 0. În continuare, analizăm comportamentul lui D considerând două cazuri: Criptografie şi Securitate 15/19,
Demonstraţie Cazul 1: Să presupunem că tuplul pe care D îl primeşte la intrare este generat alegând aleator x, y, z Z q şi calculând g 1 = g x, g 2 = g y şi g 3 = g z. Criptografie şi Securitate 16/19,
Demonstraţie Cazul 1: Să presupunem că tuplul pe care D îl primeşte la intrare este generat alegând aleator x, y, z Z q şi calculând g 1 = g x, g 2 = g y şi g 3 = g z. Atunci D execută A cu cheia publică pk = (G, q, g, g x ) şi textul criptat construit (c 1, c 2 ) = (g y, g z m b ); Criptografie şi Securitate 16/19,
Demonstraţie Cazul 1: Să presupunem că tuplul pe care D îl primeşte la intrare este generat alegând aleator x, y, z Z q şi calculând g 1 = g x, g 2 = g y şi g 3 = g z. Atunci D execută A cu cheia publică pk = (G, q, g, g x ) şi textul criptat construit (c 1, c 2 ) = (g y, g z m b ); În acest caz, A nu poate distinge între cele două situaţii: atunci când este executat ca o subrutină a lui D interacţionând cu el sau atunci când efectuează experimentul PubK eav A, Π (n) Criptografie şi Securitate 16/19,
Demonstraţie Cazul 1: Să presupunem că tuplul pe care D îl primeşte la intrare este generat alegând aleator x, y, z Z q şi calculând g 1 = g x, g 2 = g y şi g 3 = g z. Atunci D execută A cu cheia publică pk = (G, q, g, g x ) şi textul criptat construit (c 1, c 2 ) = (g y, g z m b ); În acest caz, A nu poate distinge între cele două situaţii: atunci când este executat ca o subrutină a lui D interacţionând cu el sau atunci când efectuează experimentul PubK eav A, Π (n) Cum D întoarce 1 exact atunci când output-ul b al lui A este egal cu b, rezultă că: Criptografie şi Securitate 16/19,
Demonstraţie Pr[D(G, q, g, g x, g y, g z ) = 1] = Pr[PubK eav A, Π (n) = 1] = 1 2 Criptografie şi Securitate 17/19,
Demonstraţie Pr[D(G, q, g, g x, g y, g z ) = 1] = Pr[PubK eav A, Π (n) = 1] = 1 2 Cazul 2: Să presupunem că tuplul pe care D îl primeşte la intrare este generat alegând aleator x, y Z q şi calculând g 1 = g x, g 2 = g y şi g 3 = g xy. Criptografie şi Securitate 17/19,
Demonstraţie Pr[D(G, q, g, g x, g y, g z ) = 1] = Pr[PubK eav A, Π (n) = 1] = 1 2 Cazul 2: Să presupunem că tuplul pe care D îl primeşte la intrare este generat alegând aleator x, y Z q şi calculând g 1 = g x, g 2 = g y şi g 3 = g xy. Atunci D execută A cu cheia publică pk = (G, q, g, g x ) şi textul criptat construit (c 1, c 2 ) = (g y, g xy m b ) = (g y, (g x ) y m b ) Criptografie şi Securitate 17/19,
Demonstraţie Pr[D(G, q, g, g x, g y, g z ) = 1] = Pr[PubK eav A, Π (n) = 1] = 1 2 Cazul 2: Să presupunem că tuplul pe care D îl primeşte la intrare este generat alegând aleator x, y Z q şi calculând g 1 = g x, g 2 = g y şi g 3 = g xy. Atunci D execută A cu cheia publică pk = (G, q, g, g x ) şi textul criptat construit (c 1, c 2 ) = (g y, g xy m b ) = (g y, (g x ) y m b ) În acest caz, A nu poate distinge între următoarele două situaţii: atunci când este executat ca o subrutină a lui D sau atunci când efectuează experimentul PubK eav A,Π (n) Criptografie şi Securitate 17/19,
Demonstraţie Cum D întoarce 1 exact atunci când output-ul b al lui A este egal cu b, rezultă că: Pr[D(G, q, g, g x, g y, g xy ) = 1] = Pr[PubKA,Π eav (n) = 1] = ɛ(n) Criptografie şi Securitate 18/19,
Demonstraţie Cum D întoarce 1 exact atunci când output-ul b al lui A este egal cu b, rezultă că: Pr[D(G, q, g, g x, g y, g xy ) = 1] = Pr[PubKA,Π eav (n) = 1] = ɛ(n) Dar cum problema DDH este dificilă, rezultă că există o funcţie neglijabilă negl a.î. negl(n) Pr[D(G, q, g, g x, g y, g z ) = 1] Pr[D(G, q, g, g x, g y, g xy ) = 1] = 1 2 ɛ(n) Criptografie şi Securitate 18/19,
Demonstraţie Cum D întoarce 1 exact atunci când output-ul b al lui A este egal cu b, rezultă că: Pr[D(G, q, g, g x, g y, g xy ) = 1] = Pr[PubKA,Π eav (n) = 1] = ɛ(n) Dar cum problema DDH este dificilă, rezultă că există o funcţie neglijabilă negl a.î. negl(n) Pr[D(G, q, g, g x, g y, g z ) = 1] Pr[D(G, q, g, g x, g y, g xy ) = 1] = 1 2 ɛ(n) Adică ɛ(n) 1 2 + negl(n). Criptografie şi Securitate 18/19,
Important de reţinut! Sistemul de criptare ElGamal Proprietatea de homomorfism Criptografie şi Securitate 19/19,