I Numeri Primi e la Sicurezza Informatica Il gioco a premi

I Numeri Primi e la Sicurezza Informatica
Siamo Sicuri?
Alessandro Gencarelli
[email protected]
Bologna, 13 Febbraio 2007
1
Il gioco a premi
Conduttore: La domanda da 1.000.000 di euro.
Quanti sono i numeri primi in un dado da gioco a 6
facce?
Concorrente: 4!
Conduttore: Mi dispiace, non è la risposta corretta!
Concorrente: Come no, il numero 1 è solo divisibile
per sé stesso e per 1, il 2, il 3 e il 5 per sé stessi e
per 1
Notaio: La risposta corretta è 3!
2
Perché il numero 1 non è primo?
Fino al 1800-1850 (il periodo di Gauss) la definizione di un numero primo
comprendeva anche l’unità.
La nuova definizione prendeva corpo sulla base del concetto che i numeri
primi erano e sono i mattoni principali per la costruzione di tutti i numeri
interi.
Il numero 1, l’unicità, non racchiude nella sua essenza nessuna informazione
utile per la costruzione di altri numeri.
15 = 5 x 3
15 = 5 x 3 x 1
3
Perché i numeri primi sono importanti?
Sono gli atomi dell’aritmetica e le fondamenta della teoria dei numeri
¾L'insieme dei numeri primi è un sottoinsieme dei numeri naturali.
¾Un numero primo è un numero naturale divisibile unicamente per sé
stesso e per l'unità e diverso, per convenzione, dall'unità. Detto in altro
modo, deve avere esattamente due divisori distinti.
2; 3; 5; 7; 11; 13; 17; 19; 23; 29; 31; 37; 41; 43; 47; 53; 59; 61; 67; 71; 73;
79; 83; 89; 97; 101; 103; 107; 109; 113; 127; 131; 137; 139; 149; 151; 157;
163; 167; 173; 179; 181; 191; 193; 197; 199; 211; 223; 227; 229; 233; 239;
241; 251; 257; 263; 269; 271; 277; 281; 283; 293; 307; 311; 313; 317; 331;
337; 347; 349; 353; 359; 367; 373; 379; 383; 389; 397; 401; 409; 419; 421;
431; 433; 439; 443; 449; 457; 461; 463; 467; 479; 487; 491; 499
4
Decomposizione in fattori primi
Qualsiasi numero può essere scomposto in fattori primi, e tale
scomposizione è unica.
L'importanza dei numeri primi in matematica è enorme e deriva
essenzialmente dal teorema fondamentale dell'aritmetica,
Ad esempio,
ogni altra fattorizzazione di 23244 in numeri primi è ottenuta da questa
permutando i fattori.
Questa è tra l'altro la ragione per cui convenzionalmente si esclude 1
dall'insieme dei numeri primi: l'unicità della scomposizione in fattori viene
considerata sufficientemente importante da prevalere sulla definizione
"ingenua".
5
La magia dei numeri primi in Natura
La Magicicada Septedecim è una
cicala periodica il cui “numero
magico” è il 17 o il 13
> Le specie della Magicicada sono 7, 3 hanno il ciclo vitale basato sul 17, le
altre 4 lo hanno basato sul 13.
Perché?
> I predatori naturali hanno cicli di 2,3,4,6 anni, per cui rifugiarsi in un
numero primo rende la probabilità che le due specie si “incontrino” molto
bassa
6
Il primo grande Teorema: Euclide
I numeri primi sono infiniti!
Euclide (Ευκλείδης), nato ad Alessandria
d'Egitto intorno al 365 a.C. e morto intorno al
275 a.C., fu un matematico greco.
un qualunque insieme di numeri primi p1,p2,...,pn, e costruisce un numero primo
diverso da tutti i pi.
q = p1. p2 . … . pn + 1 che potrà essere o non essere primo.
Se q è primo, la dimostrazione è terminata; altrimenti esso dovrà avere un
divisore d. Per costruzione, però, d non può essere nessuno dei pi; infatti la
divisione d / pi dà sempre 1 come resto. Pertanto, d è l'ulteriore numero primo
cercato.
7
Le domande
1. Dato un numero p scelto a caso come faccio a
sapere se è primo oppure no?
2. Quanti sono i numeri primi inferiori a un
numero N?
3. Qual è la legge che governa la distribuzione
dei numeri primi?
4. Esiste un metodo di fattorizzazione in numeri
primi computazionalmente veloce?
8
Test di Primalità: il crivello di Eratostene
Il più antico è sicuramente il crivello di Eratostene, noto già in epoca
classica, ma computazionalmente molto costoso.
Si scrivono tutti i naturali a partire da 2
fino n in un elenco detto setaccio.
Poi si cancellano (setacciano) tutti i
multipli del primo numero del setaccio
(escluso lui stesso).
Si prosegue così fino ad arrivare in
fondo.
I numeri che restano sono i numeri
primi minori o uguali a n.
9
Test di Primalità: il modello probabilistico
Più rapido è verificare se un numero è primo o no, anche se i test di
primalità più efficienti utilizzati (test con curve ellittiche ECPP) sono
statistici e non danno una certezza assoluta: tuttavia l'errore dei test può
essere reso piccolo a piacere.
Nel 1992 Adleman e Huang, modificando l'algoritmo di Goldwasser Kilian, mostrarono come la verifica di primalità (solitamente detta
PRIMES, in inglese) appartenga alla classe NP.
Nel 2002 Agrawal, Kayal e Saxena fornirono un algoritmo deterministico
polinomiale per PRIMES, noto come algoritmo AKS, di complessità
O(log(N)12), che si riduce a O(log(N)6) se vale la congettura di Sophie
Germaine.
10
Gauss: la nuova prospettiva
«Quando le cose iniziano a complicarsi è forse venuto il momento di fermarsi
e chiedersi: mi sono fatto la domanda giusta?» (Enrico Bombieri)
Gauss è nato nel 1777 da una famiglia piccolo
borghese a Brunswick.
Già nel 1792 a 15 anni iniziò ad avere la passione
per i numeri primi e i logaritmi.
¾ Contare i numeri primi:
Gauss cambiò la domanda. Invece di chiedersi:
“Qual è il numero primo successivo?” si domandò:
“Quanti sono i numeri primi minori inferiori a numero N?”
11
Gauss: contare i numeri primi
La tabella esprime il numero di
primi inferiori ad N.
Nella prima colonna sono
espressi gli intervalli.
Nella seconda il numero di primi
Nella terza la probabilità che
scelto a caso un numero
nell’intervallo, questo sia primo.
N
Numero di primi da 1 a N
Pprobabilità tra 1 e N
10
4
2.5
100
25
4.0
1,000
168
6.0
10,000
1,229
8.1
100,000
9,592
10.4
1,000,000
78,498
12.7
10,000,000
664,579
15.0
100,000,000
5,761,455
17.4
1,000,000,000
50,847,534
19.7
10,000,000,000
455,052,511
22.0
12
Gauss: la scala dei primi
Si può disegnare la distribuzione
dei numeri primi tra 1 e 100.
L’altezza sopra ogni numero
nell’asse orizzontale esprime il
numero di primi nell’intervallo.
¾ La funzione di Gauss:
Gauss si chiese se fosse possibile trovare una funzione che potesse esprimere
la distribuzione dei numeri primi.
“Qual è l’elemento che regola la distribuzione dei numeri primi?”
“Esiste una relazione nella probabilità di ‘incontrare’ un numero primo in
un certo intervallo?”
13
Gauss: la probabilità dei numeri primi
N
Numero di primi nell’intervallo tra
1eN
Probabilità
10
4
2.5
100
25
4.0
1,000
168
6.0
Ogni volta che si moltiplica N
per 10 la probabilità cresce di
circa 2,3.
10,000
1,229
8.1
100,000
9,592
10.4
1,000,000
78,498
12.7 = 10.4+2.3
Superato l’intervallo N=100.000
tale misura si attesta su il
numero 2,3.
10,000,000
664,579
15.0 = 12.7+2.3
100,000,000
5,761,455
17.4 = 15.0+2.3
1,000,000,000
50,847,534
19.7 = 17.4+2.3
10,000,000,000
455,052,511
22.0 = 19.7+2.3
Gauss intuì che la Natura
sceglieva i numeri primi in
maniera probabilistica (3
colonna).
14
Gauss: il teorema dei numeri primi
Gauss si accorse che utilizzando il logaritmo naturale di 10
otteneva il numero tanto cercato.
Il passaggio fu lampante, il numero di primi minori o uguali a x,
è governato dalla funzione:
15
Gauss: stima dell’errore
Quanto la funzione di
Gauss è andata vicino
alla distribuzione dei
numeri primi?
Nella 3 colonna è
espresso il
discostamento.
Nella 4 colonna la
percentuale
dell’errore che
diminuisce
all’aumentare di N.
N
Numero di primi
100
(N)
N/ln(N)- (N)
Percentuale
errore
25
5
20
1,000
168
10
5.95
10,000
1,229
17
1.38
100,000
9,592
38
0.396
1,000,000
78,498
130
0.166
107
664,579
339
0.051
108
5,761,455
754
0.0131
109
50,847,534
1,701
0.00335
1010
455,052,511
3,104
0.000682
1011
4,118,054,813
11,588
0.000281
1012
37,607,912,018
38,263
0.000102
1013
346,065,536,839
108,971
0.0000299
1014
3,204,941,750,802
314,890
0.00000983
1015
29,844,570,422,669
1,052,619
0.00000353
1016
279,238,341,033,925
3,214,632
0.00000115
16
Gauss: la funzione
Quanto la funzione di
Gauss è andata vicino alla
distribuzione dei numeri
primi?
Nel primo grafico la
funzione con N=100
Nel secondo grafico la
funzione con N=500
La funzione di Gauss stima
la distribuzione dei numeri
primi.
17
Pitagora: tra musica e matematica
Pitagora scoprì la relazione tra musica e matematica. Individuò la
serie armonica:
Ogni nota ha una relazione armonica con tutte le altre note.
Il nostro organismo sembra riconoscere la bellezza delle
armoniche rappresentate dalle frazioni 1, 1/2, 1/3….
Grazie alle armoniche esiste una differenza tra il suono di un
violino e quello di un clarinetto
18
Fourier: il suono visibile
Fourier Scoprì che tutti suoni di qualsiasi strumento possono
essere ricreati dalle onde sinusoidali create dai diapason
19
Riemann: la congettura
Riemann è stato uno studente di Gauss. Ha vissuto a
Gottingen, una piccola città universitaria tedesca.
Si è reso famoso per l’omonima congettura sui
numeri primi: la congettura di Reimann che rimane
ad oggi un problema irrisolto
Nella generalizzazione della serie armonica,
definita funzione zeta:
Trova il legame magico tra musica e numeri primi, tra le onde
sinusoidali e la legge di distribuzione dei numeri primi.
20
Riemann: il paesaggio zeta
Applicando la funzione zeta anche nel
campo dei numeri complessi riesce a
definire un paesaggio
quadridimensionale
La grande intuzione è che:
L'andamento della funzione zeta
(ed in particolare la distribuzione
dei suoi zeri) risulta quindi legato
alla distribuzione dei numeri primi
immersi nell'insieme dei numeri
naturali.
21
Riemann: la stima insufficiente
La stima di Riemann
migliorava di molto la stima
effettuata da Gauss, ma
ancora l’errore persisteva.
Riemann era convinto che
tale errore poteva essere
eliminato….
Aveva ragione!
N
Numero di primi (N)
Sovrastima funzione
di Gauss
Sovrastima
funzione di
Reimann
100
25
5
1
1,000
168
10
0
10,000
1,229
17
-2
100,000
9,592
38
-5
1,000,000
78,498
130
29
107
664,579
339
88
108
5,761,455
754
97
109
50,847,534
1,701
-79
1010
455,052,511
3,104
-1.828
1011
4,118,054,813
11,588
-2.318
1012
37,607,912,018
38,263
-1.476
1013
346,065,536,839
108,971
-5.773
1014
3,204,941,750,802
314,890
-19.200
1015
29,844,570,422,669
1,052,619
73.218
1016
279,238,341,033,925
3,214,632
327.052
22
Riemann: la musica dei numeri primi
Riemann trovò il modo di
eliminare gli errori aggiungendo
le armoniche definite dalla
funzione zeta nei punti al livello
del mare (negli zeri).
Ogni onda sinusoidale aggiunta
riesce a “smussare” la funzione
di Gauss e avvicinarla alla
distribuzione reale dei numeri
primi.
23
La musica dei numeri primi
¾ La musica dei primi 785 numeri primi:
Definito in 4 ottave, tra tutti i primi gemelli sono stati inserite
delle pause.
Tutte le note sono determinate da p mod (29), dove p è un
numero primo.
La melodia è in Do maggiore
24
Rompere i numeri = rompere i codici?
L'algoritmo RSA è stato descritto nel 1977 da Ron Rivest, Adi Shamir e Len
Adleman al MIT.
¾ Nel 1983 l'algoritmo fu brevettato negli Stati Uniti dal MIT (brevetto
4.405.829). Il brevetto è scaduto il 21 settembre 2000.
RSA è basato sul problema complesso della fattorizzazione in numeri
primi.
Il suo funzionamento base è il seguente:
1. si scelgono due numeri primi, e abbastanza grandi da garantire
sicurezza
2. si calcola il loro prodotto
, chiamato modulo (dato che tutta
l'aritmetica seguente è modulo n)
3. si sceglie poi un numero (chiamato esponente pubblico), più piccolo
e coprimo di
4. si calcola il numero (chiamato esponente privato) tale che
25
Rompere i numeri = rompere i codici?
Per rompere RSA occorre riuscire a trovare un metodo computazionalmente
veloce per risolvere le seguenti fattorizzazioni
15 = p x q
126619= p x q
31074182404900437213507500358885679300373460228427
27545720161948823206440518081504556346829671723286
78243791627283803341547107310850191954852900733772
4822783525742386454014691736602477652346609= p x q
Se riuscite a fattorizzare l’ultima vincete 20.000 dollari!
26
Come rompere i numeri?
Quali sono i modi possibili per fattorizzare un numero in fattori primi:
(1) Dividere i numeri uno dietro l’altro finché non si trovano i fattori primi. È
un po’ lento!
(2) Il metodo di fattorizzazione di Fermat. Se i numeri primi sono vicini il
metodo è molto veloce.
(3) Il metodo di Sieve: È molto complesso ma non ancora abbastanza veloce.
(4) La dimostrazione della congettura di Riemann will produrrà un metodo
veloce per la fattorizzazione.
(5) L’invenzione dei computer quantistici permetterà di fattorizzare numeri
grandi in pochi secondi. Un computer quantistico può effettuare
simultaneamente tutte le operazioni del metodo (1).
27
La Sicurezza Assoluta
«È veramente da mettere in dubbio che l'intelligenza umana possa creare un
cifrario che poi l'ingegno umano non riesca a decifrare con l'applicazione
necessaria» (Edgar Allan Poe)
¾ Cifrario di Vernam:
è un sistema crittografico dove la chiave è lunga quanto il testo e non
riutilizzabile ("One Time Pad“). Il cifrario di Vernam è l'unico sistema
crittografico la cui sicurezza è comprovata da una dimostrazione matematica.
Testo in chiaro: C I A
O
Chiave:
AJRF
-------------------------------Testo cifrato: C R R
T
28