RSA e questioni relative

Slides:



Advertisements
Presentazioni simili
Elementi di Crittografia MAC e FUNZIONI HASH
Advertisements

ERREsoft1 Basi matematiche del sistema RSA Pierluigi Ridolfi Università di Roma La Sapienza marzo 2000.
Torniamo al primo problema. Come fare acquisti sicuri via Internet? Come trasmettere informazioni in modo riservato?
ERREsoft1 Applicazioni Pierluigi Ridolfi Università di Roma La Sapienza 15 marzo 2000.
Realizzazione in PARI/GP
Modulo 7 – Firma elettronica
Seminario per il corso di Sistemi Operativi mod
ODE PROBLEMA DI CAUCHY IN 1-D Sia f : I x RR, I  R.
Sicurezza II Prof. Dario Catalano Errori di Implementazione.
Sicurezza II Prof. Dario Catalano
Sicurezza II Prof. Dario Catalano Strong Password Protocols.
Autenticazione dei messaggi e funzioni hash
I cifrari a chiave pubblica: Introduzione alle curve ellittiche
RSA Monica Bianchini Dipartimento di Ingegneria dellInformazione Università di Siena.
Hash Tables Indirizzamento diretto Tabelle Hash Risoluzioni di collisioni Indirizzamento aperto.
Sistemi e Tecnologie della Comunicazione
Per crittografia si intende la protezione
Sistemi di elaborazione delle informazioni
CRITTOGRAFIA La crittografia, ovvero la scienza dei messaggi segreti sicuri, nasce come raccolta di tecniche e sistemi per nascondere messaggi tra regnanti,
Politecnico di Milano Algoritmi e Architetture per la Protezione dellInformazione Multichannel Adaptive Information Systems Paolo Maistri Dipartimento.
Reti di Calcolatori Crittografia
Testo consigliato Crittografia, P. Ferragina e F. Luccio, Ed. Bollati Boringhieri, € 16.
Testo consigliato Crittografia, P. Ferragina e F. Luccio, Ed. Bollati Boringhieri, € 16.
Secure Shell Giulia Carboni
DEI - Univ. Padova (Italia) Sicurezza delle informazioni Quando vengono mandati pacchetti di informazioni sui mezzi promiscui (ad es. rete Ethernet) chiunque.
Corso di Codici Lineari Lezione su: Introduzione alla crittografia
Modelli simulativi per le Scienze Cognitive
Scritture Segrete Lezione n. 2
Modulo 7 – reti informatiche u.d. 2 (syllabus – )
Firma Digitale.
CORSO DI CRITTOGRAFIA Terzo incontro PROGETTO LAUREE SCIENTIFICHE
LA CRITTOGRAFIA QUANTISTICA
Metodo della moltiplicazione
“ Firma Digitale “ Informatica e Teleradiologia
CORSO DI CRITTOGRAFIA Quinto incontro PROGETTO LAUREE SCIENTIFICHE
Radix-Sort(A,d) // A[i] = cd...c2c1
“La firma elettronica per Pavia Digitale”
INFORMATICA MATTEO CRISTANI. INDICE CICLO DELLE LEZIONI LEZ. 1 INTRODUZIONE AL CORSO LEZ. 2 I CALCOLATORI ELETTRONICI LEZ. 3 ELEMENTI DI TEORIA DELL INFORMAZIONE.
Il processo per generare una Firma Digitale
Cenni di Crittografia Il procedimento di crittografia consiste nel rendere illeggibile un testo in chiaro mediante l’uso di un determinato algoritmo e.
Capitolo 8 La sicurezza nelle reti
Crittografia MITTENTE DESTINATARIO messaggio messaggio chiave-1
Analisi e sperimentazione di una Certification Authority
I Numeri primi Eratostene e la crittografia.
La sicurezza dei sistemi informatici. Il sistema deve soddisfare i seguenti requisiti di sicurezza (CIANA)  Confidenzialità (Riservatezza)  Integrità.
Implementazione di dizionari Problema del dizionario dinamico Scegliere una struttura dati in cui memorizzare dei record con un campo key e alcuni altri.
Rappresentazione dell’informazione nel calcolatore.

UNIVERSITÀ DEGLI STUDI DI PAVIA Anno accademico 2009/2010 Sicurezza e frodi informatiche in Internet: la Firma Digitale come garanzia di autenticità e.
Quali sono le necessità della Crittografia moderna o Crittografìa a chiave pubblica? Non deve essere richiesto nessuno scambio di chiave Decifrare deve.
Sicurezza informatica
PKI e loro implementazione Corso di Sisitemi Informativi Teledidattico A.A. 2006/07
Def : uno stimatore è una statistica T n le cui determinazioni servono a fornire delle stime del parametro ignoto  della v.c. X in cui sono state effettuate.
27 marzo 2008 Dott. Ernesto Batteta.  Le minacce nello scambio dei documenti  Crittografia  Firma digitale.
Elgamal Corso di Sicurezza – A.A. 2006/07 Angeli Fabio29/05/2007.
DES e RSA a confronto: crittografia al servizio della sicurezza.
Rappresentazione dell'informazione
1 Certificati a chiave pubblica strutture dati che legano una chiave pubblica ad alcuni attributi di una persona sono firmati elettronicamente dall’ente.
DES e RSA a confronto: crittografia al servizio della sicurezza Università degli studi di Camerino Marconi Marika.
Intervalli di confidenza
Conversione binario-ottale/esadecimale
COS’E’ L’ARCHIVIAZIONE SOSTITUTIVA
Agenda – Parte II La creazione del documento informatico e la firma digitale La classificazione del documento e il protocollo informatico La trasmissione.
Informatica Lezione 10 Psicologia dello sviluppo e dell'educazione (laurea magistrale) Anno accademico:
La firma digitale. Che cosa é la firma digitale? La firma digitale è una informazione aggiunta ad un documento informatico al fine di garantirne integrità.
Crittografia. Introduzione  La rete può essere utilizzata per diversi scopi: informazione, scambio dati, scambio messaggi, trasferimento denaro.  Nel.
Cenni di Crittografia Luigi Vetrano TechnoLabs S.p.A. L’Aquila, Aprile 2011.
Un sistema di sicurezza dei dati.  La crittografia, il cui termine indica "nascosto", è la branca della crittologia che tratta delle "scritture nascoste",
Crittografia e crittoanalisi Crittografia: tecnica che consente di rendere visibili o utilizzabili le informazioni solo alle persone a cui sono destinate.
Sicurezza dei Sistemi Informatici L.S. in Ingegneria Informatica Docente: Prof. Giuseppe Mastronardi CRITTOGRAFIA E CRITTOANALISI ATTACCHI AI SISTEMI DI.
Transcript della presentazione:

RSA e questioni relative Rossella Ascione

Il crittosistema RSA Introduzione al crittosistema RSA Firme digitali e RSA Attacchi a RSA

Il crittosistema RSA 1978 :Ron Rivest, Adi Shamir Leonard Adleman 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

crittosistema a chiave pubblica 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 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 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 .

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.

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.

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

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

È 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)

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 di e complessità computazionale

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 (n,x)=n (n,x) potrebbe fornire un fattore non banale di n consentendo di violare completamente il crittosistema 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

Una versione leggermente diversa di RSA… Funzione di Eulero Funzione di Carmichael 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)

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

Problema di certificare la nostra identità con una firma digitale Firma digitale e RSA Problema di certificare la nostra identità con una firma digitale CRITTOGRAFIA A CHIAVE PUBBLICA

Schema generale di firma digitale A, B utenti di un sistema a chiave pubblica fA e fB funzioni di cifratura (pubbliche) fA-1 e fB-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

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 Introduzione di un ENTE CERTIFICATORE

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

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

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

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

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

scelta dei possibili messaggi in chiaro troppo limitati Attacchi elementari: scelta dei possibili messaggi in chiaro troppo limitati Si provano a codificare tutti i messaggi in chiaro fino a che non viene determinato quello la cui codifica è uguale al messaggio intercettato 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 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 ogni n non deve essere utilizzata da piu’ di un utente

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 Messaggio cifrato = Messaggio in chiaro 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

Cycling attack: Funzione di cifratura con periodo troppo corto Il più piccolo k tale che: 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

Attacco causato da una chiave privata troppo piccola: 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 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

Attacco a partire da una conoscenza parziale della chiave privata(e “piccolo”) 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 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.