Crittografia a chiave pubblica - Un invito a RSA



Documenti analoghi
Crittografia. Primalità e Fattorizzazione. Corso di Laurea Specialistica. in Informatica

Introduzione alla crittografia. Il crittosistema RSA e la sua sicurezza

Introduzione alla Crittografia

Crittografia a chiave pubblica

Progetto Lauree Scientifiche - Matematica

da chi proviene un messaggio?

Introduzione alla crittografia con OpenPGP

Iniziamo con un esercizio sul massimo comun divisore: Esercizio 1. Sia d = G.C.D.(a, b), allora:

! La crittoanalisi è invece la scienza che cerca di aggirare o superare le protezioni crittografiche, accedendo alle informazioni protette

un protocollo è costituito da una serie di passi (step) e coinvolge due o più persone (parti, entità) allo scopo di svolgere un incarico

Firma Digitale. Firma Digitale. Firma digitale. Firma digitale. Firma Digitale A?? Equivalente alla firma convenzionale

Un po di teoria dei numeri

Sicurezza nelle applicazioni multimediali: lezione 4, crittografia asimmetrica. Crittografia asimmetrica (a chiave pubblica)

Seminario Sull Algoritmo R.S.A.

Scambio delle chiavi. mercoledì 7 dicembre 2011

Analisi di programmi: Crittografia

PRIMAVERA IN BICOCCA

DIARIO DEL CORSO DI ALGEBRA A.A. 2012/13 DOCENTE: ANDREA CARANTI

Numeri Primi e Applicazioni crittografiche

Capitolo 4: Ottimizzazione non lineare non vincolata parte II. E. Amaldi DEIB, Politecnico di Milano

Esercizi Capitolo 6 - Alberi binari di ricerca

LICEO STATALE ENRICO MEDI CON INDIRIZZI:

Cifratura a chiave pubblica Sicurezza nelle reti di TLC - Prof. Marco Listanti - A.A. 2008/2009

Scelte in condizione di incertezza

La Firma Digitale La sperimentazione nel Comune di Cuneo. Pier Angelo Mariani Settore Elaborazione Dati Comune di Cuneo

SUCCESSIONI NUMERICHE

USO DI CONCETTI PROBABILISTICI NEL PROGETTO E NELL ANALISI DI ALGORITMI

Introduzione al MATLAB c Parte 2

Programmazione I - Laboratorio

= 1*2^7 + 1*2^6 + 0*2^5 + 1*2^4 + 0*2^3 + 0*2^2 + 1*2^1 + 0*2^0 = 210

Sicurezza nei Sistemi Distribuiti

Sicurezza nei Sistemi Distribuiti

DIARIO DEL CORSO DI ALGEBRA A.A. 2015/16 DOCENTE: ANDREA CARANTI

EQUAZIONI DIFFERENZIALI Esercizi svolti. y = xy. y(2) = 1.

I sistemi di numerazione

una possibile funzione unidirezionale

Crittografia a chiave pubblica

Sommario. Alcuni esercizi. Stefania Ragni. Dipartimento di Economia & Management - Università di Ferrara

4.1 Modelli di calcolo analisi asintotica e ricorrenze

Quasar Sistemi S.r.l.

una possibile funzione unidirezionale

Introduzione a Visual Basic Lezione 1 Concetti base e istruzioni condizionali

Protocollo E-cash ed algoritmo RSA. Carlo Manasse Giulio Baldantoni. Corso di laurea in Informatica. May 10, 2012

Algoritmo. I dati su cui opera un'istruzione sono forniti all'algoritmo dall'esterno oppure sono il risultato di istruzioni eseguite precedentemente.

Firme digitali. Firma Digitale. Firma Digitale. Corso di Sicurezza su Reti Lezione del 17 novembre Equivalente alla firma convenzionale

Strumenti della Teoria dei Giochi per l Informatica A.A. 2009/10. Lecture 22: 1 Giugno Meccanismi Randomizzati

Alcune proprietà dei numeri primi, II

FIRMA DIGITALE Cos'è e come funziona

Cifratura Asimmetrica

TSP con eliminazione di sottocicli

Complessità Computazionale

Test d ipotesi. Statistica e biometria. D. Bertacchi. Test d ipotesi

TEORIA DEI NUMERI SUCCESSIONI

Le curve ellittiche sono un gioiello della matematica. Sono state studiate per secoli per la loro bellezza e importanza.

Prova parziale di Geometria e Topologia I - 5 mag 2008 (U1-03, 13:30 16:30) 1/8. Cognome:... Nome:... Matricola:...

Corso di Laurea in Matematica Prova di orientamento. Questionario 3

Verifica della correttezza formale del numero di partita IVA

La crittografia a chiave pubblica per giocare e imparare: il gioco del codice RSA (parte prima)

Equazioni non lineari

SISTEMI E RETI. Crittografia. Sistemi distribuiti e configurazione architetturale delle applicazioni WEB.

Esercitazione Informatica I AA Nicola Paoletti

Parte 1. Vettori di bit - AA. 2012/13 1.1

ci sono più problemi che programmi esiste un problema che non si può risolvere con un programma

Il sistema di crittografia NTRU

Lezione 8. La macchina universale

Equilibrio bayesiano perfetto. Giochi di segnalazione

RSA. Chiavi RSA. Firma Digitale. Firma Digitale. Firma Digitale. Desiderata per la Firma Digitale. Corso di Sicurezza su Reti 1

Progetto di RHS MicroAODV per Reti di Sensori A.A. 2007/2008

Anelli a fattorizzazione unica. Domini ad ideali principali. Anelli Euclidei

CONCETTO DI ANNIDAMENTO

Istituzioni di Statistica e Statistica Economica

una possibile funzione unidirezionale

Teoria dei numeri. Number Theory. Congruenze mod n. Teorema della divisione. Concetti preliminari per RSA

Robustezza crittografica della PEC

Crittografia e sicurezza delle reti. WEP: Wired Equivalent Privacy

Edited by Foxit PDF Editor Copyright (c) by Foxit Software Company, 2004 For Evaluation Only.

Number Theory. Teoria dei numeri. Teorema della divisione. Congruenze mod n

Appunti sulla Macchina di Turing. Macchina di Turing

LE SUCCESSIONI 1. COS E UNA SUCCESSIONE

SPC e distribuzione normale con Access

2 FUNZIONI REALI DI VARIABILE REALE

Programmazione dinamica

Architettura hardware

INDICE SCHEMA LOGICO PER INSERIRE ALLEGATI H/I/L...

Capitolo 8 La sicurezza nelle reti

CRITTOGRAFIA E FIRMA DIGITALE A. LANGUASCO A. PERELLI. 1. Crittografia

SOMMARIO Coda (queue): QUEUE. QUEUE : specifica QUEUE

Alcune nozioni di base di Logica Matematica

Teoria in sintesi 10. Attività di sportello 1, 24 - Attività di sportello 2, 24 - Verifica conclusiva, 25. Teoria in sintesi 26

Gestione della Firma Digitale FORTE su documento PDF

Note su quicksort per ASD (DRAFT)

Le funzioni elementari. Corsi di Laurea in Tecniche di Radiologia... A.A Analisi Matematica - Le funzioni elementari - p.

Limiti e continuità delle funzioni reali a variabile reale

Sicurezza nelle applicazioni multimediali: lezione 7, sicurezza dei protocolli. Sicurezza dei protocolli (https, pop3s, imaps, esmtp )


Aspetti Crittografici nel Cloud Computing

Intelligenza Artificiale. Lezione 14. Intelligenza Artificiale Daniele Nardi, 2003 Lezione 14 0

Sommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi.

Corso PAS Anno ESEMPIO. Per n = 3, Z 3 contiene 3 elementi:

Gennaio. SUAP On Line i pre-requsiti informatici: La firma digitale

Transcript:

Crittografia a chiave pubblica - Un invito a RSA Francesco Pappalardi 15 Novembre, 2001 0-0

Crittografia a chiave pubblica - Un invito a RSA Pescara, 29.11.2001 1 I due diversi tipi di Crittografia Chiave pubblica. RSA; Diffie Hellmann; Zainetti; NTRU. Chiave privata (o simmetrica). Lucifer; DES; AES.

Crittografia a chiave pubblica - Un invito a RSA Pescara, 29.11.2001 2 RSA 2048 = 25195908475657893494027183240048398571429282126204 032027777137836043662020707595556264018525880784406918290641249 515082189298559149176184502808489120072844992687392807287776735 971418347270261896375014971824691165077613379859095700097330459 748808428401797429100642458691817195118746121515172654632282216 869987549182422433637259085141865462043576798423387184774447920 739934236584823824281198163815010674810451660377306056201619676 256133844143603833904414952634432190114657544454178424020924616 515723350778707749817125772467962926386356373289912154831438167 899885040445364023527381951378636564391212010397122822120720357 RSA 2048 è un numero con 617 cifre decimali http://www.rsa.com/rsalabs/challenges/factoring/numbers.html/

Crittografia a chiave pubblica - Un invito a RSA Pescara, 29.11.2001 3 RSA 2048=p q, p, q 10 308 PROBLEMA: Calcolare p e q Premio: 200.000 $ ( 190.000e)!! Teorema. Se a N! p 1 < p 2 < < p k primi t.c. a = p α 1 1 pα k k Purtroppo: RSAlabs ritiene che per fattorizzare in un anno: numero computers memoria RSA 1620 1.6 10 15 120 Tb RSA 1024 342, 000, 000 170 Gb RSA 760 215,000 4Gb.

Crittografia a chiave pubblica - Un invito a RSA Pescara, 29.11.2001 4 http://www.rsa.com/rsalabs/challenges/factoring/numbers.html Challenge Number Prize ($US) Status RSA-576 $10,000 Not Factored RSA-640 $20,000 Not Factored RSA-704 $30,000 Not Factored RSA-768 $50,000 Not Factored RSA-896 $75,000 Not Factored RSA-1024 $100,000 Not Factored RSA-1536 $150,000 Not Factored RSA-2048 $200,000 Not Factored

Crittografia a chiave pubblica - Un invito a RSA Pescara, 29.11.2001 5 Storia dell Arte del Fattorizzare 1880 Landry & Le Lasseur: 2 26 + 1 = 274177 67280421310721 1919 Pierre e Eugène Carissan (Macchina per fattorizzare) 1970 Morrison & Brillhart 2 27 + 1 = 59649589127497217 5704689200685129054721 1980 Crivello quadratico (QS) (Pomerance)

Crittografia a chiave pubblica - Un invito a RSA Pescara, 29.11.2001 6 Antica Macchina per fattorizzazione di Carissan Figure 1: Conservatoire Nationale des Arts et Métiers in Paris.

Crittografia a chiave pubblica - Un invito a RSA Pescara, 29.11.2001 7 Figure 2: Tenente Eugène Carissan. 225058681 = 229 982789 3 minuti 3450315521 = 1409 2418769 2 minuti 3570537526921 = 841249 4244329 18 minuti

Crittografia a chiave pubblica - Un invito a RSA Pescara, 29.11.2001 8 Fattorizzare ai giorni nostri 1. Crivello Quadratico (QS): (8 mesi, 600 volontari, 20 paesi) D.Atkins, M. Graff, A. Lenstra, P. Leyland RSA 129 = 114381625757888867669235779976146612010218296721242362562561842935706 935245733897830597123563958705058989075147599290026879543541 = = 3490529510847650949147849619903898133417764638493387843990820577 32769132993266709549961988190834461413177642967992942539798288533 2. Crivello del campo numerico (NFS): (2 Feb 1999) 160 Sun workstations, 4 mesi. RSA 155 = 109417386415705274218097073220403576120037329454492059909138421314763499842 88934784717997257891267332497625752899781833797076537244027146743531593354333897 = = 102639592829741105772054196573991675900716567808038066803341933521790711307779 106603488380168454820927220360012878679207958575989291522270608237193062808643 3. Fattorizzazione con curve ellittiche: introdotta da H. Lenstra. Adatta a trovare fattori primi con 50 cifre (piccoli). Hanno tempi di esecuzione sub-esponenziale

Crittografia a chiave pubblica - Un invito a RSA Pescara, 29.11.2001 9 Il crittosistema RSA 1978 R. L. Rivest, A. Shamir e L. Adleman (Brevetto scaduto nel 1999) Problema: Alice vuole spedire il messaggio P a Bernardo e non vuole farlo leggere a Carlo. A (Alice) B (Bernardo) C (Carlo) 1. Generazione della chiave. Deve farla Bernardo. 2. Cifratura. Deve farla Alice. 3. Decifratura. Deve farla Bernardo. 4. Attacco al sistema. Vorrebbe farlo Carlo.

Crittografia a chiave pubblica - Un invito a RSA Pescara, 29.11.2001 10 Bernardo genera la chiave. Sceglie in modo casuale p e q primi (p, q 10 100 ); Calcola M = p q, ϕ(m) = (p 1) (q 1); Sceglie e intero t.c. 0 e ϕ(m), e gcd(e, ϕ(m)) = 1; N.B. Si potrebbe anche prendere e = 3 e p q 2 mod 3. Gli esperti suggeriscono e = 2 16 + 1. Calcola l inverso aritmetico d di e modulo ϕ(m) (i.e. d N (unico ϕ(m)) t.c. e d 1 (mod ϕ(m)); Pubblica (M, e) chiave pubblica e conserva chiave segreta d. Problema: Come fa Bernardo a fare tutto ciò?- Ci torneremo

Crittografia a chiave pubblica - Un invito a RSA Pescara, 29.11.2001 11 Alice cifra. Si rappresenta il messaggio P come un elemento di Z/MZ. (per esempio) A 1 B 2 C 3... Z 26 AA 27...; PESCARA 16 26 6 + 5 26 5 + 18 26 4 + 3 26 3 + 26 2 + 17 26 + 1 = 5010338711. N.B. È bene che i testi non siano troppo corti. Altrimenti si fa il padding. C = E(P) = P e (mod M) Esempio: p = 9049465727, q = 8789181607, M = 79537397720925283289, e = 2 16 + 1 = 65537, P = PESCARA: E(PESCARA) = 5010338711 65537 (mod79537397720925283289) = 9378189840637776750 = TYFWDKYEQFCGT

Crittografia a chiave pubblica - Un invito a RSA Pescara, 29.11.2001 12 Bernardo Decifra. P = D(C) = C d (mod M) N.B. Bernardo decifra perchè è l unico che conosce d. Il Piccolo Teorema di Fermat. Se a, m N, gcd(a, m) = 1, a ϕ(m) 1 (mod m). Se n 1 n 2 mod ϕ(m) allora a n 1 a n 2 mod m. Quindi (ed 1 mod ϕ(m)) D(E(P)) = P ed P mod M Esempio(cont.):d = 65537 1 mod ϕ(9049465727 8789181607) = 57173914060643780153 D(TYFWDKYEQFCGT) = 9378189840637776750 57173914060643780153 (mod79537397720925283289) = PESCARA

Crittografia a chiave pubblica - Un invito a RSA Pescara, 29.11.2001 13 L algoritmo dei quadrati successivi Problema: Come si fa a calcolare a b mod c? 9378189840637776750 57173914060643780153 (mod79537397720925283289) Espansione binaria di b = [log 2 b] j=0 ɛ j 2 j : 57173914060643780153=110001100101110010100010111110101011110011011000100100011000111001; Calcolare ricorsivamente. a 2j mod c, j = 1,..., [log 2 b] ( 2 a 2j mod c = a 2j 1 mod c) mod c. Moltiplicare gli a 2j mod c con la ɛ j = 1; a b mod c = [log 2 b] j=0,ɛ j =1 a 2j mod c mod c.

Crittografia a chiave pubblica - Un invito a RSA Pescara, 29.11.2001 14 #{oper. in Z/cZ per calc. a b mod c} 2 log 2 b TYFWDKYEQFCGT si decifra con 131 operazioni in Z/79537397720925283289Z. AQS - Pseudo codice: e c (a, b) = a b mod c e c (a, b, c) = if b = 1 then a mod c if 2 b then e c (a, b 2 )2 mod c else a e c (a, b 1 2 )2 mod c Per cifrare con e = 2 16 + 1 bastano 17 operazioni in Z/MZ.

Crittografia a chiave pubblica - Un invito a RSA Pescara, 29.11.2001 15 Generazione della chiave RSA Problema. Produrre un primo in modo casuale p 10 100. Algoritmo probabilistico (tipo Las Vegas). 1. Let p = Random(10 100 ); 2. If isprime(p)=1 then Output=p else goto 1. Sotto problemi: A. Quante iterazioni sono necessarie? (i.e. come sono distribuiti i numeri primi?) B. Come si verifica se p è primo? (i.e. come si calcola isprime(p)?) Test di primalità Falsa leggenda metropolitana: Verificare la primalità è equivalente a fattorizzare.

Crittografia a chiave pubblica - Un invito a RSA Pescara, 29.11.2001 16 A. Distribuzione dei numeri primi: π(x) = #{p x t. c. p è primo}. Teorema (Hadamard - de la vallee Pussen - 1897) π(x) x log x. Versione quantitativa: Quindi Teorema (Rosser - Schoenfeld) se x 67 x log x 1/2 < π(x) < x log x 3/2. 0.0043523959267 < P rob (Random(10 100 ) = primo < 0.004371422086

Crittografia a chiave pubblica - Un invito a RSA Pescara, 29.11.2001 17 Se P k è la probabilità che tra k numeri casuali 10 100 ce ne sia uno primo, allora ( ) k P k = 1 1 π(10100 ) 10 100 Quindi 0.663942 < P 250 < 0.66554440

Crittografia a chiave pubblica - Un invito a RSA Pescara, 29.11.2001 18 Per fare più in fretta so possono considerare solo numeri casuali dispari e non divisibili né per 3 né per 5 se: Ψ(x, 30) = # {n x t.c. gcd(n, 30) = 1} allora 4 15 x 4 < Ψ(x, 30) < 4 15 x + 4 Dunque se P k è la probabilità che tra k numeri casuali 10 100 coprimi con 30 ce ne sia uno primo, allora P k = 1 ( ) k 1 π(10100 ) Ψ(10 100, 30) e 0.98365832 < P 250 < 0.98395199

Crittografia a chiave pubblica - Un invito a RSA Pescara, 29.11.2001 19 B. Test di primalità. Pseudo Primi e Pseudo Primi Forti. Teorema. (Eulero) Se p è primo, p a N a p 1 1 mod p. Test di NON-primalità: M Z, 2 M 1 1 mod M =:> Mcomposto! Esempio: 2 RSA 2024 1 1 mod RSA 2024. Quindi RSA 2024 è composto. Il Teorema di Eulero non si inverte. Infatti 2 93960 1 (mod 93961) però 93961 = 7 31 433.

Crittografia a chiave pubblica - Un invito a RSA Pescara, 29.11.2001 20 Definizione. m N dispari e composto si dice pseudo primo in base a se a m 1 1 (mod m) Se m è pseudo primo rispetto a qualsiasi base a allora di dice numero di Carmichael. Esempio 561 = 3 11 17 è un numero di Carmichael. Teorema. Alford, Granville & Pomerance (1995) Esistono infiniti numeri di Carmichael Idea da buttar via? NO.

Crittografia a chiave pubblica - Un invito a RSA Pescara, 29.11.2001 21 Numeri di Carmichael Ecco tutti i 43 numeri di Carmichael fino a 10 6 : 561 46657 252601 530881 1105 52633 278545 552721 1729 62745 294409 656601 2465 63973 314821 658801 2821 75361 334153 670033 6601 101101 340561 748657 8911 115921 399001 825265 10585 126217 410041 838201 15841 162401 449065 852841 29341 172081 488881 997633 41041 188461 512461 FATTI SUI NUMERI DI CARMICHAEL. 1. m di Carmichael =:> m privo di fattori quadratici (sfq); 2. m dispari, sfq è di Carmichael <==> p m, p 1 m 1; 3. m è di Carmichael, =:> m è il prodotto di almeno tre primi;

Crittografia a chiave pubblica - Un invito a RSA Pescara, 29.11.2001 22 Pseudo primi forti D ora innanzi m 3 mod 4. (Solo per semplificare le notazioni) Definizione. m N, m 3 mod 4, composto si dice pseudo primo forte (PSPF) in base a se a (m 1)/2 ±1 (mod m). N.B. Se p > 2 primo =:> a (p 1)/2 ±1 (mod p). Sia S = {a Z/mZ t.c. gcd(m, a) = 1, a (m 1)/2 ±1 (mod m)}. =:> 1. S (Z/mZ) sottogruppo; 2. Se m è composto =:> sottogruppo proprio; 3. Se m è composto =:> #S ϕ(m) 4 ; 4. Se m è composto =:> P rob(mpspf in base a) 0, 25.

Crittografia a chiave pubblica - Un invito a RSA Pescara, 29.11.2001 23 Test di Primalità di Miller Rabin Sia m 3 mod 4. Algoritmo Miller Rabin con k iterazioni N = (m 1)/2; for j = 0 to k do a =Random(m); if a N ±1 mod m then OUPUT=(m composto): endfor; OUTPUT=(m primo) END Test probabilistico montecarlo: P rob(miller Rabin dice m primo e m è composto) 1 4 k. Nel mondo reale il software applica il test di Miller Rabin con k = 10.

Crittografia a chiave pubblica - Un invito a RSA Pescara, 29.11.2001 24 È chiaro che se Corrado è capace a fattorizzare M, allora è in grado di calolare ϕ(m) e poi anche d e quindi a decifrare i messaggi; Perchè RSA è sicuro? Per Corrado calcolare ϕ(m) è equivalente a fattorizzare M. Infatti p, q = M ϕ(m) + 1 ± (M ϕ(m) + 1) 2 4M 2 Ipotesi RSA L unico modo per calcolare efficientemente. x 1/e mod M, x Z/MZ (cioè decifrare i messaggi) è fattorizzare M. In altre parole i due problemi sono polinomialmente equivalenti.

Crittografia a chiave pubblica - Un invito a RSA Pescara, 29.11.2001 25 Certificazione di primalità Teorema. Se m è composto e vale GRH, allora a 2 log 2 m t.c. m non è pseudo primo forte in base a. Conseguenze: Miller Rabin si può de randomizzare. (i.e. per mostrare che m dispari è primo basta controllare che: a (m 1)/2 ±1 mod m a 2 log 2 m. Altri metodi per certificare la primalità: Teorema [Pocklington]. m dispari, F m 1, F > m, a (Z/mZ) t.c. 1. a m 1 1 mod m; 2. q F, q primo, gcd(a m 1 q 1, m) = 1 Allora m è primo. Esempio. 2 6 3 33 5 2 7 58 11 59 + 1. è un primo (certificabile).