Laurea Specialistica in Ingegneria Informatica
Anno Accademico 2013-2014
Secondo semestre.
Diario delle lezioni di Teoria Elementare dei Numeri
Prima settimana:
Introduzione al corso: cenni al criptosistema RSA. Complessita' polinomiale e complessita' esponenziale di un algoritmo. Complessita' delle operazioni aritmetiche sugli interi: somma, sottrazione, prodotto, divisione con resto, elevamento ad una potenza intera.
Complessita' delle operazioni aritmetiche su Zn : somma, prodotto, elevamento ad una potenza intera.
Seconda settimana:
La complessita' dell'algoritmo di Euclide e del calcolo di un inverso in Z*n ( vedi: soluzioni Esercizi-svolti n.1).
Il Piccolo Teorema di Fermat e i numeri di Carmichael. Il teorema di Miller-Rabin.
Il test di primalita' di Miller-Rabin (vedi: nota2, Appendice) e la sua complessita'.
Il criptosistema RSA: esempi con PARI/GP.
Terza settimana:
Il Teorema dei Numeri Primi. Applicazioni ed esempi. (vedi: Crandall-Pomerance, Thm.1.1.4; soluzioni Esercizi-svolti n.2).
Complessita' dell'algoritmo di fattorizzazione per divisioni successive.
Ulteriori richiami su Zn e su Z*p. La funzione φ di Eulero (vedi nota sulla funzione φ di Eulero). Gruppi: definizione e proprieta'.
Il gruppo additivo Zn e il gruppo moltiplicativo Z*p (vedi nota2).
Quarta settimana:
Il paradosso del compleanno. Il metodo di fattorizzazione ρ di Pollard.
Il Lemma di Floyd.
La complessita' probabilistica del metodo ρ di Pollard. (vedi Crandall-Pomerance, sect. 5.2.1; Nota su Pollard ρ). Esempi con PARI/GP.
Quinta settimana:
Ulteriori richiami sui gruppi: il Teorema di Lagrange. Ordine di un elemento in un gruppo. L'ordine di un elemento divide l'ordine del gruppo.
Gruppi ciclici e generatori. Esempi di gruppi ciclici finiti: il gruppo additivo Zn, gruppi finiti di ordine primo (vedi nota2),
il prodotto ZnxZm, per gcd(m,n)=1.
Due lemmi preliminari alla dimostrazione del Teorema della Radice Primitiva: formula di Gauss e ordine della potenza di un elemento di
ordine a (vedi Nota sulle radici primitive modulo p).
Sesta settimana:
Radici di un polinomio a coefficienti in Zp, con p primo. Il teorema della radice primitiva (per ora solo enunciato): se p e' primo, il gruppo moltiplicativo Z*p e' ciclico. Inoltre in Z*p ci sono φ(d) elementi di ordine d (vedi Nota sulle radici primitive modulo p). Esempi ed ed esercizi.
Interi B-smooth, funzione di Dickman (vedi Crandall-Pomerance, Sect.1.4.5, e soluzioni Esercizi-svolti 2).
L'algoritmo p-1 di Pollard e la sua complessita' probabilistica (vedi Crandall-Pomerance, Sez.5.4 e Nota su "Pollard p-1").
Settima settimana:
L'algoritmo p-1 di Pollard: esperimenti con PARI/GP.
Introduzione alle curve ellittiche: equazione di Weierstrass ;
esempi di curve ellittiche su Z p, con p primo.
Costruzione geometrica della somma fra punti di una curva ellittica su R (vedi Crandall-Pomerance Cap.7, Sez.7.1; soluzioni Esercizi-svolti n.5: n.1-5).
Ottava settimana:
Curve ellittiche su Z p, con p primo: esempi ed esercizi. Il teorema di Hasse.
La struttura del gruppo dei punti di una curva ellittica su Z p (cenni).
Nona settimana:
Introduzione al metodo di fattorizzazione con le curve ellittiche ECM di Lenstra: descrizione della fase 1 di un ciclo dell'algoritmo. Complessita' probabilistica dell'algoritmo.
(vedi Larry Washington, Elliptic curves - Number theory and Criptography, pag. 9-19; pag. 89-91; pag. 179-184;
Crandall-Pomerance, Cap.7, Sez.7.1, 7.2, 7.3, 7.4;
Introduzione di: H. Lenstra,
Factoring integers with elliptic curves, Annals of Math. 126, (1987) 649-673 pdf
Nota sul metodo delle curve ellittiche).
Decima settimana:
La seconda fase dell'algoritmo. Esempi con PARI/GP.
Il logaritmo discreto in Z*p: definizione e proprieta'. Criterio della radice primitiva.
(vedi Nota sulle radici primitive modulo p).
Undicesima settimana:
Il logaritmo discreto. Il calcolo dell'indice per la risoluzione del logaritmo discreto in Z*p. Esempi ed esercizi.
Stima della complessita' probabilistica del calcolo dell'indice (continua).
Dodicesima settimana:
Stima della complessita' probabilistica del calcolo dell'indice (fine). Applicazioni del logaritmo discreta alla crittografia: Diffie-Hellman-Merkle key exchange, criptosistema a chiave pubblica El Gamal.
Algortitmo Baby-Step-Giant-Step. Esempi ed esercizi.
Tredicesima settimana:
Introduzione al crivello quadratico per la fattorizzazion di interi. La seconda parte dell'algoritmo: dalle relazioni alle congruenze fra quadrati modulo $n.
Quattordicesima settimana:
La prima parte dell'algoritmo: la fase di sieving per ottenere le relazioni. Un esempio in dettaglio.
Complessita' probabilistica del crivello quadratico.
Quindicesima settimana:
Esercizi sui gruppi abeliani finiti. Preliminari all'algoritmo di Pocklington.
L'algoritmo di Pocklington.
Sedicesima settimana:
L'algoritmo di Pocklington. Cenni all'algoritmo di Goldwasser-Kilian (E.C.P.P.). Certificati di primalita'.
Fine