1 / 26

RSA e questioni relative

RSA e questioni relative. Rossella Ascione. Il crittosistema RSA. Introduzione al crittosistema RSA Firme digitali e RSA Attacchi a RSA. Il crittosistema RSA.

eudora
Télécharger la présentation

RSA e questioni relative

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. RSA e questioni relative Rossella Ascione

  2. Il crittosistema RSA • Introduzione al crittosistema RSA • Firme digitali e RSA • Attacchi a RSA

  3. Il crittosistema RSA realizza un’intuizione rivoluzionaria di Diffie, Hellmann e Merkle che nel 1976 tentarono di inventare una tecnica di cifratura che non fosse a chiave simmetrica 1978 :Ron Rivest, Adi Shamir Leonard Adleman Crittosistema a Chiave Pubblica

  4. crittosistema a chiave pubblica Def: Una biezione f:AB viene detta funzione unidirezionale se il calcolo di aєA è realizzabile con una complessità polinomiale per tutti gli a єA , mentre il calcolo di f-1(b) non lo è per quasi tutti i bєB ciascun utente sceglie una funzione crittografica che dipende da alcuni parametri, ma rende noti solo quelli che permettono di codificare i messaggi a lui diretti, mantenendo segreti quelli necessari alla decodifica l’inversione della funzione di cifratura fk e computazionalmente difficile per tutti, mittente compreso, ma non per il destinatario che possiede l’informazione necessaria (chiave di decifratura) per il calcolo efficiente di fk−1 .

  5. analogia della ”scatola a due lucchetti” Supponiamo che A desideri mandare un messaggio segreto a B. Allora: 1) A chiude il messaggio in una scatola con un lucchetto LA, di cui solo A ha la chiave, e invia la scatola a B. 2) Ricevuta la scatola, l’utente B aggiunge un lucchetto LB, di cui è il solo a possedere la chiave, e rinvia il tutto ad A. 3) Ricevuta la scatola chiusa con i due lucchetti LA e LB, l’utente A libera la scatola dal proprio lucchetto LA e la rinvia a B. 4) Ricevuta la scatola, l’utente B libera la scatola dal proprio lucchetto LB e legge il messaggio di A.

  6. Dalla precedente analogia della ”scatola con lucchetti”… Diffie, Hellmann e Merkle osservarono ”semplicemente” che un lucchetto si può chiudere senza usare alcuna chiave(!): • 1) l’utente A progetta e costruisce un lucchetto e una chiave unica per aprirlo • 2) A rende disponibili al pubblico copie del lucchetto, ma conserva la chiave; • 3) un qualunque altro utente B che desidera potrà procurarsi una copia di tale lucchetto in un punto di distribuzione; • 4) se B desidera inviare un messaggio ad A, allora chiude tale messaggio in una scatola chiusa con il lucchetto di A e la spedisce ad A.

  7. Idea base di RSA • A sceglie due primi p, q distinti e sufficientemente grandi • Calcola n= pq • Calcola φ(n)=(p-1)(q-1)=n-p-q+1 • Sceglie un numero casuale e di N coprimo con φ(n) • Calcola d di Z*n l’inverso di e modulo φ(n) • Rende nota la coppia (n, e) come sua chiave pubblica • Tiene segreti la coppia (φ(n), d) come chiave privata

  8. Se B volesse mandare un messaggio ad A… Se un utente B desidera mandare un messaggio segreto ad A deve calcolare l’equivalente numerico x di tale messaggio modulo n e utilizzare la funzione crittografica di A che può esere calcolata da tutti gli utenti del sistema: Ricevuto il messaggio l’utente A utilizza la funzione di decifratura solo a lui nota: La sicurezza del sistema dipende dalla difficoltà di scomporre n nei suoi fattori primi Cioè eleva il messaggio ricevuto a d modulo n.. Infatti poichè Si ottiene Cioè eleva x ad e modulo n e lo invia ad A

  9. È possibile svelare φ(n)? Prop:Sia n=pq con p e q primi. Allora • Noti p, q e n, il calcolo di φ(n) ha complessità computazonale O(logn) • Noti n e φ(n) il calcolo di p e q ha complessita computazionale O(log3n) Dim: Se n è pari allora p=2 e q=n/2 e φ(n)=n/2-1 Se n è dispari φ(n)=(p-1)(q-1)=n+1-(p+q) Per mantenere un corretto funzionamento del crittosistema, ogni utente deve tenere segreto, oltre ai parametri p, q e d che ha scelto, anche φ(n) P+q=n+1-φ(n) . Quindi di p e q conosciamo somma e prodotto quindi p e q sono soluzioni dell’eq:X2 –(p+q)x+n=0 Per ricavare p e q abbiamo quindi bisogno dell’estrazione della radice quadrata intera che ha complessita computazionale pari a O(log3n)

  10. Se conosco n, e e d La conoscenza di n, e e d consente di fattorizzare comunque efficientemente n mediante un determinato algoritmo probabilistico che basato sulla scelta casuale di un a Concludendo ogni utente deve Assolutamente tenere Segreto d Si dimostra che iterando u volte la scelta casuale di a si ottiene un algoritmo di fattorizzazione che termina con successo con probabilità maggiore o uguale die complessità computazionale

  11. (n,x) potrebbe fornire un fattore non banale di n consentendo di violare completamente il crittosistema (n,x)=n Estensione al caso (x,n)>1 Teorema: Sia nєN prodotto di primi distinti. Se m≡1 modφ(n) allora am ≡a mod n per ogni a єZ Si dimostra però che la probabilità di trovare un tale x risulta molto bassa e che la complessità computazionale di tale attacco è maggiore di quello degli algoritmi di fattorizzazione di n Se (n, x)≠1 In particolare si può osservare che un utente B potrebbe determinare i fattori di n generando casualmente un numero sufficientemente grande di elementi x e verificando di volta in volta se (n, x) ≠1

  12. Funzione di Eulero Funzione di Carmichael Una versione leggermente diversa di RSA… • A sceglie (se ci riesce) due primi p, q distinti e sufficientemente grandi) • Calcola n= pq • Calcola φ(n)=(p-1)(q-1)=n-p-q+1 • Sceglie un numero casuale e di N coprimo con φ(n) • Calcola d di Z*n l’inverso di e modulo φ(n) • Rende nota la coppia (n, e) come sua chiave pubblica • Tiene segreti p, q e d cioè la coppia (φ(n), d) come chiave privata Vantaggio di tale metodo: L’operazione di decifratura risulta essere più veloce che nel caso standard • Calcola λ(n)=φ(n)/(p-1,q-1) • Sceglie un numero casuale e di N coprimo con λ(n) • Calcola d di Z*n l’inverso di e modulo λ(n)

  13. Il sistema appena presentato si è rivelato essere adatto a soddisfare tutti i requisiti minimi di base (riservatezza, integrità, autenticità, non-ripudiabilità) richiesti ad un buon sistema crittografico dal punto di vista pratico. Ciò grazie alla disponibilità di algoritmi ragionevolmente efficienti, affidabili e rapidi per: • generare le chiavi, private e non, degli utenti • per testare i parametri soddisfacenti particolari proprietà • per calcolare i valori della funzione crittografica • per testare il carattere unidirezionale della funzione crittografica

  14. Firma digitale e RSA Problema di certificare la nostra identità con una firma digitale CRITTOGRAFIAA CHIAVE PUBBLICA

  15. Schema generale di firma digitale • A, B utenti di un sistema a chiave pubblica • fAefB funzioni di cifratura (pubbliche) • fA-1 efB-1 funzioni di decifratura (segrete) • A desidera mandare un messaggio x a B • A manda fB(x) • Per certificare la propria identità invia la quantità fB(fA-1(sA)) con • fA-1(sA) firma digitale di A e sA un nome convenzionale di A in cui si include un numero progressivo , tempo in cui è stato spedito il messaggio, numero IP della machina speditrice • B decifra il messaggio x… • Utilizzando fB-1 e ottiene x • Per controllare che il mittente sia A applica alla funzione fB(fA-1(sA)) la funzione a lui nota fAfB-1 e ottiene sA Il sistema funziona bene poiché solo A può aver firmato il messaggio poiché solo A conosce fA-1

  16. Introduzione di un ENTE CERTIFICATORE Rischi di tale sistema • Potrebbe esistere un utente intruso C che renda pubblica una chiave attribuendola ad A, divenendo automaticamente capace di spacciarsi per A

  17. Far dipendere la Firma digitale Dal messaggio stesso Rischi di tale sistema • Potrebbe capitare che un intruso riesca ad identificare fA-1(sA) utilizzando un numero opportuno di messaggi intercettati La firma digitale diviene fA-1(h(M))

  18. h(M) IMPRONTA DI M è una sequenza di bit di lunghezza fissata detta IMPRONTA DI M che viene ottenuta da M mediante una opportuna funzione di hash h Sono funzioni che hanno la caratteristica di non consentire di risalire a M conoscendo solo h(M),e di avere una buona probabilità di non generare collisioni Tale funzione viene messa a disposizione degli utenti dall’ente certificatore, ne viene utilizzata una sola per tutti gli utenti del crittosistema

  19. Come funziona… Per accertarsi dell’assenza di manomissioni B dovrà • Applicare a fA-1(h(M)) la fA e otterrà h(M) • Ricalcolare l’impronta di M h(M) per mezzo della funzione di hash

  20. Firma digitale: certificazione dell’identità con RSA Problema: gli spazi dei messaggi cifrati sono a priori diversi poiché A lavora su ZnA e B lavora su ZnB in generale diversi. • A sceglie una firma digitale sAє ZnA che rende pubblica • Per convincere B della propria identità , in calce al proprio messaggio A invia una forma crittografica della firma, e precisamente mA=fB(fA-1(sA)) se nA<nB; mA=fA-1(fB(sA)) se nA>nB • Per assicurarsi dell’identità di A, B calcola fA(fB-1(mA)) se nA<nB; fB-1 (fA(mA)) se nA>nB

  21. Attacchi a RSA • Chosen-ciphertext: Un intruso C vuole determinare il testo in chiaro M di una codifica C inviata ad A C Sceglie un intero casuale R e chiede ad A la decodifica del messaggio C1≡ReAC mod nA In questo modo C ottiene ReAdACdA mod nA alla quale applicando R-1 si ottiene M mai applicare la propria funzione di decifratura o la propria firma digitale ad un documento casuale

  22. Se A sa che B ha il suo stesso n, allora conosce p, q, φ(n) e d di B 2. Un intruso può ricavare da due codifiche C1 e C2 ricavate mediante due chiavi pubbliche (n, e1) e (n, e2) con (e1,e2)=1, il messaggio M stesso • Si provano a codificare tutti i messaggi in chiaro fino a che non viene determinato quello la cui codifica è uguale al messaggio intercettato Attacchi elementari: • scelta dei possibili messaggi in chiaro troppo limitati Poiché (e1, e2)=1 con l’algoritmo di euclide si calcola r,sєZ tali che re1+se2=1 e poi calcolare Cr1 Cs2≡Mre1+se2=M mod n • Scelta del modulo di n fissata per tutti gli utenti ogni n non deve essere utilizzata da piu’ di un utente

  23. Messaggio cifrato = Messaggio in chiaro Punti fissi:I messaggi da trasmettere non devono essere dei punti fissi della funzione di cifratura, cioè non deve accadere f(M)≡M mod n Per non avere molti punti fissi si dimostra che e deve essere scelto in modo tale che (e-1, p-1, q-1) sia piccolo

  24. Il più piccolo k tale che: Cycling attack: Funzione di cifratura con periodo troppo corto Sia “piccolo” Teorema: Sia (n,e) una chiave pubblica RSA e MєZ*n. Sia r il più grande divisore primo di p-1 e l sia il più grande divisore primo di r-1. Allora P(k≥l) ≥(1-l/r)(1-1/l) Per diminuire la possibilità di cycling attack bisogna scegliere p e q in modo tale che sia r che l siano grandi

  25. Teorema(Wiener): Sia p<q<2p, n=pq, . Dati n ed e tali che ed≡1modφ(n),esiste un algoritmo deterministico polinomiale in logn che consente di determinare d Attacco causato da una chiave privata troppo piccola: Due metodi per non intercorrere in questo tipo di attacco 2. Usare il teorema cinese del resto per ottenere una decifratura “veloce” senza dover scegliere d piccolo • Scegliere e>n3/2 con un conseguente aumento del tempo di cifratura

  26. Teorema (Boneh, Durfee e Frankel): Sia n≡3mod4, n1/2/2<q<p<2n1/2 e sia d una chiave privata di RSA. Siano note le [log2n]/4 cifre meno significative di d. Sia inoltre e<2[log2n]/4-3. Allora esiste un algoritmo che determina completamente d con complessita polinomiale in logn Attacco a partire da una conoscenza parziale della chiave privata(e “piccolo”) I seguenti risultati affermano che è possibile ricostruire completamente d nel caso in cui e sia piccolo, a partire da una conoscenza di una frazione dei bit costituenti l’espansione binaria di d.

More Related