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



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

Matematica generale CTF

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

4.1 Modelli di calcolo analisi asintotica e ricorrenze

Introduzione alla crittografia. Il crittosistema RSA e la sua sicurezza

LE SUCCESSIONI 1. COS E UNA SUCCESSIONE

CRITERI DI CONVERGENZA PER LE SERIE. lim a n = 0. (1) s n+1 = s n + a n+1. (2) CRITERI PER LE SERIE A TERMINI NON NEGATIVI

Note su quicksort per ASD (DRAFT)

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

CAPITOLO 16 SUCCESSIONI E SERIE DI FUNZIONI

Esercizi Capitolo 2 - Analisi di Algoritmi

PRIMAVERA IN BICOCCA

UNIVERSITÀ DEGLI STUDI DI TERAMO

Programmazione dinamica

Limiti e continuità delle funzioni reali a variabile reale

Fondamenti dell Informatica Ricorsione e Iterazione Simona Ronchi Della Rocca (dal testo: Kfoury, Moll and Arbib, cap.5.2)

E naturale chiedersi alcune cose sulla media campionaria x n

Crittografia a chiave pubblica - Un invito a RSA

Numeri naturali numeri naturali minore maggiore Operazioni con numeri naturali

Correttezza. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 10. A. Miola Novembre 2007

Probabilità condizionata: p(a/b) che avvenga A, una volta accaduto B. Evento prodotto: Evento in cui si verifica sia A che B ; p(a&b) = p(a) x p(b/a)

4 3 4 = 4 x x x 10 0 aaa

Proof. Dimostrazione per assurdo. Consideriamo l insieme complementare di P nell insieme

I sistemi di numerazione

Corso di Sistemi di Gestione di Basi di Dati. Esercitazione sul controllo di concorrenza 12/02/2004

x u v(p(x, fx) q(u, v)), e poi

Programmazione I - Laboratorio

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

Equilibrio bayesiano perfetto. Giochi di segnalazione

I quesiti di Matematica per la classe di concorso A059

1 Serie di Taylor di una funzione

APPUNTI DI MATEMATICA LE FRAZIONI ALGEBRICHE ALESSANDRO BOCCONI

Primi esercizi per gli studenti del corso di Statistica ed Elementi di Probabilita

I numeri semiprimi e i numeri RSA. come loro sottoinsieme

Un po di teoria dei numeri

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

risulta (x) = 1 se x < 0.

Anno 3. Funzioni: dominio, codominio e campo di esistenza

Esercizi Capitolo 6 - Alberi binari di ricerca

Siamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo.

Matematica e Statistica

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

Esercizi test ipotesi. Prof. Raffaella Folgieri aa 2009/2010

Esercizi per il corso di Algoritmi, anno accademico 2014/15

F (x) = f(x) per ogni x I. Per esempio:

24 : 3 = 8 con resto 0 26 : 4 = 6 con resto 2

EQUAZIONI DIFFERENZIALI. 1. Trovare tutte le soluzioni delle equazioni differenziali: (a) x = x 2 log t (d) x = e t x log x (e) y = y2 5y+6

CONCETTO DI ANNIDAMENTO

= 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

Introduzione alla Crittografia

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

3 CENNI DI TEORIA DELLA COMPLESSITA COMPUTAZIONALE. E. Amaldi Fondamenti di R.O. Politecnico di Milano 1

3 GRAFICI DI FUNZIONI

Laboratorio teorico-pratico per la preparazione alle gare di matematica

Logica Numerica Approfondimento 1. Minimo Comune Multiplo e Massimo Comun Divisore. Il concetto di multiplo e di divisore. Il Minimo Comune Multiplo

L Ultimo Teorema di Fermat per n = 3 e n = 4

Pertanto la formula per una prima approssimazione del tasso di rendimento a scadenza fornisce

La selezione binaria

Corso di Calcolo Numerico

Dispense di Informatica per l ITG Valadier

Soluzioni del giornalino n. 16

Lezione 10 Funzione di produzione ed

f(x) = 1 x. Il dominio di questa funzione è il sottoinsieme proprio di R dato da

Progetto Lauree Scientifiche Liceo Classico L.Ariosto, Ferrara Dipartimento di Matematica Università di Ferrara 24 Gennaio 2012

1 Giochi a due, con informazione perfetta e somma zero

Politecnico di Milano. Facoltà di Ingegneria Industriale. Corso di Analisi e Geometria 2. Sezione D-G. (Docente: Federico Lastaria).

USO DI CONCETTI PROBABILISTICI NEL PROGETTO E NELL ANALISI DI ALGORITMI

Computational Game Theory

Introduzione al MATLAB c Parte 2

- Sistemi di numerazione 1 - Sistemi di Numerazione

Due algoritmi di ordinamento. basati sulla tecnica Divide et Impera: Mergesort e Quicksort

Algoritmi e strutture dati. Codici di Huffman

CALCOLO COMBINATORIO

Condizionamento del problema

Statistica e biometria. D. Bertacchi. Variabili aleatorie. V.a. discrete e continue. La densità di una v.a. discreta. Esempi.

Un modello matematico di investimento ottimale

Le parole dell informatica: modello di calcolo, complessità e trattabilità

Esempi di algoritmi. Lezione III

La variabile casuale Binomiale

Sistemi Operativi mod. B. Sistemi Operativi mod. B A B C A B C P P P P P P < P 1, >

Sui concetti di definizione, teorema e dimostrazione in didattica della matematica

Algoritmi e Strutture Dati

11) convenzioni sulla rappresentazione grafica delle soluzioni

Corso integrato di informatica, statistica e analisi dei dati sperimentali Altri esercizi_esercitazione V

Dimensione di uno Spazio vettoriale

1. la probabilità che siano tutte state uccise con pistole; 2. la probabilità che nessuna sia stata uccisa con pistole;

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

Equazioni non lineari

Daniela Lera A.A

10. Insiemi non misurabili secondo Lebesgue.

l insieme Y è detto codominio (è l insieme di tutti i valori che la funzione può assumere)

Un metodo per il rilevamento degli errori: la tecnica del Bit di Parità

Entropia. Motivazione. ? Quant è l informazione portata dalla sequenza? Abbiamo una sequenza S di N simboli (campioni audio, pixel, caratteri,...

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

Introduzione Ordini parziali e Reticoli Punti fissi

1. Distribuzioni campionarie

Dispense del corso di Logica a.a. 2015/16: Problemi di primo livello. V. M. Abrusci

IGiochidiArchimede-SoluzioniBiennio 22 novembre 2006

Capitolo 25: Lo scambio nel mercato delle assicurazioni

TSP con eliminazione di sottocicli

Transcript:

Crittografia Corso di Laurea Specialistica in Informatica Primalità e Fattorizzazione Alberto Leporati Dipartimento di Informatica, Sistemistica e Comunicazione Università degli Studi di Milano Bicocca e-mail: alberto.leporati@unimib.it leporati@disco.unimib.it

Test di primalità per RSA, è necessario generare numeri primi molto grandi problema: testare se un numero intero n 2 è primo oppure composto, in tempo polinomiale rispetto a log 2 n esistono molti algoritmi: Solovay-Strassen, Miller-Rabin, (algoritmi probabilistici) AKS (del 2002) è un algoritmo deterministico Alberto Leporati Corso di Crittografia 2

Test di primalità un algoritmo probabilistico può sbagliare con probabilità p; tuttavia, se eseguiamo m prove indipendenti la probabilità di sbagliare diventa 1/p m quindi, si spara a caso un numero e si testa se è primo quanti tentativi dovremo fare in media? teorema dei numeri primi: un numero intero n compreso tra 1 ed ha probabilità 1/ln di essere primo Alberto Leporati Corso di Crittografia 3

Test di primalità esempio: un numero di 512 bit ha probabilità 1/ln2 512 @ 1/355 di essere primo Ø dopo circa 355 tentativi, si trova un numero primo osservazione: fattorizzare un intero sembra essere molto più difficile che determinare se è primo o composto Ø possiamo determinare che un numero è composto, senza conoscerne i fattori primi Alberto Leporati Corso di Crittografia 4

Test di primalità si conoscono molti criteri del tipo: se C(x) è vero, allora x è composto tuttavia, se C(x) è falso, x potrebbe essere sia primo che composto x primi C(x) = falso C(x) = vero la preimmagine di vero è un sottoinsieme proprio dei numeri composti Alberto Leporati Corso di Crittografia 5

Test di primalità si possono applicare più criteri in sequenza tuttavia, non si conosce un insieme di criteri che dia esattamente l insieme dei numeri composti pertanto, il meglio che possiamo fare è applicarli tutti, e considerare primo un numero che li rende tutti falsi Ø più criteri usiamo, più è bassa la probabilità di sbagliare Alberto Leporati Corso di Crittografia 6

Criterio di Eulero si basa sul teorema di Eulero (piccolo teorema di Fermat) sia m un intero dispari, e w un intero tale che MCD(w, m) = 1 se m è primo, allora w m-1 ª 1 mod m diciamo che w è un testimone per la primalità di m se m è composto, è poco probabile che la congruenza valga se vale, diciamo che m è uno pseudoprimo rispetto a w in tal caso, w è un falso testimone per la primalità di m Alberto Leporati Corso di Crittografia 7

Criterio di Eulero definiamo il criterio: C(x) = vero se e solo se w x-1 T 1 mod x per qualche w tale che MCD(w, x) = 1 teorema (Salomaa, pag. 138): tutti oppure al più metà degli interi w tali che 1 w < m e MCD(w, m) = 1 sono testimoni per la primalità di m possiamo allora agire come segue: dato m, scegliamo a caso w tale che 1 w < m Alberto Leporati Corso di Crittografia 8

Criterio di Eulero se MCD(w, m) > 1, allora m è composto se MCD(w, m) = 1, calcoliamo u = w m-1 mod m se u 1, allora m è composto, altrimenti w è un testimone per la primalità di m per il teorema, se abbiamo trovato k testimoni la probabilità che m sia composto è 1/2 k, a meno che tutti i w tali che 1 w < m e MCD(w, m) = 1 siano testimoni in tal caso, m può ancora essere composto numeri di Carmichael (però sono molto rari) Alberto Leporati Corso di Crittografia 9

Test di Solovay-Strassen è un altro test del tipo: se C(x) è vero, allora x è composto se C(x) è falso, la probabilità che x sia primo è < 1/2 a œ p * è un residuo quadratico modulo p se a T 0 mod p e la congruenza y 2 ª a mod p ammette soluzione se y è una soluzione, l unica altra soluzione è y mod p = p y se a T 0 mod p e la congruenza y 2 ª a mod p non ha soluzione, si dice che a è un non residuo quadratico modulo p Alberto Leporati Corso di Crittografia 10

Test di Solovay-Strassen determinare se a è un residuo quadratico modulo p può essere fatto in tempo polinomiale (rispetto a log 2 p) usando l algoritmo square-and-multiply, grazie al criterio di Eulero teorema (criterio di Eulero): sia p 2 primo. Un intero a è un residuo quadratico modulo p se e solo se: a (p-1)/2 ª 1 mod p Alberto Leporati Corso di Crittografia 11

Test di Solovay-Strassen sia p 2 primo, e a un intero. Il simbolo di Legendre (a/p) è definito come segue: a p = 0 1 1 se se se a a a 0 mod è un r.q. p mod è un non r.q. p mod p teorema (Stinson, pag. 175): sia p 2 primo. Allora: (a/p) = a (p-1)/2 mod p Alberto Leporati Corso di Crittografia 12

Test di Solovay-Strassen sia n un intero positivo dispari, la cui fattorizzazione è: n k = = i 1 p i e i sia a un intero. Il simbolo di Jacobi (a/n) è definito come segue: a n = k a i = 1 p i e i osservazione: se n è primo, (a/n) ª a (n-1)/2 mod n Alberto Leporati Corso di Crittografia 13

Test di Solovay-Strassen se n è composto, la congruenza può valere oppure no. Se vale, n è uno pseudo-primo di Eulero rispetto ad a se n è composto, allora può essere pseudoprimo rispetto al più metà degli a œ p * vale (a/n) = 0 se e solo se MCD(a, n) > 1 (quindi n è composto) Alberto Leporati Corso di Crittografia 14

Test di Solovay-Strassen Solovay-Strassen(n) if n mod 2 = 0 then return n è composto a R {1, 2,, n-1} x = (a/n) if x = 0 then return n è composto y = a (n-1)/2 mod n if x ª y mod n then return n è primo else return n è composto resta da calcolare (a/n) in modo efficiente Alberto Leporati Corso di Crittografia 15

Calcolo di (a/n) lo si può fare grazie alle seguenti regole: se m 1 ª m 2 mod n, allora (m 1 /n) = (m 2 /n) Ø ci si può sempre ridurre ad a < n 2 n = = 1 1 se se n n ± ± m 1 2 1 2 m n m n = n m n m n m n m se 1 3 m mod8 mod8 n altrimenti 3 mod 4 Alberto Leporati Corso di Crittografia 16

Calcolo di (a/n): esempio 7411 9283 = = = = = = = = = = = 5 117 117 5 2 5 1 9283 7411 1872 7411 2 7411 117 7411 7411 117 40 117 2 117 3 4 117 7411 5 117 per la per la per la per la proprietà per la per la per la per la proprietà per la proprietà per la proprietà proprietà 1 proprietà 3 proprietà proprietà 1 proprietà 3 proprietà 1 per la proprietà 4 2 4 2 4 2 basta applicare in sequenza le proprietà 4, 1, 3, 2 Alberto Leporati Corso di Crittografia 17

Test di Miller-Rabin è un altro test del tipo: se C(x) è vero, allora x è composto è più efficiente del test di Solovay- Strassen: se C(x) è falso, la probabilità che x sia primo è < ¼ per la correttezza dell algoritmo, si veda [Stinson, pag. 180] Alberto Leporati Corso di Crittografia 18

Test di Miller-Rabin Miller-Rabin(n) sia n-1 = 2 k m, con m dispari a R {1, 2,, n-1} b = a m mod n if b ª 1 mod n then return n è primo for i = 0 to k 1 do if b ª -1 mod n then return n è primo else b = b 2 mod n return n è composto Alberto Leporati Corso di Crittografia 19

Algoritmi di fattorizzazione come abbiamo visto, scomporre un intero n in fattori primi è considerato difficile facendo alcune ipotesi, esistono algoritmi che fattorizzano n senza provare a dividere per tutti i numeri compresi tra 1 e n algoritmo p-1 di Pollard algoritmo ρ di Pollard molti altri nel caso generale, tutti questi algoritmi hanno tempo di esecuzione esponenziale Alberto Leporati Corso di Crittografia 20

Algoritmo p-1 di Pollard pubblicato nel 1974 supponiamo che p n e p è primo inoltre, supponiamo che se q è la potenza di un primo che divide p-1, allora q B, dove B è un limite superiore prefissato Ø (p-1) B! per il piccolo teorema di Fermat, vale: 2 p-1 ª 1 mod p dato che (p-1) B!, allora: 2 B! ª 1 mod p da cui p (2 B! 1) allora p d = MCD(2 B! 1, n), e d sarà un divisore non banale di n, a meno che 2 B! 1 = 1 Alberto Leporati Corso di Crittografia 21

Algoritmo p-1 di Pollard Pollard p-1 (n, B) @ calcola a = 2B! mod n for j = 2 to B do a = a j mod n d = MCD(a-1, n) if 1 < d < n then return d else return fallimento tempo di esecuzione: O(Blog 2 B(log 2 n) 2 +(log 2 n) 3 ) Alberto Leporati Corso di Crittografia 22

Algoritmo p-1 di Pollard se B = O((log 2 n) i ), l algoritmo è polinomiale ma ha poche chance di successo n se B @, l algoritmo risponde correttamente, ma ha tempo di esecuzione esponenziale l algoritmo funziona bene solo se n è divisibile per un primo p tale che p-1 ha fattori piccoli in RSA, è facile evitare questo caso: basta scegliere p 1, q 1 grandi tali che p = 2p 1 + 1 e q = 2q 1 + 1 sono primi (strong primes), e porre n = pÿ q Alberto Leporati Corso di Crittografia 23

Algoritmo ρ di Pollard sia p il più piccolo divisore primo di n supponiamo di trovare x, x œ n tali che x x e x ª x mod p allora p MCD(x x, n) < n, e quindi otteniamo un divisore non banale di n calcolando MCD(x x, n) l algoritmo ρ di Pollard trova x e x definisce f(x) = x 2 + a, dove a è una costante piccola (es: a = 1) parte da x 1 œ n scelto a caso, e costruisce la sequenza x 1, x 2, x 3,, dove: x j = f(x j-1 ) mod n Alberto Leporati Corso di Crittografia 24

Algoritmo ρ di Pollard si tratterebbe di trovare x i x j, con i < j, tali che MCD(x i x j, n) > 1 si dimostra che se x i ª x j mod p allora f(x i ) ª f(x j ) mod p Ø "δ 0, x i+δ ª x j+δ mod p costruito un grafo i cui vertici sono in p, e i lati vanno da x i a x i+1, abbiamo una coda iniziale: x 1 Ø x 2 Ø Ø x i seguita da un ciclo: x i Ø x i+1 Ø Ø x j ª x i l algoritmo risulta più semplice se poniamo j = 2i Alberto Leporati Corso di Crittografia 25

Algoritmo ρ di Pollard Pollard Rho (n, x 1 ) x = x 1 x = f(x) mod n p = MCD(x x, n) while p = 1 do @ all i-esima iterazione, @ x = x i e x = x 2i x = f(x) mod n x = f(x ) mod n x = f(x ) mod n p = MCD(x x, n) if p = n then return fallimento else return p x 1 x i ª x j x 2 x i+1 x j-1 Alberto Leporati Corso di Crittografia 26

Algoritmo ρ di Pollard il numero medio di iterazioni richieste per trovare p è al più p dato che p < n, la complessità dell algoritmo è O(n 1/4 ) esempio: n = 15770708441, x 1 = 1, f(x) = x 2 + 1 Allora: x 422 = 2261992698 x 211 = 7149213937 MCD(x 422 x 211, n) = 135979 Alberto Leporati Corso di Crittografia 27

Algoritmi usati attualmente quadratic sieve (Carl Pomerance, fine anni 80) elliptic curve (Ariel Lenstra, metà anni 80): versione modificata dell algoritmo p-1 di Pollard, applicato sui punti di curve ellittiche number field sieve (A. Lenstra e H. Lenstra, 1990): è l algoritmo usato attualmente nel 2000, number field sieve è stato usato per fattorizzare un modulo di RSA di 155 cifre (= 512 bit), usando circa 300 computer in parallelo (su Internet) Alberto Leporati Corso di Crittografia 28

Algoritmi usati attualmente ( ) Quadratic sieve O e ( 1+ o (1)) ln n lnln n Elliptic curve O e ( ( ) 1 + o (1)) 2ln p lnln p Number field sieve O e ( ) ( 1.92+ o (1))(ln n ) (lnln n ) 1/ 3 2 / 3 Alberto Leporati Corso di Crittografia 29