Alessandrini Cristian Sicurezza 2003 Introduzione Seminario Sull Algoritmo R.S.A. L algoritmo R.S.A. fa parte degli algoritmi definiti a chiave pubblica oppure asimmetrici. Fu progettato nel 1976/77 da Rivest, Shamir, Adleman (da cui l acronimo R.S.A) ed e tuttora considerato uno dei migliori sistemi di cifratura per assicurare riservatezza e autenticita sui dati digitali. Prende spunto dal progetto teorico di Diffide/Hellman che si prefiggeva di sbarazzarsi definitivamente del problema della distribuzione delle chiavi di cifratura/decifratura (punto debole dei sistemi crittografici a chiave privata o simmetrici). Tale idea si puo esemplificare con la seguente metafora: Osiride vuole comunicare con il figlio Horus senza che Seth venga a conoscenza del messaggio M in maniera trasparente (ovvero senza lasciare tracce della propria intrusione). Chiede ad Horus di fargli pervenire un forziere aperto (dotato di lucchetto) del quale solo quest ultimo possiede la chiave. A questo punto Osiride inserisce il messaggio nel forziere, lo chiude e lo rispedisce a Horus. Senza una copia della chiave qualsiasi tentativo di Seth per leggere il messaggio sara vano.
Finalmente Horus, utilizzando l unica copia della chiave che apre il forziere, riuscira a leggere il messaggio speditogli dal padre. Introduciamo ora il concetto di chiave pubblica (il forziere) e chiave privata (la chiave di Horus). chiave pubblica: nota a tutti (i mittenti), e utilizzata per cifrare il messaggio. chiave privata: nota solo ad una persona (il destinatario), e utilizzata per decifrare il messaggio cifrato. Differenze Con Algoritmi A Chiave Simmetrica Chiave Simmetrica la chiave di cifratura e essenzialmente uguale a quella di decifratura e comunque ciascuna puo essere calcolata dall altra. la chiave e nota sia al mittente che al destinatario. la chiave e tenuta segreta da entrambi. Chiave Asimmetrica la chiave di cifratura e completamente diversa dalla chiave di decifratura. la chiave di cifratura, resa disponibile dal destinatario, e nota a tutti. la chiave di decifrazione, mantenuta segreta dal destinatario, e nota solo a lui stesso. le funzioni di cifratura e decifratura sono note a tutti. Funzione One-Way F(x)=y e una funzione matematica applicata alla variabile x che restituisce come risultato y. In crittografia F sara la nostra funzione di cifratura, x il messaggio da decifrare e y il messaggio cifrato. Un requisito richiesto a questa funzione perche sia ritenuta valida per la cifratura di un messaggio e che sia bigettiva, ovvero deve essere contemporaneamente
iniettiva: per ogni elemento di X esiste un solo elemento di Y. surgettiva: per ogni elemento di Y esiste un elemento di X tale che F(x)=y. Questa proprieta e di fondamentale importanza infatti se la funzione non garantisse l univocita da X Y o da Y X due file diversi verrebbero cifrati allo stesso modo. Essa non e comunque sufficiente per l implementazione dell algoritmo, tale funzione deve anche essere one-way ovvero per qualunque x appartenente a X, si ha un solo elemento y appartenente a Y facilmente computabile; per qualunque y appartenente a Y, e impossibile calcolare x appartenente a X in maniera efficiente. Da questa considerazione l algoritmo prende l appellativo prende il nome di asimmetrico Esempio: x² facile da implementare x½ piu difficile Ovviamente questo e un esempio banale, in quanto esistono funzioni one-way molto piu complesse. Un ultima qualita richiesta alla funzione e di essere one-way con trapdoor ovvero data una qualche informazione extra (trapdoor information) diventa possibile calcolare in maniera efficiente per ogni y appartenente a Y una x appartenente a X tale che F(x)=y. Idea Di Implementazione Ogni chiave (pubblica e privata) consiste di una coppia di interi. Supponiamo che un utente B voglia spedire un messaggio ad un utente A il quale possiede una chiave pubblica (P) ed una privata (S). La situazione di partenza e dunque A conosce le sue chiavi pubblica e privata (P, S) B conosce la chiave pubblica di A (P)
1 Passo: generazione chiavi Per generare le sue chiavi A deve: 2 Passo: cifratura messaggio Ora B puo cifrare il messaggio M recuperando la chiave pubblica di A: 3 Passo: decifratura messaggio A questo punto A riceve il messaggio cifrato C e ricostruisce M Correttezza Dell Algoritmo Nel caso in cui M sia maggiore di n un eventuale messaggio M mod n genererebbe un testo cifrato uguale a quello generato da M. Per ovviare a cio si assume che il messaggio (o le varie parti che lo compongono) sia sempre minore di n.
Sicurezza Dell Algoritmo La sicurezza di R.S.A. infatti si basa in gran parte sulla difficolta della scomposizione in fattori di interi grandi. Se un attaccante fosse in grado di scomporre il modulo n di una chiave pubblica, allora potrebbe ricavare la chiave segreta utilizzando i fattori P e Q allo stesso modo nel quale sono stati utilizzati per generare la chiave pubblica. Questa operazione e tuttavia molto complessa anche per le macchine piu veloci: si stima che al giorno d oggi fattorizzare un numero di 200 cifre richieda circa 4.000.000.000 di anni di tempo macchina mentre per un numero di 500 cifre occorrerebbero 10^25 anni. In conclusione non e detto che sia impossibile invertire la funzione one-way ma tale inversione e computazionalmente molto difficile. Attacchi All algoritmo Per un crittoanalista violare R.S.A. corrisponde a calcolare (n)=(p-1)*(q-1).
Attacco Modulo Comune Supponiamo che due utenti usino un modulo comune n (ad esempio 5) ed esponenti di crittazione E1, E2 tali che il loro massimo comune divisore sia 1 (ad esempio 3 e 5). Un terzo utente recupera le loro chiavi pubbliche e spedisce ad entrambi lo stesso messaggio M (ad esempio 2). Attacco Esponente Piccolo Supponiamo che nella generazione delle chiavi venga scelto l esponente E=3, che n sia uguale a 11 che il messaggio da spedire sia M=2.
Si puo notare come C sia semplicemente diventato M^E e che quindi violare il sistema consista solamente nel calcolare la radice e-esima di C (nel nostro esempio ³ 8). Quindi bisogna essere sicuri che il messaggio M soddisfi la condizione M³>n. Legislazione L idea di Diffie/Hellmann riguardo alla crittografia a chiave pubblica diede uno scossone al mondo della sicurezza digitale statunitense, facendo traballare l N.S.A (National Security Agency). Infatti fino a quel momento, tramite intricate leggi sui brevetti, essa aveva detenuto il pieno controllo dello sviluppo delle tecniche crittografiche rendendo impossibile lo sviluppo privato. Il governo, in chiaro stile U.S.A., si avvaleva di tale diritto comparando gli strumenti di crittografia ad armi pesanti non gestibili quindi dal singolo cittadino in quanto possibili mezzi di attentato alla sicurezza nazionale. Quando nel 77 Rivest, Shamir, Adleman presentarono il loro algoritmo R.S.A. il governo cerco subito di ostacolare la sua diffusione dichiarando illegale, in quanto arma pesante, la sua esportazione. A rendere piu complicata la faccenda ci pensarono i tre sviluppatori con la decisione di brevettare il loro algoritmo per utilizzarlo a fini commerciali nella allora neonata R.S.A. Data Security Inc. (cosa sarebbe successo se qualcuno avesse deciso di brevettare le quattro operazioni?) Nonostante tutto comunque nel mondo iniziarono a comparire sistemi di crittografia ispirati da R.S.A. Nel 92 Philip Zimmermann idea e distribuisce gratuitamente un programma, P.G.P. (Pretty Good Privacy), che consente di mantenere riservata la comunicazione via e-mail altrimenti considerata sicura quanto una cartolina postale: con P.G.P. un messaggio e-mail equivale ad una lettera chiusa. Zimmerman viene citato in tribunale dagli Stati Uniti per esportazione di strumenti crittografici e dalla R.S.A. Data Security Inc. per violazione del brevetto sull algoritmo R.S.A. Nel 1996 l accusa di esportazione finisce nel nulla mentre Zimmermann e la R.S.A. Data Security Inc. troveranno un accordo ed inizieranno a lavorare insieme per lo sviluppo delle nuove versioni di P.G.P. APPENDICE Interi modulo n Sia n un intero positivo. Dati a, b due numeri interi, si dice che a e congruente b modulo n e si scrive a b (mod n) se n divide (a-b).l intero n si chiama modulo della congruenza. In altri termini si puo anche dire che a b (mod n) se esiste k appartenente Z tale che a b = kn Proprieta delle congruenze modulo n: 1) a b (mod n) se e soltanto se a e b hanno lo stesso resto nella divisione con n. 2) a a (mod n) riflessiva 3) se a b (mod n) allora b a (mod n) simmetria 4) se a b (mod n) e b c (mod n) allora a c (mod n) transitiva
Si chiama classe di equivalenza di un intero a l insieme di tutti gli interi che sono congruenti ad a mod n. Se a = qn + r con 0 r < n, allora a r (mod n) Quindi ogni intero a e congruente ad un unico intero r modulo n compreso tra 0 e n-1; questo intero si chiama residuo minimo di a mod n. Cosi a ed r appartengono alla stessa classe di equivalenza che puo essere rappresentata da r. Funzione Di Eulero La funzione di Eulero associa a un numero intero n il numero dei numeri coprimi con n nell inervallo [1;n-1]. Per esempio per n=6 la funzione vale 2 perche gli interi primi con 6 e minori di 6 sono solo 1 e 5. La funzione di Eulero di un numero n si indica di solito con (n). Si dimostra che (n) = n(1-1/n 1 )(1-1/n 2 )...(1-1/n m ) dove n 1, n 2... n m sono i fattori primi distinti di n. Se n è primo allora ovviamente (n) = n - 1 Se n è il prodotto di due numeri primi p e q, è facile verificare che (n) = (p - 1)(q - 1). Infatti (n) = pq(1-1/p)(1-1/q) e svolgendo i prodotti p(1-1/p) e q(1-1/q) si ottiene la formula data. Teorema Di Eulero Il teorema afferma che dati due numeri interi qualsiasi m e n primi tra di loro, allora è: m (n) mod n = 1 o, che è lo stesso (m (n) - 1) mod n = 0 (e cioé m (n) - 1 è divisibile per n) dove (n) è la funzione di Eulero.