il mistero dei numeri primi e la sicurezza informatica€¦ · l’altro quesito che sorge...
TRANSCRIPT
1
Il mistero dei numeri primi e la sicurezza informatica
Laura Listanti
Docente di matematica Liceo scientifico Renato Donatelli Terni
Premessa
Brian Butterworth professore di neuropsicologia cognitiva allrsquoUniversity College di Londra e
autore del libro Intelligenza matematica in esso cosigrave si esprime ldquodi tutte le facoltagrave che ci hanno innalzato
dallo stato di cavernicoli e utilizzatori di strumenti in pietra a quello di edificatori di cittagrave grandiose e della
scienza moderna una delle piugrave importanti ndash e anche una delle meno comprese ndash egrave quella di usare i numeri
[hellip] forse se troviamo cosigrave difficile renderci conto di quanto siamo dipendenti dai numeri egrave proprio percheacute
guardiamo il mondo inforcando lenti numeriche che non ci togliamo mairdquo
In effetti i numeri influenzano quasi tutti gli aspetti piugrave tipicamente umani della nostra vita Oggi
usiamo abitualmente i numeri in quasi ogni nostra attivitagrave per contare oggetti per dire che ora egrave per fare
statistiche per giocare drsquoazzardo per comprare per vendere per classificare beni e servizi temperature e
quozienti di intelligenza sono espressi in valori numerici
Ma se i numeri sono importanti per la loro ovvia utilitagrave lo sono ancor piugrave per la maniera in cui essi
hanno foggiato il nostro modo di concepire il mondo
Quello dei numeri egrave il linguaggio con cui vengono formulate le teorie scientifiche e tutti coloro che
si sono occupati di scienza dallrsquoantichitagrave a oggi sono stati affascinati da essi come si puograve evincere dalle
seguenti citazioni riportate in ordine cronologico
Proclo (410-485 circa) ldquoOvunque crsquoegrave il numero crsquoegrave bellezzardquo
Galileo Galilei(1564-1642) ldquo questo grandissimo libro (io dico lrsquouniverso) [hellip] non si puograve intendere
se prima non si impara a intender la lingua e conoscer i caratteri nersquo quali egrave scritto Egli egrave scritto in lingua
matematicardquo
Albert Einstein (1879-1955) [i numeri sono] ldquola controparte simbolica dellrsquouniversordquo
Carl Friedrich Gauss (1777-1855) ldquose la matematica egrave la regina delle scienze la teoria dei numeri egrave
la regina della matematicardquo
Piergiorgio Odifreddi (1950) [la teoria dei numeri] ldquoegrave forse la disciplina in cui le connessioni fra il
diacronico e il sincronico il classico e il moderno il concreto e lrsquoastratto tipiche della matematica
contemporanea si manifestano nella maniera piugrave spettacolare anche se non la solardquo
2
I numeri primi
I numeri cui ci si riferisce sono i cosiddetti numeri naturali quelli cioegrave che servono per contare 1
2 3 4hellip Essi hanno tra le altre la singolare caratteristica per la quale rispetto a una proprietagrave si dividono
in due classi quelli che ne sono dotati e quelli che ne sono privi Ad esempio rispetto alla proprietagrave di
essere pari si dividono tra quelli che lo sono come 2 4 6 8 ecc e quelli che non lo sono cioegrave i dispari
come 1 3 5 7 ecc Rispetto alla proprietagrave di essere un quadrato perfetto si dividono tra quelli che lo sono
come 1=12 4=22 9=32 16=42 e quelli che non lo sono Esistono molte altre ripartizioni ma di gran lunga
la piugrave importante egrave quella che li divide tra numeri che sono primi e quelli che non lo sono
Un numero naturale si dice primo se egrave diverso da 1 e non egrave il prodotto di altri numeri naturali diversi
da seacute stesso e da uno o anche se egrave divisibile esattamente solo per 1 e per seacute stesso Per esempio 5 egrave un
numero primo percheacute non puograve essere ottenuto come prodotto di fattori diversi da 1 e da 5 solo 1x5=5 11 egrave
un numero primo percheacute solo 1x11=11 viceversa un numero che non egrave primo si dice composto ed esso
allora si puograve esprimere come prodotto di due o piugrave numeri naturali diversi da 1 e da seacute stesso Per esempio
15 non egrave un numero primo quindi egrave composto percheacute 15=3x5 10 non egrave primo percheacute 10=2x5
Consideriamo 30 esso non egrave primo percheacute 30=5x6 ma egrave anche vero che 30= 3x10 come anche 30=2x15
come anche 30=2x3x5 quindi potremo concludere che esistono diversi modi di esprimere 30 come
prodotto di numeri minori di 30 e diversi da 1 e da 30 Consideriamo 21 esso non egrave primo percheacute 21=3x7
e non esistono altri modi di esprimere 21 come prodotto di numeri minori di 21 e diversi da 1 e da 21
Sembrerebbe esserci allora una diversitagrave di comportamento tra i numeri composti alcuni come 30
ammettono diverse scomposizioni in fattori altri come 21 ne ammettono una sola Non egrave cosigrave Infatti
quando scriviamo 30=5x6 il fattore 5 egrave primo mentre 6 non egrave primo pertanto 6=2x3 e di conseguenza
30=5x2x3 quando scriviamo 30=3x10 il fattore 3 egrave primo mentre 10 non lo egrave e pertanto 10=2x5 e di
conseguenza 30=3x2x5 allo stesso modo quando scriviamo 30=2x15 2 egrave primo mentre 15=3x5 e di
conseguenza 30=2x3x5 In ogni caso si giunge allrsquounica scomposizione 30=2x3x5 in cui i fattori 2 3 e 5
sono tutti primi e nella quale puograve essere cambiato solo lrsquoordine dei fattori in base alla proprietagrave
commutativa della moltiplicazione
Concludendo un numero naturale o egrave primo o egrave composto e ogni numero composto si puograve
esprimere in un solo modo come prodotto di numeri primi Questrsquoultima affermazione nota giagrave ai tempi
dei Greci ha un ruolo cosigrave importante nel sistema dei numeri da meritare il nome di teorema fondamentale
dellrsquoaritmetica ed evidenzia il ruolo essenziale che assumono i numeri primi in tutto il sistema dei numeri
Essi sono i veri e propri atomi dellrsquoaritmetica Come ogni molecola esistente nel mondo fisico puograve essere
costruita utilizzando gli atomi della tavola periodica degli elementi chimici ogni intero che non sia primo
puograve essere costruito moltiplicando questi elementi di base che sono i numeri primi e che quindi sono la
tavola periodica del matematico
Padroneggiare questi elementi di base offre al matematico la speranza di poter scoprire nuovi
metodi per costruire la mappa di un percorso che attraversi le smisurate complessitagrave del mondo
matematico
3
Ma a dispetto della loro natura fondamentale e della semplicitagrave con cui sono formulati essi sono
considerati gli oggetti di studio piugrave misteriosi essendo generosi di moltissimi problemi di facile
formulazione ma molto difficili da risolvere
Nonostante i numeri primi siano studiati da migliaia di anni sono piugrave i problemi ancora aperti che
quelli risolti
Si puograve ben dire che il problema dei numeri primi costituisce lrsquoossessione per eccellenza della
comunitagrave dei matematici Quasi tutti tra i piugrave grandi hanno dedicato le loro ricerche alla teoria dei numeri
Proviamo quindi a ripercorrere la trama di questa ossessione attraverso i suoi risultati piugrave
significativi per giungere alle applicazioni che essa trova oggi nella progettazione di quei sistemi che
garantiscono la riservatezza delle comunicazioni elettroniche
Mi preme perograve prima sottolineare tre aspetti singolari che emergeranno da questo percorso
Tutti i matematici che si sono occupati di teoria dei numeri lo hanno fatto percheacute il suo studio ha
sempre avuto il fascino di una forma di pura contemplazione senza il peso di possibili conseguenze
pratiche e proprio per questo essa egrave stata sempre considerata la ldquoverardquo matematica Valgano a questo
proposito le parole di Henri Poincareacute ldquolo scienziato non studia la Natura percheacute egrave utile farlo la studia
percheacute ne trae diletto e ne trae diletto percheacute la Natura egrave bella Se non fosse bella non varrebbe la pena di
conoscerla e se non valesse la pena di conoscere la natura la vita non sarebbe degna di essere vissutardquo e
quelle di Godfrey H Hardy ldquola lsquoverarsquo matematica dei lsquoverirsquo matematici quella di Fermat di Eulero di
Gauss di Abel e di Riemann egrave quasi totalmente lsquoinutilersquo [hellip] Non egrave possibile giustificare la vita di nessun
vero matematico professionista sulla base dellrsquoutilitagrave del suo lavorordquo
Oggi invece i numeri primi sono diventati lo strumento fondamentale per il mondo del commercio
elettronico che dipende interamente dalla loro comprensione Questa che puograve sembrare una
contraddizione in realtagrave non lo egrave in quanto ciograve che distingue la ldquoverardquo matematica non egrave lrsquoutilitagrave dei suoi
risultati ma drsquoaltro canto se essa egrave tale i suoi risultati dovranno prima o poi trovare utili applicazioni
comunque vada E la teoria dei numeri ne egrave una prova
Lrsquoaltro aspetto egrave che lrsquoattuale applicazione si fonda sulle scoperte relative ai numeri primi compiute
da Pierre Fermat nel XVII secolo ma la sua validitagrave dipende da un problema che non si egrave stati ancora in
grado di risolvere
Infine solo con metodi non elementari egrave stato possibile dimostrare molti dei teoremi sui numeri
primi dove la parola elementare non significa facile ma estraneo alla teoria di cui lrsquoenunciato del teorema
fa parte La dimostrazione di un teorema di una certa teoria con metodi elementari usando cioegrave solo metodi
inerenti alla teoria stessa puograve essere a volte molto piugrave complicata se non impossibile Egrave questo il caso per
esempio come vedremo piugrave avanti del teorema fondamentale sui numeri primi che necessita del ricorso
alla funzione logaritmica e dellrsquoultimo teorema di Fermat dimostrato nel 1995 che fa ricorso a teorie di
matematica superiore
4
La distribuzione dei numeri primi
Una delle prime e piugrave naturali domande che ci si egrave posti riguardo ai numeri primi egrave stata ldquoquanti
sonordquo
La risposta fu data da Euclide dimostrando che i numeri primi sono infiniti La dimostrazione
condotta con metodi elementari e riportata nel suo libro Gli Elementi scritto nel 300 aC egrave considerata
una delle piugrave belle e deliziosamente ingegnose della storia della matematica Essa parte dal presupposto che
i numeri primi non sono infiniti da cui si deduce che dovragrave esistere un elenco finito di numeri primi p1 p
2
p3hellip pn dove pn indica lrsquoultimo Si costruisce ora il numero N= p
1 middot p
2 middot p
3 middothellip middot pn +1 il quale risulteragrave o
primo o composto Se N egrave primo per come egrave stato costruito egrave un primo maggiore di pn contraddicendo
quindi il presupposto Se N egrave composto allora puograve essere scritto come prodotto di alcuni dei numeri
dellrsquoelenco ed essere quindi divisibile per qualcuno di essi Ma per come egrave stato costruito N diviso per
ciascuno di essi dagrave sempre resto 1 e perciograve deve contenere come fattore un primo diverso da quelli
dellrsquoelenco contraddicendo quindi il presupposto In ogni caso sia se N egrave primo o composto ci saragrave un
numero primo maggiore di pn il che consente di concludere che lrsquoelenco dei numeri primi continua
allrsquoinfinito
Facciamo qualche prova
bull N1=2+1=3 (primo)
bull N2=2middot3+1=7 (primo)
bull N3=2middot3middot5+1=31 (primo)
bull N4=2middot3middot5middot7+1=211 (primo)
bull N5=2middot3middot5middot7middot11+1=2311 (primo)
bull N6=2middot3middot5middot7middot11middot13+1=30031 =59 509 (composto)
bull N7=2middot3middot5middot7middot11middot13middot17+1=510511 =19middot97middot277 (composto)
In effetti nessuno sa se ci sia un numero infinito di primi della forma
N= p1 middot p
2 middot p
3 middothellip middot pn +1 neacute viceversa se ci sia un numero infinito di numeri composti della stessa
forma (sebbene almeno una delle due possibilitagrave deve essere vera)
Lrsquoaltro quesito che sorge altrettanto spontaneo ma che non egrave stato ancora risolto riguarda la
distribuzione dei numeri primi allrsquointerno dei numeri naturali In sostanza ci si chiede se crsquoegrave un ordine
prevedibile nella successione dei numeri primi una regola per stabilire quale saragrave per esempio il
centesimo numero primo oppure se essi si succedono in modo casuale
A ragione questo problema si egrave meritato lrsquoappellativo di ossessione dei numeri primi percheacute i
matematici mal sopportano lrsquoidea di dover ammettere che non esista una spiegazione del modo in cui la
natura ha scelto tali numeri e per una disciplina che si dedica a trovare andamenti regolari e ordine nel
caos essi rappresentano la sfida estrema
E in effetti se si prova a esaminare un elenco di numeri primi si scopre immediatamente che egrave
impossibile prevedere quando appariragrave il successivo Per esempio tra i dieci numeri maggiori o uguali a 2 e
5
minori o uguali a 11 ci sono 5 numeri primi 2 3 5 7 11 esattamente la metagrave tra i successivi dieci da 12
a 21 ci sono 3 numeri primi 13 17 19 cioegrave il 30 tra 22 e 31 ci sono ancora 3 numeri primi 23 29 31
cioegrave ancora il 30 mentre tra 32 e 41 ci sono 2 numeri primi 37 41 cioegrave il 20 e cosigrave tra 42 e 51 si
potrebbe pensare che andando avanti le cose si regolarizzino ma non egrave cosigrave
Proseguendo nel conteggio per esempio nellrsquointervallo dei cento numeri che precedono 10 000 000
i numeri primi sono 9 999 901 9 999 907 9 999 929 9 999 931 9 999 937 9 999 943 9 999 971
9 999 973 9 999 991 cioegrave lo 009 mentre nellrsquointervallo dei cento numeri che seguono 10 000 000 i
numeri primi sono 10 000 019 10 000079 cioegrave lo 002
Si osserva inoltre che esistono intervalli di numeri naturali di ampiezza arbitraria allrsquointerno dei
quali non si incontra alcun numero primo Questrsquoultima osservazione egrave addirittura ovvia
Ricordiamo che il prodotto dei numeri naturali da 1 a n si indica con il simbolo n (da leggersi n
fattoriale) cioegrave n=1sdot2sdot3sdothellipsdot(nndash2)sdot(nndash1)sdotn
Ad esempio 5=1sdot2sdot3sdot4sdot5 10=1sdot2sdot3sdot4sdot5sdot6sdot7sdot8sdot9sdot10
Considerato il numero n si ha che
n=nsdot(nndash1)sdot(nndash2)sdot(nndash3)sdothellipsdot3sdot2sdot1 egrave divisibile per ciascuno dei numeri tra 1 e n
n+2 egrave divisibile per 2 in quanto sia n che 2 sono divisibili per 2
n+3 egrave divisibile per 3 in quanto sia n che 3 sono divisibili per 3
hellip
n+n egrave divisibile per n in quanto sia n che n sono divisibili per n
Abbiamo cosigrave trovato un intervallo di numeri naturali da n+2 a n+n consecutivi e nessuno di essi
primo Dato che n puograve essere qualsiasi si vede che esistono sicuramente lunghi tratti senza numeri primi
Ancora oggi il metodo piugrave veloce per trovare tutti i primi inferiori a un numero prefissato N egrave
dovuto a Eratostene (276-194 aC) bibliotecario della grande biblioteca di Alessandria che i piugrave
conoscono per aver misurato il raggio della Terra (in un tempo in cui pochi credevano che fosse sferica)
ma che i teorici dei numeri ricorderanno per sempre per il suo crivello
Tale metodo consiste nello scrivere in ordine tutti i numeri naturali minori di N (figura 1)
cancellando tutti i multipli di 2 tranne 2 tra i rimanenti tutti i multipli di 3 tranne 3 e cosigrave via fino ad aver
eliminato tutti i numeri composti Tutti i numeri rimasti saranno i numeri primi minori di N
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100
Figura 1 Il metodo del crivello di Eratostene per trovare i numeri primi
6
Facciamo un esempio vogliamo scrivere lrsquoelenco dei numeri primi minori 100
Scriviamo in ordine tutti i primi cento numeri naturali a partire da 2
bull cancelliamo i multipli di 2
bull cancelliamo i multipli di 3
bull cancelliamo i multipli di 5
bull cancelliamo i multipli di 7
Fermiamoci qui e osserviamo che quando abbiamo a che fare con un numero primo p i suoi multipli
per fattori piugrave piccoli di p sono stati giagrave eliminati e il primo che non lo egrave stato saragrave p2 Per esempio nel caso
in cui p fosse 5 il primo multiplo a non essere ancora stato eliminato egrave 25 infatti 10 egrave stato eliminato come
multiplo di 2 15 egrave stato eliminato come multiplo di 3 20 egrave stato eliminato come multiplo di 2 25 egrave il
primo non eliminato percheacute non egrave multiplo di 2 neacute di 3 pertanto la procedura di cancellazione termina con
p=7 infatti se p=11 allora p2=121 e poicheacute la tavola arriva fino a 100 tutti i multipli di 11 sono giagrave stati
eliminati
Tutti i numeri non cancellati (quelli in grassetto) sono i primi compresi nellrsquointervallo tra 2 e 100
estremi inclusi essi sono 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83
69 97
Alla ricerca dei numeri primi
Proprio nel tentativo di farsi unrsquoidea di come si distribuiscono i numeri primi eminenti matematici
come Pierre de Fermat Marin Mersenne Leonhard Euler (Eulero) Carl Friedrich Gauss ecc hanno
compilato e analizzato lunghi elenchi di numeri primi alla ricerca di formule in grado di produrre se non
tutti almeno ldquomoltirdquo di essi
Pierre de Fermat (1601-1665) ipotizzograve che tutti i numeri della forma F(N)= siano primi In effetti
per N=1
5141212)1( 221
=+=+=+=F
per N=2
171161212)2( 422
=+=+=+=F
per N=3
25712561212)3( 823
=+=+=+=F
per N=4
655371655361212)4( 1624
=+=+=+=F
sono tutti primi ma giagrave per N=5
67004176414294967297142949672961212)5( 3225
times==+=+=+=F
risultato scoperto da Eulero nel 1732 questo egrave uno dei pochi casi in cui Fermat cadde in errore forse
percheacute come si vede questi numeri detti numeri di Fermat crescono molto rapidamente giagrave il quinto
7
numero ha dieci cifre ed era al di fuori della portata dei suoi calcoli Ma egrave un ottimo esempio per
convincerci che la veritagrave di una affermazione non puograve basarsi sulla verifica della sua validitagrave in alcuni casi
particolari
Oggi sappiamo che F(N) egrave composto per tutti i valori di N da 5 a 21 come pure per vari altri valori
e lrsquoipotesi piugrave diffusa ma non dimostrata egrave che F(N) sia composto per tutti i valori di Ngt4 sostenuta dal
fatto che non si egrave trovato sperimentalmente un F(N) con Ngt4 che sia primo
Carl Friedrich Gauss (1777-1855) riuscigrave a dimostrare che se lrsquoN-esimo numero di Fermat egrave primo
allora egrave possibile costruire geometricamente con riga e compasso un poligono regolare di N lati Dove per
riga si intende una riga non graduata che serva solo a tracciare linee rette e per compasso uno strumento
capace solo di tracciare circonferenze o archi di circon-ferenza e non per esempio di riportare misure In
questo modo allrsquoetagrave di soli 19 anni Gauss riuscigrave a costruire il poligono di 17 lati Allo stesso modo si
potrebbe costruire un poligono regolare di 65537 lati essendo questrsquoultimo un primo di Fermat
Marin Mersenne (1588-1648) egrave famoso fra lrsquoaltro per il suo ruolo di intermediario nella comunitagrave
scientifica internazionale del Seicento In assenza di periodici scientifici infatti diverse persone si
assunsero il compito di comunicare a un gran numero di corrispondenti ogni scoperta scientifica di cui
fossero venuti a conoscenza e Mersenne fu uno di questi A lui egrave dovuta la pubblicazione per la prima
volta di gran parte del lavoro di Fermat attraverso le sue lettere
Anche Mersenne venne preso dalla smania di trovare delle formule che producessero numeri primi
e in questa ricerca compilograve un elenco di numeri primi p per lrsquoesattezza p=2 3 5 7 13 17 19 31 67
127 257 per i quali riteneva che fosse primo anche il numero della forma M(p)= che viene oggi chiamato
numero di Mersenne Nessuno sa come Mersenne sia stato in grado di fare questa affermazione ma
comunque egli era sorprendentemente vicino alla veritagrave Soltanto nel 1947 quando comparvero le
calcolatrici da tavolo fu possibile verificare la sua asserzione Aveva fatto solo 5 errori M(67) M(257)
non sono primi M(61) M(89) M(107) sono primi
Si osserva facilmente come al crescere di p il numero M(p) diventi rapidamente molto grande
bull M(2)=22ndash1=3
bull M(3)=23ndash1=7
bull M(4)=24ndash1=15=3middot5
bull M(5)=25ndash1=31
bull M(6)=26ndash1=63=7middot3middot3
bull M(7)=27ndash1=127
bull M(8)=28ndash1=255=5middot3middot17
hellip
bull M(11)=211ndash1=2047=23middot89
hellip
bull M(17)=217ndash1=131071
8
E solo per alcuni valori di p essi sono primi per cui lrsquoidea sarebbe quella di cercare i valori di p per
cui M(p) egrave primo Ma ciograve non egrave facile percheacute la primalitagrave di p egrave condizione solo necessaria per la primalitagrave
di M(p) infatti egrave vero che
1 se M(p) egrave primo allora anche p egrave primo
2 se p non egrave primo allora M(p) non egrave primo vedi ad esempio M(4) M(6) M(8)
ma se p egrave primo non egrave detto che M(p) sia primo vedi ad esempio M(11)
A tuttrsquooggi non si sa se esista unrsquoinfinitagrave di numeri di Mersenne che siano primi (detti primi di
Mersenne) neacute se esista unrsquoinfinitagrave di numeri di Mersenne che non siano primi anche se entrambe le
asserzioni appaiono verosimili Infatti aumentando le capacitagrave di calcolo dei calcolatori aumenta il
numero dei primi di Mersenne conosciuti (tabella 1) La ricerca di primi di Mersenne sempre piugrave grandi ha
valore di semplice curiositagrave ma il loro calcolo egrave utile per la misurazione della potenza di calcolo dei
calcolatori Per esempio per dimostrare che il numero di Mersenne M8191 di 2466 cifre non egrave primo usando
il test di Lucas-Lehmer ci vollero 100 ore la prima volta nel 1953 sul computer ILLIAC-I Da allora il
tempo di calcolo egrave sceso drasticamente da 5 a 2 ore su un IBM 7090 40 minuti su un ILLIAC-II da 3 a un
minuto su un IBM 360-91 e 10 secondi su un CRAY-I
valore di p 2p-1 anno autore computer 2 3 3 7 5 31 7 127 13 8191 1461 anonimo 17 131071 1588 Pietro Antonio Cataldi 19 524287 1588 Pietro Antonio Cataldi 31 2 147 483 647 1750 Leonhard Euler 61 19 cifre 1883 I M Pervushin calcolatore meccanico 89 27 cifre 1911 R E Powers calcolatore meccanico 107 33 cifre 1914 R E Powers calcolatore meccanico 127 39 cifre 1876-1914 Francois Edouard Anatole Lucas calcolatore meccanico 521 157 cifre 30 gennaio
1952 Raphael M Robinson SWAC
607 183 cifre 30 gennaio 1952
Raphael M Robinson SWAC
1279 386 cifre 25 giugno 1952
Raphael M Robinson SWAC
2203 664 cifre 7 ottobre 1952
Raphael M Robinson SWAC
2281 687 cifre 9 ottobre 1952
Oct 9 Raphael M Robinson SWAC
3217 969 cifre 1957 Hans Riesel BESK 4253 1281 cifre 1961 Alexander Hurwitz e John L
Selfridge IBM 7090
4423 1332 cifre 1961 Alexander Hurwitz e John L Selfridge
IBM 7090
9689 2917 cifre 1963 Donald B Gillies ILLIAC 2 9941 2993 cifre 1963 Donald B Gillies ILLIAC 2 11213 3376 cifre 1963 Donald B Gillies ILLIAC 2 19937 6002 cifre 1971 Bryant Tuckerman IBM 36091
9
valore di p 2p-1 anno autore computer 21701 6533 cifre 1978 Landon Curt Noll e Laura A
Nickel Cyber 174
23209 6987 cifre 1979 Landon Curt Noll Cyber 174 44497 13395 cifre 1979 David Slowinski e Harry L
Nelson Cray 1
86243 25962 cifre 1982 David Slowinski Cray 1 110503 33265 cifre 1988 Walter N Colquitt e Luther
Welsch Jr
132049 39751 cifre 1983 David Slowinski Cray X-MP 216091 65050 cifre 1985 David Slowinski Cray X-MP 756839 227832 cifre 1992 David Slowinski e Paul Gage Cray 2 859433 258716 cifre 1994 David Slowinski e Paul Gage Cray C90 1257787 378632 cifre 1996 David Slowinski e Paul Gage Cray T94 1398269 420921 cifre 1996 Joel Armengaud George
Woltman e GIMPS PC Pentium 90
2976221 895932 cifre 1997 Gordon Spence George Woltman e GIMPS
PC Pentium 100
3021377 909526 cifre 1998 Roland Clarkson Woltman Scott Kurowski e GIMPS
Pentium 200
6972593 2098960 cifre 1999 Nayan Hajratwala Woltman Kurowski e GIMPS
Pentium II 350
13466917 4053946 cifre 2001 Michael Cameron e GIMPS 800 MHz AMD T-Bird PC
20996011 6320430 cifre 2003 Michael Shafer e GIMPS 2 Gh Pentium 4 Dell Dimension PC
24036583 7235733 cifre 2004 Josh Findley e GIMPS 24 GHz Pentium 4 Windows XP PC
25964951 7816230 cifre 2005 Martin Nowak e GIMPS 24 GHz Pentium 4 Windows XP PC
30402457
9152052 cifre
2005 Curtis Cooper Steven Boone CMSU e GIMPS
Lavoro coordinato di 700 computers
GIMPS = Great Internet Mersenne Prime Search (wwwmersenneorg)
Tabella 1 La ricerca dei numeri primi di Mersenne
Unrsquoaltra notevole formula che dagrave luogo a molti numeri primi fu scoperta da Eulero nel 1772 La
formula x2+x+41 fornisce il seguente elenco di numeri primi inserendo tutti i numeri compresi fra 0 e 39
41 43 47 53 61 71 83 97 113 131 151 173 197 223 251 281 313 347 383 421 461 503
547 593 641 691 743 797 853 911 971 1033 1097 1163 1231 1301 1373 1447 1523 1601
Eulero comprese che il processo era destinato a interrompersi a un certo punto Infatti per x=41 si
ha
412+41+41 = 412+2middot41 = 41middot (41+2) = 41middot43
che non egrave primo ma anche per x=40 il numero che si ottiene non egrave primo infatti
402+40+41= 40 middot (40+1)+(40+1)=(40+1) middot (40+1)
Ciononostante Eulero fu molto colpito dalla capacitagrave della sua formula di produrre tanti numeri
primi da domandarsi per quali altri numeri diversi da 41 si sarebbe potuto ottenere un risultato simile
Scoprigrave che si poteva scegliere anche n=2 3 5 11 17 percheacute la formula x2+x+n producesse numeri primi
per ogni valore di x compreso fra 0 e nndash2
10
Possiamo concludere che la ricerca di formule semplici che producano soltanto numeri primi egrave stata
inutile ed egrave ancora meno probabile che conduca a buoni risultati il tentativo di trovare una formula che
produca tutti i numeri primi Lo stesso Eulero nel 1751 scriveva ldquoci sono alcuni misteri che la mente
umana non penetreragrave mai Per convincercene non dobbiamo far altro che gettare unrsquoocchiata alle tavole dei
numeri primi Ci accorgeremo che non vi regna neacute ordine neacute leggerdquo
La svolta di Gauss
Il passo decisivo nella ricerca di una legge da cui dipenda la distribuzione dei numeri primi fu
compiuto quando si rinunciograve agli inutili tentativi di trovare una formula che generasse tutti i numeri primi o
desse il numero esatto di essi contenuti nei primi n numeri interi A compiere la svolta fu Gauss il quale
affrontograve il problema da un altro punto di vista Infatti egli si chiese se era possibile prevedere non quale
fosse la posizione di un numero primo rispetto a quello precedente ma se era possibile prevedere quanti
fossero i numeri primi minori o uguali a un certo numero x Egli introdusse a tale scopo la funzione )(xπ =
numero dei primi minori o uguali a x e poteacute verificare per esempio che 4)10( =π percheacute i numeri primi
minori o uguali a 10 sono 2 3 5 7 e cioegrave 4 e la distanza media tra due numeri primi successivi
nellrsquointervallo tra 1 e 10 egrave 104 uguale a 25 Nella tabella 2 sono riportati alcuni valori della funzione e
della distanza media
Tabella 2 Alcuni valori della fiunzione )(xπ
Osservando tali risultati egli notograve che ogni volta si moltiplica x per 10 si aggiunge 23 al rapporto
xπ(x) almeno per x abbastanza grande Proprio questo legame tra moltiplicazione e addizione (che egrave la
relazione racchiusa in un logaritmo) e il fatto che 23 egrave approssimativamente il valore rappresentato dal
portarono Gauss a ipotizzare che
( )x
x
xlog=
π
Da cui
11
( )( )x
xx
logcongπ
Questa congettura si rivelograve poi vera e oggi egrave nota come teorema dei numeri primi Una notevole
conseguenza del teorema dei numeri primi egrave che ldquola probabilitagrave che un numero intero di x cifre preso a
caso sia primo egrave circa 1log(10x)rdquo Infatti lrsquoespressione
( )( )x
xx
logcongπ
in altre parole significa che nellrsquointervallo tra 1 e x si incontra un primo circa ogni log(x) e cioegrave la
probabilitagrave che nellrsquointervallo dei numeri le x un numero preso a caso sia primo egrave 1log(x) Ad esempio
nellrsquointervallo dei numeri minori di 10 000 000 uno ogni log(10 000 000) egrave primo Essendo
log(10 000 000) = log(107) = 7log(10) asymp 1611hellip ciograve vuol dire che dei numeri minori di 10 000 000 circa 1
su 16 egrave primo e perciograve crsquoegrave circa una probabilitagrave su 16 che un numero di 7 cifre sia primo
Al momento attuale molti sono i problemi non ancora risolti Tra questi ricordiamo
1 la congettura dei primi gemelli esistono infiniti numeri primi p tali che p+2 egrave ancora
primo Ad esempio 3 e 3+2 5 e 5+2 17 e 17+2 29 e 29+2 ecc
2 la congettura di Goldbach ogni intero pari maggiore di 2 puograve essere scritto come somma di
due numeri primi Ad esempio 4 = 2+2 6 = 3+3 8 = 3+5 10 = 5+5 12 = 5+7 ecc
La difficoltagrave fondamentale di tali problemi risiede nel fatto che i numeri primi sono definiti
mediante proprietagrave moltiplicative mentre i problemi in questione coinvolgono proprietagrave additive
Di gran lunga il piugrave importante tra i problemi non risolti egrave quello che va sotto il nome di ipotesi di
Riemann anche percheacute fu proprio la novitagrave del metodo in essa contenuto a far compiere il passo decisivo
per la dimostrazione del teorema dei numeri primi compiuta indipendentemente lrsquouno dallrsquoaltro nel 1896
dai matematici Jacques Hadamard e Charles de la Valleacutee-Poussin
Ricordiamo che lrsquoipotesi di Riemann inserita allrsquoottavo posto nellrsquoelenco dei famosi ventitreacute
problemi irrisolti presentati da David Hilbert al Congresso internazionale dei matematici del 1900 e
lanciati come sfida alla comunitagrave dei matematici del ventesimo secolo egrave ancora rimasto tale cioegrave senza
dimostrazione
Egrave oggi considerato uno dei problemi piugrave difficili del nuovo millennio Nel 2000 il Clay Mathematics
Institute ha offerto un milione di dollari a chi riusciragrave a darne una dimostrazione
Grazie ai calcolatori attualmente egrave stato possibile verificare tali congetture in moltissimi casi Ad
esempio la congettura di Goldbach egrave stata verificata per tutti i pari fino a 100 milioni mentre lrsquoipotesi di
Riemann egrave stata verificata per un miliardo e mezzo di casi ma ciograve non egrave sufficiente per dimostrarne la
veritagrave Ed egrave proprio questo quello che distingue la matematica dalle altre scienze dove una qualsiasi
ipotesi sostenuta da verifiche sperimentali egrave ritenuta valida fincheacute non contraddetta da un caso contrario
mentre in matematica un solo caso contrario serve a dimostrare la falsitagrave dellrsquoipotesi la cui veritagrave per
contro deve essere dimostrata per tutti i casi possibili il che ovviamente puograve avvenire solo
indipendentemente dalle verifiche di casi particolari anche se molti
12
Ed egrave questa una delle peculiaritagrave piugrave belle della matematica Qualsiasi affermazione dimostrata egrave
eterna e immutabile si pensi allrsquoinfinitagrave dei numeri primi ciograve egrave vero per Euclide ma rimane vero ancora
oggi senza possibilitagrave di smentite
Come ebbe a dire il matematico Hermann Hakel ldquoNella maggior parte delle scienze una
generazione demolisce quello che laltra ha costruito e ciograve che uno ha fatto un altro lo disfa Solo nella
matematica ogni generazione aggiunge un nuovo piano alla vecchia strutturardquo
E che ciograve susciti lrsquoidea della bellezza egrave bene sintetizzato dalle parole di Bertrand Russell ldquoLa
matematica vista dalla giusta angolazione non possiede solo la veritagrave ma la suprema bellezza una
bellezza fredda e austera come quella della scultura una bellezza che non fa appello ai nostri sentimenti
piugrave grossolani che non ha gli ornamenti sgargianti della musica o della pittura una bellezza pura e
sublime capace della rigorosa perfezione che egrave propria solo della piugrave grande arterdquo
Anche se non egrave possibile presentare in termini semplici lrsquoipotesi di Riemann in quanto coinvolge
concetti di matematica superiore proviamo a delinearne le linee essenziali
Nel 1737 Eulero introdusse e studiograve una funzione detta funzione ζ (zeta) di Eulero cosigrave definita
sum+infin
=
gtisin++++==1
1 4
1
3
1
2
11
1)(
nxxxx
xRxperdefinitan
xζ
e sempre a Eulero egrave dovuta la seguente identitagrave
( )
1
111
11
17
7
15
5
13
3
12
2 prod
minus=sdot
minussdot
minussdot
minussdot
minussdot
minus=
px
x
x
x
x
x
x
x
x
x
x
x
p
pxζ
dove il prodotto egrave esteso a tutti i numeri primi
Ed egrave proprio questa identitagrave che egrave alla base della notevole importanza assunta dalla funzione ζ nella
teoria dei numeri e in particolare per quanto riguarda la distribuzione dei numeri primi nellrsquoinsieme dei
naturali Infatti a destra di essa appaiono esplicitamente i numeri primi mentre a sinistra compare la
funzione ζ definita indipendentemente da essi
Riemann nel 1859 propose di considerare la funzione ζ come funzione di variabile complessa
cioegrave definita per x numero complesso ed effettuograve il cosiddetto prolungamento analitico di ζ allrsquointero piano
complesso costruendo la nuova funzione ζ oggi nota come funzione zeta di Riemann Egli provograve che gli
zeri della funzione ζ (cioegrave i valori della variabile per cui la funzione restituisce il valore 0) sono x = ndash2
x = ndash4 x = ndash6hellip detti zeri banali di ζ e alcuni numeri complessi (non reali) x con parte reale compresa tra
0 e 1 estremi inclusi Lrsquoipotesi di Riemann afferma che tutti gli zeri non banali di ζ hanno la caratteristica
di avere la parte reale uguale a 21
Dalla validitagrave di questa ipotesi discende una serie enorme di proprietagrave sui numeri primi Ci sono
attualmente centinaia di ldquoquasi teoremirdquo che iniziano con ldquosupponiamo che lrsquoipotesi di Riemann sia
verahelliprdquo Se lrsquoipotesi venisse dimostrata tutti questi ldquoquasi teoremirdquo diventerebbero veri teoremi
13
I test di primalitagrave e la fattorizzazione
Abbiamo fin qui concentrato lrsquoattenzione sul comportamento dei numeri primi ma come egrave possibile
preso un intero a caso x provare se x egrave primo o composto
Il metodo piugrave ovvio consiste nel dividere il numero x per tutti gli interi che lo precedono Infatti se
una qualunque di tali divisioni dagrave resto zero il numero x egrave composto e divisore e quoziente sono suoi
fattori mentre se nessuna di tali divisioni per ciascuno degli interi minori x dagrave resto zero il numero x egrave
primo
In effetti la procedura delle divisioni puograve essere interrotta allrsquointero minore della in quanto se x egrave
composto esso saragrave il prodotto di almeno due fattori per esempio x= F1sdotF2 ed essendo x=x sdot x se
F1gt x F2 lt x Ad esempio 29= 2929 sdot e 529 cong quindi si puograve fermare la procedura quando il
divisore egrave 5 Infatti 292 dagrave resto 1 293 dagrave resto 2 294 dagrave resto 1 295 dagrave resto 4 Si puograve quindi
concludere che 29 egrave primo percheacute se avesse avuto un fattore maggiore di 5 ne avrebbe avuto sicuramente
uno minore di 5 il che non egrave
Ma anche limitando le divisioni alla radice quadrata lrsquoalgoritmo sarebbe comunque inapplicabile
percheacute per giungere a conclusione richiede un tempo che cresce esponenzialmente al crescere del numero
di cifre di n pertanto puograve risultare intollerabilmente lungo anche con gli strumenti di calcolo piugrave veloci
anni secoli piugrave della vita presunta dellrsquoUniverso Ad esempio egrave stato dimostrato che il numero 244 497ndash1
formato da 13 595 cifre egrave primo Se un calcolatore fosse in grado di controllare un milione di divisioni al
secondo e si fermasse alla radice quadrata del numero egrave stato calcolato che gli occorrerebbero 106684 anni
per espletare il suo compito Lrsquoinconveniente deriva dal fatto che il metodo delle divisioni non solo ci dice
se il numero egrave primo o composto ma risolve anche il problema della fattorizzazione di un numero in
quanto nel caso in cui il numero risulta composto ci fornisce i fattori della sua scomposizione
A tuttrsquooggi egrave facile trovare numeri primi grandi o testare la primalitagrave di un numero mentre egrave
difficile fattorizzare un intero che sia il prodotto di due numeri primi grandi Ovviamente i termini ldquofacilerdquo
ldquodifficilerdquo ldquogranderdquo sono relativi alla conoscenza e alla tecnologia disponibili Attualmente sono
considerati ldquograndirdquo numeri di alcune centinaia di cifre mentre ldquofacilerdquo rappresenta un tempo di secondi e
ldquodifficilerdquo di secoli
Lrsquoefficacia dei test di primalitagrave attualmente usati dipende dal fatto che egrave possibile stabilire se un
numero egrave primo senza essere costretti a trovarne i fattori qualora risultasse composto Alcuni metodi usati
sono di tipo probabilistico cioegrave stabiliscono che un intero egrave probabilmente primo con una probabilitagrave di
errore che si puograve rendere piccola quanto si vuole
Il piugrave semplice al tempo stesso velocissimo e potente si basa sul piccolo teorema di Fermat Il
teorema stabilisce che se p egrave un numero primo e a un intero minore di p allora apndasha egrave un multiplo di p cioegrave
egrave divisibile per p
Ad esempio
bull se p=7 e a=2 allora 27ndash2=128ndash2=126=7middot18 cioegrave multiplo di 7
bull se p=7 e a=3 allora 37ndash3=2187ndash3=2184=7middot312 cioegrave multiplo di 7
14
bull se p=7 e a=4 allora 47ndash4=16384ndash4 = 16380 = 7middot2340 cioegrave multiplo di 7
bull se p=5 e a=4 allora 45ndash4=1024ndash4=1020=5middot204 cioegrave multiplo di 5
bull se p=3 e a=4 allora 43ndash4=64ndash4=60=3middot20 cioegrave multiplo di 3
Lrsquoimportanza del teorema sta nel fatto che ci fornisce un metodo per stabilire se un numero egrave primo
o no infatti costruiamo un numero del tipo apndasha verifichiamo se egrave multiplo di p se non lo egrave siamo sicuri
che p non egrave primo Ad esempio vogliamo sapere se 15 egrave primo costruiamo
215ndash2=32768ndash2=32766
32766=15middot2184+6
cioegrave non egrave divisibile per 15 quindi sicuramente 15 egrave composto e infatti 15=3middot5
Ma cosa si puograve dire se invece apndasha egrave divisibile per p Sfortunatamente non possiamo essere sicuri
che p sia primo anche se egrave molto probabile che lo sia
Proviamo 217ndash2=131072ndash2=131070=17middot7710 e infatti 17 egrave primo Provando 2341ndash2 si trova che
esso egrave divisibile per 341 ma 341 non egrave primo essendo 341=11middot31 Sono detti pertanto pseudoprimi i
numeri composti che passano il test Non proviamo a calcolare 2341 percheacute sarebbe un numero
mostruosamente grande fuori dalla nostra portata ma vedremo tra poco come si puograve aggirare lrsquoostacolo
Riassumendo il piccolo teorema di Fermat afferma che egrave vero
1 se p egrave primo e a egrave un intero minore di p allora apndasha egrave divisibile per p
2 se apndasha non egrave divisibile per p allora p non egrave primo
ma se apndasha egrave divisibile per p allora p puograve essere primo ma anche composto ciograve percheacute la divisibilitagrave per p
egrave condizione necessaria ma non sufficiente percheacute p sia primo Concludendo possiamo dire che usando
questo teorema per verificare la primalitagrave di un numero se scopriamo che ap-a non egrave divisibile per p siamo
sicuri che p egrave composto ma se egrave divisibile per p allora p egrave probabilmente primo nel senso che puograve essere
un primo autentico o pseudoprimo
La cosa interessante egrave che la probabilitagrave che un numero composto sia uno pseudoprimo (cioegrave che
superi il test di primalitagrave ma non sia primo come per esempio 341) su una base casuale diminuisce
fortemente allrsquoaumentare del numero Un numero di 1000 cifre composto ha circa una possibilitagrave su 10123
di essere uno pseudoprimo su una base scelta a caso La tabella 3 riporta tali probabilitagrave in funzione del
numero di cifre
Cifre in x Limite superiore per P(x)
Cifre in x Limite superiore per P(x)
Cifre in x
Limite superiore per P(x)
60 00716 80 00000846 100 00000000277
120 528middot10ndash12 150 149middot10ndash17 200 385middot10ndash27
300 58middot10ndash29 400 57middot10ndash42 500 23middot10ndash55
700 18middot10ndash82 1000 12middot10ndash123 2000 86middot10ndash262
5000 76middot10ndash680 10000 16middot10ndash1331 100000 13middot10ndash10584
Tabella 3 Probabilitagrave che un numero composto sia pseudoprimo
Nel 2002 tre ricercatori indiani Manindra Agrawal Neeraj Kayal e Nitin Saxena hanno costruito un
algoritmo denominato AKS (dalle iniziali dei nomi) sempre basato sulla fondamentale proprietagrave enunciata dal
15
piccolo teorema di Fermat ma che risulta deterministico e che riduce in maniera drastica il tempo di calcolo
Lrsquoalgoritmo fornisce una svolta significativa in un settore lungamente atteso e di grande interesse pratico ma
per ora non sembra che possa avere immediata applicazione in quanto molto piugrave lento dei test probabilistici i
quali drsquoaltra parte sono quasi certi per i numeri primi di centinaia di cifre che servono attualmente in
crittografia
Storia della crittografia
La crittografia che letteralmente significa scrittura nascosta nasce dalla necessitagrave di segretezza di alcune
informazioni e pertanto con tale termine intendiamo lo studio dei metodi che consentono la trasmissione sicura
dellrsquoinformazione
Drsquoaltro canto lrsquoesistenza di informazioni segrete genera il desiderio di svelarle e da tale desiderio nasce
la crittoanalisi con cui intendiamo lo studio di metodi che consentono la decifrazione dei messaggi crittografati
La storia della crittografia drsquoaltra parte altro non egrave che la secolare battaglia tra crittografi e crittoanalisti
Infatti ogni sistema crittografico rimane valido fincheacute un crittoanalista non individua un suo punto debole sulla
base del quale riesce a elaborare il sistema di decifrazione
Crittografi e crittoanalisti insieme hanno dato un grande contributo al progresso scientifico e tecnologico
Infatti tutti i metodi della crittografia e della crittoanalisi fanno ricorso a metodi e strumenti di una vasta varietagrave
di scienze come la matematica la linguistica la teoria dellrsquoinformazione la fisica quantistica le quali a loro
volta sono da essi arricchite e stimolate
Lrsquoidea su cui si basa un metodo crittografico consiste nel concordare tra mittente e destinatario che
vogliono scambiarsi un messaggio senza che venga intercettato da terzi una procedura per alterare il testo in
chiaro del messaggio Il destinatario puograve ricavare il testo originale applicando al testo cifrato la procedura
inversa Chi intercetta il messaggio non conoscendo la procedura non puograve ricostruire il messaggio La sicurezza
del metodo sta nella difficoltagrave da parte del crittoanalista di poter ricostruire la procedura dallrsquoanalisi del
messaggio cifrato
Prima dellrsquoera informatica i metodi crittografici erano essenzialmente due per trasposizione o per
sostituzione
Nella trasposizione le lettere sono mutate di posto generando di fatto un anagramma Ma la
trasposizione non puograve essere casuale Infatti nel caso di messaggi brevi non sarebbe sicura in quanto i pochi
caratteri alfabetici che costituiscono il messaggio possono essere combinati in pochi modi diversi per cui
diventa facile ricostruire il messaggio per tentativi Ad esempio la parola ldquomiordquo consta di 3 caratteri alfabetici
esistono al massimo sei sequenze diverse mio moi imo iom omi oim analizzandole tutte e sei egrave facile
ricostruire la sequenza ldquomiordquo Ma al crescere della lunghezza del messaggio cresce mostruosamente anche il
numero delle sequenze infatti un anagramma di una parola di n lettere altro non egrave che una permutazione di n
elementi e si dimostra che il numero totale delle permutazioni di n elementi egrave dato da n (si legga n fattoriale)
uguale al seguente prodotto n(nndash1)(nndash2)(nndash3)hellip(nndash (nndash1)) Pertanto se il messaggio egrave costituito ad esempio da
20 lettere i possibili anagrammi sono 20=20middot19middot18middot17middot16middot15middot14middot13middot12middot11middot10middot9middot8middot7middot6middot5middot4middot3middot2middot1 cioegrave piugrave di 1000
miliardi e anche se si potesse controllare un anagramma al secondo ci vorrebbero piugrave di trentuno secoli per
analizzarli tutti In questo caso la comunicazione risulterebbe sicura essendo impossibile analizzare tutte le
16
possibili sequenze e ricostruire il messaggio ma di fatto egrave inutilizzabile anche dal destinatario percheacute di fronte
allo stesso problema
Per rendere efficace tale metodo egrave necessario che mittente e destinatario si accordino su un criterio di
trasposizione fissato in anticipo e piugrave egrave complicato tale criterio e piugrave egrave sicuro il metodo
Esiste il metodo della trasposizione cosiddetta a inferriata Esso consiste nella trascrizione di un testo
lungo due linee orizzontali una superiore e una inferiore passando da una allrsquoaltra a ogni successivo carattere
alfabetico Finita la trascrizione la seconda fila di caratteri saragrave accodata alla prima per dare origine al testo
cifrato Ad esempio
testo del messaggio incontriamoci stasera alle sette
testo del messaggio cifrato icnraoitsralstenotimccsaealeet
Il destinatario ricostruisce il testo originale applicando la trasposizione inversa
Esistono molti altri tipi di trasposizione per esempio si puograve variare il numero delle file su cui trascrivere
il messaggio oppure si puograve passare da una fila allrsquoaltra ogni due caratteri anzicheacute dopo ogni singolo carattere e
cosigrave via Da osservare che ogni carattere alfabetico mantiene la propria identitagrave ma cambia la posizione
Nella sostituzione ogni carattere alfabetico del messaggio originale viene sostituito con un altro carattere
alfabetico secondo un criterio stabilito In questo caso ogni carattere alfabetico mantiene la posizione ma
cambia la propria identitagrave
Sostanzialmente esso necessita di determinare come primo passo un alfabeto cifrante che egrave ottenuto
rimescolando secondo un criterio lrsquoalfabeto ordinario In questo modo a ogni carattere dellrsquoalfabeto ordinario
corrisponde un carattere dellrsquoalfabeto cifrante Per cifrare il messaggio si sostituisce ogni carattere del messaggio
con il corrispondente carattere dellrsquoalfabeto cifrante Per decifrare il messaggio si applica la procedura inversa
Il primo esempio documentato di cifratura per sostituzione si trova nel De bello gallico di Giulio Cesare
detto anche cifrario di Cesare Qui lrsquoalfabeto cifrante era ottenuto da quello ordinario spostando a destra di tre
posti ogni carattere alfabetico ad esempio per cifrare il messaggio si sostituisce ogni lettera con la
corrispondente dellrsquoalfabeto cifrante (figura 2)
17
Figura 2 Cifrario di Giulio Cesare
Per decifrare si sostituisce ogni lettera del messaggio cifrato utilizzando la corrispondenza inversa
Come si puograve facilmente osservare in questo metodo lrsquoalfabeto cifrante altro non egrave che una
riorganizzazione dellrsquoalfabeto ordinario che si puograve ottenere con un qualsiasi spostamento tra 1 e il numero delle
lettere dellrsquoalfabeto ordinario Per esempio nel caso dellrsquoalfabeto italiano che consta di 21 lettere si possono
effettuare 20 diversi spostamenti e ottenere quindi 20 diversi alfabeti cifranti Essendo lrsquoalfabeto cifrante una
riorganizzazione dellrsquoalfabeto ordinario non egrave detto che questa debba essere ottenuta utilizzando il criterio
dello spostamento ma puograve coincidere con un qualsiasi anagramma dellrsquoalfabeto ordinario Si vede quindi
facilmente come aumentano gli alfabeti cifranti nel nostro caso il loro numero per quanto detto
precedentemente uguaglia il numero delle permutazioni di 21 elementi e cioegrave 21 e cioegrave oltre 50 miliardi di
miliardi
A partire da questo esempio cerchiamo di chiarire in termini generali il significato di metodo
crittografico intendendo con esso un algoritmo che mediante una chiave trasforma un messaggio in chiaro in
un messaggio cifrato o crittogramma
Ad esempio nel metodo descritto sopra lrsquoalgoritmo equivale alla procedura con cui ogni lettera
dellrsquoalfabeto in chiaro egrave sostituita dalla corrispondente lettera dellrsquoalfabeto cifrante la chiave equivale al
particolare alfabeto cifrante scelto per la cifratura o decifrazione di un particolare crittogramma
Inoltre crsquoegrave da sottolineare lrsquoimportanza concettuale della distinzione tra algoritmo e chiave Infatti la sola
conoscenza dellrsquoalgoritmo senza la chiave non permette di decifrare il crittogramma Ed egrave questo uno dei
principi fondamentali della crittografia formulato in modo definitivo nel 1883 dallrsquoolandese Auguste
Kerckhoffs von Nieuwenhof noto anche come legge di Kerckhoffs ldquola sicurezza di un crittosistema non deve
dipendere dal tener celato il crittoalgoritmo La sicurezza dipenderagrave solo dal tener celata la chiaverdquo
Le caratteristiche di un efficace sistema crittografico possono essere riassunte nelle seguenti
1 segretezza della chiave
2 semplicitagrave della chiave (per evitare possibili malintesi o errori al momento dello scambio tra
mittente e destinatario)
3 alto numero di potenziali chiavi tra cui scegliere
18
Come si puograve notare la 2) e la 3) sono collegate tra loro infatti nel sistema descritto sopra si potrebbe
scegliere una chiave piugrave semplice sacrificando il numero di chiavi potenziali
Infatti invece di generare lrsquoalfabeto cifrante da una riorganizzazione casuale dellrsquoalfabeto ordinario lo si
puograve fare a partire da una parola chiave come nel seguente esempio Supponiamo di accordarci sulla parola
chiave lsquolaurarsquo si eliminano eventuali spazi e lettere ripetute quindi la parola chiave diventa lsquolaurrsquo a questo
punto la sequenza l a u r saragrave lrsquoinizio dellrsquoalfabeto cifrante cui seguiranno tutte le altre lettere mancanti in
ordine alfabetico partendo dallrsquoultima lettera della chiave per cui lrsquoalfabeto cifrante che si ottiene saragrave l a u r s t
v z b c d e f g h i m n o p q
I crittosistemi basati sulla sostituzione hanno dominato la scena per tutto il primo millennio della nostra era
fincheacute i crittoanalisti non trovarono il suo punto debole ed elaborarono un metodo per decifrarne i crittogrammi prodotti
La violazione di tali sistemi si basa su unrsquoidea dovuta per prima a crittoanalisti arabi nella quale si
combinano conoscenze di linguistica statistica e matematica nota con il nome di analisi delle frequenze
Essa egrave descritta dallo studioso del IX secolo Abu Yusuf ibn Ishaq al-Kind sopran-nominato il filosofo
degli arabi in una sua monografia dal titolo Sulla decifrazione dei messaggi crittati ritrovata nellrsquoarchivio
ottomano Sulaimaniyyah di Istanbul solo nel 1987 Nel testo si legge
Un modo di svelare un messaggio crittato se conosciamo la lingua dellrsquooriginale consiste nel trovare
un diverso testo chiaro nella stessa lingua abbastanza lungo da poter calcolare la frequenza di ciascuna
lettera
Chiamiamo ldquoprimardquo quella che compare piugrave spesso ldquosecondardquo quella che la segue per frequenza
ldquoterzardquo la successiva e cosigrave via fino a esaurire tutte le lettere del campione di testo chiaro
Esaminiamo poi il testo in cifra che vogliamo interpretare ordinando (in base alla frequenza) anche i
suoi simboli Troviamo il simbolo piugrave comune e rimpiazziamolo con la ldquoprimardquo lettera dellrsquoesempio
chiaro il simbolo che lo segue per frequenza sia rimpiazzato dalla ldquosecondardquo lettera il successivo simbolo
piugrave comune sia rimpiazzato dalla ldquoterzardquo e cosigrave via fino ad aver preso in considerazione tutti i simboli del
crittogramma che intendevamo svelare
Tabella 4 Frequenze delle diverse lettere in italiano
Per superare lrsquoanalisi delle frequenze furono ideati diversi nuovi metodi crittografici tra cui ricordiamo
1 il metodo di sostituzione omofonica
2 il metodo di sostituzione polialfabetica
19
Il metodo di sostituzione omofonica consiste nel sostituire ogni lettera con un numero di simboli per
esempio numeri proporzionale alla sua frequenza Cosigrave ad esempio la lettera a avendo una frequenza di 11 74
viene sostituita da 11 simboli la lettera b con un solo simbolo la lettera c con 4 simboli ecc secondo la tabella 5
Il metodo di sostituzione polialfabetica consiste nellrsquouso di piugrave alfabeti cifranti su unrsquoidea di Leon
Battista Alberti che propose di utilizzarne due Lrsquoalgoritmo consiste nel sostituire la prima lettera del messaggio
in chiaro con la corrispondente del I alfabeto cifrante la seconda lettera con la corrispondente del II alfabeto
cifrante la terza con la corrispondente del I e cosigrave via passando alternativamente dal I alfabeto al secondo Come
nellrsquoesempio della figura 3
Tabella 5 Corrispondenza lettere e simboli nella sostituzione omofonica
Figura 3 Il metodo di sostituzione polialfabetica
Su tale idea si basa il metodo di Blaise de Vigenegravere diplomatico francese nato nel 1523 il quale utilizza
tanti alfabeti cifranti quante sono le lettere dellrsquoalfabeto in chiaro ad esempio nellrsquoalfabeto italiano che consta
di 21 lettere utilizza 21 alfabeti cifranti
Il primo passo consiste nel costruire la tavola di Vigenegravere in cui nella prima riga egrave riportato lrsquoalfabeto in
chiaro e in ognuna delle 21 righe successive egrave riportato un alfabeto cifrante spostato di una lettera rispetto a
quello della riga precedente cosigrave nella riga 1 egrave riportato lrsquoalfabeto spostato di una lettera nella riga 2 quello
spostato di due lettere nella riga 3 quello spostato di tre fino alla riga 20 in cui egrave riportato quello spostato di 20
lettere (figura 4)
20
Figura 4 La tavola di Vigenegravere
Il secondo passo consiste nello scegliere una parola chiave per esempio lsquoverorsquo Pertanto il messaggio in
chiaro ldquonon andarerdquo verrebbe cifrato come nella figura 5
La differenza sostanziale tra la cifratura omofonica e quella polialfabetica egrave che in quella omofonica a
ogni lettera corrispondono piugrave simboli ma ogni simbolo egrave il corrispondente di una sola lettera cioegrave egrave una
corrispondenza 1rarr m che invertita diventa mrarr 1 in quella polialfabetica a ogni lettera corrispondono piugrave
simboli e anche ogni simbolo egrave il corrispondente di piugrave lettere cioegrave mrarr m che rimane tale anche invertendola
Il vantaggio della cifratura polialfabetica egrave pertanto la sua resistenza allrsquoanalisi delle frequenze Oltre ad
ammettere un enorme numero di chiavi infatti si puograve scegliere qualunque parola del dizionario qualunque
combinazione di parole si puograve perfino ricorrere a neologismi rendendo impossibile il controllo di tutte le chiavi
possibili Ed ecco percheacute egrave ritenuta piugrave affidabile e non ha mai smesso di essere usata
Figura 5 Cifratura polialfabetica del messaggio ldquonon andarerdquo
21
Oggi sono noti tutti i punti deboli del sistema di Vigenegravere ed esistono vari procedimenti per decifrare i
crittogrammi generati da tale sistema che sfruttano ad esempio la modularitagrave nel ripetere la chiave o
osservazioni sulle ripetizioni del testo cifrato Ci sono testimonianze storiche che uno di tali procedimenti sia
stato ideato da Sir Charles Babbage famoso per aver progettato e mai realizzato la macchina alle differenze
progenitrice degli odierni calcolatori La prima descrizione resa pubblica del metodo perograve egrave del 1863 portata a
compimento dallrsquoufficiale prussiano F W Kasiski
Unrsquoosservazione decisiva fu che le insidie del metodo di Babbage potevano essere evitate utilizzando
nella cifratura di Vigenegravere una chiave molto lunga e fatta da lettere che si succedono in modo casuale se un
messaggio cifrato non presenta delle ripetizioni se non egrave possibile tentare di indovinare la chiave cadono tutti
gli appigli necessari per effettuare con successo la crittoanalisi
Tale osservazione fu ulteriormente sviluppata da G S Vernam che nel 1926 introdusse lrsquoidea di usare
una chiave casuale lunga quanto il messaggio stesso
Oggi sappiamo grazie agli studi di Claude Shannon del 1949 che tale metodo puograve definirsi
ldquoteoricamente sicurordquo
In pratica perograve ciograve comporta la difficoltagrave di costruire lunghe stringhe di lettere assolutamente casuali e di
scambiarsi segretamente e continuamente queste chiavi In sostanza risulta impraticabile per ogni messaggio
scambiato in modo sicuro egrave necessario prima trasmettere in modo sicuro il messaggio contenente la chiave
I metodi usati per buona parte del Novecento sono delle rielaborazioni sempre piugrave complesse delle idee
descritte finora ottenute anche con la costruzione di dispositivi per la meccanizzazione delle procedure di
cifratura e decifratura Un esempio tra i piugrave conosciuti egrave la macchina Enigma usata dai tedeschi durante la
Seconda guerra mondiale inventata dallrsquoingegnere Arthur Scherbius Enigma consisteva di diversi ingegnosi
elementi combinati in un potente e sofisticato dispositivo per la produzione di scritture segrete In particolare ma
macchina aveva tre componenti collegati da fili elettrici una tastiera per immettere le lettere del testo chiaro
unrsquounitagrave scambiatrice che cifra la lettera trasformandola nel corrispondente elemento del crittogramma e un
visore con varie lampadine che accendendosi indicano la lettera da inserire nel crittogramma
Lo sforzo per violare questa cifratura richiese anni di lavoro e fu portato a compimento dalla Scuola
Inglese Governativa di Codici e Cifre di Bletchley Park di cui faceva parte Alan M Turing noto oggi ai piugrave per
i suoi studi sullrsquointelligenza meccanica
La crittografia nellrsquoera dellrsquoinformatica
Nel 1945 fu realizzato ENIAC (Electronic Numerical Integrator And Calculator) unrsquoapparecchiatura
contenente 18 000 valvole elettroniche capace di effettuare 5000 calcoli al secondo considerato il capostipite
dei moderni calcolatori
Dopo il 1945 fu lrsquoinformatica a fare da protagonista nella battaglia tra crittografi e crittoanalisti operando
una decisiva svolta nelle metodologie di entrambi Infatti i metodi precedenti lrsquoera dellrsquoinformatica basavano la
propria sicurezza sullrsquoenorme numero di chiavi disponibili e sulla loro lunghezza ma che viene messa in crisi
dalla crescente potenza di calcolo dei computer Un computer molto potente infatti potrebbe individuare quella
giusta in pochi minuti anche nel caso di un milione di chiavi da esaminare
Tutti i metodi crittografici esaminati finora necessitano di
22
1 un algoritmo generale di cifratura G
2 di una chiave K che deve rimanere segreta
3 di un algoritmo di decifrazione H=Gndash1 (inverso di G)
e agiscono secondo il seguente schema
il messaggio in chiaro M tramite lrsquoalgoritmo G e la chiave K viene cifrato in MC questrsquoultimo tramite
lrsquoalgoritmo H e la stessa chiave K viene decifrato in M (figura 6)
Figura 6 Schema di metodi crittografici
La sicurezza di tali sistemi risiede interamente nella segretezza delle chiavi Ne segue che per distribuire
agli utenti le chiavi egrave necessario ricorrere a canali sicuri
Gli svantaggi che ne derivano sono essenzialmente
1 difficoltagrave nella distribuzione delle chiavi agli utenti
2 mancata autenticazione dei messaggi mittente e destinatario condividono la stessa chiave
pertanto non crsquoegrave modo di impedire che il destinatario si invii messaggi che poi sembrino
provenienti dal mittente Si pensi quali problemi possono provocare simili falsificazioni nella
posta elettronica o nei sistemi bancari elettronici
La svolta avvenne nel 1976 a opera di Diffie e Hellmann che proposero un metodo detto a chiave
pubblica il quale non necessita di uno scambio preventivo delle chiavi segrete Lrsquodea egrave chiarita dal seguente
esempio noto come esempio del doppio lucchetto
Supponiamo di avere due utenti Mitt e Dest e Mitt voglia spedire un messaggio segreto a Dest
1 Mitt mette il messaggio in una scatola che chiude con il proprio lucchetto LMitt (di cui solo lui ha
la chiave) e spedisce la scatola a Dest
2 Dest ricevuta la scatola aggiunge un proprio lucchetto LDest (di cui solo lui ha la chiave) e
rispedisce la scatola a Mitt
3 Mitt ricevuta la scatola con il doppio lucchetto toglie il lucchetto LMitt e rispedisce la scatola a
Dest
4 Dest ricevuta la scatola puograve togliere il lucchetto LDest e leggere il messaggio di Mitt
Il problema della distribuzione delle chiavi sembra risolto percheacute lo schema a doppia chiave non richiede
la condivisione delle stesse Tuttavia la realizzazione pratica di un tale sistema si scontra con un altro problema
quello riguardante lrsquoordine in cui cifrature e decifrature sono eseguite In altre parole in un sistema crittografico
egrave essenziale lrsquoordine con cui avvengono le rispettive cifrature e decifrature in quanto la cifratura eseguita per
23
ultimo andrebbe decifrata per prima (egrave un porsquo come quando la mattina infiliamo prima le calze e poi le scarpe
ma alla sera togliamo prima le scarpe e poi le calze)
Lrsquoesempio del doppio lucchetto in cui ciograve non avviene sembra tuttavia funzionare come idea percheacute ai
fini dellrsquoapertura della scatola non ha importanza lrsquoordine di rimozione dei lucchetti
Anche se il trucco dei due lucchetti non sembra immediatamente applicabile tuttavia fu il giusto punto di
partenza per la realizzazione di un sistema crittografico che aggira lrsquoostacolo della distribuzione delle chiavi
Infatti lrsquoidea egrave che mittente e destinatario generano ciascuno due chiavi distinte una chiave di cifratura E
(da utilizzare nellrsquoalgoritmo di cifratura) e una chiave di decifrazione D (da utilizzare nellrsquoalgoritmo di
decifrazione) Le chiavi sono correlate nel senso che servono per effettuare operazioni inverse (figura 7)
Figura 7 Le chiavi correlate per effettuare operazioni invese
Il trucco consiste nellrsquoimpossibilitagrave di poter derivare la chiave D dalla chiave E mediante algoritmi di
calcolo (figura 8)
Ogni utente puograve rendere pubblica la propria chiave di cifratura E indicandola magari sullrsquoelenco
telefonico senza compromettere la propria chiave di decifrazione che rimane segreta di pubblico dominio sono
anche gli algoritmi di cifratura G e decifrazione H
Figura 8 Inapplicabilitagrave del metodo del doppio lucchetto
Pertanto lrsquoesempio del doppio lucchetto viene cosigrave interpretato
1 il destinatario pubblica la chiave di cifratura E e mantiene segreta la chiave di decifrazione D
2 il mittente applica GE al messaggio M trasformandolo nel messaggio cifrato MC cioegrave
GE(M)=MC che spedisce al destinatario
3 il destinatario applica HD al messaggio cifrato MC riottenendo M cioegrave HD(MC)=M
24
La sicurezza di un tale sistema si fonda sulla difficoltagrave di poter
1 ritrovare il testo cifrato provando ad applicare lrsquoalgoritmo GE che egrave pubblico ad ogni possibile
testo in chiaro il cui numero pur essendo enorme egrave comunque finito
2 ricavare lrsquoalgoritmo HD da GE
in quanto entrambe le tecniche sono computazionalmente inattuabili nel senso che richiedono un tempo
di calcolo di lunghezza al di fuori di ogni possibile considerazione anche per i piugrave potenti calcolatori
Per descrivere tali algoritmi sono necessari alcuni concetti matematici che andiamo a illustrare
Figura 9 Schema di cifrario a chiave pubblica
Lrsquoaritmetica modulare
Lrsquoaritmetica modulare la cui introduzione egrave dovuta a Gauss costituisce un sistema di calcolo con
importanti applicazioni nei test di primalitagrave e nei metodi che stanno alla base della sicurezza delle comunicazioni
elettroniche Con essa infatti si hanno i seguenti vantaggi 1) si riduce lo spazio dei numeri su cui gli algoritmi
sono chiamati ad operare e quindi si aumenta la velocitagrave di calcolo 2) si riesce a rendere difficili alcuni problemi
computazionali che sono semplici (o addirittura banali) nellrsquoalgebra ordinaria al fine di aumentare la sicurezza
nelle comunicazioni Lrsquoidea egrave semplice ma potente Forse non lo sappiamo ma usiamo spesso laritmetica
modulare Potremmo chiamarla aritmetica dellorologio
Infatti pensiamo ad un normale orologio con 24 ore Se sono le 15 ed un amico ci comunica che saragrave a
casa nostra tra 5 ore sappiamo che egli verragrave alle 20 infatti 15+5=20 Ma se sono le 23 e dobbiamo partire fra 7
ore certamente non diciamo che la partenza saragrave alle 30 anche se 23+7=30 Sappiamo che dovremo partire alle
6 Allo stesso modo se sono le 20 che ora saragrave tra 14 ore Non diremo 34 anche se 20+14=34 ma diremo che
sono le 10 Come si spiega tutto ciograve
Immaginiamo di segnare sul quadrante dellrsquoorologio 24 ore Se la lancetta segna le 23 aggiungere 7 ore
significa spostarsi di 7 posti fino ad arrivare alle 6 Si giunge allo stesso risultato calcolando 23+7=30 ed
osservando che 30=1sdot24+6 o che egrave lo stesso 3024 =1 con resto 6 che significa che 30 lo si ottiene facendo fare
alla lancetta un giro completo piugrave 6
25
Se la lancetta segna le 20 e aggiungiamo 14 ore lrsquoorologio segneragrave le 10 percheacute 20+14=34 ma 3424= 1
con resto 10 per cui 34 lo si ottiene percorrendo un giro completo piugrave 10
Proviamo con il normale orologio a 12 ore I numeri che vediamo sul quadrante sono 0 1 2 3 4 5 6 7
8 9 10 11 Il numero 12 non compare percheacute a partire da 0 trascorse 12 ore torniamo di nuovo a 0 Questa
volta per fare un giro completo occorrono 12 ore Pertanto se sono le 7 che ore saranno tra 24 ore Saranno
ancora le 7 percheacute 7+24=31 ma 3112 = 2 con resto 7 cioegrave si compiono 2 giri completi piugrave 7 se sono le 8 tra 6
ore saranno le 2 percheacute 8+6=14 ma 1412=1 con resto 2 Dagli esempi dovrebbe risultare chiaro allora che ciograve
che contano non sono i risultati delle somme ma i loro resti nelle divisioni per il numero delle ore segnate sul
quadrante dellrsquoorologio
La stessa cosa succede con i giorni della settimana se pensiamo a un orologio con 7 ore sul quadrante
Facciamo corrispondere ai giorni della settimana i numeri da 0 a 6 (figura 10)
domenica Lunedigrave Martedigrave Mercoledigrave Giovedigrave Venerdigrave Sabato darr darr darr darr darr darr darr 0 1 2 3 4 5 6
Figura 10 Corrispondenza dei giorni della settimana con i numeri da 0 a 6
Se per esempio oggi egrave venerdigrave che giorno saragrave tra 12 giorni
Dovremo calcolare 5+12=17 ma i giorni si ripetono ogni 7 pertanto osservando che 177 =2 con resto 3
possiamo concludere che a partire da 5 e aggiungendo 12 si compiono 2 giri completi piugrave 3 ed essendo 3 il
numero corrispondente a mercoledigrave concludiamo che saragrave mercoledigrave Facciamo un altro esempio se oggi egrave
lunedigrave (1) che giorno saragrave tra 20 giorni Calcoliamo 1+20=21 217= 3 con resto 0 quindi saragrave domenica
Il numero n delle ore sullrsquoorologio costituisce quello che si chiama il modulo e individua lrsquoaritmetica di
modulo n in cui lrsquoinsieme dei numeri con i quali si opera indicato con Zn egrave lrsquoinsieme dei possibili resti della
divisione per n e cioegrave Zn=0 1 2 3 hellip nndash1e le operazioni si eseguono con le regole illustrate negli esempi
precedenti
Lrsquoesempio dellrsquoorologio a 24 ore costituisce la cosiddetta aritmetica finita di modulo 24 in essa Z24=0
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 essendo questi ultimi i possibili resti
della divisione per 24 Lrsquoorologio a 12 ore costituisce lrsquoaritmetica finita di modulo 12 in essa Z12=0 1 2 3 4
5 6 7 8 9 10 11 essendo questi ultimi i possibili resti della divisione per 12 Lrsquoesempio dei giorni della
settimana egrave lrsquoaritmetica finita di modulo 7 in cui Z7=0 1 2 3 4 5 6 essendo questi ultimi i possibili resti
della divisione per 7 Riassumiamo costruendo unrsquoaritmetica finita di modulo 4 I possibili resti della divisione
per 4 sono 0 1 2 3 quindi Z4=0123 Lrsquoaddizione e la moltiplicazione in Z4 si esegue come negli esempi
della tabella 6
26
operazioni indicate
Risultato nellrsquoaritmetica ordinaria
Risultato nellrsquoaritmetica modulo 4
2+2 4 0 percheacute 44=1 con resto 0
3+2 5 1 percheacute 54=1 con resto 1
2+1 3 3 percheacute 34=0 con resto 3
3sdot3 9 1 percheacute 94=2 con resto 1
3sdot2 6 2 percheacute 64=1 con resto 2
2sdot2 4 0 percheacute 44=1 con resto 0
Tabella 6 Addizione e moltiplicazione nellrsquoaritmetica finita di modulo 4
Si possono costruire le tavole dellrsquoaddizione e della moltiplicazione dellrsquoaritmetica modulo 4 che costituiscono
le tabelline di questa aritmetica sulla base delle quali si esegue qualsiasi addizione e moltiplicazione modulo 4
Nella tabella 7 sono spiegate le tabelline dellrsquoaritmetica in modulo 4
Tabella 7 Tavole dellrsquoaddizione e della moltiplicazione dellrsquoaritmetica modulo 4
Infine per indicare che due numeri a e b divisi per n danno lo stesso resto si usano le seguenti notazioni
tutte equivalenti tra loro
a=b mod n andashb=0 mod 4 a equiv b (mod n) che si legge a egrave congruo b modulo 4
Esempio
26=12 mod 7 egrave la stessa cosa di
26ndash12=0 mod 7 che egrave la stessa cosa di
26 equiv 12 (mod 7) e tutte e tre stanno a indicare che 26 e 12 divisi per 7 danno lo stesso resto che egrave 5 e
pertanto sono tutti equivalenti a 5
Facciamo vedere come sfruttare lrsquoaritmetica modulare per calcolare potenze come 2341 (figura 11) Il
metodo si basa sulla proprietagrave che il resto del quadrato di un numero a per un dato modulo n egrave uguale al
quadrato del resto dello stesso numero a per lo stesso modulo n cioegrave a2 mod n =(a mod n)2
+ 0 1 2 3
0 0 1 2 3
1 1 2 3 0
2 2 3 0 1
3 3 0 1 2
x 0 1 2 3
0 0 0 0 0
1 0 1 2 3
2 0 2 0 2
3 0 3 2 1
27
Figura 11 Il metodo per calcolare 2341
La funzione di Eulero
Per ogni intero ngt1 si definisce la funzione di Eulero = numero di interi minori di n e primi con esso Ad
esempio
bull ( ) 45 =φ percheacute gli interi minori di 5 sono 1 2 3 4 ed essi sono tutti primi con n
bull ( ) 26 =φ percheacute gli interi minori di 6 sono 1 2 3 4 5 e fra essi solo 1 e 5 sono primi con 6
bull ( ) 67 =φ percheacute gli interi minori di 7 sono 1 2 3 4 5 6 ed essi sono tutti primi con 7
bull ( ) 412 =φ percheacute gli interi minori di 12 sono 1 2 3 4 5 6 7 8 9 10 11 e fra essi solo 1 5 7
11 sono primi con 12
Se si conosce la scomposizione in fattori del numero n il seguente teorema ci fornisce un metodo per
calcolare Infatti esso afferma che per ogni ngt1 non primo ( )
minussdotsdot
minussdot
minussdotnppp
n=nφ 11
11
11
21
dove
p1 p2 hellip pn sono i fattori primi di n presi senza molteplicitagrave
22 mod 341=4
24=(22)2=(22 mod 341)2=42=16mod341=16
28=(24)2=(16)2=256mod341=256
216= (28)2=(256)2=65536mod341=64
232=(216)2=(64)2=4096mod341=4
264=(232)2=42=16mod341=16
2128=(264)2=(16)2=256mod341=256
2256=(2128)2=(256)2=65536mod341=64
2341=2(256+64+16+4+1) 2256 264 216 24 21 x x x x
64 1
1024 mod 341
= 1 x 64
64 x 16
1024 mod 341
1 x 2 =
=
x
28
Ad esempio
essendo 12 = 3sdot2sdot2 ( ) 42
1
3
212
2
11
3
111212 ===φ sdotsdot
minussdot
minussdot
essendo 6=2sdot3 ( ) 22
1
3
26
2
11
3
1166 ===φ sdotsdot
minussdot
minussdot
se n=psdotq ( ) ( ) ( )11111
11
1 minussdotminusminussdotminussdot
minussdot
minussdot qp=q
q
p
pn=
qpn=nφ
Ovviamente se n egrave un numero primo = nndash1
Vale inoltre il seguente teorema di Eulero per ngt1 e per ogni altn e primo con n si ha
Ad esempio per n=6 ( ) 26 =φ infatti i primi con 6 sono 1 e 5 per il teorema di Eulero si ha
2mod1255
2mod1112
2
equiv=
equiv=
per n=5 ( ) 45 =φ e i primi con 5 sono 1 2 3 4 e per il teorema di Eulero si ha
5mod12564
5mod1813
5mod1162
5mod111
4
4
4
4
equiv=
equiv=
equiv=
equiv=
Si puograve notare come nel caso in cui n egrave un numero primo si ritrova il piccolo teorema di Fermat
Infatti per n primo ( )nφ = nndash1 e per il teorema di Eulero per ogni altn e primo con n Ricordiamo infatti
che il piccolo teorema di Fermat afferma che se n egrave un numero primo e a un intero minore di n allora egrave
divisibile per n che con il linguaggio dellrsquoaritmetica modulare diventa che puograve essere riscritto e se a egrave primo
con n allora egrave che egrave equivalente a
Infine si prova che per ogni altn e primo con esso esiste lrsquoinverso di a e esso egrave dato da ( ) 1minusnaφ Infatti
( ) ( ) na=aa nφnφ1mod1 equivsdot minus per il teorema di Eulero Si ricorda che lrsquoinverso di un numero a egrave quel numero che
moltiplicato per a dagrave 1 indicato convenzionalmente con andash1
Ad esempio per n=5 i primi con 5 sono 1 2 3 4 e per ognuno di questi esiste lrsquoinverso infatti
bull lrsquoinverso di 1 egrave ( ) 1mod51111 31415 equivminusminus ===φ
e infatti
bull lrsquoinverso di 2 egrave ( ) 3mod58222 31415 equivminusminus ===φ
e infatti
bull lrsquoinverso di 3 egrave ( ) 2mod527333 31415 equivminusminus ===φ
e infatti
bull lrsquoinverso di 4 egrave ( ) 4mod564444 31415 equivminusminus ===φ
Le funzioni unidirezionali
Chiamiamo funzione da un insieme A a un insieme B qualunque procedura che associa a ogni elemento
di un insieme A (detto dominio) uno e un solo elemento di un insieme B (detto condominio) In simboli f
A rarr B Se poi indichiamo con x il generico elemento dellrsquoinsieme A e con y il generico elemento dellrsquoinsieme B
la f indica la procedura che ad ogni xisinA associa un yisinB e cioegrave y=f(x) ad esempio ldquofare il doppio dihelliprdquo
29
prendendo come dominio e codominio lrsquoinsieme dei numeri interi egrave in questo senso una funzione percheacute dato
ad esempio il numero 3 lo trasforma nel numero 6 come 5 lo trasforma in 10 e cosigrave via
Molte funzioni matematiche sono cosiddette bidirezionali nel senso che egrave facile dato un determinato x
generare il corrispondente y ma egrave altrettanto facile invertire la funzione cioegrave ritrovare lrsquoelemento x originario a
partire dal suo corrispondente
Facciamo qualche esempio
bull funzione xrarr fare il doppiorarr 2sdotx= y 3rarr fare il doppiorarr 2sdot3 = 6
funzione inversa y=2sdotx rarr fare la metagraverarr x 6=2sdot3 rarr fare la metagraverarr 3
bull funzione xrarr fare il quadruplorarr 4sdotxrarr aggiungere 1rarr sdoty=4sdotx +1
5rarr fare il quadruplorarr 4sdot5rarr aggiungere 1rarr 4sdot5 +1=21
funzione inversa y=4sdotx +1rarr sottrarre 1rarr 4sdot xrarr dividere per 4rarr x
21=4sdot5 +1rarr sottrarre 1rarr 4sdot 5rarr dividere per 4rarr 5
Le funzioni unidirezionali sono invece quelle funzioni facilmente calcolabili ma che non si possono invertire
Le funzioni cosiddette pseudounidirezionali (dette anche funzioni trappola a molla segreta) sono invece
quelle funzioni facilmente calcolabili ma che non altrettanto facilmente si possono invertire a meno che non si
conoscano alcune informazioni (la molla segreta) utilizzate nella loro costruzione
Lrsquoaritmetica modulare gioca un ruolo determinante in questo caso infatti permette di trasformare
funzioni bidirezionali in funzioni pseudounidirezionali
Facciamo lrsquoesempio della funzione ldquofare il quadruplordquo in simboli f(x)=4sdotx Egrave facilmente calcolabile
percheacute dato x per ottenere f(x) basta moltiplicare per 4 ma egrave altrettanto facile calcolare la sua inversa percheacute
dato f(x) basta dividere per 4 per ottenere lrsquooriginario x Ma anche se non avessimo la procedura inversa di
dividere per 4 sarebbe facile ritrovare lrsquoelemento originario anche procedendo per tentativi ed eliminazione
infatti se per esempio f(x) =20 si puograve tentare x=3 in tal caso f(x)=12 troppo piccolo quindi x deve essere
maggiore di 3 Si puograve allora pensare a 6 ma f(x)=24 troppo grande quindi x deve essere minore di 6 e cosigrave via
Vediamo cosa accade se calcoliamo utilizzando una aritmetica modulare Per esempio consideriamo la
stessa funzione f(x)=4sdotx in una aritmetica modulo 7 Possiamo osservare che la funzione non si comporta piugrave in
modo regolare come prima per accorgersene basta costruire una tabella (tabella 8)
x 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
f(x)=4sdotx 4 8 12 16 20 24 28 32 36 40 44 48 52 56 60
f(x)=4sdotmod 7 4 1 5 2 6 3 0 4 1 5 2 6 3 0 4
Tabella 8 La funzione f(x)=4sdotx in una aritmetica modulo 7
Anche in questa semplice situazione egrave chiaro che egrave piugrave complicato invertire la funzione e pertanto i valori
di x sono molto meglio protetti Si puograve fare anche lrsquoesempio della funzione esponenziale f(x)=3 x (tabella 9)
Tabella 9 La funzione f(x)=3 x in aritmetica modulo 11
x 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
f(x)=x3 1 8 27 64 125 216 343 512 729 1000 hellip hellip hellip hellip hellip
f(x)=x3 mod 11 1 8 5 9 4 7 2 6 3 10 hellip hellip hellip hellip hellip
30
Il cifrario a chiave pubblica RSA
Uno dei piugrave noti sistemi crittografici a chiave pubblica che sfrutta le idee precedentemente descritte egrave il
metodo RSA proposto dai matematici R L Rivest A Shamir e L Adlemann nel 1978 Esso risolve il problema
dello scambio delle chiavi in quanto queste ultime sono conosciute solamente ai rispettivi proprietari che non le
hanno preventivamente concordate e scambiate
Illustriamo schematicamente come i due utenti Mitt e Dest possano scambiarsi un messaggio segreto
utilizzando il metodo RSA Entrambi Mitt e Dest indipendentemente lrsquouno dallrsquoaltro poi
1 scelgono in modo casuale due numeri primi p q grandi (di 200-300 cifre in base 10)
2 calcolano N = psdotq e Φ(N) = (pndash1)sdot(qndash1)
3 scelgono un intero eltΦ(N) e primo con Φ(N) tale numero e saragrave la chiave pubblica
4 calcolano il numero d inverso di e mod Φ(N) tale cioegrave che esdotdequiv 1mod Φ(N) tale numero d saragrave
la chiave privata
5 rendono pubblici i numeri N ed e
Mitt per spedire un messaggio a Dest compie le seguenti operazioni
1 codifica il messaggio in un modo standard usando i numeri lt N
2 trasforma ogni numero M di tale codifica in Me (mod N) e lo spedisce a Dest
per decodificare il messaggio ricevuto Me Dest calcola (Me)d =Mesdotd =Mndash1=M (modN) riottenendo il messaggio
originale
Figura 12 Schema di cifrario con metodo RSA
31
Figura 13 Esempio di applicazione di metodi RSA
In che cosa consiste la sicurezza del metodo Da quanto esposto si osserva che per decodificare il
messaggio bisogna
1 conoscere d (chiave segreta)
2 essendo d lrsquoinverso di e nellrsquoaritmetica mod Φ(N) essendo e noto egrave necessario conoscere Φ(N)
3 ma noto N per calcolare Φ(N) egrave necessario conoscere i fattori primi di N cioegrave egrave necessario fattorizzare
N che egrave un problema computazionalmente difficile per quanto osservato in precedenza
Anche se non egrave stato dimostrato che non si possa rompere il codice in altro modo e cioegrave senza conoscere Φ(N) e i
fattori di N a tuttrsquooggi si puograve affermare che la sicurezza del metodo dipende essenzialmente dai seguenti fatti
Per codificare il messaggio bisogna saper costruire dei numeri primi grandi e tale operazione egrave
computazionalmente veloce si puograve infatti dimostrare che la complessitagrave computazionale di opportuni test di
primalitagrave per stabilire se un numero n egrave primo utilizzando il linguaggio di quel ramo della matematica nota
come teoria della complessitagrave egrave ldquoquasi-polinomialerdquo
Per violare il sistema bisogna saper fattorizzare interi grandi ottenuti come prodotto di due primi tale
problema egrave computazionalmente ldquolentordquo cioegrave con il linguaggio della teoria della complessitagrave appartiene alla
classe dei problemi non polinomiali Tale marcata differenza tra la velocitagrave di esecuzione delle operazioni di
costruzione di numeri primi grandi e di fattorizzazione di interi grandi garantisce la sicurezza del metodo
almeno per un tempo sufficientemente lungo Ad esempio con la tecnologia attuale lrsquooperazione di
fattorizzazione di un intero di 140 cifre in base 10 prodotto di due numeri primi casuali calcolati in pochi
secondi su un computer disponibile in commercio richiede utilizzando vari supercomputers operanti
parallelamente circa un mese
La RSA Security Inc gestisce una sfida a livello mondiale ove vengono premiati coloro che fattorizzano
gli interi proposti da loro in una particolare lista Ad esempio il 3 dicembre del 2003 egrave stato fattorizzato
32
rsa576 =
188198812920607963838697239461650439807163563379417382700763356422988859715234
665485319060606504743045317388011303396716199692321205734031879550656996221305
168759307650257059
un numero di 174 cifre decimali prodotto di due primi di 87 cifre
p =
398075086424064937397125500550386491199064362342526708406385189575946388957261
768583317
q =
472772146107435302536223071973048224632914695302097116459852171130520711256363
590397527
Le chiavi attualmente utilizzate dallRSA sono a 309 cifre decimali
La firma digitale
Consideriamo al solito un mittente che deve inviare a un destinatario un messaggio m La codifica di m
con il metodo descritto assicura lrsquoautenticitagrave del messaggio ma non fornisce alcuna sicurezza sulla sua
paternitagrave Infatti il messaggio m pur essendo autentico potrebbe essere stato inviato da qualcuno che si spaccia
per il mittente Questa egrave unimportantissima questione particolarmente nella trasmissione di messaggi che oltre
a dover essere segreti devono garantire la loro origine
Si dovrebbe quindi disporre di un analogo della firma manuale detta appunto firma digitale La firma
digitale deve allora essere progettata in modo da possedere le stesse caratteristiche di una firma manuale e cioegrave
lrsquoautenticitagrave la non falsificabilitagrave e lrsquoimpossibiltagrave di essere riutilizzata Facciamo vedere come lo stesso metodo
RSA puograve essere utilizzato per progettare una firma digitale
La situazione egrave la seguente il mittente (di seguito indicato con Mitt) invia un messaggio m con la firma
F al destinatario (di seguito indicato con Dest) Siano a b rispettivamente le chiavi pubblica e segreta di MITT
siano e d rispettivamente le chiavi pubblica e segreta di DEST
La procedura per apporre la firma digitale F al messaggio m egrave illustrata nei seguenti passi riassunti nel
grafico della figura 14
1 Mitt cripta la firma F (cioegrave i suoi dati identificativi) usando la propria chiave segreta (b)
ottenendo Fb
2 il messaggio m con la firma F criptata viene ulteriormente criptato con la chiave pubblica di
Dest (e) ottenendo (m Fb)e
3 Dest decodifica il messaggio con la sua chiave segreta (d) ottenendo
((m Fb)e)d = (me F(be)) d =m(e d)F(be d) = mFb
in cui la firma di Mitt egrave ancora criptata
4 Dest decodifica la firma di Mitt con la chiave pubblica di Mitt (a) ottenendo
(Fb)a = F(ba) = F
33
Grafico firma digitale
Mitt
Dest
pubblica
Fb
e dpubblica
a
((Fb)e)d=(Fb)ed=(Fb)1=Fb
(Fb)a=(F)ba=(F)1=F
ab de
(Fb)e
codifica
codificadecodifica
decodifica
1
2
3
4
5
6
7
8
segreta
b
segreta
Figura 14 Grafico firma digitale
Bibliografia
Thomas Beth Comunicazioni e sicurezza su Internet in ldquoLe Scienzerdquo n 330 febbraio 1996
Brian Butterworth Intelligenza matematica Vincere la paura dei numeri scoprendo le doti innate della mente
Rizzoli Milano 1999
John H Conway Richard K Guy Il libro dei numeri Hoepli Milano 2003
Richard Courant Herbert Robbins Che cosrsquoegrave la matematica Boringhieri Torino 1971
Philip J Davis Il mondo dei grandi numeri Zanichelli Bologna 1973
Keith Devlin Dove va la matematica Bollati Boringhieri Torino 1994
Jean Dieudonneacute Lrsquoarte dei numeri matematica e matematici oggi Mondadori Milano 1989
Martin E Ellmann La crittografia a chiave pubblica in La matematica della complessitagrave Quaderni n 67
settembre 1992 Le Scienze
Paolo Ferragina Fabrizio Luccio Crittografia principi ndash Algoritmi ndash Applicazioni Bollati Boringhieri Torino
2001
Godfrey H Hardy Apologia di un matematico Garzanti Milano 1989
Morris Kline Storia del pensiero matematico Einaudi Milano 1991
Serge Lang La bellezza della matematica Bollati Boringhieri Torino 1991
Mauro Leoncini Modelli di calcolo e complessitagrave computazionale in La matematica computazionale Quaderni
n 84 giugno 1995 Le Scienze
Fabrizio Luccio e Linda Pagli P = NP in La matematica della complessitagrave Quaderni n 67 settembre 1992
Le Scienze
Piergiorgio Odifreddi La Matematica del Novecento dagli insiemi alla complessitagrave Einaudi Torino 2000
34
ldquoPeriodico di matematicherdquo Serie VII Volume 7 Numero 2-3 luglio-dicembre 2000 Mathesis
ldquoPeriodico di matematicherdquo Serie VIII Volume 1 Numero 1 gennaio-marzo 2001 Mathesis
Carl Pomerance Alla ricerca dei numeri primi in ldquoLe Scienzerdquo n 174 febbraio 1983
Simon Singh Codici e segreti la storia affascinante dei messaggi cifrati dallrsquoantico Egitto a Internet Rizzoli
Milano 1999
Marcus du Sautoy Lrsquoenigma dei numeri primi lrsquoipotesi di Riemann lrsquoultimo grande mistero della matematica
Rizzoli Milano 2004
Gary Stix I segreti meglio custoditi la crittografia quantistica egrave passata dalla teoria al laboratorio per
approdare finalmente alle applicazioni in ldquoLe Scienzerdquo n 438 febbraio 2005
2
I numeri primi
I numeri cui ci si riferisce sono i cosiddetti numeri naturali quelli cioegrave che servono per contare 1
2 3 4hellip Essi hanno tra le altre la singolare caratteristica per la quale rispetto a una proprietagrave si dividono
in due classi quelli che ne sono dotati e quelli che ne sono privi Ad esempio rispetto alla proprietagrave di
essere pari si dividono tra quelli che lo sono come 2 4 6 8 ecc e quelli che non lo sono cioegrave i dispari
come 1 3 5 7 ecc Rispetto alla proprietagrave di essere un quadrato perfetto si dividono tra quelli che lo sono
come 1=12 4=22 9=32 16=42 e quelli che non lo sono Esistono molte altre ripartizioni ma di gran lunga
la piugrave importante egrave quella che li divide tra numeri che sono primi e quelli che non lo sono
Un numero naturale si dice primo se egrave diverso da 1 e non egrave il prodotto di altri numeri naturali diversi
da seacute stesso e da uno o anche se egrave divisibile esattamente solo per 1 e per seacute stesso Per esempio 5 egrave un
numero primo percheacute non puograve essere ottenuto come prodotto di fattori diversi da 1 e da 5 solo 1x5=5 11 egrave
un numero primo percheacute solo 1x11=11 viceversa un numero che non egrave primo si dice composto ed esso
allora si puograve esprimere come prodotto di due o piugrave numeri naturali diversi da 1 e da seacute stesso Per esempio
15 non egrave un numero primo quindi egrave composto percheacute 15=3x5 10 non egrave primo percheacute 10=2x5
Consideriamo 30 esso non egrave primo percheacute 30=5x6 ma egrave anche vero che 30= 3x10 come anche 30=2x15
come anche 30=2x3x5 quindi potremo concludere che esistono diversi modi di esprimere 30 come
prodotto di numeri minori di 30 e diversi da 1 e da 30 Consideriamo 21 esso non egrave primo percheacute 21=3x7
e non esistono altri modi di esprimere 21 come prodotto di numeri minori di 21 e diversi da 1 e da 21
Sembrerebbe esserci allora una diversitagrave di comportamento tra i numeri composti alcuni come 30
ammettono diverse scomposizioni in fattori altri come 21 ne ammettono una sola Non egrave cosigrave Infatti
quando scriviamo 30=5x6 il fattore 5 egrave primo mentre 6 non egrave primo pertanto 6=2x3 e di conseguenza
30=5x2x3 quando scriviamo 30=3x10 il fattore 3 egrave primo mentre 10 non lo egrave e pertanto 10=2x5 e di
conseguenza 30=3x2x5 allo stesso modo quando scriviamo 30=2x15 2 egrave primo mentre 15=3x5 e di
conseguenza 30=2x3x5 In ogni caso si giunge allrsquounica scomposizione 30=2x3x5 in cui i fattori 2 3 e 5
sono tutti primi e nella quale puograve essere cambiato solo lrsquoordine dei fattori in base alla proprietagrave
commutativa della moltiplicazione
Concludendo un numero naturale o egrave primo o egrave composto e ogni numero composto si puograve
esprimere in un solo modo come prodotto di numeri primi Questrsquoultima affermazione nota giagrave ai tempi
dei Greci ha un ruolo cosigrave importante nel sistema dei numeri da meritare il nome di teorema fondamentale
dellrsquoaritmetica ed evidenzia il ruolo essenziale che assumono i numeri primi in tutto il sistema dei numeri
Essi sono i veri e propri atomi dellrsquoaritmetica Come ogni molecola esistente nel mondo fisico puograve essere
costruita utilizzando gli atomi della tavola periodica degli elementi chimici ogni intero che non sia primo
puograve essere costruito moltiplicando questi elementi di base che sono i numeri primi e che quindi sono la
tavola periodica del matematico
Padroneggiare questi elementi di base offre al matematico la speranza di poter scoprire nuovi
metodi per costruire la mappa di un percorso che attraversi le smisurate complessitagrave del mondo
matematico
3
Ma a dispetto della loro natura fondamentale e della semplicitagrave con cui sono formulati essi sono
considerati gli oggetti di studio piugrave misteriosi essendo generosi di moltissimi problemi di facile
formulazione ma molto difficili da risolvere
Nonostante i numeri primi siano studiati da migliaia di anni sono piugrave i problemi ancora aperti che
quelli risolti
Si puograve ben dire che il problema dei numeri primi costituisce lrsquoossessione per eccellenza della
comunitagrave dei matematici Quasi tutti tra i piugrave grandi hanno dedicato le loro ricerche alla teoria dei numeri
Proviamo quindi a ripercorrere la trama di questa ossessione attraverso i suoi risultati piugrave
significativi per giungere alle applicazioni che essa trova oggi nella progettazione di quei sistemi che
garantiscono la riservatezza delle comunicazioni elettroniche
Mi preme perograve prima sottolineare tre aspetti singolari che emergeranno da questo percorso
Tutti i matematici che si sono occupati di teoria dei numeri lo hanno fatto percheacute il suo studio ha
sempre avuto il fascino di una forma di pura contemplazione senza il peso di possibili conseguenze
pratiche e proprio per questo essa egrave stata sempre considerata la ldquoverardquo matematica Valgano a questo
proposito le parole di Henri Poincareacute ldquolo scienziato non studia la Natura percheacute egrave utile farlo la studia
percheacute ne trae diletto e ne trae diletto percheacute la Natura egrave bella Se non fosse bella non varrebbe la pena di
conoscerla e se non valesse la pena di conoscere la natura la vita non sarebbe degna di essere vissutardquo e
quelle di Godfrey H Hardy ldquola lsquoverarsquo matematica dei lsquoverirsquo matematici quella di Fermat di Eulero di
Gauss di Abel e di Riemann egrave quasi totalmente lsquoinutilersquo [hellip] Non egrave possibile giustificare la vita di nessun
vero matematico professionista sulla base dellrsquoutilitagrave del suo lavorordquo
Oggi invece i numeri primi sono diventati lo strumento fondamentale per il mondo del commercio
elettronico che dipende interamente dalla loro comprensione Questa che puograve sembrare una
contraddizione in realtagrave non lo egrave in quanto ciograve che distingue la ldquoverardquo matematica non egrave lrsquoutilitagrave dei suoi
risultati ma drsquoaltro canto se essa egrave tale i suoi risultati dovranno prima o poi trovare utili applicazioni
comunque vada E la teoria dei numeri ne egrave una prova
Lrsquoaltro aspetto egrave che lrsquoattuale applicazione si fonda sulle scoperte relative ai numeri primi compiute
da Pierre Fermat nel XVII secolo ma la sua validitagrave dipende da un problema che non si egrave stati ancora in
grado di risolvere
Infine solo con metodi non elementari egrave stato possibile dimostrare molti dei teoremi sui numeri
primi dove la parola elementare non significa facile ma estraneo alla teoria di cui lrsquoenunciato del teorema
fa parte La dimostrazione di un teorema di una certa teoria con metodi elementari usando cioegrave solo metodi
inerenti alla teoria stessa puograve essere a volte molto piugrave complicata se non impossibile Egrave questo il caso per
esempio come vedremo piugrave avanti del teorema fondamentale sui numeri primi che necessita del ricorso
alla funzione logaritmica e dellrsquoultimo teorema di Fermat dimostrato nel 1995 che fa ricorso a teorie di
matematica superiore
4
La distribuzione dei numeri primi
Una delle prime e piugrave naturali domande che ci si egrave posti riguardo ai numeri primi egrave stata ldquoquanti
sonordquo
La risposta fu data da Euclide dimostrando che i numeri primi sono infiniti La dimostrazione
condotta con metodi elementari e riportata nel suo libro Gli Elementi scritto nel 300 aC egrave considerata
una delle piugrave belle e deliziosamente ingegnose della storia della matematica Essa parte dal presupposto che
i numeri primi non sono infiniti da cui si deduce che dovragrave esistere un elenco finito di numeri primi p1 p
2
p3hellip pn dove pn indica lrsquoultimo Si costruisce ora il numero N= p
1 middot p
2 middot p
3 middothellip middot pn +1 il quale risulteragrave o
primo o composto Se N egrave primo per come egrave stato costruito egrave un primo maggiore di pn contraddicendo
quindi il presupposto Se N egrave composto allora puograve essere scritto come prodotto di alcuni dei numeri
dellrsquoelenco ed essere quindi divisibile per qualcuno di essi Ma per come egrave stato costruito N diviso per
ciascuno di essi dagrave sempre resto 1 e perciograve deve contenere come fattore un primo diverso da quelli
dellrsquoelenco contraddicendo quindi il presupposto In ogni caso sia se N egrave primo o composto ci saragrave un
numero primo maggiore di pn il che consente di concludere che lrsquoelenco dei numeri primi continua
allrsquoinfinito
Facciamo qualche prova
bull N1=2+1=3 (primo)
bull N2=2middot3+1=7 (primo)
bull N3=2middot3middot5+1=31 (primo)
bull N4=2middot3middot5middot7+1=211 (primo)
bull N5=2middot3middot5middot7middot11+1=2311 (primo)
bull N6=2middot3middot5middot7middot11middot13+1=30031 =59 509 (composto)
bull N7=2middot3middot5middot7middot11middot13middot17+1=510511 =19middot97middot277 (composto)
In effetti nessuno sa se ci sia un numero infinito di primi della forma
N= p1 middot p
2 middot p
3 middothellip middot pn +1 neacute viceversa se ci sia un numero infinito di numeri composti della stessa
forma (sebbene almeno una delle due possibilitagrave deve essere vera)
Lrsquoaltro quesito che sorge altrettanto spontaneo ma che non egrave stato ancora risolto riguarda la
distribuzione dei numeri primi allrsquointerno dei numeri naturali In sostanza ci si chiede se crsquoegrave un ordine
prevedibile nella successione dei numeri primi una regola per stabilire quale saragrave per esempio il
centesimo numero primo oppure se essi si succedono in modo casuale
A ragione questo problema si egrave meritato lrsquoappellativo di ossessione dei numeri primi percheacute i
matematici mal sopportano lrsquoidea di dover ammettere che non esista una spiegazione del modo in cui la
natura ha scelto tali numeri e per una disciplina che si dedica a trovare andamenti regolari e ordine nel
caos essi rappresentano la sfida estrema
E in effetti se si prova a esaminare un elenco di numeri primi si scopre immediatamente che egrave
impossibile prevedere quando appariragrave il successivo Per esempio tra i dieci numeri maggiori o uguali a 2 e
5
minori o uguali a 11 ci sono 5 numeri primi 2 3 5 7 11 esattamente la metagrave tra i successivi dieci da 12
a 21 ci sono 3 numeri primi 13 17 19 cioegrave il 30 tra 22 e 31 ci sono ancora 3 numeri primi 23 29 31
cioegrave ancora il 30 mentre tra 32 e 41 ci sono 2 numeri primi 37 41 cioegrave il 20 e cosigrave tra 42 e 51 si
potrebbe pensare che andando avanti le cose si regolarizzino ma non egrave cosigrave
Proseguendo nel conteggio per esempio nellrsquointervallo dei cento numeri che precedono 10 000 000
i numeri primi sono 9 999 901 9 999 907 9 999 929 9 999 931 9 999 937 9 999 943 9 999 971
9 999 973 9 999 991 cioegrave lo 009 mentre nellrsquointervallo dei cento numeri che seguono 10 000 000 i
numeri primi sono 10 000 019 10 000079 cioegrave lo 002
Si osserva inoltre che esistono intervalli di numeri naturali di ampiezza arbitraria allrsquointerno dei
quali non si incontra alcun numero primo Questrsquoultima osservazione egrave addirittura ovvia
Ricordiamo che il prodotto dei numeri naturali da 1 a n si indica con il simbolo n (da leggersi n
fattoriale) cioegrave n=1sdot2sdot3sdothellipsdot(nndash2)sdot(nndash1)sdotn
Ad esempio 5=1sdot2sdot3sdot4sdot5 10=1sdot2sdot3sdot4sdot5sdot6sdot7sdot8sdot9sdot10
Considerato il numero n si ha che
n=nsdot(nndash1)sdot(nndash2)sdot(nndash3)sdothellipsdot3sdot2sdot1 egrave divisibile per ciascuno dei numeri tra 1 e n
n+2 egrave divisibile per 2 in quanto sia n che 2 sono divisibili per 2
n+3 egrave divisibile per 3 in quanto sia n che 3 sono divisibili per 3
hellip
n+n egrave divisibile per n in quanto sia n che n sono divisibili per n
Abbiamo cosigrave trovato un intervallo di numeri naturali da n+2 a n+n consecutivi e nessuno di essi
primo Dato che n puograve essere qualsiasi si vede che esistono sicuramente lunghi tratti senza numeri primi
Ancora oggi il metodo piugrave veloce per trovare tutti i primi inferiori a un numero prefissato N egrave
dovuto a Eratostene (276-194 aC) bibliotecario della grande biblioteca di Alessandria che i piugrave
conoscono per aver misurato il raggio della Terra (in un tempo in cui pochi credevano che fosse sferica)
ma che i teorici dei numeri ricorderanno per sempre per il suo crivello
Tale metodo consiste nello scrivere in ordine tutti i numeri naturali minori di N (figura 1)
cancellando tutti i multipli di 2 tranne 2 tra i rimanenti tutti i multipli di 3 tranne 3 e cosigrave via fino ad aver
eliminato tutti i numeri composti Tutti i numeri rimasti saranno i numeri primi minori di N
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100
Figura 1 Il metodo del crivello di Eratostene per trovare i numeri primi
6
Facciamo un esempio vogliamo scrivere lrsquoelenco dei numeri primi minori 100
Scriviamo in ordine tutti i primi cento numeri naturali a partire da 2
bull cancelliamo i multipli di 2
bull cancelliamo i multipli di 3
bull cancelliamo i multipli di 5
bull cancelliamo i multipli di 7
Fermiamoci qui e osserviamo che quando abbiamo a che fare con un numero primo p i suoi multipli
per fattori piugrave piccoli di p sono stati giagrave eliminati e il primo che non lo egrave stato saragrave p2 Per esempio nel caso
in cui p fosse 5 il primo multiplo a non essere ancora stato eliminato egrave 25 infatti 10 egrave stato eliminato come
multiplo di 2 15 egrave stato eliminato come multiplo di 3 20 egrave stato eliminato come multiplo di 2 25 egrave il
primo non eliminato percheacute non egrave multiplo di 2 neacute di 3 pertanto la procedura di cancellazione termina con
p=7 infatti se p=11 allora p2=121 e poicheacute la tavola arriva fino a 100 tutti i multipli di 11 sono giagrave stati
eliminati
Tutti i numeri non cancellati (quelli in grassetto) sono i primi compresi nellrsquointervallo tra 2 e 100
estremi inclusi essi sono 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83
69 97
Alla ricerca dei numeri primi
Proprio nel tentativo di farsi unrsquoidea di come si distribuiscono i numeri primi eminenti matematici
come Pierre de Fermat Marin Mersenne Leonhard Euler (Eulero) Carl Friedrich Gauss ecc hanno
compilato e analizzato lunghi elenchi di numeri primi alla ricerca di formule in grado di produrre se non
tutti almeno ldquomoltirdquo di essi
Pierre de Fermat (1601-1665) ipotizzograve che tutti i numeri della forma F(N)= siano primi In effetti
per N=1
5141212)1( 221
=+=+=+=F
per N=2
171161212)2( 422
=+=+=+=F
per N=3
25712561212)3( 823
=+=+=+=F
per N=4
655371655361212)4( 1624
=+=+=+=F
sono tutti primi ma giagrave per N=5
67004176414294967297142949672961212)5( 3225
times==+=+=+=F
risultato scoperto da Eulero nel 1732 questo egrave uno dei pochi casi in cui Fermat cadde in errore forse
percheacute come si vede questi numeri detti numeri di Fermat crescono molto rapidamente giagrave il quinto
7
numero ha dieci cifre ed era al di fuori della portata dei suoi calcoli Ma egrave un ottimo esempio per
convincerci che la veritagrave di una affermazione non puograve basarsi sulla verifica della sua validitagrave in alcuni casi
particolari
Oggi sappiamo che F(N) egrave composto per tutti i valori di N da 5 a 21 come pure per vari altri valori
e lrsquoipotesi piugrave diffusa ma non dimostrata egrave che F(N) sia composto per tutti i valori di Ngt4 sostenuta dal
fatto che non si egrave trovato sperimentalmente un F(N) con Ngt4 che sia primo
Carl Friedrich Gauss (1777-1855) riuscigrave a dimostrare che se lrsquoN-esimo numero di Fermat egrave primo
allora egrave possibile costruire geometricamente con riga e compasso un poligono regolare di N lati Dove per
riga si intende una riga non graduata che serva solo a tracciare linee rette e per compasso uno strumento
capace solo di tracciare circonferenze o archi di circon-ferenza e non per esempio di riportare misure In
questo modo allrsquoetagrave di soli 19 anni Gauss riuscigrave a costruire il poligono di 17 lati Allo stesso modo si
potrebbe costruire un poligono regolare di 65537 lati essendo questrsquoultimo un primo di Fermat
Marin Mersenne (1588-1648) egrave famoso fra lrsquoaltro per il suo ruolo di intermediario nella comunitagrave
scientifica internazionale del Seicento In assenza di periodici scientifici infatti diverse persone si
assunsero il compito di comunicare a un gran numero di corrispondenti ogni scoperta scientifica di cui
fossero venuti a conoscenza e Mersenne fu uno di questi A lui egrave dovuta la pubblicazione per la prima
volta di gran parte del lavoro di Fermat attraverso le sue lettere
Anche Mersenne venne preso dalla smania di trovare delle formule che producessero numeri primi
e in questa ricerca compilograve un elenco di numeri primi p per lrsquoesattezza p=2 3 5 7 13 17 19 31 67
127 257 per i quali riteneva che fosse primo anche il numero della forma M(p)= che viene oggi chiamato
numero di Mersenne Nessuno sa come Mersenne sia stato in grado di fare questa affermazione ma
comunque egli era sorprendentemente vicino alla veritagrave Soltanto nel 1947 quando comparvero le
calcolatrici da tavolo fu possibile verificare la sua asserzione Aveva fatto solo 5 errori M(67) M(257)
non sono primi M(61) M(89) M(107) sono primi
Si osserva facilmente come al crescere di p il numero M(p) diventi rapidamente molto grande
bull M(2)=22ndash1=3
bull M(3)=23ndash1=7
bull M(4)=24ndash1=15=3middot5
bull M(5)=25ndash1=31
bull M(6)=26ndash1=63=7middot3middot3
bull M(7)=27ndash1=127
bull M(8)=28ndash1=255=5middot3middot17
hellip
bull M(11)=211ndash1=2047=23middot89
hellip
bull M(17)=217ndash1=131071
8
E solo per alcuni valori di p essi sono primi per cui lrsquoidea sarebbe quella di cercare i valori di p per
cui M(p) egrave primo Ma ciograve non egrave facile percheacute la primalitagrave di p egrave condizione solo necessaria per la primalitagrave
di M(p) infatti egrave vero che
1 se M(p) egrave primo allora anche p egrave primo
2 se p non egrave primo allora M(p) non egrave primo vedi ad esempio M(4) M(6) M(8)
ma se p egrave primo non egrave detto che M(p) sia primo vedi ad esempio M(11)
A tuttrsquooggi non si sa se esista unrsquoinfinitagrave di numeri di Mersenne che siano primi (detti primi di
Mersenne) neacute se esista unrsquoinfinitagrave di numeri di Mersenne che non siano primi anche se entrambe le
asserzioni appaiono verosimili Infatti aumentando le capacitagrave di calcolo dei calcolatori aumenta il
numero dei primi di Mersenne conosciuti (tabella 1) La ricerca di primi di Mersenne sempre piugrave grandi ha
valore di semplice curiositagrave ma il loro calcolo egrave utile per la misurazione della potenza di calcolo dei
calcolatori Per esempio per dimostrare che il numero di Mersenne M8191 di 2466 cifre non egrave primo usando
il test di Lucas-Lehmer ci vollero 100 ore la prima volta nel 1953 sul computer ILLIAC-I Da allora il
tempo di calcolo egrave sceso drasticamente da 5 a 2 ore su un IBM 7090 40 minuti su un ILLIAC-II da 3 a un
minuto su un IBM 360-91 e 10 secondi su un CRAY-I
valore di p 2p-1 anno autore computer 2 3 3 7 5 31 7 127 13 8191 1461 anonimo 17 131071 1588 Pietro Antonio Cataldi 19 524287 1588 Pietro Antonio Cataldi 31 2 147 483 647 1750 Leonhard Euler 61 19 cifre 1883 I M Pervushin calcolatore meccanico 89 27 cifre 1911 R E Powers calcolatore meccanico 107 33 cifre 1914 R E Powers calcolatore meccanico 127 39 cifre 1876-1914 Francois Edouard Anatole Lucas calcolatore meccanico 521 157 cifre 30 gennaio
1952 Raphael M Robinson SWAC
607 183 cifre 30 gennaio 1952
Raphael M Robinson SWAC
1279 386 cifre 25 giugno 1952
Raphael M Robinson SWAC
2203 664 cifre 7 ottobre 1952
Raphael M Robinson SWAC
2281 687 cifre 9 ottobre 1952
Oct 9 Raphael M Robinson SWAC
3217 969 cifre 1957 Hans Riesel BESK 4253 1281 cifre 1961 Alexander Hurwitz e John L
Selfridge IBM 7090
4423 1332 cifre 1961 Alexander Hurwitz e John L Selfridge
IBM 7090
9689 2917 cifre 1963 Donald B Gillies ILLIAC 2 9941 2993 cifre 1963 Donald B Gillies ILLIAC 2 11213 3376 cifre 1963 Donald B Gillies ILLIAC 2 19937 6002 cifre 1971 Bryant Tuckerman IBM 36091
9
valore di p 2p-1 anno autore computer 21701 6533 cifre 1978 Landon Curt Noll e Laura A
Nickel Cyber 174
23209 6987 cifre 1979 Landon Curt Noll Cyber 174 44497 13395 cifre 1979 David Slowinski e Harry L
Nelson Cray 1
86243 25962 cifre 1982 David Slowinski Cray 1 110503 33265 cifre 1988 Walter N Colquitt e Luther
Welsch Jr
132049 39751 cifre 1983 David Slowinski Cray X-MP 216091 65050 cifre 1985 David Slowinski Cray X-MP 756839 227832 cifre 1992 David Slowinski e Paul Gage Cray 2 859433 258716 cifre 1994 David Slowinski e Paul Gage Cray C90 1257787 378632 cifre 1996 David Slowinski e Paul Gage Cray T94 1398269 420921 cifre 1996 Joel Armengaud George
Woltman e GIMPS PC Pentium 90
2976221 895932 cifre 1997 Gordon Spence George Woltman e GIMPS
PC Pentium 100
3021377 909526 cifre 1998 Roland Clarkson Woltman Scott Kurowski e GIMPS
Pentium 200
6972593 2098960 cifre 1999 Nayan Hajratwala Woltman Kurowski e GIMPS
Pentium II 350
13466917 4053946 cifre 2001 Michael Cameron e GIMPS 800 MHz AMD T-Bird PC
20996011 6320430 cifre 2003 Michael Shafer e GIMPS 2 Gh Pentium 4 Dell Dimension PC
24036583 7235733 cifre 2004 Josh Findley e GIMPS 24 GHz Pentium 4 Windows XP PC
25964951 7816230 cifre 2005 Martin Nowak e GIMPS 24 GHz Pentium 4 Windows XP PC
30402457
9152052 cifre
2005 Curtis Cooper Steven Boone CMSU e GIMPS
Lavoro coordinato di 700 computers
GIMPS = Great Internet Mersenne Prime Search (wwwmersenneorg)
Tabella 1 La ricerca dei numeri primi di Mersenne
Unrsquoaltra notevole formula che dagrave luogo a molti numeri primi fu scoperta da Eulero nel 1772 La
formula x2+x+41 fornisce il seguente elenco di numeri primi inserendo tutti i numeri compresi fra 0 e 39
41 43 47 53 61 71 83 97 113 131 151 173 197 223 251 281 313 347 383 421 461 503
547 593 641 691 743 797 853 911 971 1033 1097 1163 1231 1301 1373 1447 1523 1601
Eulero comprese che il processo era destinato a interrompersi a un certo punto Infatti per x=41 si
ha
412+41+41 = 412+2middot41 = 41middot (41+2) = 41middot43
che non egrave primo ma anche per x=40 il numero che si ottiene non egrave primo infatti
402+40+41= 40 middot (40+1)+(40+1)=(40+1) middot (40+1)
Ciononostante Eulero fu molto colpito dalla capacitagrave della sua formula di produrre tanti numeri
primi da domandarsi per quali altri numeri diversi da 41 si sarebbe potuto ottenere un risultato simile
Scoprigrave che si poteva scegliere anche n=2 3 5 11 17 percheacute la formula x2+x+n producesse numeri primi
per ogni valore di x compreso fra 0 e nndash2
10
Possiamo concludere che la ricerca di formule semplici che producano soltanto numeri primi egrave stata
inutile ed egrave ancora meno probabile che conduca a buoni risultati il tentativo di trovare una formula che
produca tutti i numeri primi Lo stesso Eulero nel 1751 scriveva ldquoci sono alcuni misteri che la mente
umana non penetreragrave mai Per convincercene non dobbiamo far altro che gettare unrsquoocchiata alle tavole dei
numeri primi Ci accorgeremo che non vi regna neacute ordine neacute leggerdquo
La svolta di Gauss
Il passo decisivo nella ricerca di una legge da cui dipenda la distribuzione dei numeri primi fu
compiuto quando si rinunciograve agli inutili tentativi di trovare una formula che generasse tutti i numeri primi o
desse il numero esatto di essi contenuti nei primi n numeri interi A compiere la svolta fu Gauss il quale
affrontograve il problema da un altro punto di vista Infatti egli si chiese se era possibile prevedere non quale
fosse la posizione di un numero primo rispetto a quello precedente ma se era possibile prevedere quanti
fossero i numeri primi minori o uguali a un certo numero x Egli introdusse a tale scopo la funzione )(xπ =
numero dei primi minori o uguali a x e poteacute verificare per esempio che 4)10( =π percheacute i numeri primi
minori o uguali a 10 sono 2 3 5 7 e cioegrave 4 e la distanza media tra due numeri primi successivi
nellrsquointervallo tra 1 e 10 egrave 104 uguale a 25 Nella tabella 2 sono riportati alcuni valori della funzione e
della distanza media
Tabella 2 Alcuni valori della fiunzione )(xπ
Osservando tali risultati egli notograve che ogni volta si moltiplica x per 10 si aggiunge 23 al rapporto
xπ(x) almeno per x abbastanza grande Proprio questo legame tra moltiplicazione e addizione (che egrave la
relazione racchiusa in un logaritmo) e il fatto che 23 egrave approssimativamente il valore rappresentato dal
portarono Gauss a ipotizzare che
( )x
x
xlog=
π
Da cui
11
( )( )x
xx
logcongπ
Questa congettura si rivelograve poi vera e oggi egrave nota come teorema dei numeri primi Una notevole
conseguenza del teorema dei numeri primi egrave che ldquola probabilitagrave che un numero intero di x cifre preso a
caso sia primo egrave circa 1log(10x)rdquo Infatti lrsquoespressione
( )( )x
xx
logcongπ
in altre parole significa che nellrsquointervallo tra 1 e x si incontra un primo circa ogni log(x) e cioegrave la
probabilitagrave che nellrsquointervallo dei numeri le x un numero preso a caso sia primo egrave 1log(x) Ad esempio
nellrsquointervallo dei numeri minori di 10 000 000 uno ogni log(10 000 000) egrave primo Essendo
log(10 000 000) = log(107) = 7log(10) asymp 1611hellip ciograve vuol dire che dei numeri minori di 10 000 000 circa 1
su 16 egrave primo e perciograve crsquoegrave circa una probabilitagrave su 16 che un numero di 7 cifre sia primo
Al momento attuale molti sono i problemi non ancora risolti Tra questi ricordiamo
1 la congettura dei primi gemelli esistono infiniti numeri primi p tali che p+2 egrave ancora
primo Ad esempio 3 e 3+2 5 e 5+2 17 e 17+2 29 e 29+2 ecc
2 la congettura di Goldbach ogni intero pari maggiore di 2 puograve essere scritto come somma di
due numeri primi Ad esempio 4 = 2+2 6 = 3+3 8 = 3+5 10 = 5+5 12 = 5+7 ecc
La difficoltagrave fondamentale di tali problemi risiede nel fatto che i numeri primi sono definiti
mediante proprietagrave moltiplicative mentre i problemi in questione coinvolgono proprietagrave additive
Di gran lunga il piugrave importante tra i problemi non risolti egrave quello che va sotto il nome di ipotesi di
Riemann anche percheacute fu proprio la novitagrave del metodo in essa contenuto a far compiere il passo decisivo
per la dimostrazione del teorema dei numeri primi compiuta indipendentemente lrsquouno dallrsquoaltro nel 1896
dai matematici Jacques Hadamard e Charles de la Valleacutee-Poussin
Ricordiamo che lrsquoipotesi di Riemann inserita allrsquoottavo posto nellrsquoelenco dei famosi ventitreacute
problemi irrisolti presentati da David Hilbert al Congresso internazionale dei matematici del 1900 e
lanciati come sfida alla comunitagrave dei matematici del ventesimo secolo egrave ancora rimasto tale cioegrave senza
dimostrazione
Egrave oggi considerato uno dei problemi piugrave difficili del nuovo millennio Nel 2000 il Clay Mathematics
Institute ha offerto un milione di dollari a chi riusciragrave a darne una dimostrazione
Grazie ai calcolatori attualmente egrave stato possibile verificare tali congetture in moltissimi casi Ad
esempio la congettura di Goldbach egrave stata verificata per tutti i pari fino a 100 milioni mentre lrsquoipotesi di
Riemann egrave stata verificata per un miliardo e mezzo di casi ma ciograve non egrave sufficiente per dimostrarne la
veritagrave Ed egrave proprio questo quello che distingue la matematica dalle altre scienze dove una qualsiasi
ipotesi sostenuta da verifiche sperimentali egrave ritenuta valida fincheacute non contraddetta da un caso contrario
mentre in matematica un solo caso contrario serve a dimostrare la falsitagrave dellrsquoipotesi la cui veritagrave per
contro deve essere dimostrata per tutti i casi possibili il che ovviamente puograve avvenire solo
indipendentemente dalle verifiche di casi particolari anche se molti
12
Ed egrave questa una delle peculiaritagrave piugrave belle della matematica Qualsiasi affermazione dimostrata egrave
eterna e immutabile si pensi allrsquoinfinitagrave dei numeri primi ciograve egrave vero per Euclide ma rimane vero ancora
oggi senza possibilitagrave di smentite
Come ebbe a dire il matematico Hermann Hakel ldquoNella maggior parte delle scienze una
generazione demolisce quello che laltra ha costruito e ciograve che uno ha fatto un altro lo disfa Solo nella
matematica ogni generazione aggiunge un nuovo piano alla vecchia strutturardquo
E che ciograve susciti lrsquoidea della bellezza egrave bene sintetizzato dalle parole di Bertrand Russell ldquoLa
matematica vista dalla giusta angolazione non possiede solo la veritagrave ma la suprema bellezza una
bellezza fredda e austera come quella della scultura una bellezza che non fa appello ai nostri sentimenti
piugrave grossolani che non ha gli ornamenti sgargianti della musica o della pittura una bellezza pura e
sublime capace della rigorosa perfezione che egrave propria solo della piugrave grande arterdquo
Anche se non egrave possibile presentare in termini semplici lrsquoipotesi di Riemann in quanto coinvolge
concetti di matematica superiore proviamo a delinearne le linee essenziali
Nel 1737 Eulero introdusse e studiograve una funzione detta funzione ζ (zeta) di Eulero cosigrave definita
sum+infin
=
gtisin++++==1
1 4
1
3
1
2
11
1)(
nxxxx
xRxperdefinitan
xζ
e sempre a Eulero egrave dovuta la seguente identitagrave
( )
1
111
11
17
7
15
5
13
3
12
2 prod
minus=sdot
minussdot
minussdot
minussdot
minussdot
minus=
px
x
x
x
x
x
x
x
x
x
x
x
p
pxζ
dove il prodotto egrave esteso a tutti i numeri primi
Ed egrave proprio questa identitagrave che egrave alla base della notevole importanza assunta dalla funzione ζ nella
teoria dei numeri e in particolare per quanto riguarda la distribuzione dei numeri primi nellrsquoinsieme dei
naturali Infatti a destra di essa appaiono esplicitamente i numeri primi mentre a sinistra compare la
funzione ζ definita indipendentemente da essi
Riemann nel 1859 propose di considerare la funzione ζ come funzione di variabile complessa
cioegrave definita per x numero complesso ed effettuograve il cosiddetto prolungamento analitico di ζ allrsquointero piano
complesso costruendo la nuova funzione ζ oggi nota come funzione zeta di Riemann Egli provograve che gli
zeri della funzione ζ (cioegrave i valori della variabile per cui la funzione restituisce il valore 0) sono x = ndash2
x = ndash4 x = ndash6hellip detti zeri banali di ζ e alcuni numeri complessi (non reali) x con parte reale compresa tra
0 e 1 estremi inclusi Lrsquoipotesi di Riemann afferma che tutti gli zeri non banali di ζ hanno la caratteristica
di avere la parte reale uguale a 21
Dalla validitagrave di questa ipotesi discende una serie enorme di proprietagrave sui numeri primi Ci sono
attualmente centinaia di ldquoquasi teoremirdquo che iniziano con ldquosupponiamo che lrsquoipotesi di Riemann sia
verahelliprdquo Se lrsquoipotesi venisse dimostrata tutti questi ldquoquasi teoremirdquo diventerebbero veri teoremi
13
I test di primalitagrave e la fattorizzazione
Abbiamo fin qui concentrato lrsquoattenzione sul comportamento dei numeri primi ma come egrave possibile
preso un intero a caso x provare se x egrave primo o composto
Il metodo piugrave ovvio consiste nel dividere il numero x per tutti gli interi che lo precedono Infatti se
una qualunque di tali divisioni dagrave resto zero il numero x egrave composto e divisore e quoziente sono suoi
fattori mentre se nessuna di tali divisioni per ciascuno degli interi minori x dagrave resto zero il numero x egrave
primo
In effetti la procedura delle divisioni puograve essere interrotta allrsquointero minore della in quanto se x egrave
composto esso saragrave il prodotto di almeno due fattori per esempio x= F1sdotF2 ed essendo x=x sdot x se
F1gt x F2 lt x Ad esempio 29= 2929 sdot e 529 cong quindi si puograve fermare la procedura quando il
divisore egrave 5 Infatti 292 dagrave resto 1 293 dagrave resto 2 294 dagrave resto 1 295 dagrave resto 4 Si puograve quindi
concludere che 29 egrave primo percheacute se avesse avuto un fattore maggiore di 5 ne avrebbe avuto sicuramente
uno minore di 5 il che non egrave
Ma anche limitando le divisioni alla radice quadrata lrsquoalgoritmo sarebbe comunque inapplicabile
percheacute per giungere a conclusione richiede un tempo che cresce esponenzialmente al crescere del numero
di cifre di n pertanto puograve risultare intollerabilmente lungo anche con gli strumenti di calcolo piugrave veloci
anni secoli piugrave della vita presunta dellrsquoUniverso Ad esempio egrave stato dimostrato che il numero 244 497ndash1
formato da 13 595 cifre egrave primo Se un calcolatore fosse in grado di controllare un milione di divisioni al
secondo e si fermasse alla radice quadrata del numero egrave stato calcolato che gli occorrerebbero 106684 anni
per espletare il suo compito Lrsquoinconveniente deriva dal fatto che il metodo delle divisioni non solo ci dice
se il numero egrave primo o composto ma risolve anche il problema della fattorizzazione di un numero in
quanto nel caso in cui il numero risulta composto ci fornisce i fattori della sua scomposizione
A tuttrsquooggi egrave facile trovare numeri primi grandi o testare la primalitagrave di un numero mentre egrave
difficile fattorizzare un intero che sia il prodotto di due numeri primi grandi Ovviamente i termini ldquofacilerdquo
ldquodifficilerdquo ldquogranderdquo sono relativi alla conoscenza e alla tecnologia disponibili Attualmente sono
considerati ldquograndirdquo numeri di alcune centinaia di cifre mentre ldquofacilerdquo rappresenta un tempo di secondi e
ldquodifficilerdquo di secoli
Lrsquoefficacia dei test di primalitagrave attualmente usati dipende dal fatto che egrave possibile stabilire se un
numero egrave primo senza essere costretti a trovarne i fattori qualora risultasse composto Alcuni metodi usati
sono di tipo probabilistico cioegrave stabiliscono che un intero egrave probabilmente primo con una probabilitagrave di
errore che si puograve rendere piccola quanto si vuole
Il piugrave semplice al tempo stesso velocissimo e potente si basa sul piccolo teorema di Fermat Il
teorema stabilisce che se p egrave un numero primo e a un intero minore di p allora apndasha egrave un multiplo di p cioegrave
egrave divisibile per p
Ad esempio
bull se p=7 e a=2 allora 27ndash2=128ndash2=126=7middot18 cioegrave multiplo di 7
bull se p=7 e a=3 allora 37ndash3=2187ndash3=2184=7middot312 cioegrave multiplo di 7
14
bull se p=7 e a=4 allora 47ndash4=16384ndash4 = 16380 = 7middot2340 cioegrave multiplo di 7
bull se p=5 e a=4 allora 45ndash4=1024ndash4=1020=5middot204 cioegrave multiplo di 5
bull se p=3 e a=4 allora 43ndash4=64ndash4=60=3middot20 cioegrave multiplo di 3
Lrsquoimportanza del teorema sta nel fatto che ci fornisce un metodo per stabilire se un numero egrave primo
o no infatti costruiamo un numero del tipo apndasha verifichiamo se egrave multiplo di p se non lo egrave siamo sicuri
che p non egrave primo Ad esempio vogliamo sapere se 15 egrave primo costruiamo
215ndash2=32768ndash2=32766
32766=15middot2184+6
cioegrave non egrave divisibile per 15 quindi sicuramente 15 egrave composto e infatti 15=3middot5
Ma cosa si puograve dire se invece apndasha egrave divisibile per p Sfortunatamente non possiamo essere sicuri
che p sia primo anche se egrave molto probabile che lo sia
Proviamo 217ndash2=131072ndash2=131070=17middot7710 e infatti 17 egrave primo Provando 2341ndash2 si trova che
esso egrave divisibile per 341 ma 341 non egrave primo essendo 341=11middot31 Sono detti pertanto pseudoprimi i
numeri composti che passano il test Non proviamo a calcolare 2341 percheacute sarebbe un numero
mostruosamente grande fuori dalla nostra portata ma vedremo tra poco come si puograve aggirare lrsquoostacolo
Riassumendo il piccolo teorema di Fermat afferma che egrave vero
1 se p egrave primo e a egrave un intero minore di p allora apndasha egrave divisibile per p
2 se apndasha non egrave divisibile per p allora p non egrave primo
ma se apndasha egrave divisibile per p allora p puograve essere primo ma anche composto ciograve percheacute la divisibilitagrave per p
egrave condizione necessaria ma non sufficiente percheacute p sia primo Concludendo possiamo dire che usando
questo teorema per verificare la primalitagrave di un numero se scopriamo che ap-a non egrave divisibile per p siamo
sicuri che p egrave composto ma se egrave divisibile per p allora p egrave probabilmente primo nel senso che puograve essere
un primo autentico o pseudoprimo
La cosa interessante egrave che la probabilitagrave che un numero composto sia uno pseudoprimo (cioegrave che
superi il test di primalitagrave ma non sia primo come per esempio 341) su una base casuale diminuisce
fortemente allrsquoaumentare del numero Un numero di 1000 cifre composto ha circa una possibilitagrave su 10123
di essere uno pseudoprimo su una base scelta a caso La tabella 3 riporta tali probabilitagrave in funzione del
numero di cifre
Cifre in x Limite superiore per P(x)
Cifre in x Limite superiore per P(x)
Cifre in x
Limite superiore per P(x)
60 00716 80 00000846 100 00000000277
120 528middot10ndash12 150 149middot10ndash17 200 385middot10ndash27
300 58middot10ndash29 400 57middot10ndash42 500 23middot10ndash55
700 18middot10ndash82 1000 12middot10ndash123 2000 86middot10ndash262
5000 76middot10ndash680 10000 16middot10ndash1331 100000 13middot10ndash10584
Tabella 3 Probabilitagrave che un numero composto sia pseudoprimo
Nel 2002 tre ricercatori indiani Manindra Agrawal Neeraj Kayal e Nitin Saxena hanno costruito un
algoritmo denominato AKS (dalle iniziali dei nomi) sempre basato sulla fondamentale proprietagrave enunciata dal
15
piccolo teorema di Fermat ma che risulta deterministico e che riduce in maniera drastica il tempo di calcolo
Lrsquoalgoritmo fornisce una svolta significativa in un settore lungamente atteso e di grande interesse pratico ma
per ora non sembra che possa avere immediata applicazione in quanto molto piugrave lento dei test probabilistici i
quali drsquoaltra parte sono quasi certi per i numeri primi di centinaia di cifre che servono attualmente in
crittografia
Storia della crittografia
La crittografia che letteralmente significa scrittura nascosta nasce dalla necessitagrave di segretezza di alcune
informazioni e pertanto con tale termine intendiamo lo studio dei metodi che consentono la trasmissione sicura
dellrsquoinformazione
Drsquoaltro canto lrsquoesistenza di informazioni segrete genera il desiderio di svelarle e da tale desiderio nasce
la crittoanalisi con cui intendiamo lo studio di metodi che consentono la decifrazione dei messaggi crittografati
La storia della crittografia drsquoaltra parte altro non egrave che la secolare battaglia tra crittografi e crittoanalisti
Infatti ogni sistema crittografico rimane valido fincheacute un crittoanalista non individua un suo punto debole sulla
base del quale riesce a elaborare il sistema di decifrazione
Crittografi e crittoanalisti insieme hanno dato un grande contributo al progresso scientifico e tecnologico
Infatti tutti i metodi della crittografia e della crittoanalisi fanno ricorso a metodi e strumenti di una vasta varietagrave
di scienze come la matematica la linguistica la teoria dellrsquoinformazione la fisica quantistica le quali a loro
volta sono da essi arricchite e stimolate
Lrsquoidea su cui si basa un metodo crittografico consiste nel concordare tra mittente e destinatario che
vogliono scambiarsi un messaggio senza che venga intercettato da terzi una procedura per alterare il testo in
chiaro del messaggio Il destinatario puograve ricavare il testo originale applicando al testo cifrato la procedura
inversa Chi intercetta il messaggio non conoscendo la procedura non puograve ricostruire il messaggio La sicurezza
del metodo sta nella difficoltagrave da parte del crittoanalista di poter ricostruire la procedura dallrsquoanalisi del
messaggio cifrato
Prima dellrsquoera informatica i metodi crittografici erano essenzialmente due per trasposizione o per
sostituzione
Nella trasposizione le lettere sono mutate di posto generando di fatto un anagramma Ma la
trasposizione non puograve essere casuale Infatti nel caso di messaggi brevi non sarebbe sicura in quanto i pochi
caratteri alfabetici che costituiscono il messaggio possono essere combinati in pochi modi diversi per cui
diventa facile ricostruire il messaggio per tentativi Ad esempio la parola ldquomiordquo consta di 3 caratteri alfabetici
esistono al massimo sei sequenze diverse mio moi imo iom omi oim analizzandole tutte e sei egrave facile
ricostruire la sequenza ldquomiordquo Ma al crescere della lunghezza del messaggio cresce mostruosamente anche il
numero delle sequenze infatti un anagramma di una parola di n lettere altro non egrave che una permutazione di n
elementi e si dimostra che il numero totale delle permutazioni di n elementi egrave dato da n (si legga n fattoriale)
uguale al seguente prodotto n(nndash1)(nndash2)(nndash3)hellip(nndash (nndash1)) Pertanto se il messaggio egrave costituito ad esempio da
20 lettere i possibili anagrammi sono 20=20middot19middot18middot17middot16middot15middot14middot13middot12middot11middot10middot9middot8middot7middot6middot5middot4middot3middot2middot1 cioegrave piugrave di 1000
miliardi e anche se si potesse controllare un anagramma al secondo ci vorrebbero piugrave di trentuno secoli per
analizzarli tutti In questo caso la comunicazione risulterebbe sicura essendo impossibile analizzare tutte le
16
possibili sequenze e ricostruire il messaggio ma di fatto egrave inutilizzabile anche dal destinatario percheacute di fronte
allo stesso problema
Per rendere efficace tale metodo egrave necessario che mittente e destinatario si accordino su un criterio di
trasposizione fissato in anticipo e piugrave egrave complicato tale criterio e piugrave egrave sicuro il metodo
Esiste il metodo della trasposizione cosiddetta a inferriata Esso consiste nella trascrizione di un testo
lungo due linee orizzontali una superiore e una inferiore passando da una allrsquoaltra a ogni successivo carattere
alfabetico Finita la trascrizione la seconda fila di caratteri saragrave accodata alla prima per dare origine al testo
cifrato Ad esempio
testo del messaggio incontriamoci stasera alle sette
testo del messaggio cifrato icnraoitsralstenotimccsaealeet
Il destinatario ricostruisce il testo originale applicando la trasposizione inversa
Esistono molti altri tipi di trasposizione per esempio si puograve variare il numero delle file su cui trascrivere
il messaggio oppure si puograve passare da una fila allrsquoaltra ogni due caratteri anzicheacute dopo ogni singolo carattere e
cosigrave via Da osservare che ogni carattere alfabetico mantiene la propria identitagrave ma cambia la posizione
Nella sostituzione ogni carattere alfabetico del messaggio originale viene sostituito con un altro carattere
alfabetico secondo un criterio stabilito In questo caso ogni carattere alfabetico mantiene la posizione ma
cambia la propria identitagrave
Sostanzialmente esso necessita di determinare come primo passo un alfabeto cifrante che egrave ottenuto
rimescolando secondo un criterio lrsquoalfabeto ordinario In questo modo a ogni carattere dellrsquoalfabeto ordinario
corrisponde un carattere dellrsquoalfabeto cifrante Per cifrare il messaggio si sostituisce ogni carattere del messaggio
con il corrispondente carattere dellrsquoalfabeto cifrante Per decifrare il messaggio si applica la procedura inversa
Il primo esempio documentato di cifratura per sostituzione si trova nel De bello gallico di Giulio Cesare
detto anche cifrario di Cesare Qui lrsquoalfabeto cifrante era ottenuto da quello ordinario spostando a destra di tre
posti ogni carattere alfabetico ad esempio per cifrare il messaggio si sostituisce ogni lettera con la
corrispondente dellrsquoalfabeto cifrante (figura 2)
17
Figura 2 Cifrario di Giulio Cesare
Per decifrare si sostituisce ogni lettera del messaggio cifrato utilizzando la corrispondenza inversa
Come si puograve facilmente osservare in questo metodo lrsquoalfabeto cifrante altro non egrave che una
riorganizzazione dellrsquoalfabeto ordinario che si puograve ottenere con un qualsiasi spostamento tra 1 e il numero delle
lettere dellrsquoalfabeto ordinario Per esempio nel caso dellrsquoalfabeto italiano che consta di 21 lettere si possono
effettuare 20 diversi spostamenti e ottenere quindi 20 diversi alfabeti cifranti Essendo lrsquoalfabeto cifrante una
riorganizzazione dellrsquoalfabeto ordinario non egrave detto che questa debba essere ottenuta utilizzando il criterio
dello spostamento ma puograve coincidere con un qualsiasi anagramma dellrsquoalfabeto ordinario Si vede quindi
facilmente come aumentano gli alfabeti cifranti nel nostro caso il loro numero per quanto detto
precedentemente uguaglia il numero delle permutazioni di 21 elementi e cioegrave 21 e cioegrave oltre 50 miliardi di
miliardi
A partire da questo esempio cerchiamo di chiarire in termini generali il significato di metodo
crittografico intendendo con esso un algoritmo che mediante una chiave trasforma un messaggio in chiaro in
un messaggio cifrato o crittogramma
Ad esempio nel metodo descritto sopra lrsquoalgoritmo equivale alla procedura con cui ogni lettera
dellrsquoalfabeto in chiaro egrave sostituita dalla corrispondente lettera dellrsquoalfabeto cifrante la chiave equivale al
particolare alfabeto cifrante scelto per la cifratura o decifrazione di un particolare crittogramma
Inoltre crsquoegrave da sottolineare lrsquoimportanza concettuale della distinzione tra algoritmo e chiave Infatti la sola
conoscenza dellrsquoalgoritmo senza la chiave non permette di decifrare il crittogramma Ed egrave questo uno dei
principi fondamentali della crittografia formulato in modo definitivo nel 1883 dallrsquoolandese Auguste
Kerckhoffs von Nieuwenhof noto anche come legge di Kerckhoffs ldquola sicurezza di un crittosistema non deve
dipendere dal tener celato il crittoalgoritmo La sicurezza dipenderagrave solo dal tener celata la chiaverdquo
Le caratteristiche di un efficace sistema crittografico possono essere riassunte nelle seguenti
1 segretezza della chiave
2 semplicitagrave della chiave (per evitare possibili malintesi o errori al momento dello scambio tra
mittente e destinatario)
3 alto numero di potenziali chiavi tra cui scegliere
18
Come si puograve notare la 2) e la 3) sono collegate tra loro infatti nel sistema descritto sopra si potrebbe
scegliere una chiave piugrave semplice sacrificando il numero di chiavi potenziali
Infatti invece di generare lrsquoalfabeto cifrante da una riorganizzazione casuale dellrsquoalfabeto ordinario lo si
puograve fare a partire da una parola chiave come nel seguente esempio Supponiamo di accordarci sulla parola
chiave lsquolaurarsquo si eliminano eventuali spazi e lettere ripetute quindi la parola chiave diventa lsquolaurrsquo a questo
punto la sequenza l a u r saragrave lrsquoinizio dellrsquoalfabeto cifrante cui seguiranno tutte le altre lettere mancanti in
ordine alfabetico partendo dallrsquoultima lettera della chiave per cui lrsquoalfabeto cifrante che si ottiene saragrave l a u r s t
v z b c d e f g h i m n o p q
I crittosistemi basati sulla sostituzione hanno dominato la scena per tutto il primo millennio della nostra era
fincheacute i crittoanalisti non trovarono il suo punto debole ed elaborarono un metodo per decifrarne i crittogrammi prodotti
La violazione di tali sistemi si basa su unrsquoidea dovuta per prima a crittoanalisti arabi nella quale si
combinano conoscenze di linguistica statistica e matematica nota con il nome di analisi delle frequenze
Essa egrave descritta dallo studioso del IX secolo Abu Yusuf ibn Ishaq al-Kind sopran-nominato il filosofo
degli arabi in una sua monografia dal titolo Sulla decifrazione dei messaggi crittati ritrovata nellrsquoarchivio
ottomano Sulaimaniyyah di Istanbul solo nel 1987 Nel testo si legge
Un modo di svelare un messaggio crittato se conosciamo la lingua dellrsquooriginale consiste nel trovare
un diverso testo chiaro nella stessa lingua abbastanza lungo da poter calcolare la frequenza di ciascuna
lettera
Chiamiamo ldquoprimardquo quella che compare piugrave spesso ldquosecondardquo quella che la segue per frequenza
ldquoterzardquo la successiva e cosigrave via fino a esaurire tutte le lettere del campione di testo chiaro
Esaminiamo poi il testo in cifra che vogliamo interpretare ordinando (in base alla frequenza) anche i
suoi simboli Troviamo il simbolo piugrave comune e rimpiazziamolo con la ldquoprimardquo lettera dellrsquoesempio
chiaro il simbolo che lo segue per frequenza sia rimpiazzato dalla ldquosecondardquo lettera il successivo simbolo
piugrave comune sia rimpiazzato dalla ldquoterzardquo e cosigrave via fino ad aver preso in considerazione tutti i simboli del
crittogramma che intendevamo svelare
Tabella 4 Frequenze delle diverse lettere in italiano
Per superare lrsquoanalisi delle frequenze furono ideati diversi nuovi metodi crittografici tra cui ricordiamo
1 il metodo di sostituzione omofonica
2 il metodo di sostituzione polialfabetica
19
Il metodo di sostituzione omofonica consiste nel sostituire ogni lettera con un numero di simboli per
esempio numeri proporzionale alla sua frequenza Cosigrave ad esempio la lettera a avendo una frequenza di 11 74
viene sostituita da 11 simboli la lettera b con un solo simbolo la lettera c con 4 simboli ecc secondo la tabella 5
Il metodo di sostituzione polialfabetica consiste nellrsquouso di piugrave alfabeti cifranti su unrsquoidea di Leon
Battista Alberti che propose di utilizzarne due Lrsquoalgoritmo consiste nel sostituire la prima lettera del messaggio
in chiaro con la corrispondente del I alfabeto cifrante la seconda lettera con la corrispondente del II alfabeto
cifrante la terza con la corrispondente del I e cosigrave via passando alternativamente dal I alfabeto al secondo Come
nellrsquoesempio della figura 3
Tabella 5 Corrispondenza lettere e simboli nella sostituzione omofonica
Figura 3 Il metodo di sostituzione polialfabetica
Su tale idea si basa il metodo di Blaise de Vigenegravere diplomatico francese nato nel 1523 il quale utilizza
tanti alfabeti cifranti quante sono le lettere dellrsquoalfabeto in chiaro ad esempio nellrsquoalfabeto italiano che consta
di 21 lettere utilizza 21 alfabeti cifranti
Il primo passo consiste nel costruire la tavola di Vigenegravere in cui nella prima riga egrave riportato lrsquoalfabeto in
chiaro e in ognuna delle 21 righe successive egrave riportato un alfabeto cifrante spostato di una lettera rispetto a
quello della riga precedente cosigrave nella riga 1 egrave riportato lrsquoalfabeto spostato di una lettera nella riga 2 quello
spostato di due lettere nella riga 3 quello spostato di tre fino alla riga 20 in cui egrave riportato quello spostato di 20
lettere (figura 4)
20
Figura 4 La tavola di Vigenegravere
Il secondo passo consiste nello scegliere una parola chiave per esempio lsquoverorsquo Pertanto il messaggio in
chiaro ldquonon andarerdquo verrebbe cifrato come nella figura 5
La differenza sostanziale tra la cifratura omofonica e quella polialfabetica egrave che in quella omofonica a
ogni lettera corrispondono piugrave simboli ma ogni simbolo egrave il corrispondente di una sola lettera cioegrave egrave una
corrispondenza 1rarr m che invertita diventa mrarr 1 in quella polialfabetica a ogni lettera corrispondono piugrave
simboli e anche ogni simbolo egrave il corrispondente di piugrave lettere cioegrave mrarr m che rimane tale anche invertendola
Il vantaggio della cifratura polialfabetica egrave pertanto la sua resistenza allrsquoanalisi delle frequenze Oltre ad
ammettere un enorme numero di chiavi infatti si puograve scegliere qualunque parola del dizionario qualunque
combinazione di parole si puograve perfino ricorrere a neologismi rendendo impossibile il controllo di tutte le chiavi
possibili Ed ecco percheacute egrave ritenuta piugrave affidabile e non ha mai smesso di essere usata
Figura 5 Cifratura polialfabetica del messaggio ldquonon andarerdquo
21
Oggi sono noti tutti i punti deboli del sistema di Vigenegravere ed esistono vari procedimenti per decifrare i
crittogrammi generati da tale sistema che sfruttano ad esempio la modularitagrave nel ripetere la chiave o
osservazioni sulle ripetizioni del testo cifrato Ci sono testimonianze storiche che uno di tali procedimenti sia
stato ideato da Sir Charles Babbage famoso per aver progettato e mai realizzato la macchina alle differenze
progenitrice degli odierni calcolatori La prima descrizione resa pubblica del metodo perograve egrave del 1863 portata a
compimento dallrsquoufficiale prussiano F W Kasiski
Unrsquoosservazione decisiva fu che le insidie del metodo di Babbage potevano essere evitate utilizzando
nella cifratura di Vigenegravere una chiave molto lunga e fatta da lettere che si succedono in modo casuale se un
messaggio cifrato non presenta delle ripetizioni se non egrave possibile tentare di indovinare la chiave cadono tutti
gli appigli necessari per effettuare con successo la crittoanalisi
Tale osservazione fu ulteriormente sviluppata da G S Vernam che nel 1926 introdusse lrsquoidea di usare
una chiave casuale lunga quanto il messaggio stesso
Oggi sappiamo grazie agli studi di Claude Shannon del 1949 che tale metodo puograve definirsi
ldquoteoricamente sicurordquo
In pratica perograve ciograve comporta la difficoltagrave di costruire lunghe stringhe di lettere assolutamente casuali e di
scambiarsi segretamente e continuamente queste chiavi In sostanza risulta impraticabile per ogni messaggio
scambiato in modo sicuro egrave necessario prima trasmettere in modo sicuro il messaggio contenente la chiave
I metodi usati per buona parte del Novecento sono delle rielaborazioni sempre piugrave complesse delle idee
descritte finora ottenute anche con la costruzione di dispositivi per la meccanizzazione delle procedure di
cifratura e decifratura Un esempio tra i piugrave conosciuti egrave la macchina Enigma usata dai tedeschi durante la
Seconda guerra mondiale inventata dallrsquoingegnere Arthur Scherbius Enigma consisteva di diversi ingegnosi
elementi combinati in un potente e sofisticato dispositivo per la produzione di scritture segrete In particolare ma
macchina aveva tre componenti collegati da fili elettrici una tastiera per immettere le lettere del testo chiaro
unrsquounitagrave scambiatrice che cifra la lettera trasformandola nel corrispondente elemento del crittogramma e un
visore con varie lampadine che accendendosi indicano la lettera da inserire nel crittogramma
Lo sforzo per violare questa cifratura richiese anni di lavoro e fu portato a compimento dalla Scuola
Inglese Governativa di Codici e Cifre di Bletchley Park di cui faceva parte Alan M Turing noto oggi ai piugrave per
i suoi studi sullrsquointelligenza meccanica
La crittografia nellrsquoera dellrsquoinformatica
Nel 1945 fu realizzato ENIAC (Electronic Numerical Integrator And Calculator) unrsquoapparecchiatura
contenente 18 000 valvole elettroniche capace di effettuare 5000 calcoli al secondo considerato il capostipite
dei moderni calcolatori
Dopo il 1945 fu lrsquoinformatica a fare da protagonista nella battaglia tra crittografi e crittoanalisti operando
una decisiva svolta nelle metodologie di entrambi Infatti i metodi precedenti lrsquoera dellrsquoinformatica basavano la
propria sicurezza sullrsquoenorme numero di chiavi disponibili e sulla loro lunghezza ma che viene messa in crisi
dalla crescente potenza di calcolo dei computer Un computer molto potente infatti potrebbe individuare quella
giusta in pochi minuti anche nel caso di un milione di chiavi da esaminare
Tutti i metodi crittografici esaminati finora necessitano di
22
1 un algoritmo generale di cifratura G
2 di una chiave K che deve rimanere segreta
3 di un algoritmo di decifrazione H=Gndash1 (inverso di G)
e agiscono secondo il seguente schema
il messaggio in chiaro M tramite lrsquoalgoritmo G e la chiave K viene cifrato in MC questrsquoultimo tramite
lrsquoalgoritmo H e la stessa chiave K viene decifrato in M (figura 6)
Figura 6 Schema di metodi crittografici
La sicurezza di tali sistemi risiede interamente nella segretezza delle chiavi Ne segue che per distribuire
agli utenti le chiavi egrave necessario ricorrere a canali sicuri
Gli svantaggi che ne derivano sono essenzialmente
1 difficoltagrave nella distribuzione delle chiavi agli utenti
2 mancata autenticazione dei messaggi mittente e destinatario condividono la stessa chiave
pertanto non crsquoegrave modo di impedire che il destinatario si invii messaggi che poi sembrino
provenienti dal mittente Si pensi quali problemi possono provocare simili falsificazioni nella
posta elettronica o nei sistemi bancari elettronici
La svolta avvenne nel 1976 a opera di Diffie e Hellmann che proposero un metodo detto a chiave
pubblica il quale non necessita di uno scambio preventivo delle chiavi segrete Lrsquodea egrave chiarita dal seguente
esempio noto come esempio del doppio lucchetto
Supponiamo di avere due utenti Mitt e Dest e Mitt voglia spedire un messaggio segreto a Dest
1 Mitt mette il messaggio in una scatola che chiude con il proprio lucchetto LMitt (di cui solo lui ha
la chiave) e spedisce la scatola a Dest
2 Dest ricevuta la scatola aggiunge un proprio lucchetto LDest (di cui solo lui ha la chiave) e
rispedisce la scatola a Mitt
3 Mitt ricevuta la scatola con il doppio lucchetto toglie il lucchetto LMitt e rispedisce la scatola a
Dest
4 Dest ricevuta la scatola puograve togliere il lucchetto LDest e leggere il messaggio di Mitt
Il problema della distribuzione delle chiavi sembra risolto percheacute lo schema a doppia chiave non richiede
la condivisione delle stesse Tuttavia la realizzazione pratica di un tale sistema si scontra con un altro problema
quello riguardante lrsquoordine in cui cifrature e decifrature sono eseguite In altre parole in un sistema crittografico
egrave essenziale lrsquoordine con cui avvengono le rispettive cifrature e decifrature in quanto la cifratura eseguita per
23
ultimo andrebbe decifrata per prima (egrave un porsquo come quando la mattina infiliamo prima le calze e poi le scarpe
ma alla sera togliamo prima le scarpe e poi le calze)
Lrsquoesempio del doppio lucchetto in cui ciograve non avviene sembra tuttavia funzionare come idea percheacute ai
fini dellrsquoapertura della scatola non ha importanza lrsquoordine di rimozione dei lucchetti
Anche se il trucco dei due lucchetti non sembra immediatamente applicabile tuttavia fu il giusto punto di
partenza per la realizzazione di un sistema crittografico che aggira lrsquoostacolo della distribuzione delle chiavi
Infatti lrsquoidea egrave che mittente e destinatario generano ciascuno due chiavi distinte una chiave di cifratura E
(da utilizzare nellrsquoalgoritmo di cifratura) e una chiave di decifrazione D (da utilizzare nellrsquoalgoritmo di
decifrazione) Le chiavi sono correlate nel senso che servono per effettuare operazioni inverse (figura 7)
Figura 7 Le chiavi correlate per effettuare operazioni invese
Il trucco consiste nellrsquoimpossibilitagrave di poter derivare la chiave D dalla chiave E mediante algoritmi di
calcolo (figura 8)
Ogni utente puograve rendere pubblica la propria chiave di cifratura E indicandola magari sullrsquoelenco
telefonico senza compromettere la propria chiave di decifrazione che rimane segreta di pubblico dominio sono
anche gli algoritmi di cifratura G e decifrazione H
Figura 8 Inapplicabilitagrave del metodo del doppio lucchetto
Pertanto lrsquoesempio del doppio lucchetto viene cosigrave interpretato
1 il destinatario pubblica la chiave di cifratura E e mantiene segreta la chiave di decifrazione D
2 il mittente applica GE al messaggio M trasformandolo nel messaggio cifrato MC cioegrave
GE(M)=MC che spedisce al destinatario
3 il destinatario applica HD al messaggio cifrato MC riottenendo M cioegrave HD(MC)=M
24
La sicurezza di un tale sistema si fonda sulla difficoltagrave di poter
1 ritrovare il testo cifrato provando ad applicare lrsquoalgoritmo GE che egrave pubblico ad ogni possibile
testo in chiaro il cui numero pur essendo enorme egrave comunque finito
2 ricavare lrsquoalgoritmo HD da GE
in quanto entrambe le tecniche sono computazionalmente inattuabili nel senso che richiedono un tempo
di calcolo di lunghezza al di fuori di ogni possibile considerazione anche per i piugrave potenti calcolatori
Per descrivere tali algoritmi sono necessari alcuni concetti matematici che andiamo a illustrare
Figura 9 Schema di cifrario a chiave pubblica
Lrsquoaritmetica modulare
Lrsquoaritmetica modulare la cui introduzione egrave dovuta a Gauss costituisce un sistema di calcolo con
importanti applicazioni nei test di primalitagrave e nei metodi che stanno alla base della sicurezza delle comunicazioni
elettroniche Con essa infatti si hanno i seguenti vantaggi 1) si riduce lo spazio dei numeri su cui gli algoritmi
sono chiamati ad operare e quindi si aumenta la velocitagrave di calcolo 2) si riesce a rendere difficili alcuni problemi
computazionali che sono semplici (o addirittura banali) nellrsquoalgebra ordinaria al fine di aumentare la sicurezza
nelle comunicazioni Lrsquoidea egrave semplice ma potente Forse non lo sappiamo ma usiamo spesso laritmetica
modulare Potremmo chiamarla aritmetica dellorologio
Infatti pensiamo ad un normale orologio con 24 ore Se sono le 15 ed un amico ci comunica che saragrave a
casa nostra tra 5 ore sappiamo che egli verragrave alle 20 infatti 15+5=20 Ma se sono le 23 e dobbiamo partire fra 7
ore certamente non diciamo che la partenza saragrave alle 30 anche se 23+7=30 Sappiamo che dovremo partire alle
6 Allo stesso modo se sono le 20 che ora saragrave tra 14 ore Non diremo 34 anche se 20+14=34 ma diremo che
sono le 10 Come si spiega tutto ciograve
Immaginiamo di segnare sul quadrante dellrsquoorologio 24 ore Se la lancetta segna le 23 aggiungere 7 ore
significa spostarsi di 7 posti fino ad arrivare alle 6 Si giunge allo stesso risultato calcolando 23+7=30 ed
osservando che 30=1sdot24+6 o che egrave lo stesso 3024 =1 con resto 6 che significa che 30 lo si ottiene facendo fare
alla lancetta un giro completo piugrave 6
25
Se la lancetta segna le 20 e aggiungiamo 14 ore lrsquoorologio segneragrave le 10 percheacute 20+14=34 ma 3424= 1
con resto 10 per cui 34 lo si ottiene percorrendo un giro completo piugrave 10
Proviamo con il normale orologio a 12 ore I numeri che vediamo sul quadrante sono 0 1 2 3 4 5 6 7
8 9 10 11 Il numero 12 non compare percheacute a partire da 0 trascorse 12 ore torniamo di nuovo a 0 Questa
volta per fare un giro completo occorrono 12 ore Pertanto se sono le 7 che ore saranno tra 24 ore Saranno
ancora le 7 percheacute 7+24=31 ma 3112 = 2 con resto 7 cioegrave si compiono 2 giri completi piugrave 7 se sono le 8 tra 6
ore saranno le 2 percheacute 8+6=14 ma 1412=1 con resto 2 Dagli esempi dovrebbe risultare chiaro allora che ciograve
che contano non sono i risultati delle somme ma i loro resti nelle divisioni per il numero delle ore segnate sul
quadrante dellrsquoorologio
La stessa cosa succede con i giorni della settimana se pensiamo a un orologio con 7 ore sul quadrante
Facciamo corrispondere ai giorni della settimana i numeri da 0 a 6 (figura 10)
domenica Lunedigrave Martedigrave Mercoledigrave Giovedigrave Venerdigrave Sabato darr darr darr darr darr darr darr 0 1 2 3 4 5 6
Figura 10 Corrispondenza dei giorni della settimana con i numeri da 0 a 6
Se per esempio oggi egrave venerdigrave che giorno saragrave tra 12 giorni
Dovremo calcolare 5+12=17 ma i giorni si ripetono ogni 7 pertanto osservando che 177 =2 con resto 3
possiamo concludere che a partire da 5 e aggiungendo 12 si compiono 2 giri completi piugrave 3 ed essendo 3 il
numero corrispondente a mercoledigrave concludiamo che saragrave mercoledigrave Facciamo un altro esempio se oggi egrave
lunedigrave (1) che giorno saragrave tra 20 giorni Calcoliamo 1+20=21 217= 3 con resto 0 quindi saragrave domenica
Il numero n delle ore sullrsquoorologio costituisce quello che si chiama il modulo e individua lrsquoaritmetica di
modulo n in cui lrsquoinsieme dei numeri con i quali si opera indicato con Zn egrave lrsquoinsieme dei possibili resti della
divisione per n e cioegrave Zn=0 1 2 3 hellip nndash1e le operazioni si eseguono con le regole illustrate negli esempi
precedenti
Lrsquoesempio dellrsquoorologio a 24 ore costituisce la cosiddetta aritmetica finita di modulo 24 in essa Z24=0
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 essendo questi ultimi i possibili resti
della divisione per 24 Lrsquoorologio a 12 ore costituisce lrsquoaritmetica finita di modulo 12 in essa Z12=0 1 2 3 4
5 6 7 8 9 10 11 essendo questi ultimi i possibili resti della divisione per 12 Lrsquoesempio dei giorni della
settimana egrave lrsquoaritmetica finita di modulo 7 in cui Z7=0 1 2 3 4 5 6 essendo questi ultimi i possibili resti
della divisione per 7 Riassumiamo costruendo unrsquoaritmetica finita di modulo 4 I possibili resti della divisione
per 4 sono 0 1 2 3 quindi Z4=0123 Lrsquoaddizione e la moltiplicazione in Z4 si esegue come negli esempi
della tabella 6
26
operazioni indicate
Risultato nellrsquoaritmetica ordinaria
Risultato nellrsquoaritmetica modulo 4
2+2 4 0 percheacute 44=1 con resto 0
3+2 5 1 percheacute 54=1 con resto 1
2+1 3 3 percheacute 34=0 con resto 3
3sdot3 9 1 percheacute 94=2 con resto 1
3sdot2 6 2 percheacute 64=1 con resto 2
2sdot2 4 0 percheacute 44=1 con resto 0
Tabella 6 Addizione e moltiplicazione nellrsquoaritmetica finita di modulo 4
Si possono costruire le tavole dellrsquoaddizione e della moltiplicazione dellrsquoaritmetica modulo 4 che costituiscono
le tabelline di questa aritmetica sulla base delle quali si esegue qualsiasi addizione e moltiplicazione modulo 4
Nella tabella 7 sono spiegate le tabelline dellrsquoaritmetica in modulo 4
Tabella 7 Tavole dellrsquoaddizione e della moltiplicazione dellrsquoaritmetica modulo 4
Infine per indicare che due numeri a e b divisi per n danno lo stesso resto si usano le seguenti notazioni
tutte equivalenti tra loro
a=b mod n andashb=0 mod 4 a equiv b (mod n) che si legge a egrave congruo b modulo 4
Esempio
26=12 mod 7 egrave la stessa cosa di
26ndash12=0 mod 7 che egrave la stessa cosa di
26 equiv 12 (mod 7) e tutte e tre stanno a indicare che 26 e 12 divisi per 7 danno lo stesso resto che egrave 5 e
pertanto sono tutti equivalenti a 5
Facciamo vedere come sfruttare lrsquoaritmetica modulare per calcolare potenze come 2341 (figura 11) Il
metodo si basa sulla proprietagrave che il resto del quadrato di un numero a per un dato modulo n egrave uguale al
quadrato del resto dello stesso numero a per lo stesso modulo n cioegrave a2 mod n =(a mod n)2
+ 0 1 2 3
0 0 1 2 3
1 1 2 3 0
2 2 3 0 1
3 3 0 1 2
x 0 1 2 3
0 0 0 0 0
1 0 1 2 3
2 0 2 0 2
3 0 3 2 1
27
Figura 11 Il metodo per calcolare 2341
La funzione di Eulero
Per ogni intero ngt1 si definisce la funzione di Eulero = numero di interi minori di n e primi con esso Ad
esempio
bull ( ) 45 =φ percheacute gli interi minori di 5 sono 1 2 3 4 ed essi sono tutti primi con n
bull ( ) 26 =φ percheacute gli interi minori di 6 sono 1 2 3 4 5 e fra essi solo 1 e 5 sono primi con 6
bull ( ) 67 =φ percheacute gli interi minori di 7 sono 1 2 3 4 5 6 ed essi sono tutti primi con 7
bull ( ) 412 =φ percheacute gli interi minori di 12 sono 1 2 3 4 5 6 7 8 9 10 11 e fra essi solo 1 5 7
11 sono primi con 12
Se si conosce la scomposizione in fattori del numero n il seguente teorema ci fornisce un metodo per
calcolare Infatti esso afferma che per ogni ngt1 non primo ( )
minussdotsdot
minussdot
minussdotnppp
n=nφ 11
11
11
21
dove
p1 p2 hellip pn sono i fattori primi di n presi senza molteplicitagrave
22 mod 341=4
24=(22)2=(22 mod 341)2=42=16mod341=16
28=(24)2=(16)2=256mod341=256
216= (28)2=(256)2=65536mod341=64
232=(216)2=(64)2=4096mod341=4
264=(232)2=42=16mod341=16
2128=(264)2=(16)2=256mod341=256
2256=(2128)2=(256)2=65536mod341=64
2341=2(256+64+16+4+1) 2256 264 216 24 21 x x x x
64 1
1024 mod 341
= 1 x 64
64 x 16
1024 mod 341
1 x 2 =
=
x
28
Ad esempio
essendo 12 = 3sdot2sdot2 ( ) 42
1
3
212
2
11
3
111212 ===φ sdotsdot
minussdot
minussdot
essendo 6=2sdot3 ( ) 22
1
3
26
2
11
3
1166 ===φ sdotsdot
minussdot
minussdot
se n=psdotq ( ) ( ) ( )11111
11
1 minussdotminusminussdotminussdot
minussdot
minussdot qp=q
q
p
pn=
qpn=nφ
Ovviamente se n egrave un numero primo = nndash1
Vale inoltre il seguente teorema di Eulero per ngt1 e per ogni altn e primo con n si ha
Ad esempio per n=6 ( ) 26 =φ infatti i primi con 6 sono 1 e 5 per il teorema di Eulero si ha
2mod1255
2mod1112
2
equiv=
equiv=
per n=5 ( ) 45 =φ e i primi con 5 sono 1 2 3 4 e per il teorema di Eulero si ha
5mod12564
5mod1813
5mod1162
5mod111
4
4
4
4
equiv=
equiv=
equiv=
equiv=
Si puograve notare come nel caso in cui n egrave un numero primo si ritrova il piccolo teorema di Fermat
Infatti per n primo ( )nφ = nndash1 e per il teorema di Eulero per ogni altn e primo con n Ricordiamo infatti
che il piccolo teorema di Fermat afferma che se n egrave un numero primo e a un intero minore di n allora egrave
divisibile per n che con il linguaggio dellrsquoaritmetica modulare diventa che puograve essere riscritto e se a egrave primo
con n allora egrave che egrave equivalente a
Infine si prova che per ogni altn e primo con esso esiste lrsquoinverso di a e esso egrave dato da ( ) 1minusnaφ Infatti
( ) ( ) na=aa nφnφ1mod1 equivsdot minus per il teorema di Eulero Si ricorda che lrsquoinverso di un numero a egrave quel numero che
moltiplicato per a dagrave 1 indicato convenzionalmente con andash1
Ad esempio per n=5 i primi con 5 sono 1 2 3 4 e per ognuno di questi esiste lrsquoinverso infatti
bull lrsquoinverso di 1 egrave ( ) 1mod51111 31415 equivminusminus ===φ
e infatti
bull lrsquoinverso di 2 egrave ( ) 3mod58222 31415 equivminusminus ===φ
e infatti
bull lrsquoinverso di 3 egrave ( ) 2mod527333 31415 equivminusminus ===φ
e infatti
bull lrsquoinverso di 4 egrave ( ) 4mod564444 31415 equivminusminus ===φ
Le funzioni unidirezionali
Chiamiamo funzione da un insieme A a un insieme B qualunque procedura che associa a ogni elemento
di un insieme A (detto dominio) uno e un solo elemento di un insieme B (detto condominio) In simboli f
A rarr B Se poi indichiamo con x il generico elemento dellrsquoinsieme A e con y il generico elemento dellrsquoinsieme B
la f indica la procedura che ad ogni xisinA associa un yisinB e cioegrave y=f(x) ad esempio ldquofare il doppio dihelliprdquo
29
prendendo come dominio e codominio lrsquoinsieme dei numeri interi egrave in questo senso una funzione percheacute dato
ad esempio il numero 3 lo trasforma nel numero 6 come 5 lo trasforma in 10 e cosigrave via
Molte funzioni matematiche sono cosiddette bidirezionali nel senso che egrave facile dato un determinato x
generare il corrispondente y ma egrave altrettanto facile invertire la funzione cioegrave ritrovare lrsquoelemento x originario a
partire dal suo corrispondente
Facciamo qualche esempio
bull funzione xrarr fare il doppiorarr 2sdotx= y 3rarr fare il doppiorarr 2sdot3 = 6
funzione inversa y=2sdotx rarr fare la metagraverarr x 6=2sdot3 rarr fare la metagraverarr 3
bull funzione xrarr fare il quadruplorarr 4sdotxrarr aggiungere 1rarr sdoty=4sdotx +1
5rarr fare il quadruplorarr 4sdot5rarr aggiungere 1rarr 4sdot5 +1=21
funzione inversa y=4sdotx +1rarr sottrarre 1rarr 4sdot xrarr dividere per 4rarr x
21=4sdot5 +1rarr sottrarre 1rarr 4sdot 5rarr dividere per 4rarr 5
Le funzioni unidirezionali sono invece quelle funzioni facilmente calcolabili ma che non si possono invertire
Le funzioni cosiddette pseudounidirezionali (dette anche funzioni trappola a molla segreta) sono invece
quelle funzioni facilmente calcolabili ma che non altrettanto facilmente si possono invertire a meno che non si
conoscano alcune informazioni (la molla segreta) utilizzate nella loro costruzione
Lrsquoaritmetica modulare gioca un ruolo determinante in questo caso infatti permette di trasformare
funzioni bidirezionali in funzioni pseudounidirezionali
Facciamo lrsquoesempio della funzione ldquofare il quadruplordquo in simboli f(x)=4sdotx Egrave facilmente calcolabile
percheacute dato x per ottenere f(x) basta moltiplicare per 4 ma egrave altrettanto facile calcolare la sua inversa percheacute
dato f(x) basta dividere per 4 per ottenere lrsquooriginario x Ma anche se non avessimo la procedura inversa di
dividere per 4 sarebbe facile ritrovare lrsquoelemento originario anche procedendo per tentativi ed eliminazione
infatti se per esempio f(x) =20 si puograve tentare x=3 in tal caso f(x)=12 troppo piccolo quindi x deve essere
maggiore di 3 Si puograve allora pensare a 6 ma f(x)=24 troppo grande quindi x deve essere minore di 6 e cosigrave via
Vediamo cosa accade se calcoliamo utilizzando una aritmetica modulare Per esempio consideriamo la
stessa funzione f(x)=4sdotx in una aritmetica modulo 7 Possiamo osservare che la funzione non si comporta piugrave in
modo regolare come prima per accorgersene basta costruire una tabella (tabella 8)
x 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
f(x)=4sdotx 4 8 12 16 20 24 28 32 36 40 44 48 52 56 60
f(x)=4sdotmod 7 4 1 5 2 6 3 0 4 1 5 2 6 3 0 4
Tabella 8 La funzione f(x)=4sdotx in una aritmetica modulo 7
Anche in questa semplice situazione egrave chiaro che egrave piugrave complicato invertire la funzione e pertanto i valori
di x sono molto meglio protetti Si puograve fare anche lrsquoesempio della funzione esponenziale f(x)=3 x (tabella 9)
Tabella 9 La funzione f(x)=3 x in aritmetica modulo 11
x 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
f(x)=x3 1 8 27 64 125 216 343 512 729 1000 hellip hellip hellip hellip hellip
f(x)=x3 mod 11 1 8 5 9 4 7 2 6 3 10 hellip hellip hellip hellip hellip
30
Il cifrario a chiave pubblica RSA
Uno dei piugrave noti sistemi crittografici a chiave pubblica che sfrutta le idee precedentemente descritte egrave il
metodo RSA proposto dai matematici R L Rivest A Shamir e L Adlemann nel 1978 Esso risolve il problema
dello scambio delle chiavi in quanto queste ultime sono conosciute solamente ai rispettivi proprietari che non le
hanno preventivamente concordate e scambiate
Illustriamo schematicamente come i due utenti Mitt e Dest possano scambiarsi un messaggio segreto
utilizzando il metodo RSA Entrambi Mitt e Dest indipendentemente lrsquouno dallrsquoaltro poi
1 scelgono in modo casuale due numeri primi p q grandi (di 200-300 cifre in base 10)
2 calcolano N = psdotq e Φ(N) = (pndash1)sdot(qndash1)
3 scelgono un intero eltΦ(N) e primo con Φ(N) tale numero e saragrave la chiave pubblica
4 calcolano il numero d inverso di e mod Φ(N) tale cioegrave che esdotdequiv 1mod Φ(N) tale numero d saragrave
la chiave privata
5 rendono pubblici i numeri N ed e
Mitt per spedire un messaggio a Dest compie le seguenti operazioni
1 codifica il messaggio in un modo standard usando i numeri lt N
2 trasforma ogni numero M di tale codifica in Me (mod N) e lo spedisce a Dest
per decodificare il messaggio ricevuto Me Dest calcola (Me)d =Mesdotd =Mndash1=M (modN) riottenendo il messaggio
originale
Figura 12 Schema di cifrario con metodo RSA
31
Figura 13 Esempio di applicazione di metodi RSA
In che cosa consiste la sicurezza del metodo Da quanto esposto si osserva che per decodificare il
messaggio bisogna
1 conoscere d (chiave segreta)
2 essendo d lrsquoinverso di e nellrsquoaritmetica mod Φ(N) essendo e noto egrave necessario conoscere Φ(N)
3 ma noto N per calcolare Φ(N) egrave necessario conoscere i fattori primi di N cioegrave egrave necessario fattorizzare
N che egrave un problema computazionalmente difficile per quanto osservato in precedenza
Anche se non egrave stato dimostrato che non si possa rompere il codice in altro modo e cioegrave senza conoscere Φ(N) e i
fattori di N a tuttrsquooggi si puograve affermare che la sicurezza del metodo dipende essenzialmente dai seguenti fatti
Per codificare il messaggio bisogna saper costruire dei numeri primi grandi e tale operazione egrave
computazionalmente veloce si puograve infatti dimostrare che la complessitagrave computazionale di opportuni test di
primalitagrave per stabilire se un numero n egrave primo utilizzando il linguaggio di quel ramo della matematica nota
come teoria della complessitagrave egrave ldquoquasi-polinomialerdquo
Per violare il sistema bisogna saper fattorizzare interi grandi ottenuti come prodotto di due primi tale
problema egrave computazionalmente ldquolentordquo cioegrave con il linguaggio della teoria della complessitagrave appartiene alla
classe dei problemi non polinomiali Tale marcata differenza tra la velocitagrave di esecuzione delle operazioni di
costruzione di numeri primi grandi e di fattorizzazione di interi grandi garantisce la sicurezza del metodo
almeno per un tempo sufficientemente lungo Ad esempio con la tecnologia attuale lrsquooperazione di
fattorizzazione di un intero di 140 cifre in base 10 prodotto di due numeri primi casuali calcolati in pochi
secondi su un computer disponibile in commercio richiede utilizzando vari supercomputers operanti
parallelamente circa un mese
La RSA Security Inc gestisce una sfida a livello mondiale ove vengono premiati coloro che fattorizzano
gli interi proposti da loro in una particolare lista Ad esempio il 3 dicembre del 2003 egrave stato fattorizzato
32
rsa576 =
188198812920607963838697239461650439807163563379417382700763356422988859715234
665485319060606504743045317388011303396716199692321205734031879550656996221305
168759307650257059
un numero di 174 cifre decimali prodotto di due primi di 87 cifre
p =
398075086424064937397125500550386491199064362342526708406385189575946388957261
768583317
q =
472772146107435302536223071973048224632914695302097116459852171130520711256363
590397527
Le chiavi attualmente utilizzate dallRSA sono a 309 cifre decimali
La firma digitale
Consideriamo al solito un mittente che deve inviare a un destinatario un messaggio m La codifica di m
con il metodo descritto assicura lrsquoautenticitagrave del messaggio ma non fornisce alcuna sicurezza sulla sua
paternitagrave Infatti il messaggio m pur essendo autentico potrebbe essere stato inviato da qualcuno che si spaccia
per il mittente Questa egrave unimportantissima questione particolarmente nella trasmissione di messaggi che oltre
a dover essere segreti devono garantire la loro origine
Si dovrebbe quindi disporre di un analogo della firma manuale detta appunto firma digitale La firma
digitale deve allora essere progettata in modo da possedere le stesse caratteristiche di una firma manuale e cioegrave
lrsquoautenticitagrave la non falsificabilitagrave e lrsquoimpossibiltagrave di essere riutilizzata Facciamo vedere come lo stesso metodo
RSA puograve essere utilizzato per progettare una firma digitale
La situazione egrave la seguente il mittente (di seguito indicato con Mitt) invia un messaggio m con la firma
F al destinatario (di seguito indicato con Dest) Siano a b rispettivamente le chiavi pubblica e segreta di MITT
siano e d rispettivamente le chiavi pubblica e segreta di DEST
La procedura per apporre la firma digitale F al messaggio m egrave illustrata nei seguenti passi riassunti nel
grafico della figura 14
1 Mitt cripta la firma F (cioegrave i suoi dati identificativi) usando la propria chiave segreta (b)
ottenendo Fb
2 il messaggio m con la firma F criptata viene ulteriormente criptato con la chiave pubblica di
Dest (e) ottenendo (m Fb)e
3 Dest decodifica il messaggio con la sua chiave segreta (d) ottenendo
((m Fb)e)d = (me F(be)) d =m(e d)F(be d) = mFb
in cui la firma di Mitt egrave ancora criptata
4 Dest decodifica la firma di Mitt con la chiave pubblica di Mitt (a) ottenendo
(Fb)a = F(ba) = F
33
Grafico firma digitale
Mitt
Dest
pubblica
Fb
e dpubblica
a
((Fb)e)d=(Fb)ed=(Fb)1=Fb
(Fb)a=(F)ba=(F)1=F
ab de
(Fb)e
codifica
codificadecodifica
decodifica
1
2
3
4
5
6
7
8
segreta
b
segreta
Figura 14 Grafico firma digitale
Bibliografia
Thomas Beth Comunicazioni e sicurezza su Internet in ldquoLe Scienzerdquo n 330 febbraio 1996
Brian Butterworth Intelligenza matematica Vincere la paura dei numeri scoprendo le doti innate della mente
Rizzoli Milano 1999
John H Conway Richard K Guy Il libro dei numeri Hoepli Milano 2003
Richard Courant Herbert Robbins Che cosrsquoegrave la matematica Boringhieri Torino 1971
Philip J Davis Il mondo dei grandi numeri Zanichelli Bologna 1973
Keith Devlin Dove va la matematica Bollati Boringhieri Torino 1994
Jean Dieudonneacute Lrsquoarte dei numeri matematica e matematici oggi Mondadori Milano 1989
Martin E Ellmann La crittografia a chiave pubblica in La matematica della complessitagrave Quaderni n 67
settembre 1992 Le Scienze
Paolo Ferragina Fabrizio Luccio Crittografia principi ndash Algoritmi ndash Applicazioni Bollati Boringhieri Torino
2001
Godfrey H Hardy Apologia di un matematico Garzanti Milano 1989
Morris Kline Storia del pensiero matematico Einaudi Milano 1991
Serge Lang La bellezza della matematica Bollati Boringhieri Torino 1991
Mauro Leoncini Modelli di calcolo e complessitagrave computazionale in La matematica computazionale Quaderni
n 84 giugno 1995 Le Scienze
Fabrizio Luccio e Linda Pagli P = NP in La matematica della complessitagrave Quaderni n 67 settembre 1992
Le Scienze
Piergiorgio Odifreddi La Matematica del Novecento dagli insiemi alla complessitagrave Einaudi Torino 2000
34
ldquoPeriodico di matematicherdquo Serie VII Volume 7 Numero 2-3 luglio-dicembre 2000 Mathesis
ldquoPeriodico di matematicherdquo Serie VIII Volume 1 Numero 1 gennaio-marzo 2001 Mathesis
Carl Pomerance Alla ricerca dei numeri primi in ldquoLe Scienzerdquo n 174 febbraio 1983
Simon Singh Codici e segreti la storia affascinante dei messaggi cifrati dallrsquoantico Egitto a Internet Rizzoli
Milano 1999
Marcus du Sautoy Lrsquoenigma dei numeri primi lrsquoipotesi di Riemann lrsquoultimo grande mistero della matematica
Rizzoli Milano 2004
Gary Stix I segreti meglio custoditi la crittografia quantistica egrave passata dalla teoria al laboratorio per
approdare finalmente alle applicazioni in ldquoLe Scienzerdquo n 438 febbraio 2005
3
Ma a dispetto della loro natura fondamentale e della semplicitagrave con cui sono formulati essi sono
considerati gli oggetti di studio piugrave misteriosi essendo generosi di moltissimi problemi di facile
formulazione ma molto difficili da risolvere
Nonostante i numeri primi siano studiati da migliaia di anni sono piugrave i problemi ancora aperti che
quelli risolti
Si puograve ben dire che il problema dei numeri primi costituisce lrsquoossessione per eccellenza della
comunitagrave dei matematici Quasi tutti tra i piugrave grandi hanno dedicato le loro ricerche alla teoria dei numeri
Proviamo quindi a ripercorrere la trama di questa ossessione attraverso i suoi risultati piugrave
significativi per giungere alle applicazioni che essa trova oggi nella progettazione di quei sistemi che
garantiscono la riservatezza delle comunicazioni elettroniche
Mi preme perograve prima sottolineare tre aspetti singolari che emergeranno da questo percorso
Tutti i matematici che si sono occupati di teoria dei numeri lo hanno fatto percheacute il suo studio ha
sempre avuto il fascino di una forma di pura contemplazione senza il peso di possibili conseguenze
pratiche e proprio per questo essa egrave stata sempre considerata la ldquoverardquo matematica Valgano a questo
proposito le parole di Henri Poincareacute ldquolo scienziato non studia la Natura percheacute egrave utile farlo la studia
percheacute ne trae diletto e ne trae diletto percheacute la Natura egrave bella Se non fosse bella non varrebbe la pena di
conoscerla e se non valesse la pena di conoscere la natura la vita non sarebbe degna di essere vissutardquo e
quelle di Godfrey H Hardy ldquola lsquoverarsquo matematica dei lsquoverirsquo matematici quella di Fermat di Eulero di
Gauss di Abel e di Riemann egrave quasi totalmente lsquoinutilersquo [hellip] Non egrave possibile giustificare la vita di nessun
vero matematico professionista sulla base dellrsquoutilitagrave del suo lavorordquo
Oggi invece i numeri primi sono diventati lo strumento fondamentale per il mondo del commercio
elettronico che dipende interamente dalla loro comprensione Questa che puograve sembrare una
contraddizione in realtagrave non lo egrave in quanto ciograve che distingue la ldquoverardquo matematica non egrave lrsquoutilitagrave dei suoi
risultati ma drsquoaltro canto se essa egrave tale i suoi risultati dovranno prima o poi trovare utili applicazioni
comunque vada E la teoria dei numeri ne egrave una prova
Lrsquoaltro aspetto egrave che lrsquoattuale applicazione si fonda sulle scoperte relative ai numeri primi compiute
da Pierre Fermat nel XVII secolo ma la sua validitagrave dipende da un problema che non si egrave stati ancora in
grado di risolvere
Infine solo con metodi non elementari egrave stato possibile dimostrare molti dei teoremi sui numeri
primi dove la parola elementare non significa facile ma estraneo alla teoria di cui lrsquoenunciato del teorema
fa parte La dimostrazione di un teorema di una certa teoria con metodi elementari usando cioegrave solo metodi
inerenti alla teoria stessa puograve essere a volte molto piugrave complicata se non impossibile Egrave questo il caso per
esempio come vedremo piugrave avanti del teorema fondamentale sui numeri primi che necessita del ricorso
alla funzione logaritmica e dellrsquoultimo teorema di Fermat dimostrato nel 1995 che fa ricorso a teorie di
matematica superiore
4
La distribuzione dei numeri primi
Una delle prime e piugrave naturali domande che ci si egrave posti riguardo ai numeri primi egrave stata ldquoquanti
sonordquo
La risposta fu data da Euclide dimostrando che i numeri primi sono infiniti La dimostrazione
condotta con metodi elementari e riportata nel suo libro Gli Elementi scritto nel 300 aC egrave considerata
una delle piugrave belle e deliziosamente ingegnose della storia della matematica Essa parte dal presupposto che
i numeri primi non sono infiniti da cui si deduce che dovragrave esistere un elenco finito di numeri primi p1 p
2
p3hellip pn dove pn indica lrsquoultimo Si costruisce ora il numero N= p
1 middot p
2 middot p
3 middothellip middot pn +1 il quale risulteragrave o
primo o composto Se N egrave primo per come egrave stato costruito egrave un primo maggiore di pn contraddicendo
quindi il presupposto Se N egrave composto allora puograve essere scritto come prodotto di alcuni dei numeri
dellrsquoelenco ed essere quindi divisibile per qualcuno di essi Ma per come egrave stato costruito N diviso per
ciascuno di essi dagrave sempre resto 1 e perciograve deve contenere come fattore un primo diverso da quelli
dellrsquoelenco contraddicendo quindi il presupposto In ogni caso sia se N egrave primo o composto ci saragrave un
numero primo maggiore di pn il che consente di concludere che lrsquoelenco dei numeri primi continua
allrsquoinfinito
Facciamo qualche prova
bull N1=2+1=3 (primo)
bull N2=2middot3+1=7 (primo)
bull N3=2middot3middot5+1=31 (primo)
bull N4=2middot3middot5middot7+1=211 (primo)
bull N5=2middot3middot5middot7middot11+1=2311 (primo)
bull N6=2middot3middot5middot7middot11middot13+1=30031 =59 509 (composto)
bull N7=2middot3middot5middot7middot11middot13middot17+1=510511 =19middot97middot277 (composto)
In effetti nessuno sa se ci sia un numero infinito di primi della forma
N= p1 middot p
2 middot p
3 middothellip middot pn +1 neacute viceversa se ci sia un numero infinito di numeri composti della stessa
forma (sebbene almeno una delle due possibilitagrave deve essere vera)
Lrsquoaltro quesito che sorge altrettanto spontaneo ma che non egrave stato ancora risolto riguarda la
distribuzione dei numeri primi allrsquointerno dei numeri naturali In sostanza ci si chiede se crsquoegrave un ordine
prevedibile nella successione dei numeri primi una regola per stabilire quale saragrave per esempio il
centesimo numero primo oppure se essi si succedono in modo casuale
A ragione questo problema si egrave meritato lrsquoappellativo di ossessione dei numeri primi percheacute i
matematici mal sopportano lrsquoidea di dover ammettere che non esista una spiegazione del modo in cui la
natura ha scelto tali numeri e per una disciplina che si dedica a trovare andamenti regolari e ordine nel
caos essi rappresentano la sfida estrema
E in effetti se si prova a esaminare un elenco di numeri primi si scopre immediatamente che egrave
impossibile prevedere quando appariragrave il successivo Per esempio tra i dieci numeri maggiori o uguali a 2 e
5
minori o uguali a 11 ci sono 5 numeri primi 2 3 5 7 11 esattamente la metagrave tra i successivi dieci da 12
a 21 ci sono 3 numeri primi 13 17 19 cioegrave il 30 tra 22 e 31 ci sono ancora 3 numeri primi 23 29 31
cioegrave ancora il 30 mentre tra 32 e 41 ci sono 2 numeri primi 37 41 cioegrave il 20 e cosigrave tra 42 e 51 si
potrebbe pensare che andando avanti le cose si regolarizzino ma non egrave cosigrave
Proseguendo nel conteggio per esempio nellrsquointervallo dei cento numeri che precedono 10 000 000
i numeri primi sono 9 999 901 9 999 907 9 999 929 9 999 931 9 999 937 9 999 943 9 999 971
9 999 973 9 999 991 cioegrave lo 009 mentre nellrsquointervallo dei cento numeri che seguono 10 000 000 i
numeri primi sono 10 000 019 10 000079 cioegrave lo 002
Si osserva inoltre che esistono intervalli di numeri naturali di ampiezza arbitraria allrsquointerno dei
quali non si incontra alcun numero primo Questrsquoultima osservazione egrave addirittura ovvia
Ricordiamo che il prodotto dei numeri naturali da 1 a n si indica con il simbolo n (da leggersi n
fattoriale) cioegrave n=1sdot2sdot3sdothellipsdot(nndash2)sdot(nndash1)sdotn
Ad esempio 5=1sdot2sdot3sdot4sdot5 10=1sdot2sdot3sdot4sdot5sdot6sdot7sdot8sdot9sdot10
Considerato il numero n si ha che
n=nsdot(nndash1)sdot(nndash2)sdot(nndash3)sdothellipsdot3sdot2sdot1 egrave divisibile per ciascuno dei numeri tra 1 e n
n+2 egrave divisibile per 2 in quanto sia n che 2 sono divisibili per 2
n+3 egrave divisibile per 3 in quanto sia n che 3 sono divisibili per 3
hellip
n+n egrave divisibile per n in quanto sia n che n sono divisibili per n
Abbiamo cosigrave trovato un intervallo di numeri naturali da n+2 a n+n consecutivi e nessuno di essi
primo Dato che n puograve essere qualsiasi si vede che esistono sicuramente lunghi tratti senza numeri primi
Ancora oggi il metodo piugrave veloce per trovare tutti i primi inferiori a un numero prefissato N egrave
dovuto a Eratostene (276-194 aC) bibliotecario della grande biblioteca di Alessandria che i piugrave
conoscono per aver misurato il raggio della Terra (in un tempo in cui pochi credevano che fosse sferica)
ma che i teorici dei numeri ricorderanno per sempre per il suo crivello
Tale metodo consiste nello scrivere in ordine tutti i numeri naturali minori di N (figura 1)
cancellando tutti i multipli di 2 tranne 2 tra i rimanenti tutti i multipli di 3 tranne 3 e cosigrave via fino ad aver
eliminato tutti i numeri composti Tutti i numeri rimasti saranno i numeri primi minori di N
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100
Figura 1 Il metodo del crivello di Eratostene per trovare i numeri primi
6
Facciamo un esempio vogliamo scrivere lrsquoelenco dei numeri primi minori 100
Scriviamo in ordine tutti i primi cento numeri naturali a partire da 2
bull cancelliamo i multipli di 2
bull cancelliamo i multipli di 3
bull cancelliamo i multipli di 5
bull cancelliamo i multipli di 7
Fermiamoci qui e osserviamo che quando abbiamo a che fare con un numero primo p i suoi multipli
per fattori piugrave piccoli di p sono stati giagrave eliminati e il primo che non lo egrave stato saragrave p2 Per esempio nel caso
in cui p fosse 5 il primo multiplo a non essere ancora stato eliminato egrave 25 infatti 10 egrave stato eliminato come
multiplo di 2 15 egrave stato eliminato come multiplo di 3 20 egrave stato eliminato come multiplo di 2 25 egrave il
primo non eliminato percheacute non egrave multiplo di 2 neacute di 3 pertanto la procedura di cancellazione termina con
p=7 infatti se p=11 allora p2=121 e poicheacute la tavola arriva fino a 100 tutti i multipli di 11 sono giagrave stati
eliminati
Tutti i numeri non cancellati (quelli in grassetto) sono i primi compresi nellrsquointervallo tra 2 e 100
estremi inclusi essi sono 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83
69 97
Alla ricerca dei numeri primi
Proprio nel tentativo di farsi unrsquoidea di come si distribuiscono i numeri primi eminenti matematici
come Pierre de Fermat Marin Mersenne Leonhard Euler (Eulero) Carl Friedrich Gauss ecc hanno
compilato e analizzato lunghi elenchi di numeri primi alla ricerca di formule in grado di produrre se non
tutti almeno ldquomoltirdquo di essi
Pierre de Fermat (1601-1665) ipotizzograve che tutti i numeri della forma F(N)= siano primi In effetti
per N=1
5141212)1( 221
=+=+=+=F
per N=2
171161212)2( 422
=+=+=+=F
per N=3
25712561212)3( 823
=+=+=+=F
per N=4
655371655361212)4( 1624
=+=+=+=F
sono tutti primi ma giagrave per N=5
67004176414294967297142949672961212)5( 3225
times==+=+=+=F
risultato scoperto da Eulero nel 1732 questo egrave uno dei pochi casi in cui Fermat cadde in errore forse
percheacute come si vede questi numeri detti numeri di Fermat crescono molto rapidamente giagrave il quinto
7
numero ha dieci cifre ed era al di fuori della portata dei suoi calcoli Ma egrave un ottimo esempio per
convincerci che la veritagrave di una affermazione non puograve basarsi sulla verifica della sua validitagrave in alcuni casi
particolari
Oggi sappiamo che F(N) egrave composto per tutti i valori di N da 5 a 21 come pure per vari altri valori
e lrsquoipotesi piugrave diffusa ma non dimostrata egrave che F(N) sia composto per tutti i valori di Ngt4 sostenuta dal
fatto che non si egrave trovato sperimentalmente un F(N) con Ngt4 che sia primo
Carl Friedrich Gauss (1777-1855) riuscigrave a dimostrare che se lrsquoN-esimo numero di Fermat egrave primo
allora egrave possibile costruire geometricamente con riga e compasso un poligono regolare di N lati Dove per
riga si intende una riga non graduata che serva solo a tracciare linee rette e per compasso uno strumento
capace solo di tracciare circonferenze o archi di circon-ferenza e non per esempio di riportare misure In
questo modo allrsquoetagrave di soli 19 anni Gauss riuscigrave a costruire il poligono di 17 lati Allo stesso modo si
potrebbe costruire un poligono regolare di 65537 lati essendo questrsquoultimo un primo di Fermat
Marin Mersenne (1588-1648) egrave famoso fra lrsquoaltro per il suo ruolo di intermediario nella comunitagrave
scientifica internazionale del Seicento In assenza di periodici scientifici infatti diverse persone si
assunsero il compito di comunicare a un gran numero di corrispondenti ogni scoperta scientifica di cui
fossero venuti a conoscenza e Mersenne fu uno di questi A lui egrave dovuta la pubblicazione per la prima
volta di gran parte del lavoro di Fermat attraverso le sue lettere
Anche Mersenne venne preso dalla smania di trovare delle formule che producessero numeri primi
e in questa ricerca compilograve un elenco di numeri primi p per lrsquoesattezza p=2 3 5 7 13 17 19 31 67
127 257 per i quali riteneva che fosse primo anche il numero della forma M(p)= che viene oggi chiamato
numero di Mersenne Nessuno sa come Mersenne sia stato in grado di fare questa affermazione ma
comunque egli era sorprendentemente vicino alla veritagrave Soltanto nel 1947 quando comparvero le
calcolatrici da tavolo fu possibile verificare la sua asserzione Aveva fatto solo 5 errori M(67) M(257)
non sono primi M(61) M(89) M(107) sono primi
Si osserva facilmente come al crescere di p il numero M(p) diventi rapidamente molto grande
bull M(2)=22ndash1=3
bull M(3)=23ndash1=7
bull M(4)=24ndash1=15=3middot5
bull M(5)=25ndash1=31
bull M(6)=26ndash1=63=7middot3middot3
bull M(7)=27ndash1=127
bull M(8)=28ndash1=255=5middot3middot17
hellip
bull M(11)=211ndash1=2047=23middot89
hellip
bull M(17)=217ndash1=131071
8
E solo per alcuni valori di p essi sono primi per cui lrsquoidea sarebbe quella di cercare i valori di p per
cui M(p) egrave primo Ma ciograve non egrave facile percheacute la primalitagrave di p egrave condizione solo necessaria per la primalitagrave
di M(p) infatti egrave vero che
1 se M(p) egrave primo allora anche p egrave primo
2 se p non egrave primo allora M(p) non egrave primo vedi ad esempio M(4) M(6) M(8)
ma se p egrave primo non egrave detto che M(p) sia primo vedi ad esempio M(11)
A tuttrsquooggi non si sa se esista unrsquoinfinitagrave di numeri di Mersenne che siano primi (detti primi di
Mersenne) neacute se esista unrsquoinfinitagrave di numeri di Mersenne che non siano primi anche se entrambe le
asserzioni appaiono verosimili Infatti aumentando le capacitagrave di calcolo dei calcolatori aumenta il
numero dei primi di Mersenne conosciuti (tabella 1) La ricerca di primi di Mersenne sempre piugrave grandi ha
valore di semplice curiositagrave ma il loro calcolo egrave utile per la misurazione della potenza di calcolo dei
calcolatori Per esempio per dimostrare che il numero di Mersenne M8191 di 2466 cifre non egrave primo usando
il test di Lucas-Lehmer ci vollero 100 ore la prima volta nel 1953 sul computer ILLIAC-I Da allora il
tempo di calcolo egrave sceso drasticamente da 5 a 2 ore su un IBM 7090 40 minuti su un ILLIAC-II da 3 a un
minuto su un IBM 360-91 e 10 secondi su un CRAY-I
valore di p 2p-1 anno autore computer 2 3 3 7 5 31 7 127 13 8191 1461 anonimo 17 131071 1588 Pietro Antonio Cataldi 19 524287 1588 Pietro Antonio Cataldi 31 2 147 483 647 1750 Leonhard Euler 61 19 cifre 1883 I M Pervushin calcolatore meccanico 89 27 cifre 1911 R E Powers calcolatore meccanico 107 33 cifre 1914 R E Powers calcolatore meccanico 127 39 cifre 1876-1914 Francois Edouard Anatole Lucas calcolatore meccanico 521 157 cifre 30 gennaio
1952 Raphael M Robinson SWAC
607 183 cifre 30 gennaio 1952
Raphael M Robinson SWAC
1279 386 cifre 25 giugno 1952
Raphael M Robinson SWAC
2203 664 cifre 7 ottobre 1952
Raphael M Robinson SWAC
2281 687 cifre 9 ottobre 1952
Oct 9 Raphael M Robinson SWAC
3217 969 cifre 1957 Hans Riesel BESK 4253 1281 cifre 1961 Alexander Hurwitz e John L
Selfridge IBM 7090
4423 1332 cifre 1961 Alexander Hurwitz e John L Selfridge
IBM 7090
9689 2917 cifre 1963 Donald B Gillies ILLIAC 2 9941 2993 cifre 1963 Donald B Gillies ILLIAC 2 11213 3376 cifre 1963 Donald B Gillies ILLIAC 2 19937 6002 cifre 1971 Bryant Tuckerman IBM 36091
9
valore di p 2p-1 anno autore computer 21701 6533 cifre 1978 Landon Curt Noll e Laura A
Nickel Cyber 174
23209 6987 cifre 1979 Landon Curt Noll Cyber 174 44497 13395 cifre 1979 David Slowinski e Harry L
Nelson Cray 1
86243 25962 cifre 1982 David Slowinski Cray 1 110503 33265 cifre 1988 Walter N Colquitt e Luther
Welsch Jr
132049 39751 cifre 1983 David Slowinski Cray X-MP 216091 65050 cifre 1985 David Slowinski Cray X-MP 756839 227832 cifre 1992 David Slowinski e Paul Gage Cray 2 859433 258716 cifre 1994 David Slowinski e Paul Gage Cray C90 1257787 378632 cifre 1996 David Slowinski e Paul Gage Cray T94 1398269 420921 cifre 1996 Joel Armengaud George
Woltman e GIMPS PC Pentium 90
2976221 895932 cifre 1997 Gordon Spence George Woltman e GIMPS
PC Pentium 100
3021377 909526 cifre 1998 Roland Clarkson Woltman Scott Kurowski e GIMPS
Pentium 200
6972593 2098960 cifre 1999 Nayan Hajratwala Woltman Kurowski e GIMPS
Pentium II 350
13466917 4053946 cifre 2001 Michael Cameron e GIMPS 800 MHz AMD T-Bird PC
20996011 6320430 cifre 2003 Michael Shafer e GIMPS 2 Gh Pentium 4 Dell Dimension PC
24036583 7235733 cifre 2004 Josh Findley e GIMPS 24 GHz Pentium 4 Windows XP PC
25964951 7816230 cifre 2005 Martin Nowak e GIMPS 24 GHz Pentium 4 Windows XP PC
30402457
9152052 cifre
2005 Curtis Cooper Steven Boone CMSU e GIMPS
Lavoro coordinato di 700 computers
GIMPS = Great Internet Mersenne Prime Search (wwwmersenneorg)
Tabella 1 La ricerca dei numeri primi di Mersenne
Unrsquoaltra notevole formula che dagrave luogo a molti numeri primi fu scoperta da Eulero nel 1772 La
formula x2+x+41 fornisce il seguente elenco di numeri primi inserendo tutti i numeri compresi fra 0 e 39
41 43 47 53 61 71 83 97 113 131 151 173 197 223 251 281 313 347 383 421 461 503
547 593 641 691 743 797 853 911 971 1033 1097 1163 1231 1301 1373 1447 1523 1601
Eulero comprese che il processo era destinato a interrompersi a un certo punto Infatti per x=41 si
ha
412+41+41 = 412+2middot41 = 41middot (41+2) = 41middot43
che non egrave primo ma anche per x=40 il numero che si ottiene non egrave primo infatti
402+40+41= 40 middot (40+1)+(40+1)=(40+1) middot (40+1)
Ciononostante Eulero fu molto colpito dalla capacitagrave della sua formula di produrre tanti numeri
primi da domandarsi per quali altri numeri diversi da 41 si sarebbe potuto ottenere un risultato simile
Scoprigrave che si poteva scegliere anche n=2 3 5 11 17 percheacute la formula x2+x+n producesse numeri primi
per ogni valore di x compreso fra 0 e nndash2
10
Possiamo concludere che la ricerca di formule semplici che producano soltanto numeri primi egrave stata
inutile ed egrave ancora meno probabile che conduca a buoni risultati il tentativo di trovare una formula che
produca tutti i numeri primi Lo stesso Eulero nel 1751 scriveva ldquoci sono alcuni misteri che la mente
umana non penetreragrave mai Per convincercene non dobbiamo far altro che gettare unrsquoocchiata alle tavole dei
numeri primi Ci accorgeremo che non vi regna neacute ordine neacute leggerdquo
La svolta di Gauss
Il passo decisivo nella ricerca di una legge da cui dipenda la distribuzione dei numeri primi fu
compiuto quando si rinunciograve agli inutili tentativi di trovare una formula che generasse tutti i numeri primi o
desse il numero esatto di essi contenuti nei primi n numeri interi A compiere la svolta fu Gauss il quale
affrontograve il problema da un altro punto di vista Infatti egli si chiese se era possibile prevedere non quale
fosse la posizione di un numero primo rispetto a quello precedente ma se era possibile prevedere quanti
fossero i numeri primi minori o uguali a un certo numero x Egli introdusse a tale scopo la funzione )(xπ =
numero dei primi minori o uguali a x e poteacute verificare per esempio che 4)10( =π percheacute i numeri primi
minori o uguali a 10 sono 2 3 5 7 e cioegrave 4 e la distanza media tra due numeri primi successivi
nellrsquointervallo tra 1 e 10 egrave 104 uguale a 25 Nella tabella 2 sono riportati alcuni valori della funzione e
della distanza media
Tabella 2 Alcuni valori della fiunzione )(xπ
Osservando tali risultati egli notograve che ogni volta si moltiplica x per 10 si aggiunge 23 al rapporto
xπ(x) almeno per x abbastanza grande Proprio questo legame tra moltiplicazione e addizione (che egrave la
relazione racchiusa in un logaritmo) e il fatto che 23 egrave approssimativamente il valore rappresentato dal
portarono Gauss a ipotizzare che
( )x
x
xlog=
π
Da cui
11
( )( )x
xx
logcongπ
Questa congettura si rivelograve poi vera e oggi egrave nota come teorema dei numeri primi Una notevole
conseguenza del teorema dei numeri primi egrave che ldquola probabilitagrave che un numero intero di x cifre preso a
caso sia primo egrave circa 1log(10x)rdquo Infatti lrsquoespressione
( )( )x
xx
logcongπ
in altre parole significa che nellrsquointervallo tra 1 e x si incontra un primo circa ogni log(x) e cioegrave la
probabilitagrave che nellrsquointervallo dei numeri le x un numero preso a caso sia primo egrave 1log(x) Ad esempio
nellrsquointervallo dei numeri minori di 10 000 000 uno ogni log(10 000 000) egrave primo Essendo
log(10 000 000) = log(107) = 7log(10) asymp 1611hellip ciograve vuol dire che dei numeri minori di 10 000 000 circa 1
su 16 egrave primo e perciograve crsquoegrave circa una probabilitagrave su 16 che un numero di 7 cifre sia primo
Al momento attuale molti sono i problemi non ancora risolti Tra questi ricordiamo
1 la congettura dei primi gemelli esistono infiniti numeri primi p tali che p+2 egrave ancora
primo Ad esempio 3 e 3+2 5 e 5+2 17 e 17+2 29 e 29+2 ecc
2 la congettura di Goldbach ogni intero pari maggiore di 2 puograve essere scritto come somma di
due numeri primi Ad esempio 4 = 2+2 6 = 3+3 8 = 3+5 10 = 5+5 12 = 5+7 ecc
La difficoltagrave fondamentale di tali problemi risiede nel fatto che i numeri primi sono definiti
mediante proprietagrave moltiplicative mentre i problemi in questione coinvolgono proprietagrave additive
Di gran lunga il piugrave importante tra i problemi non risolti egrave quello che va sotto il nome di ipotesi di
Riemann anche percheacute fu proprio la novitagrave del metodo in essa contenuto a far compiere il passo decisivo
per la dimostrazione del teorema dei numeri primi compiuta indipendentemente lrsquouno dallrsquoaltro nel 1896
dai matematici Jacques Hadamard e Charles de la Valleacutee-Poussin
Ricordiamo che lrsquoipotesi di Riemann inserita allrsquoottavo posto nellrsquoelenco dei famosi ventitreacute
problemi irrisolti presentati da David Hilbert al Congresso internazionale dei matematici del 1900 e
lanciati come sfida alla comunitagrave dei matematici del ventesimo secolo egrave ancora rimasto tale cioegrave senza
dimostrazione
Egrave oggi considerato uno dei problemi piugrave difficili del nuovo millennio Nel 2000 il Clay Mathematics
Institute ha offerto un milione di dollari a chi riusciragrave a darne una dimostrazione
Grazie ai calcolatori attualmente egrave stato possibile verificare tali congetture in moltissimi casi Ad
esempio la congettura di Goldbach egrave stata verificata per tutti i pari fino a 100 milioni mentre lrsquoipotesi di
Riemann egrave stata verificata per un miliardo e mezzo di casi ma ciograve non egrave sufficiente per dimostrarne la
veritagrave Ed egrave proprio questo quello che distingue la matematica dalle altre scienze dove una qualsiasi
ipotesi sostenuta da verifiche sperimentali egrave ritenuta valida fincheacute non contraddetta da un caso contrario
mentre in matematica un solo caso contrario serve a dimostrare la falsitagrave dellrsquoipotesi la cui veritagrave per
contro deve essere dimostrata per tutti i casi possibili il che ovviamente puograve avvenire solo
indipendentemente dalle verifiche di casi particolari anche se molti
12
Ed egrave questa una delle peculiaritagrave piugrave belle della matematica Qualsiasi affermazione dimostrata egrave
eterna e immutabile si pensi allrsquoinfinitagrave dei numeri primi ciograve egrave vero per Euclide ma rimane vero ancora
oggi senza possibilitagrave di smentite
Come ebbe a dire il matematico Hermann Hakel ldquoNella maggior parte delle scienze una
generazione demolisce quello che laltra ha costruito e ciograve che uno ha fatto un altro lo disfa Solo nella
matematica ogni generazione aggiunge un nuovo piano alla vecchia strutturardquo
E che ciograve susciti lrsquoidea della bellezza egrave bene sintetizzato dalle parole di Bertrand Russell ldquoLa
matematica vista dalla giusta angolazione non possiede solo la veritagrave ma la suprema bellezza una
bellezza fredda e austera come quella della scultura una bellezza che non fa appello ai nostri sentimenti
piugrave grossolani che non ha gli ornamenti sgargianti della musica o della pittura una bellezza pura e
sublime capace della rigorosa perfezione che egrave propria solo della piugrave grande arterdquo
Anche se non egrave possibile presentare in termini semplici lrsquoipotesi di Riemann in quanto coinvolge
concetti di matematica superiore proviamo a delinearne le linee essenziali
Nel 1737 Eulero introdusse e studiograve una funzione detta funzione ζ (zeta) di Eulero cosigrave definita
sum+infin
=
gtisin++++==1
1 4
1
3
1
2
11
1)(
nxxxx
xRxperdefinitan
xζ
e sempre a Eulero egrave dovuta la seguente identitagrave
( )
1
111
11
17
7
15
5
13
3
12
2 prod
minus=sdot
minussdot
minussdot
minussdot
minussdot
minus=
px
x
x
x
x
x
x
x
x
x
x
x
p
pxζ
dove il prodotto egrave esteso a tutti i numeri primi
Ed egrave proprio questa identitagrave che egrave alla base della notevole importanza assunta dalla funzione ζ nella
teoria dei numeri e in particolare per quanto riguarda la distribuzione dei numeri primi nellrsquoinsieme dei
naturali Infatti a destra di essa appaiono esplicitamente i numeri primi mentre a sinistra compare la
funzione ζ definita indipendentemente da essi
Riemann nel 1859 propose di considerare la funzione ζ come funzione di variabile complessa
cioegrave definita per x numero complesso ed effettuograve il cosiddetto prolungamento analitico di ζ allrsquointero piano
complesso costruendo la nuova funzione ζ oggi nota come funzione zeta di Riemann Egli provograve che gli
zeri della funzione ζ (cioegrave i valori della variabile per cui la funzione restituisce il valore 0) sono x = ndash2
x = ndash4 x = ndash6hellip detti zeri banali di ζ e alcuni numeri complessi (non reali) x con parte reale compresa tra
0 e 1 estremi inclusi Lrsquoipotesi di Riemann afferma che tutti gli zeri non banali di ζ hanno la caratteristica
di avere la parte reale uguale a 21
Dalla validitagrave di questa ipotesi discende una serie enorme di proprietagrave sui numeri primi Ci sono
attualmente centinaia di ldquoquasi teoremirdquo che iniziano con ldquosupponiamo che lrsquoipotesi di Riemann sia
verahelliprdquo Se lrsquoipotesi venisse dimostrata tutti questi ldquoquasi teoremirdquo diventerebbero veri teoremi
13
I test di primalitagrave e la fattorizzazione
Abbiamo fin qui concentrato lrsquoattenzione sul comportamento dei numeri primi ma come egrave possibile
preso un intero a caso x provare se x egrave primo o composto
Il metodo piugrave ovvio consiste nel dividere il numero x per tutti gli interi che lo precedono Infatti se
una qualunque di tali divisioni dagrave resto zero il numero x egrave composto e divisore e quoziente sono suoi
fattori mentre se nessuna di tali divisioni per ciascuno degli interi minori x dagrave resto zero il numero x egrave
primo
In effetti la procedura delle divisioni puograve essere interrotta allrsquointero minore della in quanto se x egrave
composto esso saragrave il prodotto di almeno due fattori per esempio x= F1sdotF2 ed essendo x=x sdot x se
F1gt x F2 lt x Ad esempio 29= 2929 sdot e 529 cong quindi si puograve fermare la procedura quando il
divisore egrave 5 Infatti 292 dagrave resto 1 293 dagrave resto 2 294 dagrave resto 1 295 dagrave resto 4 Si puograve quindi
concludere che 29 egrave primo percheacute se avesse avuto un fattore maggiore di 5 ne avrebbe avuto sicuramente
uno minore di 5 il che non egrave
Ma anche limitando le divisioni alla radice quadrata lrsquoalgoritmo sarebbe comunque inapplicabile
percheacute per giungere a conclusione richiede un tempo che cresce esponenzialmente al crescere del numero
di cifre di n pertanto puograve risultare intollerabilmente lungo anche con gli strumenti di calcolo piugrave veloci
anni secoli piugrave della vita presunta dellrsquoUniverso Ad esempio egrave stato dimostrato che il numero 244 497ndash1
formato da 13 595 cifre egrave primo Se un calcolatore fosse in grado di controllare un milione di divisioni al
secondo e si fermasse alla radice quadrata del numero egrave stato calcolato che gli occorrerebbero 106684 anni
per espletare il suo compito Lrsquoinconveniente deriva dal fatto che il metodo delle divisioni non solo ci dice
se il numero egrave primo o composto ma risolve anche il problema della fattorizzazione di un numero in
quanto nel caso in cui il numero risulta composto ci fornisce i fattori della sua scomposizione
A tuttrsquooggi egrave facile trovare numeri primi grandi o testare la primalitagrave di un numero mentre egrave
difficile fattorizzare un intero che sia il prodotto di due numeri primi grandi Ovviamente i termini ldquofacilerdquo
ldquodifficilerdquo ldquogranderdquo sono relativi alla conoscenza e alla tecnologia disponibili Attualmente sono
considerati ldquograndirdquo numeri di alcune centinaia di cifre mentre ldquofacilerdquo rappresenta un tempo di secondi e
ldquodifficilerdquo di secoli
Lrsquoefficacia dei test di primalitagrave attualmente usati dipende dal fatto che egrave possibile stabilire se un
numero egrave primo senza essere costretti a trovarne i fattori qualora risultasse composto Alcuni metodi usati
sono di tipo probabilistico cioegrave stabiliscono che un intero egrave probabilmente primo con una probabilitagrave di
errore che si puograve rendere piccola quanto si vuole
Il piugrave semplice al tempo stesso velocissimo e potente si basa sul piccolo teorema di Fermat Il
teorema stabilisce che se p egrave un numero primo e a un intero minore di p allora apndasha egrave un multiplo di p cioegrave
egrave divisibile per p
Ad esempio
bull se p=7 e a=2 allora 27ndash2=128ndash2=126=7middot18 cioegrave multiplo di 7
bull se p=7 e a=3 allora 37ndash3=2187ndash3=2184=7middot312 cioegrave multiplo di 7
14
bull se p=7 e a=4 allora 47ndash4=16384ndash4 = 16380 = 7middot2340 cioegrave multiplo di 7
bull se p=5 e a=4 allora 45ndash4=1024ndash4=1020=5middot204 cioegrave multiplo di 5
bull se p=3 e a=4 allora 43ndash4=64ndash4=60=3middot20 cioegrave multiplo di 3
Lrsquoimportanza del teorema sta nel fatto che ci fornisce un metodo per stabilire se un numero egrave primo
o no infatti costruiamo un numero del tipo apndasha verifichiamo se egrave multiplo di p se non lo egrave siamo sicuri
che p non egrave primo Ad esempio vogliamo sapere se 15 egrave primo costruiamo
215ndash2=32768ndash2=32766
32766=15middot2184+6
cioegrave non egrave divisibile per 15 quindi sicuramente 15 egrave composto e infatti 15=3middot5
Ma cosa si puograve dire se invece apndasha egrave divisibile per p Sfortunatamente non possiamo essere sicuri
che p sia primo anche se egrave molto probabile che lo sia
Proviamo 217ndash2=131072ndash2=131070=17middot7710 e infatti 17 egrave primo Provando 2341ndash2 si trova che
esso egrave divisibile per 341 ma 341 non egrave primo essendo 341=11middot31 Sono detti pertanto pseudoprimi i
numeri composti che passano il test Non proviamo a calcolare 2341 percheacute sarebbe un numero
mostruosamente grande fuori dalla nostra portata ma vedremo tra poco come si puograve aggirare lrsquoostacolo
Riassumendo il piccolo teorema di Fermat afferma che egrave vero
1 se p egrave primo e a egrave un intero minore di p allora apndasha egrave divisibile per p
2 se apndasha non egrave divisibile per p allora p non egrave primo
ma se apndasha egrave divisibile per p allora p puograve essere primo ma anche composto ciograve percheacute la divisibilitagrave per p
egrave condizione necessaria ma non sufficiente percheacute p sia primo Concludendo possiamo dire che usando
questo teorema per verificare la primalitagrave di un numero se scopriamo che ap-a non egrave divisibile per p siamo
sicuri che p egrave composto ma se egrave divisibile per p allora p egrave probabilmente primo nel senso che puograve essere
un primo autentico o pseudoprimo
La cosa interessante egrave che la probabilitagrave che un numero composto sia uno pseudoprimo (cioegrave che
superi il test di primalitagrave ma non sia primo come per esempio 341) su una base casuale diminuisce
fortemente allrsquoaumentare del numero Un numero di 1000 cifre composto ha circa una possibilitagrave su 10123
di essere uno pseudoprimo su una base scelta a caso La tabella 3 riporta tali probabilitagrave in funzione del
numero di cifre
Cifre in x Limite superiore per P(x)
Cifre in x Limite superiore per P(x)
Cifre in x
Limite superiore per P(x)
60 00716 80 00000846 100 00000000277
120 528middot10ndash12 150 149middot10ndash17 200 385middot10ndash27
300 58middot10ndash29 400 57middot10ndash42 500 23middot10ndash55
700 18middot10ndash82 1000 12middot10ndash123 2000 86middot10ndash262
5000 76middot10ndash680 10000 16middot10ndash1331 100000 13middot10ndash10584
Tabella 3 Probabilitagrave che un numero composto sia pseudoprimo
Nel 2002 tre ricercatori indiani Manindra Agrawal Neeraj Kayal e Nitin Saxena hanno costruito un
algoritmo denominato AKS (dalle iniziali dei nomi) sempre basato sulla fondamentale proprietagrave enunciata dal
15
piccolo teorema di Fermat ma che risulta deterministico e che riduce in maniera drastica il tempo di calcolo
Lrsquoalgoritmo fornisce una svolta significativa in un settore lungamente atteso e di grande interesse pratico ma
per ora non sembra che possa avere immediata applicazione in quanto molto piugrave lento dei test probabilistici i
quali drsquoaltra parte sono quasi certi per i numeri primi di centinaia di cifre che servono attualmente in
crittografia
Storia della crittografia
La crittografia che letteralmente significa scrittura nascosta nasce dalla necessitagrave di segretezza di alcune
informazioni e pertanto con tale termine intendiamo lo studio dei metodi che consentono la trasmissione sicura
dellrsquoinformazione
Drsquoaltro canto lrsquoesistenza di informazioni segrete genera il desiderio di svelarle e da tale desiderio nasce
la crittoanalisi con cui intendiamo lo studio di metodi che consentono la decifrazione dei messaggi crittografati
La storia della crittografia drsquoaltra parte altro non egrave che la secolare battaglia tra crittografi e crittoanalisti
Infatti ogni sistema crittografico rimane valido fincheacute un crittoanalista non individua un suo punto debole sulla
base del quale riesce a elaborare il sistema di decifrazione
Crittografi e crittoanalisti insieme hanno dato un grande contributo al progresso scientifico e tecnologico
Infatti tutti i metodi della crittografia e della crittoanalisi fanno ricorso a metodi e strumenti di una vasta varietagrave
di scienze come la matematica la linguistica la teoria dellrsquoinformazione la fisica quantistica le quali a loro
volta sono da essi arricchite e stimolate
Lrsquoidea su cui si basa un metodo crittografico consiste nel concordare tra mittente e destinatario che
vogliono scambiarsi un messaggio senza che venga intercettato da terzi una procedura per alterare il testo in
chiaro del messaggio Il destinatario puograve ricavare il testo originale applicando al testo cifrato la procedura
inversa Chi intercetta il messaggio non conoscendo la procedura non puograve ricostruire il messaggio La sicurezza
del metodo sta nella difficoltagrave da parte del crittoanalista di poter ricostruire la procedura dallrsquoanalisi del
messaggio cifrato
Prima dellrsquoera informatica i metodi crittografici erano essenzialmente due per trasposizione o per
sostituzione
Nella trasposizione le lettere sono mutate di posto generando di fatto un anagramma Ma la
trasposizione non puograve essere casuale Infatti nel caso di messaggi brevi non sarebbe sicura in quanto i pochi
caratteri alfabetici che costituiscono il messaggio possono essere combinati in pochi modi diversi per cui
diventa facile ricostruire il messaggio per tentativi Ad esempio la parola ldquomiordquo consta di 3 caratteri alfabetici
esistono al massimo sei sequenze diverse mio moi imo iom omi oim analizzandole tutte e sei egrave facile
ricostruire la sequenza ldquomiordquo Ma al crescere della lunghezza del messaggio cresce mostruosamente anche il
numero delle sequenze infatti un anagramma di una parola di n lettere altro non egrave che una permutazione di n
elementi e si dimostra che il numero totale delle permutazioni di n elementi egrave dato da n (si legga n fattoriale)
uguale al seguente prodotto n(nndash1)(nndash2)(nndash3)hellip(nndash (nndash1)) Pertanto se il messaggio egrave costituito ad esempio da
20 lettere i possibili anagrammi sono 20=20middot19middot18middot17middot16middot15middot14middot13middot12middot11middot10middot9middot8middot7middot6middot5middot4middot3middot2middot1 cioegrave piugrave di 1000
miliardi e anche se si potesse controllare un anagramma al secondo ci vorrebbero piugrave di trentuno secoli per
analizzarli tutti In questo caso la comunicazione risulterebbe sicura essendo impossibile analizzare tutte le
16
possibili sequenze e ricostruire il messaggio ma di fatto egrave inutilizzabile anche dal destinatario percheacute di fronte
allo stesso problema
Per rendere efficace tale metodo egrave necessario che mittente e destinatario si accordino su un criterio di
trasposizione fissato in anticipo e piugrave egrave complicato tale criterio e piugrave egrave sicuro il metodo
Esiste il metodo della trasposizione cosiddetta a inferriata Esso consiste nella trascrizione di un testo
lungo due linee orizzontali una superiore e una inferiore passando da una allrsquoaltra a ogni successivo carattere
alfabetico Finita la trascrizione la seconda fila di caratteri saragrave accodata alla prima per dare origine al testo
cifrato Ad esempio
testo del messaggio incontriamoci stasera alle sette
testo del messaggio cifrato icnraoitsralstenotimccsaealeet
Il destinatario ricostruisce il testo originale applicando la trasposizione inversa
Esistono molti altri tipi di trasposizione per esempio si puograve variare il numero delle file su cui trascrivere
il messaggio oppure si puograve passare da una fila allrsquoaltra ogni due caratteri anzicheacute dopo ogni singolo carattere e
cosigrave via Da osservare che ogni carattere alfabetico mantiene la propria identitagrave ma cambia la posizione
Nella sostituzione ogni carattere alfabetico del messaggio originale viene sostituito con un altro carattere
alfabetico secondo un criterio stabilito In questo caso ogni carattere alfabetico mantiene la posizione ma
cambia la propria identitagrave
Sostanzialmente esso necessita di determinare come primo passo un alfabeto cifrante che egrave ottenuto
rimescolando secondo un criterio lrsquoalfabeto ordinario In questo modo a ogni carattere dellrsquoalfabeto ordinario
corrisponde un carattere dellrsquoalfabeto cifrante Per cifrare il messaggio si sostituisce ogni carattere del messaggio
con il corrispondente carattere dellrsquoalfabeto cifrante Per decifrare il messaggio si applica la procedura inversa
Il primo esempio documentato di cifratura per sostituzione si trova nel De bello gallico di Giulio Cesare
detto anche cifrario di Cesare Qui lrsquoalfabeto cifrante era ottenuto da quello ordinario spostando a destra di tre
posti ogni carattere alfabetico ad esempio per cifrare il messaggio si sostituisce ogni lettera con la
corrispondente dellrsquoalfabeto cifrante (figura 2)
17
Figura 2 Cifrario di Giulio Cesare
Per decifrare si sostituisce ogni lettera del messaggio cifrato utilizzando la corrispondenza inversa
Come si puograve facilmente osservare in questo metodo lrsquoalfabeto cifrante altro non egrave che una
riorganizzazione dellrsquoalfabeto ordinario che si puograve ottenere con un qualsiasi spostamento tra 1 e il numero delle
lettere dellrsquoalfabeto ordinario Per esempio nel caso dellrsquoalfabeto italiano che consta di 21 lettere si possono
effettuare 20 diversi spostamenti e ottenere quindi 20 diversi alfabeti cifranti Essendo lrsquoalfabeto cifrante una
riorganizzazione dellrsquoalfabeto ordinario non egrave detto che questa debba essere ottenuta utilizzando il criterio
dello spostamento ma puograve coincidere con un qualsiasi anagramma dellrsquoalfabeto ordinario Si vede quindi
facilmente come aumentano gli alfabeti cifranti nel nostro caso il loro numero per quanto detto
precedentemente uguaglia il numero delle permutazioni di 21 elementi e cioegrave 21 e cioegrave oltre 50 miliardi di
miliardi
A partire da questo esempio cerchiamo di chiarire in termini generali il significato di metodo
crittografico intendendo con esso un algoritmo che mediante una chiave trasforma un messaggio in chiaro in
un messaggio cifrato o crittogramma
Ad esempio nel metodo descritto sopra lrsquoalgoritmo equivale alla procedura con cui ogni lettera
dellrsquoalfabeto in chiaro egrave sostituita dalla corrispondente lettera dellrsquoalfabeto cifrante la chiave equivale al
particolare alfabeto cifrante scelto per la cifratura o decifrazione di un particolare crittogramma
Inoltre crsquoegrave da sottolineare lrsquoimportanza concettuale della distinzione tra algoritmo e chiave Infatti la sola
conoscenza dellrsquoalgoritmo senza la chiave non permette di decifrare il crittogramma Ed egrave questo uno dei
principi fondamentali della crittografia formulato in modo definitivo nel 1883 dallrsquoolandese Auguste
Kerckhoffs von Nieuwenhof noto anche come legge di Kerckhoffs ldquola sicurezza di un crittosistema non deve
dipendere dal tener celato il crittoalgoritmo La sicurezza dipenderagrave solo dal tener celata la chiaverdquo
Le caratteristiche di un efficace sistema crittografico possono essere riassunte nelle seguenti
1 segretezza della chiave
2 semplicitagrave della chiave (per evitare possibili malintesi o errori al momento dello scambio tra
mittente e destinatario)
3 alto numero di potenziali chiavi tra cui scegliere
18
Come si puograve notare la 2) e la 3) sono collegate tra loro infatti nel sistema descritto sopra si potrebbe
scegliere una chiave piugrave semplice sacrificando il numero di chiavi potenziali
Infatti invece di generare lrsquoalfabeto cifrante da una riorganizzazione casuale dellrsquoalfabeto ordinario lo si
puograve fare a partire da una parola chiave come nel seguente esempio Supponiamo di accordarci sulla parola
chiave lsquolaurarsquo si eliminano eventuali spazi e lettere ripetute quindi la parola chiave diventa lsquolaurrsquo a questo
punto la sequenza l a u r saragrave lrsquoinizio dellrsquoalfabeto cifrante cui seguiranno tutte le altre lettere mancanti in
ordine alfabetico partendo dallrsquoultima lettera della chiave per cui lrsquoalfabeto cifrante che si ottiene saragrave l a u r s t
v z b c d e f g h i m n o p q
I crittosistemi basati sulla sostituzione hanno dominato la scena per tutto il primo millennio della nostra era
fincheacute i crittoanalisti non trovarono il suo punto debole ed elaborarono un metodo per decifrarne i crittogrammi prodotti
La violazione di tali sistemi si basa su unrsquoidea dovuta per prima a crittoanalisti arabi nella quale si
combinano conoscenze di linguistica statistica e matematica nota con il nome di analisi delle frequenze
Essa egrave descritta dallo studioso del IX secolo Abu Yusuf ibn Ishaq al-Kind sopran-nominato il filosofo
degli arabi in una sua monografia dal titolo Sulla decifrazione dei messaggi crittati ritrovata nellrsquoarchivio
ottomano Sulaimaniyyah di Istanbul solo nel 1987 Nel testo si legge
Un modo di svelare un messaggio crittato se conosciamo la lingua dellrsquooriginale consiste nel trovare
un diverso testo chiaro nella stessa lingua abbastanza lungo da poter calcolare la frequenza di ciascuna
lettera
Chiamiamo ldquoprimardquo quella che compare piugrave spesso ldquosecondardquo quella che la segue per frequenza
ldquoterzardquo la successiva e cosigrave via fino a esaurire tutte le lettere del campione di testo chiaro
Esaminiamo poi il testo in cifra che vogliamo interpretare ordinando (in base alla frequenza) anche i
suoi simboli Troviamo il simbolo piugrave comune e rimpiazziamolo con la ldquoprimardquo lettera dellrsquoesempio
chiaro il simbolo che lo segue per frequenza sia rimpiazzato dalla ldquosecondardquo lettera il successivo simbolo
piugrave comune sia rimpiazzato dalla ldquoterzardquo e cosigrave via fino ad aver preso in considerazione tutti i simboli del
crittogramma che intendevamo svelare
Tabella 4 Frequenze delle diverse lettere in italiano
Per superare lrsquoanalisi delle frequenze furono ideati diversi nuovi metodi crittografici tra cui ricordiamo
1 il metodo di sostituzione omofonica
2 il metodo di sostituzione polialfabetica
19
Il metodo di sostituzione omofonica consiste nel sostituire ogni lettera con un numero di simboli per
esempio numeri proporzionale alla sua frequenza Cosigrave ad esempio la lettera a avendo una frequenza di 11 74
viene sostituita da 11 simboli la lettera b con un solo simbolo la lettera c con 4 simboli ecc secondo la tabella 5
Il metodo di sostituzione polialfabetica consiste nellrsquouso di piugrave alfabeti cifranti su unrsquoidea di Leon
Battista Alberti che propose di utilizzarne due Lrsquoalgoritmo consiste nel sostituire la prima lettera del messaggio
in chiaro con la corrispondente del I alfabeto cifrante la seconda lettera con la corrispondente del II alfabeto
cifrante la terza con la corrispondente del I e cosigrave via passando alternativamente dal I alfabeto al secondo Come
nellrsquoesempio della figura 3
Tabella 5 Corrispondenza lettere e simboli nella sostituzione omofonica
Figura 3 Il metodo di sostituzione polialfabetica
Su tale idea si basa il metodo di Blaise de Vigenegravere diplomatico francese nato nel 1523 il quale utilizza
tanti alfabeti cifranti quante sono le lettere dellrsquoalfabeto in chiaro ad esempio nellrsquoalfabeto italiano che consta
di 21 lettere utilizza 21 alfabeti cifranti
Il primo passo consiste nel costruire la tavola di Vigenegravere in cui nella prima riga egrave riportato lrsquoalfabeto in
chiaro e in ognuna delle 21 righe successive egrave riportato un alfabeto cifrante spostato di una lettera rispetto a
quello della riga precedente cosigrave nella riga 1 egrave riportato lrsquoalfabeto spostato di una lettera nella riga 2 quello
spostato di due lettere nella riga 3 quello spostato di tre fino alla riga 20 in cui egrave riportato quello spostato di 20
lettere (figura 4)
20
Figura 4 La tavola di Vigenegravere
Il secondo passo consiste nello scegliere una parola chiave per esempio lsquoverorsquo Pertanto il messaggio in
chiaro ldquonon andarerdquo verrebbe cifrato come nella figura 5
La differenza sostanziale tra la cifratura omofonica e quella polialfabetica egrave che in quella omofonica a
ogni lettera corrispondono piugrave simboli ma ogni simbolo egrave il corrispondente di una sola lettera cioegrave egrave una
corrispondenza 1rarr m che invertita diventa mrarr 1 in quella polialfabetica a ogni lettera corrispondono piugrave
simboli e anche ogni simbolo egrave il corrispondente di piugrave lettere cioegrave mrarr m che rimane tale anche invertendola
Il vantaggio della cifratura polialfabetica egrave pertanto la sua resistenza allrsquoanalisi delle frequenze Oltre ad
ammettere un enorme numero di chiavi infatti si puograve scegliere qualunque parola del dizionario qualunque
combinazione di parole si puograve perfino ricorrere a neologismi rendendo impossibile il controllo di tutte le chiavi
possibili Ed ecco percheacute egrave ritenuta piugrave affidabile e non ha mai smesso di essere usata
Figura 5 Cifratura polialfabetica del messaggio ldquonon andarerdquo
21
Oggi sono noti tutti i punti deboli del sistema di Vigenegravere ed esistono vari procedimenti per decifrare i
crittogrammi generati da tale sistema che sfruttano ad esempio la modularitagrave nel ripetere la chiave o
osservazioni sulle ripetizioni del testo cifrato Ci sono testimonianze storiche che uno di tali procedimenti sia
stato ideato da Sir Charles Babbage famoso per aver progettato e mai realizzato la macchina alle differenze
progenitrice degli odierni calcolatori La prima descrizione resa pubblica del metodo perograve egrave del 1863 portata a
compimento dallrsquoufficiale prussiano F W Kasiski
Unrsquoosservazione decisiva fu che le insidie del metodo di Babbage potevano essere evitate utilizzando
nella cifratura di Vigenegravere una chiave molto lunga e fatta da lettere che si succedono in modo casuale se un
messaggio cifrato non presenta delle ripetizioni se non egrave possibile tentare di indovinare la chiave cadono tutti
gli appigli necessari per effettuare con successo la crittoanalisi
Tale osservazione fu ulteriormente sviluppata da G S Vernam che nel 1926 introdusse lrsquoidea di usare
una chiave casuale lunga quanto il messaggio stesso
Oggi sappiamo grazie agli studi di Claude Shannon del 1949 che tale metodo puograve definirsi
ldquoteoricamente sicurordquo
In pratica perograve ciograve comporta la difficoltagrave di costruire lunghe stringhe di lettere assolutamente casuali e di
scambiarsi segretamente e continuamente queste chiavi In sostanza risulta impraticabile per ogni messaggio
scambiato in modo sicuro egrave necessario prima trasmettere in modo sicuro il messaggio contenente la chiave
I metodi usati per buona parte del Novecento sono delle rielaborazioni sempre piugrave complesse delle idee
descritte finora ottenute anche con la costruzione di dispositivi per la meccanizzazione delle procedure di
cifratura e decifratura Un esempio tra i piugrave conosciuti egrave la macchina Enigma usata dai tedeschi durante la
Seconda guerra mondiale inventata dallrsquoingegnere Arthur Scherbius Enigma consisteva di diversi ingegnosi
elementi combinati in un potente e sofisticato dispositivo per la produzione di scritture segrete In particolare ma
macchina aveva tre componenti collegati da fili elettrici una tastiera per immettere le lettere del testo chiaro
unrsquounitagrave scambiatrice che cifra la lettera trasformandola nel corrispondente elemento del crittogramma e un
visore con varie lampadine che accendendosi indicano la lettera da inserire nel crittogramma
Lo sforzo per violare questa cifratura richiese anni di lavoro e fu portato a compimento dalla Scuola
Inglese Governativa di Codici e Cifre di Bletchley Park di cui faceva parte Alan M Turing noto oggi ai piugrave per
i suoi studi sullrsquointelligenza meccanica
La crittografia nellrsquoera dellrsquoinformatica
Nel 1945 fu realizzato ENIAC (Electronic Numerical Integrator And Calculator) unrsquoapparecchiatura
contenente 18 000 valvole elettroniche capace di effettuare 5000 calcoli al secondo considerato il capostipite
dei moderni calcolatori
Dopo il 1945 fu lrsquoinformatica a fare da protagonista nella battaglia tra crittografi e crittoanalisti operando
una decisiva svolta nelle metodologie di entrambi Infatti i metodi precedenti lrsquoera dellrsquoinformatica basavano la
propria sicurezza sullrsquoenorme numero di chiavi disponibili e sulla loro lunghezza ma che viene messa in crisi
dalla crescente potenza di calcolo dei computer Un computer molto potente infatti potrebbe individuare quella
giusta in pochi minuti anche nel caso di un milione di chiavi da esaminare
Tutti i metodi crittografici esaminati finora necessitano di
22
1 un algoritmo generale di cifratura G
2 di una chiave K che deve rimanere segreta
3 di un algoritmo di decifrazione H=Gndash1 (inverso di G)
e agiscono secondo il seguente schema
il messaggio in chiaro M tramite lrsquoalgoritmo G e la chiave K viene cifrato in MC questrsquoultimo tramite
lrsquoalgoritmo H e la stessa chiave K viene decifrato in M (figura 6)
Figura 6 Schema di metodi crittografici
La sicurezza di tali sistemi risiede interamente nella segretezza delle chiavi Ne segue che per distribuire
agli utenti le chiavi egrave necessario ricorrere a canali sicuri
Gli svantaggi che ne derivano sono essenzialmente
1 difficoltagrave nella distribuzione delle chiavi agli utenti
2 mancata autenticazione dei messaggi mittente e destinatario condividono la stessa chiave
pertanto non crsquoegrave modo di impedire che il destinatario si invii messaggi che poi sembrino
provenienti dal mittente Si pensi quali problemi possono provocare simili falsificazioni nella
posta elettronica o nei sistemi bancari elettronici
La svolta avvenne nel 1976 a opera di Diffie e Hellmann che proposero un metodo detto a chiave
pubblica il quale non necessita di uno scambio preventivo delle chiavi segrete Lrsquodea egrave chiarita dal seguente
esempio noto come esempio del doppio lucchetto
Supponiamo di avere due utenti Mitt e Dest e Mitt voglia spedire un messaggio segreto a Dest
1 Mitt mette il messaggio in una scatola che chiude con il proprio lucchetto LMitt (di cui solo lui ha
la chiave) e spedisce la scatola a Dest
2 Dest ricevuta la scatola aggiunge un proprio lucchetto LDest (di cui solo lui ha la chiave) e
rispedisce la scatola a Mitt
3 Mitt ricevuta la scatola con il doppio lucchetto toglie il lucchetto LMitt e rispedisce la scatola a
Dest
4 Dest ricevuta la scatola puograve togliere il lucchetto LDest e leggere il messaggio di Mitt
Il problema della distribuzione delle chiavi sembra risolto percheacute lo schema a doppia chiave non richiede
la condivisione delle stesse Tuttavia la realizzazione pratica di un tale sistema si scontra con un altro problema
quello riguardante lrsquoordine in cui cifrature e decifrature sono eseguite In altre parole in un sistema crittografico
egrave essenziale lrsquoordine con cui avvengono le rispettive cifrature e decifrature in quanto la cifratura eseguita per
23
ultimo andrebbe decifrata per prima (egrave un porsquo come quando la mattina infiliamo prima le calze e poi le scarpe
ma alla sera togliamo prima le scarpe e poi le calze)
Lrsquoesempio del doppio lucchetto in cui ciograve non avviene sembra tuttavia funzionare come idea percheacute ai
fini dellrsquoapertura della scatola non ha importanza lrsquoordine di rimozione dei lucchetti
Anche se il trucco dei due lucchetti non sembra immediatamente applicabile tuttavia fu il giusto punto di
partenza per la realizzazione di un sistema crittografico che aggira lrsquoostacolo della distribuzione delle chiavi
Infatti lrsquoidea egrave che mittente e destinatario generano ciascuno due chiavi distinte una chiave di cifratura E
(da utilizzare nellrsquoalgoritmo di cifratura) e una chiave di decifrazione D (da utilizzare nellrsquoalgoritmo di
decifrazione) Le chiavi sono correlate nel senso che servono per effettuare operazioni inverse (figura 7)
Figura 7 Le chiavi correlate per effettuare operazioni invese
Il trucco consiste nellrsquoimpossibilitagrave di poter derivare la chiave D dalla chiave E mediante algoritmi di
calcolo (figura 8)
Ogni utente puograve rendere pubblica la propria chiave di cifratura E indicandola magari sullrsquoelenco
telefonico senza compromettere la propria chiave di decifrazione che rimane segreta di pubblico dominio sono
anche gli algoritmi di cifratura G e decifrazione H
Figura 8 Inapplicabilitagrave del metodo del doppio lucchetto
Pertanto lrsquoesempio del doppio lucchetto viene cosigrave interpretato
1 il destinatario pubblica la chiave di cifratura E e mantiene segreta la chiave di decifrazione D
2 il mittente applica GE al messaggio M trasformandolo nel messaggio cifrato MC cioegrave
GE(M)=MC che spedisce al destinatario
3 il destinatario applica HD al messaggio cifrato MC riottenendo M cioegrave HD(MC)=M
24
La sicurezza di un tale sistema si fonda sulla difficoltagrave di poter
1 ritrovare il testo cifrato provando ad applicare lrsquoalgoritmo GE che egrave pubblico ad ogni possibile
testo in chiaro il cui numero pur essendo enorme egrave comunque finito
2 ricavare lrsquoalgoritmo HD da GE
in quanto entrambe le tecniche sono computazionalmente inattuabili nel senso che richiedono un tempo
di calcolo di lunghezza al di fuori di ogni possibile considerazione anche per i piugrave potenti calcolatori
Per descrivere tali algoritmi sono necessari alcuni concetti matematici che andiamo a illustrare
Figura 9 Schema di cifrario a chiave pubblica
Lrsquoaritmetica modulare
Lrsquoaritmetica modulare la cui introduzione egrave dovuta a Gauss costituisce un sistema di calcolo con
importanti applicazioni nei test di primalitagrave e nei metodi che stanno alla base della sicurezza delle comunicazioni
elettroniche Con essa infatti si hanno i seguenti vantaggi 1) si riduce lo spazio dei numeri su cui gli algoritmi
sono chiamati ad operare e quindi si aumenta la velocitagrave di calcolo 2) si riesce a rendere difficili alcuni problemi
computazionali che sono semplici (o addirittura banali) nellrsquoalgebra ordinaria al fine di aumentare la sicurezza
nelle comunicazioni Lrsquoidea egrave semplice ma potente Forse non lo sappiamo ma usiamo spesso laritmetica
modulare Potremmo chiamarla aritmetica dellorologio
Infatti pensiamo ad un normale orologio con 24 ore Se sono le 15 ed un amico ci comunica che saragrave a
casa nostra tra 5 ore sappiamo che egli verragrave alle 20 infatti 15+5=20 Ma se sono le 23 e dobbiamo partire fra 7
ore certamente non diciamo che la partenza saragrave alle 30 anche se 23+7=30 Sappiamo che dovremo partire alle
6 Allo stesso modo se sono le 20 che ora saragrave tra 14 ore Non diremo 34 anche se 20+14=34 ma diremo che
sono le 10 Come si spiega tutto ciograve
Immaginiamo di segnare sul quadrante dellrsquoorologio 24 ore Se la lancetta segna le 23 aggiungere 7 ore
significa spostarsi di 7 posti fino ad arrivare alle 6 Si giunge allo stesso risultato calcolando 23+7=30 ed
osservando che 30=1sdot24+6 o che egrave lo stesso 3024 =1 con resto 6 che significa che 30 lo si ottiene facendo fare
alla lancetta un giro completo piugrave 6
25
Se la lancetta segna le 20 e aggiungiamo 14 ore lrsquoorologio segneragrave le 10 percheacute 20+14=34 ma 3424= 1
con resto 10 per cui 34 lo si ottiene percorrendo un giro completo piugrave 10
Proviamo con il normale orologio a 12 ore I numeri che vediamo sul quadrante sono 0 1 2 3 4 5 6 7
8 9 10 11 Il numero 12 non compare percheacute a partire da 0 trascorse 12 ore torniamo di nuovo a 0 Questa
volta per fare un giro completo occorrono 12 ore Pertanto se sono le 7 che ore saranno tra 24 ore Saranno
ancora le 7 percheacute 7+24=31 ma 3112 = 2 con resto 7 cioegrave si compiono 2 giri completi piugrave 7 se sono le 8 tra 6
ore saranno le 2 percheacute 8+6=14 ma 1412=1 con resto 2 Dagli esempi dovrebbe risultare chiaro allora che ciograve
che contano non sono i risultati delle somme ma i loro resti nelle divisioni per il numero delle ore segnate sul
quadrante dellrsquoorologio
La stessa cosa succede con i giorni della settimana se pensiamo a un orologio con 7 ore sul quadrante
Facciamo corrispondere ai giorni della settimana i numeri da 0 a 6 (figura 10)
domenica Lunedigrave Martedigrave Mercoledigrave Giovedigrave Venerdigrave Sabato darr darr darr darr darr darr darr 0 1 2 3 4 5 6
Figura 10 Corrispondenza dei giorni della settimana con i numeri da 0 a 6
Se per esempio oggi egrave venerdigrave che giorno saragrave tra 12 giorni
Dovremo calcolare 5+12=17 ma i giorni si ripetono ogni 7 pertanto osservando che 177 =2 con resto 3
possiamo concludere che a partire da 5 e aggiungendo 12 si compiono 2 giri completi piugrave 3 ed essendo 3 il
numero corrispondente a mercoledigrave concludiamo che saragrave mercoledigrave Facciamo un altro esempio se oggi egrave
lunedigrave (1) che giorno saragrave tra 20 giorni Calcoliamo 1+20=21 217= 3 con resto 0 quindi saragrave domenica
Il numero n delle ore sullrsquoorologio costituisce quello che si chiama il modulo e individua lrsquoaritmetica di
modulo n in cui lrsquoinsieme dei numeri con i quali si opera indicato con Zn egrave lrsquoinsieme dei possibili resti della
divisione per n e cioegrave Zn=0 1 2 3 hellip nndash1e le operazioni si eseguono con le regole illustrate negli esempi
precedenti
Lrsquoesempio dellrsquoorologio a 24 ore costituisce la cosiddetta aritmetica finita di modulo 24 in essa Z24=0
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 essendo questi ultimi i possibili resti
della divisione per 24 Lrsquoorologio a 12 ore costituisce lrsquoaritmetica finita di modulo 12 in essa Z12=0 1 2 3 4
5 6 7 8 9 10 11 essendo questi ultimi i possibili resti della divisione per 12 Lrsquoesempio dei giorni della
settimana egrave lrsquoaritmetica finita di modulo 7 in cui Z7=0 1 2 3 4 5 6 essendo questi ultimi i possibili resti
della divisione per 7 Riassumiamo costruendo unrsquoaritmetica finita di modulo 4 I possibili resti della divisione
per 4 sono 0 1 2 3 quindi Z4=0123 Lrsquoaddizione e la moltiplicazione in Z4 si esegue come negli esempi
della tabella 6
26
operazioni indicate
Risultato nellrsquoaritmetica ordinaria
Risultato nellrsquoaritmetica modulo 4
2+2 4 0 percheacute 44=1 con resto 0
3+2 5 1 percheacute 54=1 con resto 1
2+1 3 3 percheacute 34=0 con resto 3
3sdot3 9 1 percheacute 94=2 con resto 1
3sdot2 6 2 percheacute 64=1 con resto 2
2sdot2 4 0 percheacute 44=1 con resto 0
Tabella 6 Addizione e moltiplicazione nellrsquoaritmetica finita di modulo 4
Si possono costruire le tavole dellrsquoaddizione e della moltiplicazione dellrsquoaritmetica modulo 4 che costituiscono
le tabelline di questa aritmetica sulla base delle quali si esegue qualsiasi addizione e moltiplicazione modulo 4
Nella tabella 7 sono spiegate le tabelline dellrsquoaritmetica in modulo 4
Tabella 7 Tavole dellrsquoaddizione e della moltiplicazione dellrsquoaritmetica modulo 4
Infine per indicare che due numeri a e b divisi per n danno lo stesso resto si usano le seguenti notazioni
tutte equivalenti tra loro
a=b mod n andashb=0 mod 4 a equiv b (mod n) che si legge a egrave congruo b modulo 4
Esempio
26=12 mod 7 egrave la stessa cosa di
26ndash12=0 mod 7 che egrave la stessa cosa di
26 equiv 12 (mod 7) e tutte e tre stanno a indicare che 26 e 12 divisi per 7 danno lo stesso resto che egrave 5 e
pertanto sono tutti equivalenti a 5
Facciamo vedere come sfruttare lrsquoaritmetica modulare per calcolare potenze come 2341 (figura 11) Il
metodo si basa sulla proprietagrave che il resto del quadrato di un numero a per un dato modulo n egrave uguale al
quadrato del resto dello stesso numero a per lo stesso modulo n cioegrave a2 mod n =(a mod n)2
+ 0 1 2 3
0 0 1 2 3
1 1 2 3 0
2 2 3 0 1
3 3 0 1 2
x 0 1 2 3
0 0 0 0 0
1 0 1 2 3
2 0 2 0 2
3 0 3 2 1
27
Figura 11 Il metodo per calcolare 2341
La funzione di Eulero
Per ogni intero ngt1 si definisce la funzione di Eulero = numero di interi minori di n e primi con esso Ad
esempio
bull ( ) 45 =φ percheacute gli interi minori di 5 sono 1 2 3 4 ed essi sono tutti primi con n
bull ( ) 26 =φ percheacute gli interi minori di 6 sono 1 2 3 4 5 e fra essi solo 1 e 5 sono primi con 6
bull ( ) 67 =φ percheacute gli interi minori di 7 sono 1 2 3 4 5 6 ed essi sono tutti primi con 7
bull ( ) 412 =φ percheacute gli interi minori di 12 sono 1 2 3 4 5 6 7 8 9 10 11 e fra essi solo 1 5 7
11 sono primi con 12
Se si conosce la scomposizione in fattori del numero n il seguente teorema ci fornisce un metodo per
calcolare Infatti esso afferma che per ogni ngt1 non primo ( )
minussdotsdot
minussdot
minussdotnppp
n=nφ 11
11
11
21
dove
p1 p2 hellip pn sono i fattori primi di n presi senza molteplicitagrave
22 mod 341=4
24=(22)2=(22 mod 341)2=42=16mod341=16
28=(24)2=(16)2=256mod341=256
216= (28)2=(256)2=65536mod341=64
232=(216)2=(64)2=4096mod341=4
264=(232)2=42=16mod341=16
2128=(264)2=(16)2=256mod341=256
2256=(2128)2=(256)2=65536mod341=64
2341=2(256+64+16+4+1) 2256 264 216 24 21 x x x x
64 1
1024 mod 341
= 1 x 64
64 x 16
1024 mod 341
1 x 2 =
=
x
28
Ad esempio
essendo 12 = 3sdot2sdot2 ( ) 42
1
3
212
2
11
3
111212 ===φ sdotsdot
minussdot
minussdot
essendo 6=2sdot3 ( ) 22
1
3
26
2
11
3
1166 ===φ sdotsdot
minussdot
minussdot
se n=psdotq ( ) ( ) ( )11111
11
1 minussdotminusminussdotminussdot
minussdot
minussdot qp=q
q
p
pn=
qpn=nφ
Ovviamente se n egrave un numero primo = nndash1
Vale inoltre il seguente teorema di Eulero per ngt1 e per ogni altn e primo con n si ha
Ad esempio per n=6 ( ) 26 =φ infatti i primi con 6 sono 1 e 5 per il teorema di Eulero si ha
2mod1255
2mod1112
2
equiv=
equiv=
per n=5 ( ) 45 =φ e i primi con 5 sono 1 2 3 4 e per il teorema di Eulero si ha
5mod12564
5mod1813
5mod1162
5mod111
4
4
4
4
equiv=
equiv=
equiv=
equiv=
Si puograve notare come nel caso in cui n egrave un numero primo si ritrova il piccolo teorema di Fermat
Infatti per n primo ( )nφ = nndash1 e per il teorema di Eulero per ogni altn e primo con n Ricordiamo infatti
che il piccolo teorema di Fermat afferma che se n egrave un numero primo e a un intero minore di n allora egrave
divisibile per n che con il linguaggio dellrsquoaritmetica modulare diventa che puograve essere riscritto e se a egrave primo
con n allora egrave che egrave equivalente a
Infine si prova che per ogni altn e primo con esso esiste lrsquoinverso di a e esso egrave dato da ( ) 1minusnaφ Infatti
( ) ( ) na=aa nφnφ1mod1 equivsdot minus per il teorema di Eulero Si ricorda che lrsquoinverso di un numero a egrave quel numero che
moltiplicato per a dagrave 1 indicato convenzionalmente con andash1
Ad esempio per n=5 i primi con 5 sono 1 2 3 4 e per ognuno di questi esiste lrsquoinverso infatti
bull lrsquoinverso di 1 egrave ( ) 1mod51111 31415 equivminusminus ===φ
e infatti
bull lrsquoinverso di 2 egrave ( ) 3mod58222 31415 equivminusminus ===φ
e infatti
bull lrsquoinverso di 3 egrave ( ) 2mod527333 31415 equivminusminus ===φ
e infatti
bull lrsquoinverso di 4 egrave ( ) 4mod564444 31415 equivminusminus ===φ
Le funzioni unidirezionali
Chiamiamo funzione da un insieme A a un insieme B qualunque procedura che associa a ogni elemento
di un insieme A (detto dominio) uno e un solo elemento di un insieme B (detto condominio) In simboli f
A rarr B Se poi indichiamo con x il generico elemento dellrsquoinsieme A e con y il generico elemento dellrsquoinsieme B
la f indica la procedura che ad ogni xisinA associa un yisinB e cioegrave y=f(x) ad esempio ldquofare il doppio dihelliprdquo
29
prendendo come dominio e codominio lrsquoinsieme dei numeri interi egrave in questo senso una funzione percheacute dato
ad esempio il numero 3 lo trasforma nel numero 6 come 5 lo trasforma in 10 e cosigrave via
Molte funzioni matematiche sono cosiddette bidirezionali nel senso che egrave facile dato un determinato x
generare il corrispondente y ma egrave altrettanto facile invertire la funzione cioegrave ritrovare lrsquoelemento x originario a
partire dal suo corrispondente
Facciamo qualche esempio
bull funzione xrarr fare il doppiorarr 2sdotx= y 3rarr fare il doppiorarr 2sdot3 = 6
funzione inversa y=2sdotx rarr fare la metagraverarr x 6=2sdot3 rarr fare la metagraverarr 3
bull funzione xrarr fare il quadruplorarr 4sdotxrarr aggiungere 1rarr sdoty=4sdotx +1
5rarr fare il quadruplorarr 4sdot5rarr aggiungere 1rarr 4sdot5 +1=21
funzione inversa y=4sdotx +1rarr sottrarre 1rarr 4sdot xrarr dividere per 4rarr x
21=4sdot5 +1rarr sottrarre 1rarr 4sdot 5rarr dividere per 4rarr 5
Le funzioni unidirezionali sono invece quelle funzioni facilmente calcolabili ma che non si possono invertire
Le funzioni cosiddette pseudounidirezionali (dette anche funzioni trappola a molla segreta) sono invece
quelle funzioni facilmente calcolabili ma che non altrettanto facilmente si possono invertire a meno che non si
conoscano alcune informazioni (la molla segreta) utilizzate nella loro costruzione
Lrsquoaritmetica modulare gioca un ruolo determinante in questo caso infatti permette di trasformare
funzioni bidirezionali in funzioni pseudounidirezionali
Facciamo lrsquoesempio della funzione ldquofare il quadruplordquo in simboli f(x)=4sdotx Egrave facilmente calcolabile
percheacute dato x per ottenere f(x) basta moltiplicare per 4 ma egrave altrettanto facile calcolare la sua inversa percheacute
dato f(x) basta dividere per 4 per ottenere lrsquooriginario x Ma anche se non avessimo la procedura inversa di
dividere per 4 sarebbe facile ritrovare lrsquoelemento originario anche procedendo per tentativi ed eliminazione
infatti se per esempio f(x) =20 si puograve tentare x=3 in tal caso f(x)=12 troppo piccolo quindi x deve essere
maggiore di 3 Si puograve allora pensare a 6 ma f(x)=24 troppo grande quindi x deve essere minore di 6 e cosigrave via
Vediamo cosa accade se calcoliamo utilizzando una aritmetica modulare Per esempio consideriamo la
stessa funzione f(x)=4sdotx in una aritmetica modulo 7 Possiamo osservare che la funzione non si comporta piugrave in
modo regolare come prima per accorgersene basta costruire una tabella (tabella 8)
x 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
f(x)=4sdotx 4 8 12 16 20 24 28 32 36 40 44 48 52 56 60
f(x)=4sdotmod 7 4 1 5 2 6 3 0 4 1 5 2 6 3 0 4
Tabella 8 La funzione f(x)=4sdotx in una aritmetica modulo 7
Anche in questa semplice situazione egrave chiaro che egrave piugrave complicato invertire la funzione e pertanto i valori
di x sono molto meglio protetti Si puograve fare anche lrsquoesempio della funzione esponenziale f(x)=3 x (tabella 9)
Tabella 9 La funzione f(x)=3 x in aritmetica modulo 11
x 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
f(x)=x3 1 8 27 64 125 216 343 512 729 1000 hellip hellip hellip hellip hellip
f(x)=x3 mod 11 1 8 5 9 4 7 2 6 3 10 hellip hellip hellip hellip hellip
30
Il cifrario a chiave pubblica RSA
Uno dei piugrave noti sistemi crittografici a chiave pubblica che sfrutta le idee precedentemente descritte egrave il
metodo RSA proposto dai matematici R L Rivest A Shamir e L Adlemann nel 1978 Esso risolve il problema
dello scambio delle chiavi in quanto queste ultime sono conosciute solamente ai rispettivi proprietari che non le
hanno preventivamente concordate e scambiate
Illustriamo schematicamente come i due utenti Mitt e Dest possano scambiarsi un messaggio segreto
utilizzando il metodo RSA Entrambi Mitt e Dest indipendentemente lrsquouno dallrsquoaltro poi
1 scelgono in modo casuale due numeri primi p q grandi (di 200-300 cifre in base 10)
2 calcolano N = psdotq e Φ(N) = (pndash1)sdot(qndash1)
3 scelgono un intero eltΦ(N) e primo con Φ(N) tale numero e saragrave la chiave pubblica
4 calcolano il numero d inverso di e mod Φ(N) tale cioegrave che esdotdequiv 1mod Φ(N) tale numero d saragrave
la chiave privata
5 rendono pubblici i numeri N ed e
Mitt per spedire un messaggio a Dest compie le seguenti operazioni
1 codifica il messaggio in un modo standard usando i numeri lt N
2 trasforma ogni numero M di tale codifica in Me (mod N) e lo spedisce a Dest
per decodificare il messaggio ricevuto Me Dest calcola (Me)d =Mesdotd =Mndash1=M (modN) riottenendo il messaggio
originale
Figura 12 Schema di cifrario con metodo RSA
31
Figura 13 Esempio di applicazione di metodi RSA
In che cosa consiste la sicurezza del metodo Da quanto esposto si osserva che per decodificare il
messaggio bisogna
1 conoscere d (chiave segreta)
2 essendo d lrsquoinverso di e nellrsquoaritmetica mod Φ(N) essendo e noto egrave necessario conoscere Φ(N)
3 ma noto N per calcolare Φ(N) egrave necessario conoscere i fattori primi di N cioegrave egrave necessario fattorizzare
N che egrave un problema computazionalmente difficile per quanto osservato in precedenza
Anche se non egrave stato dimostrato che non si possa rompere il codice in altro modo e cioegrave senza conoscere Φ(N) e i
fattori di N a tuttrsquooggi si puograve affermare che la sicurezza del metodo dipende essenzialmente dai seguenti fatti
Per codificare il messaggio bisogna saper costruire dei numeri primi grandi e tale operazione egrave
computazionalmente veloce si puograve infatti dimostrare che la complessitagrave computazionale di opportuni test di
primalitagrave per stabilire se un numero n egrave primo utilizzando il linguaggio di quel ramo della matematica nota
come teoria della complessitagrave egrave ldquoquasi-polinomialerdquo
Per violare il sistema bisogna saper fattorizzare interi grandi ottenuti come prodotto di due primi tale
problema egrave computazionalmente ldquolentordquo cioegrave con il linguaggio della teoria della complessitagrave appartiene alla
classe dei problemi non polinomiali Tale marcata differenza tra la velocitagrave di esecuzione delle operazioni di
costruzione di numeri primi grandi e di fattorizzazione di interi grandi garantisce la sicurezza del metodo
almeno per un tempo sufficientemente lungo Ad esempio con la tecnologia attuale lrsquooperazione di
fattorizzazione di un intero di 140 cifre in base 10 prodotto di due numeri primi casuali calcolati in pochi
secondi su un computer disponibile in commercio richiede utilizzando vari supercomputers operanti
parallelamente circa un mese
La RSA Security Inc gestisce una sfida a livello mondiale ove vengono premiati coloro che fattorizzano
gli interi proposti da loro in una particolare lista Ad esempio il 3 dicembre del 2003 egrave stato fattorizzato
32
rsa576 =
188198812920607963838697239461650439807163563379417382700763356422988859715234
665485319060606504743045317388011303396716199692321205734031879550656996221305
168759307650257059
un numero di 174 cifre decimali prodotto di due primi di 87 cifre
p =
398075086424064937397125500550386491199064362342526708406385189575946388957261
768583317
q =
472772146107435302536223071973048224632914695302097116459852171130520711256363
590397527
Le chiavi attualmente utilizzate dallRSA sono a 309 cifre decimali
La firma digitale
Consideriamo al solito un mittente che deve inviare a un destinatario un messaggio m La codifica di m
con il metodo descritto assicura lrsquoautenticitagrave del messaggio ma non fornisce alcuna sicurezza sulla sua
paternitagrave Infatti il messaggio m pur essendo autentico potrebbe essere stato inviato da qualcuno che si spaccia
per il mittente Questa egrave unimportantissima questione particolarmente nella trasmissione di messaggi che oltre
a dover essere segreti devono garantire la loro origine
Si dovrebbe quindi disporre di un analogo della firma manuale detta appunto firma digitale La firma
digitale deve allora essere progettata in modo da possedere le stesse caratteristiche di una firma manuale e cioegrave
lrsquoautenticitagrave la non falsificabilitagrave e lrsquoimpossibiltagrave di essere riutilizzata Facciamo vedere come lo stesso metodo
RSA puograve essere utilizzato per progettare una firma digitale
La situazione egrave la seguente il mittente (di seguito indicato con Mitt) invia un messaggio m con la firma
F al destinatario (di seguito indicato con Dest) Siano a b rispettivamente le chiavi pubblica e segreta di MITT
siano e d rispettivamente le chiavi pubblica e segreta di DEST
La procedura per apporre la firma digitale F al messaggio m egrave illustrata nei seguenti passi riassunti nel
grafico della figura 14
1 Mitt cripta la firma F (cioegrave i suoi dati identificativi) usando la propria chiave segreta (b)
ottenendo Fb
2 il messaggio m con la firma F criptata viene ulteriormente criptato con la chiave pubblica di
Dest (e) ottenendo (m Fb)e
3 Dest decodifica il messaggio con la sua chiave segreta (d) ottenendo
((m Fb)e)d = (me F(be)) d =m(e d)F(be d) = mFb
in cui la firma di Mitt egrave ancora criptata
4 Dest decodifica la firma di Mitt con la chiave pubblica di Mitt (a) ottenendo
(Fb)a = F(ba) = F
33
Grafico firma digitale
Mitt
Dest
pubblica
Fb
e dpubblica
a
((Fb)e)d=(Fb)ed=(Fb)1=Fb
(Fb)a=(F)ba=(F)1=F
ab de
(Fb)e
codifica
codificadecodifica
decodifica
1
2
3
4
5
6
7
8
segreta
b
segreta
Figura 14 Grafico firma digitale
Bibliografia
Thomas Beth Comunicazioni e sicurezza su Internet in ldquoLe Scienzerdquo n 330 febbraio 1996
Brian Butterworth Intelligenza matematica Vincere la paura dei numeri scoprendo le doti innate della mente
Rizzoli Milano 1999
John H Conway Richard K Guy Il libro dei numeri Hoepli Milano 2003
Richard Courant Herbert Robbins Che cosrsquoegrave la matematica Boringhieri Torino 1971
Philip J Davis Il mondo dei grandi numeri Zanichelli Bologna 1973
Keith Devlin Dove va la matematica Bollati Boringhieri Torino 1994
Jean Dieudonneacute Lrsquoarte dei numeri matematica e matematici oggi Mondadori Milano 1989
Martin E Ellmann La crittografia a chiave pubblica in La matematica della complessitagrave Quaderni n 67
settembre 1992 Le Scienze
Paolo Ferragina Fabrizio Luccio Crittografia principi ndash Algoritmi ndash Applicazioni Bollati Boringhieri Torino
2001
Godfrey H Hardy Apologia di un matematico Garzanti Milano 1989
Morris Kline Storia del pensiero matematico Einaudi Milano 1991
Serge Lang La bellezza della matematica Bollati Boringhieri Torino 1991
Mauro Leoncini Modelli di calcolo e complessitagrave computazionale in La matematica computazionale Quaderni
n 84 giugno 1995 Le Scienze
Fabrizio Luccio e Linda Pagli P = NP in La matematica della complessitagrave Quaderni n 67 settembre 1992
Le Scienze
Piergiorgio Odifreddi La Matematica del Novecento dagli insiemi alla complessitagrave Einaudi Torino 2000
34
ldquoPeriodico di matematicherdquo Serie VII Volume 7 Numero 2-3 luglio-dicembre 2000 Mathesis
ldquoPeriodico di matematicherdquo Serie VIII Volume 1 Numero 1 gennaio-marzo 2001 Mathesis
Carl Pomerance Alla ricerca dei numeri primi in ldquoLe Scienzerdquo n 174 febbraio 1983
Simon Singh Codici e segreti la storia affascinante dei messaggi cifrati dallrsquoantico Egitto a Internet Rizzoli
Milano 1999
Marcus du Sautoy Lrsquoenigma dei numeri primi lrsquoipotesi di Riemann lrsquoultimo grande mistero della matematica
Rizzoli Milano 2004
Gary Stix I segreti meglio custoditi la crittografia quantistica egrave passata dalla teoria al laboratorio per
approdare finalmente alle applicazioni in ldquoLe Scienzerdquo n 438 febbraio 2005
4
La distribuzione dei numeri primi
Una delle prime e piugrave naturali domande che ci si egrave posti riguardo ai numeri primi egrave stata ldquoquanti
sonordquo
La risposta fu data da Euclide dimostrando che i numeri primi sono infiniti La dimostrazione
condotta con metodi elementari e riportata nel suo libro Gli Elementi scritto nel 300 aC egrave considerata
una delle piugrave belle e deliziosamente ingegnose della storia della matematica Essa parte dal presupposto che
i numeri primi non sono infiniti da cui si deduce che dovragrave esistere un elenco finito di numeri primi p1 p
2
p3hellip pn dove pn indica lrsquoultimo Si costruisce ora il numero N= p
1 middot p
2 middot p
3 middothellip middot pn +1 il quale risulteragrave o
primo o composto Se N egrave primo per come egrave stato costruito egrave un primo maggiore di pn contraddicendo
quindi il presupposto Se N egrave composto allora puograve essere scritto come prodotto di alcuni dei numeri
dellrsquoelenco ed essere quindi divisibile per qualcuno di essi Ma per come egrave stato costruito N diviso per
ciascuno di essi dagrave sempre resto 1 e perciograve deve contenere come fattore un primo diverso da quelli
dellrsquoelenco contraddicendo quindi il presupposto In ogni caso sia se N egrave primo o composto ci saragrave un
numero primo maggiore di pn il che consente di concludere che lrsquoelenco dei numeri primi continua
allrsquoinfinito
Facciamo qualche prova
bull N1=2+1=3 (primo)
bull N2=2middot3+1=7 (primo)
bull N3=2middot3middot5+1=31 (primo)
bull N4=2middot3middot5middot7+1=211 (primo)
bull N5=2middot3middot5middot7middot11+1=2311 (primo)
bull N6=2middot3middot5middot7middot11middot13+1=30031 =59 509 (composto)
bull N7=2middot3middot5middot7middot11middot13middot17+1=510511 =19middot97middot277 (composto)
In effetti nessuno sa se ci sia un numero infinito di primi della forma
N= p1 middot p
2 middot p
3 middothellip middot pn +1 neacute viceversa se ci sia un numero infinito di numeri composti della stessa
forma (sebbene almeno una delle due possibilitagrave deve essere vera)
Lrsquoaltro quesito che sorge altrettanto spontaneo ma che non egrave stato ancora risolto riguarda la
distribuzione dei numeri primi allrsquointerno dei numeri naturali In sostanza ci si chiede se crsquoegrave un ordine
prevedibile nella successione dei numeri primi una regola per stabilire quale saragrave per esempio il
centesimo numero primo oppure se essi si succedono in modo casuale
A ragione questo problema si egrave meritato lrsquoappellativo di ossessione dei numeri primi percheacute i
matematici mal sopportano lrsquoidea di dover ammettere che non esista una spiegazione del modo in cui la
natura ha scelto tali numeri e per una disciplina che si dedica a trovare andamenti regolari e ordine nel
caos essi rappresentano la sfida estrema
E in effetti se si prova a esaminare un elenco di numeri primi si scopre immediatamente che egrave
impossibile prevedere quando appariragrave il successivo Per esempio tra i dieci numeri maggiori o uguali a 2 e
5
minori o uguali a 11 ci sono 5 numeri primi 2 3 5 7 11 esattamente la metagrave tra i successivi dieci da 12
a 21 ci sono 3 numeri primi 13 17 19 cioegrave il 30 tra 22 e 31 ci sono ancora 3 numeri primi 23 29 31
cioegrave ancora il 30 mentre tra 32 e 41 ci sono 2 numeri primi 37 41 cioegrave il 20 e cosigrave tra 42 e 51 si
potrebbe pensare che andando avanti le cose si regolarizzino ma non egrave cosigrave
Proseguendo nel conteggio per esempio nellrsquointervallo dei cento numeri che precedono 10 000 000
i numeri primi sono 9 999 901 9 999 907 9 999 929 9 999 931 9 999 937 9 999 943 9 999 971
9 999 973 9 999 991 cioegrave lo 009 mentre nellrsquointervallo dei cento numeri che seguono 10 000 000 i
numeri primi sono 10 000 019 10 000079 cioegrave lo 002
Si osserva inoltre che esistono intervalli di numeri naturali di ampiezza arbitraria allrsquointerno dei
quali non si incontra alcun numero primo Questrsquoultima osservazione egrave addirittura ovvia
Ricordiamo che il prodotto dei numeri naturali da 1 a n si indica con il simbolo n (da leggersi n
fattoriale) cioegrave n=1sdot2sdot3sdothellipsdot(nndash2)sdot(nndash1)sdotn
Ad esempio 5=1sdot2sdot3sdot4sdot5 10=1sdot2sdot3sdot4sdot5sdot6sdot7sdot8sdot9sdot10
Considerato il numero n si ha che
n=nsdot(nndash1)sdot(nndash2)sdot(nndash3)sdothellipsdot3sdot2sdot1 egrave divisibile per ciascuno dei numeri tra 1 e n
n+2 egrave divisibile per 2 in quanto sia n che 2 sono divisibili per 2
n+3 egrave divisibile per 3 in quanto sia n che 3 sono divisibili per 3
hellip
n+n egrave divisibile per n in quanto sia n che n sono divisibili per n
Abbiamo cosigrave trovato un intervallo di numeri naturali da n+2 a n+n consecutivi e nessuno di essi
primo Dato che n puograve essere qualsiasi si vede che esistono sicuramente lunghi tratti senza numeri primi
Ancora oggi il metodo piugrave veloce per trovare tutti i primi inferiori a un numero prefissato N egrave
dovuto a Eratostene (276-194 aC) bibliotecario della grande biblioteca di Alessandria che i piugrave
conoscono per aver misurato il raggio della Terra (in un tempo in cui pochi credevano che fosse sferica)
ma che i teorici dei numeri ricorderanno per sempre per il suo crivello
Tale metodo consiste nello scrivere in ordine tutti i numeri naturali minori di N (figura 1)
cancellando tutti i multipli di 2 tranne 2 tra i rimanenti tutti i multipli di 3 tranne 3 e cosigrave via fino ad aver
eliminato tutti i numeri composti Tutti i numeri rimasti saranno i numeri primi minori di N
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100
Figura 1 Il metodo del crivello di Eratostene per trovare i numeri primi
6
Facciamo un esempio vogliamo scrivere lrsquoelenco dei numeri primi minori 100
Scriviamo in ordine tutti i primi cento numeri naturali a partire da 2
bull cancelliamo i multipli di 2
bull cancelliamo i multipli di 3
bull cancelliamo i multipli di 5
bull cancelliamo i multipli di 7
Fermiamoci qui e osserviamo che quando abbiamo a che fare con un numero primo p i suoi multipli
per fattori piugrave piccoli di p sono stati giagrave eliminati e il primo che non lo egrave stato saragrave p2 Per esempio nel caso
in cui p fosse 5 il primo multiplo a non essere ancora stato eliminato egrave 25 infatti 10 egrave stato eliminato come
multiplo di 2 15 egrave stato eliminato come multiplo di 3 20 egrave stato eliminato come multiplo di 2 25 egrave il
primo non eliminato percheacute non egrave multiplo di 2 neacute di 3 pertanto la procedura di cancellazione termina con
p=7 infatti se p=11 allora p2=121 e poicheacute la tavola arriva fino a 100 tutti i multipli di 11 sono giagrave stati
eliminati
Tutti i numeri non cancellati (quelli in grassetto) sono i primi compresi nellrsquointervallo tra 2 e 100
estremi inclusi essi sono 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83
69 97
Alla ricerca dei numeri primi
Proprio nel tentativo di farsi unrsquoidea di come si distribuiscono i numeri primi eminenti matematici
come Pierre de Fermat Marin Mersenne Leonhard Euler (Eulero) Carl Friedrich Gauss ecc hanno
compilato e analizzato lunghi elenchi di numeri primi alla ricerca di formule in grado di produrre se non
tutti almeno ldquomoltirdquo di essi
Pierre de Fermat (1601-1665) ipotizzograve che tutti i numeri della forma F(N)= siano primi In effetti
per N=1
5141212)1( 221
=+=+=+=F
per N=2
171161212)2( 422
=+=+=+=F
per N=3
25712561212)3( 823
=+=+=+=F
per N=4
655371655361212)4( 1624
=+=+=+=F
sono tutti primi ma giagrave per N=5
67004176414294967297142949672961212)5( 3225
times==+=+=+=F
risultato scoperto da Eulero nel 1732 questo egrave uno dei pochi casi in cui Fermat cadde in errore forse
percheacute come si vede questi numeri detti numeri di Fermat crescono molto rapidamente giagrave il quinto
7
numero ha dieci cifre ed era al di fuori della portata dei suoi calcoli Ma egrave un ottimo esempio per
convincerci che la veritagrave di una affermazione non puograve basarsi sulla verifica della sua validitagrave in alcuni casi
particolari
Oggi sappiamo che F(N) egrave composto per tutti i valori di N da 5 a 21 come pure per vari altri valori
e lrsquoipotesi piugrave diffusa ma non dimostrata egrave che F(N) sia composto per tutti i valori di Ngt4 sostenuta dal
fatto che non si egrave trovato sperimentalmente un F(N) con Ngt4 che sia primo
Carl Friedrich Gauss (1777-1855) riuscigrave a dimostrare che se lrsquoN-esimo numero di Fermat egrave primo
allora egrave possibile costruire geometricamente con riga e compasso un poligono regolare di N lati Dove per
riga si intende una riga non graduata che serva solo a tracciare linee rette e per compasso uno strumento
capace solo di tracciare circonferenze o archi di circon-ferenza e non per esempio di riportare misure In
questo modo allrsquoetagrave di soli 19 anni Gauss riuscigrave a costruire il poligono di 17 lati Allo stesso modo si
potrebbe costruire un poligono regolare di 65537 lati essendo questrsquoultimo un primo di Fermat
Marin Mersenne (1588-1648) egrave famoso fra lrsquoaltro per il suo ruolo di intermediario nella comunitagrave
scientifica internazionale del Seicento In assenza di periodici scientifici infatti diverse persone si
assunsero il compito di comunicare a un gran numero di corrispondenti ogni scoperta scientifica di cui
fossero venuti a conoscenza e Mersenne fu uno di questi A lui egrave dovuta la pubblicazione per la prima
volta di gran parte del lavoro di Fermat attraverso le sue lettere
Anche Mersenne venne preso dalla smania di trovare delle formule che producessero numeri primi
e in questa ricerca compilograve un elenco di numeri primi p per lrsquoesattezza p=2 3 5 7 13 17 19 31 67
127 257 per i quali riteneva che fosse primo anche il numero della forma M(p)= che viene oggi chiamato
numero di Mersenne Nessuno sa come Mersenne sia stato in grado di fare questa affermazione ma
comunque egli era sorprendentemente vicino alla veritagrave Soltanto nel 1947 quando comparvero le
calcolatrici da tavolo fu possibile verificare la sua asserzione Aveva fatto solo 5 errori M(67) M(257)
non sono primi M(61) M(89) M(107) sono primi
Si osserva facilmente come al crescere di p il numero M(p) diventi rapidamente molto grande
bull M(2)=22ndash1=3
bull M(3)=23ndash1=7
bull M(4)=24ndash1=15=3middot5
bull M(5)=25ndash1=31
bull M(6)=26ndash1=63=7middot3middot3
bull M(7)=27ndash1=127
bull M(8)=28ndash1=255=5middot3middot17
hellip
bull M(11)=211ndash1=2047=23middot89
hellip
bull M(17)=217ndash1=131071
8
E solo per alcuni valori di p essi sono primi per cui lrsquoidea sarebbe quella di cercare i valori di p per
cui M(p) egrave primo Ma ciograve non egrave facile percheacute la primalitagrave di p egrave condizione solo necessaria per la primalitagrave
di M(p) infatti egrave vero che
1 se M(p) egrave primo allora anche p egrave primo
2 se p non egrave primo allora M(p) non egrave primo vedi ad esempio M(4) M(6) M(8)
ma se p egrave primo non egrave detto che M(p) sia primo vedi ad esempio M(11)
A tuttrsquooggi non si sa se esista unrsquoinfinitagrave di numeri di Mersenne che siano primi (detti primi di
Mersenne) neacute se esista unrsquoinfinitagrave di numeri di Mersenne che non siano primi anche se entrambe le
asserzioni appaiono verosimili Infatti aumentando le capacitagrave di calcolo dei calcolatori aumenta il
numero dei primi di Mersenne conosciuti (tabella 1) La ricerca di primi di Mersenne sempre piugrave grandi ha
valore di semplice curiositagrave ma il loro calcolo egrave utile per la misurazione della potenza di calcolo dei
calcolatori Per esempio per dimostrare che il numero di Mersenne M8191 di 2466 cifre non egrave primo usando
il test di Lucas-Lehmer ci vollero 100 ore la prima volta nel 1953 sul computer ILLIAC-I Da allora il
tempo di calcolo egrave sceso drasticamente da 5 a 2 ore su un IBM 7090 40 minuti su un ILLIAC-II da 3 a un
minuto su un IBM 360-91 e 10 secondi su un CRAY-I
valore di p 2p-1 anno autore computer 2 3 3 7 5 31 7 127 13 8191 1461 anonimo 17 131071 1588 Pietro Antonio Cataldi 19 524287 1588 Pietro Antonio Cataldi 31 2 147 483 647 1750 Leonhard Euler 61 19 cifre 1883 I M Pervushin calcolatore meccanico 89 27 cifre 1911 R E Powers calcolatore meccanico 107 33 cifre 1914 R E Powers calcolatore meccanico 127 39 cifre 1876-1914 Francois Edouard Anatole Lucas calcolatore meccanico 521 157 cifre 30 gennaio
1952 Raphael M Robinson SWAC
607 183 cifre 30 gennaio 1952
Raphael M Robinson SWAC
1279 386 cifre 25 giugno 1952
Raphael M Robinson SWAC
2203 664 cifre 7 ottobre 1952
Raphael M Robinson SWAC
2281 687 cifre 9 ottobre 1952
Oct 9 Raphael M Robinson SWAC
3217 969 cifre 1957 Hans Riesel BESK 4253 1281 cifre 1961 Alexander Hurwitz e John L
Selfridge IBM 7090
4423 1332 cifre 1961 Alexander Hurwitz e John L Selfridge
IBM 7090
9689 2917 cifre 1963 Donald B Gillies ILLIAC 2 9941 2993 cifre 1963 Donald B Gillies ILLIAC 2 11213 3376 cifre 1963 Donald B Gillies ILLIAC 2 19937 6002 cifre 1971 Bryant Tuckerman IBM 36091
9
valore di p 2p-1 anno autore computer 21701 6533 cifre 1978 Landon Curt Noll e Laura A
Nickel Cyber 174
23209 6987 cifre 1979 Landon Curt Noll Cyber 174 44497 13395 cifre 1979 David Slowinski e Harry L
Nelson Cray 1
86243 25962 cifre 1982 David Slowinski Cray 1 110503 33265 cifre 1988 Walter N Colquitt e Luther
Welsch Jr
132049 39751 cifre 1983 David Slowinski Cray X-MP 216091 65050 cifre 1985 David Slowinski Cray X-MP 756839 227832 cifre 1992 David Slowinski e Paul Gage Cray 2 859433 258716 cifre 1994 David Slowinski e Paul Gage Cray C90 1257787 378632 cifre 1996 David Slowinski e Paul Gage Cray T94 1398269 420921 cifre 1996 Joel Armengaud George
Woltman e GIMPS PC Pentium 90
2976221 895932 cifre 1997 Gordon Spence George Woltman e GIMPS
PC Pentium 100
3021377 909526 cifre 1998 Roland Clarkson Woltman Scott Kurowski e GIMPS
Pentium 200
6972593 2098960 cifre 1999 Nayan Hajratwala Woltman Kurowski e GIMPS
Pentium II 350
13466917 4053946 cifre 2001 Michael Cameron e GIMPS 800 MHz AMD T-Bird PC
20996011 6320430 cifre 2003 Michael Shafer e GIMPS 2 Gh Pentium 4 Dell Dimension PC
24036583 7235733 cifre 2004 Josh Findley e GIMPS 24 GHz Pentium 4 Windows XP PC
25964951 7816230 cifre 2005 Martin Nowak e GIMPS 24 GHz Pentium 4 Windows XP PC
30402457
9152052 cifre
2005 Curtis Cooper Steven Boone CMSU e GIMPS
Lavoro coordinato di 700 computers
GIMPS = Great Internet Mersenne Prime Search (wwwmersenneorg)
Tabella 1 La ricerca dei numeri primi di Mersenne
Unrsquoaltra notevole formula che dagrave luogo a molti numeri primi fu scoperta da Eulero nel 1772 La
formula x2+x+41 fornisce il seguente elenco di numeri primi inserendo tutti i numeri compresi fra 0 e 39
41 43 47 53 61 71 83 97 113 131 151 173 197 223 251 281 313 347 383 421 461 503
547 593 641 691 743 797 853 911 971 1033 1097 1163 1231 1301 1373 1447 1523 1601
Eulero comprese che il processo era destinato a interrompersi a un certo punto Infatti per x=41 si
ha
412+41+41 = 412+2middot41 = 41middot (41+2) = 41middot43
che non egrave primo ma anche per x=40 il numero che si ottiene non egrave primo infatti
402+40+41= 40 middot (40+1)+(40+1)=(40+1) middot (40+1)
Ciononostante Eulero fu molto colpito dalla capacitagrave della sua formula di produrre tanti numeri
primi da domandarsi per quali altri numeri diversi da 41 si sarebbe potuto ottenere un risultato simile
Scoprigrave che si poteva scegliere anche n=2 3 5 11 17 percheacute la formula x2+x+n producesse numeri primi
per ogni valore di x compreso fra 0 e nndash2
10
Possiamo concludere che la ricerca di formule semplici che producano soltanto numeri primi egrave stata
inutile ed egrave ancora meno probabile che conduca a buoni risultati il tentativo di trovare una formula che
produca tutti i numeri primi Lo stesso Eulero nel 1751 scriveva ldquoci sono alcuni misteri che la mente
umana non penetreragrave mai Per convincercene non dobbiamo far altro che gettare unrsquoocchiata alle tavole dei
numeri primi Ci accorgeremo che non vi regna neacute ordine neacute leggerdquo
La svolta di Gauss
Il passo decisivo nella ricerca di una legge da cui dipenda la distribuzione dei numeri primi fu
compiuto quando si rinunciograve agli inutili tentativi di trovare una formula che generasse tutti i numeri primi o
desse il numero esatto di essi contenuti nei primi n numeri interi A compiere la svolta fu Gauss il quale
affrontograve il problema da un altro punto di vista Infatti egli si chiese se era possibile prevedere non quale
fosse la posizione di un numero primo rispetto a quello precedente ma se era possibile prevedere quanti
fossero i numeri primi minori o uguali a un certo numero x Egli introdusse a tale scopo la funzione )(xπ =
numero dei primi minori o uguali a x e poteacute verificare per esempio che 4)10( =π percheacute i numeri primi
minori o uguali a 10 sono 2 3 5 7 e cioegrave 4 e la distanza media tra due numeri primi successivi
nellrsquointervallo tra 1 e 10 egrave 104 uguale a 25 Nella tabella 2 sono riportati alcuni valori della funzione e
della distanza media
Tabella 2 Alcuni valori della fiunzione )(xπ
Osservando tali risultati egli notograve che ogni volta si moltiplica x per 10 si aggiunge 23 al rapporto
xπ(x) almeno per x abbastanza grande Proprio questo legame tra moltiplicazione e addizione (che egrave la
relazione racchiusa in un logaritmo) e il fatto che 23 egrave approssimativamente il valore rappresentato dal
portarono Gauss a ipotizzare che
( )x
x
xlog=
π
Da cui
11
( )( )x
xx
logcongπ
Questa congettura si rivelograve poi vera e oggi egrave nota come teorema dei numeri primi Una notevole
conseguenza del teorema dei numeri primi egrave che ldquola probabilitagrave che un numero intero di x cifre preso a
caso sia primo egrave circa 1log(10x)rdquo Infatti lrsquoespressione
( )( )x
xx
logcongπ
in altre parole significa che nellrsquointervallo tra 1 e x si incontra un primo circa ogni log(x) e cioegrave la
probabilitagrave che nellrsquointervallo dei numeri le x un numero preso a caso sia primo egrave 1log(x) Ad esempio
nellrsquointervallo dei numeri minori di 10 000 000 uno ogni log(10 000 000) egrave primo Essendo
log(10 000 000) = log(107) = 7log(10) asymp 1611hellip ciograve vuol dire che dei numeri minori di 10 000 000 circa 1
su 16 egrave primo e perciograve crsquoegrave circa una probabilitagrave su 16 che un numero di 7 cifre sia primo
Al momento attuale molti sono i problemi non ancora risolti Tra questi ricordiamo
1 la congettura dei primi gemelli esistono infiniti numeri primi p tali che p+2 egrave ancora
primo Ad esempio 3 e 3+2 5 e 5+2 17 e 17+2 29 e 29+2 ecc
2 la congettura di Goldbach ogni intero pari maggiore di 2 puograve essere scritto come somma di
due numeri primi Ad esempio 4 = 2+2 6 = 3+3 8 = 3+5 10 = 5+5 12 = 5+7 ecc
La difficoltagrave fondamentale di tali problemi risiede nel fatto che i numeri primi sono definiti
mediante proprietagrave moltiplicative mentre i problemi in questione coinvolgono proprietagrave additive
Di gran lunga il piugrave importante tra i problemi non risolti egrave quello che va sotto il nome di ipotesi di
Riemann anche percheacute fu proprio la novitagrave del metodo in essa contenuto a far compiere il passo decisivo
per la dimostrazione del teorema dei numeri primi compiuta indipendentemente lrsquouno dallrsquoaltro nel 1896
dai matematici Jacques Hadamard e Charles de la Valleacutee-Poussin
Ricordiamo che lrsquoipotesi di Riemann inserita allrsquoottavo posto nellrsquoelenco dei famosi ventitreacute
problemi irrisolti presentati da David Hilbert al Congresso internazionale dei matematici del 1900 e
lanciati come sfida alla comunitagrave dei matematici del ventesimo secolo egrave ancora rimasto tale cioegrave senza
dimostrazione
Egrave oggi considerato uno dei problemi piugrave difficili del nuovo millennio Nel 2000 il Clay Mathematics
Institute ha offerto un milione di dollari a chi riusciragrave a darne una dimostrazione
Grazie ai calcolatori attualmente egrave stato possibile verificare tali congetture in moltissimi casi Ad
esempio la congettura di Goldbach egrave stata verificata per tutti i pari fino a 100 milioni mentre lrsquoipotesi di
Riemann egrave stata verificata per un miliardo e mezzo di casi ma ciograve non egrave sufficiente per dimostrarne la
veritagrave Ed egrave proprio questo quello che distingue la matematica dalle altre scienze dove una qualsiasi
ipotesi sostenuta da verifiche sperimentali egrave ritenuta valida fincheacute non contraddetta da un caso contrario
mentre in matematica un solo caso contrario serve a dimostrare la falsitagrave dellrsquoipotesi la cui veritagrave per
contro deve essere dimostrata per tutti i casi possibili il che ovviamente puograve avvenire solo
indipendentemente dalle verifiche di casi particolari anche se molti
12
Ed egrave questa una delle peculiaritagrave piugrave belle della matematica Qualsiasi affermazione dimostrata egrave
eterna e immutabile si pensi allrsquoinfinitagrave dei numeri primi ciograve egrave vero per Euclide ma rimane vero ancora
oggi senza possibilitagrave di smentite
Come ebbe a dire il matematico Hermann Hakel ldquoNella maggior parte delle scienze una
generazione demolisce quello che laltra ha costruito e ciograve che uno ha fatto un altro lo disfa Solo nella
matematica ogni generazione aggiunge un nuovo piano alla vecchia strutturardquo
E che ciograve susciti lrsquoidea della bellezza egrave bene sintetizzato dalle parole di Bertrand Russell ldquoLa
matematica vista dalla giusta angolazione non possiede solo la veritagrave ma la suprema bellezza una
bellezza fredda e austera come quella della scultura una bellezza che non fa appello ai nostri sentimenti
piugrave grossolani che non ha gli ornamenti sgargianti della musica o della pittura una bellezza pura e
sublime capace della rigorosa perfezione che egrave propria solo della piugrave grande arterdquo
Anche se non egrave possibile presentare in termini semplici lrsquoipotesi di Riemann in quanto coinvolge
concetti di matematica superiore proviamo a delinearne le linee essenziali
Nel 1737 Eulero introdusse e studiograve una funzione detta funzione ζ (zeta) di Eulero cosigrave definita
sum+infin
=
gtisin++++==1
1 4
1
3
1
2
11
1)(
nxxxx
xRxperdefinitan
xζ
e sempre a Eulero egrave dovuta la seguente identitagrave
( )
1
111
11
17
7
15
5
13
3
12
2 prod
minus=sdot
minussdot
minussdot
minussdot
minussdot
minus=
px
x
x
x
x
x
x
x
x
x
x
x
p
pxζ
dove il prodotto egrave esteso a tutti i numeri primi
Ed egrave proprio questa identitagrave che egrave alla base della notevole importanza assunta dalla funzione ζ nella
teoria dei numeri e in particolare per quanto riguarda la distribuzione dei numeri primi nellrsquoinsieme dei
naturali Infatti a destra di essa appaiono esplicitamente i numeri primi mentre a sinistra compare la
funzione ζ definita indipendentemente da essi
Riemann nel 1859 propose di considerare la funzione ζ come funzione di variabile complessa
cioegrave definita per x numero complesso ed effettuograve il cosiddetto prolungamento analitico di ζ allrsquointero piano
complesso costruendo la nuova funzione ζ oggi nota come funzione zeta di Riemann Egli provograve che gli
zeri della funzione ζ (cioegrave i valori della variabile per cui la funzione restituisce il valore 0) sono x = ndash2
x = ndash4 x = ndash6hellip detti zeri banali di ζ e alcuni numeri complessi (non reali) x con parte reale compresa tra
0 e 1 estremi inclusi Lrsquoipotesi di Riemann afferma che tutti gli zeri non banali di ζ hanno la caratteristica
di avere la parte reale uguale a 21
Dalla validitagrave di questa ipotesi discende una serie enorme di proprietagrave sui numeri primi Ci sono
attualmente centinaia di ldquoquasi teoremirdquo che iniziano con ldquosupponiamo che lrsquoipotesi di Riemann sia
verahelliprdquo Se lrsquoipotesi venisse dimostrata tutti questi ldquoquasi teoremirdquo diventerebbero veri teoremi
13
I test di primalitagrave e la fattorizzazione
Abbiamo fin qui concentrato lrsquoattenzione sul comportamento dei numeri primi ma come egrave possibile
preso un intero a caso x provare se x egrave primo o composto
Il metodo piugrave ovvio consiste nel dividere il numero x per tutti gli interi che lo precedono Infatti se
una qualunque di tali divisioni dagrave resto zero il numero x egrave composto e divisore e quoziente sono suoi
fattori mentre se nessuna di tali divisioni per ciascuno degli interi minori x dagrave resto zero il numero x egrave
primo
In effetti la procedura delle divisioni puograve essere interrotta allrsquointero minore della in quanto se x egrave
composto esso saragrave il prodotto di almeno due fattori per esempio x= F1sdotF2 ed essendo x=x sdot x se
F1gt x F2 lt x Ad esempio 29= 2929 sdot e 529 cong quindi si puograve fermare la procedura quando il
divisore egrave 5 Infatti 292 dagrave resto 1 293 dagrave resto 2 294 dagrave resto 1 295 dagrave resto 4 Si puograve quindi
concludere che 29 egrave primo percheacute se avesse avuto un fattore maggiore di 5 ne avrebbe avuto sicuramente
uno minore di 5 il che non egrave
Ma anche limitando le divisioni alla radice quadrata lrsquoalgoritmo sarebbe comunque inapplicabile
percheacute per giungere a conclusione richiede un tempo che cresce esponenzialmente al crescere del numero
di cifre di n pertanto puograve risultare intollerabilmente lungo anche con gli strumenti di calcolo piugrave veloci
anni secoli piugrave della vita presunta dellrsquoUniverso Ad esempio egrave stato dimostrato che il numero 244 497ndash1
formato da 13 595 cifre egrave primo Se un calcolatore fosse in grado di controllare un milione di divisioni al
secondo e si fermasse alla radice quadrata del numero egrave stato calcolato che gli occorrerebbero 106684 anni
per espletare il suo compito Lrsquoinconveniente deriva dal fatto che il metodo delle divisioni non solo ci dice
se il numero egrave primo o composto ma risolve anche il problema della fattorizzazione di un numero in
quanto nel caso in cui il numero risulta composto ci fornisce i fattori della sua scomposizione
A tuttrsquooggi egrave facile trovare numeri primi grandi o testare la primalitagrave di un numero mentre egrave
difficile fattorizzare un intero che sia il prodotto di due numeri primi grandi Ovviamente i termini ldquofacilerdquo
ldquodifficilerdquo ldquogranderdquo sono relativi alla conoscenza e alla tecnologia disponibili Attualmente sono
considerati ldquograndirdquo numeri di alcune centinaia di cifre mentre ldquofacilerdquo rappresenta un tempo di secondi e
ldquodifficilerdquo di secoli
Lrsquoefficacia dei test di primalitagrave attualmente usati dipende dal fatto che egrave possibile stabilire se un
numero egrave primo senza essere costretti a trovarne i fattori qualora risultasse composto Alcuni metodi usati
sono di tipo probabilistico cioegrave stabiliscono che un intero egrave probabilmente primo con una probabilitagrave di
errore che si puograve rendere piccola quanto si vuole
Il piugrave semplice al tempo stesso velocissimo e potente si basa sul piccolo teorema di Fermat Il
teorema stabilisce che se p egrave un numero primo e a un intero minore di p allora apndasha egrave un multiplo di p cioegrave
egrave divisibile per p
Ad esempio
bull se p=7 e a=2 allora 27ndash2=128ndash2=126=7middot18 cioegrave multiplo di 7
bull se p=7 e a=3 allora 37ndash3=2187ndash3=2184=7middot312 cioegrave multiplo di 7
14
bull se p=7 e a=4 allora 47ndash4=16384ndash4 = 16380 = 7middot2340 cioegrave multiplo di 7
bull se p=5 e a=4 allora 45ndash4=1024ndash4=1020=5middot204 cioegrave multiplo di 5
bull se p=3 e a=4 allora 43ndash4=64ndash4=60=3middot20 cioegrave multiplo di 3
Lrsquoimportanza del teorema sta nel fatto che ci fornisce un metodo per stabilire se un numero egrave primo
o no infatti costruiamo un numero del tipo apndasha verifichiamo se egrave multiplo di p se non lo egrave siamo sicuri
che p non egrave primo Ad esempio vogliamo sapere se 15 egrave primo costruiamo
215ndash2=32768ndash2=32766
32766=15middot2184+6
cioegrave non egrave divisibile per 15 quindi sicuramente 15 egrave composto e infatti 15=3middot5
Ma cosa si puograve dire se invece apndasha egrave divisibile per p Sfortunatamente non possiamo essere sicuri
che p sia primo anche se egrave molto probabile che lo sia
Proviamo 217ndash2=131072ndash2=131070=17middot7710 e infatti 17 egrave primo Provando 2341ndash2 si trova che
esso egrave divisibile per 341 ma 341 non egrave primo essendo 341=11middot31 Sono detti pertanto pseudoprimi i
numeri composti che passano il test Non proviamo a calcolare 2341 percheacute sarebbe un numero
mostruosamente grande fuori dalla nostra portata ma vedremo tra poco come si puograve aggirare lrsquoostacolo
Riassumendo il piccolo teorema di Fermat afferma che egrave vero
1 se p egrave primo e a egrave un intero minore di p allora apndasha egrave divisibile per p
2 se apndasha non egrave divisibile per p allora p non egrave primo
ma se apndasha egrave divisibile per p allora p puograve essere primo ma anche composto ciograve percheacute la divisibilitagrave per p
egrave condizione necessaria ma non sufficiente percheacute p sia primo Concludendo possiamo dire che usando
questo teorema per verificare la primalitagrave di un numero se scopriamo che ap-a non egrave divisibile per p siamo
sicuri che p egrave composto ma se egrave divisibile per p allora p egrave probabilmente primo nel senso che puograve essere
un primo autentico o pseudoprimo
La cosa interessante egrave che la probabilitagrave che un numero composto sia uno pseudoprimo (cioegrave che
superi il test di primalitagrave ma non sia primo come per esempio 341) su una base casuale diminuisce
fortemente allrsquoaumentare del numero Un numero di 1000 cifre composto ha circa una possibilitagrave su 10123
di essere uno pseudoprimo su una base scelta a caso La tabella 3 riporta tali probabilitagrave in funzione del
numero di cifre
Cifre in x Limite superiore per P(x)
Cifre in x Limite superiore per P(x)
Cifre in x
Limite superiore per P(x)
60 00716 80 00000846 100 00000000277
120 528middot10ndash12 150 149middot10ndash17 200 385middot10ndash27
300 58middot10ndash29 400 57middot10ndash42 500 23middot10ndash55
700 18middot10ndash82 1000 12middot10ndash123 2000 86middot10ndash262
5000 76middot10ndash680 10000 16middot10ndash1331 100000 13middot10ndash10584
Tabella 3 Probabilitagrave che un numero composto sia pseudoprimo
Nel 2002 tre ricercatori indiani Manindra Agrawal Neeraj Kayal e Nitin Saxena hanno costruito un
algoritmo denominato AKS (dalle iniziali dei nomi) sempre basato sulla fondamentale proprietagrave enunciata dal
15
piccolo teorema di Fermat ma che risulta deterministico e che riduce in maniera drastica il tempo di calcolo
Lrsquoalgoritmo fornisce una svolta significativa in un settore lungamente atteso e di grande interesse pratico ma
per ora non sembra che possa avere immediata applicazione in quanto molto piugrave lento dei test probabilistici i
quali drsquoaltra parte sono quasi certi per i numeri primi di centinaia di cifre che servono attualmente in
crittografia
Storia della crittografia
La crittografia che letteralmente significa scrittura nascosta nasce dalla necessitagrave di segretezza di alcune
informazioni e pertanto con tale termine intendiamo lo studio dei metodi che consentono la trasmissione sicura
dellrsquoinformazione
Drsquoaltro canto lrsquoesistenza di informazioni segrete genera il desiderio di svelarle e da tale desiderio nasce
la crittoanalisi con cui intendiamo lo studio di metodi che consentono la decifrazione dei messaggi crittografati
La storia della crittografia drsquoaltra parte altro non egrave che la secolare battaglia tra crittografi e crittoanalisti
Infatti ogni sistema crittografico rimane valido fincheacute un crittoanalista non individua un suo punto debole sulla
base del quale riesce a elaborare il sistema di decifrazione
Crittografi e crittoanalisti insieme hanno dato un grande contributo al progresso scientifico e tecnologico
Infatti tutti i metodi della crittografia e della crittoanalisi fanno ricorso a metodi e strumenti di una vasta varietagrave
di scienze come la matematica la linguistica la teoria dellrsquoinformazione la fisica quantistica le quali a loro
volta sono da essi arricchite e stimolate
Lrsquoidea su cui si basa un metodo crittografico consiste nel concordare tra mittente e destinatario che
vogliono scambiarsi un messaggio senza che venga intercettato da terzi una procedura per alterare il testo in
chiaro del messaggio Il destinatario puograve ricavare il testo originale applicando al testo cifrato la procedura
inversa Chi intercetta il messaggio non conoscendo la procedura non puograve ricostruire il messaggio La sicurezza
del metodo sta nella difficoltagrave da parte del crittoanalista di poter ricostruire la procedura dallrsquoanalisi del
messaggio cifrato
Prima dellrsquoera informatica i metodi crittografici erano essenzialmente due per trasposizione o per
sostituzione
Nella trasposizione le lettere sono mutate di posto generando di fatto un anagramma Ma la
trasposizione non puograve essere casuale Infatti nel caso di messaggi brevi non sarebbe sicura in quanto i pochi
caratteri alfabetici che costituiscono il messaggio possono essere combinati in pochi modi diversi per cui
diventa facile ricostruire il messaggio per tentativi Ad esempio la parola ldquomiordquo consta di 3 caratteri alfabetici
esistono al massimo sei sequenze diverse mio moi imo iom omi oim analizzandole tutte e sei egrave facile
ricostruire la sequenza ldquomiordquo Ma al crescere della lunghezza del messaggio cresce mostruosamente anche il
numero delle sequenze infatti un anagramma di una parola di n lettere altro non egrave che una permutazione di n
elementi e si dimostra che il numero totale delle permutazioni di n elementi egrave dato da n (si legga n fattoriale)
uguale al seguente prodotto n(nndash1)(nndash2)(nndash3)hellip(nndash (nndash1)) Pertanto se il messaggio egrave costituito ad esempio da
20 lettere i possibili anagrammi sono 20=20middot19middot18middot17middot16middot15middot14middot13middot12middot11middot10middot9middot8middot7middot6middot5middot4middot3middot2middot1 cioegrave piugrave di 1000
miliardi e anche se si potesse controllare un anagramma al secondo ci vorrebbero piugrave di trentuno secoli per
analizzarli tutti In questo caso la comunicazione risulterebbe sicura essendo impossibile analizzare tutte le
16
possibili sequenze e ricostruire il messaggio ma di fatto egrave inutilizzabile anche dal destinatario percheacute di fronte
allo stesso problema
Per rendere efficace tale metodo egrave necessario che mittente e destinatario si accordino su un criterio di
trasposizione fissato in anticipo e piugrave egrave complicato tale criterio e piugrave egrave sicuro il metodo
Esiste il metodo della trasposizione cosiddetta a inferriata Esso consiste nella trascrizione di un testo
lungo due linee orizzontali una superiore e una inferiore passando da una allrsquoaltra a ogni successivo carattere
alfabetico Finita la trascrizione la seconda fila di caratteri saragrave accodata alla prima per dare origine al testo
cifrato Ad esempio
testo del messaggio incontriamoci stasera alle sette
testo del messaggio cifrato icnraoitsralstenotimccsaealeet
Il destinatario ricostruisce il testo originale applicando la trasposizione inversa
Esistono molti altri tipi di trasposizione per esempio si puograve variare il numero delle file su cui trascrivere
il messaggio oppure si puograve passare da una fila allrsquoaltra ogni due caratteri anzicheacute dopo ogni singolo carattere e
cosigrave via Da osservare che ogni carattere alfabetico mantiene la propria identitagrave ma cambia la posizione
Nella sostituzione ogni carattere alfabetico del messaggio originale viene sostituito con un altro carattere
alfabetico secondo un criterio stabilito In questo caso ogni carattere alfabetico mantiene la posizione ma
cambia la propria identitagrave
Sostanzialmente esso necessita di determinare come primo passo un alfabeto cifrante che egrave ottenuto
rimescolando secondo un criterio lrsquoalfabeto ordinario In questo modo a ogni carattere dellrsquoalfabeto ordinario
corrisponde un carattere dellrsquoalfabeto cifrante Per cifrare il messaggio si sostituisce ogni carattere del messaggio
con il corrispondente carattere dellrsquoalfabeto cifrante Per decifrare il messaggio si applica la procedura inversa
Il primo esempio documentato di cifratura per sostituzione si trova nel De bello gallico di Giulio Cesare
detto anche cifrario di Cesare Qui lrsquoalfabeto cifrante era ottenuto da quello ordinario spostando a destra di tre
posti ogni carattere alfabetico ad esempio per cifrare il messaggio si sostituisce ogni lettera con la
corrispondente dellrsquoalfabeto cifrante (figura 2)
17
Figura 2 Cifrario di Giulio Cesare
Per decifrare si sostituisce ogni lettera del messaggio cifrato utilizzando la corrispondenza inversa
Come si puograve facilmente osservare in questo metodo lrsquoalfabeto cifrante altro non egrave che una
riorganizzazione dellrsquoalfabeto ordinario che si puograve ottenere con un qualsiasi spostamento tra 1 e il numero delle
lettere dellrsquoalfabeto ordinario Per esempio nel caso dellrsquoalfabeto italiano che consta di 21 lettere si possono
effettuare 20 diversi spostamenti e ottenere quindi 20 diversi alfabeti cifranti Essendo lrsquoalfabeto cifrante una
riorganizzazione dellrsquoalfabeto ordinario non egrave detto che questa debba essere ottenuta utilizzando il criterio
dello spostamento ma puograve coincidere con un qualsiasi anagramma dellrsquoalfabeto ordinario Si vede quindi
facilmente come aumentano gli alfabeti cifranti nel nostro caso il loro numero per quanto detto
precedentemente uguaglia il numero delle permutazioni di 21 elementi e cioegrave 21 e cioegrave oltre 50 miliardi di
miliardi
A partire da questo esempio cerchiamo di chiarire in termini generali il significato di metodo
crittografico intendendo con esso un algoritmo che mediante una chiave trasforma un messaggio in chiaro in
un messaggio cifrato o crittogramma
Ad esempio nel metodo descritto sopra lrsquoalgoritmo equivale alla procedura con cui ogni lettera
dellrsquoalfabeto in chiaro egrave sostituita dalla corrispondente lettera dellrsquoalfabeto cifrante la chiave equivale al
particolare alfabeto cifrante scelto per la cifratura o decifrazione di un particolare crittogramma
Inoltre crsquoegrave da sottolineare lrsquoimportanza concettuale della distinzione tra algoritmo e chiave Infatti la sola
conoscenza dellrsquoalgoritmo senza la chiave non permette di decifrare il crittogramma Ed egrave questo uno dei
principi fondamentali della crittografia formulato in modo definitivo nel 1883 dallrsquoolandese Auguste
Kerckhoffs von Nieuwenhof noto anche come legge di Kerckhoffs ldquola sicurezza di un crittosistema non deve
dipendere dal tener celato il crittoalgoritmo La sicurezza dipenderagrave solo dal tener celata la chiaverdquo
Le caratteristiche di un efficace sistema crittografico possono essere riassunte nelle seguenti
1 segretezza della chiave
2 semplicitagrave della chiave (per evitare possibili malintesi o errori al momento dello scambio tra
mittente e destinatario)
3 alto numero di potenziali chiavi tra cui scegliere
18
Come si puograve notare la 2) e la 3) sono collegate tra loro infatti nel sistema descritto sopra si potrebbe
scegliere una chiave piugrave semplice sacrificando il numero di chiavi potenziali
Infatti invece di generare lrsquoalfabeto cifrante da una riorganizzazione casuale dellrsquoalfabeto ordinario lo si
puograve fare a partire da una parola chiave come nel seguente esempio Supponiamo di accordarci sulla parola
chiave lsquolaurarsquo si eliminano eventuali spazi e lettere ripetute quindi la parola chiave diventa lsquolaurrsquo a questo
punto la sequenza l a u r saragrave lrsquoinizio dellrsquoalfabeto cifrante cui seguiranno tutte le altre lettere mancanti in
ordine alfabetico partendo dallrsquoultima lettera della chiave per cui lrsquoalfabeto cifrante che si ottiene saragrave l a u r s t
v z b c d e f g h i m n o p q
I crittosistemi basati sulla sostituzione hanno dominato la scena per tutto il primo millennio della nostra era
fincheacute i crittoanalisti non trovarono il suo punto debole ed elaborarono un metodo per decifrarne i crittogrammi prodotti
La violazione di tali sistemi si basa su unrsquoidea dovuta per prima a crittoanalisti arabi nella quale si
combinano conoscenze di linguistica statistica e matematica nota con il nome di analisi delle frequenze
Essa egrave descritta dallo studioso del IX secolo Abu Yusuf ibn Ishaq al-Kind sopran-nominato il filosofo
degli arabi in una sua monografia dal titolo Sulla decifrazione dei messaggi crittati ritrovata nellrsquoarchivio
ottomano Sulaimaniyyah di Istanbul solo nel 1987 Nel testo si legge
Un modo di svelare un messaggio crittato se conosciamo la lingua dellrsquooriginale consiste nel trovare
un diverso testo chiaro nella stessa lingua abbastanza lungo da poter calcolare la frequenza di ciascuna
lettera
Chiamiamo ldquoprimardquo quella che compare piugrave spesso ldquosecondardquo quella che la segue per frequenza
ldquoterzardquo la successiva e cosigrave via fino a esaurire tutte le lettere del campione di testo chiaro
Esaminiamo poi il testo in cifra che vogliamo interpretare ordinando (in base alla frequenza) anche i
suoi simboli Troviamo il simbolo piugrave comune e rimpiazziamolo con la ldquoprimardquo lettera dellrsquoesempio
chiaro il simbolo che lo segue per frequenza sia rimpiazzato dalla ldquosecondardquo lettera il successivo simbolo
piugrave comune sia rimpiazzato dalla ldquoterzardquo e cosigrave via fino ad aver preso in considerazione tutti i simboli del
crittogramma che intendevamo svelare
Tabella 4 Frequenze delle diverse lettere in italiano
Per superare lrsquoanalisi delle frequenze furono ideati diversi nuovi metodi crittografici tra cui ricordiamo
1 il metodo di sostituzione omofonica
2 il metodo di sostituzione polialfabetica
19
Il metodo di sostituzione omofonica consiste nel sostituire ogni lettera con un numero di simboli per
esempio numeri proporzionale alla sua frequenza Cosigrave ad esempio la lettera a avendo una frequenza di 11 74
viene sostituita da 11 simboli la lettera b con un solo simbolo la lettera c con 4 simboli ecc secondo la tabella 5
Il metodo di sostituzione polialfabetica consiste nellrsquouso di piugrave alfabeti cifranti su unrsquoidea di Leon
Battista Alberti che propose di utilizzarne due Lrsquoalgoritmo consiste nel sostituire la prima lettera del messaggio
in chiaro con la corrispondente del I alfabeto cifrante la seconda lettera con la corrispondente del II alfabeto
cifrante la terza con la corrispondente del I e cosigrave via passando alternativamente dal I alfabeto al secondo Come
nellrsquoesempio della figura 3
Tabella 5 Corrispondenza lettere e simboli nella sostituzione omofonica
Figura 3 Il metodo di sostituzione polialfabetica
Su tale idea si basa il metodo di Blaise de Vigenegravere diplomatico francese nato nel 1523 il quale utilizza
tanti alfabeti cifranti quante sono le lettere dellrsquoalfabeto in chiaro ad esempio nellrsquoalfabeto italiano che consta
di 21 lettere utilizza 21 alfabeti cifranti
Il primo passo consiste nel costruire la tavola di Vigenegravere in cui nella prima riga egrave riportato lrsquoalfabeto in
chiaro e in ognuna delle 21 righe successive egrave riportato un alfabeto cifrante spostato di una lettera rispetto a
quello della riga precedente cosigrave nella riga 1 egrave riportato lrsquoalfabeto spostato di una lettera nella riga 2 quello
spostato di due lettere nella riga 3 quello spostato di tre fino alla riga 20 in cui egrave riportato quello spostato di 20
lettere (figura 4)
20
Figura 4 La tavola di Vigenegravere
Il secondo passo consiste nello scegliere una parola chiave per esempio lsquoverorsquo Pertanto il messaggio in
chiaro ldquonon andarerdquo verrebbe cifrato come nella figura 5
La differenza sostanziale tra la cifratura omofonica e quella polialfabetica egrave che in quella omofonica a
ogni lettera corrispondono piugrave simboli ma ogni simbolo egrave il corrispondente di una sola lettera cioegrave egrave una
corrispondenza 1rarr m che invertita diventa mrarr 1 in quella polialfabetica a ogni lettera corrispondono piugrave
simboli e anche ogni simbolo egrave il corrispondente di piugrave lettere cioegrave mrarr m che rimane tale anche invertendola
Il vantaggio della cifratura polialfabetica egrave pertanto la sua resistenza allrsquoanalisi delle frequenze Oltre ad
ammettere un enorme numero di chiavi infatti si puograve scegliere qualunque parola del dizionario qualunque
combinazione di parole si puograve perfino ricorrere a neologismi rendendo impossibile il controllo di tutte le chiavi
possibili Ed ecco percheacute egrave ritenuta piugrave affidabile e non ha mai smesso di essere usata
Figura 5 Cifratura polialfabetica del messaggio ldquonon andarerdquo
21
Oggi sono noti tutti i punti deboli del sistema di Vigenegravere ed esistono vari procedimenti per decifrare i
crittogrammi generati da tale sistema che sfruttano ad esempio la modularitagrave nel ripetere la chiave o
osservazioni sulle ripetizioni del testo cifrato Ci sono testimonianze storiche che uno di tali procedimenti sia
stato ideato da Sir Charles Babbage famoso per aver progettato e mai realizzato la macchina alle differenze
progenitrice degli odierni calcolatori La prima descrizione resa pubblica del metodo perograve egrave del 1863 portata a
compimento dallrsquoufficiale prussiano F W Kasiski
Unrsquoosservazione decisiva fu che le insidie del metodo di Babbage potevano essere evitate utilizzando
nella cifratura di Vigenegravere una chiave molto lunga e fatta da lettere che si succedono in modo casuale se un
messaggio cifrato non presenta delle ripetizioni se non egrave possibile tentare di indovinare la chiave cadono tutti
gli appigli necessari per effettuare con successo la crittoanalisi
Tale osservazione fu ulteriormente sviluppata da G S Vernam che nel 1926 introdusse lrsquoidea di usare
una chiave casuale lunga quanto il messaggio stesso
Oggi sappiamo grazie agli studi di Claude Shannon del 1949 che tale metodo puograve definirsi
ldquoteoricamente sicurordquo
In pratica perograve ciograve comporta la difficoltagrave di costruire lunghe stringhe di lettere assolutamente casuali e di
scambiarsi segretamente e continuamente queste chiavi In sostanza risulta impraticabile per ogni messaggio
scambiato in modo sicuro egrave necessario prima trasmettere in modo sicuro il messaggio contenente la chiave
I metodi usati per buona parte del Novecento sono delle rielaborazioni sempre piugrave complesse delle idee
descritte finora ottenute anche con la costruzione di dispositivi per la meccanizzazione delle procedure di
cifratura e decifratura Un esempio tra i piugrave conosciuti egrave la macchina Enigma usata dai tedeschi durante la
Seconda guerra mondiale inventata dallrsquoingegnere Arthur Scherbius Enigma consisteva di diversi ingegnosi
elementi combinati in un potente e sofisticato dispositivo per la produzione di scritture segrete In particolare ma
macchina aveva tre componenti collegati da fili elettrici una tastiera per immettere le lettere del testo chiaro
unrsquounitagrave scambiatrice che cifra la lettera trasformandola nel corrispondente elemento del crittogramma e un
visore con varie lampadine che accendendosi indicano la lettera da inserire nel crittogramma
Lo sforzo per violare questa cifratura richiese anni di lavoro e fu portato a compimento dalla Scuola
Inglese Governativa di Codici e Cifre di Bletchley Park di cui faceva parte Alan M Turing noto oggi ai piugrave per
i suoi studi sullrsquointelligenza meccanica
La crittografia nellrsquoera dellrsquoinformatica
Nel 1945 fu realizzato ENIAC (Electronic Numerical Integrator And Calculator) unrsquoapparecchiatura
contenente 18 000 valvole elettroniche capace di effettuare 5000 calcoli al secondo considerato il capostipite
dei moderni calcolatori
Dopo il 1945 fu lrsquoinformatica a fare da protagonista nella battaglia tra crittografi e crittoanalisti operando
una decisiva svolta nelle metodologie di entrambi Infatti i metodi precedenti lrsquoera dellrsquoinformatica basavano la
propria sicurezza sullrsquoenorme numero di chiavi disponibili e sulla loro lunghezza ma che viene messa in crisi
dalla crescente potenza di calcolo dei computer Un computer molto potente infatti potrebbe individuare quella
giusta in pochi minuti anche nel caso di un milione di chiavi da esaminare
Tutti i metodi crittografici esaminati finora necessitano di
22
1 un algoritmo generale di cifratura G
2 di una chiave K che deve rimanere segreta
3 di un algoritmo di decifrazione H=Gndash1 (inverso di G)
e agiscono secondo il seguente schema
il messaggio in chiaro M tramite lrsquoalgoritmo G e la chiave K viene cifrato in MC questrsquoultimo tramite
lrsquoalgoritmo H e la stessa chiave K viene decifrato in M (figura 6)
Figura 6 Schema di metodi crittografici
La sicurezza di tali sistemi risiede interamente nella segretezza delle chiavi Ne segue che per distribuire
agli utenti le chiavi egrave necessario ricorrere a canali sicuri
Gli svantaggi che ne derivano sono essenzialmente
1 difficoltagrave nella distribuzione delle chiavi agli utenti
2 mancata autenticazione dei messaggi mittente e destinatario condividono la stessa chiave
pertanto non crsquoegrave modo di impedire che il destinatario si invii messaggi che poi sembrino
provenienti dal mittente Si pensi quali problemi possono provocare simili falsificazioni nella
posta elettronica o nei sistemi bancari elettronici
La svolta avvenne nel 1976 a opera di Diffie e Hellmann che proposero un metodo detto a chiave
pubblica il quale non necessita di uno scambio preventivo delle chiavi segrete Lrsquodea egrave chiarita dal seguente
esempio noto come esempio del doppio lucchetto
Supponiamo di avere due utenti Mitt e Dest e Mitt voglia spedire un messaggio segreto a Dest
1 Mitt mette il messaggio in una scatola che chiude con il proprio lucchetto LMitt (di cui solo lui ha
la chiave) e spedisce la scatola a Dest
2 Dest ricevuta la scatola aggiunge un proprio lucchetto LDest (di cui solo lui ha la chiave) e
rispedisce la scatola a Mitt
3 Mitt ricevuta la scatola con il doppio lucchetto toglie il lucchetto LMitt e rispedisce la scatola a
Dest
4 Dest ricevuta la scatola puograve togliere il lucchetto LDest e leggere il messaggio di Mitt
Il problema della distribuzione delle chiavi sembra risolto percheacute lo schema a doppia chiave non richiede
la condivisione delle stesse Tuttavia la realizzazione pratica di un tale sistema si scontra con un altro problema
quello riguardante lrsquoordine in cui cifrature e decifrature sono eseguite In altre parole in un sistema crittografico
egrave essenziale lrsquoordine con cui avvengono le rispettive cifrature e decifrature in quanto la cifratura eseguita per
23
ultimo andrebbe decifrata per prima (egrave un porsquo come quando la mattina infiliamo prima le calze e poi le scarpe
ma alla sera togliamo prima le scarpe e poi le calze)
Lrsquoesempio del doppio lucchetto in cui ciograve non avviene sembra tuttavia funzionare come idea percheacute ai
fini dellrsquoapertura della scatola non ha importanza lrsquoordine di rimozione dei lucchetti
Anche se il trucco dei due lucchetti non sembra immediatamente applicabile tuttavia fu il giusto punto di
partenza per la realizzazione di un sistema crittografico che aggira lrsquoostacolo della distribuzione delle chiavi
Infatti lrsquoidea egrave che mittente e destinatario generano ciascuno due chiavi distinte una chiave di cifratura E
(da utilizzare nellrsquoalgoritmo di cifratura) e una chiave di decifrazione D (da utilizzare nellrsquoalgoritmo di
decifrazione) Le chiavi sono correlate nel senso che servono per effettuare operazioni inverse (figura 7)
Figura 7 Le chiavi correlate per effettuare operazioni invese
Il trucco consiste nellrsquoimpossibilitagrave di poter derivare la chiave D dalla chiave E mediante algoritmi di
calcolo (figura 8)
Ogni utente puograve rendere pubblica la propria chiave di cifratura E indicandola magari sullrsquoelenco
telefonico senza compromettere la propria chiave di decifrazione che rimane segreta di pubblico dominio sono
anche gli algoritmi di cifratura G e decifrazione H
Figura 8 Inapplicabilitagrave del metodo del doppio lucchetto
Pertanto lrsquoesempio del doppio lucchetto viene cosigrave interpretato
1 il destinatario pubblica la chiave di cifratura E e mantiene segreta la chiave di decifrazione D
2 il mittente applica GE al messaggio M trasformandolo nel messaggio cifrato MC cioegrave
GE(M)=MC che spedisce al destinatario
3 il destinatario applica HD al messaggio cifrato MC riottenendo M cioegrave HD(MC)=M
24
La sicurezza di un tale sistema si fonda sulla difficoltagrave di poter
1 ritrovare il testo cifrato provando ad applicare lrsquoalgoritmo GE che egrave pubblico ad ogni possibile
testo in chiaro il cui numero pur essendo enorme egrave comunque finito
2 ricavare lrsquoalgoritmo HD da GE
in quanto entrambe le tecniche sono computazionalmente inattuabili nel senso che richiedono un tempo
di calcolo di lunghezza al di fuori di ogni possibile considerazione anche per i piugrave potenti calcolatori
Per descrivere tali algoritmi sono necessari alcuni concetti matematici che andiamo a illustrare
Figura 9 Schema di cifrario a chiave pubblica
Lrsquoaritmetica modulare
Lrsquoaritmetica modulare la cui introduzione egrave dovuta a Gauss costituisce un sistema di calcolo con
importanti applicazioni nei test di primalitagrave e nei metodi che stanno alla base della sicurezza delle comunicazioni
elettroniche Con essa infatti si hanno i seguenti vantaggi 1) si riduce lo spazio dei numeri su cui gli algoritmi
sono chiamati ad operare e quindi si aumenta la velocitagrave di calcolo 2) si riesce a rendere difficili alcuni problemi
computazionali che sono semplici (o addirittura banali) nellrsquoalgebra ordinaria al fine di aumentare la sicurezza
nelle comunicazioni Lrsquoidea egrave semplice ma potente Forse non lo sappiamo ma usiamo spesso laritmetica
modulare Potremmo chiamarla aritmetica dellorologio
Infatti pensiamo ad un normale orologio con 24 ore Se sono le 15 ed un amico ci comunica che saragrave a
casa nostra tra 5 ore sappiamo che egli verragrave alle 20 infatti 15+5=20 Ma se sono le 23 e dobbiamo partire fra 7
ore certamente non diciamo che la partenza saragrave alle 30 anche se 23+7=30 Sappiamo che dovremo partire alle
6 Allo stesso modo se sono le 20 che ora saragrave tra 14 ore Non diremo 34 anche se 20+14=34 ma diremo che
sono le 10 Come si spiega tutto ciograve
Immaginiamo di segnare sul quadrante dellrsquoorologio 24 ore Se la lancetta segna le 23 aggiungere 7 ore
significa spostarsi di 7 posti fino ad arrivare alle 6 Si giunge allo stesso risultato calcolando 23+7=30 ed
osservando che 30=1sdot24+6 o che egrave lo stesso 3024 =1 con resto 6 che significa che 30 lo si ottiene facendo fare
alla lancetta un giro completo piugrave 6
25
Se la lancetta segna le 20 e aggiungiamo 14 ore lrsquoorologio segneragrave le 10 percheacute 20+14=34 ma 3424= 1
con resto 10 per cui 34 lo si ottiene percorrendo un giro completo piugrave 10
Proviamo con il normale orologio a 12 ore I numeri che vediamo sul quadrante sono 0 1 2 3 4 5 6 7
8 9 10 11 Il numero 12 non compare percheacute a partire da 0 trascorse 12 ore torniamo di nuovo a 0 Questa
volta per fare un giro completo occorrono 12 ore Pertanto se sono le 7 che ore saranno tra 24 ore Saranno
ancora le 7 percheacute 7+24=31 ma 3112 = 2 con resto 7 cioegrave si compiono 2 giri completi piugrave 7 se sono le 8 tra 6
ore saranno le 2 percheacute 8+6=14 ma 1412=1 con resto 2 Dagli esempi dovrebbe risultare chiaro allora che ciograve
che contano non sono i risultati delle somme ma i loro resti nelle divisioni per il numero delle ore segnate sul
quadrante dellrsquoorologio
La stessa cosa succede con i giorni della settimana se pensiamo a un orologio con 7 ore sul quadrante
Facciamo corrispondere ai giorni della settimana i numeri da 0 a 6 (figura 10)
domenica Lunedigrave Martedigrave Mercoledigrave Giovedigrave Venerdigrave Sabato darr darr darr darr darr darr darr 0 1 2 3 4 5 6
Figura 10 Corrispondenza dei giorni della settimana con i numeri da 0 a 6
Se per esempio oggi egrave venerdigrave che giorno saragrave tra 12 giorni
Dovremo calcolare 5+12=17 ma i giorni si ripetono ogni 7 pertanto osservando che 177 =2 con resto 3
possiamo concludere che a partire da 5 e aggiungendo 12 si compiono 2 giri completi piugrave 3 ed essendo 3 il
numero corrispondente a mercoledigrave concludiamo che saragrave mercoledigrave Facciamo un altro esempio se oggi egrave
lunedigrave (1) che giorno saragrave tra 20 giorni Calcoliamo 1+20=21 217= 3 con resto 0 quindi saragrave domenica
Il numero n delle ore sullrsquoorologio costituisce quello che si chiama il modulo e individua lrsquoaritmetica di
modulo n in cui lrsquoinsieme dei numeri con i quali si opera indicato con Zn egrave lrsquoinsieme dei possibili resti della
divisione per n e cioegrave Zn=0 1 2 3 hellip nndash1e le operazioni si eseguono con le regole illustrate negli esempi
precedenti
Lrsquoesempio dellrsquoorologio a 24 ore costituisce la cosiddetta aritmetica finita di modulo 24 in essa Z24=0
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 essendo questi ultimi i possibili resti
della divisione per 24 Lrsquoorologio a 12 ore costituisce lrsquoaritmetica finita di modulo 12 in essa Z12=0 1 2 3 4
5 6 7 8 9 10 11 essendo questi ultimi i possibili resti della divisione per 12 Lrsquoesempio dei giorni della
settimana egrave lrsquoaritmetica finita di modulo 7 in cui Z7=0 1 2 3 4 5 6 essendo questi ultimi i possibili resti
della divisione per 7 Riassumiamo costruendo unrsquoaritmetica finita di modulo 4 I possibili resti della divisione
per 4 sono 0 1 2 3 quindi Z4=0123 Lrsquoaddizione e la moltiplicazione in Z4 si esegue come negli esempi
della tabella 6
26
operazioni indicate
Risultato nellrsquoaritmetica ordinaria
Risultato nellrsquoaritmetica modulo 4
2+2 4 0 percheacute 44=1 con resto 0
3+2 5 1 percheacute 54=1 con resto 1
2+1 3 3 percheacute 34=0 con resto 3
3sdot3 9 1 percheacute 94=2 con resto 1
3sdot2 6 2 percheacute 64=1 con resto 2
2sdot2 4 0 percheacute 44=1 con resto 0
Tabella 6 Addizione e moltiplicazione nellrsquoaritmetica finita di modulo 4
Si possono costruire le tavole dellrsquoaddizione e della moltiplicazione dellrsquoaritmetica modulo 4 che costituiscono
le tabelline di questa aritmetica sulla base delle quali si esegue qualsiasi addizione e moltiplicazione modulo 4
Nella tabella 7 sono spiegate le tabelline dellrsquoaritmetica in modulo 4
Tabella 7 Tavole dellrsquoaddizione e della moltiplicazione dellrsquoaritmetica modulo 4
Infine per indicare che due numeri a e b divisi per n danno lo stesso resto si usano le seguenti notazioni
tutte equivalenti tra loro
a=b mod n andashb=0 mod 4 a equiv b (mod n) che si legge a egrave congruo b modulo 4
Esempio
26=12 mod 7 egrave la stessa cosa di
26ndash12=0 mod 7 che egrave la stessa cosa di
26 equiv 12 (mod 7) e tutte e tre stanno a indicare che 26 e 12 divisi per 7 danno lo stesso resto che egrave 5 e
pertanto sono tutti equivalenti a 5
Facciamo vedere come sfruttare lrsquoaritmetica modulare per calcolare potenze come 2341 (figura 11) Il
metodo si basa sulla proprietagrave che il resto del quadrato di un numero a per un dato modulo n egrave uguale al
quadrato del resto dello stesso numero a per lo stesso modulo n cioegrave a2 mod n =(a mod n)2
+ 0 1 2 3
0 0 1 2 3
1 1 2 3 0
2 2 3 0 1
3 3 0 1 2
x 0 1 2 3
0 0 0 0 0
1 0 1 2 3
2 0 2 0 2
3 0 3 2 1
27
Figura 11 Il metodo per calcolare 2341
La funzione di Eulero
Per ogni intero ngt1 si definisce la funzione di Eulero = numero di interi minori di n e primi con esso Ad
esempio
bull ( ) 45 =φ percheacute gli interi minori di 5 sono 1 2 3 4 ed essi sono tutti primi con n
bull ( ) 26 =φ percheacute gli interi minori di 6 sono 1 2 3 4 5 e fra essi solo 1 e 5 sono primi con 6
bull ( ) 67 =φ percheacute gli interi minori di 7 sono 1 2 3 4 5 6 ed essi sono tutti primi con 7
bull ( ) 412 =φ percheacute gli interi minori di 12 sono 1 2 3 4 5 6 7 8 9 10 11 e fra essi solo 1 5 7
11 sono primi con 12
Se si conosce la scomposizione in fattori del numero n il seguente teorema ci fornisce un metodo per
calcolare Infatti esso afferma che per ogni ngt1 non primo ( )
minussdotsdot
minussdot
minussdotnppp
n=nφ 11
11
11
21
dove
p1 p2 hellip pn sono i fattori primi di n presi senza molteplicitagrave
22 mod 341=4
24=(22)2=(22 mod 341)2=42=16mod341=16
28=(24)2=(16)2=256mod341=256
216= (28)2=(256)2=65536mod341=64
232=(216)2=(64)2=4096mod341=4
264=(232)2=42=16mod341=16
2128=(264)2=(16)2=256mod341=256
2256=(2128)2=(256)2=65536mod341=64
2341=2(256+64+16+4+1) 2256 264 216 24 21 x x x x
64 1
1024 mod 341
= 1 x 64
64 x 16
1024 mod 341
1 x 2 =
=
x
28
Ad esempio
essendo 12 = 3sdot2sdot2 ( ) 42
1
3
212
2
11
3
111212 ===φ sdotsdot
minussdot
minussdot
essendo 6=2sdot3 ( ) 22
1
3
26
2
11
3
1166 ===φ sdotsdot
minussdot
minussdot
se n=psdotq ( ) ( ) ( )11111
11
1 minussdotminusminussdotminussdot
minussdot
minussdot qp=q
q
p
pn=
qpn=nφ
Ovviamente se n egrave un numero primo = nndash1
Vale inoltre il seguente teorema di Eulero per ngt1 e per ogni altn e primo con n si ha
Ad esempio per n=6 ( ) 26 =φ infatti i primi con 6 sono 1 e 5 per il teorema di Eulero si ha
2mod1255
2mod1112
2
equiv=
equiv=
per n=5 ( ) 45 =φ e i primi con 5 sono 1 2 3 4 e per il teorema di Eulero si ha
5mod12564
5mod1813
5mod1162
5mod111
4
4
4
4
equiv=
equiv=
equiv=
equiv=
Si puograve notare come nel caso in cui n egrave un numero primo si ritrova il piccolo teorema di Fermat
Infatti per n primo ( )nφ = nndash1 e per il teorema di Eulero per ogni altn e primo con n Ricordiamo infatti
che il piccolo teorema di Fermat afferma che se n egrave un numero primo e a un intero minore di n allora egrave
divisibile per n che con il linguaggio dellrsquoaritmetica modulare diventa che puograve essere riscritto e se a egrave primo
con n allora egrave che egrave equivalente a
Infine si prova che per ogni altn e primo con esso esiste lrsquoinverso di a e esso egrave dato da ( ) 1minusnaφ Infatti
( ) ( ) na=aa nφnφ1mod1 equivsdot minus per il teorema di Eulero Si ricorda che lrsquoinverso di un numero a egrave quel numero che
moltiplicato per a dagrave 1 indicato convenzionalmente con andash1
Ad esempio per n=5 i primi con 5 sono 1 2 3 4 e per ognuno di questi esiste lrsquoinverso infatti
bull lrsquoinverso di 1 egrave ( ) 1mod51111 31415 equivminusminus ===φ
e infatti
bull lrsquoinverso di 2 egrave ( ) 3mod58222 31415 equivminusminus ===φ
e infatti
bull lrsquoinverso di 3 egrave ( ) 2mod527333 31415 equivminusminus ===φ
e infatti
bull lrsquoinverso di 4 egrave ( ) 4mod564444 31415 equivminusminus ===φ
Le funzioni unidirezionali
Chiamiamo funzione da un insieme A a un insieme B qualunque procedura che associa a ogni elemento
di un insieme A (detto dominio) uno e un solo elemento di un insieme B (detto condominio) In simboli f
A rarr B Se poi indichiamo con x il generico elemento dellrsquoinsieme A e con y il generico elemento dellrsquoinsieme B
la f indica la procedura che ad ogni xisinA associa un yisinB e cioegrave y=f(x) ad esempio ldquofare il doppio dihelliprdquo
29
prendendo come dominio e codominio lrsquoinsieme dei numeri interi egrave in questo senso una funzione percheacute dato
ad esempio il numero 3 lo trasforma nel numero 6 come 5 lo trasforma in 10 e cosigrave via
Molte funzioni matematiche sono cosiddette bidirezionali nel senso che egrave facile dato un determinato x
generare il corrispondente y ma egrave altrettanto facile invertire la funzione cioegrave ritrovare lrsquoelemento x originario a
partire dal suo corrispondente
Facciamo qualche esempio
bull funzione xrarr fare il doppiorarr 2sdotx= y 3rarr fare il doppiorarr 2sdot3 = 6
funzione inversa y=2sdotx rarr fare la metagraverarr x 6=2sdot3 rarr fare la metagraverarr 3
bull funzione xrarr fare il quadruplorarr 4sdotxrarr aggiungere 1rarr sdoty=4sdotx +1
5rarr fare il quadruplorarr 4sdot5rarr aggiungere 1rarr 4sdot5 +1=21
funzione inversa y=4sdotx +1rarr sottrarre 1rarr 4sdot xrarr dividere per 4rarr x
21=4sdot5 +1rarr sottrarre 1rarr 4sdot 5rarr dividere per 4rarr 5
Le funzioni unidirezionali sono invece quelle funzioni facilmente calcolabili ma che non si possono invertire
Le funzioni cosiddette pseudounidirezionali (dette anche funzioni trappola a molla segreta) sono invece
quelle funzioni facilmente calcolabili ma che non altrettanto facilmente si possono invertire a meno che non si
conoscano alcune informazioni (la molla segreta) utilizzate nella loro costruzione
Lrsquoaritmetica modulare gioca un ruolo determinante in questo caso infatti permette di trasformare
funzioni bidirezionali in funzioni pseudounidirezionali
Facciamo lrsquoesempio della funzione ldquofare il quadruplordquo in simboli f(x)=4sdotx Egrave facilmente calcolabile
percheacute dato x per ottenere f(x) basta moltiplicare per 4 ma egrave altrettanto facile calcolare la sua inversa percheacute
dato f(x) basta dividere per 4 per ottenere lrsquooriginario x Ma anche se non avessimo la procedura inversa di
dividere per 4 sarebbe facile ritrovare lrsquoelemento originario anche procedendo per tentativi ed eliminazione
infatti se per esempio f(x) =20 si puograve tentare x=3 in tal caso f(x)=12 troppo piccolo quindi x deve essere
maggiore di 3 Si puograve allora pensare a 6 ma f(x)=24 troppo grande quindi x deve essere minore di 6 e cosigrave via
Vediamo cosa accade se calcoliamo utilizzando una aritmetica modulare Per esempio consideriamo la
stessa funzione f(x)=4sdotx in una aritmetica modulo 7 Possiamo osservare che la funzione non si comporta piugrave in
modo regolare come prima per accorgersene basta costruire una tabella (tabella 8)
x 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
f(x)=4sdotx 4 8 12 16 20 24 28 32 36 40 44 48 52 56 60
f(x)=4sdotmod 7 4 1 5 2 6 3 0 4 1 5 2 6 3 0 4
Tabella 8 La funzione f(x)=4sdotx in una aritmetica modulo 7
Anche in questa semplice situazione egrave chiaro che egrave piugrave complicato invertire la funzione e pertanto i valori
di x sono molto meglio protetti Si puograve fare anche lrsquoesempio della funzione esponenziale f(x)=3 x (tabella 9)
Tabella 9 La funzione f(x)=3 x in aritmetica modulo 11
x 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
f(x)=x3 1 8 27 64 125 216 343 512 729 1000 hellip hellip hellip hellip hellip
f(x)=x3 mod 11 1 8 5 9 4 7 2 6 3 10 hellip hellip hellip hellip hellip
30
Il cifrario a chiave pubblica RSA
Uno dei piugrave noti sistemi crittografici a chiave pubblica che sfrutta le idee precedentemente descritte egrave il
metodo RSA proposto dai matematici R L Rivest A Shamir e L Adlemann nel 1978 Esso risolve il problema
dello scambio delle chiavi in quanto queste ultime sono conosciute solamente ai rispettivi proprietari che non le
hanno preventivamente concordate e scambiate
Illustriamo schematicamente come i due utenti Mitt e Dest possano scambiarsi un messaggio segreto
utilizzando il metodo RSA Entrambi Mitt e Dest indipendentemente lrsquouno dallrsquoaltro poi
1 scelgono in modo casuale due numeri primi p q grandi (di 200-300 cifre in base 10)
2 calcolano N = psdotq e Φ(N) = (pndash1)sdot(qndash1)
3 scelgono un intero eltΦ(N) e primo con Φ(N) tale numero e saragrave la chiave pubblica
4 calcolano il numero d inverso di e mod Φ(N) tale cioegrave che esdotdequiv 1mod Φ(N) tale numero d saragrave
la chiave privata
5 rendono pubblici i numeri N ed e
Mitt per spedire un messaggio a Dest compie le seguenti operazioni
1 codifica il messaggio in un modo standard usando i numeri lt N
2 trasforma ogni numero M di tale codifica in Me (mod N) e lo spedisce a Dest
per decodificare il messaggio ricevuto Me Dest calcola (Me)d =Mesdotd =Mndash1=M (modN) riottenendo il messaggio
originale
Figura 12 Schema di cifrario con metodo RSA
31
Figura 13 Esempio di applicazione di metodi RSA
In che cosa consiste la sicurezza del metodo Da quanto esposto si osserva che per decodificare il
messaggio bisogna
1 conoscere d (chiave segreta)
2 essendo d lrsquoinverso di e nellrsquoaritmetica mod Φ(N) essendo e noto egrave necessario conoscere Φ(N)
3 ma noto N per calcolare Φ(N) egrave necessario conoscere i fattori primi di N cioegrave egrave necessario fattorizzare
N che egrave un problema computazionalmente difficile per quanto osservato in precedenza
Anche se non egrave stato dimostrato che non si possa rompere il codice in altro modo e cioegrave senza conoscere Φ(N) e i
fattori di N a tuttrsquooggi si puograve affermare che la sicurezza del metodo dipende essenzialmente dai seguenti fatti
Per codificare il messaggio bisogna saper costruire dei numeri primi grandi e tale operazione egrave
computazionalmente veloce si puograve infatti dimostrare che la complessitagrave computazionale di opportuni test di
primalitagrave per stabilire se un numero n egrave primo utilizzando il linguaggio di quel ramo della matematica nota
come teoria della complessitagrave egrave ldquoquasi-polinomialerdquo
Per violare il sistema bisogna saper fattorizzare interi grandi ottenuti come prodotto di due primi tale
problema egrave computazionalmente ldquolentordquo cioegrave con il linguaggio della teoria della complessitagrave appartiene alla
classe dei problemi non polinomiali Tale marcata differenza tra la velocitagrave di esecuzione delle operazioni di
costruzione di numeri primi grandi e di fattorizzazione di interi grandi garantisce la sicurezza del metodo
almeno per un tempo sufficientemente lungo Ad esempio con la tecnologia attuale lrsquooperazione di
fattorizzazione di un intero di 140 cifre in base 10 prodotto di due numeri primi casuali calcolati in pochi
secondi su un computer disponibile in commercio richiede utilizzando vari supercomputers operanti
parallelamente circa un mese
La RSA Security Inc gestisce una sfida a livello mondiale ove vengono premiati coloro che fattorizzano
gli interi proposti da loro in una particolare lista Ad esempio il 3 dicembre del 2003 egrave stato fattorizzato
32
rsa576 =
188198812920607963838697239461650439807163563379417382700763356422988859715234
665485319060606504743045317388011303396716199692321205734031879550656996221305
168759307650257059
un numero di 174 cifre decimali prodotto di due primi di 87 cifre
p =
398075086424064937397125500550386491199064362342526708406385189575946388957261
768583317
q =
472772146107435302536223071973048224632914695302097116459852171130520711256363
590397527
Le chiavi attualmente utilizzate dallRSA sono a 309 cifre decimali
La firma digitale
Consideriamo al solito un mittente che deve inviare a un destinatario un messaggio m La codifica di m
con il metodo descritto assicura lrsquoautenticitagrave del messaggio ma non fornisce alcuna sicurezza sulla sua
paternitagrave Infatti il messaggio m pur essendo autentico potrebbe essere stato inviato da qualcuno che si spaccia
per il mittente Questa egrave unimportantissima questione particolarmente nella trasmissione di messaggi che oltre
a dover essere segreti devono garantire la loro origine
Si dovrebbe quindi disporre di un analogo della firma manuale detta appunto firma digitale La firma
digitale deve allora essere progettata in modo da possedere le stesse caratteristiche di una firma manuale e cioegrave
lrsquoautenticitagrave la non falsificabilitagrave e lrsquoimpossibiltagrave di essere riutilizzata Facciamo vedere come lo stesso metodo
RSA puograve essere utilizzato per progettare una firma digitale
La situazione egrave la seguente il mittente (di seguito indicato con Mitt) invia un messaggio m con la firma
F al destinatario (di seguito indicato con Dest) Siano a b rispettivamente le chiavi pubblica e segreta di MITT
siano e d rispettivamente le chiavi pubblica e segreta di DEST
La procedura per apporre la firma digitale F al messaggio m egrave illustrata nei seguenti passi riassunti nel
grafico della figura 14
1 Mitt cripta la firma F (cioegrave i suoi dati identificativi) usando la propria chiave segreta (b)
ottenendo Fb
2 il messaggio m con la firma F criptata viene ulteriormente criptato con la chiave pubblica di
Dest (e) ottenendo (m Fb)e
3 Dest decodifica il messaggio con la sua chiave segreta (d) ottenendo
((m Fb)e)d = (me F(be)) d =m(e d)F(be d) = mFb
in cui la firma di Mitt egrave ancora criptata
4 Dest decodifica la firma di Mitt con la chiave pubblica di Mitt (a) ottenendo
(Fb)a = F(ba) = F
33
Grafico firma digitale
Mitt
Dest
pubblica
Fb
e dpubblica
a
((Fb)e)d=(Fb)ed=(Fb)1=Fb
(Fb)a=(F)ba=(F)1=F
ab de
(Fb)e
codifica
codificadecodifica
decodifica
1
2
3
4
5
6
7
8
segreta
b
segreta
Figura 14 Grafico firma digitale
Bibliografia
Thomas Beth Comunicazioni e sicurezza su Internet in ldquoLe Scienzerdquo n 330 febbraio 1996
Brian Butterworth Intelligenza matematica Vincere la paura dei numeri scoprendo le doti innate della mente
Rizzoli Milano 1999
John H Conway Richard K Guy Il libro dei numeri Hoepli Milano 2003
Richard Courant Herbert Robbins Che cosrsquoegrave la matematica Boringhieri Torino 1971
Philip J Davis Il mondo dei grandi numeri Zanichelli Bologna 1973
Keith Devlin Dove va la matematica Bollati Boringhieri Torino 1994
Jean Dieudonneacute Lrsquoarte dei numeri matematica e matematici oggi Mondadori Milano 1989
Martin E Ellmann La crittografia a chiave pubblica in La matematica della complessitagrave Quaderni n 67
settembre 1992 Le Scienze
Paolo Ferragina Fabrizio Luccio Crittografia principi ndash Algoritmi ndash Applicazioni Bollati Boringhieri Torino
2001
Godfrey H Hardy Apologia di un matematico Garzanti Milano 1989
Morris Kline Storia del pensiero matematico Einaudi Milano 1991
Serge Lang La bellezza della matematica Bollati Boringhieri Torino 1991
Mauro Leoncini Modelli di calcolo e complessitagrave computazionale in La matematica computazionale Quaderni
n 84 giugno 1995 Le Scienze
Fabrizio Luccio e Linda Pagli P = NP in La matematica della complessitagrave Quaderni n 67 settembre 1992
Le Scienze
Piergiorgio Odifreddi La Matematica del Novecento dagli insiemi alla complessitagrave Einaudi Torino 2000
34
ldquoPeriodico di matematicherdquo Serie VII Volume 7 Numero 2-3 luglio-dicembre 2000 Mathesis
ldquoPeriodico di matematicherdquo Serie VIII Volume 1 Numero 1 gennaio-marzo 2001 Mathesis
Carl Pomerance Alla ricerca dei numeri primi in ldquoLe Scienzerdquo n 174 febbraio 1983
Simon Singh Codici e segreti la storia affascinante dei messaggi cifrati dallrsquoantico Egitto a Internet Rizzoli
Milano 1999
Marcus du Sautoy Lrsquoenigma dei numeri primi lrsquoipotesi di Riemann lrsquoultimo grande mistero della matematica
Rizzoli Milano 2004
Gary Stix I segreti meglio custoditi la crittografia quantistica egrave passata dalla teoria al laboratorio per
approdare finalmente alle applicazioni in ldquoLe Scienzerdquo n 438 febbraio 2005
5
minori o uguali a 11 ci sono 5 numeri primi 2 3 5 7 11 esattamente la metagrave tra i successivi dieci da 12
a 21 ci sono 3 numeri primi 13 17 19 cioegrave il 30 tra 22 e 31 ci sono ancora 3 numeri primi 23 29 31
cioegrave ancora il 30 mentre tra 32 e 41 ci sono 2 numeri primi 37 41 cioegrave il 20 e cosigrave tra 42 e 51 si
potrebbe pensare che andando avanti le cose si regolarizzino ma non egrave cosigrave
Proseguendo nel conteggio per esempio nellrsquointervallo dei cento numeri che precedono 10 000 000
i numeri primi sono 9 999 901 9 999 907 9 999 929 9 999 931 9 999 937 9 999 943 9 999 971
9 999 973 9 999 991 cioegrave lo 009 mentre nellrsquointervallo dei cento numeri che seguono 10 000 000 i
numeri primi sono 10 000 019 10 000079 cioegrave lo 002
Si osserva inoltre che esistono intervalli di numeri naturali di ampiezza arbitraria allrsquointerno dei
quali non si incontra alcun numero primo Questrsquoultima osservazione egrave addirittura ovvia
Ricordiamo che il prodotto dei numeri naturali da 1 a n si indica con il simbolo n (da leggersi n
fattoriale) cioegrave n=1sdot2sdot3sdothellipsdot(nndash2)sdot(nndash1)sdotn
Ad esempio 5=1sdot2sdot3sdot4sdot5 10=1sdot2sdot3sdot4sdot5sdot6sdot7sdot8sdot9sdot10
Considerato il numero n si ha che
n=nsdot(nndash1)sdot(nndash2)sdot(nndash3)sdothellipsdot3sdot2sdot1 egrave divisibile per ciascuno dei numeri tra 1 e n
n+2 egrave divisibile per 2 in quanto sia n che 2 sono divisibili per 2
n+3 egrave divisibile per 3 in quanto sia n che 3 sono divisibili per 3
hellip
n+n egrave divisibile per n in quanto sia n che n sono divisibili per n
Abbiamo cosigrave trovato un intervallo di numeri naturali da n+2 a n+n consecutivi e nessuno di essi
primo Dato che n puograve essere qualsiasi si vede che esistono sicuramente lunghi tratti senza numeri primi
Ancora oggi il metodo piugrave veloce per trovare tutti i primi inferiori a un numero prefissato N egrave
dovuto a Eratostene (276-194 aC) bibliotecario della grande biblioteca di Alessandria che i piugrave
conoscono per aver misurato il raggio della Terra (in un tempo in cui pochi credevano che fosse sferica)
ma che i teorici dei numeri ricorderanno per sempre per il suo crivello
Tale metodo consiste nello scrivere in ordine tutti i numeri naturali minori di N (figura 1)
cancellando tutti i multipli di 2 tranne 2 tra i rimanenti tutti i multipli di 3 tranne 3 e cosigrave via fino ad aver
eliminato tutti i numeri composti Tutti i numeri rimasti saranno i numeri primi minori di N
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100
Figura 1 Il metodo del crivello di Eratostene per trovare i numeri primi
6
Facciamo un esempio vogliamo scrivere lrsquoelenco dei numeri primi minori 100
Scriviamo in ordine tutti i primi cento numeri naturali a partire da 2
bull cancelliamo i multipli di 2
bull cancelliamo i multipli di 3
bull cancelliamo i multipli di 5
bull cancelliamo i multipli di 7
Fermiamoci qui e osserviamo che quando abbiamo a che fare con un numero primo p i suoi multipli
per fattori piugrave piccoli di p sono stati giagrave eliminati e il primo che non lo egrave stato saragrave p2 Per esempio nel caso
in cui p fosse 5 il primo multiplo a non essere ancora stato eliminato egrave 25 infatti 10 egrave stato eliminato come
multiplo di 2 15 egrave stato eliminato come multiplo di 3 20 egrave stato eliminato come multiplo di 2 25 egrave il
primo non eliminato percheacute non egrave multiplo di 2 neacute di 3 pertanto la procedura di cancellazione termina con
p=7 infatti se p=11 allora p2=121 e poicheacute la tavola arriva fino a 100 tutti i multipli di 11 sono giagrave stati
eliminati
Tutti i numeri non cancellati (quelli in grassetto) sono i primi compresi nellrsquointervallo tra 2 e 100
estremi inclusi essi sono 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83
69 97
Alla ricerca dei numeri primi
Proprio nel tentativo di farsi unrsquoidea di come si distribuiscono i numeri primi eminenti matematici
come Pierre de Fermat Marin Mersenne Leonhard Euler (Eulero) Carl Friedrich Gauss ecc hanno
compilato e analizzato lunghi elenchi di numeri primi alla ricerca di formule in grado di produrre se non
tutti almeno ldquomoltirdquo di essi
Pierre de Fermat (1601-1665) ipotizzograve che tutti i numeri della forma F(N)= siano primi In effetti
per N=1
5141212)1( 221
=+=+=+=F
per N=2
171161212)2( 422
=+=+=+=F
per N=3
25712561212)3( 823
=+=+=+=F
per N=4
655371655361212)4( 1624
=+=+=+=F
sono tutti primi ma giagrave per N=5
67004176414294967297142949672961212)5( 3225
times==+=+=+=F
risultato scoperto da Eulero nel 1732 questo egrave uno dei pochi casi in cui Fermat cadde in errore forse
percheacute come si vede questi numeri detti numeri di Fermat crescono molto rapidamente giagrave il quinto
7
numero ha dieci cifre ed era al di fuori della portata dei suoi calcoli Ma egrave un ottimo esempio per
convincerci che la veritagrave di una affermazione non puograve basarsi sulla verifica della sua validitagrave in alcuni casi
particolari
Oggi sappiamo che F(N) egrave composto per tutti i valori di N da 5 a 21 come pure per vari altri valori
e lrsquoipotesi piugrave diffusa ma non dimostrata egrave che F(N) sia composto per tutti i valori di Ngt4 sostenuta dal
fatto che non si egrave trovato sperimentalmente un F(N) con Ngt4 che sia primo
Carl Friedrich Gauss (1777-1855) riuscigrave a dimostrare che se lrsquoN-esimo numero di Fermat egrave primo
allora egrave possibile costruire geometricamente con riga e compasso un poligono regolare di N lati Dove per
riga si intende una riga non graduata che serva solo a tracciare linee rette e per compasso uno strumento
capace solo di tracciare circonferenze o archi di circon-ferenza e non per esempio di riportare misure In
questo modo allrsquoetagrave di soli 19 anni Gauss riuscigrave a costruire il poligono di 17 lati Allo stesso modo si
potrebbe costruire un poligono regolare di 65537 lati essendo questrsquoultimo un primo di Fermat
Marin Mersenne (1588-1648) egrave famoso fra lrsquoaltro per il suo ruolo di intermediario nella comunitagrave
scientifica internazionale del Seicento In assenza di periodici scientifici infatti diverse persone si
assunsero il compito di comunicare a un gran numero di corrispondenti ogni scoperta scientifica di cui
fossero venuti a conoscenza e Mersenne fu uno di questi A lui egrave dovuta la pubblicazione per la prima
volta di gran parte del lavoro di Fermat attraverso le sue lettere
Anche Mersenne venne preso dalla smania di trovare delle formule che producessero numeri primi
e in questa ricerca compilograve un elenco di numeri primi p per lrsquoesattezza p=2 3 5 7 13 17 19 31 67
127 257 per i quali riteneva che fosse primo anche il numero della forma M(p)= che viene oggi chiamato
numero di Mersenne Nessuno sa come Mersenne sia stato in grado di fare questa affermazione ma
comunque egli era sorprendentemente vicino alla veritagrave Soltanto nel 1947 quando comparvero le
calcolatrici da tavolo fu possibile verificare la sua asserzione Aveva fatto solo 5 errori M(67) M(257)
non sono primi M(61) M(89) M(107) sono primi
Si osserva facilmente come al crescere di p il numero M(p) diventi rapidamente molto grande
bull M(2)=22ndash1=3
bull M(3)=23ndash1=7
bull M(4)=24ndash1=15=3middot5
bull M(5)=25ndash1=31
bull M(6)=26ndash1=63=7middot3middot3
bull M(7)=27ndash1=127
bull M(8)=28ndash1=255=5middot3middot17
hellip
bull M(11)=211ndash1=2047=23middot89
hellip
bull M(17)=217ndash1=131071
8
E solo per alcuni valori di p essi sono primi per cui lrsquoidea sarebbe quella di cercare i valori di p per
cui M(p) egrave primo Ma ciograve non egrave facile percheacute la primalitagrave di p egrave condizione solo necessaria per la primalitagrave
di M(p) infatti egrave vero che
1 se M(p) egrave primo allora anche p egrave primo
2 se p non egrave primo allora M(p) non egrave primo vedi ad esempio M(4) M(6) M(8)
ma se p egrave primo non egrave detto che M(p) sia primo vedi ad esempio M(11)
A tuttrsquooggi non si sa se esista unrsquoinfinitagrave di numeri di Mersenne che siano primi (detti primi di
Mersenne) neacute se esista unrsquoinfinitagrave di numeri di Mersenne che non siano primi anche se entrambe le
asserzioni appaiono verosimili Infatti aumentando le capacitagrave di calcolo dei calcolatori aumenta il
numero dei primi di Mersenne conosciuti (tabella 1) La ricerca di primi di Mersenne sempre piugrave grandi ha
valore di semplice curiositagrave ma il loro calcolo egrave utile per la misurazione della potenza di calcolo dei
calcolatori Per esempio per dimostrare che il numero di Mersenne M8191 di 2466 cifre non egrave primo usando
il test di Lucas-Lehmer ci vollero 100 ore la prima volta nel 1953 sul computer ILLIAC-I Da allora il
tempo di calcolo egrave sceso drasticamente da 5 a 2 ore su un IBM 7090 40 minuti su un ILLIAC-II da 3 a un
minuto su un IBM 360-91 e 10 secondi su un CRAY-I
valore di p 2p-1 anno autore computer 2 3 3 7 5 31 7 127 13 8191 1461 anonimo 17 131071 1588 Pietro Antonio Cataldi 19 524287 1588 Pietro Antonio Cataldi 31 2 147 483 647 1750 Leonhard Euler 61 19 cifre 1883 I M Pervushin calcolatore meccanico 89 27 cifre 1911 R E Powers calcolatore meccanico 107 33 cifre 1914 R E Powers calcolatore meccanico 127 39 cifre 1876-1914 Francois Edouard Anatole Lucas calcolatore meccanico 521 157 cifre 30 gennaio
1952 Raphael M Robinson SWAC
607 183 cifre 30 gennaio 1952
Raphael M Robinson SWAC
1279 386 cifre 25 giugno 1952
Raphael M Robinson SWAC
2203 664 cifre 7 ottobre 1952
Raphael M Robinson SWAC
2281 687 cifre 9 ottobre 1952
Oct 9 Raphael M Robinson SWAC
3217 969 cifre 1957 Hans Riesel BESK 4253 1281 cifre 1961 Alexander Hurwitz e John L
Selfridge IBM 7090
4423 1332 cifre 1961 Alexander Hurwitz e John L Selfridge
IBM 7090
9689 2917 cifre 1963 Donald B Gillies ILLIAC 2 9941 2993 cifre 1963 Donald B Gillies ILLIAC 2 11213 3376 cifre 1963 Donald B Gillies ILLIAC 2 19937 6002 cifre 1971 Bryant Tuckerman IBM 36091
9
valore di p 2p-1 anno autore computer 21701 6533 cifre 1978 Landon Curt Noll e Laura A
Nickel Cyber 174
23209 6987 cifre 1979 Landon Curt Noll Cyber 174 44497 13395 cifre 1979 David Slowinski e Harry L
Nelson Cray 1
86243 25962 cifre 1982 David Slowinski Cray 1 110503 33265 cifre 1988 Walter N Colquitt e Luther
Welsch Jr
132049 39751 cifre 1983 David Slowinski Cray X-MP 216091 65050 cifre 1985 David Slowinski Cray X-MP 756839 227832 cifre 1992 David Slowinski e Paul Gage Cray 2 859433 258716 cifre 1994 David Slowinski e Paul Gage Cray C90 1257787 378632 cifre 1996 David Slowinski e Paul Gage Cray T94 1398269 420921 cifre 1996 Joel Armengaud George
Woltman e GIMPS PC Pentium 90
2976221 895932 cifre 1997 Gordon Spence George Woltman e GIMPS
PC Pentium 100
3021377 909526 cifre 1998 Roland Clarkson Woltman Scott Kurowski e GIMPS
Pentium 200
6972593 2098960 cifre 1999 Nayan Hajratwala Woltman Kurowski e GIMPS
Pentium II 350
13466917 4053946 cifre 2001 Michael Cameron e GIMPS 800 MHz AMD T-Bird PC
20996011 6320430 cifre 2003 Michael Shafer e GIMPS 2 Gh Pentium 4 Dell Dimension PC
24036583 7235733 cifre 2004 Josh Findley e GIMPS 24 GHz Pentium 4 Windows XP PC
25964951 7816230 cifre 2005 Martin Nowak e GIMPS 24 GHz Pentium 4 Windows XP PC
30402457
9152052 cifre
2005 Curtis Cooper Steven Boone CMSU e GIMPS
Lavoro coordinato di 700 computers
GIMPS = Great Internet Mersenne Prime Search (wwwmersenneorg)
Tabella 1 La ricerca dei numeri primi di Mersenne
Unrsquoaltra notevole formula che dagrave luogo a molti numeri primi fu scoperta da Eulero nel 1772 La
formula x2+x+41 fornisce il seguente elenco di numeri primi inserendo tutti i numeri compresi fra 0 e 39
41 43 47 53 61 71 83 97 113 131 151 173 197 223 251 281 313 347 383 421 461 503
547 593 641 691 743 797 853 911 971 1033 1097 1163 1231 1301 1373 1447 1523 1601
Eulero comprese che il processo era destinato a interrompersi a un certo punto Infatti per x=41 si
ha
412+41+41 = 412+2middot41 = 41middot (41+2) = 41middot43
che non egrave primo ma anche per x=40 il numero che si ottiene non egrave primo infatti
402+40+41= 40 middot (40+1)+(40+1)=(40+1) middot (40+1)
Ciononostante Eulero fu molto colpito dalla capacitagrave della sua formula di produrre tanti numeri
primi da domandarsi per quali altri numeri diversi da 41 si sarebbe potuto ottenere un risultato simile
Scoprigrave che si poteva scegliere anche n=2 3 5 11 17 percheacute la formula x2+x+n producesse numeri primi
per ogni valore di x compreso fra 0 e nndash2
10
Possiamo concludere che la ricerca di formule semplici che producano soltanto numeri primi egrave stata
inutile ed egrave ancora meno probabile che conduca a buoni risultati il tentativo di trovare una formula che
produca tutti i numeri primi Lo stesso Eulero nel 1751 scriveva ldquoci sono alcuni misteri che la mente
umana non penetreragrave mai Per convincercene non dobbiamo far altro che gettare unrsquoocchiata alle tavole dei
numeri primi Ci accorgeremo che non vi regna neacute ordine neacute leggerdquo
La svolta di Gauss
Il passo decisivo nella ricerca di una legge da cui dipenda la distribuzione dei numeri primi fu
compiuto quando si rinunciograve agli inutili tentativi di trovare una formula che generasse tutti i numeri primi o
desse il numero esatto di essi contenuti nei primi n numeri interi A compiere la svolta fu Gauss il quale
affrontograve il problema da un altro punto di vista Infatti egli si chiese se era possibile prevedere non quale
fosse la posizione di un numero primo rispetto a quello precedente ma se era possibile prevedere quanti
fossero i numeri primi minori o uguali a un certo numero x Egli introdusse a tale scopo la funzione )(xπ =
numero dei primi minori o uguali a x e poteacute verificare per esempio che 4)10( =π percheacute i numeri primi
minori o uguali a 10 sono 2 3 5 7 e cioegrave 4 e la distanza media tra due numeri primi successivi
nellrsquointervallo tra 1 e 10 egrave 104 uguale a 25 Nella tabella 2 sono riportati alcuni valori della funzione e
della distanza media
Tabella 2 Alcuni valori della fiunzione )(xπ
Osservando tali risultati egli notograve che ogni volta si moltiplica x per 10 si aggiunge 23 al rapporto
xπ(x) almeno per x abbastanza grande Proprio questo legame tra moltiplicazione e addizione (che egrave la
relazione racchiusa in un logaritmo) e il fatto che 23 egrave approssimativamente il valore rappresentato dal
portarono Gauss a ipotizzare che
( )x
x
xlog=
π
Da cui
11
( )( )x
xx
logcongπ
Questa congettura si rivelograve poi vera e oggi egrave nota come teorema dei numeri primi Una notevole
conseguenza del teorema dei numeri primi egrave che ldquola probabilitagrave che un numero intero di x cifre preso a
caso sia primo egrave circa 1log(10x)rdquo Infatti lrsquoespressione
( )( )x
xx
logcongπ
in altre parole significa che nellrsquointervallo tra 1 e x si incontra un primo circa ogni log(x) e cioegrave la
probabilitagrave che nellrsquointervallo dei numeri le x un numero preso a caso sia primo egrave 1log(x) Ad esempio
nellrsquointervallo dei numeri minori di 10 000 000 uno ogni log(10 000 000) egrave primo Essendo
log(10 000 000) = log(107) = 7log(10) asymp 1611hellip ciograve vuol dire che dei numeri minori di 10 000 000 circa 1
su 16 egrave primo e perciograve crsquoegrave circa una probabilitagrave su 16 che un numero di 7 cifre sia primo
Al momento attuale molti sono i problemi non ancora risolti Tra questi ricordiamo
1 la congettura dei primi gemelli esistono infiniti numeri primi p tali che p+2 egrave ancora
primo Ad esempio 3 e 3+2 5 e 5+2 17 e 17+2 29 e 29+2 ecc
2 la congettura di Goldbach ogni intero pari maggiore di 2 puograve essere scritto come somma di
due numeri primi Ad esempio 4 = 2+2 6 = 3+3 8 = 3+5 10 = 5+5 12 = 5+7 ecc
La difficoltagrave fondamentale di tali problemi risiede nel fatto che i numeri primi sono definiti
mediante proprietagrave moltiplicative mentre i problemi in questione coinvolgono proprietagrave additive
Di gran lunga il piugrave importante tra i problemi non risolti egrave quello che va sotto il nome di ipotesi di
Riemann anche percheacute fu proprio la novitagrave del metodo in essa contenuto a far compiere il passo decisivo
per la dimostrazione del teorema dei numeri primi compiuta indipendentemente lrsquouno dallrsquoaltro nel 1896
dai matematici Jacques Hadamard e Charles de la Valleacutee-Poussin
Ricordiamo che lrsquoipotesi di Riemann inserita allrsquoottavo posto nellrsquoelenco dei famosi ventitreacute
problemi irrisolti presentati da David Hilbert al Congresso internazionale dei matematici del 1900 e
lanciati come sfida alla comunitagrave dei matematici del ventesimo secolo egrave ancora rimasto tale cioegrave senza
dimostrazione
Egrave oggi considerato uno dei problemi piugrave difficili del nuovo millennio Nel 2000 il Clay Mathematics
Institute ha offerto un milione di dollari a chi riusciragrave a darne una dimostrazione
Grazie ai calcolatori attualmente egrave stato possibile verificare tali congetture in moltissimi casi Ad
esempio la congettura di Goldbach egrave stata verificata per tutti i pari fino a 100 milioni mentre lrsquoipotesi di
Riemann egrave stata verificata per un miliardo e mezzo di casi ma ciograve non egrave sufficiente per dimostrarne la
veritagrave Ed egrave proprio questo quello che distingue la matematica dalle altre scienze dove una qualsiasi
ipotesi sostenuta da verifiche sperimentali egrave ritenuta valida fincheacute non contraddetta da un caso contrario
mentre in matematica un solo caso contrario serve a dimostrare la falsitagrave dellrsquoipotesi la cui veritagrave per
contro deve essere dimostrata per tutti i casi possibili il che ovviamente puograve avvenire solo
indipendentemente dalle verifiche di casi particolari anche se molti
12
Ed egrave questa una delle peculiaritagrave piugrave belle della matematica Qualsiasi affermazione dimostrata egrave
eterna e immutabile si pensi allrsquoinfinitagrave dei numeri primi ciograve egrave vero per Euclide ma rimane vero ancora
oggi senza possibilitagrave di smentite
Come ebbe a dire il matematico Hermann Hakel ldquoNella maggior parte delle scienze una
generazione demolisce quello che laltra ha costruito e ciograve che uno ha fatto un altro lo disfa Solo nella
matematica ogni generazione aggiunge un nuovo piano alla vecchia strutturardquo
E che ciograve susciti lrsquoidea della bellezza egrave bene sintetizzato dalle parole di Bertrand Russell ldquoLa
matematica vista dalla giusta angolazione non possiede solo la veritagrave ma la suprema bellezza una
bellezza fredda e austera come quella della scultura una bellezza che non fa appello ai nostri sentimenti
piugrave grossolani che non ha gli ornamenti sgargianti della musica o della pittura una bellezza pura e
sublime capace della rigorosa perfezione che egrave propria solo della piugrave grande arterdquo
Anche se non egrave possibile presentare in termini semplici lrsquoipotesi di Riemann in quanto coinvolge
concetti di matematica superiore proviamo a delinearne le linee essenziali
Nel 1737 Eulero introdusse e studiograve una funzione detta funzione ζ (zeta) di Eulero cosigrave definita
sum+infin
=
gtisin++++==1
1 4
1
3
1
2
11
1)(
nxxxx
xRxperdefinitan
xζ
e sempre a Eulero egrave dovuta la seguente identitagrave
( )
1
111
11
17
7
15
5
13
3
12
2 prod
minus=sdot
minussdot
minussdot
minussdot
minussdot
minus=
px
x
x
x
x
x
x
x
x
x
x
x
p
pxζ
dove il prodotto egrave esteso a tutti i numeri primi
Ed egrave proprio questa identitagrave che egrave alla base della notevole importanza assunta dalla funzione ζ nella
teoria dei numeri e in particolare per quanto riguarda la distribuzione dei numeri primi nellrsquoinsieme dei
naturali Infatti a destra di essa appaiono esplicitamente i numeri primi mentre a sinistra compare la
funzione ζ definita indipendentemente da essi
Riemann nel 1859 propose di considerare la funzione ζ come funzione di variabile complessa
cioegrave definita per x numero complesso ed effettuograve il cosiddetto prolungamento analitico di ζ allrsquointero piano
complesso costruendo la nuova funzione ζ oggi nota come funzione zeta di Riemann Egli provograve che gli
zeri della funzione ζ (cioegrave i valori della variabile per cui la funzione restituisce il valore 0) sono x = ndash2
x = ndash4 x = ndash6hellip detti zeri banali di ζ e alcuni numeri complessi (non reali) x con parte reale compresa tra
0 e 1 estremi inclusi Lrsquoipotesi di Riemann afferma che tutti gli zeri non banali di ζ hanno la caratteristica
di avere la parte reale uguale a 21
Dalla validitagrave di questa ipotesi discende una serie enorme di proprietagrave sui numeri primi Ci sono
attualmente centinaia di ldquoquasi teoremirdquo che iniziano con ldquosupponiamo che lrsquoipotesi di Riemann sia
verahelliprdquo Se lrsquoipotesi venisse dimostrata tutti questi ldquoquasi teoremirdquo diventerebbero veri teoremi
13
I test di primalitagrave e la fattorizzazione
Abbiamo fin qui concentrato lrsquoattenzione sul comportamento dei numeri primi ma come egrave possibile
preso un intero a caso x provare se x egrave primo o composto
Il metodo piugrave ovvio consiste nel dividere il numero x per tutti gli interi che lo precedono Infatti se
una qualunque di tali divisioni dagrave resto zero il numero x egrave composto e divisore e quoziente sono suoi
fattori mentre se nessuna di tali divisioni per ciascuno degli interi minori x dagrave resto zero il numero x egrave
primo
In effetti la procedura delle divisioni puograve essere interrotta allrsquointero minore della in quanto se x egrave
composto esso saragrave il prodotto di almeno due fattori per esempio x= F1sdotF2 ed essendo x=x sdot x se
F1gt x F2 lt x Ad esempio 29= 2929 sdot e 529 cong quindi si puograve fermare la procedura quando il
divisore egrave 5 Infatti 292 dagrave resto 1 293 dagrave resto 2 294 dagrave resto 1 295 dagrave resto 4 Si puograve quindi
concludere che 29 egrave primo percheacute se avesse avuto un fattore maggiore di 5 ne avrebbe avuto sicuramente
uno minore di 5 il che non egrave
Ma anche limitando le divisioni alla radice quadrata lrsquoalgoritmo sarebbe comunque inapplicabile
percheacute per giungere a conclusione richiede un tempo che cresce esponenzialmente al crescere del numero
di cifre di n pertanto puograve risultare intollerabilmente lungo anche con gli strumenti di calcolo piugrave veloci
anni secoli piugrave della vita presunta dellrsquoUniverso Ad esempio egrave stato dimostrato che il numero 244 497ndash1
formato da 13 595 cifre egrave primo Se un calcolatore fosse in grado di controllare un milione di divisioni al
secondo e si fermasse alla radice quadrata del numero egrave stato calcolato che gli occorrerebbero 106684 anni
per espletare il suo compito Lrsquoinconveniente deriva dal fatto che il metodo delle divisioni non solo ci dice
se il numero egrave primo o composto ma risolve anche il problema della fattorizzazione di un numero in
quanto nel caso in cui il numero risulta composto ci fornisce i fattori della sua scomposizione
A tuttrsquooggi egrave facile trovare numeri primi grandi o testare la primalitagrave di un numero mentre egrave
difficile fattorizzare un intero che sia il prodotto di due numeri primi grandi Ovviamente i termini ldquofacilerdquo
ldquodifficilerdquo ldquogranderdquo sono relativi alla conoscenza e alla tecnologia disponibili Attualmente sono
considerati ldquograndirdquo numeri di alcune centinaia di cifre mentre ldquofacilerdquo rappresenta un tempo di secondi e
ldquodifficilerdquo di secoli
Lrsquoefficacia dei test di primalitagrave attualmente usati dipende dal fatto che egrave possibile stabilire se un
numero egrave primo senza essere costretti a trovarne i fattori qualora risultasse composto Alcuni metodi usati
sono di tipo probabilistico cioegrave stabiliscono che un intero egrave probabilmente primo con una probabilitagrave di
errore che si puograve rendere piccola quanto si vuole
Il piugrave semplice al tempo stesso velocissimo e potente si basa sul piccolo teorema di Fermat Il
teorema stabilisce che se p egrave un numero primo e a un intero minore di p allora apndasha egrave un multiplo di p cioegrave
egrave divisibile per p
Ad esempio
bull se p=7 e a=2 allora 27ndash2=128ndash2=126=7middot18 cioegrave multiplo di 7
bull se p=7 e a=3 allora 37ndash3=2187ndash3=2184=7middot312 cioegrave multiplo di 7
14
bull se p=7 e a=4 allora 47ndash4=16384ndash4 = 16380 = 7middot2340 cioegrave multiplo di 7
bull se p=5 e a=4 allora 45ndash4=1024ndash4=1020=5middot204 cioegrave multiplo di 5
bull se p=3 e a=4 allora 43ndash4=64ndash4=60=3middot20 cioegrave multiplo di 3
Lrsquoimportanza del teorema sta nel fatto che ci fornisce un metodo per stabilire se un numero egrave primo
o no infatti costruiamo un numero del tipo apndasha verifichiamo se egrave multiplo di p se non lo egrave siamo sicuri
che p non egrave primo Ad esempio vogliamo sapere se 15 egrave primo costruiamo
215ndash2=32768ndash2=32766
32766=15middot2184+6
cioegrave non egrave divisibile per 15 quindi sicuramente 15 egrave composto e infatti 15=3middot5
Ma cosa si puograve dire se invece apndasha egrave divisibile per p Sfortunatamente non possiamo essere sicuri
che p sia primo anche se egrave molto probabile che lo sia
Proviamo 217ndash2=131072ndash2=131070=17middot7710 e infatti 17 egrave primo Provando 2341ndash2 si trova che
esso egrave divisibile per 341 ma 341 non egrave primo essendo 341=11middot31 Sono detti pertanto pseudoprimi i
numeri composti che passano il test Non proviamo a calcolare 2341 percheacute sarebbe un numero
mostruosamente grande fuori dalla nostra portata ma vedremo tra poco come si puograve aggirare lrsquoostacolo
Riassumendo il piccolo teorema di Fermat afferma che egrave vero
1 se p egrave primo e a egrave un intero minore di p allora apndasha egrave divisibile per p
2 se apndasha non egrave divisibile per p allora p non egrave primo
ma se apndasha egrave divisibile per p allora p puograve essere primo ma anche composto ciograve percheacute la divisibilitagrave per p
egrave condizione necessaria ma non sufficiente percheacute p sia primo Concludendo possiamo dire che usando
questo teorema per verificare la primalitagrave di un numero se scopriamo che ap-a non egrave divisibile per p siamo
sicuri che p egrave composto ma se egrave divisibile per p allora p egrave probabilmente primo nel senso che puograve essere
un primo autentico o pseudoprimo
La cosa interessante egrave che la probabilitagrave che un numero composto sia uno pseudoprimo (cioegrave che
superi il test di primalitagrave ma non sia primo come per esempio 341) su una base casuale diminuisce
fortemente allrsquoaumentare del numero Un numero di 1000 cifre composto ha circa una possibilitagrave su 10123
di essere uno pseudoprimo su una base scelta a caso La tabella 3 riporta tali probabilitagrave in funzione del
numero di cifre
Cifre in x Limite superiore per P(x)
Cifre in x Limite superiore per P(x)
Cifre in x
Limite superiore per P(x)
60 00716 80 00000846 100 00000000277
120 528middot10ndash12 150 149middot10ndash17 200 385middot10ndash27
300 58middot10ndash29 400 57middot10ndash42 500 23middot10ndash55
700 18middot10ndash82 1000 12middot10ndash123 2000 86middot10ndash262
5000 76middot10ndash680 10000 16middot10ndash1331 100000 13middot10ndash10584
Tabella 3 Probabilitagrave che un numero composto sia pseudoprimo
Nel 2002 tre ricercatori indiani Manindra Agrawal Neeraj Kayal e Nitin Saxena hanno costruito un
algoritmo denominato AKS (dalle iniziali dei nomi) sempre basato sulla fondamentale proprietagrave enunciata dal
15
piccolo teorema di Fermat ma che risulta deterministico e che riduce in maniera drastica il tempo di calcolo
Lrsquoalgoritmo fornisce una svolta significativa in un settore lungamente atteso e di grande interesse pratico ma
per ora non sembra che possa avere immediata applicazione in quanto molto piugrave lento dei test probabilistici i
quali drsquoaltra parte sono quasi certi per i numeri primi di centinaia di cifre che servono attualmente in
crittografia
Storia della crittografia
La crittografia che letteralmente significa scrittura nascosta nasce dalla necessitagrave di segretezza di alcune
informazioni e pertanto con tale termine intendiamo lo studio dei metodi che consentono la trasmissione sicura
dellrsquoinformazione
Drsquoaltro canto lrsquoesistenza di informazioni segrete genera il desiderio di svelarle e da tale desiderio nasce
la crittoanalisi con cui intendiamo lo studio di metodi che consentono la decifrazione dei messaggi crittografati
La storia della crittografia drsquoaltra parte altro non egrave che la secolare battaglia tra crittografi e crittoanalisti
Infatti ogni sistema crittografico rimane valido fincheacute un crittoanalista non individua un suo punto debole sulla
base del quale riesce a elaborare il sistema di decifrazione
Crittografi e crittoanalisti insieme hanno dato un grande contributo al progresso scientifico e tecnologico
Infatti tutti i metodi della crittografia e della crittoanalisi fanno ricorso a metodi e strumenti di una vasta varietagrave
di scienze come la matematica la linguistica la teoria dellrsquoinformazione la fisica quantistica le quali a loro
volta sono da essi arricchite e stimolate
Lrsquoidea su cui si basa un metodo crittografico consiste nel concordare tra mittente e destinatario che
vogliono scambiarsi un messaggio senza che venga intercettato da terzi una procedura per alterare il testo in
chiaro del messaggio Il destinatario puograve ricavare il testo originale applicando al testo cifrato la procedura
inversa Chi intercetta il messaggio non conoscendo la procedura non puograve ricostruire il messaggio La sicurezza
del metodo sta nella difficoltagrave da parte del crittoanalista di poter ricostruire la procedura dallrsquoanalisi del
messaggio cifrato
Prima dellrsquoera informatica i metodi crittografici erano essenzialmente due per trasposizione o per
sostituzione
Nella trasposizione le lettere sono mutate di posto generando di fatto un anagramma Ma la
trasposizione non puograve essere casuale Infatti nel caso di messaggi brevi non sarebbe sicura in quanto i pochi
caratteri alfabetici che costituiscono il messaggio possono essere combinati in pochi modi diversi per cui
diventa facile ricostruire il messaggio per tentativi Ad esempio la parola ldquomiordquo consta di 3 caratteri alfabetici
esistono al massimo sei sequenze diverse mio moi imo iom omi oim analizzandole tutte e sei egrave facile
ricostruire la sequenza ldquomiordquo Ma al crescere della lunghezza del messaggio cresce mostruosamente anche il
numero delle sequenze infatti un anagramma di una parola di n lettere altro non egrave che una permutazione di n
elementi e si dimostra che il numero totale delle permutazioni di n elementi egrave dato da n (si legga n fattoriale)
uguale al seguente prodotto n(nndash1)(nndash2)(nndash3)hellip(nndash (nndash1)) Pertanto se il messaggio egrave costituito ad esempio da
20 lettere i possibili anagrammi sono 20=20middot19middot18middot17middot16middot15middot14middot13middot12middot11middot10middot9middot8middot7middot6middot5middot4middot3middot2middot1 cioegrave piugrave di 1000
miliardi e anche se si potesse controllare un anagramma al secondo ci vorrebbero piugrave di trentuno secoli per
analizzarli tutti In questo caso la comunicazione risulterebbe sicura essendo impossibile analizzare tutte le
16
possibili sequenze e ricostruire il messaggio ma di fatto egrave inutilizzabile anche dal destinatario percheacute di fronte
allo stesso problema
Per rendere efficace tale metodo egrave necessario che mittente e destinatario si accordino su un criterio di
trasposizione fissato in anticipo e piugrave egrave complicato tale criterio e piugrave egrave sicuro il metodo
Esiste il metodo della trasposizione cosiddetta a inferriata Esso consiste nella trascrizione di un testo
lungo due linee orizzontali una superiore e una inferiore passando da una allrsquoaltra a ogni successivo carattere
alfabetico Finita la trascrizione la seconda fila di caratteri saragrave accodata alla prima per dare origine al testo
cifrato Ad esempio
testo del messaggio incontriamoci stasera alle sette
testo del messaggio cifrato icnraoitsralstenotimccsaealeet
Il destinatario ricostruisce il testo originale applicando la trasposizione inversa
Esistono molti altri tipi di trasposizione per esempio si puograve variare il numero delle file su cui trascrivere
il messaggio oppure si puograve passare da una fila allrsquoaltra ogni due caratteri anzicheacute dopo ogni singolo carattere e
cosigrave via Da osservare che ogni carattere alfabetico mantiene la propria identitagrave ma cambia la posizione
Nella sostituzione ogni carattere alfabetico del messaggio originale viene sostituito con un altro carattere
alfabetico secondo un criterio stabilito In questo caso ogni carattere alfabetico mantiene la posizione ma
cambia la propria identitagrave
Sostanzialmente esso necessita di determinare come primo passo un alfabeto cifrante che egrave ottenuto
rimescolando secondo un criterio lrsquoalfabeto ordinario In questo modo a ogni carattere dellrsquoalfabeto ordinario
corrisponde un carattere dellrsquoalfabeto cifrante Per cifrare il messaggio si sostituisce ogni carattere del messaggio
con il corrispondente carattere dellrsquoalfabeto cifrante Per decifrare il messaggio si applica la procedura inversa
Il primo esempio documentato di cifratura per sostituzione si trova nel De bello gallico di Giulio Cesare
detto anche cifrario di Cesare Qui lrsquoalfabeto cifrante era ottenuto da quello ordinario spostando a destra di tre
posti ogni carattere alfabetico ad esempio per cifrare il messaggio si sostituisce ogni lettera con la
corrispondente dellrsquoalfabeto cifrante (figura 2)
17
Figura 2 Cifrario di Giulio Cesare
Per decifrare si sostituisce ogni lettera del messaggio cifrato utilizzando la corrispondenza inversa
Come si puograve facilmente osservare in questo metodo lrsquoalfabeto cifrante altro non egrave che una
riorganizzazione dellrsquoalfabeto ordinario che si puograve ottenere con un qualsiasi spostamento tra 1 e il numero delle
lettere dellrsquoalfabeto ordinario Per esempio nel caso dellrsquoalfabeto italiano che consta di 21 lettere si possono
effettuare 20 diversi spostamenti e ottenere quindi 20 diversi alfabeti cifranti Essendo lrsquoalfabeto cifrante una
riorganizzazione dellrsquoalfabeto ordinario non egrave detto che questa debba essere ottenuta utilizzando il criterio
dello spostamento ma puograve coincidere con un qualsiasi anagramma dellrsquoalfabeto ordinario Si vede quindi
facilmente come aumentano gli alfabeti cifranti nel nostro caso il loro numero per quanto detto
precedentemente uguaglia il numero delle permutazioni di 21 elementi e cioegrave 21 e cioegrave oltre 50 miliardi di
miliardi
A partire da questo esempio cerchiamo di chiarire in termini generali il significato di metodo
crittografico intendendo con esso un algoritmo che mediante una chiave trasforma un messaggio in chiaro in
un messaggio cifrato o crittogramma
Ad esempio nel metodo descritto sopra lrsquoalgoritmo equivale alla procedura con cui ogni lettera
dellrsquoalfabeto in chiaro egrave sostituita dalla corrispondente lettera dellrsquoalfabeto cifrante la chiave equivale al
particolare alfabeto cifrante scelto per la cifratura o decifrazione di un particolare crittogramma
Inoltre crsquoegrave da sottolineare lrsquoimportanza concettuale della distinzione tra algoritmo e chiave Infatti la sola
conoscenza dellrsquoalgoritmo senza la chiave non permette di decifrare il crittogramma Ed egrave questo uno dei
principi fondamentali della crittografia formulato in modo definitivo nel 1883 dallrsquoolandese Auguste
Kerckhoffs von Nieuwenhof noto anche come legge di Kerckhoffs ldquola sicurezza di un crittosistema non deve
dipendere dal tener celato il crittoalgoritmo La sicurezza dipenderagrave solo dal tener celata la chiaverdquo
Le caratteristiche di un efficace sistema crittografico possono essere riassunte nelle seguenti
1 segretezza della chiave
2 semplicitagrave della chiave (per evitare possibili malintesi o errori al momento dello scambio tra
mittente e destinatario)
3 alto numero di potenziali chiavi tra cui scegliere
18
Come si puograve notare la 2) e la 3) sono collegate tra loro infatti nel sistema descritto sopra si potrebbe
scegliere una chiave piugrave semplice sacrificando il numero di chiavi potenziali
Infatti invece di generare lrsquoalfabeto cifrante da una riorganizzazione casuale dellrsquoalfabeto ordinario lo si
puograve fare a partire da una parola chiave come nel seguente esempio Supponiamo di accordarci sulla parola
chiave lsquolaurarsquo si eliminano eventuali spazi e lettere ripetute quindi la parola chiave diventa lsquolaurrsquo a questo
punto la sequenza l a u r saragrave lrsquoinizio dellrsquoalfabeto cifrante cui seguiranno tutte le altre lettere mancanti in
ordine alfabetico partendo dallrsquoultima lettera della chiave per cui lrsquoalfabeto cifrante che si ottiene saragrave l a u r s t
v z b c d e f g h i m n o p q
I crittosistemi basati sulla sostituzione hanno dominato la scena per tutto il primo millennio della nostra era
fincheacute i crittoanalisti non trovarono il suo punto debole ed elaborarono un metodo per decifrarne i crittogrammi prodotti
La violazione di tali sistemi si basa su unrsquoidea dovuta per prima a crittoanalisti arabi nella quale si
combinano conoscenze di linguistica statistica e matematica nota con il nome di analisi delle frequenze
Essa egrave descritta dallo studioso del IX secolo Abu Yusuf ibn Ishaq al-Kind sopran-nominato il filosofo
degli arabi in una sua monografia dal titolo Sulla decifrazione dei messaggi crittati ritrovata nellrsquoarchivio
ottomano Sulaimaniyyah di Istanbul solo nel 1987 Nel testo si legge
Un modo di svelare un messaggio crittato se conosciamo la lingua dellrsquooriginale consiste nel trovare
un diverso testo chiaro nella stessa lingua abbastanza lungo da poter calcolare la frequenza di ciascuna
lettera
Chiamiamo ldquoprimardquo quella che compare piugrave spesso ldquosecondardquo quella che la segue per frequenza
ldquoterzardquo la successiva e cosigrave via fino a esaurire tutte le lettere del campione di testo chiaro
Esaminiamo poi il testo in cifra che vogliamo interpretare ordinando (in base alla frequenza) anche i
suoi simboli Troviamo il simbolo piugrave comune e rimpiazziamolo con la ldquoprimardquo lettera dellrsquoesempio
chiaro il simbolo che lo segue per frequenza sia rimpiazzato dalla ldquosecondardquo lettera il successivo simbolo
piugrave comune sia rimpiazzato dalla ldquoterzardquo e cosigrave via fino ad aver preso in considerazione tutti i simboli del
crittogramma che intendevamo svelare
Tabella 4 Frequenze delle diverse lettere in italiano
Per superare lrsquoanalisi delle frequenze furono ideati diversi nuovi metodi crittografici tra cui ricordiamo
1 il metodo di sostituzione omofonica
2 il metodo di sostituzione polialfabetica
19
Il metodo di sostituzione omofonica consiste nel sostituire ogni lettera con un numero di simboli per
esempio numeri proporzionale alla sua frequenza Cosigrave ad esempio la lettera a avendo una frequenza di 11 74
viene sostituita da 11 simboli la lettera b con un solo simbolo la lettera c con 4 simboli ecc secondo la tabella 5
Il metodo di sostituzione polialfabetica consiste nellrsquouso di piugrave alfabeti cifranti su unrsquoidea di Leon
Battista Alberti che propose di utilizzarne due Lrsquoalgoritmo consiste nel sostituire la prima lettera del messaggio
in chiaro con la corrispondente del I alfabeto cifrante la seconda lettera con la corrispondente del II alfabeto
cifrante la terza con la corrispondente del I e cosigrave via passando alternativamente dal I alfabeto al secondo Come
nellrsquoesempio della figura 3
Tabella 5 Corrispondenza lettere e simboli nella sostituzione omofonica
Figura 3 Il metodo di sostituzione polialfabetica
Su tale idea si basa il metodo di Blaise de Vigenegravere diplomatico francese nato nel 1523 il quale utilizza
tanti alfabeti cifranti quante sono le lettere dellrsquoalfabeto in chiaro ad esempio nellrsquoalfabeto italiano che consta
di 21 lettere utilizza 21 alfabeti cifranti
Il primo passo consiste nel costruire la tavola di Vigenegravere in cui nella prima riga egrave riportato lrsquoalfabeto in
chiaro e in ognuna delle 21 righe successive egrave riportato un alfabeto cifrante spostato di una lettera rispetto a
quello della riga precedente cosigrave nella riga 1 egrave riportato lrsquoalfabeto spostato di una lettera nella riga 2 quello
spostato di due lettere nella riga 3 quello spostato di tre fino alla riga 20 in cui egrave riportato quello spostato di 20
lettere (figura 4)
20
Figura 4 La tavola di Vigenegravere
Il secondo passo consiste nello scegliere una parola chiave per esempio lsquoverorsquo Pertanto il messaggio in
chiaro ldquonon andarerdquo verrebbe cifrato come nella figura 5
La differenza sostanziale tra la cifratura omofonica e quella polialfabetica egrave che in quella omofonica a
ogni lettera corrispondono piugrave simboli ma ogni simbolo egrave il corrispondente di una sola lettera cioegrave egrave una
corrispondenza 1rarr m che invertita diventa mrarr 1 in quella polialfabetica a ogni lettera corrispondono piugrave
simboli e anche ogni simbolo egrave il corrispondente di piugrave lettere cioegrave mrarr m che rimane tale anche invertendola
Il vantaggio della cifratura polialfabetica egrave pertanto la sua resistenza allrsquoanalisi delle frequenze Oltre ad
ammettere un enorme numero di chiavi infatti si puograve scegliere qualunque parola del dizionario qualunque
combinazione di parole si puograve perfino ricorrere a neologismi rendendo impossibile il controllo di tutte le chiavi
possibili Ed ecco percheacute egrave ritenuta piugrave affidabile e non ha mai smesso di essere usata
Figura 5 Cifratura polialfabetica del messaggio ldquonon andarerdquo
21
Oggi sono noti tutti i punti deboli del sistema di Vigenegravere ed esistono vari procedimenti per decifrare i
crittogrammi generati da tale sistema che sfruttano ad esempio la modularitagrave nel ripetere la chiave o
osservazioni sulle ripetizioni del testo cifrato Ci sono testimonianze storiche che uno di tali procedimenti sia
stato ideato da Sir Charles Babbage famoso per aver progettato e mai realizzato la macchina alle differenze
progenitrice degli odierni calcolatori La prima descrizione resa pubblica del metodo perograve egrave del 1863 portata a
compimento dallrsquoufficiale prussiano F W Kasiski
Unrsquoosservazione decisiva fu che le insidie del metodo di Babbage potevano essere evitate utilizzando
nella cifratura di Vigenegravere una chiave molto lunga e fatta da lettere che si succedono in modo casuale se un
messaggio cifrato non presenta delle ripetizioni se non egrave possibile tentare di indovinare la chiave cadono tutti
gli appigli necessari per effettuare con successo la crittoanalisi
Tale osservazione fu ulteriormente sviluppata da G S Vernam che nel 1926 introdusse lrsquoidea di usare
una chiave casuale lunga quanto il messaggio stesso
Oggi sappiamo grazie agli studi di Claude Shannon del 1949 che tale metodo puograve definirsi
ldquoteoricamente sicurordquo
In pratica perograve ciograve comporta la difficoltagrave di costruire lunghe stringhe di lettere assolutamente casuali e di
scambiarsi segretamente e continuamente queste chiavi In sostanza risulta impraticabile per ogni messaggio
scambiato in modo sicuro egrave necessario prima trasmettere in modo sicuro il messaggio contenente la chiave
I metodi usati per buona parte del Novecento sono delle rielaborazioni sempre piugrave complesse delle idee
descritte finora ottenute anche con la costruzione di dispositivi per la meccanizzazione delle procedure di
cifratura e decifratura Un esempio tra i piugrave conosciuti egrave la macchina Enigma usata dai tedeschi durante la
Seconda guerra mondiale inventata dallrsquoingegnere Arthur Scherbius Enigma consisteva di diversi ingegnosi
elementi combinati in un potente e sofisticato dispositivo per la produzione di scritture segrete In particolare ma
macchina aveva tre componenti collegati da fili elettrici una tastiera per immettere le lettere del testo chiaro
unrsquounitagrave scambiatrice che cifra la lettera trasformandola nel corrispondente elemento del crittogramma e un
visore con varie lampadine che accendendosi indicano la lettera da inserire nel crittogramma
Lo sforzo per violare questa cifratura richiese anni di lavoro e fu portato a compimento dalla Scuola
Inglese Governativa di Codici e Cifre di Bletchley Park di cui faceva parte Alan M Turing noto oggi ai piugrave per
i suoi studi sullrsquointelligenza meccanica
La crittografia nellrsquoera dellrsquoinformatica
Nel 1945 fu realizzato ENIAC (Electronic Numerical Integrator And Calculator) unrsquoapparecchiatura
contenente 18 000 valvole elettroniche capace di effettuare 5000 calcoli al secondo considerato il capostipite
dei moderni calcolatori
Dopo il 1945 fu lrsquoinformatica a fare da protagonista nella battaglia tra crittografi e crittoanalisti operando
una decisiva svolta nelle metodologie di entrambi Infatti i metodi precedenti lrsquoera dellrsquoinformatica basavano la
propria sicurezza sullrsquoenorme numero di chiavi disponibili e sulla loro lunghezza ma che viene messa in crisi
dalla crescente potenza di calcolo dei computer Un computer molto potente infatti potrebbe individuare quella
giusta in pochi minuti anche nel caso di un milione di chiavi da esaminare
Tutti i metodi crittografici esaminati finora necessitano di
22
1 un algoritmo generale di cifratura G
2 di una chiave K che deve rimanere segreta
3 di un algoritmo di decifrazione H=Gndash1 (inverso di G)
e agiscono secondo il seguente schema
il messaggio in chiaro M tramite lrsquoalgoritmo G e la chiave K viene cifrato in MC questrsquoultimo tramite
lrsquoalgoritmo H e la stessa chiave K viene decifrato in M (figura 6)
Figura 6 Schema di metodi crittografici
La sicurezza di tali sistemi risiede interamente nella segretezza delle chiavi Ne segue che per distribuire
agli utenti le chiavi egrave necessario ricorrere a canali sicuri
Gli svantaggi che ne derivano sono essenzialmente
1 difficoltagrave nella distribuzione delle chiavi agli utenti
2 mancata autenticazione dei messaggi mittente e destinatario condividono la stessa chiave
pertanto non crsquoegrave modo di impedire che il destinatario si invii messaggi che poi sembrino
provenienti dal mittente Si pensi quali problemi possono provocare simili falsificazioni nella
posta elettronica o nei sistemi bancari elettronici
La svolta avvenne nel 1976 a opera di Diffie e Hellmann che proposero un metodo detto a chiave
pubblica il quale non necessita di uno scambio preventivo delle chiavi segrete Lrsquodea egrave chiarita dal seguente
esempio noto come esempio del doppio lucchetto
Supponiamo di avere due utenti Mitt e Dest e Mitt voglia spedire un messaggio segreto a Dest
1 Mitt mette il messaggio in una scatola che chiude con il proprio lucchetto LMitt (di cui solo lui ha
la chiave) e spedisce la scatola a Dest
2 Dest ricevuta la scatola aggiunge un proprio lucchetto LDest (di cui solo lui ha la chiave) e
rispedisce la scatola a Mitt
3 Mitt ricevuta la scatola con il doppio lucchetto toglie il lucchetto LMitt e rispedisce la scatola a
Dest
4 Dest ricevuta la scatola puograve togliere il lucchetto LDest e leggere il messaggio di Mitt
Il problema della distribuzione delle chiavi sembra risolto percheacute lo schema a doppia chiave non richiede
la condivisione delle stesse Tuttavia la realizzazione pratica di un tale sistema si scontra con un altro problema
quello riguardante lrsquoordine in cui cifrature e decifrature sono eseguite In altre parole in un sistema crittografico
egrave essenziale lrsquoordine con cui avvengono le rispettive cifrature e decifrature in quanto la cifratura eseguita per
23
ultimo andrebbe decifrata per prima (egrave un porsquo come quando la mattina infiliamo prima le calze e poi le scarpe
ma alla sera togliamo prima le scarpe e poi le calze)
Lrsquoesempio del doppio lucchetto in cui ciograve non avviene sembra tuttavia funzionare come idea percheacute ai
fini dellrsquoapertura della scatola non ha importanza lrsquoordine di rimozione dei lucchetti
Anche se il trucco dei due lucchetti non sembra immediatamente applicabile tuttavia fu il giusto punto di
partenza per la realizzazione di un sistema crittografico che aggira lrsquoostacolo della distribuzione delle chiavi
Infatti lrsquoidea egrave che mittente e destinatario generano ciascuno due chiavi distinte una chiave di cifratura E
(da utilizzare nellrsquoalgoritmo di cifratura) e una chiave di decifrazione D (da utilizzare nellrsquoalgoritmo di
decifrazione) Le chiavi sono correlate nel senso che servono per effettuare operazioni inverse (figura 7)
Figura 7 Le chiavi correlate per effettuare operazioni invese
Il trucco consiste nellrsquoimpossibilitagrave di poter derivare la chiave D dalla chiave E mediante algoritmi di
calcolo (figura 8)
Ogni utente puograve rendere pubblica la propria chiave di cifratura E indicandola magari sullrsquoelenco
telefonico senza compromettere la propria chiave di decifrazione che rimane segreta di pubblico dominio sono
anche gli algoritmi di cifratura G e decifrazione H
Figura 8 Inapplicabilitagrave del metodo del doppio lucchetto
Pertanto lrsquoesempio del doppio lucchetto viene cosigrave interpretato
1 il destinatario pubblica la chiave di cifratura E e mantiene segreta la chiave di decifrazione D
2 il mittente applica GE al messaggio M trasformandolo nel messaggio cifrato MC cioegrave
GE(M)=MC che spedisce al destinatario
3 il destinatario applica HD al messaggio cifrato MC riottenendo M cioegrave HD(MC)=M
24
La sicurezza di un tale sistema si fonda sulla difficoltagrave di poter
1 ritrovare il testo cifrato provando ad applicare lrsquoalgoritmo GE che egrave pubblico ad ogni possibile
testo in chiaro il cui numero pur essendo enorme egrave comunque finito
2 ricavare lrsquoalgoritmo HD da GE
in quanto entrambe le tecniche sono computazionalmente inattuabili nel senso che richiedono un tempo
di calcolo di lunghezza al di fuori di ogni possibile considerazione anche per i piugrave potenti calcolatori
Per descrivere tali algoritmi sono necessari alcuni concetti matematici che andiamo a illustrare
Figura 9 Schema di cifrario a chiave pubblica
Lrsquoaritmetica modulare
Lrsquoaritmetica modulare la cui introduzione egrave dovuta a Gauss costituisce un sistema di calcolo con
importanti applicazioni nei test di primalitagrave e nei metodi che stanno alla base della sicurezza delle comunicazioni
elettroniche Con essa infatti si hanno i seguenti vantaggi 1) si riduce lo spazio dei numeri su cui gli algoritmi
sono chiamati ad operare e quindi si aumenta la velocitagrave di calcolo 2) si riesce a rendere difficili alcuni problemi
computazionali che sono semplici (o addirittura banali) nellrsquoalgebra ordinaria al fine di aumentare la sicurezza
nelle comunicazioni Lrsquoidea egrave semplice ma potente Forse non lo sappiamo ma usiamo spesso laritmetica
modulare Potremmo chiamarla aritmetica dellorologio
Infatti pensiamo ad un normale orologio con 24 ore Se sono le 15 ed un amico ci comunica che saragrave a
casa nostra tra 5 ore sappiamo che egli verragrave alle 20 infatti 15+5=20 Ma se sono le 23 e dobbiamo partire fra 7
ore certamente non diciamo che la partenza saragrave alle 30 anche se 23+7=30 Sappiamo che dovremo partire alle
6 Allo stesso modo se sono le 20 che ora saragrave tra 14 ore Non diremo 34 anche se 20+14=34 ma diremo che
sono le 10 Come si spiega tutto ciograve
Immaginiamo di segnare sul quadrante dellrsquoorologio 24 ore Se la lancetta segna le 23 aggiungere 7 ore
significa spostarsi di 7 posti fino ad arrivare alle 6 Si giunge allo stesso risultato calcolando 23+7=30 ed
osservando che 30=1sdot24+6 o che egrave lo stesso 3024 =1 con resto 6 che significa che 30 lo si ottiene facendo fare
alla lancetta un giro completo piugrave 6
25
Se la lancetta segna le 20 e aggiungiamo 14 ore lrsquoorologio segneragrave le 10 percheacute 20+14=34 ma 3424= 1
con resto 10 per cui 34 lo si ottiene percorrendo un giro completo piugrave 10
Proviamo con il normale orologio a 12 ore I numeri che vediamo sul quadrante sono 0 1 2 3 4 5 6 7
8 9 10 11 Il numero 12 non compare percheacute a partire da 0 trascorse 12 ore torniamo di nuovo a 0 Questa
volta per fare un giro completo occorrono 12 ore Pertanto se sono le 7 che ore saranno tra 24 ore Saranno
ancora le 7 percheacute 7+24=31 ma 3112 = 2 con resto 7 cioegrave si compiono 2 giri completi piugrave 7 se sono le 8 tra 6
ore saranno le 2 percheacute 8+6=14 ma 1412=1 con resto 2 Dagli esempi dovrebbe risultare chiaro allora che ciograve
che contano non sono i risultati delle somme ma i loro resti nelle divisioni per il numero delle ore segnate sul
quadrante dellrsquoorologio
La stessa cosa succede con i giorni della settimana se pensiamo a un orologio con 7 ore sul quadrante
Facciamo corrispondere ai giorni della settimana i numeri da 0 a 6 (figura 10)
domenica Lunedigrave Martedigrave Mercoledigrave Giovedigrave Venerdigrave Sabato darr darr darr darr darr darr darr 0 1 2 3 4 5 6
Figura 10 Corrispondenza dei giorni della settimana con i numeri da 0 a 6
Se per esempio oggi egrave venerdigrave che giorno saragrave tra 12 giorni
Dovremo calcolare 5+12=17 ma i giorni si ripetono ogni 7 pertanto osservando che 177 =2 con resto 3
possiamo concludere che a partire da 5 e aggiungendo 12 si compiono 2 giri completi piugrave 3 ed essendo 3 il
numero corrispondente a mercoledigrave concludiamo che saragrave mercoledigrave Facciamo un altro esempio se oggi egrave
lunedigrave (1) che giorno saragrave tra 20 giorni Calcoliamo 1+20=21 217= 3 con resto 0 quindi saragrave domenica
Il numero n delle ore sullrsquoorologio costituisce quello che si chiama il modulo e individua lrsquoaritmetica di
modulo n in cui lrsquoinsieme dei numeri con i quali si opera indicato con Zn egrave lrsquoinsieme dei possibili resti della
divisione per n e cioegrave Zn=0 1 2 3 hellip nndash1e le operazioni si eseguono con le regole illustrate negli esempi
precedenti
Lrsquoesempio dellrsquoorologio a 24 ore costituisce la cosiddetta aritmetica finita di modulo 24 in essa Z24=0
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 essendo questi ultimi i possibili resti
della divisione per 24 Lrsquoorologio a 12 ore costituisce lrsquoaritmetica finita di modulo 12 in essa Z12=0 1 2 3 4
5 6 7 8 9 10 11 essendo questi ultimi i possibili resti della divisione per 12 Lrsquoesempio dei giorni della
settimana egrave lrsquoaritmetica finita di modulo 7 in cui Z7=0 1 2 3 4 5 6 essendo questi ultimi i possibili resti
della divisione per 7 Riassumiamo costruendo unrsquoaritmetica finita di modulo 4 I possibili resti della divisione
per 4 sono 0 1 2 3 quindi Z4=0123 Lrsquoaddizione e la moltiplicazione in Z4 si esegue come negli esempi
della tabella 6
26
operazioni indicate
Risultato nellrsquoaritmetica ordinaria
Risultato nellrsquoaritmetica modulo 4
2+2 4 0 percheacute 44=1 con resto 0
3+2 5 1 percheacute 54=1 con resto 1
2+1 3 3 percheacute 34=0 con resto 3
3sdot3 9 1 percheacute 94=2 con resto 1
3sdot2 6 2 percheacute 64=1 con resto 2
2sdot2 4 0 percheacute 44=1 con resto 0
Tabella 6 Addizione e moltiplicazione nellrsquoaritmetica finita di modulo 4
Si possono costruire le tavole dellrsquoaddizione e della moltiplicazione dellrsquoaritmetica modulo 4 che costituiscono
le tabelline di questa aritmetica sulla base delle quali si esegue qualsiasi addizione e moltiplicazione modulo 4
Nella tabella 7 sono spiegate le tabelline dellrsquoaritmetica in modulo 4
Tabella 7 Tavole dellrsquoaddizione e della moltiplicazione dellrsquoaritmetica modulo 4
Infine per indicare che due numeri a e b divisi per n danno lo stesso resto si usano le seguenti notazioni
tutte equivalenti tra loro
a=b mod n andashb=0 mod 4 a equiv b (mod n) che si legge a egrave congruo b modulo 4
Esempio
26=12 mod 7 egrave la stessa cosa di
26ndash12=0 mod 7 che egrave la stessa cosa di
26 equiv 12 (mod 7) e tutte e tre stanno a indicare che 26 e 12 divisi per 7 danno lo stesso resto che egrave 5 e
pertanto sono tutti equivalenti a 5
Facciamo vedere come sfruttare lrsquoaritmetica modulare per calcolare potenze come 2341 (figura 11) Il
metodo si basa sulla proprietagrave che il resto del quadrato di un numero a per un dato modulo n egrave uguale al
quadrato del resto dello stesso numero a per lo stesso modulo n cioegrave a2 mod n =(a mod n)2
+ 0 1 2 3
0 0 1 2 3
1 1 2 3 0
2 2 3 0 1
3 3 0 1 2
x 0 1 2 3
0 0 0 0 0
1 0 1 2 3
2 0 2 0 2
3 0 3 2 1
27
Figura 11 Il metodo per calcolare 2341
La funzione di Eulero
Per ogni intero ngt1 si definisce la funzione di Eulero = numero di interi minori di n e primi con esso Ad
esempio
bull ( ) 45 =φ percheacute gli interi minori di 5 sono 1 2 3 4 ed essi sono tutti primi con n
bull ( ) 26 =φ percheacute gli interi minori di 6 sono 1 2 3 4 5 e fra essi solo 1 e 5 sono primi con 6
bull ( ) 67 =φ percheacute gli interi minori di 7 sono 1 2 3 4 5 6 ed essi sono tutti primi con 7
bull ( ) 412 =φ percheacute gli interi minori di 12 sono 1 2 3 4 5 6 7 8 9 10 11 e fra essi solo 1 5 7
11 sono primi con 12
Se si conosce la scomposizione in fattori del numero n il seguente teorema ci fornisce un metodo per
calcolare Infatti esso afferma che per ogni ngt1 non primo ( )
minussdotsdot
minussdot
minussdotnppp
n=nφ 11
11
11
21
dove
p1 p2 hellip pn sono i fattori primi di n presi senza molteplicitagrave
22 mod 341=4
24=(22)2=(22 mod 341)2=42=16mod341=16
28=(24)2=(16)2=256mod341=256
216= (28)2=(256)2=65536mod341=64
232=(216)2=(64)2=4096mod341=4
264=(232)2=42=16mod341=16
2128=(264)2=(16)2=256mod341=256
2256=(2128)2=(256)2=65536mod341=64
2341=2(256+64+16+4+1) 2256 264 216 24 21 x x x x
64 1
1024 mod 341
= 1 x 64
64 x 16
1024 mod 341
1 x 2 =
=
x
28
Ad esempio
essendo 12 = 3sdot2sdot2 ( ) 42
1
3
212
2
11
3
111212 ===φ sdotsdot
minussdot
minussdot
essendo 6=2sdot3 ( ) 22
1
3
26
2
11
3
1166 ===φ sdotsdot
minussdot
minussdot
se n=psdotq ( ) ( ) ( )11111
11
1 minussdotminusminussdotminussdot
minussdot
minussdot qp=q
q
p
pn=
qpn=nφ
Ovviamente se n egrave un numero primo = nndash1
Vale inoltre il seguente teorema di Eulero per ngt1 e per ogni altn e primo con n si ha
Ad esempio per n=6 ( ) 26 =φ infatti i primi con 6 sono 1 e 5 per il teorema di Eulero si ha
2mod1255
2mod1112
2
equiv=
equiv=
per n=5 ( ) 45 =φ e i primi con 5 sono 1 2 3 4 e per il teorema di Eulero si ha
5mod12564
5mod1813
5mod1162
5mod111
4
4
4
4
equiv=
equiv=
equiv=
equiv=
Si puograve notare come nel caso in cui n egrave un numero primo si ritrova il piccolo teorema di Fermat
Infatti per n primo ( )nφ = nndash1 e per il teorema di Eulero per ogni altn e primo con n Ricordiamo infatti
che il piccolo teorema di Fermat afferma che se n egrave un numero primo e a un intero minore di n allora egrave
divisibile per n che con il linguaggio dellrsquoaritmetica modulare diventa che puograve essere riscritto e se a egrave primo
con n allora egrave che egrave equivalente a
Infine si prova che per ogni altn e primo con esso esiste lrsquoinverso di a e esso egrave dato da ( ) 1minusnaφ Infatti
( ) ( ) na=aa nφnφ1mod1 equivsdot minus per il teorema di Eulero Si ricorda che lrsquoinverso di un numero a egrave quel numero che
moltiplicato per a dagrave 1 indicato convenzionalmente con andash1
Ad esempio per n=5 i primi con 5 sono 1 2 3 4 e per ognuno di questi esiste lrsquoinverso infatti
bull lrsquoinverso di 1 egrave ( ) 1mod51111 31415 equivminusminus ===φ
e infatti
bull lrsquoinverso di 2 egrave ( ) 3mod58222 31415 equivminusminus ===φ
e infatti
bull lrsquoinverso di 3 egrave ( ) 2mod527333 31415 equivminusminus ===φ
e infatti
bull lrsquoinverso di 4 egrave ( ) 4mod564444 31415 equivminusminus ===φ
Le funzioni unidirezionali
Chiamiamo funzione da un insieme A a un insieme B qualunque procedura che associa a ogni elemento
di un insieme A (detto dominio) uno e un solo elemento di un insieme B (detto condominio) In simboli f
A rarr B Se poi indichiamo con x il generico elemento dellrsquoinsieme A e con y il generico elemento dellrsquoinsieme B
la f indica la procedura che ad ogni xisinA associa un yisinB e cioegrave y=f(x) ad esempio ldquofare il doppio dihelliprdquo
29
prendendo come dominio e codominio lrsquoinsieme dei numeri interi egrave in questo senso una funzione percheacute dato
ad esempio il numero 3 lo trasforma nel numero 6 come 5 lo trasforma in 10 e cosigrave via
Molte funzioni matematiche sono cosiddette bidirezionali nel senso che egrave facile dato un determinato x
generare il corrispondente y ma egrave altrettanto facile invertire la funzione cioegrave ritrovare lrsquoelemento x originario a
partire dal suo corrispondente
Facciamo qualche esempio
bull funzione xrarr fare il doppiorarr 2sdotx= y 3rarr fare il doppiorarr 2sdot3 = 6
funzione inversa y=2sdotx rarr fare la metagraverarr x 6=2sdot3 rarr fare la metagraverarr 3
bull funzione xrarr fare il quadruplorarr 4sdotxrarr aggiungere 1rarr sdoty=4sdotx +1
5rarr fare il quadruplorarr 4sdot5rarr aggiungere 1rarr 4sdot5 +1=21
funzione inversa y=4sdotx +1rarr sottrarre 1rarr 4sdot xrarr dividere per 4rarr x
21=4sdot5 +1rarr sottrarre 1rarr 4sdot 5rarr dividere per 4rarr 5
Le funzioni unidirezionali sono invece quelle funzioni facilmente calcolabili ma che non si possono invertire
Le funzioni cosiddette pseudounidirezionali (dette anche funzioni trappola a molla segreta) sono invece
quelle funzioni facilmente calcolabili ma che non altrettanto facilmente si possono invertire a meno che non si
conoscano alcune informazioni (la molla segreta) utilizzate nella loro costruzione
Lrsquoaritmetica modulare gioca un ruolo determinante in questo caso infatti permette di trasformare
funzioni bidirezionali in funzioni pseudounidirezionali
Facciamo lrsquoesempio della funzione ldquofare il quadruplordquo in simboli f(x)=4sdotx Egrave facilmente calcolabile
percheacute dato x per ottenere f(x) basta moltiplicare per 4 ma egrave altrettanto facile calcolare la sua inversa percheacute
dato f(x) basta dividere per 4 per ottenere lrsquooriginario x Ma anche se non avessimo la procedura inversa di
dividere per 4 sarebbe facile ritrovare lrsquoelemento originario anche procedendo per tentativi ed eliminazione
infatti se per esempio f(x) =20 si puograve tentare x=3 in tal caso f(x)=12 troppo piccolo quindi x deve essere
maggiore di 3 Si puograve allora pensare a 6 ma f(x)=24 troppo grande quindi x deve essere minore di 6 e cosigrave via
Vediamo cosa accade se calcoliamo utilizzando una aritmetica modulare Per esempio consideriamo la
stessa funzione f(x)=4sdotx in una aritmetica modulo 7 Possiamo osservare che la funzione non si comporta piugrave in
modo regolare come prima per accorgersene basta costruire una tabella (tabella 8)
x 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
f(x)=4sdotx 4 8 12 16 20 24 28 32 36 40 44 48 52 56 60
f(x)=4sdotmod 7 4 1 5 2 6 3 0 4 1 5 2 6 3 0 4
Tabella 8 La funzione f(x)=4sdotx in una aritmetica modulo 7
Anche in questa semplice situazione egrave chiaro che egrave piugrave complicato invertire la funzione e pertanto i valori
di x sono molto meglio protetti Si puograve fare anche lrsquoesempio della funzione esponenziale f(x)=3 x (tabella 9)
Tabella 9 La funzione f(x)=3 x in aritmetica modulo 11
x 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
f(x)=x3 1 8 27 64 125 216 343 512 729 1000 hellip hellip hellip hellip hellip
f(x)=x3 mod 11 1 8 5 9 4 7 2 6 3 10 hellip hellip hellip hellip hellip
30
Il cifrario a chiave pubblica RSA
Uno dei piugrave noti sistemi crittografici a chiave pubblica che sfrutta le idee precedentemente descritte egrave il
metodo RSA proposto dai matematici R L Rivest A Shamir e L Adlemann nel 1978 Esso risolve il problema
dello scambio delle chiavi in quanto queste ultime sono conosciute solamente ai rispettivi proprietari che non le
hanno preventivamente concordate e scambiate
Illustriamo schematicamente come i due utenti Mitt e Dest possano scambiarsi un messaggio segreto
utilizzando il metodo RSA Entrambi Mitt e Dest indipendentemente lrsquouno dallrsquoaltro poi
1 scelgono in modo casuale due numeri primi p q grandi (di 200-300 cifre in base 10)
2 calcolano N = psdotq e Φ(N) = (pndash1)sdot(qndash1)
3 scelgono un intero eltΦ(N) e primo con Φ(N) tale numero e saragrave la chiave pubblica
4 calcolano il numero d inverso di e mod Φ(N) tale cioegrave che esdotdequiv 1mod Φ(N) tale numero d saragrave
la chiave privata
5 rendono pubblici i numeri N ed e
Mitt per spedire un messaggio a Dest compie le seguenti operazioni
1 codifica il messaggio in un modo standard usando i numeri lt N
2 trasforma ogni numero M di tale codifica in Me (mod N) e lo spedisce a Dest
per decodificare il messaggio ricevuto Me Dest calcola (Me)d =Mesdotd =Mndash1=M (modN) riottenendo il messaggio
originale
Figura 12 Schema di cifrario con metodo RSA
31
Figura 13 Esempio di applicazione di metodi RSA
In che cosa consiste la sicurezza del metodo Da quanto esposto si osserva che per decodificare il
messaggio bisogna
1 conoscere d (chiave segreta)
2 essendo d lrsquoinverso di e nellrsquoaritmetica mod Φ(N) essendo e noto egrave necessario conoscere Φ(N)
3 ma noto N per calcolare Φ(N) egrave necessario conoscere i fattori primi di N cioegrave egrave necessario fattorizzare
N che egrave un problema computazionalmente difficile per quanto osservato in precedenza
Anche se non egrave stato dimostrato che non si possa rompere il codice in altro modo e cioegrave senza conoscere Φ(N) e i
fattori di N a tuttrsquooggi si puograve affermare che la sicurezza del metodo dipende essenzialmente dai seguenti fatti
Per codificare il messaggio bisogna saper costruire dei numeri primi grandi e tale operazione egrave
computazionalmente veloce si puograve infatti dimostrare che la complessitagrave computazionale di opportuni test di
primalitagrave per stabilire se un numero n egrave primo utilizzando il linguaggio di quel ramo della matematica nota
come teoria della complessitagrave egrave ldquoquasi-polinomialerdquo
Per violare il sistema bisogna saper fattorizzare interi grandi ottenuti come prodotto di due primi tale
problema egrave computazionalmente ldquolentordquo cioegrave con il linguaggio della teoria della complessitagrave appartiene alla
classe dei problemi non polinomiali Tale marcata differenza tra la velocitagrave di esecuzione delle operazioni di
costruzione di numeri primi grandi e di fattorizzazione di interi grandi garantisce la sicurezza del metodo
almeno per un tempo sufficientemente lungo Ad esempio con la tecnologia attuale lrsquooperazione di
fattorizzazione di un intero di 140 cifre in base 10 prodotto di due numeri primi casuali calcolati in pochi
secondi su un computer disponibile in commercio richiede utilizzando vari supercomputers operanti
parallelamente circa un mese
La RSA Security Inc gestisce una sfida a livello mondiale ove vengono premiati coloro che fattorizzano
gli interi proposti da loro in una particolare lista Ad esempio il 3 dicembre del 2003 egrave stato fattorizzato
32
rsa576 =
188198812920607963838697239461650439807163563379417382700763356422988859715234
665485319060606504743045317388011303396716199692321205734031879550656996221305
168759307650257059
un numero di 174 cifre decimali prodotto di due primi di 87 cifre
p =
398075086424064937397125500550386491199064362342526708406385189575946388957261
768583317
q =
472772146107435302536223071973048224632914695302097116459852171130520711256363
590397527
Le chiavi attualmente utilizzate dallRSA sono a 309 cifre decimali
La firma digitale
Consideriamo al solito un mittente che deve inviare a un destinatario un messaggio m La codifica di m
con il metodo descritto assicura lrsquoautenticitagrave del messaggio ma non fornisce alcuna sicurezza sulla sua
paternitagrave Infatti il messaggio m pur essendo autentico potrebbe essere stato inviato da qualcuno che si spaccia
per il mittente Questa egrave unimportantissima questione particolarmente nella trasmissione di messaggi che oltre
a dover essere segreti devono garantire la loro origine
Si dovrebbe quindi disporre di un analogo della firma manuale detta appunto firma digitale La firma
digitale deve allora essere progettata in modo da possedere le stesse caratteristiche di una firma manuale e cioegrave
lrsquoautenticitagrave la non falsificabilitagrave e lrsquoimpossibiltagrave di essere riutilizzata Facciamo vedere come lo stesso metodo
RSA puograve essere utilizzato per progettare una firma digitale
La situazione egrave la seguente il mittente (di seguito indicato con Mitt) invia un messaggio m con la firma
F al destinatario (di seguito indicato con Dest) Siano a b rispettivamente le chiavi pubblica e segreta di MITT
siano e d rispettivamente le chiavi pubblica e segreta di DEST
La procedura per apporre la firma digitale F al messaggio m egrave illustrata nei seguenti passi riassunti nel
grafico della figura 14
1 Mitt cripta la firma F (cioegrave i suoi dati identificativi) usando la propria chiave segreta (b)
ottenendo Fb
2 il messaggio m con la firma F criptata viene ulteriormente criptato con la chiave pubblica di
Dest (e) ottenendo (m Fb)e
3 Dest decodifica il messaggio con la sua chiave segreta (d) ottenendo
((m Fb)e)d = (me F(be)) d =m(e d)F(be d) = mFb
in cui la firma di Mitt egrave ancora criptata
4 Dest decodifica la firma di Mitt con la chiave pubblica di Mitt (a) ottenendo
(Fb)a = F(ba) = F
33
Grafico firma digitale
Mitt
Dest
pubblica
Fb
e dpubblica
a
((Fb)e)d=(Fb)ed=(Fb)1=Fb
(Fb)a=(F)ba=(F)1=F
ab de
(Fb)e
codifica
codificadecodifica
decodifica
1
2
3
4
5
6
7
8
segreta
b
segreta
Figura 14 Grafico firma digitale
Bibliografia
Thomas Beth Comunicazioni e sicurezza su Internet in ldquoLe Scienzerdquo n 330 febbraio 1996
Brian Butterworth Intelligenza matematica Vincere la paura dei numeri scoprendo le doti innate della mente
Rizzoli Milano 1999
John H Conway Richard K Guy Il libro dei numeri Hoepli Milano 2003
Richard Courant Herbert Robbins Che cosrsquoegrave la matematica Boringhieri Torino 1971
Philip J Davis Il mondo dei grandi numeri Zanichelli Bologna 1973
Keith Devlin Dove va la matematica Bollati Boringhieri Torino 1994
Jean Dieudonneacute Lrsquoarte dei numeri matematica e matematici oggi Mondadori Milano 1989
Martin E Ellmann La crittografia a chiave pubblica in La matematica della complessitagrave Quaderni n 67
settembre 1992 Le Scienze
Paolo Ferragina Fabrizio Luccio Crittografia principi ndash Algoritmi ndash Applicazioni Bollati Boringhieri Torino
2001
Godfrey H Hardy Apologia di un matematico Garzanti Milano 1989
Morris Kline Storia del pensiero matematico Einaudi Milano 1991
Serge Lang La bellezza della matematica Bollati Boringhieri Torino 1991
Mauro Leoncini Modelli di calcolo e complessitagrave computazionale in La matematica computazionale Quaderni
n 84 giugno 1995 Le Scienze
Fabrizio Luccio e Linda Pagli P = NP in La matematica della complessitagrave Quaderni n 67 settembre 1992
Le Scienze
Piergiorgio Odifreddi La Matematica del Novecento dagli insiemi alla complessitagrave Einaudi Torino 2000
34
ldquoPeriodico di matematicherdquo Serie VII Volume 7 Numero 2-3 luglio-dicembre 2000 Mathesis
ldquoPeriodico di matematicherdquo Serie VIII Volume 1 Numero 1 gennaio-marzo 2001 Mathesis
Carl Pomerance Alla ricerca dei numeri primi in ldquoLe Scienzerdquo n 174 febbraio 1983
Simon Singh Codici e segreti la storia affascinante dei messaggi cifrati dallrsquoantico Egitto a Internet Rizzoli
Milano 1999
Marcus du Sautoy Lrsquoenigma dei numeri primi lrsquoipotesi di Riemann lrsquoultimo grande mistero della matematica
Rizzoli Milano 2004
Gary Stix I segreti meglio custoditi la crittografia quantistica egrave passata dalla teoria al laboratorio per
approdare finalmente alle applicazioni in ldquoLe Scienzerdquo n 438 febbraio 2005
6
Facciamo un esempio vogliamo scrivere lrsquoelenco dei numeri primi minori 100
Scriviamo in ordine tutti i primi cento numeri naturali a partire da 2
bull cancelliamo i multipli di 2
bull cancelliamo i multipli di 3
bull cancelliamo i multipli di 5
bull cancelliamo i multipli di 7
Fermiamoci qui e osserviamo che quando abbiamo a che fare con un numero primo p i suoi multipli
per fattori piugrave piccoli di p sono stati giagrave eliminati e il primo che non lo egrave stato saragrave p2 Per esempio nel caso
in cui p fosse 5 il primo multiplo a non essere ancora stato eliminato egrave 25 infatti 10 egrave stato eliminato come
multiplo di 2 15 egrave stato eliminato come multiplo di 3 20 egrave stato eliminato come multiplo di 2 25 egrave il
primo non eliminato percheacute non egrave multiplo di 2 neacute di 3 pertanto la procedura di cancellazione termina con
p=7 infatti se p=11 allora p2=121 e poicheacute la tavola arriva fino a 100 tutti i multipli di 11 sono giagrave stati
eliminati
Tutti i numeri non cancellati (quelli in grassetto) sono i primi compresi nellrsquointervallo tra 2 e 100
estremi inclusi essi sono 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83
69 97
Alla ricerca dei numeri primi
Proprio nel tentativo di farsi unrsquoidea di come si distribuiscono i numeri primi eminenti matematici
come Pierre de Fermat Marin Mersenne Leonhard Euler (Eulero) Carl Friedrich Gauss ecc hanno
compilato e analizzato lunghi elenchi di numeri primi alla ricerca di formule in grado di produrre se non
tutti almeno ldquomoltirdquo di essi
Pierre de Fermat (1601-1665) ipotizzograve che tutti i numeri della forma F(N)= siano primi In effetti
per N=1
5141212)1( 221
=+=+=+=F
per N=2
171161212)2( 422
=+=+=+=F
per N=3
25712561212)3( 823
=+=+=+=F
per N=4
655371655361212)4( 1624
=+=+=+=F
sono tutti primi ma giagrave per N=5
67004176414294967297142949672961212)5( 3225
times==+=+=+=F
risultato scoperto da Eulero nel 1732 questo egrave uno dei pochi casi in cui Fermat cadde in errore forse
percheacute come si vede questi numeri detti numeri di Fermat crescono molto rapidamente giagrave il quinto
7
numero ha dieci cifre ed era al di fuori della portata dei suoi calcoli Ma egrave un ottimo esempio per
convincerci che la veritagrave di una affermazione non puograve basarsi sulla verifica della sua validitagrave in alcuni casi
particolari
Oggi sappiamo che F(N) egrave composto per tutti i valori di N da 5 a 21 come pure per vari altri valori
e lrsquoipotesi piugrave diffusa ma non dimostrata egrave che F(N) sia composto per tutti i valori di Ngt4 sostenuta dal
fatto che non si egrave trovato sperimentalmente un F(N) con Ngt4 che sia primo
Carl Friedrich Gauss (1777-1855) riuscigrave a dimostrare che se lrsquoN-esimo numero di Fermat egrave primo
allora egrave possibile costruire geometricamente con riga e compasso un poligono regolare di N lati Dove per
riga si intende una riga non graduata che serva solo a tracciare linee rette e per compasso uno strumento
capace solo di tracciare circonferenze o archi di circon-ferenza e non per esempio di riportare misure In
questo modo allrsquoetagrave di soli 19 anni Gauss riuscigrave a costruire il poligono di 17 lati Allo stesso modo si
potrebbe costruire un poligono regolare di 65537 lati essendo questrsquoultimo un primo di Fermat
Marin Mersenne (1588-1648) egrave famoso fra lrsquoaltro per il suo ruolo di intermediario nella comunitagrave
scientifica internazionale del Seicento In assenza di periodici scientifici infatti diverse persone si
assunsero il compito di comunicare a un gran numero di corrispondenti ogni scoperta scientifica di cui
fossero venuti a conoscenza e Mersenne fu uno di questi A lui egrave dovuta la pubblicazione per la prima
volta di gran parte del lavoro di Fermat attraverso le sue lettere
Anche Mersenne venne preso dalla smania di trovare delle formule che producessero numeri primi
e in questa ricerca compilograve un elenco di numeri primi p per lrsquoesattezza p=2 3 5 7 13 17 19 31 67
127 257 per i quali riteneva che fosse primo anche il numero della forma M(p)= che viene oggi chiamato
numero di Mersenne Nessuno sa come Mersenne sia stato in grado di fare questa affermazione ma
comunque egli era sorprendentemente vicino alla veritagrave Soltanto nel 1947 quando comparvero le
calcolatrici da tavolo fu possibile verificare la sua asserzione Aveva fatto solo 5 errori M(67) M(257)
non sono primi M(61) M(89) M(107) sono primi
Si osserva facilmente come al crescere di p il numero M(p) diventi rapidamente molto grande
bull M(2)=22ndash1=3
bull M(3)=23ndash1=7
bull M(4)=24ndash1=15=3middot5
bull M(5)=25ndash1=31
bull M(6)=26ndash1=63=7middot3middot3
bull M(7)=27ndash1=127
bull M(8)=28ndash1=255=5middot3middot17
hellip
bull M(11)=211ndash1=2047=23middot89
hellip
bull M(17)=217ndash1=131071
8
E solo per alcuni valori di p essi sono primi per cui lrsquoidea sarebbe quella di cercare i valori di p per
cui M(p) egrave primo Ma ciograve non egrave facile percheacute la primalitagrave di p egrave condizione solo necessaria per la primalitagrave
di M(p) infatti egrave vero che
1 se M(p) egrave primo allora anche p egrave primo
2 se p non egrave primo allora M(p) non egrave primo vedi ad esempio M(4) M(6) M(8)
ma se p egrave primo non egrave detto che M(p) sia primo vedi ad esempio M(11)
A tuttrsquooggi non si sa se esista unrsquoinfinitagrave di numeri di Mersenne che siano primi (detti primi di
Mersenne) neacute se esista unrsquoinfinitagrave di numeri di Mersenne che non siano primi anche se entrambe le
asserzioni appaiono verosimili Infatti aumentando le capacitagrave di calcolo dei calcolatori aumenta il
numero dei primi di Mersenne conosciuti (tabella 1) La ricerca di primi di Mersenne sempre piugrave grandi ha
valore di semplice curiositagrave ma il loro calcolo egrave utile per la misurazione della potenza di calcolo dei
calcolatori Per esempio per dimostrare che il numero di Mersenne M8191 di 2466 cifre non egrave primo usando
il test di Lucas-Lehmer ci vollero 100 ore la prima volta nel 1953 sul computer ILLIAC-I Da allora il
tempo di calcolo egrave sceso drasticamente da 5 a 2 ore su un IBM 7090 40 minuti su un ILLIAC-II da 3 a un
minuto su un IBM 360-91 e 10 secondi su un CRAY-I
valore di p 2p-1 anno autore computer 2 3 3 7 5 31 7 127 13 8191 1461 anonimo 17 131071 1588 Pietro Antonio Cataldi 19 524287 1588 Pietro Antonio Cataldi 31 2 147 483 647 1750 Leonhard Euler 61 19 cifre 1883 I M Pervushin calcolatore meccanico 89 27 cifre 1911 R E Powers calcolatore meccanico 107 33 cifre 1914 R E Powers calcolatore meccanico 127 39 cifre 1876-1914 Francois Edouard Anatole Lucas calcolatore meccanico 521 157 cifre 30 gennaio
1952 Raphael M Robinson SWAC
607 183 cifre 30 gennaio 1952
Raphael M Robinson SWAC
1279 386 cifre 25 giugno 1952
Raphael M Robinson SWAC
2203 664 cifre 7 ottobre 1952
Raphael M Robinson SWAC
2281 687 cifre 9 ottobre 1952
Oct 9 Raphael M Robinson SWAC
3217 969 cifre 1957 Hans Riesel BESK 4253 1281 cifre 1961 Alexander Hurwitz e John L
Selfridge IBM 7090
4423 1332 cifre 1961 Alexander Hurwitz e John L Selfridge
IBM 7090
9689 2917 cifre 1963 Donald B Gillies ILLIAC 2 9941 2993 cifre 1963 Donald B Gillies ILLIAC 2 11213 3376 cifre 1963 Donald B Gillies ILLIAC 2 19937 6002 cifre 1971 Bryant Tuckerman IBM 36091
9
valore di p 2p-1 anno autore computer 21701 6533 cifre 1978 Landon Curt Noll e Laura A
Nickel Cyber 174
23209 6987 cifre 1979 Landon Curt Noll Cyber 174 44497 13395 cifre 1979 David Slowinski e Harry L
Nelson Cray 1
86243 25962 cifre 1982 David Slowinski Cray 1 110503 33265 cifre 1988 Walter N Colquitt e Luther
Welsch Jr
132049 39751 cifre 1983 David Slowinski Cray X-MP 216091 65050 cifre 1985 David Slowinski Cray X-MP 756839 227832 cifre 1992 David Slowinski e Paul Gage Cray 2 859433 258716 cifre 1994 David Slowinski e Paul Gage Cray C90 1257787 378632 cifre 1996 David Slowinski e Paul Gage Cray T94 1398269 420921 cifre 1996 Joel Armengaud George
Woltman e GIMPS PC Pentium 90
2976221 895932 cifre 1997 Gordon Spence George Woltman e GIMPS
PC Pentium 100
3021377 909526 cifre 1998 Roland Clarkson Woltman Scott Kurowski e GIMPS
Pentium 200
6972593 2098960 cifre 1999 Nayan Hajratwala Woltman Kurowski e GIMPS
Pentium II 350
13466917 4053946 cifre 2001 Michael Cameron e GIMPS 800 MHz AMD T-Bird PC
20996011 6320430 cifre 2003 Michael Shafer e GIMPS 2 Gh Pentium 4 Dell Dimension PC
24036583 7235733 cifre 2004 Josh Findley e GIMPS 24 GHz Pentium 4 Windows XP PC
25964951 7816230 cifre 2005 Martin Nowak e GIMPS 24 GHz Pentium 4 Windows XP PC
30402457
9152052 cifre
2005 Curtis Cooper Steven Boone CMSU e GIMPS
Lavoro coordinato di 700 computers
GIMPS = Great Internet Mersenne Prime Search (wwwmersenneorg)
Tabella 1 La ricerca dei numeri primi di Mersenne
Unrsquoaltra notevole formula che dagrave luogo a molti numeri primi fu scoperta da Eulero nel 1772 La
formula x2+x+41 fornisce il seguente elenco di numeri primi inserendo tutti i numeri compresi fra 0 e 39
41 43 47 53 61 71 83 97 113 131 151 173 197 223 251 281 313 347 383 421 461 503
547 593 641 691 743 797 853 911 971 1033 1097 1163 1231 1301 1373 1447 1523 1601
Eulero comprese che il processo era destinato a interrompersi a un certo punto Infatti per x=41 si
ha
412+41+41 = 412+2middot41 = 41middot (41+2) = 41middot43
che non egrave primo ma anche per x=40 il numero che si ottiene non egrave primo infatti
402+40+41= 40 middot (40+1)+(40+1)=(40+1) middot (40+1)
Ciononostante Eulero fu molto colpito dalla capacitagrave della sua formula di produrre tanti numeri
primi da domandarsi per quali altri numeri diversi da 41 si sarebbe potuto ottenere un risultato simile
Scoprigrave che si poteva scegliere anche n=2 3 5 11 17 percheacute la formula x2+x+n producesse numeri primi
per ogni valore di x compreso fra 0 e nndash2
10
Possiamo concludere che la ricerca di formule semplici che producano soltanto numeri primi egrave stata
inutile ed egrave ancora meno probabile che conduca a buoni risultati il tentativo di trovare una formula che
produca tutti i numeri primi Lo stesso Eulero nel 1751 scriveva ldquoci sono alcuni misteri che la mente
umana non penetreragrave mai Per convincercene non dobbiamo far altro che gettare unrsquoocchiata alle tavole dei
numeri primi Ci accorgeremo che non vi regna neacute ordine neacute leggerdquo
La svolta di Gauss
Il passo decisivo nella ricerca di una legge da cui dipenda la distribuzione dei numeri primi fu
compiuto quando si rinunciograve agli inutili tentativi di trovare una formula che generasse tutti i numeri primi o
desse il numero esatto di essi contenuti nei primi n numeri interi A compiere la svolta fu Gauss il quale
affrontograve il problema da un altro punto di vista Infatti egli si chiese se era possibile prevedere non quale
fosse la posizione di un numero primo rispetto a quello precedente ma se era possibile prevedere quanti
fossero i numeri primi minori o uguali a un certo numero x Egli introdusse a tale scopo la funzione )(xπ =
numero dei primi minori o uguali a x e poteacute verificare per esempio che 4)10( =π percheacute i numeri primi
minori o uguali a 10 sono 2 3 5 7 e cioegrave 4 e la distanza media tra due numeri primi successivi
nellrsquointervallo tra 1 e 10 egrave 104 uguale a 25 Nella tabella 2 sono riportati alcuni valori della funzione e
della distanza media
Tabella 2 Alcuni valori della fiunzione )(xπ
Osservando tali risultati egli notograve che ogni volta si moltiplica x per 10 si aggiunge 23 al rapporto
xπ(x) almeno per x abbastanza grande Proprio questo legame tra moltiplicazione e addizione (che egrave la
relazione racchiusa in un logaritmo) e il fatto che 23 egrave approssimativamente il valore rappresentato dal
portarono Gauss a ipotizzare che
( )x
x
xlog=
π
Da cui
11
( )( )x
xx
logcongπ
Questa congettura si rivelograve poi vera e oggi egrave nota come teorema dei numeri primi Una notevole
conseguenza del teorema dei numeri primi egrave che ldquola probabilitagrave che un numero intero di x cifre preso a
caso sia primo egrave circa 1log(10x)rdquo Infatti lrsquoespressione
( )( )x
xx
logcongπ
in altre parole significa che nellrsquointervallo tra 1 e x si incontra un primo circa ogni log(x) e cioegrave la
probabilitagrave che nellrsquointervallo dei numeri le x un numero preso a caso sia primo egrave 1log(x) Ad esempio
nellrsquointervallo dei numeri minori di 10 000 000 uno ogni log(10 000 000) egrave primo Essendo
log(10 000 000) = log(107) = 7log(10) asymp 1611hellip ciograve vuol dire che dei numeri minori di 10 000 000 circa 1
su 16 egrave primo e perciograve crsquoegrave circa una probabilitagrave su 16 che un numero di 7 cifre sia primo
Al momento attuale molti sono i problemi non ancora risolti Tra questi ricordiamo
1 la congettura dei primi gemelli esistono infiniti numeri primi p tali che p+2 egrave ancora
primo Ad esempio 3 e 3+2 5 e 5+2 17 e 17+2 29 e 29+2 ecc
2 la congettura di Goldbach ogni intero pari maggiore di 2 puograve essere scritto come somma di
due numeri primi Ad esempio 4 = 2+2 6 = 3+3 8 = 3+5 10 = 5+5 12 = 5+7 ecc
La difficoltagrave fondamentale di tali problemi risiede nel fatto che i numeri primi sono definiti
mediante proprietagrave moltiplicative mentre i problemi in questione coinvolgono proprietagrave additive
Di gran lunga il piugrave importante tra i problemi non risolti egrave quello che va sotto il nome di ipotesi di
Riemann anche percheacute fu proprio la novitagrave del metodo in essa contenuto a far compiere il passo decisivo
per la dimostrazione del teorema dei numeri primi compiuta indipendentemente lrsquouno dallrsquoaltro nel 1896
dai matematici Jacques Hadamard e Charles de la Valleacutee-Poussin
Ricordiamo che lrsquoipotesi di Riemann inserita allrsquoottavo posto nellrsquoelenco dei famosi ventitreacute
problemi irrisolti presentati da David Hilbert al Congresso internazionale dei matematici del 1900 e
lanciati come sfida alla comunitagrave dei matematici del ventesimo secolo egrave ancora rimasto tale cioegrave senza
dimostrazione
Egrave oggi considerato uno dei problemi piugrave difficili del nuovo millennio Nel 2000 il Clay Mathematics
Institute ha offerto un milione di dollari a chi riusciragrave a darne una dimostrazione
Grazie ai calcolatori attualmente egrave stato possibile verificare tali congetture in moltissimi casi Ad
esempio la congettura di Goldbach egrave stata verificata per tutti i pari fino a 100 milioni mentre lrsquoipotesi di
Riemann egrave stata verificata per un miliardo e mezzo di casi ma ciograve non egrave sufficiente per dimostrarne la
veritagrave Ed egrave proprio questo quello che distingue la matematica dalle altre scienze dove una qualsiasi
ipotesi sostenuta da verifiche sperimentali egrave ritenuta valida fincheacute non contraddetta da un caso contrario
mentre in matematica un solo caso contrario serve a dimostrare la falsitagrave dellrsquoipotesi la cui veritagrave per
contro deve essere dimostrata per tutti i casi possibili il che ovviamente puograve avvenire solo
indipendentemente dalle verifiche di casi particolari anche se molti
12
Ed egrave questa una delle peculiaritagrave piugrave belle della matematica Qualsiasi affermazione dimostrata egrave
eterna e immutabile si pensi allrsquoinfinitagrave dei numeri primi ciograve egrave vero per Euclide ma rimane vero ancora
oggi senza possibilitagrave di smentite
Come ebbe a dire il matematico Hermann Hakel ldquoNella maggior parte delle scienze una
generazione demolisce quello che laltra ha costruito e ciograve che uno ha fatto un altro lo disfa Solo nella
matematica ogni generazione aggiunge un nuovo piano alla vecchia strutturardquo
E che ciograve susciti lrsquoidea della bellezza egrave bene sintetizzato dalle parole di Bertrand Russell ldquoLa
matematica vista dalla giusta angolazione non possiede solo la veritagrave ma la suprema bellezza una
bellezza fredda e austera come quella della scultura una bellezza che non fa appello ai nostri sentimenti
piugrave grossolani che non ha gli ornamenti sgargianti della musica o della pittura una bellezza pura e
sublime capace della rigorosa perfezione che egrave propria solo della piugrave grande arterdquo
Anche se non egrave possibile presentare in termini semplici lrsquoipotesi di Riemann in quanto coinvolge
concetti di matematica superiore proviamo a delinearne le linee essenziali
Nel 1737 Eulero introdusse e studiograve una funzione detta funzione ζ (zeta) di Eulero cosigrave definita
sum+infin
=
gtisin++++==1
1 4
1
3
1
2
11
1)(
nxxxx
xRxperdefinitan
xζ
e sempre a Eulero egrave dovuta la seguente identitagrave
( )
1
111
11
17
7
15
5
13
3
12
2 prod
minus=sdot
minussdot
minussdot
minussdot
minussdot
minus=
px
x
x
x
x
x
x
x
x
x
x
x
p
pxζ
dove il prodotto egrave esteso a tutti i numeri primi
Ed egrave proprio questa identitagrave che egrave alla base della notevole importanza assunta dalla funzione ζ nella
teoria dei numeri e in particolare per quanto riguarda la distribuzione dei numeri primi nellrsquoinsieme dei
naturali Infatti a destra di essa appaiono esplicitamente i numeri primi mentre a sinistra compare la
funzione ζ definita indipendentemente da essi
Riemann nel 1859 propose di considerare la funzione ζ come funzione di variabile complessa
cioegrave definita per x numero complesso ed effettuograve il cosiddetto prolungamento analitico di ζ allrsquointero piano
complesso costruendo la nuova funzione ζ oggi nota come funzione zeta di Riemann Egli provograve che gli
zeri della funzione ζ (cioegrave i valori della variabile per cui la funzione restituisce il valore 0) sono x = ndash2
x = ndash4 x = ndash6hellip detti zeri banali di ζ e alcuni numeri complessi (non reali) x con parte reale compresa tra
0 e 1 estremi inclusi Lrsquoipotesi di Riemann afferma che tutti gli zeri non banali di ζ hanno la caratteristica
di avere la parte reale uguale a 21
Dalla validitagrave di questa ipotesi discende una serie enorme di proprietagrave sui numeri primi Ci sono
attualmente centinaia di ldquoquasi teoremirdquo che iniziano con ldquosupponiamo che lrsquoipotesi di Riemann sia
verahelliprdquo Se lrsquoipotesi venisse dimostrata tutti questi ldquoquasi teoremirdquo diventerebbero veri teoremi
13
I test di primalitagrave e la fattorizzazione
Abbiamo fin qui concentrato lrsquoattenzione sul comportamento dei numeri primi ma come egrave possibile
preso un intero a caso x provare se x egrave primo o composto
Il metodo piugrave ovvio consiste nel dividere il numero x per tutti gli interi che lo precedono Infatti se
una qualunque di tali divisioni dagrave resto zero il numero x egrave composto e divisore e quoziente sono suoi
fattori mentre se nessuna di tali divisioni per ciascuno degli interi minori x dagrave resto zero il numero x egrave
primo
In effetti la procedura delle divisioni puograve essere interrotta allrsquointero minore della in quanto se x egrave
composto esso saragrave il prodotto di almeno due fattori per esempio x= F1sdotF2 ed essendo x=x sdot x se
F1gt x F2 lt x Ad esempio 29= 2929 sdot e 529 cong quindi si puograve fermare la procedura quando il
divisore egrave 5 Infatti 292 dagrave resto 1 293 dagrave resto 2 294 dagrave resto 1 295 dagrave resto 4 Si puograve quindi
concludere che 29 egrave primo percheacute se avesse avuto un fattore maggiore di 5 ne avrebbe avuto sicuramente
uno minore di 5 il che non egrave
Ma anche limitando le divisioni alla radice quadrata lrsquoalgoritmo sarebbe comunque inapplicabile
percheacute per giungere a conclusione richiede un tempo che cresce esponenzialmente al crescere del numero
di cifre di n pertanto puograve risultare intollerabilmente lungo anche con gli strumenti di calcolo piugrave veloci
anni secoli piugrave della vita presunta dellrsquoUniverso Ad esempio egrave stato dimostrato che il numero 244 497ndash1
formato da 13 595 cifre egrave primo Se un calcolatore fosse in grado di controllare un milione di divisioni al
secondo e si fermasse alla radice quadrata del numero egrave stato calcolato che gli occorrerebbero 106684 anni
per espletare il suo compito Lrsquoinconveniente deriva dal fatto che il metodo delle divisioni non solo ci dice
se il numero egrave primo o composto ma risolve anche il problema della fattorizzazione di un numero in
quanto nel caso in cui il numero risulta composto ci fornisce i fattori della sua scomposizione
A tuttrsquooggi egrave facile trovare numeri primi grandi o testare la primalitagrave di un numero mentre egrave
difficile fattorizzare un intero che sia il prodotto di due numeri primi grandi Ovviamente i termini ldquofacilerdquo
ldquodifficilerdquo ldquogranderdquo sono relativi alla conoscenza e alla tecnologia disponibili Attualmente sono
considerati ldquograndirdquo numeri di alcune centinaia di cifre mentre ldquofacilerdquo rappresenta un tempo di secondi e
ldquodifficilerdquo di secoli
Lrsquoefficacia dei test di primalitagrave attualmente usati dipende dal fatto che egrave possibile stabilire se un
numero egrave primo senza essere costretti a trovarne i fattori qualora risultasse composto Alcuni metodi usati
sono di tipo probabilistico cioegrave stabiliscono che un intero egrave probabilmente primo con una probabilitagrave di
errore che si puograve rendere piccola quanto si vuole
Il piugrave semplice al tempo stesso velocissimo e potente si basa sul piccolo teorema di Fermat Il
teorema stabilisce che se p egrave un numero primo e a un intero minore di p allora apndasha egrave un multiplo di p cioegrave
egrave divisibile per p
Ad esempio
bull se p=7 e a=2 allora 27ndash2=128ndash2=126=7middot18 cioegrave multiplo di 7
bull se p=7 e a=3 allora 37ndash3=2187ndash3=2184=7middot312 cioegrave multiplo di 7
14
bull se p=7 e a=4 allora 47ndash4=16384ndash4 = 16380 = 7middot2340 cioegrave multiplo di 7
bull se p=5 e a=4 allora 45ndash4=1024ndash4=1020=5middot204 cioegrave multiplo di 5
bull se p=3 e a=4 allora 43ndash4=64ndash4=60=3middot20 cioegrave multiplo di 3
Lrsquoimportanza del teorema sta nel fatto che ci fornisce un metodo per stabilire se un numero egrave primo
o no infatti costruiamo un numero del tipo apndasha verifichiamo se egrave multiplo di p se non lo egrave siamo sicuri
che p non egrave primo Ad esempio vogliamo sapere se 15 egrave primo costruiamo
215ndash2=32768ndash2=32766
32766=15middot2184+6
cioegrave non egrave divisibile per 15 quindi sicuramente 15 egrave composto e infatti 15=3middot5
Ma cosa si puograve dire se invece apndasha egrave divisibile per p Sfortunatamente non possiamo essere sicuri
che p sia primo anche se egrave molto probabile che lo sia
Proviamo 217ndash2=131072ndash2=131070=17middot7710 e infatti 17 egrave primo Provando 2341ndash2 si trova che
esso egrave divisibile per 341 ma 341 non egrave primo essendo 341=11middot31 Sono detti pertanto pseudoprimi i
numeri composti che passano il test Non proviamo a calcolare 2341 percheacute sarebbe un numero
mostruosamente grande fuori dalla nostra portata ma vedremo tra poco come si puograve aggirare lrsquoostacolo
Riassumendo il piccolo teorema di Fermat afferma che egrave vero
1 se p egrave primo e a egrave un intero minore di p allora apndasha egrave divisibile per p
2 se apndasha non egrave divisibile per p allora p non egrave primo
ma se apndasha egrave divisibile per p allora p puograve essere primo ma anche composto ciograve percheacute la divisibilitagrave per p
egrave condizione necessaria ma non sufficiente percheacute p sia primo Concludendo possiamo dire che usando
questo teorema per verificare la primalitagrave di un numero se scopriamo che ap-a non egrave divisibile per p siamo
sicuri che p egrave composto ma se egrave divisibile per p allora p egrave probabilmente primo nel senso che puograve essere
un primo autentico o pseudoprimo
La cosa interessante egrave che la probabilitagrave che un numero composto sia uno pseudoprimo (cioegrave che
superi il test di primalitagrave ma non sia primo come per esempio 341) su una base casuale diminuisce
fortemente allrsquoaumentare del numero Un numero di 1000 cifre composto ha circa una possibilitagrave su 10123
di essere uno pseudoprimo su una base scelta a caso La tabella 3 riporta tali probabilitagrave in funzione del
numero di cifre
Cifre in x Limite superiore per P(x)
Cifre in x Limite superiore per P(x)
Cifre in x
Limite superiore per P(x)
60 00716 80 00000846 100 00000000277
120 528middot10ndash12 150 149middot10ndash17 200 385middot10ndash27
300 58middot10ndash29 400 57middot10ndash42 500 23middot10ndash55
700 18middot10ndash82 1000 12middot10ndash123 2000 86middot10ndash262
5000 76middot10ndash680 10000 16middot10ndash1331 100000 13middot10ndash10584
Tabella 3 Probabilitagrave che un numero composto sia pseudoprimo
Nel 2002 tre ricercatori indiani Manindra Agrawal Neeraj Kayal e Nitin Saxena hanno costruito un
algoritmo denominato AKS (dalle iniziali dei nomi) sempre basato sulla fondamentale proprietagrave enunciata dal
15
piccolo teorema di Fermat ma che risulta deterministico e che riduce in maniera drastica il tempo di calcolo
Lrsquoalgoritmo fornisce una svolta significativa in un settore lungamente atteso e di grande interesse pratico ma
per ora non sembra che possa avere immediata applicazione in quanto molto piugrave lento dei test probabilistici i
quali drsquoaltra parte sono quasi certi per i numeri primi di centinaia di cifre che servono attualmente in
crittografia
Storia della crittografia
La crittografia che letteralmente significa scrittura nascosta nasce dalla necessitagrave di segretezza di alcune
informazioni e pertanto con tale termine intendiamo lo studio dei metodi che consentono la trasmissione sicura
dellrsquoinformazione
Drsquoaltro canto lrsquoesistenza di informazioni segrete genera il desiderio di svelarle e da tale desiderio nasce
la crittoanalisi con cui intendiamo lo studio di metodi che consentono la decifrazione dei messaggi crittografati
La storia della crittografia drsquoaltra parte altro non egrave che la secolare battaglia tra crittografi e crittoanalisti
Infatti ogni sistema crittografico rimane valido fincheacute un crittoanalista non individua un suo punto debole sulla
base del quale riesce a elaborare il sistema di decifrazione
Crittografi e crittoanalisti insieme hanno dato un grande contributo al progresso scientifico e tecnologico
Infatti tutti i metodi della crittografia e della crittoanalisi fanno ricorso a metodi e strumenti di una vasta varietagrave
di scienze come la matematica la linguistica la teoria dellrsquoinformazione la fisica quantistica le quali a loro
volta sono da essi arricchite e stimolate
Lrsquoidea su cui si basa un metodo crittografico consiste nel concordare tra mittente e destinatario che
vogliono scambiarsi un messaggio senza che venga intercettato da terzi una procedura per alterare il testo in
chiaro del messaggio Il destinatario puograve ricavare il testo originale applicando al testo cifrato la procedura
inversa Chi intercetta il messaggio non conoscendo la procedura non puograve ricostruire il messaggio La sicurezza
del metodo sta nella difficoltagrave da parte del crittoanalista di poter ricostruire la procedura dallrsquoanalisi del
messaggio cifrato
Prima dellrsquoera informatica i metodi crittografici erano essenzialmente due per trasposizione o per
sostituzione
Nella trasposizione le lettere sono mutate di posto generando di fatto un anagramma Ma la
trasposizione non puograve essere casuale Infatti nel caso di messaggi brevi non sarebbe sicura in quanto i pochi
caratteri alfabetici che costituiscono il messaggio possono essere combinati in pochi modi diversi per cui
diventa facile ricostruire il messaggio per tentativi Ad esempio la parola ldquomiordquo consta di 3 caratteri alfabetici
esistono al massimo sei sequenze diverse mio moi imo iom omi oim analizzandole tutte e sei egrave facile
ricostruire la sequenza ldquomiordquo Ma al crescere della lunghezza del messaggio cresce mostruosamente anche il
numero delle sequenze infatti un anagramma di una parola di n lettere altro non egrave che una permutazione di n
elementi e si dimostra che il numero totale delle permutazioni di n elementi egrave dato da n (si legga n fattoriale)
uguale al seguente prodotto n(nndash1)(nndash2)(nndash3)hellip(nndash (nndash1)) Pertanto se il messaggio egrave costituito ad esempio da
20 lettere i possibili anagrammi sono 20=20middot19middot18middot17middot16middot15middot14middot13middot12middot11middot10middot9middot8middot7middot6middot5middot4middot3middot2middot1 cioegrave piugrave di 1000
miliardi e anche se si potesse controllare un anagramma al secondo ci vorrebbero piugrave di trentuno secoli per
analizzarli tutti In questo caso la comunicazione risulterebbe sicura essendo impossibile analizzare tutte le
16
possibili sequenze e ricostruire il messaggio ma di fatto egrave inutilizzabile anche dal destinatario percheacute di fronte
allo stesso problema
Per rendere efficace tale metodo egrave necessario che mittente e destinatario si accordino su un criterio di
trasposizione fissato in anticipo e piugrave egrave complicato tale criterio e piugrave egrave sicuro il metodo
Esiste il metodo della trasposizione cosiddetta a inferriata Esso consiste nella trascrizione di un testo
lungo due linee orizzontali una superiore e una inferiore passando da una allrsquoaltra a ogni successivo carattere
alfabetico Finita la trascrizione la seconda fila di caratteri saragrave accodata alla prima per dare origine al testo
cifrato Ad esempio
testo del messaggio incontriamoci stasera alle sette
testo del messaggio cifrato icnraoitsralstenotimccsaealeet
Il destinatario ricostruisce il testo originale applicando la trasposizione inversa
Esistono molti altri tipi di trasposizione per esempio si puograve variare il numero delle file su cui trascrivere
il messaggio oppure si puograve passare da una fila allrsquoaltra ogni due caratteri anzicheacute dopo ogni singolo carattere e
cosigrave via Da osservare che ogni carattere alfabetico mantiene la propria identitagrave ma cambia la posizione
Nella sostituzione ogni carattere alfabetico del messaggio originale viene sostituito con un altro carattere
alfabetico secondo un criterio stabilito In questo caso ogni carattere alfabetico mantiene la posizione ma
cambia la propria identitagrave
Sostanzialmente esso necessita di determinare come primo passo un alfabeto cifrante che egrave ottenuto
rimescolando secondo un criterio lrsquoalfabeto ordinario In questo modo a ogni carattere dellrsquoalfabeto ordinario
corrisponde un carattere dellrsquoalfabeto cifrante Per cifrare il messaggio si sostituisce ogni carattere del messaggio
con il corrispondente carattere dellrsquoalfabeto cifrante Per decifrare il messaggio si applica la procedura inversa
Il primo esempio documentato di cifratura per sostituzione si trova nel De bello gallico di Giulio Cesare
detto anche cifrario di Cesare Qui lrsquoalfabeto cifrante era ottenuto da quello ordinario spostando a destra di tre
posti ogni carattere alfabetico ad esempio per cifrare il messaggio si sostituisce ogni lettera con la
corrispondente dellrsquoalfabeto cifrante (figura 2)
17
Figura 2 Cifrario di Giulio Cesare
Per decifrare si sostituisce ogni lettera del messaggio cifrato utilizzando la corrispondenza inversa
Come si puograve facilmente osservare in questo metodo lrsquoalfabeto cifrante altro non egrave che una
riorganizzazione dellrsquoalfabeto ordinario che si puograve ottenere con un qualsiasi spostamento tra 1 e il numero delle
lettere dellrsquoalfabeto ordinario Per esempio nel caso dellrsquoalfabeto italiano che consta di 21 lettere si possono
effettuare 20 diversi spostamenti e ottenere quindi 20 diversi alfabeti cifranti Essendo lrsquoalfabeto cifrante una
riorganizzazione dellrsquoalfabeto ordinario non egrave detto che questa debba essere ottenuta utilizzando il criterio
dello spostamento ma puograve coincidere con un qualsiasi anagramma dellrsquoalfabeto ordinario Si vede quindi
facilmente come aumentano gli alfabeti cifranti nel nostro caso il loro numero per quanto detto
precedentemente uguaglia il numero delle permutazioni di 21 elementi e cioegrave 21 e cioegrave oltre 50 miliardi di
miliardi
A partire da questo esempio cerchiamo di chiarire in termini generali il significato di metodo
crittografico intendendo con esso un algoritmo che mediante una chiave trasforma un messaggio in chiaro in
un messaggio cifrato o crittogramma
Ad esempio nel metodo descritto sopra lrsquoalgoritmo equivale alla procedura con cui ogni lettera
dellrsquoalfabeto in chiaro egrave sostituita dalla corrispondente lettera dellrsquoalfabeto cifrante la chiave equivale al
particolare alfabeto cifrante scelto per la cifratura o decifrazione di un particolare crittogramma
Inoltre crsquoegrave da sottolineare lrsquoimportanza concettuale della distinzione tra algoritmo e chiave Infatti la sola
conoscenza dellrsquoalgoritmo senza la chiave non permette di decifrare il crittogramma Ed egrave questo uno dei
principi fondamentali della crittografia formulato in modo definitivo nel 1883 dallrsquoolandese Auguste
Kerckhoffs von Nieuwenhof noto anche come legge di Kerckhoffs ldquola sicurezza di un crittosistema non deve
dipendere dal tener celato il crittoalgoritmo La sicurezza dipenderagrave solo dal tener celata la chiaverdquo
Le caratteristiche di un efficace sistema crittografico possono essere riassunte nelle seguenti
1 segretezza della chiave
2 semplicitagrave della chiave (per evitare possibili malintesi o errori al momento dello scambio tra
mittente e destinatario)
3 alto numero di potenziali chiavi tra cui scegliere
18
Come si puograve notare la 2) e la 3) sono collegate tra loro infatti nel sistema descritto sopra si potrebbe
scegliere una chiave piugrave semplice sacrificando il numero di chiavi potenziali
Infatti invece di generare lrsquoalfabeto cifrante da una riorganizzazione casuale dellrsquoalfabeto ordinario lo si
puograve fare a partire da una parola chiave come nel seguente esempio Supponiamo di accordarci sulla parola
chiave lsquolaurarsquo si eliminano eventuali spazi e lettere ripetute quindi la parola chiave diventa lsquolaurrsquo a questo
punto la sequenza l a u r saragrave lrsquoinizio dellrsquoalfabeto cifrante cui seguiranno tutte le altre lettere mancanti in
ordine alfabetico partendo dallrsquoultima lettera della chiave per cui lrsquoalfabeto cifrante che si ottiene saragrave l a u r s t
v z b c d e f g h i m n o p q
I crittosistemi basati sulla sostituzione hanno dominato la scena per tutto il primo millennio della nostra era
fincheacute i crittoanalisti non trovarono il suo punto debole ed elaborarono un metodo per decifrarne i crittogrammi prodotti
La violazione di tali sistemi si basa su unrsquoidea dovuta per prima a crittoanalisti arabi nella quale si
combinano conoscenze di linguistica statistica e matematica nota con il nome di analisi delle frequenze
Essa egrave descritta dallo studioso del IX secolo Abu Yusuf ibn Ishaq al-Kind sopran-nominato il filosofo
degli arabi in una sua monografia dal titolo Sulla decifrazione dei messaggi crittati ritrovata nellrsquoarchivio
ottomano Sulaimaniyyah di Istanbul solo nel 1987 Nel testo si legge
Un modo di svelare un messaggio crittato se conosciamo la lingua dellrsquooriginale consiste nel trovare
un diverso testo chiaro nella stessa lingua abbastanza lungo da poter calcolare la frequenza di ciascuna
lettera
Chiamiamo ldquoprimardquo quella che compare piugrave spesso ldquosecondardquo quella che la segue per frequenza
ldquoterzardquo la successiva e cosigrave via fino a esaurire tutte le lettere del campione di testo chiaro
Esaminiamo poi il testo in cifra che vogliamo interpretare ordinando (in base alla frequenza) anche i
suoi simboli Troviamo il simbolo piugrave comune e rimpiazziamolo con la ldquoprimardquo lettera dellrsquoesempio
chiaro il simbolo che lo segue per frequenza sia rimpiazzato dalla ldquosecondardquo lettera il successivo simbolo
piugrave comune sia rimpiazzato dalla ldquoterzardquo e cosigrave via fino ad aver preso in considerazione tutti i simboli del
crittogramma che intendevamo svelare
Tabella 4 Frequenze delle diverse lettere in italiano
Per superare lrsquoanalisi delle frequenze furono ideati diversi nuovi metodi crittografici tra cui ricordiamo
1 il metodo di sostituzione omofonica
2 il metodo di sostituzione polialfabetica
19
Il metodo di sostituzione omofonica consiste nel sostituire ogni lettera con un numero di simboli per
esempio numeri proporzionale alla sua frequenza Cosigrave ad esempio la lettera a avendo una frequenza di 11 74
viene sostituita da 11 simboli la lettera b con un solo simbolo la lettera c con 4 simboli ecc secondo la tabella 5
Il metodo di sostituzione polialfabetica consiste nellrsquouso di piugrave alfabeti cifranti su unrsquoidea di Leon
Battista Alberti che propose di utilizzarne due Lrsquoalgoritmo consiste nel sostituire la prima lettera del messaggio
in chiaro con la corrispondente del I alfabeto cifrante la seconda lettera con la corrispondente del II alfabeto
cifrante la terza con la corrispondente del I e cosigrave via passando alternativamente dal I alfabeto al secondo Come
nellrsquoesempio della figura 3
Tabella 5 Corrispondenza lettere e simboli nella sostituzione omofonica
Figura 3 Il metodo di sostituzione polialfabetica
Su tale idea si basa il metodo di Blaise de Vigenegravere diplomatico francese nato nel 1523 il quale utilizza
tanti alfabeti cifranti quante sono le lettere dellrsquoalfabeto in chiaro ad esempio nellrsquoalfabeto italiano che consta
di 21 lettere utilizza 21 alfabeti cifranti
Il primo passo consiste nel costruire la tavola di Vigenegravere in cui nella prima riga egrave riportato lrsquoalfabeto in
chiaro e in ognuna delle 21 righe successive egrave riportato un alfabeto cifrante spostato di una lettera rispetto a
quello della riga precedente cosigrave nella riga 1 egrave riportato lrsquoalfabeto spostato di una lettera nella riga 2 quello
spostato di due lettere nella riga 3 quello spostato di tre fino alla riga 20 in cui egrave riportato quello spostato di 20
lettere (figura 4)
20
Figura 4 La tavola di Vigenegravere
Il secondo passo consiste nello scegliere una parola chiave per esempio lsquoverorsquo Pertanto il messaggio in
chiaro ldquonon andarerdquo verrebbe cifrato come nella figura 5
La differenza sostanziale tra la cifratura omofonica e quella polialfabetica egrave che in quella omofonica a
ogni lettera corrispondono piugrave simboli ma ogni simbolo egrave il corrispondente di una sola lettera cioegrave egrave una
corrispondenza 1rarr m che invertita diventa mrarr 1 in quella polialfabetica a ogni lettera corrispondono piugrave
simboli e anche ogni simbolo egrave il corrispondente di piugrave lettere cioegrave mrarr m che rimane tale anche invertendola
Il vantaggio della cifratura polialfabetica egrave pertanto la sua resistenza allrsquoanalisi delle frequenze Oltre ad
ammettere un enorme numero di chiavi infatti si puograve scegliere qualunque parola del dizionario qualunque
combinazione di parole si puograve perfino ricorrere a neologismi rendendo impossibile il controllo di tutte le chiavi
possibili Ed ecco percheacute egrave ritenuta piugrave affidabile e non ha mai smesso di essere usata
Figura 5 Cifratura polialfabetica del messaggio ldquonon andarerdquo
21
Oggi sono noti tutti i punti deboli del sistema di Vigenegravere ed esistono vari procedimenti per decifrare i
crittogrammi generati da tale sistema che sfruttano ad esempio la modularitagrave nel ripetere la chiave o
osservazioni sulle ripetizioni del testo cifrato Ci sono testimonianze storiche che uno di tali procedimenti sia
stato ideato da Sir Charles Babbage famoso per aver progettato e mai realizzato la macchina alle differenze
progenitrice degli odierni calcolatori La prima descrizione resa pubblica del metodo perograve egrave del 1863 portata a
compimento dallrsquoufficiale prussiano F W Kasiski
Unrsquoosservazione decisiva fu che le insidie del metodo di Babbage potevano essere evitate utilizzando
nella cifratura di Vigenegravere una chiave molto lunga e fatta da lettere che si succedono in modo casuale se un
messaggio cifrato non presenta delle ripetizioni se non egrave possibile tentare di indovinare la chiave cadono tutti
gli appigli necessari per effettuare con successo la crittoanalisi
Tale osservazione fu ulteriormente sviluppata da G S Vernam che nel 1926 introdusse lrsquoidea di usare
una chiave casuale lunga quanto il messaggio stesso
Oggi sappiamo grazie agli studi di Claude Shannon del 1949 che tale metodo puograve definirsi
ldquoteoricamente sicurordquo
In pratica perograve ciograve comporta la difficoltagrave di costruire lunghe stringhe di lettere assolutamente casuali e di
scambiarsi segretamente e continuamente queste chiavi In sostanza risulta impraticabile per ogni messaggio
scambiato in modo sicuro egrave necessario prima trasmettere in modo sicuro il messaggio contenente la chiave
I metodi usati per buona parte del Novecento sono delle rielaborazioni sempre piugrave complesse delle idee
descritte finora ottenute anche con la costruzione di dispositivi per la meccanizzazione delle procedure di
cifratura e decifratura Un esempio tra i piugrave conosciuti egrave la macchina Enigma usata dai tedeschi durante la
Seconda guerra mondiale inventata dallrsquoingegnere Arthur Scherbius Enigma consisteva di diversi ingegnosi
elementi combinati in un potente e sofisticato dispositivo per la produzione di scritture segrete In particolare ma
macchina aveva tre componenti collegati da fili elettrici una tastiera per immettere le lettere del testo chiaro
unrsquounitagrave scambiatrice che cifra la lettera trasformandola nel corrispondente elemento del crittogramma e un
visore con varie lampadine che accendendosi indicano la lettera da inserire nel crittogramma
Lo sforzo per violare questa cifratura richiese anni di lavoro e fu portato a compimento dalla Scuola
Inglese Governativa di Codici e Cifre di Bletchley Park di cui faceva parte Alan M Turing noto oggi ai piugrave per
i suoi studi sullrsquointelligenza meccanica
La crittografia nellrsquoera dellrsquoinformatica
Nel 1945 fu realizzato ENIAC (Electronic Numerical Integrator And Calculator) unrsquoapparecchiatura
contenente 18 000 valvole elettroniche capace di effettuare 5000 calcoli al secondo considerato il capostipite
dei moderni calcolatori
Dopo il 1945 fu lrsquoinformatica a fare da protagonista nella battaglia tra crittografi e crittoanalisti operando
una decisiva svolta nelle metodologie di entrambi Infatti i metodi precedenti lrsquoera dellrsquoinformatica basavano la
propria sicurezza sullrsquoenorme numero di chiavi disponibili e sulla loro lunghezza ma che viene messa in crisi
dalla crescente potenza di calcolo dei computer Un computer molto potente infatti potrebbe individuare quella
giusta in pochi minuti anche nel caso di un milione di chiavi da esaminare
Tutti i metodi crittografici esaminati finora necessitano di
22
1 un algoritmo generale di cifratura G
2 di una chiave K che deve rimanere segreta
3 di un algoritmo di decifrazione H=Gndash1 (inverso di G)
e agiscono secondo il seguente schema
il messaggio in chiaro M tramite lrsquoalgoritmo G e la chiave K viene cifrato in MC questrsquoultimo tramite
lrsquoalgoritmo H e la stessa chiave K viene decifrato in M (figura 6)
Figura 6 Schema di metodi crittografici
La sicurezza di tali sistemi risiede interamente nella segretezza delle chiavi Ne segue che per distribuire
agli utenti le chiavi egrave necessario ricorrere a canali sicuri
Gli svantaggi che ne derivano sono essenzialmente
1 difficoltagrave nella distribuzione delle chiavi agli utenti
2 mancata autenticazione dei messaggi mittente e destinatario condividono la stessa chiave
pertanto non crsquoegrave modo di impedire che il destinatario si invii messaggi che poi sembrino
provenienti dal mittente Si pensi quali problemi possono provocare simili falsificazioni nella
posta elettronica o nei sistemi bancari elettronici
La svolta avvenne nel 1976 a opera di Diffie e Hellmann che proposero un metodo detto a chiave
pubblica il quale non necessita di uno scambio preventivo delle chiavi segrete Lrsquodea egrave chiarita dal seguente
esempio noto come esempio del doppio lucchetto
Supponiamo di avere due utenti Mitt e Dest e Mitt voglia spedire un messaggio segreto a Dest
1 Mitt mette il messaggio in una scatola che chiude con il proprio lucchetto LMitt (di cui solo lui ha
la chiave) e spedisce la scatola a Dest
2 Dest ricevuta la scatola aggiunge un proprio lucchetto LDest (di cui solo lui ha la chiave) e
rispedisce la scatola a Mitt
3 Mitt ricevuta la scatola con il doppio lucchetto toglie il lucchetto LMitt e rispedisce la scatola a
Dest
4 Dest ricevuta la scatola puograve togliere il lucchetto LDest e leggere il messaggio di Mitt
Il problema della distribuzione delle chiavi sembra risolto percheacute lo schema a doppia chiave non richiede
la condivisione delle stesse Tuttavia la realizzazione pratica di un tale sistema si scontra con un altro problema
quello riguardante lrsquoordine in cui cifrature e decifrature sono eseguite In altre parole in un sistema crittografico
egrave essenziale lrsquoordine con cui avvengono le rispettive cifrature e decifrature in quanto la cifratura eseguita per
23
ultimo andrebbe decifrata per prima (egrave un porsquo come quando la mattina infiliamo prima le calze e poi le scarpe
ma alla sera togliamo prima le scarpe e poi le calze)
Lrsquoesempio del doppio lucchetto in cui ciograve non avviene sembra tuttavia funzionare come idea percheacute ai
fini dellrsquoapertura della scatola non ha importanza lrsquoordine di rimozione dei lucchetti
Anche se il trucco dei due lucchetti non sembra immediatamente applicabile tuttavia fu il giusto punto di
partenza per la realizzazione di un sistema crittografico che aggira lrsquoostacolo della distribuzione delle chiavi
Infatti lrsquoidea egrave che mittente e destinatario generano ciascuno due chiavi distinte una chiave di cifratura E
(da utilizzare nellrsquoalgoritmo di cifratura) e una chiave di decifrazione D (da utilizzare nellrsquoalgoritmo di
decifrazione) Le chiavi sono correlate nel senso che servono per effettuare operazioni inverse (figura 7)
Figura 7 Le chiavi correlate per effettuare operazioni invese
Il trucco consiste nellrsquoimpossibilitagrave di poter derivare la chiave D dalla chiave E mediante algoritmi di
calcolo (figura 8)
Ogni utente puograve rendere pubblica la propria chiave di cifratura E indicandola magari sullrsquoelenco
telefonico senza compromettere la propria chiave di decifrazione che rimane segreta di pubblico dominio sono
anche gli algoritmi di cifratura G e decifrazione H
Figura 8 Inapplicabilitagrave del metodo del doppio lucchetto
Pertanto lrsquoesempio del doppio lucchetto viene cosigrave interpretato
1 il destinatario pubblica la chiave di cifratura E e mantiene segreta la chiave di decifrazione D
2 il mittente applica GE al messaggio M trasformandolo nel messaggio cifrato MC cioegrave
GE(M)=MC che spedisce al destinatario
3 il destinatario applica HD al messaggio cifrato MC riottenendo M cioegrave HD(MC)=M
24
La sicurezza di un tale sistema si fonda sulla difficoltagrave di poter
1 ritrovare il testo cifrato provando ad applicare lrsquoalgoritmo GE che egrave pubblico ad ogni possibile
testo in chiaro il cui numero pur essendo enorme egrave comunque finito
2 ricavare lrsquoalgoritmo HD da GE
in quanto entrambe le tecniche sono computazionalmente inattuabili nel senso che richiedono un tempo
di calcolo di lunghezza al di fuori di ogni possibile considerazione anche per i piugrave potenti calcolatori
Per descrivere tali algoritmi sono necessari alcuni concetti matematici che andiamo a illustrare
Figura 9 Schema di cifrario a chiave pubblica
Lrsquoaritmetica modulare
Lrsquoaritmetica modulare la cui introduzione egrave dovuta a Gauss costituisce un sistema di calcolo con
importanti applicazioni nei test di primalitagrave e nei metodi che stanno alla base della sicurezza delle comunicazioni
elettroniche Con essa infatti si hanno i seguenti vantaggi 1) si riduce lo spazio dei numeri su cui gli algoritmi
sono chiamati ad operare e quindi si aumenta la velocitagrave di calcolo 2) si riesce a rendere difficili alcuni problemi
computazionali che sono semplici (o addirittura banali) nellrsquoalgebra ordinaria al fine di aumentare la sicurezza
nelle comunicazioni Lrsquoidea egrave semplice ma potente Forse non lo sappiamo ma usiamo spesso laritmetica
modulare Potremmo chiamarla aritmetica dellorologio
Infatti pensiamo ad un normale orologio con 24 ore Se sono le 15 ed un amico ci comunica che saragrave a
casa nostra tra 5 ore sappiamo che egli verragrave alle 20 infatti 15+5=20 Ma se sono le 23 e dobbiamo partire fra 7
ore certamente non diciamo che la partenza saragrave alle 30 anche se 23+7=30 Sappiamo che dovremo partire alle
6 Allo stesso modo se sono le 20 che ora saragrave tra 14 ore Non diremo 34 anche se 20+14=34 ma diremo che
sono le 10 Come si spiega tutto ciograve
Immaginiamo di segnare sul quadrante dellrsquoorologio 24 ore Se la lancetta segna le 23 aggiungere 7 ore
significa spostarsi di 7 posti fino ad arrivare alle 6 Si giunge allo stesso risultato calcolando 23+7=30 ed
osservando che 30=1sdot24+6 o che egrave lo stesso 3024 =1 con resto 6 che significa che 30 lo si ottiene facendo fare
alla lancetta un giro completo piugrave 6
25
Se la lancetta segna le 20 e aggiungiamo 14 ore lrsquoorologio segneragrave le 10 percheacute 20+14=34 ma 3424= 1
con resto 10 per cui 34 lo si ottiene percorrendo un giro completo piugrave 10
Proviamo con il normale orologio a 12 ore I numeri che vediamo sul quadrante sono 0 1 2 3 4 5 6 7
8 9 10 11 Il numero 12 non compare percheacute a partire da 0 trascorse 12 ore torniamo di nuovo a 0 Questa
volta per fare un giro completo occorrono 12 ore Pertanto se sono le 7 che ore saranno tra 24 ore Saranno
ancora le 7 percheacute 7+24=31 ma 3112 = 2 con resto 7 cioegrave si compiono 2 giri completi piugrave 7 se sono le 8 tra 6
ore saranno le 2 percheacute 8+6=14 ma 1412=1 con resto 2 Dagli esempi dovrebbe risultare chiaro allora che ciograve
che contano non sono i risultati delle somme ma i loro resti nelle divisioni per il numero delle ore segnate sul
quadrante dellrsquoorologio
La stessa cosa succede con i giorni della settimana se pensiamo a un orologio con 7 ore sul quadrante
Facciamo corrispondere ai giorni della settimana i numeri da 0 a 6 (figura 10)
domenica Lunedigrave Martedigrave Mercoledigrave Giovedigrave Venerdigrave Sabato darr darr darr darr darr darr darr 0 1 2 3 4 5 6
Figura 10 Corrispondenza dei giorni della settimana con i numeri da 0 a 6
Se per esempio oggi egrave venerdigrave che giorno saragrave tra 12 giorni
Dovremo calcolare 5+12=17 ma i giorni si ripetono ogni 7 pertanto osservando che 177 =2 con resto 3
possiamo concludere che a partire da 5 e aggiungendo 12 si compiono 2 giri completi piugrave 3 ed essendo 3 il
numero corrispondente a mercoledigrave concludiamo che saragrave mercoledigrave Facciamo un altro esempio se oggi egrave
lunedigrave (1) che giorno saragrave tra 20 giorni Calcoliamo 1+20=21 217= 3 con resto 0 quindi saragrave domenica
Il numero n delle ore sullrsquoorologio costituisce quello che si chiama il modulo e individua lrsquoaritmetica di
modulo n in cui lrsquoinsieme dei numeri con i quali si opera indicato con Zn egrave lrsquoinsieme dei possibili resti della
divisione per n e cioegrave Zn=0 1 2 3 hellip nndash1e le operazioni si eseguono con le regole illustrate negli esempi
precedenti
Lrsquoesempio dellrsquoorologio a 24 ore costituisce la cosiddetta aritmetica finita di modulo 24 in essa Z24=0
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 essendo questi ultimi i possibili resti
della divisione per 24 Lrsquoorologio a 12 ore costituisce lrsquoaritmetica finita di modulo 12 in essa Z12=0 1 2 3 4
5 6 7 8 9 10 11 essendo questi ultimi i possibili resti della divisione per 12 Lrsquoesempio dei giorni della
settimana egrave lrsquoaritmetica finita di modulo 7 in cui Z7=0 1 2 3 4 5 6 essendo questi ultimi i possibili resti
della divisione per 7 Riassumiamo costruendo unrsquoaritmetica finita di modulo 4 I possibili resti della divisione
per 4 sono 0 1 2 3 quindi Z4=0123 Lrsquoaddizione e la moltiplicazione in Z4 si esegue come negli esempi
della tabella 6
26
operazioni indicate
Risultato nellrsquoaritmetica ordinaria
Risultato nellrsquoaritmetica modulo 4
2+2 4 0 percheacute 44=1 con resto 0
3+2 5 1 percheacute 54=1 con resto 1
2+1 3 3 percheacute 34=0 con resto 3
3sdot3 9 1 percheacute 94=2 con resto 1
3sdot2 6 2 percheacute 64=1 con resto 2
2sdot2 4 0 percheacute 44=1 con resto 0
Tabella 6 Addizione e moltiplicazione nellrsquoaritmetica finita di modulo 4
Si possono costruire le tavole dellrsquoaddizione e della moltiplicazione dellrsquoaritmetica modulo 4 che costituiscono
le tabelline di questa aritmetica sulla base delle quali si esegue qualsiasi addizione e moltiplicazione modulo 4
Nella tabella 7 sono spiegate le tabelline dellrsquoaritmetica in modulo 4
Tabella 7 Tavole dellrsquoaddizione e della moltiplicazione dellrsquoaritmetica modulo 4
Infine per indicare che due numeri a e b divisi per n danno lo stesso resto si usano le seguenti notazioni
tutte equivalenti tra loro
a=b mod n andashb=0 mod 4 a equiv b (mod n) che si legge a egrave congruo b modulo 4
Esempio
26=12 mod 7 egrave la stessa cosa di
26ndash12=0 mod 7 che egrave la stessa cosa di
26 equiv 12 (mod 7) e tutte e tre stanno a indicare che 26 e 12 divisi per 7 danno lo stesso resto che egrave 5 e
pertanto sono tutti equivalenti a 5
Facciamo vedere come sfruttare lrsquoaritmetica modulare per calcolare potenze come 2341 (figura 11) Il
metodo si basa sulla proprietagrave che il resto del quadrato di un numero a per un dato modulo n egrave uguale al
quadrato del resto dello stesso numero a per lo stesso modulo n cioegrave a2 mod n =(a mod n)2
+ 0 1 2 3
0 0 1 2 3
1 1 2 3 0
2 2 3 0 1
3 3 0 1 2
x 0 1 2 3
0 0 0 0 0
1 0 1 2 3
2 0 2 0 2
3 0 3 2 1
27
Figura 11 Il metodo per calcolare 2341
La funzione di Eulero
Per ogni intero ngt1 si definisce la funzione di Eulero = numero di interi minori di n e primi con esso Ad
esempio
bull ( ) 45 =φ percheacute gli interi minori di 5 sono 1 2 3 4 ed essi sono tutti primi con n
bull ( ) 26 =φ percheacute gli interi minori di 6 sono 1 2 3 4 5 e fra essi solo 1 e 5 sono primi con 6
bull ( ) 67 =φ percheacute gli interi minori di 7 sono 1 2 3 4 5 6 ed essi sono tutti primi con 7
bull ( ) 412 =φ percheacute gli interi minori di 12 sono 1 2 3 4 5 6 7 8 9 10 11 e fra essi solo 1 5 7
11 sono primi con 12
Se si conosce la scomposizione in fattori del numero n il seguente teorema ci fornisce un metodo per
calcolare Infatti esso afferma che per ogni ngt1 non primo ( )
minussdotsdot
minussdot
minussdotnppp
n=nφ 11
11
11
21
dove
p1 p2 hellip pn sono i fattori primi di n presi senza molteplicitagrave
22 mod 341=4
24=(22)2=(22 mod 341)2=42=16mod341=16
28=(24)2=(16)2=256mod341=256
216= (28)2=(256)2=65536mod341=64
232=(216)2=(64)2=4096mod341=4
264=(232)2=42=16mod341=16
2128=(264)2=(16)2=256mod341=256
2256=(2128)2=(256)2=65536mod341=64
2341=2(256+64+16+4+1) 2256 264 216 24 21 x x x x
64 1
1024 mod 341
= 1 x 64
64 x 16
1024 mod 341
1 x 2 =
=
x
28
Ad esempio
essendo 12 = 3sdot2sdot2 ( ) 42
1
3
212
2
11
3
111212 ===φ sdotsdot
minussdot
minussdot
essendo 6=2sdot3 ( ) 22
1
3
26
2
11
3
1166 ===φ sdotsdot
minussdot
minussdot
se n=psdotq ( ) ( ) ( )11111
11
1 minussdotminusminussdotminussdot
minussdot
minussdot qp=q
q
p
pn=
qpn=nφ
Ovviamente se n egrave un numero primo = nndash1
Vale inoltre il seguente teorema di Eulero per ngt1 e per ogni altn e primo con n si ha
Ad esempio per n=6 ( ) 26 =φ infatti i primi con 6 sono 1 e 5 per il teorema di Eulero si ha
2mod1255
2mod1112
2
equiv=
equiv=
per n=5 ( ) 45 =φ e i primi con 5 sono 1 2 3 4 e per il teorema di Eulero si ha
5mod12564
5mod1813
5mod1162
5mod111
4
4
4
4
equiv=
equiv=
equiv=
equiv=
Si puograve notare come nel caso in cui n egrave un numero primo si ritrova il piccolo teorema di Fermat
Infatti per n primo ( )nφ = nndash1 e per il teorema di Eulero per ogni altn e primo con n Ricordiamo infatti
che il piccolo teorema di Fermat afferma che se n egrave un numero primo e a un intero minore di n allora egrave
divisibile per n che con il linguaggio dellrsquoaritmetica modulare diventa che puograve essere riscritto e se a egrave primo
con n allora egrave che egrave equivalente a
Infine si prova che per ogni altn e primo con esso esiste lrsquoinverso di a e esso egrave dato da ( ) 1minusnaφ Infatti
( ) ( ) na=aa nφnφ1mod1 equivsdot minus per il teorema di Eulero Si ricorda che lrsquoinverso di un numero a egrave quel numero che
moltiplicato per a dagrave 1 indicato convenzionalmente con andash1
Ad esempio per n=5 i primi con 5 sono 1 2 3 4 e per ognuno di questi esiste lrsquoinverso infatti
bull lrsquoinverso di 1 egrave ( ) 1mod51111 31415 equivminusminus ===φ
e infatti
bull lrsquoinverso di 2 egrave ( ) 3mod58222 31415 equivminusminus ===φ
e infatti
bull lrsquoinverso di 3 egrave ( ) 2mod527333 31415 equivminusminus ===φ
e infatti
bull lrsquoinverso di 4 egrave ( ) 4mod564444 31415 equivminusminus ===φ
Le funzioni unidirezionali
Chiamiamo funzione da un insieme A a un insieme B qualunque procedura che associa a ogni elemento
di un insieme A (detto dominio) uno e un solo elemento di un insieme B (detto condominio) In simboli f
A rarr B Se poi indichiamo con x il generico elemento dellrsquoinsieme A e con y il generico elemento dellrsquoinsieme B
la f indica la procedura che ad ogni xisinA associa un yisinB e cioegrave y=f(x) ad esempio ldquofare il doppio dihelliprdquo
29
prendendo come dominio e codominio lrsquoinsieme dei numeri interi egrave in questo senso una funzione percheacute dato
ad esempio il numero 3 lo trasforma nel numero 6 come 5 lo trasforma in 10 e cosigrave via
Molte funzioni matematiche sono cosiddette bidirezionali nel senso che egrave facile dato un determinato x
generare il corrispondente y ma egrave altrettanto facile invertire la funzione cioegrave ritrovare lrsquoelemento x originario a
partire dal suo corrispondente
Facciamo qualche esempio
bull funzione xrarr fare il doppiorarr 2sdotx= y 3rarr fare il doppiorarr 2sdot3 = 6
funzione inversa y=2sdotx rarr fare la metagraverarr x 6=2sdot3 rarr fare la metagraverarr 3
bull funzione xrarr fare il quadruplorarr 4sdotxrarr aggiungere 1rarr sdoty=4sdotx +1
5rarr fare il quadruplorarr 4sdot5rarr aggiungere 1rarr 4sdot5 +1=21
funzione inversa y=4sdotx +1rarr sottrarre 1rarr 4sdot xrarr dividere per 4rarr x
21=4sdot5 +1rarr sottrarre 1rarr 4sdot 5rarr dividere per 4rarr 5
Le funzioni unidirezionali sono invece quelle funzioni facilmente calcolabili ma che non si possono invertire
Le funzioni cosiddette pseudounidirezionali (dette anche funzioni trappola a molla segreta) sono invece
quelle funzioni facilmente calcolabili ma che non altrettanto facilmente si possono invertire a meno che non si
conoscano alcune informazioni (la molla segreta) utilizzate nella loro costruzione
Lrsquoaritmetica modulare gioca un ruolo determinante in questo caso infatti permette di trasformare
funzioni bidirezionali in funzioni pseudounidirezionali
Facciamo lrsquoesempio della funzione ldquofare il quadruplordquo in simboli f(x)=4sdotx Egrave facilmente calcolabile
percheacute dato x per ottenere f(x) basta moltiplicare per 4 ma egrave altrettanto facile calcolare la sua inversa percheacute
dato f(x) basta dividere per 4 per ottenere lrsquooriginario x Ma anche se non avessimo la procedura inversa di
dividere per 4 sarebbe facile ritrovare lrsquoelemento originario anche procedendo per tentativi ed eliminazione
infatti se per esempio f(x) =20 si puograve tentare x=3 in tal caso f(x)=12 troppo piccolo quindi x deve essere
maggiore di 3 Si puograve allora pensare a 6 ma f(x)=24 troppo grande quindi x deve essere minore di 6 e cosigrave via
Vediamo cosa accade se calcoliamo utilizzando una aritmetica modulare Per esempio consideriamo la
stessa funzione f(x)=4sdotx in una aritmetica modulo 7 Possiamo osservare che la funzione non si comporta piugrave in
modo regolare come prima per accorgersene basta costruire una tabella (tabella 8)
x 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
f(x)=4sdotx 4 8 12 16 20 24 28 32 36 40 44 48 52 56 60
f(x)=4sdotmod 7 4 1 5 2 6 3 0 4 1 5 2 6 3 0 4
Tabella 8 La funzione f(x)=4sdotx in una aritmetica modulo 7
Anche in questa semplice situazione egrave chiaro che egrave piugrave complicato invertire la funzione e pertanto i valori
di x sono molto meglio protetti Si puograve fare anche lrsquoesempio della funzione esponenziale f(x)=3 x (tabella 9)
Tabella 9 La funzione f(x)=3 x in aritmetica modulo 11
x 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
f(x)=x3 1 8 27 64 125 216 343 512 729 1000 hellip hellip hellip hellip hellip
f(x)=x3 mod 11 1 8 5 9 4 7 2 6 3 10 hellip hellip hellip hellip hellip
30
Il cifrario a chiave pubblica RSA
Uno dei piugrave noti sistemi crittografici a chiave pubblica che sfrutta le idee precedentemente descritte egrave il
metodo RSA proposto dai matematici R L Rivest A Shamir e L Adlemann nel 1978 Esso risolve il problema
dello scambio delle chiavi in quanto queste ultime sono conosciute solamente ai rispettivi proprietari che non le
hanno preventivamente concordate e scambiate
Illustriamo schematicamente come i due utenti Mitt e Dest possano scambiarsi un messaggio segreto
utilizzando il metodo RSA Entrambi Mitt e Dest indipendentemente lrsquouno dallrsquoaltro poi
1 scelgono in modo casuale due numeri primi p q grandi (di 200-300 cifre in base 10)
2 calcolano N = psdotq e Φ(N) = (pndash1)sdot(qndash1)
3 scelgono un intero eltΦ(N) e primo con Φ(N) tale numero e saragrave la chiave pubblica
4 calcolano il numero d inverso di e mod Φ(N) tale cioegrave che esdotdequiv 1mod Φ(N) tale numero d saragrave
la chiave privata
5 rendono pubblici i numeri N ed e
Mitt per spedire un messaggio a Dest compie le seguenti operazioni
1 codifica il messaggio in un modo standard usando i numeri lt N
2 trasforma ogni numero M di tale codifica in Me (mod N) e lo spedisce a Dest
per decodificare il messaggio ricevuto Me Dest calcola (Me)d =Mesdotd =Mndash1=M (modN) riottenendo il messaggio
originale
Figura 12 Schema di cifrario con metodo RSA
31
Figura 13 Esempio di applicazione di metodi RSA
In che cosa consiste la sicurezza del metodo Da quanto esposto si osserva che per decodificare il
messaggio bisogna
1 conoscere d (chiave segreta)
2 essendo d lrsquoinverso di e nellrsquoaritmetica mod Φ(N) essendo e noto egrave necessario conoscere Φ(N)
3 ma noto N per calcolare Φ(N) egrave necessario conoscere i fattori primi di N cioegrave egrave necessario fattorizzare
N che egrave un problema computazionalmente difficile per quanto osservato in precedenza
Anche se non egrave stato dimostrato che non si possa rompere il codice in altro modo e cioegrave senza conoscere Φ(N) e i
fattori di N a tuttrsquooggi si puograve affermare che la sicurezza del metodo dipende essenzialmente dai seguenti fatti
Per codificare il messaggio bisogna saper costruire dei numeri primi grandi e tale operazione egrave
computazionalmente veloce si puograve infatti dimostrare che la complessitagrave computazionale di opportuni test di
primalitagrave per stabilire se un numero n egrave primo utilizzando il linguaggio di quel ramo della matematica nota
come teoria della complessitagrave egrave ldquoquasi-polinomialerdquo
Per violare il sistema bisogna saper fattorizzare interi grandi ottenuti come prodotto di due primi tale
problema egrave computazionalmente ldquolentordquo cioegrave con il linguaggio della teoria della complessitagrave appartiene alla
classe dei problemi non polinomiali Tale marcata differenza tra la velocitagrave di esecuzione delle operazioni di
costruzione di numeri primi grandi e di fattorizzazione di interi grandi garantisce la sicurezza del metodo
almeno per un tempo sufficientemente lungo Ad esempio con la tecnologia attuale lrsquooperazione di
fattorizzazione di un intero di 140 cifre in base 10 prodotto di due numeri primi casuali calcolati in pochi
secondi su un computer disponibile in commercio richiede utilizzando vari supercomputers operanti
parallelamente circa un mese
La RSA Security Inc gestisce una sfida a livello mondiale ove vengono premiati coloro che fattorizzano
gli interi proposti da loro in una particolare lista Ad esempio il 3 dicembre del 2003 egrave stato fattorizzato
32
rsa576 =
188198812920607963838697239461650439807163563379417382700763356422988859715234
665485319060606504743045317388011303396716199692321205734031879550656996221305
168759307650257059
un numero di 174 cifre decimali prodotto di due primi di 87 cifre
p =
398075086424064937397125500550386491199064362342526708406385189575946388957261
768583317
q =
472772146107435302536223071973048224632914695302097116459852171130520711256363
590397527
Le chiavi attualmente utilizzate dallRSA sono a 309 cifre decimali
La firma digitale
Consideriamo al solito un mittente che deve inviare a un destinatario un messaggio m La codifica di m
con il metodo descritto assicura lrsquoautenticitagrave del messaggio ma non fornisce alcuna sicurezza sulla sua
paternitagrave Infatti il messaggio m pur essendo autentico potrebbe essere stato inviato da qualcuno che si spaccia
per il mittente Questa egrave unimportantissima questione particolarmente nella trasmissione di messaggi che oltre
a dover essere segreti devono garantire la loro origine
Si dovrebbe quindi disporre di un analogo della firma manuale detta appunto firma digitale La firma
digitale deve allora essere progettata in modo da possedere le stesse caratteristiche di una firma manuale e cioegrave
lrsquoautenticitagrave la non falsificabilitagrave e lrsquoimpossibiltagrave di essere riutilizzata Facciamo vedere come lo stesso metodo
RSA puograve essere utilizzato per progettare una firma digitale
La situazione egrave la seguente il mittente (di seguito indicato con Mitt) invia un messaggio m con la firma
F al destinatario (di seguito indicato con Dest) Siano a b rispettivamente le chiavi pubblica e segreta di MITT
siano e d rispettivamente le chiavi pubblica e segreta di DEST
La procedura per apporre la firma digitale F al messaggio m egrave illustrata nei seguenti passi riassunti nel
grafico della figura 14
1 Mitt cripta la firma F (cioegrave i suoi dati identificativi) usando la propria chiave segreta (b)
ottenendo Fb
2 il messaggio m con la firma F criptata viene ulteriormente criptato con la chiave pubblica di
Dest (e) ottenendo (m Fb)e
3 Dest decodifica il messaggio con la sua chiave segreta (d) ottenendo
((m Fb)e)d = (me F(be)) d =m(e d)F(be d) = mFb
in cui la firma di Mitt egrave ancora criptata
4 Dest decodifica la firma di Mitt con la chiave pubblica di Mitt (a) ottenendo
(Fb)a = F(ba) = F
33
Grafico firma digitale
Mitt
Dest
pubblica
Fb
e dpubblica
a
((Fb)e)d=(Fb)ed=(Fb)1=Fb
(Fb)a=(F)ba=(F)1=F
ab de
(Fb)e
codifica
codificadecodifica
decodifica
1
2
3
4
5
6
7
8
segreta
b
segreta
Figura 14 Grafico firma digitale
Bibliografia
Thomas Beth Comunicazioni e sicurezza su Internet in ldquoLe Scienzerdquo n 330 febbraio 1996
Brian Butterworth Intelligenza matematica Vincere la paura dei numeri scoprendo le doti innate della mente
Rizzoli Milano 1999
John H Conway Richard K Guy Il libro dei numeri Hoepli Milano 2003
Richard Courant Herbert Robbins Che cosrsquoegrave la matematica Boringhieri Torino 1971
Philip J Davis Il mondo dei grandi numeri Zanichelli Bologna 1973
Keith Devlin Dove va la matematica Bollati Boringhieri Torino 1994
Jean Dieudonneacute Lrsquoarte dei numeri matematica e matematici oggi Mondadori Milano 1989
Martin E Ellmann La crittografia a chiave pubblica in La matematica della complessitagrave Quaderni n 67
settembre 1992 Le Scienze
Paolo Ferragina Fabrizio Luccio Crittografia principi ndash Algoritmi ndash Applicazioni Bollati Boringhieri Torino
2001
Godfrey H Hardy Apologia di un matematico Garzanti Milano 1989
Morris Kline Storia del pensiero matematico Einaudi Milano 1991
Serge Lang La bellezza della matematica Bollati Boringhieri Torino 1991
Mauro Leoncini Modelli di calcolo e complessitagrave computazionale in La matematica computazionale Quaderni
n 84 giugno 1995 Le Scienze
Fabrizio Luccio e Linda Pagli P = NP in La matematica della complessitagrave Quaderni n 67 settembre 1992
Le Scienze
Piergiorgio Odifreddi La Matematica del Novecento dagli insiemi alla complessitagrave Einaudi Torino 2000
34
ldquoPeriodico di matematicherdquo Serie VII Volume 7 Numero 2-3 luglio-dicembre 2000 Mathesis
ldquoPeriodico di matematicherdquo Serie VIII Volume 1 Numero 1 gennaio-marzo 2001 Mathesis
Carl Pomerance Alla ricerca dei numeri primi in ldquoLe Scienzerdquo n 174 febbraio 1983
Simon Singh Codici e segreti la storia affascinante dei messaggi cifrati dallrsquoantico Egitto a Internet Rizzoli
Milano 1999
Marcus du Sautoy Lrsquoenigma dei numeri primi lrsquoipotesi di Riemann lrsquoultimo grande mistero della matematica
Rizzoli Milano 2004
Gary Stix I segreti meglio custoditi la crittografia quantistica egrave passata dalla teoria al laboratorio per
approdare finalmente alle applicazioni in ldquoLe Scienzerdquo n 438 febbraio 2005
7
numero ha dieci cifre ed era al di fuori della portata dei suoi calcoli Ma egrave un ottimo esempio per
convincerci che la veritagrave di una affermazione non puograve basarsi sulla verifica della sua validitagrave in alcuni casi
particolari
Oggi sappiamo che F(N) egrave composto per tutti i valori di N da 5 a 21 come pure per vari altri valori
e lrsquoipotesi piugrave diffusa ma non dimostrata egrave che F(N) sia composto per tutti i valori di Ngt4 sostenuta dal
fatto che non si egrave trovato sperimentalmente un F(N) con Ngt4 che sia primo
Carl Friedrich Gauss (1777-1855) riuscigrave a dimostrare che se lrsquoN-esimo numero di Fermat egrave primo
allora egrave possibile costruire geometricamente con riga e compasso un poligono regolare di N lati Dove per
riga si intende una riga non graduata che serva solo a tracciare linee rette e per compasso uno strumento
capace solo di tracciare circonferenze o archi di circon-ferenza e non per esempio di riportare misure In
questo modo allrsquoetagrave di soli 19 anni Gauss riuscigrave a costruire il poligono di 17 lati Allo stesso modo si
potrebbe costruire un poligono regolare di 65537 lati essendo questrsquoultimo un primo di Fermat
Marin Mersenne (1588-1648) egrave famoso fra lrsquoaltro per il suo ruolo di intermediario nella comunitagrave
scientifica internazionale del Seicento In assenza di periodici scientifici infatti diverse persone si
assunsero il compito di comunicare a un gran numero di corrispondenti ogni scoperta scientifica di cui
fossero venuti a conoscenza e Mersenne fu uno di questi A lui egrave dovuta la pubblicazione per la prima
volta di gran parte del lavoro di Fermat attraverso le sue lettere
Anche Mersenne venne preso dalla smania di trovare delle formule che producessero numeri primi
e in questa ricerca compilograve un elenco di numeri primi p per lrsquoesattezza p=2 3 5 7 13 17 19 31 67
127 257 per i quali riteneva che fosse primo anche il numero della forma M(p)= che viene oggi chiamato
numero di Mersenne Nessuno sa come Mersenne sia stato in grado di fare questa affermazione ma
comunque egli era sorprendentemente vicino alla veritagrave Soltanto nel 1947 quando comparvero le
calcolatrici da tavolo fu possibile verificare la sua asserzione Aveva fatto solo 5 errori M(67) M(257)
non sono primi M(61) M(89) M(107) sono primi
Si osserva facilmente come al crescere di p il numero M(p) diventi rapidamente molto grande
bull M(2)=22ndash1=3
bull M(3)=23ndash1=7
bull M(4)=24ndash1=15=3middot5
bull M(5)=25ndash1=31
bull M(6)=26ndash1=63=7middot3middot3
bull M(7)=27ndash1=127
bull M(8)=28ndash1=255=5middot3middot17
hellip
bull M(11)=211ndash1=2047=23middot89
hellip
bull M(17)=217ndash1=131071
8
E solo per alcuni valori di p essi sono primi per cui lrsquoidea sarebbe quella di cercare i valori di p per
cui M(p) egrave primo Ma ciograve non egrave facile percheacute la primalitagrave di p egrave condizione solo necessaria per la primalitagrave
di M(p) infatti egrave vero che
1 se M(p) egrave primo allora anche p egrave primo
2 se p non egrave primo allora M(p) non egrave primo vedi ad esempio M(4) M(6) M(8)
ma se p egrave primo non egrave detto che M(p) sia primo vedi ad esempio M(11)
A tuttrsquooggi non si sa se esista unrsquoinfinitagrave di numeri di Mersenne che siano primi (detti primi di
Mersenne) neacute se esista unrsquoinfinitagrave di numeri di Mersenne che non siano primi anche se entrambe le
asserzioni appaiono verosimili Infatti aumentando le capacitagrave di calcolo dei calcolatori aumenta il
numero dei primi di Mersenne conosciuti (tabella 1) La ricerca di primi di Mersenne sempre piugrave grandi ha
valore di semplice curiositagrave ma il loro calcolo egrave utile per la misurazione della potenza di calcolo dei
calcolatori Per esempio per dimostrare che il numero di Mersenne M8191 di 2466 cifre non egrave primo usando
il test di Lucas-Lehmer ci vollero 100 ore la prima volta nel 1953 sul computer ILLIAC-I Da allora il
tempo di calcolo egrave sceso drasticamente da 5 a 2 ore su un IBM 7090 40 minuti su un ILLIAC-II da 3 a un
minuto su un IBM 360-91 e 10 secondi su un CRAY-I
valore di p 2p-1 anno autore computer 2 3 3 7 5 31 7 127 13 8191 1461 anonimo 17 131071 1588 Pietro Antonio Cataldi 19 524287 1588 Pietro Antonio Cataldi 31 2 147 483 647 1750 Leonhard Euler 61 19 cifre 1883 I M Pervushin calcolatore meccanico 89 27 cifre 1911 R E Powers calcolatore meccanico 107 33 cifre 1914 R E Powers calcolatore meccanico 127 39 cifre 1876-1914 Francois Edouard Anatole Lucas calcolatore meccanico 521 157 cifre 30 gennaio
1952 Raphael M Robinson SWAC
607 183 cifre 30 gennaio 1952
Raphael M Robinson SWAC
1279 386 cifre 25 giugno 1952
Raphael M Robinson SWAC
2203 664 cifre 7 ottobre 1952
Raphael M Robinson SWAC
2281 687 cifre 9 ottobre 1952
Oct 9 Raphael M Robinson SWAC
3217 969 cifre 1957 Hans Riesel BESK 4253 1281 cifre 1961 Alexander Hurwitz e John L
Selfridge IBM 7090
4423 1332 cifre 1961 Alexander Hurwitz e John L Selfridge
IBM 7090
9689 2917 cifre 1963 Donald B Gillies ILLIAC 2 9941 2993 cifre 1963 Donald B Gillies ILLIAC 2 11213 3376 cifre 1963 Donald B Gillies ILLIAC 2 19937 6002 cifre 1971 Bryant Tuckerman IBM 36091
9
valore di p 2p-1 anno autore computer 21701 6533 cifre 1978 Landon Curt Noll e Laura A
Nickel Cyber 174
23209 6987 cifre 1979 Landon Curt Noll Cyber 174 44497 13395 cifre 1979 David Slowinski e Harry L
Nelson Cray 1
86243 25962 cifre 1982 David Slowinski Cray 1 110503 33265 cifre 1988 Walter N Colquitt e Luther
Welsch Jr
132049 39751 cifre 1983 David Slowinski Cray X-MP 216091 65050 cifre 1985 David Slowinski Cray X-MP 756839 227832 cifre 1992 David Slowinski e Paul Gage Cray 2 859433 258716 cifre 1994 David Slowinski e Paul Gage Cray C90 1257787 378632 cifre 1996 David Slowinski e Paul Gage Cray T94 1398269 420921 cifre 1996 Joel Armengaud George
Woltman e GIMPS PC Pentium 90
2976221 895932 cifre 1997 Gordon Spence George Woltman e GIMPS
PC Pentium 100
3021377 909526 cifre 1998 Roland Clarkson Woltman Scott Kurowski e GIMPS
Pentium 200
6972593 2098960 cifre 1999 Nayan Hajratwala Woltman Kurowski e GIMPS
Pentium II 350
13466917 4053946 cifre 2001 Michael Cameron e GIMPS 800 MHz AMD T-Bird PC
20996011 6320430 cifre 2003 Michael Shafer e GIMPS 2 Gh Pentium 4 Dell Dimension PC
24036583 7235733 cifre 2004 Josh Findley e GIMPS 24 GHz Pentium 4 Windows XP PC
25964951 7816230 cifre 2005 Martin Nowak e GIMPS 24 GHz Pentium 4 Windows XP PC
30402457
9152052 cifre
2005 Curtis Cooper Steven Boone CMSU e GIMPS
Lavoro coordinato di 700 computers
GIMPS = Great Internet Mersenne Prime Search (wwwmersenneorg)
Tabella 1 La ricerca dei numeri primi di Mersenne
Unrsquoaltra notevole formula che dagrave luogo a molti numeri primi fu scoperta da Eulero nel 1772 La
formula x2+x+41 fornisce il seguente elenco di numeri primi inserendo tutti i numeri compresi fra 0 e 39
41 43 47 53 61 71 83 97 113 131 151 173 197 223 251 281 313 347 383 421 461 503
547 593 641 691 743 797 853 911 971 1033 1097 1163 1231 1301 1373 1447 1523 1601
Eulero comprese che il processo era destinato a interrompersi a un certo punto Infatti per x=41 si
ha
412+41+41 = 412+2middot41 = 41middot (41+2) = 41middot43
che non egrave primo ma anche per x=40 il numero che si ottiene non egrave primo infatti
402+40+41= 40 middot (40+1)+(40+1)=(40+1) middot (40+1)
Ciononostante Eulero fu molto colpito dalla capacitagrave della sua formula di produrre tanti numeri
primi da domandarsi per quali altri numeri diversi da 41 si sarebbe potuto ottenere un risultato simile
Scoprigrave che si poteva scegliere anche n=2 3 5 11 17 percheacute la formula x2+x+n producesse numeri primi
per ogni valore di x compreso fra 0 e nndash2
10
Possiamo concludere che la ricerca di formule semplici che producano soltanto numeri primi egrave stata
inutile ed egrave ancora meno probabile che conduca a buoni risultati il tentativo di trovare una formula che
produca tutti i numeri primi Lo stesso Eulero nel 1751 scriveva ldquoci sono alcuni misteri che la mente
umana non penetreragrave mai Per convincercene non dobbiamo far altro che gettare unrsquoocchiata alle tavole dei
numeri primi Ci accorgeremo che non vi regna neacute ordine neacute leggerdquo
La svolta di Gauss
Il passo decisivo nella ricerca di una legge da cui dipenda la distribuzione dei numeri primi fu
compiuto quando si rinunciograve agli inutili tentativi di trovare una formula che generasse tutti i numeri primi o
desse il numero esatto di essi contenuti nei primi n numeri interi A compiere la svolta fu Gauss il quale
affrontograve il problema da un altro punto di vista Infatti egli si chiese se era possibile prevedere non quale
fosse la posizione di un numero primo rispetto a quello precedente ma se era possibile prevedere quanti
fossero i numeri primi minori o uguali a un certo numero x Egli introdusse a tale scopo la funzione )(xπ =
numero dei primi minori o uguali a x e poteacute verificare per esempio che 4)10( =π percheacute i numeri primi
minori o uguali a 10 sono 2 3 5 7 e cioegrave 4 e la distanza media tra due numeri primi successivi
nellrsquointervallo tra 1 e 10 egrave 104 uguale a 25 Nella tabella 2 sono riportati alcuni valori della funzione e
della distanza media
Tabella 2 Alcuni valori della fiunzione )(xπ
Osservando tali risultati egli notograve che ogni volta si moltiplica x per 10 si aggiunge 23 al rapporto
xπ(x) almeno per x abbastanza grande Proprio questo legame tra moltiplicazione e addizione (che egrave la
relazione racchiusa in un logaritmo) e il fatto che 23 egrave approssimativamente il valore rappresentato dal
portarono Gauss a ipotizzare che
( )x
x
xlog=
π
Da cui
11
( )( )x
xx
logcongπ
Questa congettura si rivelograve poi vera e oggi egrave nota come teorema dei numeri primi Una notevole
conseguenza del teorema dei numeri primi egrave che ldquola probabilitagrave che un numero intero di x cifre preso a
caso sia primo egrave circa 1log(10x)rdquo Infatti lrsquoespressione
( )( )x
xx
logcongπ
in altre parole significa che nellrsquointervallo tra 1 e x si incontra un primo circa ogni log(x) e cioegrave la
probabilitagrave che nellrsquointervallo dei numeri le x un numero preso a caso sia primo egrave 1log(x) Ad esempio
nellrsquointervallo dei numeri minori di 10 000 000 uno ogni log(10 000 000) egrave primo Essendo
log(10 000 000) = log(107) = 7log(10) asymp 1611hellip ciograve vuol dire che dei numeri minori di 10 000 000 circa 1
su 16 egrave primo e perciograve crsquoegrave circa una probabilitagrave su 16 che un numero di 7 cifre sia primo
Al momento attuale molti sono i problemi non ancora risolti Tra questi ricordiamo
1 la congettura dei primi gemelli esistono infiniti numeri primi p tali che p+2 egrave ancora
primo Ad esempio 3 e 3+2 5 e 5+2 17 e 17+2 29 e 29+2 ecc
2 la congettura di Goldbach ogni intero pari maggiore di 2 puograve essere scritto come somma di
due numeri primi Ad esempio 4 = 2+2 6 = 3+3 8 = 3+5 10 = 5+5 12 = 5+7 ecc
La difficoltagrave fondamentale di tali problemi risiede nel fatto che i numeri primi sono definiti
mediante proprietagrave moltiplicative mentre i problemi in questione coinvolgono proprietagrave additive
Di gran lunga il piugrave importante tra i problemi non risolti egrave quello che va sotto il nome di ipotesi di
Riemann anche percheacute fu proprio la novitagrave del metodo in essa contenuto a far compiere il passo decisivo
per la dimostrazione del teorema dei numeri primi compiuta indipendentemente lrsquouno dallrsquoaltro nel 1896
dai matematici Jacques Hadamard e Charles de la Valleacutee-Poussin
Ricordiamo che lrsquoipotesi di Riemann inserita allrsquoottavo posto nellrsquoelenco dei famosi ventitreacute
problemi irrisolti presentati da David Hilbert al Congresso internazionale dei matematici del 1900 e
lanciati come sfida alla comunitagrave dei matematici del ventesimo secolo egrave ancora rimasto tale cioegrave senza
dimostrazione
Egrave oggi considerato uno dei problemi piugrave difficili del nuovo millennio Nel 2000 il Clay Mathematics
Institute ha offerto un milione di dollari a chi riusciragrave a darne una dimostrazione
Grazie ai calcolatori attualmente egrave stato possibile verificare tali congetture in moltissimi casi Ad
esempio la congettura di Goldbach egrave stata verificata per tutti i pari fino a 100 milioni mentre lrsquoipotesi di
Riemann egrave stata verificata per un miliardo e mezzo di casi ma ciograve non egrave sufficiente per dimostrarne la
veritagrave Ed egrave proprio questo quello che distingue la matematica dalle altre scienze dove una qualsiasi
ipotesi sostenuta da verifiche sperimentali egrave ritenuta valida fincheacute non contraddetta da un caso contrario
mentre in matematica un solo caso contrario serve a dimostrare la falsitagrave dellrsquoipotesi la cui veritagrave per
contro deve essere dimostrata per tutti i casi possibili il che ovviamente puograve avvenire solo
indipendentemente dalle verifiche di casi particolari anche se molti
12
Ed egrave questa una delle peculiaritagrave piugrave belle della matematica Qualsiasi affermazione dimostrata egrave
eterna e immutabile si pensi allrsquoinfinitagrave dei numeri primi ciograve egrave vero per Euclide ma rimane vero ancora
oggi senza possibilitagrave di smentite
Come ebbe a dire il matematico Hermann Hakel ldquoNella maggior parte delle scienze una
generazione demolisce quello che laltra ha costruito e ciograve che uno ha fatto un altro lo disfa Solo nella
matematica ogni generazione aggiunge un nuovo piano alla vecchia strutturardquo
E che ciograve susciti lrsquoidea della bellezza egrave bene sintetizzato dalle parole di Bertrand Russell ldquoLa
matematica vista dalla giusta angolazione non possiede solo la veritagrave ma la suprema bellezza una
bellezza fredda e austera come quella della scultura una bellezza che non fa appello ai nostri sentimenti
piugrave grossolani che non ha gli ornamenti sgargianti della musica o della pittura una bellezza pura e
sublime capace della rigorosa perfezione che egrave propria solo della piugrave grande arterdquo
Anche se non egrave possibile presentare in termini semplici lrsquoipotesi di Riemann in quanto coinvolge
concetti di matematica superiore proviamo a delinearne le linee essenziali
Nel 1737 Eulero introdusse e studiograve una funzione detta funzione ζ (zeta) di Eulero cosigrave definita
sum+infin
=
gtisin++++==1
1 4
1
3
1
2
11
1)(
nxxxx
xRxperdefinitan
xζ
e sempre a Eulero egrave dovuta la seguente identitagrave
( )
1
111
11
17
7
15
5
13
3
12
2 prod
minus=sdot
minussdot
minussdot
minussdot
minussdot
minus=
px
x
x
x
x
x
x
x
x
x
x
x
p
pxζ
dove il prodotto egrave esteso a tutti i numeri primi
Ed egrave proprio questa identitagrave che egrave alla base della notevole importanza assunta dalla funzione ζ nella
teoria dei numeri e in particolare per quanto riguarda la distribuzione dei numeri primi nellrsquoinsieme dei
naturali Infatti a destra di essa appaiono esplicitamente i numeri primi mentre a sinistra compare la
funzione ζ definita indipendentemente da essi
Riemann nel 1859 propose di considerare la funzione ζ come funzione di variabile complessa
cioegrave definita per x numero complesso ed effettuograve il cosiddetto prolungamento analitico di ζ allrsquointero piano
complesso costruendo la nuova funzione ζ oggi nota come funzione zeta di Riemann Egli provograve che gli
zeri della funzione ζ (cioegrave i valori della variabile per cui la funzione restituisce il valore 0) sono x = ndash2
x = ndash4 x = ndash6hellip detti zeri banali di ζ e alcuni numeri complessi (non reali) x con parte reale compresa tra
0 e 1 estremi inclusi Lrsquoipotesi di Riemann afferma che tutti gli zeri non banali di ζ hanno la caratteristica
di avere la parte reale uguale a 21
Dalla validitagrave di questa ipotesi discende una serie enorme di proprietagrave sui numeri primi Ci sono
attualmente centinaia di ldquoquasi teoremirdquo che iniziano con ldquosupponiamo che lrsquoipotesi di Riemann sia
verahelliprdquo Se lrsquoipotesi venisse dimostrata tutti questi ldquoquasi teoremirdquo diventerebbero veri teoremi
13
I test di primalitagrave e la fattorizzazione
Abbiamo fin qui concentrato lrsquoattenzione sul comportamento dei numeri primi ma come egrave possibile
preso un intero a caso x provare se x egrave primo o composto
Il metodo piugrave ovvio consiste nel dividere il numero x per tutti gli interi che lo precedono Infatti se
una qualunque di tali divisioni dagrave resto zero il numero x egrave composto e divisore e quoziente sono suoi
fattori mentre se nessuna di tali divisioni per ciascuno degli interi minori x dagrave resto zero il numero x egrave
primo
In effetti la procedura delle divisioni puograve essere interrotta allrsquointero minore della in quanto se x egrave
composto esso saragrave il prodotto di almeno due fattori per esempio x= F1sdotF2 ed essendo x=x sdot x se
F1gt x F2 lt x Ad esempio 29= 2929 sdot e 529 cong quindi si puograve fermare la procedura quando il
divisore egrave 5 Infatti 292 dagrave resto 1 293 dagrave resto 2 294 dagrave resto 1 295 dagrave resto 4 Si puograve quindi
concludere che 29 egrave primo percheacute se avesse avuto un fattore maggiore di 5 ne avrebbe avuto sicuramente
uno minore di 5 il che non egrave
Ma anche limitando le divisioni alla radice quadrata lrsquoalgoritmo sarebbe comunque inapplicabile
percheacute per giungere a conclusione richiede un tempo che cresce esponenzialmente al crescere del numero
di cifre di n pertanto puograve risultare intollerabilmente lungo anche con gli strumenti di calcolo piugrave veloci
anni secoli piugrave della vita presunta dellrsquoUniverso Ad esempio egrave stato dimostrato che il numero 244 497ndash1
formato da 13 595 cifre egrave primo Se un calcolatore fosse in grado di controllare un milione di divisioni al
secondo e si fermasse alla radice quadrata del numero egrave stato calcolato che gli occorrerebbero 106684 anni
per espletare il suo compito Lrsquoinconveniente deriva dal fatto che il metodo delle divisioni non solo ci dice
se il numero egrave primo o composto ma risolve anche il problema della fattorizzazione di un numero in
quanto nel caso in cui il numero risulta composto ci fornisce i fattori della sua scomposizione
A tuttrsquooggi egrave facile trovare numeri primi grandi o testare la primalitagrave di un numero mentre egrave
difficile fattorizzare un intero che sia il prodotto di due numeri primi grandi Ovviamente i termini ldquofacilerdquo
ldquodifficilerdquo ldquogranderdquo sono relativi alla conoscenza e alla tecnologia disponibili Attualmente sono
considerati ldquograndirdquo numeri di alcune centinaia di cifre mentre ldquofacilerdquo rappresenta un tempo di secondi e
ldquodifficilerdquo di secoli
Lrsquoefficacia dei test di primalitagrave attualmente usati dipende dal fatto che egrave possibile stabilire se un
numero egrave primo senza essere costretti a trovarne i fattori qualora risultasse composto Alcuni metodi usati
sono di tipo probabilistico cioegrave stabiliscono che un intero egrave probabilmente primo con una probabilitagrave di
errore che si puograve rendere piccola quanto si vuole
Il piugrave semplice al tempo stesso velocissimo e potente si basa sul piccolo teorema di Fermat Il
teorema stabilisce che se p egrave un numero primo e a un intero minore di p allora apndasha egrave un multiplo di p cioegrave
egrave divisibile per p
Ad esempio
bull se p=7 e a=2 allora 27ndash2=128ndash2=126=7middot18 cioegrave multiplo di 7
bull se p=7 e a=3 allora 37ndash3=2187ndash3=2184=7middot312 cioegrave multiplo di 7
14
bull se p=7 e a=4 allora 47ndash4=16384ndash4 = 16380 = 7middot2340 cioegrave multiplo di 7
bull se p=5 e a=4 allora 45ndash4=1024ndash4=1020=5middot204 cioegrave multiplo di 5
bull se p=3 e a=4 allora 43ndash4=64ndash4=60=3middot20 cioegrave multiplo di 3
Lrsquoimportanza del teorema sta nel fatto che ci fornisce un metodo per stabilire se un numero egrave primo
o no infatti costruiamo un numero del tipo apndasha verifichiamo se egrave multiplo di p se non lo egrave siamo sicuri
che p non egrave primo Ad esempio vogliamo sapere se 15 egrave primo costruiamo
215ndash2=32768ndash2=32766
32766=15middot2184+6
cioegrave non egrave divisibile per 15 quindi sicuramente 15 egrave composto e infatti 15=3middot5
Ma cosa si puograve dire se invece apndasha egrave divisibile per p Sfortunatamente non possiamo essere sicuri
che p sia primo anche se egrave molto probabile che lo sia
Proviamo 217ndash2=131072ndash2=131070=17middot7710 e infatti 17 egrave primo Provando 2341ndash2 si trova che
esso egrave divisibile per 341 ma 341 non egrave primo essendo 341=11middot31 Sono detti pertanto pseudoprimi i
numeri composti che passano il test Non proviamo a calcolare 2341 percheacute sarebbe un numero
mostruosamente grande fuori dalla nostra portata ma vedremo tra poco come si puograve aggirare lrsquoostacolo
Riassumendo il piccolo teorema di Fermat afferma che egrave vero
1 se p egrave primo e a egrave un intero minore di p allora apndasha egrave divisibile per p
2 se apndasha non egrave divisibile per p allora p non egrave primo
ma se apndasha egrave divisibile per p allora p puograve essere primo ma anche composto ciograve percheacute la divisibilitagrave per p
egrave condizione necessaria ma non sufficiente percheacute p sia primo Concludendo possiamo dire che usando
questo teorema per verificare la primalitagrave di un numero se scopriamo che ap-a non egrave divisibile per p siamo
sicuri che p egrave composto ma se egrave divisibile per p allora p egrave probabilmente primo nel senso che puograve essere
un primo autentico o pseudoprimo
La cosa interessante egrave che la probabilitagrave che un numero composto sia uno pseudoprimo (cioegrave che
superi il test di primalitagrave ma non sia primo come per esempio 341) su una base casuale diminuisce
fortemente allrsquoaumentare del numero Un numero di 1000 cifre composto ha circa una possibilitagrave su 10123
di essere uno pseudoprimo su una base scelta a caso La tabella 3 riporta tali probabilitagrave in funzione del
numero di cifre
Cifre in x Limite superiore per P(x)
Cifre in x Limite superiore per P(x)
Cifre in x
Limite superiore per P(x)
60 00716 80 00000846 100 00000000277
120 528middot10ndash12 150 149middot10ndash17 200 385middot10ndash27
300 58middot10ndash29 400 57middot10ndash42 500 23middot10ndash55
700 18middot10ndash82 1000 12middot10ndash123 2000 86middot10ndash262
5000 76middot10ndash680 10000 16middot10ndash1331 100000 13middot10ndash10584
Tabella 3 Probabilitagrave che un numero composto sia pseudoprimo
Nel 2002 tre ricercatori indiani Manindra Agrawal Neeraj Kayal e Nitin Saxena hanno costruito un
algoritmo denominato AKS (dalle iniziali dei nomi) sempre basato sulla fondamentale proprietagrave enunciata dal
15
piccolo teorema di Fermat ma che risulta deterministico e che riduce in maniera drastica il tempo di calcolo
Lrsquoalgoritmo fornisce una svolta significativa in un settore lungamente atteso e di grande interesse pratico ma
per ora non sembra che possa avere immediata applicazione in quanto molto piugrave lento dei test probabilistici i
quali drsquoaltra parte sono quasi certi per i numeri primi di centinaia di cifre che servono attualmente in
crittografia
Storia della crittografia
La crittografia che letteralmente significa scrittura nascosta nasce dalla necessitagrave di segretezza di alcune
informazioni e pertanto con tale termine intendiamo lo studio dei metodi che consentono la trasmissione sicura
dellrsquoinformazione
Drsquoaltro canto lrsquoesistenza di informazioni segrete genera il desiderio di svelarle e da tale desiderio nasce
la crittoanalisi con cui intendiamo lo studio di metodi che consentono la decifrazione dei messaggi crittografati
La storia della crittografia drsquoaltra parte altro non egrave che la secolare battaglia tra crittografi e crittoanalisti
Infatti ogni sistema crittografico rimane valido fincheacute un crittoanalista non individua un suo punto debole sulla
base del quale riesce a elaborare il sistema di decifrazione
Crittografi e crittoanalisti insieme hanno dato un grande contributo al progresso scientifico e tecnologico
Infatti tutti i metodi della crittografia e della crittoanalisi fanno ricorso a metodi e strumenti di una vasta varietagrave
di scienze come la matematica la linguistica la teoria dellrsquoinformazione la fisica quantistica le quali a loro
volta sono da essi arricchite e stimolate
Lrsquoidea su cui si basa un metodo crittografico consiste nel concordare tra mittente e destinatario che
vogliono scambiarsi un messaggio senza che venga intercettato da terzi una procedura per alterare il testo in
chiaro del messaggio Il destinatario puograve ricavare il testo originale applicando al testo cifrato la procedura
inversa Chi intercetta il messaggio non conoscendo la procedura non puograve ricostruire il messaggio La sicurezza
del metodo sta nella difficoltagrave da parte del crittoanalista di poter ricostruire la procedura dallrsquoanalisi del
messaggio cifrato
Prima dellrsquoera informatica i metodi crittografici erano essenzialmente due per trasposizione o per
sostituzione
Nella trasposizione le lettere sono mutate di posto generando di fatto un anagramma Ma la
trasposizione non puograve essere casuale Infatti nel caso di messaggi brevi non sarebbe sicura in quanto i pochi
caratteri alfabetici che costituiscono il messaggio possono essere combinati in pochi modi diversi per cui
diventa facile ricostruire il messaggio per tentativi Ad esempio la parola ldquomiordquo consta di 3 caratteri alfabetici
esistono al massimo sei sequenze diverse mio moi imo iom omi oim analizzandole tutte e sei egrave facile
ricostruire la sequenza ldquomiordquo Ma al crescere della lunghezza del messaggio cresce mostruosamente anche il
numero delle sequenze infatti un anagramma di una parola di n lettere altro non egrave che una permutazione di n
elementi e si dimostra che il numero totale delle permutazioni di n elementi egrave dato da n (si legga n fattoriale)
uguale al seguente prodotto n(nndash1)(nndash2)(nndash3)hellip(nndash (nndash1)) Pertanto se il messaggio egrave costituito ad esempio da
20 lettere i possibili anagrammi sono 20=20middot19middot18middot17middot16middot15middot14middot13middot12middot11middot10middot9middot8middot7middot6middot5middot4middot3middot2middot1 cioegrave piugrave di 1000
miliardi e anche se si potesse controllare un anagramma al secondo ci vorrebbero piugrave di trentuno secoli per
analizzarli tutti In questo caso la comunicazione risulterebbe sicura essendo impossibile analizzare tutte le
16
possibili sequenze e ricostruire il messaggio ma di fatto egrave inutilizzabile anche dal destinatario percheacute di fronte
allo stesso problema
Per rendere efficace tale metodo egrave necessario che mittente e destinatario si accordino su un criterio di
trasposizione fissato in anticipo e piugrave egrave complicato tale criterio e piugrave egrave sicuro il metodo
Esiste il metodo della trasposizione cosiddetta a inferriata Esso consiste nella trascrizione di un testo
lungo due linee orizzontali una superiore e una inferiore passando da una allrsquoaltra a ogni successivo carattere
alfabetico Finita la trascrizione la seconda fila di caratteri saragrave accodata alla prima per dare origine al testo
cifrato Ad esempio
testo del messaggio incontriamoci stasera alle sette
testo del messaggio cifrato icnraoitsralstenotimccsaealeet
Il destinatario ricostruisce il testo originale applicando la trasposizione inversa
Esistono molti altri tipi di trasposizione per esempio si puograve variare il numero delle file su cui trascrivere
il messaggio oppure si puograve passare da una fila allrsquoaltra ogni due caratteri anzicheacute dopo ogni singolo carattere e
cosigrave via Da osservare che ogni carattere alfabetico mantiene la propria identitagrave ma cambia la posizione
Nella sostituzione ogni carattere alfabetico del messaggio originale viene sostituito con un altro carattere
alfabetico secondo un criterio stabilito In questo caso ogni carattere alfabetico mantiene la posizione ma
cambia la propria identitagrave
Sostanzialmente esso necessita di determinare come primo passo un alfabeto cifrante che egrave ottenuto
rimescolando secondo un criterio lrsquoalfabeto ordinario In questo modo a ogni carattere dellrsquoalfabeto ordinario
corrisponde un carattere dellrsquoalfabeto cifrante Per cifrare il messaggio si sostituisce ogni carattere del messaggio
con il corrispondente carattere dellrsquoalfabeto cifrante Per decifrare il messaggio si applica la procedura inversa
Il primo esempio documentato di cifratura per sostituzione si trova nel De bello gallico di Giulio Cesare
detto anche cifrario di Cesare Qui lrsquoalfabeto cifrante era ottenuto da quello ordinario spostando a destra di tre
posti ogni carattere alfabetico ad esempio per cifrare il messaggio si sostituisce ogni lettera con la
corrispondente dellrsquoalfabeto cifrante (figura 2)
17
Figura 2 Cifrario di Giulio Cesare
Per decifrare si sostituisce ogni lettera del messaggio cifrato utilizzando la corrispondenza inversa
Come si puograve facilmente osservare in questo metodo lrsquoalfabeto cifrante altro non egrave che una
riorganizzazione dellrsquoalfabeto ordinario che si puograve ottenere con un qualsiasi spostamento tra 1 e il numero delle
lettere dellrsquoalfabeto ordinario Per esempio nel caso dellrsquoalfabeto italiano che consta di 21 lettere si possono
effettuare 20 diversi spostamenti e ottenere quindi 20 diversi alfabeti cifranti Essendo lrsquoalfabeto cifrante una
riorganizzazione dellrsquoalfabeto ordinario non egrave detto che questa debba essere ottenuta utilizzando il criterio
dello spostamento ma puograve coincidere con un qualsiasi anagramma dellrsquoalfabeto ordinario Si vede quindi
facilmente come aumentano gli alfabeti cifranti nel nostro caso il loro numero per quanto detto
precedentemente uguaglia il numero delle permutazioni di 21 elementi e cioegrave 21 e cioegrave oltre 50 miliardi di
miliardi
A partire da questo esempio cerchiamo di chiarire in termini generali il significato di metodo
crittografico intendendo con esso un algoritmo che mediante una chiave trasforma un messaggio in chiaro in
un messaggio cifrato o crittogramma
Ad esempio nel metodo descritto sopra lrsquoalgoritmo equivale alla procedura con cui ogni lettera
dellrsquoalfabeto in chiaro egrave sostituita dalla corrispondente lettera dellrsquoalfabeto cifrante la chiave equivale al
particolare alfabeto cifrante scelto per la cifratura o decifrazione di un particolare crittogramma
Inoltre crsquoegrave da sottolineare lrsquoimportanza concettuale della distinzione tra algoritmo e chiave Infatti la sola
conoscenza dellrsquoalgoritmo senza la chiave non permette di decifrare il crittogramma Ed egrave questo uno dei
principi fondamentali della crittografia formulato in modo definitivo nel 1883 dallrsquoolandese Auguste
Kerckhoffs von Nieuwenhof noto anche come legge di Kerckhoffs ldquola sicurezza di un crittosistema non deve
dipendere dal tener celato il crittoalgoritmo La sicurezza dipenderagrave solo dal tener celata la chiaverdquo
Le caratteristiche di un efficace sistema crittografico possono essere riassunte nelle seguenti
1 segretezza della chiave
2 semplicitagrave della chiave (per evitare possibili malintesi o errori al momento dello scambio tra
mittente e destinatario)
3 alto numero di potenziali chiavi tra cui scegliere
18
Come si puograve notare la 2) e la 3) sono collegate tra loro infatti nel sistema descritto sopra si potrebbe
scegliere una chiave piugrave semplice sacrificando il numero di chiavi potenziali
Infatti invece di generare lrsquoalfabeto cifrante da una riorganizzazione casuale dellrsquoalfabeto ordinario lo si
puograve fare a partire da una parola chiave come nel seguente esempio Supponiamo di accordarci sulla parola
chiave lsquolaurarsquo si eliminano eventuali spazi e lettere ripetute quindi la parola chiave diventa lsquolaurrsquo a questo
punto la sequenza l a u r saragrave lrsquoinizio dellrsquoalfabeto cifrante cui seguiranno tutte le altre lettere mancanti in
ordine alfabetico partendo dallrsquoultima lettera della chiave per cui lrsquoalfabeto cifrante che si ottiene saragrave l a u r s t
v z b c d e f g h i m n o p q
I crittosistemi basati sulla sostituzione hanno dominato la scena per tutto il primo millennio della nostra era
fincheacute i crittoanalisti non trovarono il suo punto debole ed elaborarono un metodo per decifrarne i crittogrammi prodotti
La violazione di tali sistemi si basa su unrsquoidea dovuta per prima a crittoanalisti arabi nella quale si
combinano conoscenze di linguistica statistica e matematica nota con il nome di analisi delle frequenze
Essa egrave descritta dallo studioso del IX secolo Abu Yusuf ibn Ishaq al-Kind sopran-nominato il filosofo
degli arabi in una sua monografia dal titolo Sulla decifrazione dei messaggi crittati ritrovata nellrsquoarchivio
ottomano Sulaimaniyyah di Istanbul solo nel 1987 Nel testo si legge
Un modo di svelare un messaggio crittato se conosciamo la lingua dellrsquooriginale consiste nel trovare
un diverso testo chiaro nella stessa lingua abbastanza lungo da poter calcolare la frequenza di ciascuna
lettera
Chiamiamo ldquoprimardquo quella che compare piugrave spesso ldquosecondardquo quella che la segue per frequenza
ldquoterzardquo la successiva e cosigrave via fino a esaurire tutte le lettere del campione di testo chiaro
Esaminiamo poi il testo in cifra che vogliamo interpretare ordinando (in base alla frequenza) anche i
suoi simboli Troviamo il simbolo piugrave comune e rimpiazziamolo con la ldquoprimardquo lettera dellrsquoesempio
chiaro il simbolo che lo segue per frequenza sia rimpiazzato dalla ldquosecondardquo lettera il successivo simbolo
piugrave comune sia rimpiazzato dalla ldquoterzardquo e cosigrave via fino ad aver preso in considerazione tutti i simboli del
crittogramma che intendevamo svelare
Tabella 4 Frequenze delle diverse lettere in italiano
Per superare lrsquoanalisi delle frequenze furono ideati diversi nuovi metodi crittografici tra cui ricordiamo
1 il metodo di sostituzione omofonica
2 il metodo di sostituzione polialfabetica
19
Il metodo di sostituzione omofonica consiste nel sostituire ogni lettera con un numero di simboli per
esempio numeri proporzionale alla sua frequenza Cosigrave ad esempio la lettera a avendo una frequenza di 11 74
viene sostituita da 11 simboli la lettera b con un solo simbolo la lettera c con 4 simboli ecc secondo la tabella 5
Il metodo di sostituzione polialfabetica consiste nellrsquouso di piugrave alfabeti cifranti su unrsquoidea di Leon
Battista Alberti che propose di utilizzarne due Lrsquoalgoritmo consiste nel sostituire la prima lettera del messaggio
in chiaro con la corrispondente del I alfabeto cifrante la seconda lettera con la corrispondente del II alfabeto
cifrante la terza con la corrispondente del I e cosigrave via passando alternativamente dal I alfabeto al secondo Come
nellrsquoesempio della figura 3
Tabella 5 Corrispondenza lettere e simboli nella sostituzione omofonica
Figura 3 Il metodo di sostituzione polialfabetica
Su tale idea si basa il metodo di Blaise de Vigenegravere diplomatico francese nato nel 1523 il quale utilizza
tanti alfabeti cifranti quante sono le lettere dellrsquoalfabeto in chiaro ad esempio nellrsquoalfabeto italiano che consta
di 21 lettere utilizza 21 alfabeti cifranti
Il primo passo consiste nel costruire la tavola di Vigenegravere in cui nella prima riga egrave riportato lrsquoalfabeto in
chiaro e in ognuna delle 21 righe successive egrave riportato un alfabeto cifrante spostato di una lettera rispetto a
quello della riga precedente cosigrave nella riga 1 egrave riportato lrsquoalfabeto spostato di una lettera nella riga 2 quello
spostato di due lettere nella riga 3 quello spostato di tre fino alla riga 20 in cui egrave riportato quello spostato di 20
lettere (figura 4)
20
Figura 4 La tavola di Vigenegravere
Il secondo passo consiste nello scegliere una parola chiave per esempio lsquoverorsquo Pertanto il messaggio in
chiaro ldquonon andarerdquo verrebbe cifrato come nella figura 5
La differenza sostanziale tra la cifratura omofonica e quella polialfabetica egrave che in quella omofonica a
ogni lettera corrispondono piugrave simboli ma ogni simbolo egrave il corrispondente di una sola lettera cioegrave egrave una
corrispondenza 1rarr m che invertita diventa mrarr 1 in quella polialfabetica a ogni lettera corrispondono piugrave
simboli e anche ogni simbolo egrave il corrispondente di piugrave lettere cioegrave mrarr m che rimane tale anche invertendola
Il vantaggio della cifratura polialfabetica egrave pertanto la sua resistenza allrsquoanalisi delle frequenze Oltre ad
ammettere un enorme numero di chiavi infatti si puograve scegliere qualunque parola del dizionario qualunque
combinazione di parole si puograve perfino ricorrere a neologismi rendendo impossibile il controllo di tutte le chiavi
possibili Ed ecco percheacute egrave ritenuta piugrave affidabile e non ha mai smesso di essere usata
Figura 5 Cifratura polialfabetica del messaggio ldquonon andarerdquo
21
Oggi sono noti tutti i punti deboli del sistema di Vigenegravere ed esistono vari procedimenti per decifrare i
crittogrammi generati da tale sistema che sfruttano ad esempio la modularitagrave nel ripetere la chiave o
osservazioni sulle ripetizioni del testo cifrato Ci sono testimonianze storiche che uno di tali procedimenti sia
stato ideato da Sir Charles Babbage famoso per aver progettato e mai realizzato la macchina alle differenze
progenitrice degli odierni calcolatori La prima descrizione resa pubblica del metodo perograve egrave del 1863 portata a
compimento dallrsquoufficiale prussiano F W Kasiski
Unrsquoosservazione decisiva fu che le insidie del metodo di Babbage potevano essere evitate utilizzando
nella cifratura di Vigenegravere una chiave molto lunga e fatta da lettere che si succedono in modo casuale se un
messaggio cifrato non presenta delle ripetizioni se non egrave possibile tentare di indovinare la chiave cadono tutti
gli appigli necessari per effettuare con successo la crittoanalisi
Tale osservazione fu ulteriormente sviluppata da G S Vernam che nel 1926 introdusse lrsquoidea di usare
una chiave casuale lunga quanto il messaggio stesso
Oggi sappiamo grazie agli studi di Claude Shannon del 1949 che tale metodo puograve definirsi
ldquoteoricamente sicurordquo
In pratica perograve ciograve comporta la difficoltagrave di costruire lunghe stringhe di lettere assolutamente casuali e di
scambiarsi segretamente e continuamente queste chiavi In sostanza risulta impraticabile per ogni messaggio
scambiato in modo sicuro egrave necessario prima trasmettere in modo sicuro il messaggio contenente la chiave
I metodi usati per buona parte del Novecento sono delle rielaborazioni sempre piugrave complesse delle idee
descritte finora ottenute anche con la costruzione di dispositivi per la meccanizzazione delle procedure di
cifratura e decifratura Un esempio tra i piugrave conosciuti egrave la macchina Enigma usata dai tedeschi durante la
Seconda guerra mondiale inventata dallrsquoingegnere Arthur Scherbius Enigma consisteva di diversi ingegnosi
elementi combinati in un potente e sofisticato dispositivo per la produzione di scritture segrete In particolare ma
macchina aveva tre componenti collegati da fili elettrici una tastiera per immettere le lettere del testo chiaro
unrsquounitagrave scambiatrice che cifra la lettera trasformandola nel corrispondente elemento del crittogramma e un
visore con varie lampadine che accendendosi indicano la lettera da inserire nel crittogramma
Lo sforzo per violare questa cifratura richiese anni di lavoro e fu portato a compimento dalla Scuola
Inglese Governativa di Codici e Cifre di Bletchley Park di cui faceva parte Alan M Turing noto oggi ai piugrave per
i suoi studi sullrsquointelligenza meccanica
La crittografia nellrsquoera dellrsquoinformatica
Nel 1945 fu realizzato ENIAC (Electronic Numerical Integrator And Calculator) unrsquoapparecchiatura
contenente 18 000 valvole elettroniche capace di effettuare 5000 calcoli al secondo considerato il capostipite
dei moderni calcolatori
Dopo il 1945 fu lrsquoinformatica a fare da protagonista nella battaglia tra crittografi e crittoanalisti operando
una decisiva svolta nelle metodologie di entrambi Infatti i metodi precedenti lrsquoera dellrsquoinformatica basavano la
propria sicurezza sullrsquoenorme numero di chiavi disponibili e sulla loro lunghezza ma che viene messa in crisi
dalla crescente potenza di calcolo dei computer Un computer molto potente infatti potrebbe individuare quella
giusta in pochi minuti anche nel caso di un milione di chiavi da esaminare
Tutti i metodi crittografici esaminati finora necessitano di
22
1 un algoritmo generale di cifratura G
2 di una chiave K che deve rimanere segreta
3 di un algoritmo di decifrazione H=Gndash1 (inverso di G)
e agiscono secondo il seguente schema
il messaggio in chiaro M tramite lrsquoalgoritmo G e la chiave K viene cifrato in MC questrsquoultimo tramite
lrsquoalgoritmo H e la stessa chiave K viene decifrato in M (figura 6)
Figura 6 Schema di metodi crittografici
La sicurezza di tali sistemi risiede interamente nella segretezza delle chiavi Ne segue che per distribuire
agli utenti le chiavi egrave necessario ricorrere a canali sicuri
Gli svantaggi che ne derivano sono essenzialmente
1 difficoltagrave nella distribuzione delle chiavi agli utenti
2 mancata autenticazione dei messaggi mittente e destinatario condividono la stessa chiave
pertanto non crsquoegrave modo di impedire che il destinatario si invii messaggi che poi sembrino
provenienti dal mittente Si pensi quali problemi possono provocare simili falsificazioni nella
posta elettronica o nei sistemi bancari elettronici
La svolta avvenne nel 1976 a opera di Diffie e Hellmann che proposero un metodo detto a chiave
pubblica il quale non necessita di uno scambio preventivo delle chiavi segrete Lrsquodea egrave chiarita dal seguente
esempio noto come esempio del doppio lucchetto
Supponiamo di avere due utenti Mitt e Dest e Mitt voglia spedire un messaggio segreto a Dest
1 Mitt mette il messaggio in una scatola che chiude con il proprio lucchetto LMitt (di cui solo lui ha
la chiave) e spedisce la scatola a Dest
2 Dest ricevuta la scatola aggiunge un proprio lucchetto LDest (di cui solo lui ha la chiave) e
rispedisce la scatola a Mitt
3 Mitt ricevuta la scatola con il doppio lucchetto toglie il lucchetto LMitt e rispedisce la scatola a
Dest
4 Dest ricevuta la scatola puograve togliere il lucchetto LDest e leggere il messaggio di Mitt
Il problema della distribuzione delle chiavi sembra risolto percheacute lo schema a doppia chiave non richiede
la condivisione delle stesse Tuttavia la realizzazione pratica di un tale sistema si scontra con un altro problema
quello riguardante lrsquoordine in cui cifrature e decifrature sono eseguite In altre parole in un sistema crittografico
egrave essenziale lrsquoordine con cui avvengono le rispettive cifrature e decifrature in quanto la cifratura eseguita per
23
ultimo andrebbe decifrata per prima (egrave un porsquo come quando la mattina infiliamo prima le calze e poi le scarpe
ma alla sera togliamo prima le scarpe e poi le calze)
Lrsquoesempio del doppio lucchetto in cui ciograve non avviene sembra tuttavia funzionare come idea percheacute ai
fini dellrsquoapertura della scatola non ha importanza lrsquoordine di rimozione dei lucchetti
Anche se il trucco dei due lucchetti non sembra immediatamente applicabile tuttavia fu il giusto punto di
partenza per la realizzazione di un sistema crittografico che aggira lrsquoostacolo della distribuzione delle chiavi
Infatti lrsquoidea egrave che mittente e destinatario generano ciascuno due chiavi distinte una chiave di cifratura E
(da utilizzare nellrsquoalgoritmo di cifratura) e una chiave di decifrazione D (da utilizzare nellrsquoalgoritmo di
decifrazione) Le chiavi sono correlate nel senso che servono per effettuare operazioni inverse (figura 7)
Figura 7 Le chiavi correlate per effettuare operazioni invese
Il trucco consiste nellrsquoimpossibilitagrave di poter derivare la chiave D dalla chiave E mediante algoritmi di
calcolo (figura 8)
Ogni utente puograve rendere pubblica la propria chiave di cifratura E indicandola magari sullrsquoelenco
telefonico senza compromettere la propria chiave di decifrazione che rimane segreta di pubblico dominio sono
anche gli algoritmi di cifratura G e decifrazione H
Figura 8 Inapplicabilitagrave del metodo del doppio lucchetto
Pertanto lrsquoesempio del doppio lucchetto viene cosigrave interpretato
1 il destinatario pubblica la chiave di cifratura E e mantiene segreta la chiave di decifrazione D
2 il mittente applica GE al messaggio M trasformandolo nel messaggio cifrato MC cioegrave
GE(M)=MC che spedisce al destinatario
3 il destinatario applica HD al messaggio cifrato MC riottenendo M cioegrave HD(MC)=M
24
La sicurezza di un tale sistema si fonda sulla difficoltagrave di poter
1 ritrovare il testo cifrato provando ad applicare lrsquoalgoritmo GE che egrave pubblico ad ogni possibile
testo in chiaro il cui numero pur essendo enorme egrave comunque finito
2 ricavare lrsquoalgoritmo HD da GE
in quanto entrambe le tecniche sono computazionalmente inattuabili nel senso che richiedono un tempo
di calcolo di lunghezza al di fuori di ogni possibile considerazione anche per i piugrave potenti calcolatori
Per descrivere tali algoritmi sono necessari alcuni concetti matematici che andiamo a illustrare
Figura 9 Schema di cifrario a chiave pubblica
Lrsquoaritmetica modulare
Lrsquoaritmetica modulare la cui introduzione egrave dovuta a Gauss costituisce un sistema di calcolo con
importanti applicazioni nei test di primalitagrave e nei metodi che stanno alla base della sicurezza delle comunicazioni
elettroniche Con essa infatti si hanno i seguenti vantaggi 1) si riduce lo spazio dei numeri su cui gli algoritmi
sono chiamati ad operare e quindi si aumenta la velocitagrave di calcolo 2) si riesce a rendere difficili alcuni problemi
computazionali che sono semplici (o addirittura banali) nellrsquoalgebra ordinaria al fine di aumentare la sicurezza
nelle comunicazioni Lrsquoidea egrave semplice ma potente Forse non lo sappiamo ma usiamo spesso laritmetica
modulare Potremmo chiamarla aritmetica dellorologio
Infatti pensiamo ad un normale orologio con 24 ore Se sono le 15 ed un amico ci comunica che saragrave a
casa nostra tra 5 ore sappiamo che egli verragrave alle 20 infatti 15+5=20 Ma se sono le 23 e dobbiamo partire fra 7
ore certamente non diciamo che la partenza saragrave alle 30 anche se 23+7=30 Sappiamo che dovremo partire alle
6 Allo stesso modo se sono le 20 che ora saragrave tra 14 ore Non diremo 34 anche se 20+14=34 ma diremo che
sono le 10 Come si spiega tutto ciograve
Immaginiamo di segnare sul quadrante dellrsquoorologio 24 ore Se la lancetta segna le 23 aggiungere 7 ore
significa spostarsi di 7 posti fino ad arrivare alle 6 Si giunge allo stesso risultato calcolando 23+7=30 ed
osservando che 30=1sdot24+6 o che egrave lo stesso 3024 =1 con resto 6 che significa che 30 lo si ottiene facendo fare
alla lancetta un giro completo piugrave 6
25
Se la lancetta segna le 20 e aggiungiamo 14 ore lrsquoorologio segneragrave le 10 percheacute 20+14=34 ma 3424= 1
con resto 10 per cui 34 lo si ottiene percorrendo un giro completo piugrave 10
Proviamo con il normale orologio a 12 ore I numeri che vediamo sul quadrante sono 0 1 2 3 4 5 6 7
8 9 10 11 Il numero 12 non compare percheacute a partire da 0 trascorse 12 ore torniamo di nuovo a 0 Questa
volta per fare un giro completo occorrono 12 ore Pertanto se sono le 7 che ore saranno tra 24 ore Saranno
ancora le 7 percheacute 7+24=31 ma 3112 = 2 con resto 7 cioegrave si compiono 2 giri completi piugrave 7 se sono le 8 tra 6
ore saranno le 2 percheacute 8+6=14 ma 1412=1 con resto 2 Dagli esempi dovrebbe risultare chiaro allora che ciograve
che contano non sono i risultati delle somme ma i loro resti nelle divisioni per il numero delle ore segnate sul
quadrante dellrsquoorologio
La stessa cosa succede con i giorni della settimana se pensiamo a un orologio con 7 ore sul quadrante
Facciamo corrispondere ai giorni della settimana i numeri da 0 a 6 (figura 10)
domenica Lunedigrave Martedigrave Mercoledigrave Giovedigrave Venerdigrave Sabato darr darr darr darr darr darr darr 0 1 2 3 4 5 6
Figura 10 Corrispondenza dei giorni della settimana con i numeri da 0 a 6
Se per esempio oggi egrave venerdigrave che giorno saragrave tra 12 giorni
Dovremo calcolare 5+12=17 ma i giorni si ripetono ogni 7 pertanto osservando che 177 =2 con resto 3
possiamo concludere che a partire da 5 e aggiungendo 12 si compiono 2 giri completi piugrave 3 ed essendo 3 il
numero corrispondente a mercoledigrave concludiamo che saragrave mercoledigrave Facciamo un altro esempio se oggi egrave
lunedigrave (1) che giorno saragrave tra 20 giorni Calcoliamo 1+20=21 217= 3 con resto 0 quindi saragrave domenica
Il numero n delle ore sullrsquoorologio costituisce quello che si chiama il modulo e individua lrsquoaritmetica di
modulo n in cui lrsquoinsieme dei numeri con i quali si opera indicato con Zn egrave lrsquoinsieme dei possibili resti della
divisione per n e cioegrave Zn=0 1 2 3 hellip nndash1e le operazioni si eseguono con le regole illustrate negli esempi
precedenti
Lrsquoesempio dellrsquoorologio a 24 ore costituisce la cosiddetta aritmetica finita di modulo 24 in essa Z24=0
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 essendo questi ultimi i possibili resti
della divisione per 24 Lrsquoorologio a 12 ore costituisce lrsquoaritmetica finita di modulo 12 in essa Z12=0 1 2 3 4
5 6 7 8 9 10 11 essendo questi ultimi i possibili resti della divisione per 12 Lrsquoesempio dei giorni della
settimana egrave lrsquoaritmetica finita di modulo 7 in cui Z7=0 1 2 3 4 5 6 essendo questi ultimi i possibili resti
della divisione per 7 Riassumiamo costruendo unrsquoaritmetica finita di modulo 4 I possibili resti della divisione
per 4 sono 0 1 2 3 quindi Z4=0123 Lrsquoaddizione e la moltiplicazione in Z4 si esegue come negli esempi
della tabella 6
26
operazioni indicate
Risultato nellrsquoaritmetica ordinaria
Risultato nellrsquoaritmetica modulo 4
2+2 4 0 percheacute 44=1 con resto 0
3+2 5 1 percheacute 54=1 con resto 1
2+1 3 3 percheacute 34=0 con resto 3
3sdot3 9 1 percheacute 94=2 con resto 1
3sdot2 6 2 percheacute 64=1 con resto 2
2sdot2 4 0 percheacute 44=1 con resto 0
Tabella 6 Addizione e moltiplicazione nellrsquoaritmetica finita di modulo 4
Si possono costruire le tavole dellrsquoaddizione e della moltiplicazione dellrsquoaritmetica modulo 4 che costituiscono
le tabelline di questa aritmetica sulla base delle quali si esegue qualsiasi addizione e moltiplicazione modulo 4
Nella tabella 7 sono spiegate le tabelline dellrsquoaritmetica in modulo 4
Tabella 7 Tavole dellrsquoaddizione e della moltiplicazione dellrsquoaritmetica modulo 4
Infine per indicare che due numeri a e b divisi per n danno lo stesso resto si usano le seguenti notazioni
tutte equivalenti tra loro
a=b mod n andashb=0 mod 4 a equiv b (mod n) che si legge a egrave congruo b modulo 4
Esempio
26=12 mod 7 egrave la stessa cosa di
26ndash12=0 mod 7 che egrave la stessa cosa di
26 equiv 12 (mod 7) e tutte e tre stanno a indicare che 26 e 12 divisi per 7 danno lo stesso resto che egrave 5 e
pertanto sono tutti equivalenti a 5
Facciamo vedere come sfruttare lrsquoaritmetica modulare per calcolare potenze come 2341 (figura 11) Il
metodo si basa sulla proprietagrave che il resto del quadrato di un numero a per un dato modulo n egrave uguale al
quadrato del resto dello stesso numero a per lo stesso modulo n cioegrave a2 mod n =(a mod n)2
+ 0 1 2 3
0 0 1 2 3
1 1 2 3 0
2 2 3 0 1
3 3 0 1 2
x 0 1 2 3
0 0 0 0 0
1 0 1 2 3
2 0 2 0 2
3 0 3 2 1
27
Figura 11 Il metodo per calcolare 2341
La funzione di Eulero
Per ogni intero ngt1 si definisce la funzione di Eulero = numero di interi minori di n e primi con esso Ad
esempio
bull ( ) 45 =φ percheacute gli interi minori di 5 sono 1 2 3 4 ed essi sono tutti primi con n
bull ( ) 26 =φ percheacute gli interi minori di 6 sono 1 2 3 4 5 e fra essi solo 1 e 5 sono primi con 6
bull ( ) 67 =φ percheacute gli interi minori di 7 sono 1 2 3 4 5 6 ed essi sono tutti primi con 7
bull ( ) 412 =φ percheacute gli interi minori di 12 sono 1 2 3 4 5 6 7 8 9 10 11 e fra essi solo 1 5 7
11 sono primi con 12
Se si conosce la scomposizione in fattori del numero n il seguente teorema ci fornisce un metodo per
calcolare Infatti esso afferma che per ogni ngt1 non primo ( )
minussdotsdot
minussdot
minussdotnppp
n=nφ 11
11
11
21
dove
p1 p2 hellip pn sono i fattori primi di n presi senza molteplicitagrave
22 mod 341=4
24=(22)2=(22 mod 341)2=42=16mod341=16
28=(24)2=(16)2=256mod341=256
216= (28)2=(256)2=65536mod341=64
232=(216)2=(64)2=4096mod341=4
264=(232)2=42=16mod341=16
2128=(264)2=(16)2=256mod341=256
2256=(2128)2=(256)2=65536mod341=64
2341=2(256+64+16+4+1) 2256 264 216 24 21 x x x x
64 1
1024 mod 341
= 1 x 64
64 x 16
1024 mod 341
1 x 2 =
=
x
28
Ad esempio
essendo 12 = 3sdot2sdot2 ( ) 42
1
3
212
2
11
3
111212 ===φ sdotsdot
minussdot
minussdot
essendo 6=2sdot3 ( ) 22
1
3
26
2
11
3
1166 ===φ sdotsdot
minussdot
minussdot
se n=psdotq ( ) ( ) ( )11111
11
1 minussdotminusminussdotminussdot
minussdot
minussdot qp=q
q
p
pn=
qpn=nφ
Ovviamente se n egrave un numero primo = nndash1
Vale inoltre il seguente teorema di Eulero per ngt1 e per ogni altn e primo con n si ha
Ad esempio per n=6 ( ) 26 =φ infatti i primi con 6 sono 1 e 5 per il teorema di Eulero si ha
2mod1255
2mod1112
2
equiv=
equiv=
per n=5 ( ) 45 =φ e i primi con 5 sono 1 2 3 4 e per il teorema di Eulero si ha
5mod12564
5mod1813
5mod1162
5mod111
4
4
4
4
equiv=
equiv=
equiv=
equiv=
Si puograve notare come nel caso in cui n egrave un numero primo si ritrova il piccolo teorema di Fermat
Infatti per n primo ( )nφ = nndash1 e per il teorema di Eulero per ogni altn e primo con n Ricordiamo infatti
che il piccolo teorema di Fermat afferma che se n egrave un numero primo e a un intero minore di n allora egrave
divisibile per n che con il linguaggio dellrsquoaritmetica modulare diventa che puograve essere riscritto e se a egrave primo
con n allora egrave che egrave equivalente a
Infine si prova che per ogni altn e primo con esso esiste lrsquoinverso di a e esso egrave dato da ( ) 1minusnaφ Infatti
( ) ( ) na=aa nφnφ1mod1 equivsdot minus per il teorema di Eulero Si ricorda che lrsquoinverso di un numero a egrave quel numero che
moltiplicato per a dagrave 1 indicato convenzionalmente con andash1
Ad esempio per n=5 i primi con 5 sono 1 2 3 4 e per ognuno di questi esiste lrsquoinverso infatti
bull lrsquoinverso di 1 egrave ( ) 1mod51111 31415 equivminusminus ===φ
e infatti
bull lrsquoinverso di 2 egrave ( ) 3mod58222 31415 equivminusminus ===φ
e infatti
bull lrsquoinverso di 3 egrave ( ) 2mod527333 31415 equivminusminus ===φ
e infatti
bull lrsquoinverso di 4 egrave ( ) 4mod564444 31415 equivminusminus ===φ
Le funzioni unidirezionali
Chiamiamo funzione da un insieme A a un insieme B qualunque procedura che associa a ogni elemento
di un insieme A (detto dominio) uno e un solo elemento di un insieme B (detto condominio) In simboli f
A rarr B Se poi indichiamo con x il generico elemento dellrsquoinsieme A e con y il generico elemento dellrsquoinsieme B
la f indica la procedura che ad ogni xisinA associa un yisinB e cioegrave y=f(x) ad esempio ldquofare il doppio dihelliprdquo
29
prendendo come dominio e codominio lrsquoinsieme dei numeri interi egrave in questo senso una funzione percheacute dato
ad esempio il numero 3 lo trasforma nel numero 6 come 5 lo trasforma in 10 e cosigrave via
Molte funzioni matematiche sono cosiddette bidirezionali nel senso che egrave facile dato un determinato x
generare il corrispondente y ma egrave altrettanto facile invertire la funzione cioegrave ritrovare lrsquoelemento x originario a
partire dal suo corrispondente
Facciamo qualche esempio
bull funzione xrarr fare il doppiorarr 2sdotx= y 3rarr fare il doppiorarr 2sdot3 = 6
funzione inversa y=2sdotx rarr fare la metagraverarr x 6=2sdot3 rarr fare la metagraverarr 3
bull funzione xrarr fare il quadruplorarr 4sdotxrarr aggiungere 1rarr sdoty=4sdotx +1
5rarr fare il quadruplorarr 4sdot5rarr aggiungere 1rarr 4sdot5 +1=21
funzione inversa y=4sdotx +1rarr sottrarre 1rarr 4sdot xrarr dividere per 4rarr x
21=4sdot5 +1rarr sottrarre 1rarr 4sdot 5rarr dividere per 4rarr 5
Le funzioni unidirezionali sono invece quelle funzioni facilmente calcolabili ma che non si possono invertire
Le funzioni cosiddette pseudounidirezionali (dette anche funzioni trappola a molla segreta) sono invece
quelle funzioni facilmente calcolabili ma che non altrettanto facilmente si possono invertire a meno che non si
conoscano alcune informazioni (la molla segreta) utilizzate nella loro costruzione
Lrsquoaritmetica modulare gioca un ruolo determinante in questo caso infatti permette di trasformare
funzioni bidirezionali in funzioni pseudounidirezionali
Facciamo lrsquoesempio della funzione ldquofare il quadruplordquo in simboli f(x)=4sdotx Egrave facilmente calcolabile
percheacute dato x per ottenere f(x) basta moltiplicare per 4 ma egrave altrettanto facile calcolare la sua inversa percheacute
dato f(x) basta dividere per 4 per ottenere lrsquooriginario x Ma anche se non avessimo la procedura inversa di
dividere per 4 sarebbe facile ritrovare lrsquoelemento originario anche procedendo per tentativi ed eliminazione
infatti se per esempio f(x) =20 si puograve tentare x=3 in tal caso f(x)=12 troppo piccolo quindi x deve essere
maggiore di 3 Si puograve allora pensare a 6 ma f(x)=24 troppo grande quindi x deve essere minore di 6 e cosigrave via
Vediamo cosa accade se calcoliamo utilizzando una aritmetica modulare Per esempio consideriamo la
stessa funzione f(x)=4sdotx in una aritmetica modulo 7 Possiamo osservare che la funzione non si comporta piugrave in
modo regolare come prima per accorgersene basta costruire una tabella (tabella 8)
x 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
f(x)=4sdotx 4 8 12 16 20 24 28 32 36 40 44 48 52 56 60
f(x)=4sdotmod 7 4 1 5 2 6 3 0 4 1 5 2 6 3 0 4
Tabella 8 La funzione f(x)=4sdotx in una aritmetica modulo 7
Anche in questa semplice situazione egrave chiaro che egrave piugrave complicato invertire la funzione e pertanto i valori
di x sono molto meglio protetti Si puograve fare anche lrsquoesempio della funzione esponenziale f(x)=3 x (tabella 9)
Tabella 9 La funzione f(x)=3 x in aritmetica modulo 11
x 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
f(x)=x3 1 8 27 64 125 216 343 512 729 1000 hellip hellip hellip hellip hellip
f(x)=x3 mod 11 1 8 5 9 4 7 2 6 3 10 hellip hellip hellip hellip hellip
30
Il cifrario a chiave pubblica RSA
Uno dei piugrave noti sistemi crittografici a chiave pubblica che sfrutta le idee precedentemente descritte egrave il
metodo RSA proposto dai matematici R L Rivest A Shamir e L Adlemann nel 1978 Esso risolve il problema
dello scambio delle chiavi in quanto queste ultime sono conosciute solamente ai rispettivi proprietari che non le
hanno preventivamente concordate e scambiate
Illustriamo schematicamente come i due utenti Mitt e Dest possano scambiarsi un messaggio segreto
utilizzando il metodo RSA Entrambi Mitt e Dest indipendentemente lrsquouno dallrsquoaltro poi
1 scelgono in modo casuale due numeri primi p q grandi (di 200-300 cifre in base 10)
2 calcolano N = psdotq e Φ(N) = (pndash1)sdot(qndash1)
3 scelgono un intero eltΦ(N) e primo con Φ(N) tale numero e saragrave la chiave pubblica
4 calcolano il numero d inverso di e mod Φ(N) tale cioegrave che esdotdequiv 1mod Φ(N) tale numero d saragrave
la chiave privata
5 rendono pubblici i numeri N ed e
Mitt per spedire un messaggio a Dest compie le seguenti operazioni
1 codifica il messaggio in un modo standard usando i numeri lt N
2 trasforma ogni numero M di tale codifica in Me (mod N) e lo spedisce a Dest
per decodificare il messaggio ricevuto Me Dest calcola (Me)d =Mesdotd =Mndash1=M (modN) riottenendo il messaggio
originale
Figura 12 Schema di cifrario con metodo RSA
31
Figura 13 Esempio di applicazione di metodi RSA
In che cosa consiste la sicurezza del metodo Da quanto esposto si osserva che per decodificare il
messaggio bisogna
1 conoscere d (chiave segreta)
2 essendo d lrsquoinverso di e nellrsquoaritmetica mod Φ(N) essendo e noto egrave necessario conoscere Φ(N)
3 ma noto N per calcolare Φ(N) egrave necessario conoscere i fattori primi di N cioegrave egrave necessario fattorizzare
N che egrave un problema computazionalmente difficile per quanto osservato in precedenza
Anche se non egrave stato dimostrato che non si possa rompere il codice in altro modo e cioegrave senza conoscere Φ(N) e i
fattori di N a tuttrsquooggi si puograve affermare che la sicurezza del metodo dipende essenzialmente dai seguenti fatti
Per codificare il messaggio bisogna saper costruire dei numeri primi grandi e tale operazione egrave
computazionalmente veloce si puograve infatti dimostrare che la complessitagrave computazionale di opportuni test di
primalitagrave per stabilire se un numero n egrave primo utilizzando il linguaggio di quel ramo della matematica nota
come teoria della complessitagrave egrave ldquoquasi-polinomialerdquo
Per violare il sistema bisogna saper fattorizzare interi grandi ottenuti come prodotto di due primi tale
problema egrave computazionalmente ldquolentordquo cioegrave con il linguaggio della teoria della complessitagrave appartiene alla
classe dei problemi non polinomiali Tale marcata differenza tra la velocitagrave di esecuzione delle operazioni di
costruzione di numeri primi grandi e di fattorizzazione di interi grandi garantisce la sicurezza del metodo
almeno per un tempo sufficientemente lungo Ad esempio con la tecnologia attuale lrsquooperazione di
fattorizzazione di un intero di 140 cifre in base 10 prodotto di due numeri primi casuali calcolati in pochi
secondi su un computer disponibile in commercio richiede utilizzando vari supercomputers operanti
parallelamente circa un mese
La RSA Security Inc gestisce una sfida a livello mondiale ove vengono premiati coloro che fattorizzano
gli interi proposti da loro in una particolare lista Ad esempio il 3 dicembre del 2003 egrave stato fattorizzato
32
rsa576 =
188198812920607963838697239461650439807163563379417382700763356422988859715234
665485319060606504743045317388011303396716199692321205734031879550656996221305
168759307650257059
un numero di 174 cifre decimali prodotto di due primi di 87 cifre
p =
398075086424064937397125500550386491199064362342526708406385189575946388957261
768583317
q =
472772146107435302536223071973048224632914695302097116459852171130520711256363
590397527
Le chiavi attualmente utilizzate dallRSA sono a 309 cifre decimali
La firma digitale
Consideriamo al solito un mittente che deve inviare a un destinatario un messaggio m La codifica di m
con il metodo descritto assicura lrsquoautenticitagrave del messaggio ma non fornisce alcuna sicurezza sulla sua
paternitagrave Infatti il messaggio m pur essendo autentico potrebbe essere stato inviato da qualcuno che si spaccia
per il mittente Questa egrave unimportantissima questione particolarmente nella trasmissione di messaggi che oltre
a dover essere segreti devono garantire la loro origine
Si dovrebbe quindi disporre di un analogo della firma manuale detta appunto firma digitale La firma
digitale deve allora essere progettata in modo da possedere le stesse caratteristiche di una firma manuale e cioegrave
lrsquoautenticitagrave la non falsificabilitagrave e lrsquoimpossibiltagrave di essere riutilizzata Facciamo vedere come lo stesso metodo
RSA puograve essere utilizzato per progettare una firma digitale
La situazione egrave la seguente il mittente (di seguito indicato con Mitt) invia un messaggio m con la firma
F al destinatario (di seguito indicato con Dest) Siano a b rispettivamente le chiavi pubblica e segreta di MITT
siano e d rispettivamente le chiavi pubblica e segreta di DEST
La procedura per apporre la firma digitale F al messaggio m egrave illustrata nei seguenti passi riassunti nel
grafico della figura 14
1 Mitt cripta la firma F (cioegrave i suoi dati identificativi) usando la propria chiave segreta (b)
ottenendo Fb
2 il messaggio m con la firma F criptata viene ulteriormente criptato con la chiave pubblica di
Dest (e) ottenendo (m Fb)e
3 Dest decodifica il messaggio con la sua chiave segreta (d) ottenendo
((m Fb)e)d = (me F(be)) d =m(e d)F(be d) = mFb
in cui la firma di Mitt egrave ancora criptata
4 Dest decodifica la firma di Mitt con la chiave pubblica di Mitt (a) ottenendo
(Fb)a = F(ba) = F
33
Grafico firma digitale
Mitt
Dest
pubblica
Fb
e dpubblica
a
((Fb)e)d=(Fb)ed=(Fb)1=Fb
(Fb)a=(F)ba=(F)1=F
ab de
(Fb)e
codifica
codificadecodifica
decodifica
1
2
3
4
5
6
7
8
segreta
b
segreta
Figura 14 Grafico firma digitale
Bibliografia
Thomas Beth Comunicazioni e sicurezza su Internet in ldquoLe Scienzerdquo n 330 febbraio 1996
Brian Butterworth Intelligenza matematica Vincere la paura dei numeri scoprendo le doti innate della mente
Rizzoli Milano 1999
John H Conway Richard K Guy Il libro dei numeri Hoepli Milano 2003
Richard Courant Herbert Robbins Che cosrsquoegrave la matematica Boringhieri Torino 1971
Philip J Davis Il mondo dei grandi numeri Zanichelli Bologna 1973
Keith Devlin Dove va la matematica Bollati Boringhieri Torino 1994
Jean Dieudonneacute Lrsquoarte dei numeri matematica e matematici oggi Mondadori Milano 1989
Martin E Ellmann La crittografia a chiave pubblica in La matematica della complessitagrave Quaderni n 67
settembre 1992 Le Scienze
Paolo Ferragina Fabrizio Luccio Crittografia principi ndash Algoritmi ndash Applicazioni Bollati Boringhieri Torino
2001
Godfrey H Hardy Apologia di un matematico Garzanti Milano 1989
Morris Kline Storia del pensiero matematico Einaudi Milano 1991
Serge Lang La bellezza della matematica Bollati Boringhieri Torino 1991
Mauro Leoncini Modelli di calcolo e complessitagrave computazionale in La matematica computazionale Quaderni
n 84 giugno 1995 Le Scienze
Fabrizio Luccio e Linda Pagli P = NP in La matematica della complessitagrave Quaderni n 67 settembre 1992
Le Scienze
Piergiorgio Odifreddi La Matematica del Novecento dagli insiemi alla complessitagrave Einaudi Torino 2000
34
ldquoPeriodico di matematicherdquo Serie VII Volume 7 Numero 2-3 luglio-dicembre 2000 Mathesis
ldquoPeriodico di matematicherdquo Serie VIII Volume 1 Numero 1 gennaio-marzo 2001 Mathesis
Carl Pomerance Alla ricerca dei numeri primi in ldquoLe Scienzerdquo n 174 febbraio 1983
Simon Singh Codici e segreti la storia affascinante dei messaggi cifrati dallrsquoantico Egitto a Internet Rizzoli
Milano 1999
Marcus du Sautoy Lrsquoenigma dei numeri primi lrsquoipotesi di Riemann lrsquoultimo grande mistero della matematica
Rizzoli Milano 2004
Gary Stix I segreti meglio custoditi la crittografia quantistica egrave passata dalla teoria al laboratorio per
approdare finalmente alle applicazioni in ldquoLe Scienzerdquo n 438 febbraio 2005
8
E solo per alcuni valori di p essi sono primi per cui lrsquoidea sarebbe quella di cercare i valori di p per
cui M(p) egrave primo Ma ciograve non egrave facile percheacute la primalitagrave di p egrave condizione solo necessaria per la primalitagrave
di M(p) infatti egrave vero che
1 se M(p) egrave primo allora anche p egrave primo
2 se p non egrave primo allora M(p) non egrave primo vedi ad esempio M(4) M(6) M(8)
ma se p egrave primo non egrave detto che M(p) sia primo vedi ad esempio M(11)
A tuttrsquooggi non si sa se esista unrsquoinfinitagrave di numeri di Mersenne che siano primi (detti primi di
Mersenne) neacute se esista unrsquoinfinitagrave di numeri di Mersenne che non siano primi anche se entrambe le
asserzioni appaiono verosimili Infatti aumentando le capacitagrave di calcolo dei calcolatori aumenta il
numero dei primi di Mersenne conosciuti (tabella 1) La ricerca di primi di Mersenne sempre piugrave grandi ha
valore di semplice curiositagrave ma il loro calcolo egrave utile per la misurazione della potenza di calcolo dei
calcolatori Per esempio per dimostrare che il numero di Mersenne M8191 di 2466 cifre non egrave primo usando
il test di Lucas-Lehmer ci vollero 100 ore la prima volta nel 1953 sul computer ILLIAC-I Da allora il
tempo di calcolo egrave sceso drasticamente da 5 a 2 ore su un IBM 7090 40 minuti su un ILLIAC-II da 3 a un
minuto su un IBM 360-91 e 10 secondi su un CRAY-I
valore di p 2p-1 anno autore computer 2 3 3 7 5 31 7 127 13 8191 1461 anonimo 17 131071 1588 Pietro Antonio Cataldi 19 524287 1588 Pietro Antonio Cataldi 31 2 147 483 647 1750 Leonhard Euler 61 19 cifre 1883 I M Pervushin calcolatore meccanico 89 27 cifre 1911 R E Powers calcolatore meccanico 107 33 cifre 1914 R E Powers calcolatore meccanico 127 39 cifre 1876-1914 Francois Edouard Anatole Lucas calcolatore meccanico 521 157 cifre 30 gennaio
1952 Raphael M Robinson SWAC
607 183 cifre 30 gennaio 1952
Raphael M Robinson SWAC
1279 386 cifre 25 giugno 1952
Raphael M Robinson SWAC
2203 664 cifre 7 ottobre 1952
Raphael M Robinson SWAC
2281 687 cifre 9 ottobre 1952
Oct 9 Raphael M Robinson SWAC
3217 969 cifre 1957 Hans Riesel BESK 4253 1281 cifre 1961 Alexander Hurwitz e John L
Selfridge IBM 7090
4423 1332 cifre 1961 Alexander Hurwitz e John L Selfridge
IBM 7090
9689 2917 cifre 1963 Donald B Gillies ILLIAC 2 9941 2993 cifre 1963 Donald B Gillies ILLIAC 2 11213 3376 cifre 1963 Donald B Gillies ILLIAC 2 19937 6002 cifre 1971 Bryant Tuckerman IBM 36091
9
valore di p 2p-1 anno autore computer 21701 6533 cifre 1978 Landon Curt Noll e Laura A
Nickel Cyber 174
23209 6987 cifre 1979 Landon Curt Noll Cyber 174 44497 13395 cifre 1979 David Slowinski e Harry L
Nelson Cray 1
86243 25962 cifre 1982 David Slowinski Cray 1 110503 33265 cifre 1988 Walter N Colquitt e Luther
Welsch Jr
132049 39751 cifre 1983 David Slowinski Cray X-MP 216091 65050 cifre 1985 David Slowinski Cray X-MP 756839 227832 cifre 1992 David Slowinski e Paul Gage Cray 2 859433 258716 cifre 1994 David Slowinski e Paul Gage Cray C90 1257787 378632 cifre 1996 David Slowinski e Paul Gage Cray T94 1398269 420921 cifre 1996 Joel Armengaud George
Woltman e GIMPS PC Pentium 90
2976221 895932 cifre 1997 Gordon Spence George Woltman e GIMPS
PC Pentium 100
3021377 909526 cifre 1998 Roland Clarkson Woltman Scott Kurowski e GIMPS
Pentium 200
6972593 2098960 cifre 1999 Nayan Hajratwala Woltman Kurowski e GIMPS
Pentium II 350
13466917 4053946 cifre 2001 Michael Cameron e GIMPS 800 MHz AMD T-Bird PC
20996011 6320430 cifre 2003 Michael Shafer e GIMPS 2 Gh Pentium 4 Dell Dimension PC
24036583 7235733 cifre 2004 Josh Findley e GIMPS 24 GHz Pentium 4 Windows XP PC
25964951 7816230 cifre 2005 Martin Nowak e GIMPS 24 GHz Pentium 4 Windows XP PC
30402457
9152052 cifre
2005 Curtis Cooper Steven Boone CMSU e GIMPS
Lavoro coordinato di 700 computers
GIMPS = Great Internet Mersenne Prime Search (wwwmersenneorg)
Tabella 1 La ricerca dei numeri primi di Mersenne
Unrsquoaltra notevole formula che dagrave luogo a molti numeri primi fu scoperta da Eulero nel 1772 La
formula x2+x+41 fornisce il seguente elenco di numeri primi inserendo tutti i numeri compresi fra 0 e 39
41 43 47 53 61 71 83 97 113 131 151 173 197 223 251 281 313 347 383 421 461 503
547 593 641 691 743 797 853 911 971 1033 1097 1163 1231 1301 1373 1447 1523 1601
Eulero comprese che il processo era destinato a interrompersi a un certo punto Infatti per x=41 si
ha
412+41+41 = 412+2middot41 = 41middot (41+2) = 41middot43
che non egrave primo ma anche per x=40 il numero che si ottiene non egrave primo infatti
402+40+41= 40 middot (40+1)+(40+1)=(40+1) middot (40+1)
Ciononostante Eulero fu molto colpito dalla capacitagrave della sua formula di produrre tanti numeri
primi da domandarsi per quali altri numeri diversi da 41 si sarebbe potuto ottenere un risultato simile
Scoprigrave che si poteva scegliere anche n=2 3 5 11 17 percheacute la formula x2+x+n producesse numeri primi
per ogni valore di x compreso fra 0 e nndash2
10
Possiamo concludere che la ricerca di formule semplici che producano soltanto numeri primi egrave stata
inutile ed egrave ancora meno probabile che conduca a buoni risultati il tentativo di trovare una formula che
produca tutti i numeri primi Lo stesso Eulero nel 1751 scriveva ldquoci sono alcuni misteri che la mente
umana non penetreragrave mai Per convincercene non dobbiamo far altro che gettare unrsquoocchiata alle tavole dei
numeri primi Ci accorgeremo che non vi regna neacute ordine neacute leggerdquo
La svolta di Gauss
Il passo decisivo nella ricerca di una legge da cui dipenda la distribuzione dei numeri primi fu
compiuto quando si rinunciograve agli inutili tentativi di trovare una formula che generasse tutti i numeri primi o
desse il numero esatto di essi contenuti nei primi n numeri interi A compiere la svolta fu Gauss il quale
affrontograve il problema da un altro punto di vista Infatti egli si chiese se era possibile prevedere non quale
fosse la posizione di un numero primo rispetto a quello precedente ma se era possibile prevedere quanti
fossero i numeri primi minori o uguali a un certo numero x Egli introdusse a tale scopo la funzione )(xπ =
numero dei primi minori o uguali a x e poteacute verificare per esempio che 4)10( =π percheacute i numeri primi
minori o uguali a 10 sono 2 3 5 7 e cioegrave 4 e la distanza media tra due numeri primi successivi
nellrsquointervallo tra 1 e 10 egrave 104 uguale a 25 Nella tabella 2 sono riportati alcuni valori della funzione e
della distanza media
Tabella 2 Alcuni valori della fiunzione )(xπ
Osservando tali risultati egli notograve che ogni volta si moltiplica x per 10 si aggiunge 23 al rapporto
xπ(x) almeno per x abbastanza grande Proprio questo legame tra moltiplicazione e addizione (che egrave la
relazione racchiusa in un logaritmo) e il fatto che 23 egrave approssimativamente il valore rappresentato dal
portarono Gauss a ipotizzare che
( )x
x
xlog=
π
Da cui
11
( )( )x
xx
logcongπ
Questa congettura si rivelograve poi vera e oggi egrave nota come teorema dei numeri primi Una notevole
conseguenza del teorema dei numeri primi egrave che ldquola probabilitagrave che un numero intero di x cifre preso a
caso sia primo egrave circa 1log(10x)rdquo Infatti lrsquoespressione
( )( )x
xx
logcongπ
in altre parole significa che nellrsquointervallo tra 1 e x si incontra un primo circa ogni log(x) e cioegrave la
probabilitagrave che nellrsquointervallo dei numeri le x un numero preso a caso sia primo egrave 1log(x) Ad esempio
nellrsquointervallo dei numeri minori di 10 000 000 uno ogni log(10 000 000) egrave primo Essendo
log(10 000 000) = log(107) = 7log(10) asymp 1611hellip ciograve vuol dire che dei numeri minori di 10 000 000 circa 1
su 16 egrave primo e perciograve crsquoegrave circa una probabilitagrave su 16 che un numero di 7 cifre sia primo
Al momento attuale molti sono i problemi non ancora risolti Tra questi ricordiamo
1 la congettura dei primi gemelli esistono infiniti numeri primi p tali che p+2 egrave ancora
primo Ad esempio 3 e 3+2 5 e 5+2 17 e 17+2 29 e 29+2 ecc
2 la congettura di Goldbach ogni intero pari maggiore di 2 puograve essere scritto come somma di
due numeri primi Ad esempio 4 = 2+2 6 = 3+3 8 = 3+5 10 = 5+5 12 = 5+7 ecc
La difficoltagrave fondamentale di tali problemi risiede nel fatto che i numeri primi sono definiti
mediante proprietagrave moltiplicative mentre i problemi in questione coinvolgono proprietagrave additive
Di gran lunga il piugrave importante tra i problemi non risolti egrave quello che va sotto il nome di ipotesi di
Riemann anche percheacute fu proprio la novitagrave del metodo in essa contenuto a far compiere il passo decisivo
per la dimostrazione del teorema dei numeri primi compiuta indipendentemente lrsquouno dallrsquoaltro nel 1896
dai matematici Jacques Hadamard e Charles de la Valleacutee-Poussin
Ricordiamo che lrsquoipotesi di Riemann inserita allrsquoottavo posto nellrsquoelenco dei famosi ventitreacute
problemi irrisolti presentati da David Hilbert al Congresso internazionale dei matematici del 1900 e
lanciati come sfida alla comunitagrave dei matematici del ventesimo secolo egrave ancora rimasto tale cioegrave senza
dimostrazione
Egrave oggi considerato uno dei problemi piugrave difficili del nuovo millennio Nel 2000 il Clay Mathematics
Institute ha offerto un milione di dollari a chi riusciragrave a darne una dimostrazione
Grazie ai calcolatori attualmente egrave stato possibile verificare tali congetture in moltissimi casi Ad
esempio la congettura di Goldbach egrave stata verificata per tutti i pari fino a 100 milioni mentre lrsquoipotesi di
Riemann egrave stata verificata per un miliardo e mezzo di casi ma ciograve non egrave sufficiente per dimostrarne la
veritagrave Ed egrave proprio questo quello che distingue la matematica dalle altre scienze dove una qualsiasi
ipotesi sostenuta da verifiche sperimentali egrave ritenuta valida fincheacute non contraddetta da un caso contrario
mentre in matematica un solo caso contrario serve a dimostrare la falsitagrave dellrsquoipotesi la cui veritagrave per
contro deve essere dimostrata per tutti i casi possibili il che ovviamente puograve avvenire solo
indipendentemente dalle verifiche di casi particolari anche se molti
12
Ed egrave questa una delle peculiaritagrave piugrave belle della matematica Qualsiasi affermazione dimostrata egrave
eterna e immutabile si pensi allrsquoinfinitagrave dei numeri primi ciograve egrave vero per Euclide ma rimane vero ancora
oggi senza possibilitagrave di smentite
Come ebbe a dire il matematico Hermann Hakel ldquoNella maggior parte delle scienze una
generazione demolisce quello che laltra ha costruito e ciograve che uno ha fatto un altro lo disfa Solo nella
matematica ogni generazione aggiunge un nuovo piano alla vecchia strutturardquo
E che ciograve susciti lrsquoidea della bellezza egrave bene sintetizzato dalle parole di Bertrand Russell ldquoLa
matematica vista dalla giusta angolazione non possiede solo la veritagrave ma la suprema bellezza una
bellezza fredda e austera come quella della scultura una bellezza che non fa appello ai nostri sentimenti
piugrave grossolani che non ha gli ornamenti sgargianti della musica o della pittura una bellezza pura e
sublime capace della rigorosa perfezione che egrave propria solo della piugrave grande arterdquo
Anche se non egrave possibile presentare in termini semplici lrsquoipotesi di Riemann in quanto coinvolge
concetti di matematica superiore proviamo a delinearne le linee essenziali
Nel 1737 Eulero introdusse e studiograve una funzione detta funzione ζ (zeta) di Eulero cosigrave definita
sum+infin
=
gtisin++++==1
1 4
1
3
1
2
11
1)(
nxxxx
xRxperdefinitan
xζ
e sempre a Eulero egrave dovuta la seguente identitagrave
( )
1
111
11
17
7
15
5
13
3
12
2 prod
minus=sdot
minussdot
minussdot
minussdot
minussdot
minus=
px
x
x
x
x
x
x
x
x
x
x
x
p
pxζ
dove il prodotto egrave esteso a tutti i numeri primi
Ed egrave proprio questa identitagrave che egrave alla base della notevole importanza assunta dalla funzione ζ nella
teoria dei numeri e in particolare per quanto riguarda la distribuzione dei numeri primi nellrsquoinsieme dei
naturali Infatti a destra di essa appaiono esplicitamente i numeri primi mentre a sinistra compare la
funzione ζ definita indipendentemente da essi
Riemann nel 1859 propose di considerare la funzione ζ come funzione di variabile complessa
cioegrave definita per x numero complesso ed effettuograve il cosiddetto prolungamento analitico di ζ allrsquointero piano
complesso costruendo la nuova funzione ζ oggi nota come funzione zeta di Riemann Egli provograve che gli
zeri della funzione ζ (cioegrave i valori della variabile per cui la funzione restituisce il valore 0) sono x = ndash2
x = ndash4 x = ndash6hellip detti zeri banali di ζ e alcuni numeri complessi (non reali) x con parte reale compresa tra
0 e 1 estremi inclusi Lrsquoipotesi di Riemann afferma che tutti gli zeri non banali di ζ hanno la caratteristica
di avere la parte reale uguale a 21
Dalla validitagrave di questa ipotesi discende una serie enorme di proprietagrave sui numeri primi Ci sono
attualmente centinaia di ldquoquasi teoremirdquo che iniziano con ldquosupponiamo che lrsquoipotesi di Riemann sia
verahelliprdquo Se lrsquoipotesi venisse dimostrata tutti questi ldquoquasi teoremirdquo diventerebbero veri teoremi
13
I test di primalitagrave e la fattorizzazione
Abbiamo fin qui concentrato lrsquoattenzione sul comportamento dei numeri primi ma come egrave possibile
preso un intero a caso x provare se x egrave primo o composto
Il metodo piugrave ovvio consiste nel dividere il numero x per tutti gli interi che lo precedono Infatti se
una qualunque di tali divisioni dagrave resto zero il numero x egrave composto e divisore e quoziente sono suoi
fattori mentre se nessuna di tali divisioni per ciascuno degli interi minori x dagrave resto zero il numero x egrave
primo
In effetti la procedura delle divisioni puograve essere interrotta allrsquointero minore della in quanto se x egrave
composto esso saragrave il prodotto di almeno due fattori per esempio x= F1sdotF2 ed essendo x=x sdot x se
F1gt x F2 lt x Ad esempio 29= 2929 sdot e 529 cong quindi si puograve fermare la procedura quando il
divisore egrave 5 Infatti 292 dagrave resto 1 293 dagrave resto 2 294 dagrave resto 1 295 dagrave resto 4 Si puograve quindi
concludere che 29 egrave primo percheacute se avesse avuto un fattore maggiore di 5 ne avrebbe avuto sicuramente
uno minore di 5 il che non egrave
Ma anche limitando le divisioni alla radice quadrata lrsquoalgoritmo sarebbe comunque inapplicabile
percheacute per giungere a conclusione richiede un tempo che cresce esponenzialmente al crescere del numero
di cifre di n pertanto puograve risultare intollerabilmente lungo anche con gli strumenti di calcolo piugrave veloci
anni secoli piugrave della vita presunta dellrsquoUniverso Ad esempio egrave stato dimostrato che il numero 244 497ndash1
formato da 13 595 cifre egrave primo Se un calcolatore fosse in grado di controllare un milione di divisioni al
secondo e si fermasse alla radice quadrata del numero egrave stato calcolato che gli occorrerebbero 106684 anni
per espletare il suo compito Lrsquoinconveniente deriva dal fatto che il metodo delle divisioni non solo ci dice
se il numero egrave primo o composto ma risolve anche il problema della fattorizzazione di un numero in
quanto nel caso in cui il numero risulta composto ci fornisce i fattori della sua scomposizione
A tuttrsquooggi egrave facile trovare numeri primi grandi o testare la primalitagrave di un numero mentre egrave
difficile fattorizzare un intero che sia il prodotto di due numeri primi grandi Ovviamente i termini ldquofacilerdquo
ldquodifficilerdquo ldquogranderdquo sono relativi alla conoscenza e alla tecnologia disponibili Attualmente sono
considerati ldquograndirdquo numeri di alcune centinaia di cifre mentre ldquofacilerdquo rappresenta un tempo di secondi e
ldquodifficilerdquo di secoli
Lrsquoefficacia dei test di primalitagrave attualmente usati dipende dal fatto che egrave possibile stabilire se un
numero egrave primo senza essere costretti a trovarne i fattori qualora risultasse composto Alcuni metodi usati
sono di tipo probabilistico cioegrave stabiliscono che un intero egrave probabilmente primo con una probabilitagrave di
errore che si puograve rendere piccola quanto si vuole
Il piugrave semplice al tempo stesso velocissimo e potente si basa sul piccolo teorema di Fermat Il
teorema stabilisce che se p egrave un numero primo e a un intero minore di p allora apndasha egrave un multiplo di p cioegrave
egrave divisibile per p
Ad esempio
bull se p=7 e a=2 allora 27ndash2=128ndash2=126=7middot18 cioegrave multiplo di 7
bull se p=7 e a=3 allora 37ndash3=2187ndash3=2184=7middot312 cioegrave multiplo di 7
14
bull se p=7 e a=4 allora 47ndash4=16384ndash4 = 16380 = 7middot2340 cioegrave multiplo di 7
bull se p=5 e a=4 allora 45ndash4=1024ndash4=1020=5middot204 cioegrave multiplo di 5
bull se p=3 e a=4 allora 43ndash4=64ndash4=60=3middot20 cioegrave multiplo di 3
Lrsquoimportanza del teorema sta nel fatto che ci fornisce un metodo per stabilire se un numero egrave primo
o no infatti costruiamo un numero del tipo apndasha verifichiamo se egrave multiplo di p se non lo egrave siamo sicuri
che p non egrave primo Ad esempio vogliamo sapere se 15 egrave primo costruiamo
215ndash2=32768ndash2=32766
32766=15middot2184+6
cioegrave non egrave divisibile per 15 quindi sicuramente 15 egrave composto e infatti 15=3middot5
Ma cosa si puograve dire se invece apndasha egrave divisibile per p Sfortunatamente non possiamo essere sicuri
che p sia primo anche se egrave molto probabile che lo sia
Proviamo 217ndash2=131072ndash2=131070=17middot7710 e infatti 17 egrave primo Provando 2341ndash2 si trova che
esso egrave divisibile per 341 ma 341 non egrave primo essendo 341=11middot31 Sono detti pertanto pseudoprimi i
numeri composti che passano il test Non proviamo a calcolare 2341 percheacute sarebbe un numero
mostruosamente grande fuori dalla nostra portata ma vedremo tra poco come si puograve aggirare lrsquoostacolo
Riassumendo il piccolo teorema di Fermat afferma che egrave vero
1 se p egrave primo e a egrave un intero minore di p allora apndasha egrave divisibile per p
2 se apndasha non egrave divisibile per p allora p non egrave primo
ma se apndasha egrave divisibile per p allora p puograve essere primo ma anche composto ciograve percheacute la divisibilitagrave per p
egrave condizione necessaria ma non sufficiente percheacute p sia primo Concludendo possiamo dire che usando
questo teorema per verificare la primalitagrave di un numero se scopriamo che ap-a non egrave divisibile per p siamo
sicuri che p egrave composto ma se egrave divisibile per p allora p egrave probabilmente primo nel senso che puograve essere
un primo autentico o pseudoprimo
La cosa interessante egrave che la probabilitagrave che un numero composto sia uno pseudoprimo (cioegrave che
superi il test di primalitagrave ma non sia primo come per esempio 341) su una base casuale diminuisce
fortemente allrsquoaumentare del numero Un numero di 1000 cifre composto ha circa una possibilitagrave su 10123
di essere uno pseudoprimo su una base scelta a caso La tabella 3 riporta tali probabilitagrave in funzione del
numero di cifre
Cifre in x Limite superiore per P(x)
Cifre in x Limite superiore per P(x)
Cifre in x
Limite superiore per P(x)
60 00716 80 00000846 100 00000000277
120 528middot10ndash12 150 149middot10ndash17 200 385middot10ndash27
300 58middot10ndash29 400 57middot10ndash42 500 23middot10ndash55
700 18middot10ndash82 1000 12middot10ndash123 2000 86middot10ndash262
5000 76middot10ndash680 10000 16middot10ndash1331 100000 13middot10ndash10584
Tabella 3 Probabilitagrave che un numero composto sia pseudoprimo
Nel 2002 tre ricercatori indiani Manindra Agrawal Neeraj Kayal e Nitin Saxena hanno costruito un
algoritmo denominato AKS (dalle iniziali dei nomi) sempre basato sulla fondamentale proprietagrave enunciata dal
15
piccolo teorema di Fermat ma che risulta deterministico e che riduce in maniera drastica il tempo di calcolo
Lrsquoalgoritmo fornisce una svolta significativa in un settore lungamente atteso e di grande interesse pratico ma
per ora non sembra che possa avere immediata applicazione in quanto molto piugrave lento dei test probabilistici i
quali drsquoaltra parte sono quasi certi per i numeri primi di centinaia di cifre che servono attualmente in
crittografia
Storia della crittografia
La crittografia che letteralmente significa scrittura nascosta nasce dalla necessitagrave di segretezza di alcune
informazioni e pertanto con tale termine intendiamo lo studio dei metodi che consentono la trasmissione sicura
dellrsquoinformazione
Drsquoaltro canto lrsquoesistenza di informazioni segrete genera il desiderio di svelarle e da tale desiderio nasce
la crittoanalisi con cui intendiamo lo studio di metodi che consentono la decifrazione dei messaggi crittografati
La storia della crittografia drsquoaltra parte altro non egrave che la secolare battaglia tra crittografi e crittoanalisti
Infatti ogni sistema crittografico rimane valido fincheacute un crittoanalista non individua un suo punto debole sulla
base del quale riesce a elaborare il sistema di decifrazione
Crittografi e crittoanalisti insieme hanno dato un grande contributo al progresso scientifico e tecnologico
Infatti tutti i metodi della crittografia e della crittoanalisi fanno ricorso a metodi e strumenti di una vasta varietagrave
di scienze come la matematica la linguistica la teoria dellrsquoinformazione la fisica quantistica le quali a loro
volta sono da essi arricchite e stimolate
Lrsquoidea su cui si basa un metodo crittografico consiste nel concordare tra mittente e destinatario che
vogliono scambiarsi un messaggio senza che venga intercettato da terzi una procedura per alterare il testo in
chiaro del messaggio Il destinatario puograve ricavare il testo originale applicando al testo cifrato la procedura
inversa Chi intercetta il messaggio non conoscendo la procedura non puograve ricostruire il messaggio La sicurezza
del metodo sta nella difficoltagrave da parte del crittoanalista di poter ricostruire la procedura dallrsquoanalisi del
messaggio cifrato
Prima dellrsquoera informatica i metodi crittografici erano essenzialmente due per trasposizione o per
sostituzione
Nella trasposizione le lettere sono mutate di posto generando di fatto un anagramma Ma la
trasposizione non puograve essere casuale Infatti nel caso di messaggi brevi non sarebbe sicura in quanto i pochi
caratteri alfabetici che costituiscono il messaggio possono essere combinati in pochi modi diversi per cui
diventa facile ricostruire il messaggio per tentativi Ad esempio la parola ldquomiordquo consta di 3 caratteri alfabetici
esistono al massimo sei sequenze diverse mio moi imo iom omi oim analizzandole tutte e sei egrave facile
ricostruire la sequenza ldquomiordquo Ma al crescere della lunghezza del messaggio cresce mostruosamente anche il
numero delle sequenze infatti un anagramma di una parola di n lettere altro non egrave che una permutazione di n
elementi e si dimostra che il numero totale delle permutazioni di n elementi egrave dato da n (si legga n fattoriale)
uguale al seguente prodotto n(nndash1)(nndash2)(nndash3)hellip(nndash (nndash1)) Pertanto se il messaggio egrave costituito ad esempio da
20 lettere i possibili anagrammi sono 20=20middot19middot18middot17middot16middot15middot14middot13middot12middot11middot10middot9middot8middot7middot6middot5middot4middot3middot2middot1 cioegrave piugrave di 1000
miliardi e anche se si potesse controllare un anagramma al secondo ci vorrebbero piugrave di trentuno secoli per
analizzarli tutti In questo caso la comunicazione risulterebbe sicura essendo impossibile analizzare tutte le
16
possibili sequenze e ricostruire il messaggio ma di fatto egrave inutilizzabile anche dal destinatario percheacute di fronte
allo stesso problema
Per rendere efficace tale metodo egrave necessario che mittente e destinatario si accordino su un criterio di
trasposizione fissato in anticipo e piugrave egrave complicato tale criterio e piugrave egrave sicuro il metodo
Esiste il metodo della trasposizione cosiddetta a inferriata Esso consiste nella trascrizione di un testo
lungo due linee orizzontali una superiore e una inferiore passando da una allrsquoaltra a ogni successivo carattere
alfabetico Finita la trascrizione la seconda fila di caratteri saragrave accodata alla prima per dare origine al testo
cifrato Ad esempio
testo del messaggio incontriamoci stasera alle sette
testo del messaggio cifrato icnraoitsralstenotimccsaealeet
Il destinatario ricostruisce il testo originale applicando la trasposizione inversa
Esistono molti altri tipi di trasposizione per esempio si puograve variare il numero delle file su cui trascrivere
il messaggio oppure si puograve passare da una fila allrsquoaltra ogni due caratteri anzicheacute dopo ogni singolo carattere e
cosigrave via Da osservare che ogni carattere alfabetico mantiene la propria identitagrave ma cambia la posizione
Nella sostituzione ogni carattere alfabetico del messaggio originale viene sostituito con un altro carattere
alfabetico secondo un criterio stabilito In questo caso ogni carattere alfabetico mantiene la posizione ma
cambia la propria identitagrave
Sostanzialmente esso necessita di determinare come primo passo un alfabeto cifrante che egrave ottenuto
rimescolando secondo un criterio lrsquoalfabeto ordinario In questo modo a ogni carattere dellrsquoalfabeto ordinario
corrisponde un carattere dellrsquoalfabeto cifrante Per cifrare il messaggio si sostituisce ogni carattere del messaggio
con il corrispondente carattere dellrsquoalfabeto cifrante Per decifrare il messaggio si applica la procedura inversa
Il primo esempio documentato di cifratura per sostituzione si trova nel De bello gallico di Giulio Cesare
detto anche cifrario di Cesare Qui lrsquoalfabeto cifrante era ottenuto da quello ordinario spostando a destra di tre
posti ogni carattere alfabetico ad esempio per cifrare il messaggio si sostituisce ogni lettera con la
corrispondente dellrsquoalfabeto cifrante (figura 2)
17
Figura 2 Cifrario di Giulio Cesare
Per decifrare si sostituisce ogni lettera del messaggio cifrato utilizzando la corrispondenza inversa
Come si puograve facilmente osservare in questo metodo lrsquoalfabeto cifrante altro non egrave che una
riorganizzazione dellrsquoalfabeto ordinario che si puograve ottenere con un qualsiasi spostamento tra 1 e il numero delle
lettere dellrsquoalfabeto ordinario Per esempio nel caso dellrsquoalfabeto italiano che consta di 21 lettere si possono
effettuare 20 diversi spostamenti e ottenere quindi 20 diversi alfabeti cifranti Essendo lrsquoalfabeto cifrante una
riorganizzazione dellrsquoalfabeto ordinario non egrave detto che questa debba essere ottenuta utilizzando il criterio
dello spostamento ma puograve coincidere con un qualsiasi anagramma dellrsquoalfabeto ordinario Si vede quindi
facilmente come aumentano gli alfabeti cifranti nel nostro caso il loro numero per quanto detto
precedentemente uguaglia il numero delle permutazioni di 21 elementi e cioegrave 21 e cioegrave oltre 50 miliardi di
miliardi
A partire da questo esempio cerchiamo di chiarire in termini generali il significato di metodo
crittografico intendendo con esso un algoritmo che mediante una chiave trasforma un messaggio in chiaro in
un messaggio cifrato o crittogramma
Ad esempio nel metodo descritto sopra lrsquoalgoritmo equivale alla procedura con cui ogni lettera
dellrsquoalfabeto in chiaro egrave sostituita dalla corrispondente lettera dellrsquoalfabeto cifrante la chiave equivale al
particolare alfabeto cifrante scelto per la cifratura o decifrazione di un particolare crittogramma
Inoltre crsquoegrave da sottolineare lrsquoimportanza concettuale della distinzione tra algoritmo e chiave Infatti la sola
conoscenza dellrsquoalgoritmo senza la chiave non permette di decifrare il crittogramma Ed egrave questo uno dei
principi fondamentali della crittografia formulato in modo definitivo nel 1883 dallrsquoolandese Auguste
Kerckhoffs von Nieuwenhof noto anche come legge di Kerckhoffs ldquola sicurezza di un crittosistema non deve
dipendere dal tener celato il crittoalgoritmo La sicurezza dipenderagrave solo dal tener celata la chiaverdquo
Le caratteristiche di un efficace sistema crittografico possono essere riassunte nelle seguenti
1 segretezza della chiave
2 semplicitagrave della chiave (per evitare possibili malintesi o errori al momento dello scambio tra
mittente e destinatario)
3 alto numero di potenziali chiavi tra cui scegliere
18
Come si puograve notare la 2) e la 3) sono collegate tra loro infatti nel sistema descritto sopra si potrebbe
scegliere una chiave piugrave semplice sacrificando il numero di chiavi potenziali
Infatti invece di generare lrsquoalfabeto cifrante da una riorganizzazione casuale dellrsquoalfabeto ordinario lo si
puograve fare a partire da una parola chiave come nel seguente esempio Supponiamo di accordarci sulla parola
chiave lsquolaurarsquo si eliminano eventuali spazi e lettere ripetute quindi la parola chiave diventa lsquolaurrsquo a questo
punto la sequenza l a u r saragrave lrsquoinizio dellrsquoalfabeto cifrante cui seguiranno tutte le altre lettere mancanti in
ordine alfabetico partendo dallrsquoultima lettera della chiave per cui lrsquoalfabeto cifrante che si ottiene saragrave l a u r s t
v z b c d e f g h i m n o p q
I crittosistemi basati sulla sostituzione hanno dominato la scena per tutto il primo millennio della nostra era
fincheacute i crittoanalisti non trovarono il suo punto debole ed elaborarono un metodo per decifrarne i crittogrammi prodotti
La violazione di tali sistemi si basa su unrsquoidea dovuta per prima a crittoanalisti arabi nella quale si
combinano conoscenze di linguistica statistica e matematica nota con il nome di analisi delle frequenze
Essa egrave descritta dallo studioso del IX secolo Abu Yusuf ibn Ishaq al-Kind sopran-nominato il filosofo
degli arabi in una sua monografia dal titolo Sulla decifrazione dei messaggi crittati ritrovata nellrsquoarchivio
ottomano Sulaimaniyyah di Istanbul solo nel 1987 Nel testo si legge
Un modo di svelare un messaggio crittato se conosciamo la lingua dellrsquooriginale consiste nel trovare
un diverso testo chiaro nella stessa lingua abbastanza lungo da poter calcolare la frequenza di ciascuna
lettera
Chiamiamo ldquoprimardquo quella che compare piugrave spesso ldquosecondardquo quella che la segue per frequenza
ldquoterzardquo la successiva e cosigrave via fino a esaurire tutte le lettere del campione di testo chiaro
Esaminiamo poi il testo in cifra che vogliamo interpretare ordinando (in base alla frequenza) anche i
suoi simboli Troviamo il simbolo piugrave comune e rimpiazziamolo con la ldquoprimardquo lettera dellrsquoesempio
chiaro il simbolo che lo segue per frequenza sia rimpiazzato dalla ldquosecondardquo lettera il successivo simbolo
piugrave comune sia rimpiazzato dalla ldquoterzardquo e cosigrave via fino ad aver preso in considerazione tutti i simboli del
crittogramma che intendevamo svelare
Tabella 4 Frequenze delle diverse lettere in italiano
Per superare lrsquoanalisi delle frequenze furono ideati diversi nuovi metodi crittografici tra cui ricordiamo
1 il metodo di sostituzione omofonica
2 il metodo di sostituzione polialfabetica
19
Il metodo di sostituzione omofonica consiste nel sostituire ogni lettera con un numero di simboli per
esempio numeri proporzionale alla sua frequenza Cosigrave ad esempio la lettera a avendo una frequenza di 11 74
viene sostituita da 11 simboli la lettera b con un solo simbolo la lettera c con 4 simboli ecc secondo la tabella 5
Il metodo di sostituzione polialfabetica consiste nellrsquouso di piugrave alfabeti cifranti su unrsquoidea di Leon
Battista Alberti che propose di utilizzarne due Lrsquoalgoritmo consiste nel sostituire la prima lettera del messaggio
in chiaro con la corrispondente del I alfabeto cifrante la seconda lettera con la corrispondente del II alfabeto
cifrante la terza con la corrispondente del I e cosigrave via passando alternativamente dal I alfabeto al secondo Come
nellrsquoesempio della figura 3
Tabella 5 Corrispondenza lettere e simboli nella sostituzione omofonica
Figura 3 Il metodo di sostituzione polialfabetica
Su tale idea si basa il metodo di Blaise de Vigenegravere diplomatico francese nato nel 1523 il quale utilizza
tanti alfabeti cifranti quante sono le lettere dellrsquoalfabeto in chiaro ad esempio nellrsquoalfabeto italiano che consta
di 21 lettere utilizza 21 alfabeti cifranti
Il primo passo consiste nel costruire la tavola di Vigenegravere in cui nella prima riga egrave riportato lrsquoalfabeto in
chiaro e in ognuna delle 21 righe successive egrave riportato un alfabeto cifrante spostato di una lettera rispetto a
quello della riga precedente cosigrave nella riga 1 egrave riportato lrsquoalfabeto spostato di una lettera nella riga 2 quello
spostato di due lettere nella riga 3 quello spostato di tre fino alla riga 20 in cui egrave riportato quello spostato di 20
lettere (figura 4)
20
Figura 4 La tavola di Vigenegravere
Il secondo passo consiste nello scegliere una parola chiave per esempio lsquoverorsquo Pertanto il messaggio in
chiaro ldquonon andarerdquo verrebbe cifrato come nella figura 5
La differenza sostanziale tra la cifratura omofonica e quella polialfabetica egrave che in quella omofonica a
ogni lettera corrispondono piugrave simboli ma ogni simbolo egrave il corrispondente di una sola lettera cioegrave egrave una
corrispondenza 1rarr m che invertita diventa mrarr 1 in quella polialfabetica a ogni lettera corrispondono piugrave
simboli e anche ogni simbolo egrave il corrispondente di piugrave lettere cioegrave mrarr m che rimane tale anche invertendola
Il vantaggio della cifratura polialfabetica egrave pertanto la sua resistenza allrsquoanalisi delle frequenze Oltre ad
ammettere un enorme numero di chiavi infatti si puograve scegliere qualunque parola del dizionario qualunque
combinazione di parole si puograve perfino ricorrere a neologismi rendendo impossibile il controllo di tutte le chiavi
possibili Ed ecco percheacute egrave ritenuta piugrave affidabile e non ha mai smesso di essere usata
Figura 5 Cifratura polialfabetica del messaggio ldquonon andarerdquo
21
Oggi sono noti tutti i punti deboli del sistema di Vigenegravere ed esistono vari procedimenti per decifrare i
crittogrammi generati da tale sistema che sfruttano ad esempio la modularitagrave nel ripetere la chiave o
osservazioni sulle ripetizioni del testo cifrato Ci sono testimonianze storiche che uno di tali procedimenti sia
stato ideato da Sir Charles Babbage famoso per aver progettato e mai realizzato la macchina alle differenze
progenitrice degli odierni calcolatori La prima descrizione resa pubblica del metodo perograve egrave del 1863 portata a
compimento dallrsquoufficiale prussiano F W Kasiski
Unrsquoosservazione decisiva fu che le insidie del metodo di Babbage potevano essere evitate utilizzando
nella cifratura di Vigenegravere una chiave molto lunga e fatta da lettere che si succedono in modo casuale se un
messaggio cifrato non presenta delle ripetizioni se non egrave possibile tentare di indovinare la chiave cadono tutti
gli appigli necessari per effettuare con successo la crittoanalisi
Tale osservazione fu ulteriormente sviluppata da G S Vernam che nel 1926 introdusse lrsquoidea di usare
una chiave casuale lunga quanto il messaggio stesso
Oggi sappiamo grazie agli studi di Claude Shannon del 1949 che tale metodo puograve definirsi
ldquoteoricamente sicurordquo
In pratica perograve ciograve comporta la difficoltagrave di costruire lunghe stringhe di lettere assolutamente casuali e di
scambiarsi segretamente e continuamente queste chiavi In sostanza risulta impraticabile per ogni messaggio
scambiato in modo sicuro egrave necessario prima trasmettere in modo sicuro il messaggio contenente la chiave
I metodi usati per buona parte del Novecento sono delle rielaborazioni sempre piugrave complesse delle idee
descritte finora ottenute anche con la costruzione di dispositivi per la meccanizzazione delle procedure di
cifratura e decifratura Un esempio tra i piugrave conosciuti egrave la macchina Enigma usata dai tedeschi durante la
Seconda guerra mondiale inventata dallrsquoingegnere Arthur Scherbius Enigma consisteva di diversi ingegnosi
elementi combinati in un potente e sofisticato dispositivo per la produzione di scritture segrete In particolare ma
macchina aveva tre componenti collegati da fili elettrici una tastiera per immettere le lettere del testo chiaro
unrsquounitagrave scambiatrice che cifra la lettera trasformandola nel corrispondente elemento del crittogramma e un
visore con varie lampadine che accendendosi indicano la lettera da inserire nel crittogramma
Lo sforzo per violare questa cifratura richiese anni di lavoro e fu portato a compimento dalla Scuola
Inglese Governativa di Codici e Cifre di Bletchley Park di cui faceva parte Alan M Turing noto oggi ai piugrave per
i suoi studi sullrsquointelligenza meccanica
La crittografia nellrsquoera dellrsquoinformatica
Nel 1945 fu realizzato ENIAC (Electronic Numerical Integrator And Calculator) unrsquoapparecchiatura
contenente 18 000 valvole elettroniche capace di effettuare 5000 calcoli al secondo considerato il capostipite
dei moderni calcolatori
Dopo il 1945 fu lrsquoinformatica a fare da protagonista nella battaglia tra crittografi e crittoanalisti operando
una decisiva svolta nelle metodologie di entrambi Infatti i metodi precedenti lrsquoera dellrsquoinformatica basavano la
propria sicurezza sullrsquoenorme numero di chiavi disponibili e sulla loro lunghezza ma che viene messa in crisi
dalla crescente potenza di calcolo dei computer Un computer molto potente infatti potrebbe individuare quella
giusta in pochi minuti anche nel caso di un milione di chiavi da esaminare
Tutti i metodi crittografici esaminati finora necessitano di
22
1 un algoritmo generale di cifratura G
2 di una chiave K che deve rimanere segreta
3 di un algoritmo di decifrazione H=Gndash1 (inverso di G)
e agiscono secondo il seguente schema
il messaggio in chiaro M tramite lrsquoalgoritmo G e la chiave K viene cifrato in MC questrsquoultimo tramite
lrsquoalgoritmo H e la stessa chiave K viene decifrato in M (figura 6)
Figura 6 Schema di metodi crittografici
La sicurezza di tali sistemi risiede interamente nella segretezza delle chiavi Ne segue che per distribuire
agli utenti le chiavi egrave necessario ricorrere a canali sicuri
Gli svantaggi che ne derivano sono essenzialmente
1 difficoltagrave nella distribuzione delle chiavi agli utenti
2 mancata autenticazione dei messaggi mittente e destinatario condividono la stessa chiave
pertanto non crsquoegrave modo di impedire che il destinatario si invii messaggi che poi sembrino
provenienti dal mittente Si pensi quali problemi possono provocare simili falsificazioni nella
posta elettronica o nei sistemi bancari elettronici
La svolta avvenne nel 1976 a opera di Diffie e Hellmann che proposero un metodo detto a chiave
pubblica il quale non necessita di uno scambio preventivo delle chiavi segrete Lrsquodea egrave chiarita dal seguente
esempio noto come esempio del doppio lucchetto
Supponiamo di avere due utenti Mitt e Dest e Mitt voglia spedire un messaggio segreto a Dest
1 Mitt mette il messaggio in una scatola che chiude con il proprio lucchetto LMitt (di cui solo lui ha
la chiave) e spedisce la scatola a Dest
2 Dest ricevuta la scatola aggiunge un proprio lucchetto LDest (di cui solo lui ha la chiave) e
rispedisce la scatola a Mitt
3 Mitt ricevuta la scatola con il doppio lucchetto toglie il lucchetto LMitt e rispedisce la scatola a
Dest
4 Dest ricevuta la scatola puograve togliere il lucchetto LDest e leggere il messaggio di Mitt
Il problema della distribuzione delle chiavi sembra risolto percheacute lo schema a doppia chiave non richiede
la condivisione delle stesse Tuttavia la realizzazione pratica di un tale sistema si scontra con un altro problema
quello riguardante lrsquoordine in cui cifrature e decifrature sono eseguite In altre parole in un sistema crittografico
egrave essenziale lrsquoordine con cui avvengono le rispettive cifrature e decifrature in quanto la cifratura eseguita per
23
ultimo andrebbe decifrata per prima (egrave un porsquo come quando la mattina infiliamo prima le calze e poi le scarpe
ma alla sera togliamo prima le scarpe e poi le calze)
Lrsquoesempio del doppio lucchetto in cui ciograve non avviene sembra tuttavia funzionare come idea percheacute ai
fini dellrsquoapertura della scatola non ha importanza lrsquoordine di rimozione dei lucchetti
Anche se il trucco dei due lucchetti non sembra immediatamente applicabile tuttavia fu il giusto punto di
partenza per la realizzazione di un sistema crittografico che aggira lrsquoostacolo della distribuzione delle chiavi
Infatti lrsquoidea egrave che mittente e destinatario generano ciascuno due chiavi distinte una chiave di cifratura E
(da utilizzare nellrsquoalgoritmo di cifratura) e una chiave di decifrazione D (da utilizzare nellrsquoalgoritmo di
decifrazione) Le chiavi sono correlate nel senso che servono per effettuare operazioni inverse (figura 7)
Figura 7 Le chiavi correlate per effettuare operazioni invese
Il trucco consiste nellrsquoimpossibilitagrave di poter derivare la chiave D dalla chiave E mediante algoritmi di
calcolo (figura 8)
Ogni utente puograve rendere pubblica la propria chiave di cifratura E indicandola magari sullrsquoelenco
telefonico senza compromettere la propria chiave di decifrazione che rimane segreta di pubblico dominio sono
anche gli algoritmi di cifratura G e decifrazione H
Figura 8 Inapplicabilitagrave del metodo del doppio lucchetto
Pertanto lrsquoesempio del doppio lucchetto viene cosigrave interpretato
1 il destinatario pubblica la chiave di cifratura E e mantiene segreta la chiave di decifrazione D
2 il mittente applica GE al messaggio M trasformandolo nel messaggio cifrato MC cioegrave
GE(M)=MC che spedisce al destinatario
3 il destinatario applica HD al messaggio cifrato MC riottenendo M cioegrave HD(MC)=M
24
La sicurezza di un tale sistema si fonda sulla difficoltagrave di poter
1 ritrovare il testo cifrato provando ad applicare lrsquoalgoritmo GE che egrave pubblico ad ogni possibile
testo in chiaro il cui numero pur essendo enorme egrave comunque finito
2 ricavare lrsquoalgoritmo HD da GE
in quanto entrambe le tecniche sono computazionalmente inattuabili nel senso che richiedono un tempo
di calcolo di lunghezza al di fuori di ogni possibile considerazione anche per i piugrave potenti calcolatori
Per descrivere tali algoritmi sono necessari alcuni concetti matematici che andiamo a illustrare
Figura 9 Schema di cifrario a chiave pubblica
Lrsquoaritmetica modulare
Lrsquoaritmetica modulare la cui introduzione egrave dovuta a Gauss costituisce un sistema di calcolo con
importanti applicazioni nei test di primalitagrave e nei metodi che stanno alla base della sicurezza delle comunicazioni
elettroniche Con essa infatti si hanno i seguenti vantaggi 1) si riduce lo spazio dei numeri su cui gli algoritmi
sono chiamati ad operare e quindi si aumenta la velocitagrave di calcolo 2) si riesce a rendere difficili alcuni problemi
computazionali che sono semplici (o addirittura banali) nellrsquoalgebra ordinaria al fine di aumentare la sicurezza
nelle comunicazioni Lrsquoidea egrave semplice ma potente Forse non lo sappiamo ma usiamo spesso laritmetica
modulare Potremmo chiamarla aritmetica dellorologio
Infatti pensiamo ad un normale orologio con 24 ore Se sono le 15 ed un amico ci comunica che saragrave a
casa nostra tra 5 ore sappiamo che egli verragrave alle 20 infatti 15+5=20 Ma se sono le 23 e dobbiamo partire fra 7
ore certamente non diciamo che la partenza saragrave alle 30 anche se 23+7=30 Sappiamo che dovremo partire alle
6 Allo stesso modo se sono le 20 che ora saragrave tra 14 ore Non diremo 34 anche se 20+14=34 ma diremo che
sono le 10 Come si spiega tutto ciograve
Immaginiamo di segnare sul quadrante dellrsquoorologio 24 ore Se la lancetta segna le 23 aggiungere 7 ore
significa spostarsi di 7 posti fino ad arrivare alle 6 Si giunge allo stesso risultato calcolando 23+7=30 ed
osservando che 30=1sdot24+6 o che egrave lo stesso 3024 =1 con resto 6 che significa che 30 lo si ottiene facendo fare
alla lancetta un giro completo piugrave 6
25
Se la lancetta segna le 20 e aggiungiamo 14 ore lrsquoorologio segneragrave le 10 percheacute 20+14=34 ma 3424= 1
con resto 10 per cui 34 lo si ottiene percorrendo un giro completo piugrave 10
Proviamo con il normale orologio a 12 ore I numeri che vediamo sul quadrante sono 0 1 2 3 4 5 6 7
8 9 10 11 Il numero 12 non compare percheacute a partire da 0 trascorse 12 ore torniamo di nuovo a 0 Questa
volta per fare un giro completo occorrono 12 ore Pertanto se sono le 7 che ore saranno tra 24 ore Saranno
ancora le 7 percheacute 7+24=31 ma 3112 = 2 con resto 7 cioegrave si compiono 2 giri completi piugrave 7 se sono le 8 tra 6
ore saranno le 2 percheacute 8+6=14 ma 1412=1 con resto 2 Dagli esempi dovrebbe risultare chiaro allora che ciograve
che contano non sono i risultati delle somme ma i loro resti nelle divisioni per il numero delle ore segnate sul
quadrante dellrsquoorologio
La stessa cosa succede con i giorni della settimana se pensiamo a un orologio con 7 ore sul quadrante
Facciamo corrispondere ai giorni della settimana i numeri da 0 a 6 (figura 10)
domenica Lunedigrave Martedigrave Mercoledigrave Giovedigrave Venerdigrave Sabato darr darr darr darr darr darr darr 0 1 2 3 4 5 6
Figura 10 Corrispondenza dei giorni della settimana con i numeri da 0 a 6
Se per esempio oggi egrave venerdigrave che giorno saragrave tra 12 giorni
Dovremo calcolare 5+12=17 ma i giorni si ripetono ogni 7 pertanto osservando che 177 =2 con resto 3
possiamo concludere che a partire da 5 e aggiungendo 12 si compiono 2 giri completi piugrave 3 ed essendo 3 il
numero corrispondente a mercoledigrave concludiamo che saragrave mercoledigrave Facciamo un altro esempio se oggi egrave
lunedigrave (1) che giorno saragrave tra 20 giorni Calcoliamo 1+20=21 217= 3 con resto 0 quindi saragrave domenica
Il numero n delle ore sullrsquoorologio costituisce quello che si chiama il modulo e individua lrsquoaritmetica di
modulo n in cui lrsquoinsieme dei numeri con i quali si opera indicato con Zn egrave lrsquoinsieme dei possibili resti della
divisione per n e cioegrave Zn=0 1 2 3 hellip nndash1e le operazioni si eseguono con le regole illustrate negli esempi
precedenti
Lrsquoesempio dellrsquoorologio a 24 ore costituisce la cosiddetta aritmetica finita di modulo 24 in essa Z24=0
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 essendo questi ultimi i possibili resti
della divisione per 24 Lrsquoorologio a 12 ore costituisce lrsquoaritmetica finita di modulo 12 in essa Z12=0 1 2 3 4
5 6 7 8 9 10 11 essendo questi ultimi i possibili resti della divisione per 12 Lrsquoesempio dei giorni della
settimana egrave lrsquoaritmetica finita di modulo 7 in cui Z7=0 1 2 3 4 5 6 essendo questi ultimi i possibili resti
della divisione per 7 Riassumiamo costruendo unrsquoaritmetica finita di modulo 4 I possibili resti della divisione
per 4 sono 0 1 2 3 quindi Z4=0123 Lrsquoaddizione e la moltiplicazione in Z4 si esegue come negli esempi
della tabella 6
26
operazioni indicate
Risultato nellrsquoaritmetica ordinaria
Risultato nellrsquoaritmetica modulo 4
2+2 4 0 percheacute 44=1 con resto 0
3+2 5 1 percheacute 54=1 con resto 1
2+1 3 3 percheacute 34=0 con resto 3
3sdot3 9 1 percheacute 94=2 con resto 1
3sdot2 6 2 percheacute 64=1 con resto 2
2sdot2 4 0 percheacute 44=1 con resto 0
Tabella 6 Addizione e moltiplicazione nellrsquoaritmetica finita di modulo 4
Si possono costruire le tavole dellrsquoaddizione e della moltiplicazione dellrsquoaritmetica modulo 4 che costituiscono
le tabelline di questa aritmetica sulla base delle quali si esegue qualsiasi addizione e moltiplicazione modulo 4
Nella tabella 7 sono spiegate le tabelline dellrsquoaritmetica in modulo 4
Tabella 7 Tavole dellrsquoaddizione e della moltiplicazione dellrsquoaritmetica modulo 4
Infine per indicare che due numeri a e b divisi per n danno lo stesso resto si usano le seguenti notazioni
tutte equivalenti tra loro
a=b mod n andashb=0 mod 4 a equiv b (mod n) che si legge a egrave congruo b modulo 4
Esempio
26=12 mod 7 egrave la stessa cosa di
26ndash12=0 mod 7 che egrave la stessa cosa di
26 equiv 12 (mod 7) e tutte e tre stanno a indicare che 26 e 12 divisi per 7 danno lo stesso resto che egrave 5 e
pertanto sono tutti equivalenti a 5
Facciamo vedere come sfruttare lrsquoaritmetica modulare per calcolare potenze come 2341 (figura 11) Il
metodo si basa sulla proprietagrave che il resto del quadrato di un numero a per un dato modulo n egrave uguale al
quadrato del resto dello stesso numero a per lo stesso modulo n cioegrave a2 mod n =(a mod n)2
+ 0 1 2 3
0 0 1 2 3
1 1 2 3 0
2 2 3 0 1
3 3 0 1 2
x 0 1 2 3
0 0 0 0 0
1 0 1 2 3
2 0 2 0 2
3 0 3 2 1
27
Figura 11 Il metodo per calcolare 2341
La funzione di Eulero
Per ogni intero ngt1 si definisce la funzione di Eulero = numero di interi minori di n e primi con esso Ad
esempio
bull ( ) 45 =φ percheacute gli interi minori di 5 sono 1 2 3 4 ed essi sono tutti primi con n
bull ( ) 26 =φ percheacute gli interi minori di 6 sono 1 2 3 4 5 e fra essi solo 1 e 5 sono primi con 6
bull ( ) 67 =φ percheacute gli interi minori di 7 sono 1 2 3 4 5 6 ed essi sono tutti primi con 7
bull ( ) 412 =φ percheacute gli interi minori di 12 sono 1 2 3 4 5 6 7 8 9 10 11 e fra essi solo 1 5 7
11 sono primi con 12
Se si conosce la scomposizione in fattori del numero n il seguente teorema ci fornisce un metodo per
calcolare Infatti esso afferma che per ogni ngt1 non primo ( )
minussdotsdot
minussdot
minussdotnppp
n=nφ 11
11
11
21
dove
p1 p2 hellip pn sono i fattori primi di n presi senza molteplicitagrave
22 mod 341=4
24=(22)2=(22 mod 341)2=42=16mod341=16
28=(24)2=(16)2=256mod341=256
216= (28)2=(256)2=65536mod341=64
232=(216)2=(64)2=4096mod341=4
264=(232)2=42=16mod341=16
2128=(264)2=(16)2=256mod341=256
2256=(2128)2=(256)2=65536mod341=64
2341=2(256+64+16+4+1) 2256 264 216 24 21 x x x x
64 1
1024 mod 341
= 1 x 64
64 x 16
1024 mod 341
1 x 2 =
=
x
28
Ad esempio
essendo 12 = 3sdot2sdot2 ( ) 42
1
3
212
2
11
3
111212 ===φ sdotsdot
minussdot
minussdot
essendo 6=2sdot3 ( ) 22
1
3
26
2
11
3
1166 ===φ sdotsdot
minussdot
minussdot
se n=psdotq ( ) ( ) ( )11111
11
1 minussdotminusminussdotminussdot
minussdot
minussdot qp=q
q
p
pn=
qpn=nφ
Ovviamente se n egrave un numero primo = nndash1
Vale inoltre il seguente teorema di Eulero per ngt1 e per ogni altn e primo con n si ha
Ad esempio per n=6 ( ) 26 =φ infatti i primi con 6 sono 1 e 5 per il teorema di Eulero si ha
2mod1255
2mod1112
2
equiv=
equiv=
per n=5 ( ) 45 =φ e i primi con 5 sono 1 2 3 4 e per il teorema di Eulero si ha
5mod12564
5mod1813
5mod1162
5mod111
4
4
4
4
equiv=
equiv=
equiv=
equiv=
Si puograve notare come nel caso in cui n egrave un numero primo si ritrova il piccolo teorema di Fermat
Infatti per n primo ( )nφ = nndash1 e per il teorema di Eulero per ogni altn e primo con n Ricordiamo infatti
che il piccolo teorema di Fermat afferma che se n egrave un numero primo e a un intero minore di n allora egrave
divisibile per n che con il linguaggio dellrsquoaritmetica modulare diventa che puograve essere riscritto e se a egrave primo
con n allora egrave che egrave equivalente a
Infine si prova che per ogni altn e primo con esso esiste lrsquoinverso di a e esso egrave dato da ( ) 1minusnaφ Infatti
( ) ( ) na=aa nφnφ1mod1 equivsdot minus per il teorema di Eulero Si ricorda che lrsquoinverso di un numero a egrave quel numero che
moltiplicato per a dagrave 1 indicato convenzionalmente con andash1
Ad esempio per n=5 i primi con 5 sono 1 2 3 4 e per ognuno di questi esiste lrsquoinverso infatti
bull lrsquoinverso di 1 egrave ( ) 1mod51111 31415 equivminusminus ===φ
e infatti
bull lrsquoinverso di 2 egrave ( ) 3mod58222 31415 equivminusminus ===φ
e infatti
bull lrsquoinverso di 3 egrave ( ) 2mod527333 31415 equivminusminus ===φ
e infatti
bull lrsquoinverso di 4 egrave ( ) 4mod564444 31415 equivminusminus ===φ
Le funzioni unidirezionali
Chiamiamo funzione da un insieme A a un insieme B qualunque procedura che associa a ogni elemento
di un insieme A (detto dominio) uno e un solo elemento di un insieme B (detto condominio) In simboli f
A rarr B Se poi indichiamo con x il generico elemento dellrsquoinsieme A e con y il generico elemento dellrsquoinsieme B
la f indica la procedura che ad ogni xisinA associa un yisinB e cioegrave y=f(x) ad esempio ldquofare il doppio dihelliprdquo
29
prendendo come dominio e codominio lrsquoinsieme dei numeri interi egrave in questo senso una funzione percheacute dato
ad esempio il numero 3 lo trasforma nel numero 6 come 5 lo trasforma in 10 e cosigrave via
Molte funzioni matematiche sono cosiddette bidirezionali nel senso che egrave facile dato un determinato x
generare il corrispondente y ma egrave altrettanto facile invertire la funzione cioegrave ritrovare lrsquoelemento x originario a
partire dal suo corrispondente
Facciamo qualche esempio
bull funzione xrarr fare il doppiorarr 2sdotx= y 3rarr fare il doppiorarr 2sdot3 = 6
funzione inversa y=2sdotx rarr fare la metagraverarr x 6=2sdot3 rarr fare la metagraverarr 3
bull funzione xrarr fare il quadruplorarr 4sdotxrarr aggiungere 1rarr sdoty=4sdotx +1
5rarr fare il quadruplorarr 4sdot5rarr aggiungere 1rarr 4sdot5 +1=21
funzione inversa y=4sdotx +1rarr sottrarre 1rarr 4sdot xrarr dividere per 4rarr x
21=4sdot5 +1rarr sottrarre 1rarr 4sdot 5rarr dividere per 4rarr 5
Le funzioni unidirezionali sono invece quelle funzioni facilmente calcolabili ma che non si possono invertire
Le funzioni cosiddette pseudounidirezionali (dette anche funzioni trappola a molla segreta) sono invece
quelle funzioni facilmente calcolabili ma che non altrettanto facilmente si possono invertire a meno che non si
conoscano alcune informazioni (la molla segreta) utilizzate nella loro costruzione
Lrsquoaritmetica modulare gioca un ruolo determinante in questo caso infatti permette di trasformare
funzioni bidirezionali in funzioni pseudounidirezionali
Facciamo lrsquoesempio della funzione ldquofare il quadruplordquo in simboli f(x)=4sdotx Egrave facilmente calcolabile
percheacute dato x per ottenere f(x) basta moltiplicare per 4 ma egrave altrettanto facile calcolare la sua inversa percheacute
dato f(x) basta dividere per 4 per ottenere lrsquooriginario x Ma anche se non avessimo la procedura inversa di
dividere per 4 sarebbe facile ritrovare lrsquoelemento originario anche procedendo per tentativi ed eliminazione
infatti se per esempio f(x) =20 si puograve tentare x=3 in tal caso f(x)=12 troppo piccolo quindi x deve essere
maggiore di 3 Si puograve allora pensare a 6 ma f(x)=24 troppo grande quindi x deve essere minore di 6 e cosigrave via
Vediamo cosa accade se calcoliamo utilizzando una aritmetica modulare Per esempio consideriamo la
stessa funzione f(x)=4sdotx in una aritmetica modulo 7 Possiamo osservare che la funzione non si comporta piugrave in
modo regolare come prima per accorgersene basta costruire una tabella (tabella 8)
x 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
f(x)=4sdotx 4 8 12 16 20 24 28 32 36 40 44 48 52 56 60
f(x)=4sdotmod 7 4 1 5 2 6 3 0 4 1 5 2 6 3 0 4
Tabella 8 La funzione f(x)=4sdotx in una aritmetica modulo 7
Anche in questa semplice situazione egrave chiaro che egrave piugrave complicato invertire la funzione e pertanto i valori
di x sono molto meglio protetti Si puograve fare anche lrsquoesempio della funzione esponenziale f(x)=3 x (tabella 9)
Tabella 9 La funzione f(x)=3 x in aritmetica modulo 11
x 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
f(x)=x3 1 8 27 64 125 216 343 512 729 1000 hellip hellip hellip hellip hellip
f(x)=x3 mod 11 1 8 5 9 4 7 2 6 3 10 hellip hellip hellip hellip hellip
30
Il cifrario a chiave pubblica RSA
Uno dei piugrave noti sistemi crittografici a chiave pubblica che sfrutta le idee precedentemente descritte egrave il
metodo RSA proposto dai matematici R L Rivest A Shamir e L Adlemann nel 1978 Esso risolve il problema
dello scambio delle chiavi in quanto queste ultime sono conosciute solamente ai rispettivi proprietari che non le
hanno preventivamente concordate e scambiate
Illustriamo schematicamente come i due utenti Mitt e Dest possano scambiarsi un messaggio segreto
utilizzando il metodo RSA Entrambi Mitt e Dest indipendentemente lrsquouno dallrsquoaltro poi
1 scelgono in modo casuale due numeri primi p q grandi (di 200-300 cifre in base 10)
2 calcolano N = psdotq e Φ(N) = (pndash1)sdot(qndash1)
3 scelgono un intero eltΦ(N) e primo con Φ(N) tale numero e saragrave la chiave pubblica
4 calcolano il numero d inverso di e mod Φ(N) tale cioegrave che esdotdequiv 1mod Φ(N) tale numero d saragrave
la chiave privata
5 rendono pubblici i numeri N ed e
Mitt per spedire un messaggio a Dest compie le seguenti operazioni
1 codifica il messaggio in un modo standard usando i numeri lt N
2 trasforma ogni numero M di tale codifica in Me (mod N) e lo spedisce a Dest
per decodificare il messaggio ricevuto Me Dest calcola (Me)d =Mesdotd =Mndash1=M (modN) riottenendo il messaggio
originale
Figura 12 Schema di cifrario con metodo RSA
31
Figura 13 Esempio di applicazione di metodi RSA
In che cosa consiste la sicurezza del metodo Da quanto esposto si osserva che per decodificare il
messaggio bisogna
1 conoscere d (chiave segreta)
2 essendo d lrsquoinverso di e nellrsquoaritmetica mod Φ(N) essendo e noto egrave necessario conoscere Φ(N)
3 ma noto N per calcolare Φ(N) egrave necessario conoscere i fattori primi di N cioegrave egrave necessario fattorizzare
N che egrave un problema computazionalmente difficile per quanto osservato in precedenza
Anche se non egrave stato dimostrato che non si possa rompere il codice in altro modo e cioegrave senza conoscere Φ(N) e i
fattori di N a tuttrsquooggi si puograve affermare che la sicurezza del metodo dipende essenzialmente dai seguenti fatti
Per codificare il messaggio bisogna saper costruire dei numeri primi grandi e tale operazione egrave
computazionalmente veloce si puograve infatti dimostrare che la complessitagrave computazionale di opportuni test di
primalitagrave per stabilire se un numero n egrave primo utilizzando il linguaggio di quel ramo della matematica nota
come teoria della complessitagrave egrave ldquoquasi-polinomialerdquo
Per violare il sistema bisogna saper fattorizzare interi grandi ottenuti come prodotto di due primi tale
problema egrave computazionalmente ldquolentordquo cioegrave con il linguaggio della teoria della complessitagrave appartiene alla
classe dei problemi non polinomiali Tale marcata differenza tra la velocitagrave di esecuzione delle operazioni di
costruzione di numeri primi grandi e di fattorizzazione di interi grandi garantisce la sicurezza del metodo
almeno per un tempo sufficientemente lungo Ad esempio con la tecnologia attuale lrsquooperazione di
fattorizzazione di un intero di 140 cifre in base 10 prodotto di due numeri primi casuali calcolati in pochi
secondi su un computer disponibile in commercio richiede utilizzando vari supercomputers operanti
parallelamente circa un mese
La RSA Security Inc gestisce una sfida a livello mondiale ove vengono premiati coloro che fattorizzano
gli interi proposti da loro in una particolare lista Ad esempio il 3 dicembre del 2003 egrave stato fattorizzato
32
rsa576 =
188198812920607963838697239461650439807163563379417382700763356422988859715234
665485319060606504743045317388011303396716199692321205734031879550656996221305
168759307650257059
un numero di 174 cifre decimali prodotto di due primi di 87 cifre
p =
398075086424064937397125500550386491199064362342526708406385189575946388957261
768583317
q =
472772146107435302536223071973048224632914695302097116459852171130520711256363
590397527
Le chiavi attualmente utilizzate dallRSA sono a 309 cifre decimali
La firma digitale
Consideriamo al solito un mittente che deve inviare a un destinatario un messaggio m La codifica di m
con il metodo descritto assicura lrsquoautenticitagrave del messaggio ma non fornisce alcuna sicurezza sulla sua
paternitagrave Infatti il messaggio m pur essendo autentico potrebbe essere stato inviato da qualcuno che si spaccia
per il mittente Questa egrave unimportantissima questione particolarmente nella trasmissione di messaggi che oltre
a dover essere segreti devono garantire la loro origine
Si dovrebbe quindi disporre di un analogo della firma manuale detta appunto firma digitale La firma
digitale deve allora essere progettata in modo da possedere le stesse caratteristiche di una firma manuale e cioegrave
lrsquoautenticitagrave la non falsificabilitagrave e lrsquoimpossibiltagrave di essere riutilizzata Facciamo vedere come lo stesso metodo
RSA puograve essere utilizzato per progettare una firma digitale
La situazione egrave la seguente il mittente (di seguito indicato con Mitt) invia un messaggio m con la firma
F al destinatario (di seguito indicato con Dest) Siano a b rispettivamente le chiavi pubblica e segreta di MITT
siano e d rispettivamente le chiavi pubblica e segreta di DEST
La procedura per apporre la firma digitale F al messaggio m egrave illustrata nei seguenti passi riassunti nel
grafico della figura 14
1 Mitt cripta la firma F (cioegrave i suoi dati identificativi) usando la propria chiave segreta (b)
ottenendo Fb
2 il messaggio m con la firma F criptata viene ulteriormente criptato con la chiave pubblica di
Dest (e) ottenendo (m Fb)e
3 Dest decodifica il messaggio con la sua chiave segreta (d) ottenendo
((m Fb)e)d = (me F(be)) d =m(e d)F(be d) = mFb
in cui la firma di Mitt egrave ancora criptata
4 Dest decodifica la firma di Mitt con la chiave pubblica di Mitt (a) ottenendo
(Fb)a = F(ba) = F
33
Grafico firma digitale
Mitt
Dest
pubblica
Fb
e dpubblica
a
((Fb)e)d=(Fb)ed=(Fb)1=Fb
(Fb)a=(F)ba=(F)1=F
ab de
(Fb)e
codifica
codificadecodifica
decodifica
1
2
3
4
5
6
7
8
segreta
b
segreta
Figura 14 Grafico firma digitale
Bibliografia
Thomas Beth Comunicazioni e sicurezza su Internet in ldquoLe Scienzerdquo n 330 febbraio 1996
Brian Butterworth Intelligenza matematica Vincere la paura dei numeri scoprendo le doti innate della mente
Rizzoli Milano 1999
John H Conway Richard K Guy Il libro dei numeri Hoepli Milano 2003
Richard Courant Herbert Robbins Che cosrsquoegrave la matematica Boringhieri Torino 1971
Philip J Davis Il mondo dei grandi numeri Zanichelli Bologna 1973
Keith Devlin Dove va la matematica Bollati Boringhieri Torino 1994
Jean Dieudonneacute Lrsquoarte dei numeri matematica e matematici oggi Mondadori Milano 1989
Martin E Ellmann La crittografia a chiave pubblica in La matematica della complessitagrave Quaderni n 67
settembre 1992 Le Scienze
Paolo Ferragina Fabrizio Luccio Crittografia principi ndash Algoritmi ndash Applicazioni Bollati Boringhieri Torino
2001
Godfrey H Hardy Apologia di un matematico Garzanti Milano 1989
Morris Kline Storia del pensiero matematico Einaudi Milano 1991
Serge Lang La bellezza della matematica Bollati Boringhieri Torino 1991
Mauro Leoncini Modelli di calcolo e complessitagrave computazionale in La matematica computazionale Quaderni
n 84 giugno 1995 Le Scienze
Fabrizio Luccio e Linda Pagli P = NP in La matematica della complessitagrave Quaderni n 67 settembre 1992
Le Scienze
Piergiorgio Odifreddi La Matematica del Novecento dagli insiemi alla complessitagrave Einaudi Torino 2000
34
ldquoPeriodico di matematicherdquo Serie VII Volume 7 Numero 2-3 luglio-dicembre 2000 Mathesis
ldquoPeriodico di matematicherdquo Serie VIII Volume 1 Numero 1 gennaio-marzo 2001 Mathesis
Carl Pomerance Alla ricerca dei numeri primi in ldquoLe Scienzerdquo n 174 febbraio 1983
Simon Singh Codici e segreti la storia affascinante dei messaggi cifrati dallrsquoantico Egitto a Internet Rizzoli
Milano 1999
Marcus du Sautoy Lrsquoenigma dei numeri primi lrsquoipotesi di Riemann lrsquoultimo grande mistero della matematica
Rizzoli Milano 2004
Gary Stix I segreti meglio custoditi la crittografia quantistica egrave passata dalla teoria al laboratorio per
approdare finalmente alle applicazioni in ldquoLe Scienzerdquo n 438 febbraio 2005
9
valore di p 2p-1 anno autore computer 21701 6533 cifre 1978 Landon Curt Noll e Laura A
Nickel Cyber 174
23209 6987 cifre 1979 Landon Curt Noll Cyber 174 44497 13395 cifre 1979 David Slowinski e Harry L
Nelson Cray 1
86243 25962 cifre 1982 David Slowinski Cray 1 110503 33265 cifre 1988 Walter N Colquitt e Luther
Welsch Jr
132049 39751 cifre 1983 David Slowinski Cray X-MP 216091 65050 cifre 1985 David Slowinski Cray X-MP 756839 227832 cifre 1992 David Slowinski e Paul Gage Cray 2 859433 258716 cifre 1994 David Slowinski e Paul Gage Cray C90 1257787 378632 cifre 1996 David Slowinski e Paul Gage Cray T94 1398269 420921 cifre 1996 Joel Armengaud George
Woltman e GIMPS PC Pentium 90
2976221 895932 cifre 1997 Gordon Spence George Woltman e GIMPS
PC Pentium 100
3021377 909526 cifre 1998 Roland Clarkson Woltman Scott Kurowski e GIMPS
Pentium 200
6972593 2098960 cifre 1999 Nayan Hajratwala Woltman Kurowski e GIMPS
Pentium II 350
13466917 4053946 cifre 2001 Michael Cameron e GIMPS 800 MHz AMD T-Bird PC
20996011 6320430 cifre 2003 Michael Shafer e GIMPS 2 Gh Pentium 4 Dell Dimension PC
24036583 7235733 cifre 2004 Josh Findley e GIMPS 24 GHz Pentium 4 Windows XP PC
25964951 7816230 cifre 2005 Martin Nowak e GIMPS 24 GHz Pentium 4 Windows XP PC
30402457
9152052 cifre
2005 Curtis Cooper Steven Boone CMSU e GIMPS
Lavoro coordinato di 700 computers
GIMPS = Great Internet Mersenne Prime Search (wwwmersenneorg)
Tabella 1 La ricerca dei numeri primi di Mersenne
Unrsquoaltra notevole formula che dagrave luogo a molti numeri primi fu scoperta da Eulero nel 1772 La
formula x2+x+41 fornisce il seguente elenco di numeri primi inserendo tutti i numeri compresi fra 0 e 39
41 43 47 53 61 71 83 97 113 131 151 173 197 223 251 281 313 347 383 421 461 503
547 593 641 691 743 797 853 911 971 1033 1097 1163 1231 1301 1373 1447 1523 1601
Eulero comprese che il processo era destinato a interrompersi a un certo punto Infatti per x=41 si
ha
412+41+41 = 412+2middot41 = 41middot (41+2) = 41middot43
che non egrave primo ma anche per x=40 il numero che si ottiene non egrave primo infatti
402+40+41= 40 middot (40+1)+(40+1)=(40+1) middot (40+1)
Ciononostante Eulero fu molto colpito dalla capacitagrave della sua formula di produrre tanti numeri
primi da domandarsi per quali altri numeri diversi da 41 si sarebbe potuto ottenere un risultato simile
Scoprigrave che si poteva scegliere anche n=2 3 5 11 17 percheacute la formula x2+x+n producesse numeri primi
per ogni valore di x compreso fra 0 e nndash2
10
Possiamo concludere che la ricerca di formule semplici che producano soltanto numeri primi egrave stata
inutile ed egrave ancora meno probabile che conduca a buoni risultati il tentativo di trovare una formula che
produca tutti i numeri primi Lo stesso Eulero nel 1751 scriveva ldquoci sono alcuni misteri che la mente
umana non penetreragrave mai Per convincercene non dobbiamo far altro che gettare unrsquoocchiata alle tavole dei
numeri primi Ci accorgeremo che non vi regna neacute ordine neacute leggerdquo
La svolta di Gauss
Il passo decisivo nella ricerca di una legge da cui dipenda la distribuzione dei numeri primi fu
compiuto quando si rinunciograve agli inutili tentativi di trovare una formula che generasse tutti i numeri primi o
desse il numero esatto di essi contenuti nei primi n numeri interi A compiere la svolta fu Gauss il quale
affrontograve il problema da un altro punto di vista Infatti egli si chiese se era possibile prevedere non quale
fosse la posizione di un numero primo rispetto a quello precedente ma se era possibile prevedere quanti
fossero i numeri primi minori o uguali a un certo numero x Egli introdusse a tale scopo la funzione )(xπ =
numero dei primi minori o uguali a x e poteacute verificare per esempio che 4)10( =π percheacute i numeri primi
minori o uguali a 10 sono 2 3 5 7 e cioegrave 4 e la distanza media tra due numeri primi successivi
nellrsquointervallo tra 1 e 10 egrave 104 uguale a 25 Nella tabella 2 sono riportati alcuni valori della funzione e
della distanza media
Tabella 2 Alcuni valori della fiunzione )(xπ
Osservando tali risultati egli notograve che ogni volta si moltiplica x per 10 si aggiunge 23 al rapporto
xπ(x) almeno per x abbastanza grande Proprio questo legame tra moltiplicazione e addizione (che egrave la
relazione racchiusa in un logaritmo) e il fatto che 23 egrave approssimativamente il valore rappresentato dal
portarono Gauss a ipotizzare che
( )x
x
xlog=
π
Da cui
11
( )( )x
xx
logcongπ
Questa congettura si rivelograve poi vera e oggi egrave nota come teorema dei numeri primi Una notevole
conseguenza del teorema dei numeri primi egrave che ldquola probabilitagrave che un numero intero di x cifre preso a
caso sia primo egrave circa 1log(10x)rdquo Infatti lrsquoespressione
( )( )x
xx
logcongπ
in altre parole significa che nellrsquointervallo tra 1 e x si incontra un primo circa ogni log(x) e cioegrave la
probabilitagrave che nellrsquointervallo dei numeri le x un numero preso a caso sia primo egrave 1log(x) Ad esempio
nellrsquointervallo dei numeri minori di 10 000 000 uno ogni log(10 000 000) egrave primo Essendo
log(10 000 000) = log(107) = 7log(10) asymp 1611hellip ciograve vuol dire che dei numeri minori di 10 000 000 circa 1
su 16 egrave primo e perciograve crsquoegrave circa una probabilitagrave su 16 che un numero di 7 cifre sia primo
Al momento attuale molti sono i problemi non ancora risolti Tra questi ricordiamo
1 la congettura dei primi gemelli esistono infiniti numeri primi p tali che p+2 egrave ancora
primo Ad esempio 3 e 3+2 5 e 5+2 17 e 17+2 29 e 29+2 ecc
2 la congettura di Goldbach ogni intero pari maggiore di 2 puograve essere scritto come somma di
due numeri primi Ad esempio 4 = 2+2 6 = 3+3 8 = 3+5 10 = 5+5 12 = 5+7 ecc
La difficoltagrave fondamentale di tali problemi risiede nel fatto che i numeri primi sono definiti
mediante proprietagrave moltiplicative mentre i problemi in questione coinvolgono proprietagrave additive
Di gran lunga il piugrave importante tra i problemi non risolti egrave quello che va sotto il nome di ipotesi di
Riemann anche percheacute fu proprio la novitagrave del metodo in essa contenuto a far compiere il passo decisivo
per la dimostrazione del teorema dei numeri primi compiuta indipendentemente lrsquouno dallrsquoaltro nel 1896
dai matematici Jacques Hadamard e Charles de la Valleacutee-Poussin
Ricordiamo che lrsquoipotesi di Riemann inserita allrsquoottavo posto nellrsquoelenco dei famosi ventitreacute
problemi irrisolti presentati da David Hilbert al Congresso internazionale dei matematici del 1900 e
lanciati come sfida alla comunitagrave dei matematici del ventesimo secolo egrave ancora rimasto tale cioegrave senza
dimostrazione
Egrave oggi considerato uno dei problemi piugrave difficili del nuovo millennio Nel 2000 il Clay Mathematics
Institute ha offerto un milione di dollari a chi riusciragrave a darne una dimostrazione
Grazie ai calcolatori attualmente egrave stato possibile verificare tali congetture in moltissimi casi Ad
esempio la congettura di Goldbach egrave stata verificata per tutti i pari fino a 100 milioni mentre lrsquoipotesi di
Riemann egrave stata verificata per un miliardo e mezzo di casi ma ciograve non egrave sufficiente per dimostrarne la
veritagrave Ed egrave proprio questo quello che distingue la matematica dalle altre scienze dove una qualsiasi
ipotesi sostenuta da verifiche sperimentali egrave ritenuta valida fincheacute non contraddetta da un caso contrario
mentre in matematica un solo caso contrario serve a dimostrare la falsitagrave dellrsquoipotesi la cui veritagrave per
contro deve essere dimostrata per tutti i casi possibili il che ovviamente puograve avvenire solo
indipendentemente dalle verifiche di casi particolari anche se molti
12
Ed egrave questa una delle peculiaritagrave piugrave belle della matematica Qualsiasi affermazione dimostrata egrave
eterna e immutabile si pensi allrsquoinfinitagrave dei numeri primi ciograve egrave vero per Euclide ma rimane vero ancora
oggi senza possibilitagrave di smentite
Come ebbe a dire il matematico Hermann Hakel ldquoNella maggior parte delle scienze una
generazione demolisce quello che laltra ha costruito e ciograve che uno ha fatto un altro lo disfa Solo nella
matematica ogni generazione aggiunge un nuovo piano alla vecchia strutturardquo
E che ciograve susciti lrsquoidea della bellezza egrave bene sintetizzato dalle parole di Bertrand Russell ldquoLa
matematica vista dalla giusta angolazione non possiede solo la veritagrave ma la suprema bellezza una
bellezza fredda e austera come quella della scultura una bellezza che non fa appello ai nostri sentimenti
piugrave grossolani che non ha gli ornamenti sgargianti della musica o della pittura una bellezza pura e
sublime capace della rigorosa perfezione che egrave propria solo della piugrave grande arterdquo
Anche se non egrave possibile presentare in termini semplici lrsquoipotesi di Riemann in quanto coinvolge
concetti di matematica superiore proviamo a delinearne le linee essenziali
Nel 1737 Eulero introdusse e studiograve una funzione detta funzione ζ (zeta) di Eulero cosigrave definita
sum+infin
=
gtisin++++==1
1 4
1
3
1
2
11
1)(
nxxxx
xRxperdefinitan
xζ
e sempre a Eulero egrave dovuta la seguente identitagrave
( )
1
111
11
17
7
15
5
13
3
12
2 prod
minus=sdot
minussdot
minussdot
minussdot
minussdot
minus=
px
x
x
x
x
x
x
x
x
x
x
x
p
pxζ
dove il prodotto egrave esteso a tutti i numeri primi
Ed egrave proprio questa identitagrave che egrave alla base della notevole importanza assunta dalla funzione ζ nella
teoria dei numeri e in particolare per quanto riguarda la distribuzione dei numeri primi nellrsquoinsieme dei
naturali Infatti a destra di essa appaiono esplicitamente i numeri primi mentre a sinistra compare la
funzione ζ definita indipendentemente da essi
Riemann nel 1859 propose di considerare la funzione ζ come funzione di variabile complessa
cioegrave definita per x numero complesso ed effettuograve il cosiddetto prolungamento analitico di ζ allrsquointero piano
complesso costruendo la nuova funzione ζ oggi nota come funzione zeta di Riemann Egli provograve che gli
zeri della funzione ζ (cioegrave i valori della variabile per cui la funzione restituisce il valore 0) sono x = ndash2
x = ndash4 x = ndash6hellip detti zeri banali di ζ e alcuni numeri complessi (non reali) x con parte reale compresa tra
0 e 1 estremi inclusi Lrsquoipotesi di Riemann afferma che tutti gli zeri non banali di ζ hanno la caratteristica
di avere la parte reale uguale a 21
Dalla validitagrave di questa ipotesi discende una serie enorme di proprietagrave sui numeri primi Ci sono
attualmente centinaia di ldquoquasi teoremirdquo che iniziano con ldquosupponiamo che lrsquoipotesi di Riemann sia
verahelliprdquo Se lrsquoipotesi venisse dimostrata tutti questi ldquoquasi teoremirdquo diventerebbero veri teoremi
13
I test di primalitagrave e la fattorizzazione
Abbiamo fin qui concentrato lrsquoattenzione sul comportamento dei numeri primi ma come egrave possibile
preso un intero a caso x provare se x egrave primo o composto
Il metodo piugrave ovvio consiste nel dividere il numero x per tutti gli interi che lo precedono Infatti se
una qualunque di tali divisioni dagrave resto zero il numero x egrave composto e divisore e quoziente sono suoi
fattori mentre se nessuna di tali divisioni per ciascuno degli interi minori x dagrave resto zero il numero x egrave
primo
In effetti la procedura delle divisioni puograve essere interrotta allrsquointero minore della in quanto se x egrave
composto esso saragrave il prodotto di almeno due fattori per esempio x= F1sdotF2 ed essendo x=x sdot x se
F1gt x F2 lt x Ad esempio 29= 2929 sdot e 529 cong quindi si puograve fermare la procedura quando il
divisore egrave 5 Infatti 292 dagrave resto 1 293 dagrave resto 2 294 dagrave resto 1 295 dagrave resto 4 Si puograve quindi
concludere che 29 egrave primo percheacute se avesse avuto un fattore maggiore di 5 ne avrebbe avuto sicuramente
uno minore di 5 il che non egrave
Ma anche limitando le divisioni alla radice quadrata lrsquoalgoritmo sarebbe comunque inapplicabile
percheacute per giungere a conclusione richiede un tempo che cresce esponenzialmente al crescere del numero
di cifre di n pertanto puograve risultare intollerabilmente lungo anche con gli strumenti di calcolo piugrave veloci
anni secoli piugrave della vita presunta dellrsquoUniverso Ad esempio egrave stato dimostrato che il numero 244 497ndash1
formato da 13 595 cifre egrave primo Se un calcolatore fosse in grado di controllare un milione di divisioni al
secondo e si fermasse alla radice quadrata del numero egrave stato calcolato che gli occorrerebbero 106684 anni
per espletare il suo compito Lrsquoinconveniente deriva dal fatto che il metodo delle divisioni non solo ci dice
se il numero egrave primo o composto ma risolve anche il problema della fattorizzazione di un numero in
quanto nel caso in cui il numero risulta composto ci fornisce i fattori della sua scomposizione
A tuttrsquooggi egrave facile trovare numeri primi grandi o testare la primalitagrave di un numero mentre egrave
difficile fattorizzare un intero che sia il prodotto di due numeri primi grandi Ovviamente i termini ldquofacilerdquo
ldquodifficilerdquo ldquogranderdquo sono relativi alla conoscenza e alla tecnologia disponibili Attualmente sono
considerati ldquograndirdquo numeri di alcune centinaia di cifre mentre ldquofacilerdquo rappresenta un tempo di secondi e
ldquodifficilerdquo di secoli
Lrsquoefficacia dei test di primalitagrave attualmente usati dipende dal fatto che egrave possibile stabilire se un
numero egrave primo senza essere costretti a trovarne i fattori qualora risultasse composto Alcuni metodi usati
sono di tipo probabilistico cioegrave stabiliscono che un intero egrave probabilmente primo con una probabilitagrave di
errore che si puograve rendere piccola quanto si vuole
Il piugrave semplice al tempo stesso velocissimo e potente si basa sul piccolo teorema di Fermat Il
teorema stabilisce che se p egrave un numero primo e a un intero minore di p allora apndasha egrave un multiplo di p cioegrave
egrave divisibile per p
Ad esempio
bull se p=7 e a=2 allora 27ndash2=128ndash2=126=7middot18 cioegrave multiplo di 7
bull se p=7 e a=3 allora 37ndash3=2187ndash3=2184=7middot312 cioegrave multiplo di 7
14
bull se p=7 e a=4 allora 47ndash4=16384ndash4 = 16380 = 7middot2340 cioegrave multiplo di 7
bull se p=5 e a=4 allora 45ndash4=1024ndash4=1020=5middot204 cioegrave multiplo di 5
bull se p=3 e a=4 allora 43ndash4=64ndash4=60=3middot20 cioegrave multiplo di 3
Lrsquoimportanza del teorema sta nel fatto che ci fornisce un metodo per stabilire se un numero egrave primo
o no infatti costruiamo un numero del tipo apndasha verifichiamo se egrave multiplo di p se non lo egrave siamo sicuri
che p non egrave primo Ad esempio vogliamo sapere se 15 egrave primo costruiamo
215ndash2=32768ndash2=32766
32766=15middot2184+6
cioegrave non egrave divisibile per 15 quindi sicuramente 15 egrave composto e infatti 15=3middot5
Ma cosa si puograve dire se invece apndasha egrave divisibile per p Sfortunatamente non possiamo essere sicuri
che p sia primo anche se egrave molto probabile che lo sia
Proviamo 217ndash2=131072ndash2=131070=17middot7710 e infatti 17 egrave primo Provando 2341ndash2 si trova che
esso egrave divisibile per 341 ma 341 non egrave primo essendo 341=11middot31 Sono detti pertanto pseudoprimi i
numeri composti che passano il test Non proviamo a calcolare 2341 percheacute sarebbe un numero
mostruosamente grande fuori dalla nostra portata ma vedremo tra poco come si puograve aggirare lrsquoostacolo
Riassumendo il piccolo teorema di Fermat afferma che egrave vero
1 se p egrave primo e a egrave un intero minore di p allora apndasha egrave divisibile per p
2 se apndasha non egrave divisibile per p allora p non egrave primo
ma se apndasha egrave divisibile per p allora p puograve essere primo ma anche composto ciograve percheacute la divisibilitagrave per p
egrave condizione necessaria ma non sufficiente percheacute p sia primo Concludendo possiamo dire che usando
questo teorema per verificare la primalitagrave di un numero se scopriamo che ap-a non egrave divisibile per p siamo
sicuri che p egrave composto ma se egrave divisibile per p allora p egrave probabilmente primo nel senso che puograve essere
un primo autentico o pseudoprimo
La cosa interessante egrave che la probabilitagrave che un numero composto sia uno pseudoprimo (cioegrave che
superi il test di primalitagrave ma non sia primo come per esempio 341) su una base casuale diminuisce
fortemente allrsquoaumentare del numero Un numero di 1000 cifre composto ha circa una possibilitagrave su 10123
di essere uno pseudoprimo su una base scelta a caso La tabella 3 riporta tali probabilitagrave in funzione del
numero di cifre
Cifre in x Limite superiore per P(x)
Cifre in x Limite superiore per P(x)
Cifre in x
Limite superiore per P(x)
60 00716 80 00000846 100 00000000277
120 528middot10ndash12 150 149middot10ndash17 200 385middot10ndash27
300 58middot10ndash29 400 57middot10ndash42 500 23middot10ndash55
700 18middot10ndash82 1000 12middot10ndash123 2000 86middot10ndash262
5000 76middot10ndash680 10000 16middot10ndash1331 100000 13middot10ndash10584
Tabella 3 Probabilitagrave che un numero composto sia pseudoprimo
Nel 2002 tre ricercatori indiani Manindra Agrawal Neeraj Kayal e Nitin Saxena hanno costruito un
algoritmo denominato AKS (dalle iniziali dei nomi) sempre basato sulla fondamentale proprietagrave enunciata dal
15
piccolo teorema di Fermat ma che risulta deterministico e che riduce in maniera drastica il tempo di calcolo
Lrsquoalgoritmo fornisce una svolta significativa in un settore lungamente atteso e di grande interesse pratico ma
per ora non sembra che possa avere immediata applicazione in quanto molto piugrave lento dei test probabilistici i
quali drsquoaltra parte sono quasi certi per i numeri primi di centinaia di cifre che servono attualmente in
crittografia
Storia della crittografia
La crittografia che letteralmente significa scrittura nascosta nasce dalla necessitagrave di segretezza di alcune
informazioni e pertanto con tale termine intendiamo lo studio dei metodi che consentono la trasmissione sicura
dellrsquoinformazione
Drsquoaltro canto lrsquoesistenza di informazioni segrete genera il desiderio di svelarle e da tale desiderio nasce
la crittoanalisi con cui intendiamo lo studio di metodi che consentono la decifrazione dei messaggi crittografati
La storia della crittografia drsquoaltra parte altro non egrave che la secolare battaglia tra crittografi e crittoanalisti
Infatti ogni sistema crittografico rimane valido fincheacute un crittoanalista non individua un suo punto debole sulla
base del quale riesce a elaborare il sistema di decifrazione
Crittografi e crittoanalisti insieme hanno dato un grande contributo al progresso scientifico e tecnologico
Infatti tutti i metodi della crittografia e della crittoanalisi fanno ricorso a metodi e strumenti di una vasta varietagrave
di scienze come la matematica la linguistica la teoria dellrsquoinformazione la fisica quantistica le quali a loro
volta sono da essi arricchite e stimolate
Lrsquoidea su cui si basa un metodo crittografico consiste nel concordare tra mittente e destinatario che
vogliono scambiarsi un messaggio senza che venga intercettato da terzi una procedura per alterare il testo in
chiaro del messaggio Il destinatario puograve ricavare il testo originale applicando al testo cifrato la procedura
inversa Chi intercetta il messaggio non conoscendo la procedura non puograve ricostruire il messaggio La sicurezza
del metodo sta nella difficoltagrave da parte del crittoanalista di poter ricostruire la procedura dallrsquoanalisi del
messaggio cifrato
Prima dellrsquoera informatica i metodi crittografici erano essenzialmente due per trasposizione o per
sostituzione
Nella trasposizione le lettere sono mutate di posto generando di fatto un anagramma Ma la
trasposizione non puograve essere casuale Infatti nel caso di messaggi brevi non sarebbe sicura in quanto i pochi
caratteri alfabetici che costituiscono il messaggio possono essere combinati in pochi modi diversi per cui
diventa facile ricostruire il messaggio per tentativi Ad esempio la parola ldquomiordquo consta di 3 caratteri alfabetici
esistono al massimo sei sequenze diverse mio moi imo iom omi oim analizzandole tutte e sei egrave facile
ricostruire la sequenza ldquomiordquo Ma al crescere della lunghezza del messaggio cresce mostruosamente anche il
numero delle sequenze infatti un anagramma di una parola di n lettere altro non egrave che una permutazione di n
elementi e si dimostra che il numero totale delle permutazioni di n elementi egrave dato da n (si legga n fattoriale)
uguale al seguente prodotto n(nndash1)(nndash2)(nndash3)hellip(nndash (nndash1)) Pertanto se il messaggio egrave costituito ad esempio da
20 lettere i possibili anagrammi sono 20=20middot19middot18middot17middot16middot15middot14middot13middot12middot11middot10middot9middot8middot7middot6middot5middot4middot3middot2middot1 cioegrave piugrave di 1000
miliardi e anche se si potesse controllare un anagramma al secondo ci vorrebbero piugrave di trentuno secoli per
analizzarli tutti In questo caso la comunicazione risulterebbe sicura essendo impossibile analizzare tutte le
16
possibili sequenze e ricostruire il messaggio ma di fatto egrave inutilizzabile anche dal destinatario percheacute di fronte
allo stesso problema
Per rendere efficace tale metodo egrave necessario che mittente e destinatario si accordino su un criterio di
trasposizione fissato in anticipo e piugrave egrave complicato tale criterio e piugrave egrave sicuro il metodo
Esiste il metodo della trasposizione cosiddetta a inferriata Esso consiste nella trascrizione di un testo
lungo due linee orizzontali una superiore e una inferiore passando da una allrsquoaltra a ogni successivo carattere
alfabetico Finita la trascrizione la seconda fila di caratteri saragrave accodata alla prima per dare origine al testo
cifrato Ad esempio
testo del messaggio incontriamoci stasera alle sette
testo del messaggio cifrato icnraoitsralstenotimccsaealeet
Il destinatario ricostruisce il testo originale applicando la trasposizione inversa
Esistono molti altri tipi di trasposizione per esempio si puograve variare il numero delle file su cui trascrivere
il messaggio oppure si puograve passare da una fila allrsquoaltra ogni due caratteri anzicheacute dopo ogni singolo carattere e
cosigrave via Da osservare che ogni carattere alfabetico mantiene la propria identitagrave ma cambia la posizione
Nella sostituzione ogni carattere alfabetico del messaggio originale viene sostituito con un altro carattere
alfabetico secondo un criterio stabilito In questo caso ogni carattere alfabetico mantiene la posizione ma
cambia la propria identitagrave
Sostanzialmente esso necessita di determinare come primo passo un alfabeto cifrante che egrave ottenuto
rimescolando secondo un criterio lrsquoalfabeto ordinario In questo modo a ogni carattere dellrsquoalfabeto ordinario
corrisponde un carattere dellrsquoalfabeto cifrante Per cifrare il messaggio si sostituisce ogni carattere del messaggio
con il corrispondente carattere dellrsquoalfabeto cifrante Per decifrare il messaggio si applica la procedura inversa
Il primo esempio documentato di cifratura per sostituzione si trova nel De bello gallico di Giulio Cesare
detto anche cifrario di Cesare Qui lrsquoalfabeto cifrante era ottenuto da quello ordinario spostando a destra di tre
posti ogni carattere alfabetico ad esempio per cifrare il messaggio si sostituisce ogni lettera con la
corrispondente dellrsquoalfabeto cifrante (figura 2)
17
Figura 2 Cifrario di Giulio Cesare
Per decifrare si sostituisce ogni lettera del messaggio cifrato utilizzando la corrispondenza inversa
Come si puograve facilmente osservare in questo metodo lrsquoalfabeto cifrante altro non egrave che una
riorganizzazione dellrsquoalfabeto ordinario che si puograve ottenere con un qualsiasi spostamento tra 1 e il numero delle
lettere dellrsquoalfabeto ordinario Per esempio nel caso dellrsquoalfabeto italiano che consta di 21 lettere si possono
effettuare 20 diversi spostamenti e ottenere quindi 20 diversi alfabeti cifranti Essendo lrsquoalfabeto cifrante una
riorganizzazione dellrsquoalfabeto ordinario non egrave detto che questa debba essere ottenuta utilizzando il criterio
dello spostamento ma puograve coincidere con un qualsiasi anagramma dellrsquoalfabeto ordinario Si vede quindi
facilmente come aumentano gli alfabeti cifranti nel nostro caso il loro numero per quanto detto
precedentemente uguaglia il numero delle permutazioni di 21 elementi e cioegrave 21 e cioegrave oltre 50 miliardi di
miliardi
A partire da questo esempio cerchiamo di chiarire in termini generali il significato di metodo
crittografico intendendo con esso un algoritmo che mediante una chiave trasforma un messaggio in chiaro in
un messaggio cifrato o crittogramma
Ad esempio nel metodo descritto sopra lrsquoalgoritmo equivale alla procedura con cui ogni lettera
dellrsquoalfabeto in chiaro egrave sostituita dalla corrispondente lettera dellrsquoalfabeto cifrante la chiave equivale al
particolare alfabeto cifrante scelto per la cifratura o decifrazione di un particolare crittogramma
Inoltre crsquoegrave da sottolineare lrsquoimportanza concettuale della distinzione tra algoritmo e chiave Infatti la sola
conoscenza dellrsquoalgoritmo senza la chiave non permette di decifrare il crittogramma Ed egrave questo uno dei
principi fondamentali della crittografia formulato in modo definitivo nel 1883 dallrsquoolandese Auguste
Kerckhoffs von Nieuwenhof noto anche come legge di Kerckhoffs ldquola sicurezza di un crittosistema non deve
dipendere dal tener celato il crittoalgoritmo La sicurezza dipenderagrave solo dal tener celata la chiaverdquo
Le caratteristiche di un efficace sistema crittografico possono essere riassunte nelle seguenti
1 segretezza della chiave
2 semplicitagrave della chiave (per evitare possibili malintesi o errori al momento dello scambio tra
mittente e destinatario)
3 alto numero di potenziali chiavi tra cui scegliere
18
Come si puograve notare la 2) e la 3) sono collegate tra loro infatti nel sistema descritto sopra si potrebbe
scegliere una chiave piugrave semplice sacrificando il numero di chiavi potenziali
Infatti invece di generare lrsquoalfabeto cifrante da una riorganizzazione casuale dellrsquoalfabeto ordinario lo si
puograve fare a partire da una parola chiave come nel seguente esempio Supponiamo di accordarci sulla parola
chiave lsquolaurarsquo si eliminano eventuali spazi e lettere ripetute quindi la parola chiave diventa lsquolaurrsquo a questo
punto la sequenza l a u r saragrave lrsquoinizio dellrsquoalfabeto cifrante cui seguiranno tutte le altre lettere mancanti in
ordine alfabetico partendo dallrsquoultima lettera della chiave per cui lrsquoalfabeto cifrante che si ottiene saragrave l a u r s t
v z b c d e f g h i m n o p q
I crittosistemi basati sulla sostituzione hanno dominato la scena per tutto il primo millennio della nostra era
fincheacute i crittoanalisti non trovarono il suo punto debole ed elaborarono un metodo per decifrarne i crittogrammi prodotti
La violazione di tali sistemi si basa su unrsquoidea dovuta per prima a crittoanalisti arabi nella quale si
combinano conoscenze di linguistica statistica e matematica nota con il nome di analisi delle frequenze
Essa egrave descritta dallo studioso del IX secolo Abu Yusuf ibn Ishaq al-Kind sopran-nominato il filosofo
degli arabi in una sua monografia dal titolo Sulla decifrazione dei messaggi crittati ritrovata nellrsquoarchivio
ottomano Sulaimaniyyah di Istanbul solo nel 1987 Nel testo si legge
Un modo di svelare un messaggio crittato se conosciamo la lingua dellrsquooriginale consiste nel trovare
un diverso testo chiaro nella stessa lingua abbastanza lungo da poter calcolare la frequenza di ciascuna
lettera
Chiamiamo ldquoprimardquo quella che compare piugrave spesso ldquosecondardquo quella che la segue per frequenza
ldquoterzardquo la successiva e cosigrave via fino a esaurire tutte le lettere del campione di testo chiaro
Esaminiamo poi il testo in cifra che vogliamo interpretare ordinando (in base alla frequenza) anche i
suoi simboli Troviamo il simbolo piugrave comune e rimpiazziamolo con la ldquoprimardquo lettera dellrsquoesempio
chiaro il simbolo che lo segue per frequenza sia rimpiazzato dalla ldquosecondardquo lettera il successivo simbolo
piugrave comune sia rimpiazzato dalla ldquoterzardquo e cosigrave via fino ad aver preso in considerazione tutti i simboli del
crittogramma che intendevamo svelare
Tabella 4 Frequenze delle diverse lettere in italiano
Per superare lrsquoanalisi delle frequenze furono ideati diversi nuovi metodi crittografici tra cui ricordiamo
1 il metodo di sostituzione omofonica
2 il metodo di sostituzione polialfabetica
19
Il metodo di sostituzione omofonica consiste nel sostituire ogni lettera con un numero di simboli per
esempio numeri proporzionale alla sua frequenza Cosigrave ad esempio la lettera a avendo una frequenza di 11 74
viene sostituita da 11 simboli la lettera b con un solo simbolo la lettera c con 4 simboli ecc secondo la tabella 5
Il metodo di sostituzione polialfabetica consiste nellrsquouso di piugrave alfabeti cifranti su unrsquoidea di Leon
Battista Alberti che propose di utilizzarne due Lrsquoalgoritmo consiste nel sostituire la prima lettera del messaggio
in chiaro con la corrispondente del I alfabeto cifrante la seconda lettera con la corrispondente del II alfabeto
cifrante la terza con la corrispondente del I e cosigrave via passando alternativamente dal I alfabeto al secondo Come
nellrsquoesempio della figura 3
Tabella 5 Corrispondenza lettere e simboli nella sostituzione omofonica
Figura 3 Il metodo di sostituzione polialfabetica
Su tale idea si basa il metodo di Blaise de Vigenegravere diplomatico francese nato nel 1523 il quale utilizza
tanti alfabeti cifranti quante sono le lettere dellrsquoalfabeto in chiaro ad esempio nellrsquoalfabeto italiano che consta
di 21 lettere utilizza 21 alfabeti cifranti
Il primo passo consiste nel costruire la tavola di Vigenegravere in cui nella prima riga egrave riportato lrsquoalfabeto in
chiaro e in ognuna delle 21 righe successive egrave riportato un alfabeto cifrante spostato di una lettera rispetto a
quello della riga precedente cosigrave nella riga 1 egrave riportato lrsquoalfabeto spostato di una lettera nella riga 2 quello
spostato di due lettere nella riga 3 quello spostato di tre fino alla riga 20 in cui egrave riportato quello spostato di 20
lettere (figura 4)
20
Figura 4 La tavola di Vigenegravere
Il secondo passo consiste nello scegliere una parola chiave per esempio lsquoverorsquo Pertanto il messaggio in
chiaro ldquonon andarerdquo verrebbe cifrato come nella figura 5
La differenza sostanziale tra la cifratura omofonica e quella polialfabetica egrave che in quella omofonica a
ogni lettera corrispondono piugrave simboli ma ogni simbolo egrave il corrispondente di una sola lettera cioegrave egrave una
corrispondenza 1rarr m che invertita diventa mrarr 1 in quella polialfabetica a ogni lettera corrispondono piugrave
simboli e anche ogni simbolo egrave il corrispondente di piugrave lettere cioegrave mrarr m che rimane tale anche invertendola
Il vantaggio della cifratura polialfabetica egrave pertanto la sua resistenza allrsquoanalisi delle frequenze Oltre ad
ammettere un enorme numero di chiavi infatti si puograve scegliere qualunque parola del dizionario qualunque
combinazione di parole si puograve perfino ricorrere a neologismi rendendo impossibile il controllo di tutte le chiavi
possibili Ed ecco percheacute egrave ritenuta piugrave affidabile e non ha mai smesso di essere usata
Figura 5 Cifratura polialfabetica del messaggio ldquonon andarerdquo
21
Oggi sono noti tutti i punti deboli del sistema di Vigenegravere ed esistono vari procedimenti per decifrare i
crittogrammi generati da tale sistema che sfruttano ad esempio la modularitagrave nel ripetere la chiave o
osservazioni sulle ripetizioni del testo cifrato Ci sono testimonianze storiche che uno di tali procedimenti sia
stato ideato da Sir Charles Babbage famoso per aver progettato e mai realizzato la macchina alle differenze
progenitrice degli odierni calcolatori La prima descrizione resa pubblica del metodo perograve egrave del 1863 portata a
compimento dallrsquoufficiale prussiano F W Kasiski
Unrsquoosservazione decisiva fu che le insidie del metodo di Babbage potevano essere evitate utilizzando
nella cifratura di Vigenegravere una chiave molto lunga e fatta da lettere che si succedono in modo casuale se un
messaggio cifrato non presenta delle ripetizioni se non egrave possibile tentare di indovinare la chiave cadono tutti
gli appigli necessari per effettuare con successo la crittoanalisi
Tale osservazione fu ulteriormente sviluppata da G S Vernam che nel 1926 introdusse lrsquoidea di usare
una chiave casuale lunga quanto il messaggio stesso
Oggi sappiamo grazie agli studi di Claude Shannon del 1949 che tale metodo puograve definirsi
ldquoteoricamente sicurordquo
In pratica perograve ciograve comporta la difficoltagrave di costruire lunghe stringhe di lettere assolutamente casuali e di
scambiarsi segretamente e continuamente queste chiavi In sostanza risulta impraticabile per ogni messaggio
scambiato in modo sicuro egrave necessario prima trasmettere in modo sicuro il messaggio contenente la chiave
I metodi usati per buona parte del Novecento sono delle rielaborazioni sempre piugrave complesse delle idee
descritte finora ottenute anche con la costruzione di dispositivi per la meccanizzazione delle procedure di
cifratura e decifratura Un esempio tra i piugrave conosciuti egrave la macchina Enigma usata dai tedeschi durante la
Seconda guerra mondiale inventata dallrsquoingegnere Arthur Scherbius Enigma consisteva di diversi ingegnosi
elementi combinati in un potente e sofisticato dispositivo per la produzione di scritture segrete In particolare ma
macchina aveva tre componenti collegati da fili elettrici una tastiera per immettere le lettere del testo chiaro
unrsquounitagrave scambiatrice che cifra la lettera trasformandola nel corrispondente elemento del crittogramma e un
visore con varie lampadine che accendendosi indicano la lettera da inserire nel crittogramma
Lo sforzo per violare questa cifratura richiese anni di lavoro e fu portato a compimento dalla Scuola
Inglese Governativa di Codici e Cifre di Bletchley Park di cui faceva parte Alan M Turing noto oggi ai piugrave per
i suoi studi sullrsquointelligenza meccanica
La crittografia nellrsquoera dellrsquoinformatica
Nel 1945 fu realizzato ENIAC (Electronic Numerical Integrator And Calculator) unrsquoapparecchiatura
contenente 18 000 valvole elettroniche capace di effettuare 5000 calcoli al secondo considerato il capostipite
dei moderni calcolatori
Dopo il 1945 fu lrsquoinformatica a fare da protagonista nella battaglia tra crittografi e crittoanalisti operando
una decisiva svolta nelle metodologie di entrambi Infatti i metodi precedenti lrsquoera dellrsquoinformatica basavano la
propria sicurezza sullrsquoenorme numero di chiavi disponibili e sulla loro lunghezza ma che viene messa in crisi
dalla crescente potenza di calcolo dei computer Un computer molto potente infatti potrebbe individuare quella
giusta in pochi minuti anche nel caso di un milione di chiavi da esaminare
Tutti i metodi crittografici esaminati finora necessitano di
22
1 un algoritmo generale di cifratura G
2 di una chiave K che deve rimanere segreta
3 di un algoritmo di decifrazione H=Gndash1 (inverso di G)
e agiscono secondo il seguente schema
il messaggio in chiaro M tramite lrsquoalgoritmo G e la chiave K viene cifrato in MC questrsquoultimo tramite
lrsquoalgoritmo H e la stessa chiave K viene decifrato in M (figura 6)
Figura 6 Schema di metodi crittografici
La sicurezza di tali sistemi risiede interamente nella segretezza delle chiavi Ne segue che per distribuire
agli utenti le chiavi egrave necessario ricorrere a canali sicuri
Gli svantaggi che ne derivano sono essenzialmente
1 difficoltagrave nella distribuzione delle chiavi agli utenti
2 mancata autenticazione dei messaggi mittente e destinatario condividono la stessa chiave
pertanto non crsquoegrave modo di impedire che il destinatario si invii messaggi che poi sembrino
provenienti dal mittente Si pensi quali problemi possono provocare simili falsificazioni nella
posta elettronica o nei sistemi bancari elettronici
La svolta avvenne nel 1976 a opera di Diffie e Hellmann che proposero un metodo detto a chiave
pubblica il quale non necessita di uno scambio preventivo delle chiavi segrete Lrsquodea egrave chiarita dal seguente
esempio noto come esempio del doppio lucchetto
Supponiamo di avere due utenti Mitt e Dest e Mitt voglia spedire un messaggio segreto a Dest
1 Mitt mette il messaggio in una scatola che chiude con il proprio lucchetto LMitt (di cui solo lui ha
la chiave) e spedisce la scatola a Dest
2 Dest ricevuta la scatola aggiunge un proprio lucchetto LDest (di cui solo lui ha la chiave) e
rispedisce la scatola a Mitt
3 Mitt ricevuta la scatola con il doppio lucchetto toglie il lucchetto LMitt e rispedisce la scatola a
Dest
4 Dest ricevuta la scatola puograve togliere il lucchetto LDest e leggere il messaggio di Mitt
Il problema della distribuzione delle chiavi sembra risolto percheacute lo schema a doppia chiave non richiede
la condivisione delle stesse Tuttavia la realizzazione pratica di un tale sistema si scontra con un altro problema
quello riguardante lrsquoordine in cui cifrature e decifrature sono eseguite In altre parole in un sistema crittografico
egrave essenziale lrsquoordine con cui avvengono le rispettive cifrature e decifrature in quanto la cifratura eseguita per
23
ultimo andrebbe decifrata per prima (egrave un porsquo come quando la mattina infiliamo prima le calze e poi le scarpe
ma alla sera togliamo prima le scarpe e poi le calze)
Lrsquoesempio del doppio lucchetto in cui ciograve non avviene sembra tuttavia funzionare come idea percheacute ai
fini dellrsquoapertura della scatola non ha importanza lrsquoordine di rimozione dei lucchetti
Anche se il trucco dei due lucchetti non sembra immediatamente applicabile tuttavia fu il giusto punto di
partenza per la realizzazione di un sistema crittografico che aggira lrsquoostacolo della distribuzione delle chiavi
Infatti lrsquoidea egrave che mittente e destinatario generano ciascuno due chiavi distinte una chiave di cifratura E
(da utilizzare nellrsquoalgoritmo di cifratura) e una chiave di decifrazione D (da utilizzare nellrsquoalgoritmo di
decifrazione) Le chiavi sono correlate nel senso che servono per effettuare operazioni inverse (figura 7)
Figura 7 Le chiavi correlate per effettuare operazioni invese
Il trucco consiste nellrsquoimpossibilitagrave di poter derivare la chiave D dalla chiave E mediante algoritmi di
calcolo (figura 8)
Ogni utente puograve rendere pubblica la propria chiave di cifratura E indicandola magari sullrsquoelenco
telefonico senza compromettere la propria chiave di decifrazione che rimane segreta di pubblico dominio sono
anche gli algoritmi di cifratura G e decifrazione H
Figura 8 Inapplicabilitagrave del metodo del doppio lucchetto
Pertanto lrsquoesempio del doppio lucchetto viene cosigrave interpretato
1 il destinatario pubblica la chiave di cifratura E e mantiene segreta la chiave di decifrazione D
2 il mittente applica GE al messaggio M trasformandolo nel messaggio cifrato MC cioegrave
GE(M)=MC che spedisce al destinatario
3 il destinatario applica HD al messaggio cifrato MC riottenendo M cioegrave HD(MC)=M
24
La sicurezza di un tale sistema si fonda sulla difficoltagrave di poter
1 ritrovare il testo cifrato provando ad applicare lrsquoalgoritmo GE che egrave pubblico ad ogni possibile
testo in chiaro il cui numero pur essendo enorme egrave comunque finito
2 ricavare lrsquoalgoritmo HD da GE
in quanto entrambe le tecniche sono computazionalmente inattuabili nel senso che richiedono un tempo
di calcolo di lunghezza al di fuori di ogni possibile considerazione anche per i piugrave potenti calcolatori
Per descrivere tali algoritmi sono necessari alcuni concetti matematici che andiamo a illustrare
Figura 9 Schema di cifrario a chiave pubblica
Lrsquoaritmetica modulare
Lrsquoaritmetica modulare la cui introduzione egrave dovuta a Gauss costituisce un sistema di calcolo con
importanti applicazioni nei test di primalitagrave e nei metodi che stanno alla base della sicurezza delle comunicazioni
elettroniche Con essa infatti si hanno i seguenti vantaggi 1) si riduce lo spazio dei numeri su cui gli algoritmi
sono chiamati ad operare e quindi si aumenta la velocitagrave di calcolo 2) si riesce a rendere difficili alcuni problemi
computazionali che sono semplici (o addirittura banali) nellrsquoalgebra ordinaria al fine di aumentare la sicurezza
nelle comunicazioni Lrsquoidea egrave semplice ma potente Forse non lo sappiamo ma usiamo spesso laritmetica
modulare Potremmo chiamarla aritmetica dellorologio
Infatti pensiamo ad un normale orologio con 24 ore Se sono le 15 ed un amico ci comunica che saragrave a
casa nostra tra 5 ore sappiamo che egli verragrave alle 20 infatti 15+5=20 Ma se sono le 23 e dobbiamo partire fra 7
ore certamente non diciamo che la partenza saragrave alle 30 anche se 23+7=30 Sappiamo che dovremo partire alle
6 Allo stesso modo se sono le 20 che ora saragrave tra 14 ore Non diremo 34 anche se 20+14=34 ma diremo che
sono le 10 Come si spiega tutto ciograve
Immaginiamo di segnare sul quadrante dellrsquoorologio 24 ore Se la lancetta segna le 23 aggiungere 7 ore
significa spostarsi di 7 posti fino ad arrivare alle 6 Si giunge allo stesso risultato calcolando 23+7=30 ed
osservando che 30=1sdot24+6 o che egrave lo stesso 3024 =1 con resto 6 che significa che 30 lo si ottiene facendo fare
alla lancetta un giro completo piugrave 6
25
Se la lancetta segna le 20 e aggiungiamo 14 ore lrsquoorologio segneragrave le 10 percheacute 20+14=34 ma 3424= 1
con resto 10 per cui 34 lo si ottiene percorrendo un giro completo piugrave 10
Proviamo con il normale orologio a 12 ore I numeri che vediamo sul quadrante sono 0 1 2 3 4 5 6 7
8 9 10 11 Il numero 12 non compare percheacute a partire da 0 trascorse 12 ore torniamo di nuovo a 0 Questa
volta per fare un giro completo occorrono 12 ore Pertanto se sono le 7 che ore saranno tra 24 ore Saranno
ancora le 7 percheacute 7+24=31 ma 3112 = 2 con resto 7 cioegrave si compiono 2 giri completi piugrave 7 se sono le 8 tra 6
ore saranno le 2 percheacute 8+6=14 ma 1412=1 con resto 2 Dagli esempi dovrebbe risultare chiaro allora che ciograve
che contano non sono i risultati delle somme ma i loro resti nelle divisioni per il numero delle ore segnate sul
quadrante dellrsquoorologio
La stessa cosa succede con i giorni della settimana se pensiamo a un orologio con 7 ore sul quadrante
Facciamo corrispondere ai giorni della settimana i numeri da 0 a 6 (figura 10)
domenica Lunedigrave Martedigrave Mercoledigrave Giovedigrave Venerdigrave Sabato darr darr darr darr darr darr darr 0 1 2 3 4 5 6
Figura 10 Corrispondenza dei giorni della settimana con i numeri da 0 a 6
Se per esempio oggi egrave venerdigrave che giorno saragrave tra 12 giorni
Dovremo calcolare 5+12=17 ma i giorni si ripetono ogni 7 pertanto osservando che 177 =2 con resto 3
possiamo concludere che a partire da 5 e aggiungendo 12 si compiono 2 giri completi piugrave 3 ed essendo 3 il
numero corrispondente a mercoledigrave concludiamo che saragrave mercoledigrave Facciamo un altro esempio se oggi egrave
lunedigrave (1) che giorno saragrave tra 20 giorni Calcoliamo 1+20=21 217= 3 con resto 0 quindi saragrave domenica
Il numero n delle ore sullrsquoorologio costituisce quello che si chiama il modulo e individua lrsquoaritmetica di
modulo n in cui lrsquoinsieme dei numeri con i quali si opera indicato con Zn egrave lrsquoinsieme dei possibili resti della
divisione per n e cioegrave Zn=0 1 2 3 hellip nndash1e le operazioni si eseguono con le regole illustrate negli esempi
precedenti
Lrsquoesempio dellrsquoorologio a 24 ore costituisce la cosiddetta aritmetica finita di modulo 24 in essa Z24=0
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 essendo questi ultimi i possibili resti
della divisione per 24 Lrsquoorologio a 12 ore costituisce lrsquoaritmetica finita di modulo 12 in essa Z12=0 1 2 3 4
5 6 7 8 9 10 11 essendo questi ultimi i possibili resti della divisione per 12 Lrsquoesempio dei giorni della
settimana egrave lrsquoaritmetica finita di modulo 7 in cui Z7=0 1 2 3 4 5 6 essendo questi ultimi i possibili resti
della divisione per 7 Riassumiamo costruendo unrsquoaritmetica finita di modulo 4 I possibili resti della divisione
per 4 sono 0 1 2 3 quindi Z4=0123 Lrsquoaddizione e la moltiplicazione in Z4 si esegue come negli esempi
della tabella 6
26
operazioni indicate
Risultato nellrsquoaritmetica ordinaria
Risultato nellrsquoaritmetica modulo 4
2+2 4 0 percheacute 44=1 con resto 0
3+2 5 1 percheacute 54=1 con resto 1
2+1 3 3 percheacute 34=0 con resto 3
3sdot3 9 1 percheacute 94=2 con resto 1
3sdot2 6 2 percheacute 64=1 con resto 2
2sdot2 4 0 percheacute 44=1 con resto 0
Tabella 6 Addizione e moltiplicazione nellrsquoaritmetica finita di modulo 4
Si possono costruire le tavole dellrsquoaddizione e della moltiplicazione dellrsquoaritmetica modulo 4 che costituiscono
le tabelline di questa aritmetica sulla base delle quali si esegue qualsiasi addizione e moltiplicazione modulo 4
Nella tabella 7 sono spiegate le tabelline dellrsquoaritmetica in modulo 4
Tabella 7 Tavole dellrsquoaddizione e della moltiplicazione dellrsquoaritmetica modulo 4
Infine per indicare che due numeri a e b divisi per n danno lo stesso resto si usano le seguenti notazioni
tutte equivalenti tra loro
a=b mod n andashb=0 mod 4 a equiv b (mod n) che si legge a egrave congruo b modulo 4
Esempio
26=12 mod 7 egrave la stessa cosa di
26ndash12=0 mod 7 che egrave la stessa cosa di
26 equiv 12 (mod 7) e tutte e tre stanno a indicare che 26 e 12 divisi per 7 danno lo stesso resto che egrave 5 e
pertanto sono tutti equivalenti a 5
Facciamo vedere come sfruttare lrsquoaritmetica modulare per calcolare potenze come 2341 (figura 11) Il
metodo si basa sulla proprietagrave che il resto del quadrato di un numero a per un dato modulo n egrave uguale al
quadrato del resto dello stesso numero a per lo stesso modulo n cioegrave a2 mod n =(a mod n)2
+ 0 1 2 3
0 0 1 2 3
1 1 2 3 0
2 2 3 0 1
3 3 0 1 2
x 0 1 2 3
0 0 0 0 0
1 0 1 2 3
2 0 2 0 2
3 0 3 2 1
27
Figura 11 Il metodo per calcolare 2341
La funzione di Eulero
Per ogni intero ngt1 si definisce la funzione di Eulero = numero di interi minori di n e primi con esso Ad
esempio
bull ( ) 45 =φ percheacute gli interi minori di 5 sono 1 2 3 4 ed essi sono tutti primi con n
bull ( ) 26 =φ percheacute gli interi minori di 6 sono 1 2 3 4 5 e fra essi solo 1 e 5 sono primi con 6
bull ( ) 67 =φ percheacute gli interi minori di 7 sono 1 2 3 4 5 6 ed essi sono tutti primi con 7
bull ( ) 412 =φ percheacute gli interi minori di 12 sono 1 2 3 4 5 6 7 8 9 10 11 e fra essi solo 1 5 7
11 sono primi con 12
Se si conosce la scomposizione in fattori del numero n il seguente teorema ci fornisce un metodo per
calcolare Infatti esso afferma che per ogni ngt1 non primo ( )
minussdotsdot
minussdot
minussdotnppp
n=nφ 11
11
11
21
dove
p1 p2 hellip pn sono i fattori primi di n presi senza molteplicitagrave
22 mod 341=4
24=(22)2=(22 mod 341)2=42=16mod341=16
28=(24)2=(16)2=256mod341=256
216= (28)2=(256)2=65536mod341=64
232=(216)2=(64)2=4096mod341=4
264=(232)2=42=16mod341=16
2128=(264)2=(16)2=256mod341=256
2256=(2128)2=(256)2=65536mod341=64
2341=2(256+64+16+4+1) 2256 264 216 24 21 x x x x
64 1
1024 mod 341
= 1 x 64
64 x 16
1024 mod 341
1 x 2 =
=
x
28
Ad esempio
essendo 12 = 3sdot2sdot2 ( ) 42
1
3
212
2
11
3
111212 ===φ sdotsdot
minussdot
minussdot
essendo 6=2sdot3 ( ) 22
1
3
26
2
11
3
1166 ===φ sdotsdot
minussdot
minussdot
se n=psdotq ( ) ( ) ( )11111
11
1 minussdotminusminussdotminussdot
minussdot
minussdot qp=q
q
p
pn=
qpn=nφ
Ovviamente se n egrave un numero primo = nndash1
Vale inoltre il seguente teorema di Eulero per ngt1 e per ogni altn e primo con n si ha
Ad esempio per n=6 ( ) 26 =φ infatti i primi con 6 sono 1 e 5 per il teorema di Eulero si ha
2mod1255
2mod1112
2
equiv=
equiv=
per n=5 ( ) 45 =φ e i primi con 5 sono 1 2 3 4 e per il teorema di Eulero si ha
5mod12564
5mod1813
5mod1162
5mod111
4
4
4
4
equiv=
equiv=
equiv=
equiv=
Si puograve notare come nel caso in cui n egrave un numero primo si ritrova il piccolo teorema di Fermat
Infatti per n primo ( )nφ = nndash1 e per il teorema di Eulero per ogni altn e primo con n Ricordiamo infatti
che il piccolo teorema di Fermat afferma che se n egrave un numero primo e a un intero minore di n allora egrave
divisibile per n che con il linguaggio dellrsquoaritmetica modulare diventa che puograve essere riscritto e se a egrave primo
con n allora egrave che egrave equivalente a
Infine si prova che per ogni altn e primo con esso esiste lrsquoinverso di a e esso egrave dato da ( ) 1minusnaφ Infatti
( ) ( ) na=aa nφnφ1mod1 equivsdot minus per il teorema di Eulero Si ricorda che lrsquoinverso di un numero a egrave quel numero che
moltiplicato per a dagrave 1 indicato convenzionalmente con andash1
Ad esempio per n=5 i primi con 5 sono 1 2 3 4 e per ognuno di questi esiste lrsquoinverso infatti
bull lrsquoinverso di 1 egrave ( ) 1mod51111 31415 equivminusminus ===φ
e infatti
bull lrsquoinverso di 2 egrave ( ) 3mod58222 31415 equivminusminus ===φ
e infatti
bull lrsquoinverso di 3 egrave ( ) 2mod527333 31415 equivminusminus ===φ
e infatti
bull lrsquoinverso di 4 egrave ( ) 4mod564444 31415 equivminusminus ===φ
Le funzioni unidirezionali
Chiamiamo funzione da un insieme A a un insieme B qualunque procedura che associa a ogni elemento
di un insieme A (detto dominio) uno e un solo elemento di un insieme B (detto condominio) In simboli f
A rarr B Se poi indichiamo con x il generico elemento dellrsquoinsieme A e con y il generico elemento dellrsquoinsieme B
la f indica la procedura che ad ogni xisinA associa un yisinB e cioegrave y=f(x) ad esempio ldquofare il doppio dihelliprdquo
29
prendendo come dominio e codominio lrsquoinsieme dei numeri interi egrave in questo senso una funzione percheacute dato
ad esempio il numero 3 lo trasforma nel numero 6 come 5 lo trasforma in 10 e cosigrave via
Molte funzioni matematiche sono cosiddette bidirezionali nel senso che egrave facile dato un determinato x
generare il corrispondente y ma egrave altrettanto facile invertire la funzione cioegrave ritrovare lrsquoelemento x originario a
partire dal suo corrispondente
Facciamo qualche esempio
bull funzione xrarr fare il doppiorarr 2sdotx= y 3rarr fare il doppiorarr 2sdot3 = 6
funzione inversa y=2sdotx rarr fare la metagraverarr x 6=2sdot3 rarr fare la metagraverarr 3
bull funzione xrarr fare il quadruplorarr 4sdotxrarr aggiungere 1rarr sdoty=4sdotx +1
5rarr fare il quadruplorarr 4sdot5rarr aggiungere 1rarr 4sdot5 +1=21
funzione inversa y=4sdotx +1rarr sottrarre 1rarr 4sdot xrarr dividere per 4rarr x
21=4sdot5 +1rarr sottrarre 1rarr 4sdot 5rarr dividere per 4rarr 5
Le funzioni unidirezionali sono invece quelle funzioni facilmente calcolabili ma che non si possono invertire
Le funzioni cosiddette pseudounidirezionali (dette anche funzioni trappola a molla segreta) sono invece
quelle funzioni facilmente calcolabili ma che non altrettanto facilmente si possono invertire a meno che non si
conoscano alcune informazioni (la molla segreta) utilizzate nella loro costruzione
Lrsquoaritmetica modulare gioca un ruolo determinante in questo caso infatti permette di trasformare
funzioni bidirezionali in funzioni pseudounidirezionali
Facciamo lrsquoesempio della funzione ldquofare il quadruplordquo in simboli f(x)=4sdotx Egrave facilmente calcolabile
percheacute dato x per ottenere f(x) basta moltiplicare per 4 ma egrave altrettanto facile calcolare la sua inversa percheacute
dato f(x) basta dividere per 4 per ottenere lrsquooriginario x Ma anche se non avessimo la procedura inversa di
dividere per 4 sarebbe facile ritrovare lrsquoelemento originario anche procedendo per tentativi ed eliminazione
infatti se per esempio f(x) =20 si puograve tentare x=3 in tal caso f(x)=12 troppo piccolo quindi x deve essere
maggiore di 3 Si puograve allora pensare a 6 ma f(x)=24 troppo grande quindi x deve essere minore di 6 e cosigrave via
Vediamo cosa accade se calcoliamo utilizzando una aritmetica modulare Per esempio consideriamo la
stessa funzione f(x)=4sdotx in una aritmetica modulo 7 Possiamo osservare che la funzione non si comporta piugrave in
modo regolare come prima per accorgersene basta costruire una tabella (tabella 8)
x 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
f(x)=4sdotx 4 8 12 16 20 24 28 32 36 40 44 48 52 56 60
f(x)=4sdotmod 7 4 1 5 2 6 3 0 4 1 5 2 6 3 0 4
Tabella 8 La funzione f(x)=4sdotx in una aritmetica modulo 7
Anche in questa semplice situazione egrave chiaro che egrave piugrave complicato invertire la funzione e pertanto i valori
di x sono molto meglio protetti Si puograve fare anche lrsquoesempio della funzione esponenziale f(x)=3 x (tabella 9)
Tabella 9 La funzione f(x)=3 x in aritmetica modulo 11
x 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
f(x)=x3 1 8 27 64 125 216 343 512 729 1000 hellip hellip hellip hellip hellip
f(x)=x3 mod 11 1 8 5 9 4 7 2 6 3 10 hellip hellip hellip hellip hellip
30
Il cifrario a chiave pubblica RSA
Uno dei piugrave noti sistemi crittografici a chiave pubblica che sfrutta le idee precedentemente descritte egrave il
metodo RSA proposto dai matematici R L Rivest A Shamir e L Adlemann nel 1978 Esso risolve il problema
dello scambio delle chiavi in quanto queste ultime sono conosciute solamente ai rispettivi proprietari che non le
hanno preventivamente concordate e scambiate
Illustriamo schematicamente come i due utenti Mitt e Dest possano scambiarsi un messaggio segreto
utilizzando il metodo RSA Entrambi Mitt e Dest indipendentemente lrsquouno dallrsquoaltro poi
1 scelgono in modo casuale due numeri primi p q grandi (di 200-300 cifre in base 10)
2 calcolano N = psdotq e Φ(N) = (pndash1)sdot(qndash1)
3 scelgono un intero eltΦ(N) e primo con Φ(N) tale numero e saragrave la chiave pubblica
4 calcolano il numero d inverso di e mod Φ(N) tale cioegrave che esdotdequiv 1mod Φ(N) tale numero d saragrave
la chiave privata
5 rendono pubblici i numeri N ed e
Mitt per spedire un messaggio a Dest compie le seguenti operazioni
1 codifica il messaggio in un modo standard usando i numeri lt N
2 trasforma ogni numero M di tale codifica in Me (mod N) e lo spedisce a Dest
per decodificare il messaggio ricevuto Me Dest calcola (Me)d =Mesdotd =Mndash1=M (modN) riottenendo il messaggio
originale
Figura 12 Schema di cifrario con metodo RSA
31
Figura 13 Esempio di applicazione di metodi RSA
In che cosa consiste la sicurezza del metodo Da quanto esposto si osserva che per decodificare il
messaggio bisogna
1 conoscere d (chiave segreta)
2 essendo d lrsquoinverso di e nellrsquoaritmetica mod Φ(N) essendo e noto egrave necessario conoscere Φ(N)
3 ma noto N per calcolare Φ(N) egrave necessario conoscere i fattori primi di N cioegrave egrave necessario fattorizzare
N che egrave un problema computazionalmente difficile per quanto osservato in precedenza
Anche se non egrave stato dimostrato che non si possa rompere il codice in altro modo e cioegrave senza conoscere Φ(N) e i
fattori di N a tuttrsquooggi si puograve affermare che la sicurezza del metodo dipende essenzialmente dai seguenti fatti
Per codificare il messaggio bisogna saper costruire dei numeri primi grandi e tale operazione egrave
computazionalmente veloce si puograve infatti dimostrare che la complessitagrave computazionale di opportuni test di
primalitagrave per stabilire se un numero n egrave primo utilizzando il linguaggio di quel ramo della matematica nota
come teoria della complessitagrave egrave ldquoquasi-polinomialerdquo
Per violare il sistema bisogna saper fattorizzare interi grandi ottenuti come prodotto di due primi tale
problema egrave computazionalmente ldquolentordquo cioegrave con il linguaggio della teoria della complessitagrave appartiene alla
classe dei problemi non polinomiali Tale marcata differenza tra la velocitagrave di esecuzione delle operazioni di
costruzione di numeri primi grandi e di fattorizzazione di interi grandi garantisce la sicurezza del metodo
almeno per un tempo sufficientemente lungo Ad esempio con la tecnologia attuale lrsquooperazione di
fattorizzazione di un intero di 140 cifre in base 10 prodotto di due numeri primi casuali calcolati in pochi
secondi su un computer disponibile in commercio richiede utilizzando vari supercomputers operanti
parallelamente circa un mese
La RSA Security Inc gestisce una sfida a livello mondiale ove vengono premiati coloro che fattorizzano
gli interi proposti da loro in una particolare lista Ad esempio il 3 dicembre del 2003 egrave stato fattorizzato
32
rsa576 =
188198812920607963838697239461650439807163563379417382700763356422988859715234
665485319060606504743045317388011303396716199692321205734031879550656996221305
168759307650257059
un numero di 174 cifre decimali prodotto di due primi di 87 cifre
p =
398075086424064937397125500550386491199064362342526708406385189575946388957261
768583317
q =
472772146107435302536223071973048224632914695302097116459852171130520711256363
590397527
Le chiavi attualmente utilizzate dallRSA sono a 309 cifre decimali
La firma digitale
Consideriamo al solito un mittente che deve inviare a un destinatario un messaggio m La codifica di m
con il metodo descritto assicura lrsquoautenticitagrave del messaggio ma non fornisce alcuna sicurezza sulla sua
paternitagrave Infatti il messaggio m pur essendo autentico potrebbe essere stato inviato da qualcuno che si spaccia
per il mittente Questa egrave unimportantissima questione particolarmente nella trasmissione di messaggi che oltre
a dover essere segreti devono garantire la loro origine
Si dovrebbe quindi disporre di un analogo della firma manuale detta appunto firma digitale La firma
digitale deve allora essere progettata in modo da possedere le stesse caratteristiche di una firma manuale e cioegrave
lrsquoautenticitagrave la non falsificabilitagrave e lrsquoimpossibiltagrave di essere riutilizzata Facciamo vedere come lo stesso metodo
RSA puograve essere utilizzato per progettare una firma digitale
La situazione egrave la seguente il mittente (di seguito indicato con Mitt) invia un messaggio m con la firma
F al destinatario (di seguito indicato con Dest) Siano a b rispettivamente le chiavi pubblica e segreta di MITT
siano e d rispettivamente le chiavi pubblica e segreta di DEST
La procedura per apporre la firma digitale F al messaggio m egrave illustrata nei seguenti passi riassunti nel
grafico della figura 14
1 Mitt cripta la firma F (cioegrave i suoi dati identificativi) usando la propria chiave segreta (b)
ottenendo Fb
2 il messaggio m con la firma F criptata viene ulteriormente criptato con la chiave pubblica di
Dest (e) ottenendo (m Fb)e
3 Dest decodifica il messaggio con la sua chiave segreta (d) ottenendo
((m Fb)e)d = (me F(be)) d =m(e d)F(be d) = mFb
in cui la firma di Mitt egrave ancora criptata
4 Dest decodifica la firma di Mitt con la chiave pubblica di Mitt (a) ottenendo
(Fb)a = F(ba) = F
33
Grafico firma digitale
Mitt
Dest
pubblica
Fb
e dpubblica
a
((Fb)e)d=(Fb)ed=(Fb)1=Fb
(Fb)a=(F)ba=(F)1=F
ab de
(Fb)e
codifica
codificadecodifica
decodifica
1
2
3
4
5
6
7
8
segreta
b
segreta
Figura 14 Grafico firma digitale
Bibliografia
Thomas Beth Comunicazioni e sicurezza su Internet in ldquoLe Scienzerdquo n 330 febbraio 1996
Brian Butterworth Intelligenza matematica Vincere la paura dei numeri scoprendo le doti innate della mente
Rizzoli Milano 1999
John H Conway Richard K Guy Il libro dei numeri Hoepli Milano 2003
Richard Courant Herbert Robbins Che cosrsquoegrave la matematica Boringhieri Torino 1971
Philip J Davis Il mondo dei grandi numeri Zanichelli Bologna 1973
Keith Devlin Dove va la matematica Bollati Boringhieri Torino 1994
Jean Dieudonneacute Lrsquoarte dei numeri matematica e matematici oggi Mondadori Milano 1989
Martin E Ellmann La crittografia a chiave pubblica in La matematica della complessitagrave Quaderni n 67
settembre 1992 Le Scienze
Paolo Ferragina Fabrizio Luccio Crittografia principi ndash Algoritmi ndash Applicazioni Bollati Boringhieri Torino
2001
Godfrey H Hardy Apologia di un matematico Garzanti Milano 1989
Morris Kline Storia del pensiero matematico Einaudi Milano 1991
Serge Lang La bellezza della matematica Bollati Boringhieri Torino 1991
Mauro Leoncini Modelli di calcolo e complessitagrave computazionale in La matematica computazionale Quaderni
n 84 giugno 1995 Le Scienze
Fabrizio Luccio e Linda Pagli P = NP in La matematica della complessitagrave Quaderni n 67 settembre 1992
Le Scienze
Piergiorgio Odifreddi La Matematica del Novecento dagli insiemi alla complessitagrave Einaudi Torino 2000
34
ldquoPeriodico di matematicherdquo Serie VII Volume 7 Numero 2-3 luglio-dicembre 2000 Mathesis
ldquoPeriodico di matematicherdquo Serie VIII Volume 1 Numero 1 gennaio-marzo 2001 Mathesis
Carl Pomerance Alla ricerca dei numeri primi in ldquoLe Scienzerdquo n 174 febbraio 1983
Simon Singh Codici e segreti la storia affascinante dei messaggi cifrati dallrsquoantico Egitto a Internet Rizzoli
Milano 1999
Marcus du Sautoy Lrsquoenigma dei numeri primi lrsquoipotesi di Riemann lrsquoultimo grande mistero della matematica
Rizzoli Milano 2004
Gary Stix I segreti meglio custoditi la crittografia quantistica egrave passata dalla teoria al laboratorio per
approdare finalmente alle applicazioni in ldquoLe Scienzerdquo n 438 febbraio 2005
10
Possiamo concludere che la ricerca di formule semplici che producano soltanto numeri primi egrave stata
inutile ed egrave ancora meno probabile che conduca a buoni risultati il tentativo di trovare una formula che
produca tutti i numeri primi Lo stesso Eulero nel 1751 scriveva ldquoci sono alcuni misteri che la mente
umana non penetreragrave mai Per convincercene non dobbiamo far altro che gettare unrsquoocchiata alle tavole dei
numeri primi Ci accorgeremo che non vi regna neacute ordine neacute leggerdquo
La svolta di Gauss
Il passo decisivo nella ricerca di una legge da cui dipenda la distribuzione dei numeri primi fu
compiuto quando si rinunciograve agli inutili tentativi di trovare una formula che generasse tutti i numeri primi o
desse il numero esatto di essi contenuti nei primi n numeri interi A compiere la svolta fu Gauss il quale
affrontograve il problema da un altro punto di vista Infatti egli si chiese se era possibile prevedere non quale
fosse la posizione di un numero primo rispetto a quello precedente ma se era possibile prevedere quanti
fossero i numeri primi minori o uguali a un certo numero x Egli introdusse a tale scopo la funzione )(xπ =
numero dei primi minori o uguali a x e poteacute verificare per esempio che 4)10( =π percheacute i numeri primi
minori o uguali a 10 sono 2 3 5 7 e cioegrave 4 e la distanza media tra due numeri primi successivi
nellrsquointervallo tra 1 e 10 egrave 104 uguale a 25 Nella tabella 2 sono riportati alcuni valori della funzione e
della distanza media
Tabella 2 Alcuni valori della fiunzione )(xπ
Osservando tali risultati egli notograve che ogni volta si moltiplica x per 10 si aggiunge 23 al rapporto
xπ(x) almeno per x abbastanza grande Proprio questo legame tra moltiplicazione e addizione (che egrave la
relazione racchiusa in un logaritmo) e il fatto che 23 egrave approssimativamente il valore rappresentato dal
portarono Gauss a ipotizzare che
( )x
x
xlog=
π
Da cui
11
( )( )x
xx
logcongπ
Questa congettura si rivelograve poi vera e oggi egrave nota come teorema dei numeri primi Una notevole
conseguenza del teorema dei numeri primi egrave che ldquola probabilitagrave che un numero intero di x cifre preso a
caso sia primo egrave circa 1log(10x)rdquo Infatti lrsquoespressione
( )( )x
xx
logcongπ
in altre parole significa che nellrsquointervallo tra 1 e x si incontra un primo circa ogni log(x) e cioegrave la
probabilitagrave che nellrsquointervallo dei numeri le x un numero preso a caso sia primo egrave 1log(x) Ad esempio
nellrsquointervallo dei numeri minori di 10 000 000 uno ogni log(10 000 000) egrave primo Essendo
log(10 000 000) = log(107) = 7log(10) asymp 1611hellip ciograve vuol dire che dei numeri minori di 10 000 000 circa 1
su 16 egrave primo e perciograve crsquoegrave circa una probabilitagrave su 16 che un numero di 7 cifre sia primo
Al momento attuale molti sono i problemi non ancora risolti Tra questi ricordiamo
1 la congettura dei primi gemelli esistono infiniti numeri primi p tali che p+2 egrave ancora
primo Ad esempio 3 e 3+2 5 e 5+2 17 e 17+2 29 e 29+2 ecc
2 la congettura di Goldbach ogni intero pari maggiore di 2 puograve essere scritto come somma di
due numeri primi Ad esempio 4 = 2+2 6 = 3+3 8 = 3+5 10 = 5+5 12 = 5+7 ecc
La difficoltagrave fondamentale di tali problemi risiede nel fatto che i numeri primi sono definiti
mediante proprietagrave moltiplicative mentre i problemi in questione coinvolgono proprietagrave additive
Di gran lunga il piugrave importante tra i problemi non risolti egrave quello che va sotto il nome di ipotesi di
Riemann anche percheacute fu proprio la novitagrave del metodo in essa contenuto a far compiere il passo decisivo
per la dimostrazione del teorema dei numeri primi compiuta indipendentemente lrsquouno dallrsquoaltro nel 1896
dai matematici Jacques Hadamard e Charles de la Valleacutee-Poussin
Ricordiamo che lrsquoipotesi di Riemann inserita allrsquoottavo posto nellrsquoelenco dei famosi ventitreacute
problemi irrisolti presentati da David Hilbert al Congresso internazionale dei matematici del 1900 e
lanciati come sfida alla comunitagrave dei matematici del ventesimo secolo egrave ancora rimasto tale cioegrave senza
dimostrazione
Egrave oggi considerato uno dei problemi piugrave difficili del nuovo millennio Nel 2000 il Clay Mathematics
Institute ha offerto un milione di dollari a chi riusciragrave a darne una dimostrazione
Grazie ai calcolatori attualmente egrave stato possibile verificare tali congetture in moltissimi casi Ad
esempio la congettura di Goldbach egrave stata verificata per tutti i pari fino a 100 milioni mentre lrsquoipotesi di
Riemann egrave stata verificata per un miliardo e mezzo di casi ma ciograve non egrave sufficiente per dimostrarne la
veritagrave Ed egrave proprio questo quello che distingue la matematica dalle altre scienze dove una qualsiasi
ipotesi sostenuta da verifiche sperimentali egrave ritenuta valida fincheacute non contraddetta da un caso contrario
mentre in matematica un solo caso contrario serve a dimostrare la falsitagrave dellrsquoipotesi la cui veritagrave per
contro deve essere dimostrata per tutti i casi possibili il che ovviamente puograve avvenire solo
indipendentemente dalle verifiche di casi particolari anche se molti
12
Ed egrave questa una delle peculiaritagrave piugrave belle della matematica Qualsiasi affermazione dimostrata egrave
eterna e immutabile si pensi allrsquoinfinitagrave dei numeri primi ciograve egrave vero per Euclide ma rimane vero ancora
oggi senza possibilitagrave di smentite
Come ebbe a dire il matematico Hermann Hakel ldquoNella maggior parte delle scienze una
generazione demolisce quello che laltra ha costruito e ciograve che uno ha fatto un altro lo disfa Solo nella
matematica ogni generazione aggiunge un nuovo piano alla vecchia strutturardquo
E che ciograve susciti lrsquoidea della bellezza egrave bene sintetizzato dalle parole di Bertrand Russell ldquoLa
matematica vista dalla giusta angolazione non possiede solo la veritagrave ma la suprema bellezza una
bellezza fredda e austera come quella della scultura una bellezza che non fa appello ai nostri sentimenti
piugrave grossolani che non ha gli ornamenti sgargianti della musica o della pittura una bellezza pura e
sublime capace della rigorosa perfezione che egrave propria solo della piugrave grande arterdquo
Anche se non egrave possibile presentare in termini semplici lrsquoipotesi di Riemann in quanto coinvolge
concetti di matematica superiore proviamo a delinearne le linee essenziali
Nel 1737 Eulero introdusse e studiograve una funzione detta funzione ζ (zeta) di Eulero cosigrave definita
sum+infin
=
gtisin++++==1
1 4
1
3
1
2
11
1)(
nxxxx
xRxperdefinitan
xζ
e sempre a Eulero egrave dovuta la seguente identitagrave
( )
1
111
11
17
7
15
5
13
3
12
2 prod
minus=sdot
minussdot
minussdot
minussdot
minussdot
minus=
px
x
x
x
x
x
x
x
x
x
x
x
p
pxζ
dove il prodotto egrave esteso a tutti i numeri primi
Ed egrave proprio questa identitagrave che egrave alla base della notevole importanza assunta dalla funzione ζ nella
teoria dei numeri e in particolare per quanto riguarda la distribuzione dei numeri primi nellrsquoinsieme dei
naturali Infatti a destra di essa appaiono esplicitamente i numeri primi mentre a sinistra compare la
funzione ζ definita indipendentemente da essi
Riemann nel 1859 propose di considerare la funzione ζ come funzione di variabile complessa
cioegrave definita per x numero complesso ed effettuograve il cosiddetto prolungamento analitico di ζ allrsquointero piano
complesso costruendo la nuova funzione ζ oggi nota come funzione zeta di Riemann Egli provograve che gli
zeri della funzione ζ (cioegrave i valori della variabile per cui la funzione restituisce il valore 0) sono x = ndash2
x = ndash4 x = ndash6hellip detti zeri banali di ζ e alcuni numeri complessi (non reali) x con parte reale compresa tra
0 e 1 estremi inclusi Lrsquoipotesi di Riemann afferma che tutti gli zeri non banali di ζ hanno la caratteristica
di avere la parte reale uguale a 21
Dalla validitagrave di questa ipotesi discende una serie enorme di proprietagrave sui numeri primi Ci sono
attualmente centinaia di ldquoquasi teoremirdquo che iniziano con ldquosupponiamo che lrsquoipotesi di Riemann sia
verahelliprdquo Se lrsquoipotesi venisse dimostrata tutti questi ldquoquasi teoremirdquo diventerebbero veri teoremi
13
I test di primalitagrave e la fattorizzazione
Abbiamo fin qui concentrato lrsquoattenzione sul comportamento dei numeri primi ma come egrave possibile
preso un intero a caso x provare se x egrave primo o composto
Il metodo piugrave ovvio consiste nel dividere il numero x per tutti gli interi che lo precedono Infatti se
una qualunque di tali divisioni dagrave resto zero il numero x egrave composto e divisore e quoziente sono suoi
fattori mentre se nessuna di tali divisioni per ciascuno degli interi minori x dagrave resto zero il numero x egrave
primo
In effetti la procedura delle divisioni puograve essere interrotta allrsquointero minore della in quanto se x egrave
composto esso saragrave il prodotto di almeno due fattori per esempio x= F1sdotF2 ed essendo x=x sdot x se
F1gt x F2 lt x Ad esempio 29= 2929 sdot e 529 cong quindi si puograve fermare la procedura quando il
divisore egrave 5 Infatti 292 dagrave resto 1 293 dagrave resto 2 294 dagrave resto 1 295 dagrave resto 4 Si puograve quindi
concludere che 29 egrave primo percheacute se avesse avuto un fattore maggiore di 5 ne avrebbe avuto sicuramente
uno minore di 5 il che non egrave
Ma anche limitando le divisioni alla radice quadrata lrsquoalgoritmo sarebbe comunque inapplicabile
percheacute per giungere a conclusione richiede un tempo che cresce esponenzialmente al crescere del numero
di cifre di n pertanto puograve risultare intollerabilmente lungo anche con gli strumenti di calcolo piugrave veloci
anni secoli piugrave della vita presunta dellrsquoUniverso Ad esempio egrave stato dimostrato che il numero 244 497ndash1
formato da 13 595 cifre egrave primo Se un calcolatore fosse in grado di controllare un milione di divisioni al
secondo e si fermasse alla radice quadrata del numero egrave stato calcolato che gli occorrerebbero 106684 anni
per espletare il suo compito Lrsquoinconveniente deriva dal fatto che il metodo delle divisioni non solo ci dice
se il numero egrave primo o composto ma risolve anche il problema della fattorizzazione di un numero in
quanto nel caso in cui il numero risulta composto ci fornisce i fattori della sua scomposizione
A tuttrsquooggi egrave facile trovare numeri primi grandi o testare la primalitagrave di un numero mentre egrave
difficile fattorizzare un intero che sia il prodotto di due numeri primi grandi Ovviamente i termini ldquofacilerdquo
ldquodifficilerdquo ldquogranderdquo sono relativi alla conoscenza e alla tecnologia disponibili Attualmente sono
considerati ldquograndirdquo numeri di alcune centinaia di cifre mentre ldquofacilerdquo rappresenta un tempo di secondi e
ldquodifficilerdquo di secoli
Lrsquoefficacia dei test di primalitagrave attualmente usati dipende dal fatto che egrave possibile stabilire se un
numero egrave primo senza essere costretti a trovarne i fattori qualora risultasse composto Alcuni metodi usati
sono di tipo probabilistico cioegrave stabiliscono che un intero egrave probabilmente primo con una probabilitagrave di
errore che si puograve rendere piccola quanto si vuole
Il piugrave semplice al tempo stesso velocissimo e potente si basa sul piccolo teorema di Fermat Il
teorema stabilisce che se p egrave un numero primo e a un intero minore di p allora apndasha egrave un multiplo di p cioegrave
egrave divisibile per p
Ad esempio
bull se p=7 e a=2 allora 27ndash2=128ndash2=126=7middot18 cioegrave multiplo di 7
bull se p=7 e a=3 allora 37ndash3=2187ndash3=2184=7middot312 cioegrave multiplo di 7
14
bull se p=7 e a=4 allora 47ndash4=16384ndash4 = 16380 = 7middot2340 cioegrave multiplo di 7
bull se p=5 e a=4 allora 45ndash4=1024ndash4=1020=5middot204 cioegrave multiplo di 5
bull se p=3 e a=4 allora 43ndash4=64ndash4=60=3middot20 cioegrave multiplo di 3
Lrsquoimportanza del teorema sta nel fatto che ci fornisce un metodo per stabilire se un numero egrave primo
o no infatti costruiamo un numero del tipo apndasha verifichiamo se egrave multiplo di p se non lo egrave siamo sicuri
che p non egrave primo Ad esempio vogliamo sapere se 15 egrave primo costruiamo
215ndash2=32768ndash2=32766
32766=15middot2184+6
cioegrave non egrave divisibile per 15 quindi sicuramente 15 egrave composto e infatti 15=3middot5
Ma cosa si puograve dire se invece apndasha egrave divisibile per p Sfortunatamente non possiamo essere sicuri
che p sia primo anche se egrave molto probabile che lo sia
Proviamo 217ndash2=131072ndash2=131070=17middot7710 e infatti 17 egrave primo Provando 2341ndash2 si trova che
esso egrave divisibile per 341 ma 341 non egrave primo essendo 341=11middot31 Sono detti pertanto pseudoprimi i
numeri composti che passano il test Non proviamo a calcolare 2341 percheacute sarebbe un numero
mostruosamente grande fuori dalla nostra portata ma vedremo tra poco come si puograve aggirare lrsquoostacolo
Riassumendo il piccolo teorema di Fermat afferma che egrave vero
1 se p egrave primo e a egrave un intero minore di p allora apndasha egrave divisibile per p
2 se apndasha non egrave divisibile per p allora p non egrave primo
ma se apndasha egrave divisibile per p allora p puograve essere primo ma anche composto ciograve percheacute la divisibilitagrave per p
egrave condizione necessaria ma non sufficiente percheacute p sia primo Concludendo possiamo dire che usando
questo teorema per verificare la primalitagrave di un numero se scopriamo che ap-a non egrave divisibile per p siamo
sicuri che p egrave composto ma se egrave divisibile per p allora p egrave probabilmente primo nel senso che puograve essere
un primo autentico o pseudoprimo
La cosa interessante egrave che la probabilitagrave che un numero composto sia uno pseudoprimo (cioegrave che
superi il test di primalitagrave ma non sia primo come per esempio 341) su una base casuale diminuisce
fortemente allrsquoaumentare del numero Un numero di 1000 cifre composto ha circa una possibilitagrave su 10123
di essere uno pseudoprimo su una base scelta a caso La tabella 3 riporta tali probabilitagrave in funzione del
numero di cifre
Cifre in x Limite superiore per P(x)
Cifre in x Limite superiore per P(x)
Cifre in x
Limite superiore per P(x)
60 00716 80 00000846 100 00000000277
120 528middot10ndash12 150 149middot10ndash17 200 385middot10ndash27
300 58middot10ndash29 400 57middot10ndash42 500 23middot10ndash55
700 18middot10ndash82 1000 12middot10ndash123 2000 86middot10ndash262
5000 76middot10ndash680 10000 16middot10ndash1331 100000 13middot10ndash10584
Tabella 3 Probabilitagrave che un numero composto sia pseudoprimo
Nel 2002 tre ricercatori indiani Manindra Agrawal Neeraj Kayal e Nitin Saxena hanno costruito un
algoritmo denominato AKS (dalle iniziali dei nomi) sempre basato sulla fondamentale proprietagrave enunciata dal
15
piccolo teorema di Fermat ma che risulta deterministico e che riduce in maniera drastica il tempo di calcolo
Lrsquoalgoritmo fornisce una svolta significativa in un settore lungamente atteso e di grande interesse pratico ma
per ora non sembra che possa avere immediata applicazione in quanto molto piugrave lento dei test probabilistici i
quali drsquoaltra parte sono quasi certi per i numeri primi di centinaia di cifre che servono attualmente in
crittografia
Storia della crittografia
La crittografia che letteralmente significa scrittura nascosta nasce dalla necessitagrave di segretezza di alcune
informazioni e pertanto con tale termine intendiamo lo studio dei metodi che consentono la trasmissione sicura
dellrsquoinformazione
Drsquoaltro canto lrsquoesistenza di informazioni segrete genera il desiderio di svelarle e da tale desiderio nasce
la crittoanalisi con cui intendiamo lo studio di metodi che consentono la decifrazione dei messaggi crittografati
La storia della crittografia drsquoaltra parte altro non egrave che la secolare battaglia tra crittografi e crittoanalisti
Infatti ogni sistema crittografico rimane valido fincheacute un crittoanalista non individua un suo punto debole sulla
base del quale riesce a elaborare il sistema di decifrazione
Crittografi e crittoanalisti insieme hanno dato un grande contributo al progresso scientifico e tecnologico
Infatti tutti i metodi della crittografia e della crittoanalisi fanno ricorso a metodi e strumenti di una vasta varietagrave
di scienze come la matematica la linguistica la teoria dellrsquoinformazione la fisica quantistica le quali a loro
volta sono da essi arricchite e stimolate
Lrsquoidea su cui si basa un metodo crittografico consiste nel concordare tra mittente e destinatario che
vogliono scambiarsi un messaggio senza che venga intercettato da terzi una procedura per alterare il testo in
chiaro del messaggio Il destinatario puograve ricavare il testo originale applicando al testo cifrato la procedura
inversa Chi intercetta il messaggio non conoscendo la procedura non puograve ricostruire il messaggio La sicurezza
del metodo sta nella difficoltagrave da parte del crittoanalista di poter ricostruire la procedura dallrsquoanalisi del
messaggio cifrato
Prima dellrsquoera informatica i metodi crittografici erano essenzialmente due per trasposizione o per
sostituzione
Nella trasposizione le lettere sono mutate di posto generando di fatto un anagramma Ma la
trasposizione non puograve essere casuale Infatti nel caso di messaggi brevi non sarebbe sicura in quanto i pochi
caratteri alfabetici che costituiscono il messaggio possono essere combinati in pochi modi diversi per cui
diventa facile ricostruire il messaggio per tentativi Ad esempio la parola ldquomiordquo consta di 3 caratteri alfabetici
esistono al massimo sei sequenze diverse mio moi imo iom omi oim analizzandole tutte e sei egrave facile
ricostruire la sequenza ldquomiordquo Ma al crescere della lunghezza del messaggio cresce mostruosamente anche il
numero delle sequenze infatti un anagramma di una parola di n lettere altro non egrave che una permutazione di n
elementi e si dimostra che il numero totale delle permutazioni di n elementi egrave dato da n (si legga n fattoriale)
uguale al seguente prodotto n(nndash1)(nndash2)(nndash3)hellip(nndash (nndash1)) Pertanto se il messaggio egrave costituito ad esempio da
20 lettere i possibili anagrammi sono 20=20middot19middot18middot17middot16middot15middot14middot13middot12middot11middot10middot9middot8middot7middot6middot5middot4middot3middot2middot1 cioegrave piugrave di 1000
miliardi e anche se si potesse controllare un anagramma al secondo ci vorrebbero piugrave di trentuno secoli per
analizzarli tutti In questo caso la comunicazione risulterebbe sicura essendo impossibile analizzare tutte le
16
possibili sequenze e ricostruire il messaggio ma di fatto egrave inutilizzabile anche dal destinatario percheacute di fronte
allo stesso problema
Per rendere efficace tale metodo egrave necessario che mittente e destinatario si accordino su un criterio di
trasposizione fissato in anticipo e piugrave egrave complicato tale criterio e piugrave egrave sicuro il metodo
Esiste il metodo della trasposizione cosiddetta a inferriata Esso consiste nella trascrizione di un testo
lungo due linee orizzontali una superiore e una inferiore passando da una allrsquoaltra a ogni successivo carattere
alfabetico Finita la trascrizione la seconda fila di caratteri saragrave accodata alla prima per dare origine al testo
cifrato Ad esempio
testo del messaggio incontriamoci stasera alle sette
testo del messaggio cifrato icnraoitsralstenotimccsaealeet
Il destinatario ricostruisce il testo originale applicando la trasposizione inversa
Esistono molti altri tipi di trasposizione per esempio si puograve variare il numero delle file su cui trascrivere
il messaggio oppure si puograve passare da una fila allrsquoaltra ogni due caratteri anzicheacute dopo ogni singolo carattere e
cosigrave via Da osservare che ogni carattere alfabetico mantiene la propria identitagrave ma cambia la posizione
Nella sostituzione ogni carattere alfabetico del messaggio originale viene sostituito con un altro carattere
alfabetico secondo un criterio stabilito In questo caso ogni carattere alfabetico mantiene la posizione ma
cambia la propria identitagrave
Sostanzialmente esso necessita di determinare come primo passo un alfabeto cifrante che egrave ottenuto
rimescolando secondo un criterio lrsquoalfabeto ordinario In questo modo a ogni carattere dellrsquoalfabeto ordinario
corrisponde un carattere dellrsquoalfabeto cifrante Per cifrare il messaggio si sostituisce ogni carattere del messaggio
con il corrispondente carattere dellrsquoalfabeto cifrante Per decifrare il messaggio si applica la procedura inversa
Il primo esempio documentato di cifratura per sostituzione si trova nel De bello gallico di Giulio Cesare
detto anche cifrario di Cesare Qui lrsquoalfabeto cifrante era ottenuto da quello ordinario spostando a destra di tre
posti ogni carattere alfabetico ad esempio per cifrare il messaggio si sostituisce ogni lettera con la
corrispondente dellrsquoalfabeto cifrante (figura 2)
17
Figura 2 Cifrario di Giulio Cesare
Per decifrare si sostituisce ogni lettera del messaggio cifrato utilizzando la corrispondenza inversa
Come si puograve facilmente osservare in questo metodo lrsquoalfabeto cifrante altro non egrave che una
riorganizzazione dellrsquoalfabeto ordinario che si puograve ottenere con un qualsiasi spostamento tra 1 e il numero delle
lettere dellrsquoalfabeto ordinario Per esempio nel caso dellrsquoalfabeto italiano che consta di 21 lettere si possono
effettuare 20 diversi spostamenti e ottenere quindi 20 diversi alfabeti cifranti Essendo lrsquoalfabeto cifrante una
riorganizzazione dellrsquoalfabeto ordinario non egrave detto che questa debba essere ottenuta utilizzando il criterio
dello spostamento ma puograve coincidere con un qualsiasi anagramma dellrsquoalfabeto ordinario Si vede quindi
facilmente come aumentano gli alfabeti cifranti nel nostro caso il loro numero per quanto detto
precedentemente uguaglia il numero delle permutazioni di 21 elementi e cioegrave 21 e cioegrave oltre 50 miliardi di
miliardi
A partire da questo esempio cerchiamo di chiarire in termini generali il significato di metodo
crittografico intendendo con esso un algoritmo che mediante una chiave trasforma un messaggio in chiaro in
un messaggio cifrato o crittogramma
Ad esempio nel metodo descritto sopra lrsquoalgoritmo equivale alla procedura con cui ogni lettera
dellrsquoalfabeto in chiaro egrave sostituita dalla corrispondente lettera dellrsquoalfabeto cifrante la chiave equivale al
particolare alfabeto cifrante scelto per la cifratura o decifrazione di un particolare crittogramma
Inoltre crsquoegrave da sottolineare lrsquoimportanza concettuale della distinzione tra algoritmo e chiave Infatti la sola
conoscenza dellrsquoalgoritmo senza la chiave non permette di decifrare il crittogramma Ed egrave questo uno dei
principi fondamentali della crittografia formulato in modo definitivo nel 1883 dallrsquoolandese Auguste
Kerckhoffs von Nieuwenhof noto anche come legge di Kerckhoffs ldquola sicurezza di un crittosistema non deve
dipendere dal tener celato il crittoalgoritmo La sicurezza dipenderagrave solo dal tener celata la chiaverdquo
Le caratteristiche di un efficace sistema crittografico possono essere riassunte nelle seguenti
1 segretezza della chiave
2 semplicitagrave della chiave (per evitare possibili malintesi o errori al momento dello scambio tra
mittente e destinatario)
3 alto numero di potenziali chiavi tra cui scegliere
18
Come si puograve notare la 2) e la 3) sono collegate tra loro infatti nel sistema descritto sopra si potrebbe
scegliere una chiave piugrave semplice sacrificando il numero di chiavi potenziali
Infatti invece di generare lrsquoalfabeto cifrante da una riorganizzazione casuale dellrsquoalfabeto ordinario lo si
puograve fare a partire da una parola chiave come nel seguente esempio Supponiamo di accordarci sulla parola
chiave lsquolaurarsquo si eliminano eventuali spazi e lettere ripetute quindi la parola chiave diventa lsquolaurrsquo a questo
punto la sequenza l a u r saragrave lrsquoinizio dellrsquoalfabeto cifrante cui seguiranno tutte le altre lettere mancanti in
ordine alfabetico partendo dallrsquoultima lettera della chiave per cui lrsquoalfabeto cifrante che si ottiene saragrave l a u r s t
v z b c d e f g h i m n o p q
I crittosistemi basati sulla sostituzione hanno dominato la scena per tutto il primo millennio della nostra era
fincheacute i crittoanalisti non trovarono il suo punto debole ed elaborarono un metodo per decifrarne i crittogrammi prodotti
La violazione di tali sistemi si basa su unrsquoidea dovuta per prima a crittoanalisti arabi nella quale si
combinano conoscenze di linguistica statistica e matematica nota con il nome di analisi delle frequenze
Essa egrave descritta dallo studioso del IX secolo Abu Yusuf ibn Ishaq al-Kind sopran-nominato il filosofo
degli arabi in una sua monografia dal titolo Sulla decifrazione dei messaggi crittati ritrovata nellrsquoarchivio
ottomano Sulaimaniyyah di Istanbul solo nel 1987 Nel testo si legge
Un modo di svelare un messaggio crittato se conosciamo la lingua dellrsquooriginale consiste nel trovare
un diverso testo chiaro nella stessa lingua abbastanza lungo da poter calcolare la frequenza di ciascuna
lettera
Chiamiamo ldquoprimardquo quella che compare piugrave spesso ldquosecondardquo quella che la segue per frequenza
ldquoterzardquo la successiva e cosigrave via fino a esaurire tutte le lettere del campione di testo chiaro
Esaminiamo poi il testo in cifra che vogliamo interpretare ordinando (in base alla frequenza) anche i
suoi simboli Troviamo il simbolo piugrave comune e rimpiazziamolo con la ldquoprimardquo lettera dellrsquoesempio
chiaro il simbolo che lo segue per frequenza sia rimpiazzato dalla ldquosecondardquo lettera il successivo simbolo
piugrave comune sia rimpiazzato dalla ldquoterzardquo e cosigrave via fino ad aver preso in considerazione tutti i simboli del
crittogramma che intendevamo svelare
Tabella 4 Frequenze delle diverse lettere in italiano
Per superare lrsquoanalisi delle frequenze furono ideati diversi nuovi metodi crittografici tra cui ricordiamo
1 il metodo di sostituzione omofonica
2 il metodo di sostituzione polialfabetica
19
Il metodo di sostituzione omofonica consiste nel sostituire ogni lettera con un numero di simboli per
esempio numeri proporzionale alla sua frequenza Cosigrave ad esempio la lettera a avendo una frequenza di 11 74
viene sostituita da 11 simboli la lettera b con un solo simbolo la lettera c con 4 simboli ecc secondo la tabella 5
Il metodo di sostituzione polialfabetica consiste nellrsquouso di piugrave alfabeti cifranti su unrsquoidea di Leon
Battista Alberti che propose di utilizzarne due Lrsquoalgoritmo consiste nel sostituire la prima lettera del messaggio
in chiaro con la corrispondente del I alfabeto cifrante la seconda lettera con la corrispondente del II alfabeto
cifrante la terza con la corrispondente del I e cosigrave via passando alternativamente dal I alfabeto al secondo Come
nellrsquoesempio della figura 3
Tabella 5 Corrispondenza lettere e simboli nella sostituzione omofonica
Figura 3 Il metodo di sostituzione polialfabetica
Su tale idea si basa il metodo di Blaise de Vigenegravere diplomatico francese nato nel 1523 il quale utilizza
tanti alfabeti cifranti quante sono le lettere dellrsquoalfabeto in chiaro ad esempio nellrsquoalfabeto italiano che consta
di 21 lettere utilizza 21 alfabeti cifranti
Il primo passo consiste nel costruire la tavola di Vigenegravere in cui nella prima riga egrave riportato lrsquoalfabeto in
chiaro e in ognuna delle 21 righe successive egrave riportato un alfabeto cifrante spostato di una lettera rispetto a
quello della riga precedente cosigrave nella riga 1 egrave riportato lrsquoalfabeto spostato di una lettera nella riga 2 quello
spostato di due lettere nella riga 3 quello spostato di tre fino alla riga 20 in cui egrave riportato quello spostato di 20
lettere (figura 4)
20
Figura 4 La tavola di Vigenegravere
Il secondo passo consiste nello scegliere una parola chiave per esempio lsquoverorsquo Pertanto il messaggio in
chiaro ldquonon andarerdquo verrebbe cifrato come nella figura 5
La differenza sostanziale tra la cifratura omofonica e quella polialfabetica egrave che in quella omofonica a
ogni lettera corrispondono piugrave simboli ma ogni simbolo egrave il corrispondente di una sola lettera cioegrave egrave una
corrispondenza 1rarr m che invertita diventa mrarr 1 in quella polialfabetica a ogni lettera corrispondono piugrave
simboli e anche ogni simbolo egrave il corrispondente di piugrave lettere cioegrave mrarr m che rimane tale anche invertendola
Il vantaggio della cifratura polialfabetica egrave pertanto la sua resistenza allrsquoanalisi delle frequenze Oltre ad
ammettere un enorme numero di chiavi infatti si puograve scegliere qualunque parola del dizionario qualunque
combinazione di parole si puograve perfino ricorrere a neologismi rendendo impossibile il controllo di tutte le chiavi
possibili Ed ecco percheacute egrave ritenuta piugrave affidabile e non ha mai smesso di essere usata
Figura 5 Cifratura polialfabetica del messaggio ldquonon andarerdquo
21
Oggi sono noti tutti i punti deboli del sistema di Vigenegravere ed esistono vari procedimenti per decifrare i
crittogrammi generati da tale sistema che sfruttano ad esempio la modularitagrave nel ripetere la chiave o
osservazioni sulle ripetizioni del testo cifrato Ci sono testimonianze storiche che uno di tali procedimenti sia
stato ideato da Sir Charles Babbage famoso per aver progettato e mai realizzato la macchina alle differenze
progenitrice degli odierni calcolatori La prima descrizione resa pubblica del metodo perograve egrave del 1863 portata a
compimento dallrsquoufficiale prussiano F W Kasiski
Unrsquoosservazione decisiva fu che le insidie del metodo di Babbage potevano essere evitate utilizzando
nella cifratura di Vigenegravere una chiave molto lunga e fatta da lettere che si succedono in modo casuale se un
messaggio cifrato non presenta delle ripetizioni se non egrave possibile tentare di indovinare la chiave cadono tutti
gli appigli necessari per effettuare con successo la crittoanalisi
Tale osservazione fu ulteriormente sviluppata da G S Vernam che nel 1926 introdusse lrsquoidea di usare
una chiave casuale lunga quanto il messaggio stesso
Oggi sappiamo grazie agli studi di Claude Shannon del 1949 che tale metodo puograve definirsi
ldquoteoricamente sicurordquo
In pratica perograve ciograve comporta la difficoltagrave di costruire lunghe stringhe di lettere assolutamente casuali e di
scambiarsi segretamente e continuamente queste chiavi In sostanza risulta impraticabile per ogni messaggio
scambiato in modo sicuro egrave necessario prima trasmettere in modo sicuro il messaggio contenente la chiave
I metodi usati per buona parte del Novecento sono delle rielaborazioni sempre piugrave complesse delle idee
descritte finora ottenute anche con la costruzione di dispositivi per la meccanizzazione delle procedure di
cifratura e decifratura Un esempio tra i piugrave conosciuti egrave la macchina Enigma usata dai tedeschi durante la
Seconda guerra mondiale inventata dallrsquoingegnere Arthur Scherbius Enigma consisteva di diversi ingegnosi
elementi combinati in un potente e sofisticato dispositivo per la produzione di scritture segrete In particolare ma
macchina aveva tre componenti collegati da fili elettrici una tastiera per immettere le lettere del testo chiaro
unrsquounitagrave scambiatrice che cifra la lettera trasformandola nel corrispondente elemento del crittogramma e un
visore con varie lampadine che accendendosi indicano la lettera da inserire nel crittogramma
Lo sforzo per violare questa cifratura richiese anni di lavoro e fu portato a compimento dalla Scuola
Inglese Governativa di Codici e Cifre di Bletchley Park di cui faceva parte Alan M Turing noto oggi ai piugrave per
i suoi studi sullrsquointelligenza meccanica
La crittografia nellrsquoera dellrsquoinformatica
Nel 1945 fu realizzato ENIAC (Electronic Numerical Integrator And Calculator) unrsquoapparecchiatura
contenente 18 000 valvole elettroniche capace di effettuare 5000 calcoli al secondo considerato il capostipite
dei moderni calcolatori
Dopo il 1945 fu lrsquoinformatica a fare da protagonista nella battaglia tra crittografi e crittoanalisti operando
una decisiva svolta nelle metodologie di entrambi Infatti i metodi precedenti lrsquoera dellrsquoinformatica basavano la
propria sicurezza sullrsquoenorme numero di chiavi disponibili e sulla loro lunghezza ma che viene messa in crisi
dalla crescente potenza di calcolo dei computer Un computer molto potente infatti potrebbe individuare quella
giusta in pochi minuti anche nel caso di un milione di chiavi da esaminare
Tutti i metodi crittografici esaminati finora necessitano di
22
1 un algoritmo generale di cifratura G
2 di una chiave K che deve rimanere segreta
3 di un algoritmo di decifrazione H=Gndash1 (inverso di G)
e agiscono secondo il seguente schema
il messaggio in chiaro M tramite lrsquoalgoritmo G e la chiave K viene cifrato in MC questrsquoultimo tramite
lrsquoalgoritmo H e la stessa chiave K viene decifrato in M (figura 6)
Figura 6 Schema di metodi crittografici
La sicurezza di tali sistemi risiede interamente nella segretezza delle chiavi Ne segue che per distribuire
agli utenti le chiavi egrave necessario ricorrere a canali sicuri
Gli svantaggi che ne derivano sono essenzialmente
1 difficoltagrave nella distribuzione delle chiavi agli utenti
2 mancata autenticazione dei messaggi mittente e destinatario condividono la stessa chiave
pertanto non crsquoegrave modo di impedire che il destinatario si invii messaggi che poi sembrino
provenienti dal mittente Si pensi quali problemi possono provocare simili falsificazioni nella
posta elettronica o nei sistemi bancari elettronici
La svolta avvenne nel 1976 a opera di Diffie e Hellmann che proposero un metodo detto a chiave
pubblica il quale non necessita di uno scambio preventivo delle chiavi segrete Lrsquodea egrave chiarita dal seguente
esempio noto come esempio del doppio lucchetto
Supponiamo di avere due utenti Mitt e Dest e Mitt voglia spedire un messaggio segreto a Dest
1 Mitt mette il messaggio in una scatola che chiude con il proprio lucchetto LMitt (di cui solo lui ha
la chiave) e spedisce la scatola a Dest
2 Dest ricevuta la scatola aggiunge un proprio lucchetto LDest (di cui solo lui ha la chiave) e
rispedisce la scatola a Mitt
3 Mitt ricevuta la scatola con il doppio lucchetto toglie il lucchetto LMitt e rispedisce la scatola a
Dest
4 Dest ricevuta la scatola puograve togliere il lucchetto LDest e leggere il messaggio di Mitt
Il problema della distribuzione delle chiavi sembra risolto percheacute lo schema a doppia chiave non richiede
la condivisione delle stesse Tuttavia la realizzazione pratica di un tale sistema si scontra con un altro problema
quello riguardante lrsquoordine in cui cifrature e decifrature sono eseguite In altre parole in un sistema crittografico
egrave essenziale lrsquoordine con cui avvengono le rispettive cifrature e decifrature in quanto la cifratura eseguita per
23
ultimo andrebbe decifrata per prima (egrave un porsquo come quando la mattina infiliamo prima le calze e poi le scarpe
ma alla sera togliamo prima le scarpe e poi le calze)
Lrsquoesempio del doppio lucchetto in cui ciograve non avviene sembra tuttavia funzionare come idea percheacute ai
fini dellrsquoapertura della scatola non ha importanza lrsquoordine di rimozione dei lucchetti
Anche se il trucco dei due lucchetti non sembra immediatamente applicabile tuttavia fu il giusto punto di
partenza per la realizzazione di un sistema crittografico che aggira lrsquoostacolo della distribuzione delle chiavi
Infatti lrsquoidea egrave che mittente e destinatario generano ciascuno due chiavi distinte una chiave di cifratura E
(da utilizzare nellrsquoalgoritmo di cifratura) e una chiave di decifrazione D (da utilizzare nellrsquoalgoritmo di
decifrazione) Le chiavi sono correlate nel senso che servono per effettuare operazioni inverse (figura 7)
Figura 7 Le chiavi correlate per effettuare operazioni invese
Il trucco consiste nellrsquoimpossibilitagrave di poter derivare la chiave D dalla chiave E mediante algoritmi di
calcolo (figura 8)
Ogni utente puograve rendere pubblica la propria chiave di cifratura E indicandola magari sullrsquoelenco
telefonico senza compromettere la propria chiave di decifrazione che rimane segreta di pubblico dominio sono
anche gli algoritmi di cifratura G e decifrazione H
Figura 8 Inapplicabilitagrave del metodo del doppio lucchetto
Pertanto lrsquoesempio del doppio lucchetto viene cosigrave interpretato
1 il destinatario pubblica la chiave di cifratura E e mantiene segreta la chiave di decifrazione D
2 il mittente applica GE al messaggio M trasformandolo nel messaggio cifrato MC cioegrave
GE(M)=MC che spedisce al destinatario
3 il destinatario applica HD al messaggio cifrato MC riottenendo M cioegrave HD(MC)=M
24
La sicurezza di un tale sistema si fonda sulla difficoltagrave di poter
1 ritrovare il testo cifrato provando ad applicare lrsquoalgoritmo GE che egrave pubblico ad ogni possibile
testo in chiaro il cui numero pur essendo enorme egrave comunque finito
2 ricavare lrsquoalgoritmo HD da GE
in quanto entrambe le tecniche sono computazionalmente inattuabili nel senso che richiedono un tempo
di calcolo di lunghezza al di fuori di ogni possibile considerazione anche per i piugrave potenti calcolatori
Per descrivere tali algoritmi sono necessari alcuni concetti matematici che andiamo a illustrare
Figura 9 Schema di cifrario a chiave pubblica
Lrsquoaritmetica modulare
Lrsquoaritmetica modulare la cui introduzione egrave dovuta a Gauss costituisce un sistema di calcolo con
importanti applicazioni nei test di primalitagrave e nei metodi che stanno alla base della sicurezza delle comunicazioni
elettroniche Con essa infatti si hanno i seguenti vantaggi 1) si riduce lo spazio dei numeri su cui gli algoritmi
sono chiamati ad operare e quindi si aumenta la velocitagrave di calcolo 2) si riesce a rendere difficili alcuni problemi
computazionali che sono semplici (o addirittura banali) nellrsquoalgebra ordinaria al fine di aumentare la sicurezza
nelle comunicazioni Lrsquoidea egrave semplice ma potente Forse non lo sappiamo ma usiamo spesso laritmetica
modulare Potremmo chiamarla aritmetica dellorologio
Infatti pensiamo ad un normale orologio con 24 ore Se sono le 15 ed un amico ci comunica che saragrave a
casa nostra tra 5 ore sappiamo che egli verragrave alle 20 infatti 15+5=20 Ma se sono le 23 e dobbiamo partire fra 7
ore certamente non diciamo che la partenza saragrave alle 30 anche se 23+7=30 Sappiamo che dovremo partire alle
6 Allo stesso modo se sono le 20 che ora saragrave tra 14 ore Non diremo 34 anche se 20+14=34 ma diremo che
sono le 10 Come si spiega tutto ciograve
Immaginiamo di segnare sul quadrante dellrsquoorologio 24 ore Se la lancetta segna le 23 aggiungere 7 ore
significa spostarsi di 7 posti fino ad arrivare alle 6 Si giunge allo stesso risultato calcolando 23+7=30 ed
osservando che 30=1sdot24+6 o che egrave lo stesso 3024 =1 con resto 6 che significa che 30 lo si ottiene facendo fare
alla lancetta un giro completo piugrave 6
25
Se la lancetta segna le 20 e aggiungiamo 14 ore lrsquoorologio segneragrave le 10 percheacute 20+14=34 ma 3424= 1
con resto 10 per cui 34 lo si ottiene percorrendo un giro completo piugrave 10
Proviamo con il normale orologio a 12 ore I numeri che vediamo sul quadrante sono 0 1 2 3 4 5 6 7
8 9 10 11 Il numero 12 non compare percheacute a partire da 0 trascorse 12 ore torniamo di nuovo a 0 Questa
volta per fare un giro completo occorrono 12 ore Pertanto se sono le 7 che ore saranno tra 24 ore Saranno
ancora le 7 percheacute 7+24=31 ma 3112 = 2 con resto 7 cioegrave si compiono 2 giri completi piugrave 7 se sono le 8 tra 6
ore saranno le 2 percheacute 8+6=14 ma 1412=1 con resto 2 Dagli esempi dovrebbe risultare chiaro allora che ciograve
che contano non sono i risultati delle somme ma i loro resti nelle divisioni per il numero delle ore segnate sul
quadrante dellrsquoorologio
La stessa cosa succede con i giorni della settimana se pensiamo a un orologio con 7 ore sul quadrante
Facciamo corrispondere ai giorni della settimana i numeri da 0 a 6 (figura 10)
domenica Lunedigrave Martedigrave Mercoledigrave Giovedigrave Venerdigrave Sabato darr darr darr darr darr darr darr 0 1 2 3 4 5 6
Figura 10 Corrispondenza dei giorni della settimana con i numeri da 0 a 6
Se per esempio oggi egrave venerdigrave che giorno saragrave tra 12 giorni
Dovremo calcolare 5+12=17 ma i giorni si ripetono ogni 7 pertanto osservando che 177 =2 con resto 3
possiamo concludere che a partire da 5 e aggiungendo 12 si compiono 2 giri completi piugrave 3 ed essendo 3 il
numero corrispondente a mercoledigrave concludiamo che saragrave mercoledigrave Facciamo un altro esempio se oggi egrave
lunedigrave (1) che giorno saragrave tra 20 giorni Calcoliamo 1+20=21 217= 3 con resto 0 quindi saragrave domenica
Il numero n delle ore sullrsquoorologio costituisce quello che si chiama il modulo e individua lrsquoaritmetica di
modulo n in cui lrsquoinsieme dei numeri con i quali si opera indicato con Zn egrave lrsquoinsieme dei possibili resti della
divisione per n e cioegrave Zn=0 1 2 3 hellip nndash1e le operazioni si eseguono con le regole illustrate negli esempi
precedenti
Lrsquoesempio dellrsquoorologio a 24 ore costituisce la cosiddetta aritmetica finita di modulo 24 in essa Z24=0
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 essendo questi ultimi i possibili resti
della divisione per 24 Lrsquoorologio a 12 ore costituisce lrsquoaritmetica finita di modulo 12 in essa Z12=0 1 2 3 4
5 6 7 8 9 10 11 essendo questi ultimi i possibili resti della divisione per 12 Lrsquoesempio dei giorni della
settimana egrave lrsquoaritmetica finita di modulo 7 in cui Z7=0 1 2 3 4 5 6 essendo questi ultimi i possibili resti
della divisione per 7 Riassumiamo costruendo unrsquoaritmetica finita di modulo 4 I possibili resti della divisione
per 4 sono 0 1 2 3 quindi Z4=0123 Lrsquoaddizione e la moltiplicazione in Z4 si esegue come negli esempi
della tabella 6
26
operazioni indicate
Risultato nellrsquoaritmetica ordinaria
Risultato nellrsquoaritmetica modulo 4
2+2 4 0 percheacute 44=1 con resto 0
3+2 5 1 percheacute 54=1 con resto 1
2+1 3 3 percheacute 34=0 con resto 3
3sdot3 9 1 percheacute 94=2 con resto 1
3sdot2 6 2 percheacute 64=1 con resto 2
2sdot2 4 0 percheacute 44=1 con resto 0
Tabella 6 Addizione e moltiplicazione nellrsquoaritmetica finita di modulo 4
Si possono costruire le tavole dellrsquoaddizione e della moltiplicazione dellrsquoaritmetica modulo 4 che costituiscono
le tabelline di questa aritmetica sulla base delle quali si esegue qualsiasi addizione e moltiplicazione modulo 4
Nella tabella 7 sono spiegate le tabelline dellrsquoaritmetica in modulo 4
Tabella 7 Tavole dellrsquoaddizione e della moltiplicazione dellrsquoaritmetica modulo 4
Infine per indicare che due numeri a e b divisi per n danno lo stesso resto si usano le seguenti notazioni
tutte equivalenti tra loro
a=b mod n andashb=0 mod 4 a equiv b (mod n) che si legge a egrave congruo b modulo 4
Esempio
26=12 mod 7 egrave la stessa cosa di
26ndash12=0 mod 7 che egrave la stessa cosa di
26 equiv 12 (mod 7) e tutte e tre stanno a indicare che 26 e 12 divisi per 7 danno lo stesso resto che egrave 5 e
pertanto sono tutti equivalenti a 5
Facciamo vedere come sfruttare lrsquoaritmetica modulare per calcolare potenze come 2341 (figura 11) Il
metodo si basa sulla proprietagrave che il resto del quadrato di un numero a per un dato modulo n egrave uguale al
quadrato del resto dello stesso numero a per lo stesso modulo n cioegrave a2 mod n =(a mod n)2
+ 0 1 2 3
0 0 1 2 3
1 1 2 3 0
2 2 3 0 1
3 3 0 1 2
x 0 1 2 3
0 0 0 0 0
1 0 1 2 3
2 0 2 0 2
3 0 3 2 1
27
Figura 11 Il metodo per calcolare 2341
La funzione di Eulero
Per ogni intero ngt1 si definisce la funzione di Eulero = numero di interi minori di n e primi con esso Ad
esempio
bull ( ) 45 =φ percheacute gli interi minori di 5 sono 1 2 3 4 ed essi sono tutti primi con n
bull ( ) 26 =φ percheacute gli interi minori di 6 sono 1 2 3 4 5 e fra essi solo 1 e 5 sono primi con 6
bull ( ) 67 =φ percheacute gli interi minori di 7 sono 1 2 3 4 5 6 ed essi sono tutti primi con 7
bull ( ) 412 =φ percheacute gli interi minori di 12 sono 1 2 3 4 5 6 7 8 9 10 11 e fra essi solo 1 5 7
11 sono primi con 12
Se si conosce la scomposizione in fattori del numero n il seguente teorema ci fornisce un metodo per
calcolare Infatti esso afferma che per ogni ngt1 non primo ( )
minussdotsdot
minussdot
minussdotnppp
n=nφ 11
11
11
21
dove
p1 p2 hellip pn sono i fattori primi di n presi senza molteplicitagrave
22 mod 341=4
24=(22)2=(22 mod 341)2=42=16mod341=16
28=(24)2=(16)2=256mod341=256
216= (28)2=(256)2=65536mod341=64
232=(216)2=(64)2=4096mod341=4
264=(232)2=42=16mod341=16
2128=(264)2=(16)2=256mod341=256
2256=(2128)2=(256)2=65536mod341=64
2341=2(256+64+16+4+1) 2256 264 216 24 21 x x x x
64 1
1024 mod 341
= 1 x 64
64 x 16
1024 mod 341
1 x 2 =
=
x
28
Ad esempio
essendo 12 = 3sdot2sdot2 ( ) 42
1
3
212
2
11
3
111212 ===φ sdotsdot
minussdot
minussdot
essendo 6=2sdot3 ( ) 22
1
3
26
2
11
3
1166 ===φ sdotsdot
minussdot
minussdot
se n=psdotq ( ) ( ) ( )11111
11
1 minussdotminusminussdotminussdot
minussdot
minussdot qp=q
q
p
pn=
qpn=nφ
Ovviamente se n egrave un numero primo = nndash1
Vale inoltre il seguente teorema di Eulero per ngt1 e per ogni altn e primo con n si ha
Ad esempio per n=6 ( ) 26 =φ infatti i primi con 6 sono 1 e 5 per il teorema di Eulero si ha
2mod1255
2mod1112
2
equiv=
equiv=
per n=5 ( ) 45 =φ e i primi con 5 sono 1 2 3 4 e per il teorema di Eulero si ha
5mod12564
5mod1813
5mod1162
5mod111
4
4
4
4
equiv=
equiv=
equiv=
equiv=
Si puograve notare come nel caso in cui n egrave un numero primo si ritrova il piccolo teorema di Fermat
Infatti per n primo ( )nφ = nndash1 e per il teorema di Eulero per ogni altn e primo con n Ricordiamo infatti
che il piccolo teorema di Fermat afferma che se n egrave un numero primo e a un intero minore di n allora egrave
divisibile per n che con il linguaggio dellrsquoaritmetica modulare diventa che puograve essere riscritto e se a egrave primo
con n allora egrave che egrave equivalente a
Infine si prova che per ogni altn e primo con esso esiste lrsquoinverso di a e esso egrave dato da ( ) 1minusnaφ Infatti
( ) ( ) na=aa nφnφ1mod1 equivsdot minus per il teorema di Eulero Si ricorda che lrsquoinverso di un numero a egrave quel numero che
moltiplicato per a dagrave 1 indicato convenzionalmente con andash1
Ad esempio per n=5 i primi con 5 sono 1 2 3 4 e per ognuno di questi esiste lrsquoinverso infatti
bull lrsquoinverso di 1 egrave ( ) 1mod51111 31415 equivminusminus ===φ
e infatti
bull lrsquoinverso di 2 egrave ( ) 3mod58222 31415 equivminusminus ===φ
e infatti
bull lrsquoinverso di 3 egrave ( ) 2mod527333 31415 equivminusminus ===φ
e infatti
bull lrsquoinverso di 4 egrave ( ) 4mod564444 31415 equivminusminus ===φ
Le funzioni unidirezionali
Chiamiamo funzione da un insieme A a un insieme B qualunque procedura che associa a ogni elemento
di un insieme A (detto dominio) uno e un solo elemento di un insieme B (detto condominio) In simboli f
A rarr B Se poi indichiamo con x il generico elemento dellrsquoinsieme A e con y il generico elemento dellrsquoinsieme B
la f indica la procedura che ad ogni xisinA associa un yisinB e cioegrave y=f(x) ad esempio ldquofare il doppio dihelliprdquo
29
prendendo come dominio e codominio lrsquoinsieme dei numeri interi egrave in questo senso una funzione percheacute dato
ad esempio il numero 3 lo trasforma nel numero 6 come 5 lo trasforma in 10 e cosigrave via
Molte funzioni matematiche sono cosiddette bidirezionali nel senso che egrave facile dato un determinato x
generare il corrispondente y ma egrave altrettanto facile invertire la funzione cioegrave ritrovare lrsquoelemento x originario a
partire dal suo corrispondente
Facciamo qualche esempio
bull funzione xrarr fare il doppiorarr 2sdotx= y 3rarr fare il doppiorarr 2sdot3 = 6
funzione inversa y=2sdotx rarr fare la metagraverarr x 6=2sdot3 rarr fare la metagraverarr 3
bull funzione xrarr fare il quadruplorarr 4sdotxrarr aggiungere 1rarr sdoty=4sdotx +1
5rarr fare il quadruplorarr 4sdot5rarr aggiungere 1rarr 4sdot5 +1=21
funzione inversa y=4sdotx +1rarr sottrarre 1rarr 4sdot xrarr dividere per 4rarr x
21=4sdot5 +1rarr sottrarre 1rarr 4sdot 5rarr dividere per 4rarr 5
Le funzioni unidirezionali sono invece quelle funzioni facilmente calcolabili ma che non si possono invertire
Le funzioni cosiddette pseudounidirezionali (dette anche funzioni trappola a molla segreta) sono invece
quelle funzioni facilmente calcolabili ma che non altrettanto facilmente si possono invertire a meno che non si
conoscano alcune informazioni (la molla segreta) utilizzate nella loro costruzione
Lrsquoaritmetica modulare gioca un ruolo determinante in questo caso infatti permette di trasformare
funzioni bidirezionali in funzioni pseudounidirezionali
Facciamo lrsquoesempio della funzione ldquofare il quadruplordquo in simboli f(x)=4sdotx Egrave facilmente calcolabile
percheacute dato x per ottenere f(x) basta moltiplicare per 4 ma egrave altrettanto facile calcolare la sua inversa percheacute
dato f(x) basta dividere per 4 per ottenere lrsquooriginario x Ma anche se non avessimo la procedura inversa di
dividere per 4 sarebbe facile ritrovare lrsquoelemento originario anche procedendo per tentativi ed eliminazione
infatti se per esempio f(x) =20 si puograve tentare x=3 in tal caso f(x)=12 troppo piccolo quindi x deve essere
maggiore di 3 Si puograve allora pensare a 6 ma f(x)=24 troppo grande quindi x deve essere minore di 6 e cosigrave via
Vediamo cosa accade se calcoliamo utilizzando una aritmetica modulare Per esempio consideriamo la
stessa funzione f(x)=4sdotx in una aritmetica modulo 7 Possiamo osservare che la funzione non si comporta piugrave in
modo regolare come prima per accorgersene basta costruire una tabella (tabella 8)
x 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
f(x)=4sdotx 4 8 12 16 20 24 28 32 36 40 44 48 52 56 60
f(x)=4sdotmod 7 4 1 5 2 6 3 0 4 1 5 2 6 3 0 4
Tabella 8 La funzione f(x)=4sdotx in una aritmetica modulo 7
Anche in questa semplice situazione egrave chiaro che egrave piugrave complicato invertire la funzione e pertanto i valori
di x sono molto meglio protetti Si puograve fare anche lrsquoesempio della funzione esponenziale f(x)=3 x (tabella 9)
Tabella 9 La funzione f(x)=3 x in aritmetica modulo 11
x 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
f(x)=x3 1 8 27 64 125 216 343 512 729 1000 hellip hellip hellip hellip hellip
f(x)=x3 mod 11 1 8 5 9 4 7 2 6 3 10 hellip hellip hellip hellip hellip
30
Il cifrario a chiave pubblica RSA
Uno dei piugrave noti sistemi crittografici a chiave pubblica che sfrutta le idee precedentemente descritte egrave il
metodo RSA proposto dai matematici R L Rivest A Shamir e L Adlemann nel 1978 Esso risolve il problema
dello scambio delle chiavi in quanto queste ultime sono conosciute solamente ai rispettivi proprietari che non le
hanno preventivamente concordate e scambiate
Illustriamo schematicamente come i due utenti Mitt e Dest possano scambiarsi un messaggio segreto
utilizzando il metodo RSA Entrambi Mitt e Dest indipendentemente lrsquouno dallrsquoaltro poi
1 scelgono in modo casuale due numeri primi p q grandi (di 200-300 cifre in base 10)
2 calcolano N = psdotq e Φ(N) = (pndash1)sdot(qndash1)
3 scelgono un intero eltΦ(N) e primo con Φ(N) tale numero e saragrave la chiave pubblica
4 calcolano il numero d inverso di e mod Φ(N) tale cioegrave che esdotdequiv 1mod Φ(N) tale numero d saragrave
la chiave privata
5 rendono pubblici i numeri N ed e
Mitt per spedire un messaggio a Dest compie le seguenti operazioni
1 codifica il messaggio in un modo standard usando i numeri lt N
2 trasforma ogni numero M di tale codifica in Me (mod N) e lo spedisce a Dest
per decodificare il messaggio ricevuto Me Dest calcola (Me)d =Mesdotd =Mndash1=M (modN) riottenendo il messaggio
originale
Figura 12 Schema di cifrario con metodo RSA
31
Figura 13 Esempio di applicazione di metodi RSA
In che cosa consiste la sicurezza del metodo Da quanto esposto si osserva che per decodificare il
messaggio bisogna
1 conoscere d (chiave segreta)
2 essendo d lrsquoinverso di e nellrsquoaritmetica mod Φ(N) essendo e noto egrave necessario conoscere Φ(N)
3 ma noto N per calcolare Φ(N) egrave necessario conoscere i fattori primi di N cioegrave egrave necessario fattorizzare
N che egrave un problema computazionalmente difficile per quanto osservato in precedenza
Anche se non egrave stato dimostrato che non si possa rompere il codice in altro modo e cioegrave senza conoscere Φ(N) e i
fattori di N a tuttrsquooggi si puograve affermare che la sicurezza del metodo dipende essenzialmente dai seguenti fatti
Per codificare il messaggio bisogna saper costruire dei numeri primi grandi e tale operazione egrave
computazionalmente veloce si puograve infatti dimostrare che la complessitagrave computazionale di opportuni test di
primalitagrave per stabilire se un numero n egrave primo utilizzando il linguaggio di quel ramo della matematica nota
come teoria della complessitagrave egrave ldquoquasi-polinomialerdquo
Per violare il sistema bisogna saper fattorizzare interi grandi ottenuti come prodotto di due primi tale
problema egrave computazionalmente ldquolentordquo cioegrave con il linguaggio della teoria della complessitagrave appartiene alla
classe dei problemi non polinomiali Tale marcata differenza tra la velocitagrave di esecuzione delle operazioni di
costruzione di numeri primi grandi e di fattorizzazione di interi grandi garantisce la sicurezza del metodo
almeno per un tempo sufficientemente lungo Ad esempio con la tecnologia attuale lrsquooperazione di
fattorizzazione di un intero di 140 cifre in base 10 prodotto di due numeri primi casuali calcolati in pochi
secondi su un computer disponibile in commercio richiede utilizzando vari supercomputers operanti
parallelamente circa un mese
La RSA Security Inc gestisce una sfida a livello mondiale ove vengono premiati coloro che fattorizzano
gli interi proposti da loro in una particolare lista Ad esempio il 3 dicembre del 2003 egrave stato fattorizzato
32
rsa576 =
188198812920607963838697239461650439807163563379417382700763356422988859715234
665485319060606504743045317388011303396716199692321205734031879550656996221305
168759307650257059
un numero di 174 cifre decimali prodotto di due primi di 87 cifre
p =
398075086424064937397125500550386491199064362342526708406385189575946388957261
768583317
q =
472772146107435302536223071973048224632914695302097116459852171130520711256363
590397527
Le chiavi attualmente utilizzate dallRSA sono a 309 cifre decimali
La firma digitale
Consideriamo al solito un mittente che deve inviare a un destinatario un messaggio m La codifica di m
con il metodo descritto assicura lrsquoautenticitagrave del messaggio ma non fornisce alcuna sicurezza sulla sua
paternitagrave Infatti il messaggio m pur essendo autentico potrebbe essere stato inviato da qualcuno che si spaccia
per il mittente Questa egrave unimportantissima questione particolarmente nella trasmissione di messaggi che oltre
a dover essere segreti devono garantire la loro origine
Si dovrebbe quindi disporre di un analogo della firma manuale detta appunto firma digitale La firma
digitale deve allora essere progettata in modo da possedere le stesse caratteristiche di una firma manuale e cioegrave
lrsquoautenticitagrave la non falsificabilitagrave e lrsquoimpossibiltagrave di essere riutilizzata Facciamo vedere come lo stesso metodo
RSA puograve essere utilizzato per progettare una firma digitale
La situazione egrave la seguente il mittente (di seguito indicato con Mitt) invia un messaggio m con la firma
F al destinatario (di seguito indicato con Dest) Siano a b rispettivamente le chiavi pubblica e segreta di MITT
siano e d rispettivamente le chiavi pubblica e segreta di DEST
La procedura per apporre la firma digitale F al messaggio m egrave illustrata nei seguenti passi riassunti nel
grafico della figura 14
1 Mitt cripta la firma F (cioegrave i suoi dati identificativi) usando la propria chiave segreta (b)
ottenendo Fb
2 il messaggio m con la firma F criptata viene ulteriormente criptato con la chiave pubblica di
Dest (e) ottenendo (m Fb)e
3 Dest decodifica il messaggio con la sua chiave segreta (d) ottenendo
((m Fb)e)d = (me F(be)) d =m(e d)F(be d) = mFb
in cui la firma di Mitt egrave ancora criptata
4 Dest decodifica la firma di Mitt con la chiave pubblica di Mitt (a) ottenendo
(Fb)a = F(ba) = F
33
Grafico firma digitale
Mitt
Dest
pubblica
Fb
e dpubblica
a
((Fb)e)d=(Fb)ed=(Fb)1=Fb
(Fb)a=(F)ba=(F)1=F
ab de
(Fb)e
codifica
codificadecodifica
decodifica
1
2
3
4
5
6
7
8
segreta
b
segreta
Figura 14 Grafico firma digitale
Bibliografia
Thomas Beth Comunicazioni e sicurezza su Internet in ldquoLe Scienzerdquo n 330 febbraio 1996
Brian Butterworth Intelligenza matematica Vincere la paura dei numeri scoprendo le doti innate della mente
Rizzoli Milano 1999
John H Conway Richard K Guy Il libro dei numeri Hoepli Milano 2003
Richard Courant Herbert Robbins Che cosrsquoegrave la matematica Boringhieri Torino 1971
Philip J Davis Il mondo dei grandi numeri Zanichelli Bologna 1973
Keith Devlin Dove va la matematica Bollati Boringhieri Torino 1994
Jean Dieudonneacute Lrsquoarte dei numeri matematica e matematici oggi Mondadori Milano 1989
Martin E Ellmann La crittografia a chiave pubblica in La matematica della complessitagrave Quaderni n 67
settembre 1992 Le Scienze
Paolo Ferragina Fabrizio Luccio Crittografia principi ndash Algoritmi ndash Applicazioni Bollati Boringhieri Torino
2001
Godfrey H Hardy Apologia di un matematico Garzanti Milano 1989
Morris Kline Storia del pensiero matematico Einaudi Milano 1991
Serge Lang La bellezza della matematica Bollati Boringhieri Torino 1991
Mauro Leoncini Modelli di calcolo e complessitagrave computazionale in La matematica computazionale Quaderni
n 84 giugno 1995 Le Scienze
Fabrizio Luccio e Linda Pagli P = NP in La matematica della complessitagrave Quaderni n 67 settembre 1992
Le Scienze
Piergiorgio Odifreddi La Matematica del Novecento dagli insiemi alla complessitagrave Einaudi Torino 2000
34
ldquoPeriodico di matematicherdquo Serie VII Volume 7 Numero 2-3 luglio-dicembre 2000 Mathesis
ldquoPeriodico di matematicherdquo Serie VIII Volume 1 Numero 1 gennaio-marzo 2001 Mathesis
Carl Pomerance Alla ricerca dei numeri primi in ldquoLe Scienzerdquo n 174 febbraio 1983
Simon Singh Codici e segreti la storia affascinante dei messaggi cifrati dallrsquoantico Egitto a Internet Rizzoli
Milano 1999
Marcus du Sautoy Lrsquoenigma dei numeri primi lrsquoipotesi di Riemann lrsquoultimo grande mistero della matematica
Rizzoli Milano 2004
Gary Stix I segreti meglio custoditi la crittografia quantistica egrave passata dalla teoria al laboratorio per
approdare finalmente alle applicazioni in ldquoLe Scienzerdquo n 438 febbraio 2005
11
( )( )x
xx
logcongπ
Questa congettura si rivelograve poi vera e oggi egrave nota come teorema dei numeri primi Una notevole
conseguenza del teorema dei numeri primi egrave che ldquola probabilitagrave che un numero intero di x cifre preso a
caso sia primo egrave circa 1log(10x)rdquo Infatti lrsquoespressione
( )( )x
xx
logcongπ
in altre parole significa che nellrsquointervallo tra 1 e x si incontra un primo circa ogni log(x) e cioegrave la
probabilitagrave che nellrsquointervallo dei numeri le x un numero preso a caso sia primo egrave 1log(x) Ad esempio
nellrsquointervallo dei numeri minori di 10 000 000 uno ogni log(10 000 000) egrave primo Essendo
log(10 000 000) = log(107) = 7log(10) asymp 1611hellip ciograve vuol dire che dei numeri minori di 10 000 000 circa 1
su 16 egrave primo e perciograve crsquoegrave circa una probabilitagrave su 16 che un numero di 7 cifre sia primo
Al momento attuale molti sono i problemi non ancora risolti Tra questi ricordiamo
1 la congettura dei primi gemelli esistono infiniti numeri primi p tali che p+2 egrave ancora
primo Ad esempio 3 e 3+2 5 e 5+2 17 e 17+2 29 e 29+2 ecc
2 la congettura di Goldbach ogni intero pari maggiore di 2 puograve essere scritto come somma di
due numeri primi Ad esempio 4 = 2+2 6 = 3+3 8 = 3+5 10 = 5+5 12 = 5+7 ecc
La difficoltagrave fondamentale di tali problemi risiede nel fatto che i numeri primi sono definiti
mediante proprietagrave moltiplicative mentre i problemi in questione coinvolgono proprietagrave additive
Di gran lunga il piugrave importante tra i problemi non risolti egrave quello che va sotto il nome di ipotesi di
Riemann anche percheacute fu proprio la novitagrave del metodo in essa contenuto a far compiere il passo decisivo
per la dimostrazione del teorema dei numeri primi compiuta indipendentemente lrsquouno dallrsquoaltro nel 1896
dai matematici Jacques Hadamard e Charles de la Valleacutee-Poussin
Ricordiamo che lrsquoipotesi di Riemann inserita allrsquoottavo posto nellrsquoelenco dei famosi ventitreacute
problemi irrisolti presentati da David Hilbert al Congresso internazionale dei matematici del 1900 e
lanciati come sfida alla comunitagrave dei matematici del ventesimo secolo egrave ancora rimasto tale cioegrave senza
dimostrazione
Egrave oggi considerato uno dei problemi piugrave difficili del nuovo millennio Nel 2000 il Clay Mathematics
Institute ha offerto un milione di dollari a chi riusciragrave a darne una dimostrazione
Grazie ai calcolatori attualmente egrave stato possibile verificare tali congetture in moltissimi casi Ad
esempio la congettura di Goldbach egrave stata verificata per tutti i pari fino a 100 milioni mentre lrsquoipotesi di
Riemann egrave stata verificata per un miliardo e mezzo di casi ma ciograve non egrave sufficiente per dimostrarne la
veritagrave Ed egrave proprio questo quello che distingue la matematica dalle altre scienze dove una qualsiasi
ipotesi sostenuta da verifiche sperimentali egrave ritenuta valida fincheacute non contraddetta da un caso contrario
mentre in matematica un solo caso contrario serve a dimostrare la falsitagrave dellrsquoipotesi la cui veritagrave per
contro deve essere dimostrata per tutti i casi possibili il che ovviamente puograve avvenire solo
indipendentemente dalle verifiche di casi particolari anche se molti
12
Ed egrave questa una delle peculiaritagrave piugrave belle della matematica Qualsiasi affermazione dimostrata egrave
eterna e immutabile si pensi allrsquoinfinitagrave dei numeri primi ciograve egrave vero per Euclide ma rimane vero ancora
oggi senza possibilitagrave di smentite
Come ebbe a dire il matematico Hermann Hakel ldquoNella maggior parte delle scienze una
generazione demolisce quello che laltra ha costruito e ciograve che uno ha fatto un altro lo disfa Solo nella
matematica ogni generazione aggiunge un nuovo piano alla vecchia strutturardquo
E che ciograve susciti lrsquoidea della bellezza egrave bene sintetizzato dalle parole di Bertrand Russell ldquoLa
matematica vista dalla giusta angolazione non possiede solo la veritagrave ma la suprema bellezza una
bellezza fredda e austera come quella della scultura una bellezza che non fa appello ai nostri sentimenti
piugrave grossolani che non ha gli ornamenti sgargianti della musica o della pittura una bellezza pura e
sublime capace della rigorosa perfezione che egrave propria solo della piugrave grande arterdquo
Anche se non egrave possibile presentare in termini semplici lrsquoipotesi di Riemann in quanto coinvolge
concetti di matematica superiore proviamo a delinearne le linee essenziali
Nel 1737 Eulero introdusse e studiograve una funzione detta funzione ζ (zeta) di Eulero cosigrave definita
sum+infin
=
gtisin++++==1
1 4
1
3
1
2
11
1)(
nxxxx
xRxperdefinitan
xζ
e sempre a Eulero egrave dovuta la seguente identitagrave
( )
1
111
11
17
7
15
5
13
3
12
2 prod
minus=sdot
minussdot
minussdot
minussdot
minussdot
minus=
px
x
x
x
x
x
x
x
x
x
x
x
p
pxζ
dove il prodotto egrave esteso a tutti i numeri primi
Ed egrave proprio questa identitagrave che egrave alla base della notevole importanza assunta dalla funzione ζ nella
teoria dei numeri e in particolare per quanto riguarda la distribuzione dei numeri primi nellrsquoinsieme dei
naturali Infatti a destra di essa appaiono esplicitamente i numeri primi mentre a sinistra compare la
funzione ζ definita indipendentemente da essi
Riemann nel 1859 propose di considerare la funzione ζ come funzione di variabile complessa
cioegrave definita per x numero complesso ed effettuograve il cosiddetto prolungamento analitico di ζ allrsquointero piano
complesso costruendo la nuova funzione ζ oggi nota come funzione zeta di Riemann Egli provograve che gli
zeri della funzione ζ (cioegrave i valori della variabile per cui la funzione restituisce il valore 0) sono x = ndash2
x = ndash4 x = ndash6hellip detti zeri banali di ζ e alcuni numeri complessi (non reali) x con parte reale compresa tra
0 e 1 estremi inclusi Lrsquoipotesi di Riemann afferma che tutti gli zeri non banali di ζ hanno la caratteristica
di avere la parte reale uguale a 21
Dalla validitagrave di questa ipotesi discende una serie enorme di proprietagrave sui numeri primi Ci sono
attualmente centinaia di ldquoquasi teoremirdquo che iniziano con ldquosupponiamo che lrsquoipotesi di Riemann sia
verahelliprdquo Se lrsquoipotesi venisse dimostrata tutti questi ldquoquasi teoremirdquo diventerebbero veri teoremi
13
I test di primalitagrave e la fattorizzazione
Abbiamo fin qui concentrato lrsquoattenzione sul comportamento dei numeri primi ma come egrave possibile
preso un intero a caso x provare se x egrave primo o composto
Il metodo piugrave ovvio consiste nel dividere il numero x per tutti gli interi che lo precedono Infatti se
una qualunque di tali divisioni dagrave resto zero il numero x egrave composto e divisore e quoziente sono suoi
fattori mentre se nessuna di tali divisioni per ciascuno degli interi minori x dagrave resto zero il numero x egrave
primo
In effetti la procedura delle divisioni puograve essere interrotta allrsquointero minore della in quanto se x egrave
composto esso saragrave il prodotto di almeno due fattori per esempio x= F1sdotF2 ed essendo x=x sdot x se
F1gt x F2 lt x Ad esempio 29= 2929 sdot e 529 cong quindi si puograve fermare la procedura quando il
divisore egrave 5 Infatti 292 dagrave resto 1 293 dagrave resto 2 294 dagrave resto 1 295 dagrave resto 4 Si puograve quindi
concludere che 29 egrave primo percheacute se avesse avuto un fattore maggiore di 5 ne avrebbe avuto sicuramente
uno minore di 5 il che non egrave
Ma anche limitando le divisioni alla radice quadrata lrsquoalgoritmo sarebbe comunque inapplicabile
percheacute per giungere a conclusione richiede un tempo che cresce esponenzialmente al crescere del numero
di cifre di n pertanto puograve risultare intollerabilmente lungo anche con gli strumenti di calcolo piugrave veloci
anni secoli piugrave della vita presunta dellrsquoUniverso Ad esempio egrave stato dimostrato che il numero 244 497ndash1
formato da 13 595 cifre egrave primo Se un calcolatore fosse in grado di controllare un milione di divisioni al
secondo e si fermasse alla radice quadrata del numero egrave stato calcolato che gli occorrerebbero 106684 anni
per espletare il suo compito Lrsquoinconveniente deriva dal fatto che il metodo delle divisioni non solo ci dice
se il numero egrave primo o composto ma risolve anche il problema della fattorizzazione di un numero in
quanto nel caso in cui il numero risulta composto ci fornisce i fattori della sua scomposizione
A tuttrsquooggi egrave facile trovare numeri primi grandi o testare la primalitagrave di un numero mentre egrave
difficile fattorizzare un intero che sia il prodotto di due numeri primi grandi Ovviamente i termini ldquofacilerdquo
ldquodifficilerdquo ldquogranderdquo sono relativi alla conoscenza e alla tecnologia disponibili Attualmente sono
considerati ldquograndirdquo numeri di alcune centinaia di cifre mentre ldquofacilerdquo rappresenta un tempo di secondi e
ldquodifficilerdquo di secoli
Lrsquoefficacia dei test di primalitagrave attualmente usati dipende dal fatto che egrave possibile stabilire se un
numero egrave primo senza essere costretti a trovarne i fattori qualora risultasse composto Alcuni metodi usati
sono di tipo probabilistico cioegrave stabiliscono che un intero egrave probabilmente primo con una probabilitagrave di
errore che si puograve rendere piccola quanto si vuole
Il piugrave semplice al tempo stesso velocissimo e potente si basa sul piccolo teorema di Fermat Il
teorema stabilisce che se p egrave un numero primo e a un intero minore di p allora apndasha egrave un multiplo di p cioegrave
egrave divisibile per p
Ad esempio
bull se p=7 e a=2 allora 27ndash2=128ndash2=126=7middot18 cioegrave multiplo di 7
bull se p=7 e a=3 allora 37ndash3=2187ndash3=2184=7middot312 cioegrave multiplo di 7
14
bull se p=7 e a=4 allora 47ndash4=16384ndash4 = 16380 = 7middot2340 cioegrave multiplo di 7
bull se p=5 e a=4 allora 45ndash4=1024ndash4=1020=5middot204 cioegrave multiplo di 5
bull se p=3 e a=4 allora 43ndash4=64ndash4=60=3middot20 cioegrave multiplo di 3
Lrsquoimportanza del teorema sta nel fatto che ci fornisce un metodo per stabilire se un numero egrave primo
o no infatti costruiamo un numero del tipo apndasha verifichiamo se egrave multiplo di p se non lo egrave siamo sicuri
che p non egrave primo Ad esempio vogliamo sapere se 15 egrave primo costruiamo
215ndash2=32768ndash2=32766
32766=15middot2184+6
cioegrave non egrave divisibile per 15 quindi sicuramente 15 egrave composto e infatti 15=3middot5
Ma cosa si puograve dire se invece apndasha egrave divisibile per p Sfortunatamente non possiamo essere sicuri
che p sia primo anche se egrave molto probabile che lo sia
Proviamo 217ndash2=131072ndash2=131070=17middot7710 e infatti 17 egrave primo Provando 2341ndash2 si trova che
esso egrave divisibile per 341 ma 341 non egrave primo essendo 341=11middot31 Sono detti pertanto pseudoprimi i
numeri composti che passano il test Non proviamo a calcolare 2341 percheacute sarebbe un numero
mostruosamente grande fuori dalla nostra portata ma vedremo tra poco come si puograve aggirare lrsquoostacolo
Riassumendo il piccolo teorema di Fermat afferma che egrave vero
1 se p egrave primo e a egrave un intero minore di p allora apndasha egrave divisibile per p
2 se apndasha non egrave divisibile per p allora p non egrave primo
ma se apndasha egrave divisibile per p allora p puograve essere primo ma anche composto ciograve percheacute la divisibilitagrave per p
egrave condizione necessaria ma non sufficiente percheacute p sia primo Concludendo possiamo dire che usando
questo teorema per verificare la primalitagrave di un numero se scopriamo che ap-a non egrave divisibile per p siamo
sicuri che p egrave composto ma se egrave divisibile per p allora p egrave probabilmente primo nel senso che puograve essere
un primo autentico o pseudoprimo
La cosa interessante egrave che la probabilitagrave che un numero composto sia uno pseudoprimo (cioegrave che
superi il test di primalitagrave ma non sia primo come per esempio 341) su una base casuale diminuisce
fortemente allrsquoaumentare del numero Un numero di 1000 cifre composto ha circa una possibilitagrave su 10123
di essere uno pseudoprimo su una base scelta a caso La tabella 3 riporta tali probabilitagrave in funzione del
numero di cifre
Cifre in x Limite superiore per P(x)
Cifre in x Limite superiore per P(x)
Cifre in x
Limite superiore per P(x)
60 00716 80 00000846 100 00000000277
120 528middot10ndash12 150 149middot10ndash17 200 385middot10ndash27
300 58middot10ndash29 400 57middot10ndash42 500 23middot10ndash55
700 18middot10ndash82 1000 12middot10ndash123 2000 86middot10ndash262
5000 76middot10ndash680 10000 16middot10ndash1331 100000 13middot10ndash10584
Tabella 3 Probabilitagrave che un numero composto sia pseudoprimo
Nel 2002 tre ricercatori indiani Manindra Agrawal Neeraj Kayal e Nitin Saxena hanno costruito un
algoritmo denominato AKS (dalle iniziali dei nomi) sempre basato sulla fondamentale proprietagrave enunciata dal
15
piccolo teorema di Fermat ma che risulta deterministico e che riduce in maniera drastica il tempo di calcolo
Lrsquoalgoritmo fornisce una svolta significativa in un settore lungamente atteso e di grande interesse pratico ma
per ora non sembra che possa avere immediata applicazione in quanto molto piugrave lento dei test probabilistici i
quali drsquoaltra parte sono quasi certi per i numeri primi di centinaia di cifre che servono attualmente in
crittografia
Storia della crittografia
La crittografia che letteralmente significa scrittura nascosta nasce dalla necessitagrave di segretezza di alcune
informazioni e pertanto con tale termine intendiamo lo studio dei metodi che consentono la trasmissione sicura
dellrsquoinformazione
Drsquoaltro canto lrsquoesistenza di informazioni segrete genera il desiderio di svelarle e da tale desiderio nasce
la crittoanalisi con cui intendiamo lo studio di metodi che consentono la decifrazione dei messaggi crittografati
La storia della crittografia drsquoaltra parte altro non egrave che la secolare battaglia tra crittografi e crittoanalisti
Infatti ogni sistema crittografico rimane valido fincheacute un crittoanalista non individua un suo punto debole sulla
base del quale riesce a elaborare il sistema di decifrazione
Crittografi e crittoanalisti insieme hanno dato un grande contributo al progresso scientifico e tecnologico
Infatti tutti i metodi della crittografia e della crittoanalisi fanno ricorso a metodi e strumenti di una vasta varietagrave
di scienze come la matematica la linguistica la teoria dellrsquoinformazione la fisica quantistica le quali a loro
volta sono da essi arricchite e stimolate
Lrsquoidea su cui si basa un metodo crittografico consiste nel concordare tra mittente e destinatario che
vogliono scambiarsi un messaggio senza che venga intercettato da terzi una procedura per alterare il testo in
chiaro del messaggio Il destinatario puograve ricavare il testo originale applicando al testo cifrato la procedura
inversa Chi intercetta il messaggio non conoscendo la procedura non puograve ricostruire il messaggio La sicurezza
del metodo sta nella difficoltagrave da parte del crittoanalista di poter ricostruire la procedura dallrsquoanalisi del
messaggio cifrato
Prima dellrsquoera informatica i metodi crittografici erano essenzialmente due per trasposizione o per
sostituzione
Nella trasposizione le lettere sono mutate di posto generando di fatto un anagramma Ma la
trasposizione non puograve essere casuale Infatti nel caso di messaggi brevi non sarebbe sicura in quanto i pochi
caratteri alfabetici che costituiscono il messaggio possono essere combinati in pochi modi diversi per cui
diventa facile ricostruire il messaggio per tentativi Ad esempio la parola ldquomiordquo consta di 3 caratteri alfabetici
esistono al massimo sei sequenze diverse mio moi imo iom omi oim analizzandole tutte e sei egrave facile
ricostruire la sequenza ldquomiordquo Ma al crescere della lunghezza del messaggio cresce mostruosamente anche il
numero delle sequenze infatti un anagramma di una parola di n lettere altro non egrave che una permutazione di n
elementi e si dimostra che il numero totale delle permutazioni di n elementi egrave dato da n (si legga n fattoriale)
uguale al seguente prodotto n(nndash1)(nndash2)(nndash3)hellip(nndash (nndash1)) Pertanto se il messaggio egrave costituito ad esempio da
20 lettere i possibili anagrammi sono 20=20middot19middot18middot17middot16middot15middot14middot13middot12middot11middot10middot9middot8middot7middot6middot5middot4middot3middot2middot1 cioegrave piugrave di 1000
miliardi e anche se si potesse controllare un anagramma al secondo ci vorrebbero piugrave di trentuno secoli per
analizzarli tutti In questo caso la comunicazione risulterebbe sicura essendo impossibile analizzare tutte le
16
possibili sequenze e ricostruire il messaggio ma di fatto egrave inutilizzabile anche dal destinatario percheacute di fronte
allo stesso problema
Per rendere efficace tale metodo egrave necessario che mittente e destinatario si accordino su un criterio di
trasposizione fissato in anticipo e piugrave egrave complicato tale criterio e piugrave egrave sicuro il metodo
Esiste il metodo della trasposizione cosiddetta a inferriata Esso consiste nella trascrizione di un testo
lungo due linee orizzontali una superiore e una inferiore passando da una allrsquoaltra a ogni successivo carattere
alfabetico Finita la trascrizione la seconda fila di caratteri saragrave accodata alla prima per dare origine al testo
cifrato Ad esempio
testo del messaggio incontriamoci stasera alle sette
testo del messaggio cifrato icnraoitsralstenotimccsaealeet
Il destinatario ricostruisce il testo originale applicando la trasposizione inversa
Esistono molti altri tipi di trasposizione per esempio si puograve variare il numero delle file su cui trascrivere
il messaggio oppure si puograve passare da una fila allrsquoaltra ogni due caratteri anzicheacute dopo ogni singolo carattere e
cosigrave via Da osservare che ogni carattere alfabetico mantiene la propria identitagrave ma cambia la posizione
Nella sostituzione ogni carattere alfabetico del messaggio originale viene sostituito con un altro carattere
alfabetico secondo un criterio stabilito In questo caso ogni carattere alfabetico mantiene la posizione ma
cambia la propria identitagrave
Sostanzialmente esso necessita di determinare come primo passo un alfabeto cifrante che egrave ottenuto
rimescolando secondo un criterio lrsquoalfabeto ordinario In questo modo a ogni carattere dellrsquoalfabeto ordinario
corrisponde un carattere dellrsquoalfabeto cifrante Per cifrare il messaggio si sostituisce ogni carattere del messaggio
con il corrispondente carattere dellrsquoalfabeto cifrante Per decifrare il messaggio si applica la procedura inversa
Il primo esempio documentato di cifratura per sostituzione si trova nel De bello gallico di Giulio Cesare
detto anche cifrario di Cesare Qui lrsquoalfabeto cifrante era ottenuto da quello ordinario spostando a destra di tre
posti ogni carattere alfabetico ad esempio per cifrare il messaggio si sostituisce ogni lettera con la
corrispondente dellrsquoalfabeto cifrante (figura 2)
17
Figura 2 Cifrario di Giulio Cesare
Per decifrare si sostituisce ogni lettera del messaggio cifrato utilizzando la corrispondenza inversa
Come si puograve facilmente osservare in questo metodo lrsquoalfabeto cifrante altro non egrave che una
riorganizzazione dellrsquoalfabeto ordinario che si puograve ottenere con un qualsiasi spostamento tra 1 e il numero delle
lettere dellrsquoalfabeto ordinario Per esempio nel caso dellrsquoalfabeto italiano che consta di 21 lettere si possono
effettuare 20 diversi spostamenti e ottenere quindi 20 diversi alfabeti cifranti Essendo lrsquoalfabeto cifrante una
riorganizzazione dellrsquoalfabeto ordinario non egrave detto che questa debba essere ottenuta utilizzando il criterio
dello spostamento ma puograve coincidere con un qualsiasi anagramma dellrsquoalfabeto ordinario Si vede quindi
facilmente come aumentano gli alfabeti cifranti nel nostro caso il loro numero per quanto detto
precedentemente uguaglia il numero delle permutazioni di 21 elementi e cioegrave 21 e cioegrave oltre 50 miliardi di
miliardi
A partire da questo esempio cerchiamo di chiarire in termini generali il significato di metodo
crittografico intendendo con esso un algoritmo che mediante una chiave trasforma un messaggio in chiaro in
un messaggio cifrato o crittogramma
Ad esempio nel metodo descritto sopra lrsquoalgoritmo equivale alla procedura con cui ogni lettera
dellrsquoalfabeto in chiaro egrave sostituita dalla corrispondente lettera dellrsquoalfabeto cifrante la chiave equivale al
particolare alfabeto cifrante scelto per la cifratura o decifrazione di un particolare crittogramma
Inoltre crsquoegrave da sottolineare lrsquoimportanza concettuale della distinzione tra algoritmo e chiave Infatti la sola
conoscenza dellrsquoalgoritmo senza la chiave non permette di decifrare il crittogramma Ed egrave questo uno dei
principi fondamentali della crittografia formulato in modo definitivo nel 1883 dallrsquoolandese Auguste
Kerckhoffs von Nieuwenhof noto anche come legge di Kerckhoffs ldquola sicurezza di un crittosistema non deve
dipendere dal tener celato il crittoalgoritmo La sicurezza dipenderagrave solo dal tener celata la chiaverdquo
Le caratteristiche di un efficace sistema crittografico possono essere riassunte nelle seguenti
1 segretezza della chiave
2 semplicitagrave della chiave (per evitare possibili malintesi o errori al momento dello scambio tra
mittente e destinatario)
3 alto numero di potenziali chiavi tra cui scegliere
18
Come si puograve notare la 2) e la 3) sono collegate tra loro infatti nel sistema descritto sopra si potrebbe
scegliere una chiave piugrave semplice sacrificando il numero di chiavi potenziali
Infatti invece di generare lrsquoalfabeto cifrante da una riorganizzazione casuale dellrsquoalfabeto ordinario lo si
puograve fare a partire da una parola chiave come nel seguente esempio Supponiamo di accordarci sulla parola
chiave lsquolaurarsquo si eliminano eventuali spazi e lettere ripetute quindi la parola chiave diventa lsquolaurrsquo a questo
punto la sequenza l a u r saragrave lrsquoinizio dellrsquoalfabeto cifrante cui seguiranno tutte le altre lettere mancanti in
ordine alfabetico partendo dallrsquoultima lettera della chiave per cui lrsquoalfabeto cifrante che si ottiene saragrave l a u r s t
v z b c d e f g h i m n o p q
I crittosistemi basati sulla sostituzione hanno dominato la scena per tutto il primo millennio della nostra era
fincheacute i crittoanalisti non trovarono il suo punto debole ed elaborarono un metodo per decifrarne i crittogrammi prodotti
La violazione di tali sistemi si basa su unrsquoidea dovuta per prima a crittoanalisti arabi nella quale si
combinano conoscenze di linguistica statistica e matematica nota con il nome di analisi delle frequenze
Essa egrave descritta dallo studioso del IX secolo Abu Yusuf ibn Ishaq al-Kind sopran-nominato il filosofo
degli arabi in una sua monografia dal titolo Sulla decifrazione dei messaggi crittati ritrovata nellrsquoarchivio
ottomano Sulaimaniyyah di Istanbul solo nel 1987 Nel testo si legge
Un modo di svelare un messaggio crittato se conosciamo la lingua dellrsquooriginale consiste nel trovare
un diverso testo chiaro nella stessa lingua abbastanza lungo da poter calcolare la frequenza di ciascuna
lettera
Chiamiamo ldquoprimardquo quella che compare piugrave spesso ldquosecondardquo quella che la segue per frequenza
ldquoterzardquo la successiva e cosigrave via fino a esaurire tutte le lettere del campione di testo chiaro
Esaminiamo poi il testo in cifra che vogliamo interpretare ordinando (in base alla frequenza) anche i
suoi simboli Troviamo il simbolo piugrave comune e rimpiazziamolo con la ldquoprimardquo lettera dellrsquoesempio
chiaro il simbolo che lo segue per frequenza sia rimpiazzato dalla ldquosecondardquo lettera il successivo simbolo
piugrave comune sia rimpiazzato dalla ldquoterzardquo e cosigrave via fino ad aver preso in considerazione tutti i simboli del
crittogramma che intendevamo svelare
Tabella 4 Frequenze delle diverse lettere in italiano
Per superare lrsquoanalisi delle frequenze furono ideati diversi nuovi metodi crittografici tra cui ricordiamo
1 il metodo di sostituzione omofonica
2 il metodo di sostituzione polialfabetica
19
Il metodo di sostituzione omofonica consiste nel sostituire ogni lettera con un numero di simboli per
esempio numeri proporzionale alla sua frequenza Cosigrave ad esempio la lettera a avendo una frequenza di 11 74
viene sostituita da 11 simboli la lettera b con un solo simbolo la lettera c con 4 simboli ecc secondo la tabella 5
Il metodo di sostituzione polialfabetica consiste nellrsquouso di piugrave alfabeti cifranti su unrsquoidea di Leon
Battista Alberti che propose di utilizzarne due Lrsquoalgoritmo consiste nel sostituire la prima lettera del messaggio
in chiaro con la corrispondente del I alfabeto cifrante la seconda lettera con la corrispondente del II alfabeto
cifrante la terza con la corrispondente del I e cosigrave via passando alternativamente dal I alfabeto al secondo Come
nellrsquoesempio della figura 3
Tabella 5 Corrispondenza lettere e simboli nella sostituzione omofonica
Figura 3 Il metodo di sostituzione polialfabetica
Su tale idea si basa il metodo di Blaise de Vigenegravere diplomatico francese nato nel 1523 il quale utilizza
tanti alfabeti cifranti quante sono le lettere dellrsquoalfabeto in chiaro ad esempio nellrsquoalfabeto italiano che consta
di 21 lettere utilizza 21 alfabeti cifranti
Il primo passo consiste nel costruire la tavola di Vigenegravere in cui nella prima riga egrave riportato lrsquoalfabeto in
chiaro e in ognuna delle 21 righe successive egrave riportato un alfabeto cifrante spostato di una lettera rispetto a
quello della riga precedente cosigrave nella riga 1 egrave riportato lrsquoalfabeto spostato di una lettera nella riga 2 quello
spostato di due lettere nella riga 3 quello spostato di tre fino alla riga 20 in cui egrave riportato quello spostato di 20
lettere (figura 4)
20
Figura 4 La tavola di Vigenegravere
Il secondo passo consiste nello scegliere una parola chiave per esempio lsquoverorsquo Pertanto il messaggio in
chiaro ldquonon andarerdquo verrebbe cifrato come nella figura 5
La differenza sostanziale tra la cifratura omofonica e quella polialfabetica egrave che in quella omofonica a
ogni lettera corrispondono piugrave simboli ma ogni simbolo egrave il corrispondente di una sola lettera cioegrave egrave una
corrispondenza 1rarr m che invertita diventa mrarr 1 in quella polialfabetica a ogni lettera corrispondono piugrave
simboli e anche ogni simbolo egrave il corrispondente di piugrave lettere cioegrave mrarr m che rimane tale anche invertendola
Il vantaggio della cifratura polialfabetica egrave pertanto la sua resistenza allrsquoanalisi delle frequenze Oltre ad
ammettere un enorme numero di chiavi infatti si puograve scegliere qualunque parola del dizionario qualunque
combinazione di parole si puograve perfino ricorrere a neologismi rendendo impossibile il controllo di tutte le chiavi
possibili Ed ecco percheacute egrave ritenuta piugrave affidabile e non ha mai smesso di essere usata
Figura 5 Cifratura polialfabetica del messaggio ldquonon andarerdquo
21
Oggi sono noti tutti i punti deboli del sistema di Vigenegravere ed esistono vari procedimenti per decifrare i
crittogrammi generati da tale sistema che sfruttano ad esempio la modularitagrave nel ripetere la chiave o
osservazioni sulle ripetizioni del testo cifrato Ci sono testimonianze storiche che uno di tali procedimenti sia
stato ideato da Sir Charles Babbage famoso per aver progettato e mai realizzato la macchina alle differenze
progenitrice degli odierni calcolatori La prima descrizione resa pubblica del metodo perograve egrave del 1863 portata a
compimento dallrsquoufficiale prussiano F W Kasiski
Unrsquoosservazione decisiva fu che le insidie del metodo di Babbage potevano essere evitate utilizzando
nella cifratura di Vigenegravere una chiave molto lunga e fatta da lettere che si succedono in modo casuale se un
messaggio cifrato non presenta delle ripetizioni se non egrave possibile tentare di indovinare la chiave cadono tutti
gli appigli necessari per effettuare con successo la crittoanalisi
Tale osservazione fu ulteriormente sviluppata da G S Vernam che nel 1926 introdusse lrsquoidea di usare
una chiave casuale lunga quanto il messaggio stesso
Oggi sappiamo grazie agli studi di Claude Shannon del 1949 che tale metodo puograve definirsi
ldquoteoricamente sicurordquo
In pratica perograve ciograve comporta la difficoltagrave di costruire lunghe stringhe di lettere assolutamente casuali e di
scambiarsi segretamente e continuamente queste chiavi In sostanza risulta impraticabile per ogni messaggio
scambiato in modo sicuro egrave necessario prima trasmettere in modo sicuro il messaggio contenente la chiave
I metodi usati per buona parte del Novecento sono delle rielaborazioni sempre piugrave complesse delle idee
descritte finora ottenute anche con la costruzione di dispositivi per la meccanizzazione delle procedure di
cifratura e decifratura Un esempio tra i piugrave conosciuti egrave la macchina Enigma usata dai tedeschi durante la
Seconda guerra mondiale inventata dallrsquoingegnere Arthur Scherbius Enigma consisteva di diversi ingegnosi
elementi combinati in un potente e sofisticato dispositivo per la produzione di scritture segrete In particolare ma
macchina aveva tre componenti collegati da fili elettrici una tastiera per immettere le lettere del testo chiaro
unrsquounitagrave scambiatrice che cifra la lettera trasformandola nel corrispondente elemento del crittogramma e un
visore con varie lampadine che accendendosi indicano la lettera da inserire nel crittogramma
Lo sforzo per violare questa cifratura richiese anni di lavoro e fu portato a compimento dalla Scuola
Inglese Governativa di Codici e Cifre di Bletchley Park di cui faceva parte Alan M Turing noto oggi ai piugrave per
i suoi studi sullrsquointelligenza meccanica
La crittografia nellrsquoera dellrsquoinformatica
Nel 1945 fu realizzato ENIAC (Electronic Numerical Integrator And Calculator) unrsquoapparecchiatura
contenente 18 000 valvole elettroniche capace di effettuare 5000 calcoli al secondo considerato il capostipite
dei moderni calcolatori
Dopo il 1945 fu lrsquoinformatica a fare da protagonista nella battaglia tra crittografi e crittoanalisti operando
una decisiva svolta nelle metodologie di entrambi Infatti i metodi precedenti lrsquoera dellrsquoinformatica basavano la
propria sicurezza sullrsquoenorme numero di chiavi disponibili e sulla loro lunghezza ma che viene messa in crisi
dalla crescente potenza di calcolo dei computer Un computer molto potente infatti potrebbe individuare quella
giusta in pochi minuti anche nel caso di un milione di chiavi da esaminare
Tutti i metodi crittografici esaminati finora necessitano di
22
1 un algoritmo generale di cifratura G
2 di una chiave K che deve rimanere segreta
3 di un algoritmo di decifrazione H=Gndash1 (inverso di G)
e agiscono secondo il seguente schema
il messaggio in chiaro M tramite lrsquoalgoritmo G e la chiave K viene cifrato in MC questrsquoultimo tramite
lrsquoalgoritmo H e la stessa chiave K viene decifrato in M (figura 6)
Figura 6 Schema di metodi crittografici
La sicurezza di tali sistemi risiede interamente nella segretezza delle chiavi Ne segue che per distribuire
agli utenti le chiavi egrave necessario ricorrere a canali sicuri
Gli svantaggi che ne derivano sono essenzialmente
1 difficoltagrave nella distribuzione delle chiavi agli utenti
2 mancata autenticazione dei messaggi mittente e destinatario condividono la stessa chiave
pertanto non crsquoegrave modo di impedire che il destinatario si invii messaggi che poi sembrino
provenienti dal mittente Si pensi quali problemi possono provocare simili falsificazioni nella
posta elettronica o nei sistemi bancari elettronici
La svolta avvenne nel 1976 a opera di Diffie e Hellmann che proposero un metodo detto a chiave
pubblica il quale non necessita di uno scambio preventivo delle chiavi segrete Lrsquodea egrave chiarita dal seguente
esempio noto come esempio del doppio lucchetto
Supponiamo di avere due utenti Mitt e Dest e Mitt voglia spedire un messaggio segreto a Dest
1 Mitt mette il messaggio in una scatola che chiude con il proprio lucchetto LMitt (di cui solo lui ha
la chiave) e spedisce la scatola a Dest
2 Dest ricevuta la scatola aggiunge un proprio lucchetto LDest (di cui solo lui ha la chiave) e
rispedisce la scatola a Mitt
3 Mitt ricevuta la scatola con il doppio lucchetto toglie il lucchetto LMitt e rispedisce la scatola a
Dest
4 Dest ricevuta la scatola puograve togliere il lucchetto LDest e leggere il messaggio di Mitt
Il problema della distribuzione delle chiavi sembra risolto percheacute lo schema a doppia chiave non richiede
la condivisione delle stesse Tuttavia la realizzazione pratica di un tale sistema si scontra con un altro problema
quello riguardante lrsquoordine in cui cifrature e decifrature sono eseguite In altre parole in un sistema crittografico
egrave essenziale lrsquoordine con cui avvengono le rispettive cifrature e decifrature in quanto la cifratura eseguita per
23
ultimo andrebbe decifrata per prima (egrave un porsquo come quando la mattina infiliamo prima le calze e poi le scarpe
ma alla sera togliamo prima le scarpe e poi le calze)
Lrsquoesempio del doppio lucchetto in cui ciograve non avviene sembra tuttavia funzionare come idea percheacute ai
fini dellrsquoapertura della scatola non ha importanza lrsquoordine di rimozione dei lucchetti
Anche se il trucco dei due lucchetti non sembra immediatamente applicabile tuttavia fu il giusto punto di
partenza per la realizzazione di un sistema crittografico che aggira lrsquoostacolo della distribuzione delle chiavi
Infatti lrsquoidea egrave che mittente e destinatario generano ciascuno due chiavi distinte una chiave di cifratura E
(da utilizzare nellrsquoalgoritmo di cifratura) e una chiave di decifrazione D (da utilizzare nellrsquoalgoritmo di
decifrazione) Le chiavi sono correlate nel senso che servono per effettuare operazioni inverse (figura 7)
Figura 7 Le chiavi correlate per effettuare operazioni invese
Il trucco consiste nellrsquoimpossibilitagrave di poter derivare la chiave D dalla chiave E mediante algoritmi di
calcolo (figura 8)
Ogni utente puograve rendere pubblica la propria chiave di cifratura E indicandola magari sullrsquoelenco
telefonico senza compromettere la propria chiave di decifrazione che rimane segreta di pubblico dominio sono
anche gli algoritmi di cifratura G e decifrazione H
Figura 8 Inapplicabilitagrave del metodo del doppio lucchetto
Pertanto lrsquoesempio del doppio lucchetto viene cosigrave interpretato
1 il destinatario pubblica la chiave di cifratura E e mantiene segreta la chiave di decifrazione D
2 il mittente applica GE al messaggio M trasformandolo nel messaggio cifrato MC cioegrave
GE(M)=MC che spedisce al destinatario
3 il destinatario applica HD al messaggio cifrato MC riottenendo M cioegrave HD(MC)=M
24
La sicurezza di un tale sistema si fonda sulla difficoltagrave di poter
1 ritrovare il testo cifrato provando ad applicare lrsquoalgoritmo GE che egrave pubblico ad ogni possibile
testo in chiaro il cui numero pur essendo enorme egrave comunque finito
2 ricavare lrsquoalgoritmo HD da GE
in quanto entrambe le tecniche sono computazionalmente inattuabili nel senso che richiedono un tempo
di calcolo di lunghezza al di fuori di ogni possibile considerazione anche per i piugrave potenti calcolatori
Per descrivere tali algoritmi sono necessari alcuni concetti matematici che andiamo a illustrare
Figura 9 Schema di cifrario a chiave pubblica
Lrsquoaritmetica modulare
Lrsquoaritmetica modulare la cui introduzione egrave dovuta a Gauss costituisce un sistema di calcolo con
importanti applicazioni nei test di primalitagrave e nei metodi che stanno alla base della sicurezza delle comunicazioni
elettroniche Con essa infatti si hanno i seguenti vantaggi 1) si riduce lo spazio dei numeri su cui gli algoritmi
sono chiamati ad operare e quindi si aumenta la velocitagrave di calcolo 2) si riesce a rendere difficili alcuni problemi
computazionali che sono semplici (o addirittura banali) nellrsquoalgebra ordinaria al fine di aumentare la sicurezza
nelle comunicazioni Lrsquoidea egrave semplice ma potente Forse non lo sappiamo ma usiamo spesso laritmetica
modulare Potremmo chiamarla aritmetica dellorologio
Infatti pensiamo ad un normale orologio con 24 ore Se sono le 15 ed un amico ci comunica che saragrave a
casa nostra tra 5 ore sappiamo che egli verragrave alle 20 infatti 15+5=20 Ma se sono le 23 e dobbiamo partire fra 7
ore certamente non diciamo che la partenza saragrave alle 30 anche se 23+7=30 Sappiamo che dovremo partire alle
6 Allo stesso modo se sono le 20 che ora saragrave tra 14 ore Non diremo 34 anche se 20+14=34 ma diremo che
sono le 10 Come si spiega tutto ciograve
Immaginiamo di segnare sul quadrante dellrsquoorologio 24 ore Se la lancetta segna le 23 aggiungere 7 ore
significa spostarsi di 7 posti fino ad arrivare alle 6 Si giunge allo stesso risultato calcolando 23+7=30 ed
osservando che 30=1sdot24+6 o che egrave lo stesso 3024 =1 con resto 6 che significa che 30 lo si ottiene facendo fare
alla lancetta un giro completo piugrave 6
25
Se la lancetta segna le 20 e aggiungiamo 14 ore lrsquoorologio segneragrave le 10 percheacute 20+14=34 ma 3424= 1
con resto 10 per cui 34 lo si ottiene percorrendo un giro completo piugrave 10
Proviamo con il normale orologio a 12 ore I numeri che vediamo sul quadrante sono 0 1 2 3 4 5 6 7
8 9 10 11 Il numero 12 non compare percheacute a partire da 0 trascorse 12 ore torniamo di nuovo a 0 Questa
volta per fare un giro completo occorrono 12 ore Pertanto se sono le 7 che ore saranno tra 24 ore Saranno
ancora le 7 percheacute 7+24=31 ma 3112 = 2 con resto 7 cioegrave si compiono 2 giri completi piugrave 7 se sono le 8 tra 6
ore saranno le 2 percheacute 8+6=14 ma 1412=1 con resto 2 Dagli esempi dovrebbe risultare chiaro allora che ciograve
che contano non sono i risultati delle somme ma i loro resti nelle divisioni per il numero delle ore segnate sul
quadrante dellrsquoorologio
La stessa cosa succede con i giorni della settimana se pensiamo a un orologio con 7 ore sul quadrante
Facciamo corrispondere ai giorni della settimana i numeri da 0 a 6 (figura 10)
domenica Lunedigrave Martedigrave Mercoledigrave Giovedigrave Venerdigrave Sabato darr darr darr darr darr darr darr 0 1 2 3 4 5 6
Figura 10 Corrispondenza dei giorni della settimana con i numeri da 0 a 6
Se per esempio oggi egrave venerdigrave che giorno saragrave tra 12 giorni
Dovremo calcolare 5+12=17 ma i giorni si ripetono ogni 7 pertanto osservando che 177 =2 con resto 3
possiamo concludere che a partire da 5 e aggiungendo 12 si compiono 2 giri completi piugrave 3 ed essendo 3 il
numero corrispondente a mercoledigrave concludiamo che saragrave mercoledigrave Facciamo un altro esempio se oggi egrave
lunedigrave (1) che giorno saragrave tra 20 giorni Calcoliamo 1+20=21 217= 3 con resto 0 quindi saragrave domenica
Il numero n delle ore sullrsquoorologio costituisce quello che si chiama il modulo e individua lrsquoaritmetica di
modulo n in cui lrsquoinsieme dei numeri con i quali si opera indicato con Zn egrave lrsquoinsieme dei possibili resti della
divisione per n e cioegrave Zn=0 1 2 3 hellip nndash1e le operazioni si eseguono con le regole illustrate negli esempi
precedenti
Lrsquoesempio dellrsquoorologio a 24 ore costituisce la cosiddetta aritmetica finita di modulo 24 in essa Z24=0
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 essendo questi ultimi i possibili resti
della divisione per 24 Lrsquoorologio a 12 ore costituisce lrsquoaritmetica finita di modulo 12 in essa Z12=0 1 2 3 4
5 6 7 8 9 10 11 essendo questi ultimi i possibili resti della divisione per 12 Lrsquoesempio dei giorni della
settimana egrave lrsquoaritmetica finita di modulo 7 in cui Z7=0 1 2 3 4 5 6 essendo questi ultimi i possibili resti
della divisione per 7 Riassumiamo costruendo unrsquoaritmetica finita di modulo 4 I possibili resti della divisione
per 4 sono 0 1 2 3 quindi Z4=0123 Lrsquoaddizione e la moltiplicazione in Z4 si esegue come negli esempi
della tabella 6
26
operazioni indicate
Risultato nellrsquoaritmetica ordinaria
Risultato nellrsquoaritmetica modulo 4
2+2 4 0 percheacute 44=1 con resto 0
3+2 5 1 percheacute 54=1 con resto 1
2+1 3 3 percheacute 34=0 con resto 3
3sdot3 9 1 percheacute 94=2 con resto 1
3sdot2 6 2 percheacute 64=1 con resto 2
2sdot2 4 0 percheacute 44=1 con resto 0
Tabella 6 Addizione e moltiplicazione nellrsquoaritmetica finita di modulo 4
Si possono costruire le tavole dellrsquoaddizione e della moltiplicazione dellrsquoaritmetica modulo 4 che costituiscono
le tabelline di questa aritmetica sulla base delle quali si esegue qualsiasi addizione e moltiplicazione modulo 4
Nella tabella 7 sono spiegate le tabelline dellrsquoaritmetica in modulo 4
Tabella 7 Tavole dellrsquoaddizione e della moltiplicazione dellrsquoaritmetica modulo 4
Infine per indicare che due numeri a e b divisi per n danno lo stesso resto si usano le seguenti notazioni
tutte equivalenti tra loro
a=b mod n andashb=0 mod 4 a equiv b (mod n) che si legge a egrave congruo b modulo 4
Esempio
26=12 mod 7 egrave la stessa cosa di
26ndash12=0 mod 7 che egrave la stessa cosa di
26 equiv 12 (mod 7) e tutte e tre stanno a indicare che 26 e 12 divisi per 7 danno lo stesso resto che egrave 5 e
pertanto sono tutti equivalenti a 5
Facciamo vedere come sfruttare lrsquoaritmetica modulare per calcolare potenze come 2341 (figura 11) Il
metodo si basa sulla proprietagrave che il resto del quadrato di un numero a per un dato modulo n egrave uguale al
quadrato del resto dello stesso numero a per lo stesso modulo n cioegrave a2 mod n =(a mod n)2
+ 0 1 2 3
0 0 1 2 3
1 1 2 3 0
2 2 3 0 1
3 3 0 1 2
x 0 1 2 3
0 0 0 0 0
1 0 1 2 3
2 0 2 0 2
3 0 3 2 1
27
Figura 11 Il metodo per calcolare 2341
La funzione di Eulero
Per ogni intero ngt1 si definisce la funzione di Eulero = numero di interi minori di n e primi con esso Ad
esempio
bull ( ) 45 =φ percheacute gli interi minori di 5 sono 1 2 3 4 ed essi sono tutti primi con n
bull ( ) 26 =φ percheacute gli interi minori di 6 sono 1 2 3 4 5 e fra essi solo 1 e 5 sono primi con 6
bull ( ) 67 =φ percheacute gli interi minori di 7 sono 1 2 3 4 5 6 ed essi sono tutti primi con 7
bull ( ) 412 =φ percheacute gli interi minori di 12 sono 1 2 3 4 5 6 7 8 9 10 11 e fra essi solo 1 5 7
11 sono primi con 12
Se si conosce la scomposizione in fattori del numero n il seguente teorema ci fornisce un metodo per
calcolare Infatti esso afferma che per ogni ngt1 non primo ( )
minussdotsdot
minussdot
minussdotnppp
n=nφ 11
11
11
21
dove
p1 p2 hellip pn sono i fattori primi di n presi senza molteplicitagrave
22 mod 341=4
24=(22)2=(22 mod 341)2=42=16mod341=16
28=(24)2=(16)2=256mod341=256
216= (28)2=(256)2=65536mod341=64
232=(216)2=(64)2=4096mod341=4
264=(232)2=42=16mod341=16
2128=(264)2=(16)2=256mod341=256
2256=(2128)2=(256)2=65536mod341=64
2341=2(256+64+16+4+1) 2256 264 216 24 21 x x x x
64 1
1024 mod 341
= 1 x 64
64 x 16
1024 mod 341
1 x 2 =
=
x
28
Ad esempio
essendo 12 = 3sdot2sdot2 ( ) 42
1
3
212
2
11
3
111212 ===φ sdotsdot
minussdot
minussdot
essendo 6=2sdot3 ( ) 22
1
3
26
2
11
3
1166 ===φ sdotsdot
minussdot
minussdot
se n=psdotq ( ) ( ) ( )11111
11
1 minussdotminusminussdotminussdot
minussdot
minussdot qp=q
q
p
pn=
qpn=nφ
Ovviamente se n egrave un numero primo = nndash1
Vale inoltre il seguente teorema di Eulero per ngt1 e per ogni altn e primo con n si ha
Ad esempio per n=6 ( ) 26 =φ infatti i primi con 6 sono 1 e 5 per il teorema di Eulero si ha
2mod1255
2mod1112
2
equiv=
equiv=
per n=5 ( ) 45 =φ e i primi con 5 sono 1 2 3 4 e per il teorema di Eulero si ha
5mod12564
5mod1813
5mod1162
5mod111
4
4
4
4
equiv=
equiv=
equiv=
equiv=
Si puograve notare come nel caso in cui n egrave un numero primo si ritrova il piccolo teorema di Fermat
Infatti per n primo ( )nφ = nndash1 e per il teorema di Eulero per ogni altn e primo con n Ricordiamo infatti
che il piccolo teorema di Fermat afferma che se n egrave un numero primo e a un intero minore di n allora egrave
divisibile per n che con il linguaggio dellrsquoaritmetica modulare diventa che puograve essere riscritto e se a egrave primo
con n allora egrave che egrave equivalente a
Infine si prova che per ogni altn e primo con esso esiste lrsquoinverso di a e esso egrave dato da ( ) 1minusnaφ Infatti
( ) ( ) na=aa nφnφ1mod1 equivsdot minus per il teorema di Eulero Si ricorda che lrsquoinverso di un numero a egrave quel numero che
moltiplicato per a dagrave 1 indicato convenzionalmente con andash1
Ad esempio per n=5 i primi con 5 sono 1 2 3 4 e per ognuno di questi esiste lrsquoinverso infatti
bull lrsquoinverso di 1 egrave ( ) 1mod51111 31415 equivminusminus ===φ
e infatti
bull lrsquoinverso di 2 egrave ( ) 3mod58222 31415 equivminusminus ===φ
e infatti
bull lrsquoinverso di 3 egrave ( ) 2mod527333 31415 equivminusminus ===φ
e infatti
bull lrsquoinverso di 4 egrave ( ) 4mod564444 31415 equivminusminus ===φ
Le funzioni unidirezionali
Chiamiamo funzione da un insieme A a un insieme B qualunque procedura che associa a ogni elemento
di un insieme A (detto dominio) uno e un solo elemento di un insieme B (detto condominio) In simboli f
A rarr B Se poi indichiamo con x il generico elemento dellrsquoinsieme A e con y il generico elemento dellrsquoinsieme B
la f indica la procedura che ad ogni xisinA associa un yisinB e cioegrave y=f(x) ad esempio ldquofare il doppio dihelliprdquo
29
prendendo come dominio e codominio lrsquoinsieme dei numeri interi egrave in questo senso una funzione percheacute dato
ad esempio il numero 3 lo trasforma nel numero 6 come 5 lo trasforma in 10 e cosigrave via
Molte funzioni matematiche sono cosiddette bidirezionali nel senso che egrave facile dato un determinato x
generare il corrispondente y ma egrave altrettanto facile invertire la funzione cioegrave ritrovare lrsquoelemento x originario a
partire dal suo corrispondente
Facciamo qualche esempio
bull funzione xrarr fare il doppiorarr 2sdotx= y 3rarr fare il doppiorarr 2sdot3 = 6
funzione inversa y=2sdotx rarr fare la metagraverarr x 6=2sdot3 rarr fare la metagraverarr 3
bull funzione xrarr fare il quadruplorarr 4sdotxrarr aggiungere 1rarr sdoty=4sdotx +1
5rarr fare il quadruplorarr 4sdot5rarr aggiungere 1rarr 4sdot5 +1=21
funzione inversa y=4sdotx +1rarr sottrarre 1rarr 4sdot xrarr dividere per 4rarr x
21=4sdot5 +1rarr sottrarre 1rarr 4sdot 5rarr dividere per 4rarr 5
Le funzioni unidirezionali sono invece quelle funzioni facilmente calcolabili ma che non si possono invertire
Le funzioni cosiddette pseudounidirezionali (dette anche funzioni trappola a molla segreta) sono invece
quelle funzioni facilmente calcolabili ma che non altrettanto facilmente si possono invertire a meno che non si
conoscano alcune informazioni (la molla segreta) utilizzate nella loro costruzione
Lrsquoaritmetica modulare gioca un ruolo determinante in questo caso infatti permette di trasformare
funzioni bidirezionali in funzioni pseudounidirezionali
Facciamo lrsquoesempio della funzione ldquofare il quadruplordquo in simboli f(x)=4sdotx Egrave facilmente calcolabile
percheacute dato x per ottenere f(x) basta moltiplicare per 4 ma egrave altrettanto facile calcolare la sua inversa percheacute
dato f(x) basta dividere per 4 per ottenere lrsquooriginario x Ma anche se non avessimo la procedura inversa di
dividere per 4 sarebbe facile ritrovare lrsquoelemento originario anche procedendo per tentativi ed eliminazione
infatti se per esempio f(x) =20 si puograve tentare x=3 in tal caso f(x)=12 troppo piccolo quindi x deve essere
maggiore di 3 Si puograve allora pensare a 6 ma f(x)=24 troppo grande quindi x deve essere minore di 6 e cosigrave via
Vediamo cosa accade se calcoliamo utilizzando una aritmetica modulare Per esempio consideriamo la
stessa funzione f(x)=4sdotx in una aritmetica modulo 7 Possiamo osservare che la funzione non si comporta piugrave in
modo regolare come prima per accorgersene basta costruire una tabella (tabella 8)
x 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
f(x)=4sdotx 4 8 12 16 20 24 28 32 36 40 44 48 52 56 60
f(x)=4sdotmod 7 4 1 5 2 6 3 0 4 1 5 2 6 3 0 4
Tabella 8 La funzione f(x)=4sdotx in una aritmetica modulo 7
Anche in questa semplice situazione egrave chiaro che egrave piugrave complicato invertire la funzione e pertanto i valori
di x sono molto meglio protetti Si puograve fare anche lrsquoesempio della funzione esponenziale f(x)=3 x (tabella 9)
Tabella 9 La funzione f(x)=3 x in aritmetica modulo 11
x 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
f(x)=x3 1 8 27 64 125 216 343 512 729 1000 hellip hellip hellip hellip hellip
f(x)=x3 mod 11 1 8 5 9 4 7 2 6 3 10 hellip hellip hellip hellip hellip
30
Il cifrario a chiave pubblica RSA
Uno dei piugrave noti sistemi crittografici a chiave pubblica che sfrutta le idee precedentemente descritte egrave il
metodo RSA proposto dai matematici R L Rivest A Shamir e L Adlemann nel 1978 Esso risolve il problema
dello scambio delle chiavi in quanto queste ultime sono conosciute solamente ai rispettivi proprietari che non le
hanno preventivamente concordate e scambiate
Illustriamo schematicamente come i due utenti Mitt e Dest possano scambiarsi un messaggio segreto
utilizzando il metodo RSA Entrambi Mitt e Dest indipendentemente lrsquouno dallrsquoaltro poi
1 scelgono in modo casuale due numeri primi p q grandi (di 200-300 cifre in base 10)
2 calcolano N = psdotq e Φ(N) = (pndash1)sdot(qndash1)
3 scelgono un intero eltΦ(N) e primo con Φ(N) tale numero e saragrave la chiave pubblica
4 calcolano il numero d inverso di e mod Φ(N) tale cioegrave che esdotdequiv 1mod Φ(N) tale numero d saragrave
la chiave privata
5 rendono pubblici i numeri N ed e
Mitt per spedire un messaggio a Dest compie le seguenti operazioni
1 codifica il messaggio in un modo standard usando i numeri lt N
2 trasforma ogni numero M di tale codifica in Me (mod N) e lo spedisce a Dest
per decodificare il messaggio ricevuto Me Dest calcola (Me)d =Mesdotd =Mndash1=M (modN) riottenendo il messaggio
originale
Figura 12 Schema di cifrario con metodo RSA
31
Figura 13 Esempio di applicazione di metodi RSA
In che cosa consiste la sicurezza del metodo Da quanto esposto si osserva che per decodificare il
messaggio bisogna
1 conoscere d (chiave segreta)
2 essendo d lrsquoinverso di e nellrsquoaritmetica mod Φ(N) essendo e noto egrave necessario conoscere Φ(N)
3 ma noto N per calcolare Φ(N) egrave necessario conoscere i fattori primi di N cioegrave egrave necessario fattorizzare
N che egrave un problema computazionalmente difficile per quanto osservato in precedenza
Anche se non egrave stato dimostrato che non si possa rompere il codice in altro modo e cioegrave senza conoscere Φ(N) e i
fattori di N a tuttrsquooggi si puograve affermare che la sicurezza del metodo dipende essenzialmente dai seguenti fatti
Per codificare il messaggio bisogna saper costruire dei numeri primi grandi e tale operazione egrave
computazionalmente veloce si puograve infatti dimostrare che la complessitagrave computazionale di opportuni test di
primalitagrave per stabilire se un numero n egrave primo utilizzando il linguaggio di quel ramo della matematica nota
come teoria della complessitagrave egrave ldquoquasi-polinomialerdquo
Per violare il sistema bisogna saper fattorizzare interi grandi ottenuti come prodotto di due primi tale
problema egrave computazionalmente ldquolentordquo cioegrave con il linguaggio della teoria della complessitagrave appartiene alla
classe dei problemi non polinomiali Tale marcata differenza tra la velocitagrave di esecuzione delle operazioni di
costruzione di numeri primi grandi e di fattorizzazione di interi grandi garantisce la sicurezza del metodo
almeno per un tempo sufficientemente lungo Ad esempio con la tecnologia attuale lrsquooperazione di
fattorizzazione di un intero di 140 cifre in base 10 prodotto di due numeri primi casuali calcolati in pochi
secondi su un computer disponibile in commercio richiede utilizzando vari supercomputers operanti
parallelamente circa un mese
La RSA Security Inc gestisce una sfida a livello mondiale ove vengono premiati coloro che fattorizzano
gli interi proposti da loro in una particolare lista Ad esempio il 3 dicembre del 2003 egrave stato fattorizzato
32
rsa576 =
188198812920607963838697239461650439807163563379417382700763356422988859715234
665485319060606504743045317388011303396716199692321205734031879550656996221305
168759307650257059
un numero di 174 cifre decimali prodotto di due primi di 87 cifre
p =
398075086424064937397125500550386491199064362342526708406385189575946388957261
768583317
q =
472772146107435302536223071973048224632914695302097116459852171130520711256363
590397527
Le chiavi attualmente utilizzate dallRSA sono a 309 cifre decimali
La firma digitale
Consideriamo al solito un mittente che deve inviare a un destinatario un messaggio m La codifica di m
con il metodo descritto assicura lrsquoautenticitagrave del messaggio ma non fornisce alcuna sicurezza sulla sua
paternitagrave Infatti il messaggio m pur essendo autentico potrebbe essere stato inviato da qualcuno che si spaccia
per il mittente Questa egrave unimportantissima questione particolarmente nella trasmissione di messaggi che oltre
a dover essere segreti devono garantire la loro origine
Si dovrebbe quindi disporre di un analogo della firma manuale detta appunto firma digitale La firma
digitale deve allora essere progettata in modo da possedere le stesse caratteristiche di una firma manuale e cioegrave
lrsquoautenticitagrave la non falsificabilitagrave e lrsquoimpossibiltagrave di essere riutilizzata Facciamo vedere come lo stesso metodo
RSA puograve essere utilizzato per progettare una firma digitale
La situazione egrave la seguente il mittente (di seguito indicato con Mitt) invia un messaggio m con la firma
F al destinatario (di seguito indicato con Dest) Siano a b rispettivamente le chiavi pubblica e segreta di MITT
siano e d rispettivamente le chiavi pubblica e segreta di DEST
La procedura per apporre la firma digitale F al messaggio m egrave illustrata nei seguenti passi riassunti nel
grafico della figura 14
1 Mitt cripta la firma F (cioegrave i suoi dati identificativi) usando la propria chiave segreta (b)
ottenendo Fb
2 il messaggio m con la firma F criptata viene ulteriormente criptato con la chiave pubblica di
Dest (e) ottenendo (m Fb)e
3 Dest decodifica il messaggio con la sua chiave segreta (d) ottenendo
((m Fb)e)d = (me F(be)) d =m(e d)F(be d) = mFb
in cui la firma di Mitt egrave ancora criptata
4 Dest decodifica la firma di Mitt con la chiave pubblica di Mitt (a) ottenendo
(Fb)a = F(ba) = F
33
Grafico firma digitale
Mitt
Dest
pubblica
Fb
e dpubblica
a
((Fb)e)d=(Fb)ed=(Fb)1=Fb
(Fb)a=(F)ba=(F)1=F
ab de
(Fb)e
codifica
codificadecodifica
decodifica
1
2
3
4
5
6
7
8
segreta
b
segreta
Figura 14 Grafico firma digitale
Bibliografia
Thomas Beth Comunicazioni e sicurezza su Internet in ldquoLe Scienzerdquo n 330 febbraio 1996
Brian Butterworth Intelligenza matematica Vincere la paura dei numeri scoprendo le doti innate della mente
Rizzoli Milano 1999
John H Conway Richard K Guy Il libro dei numeri Hoepli Milano 2003
Richard Courant Herbert Robbins Che cosrsquoegrave la matematica Boringhieri Torino 1971
Philip J Davis Il mondo dei grandi numeri Zanichelli Bologna 1973
Keith Devlin Dove va la matematica Bollati Boringhieri Torino 1994
Jean Dieudonneacute Lrsquoarte dei numeri matematica e matematici oggi Mondadori Milano 1989
Martin E Ellmann La crittografia a chiave pubblica in La matematica della complessitagrave Quaderni n 67
settembre 1992 Le Scienze
Paolo Ferragina Fabrizio Luccio Crittografia principi ndash Algoritmi ndash Applicazioni Bollati Boringhieri Torino
2001
Godfrey H Hardy Apologia di un matematico Garzanti Milano 1989
Morris Kline Storia del pensiero matematico Einaudi Milano 1991
Serge Lang La bellezza della matematica Bollati Boringhieri Torino 1991
Mauro Leoncini Modelli di calcolo e complessitagrave computazionale in La matematica computazionale Quaderni
n 84 giugno 1995 Le Scienze
Fabrizio Luccio e Linda Pagli P = NP in La matematica della complessitagrave Quaderni n 67 settembre 1992
Le Scienze
Piergiorgio Odifreddi La Matematica del Novecento dagli insiemi alla complessitagrave Einaudi Torino 2000
34
ldquoPeriodico di matematicherdquo Serie VII Volume 7 Numero 2-3 luglio-dicembre 2000 Mathesis
ldquoPeriodico di matematicherdquo Serie VIII Volume 1 Numero 1 gennaio-marzo 2001 Mathesis
Carl Pomerance Alla ricerca dei numeri primi in ldquoLe Scienzerdquo n 174 febbraio 1983
Simon Singh Codici e segreti la storia affascinante dei messaggi cifrati dallrsquoantico Egitto a Internet Rizzoli
Milano 1999
Marcus du Sautoy Lrsquoenigma dei numeri primi lrsquoipotesi di Riemann lrsquoultimo grande mistero della matematica
Rizzoli Milano 2004
Gary Stix I segreti meglio custoditi la crittografia quantistica egrave passata dalla teoria al laboratorio per
approdare finalmente alle applicazioni in ldquoLe Scienzerdquo n 438 febbraio 2005
12
Ed egrave questa una delle peculiaritagrave piugrave belle della matematica Qualsiasi affermazione dimostrata egrave
eterna e immutabile si pensi allrsquoinfinitagrave dei numeri primi ciograve egrave vero per Euclide ma rimane vero ancora
oggi senza possibilitagrave di smentite
Come ebbe a dire il matematico Hermann Hakel ldquoNella maggior parte delle scienze una
generazione demolisce quello che laltra ha costruito e ciograve che uno ha fatto un altro lo disfa Solo nella
matematica ogni generazione aggiunge un nuovo piano alla vecchia strutturardquo
E che ciograve susciti lrsquoidea della bellezza egrave bene sintetizzato dalle parole di Bertrand Russell ldquoLa
matematica vista dalla giusta angolazione non possiede solo la veritagrave ma la suprema bellezza una
bellezza fredda e austera come quella della scultura una bellezza che non fa appello ai nostri sentimenti
piugrave grossolani che non ha gli ornamenti sgargianti della musica o della pittura una bellezza pura e
sublime capace della rigorosa perfezione che egrave propria solo della piugrave grande arterdquo
Anche se non egrave possibile presentare in termini semplici lrsquoipotesi di Riemann in quanto coinvolge
concetti di matematica superiore proviamo a delinearne le linee essenziali
Nel 1737 Eulero introdusse e studiograve una funzione detta funzione ζ (zeta) di Eulero cosigrave definita
sum+infin
=
gtisin++++==1
1 4
1
3
1
2
11
1)(
nxxxx
xRxperdefinitan
xζ
e sempre a Eulero egrave dovuta la seguente identitagrave
( )
1
111
11
17
7
15
5
13
3
12
2 prod
minus=sdot
minussdot
minussdot
minussdot
minussdot
minus=
px
x
x
x
x
x
x
x
x
x
x
x
p
pxζ
dove il prodotto egrave esteso a tutti i numeri primi
Ed egrave proprio questa identitagrave che egrave alla base della notevole importanza assunta dalla funzione ζ nella
teoria dei numeri e in particolare per quanto riguarda la distribuzione dei numeri primi nellrsquoinsieme dei
naturali Infatti a destra di essa appaiono esplicitamente i numeri primi mentre a sinistra compare la
funzione ζ definita indipendentemente da essi
Riemann nel 1859 propose di considerare la funzione ζ come funzione di variabile complessa
cioegrave definita per x numero complesso ed effettuograve il cosiddetto prolungamento analitico di ζ allrsquointero piano
complesso costruendo la nuova funzione ζ oggi nota come funzione zeta di Riemann Egli provograve che gli
zeri della funzione ζ (cioegrave i valori della variabile per cui la funzione restituisce il valore 0) sono x = ndash2
x = ndash4 x = ndash6hellip detti zeri banali di ζ e alcuni numeri complessi (non reali) x con parte reale compresa tra
0 e 1 estremi inclusi Lrsquoipotesi di Riemann afferma che tutti gli zeri non banali di ζ hanno la caratteristica
di avere la parte reale uguale a 21
Dalla validitagrave di questa ipotesi discende una serie enorme di proprietagrave sui numeri primi Ci sono
attualmente centinaia di ldquoquasi teoremirdquo che iniziano con ldquosupponiamo che lrsquoipotesi di Riemann sia
verahelliprdquo Se lrsquoipotesi venisse dimostrata tutti questi ldquoquasi teoremirdquo diventerebbero veri teoremi
13
I test di primalitagrave e la fattorizzazione
Abbiamo fin qui concentrato lrsquoattenzione sul comportamento dei numeri primi ma come egrave possibile
preso un intero a caso x provare se x egrave primo o composto
Il metodo piugrave ovvio consiste nel dividere il numero x per tutti gli interi che lo precedono Infatti se
una qualunque di tali divisioni dagrave resto zero il numero x egrave composto e divisore e quoziente sono suoi
fattori mentre se nessuna di tali divisioni per ciascuno degli interi minori x dagrave resto zero il numero x egrave
primo
In effetti la procedura delle divisioni puograve essere interrotta allrsquointero minore della in quanto se x egrave
composto esso saragrave il prodotto di almeno due fattori per esempio x= F1sdotF2 ed essendo x=x sdot x se
F1gt x F2 lt x Ad esempio 29= 2929 sdot e 529 cong quindi si puograve fermare la procedura quando il
divisore egrave 5 Infatti 292 dagrave resto 1 293 dagrave resto 2 294 dagrave resto 1 295 dagrave resto 4 Si puograve quindi
concludere che 29 egrave primo percheacute se avesse avuto un fattore maggiore di 5 ne avrebbe avuto sicuramente
uno minore di 5 il che non egrave
Ma anche limitando le divisioni alla radice quadrata lrsquoalgoritmo sarebbe comunque inapplicabile
percheacute per giungere a conclusione richiede un tempo che cresce esponenzialmente al crescere del numero
di cifre di n pertanto puograve risultare intollerabilmente lungo anche con gli strumenti di calcolo piugrave veloci
anni secoli piugrave della vita presunta dellrsquoUniverso Ad esempio egrave stato dimostrato che il numero 244 497ndash1
formato da 13 595 cifre egrave primo Se un calcolatore fosse in grado di controllare un milione di divisioni al
secondo e si fermasse alla radice quadrata del numero egrave stato calcolato che gli occorrerebbero 106684 anni
per espletare il suo compito Lrsquoinconveniente deriva dal fatto che il metodo delle divisioni non solo ci dice
se il numero egrave primo o composto ma risolve anche il problema della fattorizzazione di un numero in
quanto nel caso in cui il numero risulta composto ci fornisce i fattori della sua scomposizione
A tuttrsquooggi egrave facile trovare numeri primi grandi o testare la primalitagrave di un numero mentre egrave
difficile fattorizzare un intero che sia il prodotto di due numeri primi grandi Ovviamente i termini ldquofacilerdquo
ldquodifficilerdquo ldquogranderdquo sono relativi alla conoscenza e alla tecnologia disponibili Attualmente sono
considerati ldquograndirdquo numeri di alcune centinaia di cifre mentre ldquofacilerdquo rappresenta un tempo di secondi e
ldquodifficilerdquo di secoli
Lrsquoefficacia dei test di primalitagrave attualmente usati dipende dal fatto che egrave possibile stabilire se un
numero egrave primo senza essere costretti a trovarne i fattori qualora risultasse composto Alcuni metodi usati
sono di tipo probabilistico cioegrave stabiliscono che un intero egrave probabilmente primo con una probabilitagrave di
errore che si puograve rendere piccola quanto si vuole
Il piugrave semplice al tempo stesso velocissimo e potente si basa sul piccolo teorema di Fermat Il
teorema stabilisce che se p egrave un numero primo e a un intero minore di p allora apndasha egrave un multiplo di p cioegrave
egrave divisibile per p
Ad esempio
bull se p=7 e a=2 allora 27ndash2=128ndash2=126=7middot18 cioegrave multiplo di 7
bull se p=7 e a=3 allora 37ndash3=2187ndash3=2184=7middot312 cioegrave multiplo di 7
14
bull se p=7 e a=4 allora 47ndash4=16384ndash4 = 16380 = 7middot2340 cioegrave multiplo di 7
bull se p=5 e a=4 allora 45ndash4=1024ndash4=1020=5middot204 cioegrave multiplo di 5
bull se p=3 e a=4 allora 43ndash4=64ndash4=60=3middot20 cioegrave multiplo di 3
Lrsquoimportanza del teorema sta nel fatto che ci fornisce un metodo per stabilire se un numero egrave primo
o no infatti costruiamo un numero del tipo apndasha verifichiamo se egrave multiplo di p se non lo egrave siamo sicuri
che p non egrave primo Ad esempio vogliamo sapere se 15 egrave primo costruiamo
215ndash2=32768ndash2=32766
32766=15middot2184+6
cioegrave non egrave divisibile per 15 quindi sicuramente 15 egrave composto e infatti 15=3middot5
Ma cosa si puograve dire se invece apndasha egrave divisibile per p Sfortunatamente non possiamo essere sicuri
che p sia primo anche se egrave molto probabile che lo sia
Proviamo 217ndash2=131072ndash2=131070=17middot7710 e infatti 17 egrave primo Provando 2341ndash2 si trova che
esso egrave divisibile per 341 ma 341 non egrave primo essendo 341=11middot31 Sono detti pertanto pseudoprimi i
numeri composti che passano il test Non proviamo a calcolare 2341 percheacute sarebbe un numero
mostruosamente grande fuori dalla nostra portata ma vedremo tra poco come si puograve aggirare lrsquoostacolo
Riassumendo il piccolo teorema di Fermat afferma che egrave vero
1 se p egrave primo e a egrave un intero minore di p allora apndasha egrave divisibile per p
2 se apndasha non egrave divisibile per p allora p non egrave primo
ma se apndasha egrave divisibile per p allora p puograve essere primo ma anche composto ciograve percheacute la divisibilitagrave per p
egrave condizione necessaria ma non sufficiente percheacute p sia primo Concludendo possiamo dire che usando
questo teorema per verificare la primalitagrave di un numero se scopriamo che ap-a non egrave divisibile per p siamo
sicuri che p egrave composto ma se egrave divisibile per p allora p egrave probabilmente primo nel senso che puograve essere
un primo autentico o pseudoprimo
La cosa interessante egrave che la probabilitagrave che un numero composto sia uno pseudoprimo (cioegrave che
superi il test di primalitagrave ma non sia primo come per esempio 341) su una base casuale diminuisce
fortemente allrsquoaumentare del numero Un numero di 1000 cifre composto ha circa una possibilitagrave su 10123
di essere uno pseudoprimo su una base scelta a caso La tabella 3 riporta tali probabilitagrave in funzione del
numero di cifre
Cifre in x Limite superiore per P(x)
Cifre in x Limite superiore per P(x)
Cifre in x
Limite superiore per P(x)
60 00716 80 00000846 100 00000000277
120 528middot10ndash12 150 149middot10ndash17 200 385middot10ndash27
300 58middot10ndash29 400 57middot10ndash42 500 23middot10ndash55
700 18middot10ndash82 1000 12middot10ndash123 2000 86middot10ndash262
5000 76middot10ndash680 10000 16middot10ndash1331 100000 13middot10ndash10584
Tabella 3 Probabilitagrave che un numero composto sia pseudoprimo
Nel 2002 tre ricercatori indiani Manindra Agrawal Neeraj Kayal e Nitin Saxena hanno costruito un
algoritmo denominato AKS (dalle iniziali dei nomi) sempre basato sulla fondamentale proprietagrave enunciata dal
15
piccolo teorema di Fermat ma che risulta deterministico e che riduce in maniera drastica il tempo di calcolo
Lrsquoalgoritmo fornisce una svolta significativa in un settore lungamente atteso e di grande interesse pratico ma
per ora non sembra che possa avere immediata applicazione in quanto molto piugrave lento dei test probabilistici i
quali drsquoaltra parte sono quasi certi per i numeri primi di centinaia di cifre che servono attualmente in
crittografia
Storia della crittografia
La crittografia che letteralmente significa scrittura nascosta nasce dalla necessitagrave di segretezza di alcune
informazioni e pertanto con tale termine intendiamo lo studio dei metodi che consentono la trasmissione sicura
dellrsquoinformazione
Drsquoaltro canto lrsquoesistenza di informazioni segrete genera il desiderio di svelarle e da tale desiderio nasce
la crittoanalisi con cui intendiamo lo studio di metodi che consentono la decifrazione dei messaggi crittografati
La storia della crittografia drsquoaltra parte altro non egrave che la secolare battaglia tra crittografi e crittoanalisti
Infatti ogni sistema crittografico rimane valido fincheacute un crittoanalista non individua un suo punto debole sulla
base del quale riesce a elaborare il sistema di decifrazione
Crittografi e crittoanalisti insieme hanno dato un grande contributo al progresso scientifico e tecnologico
Infatti tutti i metodi della crittografia e della crittoanalisi fanno ricorso a metodi e strumenti di una vasta varietagrave
di scienze come la matematica la linguistica la teoria dellrsquoinformazione la fisica quantistica le quali a loro
volta sono da essi arricchite e stimolate
Lrsquoidea su cui si basa un metodo crittografico consiste nel concordare tra mittente e destinatario che
vogliono scambiarsi un messaggio senza che venga intercettato da terzi una procedura per alterare il testo in
chiaro del messaggio Il destinatario puograve ricavare il testo originale applicando al testo cifrato la procedura
inversa Chi intercetta il messaggio non conoscendo la procedura non puograve ricostruire il messaggio La sicurezza
del metodo sta nella difficoltagrave da parte del crittoanalista di poter ricostruire la procedura dallrsquoanalisi del
messaggio cifrato
Prima dellrsquoera informatica i metodi crittografici erano essenzialmente due per trasposizione o per
sostituzione
Nella trasposizione le lettere sono mutate di posto generando di fatto un anagramma Ma la
trasposizione non puograve essere casuale Infatti nel caso di messaggi brevi non sarebbe sicura in quanto i pochi
caratteri alfabetici che costituiscono il messaggio possono essere combinati in pochi modi diversi per cui
diventa facile ricostruire il messaggio per tentativi Ad esempio la parola ldquomiordquo consta di 3 caratteri alfabetici
esistono al massimo sei sequenze diverse mio moi imo iom omi oim analizzandole tutte e sei egrave facile
ricostruire la sequenza ldquomiordquo Ma al crescere della lunghezza del messaggio cresce mostruosamente anche il
numero delle sequenze infatti un anagramma di una parola di n lettere altro non egrave che una permutazione di n
elementi e si dimostra che il numero totale delle permutazioni di n elementi egrave dato da n (si legga n fattoriale)
uguale al seguente prodotto n(nndash1)(nndash2)(nndash3)hellip(nndash (nndash1)) Pertanto se il messaggio egrave costituito ad esempio da
20 lettere i possibili anagrammi sono 20=20middot19middot18middot17middot16middot15middot14middot13middot12middot11middot10middot9middot8middot7middot6middot5middot4middot3middot2middot1 cioegrave piugrave di 1000
miliardi e anche se si potesse controllare un anagramma al secondo ci vorrebbero piugrave di trentuno secoli per
analizzarli tutti In questo caso la comunicazione risulterebbe sicura essendo impossibile analizzare tutte le
16
possibili sequenze e ricostruire il messaggio ma di fatto egrave inutilizzabile anche dal destinatario percheacute di fronte
allo stesso problema
Per rendere efficace tale metodo egrave necessario che mittente e destinatario si accordino su un criterio di
trasposizione fissato in anticipo e piugrave egrave complicato tale criterio e piugrave egrave sicuro il metodo
Esiste il metodo della trasposizione cosiddetta a inferriata Esso consiste nella trascrizione di un testo
lungo due linee orizzontali una superiore e una inferiore passando da una allrsquoaltra a ogni successivo carattere
alfabetico Finita la trascrizione la seconda fila di caratteri saragrave accodata alla prima per dare origine al testo
cifrato Ad esempio
testo del messaggio incontriamoci stasera alle sette
testo del messaggio cifrato icnraoitsralstenotimccsaealeet
Il destinatario ricostruisce il testo originale applicando la trasposizione inversa
Esistono molti altri tipi di trasposizione per esempio si puograve variare il numero delle file su cui trascrivere
il messaggio oppure si puograve passare da una fila allrsquoaltra ogni due caratteri anzicheacute dopo ogni singolo carattere e
cosigrave via Da osservare che ogni carattere alfabetico mantiene la propria identitagrave ma cambia la posizione
Nella sostituzione ogni carattere alfabetico del messaggio originale viene sostituito con un altro carattere
alfabetico secondo un criterio stabilito In questo caso ogni carattere alfabetico mantiene la posizione ma
cambia la propria identitagrave
Sostanzialmente esso necessita di determinare come primo passo un alfabeto cifrante che egrave ottenuto
rimescolando secondo un criterio lrsquoalfabeto ordinario In questo modo a ogni carattere dellrsquoalfabeto ordinario
corrisponde un carattere dellrsquoalfabeto cifrante Per cifrare il messaggio si sostituisce ogni carattere del messaggio
con il corrispondente carattere dellrsquoalfabeto cifrante Per decifrare il messaggio si applica la procedura inversa
Il primo esempio documentato di cifratura per sostituzione si trova nel De bello gallico di Giulio Cesare
detto anche cifrario di Cesare Qui lrsquoalfabeto cifrante era ottenuto da quello ordinario spostando a destra di tre
posti ogni carattere alfabetico ad esempio per cifrare il messaggio si sostituisce ogni lettera con la
corrispondente dellrsquoalfabeto cifrante (figura 2)
17
Figura 2 Cifrario di Giulio Cesare
Per decifrare si sostituisce ogni lettera del messaggio cifrato utilizzando la corrispondenza inversa
Come si puograve facilmente osservare in questo metodo lrsquoalfabeto cifrante altro non egrave che una
riorganizzazione dellrsquoalfabeto ordinario che si puograve ottenere con un qualsiasi spostamento tra 1 e il numero delle
lettere dellrsquoalfabeto ordinario Per esempio nel caso dellrsquoalfabeto italiano che consta di 21 lettere si possono
effettuare 20 diversi spostamenti e ottenere quindi 20 diversi alfabeti cifranti Essendo lrsquoalfabeto cifrante una
riorganizzazione dellrsquoalfabeto ordinario non egrave detto che questa debba essere ottenuta utilizzando il criterio
dello spostamento ma puograve coincidere con un qualsiasi anagramma dellrsquoalfabeto ordinario Si vede quindi
facilmente come aumentano gli alfabeti cifranti nel nostro caso il loro numero per quanto detto
precedentemente uguaglia il numero delle permutazioni di 21 elementi e cioegrave 21 e cioegrave oltre 50 miliardi di
miliardi
A partire da questo esempio cerchiamo di chiarire in termini generali il significato di metodo
crittografico intendendo con esso un algoritmo che mediante una chiave trasforma un messaggio in chiaro in
un messaggio cifrato o crittogramma
Ad esempio nel metodo descritto sopra lrsquoalgoritmo equivale alla procedura con cui ogni lettera
dellrsquoalfabeto in chiaro egrave sostituita dalla corrispondente lettera dellrsquoalfabeto cifrante la chiave equivale al
particolare alfabeto cifrante scelto per la cifratura o decifrazione di un particolare crittogramma
Inoltre crsquoegrave da sottolineare lrsquoimportanza concettuale della distinzione tra algoritmo e chiave Infatti la sola
conoscenza dellrsquoalgoritmo senza la chiave non permette di decifrare il crittogramma Ed egrave questo uno dei
principi fondamentali della crittografia formulato in modo definitivo nel 1883 dallrsquoolandese Auguste
Kerckhoffs von Nieuwenhof noto anche come legge di Kerckhoffs ldquola sicurezza di un crittosistema non deve
dipendere dal tener celato il crittoalgoritmo La sicurezza dipenderagrave solo dal tener celata la chiaverdquo
Le caratteristiche di un efficace sistema crittografico possono essere riassunte nelle seguenti
1 segretezza della chiave
2 semplicitagrave della chiave (per evitare possibili malintesi o errori al momento dello scambio tra
mittente e destinatario)
3 alto numero di potenziali chiavi tra cui scegliere
18
Come si puograve notare la 2) e la 3) sono collegate tra loro infatti nel sistema descritto sopra si potrebbe
scegliere una chiave piugrave semplice sacrificando il numero di chiavi potenziali
Infatti invece di generare lrsquoalfabeto cifrante da una riorganizzazione casuale dellrsquoalfabeto ordinario lo si
puograve fare a partire da una parola chiave come nel seguente esempio Supponiamo di accordarci sulla parola
chiave lsquolaurarsquo si eliminano eventuali spazi e lettere ripetute quindi la parola chiave diventa lsquolaurrsquo a questo
punto la sequenza l a u r saragrave lrsquoinizio dellrsquoalfabeto cifrante cui seguiranno tutte le altre lettere mancanti in
ordine alfabetico partendo dallrsquoultima lettera della chiave per cui lrsquoalfabeto cifrante che si ottiene saragrave l a u r s t
v z b c d e f g h i m n o p q
I crittosistemi basati sulla sostituzione hanno dominato la scena per tutto il primo millennio della nostra era
fincheacute i crittoanalisti non trovarono il suo punto debole ed elaborarono un metodo per decifrarne i crittogrammi prodotti
La violazione di tali sistemi si basa su unrsquoidea dovuta per prima a crittoanalisti arabi nella quale si
combinano conoscenze di linguistica statistica e matematica nota con il nome di analisi delle frequenze
Essa egrave descritta dallo studioso del IX secolo Abu Yusuf ibn Ishaq al-Kind sopran-nominato il filosofo
degli arabi in una sua monografia dal titolo Sulla decifrazione dei messaggi crittati ritrovata nellrsquoarchivio
ottomano Sulaimaniyyah di Istanbul solo nel 1987 Nel testo si legge
Un modo di svelare un messaggio crittato se conosciamo la lingua dellrsquooriginale consiste nel trovare
un diverso testo chiaro nella stessa lingua abbastanza lungo da poter calcolare la frequenza di ciascuna
lettera
Chiamiamo ldquoprimardquo quella che compare piugrave spesso ldquosecondardquo quella che la segue per frequenza
ldquoterzardquo la successiva e cosigrave via fino a esaurire tutte le lettere del campione di testo chiaro
Esaminiamo poi il testo in cifra che vogliamo interpretare ordinando (in base alla frequenza) anche i
suoi simboli Troviamo il simbolo piugrave comune e rimpiazziamolo con la ldquoprimardquo lettera dellrsquoesempio
chiaro il simbolo che lo segue per frequenza sia rimpiazzato dalla ldquosecondardquo lettera il successivo simbolo
piugrave comune sia rimpiazzato dalla ldquoterzardquo e cosigrave via fino ad aver preso in considerazione tutti i simboli del
crittogramma che intendevamo svelare
Tabella 4 Frequenze delle diverse lettere in italiano
Per superare lrsquoanalisi delle frequenze furono ideati diversi nuovi metodi crittografici tra cui ricordiamo
1 il metodo di sostituzione omofonica
2 il metodo di sostituzione polialfabetica
19
Il metodo di sostituzione omofonica consiste nel sostituire ogni lettera con un numero di simboli per
esempio numeri proporzionale alla sua frequenza Cosigrave ad esempio la lettera a avendo una frequenza di 11 74
viene sostituita da 11 simboli la lettera b con un solo simbolo la lettera c con 4 simboli ecc secondo la tabella 5
Il metodo di sostituzione polialfabetica consiste nellrsquouso di piugrave alfabeti cifranti su unrsquoidea di Leon
Battista Alberti che propose di utilizzarne due Lrsquoalgoritmo consiste nel sostituire la prima lettera del messaggio
in chiaro con la corrispondente del I alfabeto cifrante la seconda lettera con la corrispondente del II alfabeto
cifrante la terza con la corrispondente del I e cosigrave via passando alternativamente dal I alfabeto al secondo Come
nellrsquoesempio della figura 3
Tabella 5 Corrispondenza lettere e simboli nella sostituzione omofonica
Figura 3 Il metodo di sostituzione polialfabetica
Su tale idea si basa il metodo di Blaise de Vigenegravere diplomatico francese nato nel 1523 il quale utilizza
tanti alfabeti cifranti quante sono le lettere dellrsquoalfabeto in chiaro ad esempio nellrsquoalfabeto italiano che consta
di 21 lettere utilizza 21 alfabeti cifranti
Il primo passo consiste nel costruire la tavola di Vigenegravere in cui nella prima riga egrave riportato lrsquoalfabeto in
chiaro e in ognuna delle 21 righe successive egrave riportato un alfabeto cifrante spostato di una lettera rispetto a
quello della riga precedente cosigrave nella riga 1 egrave riportato lrsquoalfabeto spostato di una lettera nella riga 2 quello
spostato di due lettere nella riga 3 quello spostato di tre fino alla riga 20 in cui egrave riportato quello spostato di 20
lettere (figura 4)
20
Figura 4 La tavola di Vigenegravere
Il secondo passo consiste nello scegliere una parola chiave per esempio lsquoverorsquo Pertanto il messaggio in
chiaro ldquonon andarerdquo verrebbe cifrato come nella figura 5
La differenza sostanziale tra la cifratura omofonica e quella polialfabetica egrave che in quella omofonica a
ogni lettera corrispondono piugrave simboli ma ogni simbolo egrave il corrispondente di una sola lettera cioegrave egrave una
corrispondenza 1rarr m che invertita diventa mrarr 1 in quella polialfabetica a ogni lettera corrispondono piugrave
simboli e anche ogni simbolo egrave il corrispondente di piugrave lettere cioegrave mrarr m che rimane tale anche invertendola
Il vantaggio della cifratura polialfabetica egrave pertanto la sua resistenza allrsquoanalisi delle frequenze Oltre ad
ammettere un enorme numero di chiavi infatti si puograve scegliere qualunque parola del dizionario qualunque
combinazione di parole si puograve perfino ricorrere a neologismi rendendo impossibile il controllo di tutte le chiavi
possibili Ed ecco percheacute egrave ritenuta piugrave affidabile e non ha mai smesso di essere usata
Figura 5 Cifratura polialfabetica del messaggio ldquonon andarerdquo
21
Oggi sono noti tutti i punti deboli del sistema di Vigenegravere ed esistono vari procedimenti per decifrare i
crittogrammi generati da tale sistema che sfruttano ad esempio la modularitagrave nel ripetere la chiave o
osservazioni sulle ripetizioni del testo cifrato Ci sono testimonianze storiche che uno di tali procedimenti sia
stato ideato da Sir Charles Babbage famoso per aver progettato e mai realizzato la macchina alle differenze
progenitrice degli odierni calcolatori La prima descrizione resa pubblica del metodo perograve egrave del 1863 portata a
compimento dallrsquoufficiale prussiano F W Kasiski
Unrsquoosservazione decisiva fu che le insidie del metodo di Babbage potevano essere evitate utilizzando
nella cifratura di Vigenegravere una chiave molto lunga e fatta da lettere che si succedono in modo casuale se un
messaggio cifrato non presenta delle ripetizioni se non egrave possibile tentare di indovinare la chiave cadono tutti
gli appigli necessari per effettuare con successo la crittoanalisi
Tale osservazione fu ulteriormente sviluppata da G S Vernam che nel 1926 introdusse lrsquoidea di usare
una chiave casuale lunga quanto il messaggio stesso
Oggi sappiamo grazie agli studi di Claude Shannon del 1949 che tale metodo puograve definirsi
ldquoteoricamente sicurordquo
In pratica perograve ciograve comporta la difficoltagrave di costruire lunghe stringhe di lettere assolutamente casuali e di
scambiarsi segretamente e continuamente queste chiavi In sostanza risulta impraticabile per ogni messaggio
scambiato in modo sicuro egrave necessario prima trasmettere in modo sicuro il messaggio contenente la chiave
I metodi usati per buona parte del Novecento sono delle rielaborazioni sempre piugrave complesse delle idee
descritte finora ottenute anche con la costruzione di dispositivi per la meccanizzazione delle procedure di
cifratura e decifratura Un esempio tra i piugrave conosciuti egrave la macchina Enigma usata dai tedeschi durante la
Seconda guerra mondiale inventata dallrsquoingegnere Arthur Scherbius Enigma consisteva di diversi ingegnosi
elementi combinati in un potente e sofisticato dispositivo per la produzione di scritture segrete In particolare ma
macchina aveva tre componenti collegati da fili elettrici una tastiera per immettere le lettere del testo chiaro
unrsquounitagrave scambiatrice che cifra la lettera trasformandola nel corrispondente elemento del crittogramma e un
visore con varie lampadine che accendendosi indicano la lettera da inserire nel crittogramma
Lo sforzo per violare questa cifratura richiese anni di lavoro e fu portato a compimento dalla Scuola
Inglese Governativa di Codici e Cifre di Bletchley Park di cui faceva parte Alan M Turing noto oggi ai piugrave per
i suoi studi sullrsquointelligenza meccanica
La crittografia nellrsquoera dellrsquoinformatica
Nel 1945 fu realizzato ENIAC (Electronic Numerical Integrator And Calculator) unrsquoapparecchiatura
contenente 18 000 valvole elettroniche capace di effettuare 5000 calcoli al secondo considerato il capostipite
dei moderni calcolatori
Dopo il 1945 fu lrsquoinformatica a fare da protagonista nella battaglia tra crittografi e crittoanalisti operando
una decisiva svolta nelle metodologie di entrambi Infatti i metodi precedenti lrsquoera dellrsquoinformatica basavano la
propria sicurezza sullrsquoenorme numero di chiavi disponibili e sulla loro lunghezza ma che viene messa in crisi
dalla crescente potenza di calcolo dei computer Un computer molto potente infatti potrebbe individuare quella
giusta in pochi minuti anche nel caso di un milione di chiavi da esaminare
Tutti i metodi crittografici esaminati finora necessitano di
22
1 un algoritmo generale di cifratura G
2 di una chiave K che deve rimanere segreta
3 di un algoritmo di decifrazione H=Gndash1 (inverso di G)
e agiscono secondo il seguente schema
il messaggio in chiaro M tramite lrsquoalgoritmo G e la chiave K viene cifrato in MC questrsquoultimo tramite
lrsquoalgoritmo H e la stessa chiave K viene decifrato in M (figura 6)
Figura 6 Schema di metodi crittografici
La sicurezza di tali sistemi risiede interamente nella segretezza delle chiavi Ne segue che per distribuire
agli utenti le chiavi egrave necessario ricorrere a canali sicuri
Gli svantaggi che ne derivano sono essenzialmente
1 difficoltagrave nella distribuzione delle chiavi agli utenti
2 mancata autenticazione dei messaggi mittente e destinatario condividono la stessa chiave
pertanto non crsquoegrave modo di impedire che il destinatario si invii messaggi che poi sembrino
provenienti dal mittente Si pensi quali problemi possono provocare simili falsificazioni nella
posta elettronica o nei sistemi bancari elettronici
La svolta avvenne nel 1976 a opera di Diffie e Hellmann che proposero un metodo detto a chiave
pubblica il quale non necessita di uno scambio preventivo delle chiavi segrete Lrsquodea egrave chiarita dal seguente
esempio noto come esempio del doppio lucchetto
Supponiamo di avere due utenti Mitt e Dest e Mitt voglia spedire un messaggio segreto a Dest
1 Mitt mette il messaggio in una scatola che chiude con il proprio lucchetto LMitt (di cui solo lui ha
la chiave) e spedisce la scatola a Dest
2 Dest ricevuta la scatola aggiunge un proprio lucchetto LDest (di cui solo lui ha la chiave) e
rispedisce la scatola a Mitt
3 Mitt ricevuta la scatola con il doppio lucchetto toglie il lucchetto LMitt e rispedisce la scatola a
Dest
4 Dest ricevuta la scatola puograve togliere il lucchetto LDest e leggere il messaggio di Mitt
Il problema della distribuzione delle chiavi sembra risolto percheacute lo schema a doppia chiave non richiede
la condivisione delle stesse Tuttavia la realizzazione pratica di un tale sistema si scontra con un altro problema
quello riguardante lrsquoordine in cui cifrature e decifrature sono eseguite In altre parole in un sistema crittografico
egrave essenziale lrsquoordine con cui avvengono le rispettive cifrature e decifrature in quanto la cifratura eseguita per
23
ultimo andrebbe decifrata per prima (egrave un porsquo come quando la mattina infiliamo prima le calze e poi le scarpe
ma alla sera togliamo prima le scarpe e poi le calze)
Lrsquoesempio del doppio lucchetto in cui ciograve non avviene sembra tuttavia funzionare come idea percheacute ai
fini dellrsquoapertura della scatola non ha importanza lrsquoordine di rimozione dei lucchetti
Anche se il trucco dei due lucchetti non sembra immediatamente applicabile tuttavia fu il giusto punto di
partenza per la realizzazione di un sistema crittografico che aggira lrsquoostacolo della distribuzione delle chiavi
Infatti lrsquoidea egrave che mittente e destinatario generano ciascuno due chiavi distinte una chiave di cifratura E
(da utilizzare nellrsquoalgoritmo di cifratura) e una chiave di decifrazione D (da utilizzare nellrsquoalgoritmo di
decifrazione) Le chiavi sono correlate nel senso che servono per effettuare operazioni inverse (figura 7)
Figura 7 Le chiavi correlate per effettuare operazioni invese
Il trucco consiste nellrsquoimpossibilitagrave di poter derivare la chiave D dalla chiave E mediante algoritmi di
calcolo (figura 8)
Ogni utente puograve rendere pubblica la propria chiave di cifratura E indicandola magari sullrsquoelenco
telefonico senza compromettere la propria chiave di decifrazione che rimane segreta di pubblico dominio sono
anche gli algoritmi di cifratura G e decifrazione H
Figura 8 Inapplicabilitagrave del metodo del doppio lucchetto
Pertanto lrsquoesempio del doppio lucchetto viene cosigrave interpretato
1 il destinatario pubblica la chiave di cifratura E e mantiene segreta la chiave di decifrazione D
2 il mittente applica GE al messaggio M trasformandolo nel messaggio cifrato MC cioegrave
GE(M)=MC che spedisce al destinatario
3 il destinatario applica HD al messaggio cifrato MC riottenendo M cioegrave HD(MC)=M
24
La sicurezza di un tale sistema si fonda sulla difficoltagrave di poter
1 ritrovare il testo cifrato provando ad applicare lrsquoalgoritmo GE che egrave pubblico ad ogni possibile
testo in chiaro il cui numero pur essendo enorme egrave comunque finito
2 ricavare lrsquoalgoritmo HD da GE
in quanto entrambe le tecniche sono computazionalmente inattuabili nel senso che richiedono un tempo
di calcolo di lunghezza al di fuori di ogni possibile considerazione anche per i piugrave potenti calcolatori
Per descrivere tali algoritmi sono necessari alcuni concetti matematici che andiamo a illustrare
Figura 9 Schema di cifrario a chiave pubblica
Lrsquoaritmetica modulare
Lrsquoaritmetica modulare la cui introduzione egrave dovuta a Gauss costituisce un sistema di calcolo con
importanti applicazioni nei test di primalitagrave e nei metodi che stanno alla base della sicurezza delle comunicazioni
elettroniche Con essa infatti si hanno i seguenti vantaggi 1) si riduce lo spazio dei numeri su cui gli algoritmi
sono chiamati ad operare e quindi si aumenta la velocitagrave di calcolo 2) si riesce a rendere difficili alcuni problemi
computazionali che sono semplici (o addirittura banali) nellrsquoalgebra ordinaria al fine di aumentare la sicurezza
nelle comunicazioni Lrsquoidea egrave semplice ma potente Forse non lo sappiamo ma usiamo spesso laritmetica
modulare Potremmo chiamarla aritmetica dellorologio
Infatti pensiamo ad un normale orologio con 24 ore Se sono le 15 ed un amico ci comunica che saragrave a
casa nostra tra 5 ore sappiamo che egli verragrave alle 20 infatti 15+5=20 Ma se sono le 23 e dobbiamo partire fra 7
ore certamente non diciamo che la partenza saragrave alle 30 anche se 23+7=30 Sappiamo che dovremo partire alle
6 Allo stesso modo se sono le 20 che ora saragrave tra 14 ore Non diremo 34 anche se 20+14=34 ma diremo che
sono le 10 Come si spiega tutto ciograve
Immaginiamo di segnare sul quadrante dellrsquoorologio 24 ore Se la lancetta segna le 23 aggiungere 7 ore
significa spostarsi di 7 posti fino ad arrivare alle 6 Si giunge allo stesso risultato calcolando 23+7=30 ed
osservando che 30=1sdot24+6 o che egrave lo stesso 3024 =1 con resto 6 che significa che 30 lo si ottiene facendo fare
alla lancetta un giro completo piugrave 6
25
Se la lancetta segna le 20 e aggiungiamo 14 ore lrsquoorologio segneragrave le 10 percheacute 20+14=34 ma 3424= 1
con resto 10 per cui 34 lo si ottiene percorrendo un giro completo piugrave 10
Proviamo con il normale orologio a 12 ore I numeri che vediamo sul quadrante sono 0 1 2 3 4 5 6 7
8 9 10 11 Il numero 12 non compare percheacute a partire da 0 trascorse 12 ore torniamo di nuovo a 0 Questa
volta per fare un giro completo occorrono 12 ore Pertanto se sono le 7 che ore saranno tra 24 ore Saranno
ancora le 7 percheacute 7+24=31 ma 3112 = 2 con resto 7 cioegrave si compiono 2 giri completi piugrave 7 se sono le 8 tra 6
ore saranno le 2 percheacute 8+6=14 ma 1412=1 con resto 2 Dagli esempi dovrebbe risultare chiaro allora che ciograve
che contano non sono i risultati delle somme ma i loro resti nelle divisioni per il numero delle ore segnate sul
quadrante dellrsquoorologio
La stessa cosa succede con i giorni della settimana se pensiamo a un orologio con 7 ore sul quadrante
Facciamo corrispondere ai giorni della settimana i numeri da 0 a 6 (figura 10)
domenica Lunedigrave Martedigrave Mercoledigrave Giovedigrave Venerdigrave Sabato darr darr darr darr darr darr darr 0 1 2 3 4 5 6
Figura 10 Corrispondenza dei giorni della settimana con i numeri da 0 a 6
Se per esempio oggi egrave venerdigrave che giorno saragrave tra 12 giorni
Dovremo calcolare 5+12=17 ma i giorni si ripetono ogni 7 pertanto osservando che 177 =2 con resto 3
possiamo concludere che a partire da 5 e aggiungendo 12 si compiono 2 giri completi piugrave 3 ed essendo 3 il
numero corrispondente a mercoledigrave concludiamo che saragrave mercoledigrave Facciamo un altro esempio se oggi egrave
lunedigrave (1) che giorno saragrave tra 20 giorni Calcoliamo 1+20=21 217= 3 con resto 0 quindi saragrave domenica
Il numero n delle ore sullrsquoorologio costituisce quello che si chiama il modulo e individua lrsquoaritmetica di
modulo n in cui lrsquoinsieme dei numeri con i quali si opera indicato con Zn egrave lrsquoinsieme dei possibili resti della
divisione per n e cioegrave Zn=0 1 2 3 hellip nndash1e le operazioni si eseguono con le regole illustrate negli esempi
precedenti
Lrsquoesempio dellrsquoorologio a 24 ore costituisce la cosiddetta aritmetica finita di modulo 24 in essa Z24=0
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 essendo questi ultimi i possibili resti
della divisione per 24 Lrsquoorologio a 12 ore costituisce lrsquoaritmetica finita di modulo 12 in essa Z12=0 1 2 3 4
5 6 7 8 9 10 11 essendo questi ultimi i possibili resti della divisione per 12 Lrsquoesempio dei giorni della
settimana egrave lrsquoaritmetica finita di modulo 7 in cui Z7=0 1 2 3 4 5 6 essendo questi ultimi i possibili resti
della divisione per 7 Riassumiamo costruendo unrsquoaritmetica finita di modulo 4 I possibili resti della divisione
per 4 sono 0 1 2 3 quindi Z4=0123 Lrsquoaddizione e la moltiplicazione in Z4 si esegue come negli esempi
della tabella 6
26
operazioni indicate
Risultato nellrsquoaritmetica ordinaria
Risultato nellrsquoaritmetica modulo 4
2+2 4 0 percheacute 44=1 con resto 0
3+2 5 1 percheacute 54=1 con resto 1
2+1 3 3 percheacute 34=0 con resto 3
3sdot3 9 1 percheacute 94=2 con resto 1
3sdot2 6 2 percheacute 64=1 con resto 2
2sdot2 4 0 percheacute 44=1 con resto 0
Tabella 6 Addizione e moltiplicazione nellrsquoaritmetica finita di modulo 4
Si possono costruire le tavole dellrsquoaddizione e della moltiplicazione dellrsquoaritmetica modulo 4 che costituiscono
le tabelline di questa aritmetica sulla base delle quali si esegue qualsiasi addizione e moltiplicazione modulo 4
Nella tabella 7 sono spiegate le tabelline dellrsquoaritmetica in modulo 4
Tabella 7 Tavole dellrsquoaddizione e della moltiplicazione dellrsquoaritmetica modulo 4
Infine per indicare che due numeri a e b divisi per n danno lo stesso resto si usano le seguenti notazioni
tutte equivalenti tra loro
a=b mod n andashb=0 mod 4 a equiv b (mod n) che si legge a egrave congruo b modulo 4
Esempio
26=12 mod 7 egrave la stessa cosa di
26ndash12=0 mod 7 che egrave la stessa cosa di
26 equiv 12 (mod 7) e tutte e tre stanno a indicare che 26 e 12 divisi per 7 danno lo stesso resto che egrave 5 e
pertanto sono tutti equivalenti a 5
Facciamo vedere come sfruttare lrsquoaritmetica modulare per calcolare potenze come 2341 (figura 11) Il
metodo si basa sulla proprietagrave che il resto del quadrato di un numero a per un dato modulo n egrave uguale al
quadrato del resto dello stesso numero a per lo stesso modulo n cioegrave a2 mod n =(a mod n)2
+ 0 1 2 3
0 0 1 2 3
1 1 2 3 0
2 2 3 0 1
3 3 0 1 2
x 0 1 2 3
0 0 0 0 0
1 0 1 2 3
2 0 2 0 2
3 0 3 2 1
27
Figura 11 Il metodo per calcolare 2341
La funzione di Eulero
Per ogni intero ngt1 si definisce la funzione di Eulero = numero di interi minori di n e primi con esso Ad
esempio
bull ( ) 45 =φ percheacute gli interi minori di 5 sono 1 2 3 4 ed essi sono tutti primi con n
bull ( ) 26 =φ percheacute gli interi minori di 6 sono 1 2 3 4 5 e fra essi solo 1 e 5 sono primi con 6
bull ( ) 67 =φ percheacute gli interi minori di 7 sono 1 2 3 4 5 6 ed essi sono tutti primi con 7
bull ( ) 412 =φ percheacute gli interi minori di 12 sono 1 2 3 4 5 6 7 8 9 10 11 e fra essi solo 1 5 7
11 sono primi con 12
Se si conosce la scomposizione in fattori del numero n il seguente teorema ci fornisce un metodo per
calcolare Infatti esso afferma che per ogni ngt1 non primo ( )
minussdotsdot
minussdot
minussdotnppp
n=nφ 11
11
11
21
dove
p1 p2 hellip pn sono i fattori primi di n presi senza molteplicitagrave
22 mod 341=4
24=(22)2=(22 mod 341)2=42=16mod341=16
28=(24)2=(16)2=256mod341=256
216= (28)2=(256)2=65536mod341=64
232=(216)2=(64)2=4096mod341=4
264=(232)2=42=16mod341=16
2128=(264)2=(16)2=256mod341=256
2256=(2128)2=(256)2=65536mod341=64
2341=2(256+64+16+4+1) 2256 264 216 24 21 x x x x
64 1
1024 mod 341
= 1 x 64
64 x 16
1024 mod 341
1 x 2 =
=
x
28
Ad esempio
essendo 12 = 3sdot2sdot2 ( ) 42
1
3
212
2
11
3
111212 ===φ sdotsdot
minussdot
minussdot
essendo 6=2sdot3 ( ) 22
1
3
26
2
11
3
1166 ===φ sdotsdot
minussdot
minussdot
se n=psdotq ( ) ( ) ( )11111
11
1 minussdotminusminussdotminussdot
minussdot
minussdot qp=q
q
p
pn=
qpn=nφ
Ovviamente se n egrave un numero primo = nndash1
Vale inoltre il seguente teorema di Eulero per ngt1 e per ogni altn e primo con n si ha
Ad esempio per n=6 ( ) 26 =φ infatti i primi con 6 sono 1 e 5 per il teorema di Eulero si ha
2mod1255
2mod1112
2
equiv=
equiv=
per n=5 ( ) 45 =φ e i primi con 5 sono 1 2 3 4 e per il teorema di Eulero si ha
5mod12564
5mod1813
5mod1162
5mod111
4
4
4
4
equiv=
equiv=
equiv=
equiv=
Si puograve notare come nel caso in cui n egrave un numero primo si ritrova il piccolo teorema di Fermat
Infatti per n primo ( )nφ = nndash1 e per il teorema di Eulero per ogni altn e primo con n Ricordiamo infatti
che il piccolo teorema di Fermat afferma che se n egrave un numero primo e a un intero minore di n allora egrave
divisibile per n che con il linguaggio dellrsquoaritmetica modulare diventa che puograve essere riscritto e se a egrave primo
con n allora egrave che egrave equivalente a
Infine si prova che per ogni altn e primo con esso esiste lrsquoinverso di a e esso egrave dato da ( ) 1minusnaφ Infatti
( ) ( ) na=aa nφnφ1mod1 equivsdot minus per il teorema di Eulero Si ricorda che lrsquoinverso di un numero a egrave quel numero che
moltiplicato per a dagrave 1 indicato convenzionalmente con andash1
Ad esempio per n=5 i primi con 5 sono 1 2 3 4 e per ognuno di questi esiste lrsquoinverso infatti
bull lrsquoinverso di 1 egrave ( ) 1mod51111 31415 equivminusminus ===φ
e infatti
bull lrsquoinverso di 2 egrave ( ) 3mod58222 31415 equivminusminus ===φ
e infatti
bull lrsquoinverso di 3 egrave ( ) 2mod527333 31415 equivminusminus ===φ
e infatti
bull lrsquoinverso di 4 egrave ( ) 4mod564444 31415 equivminusminus ===φ
Le funzioni unidirezionali
Chiamiamo funzione da un insieme A a un insieme B qualunque procedura che associa a ogni elemento
di un insieme A (detto dominio) uno e un solo elemento di un insieme B (detto condominio) In simboli f
A rarr B Se poi indichiamo con x il generico elemento dellrsquoinsieme A e con y il generico elemento dellrsquoinsieme B
la f indica la procedura che ad ogni xisinA associa un yisinB e cioegrave y=f(x) ad esempio ldquofare il doppio dihelliprdquo
29
prendendo come dominio e codominio lrsquoinsieme dei numeri interi egrave in questo senso una funzione percheacute dato
ad esempio il numero 3 lo trasforma nel numero 6 come 5 lo trasforma in 10 e cosigrave via
Molte funzioni matematiche sono cosiddette bidirezionali nel senso che egrave facile dato un determinato x
generare il corrispondente y ma egrave altrettanto facile invertire la funzione cioegrave ritrovare lrsquoelemento x originario a
partire dal suo corrispondente
Facciamo qualche esempio
bull funzione xrarr fare il doppiorarr 2sdotx= y 3rarr fare il doppiorarr 2sdot3 = 6
funzione inversa y=2sdotx rarr fare la metagraverarr x 6=2sdot3 rarr fare la metagraverarr 3
bull funzione xrarr fare il quadruplorarr 4sdotxrarr aggiungere 1rarr sdoty=4sdotx +1
5rarr fare il quadruplorarr 4sdot5rarr aggiungere 1rarr 4sdot5 +1=21
funzione inversa y=4sdotx +1rarr sottrarre 1rarr 4sdot xrarr dividere per 4rarr x
21=4sdot5 +1rarr sottrarre 1rarr 4sdot 5rarr dividere per 4rarr 5
Le funzioni unidirezionali sono invece quelle funzioni facilmente calcolabili ma che non si possono invertire
Le funzioni cosiddette pseudounidirezionali (dette anche funzioni trappola a molla segreta) sono invece
quelle funzioni facilmente calcolabili ma che non altrettanto facilmente si possono invertire a meno che non si
conoscano alcune informazioni (la molla segreta) utilizzate nella loro costruzione
Lrsquoaritmetica modulare gioca un ruolo determinante in questo caso infatti permette di trasformare
funzioni bidirezionali in funzioni pseudounidirezionali
Facciamo lrsquoesempio della funzione ldquofare il quadruplordquo in simboli f(x)=4sdotx Egrave facilmente calcolabile
percheacute dato x per ottenere f(x) basta moltiplicare per 4 ma egrave altrettanto facile calcolare la sua inversa percheacute
dato f(x) basta dividere per 4 per ottenere lrsquooriginario x Ma anche se non avessimo la procedura inversa di
dividere per 4 sarebbe facile ritrovare lrsquoelemento originario anche procedendo per tentativi ed eliminazione
infatti se per esempio f(x) =20 si puograve tentare x=3 in tal caso f(x)=12 troppo piccolo quindi x deve essere
maggiore di 3 Si puograve allora pensare a 6 ma f(x)=24 troppo grande quindi x deve essere minore di 6 e cosigrave via
Vediamo cosa accade se calcoliamo utilizzando una aritmetica modulare Per esempio consideriamo la
stessa funzione f(x)=4sdotx in una aritmetica modulo 7 Possiamo osservare che la funzione non si comporta piugrave in
modo regolare come prima per accorgersene basta costruire una tabella (tabella 8)
x 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
f(x)=4sdotx 4 8 12 16 20 24 28 32 36 40 44 48 52 56 60
f(x)=4sdotmod 7 4 1 5 2 6 3 0 4 1 5 2 6 3 0 4
Tabella 8 La funzione f(x)=4sdotx in una aritmetica modulo 7
Anche in questa semplice situazione egrave chiaro che egrave piugrave complicato invertire la funzione e pertanto i valori
di x sono molto meglio protetti Si puograve fare anche lrsquoesempio della funzione esponenziale f(x)=3 x (tabella 9)
Tabella 9 La funzione f(x)=3 x in aritmetica modulo 11
x 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
f(x)=x3 1 8 27 64 125 216 343 512 729 1000 hellip hellip hellip hellip hellip
f(x)=x3 mod 11 1 8 5 9 4 7 2 6 3 10 hellip hellip hellip hellip hellip
30
Il cifrario a chiave pubblica RSA
Uno dei piugrave noti sistemi crittografici a chiave pubblica che sfrutta le idee precedentemente descritte egrave il
metodo RSA proposto dai matematici R L Rivest A Shamir e L Adlemann nel 1978 Esso risolve il problema
dello scambio delle chiavi in quanto queste ultime sono conosciute solamente ai rispettivi proprietari che non le
hanno preventivamente concordate e scambiate
Illustriamo schematicamente come i due utenti Mitt e Dest possano scambiarsi un messaggio segreto
utilizzando il metodo RSA Entrambi Mitt e Dest indipendentemente lrsquouno dallrsquoaltro poi
1 scelgono in modo casuale due numeri primi p q grandi (di 200-300 cifre in base 10)
2 calcolano N = psdotq e Φ(N) = (pndash1)sdot(qndash1)
3 scelgono un intero eltΦ(N) e primo con Φ(N) tale numero e saragrave la chiave pubblica
4 calcolano il numero d inverso di e mod Φ(N) tale cioegrave che esdotdequiv 1mod Φ(N) tale numero d saragrave
la chiave privata
5 rendono pubblici i numeri N ed e
Mitt per spedire un messaggio a Dest compie le seguenti operazioni
1 codifica il messaggio in un modo standard usando i numeri lt N
2 trasforma ogni numero M di tale codifica in Me (mod N) e lo spedisce a Dest
per decodificare il messaggio ricevuto Me Dest calcola (Me)d =Mesdotd =Mndash1=M (modN) riottenendo il messaggio
originale
Figura 12 Schema di cifrario con metodo RSA
31
Figura 13 Esempio di applicazione di metodi RSA
In che cosa consiste la sicurezza del metodo Da quanto esposto si osserva che per decodificare il
messaggio bisogna
1 conoscere d (chiave segreta)
2 essendo d lrsquoinverso di e nellrsquoaritmetica mod Φ(N) essendo e noto egrave necessario conoscere Φ(N)
3 ma noto N per calcolare Φ(N) egrave necessario conoscere i fattori primi di N cioegrave egrave necessario fattorizzare
N che egrave un problema computazionalmente difficile per quanto osservato in precedenza
Anche se non egrave stato dimostrato che non si possa rompere il codice in altro modo e cioegrave senza conoscere Φ(N) e i
fattori di N a tuttrsquooggi si puograve affermare che la sicurezza del metodo dipende essenzialmente dai seguenti fatti
Per codificare il messaggio bisogna saper costruire dei numeri primi grandi e tale operazione egrave
computazionalmente veloce si puograve infatti dimostrare che la complessitagrave computazionale di opportuni test di
primalitagrave per stabilire se un numero n egrave primo utilizzando il linguaggio di quel ramo della matematica nota
come teoria della complessitagrave egrave ldquoquasi-polinomialerdquo
Per violare il sistema bisogna saper fattorizzare interi grandi ottenuti come prodotto di due primi tale
problema egrave computazionalmente ldquolentordquo cioegrave con il linguaggio della teoria della complessitagrave appartiene alla
classe dei problemi non polinomiali Tale marcata differenza tra la velocitagrave di esecuzione delle operazioni di
costruzione di numeri primi grandi e di fattorizzazione di interi grandi garantisce la sicurezza del metodo
almeno per un tempo sufficientemente lungo Ad esempio con la tecnologia attuale lrsquooperazione di
fattorizzazione di un intero di 140 cifre in base 10 prodotto di due numeri primi casuali calcolati in pochi
secondi su un computer disponibile in commercio richiede utilizzando vari supercomputers operanti
parallelamente circa un mese
La RSA Security Inc gestisce una sfida a livello mondiale ove vengono premiati coloro che fattorizzano
gli interi proposti da loro in una particolare lista Ad esempio il 3 dicembre del 2003 egrave stato fattorizzato
32
rsa576 =
188198812920607963838697239461650439807163563379417382700763356422988859715234
665485319060606504743045317388011303396716199692321205734031879550656996221305
168759307650257059
un numero di 174 cifre decimali prodotto di due primi di 87 cifre
p =
398075086424064937397125500550386491199064362342526708406385189575946388957261
768583317
q =
472772146107435302536223071973048224632914695302097116459852171130520711256363
590397527
Le chiavi attualmente utilizzate dallRSA sono a 309 cifre decimali
La firma digitale
Consideriamo al solito un mittente che deve inviare a un destinatario un messaggio m La codifica di m
con il metodo descritto assicura lrsquoautenticitagrave del messaggio ma non fornisce alcuna sicurezza sulla sua
paternitagrave Infatti il messaggio m pur essendo autentico potrebbe essere stato inviato da qualcuno che si spaccia
per il mittente Questa egrave unimportantissima questione particolarmente nella trasmissione di messaggi che oltre
a dover essere segreti devono garantire la loro origine
Si dovrebbe quindi disporre di un analogo della firma manuale detta appunto firma digitale La firma
digitale deve allora essere progettata in modo da possedere le stesse caratteristiche di una firma manuale e cioegrave
lrsquoautenticitagrave la non falsificabilitagrave e lrsquoimpossibiltagrave di essere riutilizzata Facciamo vedere come lo stesso metodo
RSA puograve essere utilizzato per progettare una firma digitale
La situazione egrave la seguente il mittente (di seguito indicato con Mitt) invia un messaggio m con la firma
F al destinatario (di seguito indicato con Dest) Siano a b rispettivamente le chiavi pubblica e segreta di MITT
siano e d rispettivamente le chiavi pubblica e segreta di DEST
La procedura per apporre la firma digitale F al messaggio m egrave illustrata nei seguenti passi riassunti nel
grafico della figura 14
1 Mitt cripta la firma F (cioegrave i suoi dati identificativi) usando la propria chiave segreta (b)
ottenendo Fb
2 il messaggio m con la firma F criptata viene ulteriormente criptato con la chiave pubblica di
Dest (e) ottenendo (m Fb)e
3 Dest decodifica il messaggio con la sua chiave segreta (d) ottenendo
((m Fb)e)d = (me F(be)) d =m(e d)F(be d) = mFb
in cui la firma di Mitt egrave ancora criptata
4 Dest decodifica la firma di Mitt con la chiave pubblica di Mitt (a) ottenendo
(Fb)a = F(ba) = F
33
Grafico firma digitale
Mitt
Dest
pubblica
Fb
e dpubblica
a
((Fb)e)d=(Fb)ed=(Fb)1=Fb
(Fb)a=(F)ba=(F)1=F
ab de
(Fb)e
codifica
codificadecodifica
decodifica
1
2
3
4
5
6
7
8
segreta
b
segreta
Figura 14 Grafico firma digitale
Bibliografia
Thomas Beth Comunicazioni e sicurezza su Internet in ldquoLe Scienzerdquo n 330 febbraio 1996
Brian Butterworth Intelligenza matematica Vincere la paura dei numeri scoprendo le doti innate della mente
Rizzoli Milano 1999
John H Conway Richard K Guy Il libro dei numeri Hoepli Milano 2003
Richard Courant Herbert Robbins Che cosrsquoegrave la matematica Boringhieri Torino 1971
Philip J Davis Il mondo dei grandi numeri Zanichelli Bologna 1973
Keith Devlin Dove va la matematica Bollati Boringhieri Torino 1994
Jean Dieudonneacute Lrsquoarte dei numeri matematica e matematici oggi Mondadori Milano 1989
Martin E Ellmann La crittografia a chiave pubblica in La matematica della complessitagrave Quaderni n 67
settembre 1992 Le Scienze
Paolo Ferragina Fabrizio Luccio Crittografia principi ndash Algoritmi ndash Applicazioni Bollati Boringhieri Torino
2001
Godfrey H Hardy Apologia di un matematico Garzanti Milano 1989
Morris Kline Storia del pensiero matematico Einaudi Milano 1991
Serge Lang La bellezza della matematica Bollati Boringhieri Torino 1991
Mauro Leoncini Modelli di calcolo e complessitagrave computazionale in La matematica computazionale Quaderni
n 84 giugno 1995 Le Scienze
Fabrizio Luccio e Linda Pagli P = NP in La matematica della complessitagrave Quaderni n 67 settembre 1992
Le Scienze
Piergiorgio Odifreddi La Matematica del Novecento dagli insiemi alla complessitagrave Einaudi Torino 2000
34
ldquoPeriodico di matematicherdquo Serie VII Volume 7 Numero 2-3 luglio-dicembre 2000 Mathesis
ldquoPeriodico di matematicherdquo Serie VIII Volume 1 Numero 1 gennaio-marzo 2001 Mathesis
Carl Pomerance Alla ricerca dei numeri primi in ldquoLe Scienzerdquo n 174 febbraio 1983
Simon Singh Codici e segreti la storia affascinante dei messaggi cifrati dallrsquoantico Egitto a Internet Rizzoli
Milano 1999
Marcus du Sautoy Lrsquoenigma dei numeri primi lrsquoipotesi di Riemann lrsquoultimo grande mistero della matematica
Rizzoli Milano 2004
Gary Stix I segreti meglio custoditi la crittografia quantistica egrave passata dalla teoria al laboratorio per
approdare finalmente alle applicazioni in ldquoLe Scienzerdquo n 438 febbraio 2005
13
I test di primalitagrave e la fattorizzazione
Abbiamo fin qui concentrato lrsquoattenzione sul comportamento dei numeri primi ma come egrave possibile
preso un intero a caso x provare se x egrave primo o composto
Il metodo piugrave ovvio consiste nel dividere il numero x per tutti gli interi che lo precedono Infatti se
una qualunque di tali divisioni dagrave resto zero il numero x egrave composto e divisore e quoziente sono suoi
fattori mentre se nessuna di tali divisioni per ciascuno degli interi minori x dagrave resto zero il numero x egrave
primo
In effetti la procedura delle divisioni puograve essere interrotta allrsquointero minore della in quanto se x egrave
composto esso saragrave il prodotto di almeno due fattori per esempio x= F1sdotF2 ed essendo x=x sdot x se
F1gt x F2 lt x Ad esempio 29= 2929 sdot e 529 cong quindi si puograve fermare la procedura quando il
divisore egrave 5 Infatti 292 dagrave resto 1 293 dagrave resto 2 294 dagrave resto 1 295 dagrave resto 4 Si puograve quindi
concludere che 29 egrave primo percheacute se avesse avuto un fattore maggiore di 5 ne avrebbe avuto sicuramente
uno minore di 5 il che non egrave
Ma anche limitando le divisioni alla radice quadrata lrsquoalgoritmo sarebbe comunque inapplicabile
percheacute per giungere a conclusione richiede un tempo che cresce esponenzialmente al crescere del numero
di cifre di n pertanto puograve risultare intollerabilmente lungo anche con gli strumenti di calcolo piugrave veloci
anni secoli piugrave della vita presunta dellrsquoUniverso Ad esempio egrave stato dimostrato che il numero 244 497ndash1
formato da 13 595 cifre egrave primo Se un calcolatore fosse in grado di controllare un milione di divisioni al
secondo e si fermasse alla radice quadrata del numero egrave stato calcolato che gli occorrerebbero 106684 anni
per espletare il suo compito Lrsquoinconveniente deriva dal fatto che il metodo delle divisioni non solo ci dice
se il numero egrave primo o composto ma risolve anche il problema della fattorizzazione di un numero in
quanto nel caso in cui il numero risulta composto ci fornisce i fattori della sua scomposizione
A tuttrsquooggi egrave facile trovare numeri primi grandi o testare la primalitagrave di un numero mentre egrave
difficile fattorizzare un intero che sia il prodotto di due numeri primi grandi Ovviamente i termini ldquofacilerdquo
ldquodifficilerdquo ldquogranderdquo sono relativi alla conoscenza e alla tecnologia disponibili Attualmente sono
considerati ldquograndirdquo numeri di alcune centinaia di cifre mentre ldquofacilerdquo rappresenta un tempo di secondi e
ldquodifficilerdquo di secoli
Lrsquoefficacia dei test di primalitagrave attualmente usati dipende dal fatto che egrave possibile stabilire se un
numero egrave primo senza essere costretti a trovarne i fattori qualora risultasse composto Alcuni metodi usati
sono di tipo probabilistico cioegrave stabiliscono che un intero egrave probabilmente primo con una probabilitagrave di
errore che si puograve rendere piccola quanto si vuole
Il piugrave semplice al tempo stesso velocissimo e potente si basa sul piccolo teorema di Fermat Il
teorema stabilisce che se p egrave un numero primo e a un intero minore di p allora apndasha egrave un multiplo di p cioegrave
egrave divisibile per p
Ad esempio
bull se p=7 e a=2 allora 27ndash2=128ndash2=126=7middot18 cioegrave multiplo di 7
bull se p=7 e a=3 allora 37ndash3=2187ndash3=2184=7middot312 cioegrave multiplo di 7
14
bull se p=7 e a=4 allora 47ndash4=16384ndash4 = 16380 = 7middot2340 cioegrave multiplo di 7
bull se p=5 e a=4 allora 45ndash4=1024ndash4=1020=5middot204 cioegrave multiplo di 5
bull se p=3 e a=4 allora 43ndash4=64ndash4=60=3middot20 cioegrave multiplo di 3
Lrsquoimportanza del teorema sta nel fatto che ci fornisce un metodo per stabilire se un numero egrave primo
o no infatti costruiamo un numero del tipo apndasha verifichiamo se egrave multiplo di p se non lo egrave siamo sicuri
che p non egrave primo Ad esempio vogliamo sapere se 15 egrave primo costruiamo
215ndash2=32768ndash2=32766
32766=15middot2184+6
cioegrave non egrave divisibile per 15 quindi sicuramente 15 egrave composto e infatti 15=3middot5
Ma cosa si puograve dire se invece apndasha egrave divisibile per p Sfortunatamente non possiamo essere sicuri
che p sia primo anche se egrave molto probabile che lo sia
Proviamo 217ndash2=131072ndash2=131070=17middot7710 e infatti 17 egrave primo Provando 2341ndash2 si trova che
esso egrave divisibile per 341 ma 341 non egrave primo essendo 341=11middot31 Sono detti pertanto pseudoprimi i
numeri composti che passano il test Non proviamo a calcolare 2341 percheacute sarebbe un numero
mostruosamente grande fuori dalla nostra portata ma vedremo tra poco come si puograve aggirare lrsquoostacolo
Riassumendo il piccolo teorema di Fermat afferma che egrave vero
1 se p egrave primo e a egrave un intero minore di p allora apndasha egrave divisibile per p
2 se apndasha non egrave divisibile per p allora p non egrave primo
ma se apndasha egrave divisibile per p allora p puograve essere primo ma anche composto ciograve percheacute la divisibilitagrave per p
egrave condizione necessaria ma non sufficiente percheacute p sia primo Concludendo possiamo dire che usando
questo teorema per verificare la primalitagrave di un numero se scopriamo che ap-a non egrave divisibile per p siamo
sicuri che p egrave composto ma se egrave divisibile per p allora p egrave probabilmente primo nel senso che puograve essere
un primo autentico o pseudoprimo
La cosa interessante egrave che la probabilitagrave che un numero composto sia uno pseudoprimo (cioegrave che
superi il test di primalitagrave ma non sia primo come per esempio 341) su una base casuale diminuisce
fortemente allrsquoaumentare del numero Un numero di 1000 cifre composto ha circa una possibilitagrave su 10123
di essere uno pseudoprimo su una base scelta a caso La tabella 3 riporta tali probabilitagrave in funzione del
numero di cifre
Cifre in x Limite superiore per P(x)
Cifre in x Limite superiore per P(x)
Cifre in x
Limite superiore per P(x)
60 00716 80 00000846 100 00000000277
120 528middot10ndash12 150 149middot10ndash17 200 385middot10ndash27
300 58middot10ndash29 400 57middot10ndash42 500 23middot10ndash55
700 18middot10ndash82 1000 12middot10ndash123 2000 86middot10ndash262
5000 76middot10ndash680 10000 16middot10ndash1331 100000 13middot10ndash10584
Tabella 3 Probabilitagrave che un numero composto sia pseudoprimo
Nel 2002 tre ricercatori indiani Manindra Agrawal Neeraj Kayal e Nitin Saxena hanno costruito un
algoritmo denominato AKS (dalle iniziali dei nomi) sempre basato sulla fondamentale proprietagrave enunciata dal
15
piccolo teorema di Fermat ma che risulta deterministico e che riduce in maniera drastica il tempo di calcolo
Lrsquoalgoritmo fornisce una svolta significativa in un settore lungamente atteso e di grande interesse pratico ma
per ora non sembra che possa avere immediata applicazione in quanto molto piugrave lento dei test probabilistici i
quali drsquoaltra parte sono quasi certi per i numeri primi di centinaia di cifre che servono attualmente in
crittografia
Storia della crittografia
La crittografia che letteralmente significa scrittura nascosta nasce dalla necessitagrave di segretezza di alcune
informazioni e pertanto con tale termine intendiamo lo studio dei metodi che consentono la trasmissione sicura
dellrsquoinformazione
Drsquoaltro canto lrsquoesistenza di informazioni segrete genera il desiderio di svelarle e da tale desiderio nasce
la crittoanalisi con cui intendiamo lo studio di metodi che consentono la decifrazione dei messaggi crittografati
La storia della crittografia drsquoaltra parte altro non egrave che la secolare battaglia tra crittografi e crittoanalisti
Infatti ogni sistema crittografico rimane valido fincheacute un crittoanalista non individua un suo punto debole sulla
base del quale riesce a elaborare il sistema di decifrazione
Crittografi e crittoanalisti insieme hanno dato un grande contributo al progresso scientifico e tecnologico
Infatti tutti i metodi della crittografia e della crittoanalisi fanno ricorso a metodi e strumenti di una vasta varietagrave
di scienze come la matematica la linguistica la teoria dellrsquoinformazione la fisica quantistica le quali a loro
volta sono da essi arricchite e stimolate
Lrsquoidea su cui si basa un metodo crittografico consiste nel concordare tra mittente e destinatario che
vogliono scambiarsi un messaggio senza che venga intercettato da terzi una procedura per alterare il testo in
chiaro del messaggio Il destinatario puograve ricavare il testo originale applicando al testo cifrato la procedura
inversa Chi intercetta il messaggio non conoscendo la procedura non puograve ricostruire il messaggio La sicurezza
del metodo sta nella difficoltagrave da parte del crittoanalista di poter ricostruire la procedura dallrsquoanalisi del
messaggio cifrato
Prima dellrsquoera informatica i metodi crittografici erano essenzialmente due per trasposizione o per
sostituzione
Nella trasposizione le lettere sono mutate di posto generando di fatto un anagramma Ma la
trasposizione non puograve essere casuale Infatti nel caso di messaggi brevi non sarebbe sicura in quanto i pochi
caratteri alfabetici che costituiscono il messaggio possono essere combinati in pochi modi diversi per cui
diventa facile ricostruire il messaggio per tentativi Ad esempio la parola ldquomiordquo consta di 3 caratteri alfabetici
esistono al massimo sei sequenze diverse mio moi imo iom omi oim analizzandole tutte e sei egrave facile
ricostruire la sequenza ldquomiordquo Ma al crescere della lunghezza del messaggio cresce mostruosamente anche il
numero delle sequenze infatti un anagramma di una parola di n lettere altro non egrave che una permutazione di n
elementi e si dimostra che il numero totale delle permutazioni di n elementi egrave dato da n (si legga n fattoriale)
uguale al seguente prodotto n(nndash1)(nndash2)(nndash3)hellip(nndash (nndash1)) Pertanto se il messaggio egrave costituito ad esempio da
20 lettere i possibili anagrammi sono 20=20middot19middot18middot17middot16middot15middot14middot13middot12middot11middot10middot9middot8middot7middot6middot5middot4middot3middot2middot1 cioegrave piugrave di 1000
miliardi e anche se si potesse controllare un anagramma al secondo ci vorrebbero piugrave di trentuno secoli per
analizzarli tutti In questo caso la comunicazione risulterebbe sicura essendo impossibile analizzare tutte le
16
possibili sequenze e ricostruire il messaggio ma di fatto egrave inutilizzabile anche dal destinatario percheacute di fronte
allo stesso problema
Per rendere efficace tale metodo egrave necessario che mittente e destinatario si accordino su un criterio di
trasposizione fissato in anticipo e piugrave egrave complicato tale criterio e piugrave egrave sicuro il metodo
Esiste il metodo della trasposizione cosiddetta a inferriata Esso consiste nella trascrizione di un testo
lungo due linee orizzontali una superiore e una inferiore passando da una allrsquoaltra a ogni successivo carattere
alfabetico Finita la trascrizione la seconda fila di caratteri saragrave accodata alla prima per dare origine al testo
cifrato Ad esempio
testo del messaggio incontriamoci stasera alle sette
testo del messaggio cifrato icnraoitsralstenotimccsaealeet
Il destinatario ricostruisce il testo originale applicando la trasposizione inversa
Esistono molti altri tipi di trasposizione per esempio si puograve variare il numero delle file su cui trascrivere
il messaggio oppure si puograve passare da una fila allrsquoaltra ogni due caratteri anzicheacute dopo ogni singolo carattere e
cosigrave via Da osservare che ogni carattere alfabetico mantiene la propria identitagrave ma cambia la posizione
Nella sostituzione ogni carattere alfabetico del messaggio originale viene sostituito con un altro carattere
alfabetico secondo un criterio stabilito In questo caso ogni carattere alfabetico mantiene la posizione ma
cambia la propria identitagrave
Sostanzialmente esso necessita di determinare come primo passo un alfabeto cifrante che egrave ottenuto
rimescolando secondo un criterio lrsquoalfabeto ordinario In questo modo a ogni carattere dellrsquoalfabeto ordinario
corrisponde un carattere dellrsquoalfabeto cifrante Per cifrare il messaggio si sostituisce ogni carattere del messaggio
con il corrispondente carattere dellrsquoalfabeto cifrante Per decifrare il messaggio si applica la procedura inversa
Il primo esempio documentato di cifratura per sostituzione si trova nel De bello gallico di Giulio Cesare
detto anche cifrario di Cesare Qui lrsquoalfabeto cifrante era ottenuto da quello ordinario spostando a destra di tre
posti ogni carattere alfabetico ad esempio per cifrare il messaggio si sostituisce ogni lettera con la
corrispondente dellrsquoalfabeto cifrante (figura 2)
17
Figura 2 Cifrario di Giulio Cesare
Per decifrare si sostituisce ogni lettera del messaggio cifrato utilizzando la corrispondenza inversa
Come si puograve facilmente osservare in questo metodo lrsquoalfabeto cifrante altro non egrave che una
riorganizzazione dellrsquoalfabeto ordinario che si puograve ottenere con un qualsiasi spostamento tra 1 e il numero delle
lettere dellrsquoalfabeto ordinario Per esempio nel caso dellrsquoalfabeto italiano che consta di 21 lettere si possono
effettuare 20 diversi spostamenti e ottenere quindi 20 diversi alfabeti cifranti Essendo lrsquoalfabeto cifrante una
riorganizzazione dellrsquoalfabeto ordinario non egrave detto che questa debba essere ottenuta utilizzando il criterio
dello spostamento ma puograve coincidere con un qualsiasi anagramma dellrsquoalfabeto ordinario Si vede quindi
facilmente come aumentano gli alfabeti cifranti nel nostro caso il loro numero per quanto detto
precedentemente uguaglia il numero delle permutazioni di 21 elementi e cioegrave 21 e cioegrave oltre 50 miliardi di
miliardi
A partire da questo esempio cerchiamo di chiarire in termini generali il significato di metodo
crittografico intendendo con esso un algoritmo che mediante una chiave trasforma un messaggio in chiaro in
un messaggio cifrato o crittogramma
Ad esempio nel metodo descritto sopra lrsquoalgoritmo equivale alla procedura con cui ogni lettera
dellrsquoalfabeto in chiaro egrave sostituita dalla corrispondente lettera dellrsquoalfabeto cifrante la chiave equivale al
particolare alfabeto cifrante scelto per la cifratura o decifrazione di un particolare crittogramma
Inoltre crsquoegrave da sottolineare lrsquoimportanza concettuale della distinzione tra algoritmo e chiave Infatti la sola
conoscenza dellrsquoalgoritmo senza la chiave non permette di decifrare il crittogramma Ed egrave questo uno dei
principi fondamentali della crittografia formulato in modo definitivo nel 1883 dallrsquoolandese Auguste
Kerckhoffs von Nieuwenhof noto anche come legge di Kerckhoffs ldquola sicurezza di un crittosistema non deve
dipendere dal tener celato il crittoalgoritmo La sicurezza dipenderagrave solo dal tener celata la chiaverdquo
Le caratteristiche di un efficace sistema crittografico possono essere riassunte nelle seguenti
1 segretezza della chiave
2 semplicitagrave della chiave (per evitare possibili malintesi o errori al momento dello scambio tra
mittente e destinatario)
3 alto numero di potenziali chiavi tra cui scegliere
18
Come si puograve notare la 2) e la 3) sono collegate tra loro infatti nel sistema descritto sopra si potrebbe
scegliere una chiave piugrave semplice sacrificando il numero di chiavi potenziali
Infatti invece di generare lrsquoalfabeto cifrante da una riorganizzazione casuale dellrsquoalfabeto ordinario lo si
puograve fare a partire da una parola chiave come nel seguente esempio Supponiamo di accordarci sulla parola
chiave lsquolaurarsquo si eliminano eventuali spazi e lettere ripetute quindi la parola chiave diventa lsquolaurrsquo a questo
punto la sequenza l a u r saragrave lrsquoinizio dellrsquoalfabeto cifrante cui seguiranno tutte le altre lettere mancanti in
ordine alfabetico partendo dallrsquoultima lettera della chiave per cui lrsquoalfabeto cifrante che si ottiene saragrave l a u r s t
v z b c d e f g h i m n o p q
I crittosistemi basati sulla sostituzione hanno dominato la scena per tutto il primo millennio della nostra era
fincheacute i crittoanalisti non trovarono il suo punto debole ed elaborarono un metodo per decifrarne i crittogrammi prodotti
La violazione di tali sistemi si basa su unrsquoidea dovuta per prima a crittoanalisti arabi nella quale si
combinano conoscenze di linguistica statistica e matematica nota con il nome di analisi delle frequenze
Essa egrave descritta dallo studioso del IX secolo Abu Yusuf ibn Ishaq al-Kind sopran-nominato il filosofo
degli arabi in una sua monografia dal titolo Sulla decifrazione dei messaggi crittati ritrovata nellrsquoarchivio
ottomano Sulaimaniyyah di Istanbul solo nel 1987 Nel testo si legge
Un modo di svelare un messaggio crittato se conosciamo la lingua dellrsquooriginale consiste nel trovare
un diverso testo chiaro nella stessa lingua abbastanza lungo da poter calcolare la frequenza di ciascuna
lettera
Chiamiamo ldquoprimardquo quella che compare piugrave spesso ldquosecondardquo quella che la segue per frequenza
ldquoterzardquo la successiva e cosigrave via fino a esaurire tutte le lettere del campione di testo chiaro
Esaminiamo poi il testo in cifra che vogliamo interpretare ordinando (in base alla frequenza) anche i
suoi simboli Troviamo il simbolo piugrave comune e rimpiazziamolo con la ldquoprimardquo lettera dellrsquoesempio
chiaro il simbolo che lo segue per frequenza sia rimpiazzato dalla ldquosecondardquo lettera il successivo simbolo
piugrave comune sia rimpiazzato dalla ldquoterzardquo e cosigrave via fino ad aver preso in considerazione tutti i simboli del
crittogramma che intendevamo svelare
Tabella 4 Frequenze delle diverse lettere in italiano
Per superare lrsquoanalisi delle frequenze furono ideati diversi nuovi metodi crittografici tra cui ricordiamo
1 il metodo di sostituzione omofonica
2 il metodo di sostituzione polialfabetica
19
Il metodo di sostituzione omofonica consiste nel sostituire ogni lettera con un numero di simboli per
esempio numeri proporzionale alla sua frequenza Cosigrave ad esempio la lettera a avendo una frequenza di 11 74
viene sostituita da 11 simboli la lettera b con un solo simbolo la lettera c con 4 simboli ecc secondo la tabella 5
Il metodo di sostituzione polialfabetica consiste nellrsquouso di piugrave alfabeti cifranti su unrsquoidea di Leon
Battista Alberti che propose di utilizzarne due Lrsquoalgoritmo consiste nel sostituire la prima lettera del messaggio
in chiaro con la corrispondente del I alfabeto cifrante la seconda lettera con la corrispondente del II alfabeto
cifrante la terza con la corrispondente del I e cosigrave via passando alternativamente dal I alfabeto al secondo Come
nellrsquoesempio della figura 3
Tabella 5 Corrispondenza lettere e simboli nella sostituzione omofonica
Figura 3 Il metodo di sostituzione polialfabetica
Su tale idea si basa il metodo di Blaise de Vigenegravere diplomatico francese nato nel 1523 il quale utilizza
tanti alfabeti cifranti quante sono le lettere dellrsquoalfabeto in chiaro ad esempio nellrsquoalfabeto italiano che consta
di 21 lettere utilizza 21 alfabeti cifranti
Il primo passo consiste nel costruire la tavola di Vigenegravere in cui nella prima riga egrave riportato lrsquoalfabeto in
chiaro e in ognuna delle 21 righe successive egrave riportato un alfabeto cifrante spostato di una lettera rispetto a
quello della riga precedente cosigrave nella riga 1 egrave riportato lrsquoalfabeto spostato di una lettera nella riga 2 quello
spostato di due lettere nella riga 3 quello spostato di tre fino alla riga 20 in cui egrave riportato quello spostato di 20
lettere (figura 4)
20
Figura 4 La tavola di Vigenegravere
Il secondo passo consiste nello scegliere una parola chiave per esempio lsquoverorsquo Pertanto il messaggio in
chiaro ldquonon andarerdquo verrebbe cifrato come nella figura 5
La differenza sostanziale tra la cifratura omofonica e quella polialfabetica egrave che in quella omofonica a
ogni lettera corrispondono piugrave simboli ma ogni simbolo egrave il corrispondente di una sola lettera cioegrave egrave una
corrispondenza 1rarr m che invertita diventa mrarr 1 in quella polialfabetica a ogni lettera corrispondono piugrave
simboli e anche ogni simbolo egrave il corrispondente di piugrave lettere cioegrave mrarr m che rimane tale anche invertendola
Il vantaggio della cifratura polialfabetica egrave pertanto la sua resistenza allrsquoanalisi delle frequenze Oltre ad
ammettere un enorme numero di chiavi infatti si puograve scegliere qualunque parola del dizionario qualunque
combinazione di parole si puograve perfino ricorrere a neologismi rendendo impossibile il controllo di tutte le chiavi
possibili Ed ecco percheacute egrave ritenuta piugrave affidabile e non ha mai smesso di essere usata
Figura 5 Cifratura polialfabetica del messaggio ldquonon andarerdquo
21
Oggi sono noti tutti i punti deboli del sistema di Vigenegravere ed esistono vari procedimenti per decifrare i
crittogrammi generati da tale sistema che sfruttano ad esempio la modularitagrave nel ripetere la chiave o
osservazioni sulle ripetizioni del testo cifrato Ci sono testimonianze storiche che uno di tali procedimenti sia
stato ideato da Sir Charles Babbage famoso per aver progettato e mai realizzato la macchina alle differenze
progenitrice degli odierni calcolatori La prima descrizione resa pubblica del metodo perograve egrave del 1863 portata a
compimento dallrsquoufficiale prussiano F W Kasiski
Unrsquoosservazione decisiva fu che le insidie del metodo di Babbage potevano essere evitate utilizzando
nella cifratura di Vigenegravere una chiave molto lunga e fatta da lettere che si succedono in modo casuale se un
messaggio cifrato non presenta delle ripetizioni se non egrave possibile tentare di indovinare la chiave cadono tutti
gli appigli necessari per effettuare con successo la crittoanalisi
Tale osservazione fu ulteriormente sviluppata da G S Vernam che nel 1926 introdusse lrsquoidea di usare
una chiave casuale lunga quanto il messaggio stesso
Oggi sappiamo grazie agli studi di Claude Shannon del 1949 che tale metodo puograve definirsi
ldquoteoricamente sicurordquo
In pratica perograve ciograve comporta la difficoltagrave di costruire lunghe stringhe di lettere assolutamente casuali e di
scambiarsi segretamente e continuamente queste chiavi In sostanza risulta impraticabile per ogni messaggio
scambiato in modo sicuro egrave necessario prima trasmettere in modo sicuro il messaggio contenente la chiave
I metodi usati per buona parte del Novecento sono delle rielaborazioni sempre piugrave complesse delle idee
descritte finora ottenute anche con la costruzione di dispositivi per la meccanizzazione delle procedure di
cifratura e decifratura Un esempio tra i piugrave conosciuti egrave la macchina Enigma usata dai tedeschi durante la
Seconda guerra mondiale inventata dallrsquoingegnere Arthur Scherbius Enigma consisteva di diversi ingegnosi
elementi combinati in un potente e sofisticato dispositivo per la produzione di scritture segrete In particolare ma
macchina aveva tre componenti collegati da fili elettrici una tastiera per immettere le lettere del testo chiaro
unrsquounitagrave scambiatrice che cifra la lettera trasformandola nel corrispondente elemento del crittogramma e un
visore con varie lampadine che accendendosi indicano la lettera da inserire nel crittogramma
Lo sforzo per violare questa cifratura richiese anni di lavoro e fu portato a compimento dalla Scuola
Inglese Governativa di Codici e Cifre di Bletchley Park di cui faceva parte Alan M Turing noto oggi ai piugrave per
i suoi studi sullrsquointelligenza meccanica
La crittografia nellrsquoera dellrsquoinformatica
Nel 1945 fu realizzato ENIAC (Electronic Numerical Integrator And Calculator) unrsquoapparecchiatura
contenente 18 000 valvole elettroniche capace di effettuare 5000 calcoli al secondo considerato il capostipite
dei moderni calcolatori
Dopo il 1945 fu lrsquoinformatica a fare da protagonista nella battaglia tra crittografi e crittoanalisti operando
una decisiva svolta nelle metodologie di entrambi Infatti i metodi precedenti lrsquoera dellrsquoinformatica basavano la
propria sicurezza sullrsquoenorme numero di chiavi disponibili e sulla loro lunghezza ma che viene messa in crisi
dalla crescente potenza di calcolo dei computer Un computer molto potente infatti potrebbe individuare quella
giusta in pochi minuti anche nel caso di un milione di chiavi da esaminare
Tutti i metodi crittografici esaminati finora necessitano di
22
1 un algoritmo generale di cifratura G
2 di una chiave K che deve rimanere segreta
3 di un algoritmo di decifrazione H=Gndash1 (inverso di G)
e agiscono secondo il seguente schema
il messaggio in chiaro M tramite lrsquoalgoritmo G e la chiave K viene cifrato in MC questrsquoultimo tramite
lrsquoalgoritmo H e la stessa chiave K viene decifrato in M (figura 6)
Figura 6 Schema di metodi crittografici
La sicurezza di tali sistemi risiede interamente nella segretezza delle chiavi Ne segue che per distribuire
agli utenti le chiavi egrave necessario ricorrere a canali sicuri
Gli svantaggi che ne derivano sono essenzialmente
1 difficoltagrave nella distribuzione delle chiavi agli utenti
2 mancata autenticazione dei messaggi mittente e destinatario condividono la stessa chiave
pertanto non crsquoegrave modo di impedire che il destinatario si invii messaggi che poi sembrino
provenienti dal mittente Si pensi quali problemi possono provocare simili falsificazioni nella
posta elettronica o nei sistemi bancari elettronici
La svolta avvenne nel 1976 a opera di Diffie e Hellmann che proposero un metodo detto a chiave
pubblica il quale non necessita di uno scambio preventivo delle chiavi segrete Lrsquodea egrave chiarita dal seguente
esempio noto come esempio del doppio lucchetto
Supponiamo di avere due utenti Mitt e Dest e Mitt voglia spedire un messaggio segreto a Dest
1 Mitt mette il messaggio in una scatola che chiude con il proprio lucchetto LMitt (di cui solo lui ha
la chiave) e spedisce la scatola a Dest
2 Dest ricevuta la scatola aggiunge un proprio lucchetto LDest (di cui solo lui ha la chiave) e
rispedisce la scatola a Mitt
3 Mitt ricevuta la scatola con il doppio lucchetto toglie il lucchetto LMitt e rispedisce la scatola a
Dest
4 Dest ricevuta la scatola puograve togliere il lucchetto LDest e leggere il messaggio di Mitt
Il problema della distribuzione delle chiavi sembra risolto percheacute lo schema a doppia chiave non richiede
la condivisione delle stesse Tuttavia la realizzazione pratica di un tale sistema si scontra con un altro problema
quello riguardante lrsquoordine in cui cifrature e decifrature sono eseguite In altre parole in un sistema crittografico
egrave essenziale lrsquoordine con cui avvengono le rispettive cifrature e decifrature in quanto la cifratura eseguita per
23
ultimo andrebbe decifrata per prima (egrave un porsquo come quando la mattina infiliamo prima le calze e poi le scarpe
ma alla sera togliamo prima le scarpe e poi le calze)
Lrsquoesempio del doppio lucchetto in cui ciograve non avviene sembra tuttavia funzionare come idea percheacute ai
fini dellrsquoapertura della scatola non ha importanza lrsquoordine di rimozione dei lucchetti
Anche se il trucco dei due lucchetti non sembra immediatamente applicabile tuttavia fu il giusto punto di
partenza per la realizzazione di un sistema crittografico che aggira lrsquoostacolo della distribuzione delle chiavi
Infatti lrsquoidea egrave che mittente e destinatario generano ciascuno due chiavi distinte una chiave di cifratura E
(da utilizzare nellrsquoalgoritmo di cifratura) e una chiave di decifrazione D (da utilizzare nellrsquoalgoritmo di
decifrazione) Le chiavi sono correlate nel senso che servono per effettuare operazioni inverse (figura 7)
Figura 7 Le chiavi correlate per effettuare operazioni invese
Il trucco consiste nellrsquoimpossibilitagrave di poter derivare la chiave D dalla chiave E mediante algoritmi di
calcolo (figura 8)
Ogni utente puograve rendere pubblica la propria chiave di cifratura E indicandola magari sullrsquoelenco
telefonico senza compromettere la propria chiave di decifrazione che rimane segreta di pubblico dominio sono
anche gli algoritmi di cifratura G e decifrazione H
Figura 8 Inapplicabilitagrave del metodo del doppio lucchetto
Pertanto lrsquoesempio del doppio lucchetto viene cosigrave interpretato
1 il destinatario pubblica la chiave di cifratura E e mantiene segreta la chiave di decifrazione D
2 il mittente applica GE al messaggio M trasformandolo nel messaggio cifrato MC cioegrave
GE(M)=MC che spedisce al destinatario
3 il destinatario applica HD al messaggio cifrato MC riottenendo M cioegrave HD(MC)=M
24
La sicurezza di un tale sistema si fonda sulla difficoltagrave di poter
1 ritrovare il testo cifrato provando ad applicare lrsquoalgoritmo GE che egrave pubblico ad ogni possibile
testo in chiaro il cui numero pur essendo enorme egrave comunque finito
2 ricavare lrsquoalgoritmo HD da GE
in quanto entrambe le tecniche sono computazionalmente inattuabili nel senso che richiedono un tempo
di calcolo di lunghezza al di fuori di ogni possibile considerazione anche per i piugrave potenti calcolatori
Per descrivere tali algoritmi sono necessari alcuni concetti matematici che andiamo a illustrare
Figura 9 Schema di cifrario a chiave pubblica
Lrsquoaritmetica modulare
Lrsquoaritmetica modulare la cui introduzione egrave dovuta a Gauss costituisce un sistema di calcolo con
importanti applicazioni nei test di primalitagrave e nei metodi che stanno alla base della sicurezza delle comunicazioni
elettroniche Con essa infatti si hanno i seguenti vantaggi 1) si riduce lo spazio dei numeri su cui gli algoritmi
sono chiamati ad operare e quindi si aumenta la velocitagrave di calcolo 2) si riesce a rendere difficili alcuni problemi
computazionali che sono semplici (o addirittura banali) nellrsquoalgebra ordinaria al fine di aumentare la sicurezza
nelle comunicazioni Lrsquoidea egrave semplice ma potente Forse non lo sappiamo ma usiamo spesso laritmetica
modulare Potremmo chiamarla aritmetica dellorologio
Infatti pensiamo ad un normale orologio con 24 ore Se sono le 15 ed un amico ci comunica che saragrave a
casa nostra tra 5 ore sappiamo che egli verragrave alle 20 infatti 15+5=20 Ma se sono le 23 e dobbiamo partire fra 7
ore certamente non diciamo che la partenza saragrave alle 30 anche se 23+7=30 Sappiamo che dovremo partire alle
6 Allo stesso modo se sono le 20 che ora saragrave tra 14 ore Non diremo 34 anche se 20+14=34 ma diremo che
sono le 10 Come si spiega tutto ciograve
Immaginiamo di segnare sul quadrante dellrsquoorologio 24 ore Se la lancetta segna le 23 aggiungere 7 ore
significa spostarsi di 7 posti fino ad arrivare alle 6 Si giunge allo stesso risultato calcolando 23+7=30 ed
osservando che 30=1sdot24+6 o che egrave lo stesso 3024 =1 con resto 6 che significa che 30 lo si ottiene facendo fare
alla lancetta un giro completo piugrave 6
25
Se la lancetta segna le 20 e aggiungiamo 14 ore lrsquoorologio segneragrave le 10 percheacute 20+14=34 ma 3424= 1
con resto 10 per cui 34 lo si ottiene percorrendo un giro completo piugrave 10
Proviamo con il normale orologio a 12 ore I numeri che vediamo sul quadrante sono 0 1 2 3 4 5 6 7
8 9 10 11 Il numero 12 non compare percheacute a partire da 0 trascorse 12 ore torniamo di nuovo a 0 Questa
volta per fare un giro completo occorrono 12 ore Pertanto se sono le 7 che ore saranno tra 24 ore Saranno
ancora le 7 percheacute 7+24=31 ma 3112 = 2 con resto 7 cioegrave si compiono 2 giri completi piugrave 7 se sono le 8 tra 6
ore saranno le 2 percheacute 8+6=14 ma 1412=1 con resto 2 Dagli esempi dovrebbe risultare chiaro allora che ciograve
che contano non sono i risultati delle somme ma i loro resti nelle divisioni per il numero delle ore segnate sul
quadrante dellrsquoorologio
La stessa cosa succede con i giorni della settimana se pensiamo a un orologio con 7 ore sul quadrante
Facciamo corrispondere ai giorni della settimana i numeri da 0 a 6 (figura 10)
domenica Lunedigrave Martedigrave Mercoledigrave Giovedigrave Venerdigrave Sabato darr darr darr darr darr darr darr 0 1 2 3 4 5 6
Figura 10 Corrispondenza dei giorni della settimana con i numeri da 0 a 6
Se per esempio oggi egrave venerdigrave che giorno saragrave tra 12 giorni
Dovremo calcolare 5+12=17 ma i giorni si ripetono ogni 7 pertanto osservando che 177 =2 con resto 3
possiamo concludere che a partire da 5 e aggiungendo 12 si compiono 2 giri completi piugrave 3 ed essendo 3 il
numero corrispondente a mercoledigrave concludiamo che saragrave mercoledigrave Facciamo un altro esempio se oggi egrave
lunedigrave (1) che giorno saragrave tra 20 giorni Calcoliamo 1+20=21 217= 3 con resto 0 quindi saragrave domenica
Il numero n delle ore sullrsquoorologio costituisce quello che si chiama il modulo e individua lrsquoaritmetica di
modulo n in cui lrsquoinsieme dei numeri con i quali si opera indicato con Zn egrave lrsquoinsieme dei possibili resti della
divisione per n e cioegrave Zn=0 1 2 3 hellip nndash1e le operazioni si eseguono con le regole illustrate negli esempi
precedenti
Lrsquoesempio dellrsquoorologio a 24 ore costituisce la cosiddetta aritmetica finita di modulo 24 in essa Z24=0
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 essendo questi ultimi i possibili resti
della divisione per 24 Lrsquoorologio a 12 ore costituisce lrsquoaritmetica finita di modulo 12 in essa Z12=0 1 2 3 4
5 6 7 8 9 10 11 essendo questi ultimi i possibili resti della divisione per 12 Lrsquoesempio dei giorni della
settimana egrave lrsquoaritmetica finita di modulo 7 in cui Z7=0 1 2 3 4 5 6 essendo questi ultimi i possibili resti
della divisione per 7 Riassumiamo costruendo unrsquoaritmetica finita di modulo 4 I possibili resti della divisione
per 4 sono 0 1 2 3 quindi Z4=0123 Lrsquoaddizione e la moltiplicazione in Z4 si esegue come negli esempi
della tabella 6
26
operazioni indicate
Risultato nellrsquoaritmetica ordinaria
Risultato nellrsquoaritmetica modulo 4
2+2 4 0 percheacute 44=1 con resto 0
3+2 5 1 percheacute 54=1 con resto 1
2+1 3 3 percheacute 34=0 con resto 3
3sdot3 9 1 percheacute 94=2 con resto 1
3sdot2 6 2 percheacute 64=1 con resto 2
2sdot2 4 0 percheacute 44=1 con resto 0
Tabella 6 Addizione e moltiplicazione nellrsquoaritmetica finita di modulo 4
Si possono costruire le tavole dellrsquoaddizione e della moltiplicazione dellrsquoaritmetica modulo 4 che costituiscono
le tabelline di questa aritmetica sulla base delle quali si esegue qualsiasi addizione e moltiplicazione modulo 4
Nella tabella 7 sono spiegate le tabelline dellrsquoaritmetica in modulo 4
Tabella 7 Tavole dellrsquoaddizione e della moltiplicazione dellrsquoaritmetica modulo 4
Infine per indicare che due numeri a e b divisi per n danno lo stesso resto si usano le seguenti notazioni
tutte equivalenti tra loro
a=b mod n andashb=0 mod 4 a equiv b (mod n) che si legge a egrave congruo b modulo 4
Esempio
26=12 mod 7 egrave la stessa cosa di
26ndash12=0 mod 7 che egrave la stessa cosa di
26 equiv 12 (mod 7) e tutte e tre stanno a indicare che 26 e 12 divisi per 7 danno lo stesso resto che egrave 5 e
pertanto sono tutti equivalenti a 5
Facciamo vedere come sfruttare lrsquoaritmetica modulare per calcolare potenze come 2341 (figura 11) Il
metodo si basa sulla proprietagrave che il resto del quadrato di un numero a per un dato modulo n egrave uguale al
quadrato del resto dello stesso numero a per lo stesso modulo n cioegrave a2 mod n =(a mod n)2
+ 0 1 2 3
0 0 1 2 3
1 1 2 3 0
2 2 3 0 1
3 3 0 1 2
x 0 1 2 3
0 0 0 0 0
1 0 1 2 3
2 0 2 0 2
3 0 3 2 1
27
Figura 11 Il metodo per calcolare 2341
La funzione di Eulero
Per ogni intero ngt1 si definisce la funzione di Eulero = numero di interi minori di n e primi con esso Ad
esempio
bull ( ) 45 =φ percheacute gli interi minori di 5 sono 1 2 3 4 ed essi sono tutti primi con n
bull ( ) 26 =φ percheacute gli interi minori di 6 sono 1 2 3 4 5 e fra essi solo 1 e 5 sono primi con 6
bull ( ) 67 =φ percheacute gli interi minori di 7 sono 1 2 3 4 5 6 ed essi sono tutti primi con 7
bull ( ) 412 =φ percheacute gli interi minori di 12 sono 1 2 3 4 5 6 7 8 9 10 11 e fra essi solo 1 5 7
11 sono primi con 12
Se si conosce la scomposizione in fattori del numero n il seguente teorema ci fornisce un metodo per
calcolare Infatti esso afferma che per ogni ngt1 non primo ( )
minussdotsdot
minussdot
minussdotnppp
n=nφ 11
11
11
21
dove
p1 p2 hellip pn sono i fattori primi di n presi senza molteplicitagrave
22 mod 341=4
24=(22)2=(22 mod 341)2=42=16mod341=16
28=(24)2=(16)2=256mod341=256
216= (28)2=(256)2=65536mod341=64
232=(216)2=(64)2=4096mod341=4
264=(232)2=42=16mod341=16
2128=(264)2=(16)2=256mod341=256
2256=(2128)2=(256)2=65536mod341=64
2341=2(256+64+16+4+1) 2256 264 216 24 21 x x x x
64 1
1024 mod 341
= 1 x 64
64 x 16
1024 mod 341
1 x 2 =
=
x
28
Ad esempio
essendo 12 = 3sdot2sdot2 ( ) 42
1
3
212
2
11
3
111212 ===φ sdotsdot
minussdot
minussdot
essendo 6=2sdot3 ( ) 22
1
3
26
2
11
3
1166 ===φ sdotsdot
minussdot
minussdot
se n=psdotq ( ) ( ) ( )11111
11
1 minussdotminusminussdotminussdot
minussdot
minussdot qp=q
q
p
pn=
qpn=nφ
Ovviamente se n egrave un numero primo = nndash1
Vale inoltre il seguente teorema di Eulero per ngt1 e per ogni altn e primo con n si ha
Ad esempio per n=6 ( ) 26 =φ infatti i primi con 6 sono 1 e 5 per il teorema di Eulero si ha
2mod1255
2mod1112
2
equiv=
equiv=
per n=5 ( ) 45 =φ e i primi con 5 sono 1 2 3 4 e per il teorema di Eulero si ha
5mod12564
5mod1813
5mod1162
5mod111
4
4
4
4
equiv=
equiv=
equiv=
equiv=
Si puograve notare come nel caso in cui n egrave un numero primo si ritrova il piccolo teorema di Fermat
Infatti per n primo ( )nφ = nndash1 e per il teorema di Eulero per ogni altn e primo con n Ricordiamo infatti
che il piccolo teorema di Fermat afferma che se n egrave un numero primo e a un intero minore di n allora egrave
divisibile per n che con il linguaggio dellrsquoaritmetica modulare diventa che puograve essere riscritto e se a egrave primo
con n allora egrave che egrave equivalente a
Infine si prova che per ogni altn e primo con esso esiste lrsquoinverso di a e esso egrave dato da ( ) 1minusnaφ Infatti
( ) ( ) na=aa nφnφ1mod1 equivsdot minus per il teorema di Eulero Si ricorda che lrsquoinverso di un numero a egrave quel numero che
moltiplicato per a dagrave 1 indicato convenzionalmente con andash1
Ad esempio per n=5 i primi con 5 sono 1 2 3 4 e per ognuno di questi esiste lrsquoinverso infatti
bull lrsquoinverso di 1 egrave ( ) 1mod51111 31415 equivminusminus ===φ
e infatti
bull lrsquoinverso di 2 egrave ( ) 3mod58222 31415 equivminusminus ===φ
e infatti
bull lrsquoinverso di 3 egrave ( ) 2mod527333 31415 equivminusminus ===φ
e infatti
bull lrsquoinverso di 4 egrave ( ) 4mod564444 31415 equivminusminus ===φ
Le funzioni unidirezionali
Chiamiamo funzione da un insieme A a un insieme B qualunque procedura che associa a ogni elemento
di un insieme A (detto dominio) uno e un solo elemento di un insieme B (detto condominio) In simboli f
A rarr B Se poi indichiamo con x il generico elemento dellrsquoinsieme A e con y il generico elemento dellrsquoinsieme B
la f indica la procedura che ad ogni xisinA associa un yisinB e cioegrave y=f(x) ad esempio ldquofare il doppio dihelliprdquo
29
prendendo come dominio e codominio lrsquoinsieme dei numeri interi egrave in questo senso una funzione percheacute dato
ad esempio il numero 3 lo trasforma nel numero 6 come 5 lo trasforma in 10 e cosigrave via
Molte funzioni matematiche sono cosiddette bidirezionali nel senso che egrave facile dato un determinato x
generare il corrispondente y ma egrave altrettanto facile invertire la funzione cioegrave ritrovare lrsquoelemento x originario a
partire dal suo corrispondente
Facciamo qualche esempio
bull funzione xrarr fare il doppiorarr 2sdotx= y 3rarr fare il doppiorarr 2sdot3 = 6
funzione inversa y=2sdotx rarr fare la metagraverarr x 6=2sdot3 rarr fare la metagraverarr 3
bull funzione xrarr fare il quadruplorarr 4sdotxrarr aggiungere 1rarr sdoty=4sdotx +1
5rarr fare il quadruplorarr 4sdot5rarr aggiungere 1rarr 4sdot5 +1=21
funzione inversa y=4sdotx +1rarr sottrarre 1rarr 4sdot xrarr dividere per 4rarr x
21=4sdot5 +1rarr sottrarre 1rarr 4sdot 5rarr dividere per 4rarr 5
Le funzioni unidirezionali sono invece quelle funzioni facilmente calcolabili ma che non si possono invertire
Le funzioni cosiddette pseudounidirezionali (dette anche funzioni trappola a molla segreta) sono invece
quelle funzioni facilmente calcolabili ma che non altrettanto facilmente si possono invertire a meno che non si
conoscano alcune informazioni (la molla segreta) utilizzate nella loro costruzione
Lrsquoaritmetica modulare gioca un ruolo determinante in questo caso infatti permette di trasformare
funzioni bidirezionali in funzioni pseudounidirezionali
Facciamo lrsquoesempio della funzione ldquofare il quadruplordquo in simboli f(x)=4sdotx Egrave facilmente calcolabile
percheacute dato x per ottenere f(x) basta moltiplicare per 4 ma egrave altrettanto facile calcolare la sua inversa percheacute
dato f(x) basta dividere per 4 per ottenere lrsquooriginario x Ma anche se non avessimo la procedura inversa di
dividere per 4 sarebbe facile ritrovare lrsquoelemento originario anche procedendo per tentativi ed eliminazione
infatti se per esempio f(x) =20 si puograve tentare x=3 in tal caso f(x)=12 troppo piccolo quindi x deve essere
maggiore di 3 Si puograve allora pensare a 6 ma f(x)=24 troppo grande quindi x deve essere minore di 6 e cosigrave via
Vediamo cosa accade se calcoliamo utilizzando una aritmetica modulare Per esempio consideriamo la
stessa funzione f(x)=4sdotx in una aritmetica modulo 7 Possiamo osservare che la funzione non si comporta piugrave in
modo regolare come prima per accorgersene basta costruire una tabella (tabella 8)
x 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
f(x)=4sdotx 4 8 12 16 20 24 28 32 36 40 44 48 52 56 60
f(x)=4sdotmod 7 4 1 5 2 6 3 0 4 1 5 2 6 3 0 4
Tabella 8 La funzione f(x)=4sdotx in una aritmetica modulo 7
Anche in questa semplice situazione egrave chiaro che egrave piugrave complicato invertire la funzione e pertanto i valori
di x sono molto meglio protetti Si puograve fare anche lrsquoesempio della funzione esponenziale f(x)=3 x (tabella 9)
Tabella 9 La funzione f(x)=3 x in aritmetica modulo 11
x 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
f(x)=x3 1 8 27 64 125 216 343 512 729 1000 hellip hellip hellip hellip hellip
f(x)=x3 mod 11 1 8 5 9 4 7 2 6 3 10 hellip hellip hellip hellip hellip
30
Il cifrario a chiave pubblica RSA
Uno dei piugrave noti sistemi crittografici a chiave pubblica che sfrutta le idee precedentemente descritte egrave il
metodo RSA proposto dai matematici R L Rivest A Shamir e L Adlemann nel 1978 Esso risolve il problema
dello scambio delle chiavi in quanto queste ultime sono conosciute solamente ai rispettivi proprietari che non le
hanno preventivamente concordate e scambiate
Illustriamo schematicamente come i due utenti Mitt e Dest possano scambiarsi un messaggio segreto
utilizzando il metodo RSA Entrambi Mitt e Dest indipendentemente lrsquouno dallrsquoaltro poi
1 scelgono in modo casuale due numeri primi p q grandi (di 200-300 cifre in base 10)
2 calcolano N = psdotq e Φ(N) = (pndash1)sdot(qndash1)
3 scelgono un intero eltΦ(N) e primo con Φ(N) tale numero e saragrave la chiave pubblica
4 calcolano il numero d inverso di e mod Φ(N) tale cioegrave che esdotdequiv 1mod Φ(N) tale numero d saragrave
la chiave privata
5 rendono pubblici i numeri N ed e
Mitt per spedire un messaggio a Dest compie le seguenti operazioni
1 codifica il messaggio in un modo standard usando i numeri lt N
2 trasforma ogni numero M di tale codifica in Me (mod N) e lo spedisce a Dest
per decodificare il messaggio ricevuto Me Dest calcola (Me)d =Mesdotd =Mndash1=M (modN) riottenendo il messaggio
originale
Figura 12 Schema di cifrario con metodo RSA
31
Figura 13 Esempio di applicazione di metodi RSA
In che cosa consiste la sicurezza del metodo Da quanto esposto si osserva che per decodificare il
messaggio bisogna
1 conoscere d (chiave segreta)
2 essendo d lrsquoinverso di e nellrsquoaritmetica mod Φ(N) essendo e noto egrave necessario conoscere Φ(N)
3 ma noto N per calcolare Φ(N) egrave necessario conoscere i fattori primi di N cioegrave egrave necessario fattorizzare
N che egrave un problema computazionalmente difficile per quanto osservato in precedenza
Anche se non egrave stato dimostrato che non si possa rompere il codice in altro modo e cioegrave senza conoscere Φ(N) e i
fattori di N a tuttrsquooggi si puograve affermare che la sicurezza del metodo dipende essenzialmente dai seguenti fatti
Per codificare il messaggio bisogna saper costruire dei numeri primi grandi e tale operazione egrave
computazionalmente veloce si puograve infatti dimostrare che la complessitagrave computazionale di opportuni test di
primalitagrave per stabilire se un numero n egrave primo utilizzando il linguaggio di quel ramo della matematica nota
come teoria della complessitagrave egrave ldquoquasi-polinomialerdquo
Per violare il sistema bisogna saper fattorizzare interi grandi ottenuti come prodotto di due primi tale
problema egrave computazionalmente ldquolentordquo cioegrave con il linguaggio della teoria della complessitagrave appartiene alla
classe dei problemi non polinomiali Tale marcata differenza tra la velocitagrave di esecuzione delle operazioni di
costruzione di numeri primi grandi e di fattorizzazione di interi grandi garantisce la sicurezza del metodo
almeno per un tempo sufficientemente lungo Ad esempio con la tecnologia attuale lrsquooperazione di
fattorizzazione di un intero di 140 cifre in base 10 prodotto di due numeri primi casuali calcolati in pochi
secondi su un computer disponibile in commercio richiede utilizzando vari supercomputers operanti
parallelamente circa un mese
La RSA Security Inc gestisce una sfida a livello mondiale ove vengono premiati coloro che fattorizzano
gli interi proposti da loro in una particolare lista Ad esempio il 3 dicembre del 2003 egrave stato fattorizzato
32
rsa576 =
188198812920607963838697239461650439807163563379417382700763356422988859715234
665485319060606504743045317388011303396716199692321205734031879550656996221305
168759307650257059
un numero di 174 cifre decimali prodotto di due primi di 87 cifre
p =
398075086424064937397125500550386491199064362342526708406385189575946388957261
768583317
q =
472772146107435302536223071973048224632914695302097116459852171130520711256363
590397527
Le chiavi attualmente utilizzate dallRSA sono a 309 cifre decimali
La firma digitale
Consideriamo al solito un mittente che deve inviare a un destinatario un messaggio m La codifica di m
con il metodo descritto assicura lrsquoautenticitagrave del messaggio ma non fornisce alcuna sicurezza sulla sua
paternitagrave Infatti il messaggio m pur essendo autentico potrebbe essere stato inviato da qualcuno che si spaccia
per il mittente Questa egrave unimportantissima questione particolarmente nella trasmissione di messaggi che oltre
a dover essere segreti devono garantire la loro origine
Si dovrebbe quindi disporre di un analogo della firma manuale detta appunto firma digitale La firma
digitale deve allora essere progettata in modo da possedere le stesse caratteristiche di una firma manuale e cioegrave
lrsquoautenticitagrave la non falsificabilitagrave e lrsquoimpossibiltagrave di essere riutilizzata Facciamo vedere come lo stesso metodo
RSA puograve essere utilizzato per progettare una firma digitale
La situazione egrave la seguente il mittente (di seguito indicato con Mitt) invia un messaggio m con la firma
F al destinatario (di seguito indicato con Dest) Siano a b rispettivamente le chiavi pubblica e segreta di MITT
siano e d rispettivamente le chiavi pubblica e segreta di DEST
La procedura per apporre la firma digitale F al messaggio m egrave illustrata nei seguenti passi riassunti nel
grafico della figura 14
1 Mitt cripta la firma F (cioegrave i suoi dati identificativi) usando la propria chiave segreta (b)
ottenendo Fb
2 il messaggio m con la firma F criptata viene ulteriormente criptato con la chiave pubblica di
Dest (e) ottenendo (m Fb)e
3 Dest decodifica il messaggio con la sua chiave segreta (d) ottenendo
((m Fb)e)d = (me F(be)) d =m(e d)F(be d) = mFb
in cui la firma di Mitt egrave ancora criptata
4 Dest decodifica la firma di Mitt con la chiave pubblica di Mitt (a) ottenendo
(Fb)a = F(ba) = F
33
Grafico firma digitale
Mitt
Dest
pubblica
Fb
e dpubblica
a
((Fb)e)d=(Fb)ed=(Fb)1=Fb
(Fb)a=(F)ba=(F)1=F
ab de
(Fb)e
codifica
codificadecodifica
decodifica
1
2
3
4
5
6
7
8
segreta
b
segreta
Figura 14 Grafico firma digitale
Bibliografia
Thomas Beth Comunicazioni e sicurezza su Internet in ldquoLe Scienzerdquo n 330 febbraio 1996
Brian Butterworth Intelligenza matematica Vincere la paura dei numeri scoprendo le doti innate della mente
Rizzoli Milano 1999
John H Conway Richard K Guy Il libro dei numeri Hoepli Milano 2003
Richard Courant Herbert Robbins Che cosrsquoegrave la matematica Boringhieri Torino 1971
Philip J Davis Il mondo dei grandi numeri Zanichelli Bologna 1973
Keith Devlin Dove va la matematica Bollati Boringhieri Torino 1994
Jean Dieudonneacute Lrsquoarte dei numeri matematica e matematici oggi Mondadori Milano 1989
Martin E Ellmann La crittografia a chiave pubblica in La matematica della complessitagrave Quaderni n 67
settembre 1992 Le Scienze
Paolo Ferragina Fabrizio Luccio Crittografia principi ndash Algoritmi ndash Applicazioni Bollati Boringhieri Torino
2001
Godfrey H Hardy Apologia di un matematico Garzanti Milano 1989
Morris Kline Storia del pensiero matematico Einaudi Milano 1991
Serge Lang La bellezza della matematica Bollati Boringhieri Torino 1991
Mauro Leoncini Modelli di calcolo e complessitagrave computazionale in La matematica computazionale Quaderni
n 84 giugno 1995 Le Scienze
Fabrizio Luccio e Linda Pagli P = NP in La matematica della complessitagrave Quaderni n 67 settembre 1992
Le Scienze
Piergiorgio Odifreddi La Matematica del Novecento dagli insiemi alla complessitagrave Einaudi Torino 2000
34
ldquoPeriodico di matematicherdquo Serie VII Volume 7 Numero 2-3 luglio-dicembre 2000 Mathesis
ldquoPeriodico di matematicherdquo Serie VIII Volume 1 Numero 1 gennaio-marzo 2001 Mathesis
Carl Pomerance Alla ricerca dei numeri primi in ldquoLe Scienzerdquo n 174 febbraio 1983
Simon Singh Codici e segreti la storia affascinante dei messaggi cifrati dallrsquoantico Egitto a Internet Rizzoli
Milano 1999
Marcus du Sautoy Lrsquoenigma dei numeri primi lrsquoipotesi di Riemann lrsquoultimo grande mistero della matematica
Rizzoli Milano 2004
Gary Stix I segreti meglio custoditi la crittografia quantistica egrave passata dalla teoria al laboratorio per
approdare finalmente alle applicazioni in ldquoLe Scienzerdquo n 438 febbraio 2005
14
bull se p=7 e a=4 allora 47ndash4=16384ndash4 = 16380 = 7middot2340 cioegrave multiplo di 7
bull se p=5 e a=4 allora 45ndash4=1024ndash4=1020=5middot204 cioegrave multiplo di 5
bull se p=3 e a=4 allora 43ndash4=64ndash4=60=3middot20 cioegrave multiplo di 3
Lrsquoimportanza del teorema sta nel fatto che ci fornisce un metodo per stabilire se un numero egrave primo
o no infatti costruiamo un numero del tipo apndasha verifichiamo se egrave multiplo di p se non lo egrave siamo sicuri
che p non egrave primo Ad esempio vogliamo sapere se 15 egrave primo costruiamo
215ndash2=32768ndash2=32766
32766=15middot2184+6
cioegrave non egrave divisibile per 15 quindi sicuramente 15 egrave composto e infatti 15=3middot5
Ma cosa si puograve dire se invece apndasha egrave divisibile per p Sfortunatamente non possiamo essere sicuri
che p sia primo anche se egrave molto probabile che lo sia
Proviamo 217ndash2=131072ndash2=131070=17middot7710 e infatti 17 egrave primo Provando 2341ndash2 si trova che
esso egrave divisibile per 341 ma 341 non egrave primo essendo 341=11middot31 Sono detti pertanto pseudoprimi i
numeri composti che passano il test Non proviamo a calcolare 2341 percheacute sarebbe un numero
mostruosamente grande fuori dalla nostra portata ma vedremo tra poco come si puograve aggirare lrsquoostacolo
Riassumendo il piccolo teorema di Fermat afferma che egrave vero
1 se p egrave primo e a egrave un intero minore di p allora apndasha egrave divisibile per p
2 se apndasha non egrave divisibile per p allora p non egrave primo
ma se apndasha egrave divisibile per p allora p puograve essere primo ma anche composto ciograve percheacute la divisibilitagrave per p
egrave condizione necessaria ma non sufficiente percheacute p sia primo Concludendo possiamo dire che usando
questo teorema per verificare la primalitagrave di un numero se scopriamo che ap-a non egrave divisibile per p siamo
sicuri che p egrave composto ma se egrave divisibile per p allora p egrave probabilmente primo nel senso che puograve essere
un primo autentico o pseudoprimo
La cosa interessante egrave che la probabilitagrave che un numero composto sia uno pseudoprimo (cioegrave che
superi il test di primalitagrave ma non sia primo come per esempio 341) su una base casuale diminuisce
fortemente allrsquoaumentare del numero Un numero di 1000 cifre composto ha circa una possibilitagrave su 10123
di essere uno pseudoprimo su una base scelta a caso La tabella 3 riporta tali probabilitagrave in funzione del
numero di cifre
Cifre in x Limite superiore per P(x)
Cifre in x Limite superiore per P(x)
Cifre in x
Limite superiore per P(x)
60 00716 80 00000846 100 00000000277
120 528middot10ndash12 150 149middot10ndash17 200 385middot10ndash27
300 58middot10ndash29 400 57middot10ndash42 500 23middot10ndash55
700 18middot10ndash82 1000 12middot10ndash123 2000 86middot10ndash262
5000 76middot10ndash680 10000 16middot10ndash1331 100000 13middot10ndash10584
Tabella 3 Probabilitagrave che un numero composto sia pseudoprimo
Nel 2002 tre ricercatori indiani Manindra Agrawal Neeraj Kayal e Nitin Saxena hanno costruito un
algoritmo denominato AKS (dalle iniziali dei nomi) sempre basato sulla fondamentale proprietagrave enunciata dal
15
piccolo teorema di Fermat ma che risulta deterministico e che riduce in maniera drastica il tempo di calcolo
Lrsquoalgoritmo fornisce una svolta significativa in un settore lungamente atteso e di grande interesse pratico ma
per ora non sembra che possa avere immediata applicazione in quanto molto piugrave lento dei test probabilistici i
quali drsquoaltra parte sono quasi certi per i numeri primi di centinaia di cifre che servono attualmente in
crittografia
Storia della crittografia
La crittografia che letteralmente significa scrittura nascosta nasce dalla necessitagrave di segretezza di alcune
informazioni e pertanto con tale termine intendiamo lo studio dei metodi che consentono la trasmissione sicura
dellrsquoinformazione
Drsquoaltro canto lrsquoesistenza di informazioni segrete genera il desiderio di svelarle e da tale desiderio nasce
la crittoanalisi con cui intendiamo lo studio di metodi che consentono la decifrazione dei messaggi crittografati
La storia della crittografia drsquoaltra parte altro non egrave che la secolare battaglia tra crittografi e crittoanalisti
Infatti ogni sistema crittografico rimane valido fincheacute un crittoanalista non individua un suo punto debole sulla
base del quale riesce a elaborare il sistema di decifrazione
Crittografi e crittoanalisti insieme hanno dato un grande contributo al progresso scientifico e tecnologico
Infatti tutti i metodi della crittografia e della crittoanalisi fanno ricorso a metodi e strumenti di una vasta varietagrave
di scienze come la matematica la linguistica la teoria dellrsquoinformazione la fisica quantistica le quali a loro
volta sono da essi arricchite e stimolate
Lrsquoidea su cui si basa un metodo crittografico consiste nel concordare tra mittente e destinatario che
vogliono scambiarsi un messaggio senza che venga intercettato da terzi una procedura per alterare il testo in
chiaro del messaggio Il destinatario puograve ricavare il testo originale applicando al testo cifrato la procedura
inversa Chi intercetta il messaggio non conoscendo la procedura non puograve ricostruire il messaggio La sicurezza
del metodo sta nella difficoltagrave da parte del crittoanalista di poter ricostruire la procedura dallrsquoanalisi del
messaggio cifrato
Prima dellrsquoera informatica i metodi crittografici erano essenzialmente due per trasposizione o per
sostituzione
Nella trasposizione le lettere sono mutate di posto generando di fatto un anagramma Ma la
trasposizione non puograve essere casuale Infatti nel caso di messaggi brevi non sarebbe sicura in quanto i pochi
caratteri alfabetici che costituiscono il messaggio possono essere combinati in pochi modi diversi per cui
diventa facile ricostruire il messaggio per tentativi Ad esempio la parola ldquomiordquo consta di 3 caratteri alfabetici
esistono al massimo sei sequenze diverse mio moi imo iom omi oim analizzandole tutte e sei egrave facile
ricostruire la sequenza ldquomiordquo Ma al crescere della lunghezza del messaggio cresce mostruosamente anche il
numero delle sequenze infatti un anagramma di una parola di n lettere altro non egrave che una permutazione di n
elementi e si dimostra che il numero totale delle permutazioni di n elementi egrave dato da n (si legga n fattoriale)
uguale al seguente prodotto n(nndash1)(nndash2)(nndash3)hellip(nndash (nndash1)) Pertanto se il messaggio egrave costituito ad esempio da
20 lettere i possibili anagrammi sono 20=20middot19middot18middot17middot16middot15middot14middot13middot12middot11middot10middot9middot8middot7middot6middot5middot4middot3middot2middot1 cioegrave piugrave di 1000
miliardi e anche se si potesse controllare un anagramma al secondo ci vorrebbero piugrave di trentuno secoli per
analizzarli tutti In questo caso la comunicazione risulterebbe sicura essendo impossibile analizzare tutte le
16
possibili sequenze e ricostruire il messaggio ma di fatto egrave inutilizzabile anche dal destinatario percheacute di fronte
allo stesso problema
Per rendere efficace tale metodo egrave necessario che mittente e destinatario si accordino su un criterio di
trasposizione fissato in anticipo e piugrave egrave complicato tale criterio e piugrave egrave sicuro il metodo
Esiste il metodo della trasposizione cosiddetta a inferriata Esso consiste nella trascrizione di un testo
lungo due linee orizzontali una superiore e una inferiore passando da una allrsquoaltra a ogni successivo carattere
alfabetico Finita la trascrizione la seconda fila di caratteri saragrave accodata alla prima per dare origine al testo
cifrato Ad esempio
testo del messaggio incontriamoci stasera alle sette
testo del messaggio cifrato icnraoitsralstenotimccsaealeet
Il destinatario ricostruisce il testo originale applicando la trasposizione inversa
Esistono molti altri tipi di trasposizione per esempio si puograve variare il numero delle file su cui trascrivere
il messaggio oppure si puograve passare da una fila allrsquoaltra ogni due caratteri anzicheacute dopo ogni singolo carattere e
cosigrave via Da osservare che ogni carattere alfabetico mantiene la propria identitagrave ma cambia la posizione
Nella sostituzione ogni carattere alfabetico del messaggio originale viene sostituito con un altro carattere
alfabetico secondo un criterio stabilito In questo caso ogni carattere alfabetico mantiene la posizione ma
cambia la propria identitagrave
Sostanzialmente esso necessita di determinare come primo passo un alfabeto cifrante che egrave ottenuto
rimescolando secondo un criterio lrsquoalfabeto ordinario In questo modo a ogni carattere dellrsquoalfabeto ordinario
corrisponde un carattere dellrsquoalfabeto cifrante Per cifrare il messaggio si sostituisce ogni carattere del messaggio
con il corrispondente carattere dellrsquoalfabeto cifrante Per decifrare il messaggio si applica la procedura inversa
Il primo esempio documentato di cifratura per sostituzione si trova nel De bello gallico di Giulio Cesare
detto anche cifrario di Cesare Qui lrsquoalfabeto cifrante era ottenuto da quello ordinario spostando a destra di tre
posti ogni carattere alfabetico ad esempio per cifrare il messaggio si sostituisce ogni lettera con la
corrispondente dellrsquoalfabeto cifrante (figura 2)
17
Figura 2 Cifrario di Giulio Cesare
Per decifrare si sostituisce ogni lettera del messaggio cifrato utilizzando la corrispondenza inversa
Come si puograve facilmente osservare in questo metodo lrsquoalfabeto cifrante altro non egrave che una
riorganizzazione dellrsquoalfabeto ordinario che si puograve ottenere con un qualsiasi spostamento tra 1 e il numero delle
lettere dellrsquoalfabeto ordinario Per esempio nel caso dellrsquoalfabeto italiano che consta di 21 lettere si possono
effettuare 20 diversi spostamenti e ottenere quindi 20 diversi alfabeti cifranti Essendo lrsquoalfabeto cifrante una
riorganizzazione dellrsquoalfabeto ordinario non egrave detto che questa debba essere ottenuta utilizzando il criterio
dello spostamento ma puograve coincidere con un qualsiasi anagramma dellrsquoalfabeto ordinario Si vede quindi
facilmente come aumentano gli alfabeti cifranti nel nostro caso il loro numero per quanto detto
precedentemente uguaglia il numero delle permutazioni di 21 elementi e cioegrave 21 e cioegrave oltre 50 miliardi di
miliardi
A partire da questo esempio cerchiamo di chiarire in termini generali il significato di metodo
crittografico intendendo con esso un algoritmo che mediante una chiave trasforma un messaggio in chiaro in
un messaggio cifrato o crittogramma
Ad esempio nel metodo descritto sopra lrsquoalgoritmo equivale alla procedura con cui ogni lettera
dellrsquoalfabeto in chiaro egrave sostituita dalla corrispondente lettera dellrsquoalfabeto cifrante la chiave equivale al
particolare alfabeto cifrante scelto per la cifratura o decifrazione di un particolare crittogramma
Inoltre crsquoegrave da sottolineare lrsquoimportanza concettuale della distinzione tra algoritmo e chiave Infatti la sola
conoscenza dellrsquoalgoritmo senza la chiave non permette di decifrare il crittogramma Ed egrave questo uno dei
principi fondamentali della crittografia formulato in modo definitivo nel 1883 dallrsquoolandese Auguste
Kerckhoffs von Nieuwenhof noto anche come legge di Kerckhoffs ldquola sicurezza di un crittosistema non deve
dipendere dal tener celato il crittoalgoritmo La sicurezza dipenderagrave solo dal tener celata la chiaverdquo
Le caratteristiche di un efficace sistema crittografico possono essere riassunte nelle seguenti
1 segretezza della chiave
2 semplicitagrave della chiave (per evitare possibili malintesi o errori al momento dello scambio tra
mittente e destinatario)
3 alto numero di potenziali chiavi tra cui scegliere
18
Come si puograve notare la 2) e la 3) sono collegate tra loro infatti nel sistema descritto sopra si potrebbe
scegliere una chiave piugrave semplice sacrificando il numero di chiavi potenziali
Infatti invece di generare lrsquoalfabeto cifrante da una riorganizzazione casuale dellrsquoalfabeto ordinario lo si
puograve fare a partire da una parola chiave come nel seguente esempio Supponiamo di accordarci sulla parola
chiave lsquolaurarsquo si eliminano eventuali spazi e lettere ripetute quindi la parola chiave diventa lsquolaurrsquo a questo
punto la sequenza l a u r saragrave lrsquoinizio dellrsquoalfabeto cifrante cui seguiranno tutte le altre lettere mancanti in
ordine alfabetico partendo dallrsquoultima lettera della chiave per cui lrsquoalfabeto cifrante che si ottiene saragrave l a u r s t
v z b c d e f g h i m n o p q
I crittosistemi basati sulla sostituzione hanno dominato la scena per tutto il primo millennio della nostra era
fincheacute i crittoanalisti non trovarono il suo punto debole ed elaborarono un metodo per decifrarne i crittogrammi prodotti
La violazione di tali sistemi si basa su unrsquoidea dovuta per prima a crittoanalisti arabi nella quale si
combinano conoscenze di linguistica statistica e matematica nota con il nome di analisi delle frequenze
Essa egrave descritta dallo studioso del IX secolo Abu Yusuf ibn Ishaq al-Kind sopran-nominato il filosofo
degli arabi in una sua monografia dal titolo Sulla decifrazione dei messaggi crittati ritrovata nellrsquoarchivio
ottomano Sulaimaniyyah di Istanbul solo nel 1987 Nel testo si legge
Un modo di svelare un messaggio crittato se conosciamo la lingua dellrsquooriginale consiste nel trovare
un diverso testo chiaro nella stessa lingua abbastanza lungo da poter calcolare la frequenza di ciascuna
lettera
Chiamiamo ldquoprimardquo quella che compare piugrave spesso ldquosecondardquo quella che la segue per frequenza
ldquoterzardquo la successiva e cosigrave via fino a esaurire tutte le lettere del campione di testo chiaro
Esaminiamo poi il testo in cifra che vogliamo interpretare ordinando (in base alla frequenza) anche i
suoi simboli Troviamo il simbolo piugrave comune e rimpiazziamolo con la ldquoprimardquo lettera dellrsquoesempio
chiaro il simbolo che lo segue per frequenza sia rimpiazzato dalla ldquosecondardquo lettera il successivo simbolo
piugrave comune sia rimpiazzato dalla ldquoterzardquo e cosigrave via fino ad aver preso in considerazione tutti i simboli del
crittogramma che intendevamo svelare
Tabella 4 Frequenze delle diverse lettere in italiano
Per superare lrsquoanalisi delle frequenze furono ideati diversi nuovi metodi crittografici tra cui ricordiamo
1 il metodo di sostituzione omofonica
2 il metodo di sostituzione polialfabetica
19
Il metodo di sostituzione omofonica consiste nel sostituire ogni lettera con un numero di simboli per
esempio numeri proporzionale alla sua frequenza Cosigrave ad esempio la lettera a avendo una frequenza di 11 74
viene sostituita da 11 simboli la lettera b con un solo simbolo la lettera c con 4 simboli ecc secondo la tabella 5
Il metodo di sostituzione polialfabetica consiste nellrsquouso di piugrave alfabeti cifranti su unrsquoidea di Leon
Battista Alberti che propose di utilizzarne due Lrsquoalgoritmo consiste nel sostituire la prima lettera del messaggio
in chiaro con la corrispondente del I alfabeto cifrante la seconda lettera con la corrispondente del II alfabeto
cifrante la terza con la corrispondente del I e cosigrave via passando alternativamente dal I alfabeto al secondo Come
nellrsquoesempio della figura 3
Tabella 5 Corrispondenza lettere e simboli nella sostituzione omofonica
Figura 3 Il metodo di sostituzione polialfabetica
Su tale idea si basa il metodo di Blaise de Vigenegravere diplomatico francese nato nel 1523 il quale utilizza
tanti alfabeti cifranti quante sono le lettere dellrsquoalfabeto in chiaro ad esempio nellrsquoalfabeto italiano che consta
di 21 lettere utilizza 21 alfabeti cifranti
Il primo passo consiste nel costruire la tavola di Vigenegravere in cui nella prima riga egrave riportato lrsquoalfabeto in
chiaro e in ognuna delle 21 righe successive egrave riportato un alfabeto cifrante spostato di una lettera rispetto a
quello della riga precedente cosigrave nella riga 1 egrave riportato lrsquoalfabeto spostato di una lettera nella riga 2 quello
spostato di due lettere nella riga 3 quello spostato di tre fino alla riga 20 in cui egrave riportato quello spostato di 20
lettere (figura 4)
20
Figura 4 La tavola di Vigenegravere
Il secondo passo consiste nello scegliere una parola chiave per esempio lsquoverorsquo Pertanto il messaggio in
chiaro ldquonon andarerdquo verrebbe cifrato come nella figura 5
La differenza sostanziale tra la cifratura omofonica e quella polialfabetica egrave che in quella omofonica a
ogni lettera corrispondono piugrave simboli ma ogni simbolo egrave il corrispondente di una sola lettera cioegrave egrave una
corrispondenza 1rarr m che invertita diventa mrarr 1 in quella polialfabetica a ogni lettera corrispondono piugrave
simboli e anche ogni simbolo egrave il corrispondente di piugrave lettere cioegrave mrarr m che rimane tale anche invertendola
Il vantaggio della cifratura polialfabetica egrave pertanto la sua resistenza allrsquoanalisi delle frequenze Oltre ad
ammettere un enorme numero di chiavi infatti si puograve scegliere qualunque parola del dizionario qualunque
combinazione di parole si puograve perfino ricorrere a neologismi rendendo impossibile il controllo di tutte le chiavi
possibili Ed ecco percheacute egrave ritenuta piugrave affidabile e non ha mai smesso di essere usata
Figura 5 Cifratura polialfabetica del messaggio ldquonon andarerdquo
21
Oggi sono noti tutti i punti deboli del sistema di Vigenegravere ed esistono vari procedimenti per decifrare i
crittogrammi generati da tale sistema che sfruttano ad esempio la modularitagrave nel ripetere la chiave o
osservazioni sulle ripetizioni del testo cifrato Ci sono testimonianze storiche che uno di tali procedimenti sia
stato ideato da Sir Charles Babbage famoso per aver progettato e mai realizzato la macchina alle differenze
progenitrice degli odierni calcolatori La prima descrizione resa pubblica del metodo perograve egrave del 1863 portata a
compimento dallrsquoufficiale prussiano F W Kasiski
Unrsquoosservazione decisiva fu che le insidie del metodo di Babbage potevano essere evitate utilizzando
nella cifratura di Vigenegravere una chiave molto lunga e fatta da lettere che si succedono in modo casuale se un
messaggio cifrato non presenta delle ripetizioni se non egrave possibile tentare di indovinare la chiave cadono tutti
gli appigli necessari per effettuare con successo la crittoanalisi
Tale osservazione fu ulteriormente sviluppata da G S Vernam che nel 1926 introdusse lrsquoidea di usare
una chiave casuale lunga quanto il messaggio stesso
Oggi sappiamo grazie agli studi di Claude Shannon del 1949 che tale metodo puograve definirsi
ldquoteoricamente sicurordquo
In pratica perograve ciograve comporta la difficoltagrave di costruire lunghe stringhe di lettere assolutamente casuali e di
scambiarsi segretamente e continuamente queste chiavi In sostanza risulta impraticabile per ogni messaggio
scambiato in modo sicuro egrave necessario prima trasmettere in modo sicuro il messaggio contenente la chiave
I metodi usati per buona parte del Novecento sono delle rielaborazioni sempre piugrave complesse delle idee
descritte finora ottenute anche con la costruzione di dispositivi per la meccanizzazione delle procedure di
cifratura e decifratura Un esempio tra i piugrave conosciuti egrave la macchina Enigma usata dai tedeschi durante la
Seconda guerra mondiale inventata dallrsquoingegnere Arthur Scherbius Enigma consisteva di diversi ingegnosi
elementi combinati in un potente e sofisticato dispositivo per la produzione di scritture segrete In particolare ma
macchina aveva tre componenti collegati da fili elettrici una tastiera per immettere le lettere del testo chiaro
unrsquounitagrave scambiatrice che cifra la lettera trasformandola nel corrispondente elemento del crittogramma e un
visore con varie lampadine che accendendosi indicano la lettera da inserire nel crittogramma
Lo sforzo per violare questa cifratura richiese anni di lavoro e fu portato a compimento dalla Scuola
Inglese Governativa di Codici e Cifre di Bletchley Park di cui faceva parte Alan M Turing noto oggi ai piugrave per
i suoi studi sullrsquointelligenza meccanica
La crittografia nellrsquoera dellrsquoinformatica
Nel 1945 fu realizzato ENIAC (Electronic Numerical Integrator And Calculator) unrsquoapparecchiatura
contenente 18 000 valvole elettroniche capace di effettuare 5000 calcoli al secondo considerato il capostipite
dei moderni calcolatori
Dopo il 1945 fu lrsquoinformatica a fare da protagonista nella battaglia tra crittografi e crittoanalisti operando
una decisiva svolta nelle metodologie di entrambi Infatti i metodi precedenti lrsquoera dellrsquoinformatica basavano la
propria sicurezza sullrsquoenorme numero di chiavi disponibili e sulla loro lunghezza ma che viene messa in crisi
dalla crescente potenza di calcolo dei computer Un computer molto potente infatti potrebbe individuare quella
giusta in pochi minuti anche nel caso di un milione di chiavi da esaminare
Tutti i metodi crittografici esaminati finora necessitano di
22
1 un algoritmo generale di cifratura G
2 di una chiave K che deve rimanere segreta
3 di un algoritmo di decifrazione H=Gndash1 (inverso di G)
e agiscono secondo il seguente schema
il messaggio in chiaro M tramite lrsquoalgoritmo G e la chiave K viene cifrato in MC questrsquoultimo tramite
lrsquoalgoritmo H e la stessa chiave K viene decifrato in M (figura 6)
Figura 6 Schema di metodi crittografici
La sicurezza di tali sistemi risiede interamente nella segretezza delle chiavi Ne segue che per distribuire
agli utenti le chiavi egrave necessario ricorrere a canali sicuri
Gli svantaggi che ne derivano sono essenzialmente
1 difficoltagrave nella distribuzione delle chiavi agli utenti
2 mancata autenticazione dei messaggi mittente e destinatario condividono la stessa chiave
pertanto non crsquoegrave modo di impedire che il destinatario si invii messaggi che poi sembrino
provenienti dal mittente Si pensi quali problemi possono provocare simili falsificazioni nella
posta elettronica o nei sistemi bancari elettronici
La svolta avvenne nel 1976 a opera di Diffie e Hellmann che proposero un metodo detto a chiave
pubblica il quale non necessita di uno scambio preventivo delle chiavi segrete Lrsquodea egrave chiarita dal seguente
esempio noto come esempio del doppio lucchetto
Supponiamo di avere due utenti Mitt e Dest e Mitt voglia spedire un messaggio segreto a Dest
1 Mitt mette il messaggio in una scatola che chiude con il proprio lucchetto LMitt (di cui solo lui ha
la chiave) e spedisce la scatola a Dest
2 Dest ricevuta la scatola aggiunge un proprio lucchetto LDest (di cui solo lui ha la chiave) e
rispedisce la scatola a Mitt
3 Mitt ricevuta la scatola con il doppio lucchetto toglie il lucchetto LMitt e rispedisce la scatola a
Dest
4 Dest ricevuta la scatola puograve togliere il lucchetto LDest e leggere il messaggio di Mitt
Il problema della distribuzione delle chiavi sembra risolto percheacute lo schema a doppia chiave non richiede
la condivisione delle stesse Tuttavia la realizzazione pratica di un tale sistema si scontra con un altro problema
quello riguardante lrsquoordine in cui cifrature e decifrature sono eseguite In altre parole in un sistema crittografico
egrave essenziale lrsquoordine con cui avvengono le rispettive cifrature e decifrature in quanto la cifratura eseguita per
23
ultimo andrebbe decifrata per prima (egrave un porsquo come quando la mattina infiliamo prima le calze e poi le scarpe
ma alla sera togliamo prima le scarpe e poi le calze)
Lrsquoesempio del doppio lucchetto in cui ciograve non avviene sembra tuttavia funzionare come idea percheacute ai
fini dellrsquoapertura della scatola non ha importanza lrsquoordine di rimozione dei lucchetti
Anche se il trucco dei due lucchetti non sembra immediatamente applicabile tuttavia fu il giusto punto di
partenza per la realizzazione di un sistema crittografico che aggira lrsquoostacolo della distribuzione delle chiavi
Infatti lrsquoidea egrave che mittente e destinatario generano ciascuno due chiavi distinte una chiave di cifratura E
(da utilizzare nellrsquoalgoritmo di cifratura) e una chiave di decifrazione D (da utilizzare nellrsquoalgoritmo di
decifrazione) Le chiavi sono correlate nel senso che servono per effettuare operazioni inverse (figura 7)
Figura 7 Le chiavi correlate per effettuare operazioni invese
Il trucco consiste nellrsquoimpossibilitagrave di poter derivare la chiave D dalla chiave E mediante algoritmi di
calcolo (figura 8)
Ogni utente puograve rendere pubblica la propria chiave di cifratura E indicandola magari sullrsquoelenco
telefonico senza compromettere la propria chiave di decifrazione che rimane segreta di pubblico dominio sono
anche gli algoritmi di cifratura G e decifrazione H
Figura 8 Inapplicabilitagrave del metodo del doppio lucchetto
Pertanto lrsquoesempio del doppio lucchetto viene cosigrave interpretato
1 il destinatario pubblica la chiave di cifratura E e mantiene segreta la chiave di decifrazione D
2 il mittente applica GE al messaggio M trasformandolo nel messaggio cifrato MC cioegrave
GE(M)=MC che spedisce al destinatario
3 il destinatario applica HD al messaggio cifrato MC riottenendo M cioegrave HD(MC)=M
24
La sicurezza di un tale sistema si fonda sulla difficoltagrave di poter
1 ritrovare il testo cifrato provando ad applicare lrsquoalgoritmo GE che egrave pubblico ad ogni possibile
testo in chiaro il cui numero pur essendo enorme egrave comunque finito
2 ricavare lrsquoalgoritmo HD da GE
in quanto entrambe le tecniche sono computazionalmente inattuabili nel senso che richiedono un tempo
di calcolo di lunghezza al di fuori di ogni possibile considerazione anche per i piugrave potenti calcolatori
Per descrivere tali algoritmi sono necessari alcuni concetti matematici che andiamo a illustrare
Figura 9 Schema di cifrario a chiave pubblica
Lrsquoaritmetica modulare
Lrsquoaritmetica modulare la cui introduzione egrave dovuta a Gauss costituisce un sistema di calcolo con
importanti applicazioni nei test di primalitagrave e nei metodi che stanno alla base della sicurezza delle comunicazioni
elettroniche Con essa infatti si hanno i seguenti vantaggi 1) si riduce lo spazio dei numeri su cui gli algoritmi
sono chiamati ad operare e quindi si aumenta la velocitagrave di calcolo 2) si riesce a rendere difficili alcuni problemi
computazionali che sono semplici (o addirittura banali) nellrsquoalgebra ordinaria al fine di aumentare la sicurezza
nelle comunicazioni Lrsquoidea egrave semplice ma potente Forse non lo sappiamo ma usiamo spesso laritmetica
modulare Potremmo chiamarla aritmetica dellorologio
Infatti pensiamo ad un normale orologio con 24 ore Se sono le 15 ed un amico ci comunica che saragrave a
casa nostra tra 5 ore sappiamo che egli verragrave alle 20 infatti 15+5=20 Ma se sono le 23 e dobbiamo partire fra 7
ore certamente non diciamo che la partenza saragrave alle 30 anche se 23+7=30 Sappiamo che dovremo partire alle
6 Allo stesso modo se sono le 20 che ora saragrave tra 14 ore Non diremo 34 anche se 20+14=34 ma diremo che
sono le 10 Come si spiega tutto ciograve
Immaginiamo di segnare sul quadrante dellrsquoorologio 24 ore Se la lancetta segna le 23 aggiungere 7 ore
significa spostarsi di 7 posti fino ad arrivare alle 6 Si giunge allo stesso risultato calcolando 23+7=30 ed
osservando che 30=1sdot24+6 o che egrave lo stesso 3024 =1 con resto 6 che significa che 30 lo si ottiene facendo fare
alla lancetta un giro completo piugrave 6
25
Se la lancetta segna le 20 e aggiungiamo 14 ore lrsquoorologio segneragrave le 10 percheacute 20+14=34 ma 3424= 1
con resto 10 per cui 34 lo si ottiene percorrendo un giro completo piugrave 10
Proviamo con il normale orologio a 12 ore I numeri che vediamo sul quadrante sono 0 1 2 3 4 5 6 7
8 9 10 11 Il numero 12 non compare percheacute a partire da 0 trascorse 12 ore torniamo di nuovo a 0 Questa
volta per fare un giro completo occorrono 12 ore Pertanto se sono le 7 che ore saranno tra 24 ore Saranno
ancora le 7 percheacute 7+24=31 ma 3112 = 2 con resto 7 cioegrave si compiono 2 giri completi piugrave 7 se sono le 8 tra 6
ore saranno le 2 percheacute 8+6=14 ma 1412=1 con resto 2 Dagli esempi dovrebbe risultare chiaro allora che ciograve
che contano non sono i risultati delle somme ma i loro resti nelle divisioni per il numero delle ore segnate sul
quadrante dellrsquoorologio
La stessa cosa succede con i giorni della settimana se pensiamo a un orologio con 7 ore sul quadrante
Facciamo corrispondere ai giorni della settimana i numeri da 0 a 6 (figura 10)
domenica Lunedigrave Martedigrave Mercoledigrave Giovedigrave Venerdigrave Sabato darr darr darr darr darr darr darr 0 1 2 3 4 5 6
Figura 10 Corrispondenza dei giorni della settimana con i numeri da 0 a 6
Se per esempio oggi egrave venerdigrave che giorno saragrave tra 12 giorni
Dovremo calcolare 5+12=17 ma i giorni si ripetono ogni 7 pertanto osservando che 177 =2 con resto 3
possiamo concludere che a partire da 5 e aggiungendo 12 si compiono 2 giri completi piugrave 3 ed essendo 3 il
numero corrispondente a mercoledigrave concludiamo che saragrave mercoledigrave Facciamo un altro esempio se oggi egrave
lunedigrave (1) che giorno saragrave tra 20 giorni Calcoliamo 1+20=21 217= 3 con resto 0 quindi saragrave domenica
Il numero n delle ore sullrsquoorologio costituisce quello che si chiama il modulo e individua lrsquoaritmetica di
modulo n in cui lrsquoinsieme dei numeri con i quali si opera indicato con Zn egrave lrsquoinsieme dei possibili resti della
divisione per n e cioegrave Zn=0 1 2 3 hellip nndash1e le operazioni si eseguono con le regole illustrate negli esempi
precedenti
Lrsquoesempio dellrsquoorologio a 24 ore costituisce la cosiddetta aritmetica finita di modulo 24 in essa Z24=0
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 essendo questi ultimi i possibili resti
della divisione per 24 Lrsquoorologio a 12 ore costituisce lrsquoaritmetica finita di modulo 12 in essa Z12=0 1 2 3 4
5 6 7 8 9 10 11 essendo questi ultimi i possibili resti della divisione per 12 Lrsquoesempio dei giorni della
settimana egrave lrsquoaritmetica finita di modulo 7 in cui Z7=0 1 2 3 4 5 6 essendo questi ultimi i possibili resti
della divisione per 7 Riassumiamo costruendo unrsquoaritmetica finita di modulo 4 I possibili resti della divisione
per 4 sono 0 1 2 3 quindi Z4=0123 Lrsquoaddizione e la moltiplicazione in Z4 si esegue come negli esempi
della tabella 6
26
operazioni indicate
Risultato nellrsquoaritmetica ordinaria
Risultato nellrsquoaritmetica modulo 4
2+2 4 0 percheacute 44=1 con resto 0
3+2 5 1 percheacute 54=1 con resto 1
2+1 3 3 percheacute 34=0 con resto 3
3sdot3 9 1 percheacute 94=2 con resto 1
3sdot2 6 2 percheacute 64=1 con resto 2
2sdot2 4 0 percheacute 44=1 con resto 0
Tabella 6 Addizione e moltiplicazione nellrsquoaritmetica finita di modulo 4
Si possono costruire le tavole dellrsquoaddizione e della moltiplicazione dellrsquoaritmetica modulo 4 che costituiscono
le tabelline di questa aritmetica sulla base delle quali si esegue qualsiasi addizione e moltiplicazione modulo 4
Nella tabella 7 sono spiegate le tabelline dellrsquoaritmetica in modulo 4
Tabella 7 Tavole dellrsquoaddizione e della moltiplicazione dellrsquoaritmetica modulo 4
Infine per indicare che due numeri a e b divisi per n danno lo stesso resto si usano le seguenti notazioni
tutte equivalenti tra loro
a=b mod n andashb=0 mod 4 a equiv b (mod n) che si legge a egrave congruo b modulo 4
Esempio
26=12 mod 7 egrave la stessa cosa di
26ndash12=0 mod 7 che egrave la stessa cosa di
26 equiv 12 (mod 7) e tutte e tre stanno a indicare che 26 e 12 divisi per 7 danno lo stesso resto che egrave 5 e
pertanto sono tutti equivalenti a 5
Facciamo vedere come sfruttare lrsquoaritmetica modulare per calcolare potenze come 2341 (figura 11) Il
metodo si basa sulla proprietagrave che il resto del quadrato di un numero a per un dato modulo n egrave uguale al
quadrato del resto dello stesso numero a per lo stesso modulo n cioegrave a2 mod n =(a mod n)2
+ 0 1 2 3
0 0 1 2 3
1 1 2 3 0
2 2 3 0 1
3 3 0 1 2
x 0 1 2 3
0 0 0 0 0
1 0 1 2 3
2 0 2 0 2
3 0 3 2 1
27
Figura 11 Il metodo per calcolare 2341
La funzione di Eulero
Per ogni intero ngt1 si definisce la funzione di Eulero = numero di interi minori di n e primi con esso Ad
esempio
bull ( ) 45 =φ percheacute gli interi minori di 5 sono 1 2 3 4 ed essi sono tutti primi con n
bull ( ) 26 =φ percheacute gli interi minori di 6 sono 1 2 3 4 5 e fra essi solo 1 e 5 sono primi con 6
bull ( ) 67 =φ percheacute gli interi minori di 7 sono 1 2 3 4 5 6 ed essi sono tutti primi con 7
bull ( ) 412 =φ percheacute gli interi minori di 12 sono 1 2 3 4 5 6 7 8 9 10 11 e fra essi solo 1 5 7
11 sono primi con 12
Se si conosce la scomposizione in fattori del numero n il seguente teorema ci fornisce un metodo per
calcolare Infatti esso afferma che per ogni ngt1 non primo ( )
minussdotsdot
minussdot
minussdotnppp
n=nφ 11
11
11
21
dove
p1 p2 hellip pn sono i fattori primi di n presi senza molteplicitagrave
22 mod 341=4
24=(22)2=(22 mod 341)2=42=16mod341=16
28=(24)2=(16)2=256mod341=256
216= (28)2=(256)2=65536mod341=64
232=(216)2=(64)2=4096mod341=4
264=(232)2=42=16mod341=16
2128=(264)2=(16)2=256mod341=256
2256=(2128)2=(256)2=65536mod341=64
2341=2(256+64+16+4+1) 2256 264 216 24 21 x x x x
64 1
1024 mod 341
= 1 x 64
64 x 16
1024 mod 341
1 x 2 =
=
x
28
Ad esempio
essendo 12 = 3sdot2sdot2 ( ) 42
1
3
212
2
11
3
111212 ===φ sdotsdot
minussdot
minussdot
essendo 6=2sdot3 ( ) 22
1
3
26
2
11
3
1166 ===φ sdotsdot
minussdot
minussdot
se n=psdotq ( ) ( ) ( )11111
11
1 minussdotminusminussdotminussdot
minussdot
minussdot qp=q
q
p
pn=
qpn=nφ
Ovviamente se n egrave un numero primo = nndash1
Vale inoltre il seguente teorema di Eulero per ngt1 e per ogni altn e primo con n si ha
Ad esempio per n=6 ( ) 26 =φ infatti i primi con 6 sono 1 e 5 per il teorema di Eulero si ha
2mod1255
2mod1112
2
equiv=
equiv=
per n=5 ( ) 45 =φ e i primi con 5 sono 1 2 3 4 e per il teorema di Eulero si ha
5mod12564
5mod1813
5mod1162
5mod111
4
4
4
4
equiv=
equiv=
equiv=
equiv=
Si puograve notare come nel caso in cui n egrave un numero primo si ritrova il piccolo teorema di Fermat
Infatti per n primo ( )nφ = nndash1 e per il teorema di Eulero per ogni altn e primo con n Ricordiamo infatti
che il piccolo teorema di Fermat afferma che se n egrave un numero primo e a un intero minore di n allora egrave
divisibile per n che con il linguaggio dellrsquoaritmetica modulare diventa che puograve essere riscritto e se a egrave primo
con n allora egrave che egrave equivalente a
Infine si prova che per ogni altn e primo con esso esiste lrsquoinverso di a e esso egrave dato da ( ) 1minusnaφ Infatti
( ) ( ) na=aa nφnφ1mod1 equivsdot minus per il teorema di Eulero Si ricorda che lrsquoinverso di un numero a egrave quel numero che
moltiplicato per a dagrave 1 indicato convenzionalmente con andash1
Ad esempio per n=5 i primi con 5 sono 1 2 3 4 e per ognuno di questi esiste lrsquoinverso infatti
bull lrsquoinverso di 1 egrave ( ) 1mod51111 31415 equivminusminus ===φ
e infatti
bull lrsquoinverso di 2 egrave ( ) 3mod58222 31415 equivminusminus ===φ
e infatti
bull lrsquoinverso di 3 egrave ( ) 2mod527333 31415 equivminusminus ===φ
e infatti
bull lrsquoinverso di 4 egrave ( ) 4mod564444 31415 equivminusminus ===φ
Le funzioni unidirezionali
Chiamiamo funzione da un insieme A a un insieme B qualunque procedura che associa a ogni elemento
di un insieme A (detto dominio) uno e un solo elemento di un insieme B (detto condominio) In simboli f
A rarr B Se poi indichiamo con x il generico elemento dellrsquoinsieme A e con y il generico elemento dellrsquoinsieme B
la f indica la procedura che ad ogni xisinA associa un yisinB e cioegrave y=f(x) ad esempio ldquofare il doppio dihelliprdquo
29
prendendo come dominio e codominio lrsquoinsieme dei numeri interi egrave in questo senso una funzione percheacute dato
ad esempio il numero 3 lo trasforma nel numero 6 come 5 lo trasforma in 10 e cosigrave via
Molte funzioni matematiche sono cosiddette bidirezionali nel senso che egrave facile dato un determinato x
generare il corrispondente y ma egrave altrettanto facile invertire la funzione cioegrave ritrovare lrsquoelemento x originario a
partire dal suo corrispondente
Facciamo qualche esempio
bull funzione xrarr fare il doppiorarr 2sdotx= y 3rarr fare il doppiorarr 2sdot3 = 6
funzione inversa y=2sdotx rarr fare la metagraverarr x 6=2sdot3 rarr fare la metagraverarr 3
bull funzione xrarr fare il quadruplorarr 4sdotxrarr aggiungere 1rarr sdoty=4sdotx +1
5rarr fare il quadruplorarr 4sdot5rarr aggiungere 1rarr 4sdot5 +1=21
funzione inversa y=4sdotx +1rarr sottrarre 1rarr 4sdot xrarr dividere per 4rarr x
21=4sdot5 +1rarr sottrarre 1rarr 4sdot 5rarr dividere per 4rarr 5
Le funzioni unidirezionali sono invece quelle funzioni facilmente calcolabili ma che non si possono invertire
Le funzioni cosiddette pseudounidirezionali (dette anche funzioni trappola a molla segreta) sono invece
quelle funzioni facilmente calcolabili ma che non altrettanto facilmente si possono invertire a meno che non si
conoscano alcune informazioni (la molla segreta) utilizzate nella loro costruzione
Lrsquoaritmetica modulare gioca un ruolo determinante in questo caso infatti permette di trasformare
funzioni bidirezionali in funzioni pseudounidirezionali
Facciamo lrsquoesempio della funzione ldquofare il quadruplordquo in simboli f(x)=4sdotx Egrave facilmente calcolabile
percheacute dato x per ottenere f(x) basta moltiplicare per 4 ma egrave altrettanto facile calcolare la sua inversa percheacute
dato f(x) basta dividere per 4 per ottenere lrsquooriginario x Ma anche se non avessimo la procedura inversa di
dividere per 4 sarebbe facile ritrovare lrsquoelemento originario anche procedendo per tentativi ed eliminazione
infatti se per esempio f(x) =20 si puograve tentare x=3 in tal caso f(x)=12 troppo piccolo quindi x deve essere
maggiore di 3 Si puograve allora pensare a 6 ma f(x)=24 troppo grande quindi x deve essere minore di 6 e cosigrave via
Vediamo cosa accade se calcoliamo utilizzando una aritmetica modulare Per esempio consideriamo la
stessa funzione f(x)=4sdotx in una aritmetica modulo 7 Possiamo osservare che la funzione non si comporta piugrave in
modo regolare come prima per accorgersene basta costruire una tabella (tabella 8)
x 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
f(x)=4sdotx 4 8 12 16 20 24 28 32 36 40 44 48 52 56 60
f(x)=4sdotmod 7 4 1 5 2 6 3 0 4 1 5 2 6 3 0 4
Tabella 8 La funzione f(x)=4sdotx in una aritmetica modulo 7
Anche in questa semplice situazione egrave chiaro che egrave piugrave complicato invertire la funzione e pertanto i valori
di x sono molto meglio protetti Si puograve fare anche lrsquoesempio della funzione esponenziale f(x)=3 x (tabella 9)
Tabella 9 La funzione f(x)=3 x in aritmetica modulo 11
x 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
f(x)=x3 1 8 27 64 125 216 343 512 729 1000 hellip hellip hellip hellip hellip
f(x)=x3 mod 11 1 8 5 9 4 7 2 6 3 10 hellip hellip hellip hellip hellip
30
Il cifrario a chiave pubblica RSA
Uno dei piugrave noti sistemi crittografici a chiave pubblica che sfrutta le idee precedentemente descritte egrave il
metodo RSA proposto dai matematici R L Rivest A Shamir e L Adlemann nel 1978 Esso risolve il problema
dello scambio delle chiavi in quanto queste ultime sono conosciute solamente ai rispettivi proprietari che non le
hanno preventivamente concordate e scambiate
Illustriamo schematicamente come i due utenti Mitt e Dest possano scambiarsi un messaggio segreto
utilizzando il metodo RSA Entrambi Mitt e Dest indipendentemente lrsquouno dallrsquoaltro poi
1 scelgono in modo casuale due numeri primi p q grandi (di 200-300 cifre in base 10)
2 calcolano N = psdotq e Φ(N) = (pndash1)sdot(qndash1)
3 scelgono un intero eltΦ(N) e primo con Φ(N) tale numero e saragrave la chiave pubblica
4 calcolano il numero d inverso di e mod Φ(N) tale cioegrave che esdotdequiv 1mod Φ(N) tale numero d saragrave
la chiave privata
5 rendono pubblici i numeri N ed e
Mitt per spedire un messaggio a Dest compie le seguenti operazioni
1 codifica il messaggio in un modo standard usando i numeri lt N
2 trasforma ogni numero M di tale codifica in Me (mod N) e lo spedisce a Dest
per decodificare il messaggio ricevuto Me Dest calcola (Me)d =Mesdotd =Mndash1=M (modN) riottenendo il messaggio
originale
Figura 12 Schema di cifrario con metodo RSA
31
Figura 13 Esempio di applicazione di metodi RSA
In che cosa consiste la sicurezza del metodo Da quanto esposto si osserva che per decodificare il
messaggio bisogna
1 conoscere d (chiave segreta)
2 essendo d lrsquoinverso di e nellrsquoaritmetica mod Φ(N) essendo e noto egrave necessario conoscere Φ(N)
3 ma noto N per calcolare Φ(N) egrave necessario conoscere i fattori primi di N cioegrave egrave necessario fattorizzare
N che egrave un problema computazionalmente difficile per quanto osservato in precedenza
Anche se non egrave stato dimostrato che non si possa rompere il codice in altro modo e cioegrave senza conoscere Φ(N) e i
fattori di N a tuttrsquooggi si puograve affermare che la sicurezza del metodo dipende essenzialmente dai seguenti fatti
Per codificare il messaggio bisogna saper costruire dei numeri primi grandi e tale operazione egrave
computazionalmente veloce si puograve infatti dimostrare che la complessitagrave computazionale di opportuni test di
primalitagrave per stabilire se un numero n egrave primo utilizzando il linguaggio di quel ramo della matematica nota
come teoria della complessitagrave egrave ldquoquasi-polinomialerdquo
Per violare il sistema bisogna saper fattorizzare interi grandi ottenuti come prodotto di due primi tale
problema egrave computazionalmente ldquolentordquo cioegrave con il linguaggio della teoria della complessitagrave appartiene alla
classe dei problemi non polinomiali Tale marcata differenza tra la velocitagrave di esecuzione delle operazioni di
costruzione di numeri primi grandi e di fattorizzazione di interi grandi garantisce la sicurezza del metodo
almeno per un tempo sufficientemente lungo Ad esempio con la tecnologia attuale lrsquooperazione di
fattorizzazione di un intero di 140 cifre in base 10 prodotto di due numeri primi casuali calcolati in pochi
secondi su un computer disponibile in commercio richiede utilizzando vari supercomputers operanti
parallelamente circa un mese
La RSA Security Inc gestisce una sfida a livello mondiale ove vengono premiati coloro che fattorizzano
gli interi proposti da loro in una particolare lista Ad esempio il 3 dicembre del 2003 egrave stato fattorizzato
32
rsa576 =
188198812920607963838697239461650439807163563379417382700763356422988859715234
665485319060606504743045317388011303396716199692321205734031879550656996221305
168759307650257059
un numero di 174 cifre decimali prodotto di due primi di 87 cifre
p =
398075086424064937397125500550386491199064362342526708406385189575946388957261
768583317
q =
472772146107435302536223071973048224632914695302097116459852171130520711256363
590397527
Le chiavi attualmente utilizzate dallRSA sono a 309 cifre decimali
La firma digitale
Consideriamo al solito un mittente che deve inviare a un destinatario un messaggio m La codifica di m
con il metodo descritto assicura lrsquoautenticitagrave del messaggio ma non fornisce alcuna sicurezza sulla sua
paternitagrave Infatti il messaggio m pur essendo autentico potrebbe essere stato inviato da qualcuno che si spaccia
per il mittente Questa egrave unimportantissima questione particolarmente nella trasmissione di messaggi che oltre
a dover essere segreti devono garantire la loro origine
Si dovrebbe quindi disporre di un analogo della firma manuale detta appunto firma digitale La firma
digitale deve allora essere progettata in modo da possedere le stesse caratteristiche di una firma manuale e cioegrave
lrsquoautenticitagrave la non falsificabilitagrave e lrsquoimpossibiltagrave di essere riutilizzata Facciamo vedere come lo stesso metodo
RSA puograve essere utilizzato per progettare una firma digitale
La situazione egrave la seguente il mittente (di seguito indicato con Mitt) invia un messaggio m con la firma
F al destinatario (di seguito indicato con Dest) Siano a b rispettivamente le chiavi pubblica e segreta di MITT
siano e d rispettivamente le chiavi pubblica e segreta di DEST
La procedura per apporre la firma digitale F al messaggio m egrave illustrata nei seguenti passi riassunti nel
grafico della figura 14
1 Mitt cripta la firma F (cioegrave i suoi dati identificativi) usando la propria chiave segreta (b)
ottenendo Fb
2 il messaggio m con la firma F criptata viene ulteriormente criptato con la chiave pubblica di
Dest (e) ottenendo (m Fb)e
3 Dest decodifica il messaggio con la sua chiave segreta (d) ottenendo
((m Fb)e)d = (me F(be)) d =m(e d)F(be d) = mFb
in cui la firma di Mitt egrave ancora criptata
4 Dest decodifica la firma di Mitt con la chiave pubblica di Mitt (a) ottenendo
(Fb)a = F(ba) = F
33
Grafico firma digitale
Mitt
Dest
pubblica
Fb
e dpubblica
a
((Fb)e)d=(Fb)ed=(Fb)1=Fb
(Fb)a=(F)ba=(F)1=F
ab de
(Fb)e
codifica
codificadecodifica
decodifica
1
2
3
4
5
6
7
8
segreta
b
segreta
Figura 14 Grafico firma digitale
Bibliografia
Thomas Beth Comunicazioni e sicurezza su Internet in ldquoLe Scienzerdquo n 330 febbraio 1996
Brian Butterworth Intelligenza matematica Vincere la paura dei numeri scoprendo le doti innate della mente
Rizzoli Milano 1999
John H Conway Richard K Guy Il libro dei numeri Hoepli Milano 2003
Richard Courant Herbert Robbins Che cosrsquoegrave la matematica Boringhieri Torino 1971
Philip J Davis Il mondo dei grandi numeri Zanichelli Bologna 1973
Keith Devlin Dove va la matematica Bollati Boringhieri Torino 1994
Jean Dieudonneacute Lrsquoarte dei numeri matematica e matematici oggi Mondadori Milano 1989
Martin E Ellmann La crittografia a chiave pubblica in La matematica della complessitagrave Quaderni n 67
settembre 1992 Le Scienze
Paolo Ferragina Fabrizio Luccio Crittografia principi ndash Algoritmi ndash Applicazioni Bollati Boringhieri Torino
2001
Godfrey H Hardy Apologia di un matematico Garzanti Milano 1989
Morris Kline Storia del pensiero matematico Einaudi Milano 1991
Serge Lang La bellezza della matematica Bollati Boringhieri Torino 1991
Mauro Leoncini Modelli di calcolo e complessitagrave computazionale in La matematica computazionale Quaderni
n 84 giugno 1995 Le Scienze
Fabrizio Luccio e Linda Pagli P = NP in La matematica della complessitagrave Quaderni n 67 settembre 1992
Le Scienze
Piergiorgio Odifreddi La Matematica del Novecento dagli insiemi alla complessitagrave Einaudi Torino 2000
34
ldquoPeriodico di matematicherdquo Serie VII Volume 7 Numero 2-3 luglio-dicembre 2000 Mathesis
ldquoPeriodico di matematicherdquo Serie VIII Volume 1 Numero 1 gennaio-marzo 2001 Mathesis
Carl Pomerance Alla ricerca dei numeri primi in ldquoLe Scienzerdquo n 174 febbraio 1983
Simon Singh Codici e segreti la storia affascinante dei messaggi cifrati dallrsquoantico Egitto a Internet Rizzoli
Milano 1999
Marcus du Sautoy Lrsquoenigma dei numeri primi lrsquoipotesi di Riemann lrsquoultimo grande mistero della matematica
Rizzoli Milano 2004
Gary Stix I segreti meglio custoditi la crittografia quantistica egrave passata dalla teoria al laboratorio per
approdare finalmente alle applicazioni in ldquoLe Scienzerdquo n 438 febbraio 2005
15
piccolo teorema di Fermat ma che risulta deterministico e che riduce in maniera drastica il tempo di calcolo
Lrsquoalgoritmo fornisce una svolta significativa in un settore lungamente atteso e di grande interesse pratico ma
per ora non sembra che possa avere immediata applicazione in quanto molto piugrave lento dei test probabilistici i
quali drsquoaltra parte sono quasi certi per i numeri primi di centinaia di cifre che servono attualmente in
crittografia
Storia della crittografia
La crittografia che letteralmente significa scrittura nascosta nasce dalla necessitagrave di segretezza di alcune
informazioni e pertanto con tale termine intendiamo lo studio dei metodi che consentono la trasmissione sicura
dellrsquoinformazione
Drsquoaltro canto lrsquoesistenza di informazioni segrete genera il desiderio di svelarle e da tale desiderio nasce
la crittoanalisi con cui intendiamo lo studio di metodi che consentono la decifrazione dei messaggi crittografati
La storia della crittografia drsquoaltra parte altro non egrave che la secolare battaglia tra crittografi e crittoanalisti
Infatti ogni sistema crittografico rimane valido fincheacute un crittoanalista non individua un suo punto debole sulla
base del quale riesce a elaborare il sistema di decifrazione
Crittografi e crittoanalisti insieme hanno dato un grande contributo al progresso scientifico e tecnologico
Infatti tutti i metodi della crittografia e della crittoanalisi fanno ricorso a metodi e strumenti di una vasta varietagrave
di scienze come la matematica la linguistica la teoria dellrsquoinformazione la fisica quantistica le quali a loro
volta sono da essi arricchite e stimolate
Lrsquoidea su cui si basa un metodo crittografico consiste nel concordare tra mittente e destinatario che
vogliono scambiarsi un messaggio senza che venga intercettato da terzi una procedura per alterare il testo in
chiaro del messaggio Il destinatario puograve ricavare il testo originale applicando al testo cifrato la procedura
inversa Chi intercetta il messaggio non conoscendo la procedura non puograve ricostruire il messaggio La sicurezza
del metodo sta nella difficoltagrave da parte del crittoanalista di poter ricostruire la procedura dallrsquoanalisi del
messaggio cifrato
Prima dellrsquoera informatica i metodi crittografici erano essenzialmente due per trasposizione o per
sostituzione
Nella trasposizione le lettere sono mutate di posto generando di fatto un anagramma Ma la
trasposizione non puograve essere casuale Infatti nel caso di messaggi brevi non sarebbe sicura in quanto i pochi
caratteri alfabetici che costituiscono il messaggio possono essere combinati in pochi modi diversi per cui
diventa facile ricostruire il messaggio per tentativi Ad esempio la parola ldquomiordquo consta di 3 caratteri alfabetici
esistono al massimo sei sequenze diverse mio moi imo iom omi oim analizzandole tutte e sei egrave facile
ricostruire la sequenza ldquomiordquo Ma al crescere della lunghezza del messaggio cresce mostruosamente anche il
numero delle sequenze infatti un anagramma di una parola di n lettere altro non egrave che una permutazione di n
elementi e si dimostra che il numero totale delle permutazioni di n elementi egrave dato da n (si legga n fattoriale)
uguale al seguente prodotto n(nndash1)(nndash2)(nndash3)hellip(nndash (nndash1)) Pertanto se il messaggio egrave costituito ad esempio da
20 lettere i possibili anagrammi sono 20=20middot19middot18middot17middot16middot15middot14middot13middot12middot11middot10middot9middot8middot7middot6middot5middot4middot3middot2middot1 cioegrave piugrave di 1000
miliardi e anche se si potesse controllare un anagramma al secondo ci vorrebbero piugrave di trentuno secoli per
analizzarli tutti In questo caso la comunicazione risulterebbe sicura essendo impossibile analizzare tutte le
16
possibili sequenze e ricostruire il messaggio ma di fatto egrave inutilizzabile anche dal destinatario percheacute di fronte
allo stesso problema
Per rendere efficace tale metodo egrave necessario che mittente e destinatario si accordino su un criterio di
trasposizione fissato in anticipo e piugrave egrave complicato tale criterio e piugrave egrave sicuro il metodo
Esiste il metodo della trasposizione cosiddetta a inferriata Esso consiste nella trascrizione di un testo
lungo due linee orizzontali una superiore e una inferiore passando da una allrsquoaltra a ogni successivo carattere
alfabetico Finita la trascrizione la seconda fila di caratteri saragrave accodata alla prima per dare origine al testo
cifrato Ad esempio
testo del messaggio incontriamoci stasera alle sette
testo del messaggio cifrato icnraoitsralstenotimccsaealeet
Il destinatario ricostruisce il testo originale applicando la trasposizione inversa
Esistono molti altri tipi di trasposizione per esempio si puograve variare il numero delle file su cui trascrivere
il messaggio oppure si puograve passare da una fila allrsquoaltra ogni due caratteri anzicheacute dopo ogni singolo carattere e
cosigrave via Da osservare che ogni carattere alfabetico mantiene la propria identitagrave ma cambia la posizione
Nella sostituzione ogni carattere alfabetico del messaggio originale viene sostituito con un altro carattere
alfabetico secondo un criterio stabilito In questo caso ogni carattere alfabetico mantiene la posizione ma
cambia la propria identitagrave
Sostanzialmente esso necessita di determinare come primo passo un alfabeto cifrante che egrave ottenuto
rimescolando secondo un criterio lrsquoalfabeto ordinario In questo modo a ogni carattere dellrsquoalfabeto ordinario
corrisponde un carattere dellrsquoalfabeto cifrante Per cifrare il messaggio si sostituisce ogni carattere del messaggio
con il corrispondente carattere dellrsquoalfabeto cifrante Per decifrare il messaggio si applica la procedura inversa
Il primo esempio documentato di cifratura per sostituzione si trova nel De bello gallico di Giulio Cesare
detto anche cifrario di Cesare Qui lrsquoalfabeto cifrante era ottenuto da quello ordinario spostando a destra di tre
posti ogni carattere alfabetico ad esempio per cifrare il messaggio si sostituisce ogni lettera con la
corrispondente dellrsquoalfabeto cifrante (figura 2)
17
Figura 2 Cifrario di Giulio Cesare
Per decifrare si sostituisce ogni lettera del messaggio cifrato utilizzando la corrispondenza inversa
Come si puograve facilmente osservare in questo metodo lrsquoalfabeto cifrante altro non egrave che una
riorganizzazione dellrsquoalfabeto ordinario che si puograve ottenere con un qualsiasi spostamento tra 1 e il numero delle
lettere dellrsquoalfabeto ordinario Per esempio nel caso dellrsquoalfabeto italiano che consta di 21 lettere si possono
effettuare 20 diversi spostamenti e ottenere quindi 20 diversi alfabeti cifranti Essendo lrsquoalfabeto cifrante una
riorganizzazione dellrsquoalfabeto ordinario non egrave detto che questa debba essere ottenuta utilizzando il criterio
dello spostamento ma puograve coincidere con un qualsiasi anagramma dellrsquoalfabeto ordinario Si vede quindi
facilmente come aumentano gli alfabeti cifranti nel nostro caso il loro numero per quanto detto
precedentemente uguaglia il numero delle permutazioni di 21 elementi e cioegrave 21 e cioegrave oltre 50 miliardi di
miliardi
A partire da questo esempio cerchiamo di chiarire in termini generali il significato di metodo
crittografico intendendo con esso un algoritmo che mediante una chiave trasforma un messaggio in chiaro in
un messaggio cifrato o crittogramma
Ad esempio nel metodo descritto sopra lrsquoalgoritmo equivale alla procedura con cui ogni lettera
dellrsquoalfabeto in chiaro egrave sostituita dalla corrispondente lettera dellrsquoalfabeto cifrante la chiave equivale al
particolare alfabeto cifrante scelto per la cifratura o decifrazione di un particolare crittogramma
Inoltre crsquoegrave da sottolineare lrsquoimportanza concettuale della distinzione tra algoritmo e chiave Infatti la sola
conoscenza dellrsquoalgoritmo senza la chiave non permette di decifrare il crittogramma Ed egrave questo uno dei
principi fondamentali della crittografia formulato in modo definitivo nel 1883 dallrsquoolandese Auguste
Kerckhoffs von Nieuwenhof noto anche come legge di Kerckhoffs ldquola sicurezza di un crittosistema non deve
dipendere dal tener celato il crittoalgoritmo La sicurezza dipenderagrave solo dal tener celata la chiaverdquo
Le caratteristiche di un efficace sistema crittografico possono essere riassunte nelle seguenti
1 segretezza della chiave
2 semplicitagrave della chiave (per evitare possibili malintesi o errori al momento dello scambio tra
mittente e destinatario)
3 alto numero di potenziali chiavi tra cui scegliere
18
Come si puograve notare la 2) e la 3) sono collegate tra loro infatti nel sistema descritto sopra si potrebbe
scegliere una chiave piugrave semplice sacrificando il numero di chiavi potenziali
Infatti invece di generare lrsquoalfabeto cifrante da una riorganizzazione casuale dellrsquoalfabeto ordinario lo si
puograve fare a partire da una parola chiave come nel seguente esempio Supponiamo di accordarci sulla parola
chiave lsquolaurarsquo si eliminano eventuali spazi e lettere ripetute quindi la parola chiave diventa lsquolaurrsquo a questo
punto la sequenza l a u r saragrave lrsquoinizio dellrsquoalfabeto cifrante cui seguiranno tutte le altre lettere mancanti in
ordine alfabetico partendo dallrsquoultima lettera della chiave per cui lrsquoalfabeto cifrante che si ottiene saragrave l a u r s t
v z b c d e f g h i m n o p q
I crittosistemi basati sulla sostituzione hanno dominato la scena per tutto il primo millennio della nostra era
fincheacute i crittoanalisti non trovarono il suo punto debole ed elaborarono un metodo per decifrarne i crittogrammi prodotti
La violazione di tali sistemi si basa su unrsquoidea dovuta per prima a crittoanalisti arabi nella quale si
combinano conoscenze di linguistica statistica e matematica nota con il nome di analisi delle frequenze
Essa egrave descritta dallo studioso del IX secolo Abu Yusuf ibn Ishaq al-Kind sopran-nominato il filosofo
degli arabi in una sua monografia dal titolo Sulla decifrazione dei messaggi crittati ritrovata nellrsquoarchivio
ottomano Sulaimaniyyah di Istanbul solo nel 1987 Nel testo si legge
Un modo di svelare un messaggio crittato se conosciamo la lingua dellrsquooriginale consiste nel trovare
un diverso testo chiaro nella stessa lingua abbastanza lungo da poter calcolare la frequenza di ciascuna
lettera
Chiamiamo ldquoprimardquo quella che compare piugrave spesso ldquosecondardquo quella che la segue per frequenza
ldquoterzardquo la successiva e cosigrave via fino a esaurire tutte le lettere del campione di testo chiaro
Esaminiamo poi il testo in cifra che vogliamo interpretare ordinando (in base alla frequenza) anche i
suoi simboli Troviamo il simbolo piugrave comune e rimpiazziamolo con la ldquoprimardquo lettera dellrsquoesempio
chiaro il simbolo che lo segue per frequenza sia rimpiazzato dalla ldquosecondardquo lettera il successivo simbolo
piugrave comune sia rimpiazzato dalla ldquoterzardquo e cosigrave via fino ad aver preso in considerazione tutti i simboli del
crittogramma che intendevamo svelare
Tabella 4 Frequenze delle diverse lettere in italiano
Per superare lrsquoanalisi delle frequenze furono ideati diversi nuovi metodi crittografici tra cui ricordiamo
1 il metodo di sostituzione omofonica
2 il metodo di sostituzione polialfabetica
19
Il metodo di sostituzione omofonica consiste nel sostituire ogni lettera con un numero di simboli per
esempio numeri proporzionale alla sua frequenza Cosigrave ad esempio la lettera a avendo una frequenza di 11 74
viene sostituita da 11 simboli la lettera b con un solo simbolo la lettera c con 4 simboli ecc secondo la tabella 5
Il metodo di sostituzione polialfabetica consiste nellrsquouso di piugrave alfabeti cifranti su unrsquoidea di Leon
Battista Alberti che propose di utilizzarne due Lrsquoalgoritmo consiste nel sostituire la prima lettera del messaggio
in chiaro con la corrispondente del I alfabeto cifrante la seconda lettera con la corrispondente del II alfabeto
cifrante la terza con la corrispondente del I e cosigrave via passando alternativamente dal I alfabeto al secondo Come
nellrsquoesempio della figura 3
Tabella 5 Corrispondenza lettere e simboli nella sostituzione omofonica
Figura 3 Il metodo di sostituzione polialfabetica
Su tale idea si basa il metodo di Blaise de Vigenegravere diplomatico francese nato nel 1523 il quale utilizza
tanti alfabeti cifranti quante sono le lettere dellrsquoalfabeto in chiaro ad esempio nellrsquoalfabeto italiano che consta
di 21 lettere utilizza 21 alfabeti cifranti
Il primo passo consiste nel costruire la tavola di Vigenegravere in cui nella prima riga egrave riportato lrsquoalfabeto in
chiaro e in ognuna delle 21 righe successive egrave riportato un alfabeto cifrante spostato di una lettera rispetto a
quello della riga precedente cosigrave nella riga 1 egrave riportato lrsquoalfabeto spostato di una lettera nella riga 2 quello
spostato di due lettere nella riga 3 quello spostato di tre fino alla riga 20 in cui egrave riportato quello spostato di 20
lettere (figura 4)
20
Figura 4 La tavola di Vigenegravere
Il secondo passo consiste nello scegliere una parola chiave per esempio lsquoverorsquo Pertanto il messaggio in
chiaro ldquonon andarerdquo verrebbe cifrato come nella figura 5
La differenza sostanziale tra la cifratura omofonica e quella polialfabetica egrave che in quella omofonica a
ogni lettera corrispondono piugrave simboli ma ogni simbolo egrave il corrispondente di una sola lettera cioegrave egrave una
corrispondenza 1rarr m che invertita diventa mrarr 1 in quella polialfabetica a ogni lettera corrispondono piugrave
simboli e anche ogni simbolo egrave il corrispondente di piugrave lettere cioegrave mrarr m che rimane tale anche invertendola
Il vantaggio della cifratura polialfabetica egrave pertanto la sua resistenza allrsquoanalisi delle frequenze Oltre ad
ammettere un enorme numero di chiavi infatti si puograve scegliere qualunque parola del dizionario qualunque
combinazione di parole si puograve perfino ricorrere a neologismi rendendo impossibile il controllo di tutte le chiavi
possibili Ed ecco percheacute egrave ritenuta piugrave affidabile e non ha mai smesso di essere usata
Figura 5 Cifratura polialfabetica del messaggio ldquonon andarerdquo
21
Oggi sono noti tutti i punti deboli del sistema di Vigenegravere ed esistono vari procedimenti per decifrare i
crittogrammi generati da tale sistema che sfruttano ad esempio la modularitagrave nel ripetere la chiave o
osservazioni sulle ripetizioni del testo cifrato Ci sono testimonianze storiche che uno di tali procedimenti sia
stato ideato da Sir Charles Babbage famoso per aver progettato e mai realizzato la macchina alle differenze
progenitrice degli odierni calcolatori La prima descrizione resa pubblica del metodo perograve egrave del 1863 portata a
compimento dallrsquoufficiale prussiano F W Kasiski
Unrsquoosservazione decisiva fu che le insidie del metodo di Babbage potevano essere evitate utilizzando
nella cifratura di Vigenegravere una chiave molto lunga e fatta da lettere che si succedono in modo casuale se un
messaggio cifrato non presenta delle ripetizioni se non egrave possibile tentare di indovinare la chiave cadono tutti
gli appigli necessari per effettuare con successo la crittoanalisi
Tale osservazione fu ulteriormente sviluppata da G S Vernam che nel 1926 introdusse lrsquoidea di usare
una chiave casuale lunga quanto il messaggio stesso
Oggi sappiamo grazie agli studi di Claude Shannon del 1949 che tale metodo puograve definirsi
ldquoteoricamente sicurordquo
In pratica perograve ciograve comporta la difficoltagrave di costruire lunghe stringhe di lettere assolutamente casuali e di
scambiarsi segretamente e continuamente queste chiavi In sostanza risulta impraticabile per ogni messaggio
scambiato in modo sicuro egrave necessario prima trasmettere in modo sicuro il messaggio contenente la chiave
I metodi usati per buona parte del Novecento sono delle rielaborazioni sempre piugrave complesse delle idee
descritte finora ottenute anche con la costruzione di dispositivi per la meccanizzazione delle procedure di
cifratura e decifratura Un esempio tra i piugrave conosciuti egrave la macchina Enigma usata dai tedeschi durante la
Seconda guerra mondiale inventata dallrsquoingegnere Arthur Scherbius Enigma consisteva di diversi ingegnosi
elementi combinati in un potente e sofisticato dispositivo per la produzione di scritture segrete In particolare ma
macchina aveva tre componenti collegati da fili elettrici una tastiera per immettere le lettere del testo chiaro
unrsquounitagrave scambiatrice che cifra la lettera trasformandola nel corrispondente elemento del crittogramma e un
visore con varie lampadine che accendendosi indicano la lettera da inserire nel crittogramma
Lo sforzo per violare questa cifratura richiese anni di lavoro e fu portato a compimento dalla Scuola
Inglese Governativa di Codici e Cifre di Bletchley Park di cui faceva parte Alan M Turing noto oggi ai piugrave per
i suoi studi sullrsquointelligenza meccanica
La crittografia nellrsquoera dellrsquoinformatica
Nel 1945 fu realizzato ENIAC (Electronic Numerical Integrator And Calculator) unrsquoapparecchiatura
contenente 18 000 valvole elettroniche capace di effettuare 5000 calcoli al secondo considerato il capostipite
dei moderni calcolatori
Dopo il 1945 fu lrsquoinformatica a fare da protagonista nella battaglia tra crittografi e crittoanalisti operando
una decisiva svolta nelle metodologie di entrambi Infatti i metodi precedenti lrsquoera dellrsquoinformatica basavano la
propria sicurezza sullrsquoenorme numero di chiavi disponibili e sulla loro lunghezza ma che viene messa in crisi
dalla crescente potenza di calcolo dei computer Un computer molto potente infatti potrebbe individuare quella
giusta in pochi minuti anche nel caso di un milione di chiavi da esaminare
Tutti i metodi crittografici esaminati finora necessitano di
22
1 un algoritmo generale di cifratura G
2 di una chiave K che deve rimanere segreta
3 di un algoritmo di decifrazione H=Gndash1 (inverso di G)
e agiscono secondo il seguente schema
il messaggio in chiaro M tramite lrsquoalgoritmo G e la chiave K viene cifrato in MC questrsquoultimo tramite
lrsquoalgoritmo H e la stessa chiave K viene decifrato in M (figura 6)
Figura 6 Schema di metodi crittografici
La sicurezza di tali sistemi risiede interamente nella segretezza delle chiavi Ne segue che per distribuire
agli utenti le chiavi egrave necessario ricorrere a canali sicuri
Gli svantaggi che ne derivano sono essenzialmente
1 difficoltagrave nella distribuzione delle chiavi agli utenti
2 mancata autenticazione dei messaggi mittente e destinatario condividono la stessa chiave
pertanto non crsquoegrave modo di impedire che il destinatario si invii messaggi che poi sembrino
provenienti dal mittente Si pensi quali problemi possono provocare simili falsificazioni nella
posta elettronica o nei sistemi bancari elettronici
La svolta avvenne nel 1976 a opera di Diffie e Hellmann che proposero un metodo detto a chiave
pubblica il quale non necessita di uno scambio preventivo delle chiavi segrete Lrsquodea egrave chiarita dal seguente
esempio noto come esempio del doppio lucchetto
Supponiamo di avere due utenti Mitt e Dest e Mitt voglia spedire un messaggio segreto a Dest
1 Mitt mette il messaggio in una scatola che chiude con il proprio lucchetto LMitt (di cui solo lui ha
la chiave) e spedisce la scatola a Dest
2 Dest ricevuta la scatola aggiunge un proprio lucchetto LDest (di cui solo lui ha la chiave) e
rispedisce la scatola a Mitt
3 Mitt ricevuta la scatola con il doppio lucchetto toglie il lucchetto LMitt e rispedisce la scatola a
Dest
4 Dest ricevuta la scatola puograve togliere il lucchetto LDest e leggere il messaggio di Mitt
Il problema della distribuzione delle chiavi sembra risolto percheacute lo schema a doppia chiave non richiede
la condivisione delle stesse Tuttavia la realizzazione pratica di un tale sistema si scontra con un altro problema
quello riguardante lrsquoordine in cui cifrature e decifrature sono eseguite In altre parole in un sistema crittografico
egrave essenziale lrsquoordine con cui avvengono le rispettive cifrature e decifrature in quanto la cifratura eseguita per
23
ultimo andrebbe decifrata per prima (egrave un porsquo come quando la mattina infiliamo prima le calze e poi le scarpe
ma alla sera togliamo prima le scarpe e poi le calze)
Lrsquoesempio del doppio lucchetto in cui ciograve non avviene sembra tuttavia funzionare come idea percheacute ai
fini dellrsquoapertura della scatola non ha importanza lrsquoordine di rimozione dei lucchetti
Anche se il trucco dei due lucchetti non sembra immediatamente applicabile tuttavia fu il giusto punto di
partenza per la realizzazione di un sistema crittografico che aggira lrsquoostacolo della distribuzione delle chiavi
Infatti lrsquoidea egrave che mittente e destinatario generano ciascuno due chiavi distinte una chiave di cifratura E
(da utilizzare nellrsquoalgoritmo di cifratura) e una chiave di decifrazione D (da utilizzare nellrsquoalgoritmo di
decifrazione) Le chiavi sono correlate nel senso che servono per effettuare operazioni inverse (figura 7)
Figura 7 Le chiavi correlate per effettuare operazioni invese
Il trucco consiste nellrsquoimpossibilitagrave di poter derivare la chiave D dalla chiave E mediante algoritmi di
calcolo (figura 8)
Ogni utente puograve rendere pubblica la propria chiave di cifratura E indicandola magari sullrsquoelenco
telefonico senza compromettere la propria chiave di decifrazione che rimane segreta di pubblico dominio sono
anche gli algoritmi di cifratura G e decifrazione H
Figura 8 Inapplicabilitagrave del metodo del doppio lucchetto
Pertanto lrsquoesempio del doppio lucchetto viene cosigrave interpretato
1 il destinatario pubblica la chiave di cifratura E e mantiene segreta la chiave di decifrazione D
2 il mittente applica GE al messaggio M trasformandolo nel messaggio cifrato MC cioegrave
GE(M)=MC che spedisce al destinatario
3 il destinatario applica HD al messaggio cifrato MC riottenendo M cioegrave HD(MC)=M
24
La sicurezza di un tale sistema si fonda sulla difficoltagrave di poter
1 ritrovare il testo cifrato provando ad applicare lrsquoalgoritmo GE che egrave pubblico ad ogni possibile
testo in chiaro il cui numero pur essendo enorme egrave comunque finito
2 ricavare lrsquoalgoritmo HD da GE
in quanto entrambe le tecniche sono computazionalmente inattuabili nel senso che richiedono un tempo
di calcolo di lunghezza al di fuori di ogni possibile considerazione anche per i piugrave potenti calcolatori
Per descrivere tali algoritmi sono necessari alcuni concetti matematici che andiamo a illustrare
Figura 9 Schema di cifrario a chiave pubblica
Lrsquoaritmetica modulare
Lrsquoaritmetica modulare la cui introduzione egrave dovuta a Gauss costituisce un sistema di calcolo con
importanti applicazioni nei test di primalitagrave e nei metodi che stanno alla base della sicurezza delle comunicazioni
elettroniche Con essa infatti si hanno i seguenti vantaggi 1) si riduce lo spazio dei numeri su cui gli algoritmi
sono chiamati ad operare e quindi si aumenta la velocitagrave di calcolo 2) si riesce a rendere difficili alcuni problemi
computazionali che sono semplici (o addirittura banali) nellrsquoalgebra ordinaria al fine di aumentare la sicurezza
nelle comunicazioni Lrsquoidea egrave semplice ma potente Forse non lo sappiamo ma usiamo spesso laritmetica
modulare Potremmo chiamarla aritmetica dellorologio
Infatti pensiamo ad un normale orologio con 24 ore Se sono le 15 ed un amico ci comunica che saragrave a
casa nostra tra 5 ore sappiamo che egli verragrave alle 20 infatti 15+5=20 Ma se sono le 23 e dobbiamo partire fra 7
ore certamente non diciamo che la partenza saragrave alle 30 anche se 23+7=30 Sappiamo che dovremo partire alle
6 Allo stesso modo se sono le 20 che ora saragrave tra 14 ore Non diremo 34 anche se 20+14=34 ma diremo che
sono le 10 Come si spiega tutto ciograve
Immaginiamo di segnare sul quadrante dellrsquoorologio 24 ore Se la lancetta segna le 23 aggiungere 7 ore
significa spostarsi di 7 posti fino ad arrivare alle 6 Si giunge allo stesso risultato calcolando 23+7=30 ed
osservando che 30=1sdot24+6 o che egrave lo stesso 3024 =1 con resto 6 che significa che 30 lo si ottiene facendo fare
alla lancetta un giro completo piugrave 6
25
Se la lancetta segna le 20 e aggiungiamo 14 ore lrsquoorologio segneragrave le 10 percheacute 20+14=34 ma 3424= 1
con resto 10 per cui 34 lo si ottiene percorrendo un giro completo piugrave 10
Proviamo con il normale orologio a 12 ore I numeri che vediamo sul quadrante sono 0 1 2 3 4 5 6 7
8 9 10 11 Il numero 12 non compare percheacute a partire da 0 trascorse 12 ore torniamo di nuovo a 0 Questa
volta per fare un giro completo occorrono 12 ore Pertanto se sono le 7 che ore saranno tra 24 ore Saranno
ancora le 7 percheacute 7+24=31 ma 3112 = 2 con resto 7 cioegrave si compiono 2 giri completi piugrave 7 se sono le 8 tra 6
ore saranno le 2 percheacute 8+6=14 ma 1412=1 con resto 2 Dagli esempi dovrebbe risultare chiaro allora che ciograve
che contano non sono i risultati delle somme ma i loro resti nelle divisioni per il numero delle ore segnate sul
quadrante dellrsquoorologio
La stessa cosa succede con i giorni della settimana se pensiamo a un orologio con 7 ore sul quadrante
Facciamo corrispondere ai giorni della settimana i numeri da 0 a 6 (figura 10)
domenica Lunedigrave Martedigrave Mercoledigrave Giovedigrave Venerdigrave Sabato darr darr darr darr darr darr darr 0 1 2 3 4 5 6
Figura 10 Corrispondenza dei giorni della settimana con i numeri da 0 a 6
Se per esempio oggi egrave venerdigrave che giorno saragrave tra 12 giorni
Dovremo calcolare 5+12=17 ma i giorni si ripetono ogni 7 pertanto osservando che 177 =2 con resto 3
possiamo concludere che a partire da 5 e aggiungendo 12 si compiono 2 giri completi piugrave 3 ed essendo 3 il
numero corrispondente a mercoledigrave concludiamo che saragrave mercoledigrave Facciamo un altro esempio se oggi egrave
lunedigrave (1) che giorno saragrave tra 20 giorni Calcoliamo 1+20=21 217= 3 con resto 0 quindi saragrave domenica
Il numero n delle ore sullrsquoorologio costituisce quello che si chiama il modulo e individua lrsquoaritmetica di
modulo n in cui lrsquoinsieme dei numeri con i quali si opera indicato con Zn egrave lrsquoinsieme dei possibili resti della
divisione per n e cioegrave Zn=0 1 2 3 hellip nndash1e le operazioni si eseguono con le regole illustrate negli esempi
precedenti
Lrsquoesempio dellrsquoorologio a 24 ore costituisce la cosiddetta aritmetica finita di modulo 24 in essa Z24=0
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 essendo questi ultimi i possibili resti
della divisione per 24 Lrsquoorologio a 12 ore costituisce lrsquoaritmetica finita di modulo 12 in essa Z12=0 1 2 3 4
5 6 7 8 9 10 11 essendo questi ultimi i possibili resti della divisione per 12 Lrsquoesempio dei giorni della
settimana egrave lrsquoaritmetica finita di modulo 7 in cui Z7=0 1 2 3 4 5 6 essendo questi ultimi i possibili resti
della divisione per 7 Riassumiamo costruendo unrsquoaritmetica finita di modulo 4 I possibili resti della divisione
per 4 sono 0 1 2 3 quindi Z4=0123 Lrsquoaddizione e la moltiplicazione in Z4 si esegue come negli esempi
della tabella 6
26
operazioni indicate
Risultato nellrsquoaritmetica ordinaria
Risultato nellrsquoaritmetica modulo 4
2+2 4 0 percheacute 44=1 con resto 0
3+2 5 1 percheacute 54=1 con resto 1
2+1 3 3 percheacute 34=0 con resto 3
3sdot3 9 1 percheacute 94=2 con resto 1
3sdot2 6 2 percheacute 64=1 con resto 2
2sdot2 4 0 percheacute 44=1 con resto 0
Tabella 6 Addizione e moltiplicazione nellrsquoaritmetica finita di modulo 4
Si possono costruire le tavole dellrsquoaddizione e della moltiplicazione dellrsquoaritmetica modulo 4 che costituiscono
le tabelline di questa aritmetica sulla base delle quali si esegue qualsiasi addizione e moltiplicazione modulo 4
Nella tabella 7 sono spiegate le tabelline dellrsquoaritmetica in modulo 4
Tabella 7 Tavole dellrsquoaddizione e della moltiplicazione dellrsquoaritmetica modulo 4
Infine per indicare che due numeri a e b divisi per n danno lo stesso resto si usano le seguenti notazioni
tutte equivalenti tra loro
a=b mod n andashb=0 mod 4 a equiv b (mod n) che si legge a egrave congruo b modulo 4
Esempio
26=12 mod 7 egrave la stessa cosa di
26ndash12=0 mod 7 che egrave la stessa cosa di
26 equiv 12 (mod 7) e tutte e tre stanno a indicare che 26 e 12 divisi per 7 danno lo stesso resto che egrave 5 e
pertanto sono tutti equivalenti a 5
Facciamo vedere come sfruttare lrsquoaritmetica modulare per calcolare potenze come 2341 (figura 11) Il
metodo si basa sulla proprietagrave che il resto del quadrato di un numero a per un dato modulo n egrave uguale al
quadrato del resto dello stesso numero a per lo stesso modulo n cioegrave a2 mod n =(a mod n)2
+ 0 1 2 3
0 0 1 2 3
1 1 2 3 0
2 2 3 0 1
3 3 0 1 2
x 0 1 2 3
0 0 0 0 0
1 0 1 2 3
2 0 2 0 2
3 0 3 2 1
27
Figura 11 Il metodo per calcolare 2341
La funzione di Eulero
Per ogni intero ngt1 si definisce la funzione di Eulero = numero di interi minori di n e primi con esso Ad
esempio
bull ( ) 45 =φ percheacute gli interi minori di 5 sono 1 2 3 4 ed essi sono tutti primi con n
bull ( ) 26 =φ percheacute gli interi minori di 6 sono 1 2 3 4 5 e fra essi solo 1 e 5 sono primi con 6
bull ( ) 67 =φ percheacute gli interi minori di 7 sono 1 2 3 4 5 6 ed essi sono tutti primi con 7
bull ( ) 412 =φ percheacute gli interi minori di 12 sono 1 2 3 4 5 6 7 8 9 10 11 e fra essi solo 1 5 7
11 sono primi con 12
Se si conosce la scomposizione in fattori del numero n il seguente teorema ci fornisce un metodo per
calcolare Infatti esso afferma che per ogni ngt1 non primo ( )
minussdotsdot
minussdot
minussdotnppp
n=nφ 11
11
11
21
dove
p1 p2 hellip pn sono i fattori primi di n presi senza molteplicitagrave
22 mod 341=4
24=(22)2=(22 mod 341)2=42=16mod341=16
28=(24)2=(16)2=256mod341=256
216= (28)2=(256)2=65536mod341=64
232=(216)2=(64)2=4096mod341=4
264=(232)2=42=16mod341=16
2128=(264)2=(16)2=256mod341=256
2256=(2128)2=(256)2=65536mod341=64
2341=2(256+64+16+4+1) 2256 264 216 24 21 x x x x
64 1
1024 mod 341
= 1 x 64
64 x 16
1024 mod 341
1 x 2 =
=
x
28
Ad esempio
essendo 12 = 3sdot2sdot2 ( ) 42
1
3
212
2
11
3
111212 ===φ sdotsdot
minussdot
minussdot
essendo 6=2sdot3 ( ) 22
1
3
26
2
11
3
1166 ===φ sdotsdot
minussdot
minussdot
se n=psdotq ( ) ( ) ( )11111
11
1 minussdotminusminussdotminussdot
minussdot
minussdot qp=q
q
p
pn=
qpn=nφ
Ovviamente se n egrave un numero primo = nndash1
Vale inoltre il seguente teorema di Eulero per ngt1 e per ogni altn e primo con n si ha
Ad esempio per n=6 ( ) 26 =φ infatti i primi con 6 sono 1 e 5 per il teorema di Eulero si ha
2mod1255
2mod1112
2
equiv=
equiv=
per n=5 ( ) 45 =φ e i primi con 5 sono 1 2 3 4 e per il teorema di Eulero si ha
5mod12564
5mod1813
5mod1162
5mod111
4
4
4
4
equiv=
equiv=
equiv=
equiv=
Si puograve notare come nel caso in cui n egrave un numero primo si ritrova il piccolo teorema di Fermat
Infatti per n primo ( )nφ = nndash1 e per il teorema di Eulero per ogni altn e primo con n Ricordiamo infatti
che il piccolo teorema di Fermat afferma che se n egrave un numero primo e a un intero minore di n allora egrave
divisibile per n che con il linguaggio dellrsquoaritmetica modulare diventa che puograve essere riscritto e se a egrave primo
con n allora egrave che egrave equivalente a
Infine si prova che per ogni altn e primo con esso esiste lrsquoinverso di a e esso egrave dato da ( ) 1minusnaφ Infatti
( ) ( ) na=aa nφnφ1mod1 equivsdot minus per il teorema di Eulero Si ricorda che lrsquoinverso di un numero a egrave quel numero che
moltiplicato per a dagrave 1 indicato convenzionalmente con andash1
Ad esempio per n=5 i primi con 5 sono 1 2 3 4 e per ognuno di questi esiste lrsquoinverso infatti
bull lrsquoinverso di 1 egrave ( ) 1mod51111 31415 equivminusminus ===φ
e infatti
bull lrsquoinverso di 2 egrave ( ) 3mod58222 31415 equivminusminus ===φ
e infatti
bull lrsquoinverso di 3 egrave ( ) 2mod527333 31415 equivminusminus ===φ
e infatti
bull lrsquoinverso di 4 egrave ( ) 4mod564444 31415 equivminusminus ===φ
Le funzioni unidirezionali
Chiamiamo funzione da un insieme A a un insieme B qualunque procedura che associa a ogni elemento
di un insieme A (detto dominio) uno e un solo elemento di un insieme B (detto condominio) In simboli f
A rarr B Se poi indichiamo con x il generico elemento dellrsquoinsieme A e con y il generico elemento dellrsquoinsieme B
la f indica la procedura che ad ogni xisinA associa un yisinB e cioegrave y=f(x) ad esempio ldquofare il doppio dihelliprdquo
29
prendendo come dominio e codominio lrsquoinsieme dei numeri interi egrave in questo senso una funzione percheacute dato
ad esempio il numero 3 lo trasforma nel numero 6 come 5 lo trasforma in 10 e cosigrave via
Molte funzioni matematiche sono cosiddette bidirezionali nel senso che egrave facile dato un determinato x
generare il corrispondente y ma egrave altrettanto facile invertire la funzione cioegrave ritrovare lrsquoelemento x originario a
partire dal suo corrispondente
Facciamo qualche esempio
bull funzione xrarr fare il doppiorarr 2sdotx= y 3rarr fare il doppiorarr 2sdot3 = 6
funzione inversa y=2sdotx rarr fare la metagraverarr x 6=2sdot3 rarr fare la metagraverarr 3
bull funzione xrarr fare il quadruplorarr 4sdotxrarr aggiungere 1rarr sdoty=4sdotx +1
5rarr fare il quadruplorarr 4sdot5rarr aggiungere 1rarr 4sdot5 +1=21
funzione inversa y=4sdotx +1rarr sottrarre 1rarr 4sdot xrarr dividere per 4rarr x
21=4sdot5 +1rarr sottrarre 1rarr 4sdot 5rarr dividere per 4rarr 5
Le funzioni unidirezionali sono invece quelle funzioni facilmente calcolabili ma che non si possono invertire
Le funzioni cosiddette pseudounidirezionali (dette anche funzioni trappola a molla segreta) sono invece
quelle funzioni facilmente calcolabili ma che non altrettanto facilmente si possono invertire a meno che non si
conoscano alcune informazioni (la molla segreta) utilizzate nella loro costruzione
Lrsquoaritmetica modulare gioca un ruolo determinante in questo caso infatti permette di trasformare
funzioni bidirezionali in funzioni pseudounidirezionali
Facciamo lrsquoesempio della funzione ldquofare il quadruplordquo in simboli f(x)=4sdotx Egrave facilmente calcolabile
percheacute dato x per ottenere f(x) basta moltiplicare per 4 ma egrave altrettanto facile calcolare la sua inversa percheacute
dato f(x) basta dividere per 4 per ottenere lrsquooriginario x Ma anche se non avessimo la procedura inversa di
dividere per 4 sarebbe facile ritrovare lrsquoelemento originario anche procedendo per tentativi ed eliminazione
infatti se per esempio f(x) =20 si puograve tentare x=3 in tal caso f(x)=12 troppo piccolo quindi x deve essere
maggiore di 3 Si puograve allora pensare a 6 ma f(x)=24 troppo grande quindi x deve essere minore di 6 e cosigrave via
Vediamo cosa accade se calcoliamo utilizzando una aritmetica modulare Per esempio consideriamo la
stessa funzione f(x)=4sdotx in una aritmetica modulo 7 Possiamo osservare che la funzione non si comporta piugrave in
modo regolare come prima per accorgersene basta costruire una tabella (tabella 8)
x 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
f(x)=4sdotx 4 8 12 16 20 24 28 32 36 40 44 48 52 56 60
f(x)=4sdotmod 7 4 1 5 2 6 3 0 4 1 5 2 6 3 0 4
Tabella 8 La funzione f(x)=4sdotx in una aritmetica modulo 7
Anche in questa semplice situazione egrave chiaro che egrave piugrave complicato invertire la funzione e pertanto i valori
di x sono molto meglio protetti Si puograve fare anche lrsquoesempio della funzione esponenziale f(x)=3 x (tabella 9)
Tabella 9 La funzione f(x)=3 x in aritmetica modulo 11
x 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
f(x)=x3 1 8 27 64 125 216 343 512 729 1000 hellip hellip hellip hellip hellip
f(x)=x3 mod 11 1 8 5 9 4 7 2 6 3 10 hellip hellip hellip hellip hellip
30
Il cifrario a chiave pubblica RSA
Uno dei piugrave noti sistemi crittografici a chiave pubblica che sfrutta le idee precedentemente descritte egrave il
metodo RSA proposto dai matematici R L Rivest A Shamir e L Adlemann nel 1978 Esso risolve il problema
dello scambio delle chiavi in quanto queste ultime sono conosciute solamente ai rispettivi proprietari che non le
hanno preventivamente concordate e scambiate
Illustriamo schematicamente come i due utenti Mitt e Dest possano scambiarsi un messaggio segreto
utilizzando il metodo RSA Entrambi Mitt e Dest indipendentemente lrsquouno dallrsquoaltro poi
1 scelgono in modo casuale due numeri primi p q grandi (di 200-300 cifre in base 10)
2 calcolano N = psdotq e Φ(N) = (pndash1)sdot(qndash1)
3 scelgono un intero eltΦ(N) e primo con Φ(N) tale numero e saragrave la chiave pubblica
4 calcolano il numero d inverso di e mod Φ(N) tale cioegrave che esdotdequiv 1mod Φ(N) tale numero d saragrave
la chiave privata
5 rendono pubblici i numeri N ed e
Mitt per spedire un messaggio a Dest compie le seguenti operazioni
1 codifica il messaggio in un modo standard usando i numeri lt N
2 trasforma ogni numero M di tale codifica in Me (mod N) e lo spedisce a Dest
per decodificare il messaggio ricevuto Me Dest calcola (Me)d =Mesdotd =Mndash1=M (modN) riottenendo il messaggio
originale
Figura 12 Schema di cifrario con metodo RSA
31
Figura 13 Esempio di applicazione di metodi RSA
In che cosa consiste la sicurezza del metodo Da quanto esposto si osserva che per decodificare il
messaggio bisogna
1 conoscere d (chiave segreta)
2 essendo d lrsquoinverso di e nellrsquoaritmetica mod Φ(N) essendo e noto egrave necessario conoscere Φ(N)
3 ma noto N per calcolare Φ(N) egrave necessario conoscere i fattori primi di N cioegrave egrave necessario fattorizzare
N che egrave un problema computazionalmente difficile per quanto osservato in precedenza
Anche se non egrave stato dimostrato che non si possa rompere il codice in altro modo e cioegrave senza conoscere Φ(N) e i
fattori di N a tuttrsquooggi si puograve affermare che la sicurezza del metodo dipende essenzialmente dai seguenti fatti
Per codificare il messaggio bisogna saper costruire dei numeri primi grandi e tale operazione egrave
computazionalmente veloce si puograve infatti dimostrare che la complessitagrave computazionale di opportuni test di
primalitagrave per stabilire se un numero n egrave primo utilizzando il linguaggio di quel ramo della matematica nota
come teoria della complessitagrave egrave ldquoquasi-polinomialerdquo
Per violare il sistema bisogna saper fattorizzare interi grandi ottenuti come prodotto di due primi tale
problema egrave computazionalmente ldquolentordquo cioegrave con il linguaggio della teoria della complessitagrave appartiene alla
classe dei problemi non polinomiali Tale marcata differenza tra la velocitagrave di esecuzione delle operazioni di
costruzione di numeri primi grandi e di fattorizzazione di interi grandi garantisce la sicurezza del metodo
almeno per un tempo sufficientemente lungo Ad esempio con la tecnologia attuale lrsquooperazione di
fattorizzazione di un intero di 140 cifre in base 10 prodotto di due numeri primi casuali calcolati in pochi
secondi su un computer disponibile in commercio richiede utilizzando vari supercomputers operanti
parallelamente circa un mese
La RSA Security Inc gestisce una sfida a livello mondiale ove vengono premiati coloro che fattorizzano
gli interi proposti da loro in una particolare lista Ad esempio il 3 dicembre del 2003 egrave stato fattorizzato
32
rsa576 =
188198812920607963838697239461650439807163563379417382700763356422988859715234
665485319060606504743045317388011303396716199692321205734031879550656996221305
168759307650257059
un numero di 174 cifre decimali prodotto di due primi di 87 cifre
p =
398075086424064937397125500550386491199064362342526708406385189575946388957261
768583317
q =
472772146107435302536223071973048224632914695302097116459852171130520711256363
590397527
Le chiavi attualmente utilizzate dallRSA sono a 309 cifre decimali
La firma digitale
Consideriamo al solito un mittente che deve inviare a un destinatario un messaggio m La codifica di m
con il metodo descritto assicura lrsquoautenticitagrave del messaggio ma non fornisce alcuna sicurezza sulla sua
paternitagrave Infatti il messaggio m pur essendo autentico potrebbe essere stato inviato da qualcuno che si spaccia
per il mittente Questa egrave unimportantissima questione particolarmente nella trasmissione di messaggi che oltre
a dover essere segreti devono garantire la loro origine
Si dovrebbe quindi disporre di un analogo della firma manuale detta appunto firma digitale La firma
digitale deve allora essere progettata in modo da possedere le stesse caratteristiche di una firma manuale e cioegrave
lrsquoautenticitagrave la non falsificabilitagrave e lrsquoimpossibiltagrave di essere riutilizzata Facciamo vedere come lo stesso metodo
RSA puograve essere utilizzato per progettare una firma digitale
La situazione egrave la seguente il mittente (di seguito indicato con Mitt) invia un messaggio m con la firma
F al destinatario (di seguito indicato con Dest) Siano a b rispettivamente le chiavi pubblica e segreta di MITT
siano e d rispettivamente le chiavi pubblica e segreta di DEST
La procedura per apporre la firma digitale F al messaggio m egrave illustrata nei seguenti passi riassunti nel
grafico della figura 14
1 Mitt cripta la firma F (cioegrave i suoi dati identificativi) usando la propria chiave segreta (b)
ottenendo Fb
2 il messaggio m con la firma F criptata viene ulteriormente criptato con la chiave pubblica di
Dest (e) ottenendo (m Fb)e
3 Dest decodifica il messaggio con la sua chiave segreta (d) ottenendo
((m Fb)e)d = (me F(be)) d =m(e d)F(be d) = mFb
in cui la firma di Mitt egrave ancora criptata
4 Dest decodifica la firma di Mitt con la chiave pubblica di Mitt (a) ottenendo
(Fb)a = F(ba) = F
33
Grafico firma digitale
Mitt
Dest
pubblica
Fb
e dpubblica
a
((Fb)e)d=(Fb)ed=(Fb)1=Fb
(Fb)a=(F)ba=(F)1=F
ab de
(Fb)e
codifica
codificadecodifica
decodifica
1
2
3
4
5
6
7
8
segreta
b
segreta
Figura 14 Grafico firma digitale
Bibliografia
Thomas Beth Comunicazioni e sicurezza su Internet in ldquoLe Scienzerdquo n 330 febbraio 1996
Brian Butterworth Intelligenza matematica Vincere la paura dei numeri scoprendo le doti innate della mente
Rizzoli Milano 1999
John H Conway Richard K Guy Il libro dei numeri Hoepli Milano 2003
Richard Courant Herbert Robbins Che cosrsquoegrave la matematica Boringhieri Torino 1971
Philip J Davis Il mondo dei grandi numeri Zanichelli Bologna 1973
Keith Devlin Dove va la matematica Bollati Boringhieri Torino 1994
Jean Dieudonneacute Lrsquoarte dei numeri matematica e matematici oggi Mondadori Milano 1989
Martin E Ellmann La crittografia a chiave pubblica in La matematica della complessitagrave Quaderni n 67
settembre 1992 Le Scienze
Paolo Ferragina Fabrizio Luccio Crittografia principi ndash Algoritmi ndash Applicazioni Bollati Boringhieri Torino
2001
Godfrey H Hardy Apologia di un matematico Garzanti Milano 1989
Morris Kline Storia del pensiero matematico Einaudi Milano 1991
Serge Lang La bellezza della matematica Bollati Boringhieri Torino 1991
Mauro Leoncini Modelli di calcolo e complessitagrave computazionale in La matematica computazionale Quaderni
n 84 giugno 1995 Le Scienze
Fabrizio Luccio e Linda Pagli P = NP in La matematica della complessitagrave Quaderni n 67 settembre 1992
Le Scienze
Piergiorgio Odifreddi La Matematica del Novecento dagli insiemi alla complessitagrave Einaudi Torino 2000
34
ldquoPeriodico di matematicherdquo Serie VII Volume 7 Numero 2-3 luglio-dicembre 2000 Mathesis
ldquoPeriodico di matematicherdquo Serie VIII Volume 1 Numero 1 gennaio-marzo 2001 Mathesis
Carl Pomerance Alla ricerca dei numeri primi in ldquoLe Scienzerdquo n 174 febbraio 1983
Simon Singh Codici e segreti la storia affascinante dei messaggi cifrati dallrsquoantico Egitto a Internet Rizzoli
Milano 1999
Marcus du Sautoy Lrsquoenigma dei numeri primi lrsquoipotesi di Riemann lrsquoultimo grande mistero della matematica
Rizzoli Milano 2004
Gary Stix I segreti meglio custoditi la crittografia quantistica egrave passata dalla teoria al laboratorio per
approdare finalmente alle applicazioni in ldquoLe Scienzerdquo n 438 febbraio 2005
16
possibili sequenze e ricostruire il messaggio ma di fatto egrave inutilizzabile anche dal destinatario percheacute di fronte
allo stesso problema
Per rendere efficace tale metodo egrave necessario che mittente e destinatario si accordino su un criterio di
trasposizione fissato in anticipo e piugrave egrave complicato tale criterio e piugrave egrave sicuro il metodo
Esiste il metodo della trasposizione cosiddetta a inferriata Esso consiste nella trascrizione di un testo
lungo due linee orizzontali una superiore e una inferiore passando da una allrsquoaltra a ogni successivo carattere
alfabetico Finita la trascrizione la seconda fila di caratteri saragrave accodata alla prima per dare origine al testo
cifrato Ad esempio
testo del messaggio incontriamoci stasera alle sette
testo del messaggio cifrato icnraoitsralstenotimccsaealeet
Il destinatario ricostruisce il testo originale applicando la trasposizione inversa
Esistono molti altri tipi di trasposizione per esempio si puograve variare il numero delle file su cui trascrivere
il messaggio oppure si puograve passare da una fila allrsquoaltra ogni due caratteri anzicheacute dopo ogni singolo carattere e
cosigrave via Da osservare che ogni carattere alfabetico mantiene la propria identitagrave ma cambia la posizione
Nella sostituzione ogni carattere alfabetico del messaggio originale viene sostituito con un altro carattere
alfabetico secondo un criterio stabilito In questo caso ogni carattere alfabetico mantiene la posizione ma
cambia la propria identitagrave
Sostanzialmente esso necessita di determinare come primo passo un alfabeto cifrante che egrave ottenuto
rimescolando secondo un criterio lrsquoalfabeto ordinario In questo modo a ogni carattere dellrsquoalfabeto ordinario
corrisponde un carattere dellrsquoalfabeto cifrante Per cifrare il messaggio si sostituisce ogni carattere del messaggio
con il corrispondente carattere dellrsquoalfabeto cifrante Per decifrare il messaggio si applica la procedura inversa
Il primo esempio documentato di cifratura per sostituzione si trova nel De bello gallico di Giulio Cesare
detto anche cifrario di Cesare Qui lrsquoalfabeto cifrante era ottenuto da quello ordinario spostando a destra di tre
posti ogni carattere alfabetico ad esempio per cifrare il messaggio si sostituisce ogni lettera con la
corrispondente dellrsquoalfabeto cifrante (figura 2)
17
Figura 2 Cifrario di Giulio Cesare
Per decifrare si sostituisce ogni lettera del messaggio cifrato utilizzando la corrispondenza inversa
Come si puograve facilmente osservare in questo metodo lrsquoalfabeto cifrante altro non egrave che una
riorganizzazione dellrsquoalfabeto ordinario che si puograve ottenere con un qualsiasi spostamento tra 1 e il numero delle
lettere dellrsquoalfabeto ordinario Per esempio nel caso dellrsquoalfabeto italiano che consta di 21 lettere si possono
effettuare 20 diversi spostamenti e ottenere quindi 20 diversi alfabeti cifranti Essendo lrsquoalfabeto cifrante una
riorganizzazione dellrsquoalfabeto ordinario non egrave detto che questa debba essere ottenuta utilizzando il criterio
dello spostamento ma puograve coincidere con un qualsiasi anagramma dellrsquoalfabeto ordinario Si vede quindi
facilmente come aumentano gli alfabeti cifranti nel nostro caso il loro numero per quanto detto
precedentemente uguaglia il numero delle permutazioni di 21 elementi e cioegrave 21 e cioegrave oltre 50 miliardi di
miliardi
A partire da questo esempio cerchiamo di chiarire in termini generali il significato di metodo
crittografico intendendo con esso un algoritmo che mediante una chiave trasforma un messaggio in chiaro in
un messaggio cifrato o crittogramma
Ad esempio nel metodo descritto sopra lrsquoalgoritmo equivale alla procedura con cui ogni lettera
dellrsquoalfabeto in chiaro egrave sostituita dalla corrispondente lettera dellrsquoalfabeto cifrante la chiave equivale al
particolare alfabeto cifrante scelto per la cifratura o decifrazione di un particolare crittogramma
Inoltre crsquoegrave da sottolineare lrsquoimportanza concettuale della distinzione tra algoritmo e chiave Infatti la sola
conoscenza dellrsquoalgoritmo senza la chiave non permette di decifrare il crittogramma Ed egrave questo uno dei
principi fondamentali della crittografia formulato in modo definitivo nel 1883 dallrsquoolandese Auguste
Kerckhoffs von Nieuwenhof noto anche come legge di Kerckhoffs ldquola sicurezza di un crittosistema non deve
dipendere dal tener celato il crittoalgoritmo La sicurezza dipenderagrave solo dal tener celata la chiaverdquo
Le caratteristiche di un efficace sistema crittografico possono essere riassunte nelle seguenti
1 segretezza della chiave
2 semplicitagrave della chiave (per evitare possibili malintesi o errori al momento dello scambio tra
mittente e destinatario)
3 alto numero di potenziali chiavi tra cui scegliere
18
Come si puograve notare la 2) e la 3) sono collegate tra loro infatti nel sistema descritto sopra si potrebbe
scegliere una chiave piugrave semplice sacrificando il numero di chiavi potenziali
Infatti invece di generare lrsquoalfabeto cifrante da una riorganizzazione casuale dellrsquoalfabeto ordinario lo si
puograve fare a partire da una parola chiave come nel seguente esempio Supponiamo di accordarci sulla parola
chiave lsquolaurarsquo si eliminano eventuali spazi e lettere ripetute quindi la parola chiave diventa lsquolaurrsquo a questo
punto la sequenza l a u r saragrave lrsquoinizio dellrsquoalfabeto cifrante cui seguiranno tutte le altre lettere mancanti in
ordine alfabetico partendo dallrsquoultima lettera della chiave per cui lrsquoalfabeto cifrante che si ottiene saragrave l a u r s t
v z b c d e f g h i m n o p q
I crittosistemi basati sulla sostituzione hanno dominato la scena per tutto il primo millennio della nostra era
fincheacute i crittoanalisti non trovarono il suo punto debole ed elaborarono un metodo per decifrarne i crittogrammi prodotti
La violazione di tali sistemi si basa su unrsquoidea dovuta per prima a crittoanalisti arabi nella quale si
combinano conoscenze di linguistica statistica e matematica nota con il nome di analisi delle frequenze
Essa egrave descritta dallo studioso del IX secolo Abu Yusuf ibn Ishaq al-Kind sopran-nominato il filosofo
degli arabi in una sua monografia dal titolo Sulla decifrazione dei messaggi crittati ritrovata nellrsquoarchivio
ottomano Sulaimaniyyah di Istanbul solo nel 1987 Nel testo si legge
Un modo di svelare un messaggio crittato se conosciamo la lingua dellrsquooriginale consiste nel trovare
un diverso testo chiaro nella stessa lingua abbastanza lungo da poter calcolare la frequenza di ciascuna
lettera
Chiamiamo ldquoprimardquo quella che compare piugrave spesso ldquosecondardquo quella che la segue per frequenza
ldquoterzardquo la successiva e cosigrave via fino a esaurire tutte le lettere del campione di testo chiaro
Esaminiamo poi il testo in cifra che vogliamo interpretare ordinando (in base alla frequenza) anche i
suoi simboli Troviamo il simbolo piugrave comune e rimpiazziamolo con la ldquoprimardquo lettera dellrsquoesempio
chiaro il simbolo che lo segue per frequenza sia rimpiazzato dalla ldquosecondardquo lettera il successivo simbolo
piugrave comune sia rimpiazzato dalla ldquoterzardquo e cosigrave via fino ad aver preso in considerazione tutti i simboli del
crittogramma che intendevamo svelare
Tabella 4 Frequenze delle diverse lettere in italiano
Per superare lrsquoanalisi delle frequenze furono ideati diversi nuovi metodi crittografici tra cui ricordiamo
1 il metodo di sostituzione omofonica
2 il metodo di sostituzione polialfabetica
19
Il metodo di sostituzione omofonica consiste nel sostituire ogni lettera con un numero di simboli per
esempio numeri proporzionale alla sua frequenza Cosigrave ad esempio la lettera a avendo una frequenza di 11 74
viene sostituita da 11 simboli la lettera b con un solo simbolo la lettera c con 4 simboli ecc secondo la tabella 5
Il metodo di sostituzione polialfabetica consiste nellrsquouso di piugrave alfabeti cifranti su unrsquoidea di Leon
Battista Alberti che propose di utilizzarne due Lrsquoalgoritmo consiste nel sostituire la prima lettera del messaggio
in chiaro con la corrispondente del I alfabeto cifrante la seconda lettera con la corrispondente del II alfabeto
cifrante la terza con la corrispondente del I e cosigrave via passando alternativamente dal I alfabeto al secondo Come
nellrsquoesempio della figura 3
Tabella 5 Corrispondenza lettere e simboli nella sostituzione omofonica
Figura 3 Il metodo di sostituzione polialfabetica
Su tale idea si basa il metodo di Blaise de Vigenegravere diplomatico francese nato nel 1523 il quale utilizza
tanti alfabeti cifranti quante sono le lettere dellrsquoalfabeto in chiaro ad esempio nellrsquoalfabeto italiano che consta
di 21 lettere utilizza 21 alfabeti cifranti
Il primo passo consiste nel costruire la tavola di Vigenegravere in cui nella prima riga egrave riportato lrsquoalfabeto in
chiaro e in ognuna delle 21 righe successive egrave riportato un alfabeto cifrante spostato di una lettera rispetto a
quello della riga precedente cosigrave nella riga 1 egrave riportato lrsquoalfabeto spostato di una lettera nella riga 2 quello
spostato di due lettere nella riga 3 quello spostato di tre fino alla riga 20 in cui egrave riportato quello spostato di 20
lettere (figura 4)
20
Figura 4 La tavola di Vigenegravere
Il secondo passo consiste nello scegliere una parola chiave per esempio lsquoverorsquo Pertanto il messaggio in
chiaro ldquonon andarerdquo verrebbe cifrato come nella figura 5
La differenza sostanziale tra la cifratura omofonica e quella polialfabetica egrave che in quella omofonica a
ogni lettera corrispondono piugrave simboli ma ogni simbolo egrave il corrispondente di una sola lettera cioegrave egrave una
corrispondenza 1rarr m che invertita diventa mrarr 1 in quella polialfabetica a ogni lettera corrispondono piugrave
simboli e anche ogni simbolo egrave il corrispondente di piugrave lettere cioegrave mrarr m che rimane tale anche invertendola
Il vantaggio della cifratura polialfabetica egrave pertanto la sua resistenza allrsquoanalisi delle frequenze Oltre ad
ammettere un enorme numero di chiavi infatti si puograve scegliere qualunque parola del dizionario qualunque
combinazione di parole si puograve perfino ricorrere a neologismi rendendo impossibile il controllo di tutte le chiavi
possibili Ed ecco percheacute egrave ritenuta piugrave affidabile e non ha mai smesso di essere usata
Figura 5 Cifratura polialfabetica del messaggio ldquonon andarerdquo
21
Oggi sono noti tutti i punti deboli del sistema di Vigenegravere ed esistono vari procedimenti per decifrare i
crittogrammi generati da tale sistema che sfruttano ad esempio la modularitagrave nel ripetere la chiave o
osservazioni sulle ripetizioni del testo cifrato Ci sono testimonianze storiche che uno di tali procedimenti sia
stato ideato da Sir Charles Babbage famoso per aver progettato e mai realizzato la macchina alle differenze
progenitrice degli odierni calcolatori La prima descrizione resa pubblica del metodo perograve egrave del 1863 portata a
compimento dallrsquoufficiale prussiano F W Kasiski
Unrsquoosservazione decisiva fu che le insidie del metodo di Babbage potevano essere evitate utilizzando
nella cifratura di Vigenegravere una chiave molto lunga e fatta da lettere che si succedono in modo casuale se un
messaggio cifrato non presenta delle ripetizioni se non egrave possibile tentare di indovinare la chiave cadono tutti
gli appigli necessari per effettuare con successo la crittoanalisi
Tale osservazione fu ulteriormente sviluppata da G S Vernam che nel 1926 introdusse lrsquoidea di usare
una chiave casuale lunga quanto il messaggio stesso
Oggi sappiamo grazie agli studi di Claude Shannon del 1949 che tale metodo puograve definirsi
ldquoteoricamente sicurordquo
In pratica perograve ciograve comporta la difficoltagrave di costruire lunghe stringhe di lettere assolutamente casuali e di
scambiarsi segretamente e continuamente queste chiavi In sostanza risulta impraticabile per ogni messaggio
scambiato in modo sicuro egrave necessario prima trasmettere in modo sicuro il messaggio contenente la chiave
I metodi usati per buona parte del Novecento sono delle rielaborazioni sempre piugrave complesse delle idee
descritte finora ottenute anche con la costruzione di dispositivi per la meccanizzazione delle procedure di
cifratura e decifratura Un esempio tra i piugrave conosciuti egrave la macchina Enigma usata dai tedeschi durante la
Seconda guerra mondiale inventata dallrsquoingegnere Arthur Scherbius Enigma consisteva di diversi ingegnosi
elementi combinati in un potente e sofisticato dispositivo per la produzione di scritture segrete In particolare ma
macchina aveva tre componenti collegati da fili elettrici una tastiera per immettere le lettere del testo chiaro
unrsquounitagrave scambiatrice che cifra la lettera trasformandola nel corrispondente elemento del crittogramma e un
visore con varie lampadine che accendendosi indicano la lettera da inserire nel crittogramma
Lo sforzo per violare questa cifratura richiese anni di lavoro e fu portato a compimento dalla Scuola
Inglese Governativa di Codici e Cifre di Bletchley Park di cui faceva parte Alan M Turing noto oggi ai piugrave per
i suoi studi sullrsquointelligenza meccanica
La crittografia nellrsquoera dellrsquoinformatica
Nel 1945 fu realizzato ENIAC (Electronic Numerical Integrator And Calculator) unrsquoapparecchiatura
contenente 18 000 valvole elettroniche capace di effettuare 5000 calcoli al secondo considerato il capostipite
dei moderni calcolatori
Dopo il 1945 fu lrsquoinformatica a fare da protagonista nella battaglia tra crittografi e crittoanalisti operando
una decisiva svolta nelle metodologie di entrambi Infatti i metodi precedenti lrsquoera dellrsquoinformatica basavano la
propria sicurezza sullrsquoenorme numero di chiavi disponibili e sulla loro lunghezza ma che viene messa in crisi
dalla crescente potenza di calcolo dei computer Un computer molto potente infatti potrebbe individuare quella
giusta in pochi minuti anche nel caso di un milione di chiavi da esaminare
Tutti i metodi crittografici esaminati finora necessitano di
22
1 un algoritmo generale di cifratura G
2 di una chiave K che deve rimanere segreta
3 di un algoritmo di decifrazione H=Gndash1 (inverso di G)
e agiscono secondo il seguente schema
il messaggio in chiaro M tramite lrsquoalgoritmo G e la chiave K viene cifrato in MC questrsquoultimo tramite
lrsquoalgoritmo H e la stessa chiave K viene decifrato in M (figura 6)
Figura 6 Schema di metodi crittografici
La sicurezza di tali sistemi risiede interamente nella segretezza delle chiavi Ne segue che per distribuire
agli utenti le chiavi egrave necessario ricorrere a canali sicuri
Gli svantaggi che ne derivano sono essenzialmente
1 difficoltagrave nella distribuzione delle chiavi agli utenti
2 mancata autenticazione dei messaggi mittente e destinatario condividono la stessa chiave
pertanto non crsquoegrave modo di impedire che il destinatario si invii messaggi che poi sembrino
provenienti dal mittente Si pensi quali problemi possono provocare simili falsificazioni nella
posta elettronica o nei sistemi bancari elettronici
La svolta avvenne nel 1976 a opera di Diffie e Hellmann che proposero un metodo detto a chiave
pubblica il quale non necessita di uno scambio preventivo delle chiavi segrete Lrsquodea egrave chiarita dal seguente
esempio noto come esempio del doppio lucchetto
Supponiamo di avere due utenti Mitt e Dest e Mitt voglia spedire un messaggio segreto a Dest
1 Mitt mette il messaggio in una scatola che chiude con il proprio lucchetto LMitt (di cui solo lui ha
la chiave) e spedisce la scatola a Dest
2 Dest ricevuta la scatola aggiunge un proprio lucchetto LDest (di cui solo lui ha la chiave) e
rispedisce la scatola a Mitt
3 Mitt ricevuta la scatola con il doppio lucchetto toglie il lucchetto LMitt e rispedisce la scatola a
Dest
4 Dest ricevuta la scatola puograve togliere il lucchetto LDest e leggere il messaggio di Mitt
Il problema della distribuzione delle chiavi sembra risolto percheacute lo schema a doppia chiave non richiede
la condivisione delle stesse Tuttavia la realizzazione pratica di un tale sistema si scontra con un altro problema
quello riguardante lrsquoordine in cui cifrature e decifrature sono eseguite In altre parole in un sistema crittografico
egrave essenziale lrsquoordine con cui avvengono le rispettive cifrature e decifrature in quanto la cifratura eseguita per
23
ultimo andrebbe decifrata per prima (egrave un porsquo come quando la mattina infiliamo prima le calze e poi le scarpe
ma alla sera togliamo prima le scarpe e poi le calze)
Lrsquoesempio del doppio lucchetto in cui ciograve non avviene sembra tuttavia funzionare come idea percheacute ai
fini dellrsquoapertura della scatola non ha importanza lrsquoordine di rimozione dei lucchetti
Anche se il trucco dei due lucchetti non sembra immediatamente applicabile tuttavia fu il giusto punto di
partenza per la realizzazione di un sistema crittografico che aggira lrsquoostacolo della distribuzione delle chiavi
Infatti lrsquoidea egrave che mittente e destinatario generano ciascuno due chiavi distinte una chiave di cifratura E
(da utilizzare nellrsquoalgoritmo di cifratura) e una chiave di decifrazione D (da utilizzare nellrsquoalgoritmo di
decifrazione) Le chiavi sono correlate nel senso che servono per effettuare operazioni inverse (figura 7)
Figura 7 Le chiavi correlate per effettuare operazioni invese
Il trucco consiste nellrsquoimpossibilitagrave di poter derivare la chiave D dalla chiave E mediante algoritmi di
calcolo (figura 8)
Ogni utente puograve rendere pubblica la propria chiave di cifratura E indicandola magari sullrsquoelenco
telefonico senza compromettere la propria chiave di decifrazione che rimane segreta di pubblico dominio sono
anche gli algoritmi di cifratura G e decifrazione H
Figura 8 Inapplicabilitagrave del metodo del doppio lucchetto
Pertanto lrsquoesempio del doppio lucchetto viene cosigrave interpretato
1 il destinatario pubblica la chiave di cifratura E e mantiene segreta la chiave di decifrazione D
2 il mittente applica GE al messaggio M trasformandolo nel messaggio cifrato MC cioegrave
GE(M)=MC che spedisce al destinatario
3 il destinatario applica HD al messaggio cifrato MC riottenendo M cioegrave HD(MC)=M
24
La sicurezza di un tale sistema si fonda sulla difficoltagrave di poter
1 ritrovare il testo cifrato provando ad applicare lrsquoalgoritmo GE che egrave pubblico ad ogni possibile
testo in chiaro il cui numero pur essendo enorme egrave comunque finito
2 ricavare lrsquoalgoritmo HD da GE
in quanto entrambe le tecniche sono computazionalmente inattuabili nel senso che richiedono un tempo
di calcolo di lunghezza al di fuori di ogni possibile considerazione anche per i piugrave potenti calcolatori
Per descrivere tali algoritmi sono necessari alcuni concetti matematici che andiamo a illustrare
Figura 9 Schema di cifrario a chiave pubblica
Lrsquoaritmetica modulare
Lrsquoaritmetica modulare la cui introduzione egrave dovuta a Gauss costituisce un sistema di calcolo con
importanti applicazioni nei test di primalitagrave e nei metodi che stanno alla base della sicurezza delle comunicazioni
elettroniche Con essa infatti si hanno i seguenti vantaggi 1) si riduce lo spazio dei numeri su cui gli algoritmi
sono chiamati ad operare e quindi si aumenta la velocitagrave di calcolo 2) si riesce a rendere difficili alcuni problemi
computazionali che sono semplici (o addirittura banali) nellrsquoalgebra ordinaria al fine di aumentare la sicurezza
nelle comunicazioni Lrsquoidea egrave semplice ma potente Forse non lo sappiamo ma usiamo spesso laritmetica
modulare Potremmo chiamarla aritmetica dellorologio
Infatti pensiamo ad un normale orologio con 24 ore Se sono le 15 ed un amico ci comunica che saragrave a
casa nostra tra 5 ore sappiamo che egli verragrave alle 20 infatti 15+5=20 Ma se sono le 23 e dobbiamo partire fra 7
ore certamente non diciamo che la partenza saragrave alle 30 anche se 23+7=30 Sappiamo che dovremo partire alle
6 Allo stesso modo se sono le 20 che ora saragrave tra 14 ore Non diremo 34 anche se 20+14=34 ma diremo che
sono le 10 Come si spiega tutto ciograve
Immaginiamo di segnare sul quadrante dellrsquoorologio 24 ore Se la lancetta segna le 23 aggiungere 7 ore
significa spostarsi di 7 posti fino ad arrivare alle 6 Si giunge allo stesso risultato calcolando 23+7=30 ed
osservando che 30=1sdot24+6 o che egrave lo stesso 3024 =1 con resto 6 che significa che 30 lo si ottiene facendo fare
alla lancetta un giro completo piugrave 6
25
Se la lancetta segna le 20 e aggiungiamo 14 ore lrsquoorologio segneragrave le 10 percheacute 20+14=34 ma 3424= 1
con resto 10 per cui 34 lo si ottiene percorrendo un giro completo piugrave 10
Proviamo con il normale orologio a 12 ore I numeri che vediamo sul quadrante sono 0 1 2 3 4 5 6 7
8 9 10 11 Il numero 12 non compare percheacute a partire da 0 trascorse 12 ore torniamo di nuovo a 0 Questa
volta per fare un giro completo occorrono 12 ore Pertanto se sono le 7 che ore saranno tra 24 ore Saranno
ancora le 7 percheacute 7+24=31 ma 3112 = 2 con resto 7 cioegrave si compiono 2 giri completi piugrave 7 se sono le 8 tra 6
ore saranno le 2 percheacute 8+6=14 ma 1412=1 con resto 2 Dagli esempi dovrebbe risultare chiaro allora che ciograve
che contano non sono i risultati delle somme ma i loro resti nelle divisioni per il numero delle ore segnate sul
quadrante dellrsquoorologio
La stessa cosa succede con i giorni della settimana se pensiamo a un orologio con 7 ore sul quadrante
Facciamo corrispondere ai giorni della settimana i numeri da 0 a 6 (figura 10)
domenica Lunedigrave Martedigrave Mercoledigrave Giovedigrave Venerdigrave Sabato darr darr darr darr darr darr darr 0 1 2 3 4 5 6
Figura 10 Corrispondenza dei giorni della settimana con i numeri da 0 a 6
Se per esempio oggi egrave venerdigrave che giorno saragrave tra 12 giorni
Dovremo calcolare 5+12=17 ma i giorni si ripetono ogni 7 pertanto osservando che 177 =2 con resto 3
possiamo concludere che a partire da 5 e aggiungendo 12 si compiono 2 giri completi piugrave 3 ed essendo 3 il
numero corrispondente a mercoledigrave concludiamo che saragrave mercoledigrave Facciamo un altro esempio se oggi egrave
lunedigrave (1) che giorno saragrave tra 20 giorni Calcoliamo 1+20=21 217= 3 con resto 0 quindi saragrave domenica
Il numero n delle ore sullrsquoorologio costituisce quello che si chiama il modulo e individua lrsquoaritmetica di
modulo n in cui lrsquoinsieme dei numeri con i quali si opera indicato con Zn egrave lrsquoinsieme dei possibili resti della
divisione per n e cioegrave Zn=0 1 2 3 hellip nndash1e le operazioni si eseguono con le regole illustrate negli esempi
precedenti
Lrsquoesempio dellrsquoorologio a 24 ore costituisce la cosiddetta aritmetica finita di modulo 24 in essa Z24=0
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 essendo questi ultimi i possibili resti
della divisione per 24 Lrsquoorologio a 12 ore costituisce lrsquoaritmetica finita di modulo 12 in essa Z12=0 1 2 3 4
5 6 7 8 9 10 11 essendo questi ultimi i possibili resti della divisione per 12 Lrsquoesempio dei giorni della
settimana egrave lrsquoaritmetica finita di modulo 7 in cui Z7=0 1 2 3 4 5 6 essendo questi ultimi i possibili resti
della divisione per 7 Riassumiamo costruendo unrsquoaritmetica finita di modulo 4 I possibili resti della divisione
per 4 sono 0 1 2 3 quindi Z4=0123 Lrsquoaddizione e la moltiplicazione in Z4 si esegue come negli esempi
della tabella 6
26
operazioni indicate
Risultato nellrsquoaritmetica ordinaria
Risultato nellrsquoaritmetica modulo 4
2+2 4 0 percheacute 44=1 con resto 0
3+2 5 1 percheacute 54=1 con resto 1
2+1 3 3 percheacute 34=0 con resto 3
3sdot3 9 1 percheacute 94=2 con resto 1
3sdot2 6 2 percheacute 64=1 con resto 2
2sdot2 4 0 percheacute 44=1 con resto 0
Tabella 6 Addizione e moltiplicazione nellrsquoaritmetica finita di modulo 4
Si possono costruire le tavole dellrsquoaddizione e della moltiplicazione dellrsquoaritmetica modulo 4 che costituiscono
le tabelline di questa aritmetica sulla base delle quali si esegue qualsiasi addizione e moltiplicazione modulo 4
Nella tabella 7 sono spiegate le tabelline dellrsquoaritmetica in modulo 4
Tabella 7 Tavole dellrsquoaddizione e della moltiplicazione dellrsquoaritmetica modulo 4
Infine per indicare che due numeri a e b divisi per n danno lo stesso resto si usano le seguenti notazioni
tutte equivalenti tra loro
a=b mod n andashb=0 mod 4 a equiv b (mod n) che si legge a egrave congruo b modulo 4
Esempio
26=12 mod 7 egrave la stessa cosa di
26ndash12=0 mod 7 che egrave la stessa cosa di
26 equiv 12 (mod 7) e tutte e tre stanno a indicare che 26 e 12 divisi per 7 danno lo stesso resto che egrave 5 e
pertanto sono tutti equivalenti a 5
Facciamo vedere come sfruttare lrsquoaritmetica modulare per calcolare potenze come 2341 (figura 11) Il
metodo si basa sulla proprietagrave che il resto del quadrato di un numero a per un dato modulo n egrave uguale al
quadrato del resto dello stesso numero a per lo stesso modulo n cioegrave a2 mod n =(a mod n)2
+ 0 1 2 3
0 0 1 2 3
1 1 2 3 0
2 2 3 0 1
3 3 0 1 2
x 0 1 2 3
0 0 0 0 0
1 0 1 2 3
2 0 2 0 2
3 0 3 2 1
27
Figura 11 Il metodo per calcolare 2341
La funzione di Eulero
Per ogni intero ngt1 si definisce la funzione di Eulero = numero di interi minori di n e primi con esso Ad
esempio
bull ( ) 45 =φ percheacute gli interi minori di 5 sono 1 2 3 4 ed essi sono tutti primi con n
bull ( ) 26 =φ percheacute gli interi minori di 6 sono 1 2 3 4 5 e fra essi solo 1 e 5 sono primi con 6
bull ( ) 67 =φ percheacute gli interi minori di 7 sono 1 2 3 4 5 6 ed essi sono tutti primi con 7
bull ( ) 412 =φ percheacute gli interi minori di 12 sono 1 2 3 4 5 6 7 8 9 10 11 e fra essi solo 1 5 7
11 sono primi con 12
Se si conosce la scomposizione in fattori del numero n il seguente teorema ci fornisce un metodo per
calcolare Infatti esso afferma che per ogni ngt1 non primo ( )
minussdotsdot
minussdot
minussdotnppp
n=nφ 11
11
11
21
dove
p1 p2 hellip pn sono i fattori primi di n presi senza molteplicitagrave
22 mod 341=4
24=(22)2=(22 mod 341)2=42=16mod341=16
28=(24)2=(16)2=256mod341=256
216= (28)2=(256)2=65536mod341=64
232=(216)2=(64)2=4096mod341=4
264=(232)2=42=16mod341=16
2128=(264)2=(16)2=256mod341=256
2256=(2128)2=(256)2=65536mod341=64
2341=2(256+64+16+4+1) 2256 264 216 24 21 x x x x
64 1
1024 mod 341
= 1 x 64
64 x 16
1024 mod 341
1 x 2 =
=
x
28
Ad esempio
essendo 12 = 3sdot2sdot2 ( ) 42
1
3
212
2
11
3
111212 ===φ sdotsdot
minussdot
minussdot
essendo 6=2sdot3 ( ) 22
1
3
26
2
11
3
1166 ===φ sdotsdot
minussdot
minussdot
se n=psdotq ( ) ( ) ( )11111
11
1 minussdotminusminussdotminussdot
minussdot
minussdot qp=q
q
p
pn=
qpn=nφ
Ovviamente se n egrave un numero primo = nndash1
Vale inoltre il seguente teorema di Eulero per ngt1 e per ogni altn e primo con n si ha
Ad esempio per n=6 ( ) 26 =φ infatti i primi con 6 sono 1 e 5 per il teorema di Eulero si ha
2mod1255
2mod1112
2
equiv=
equiv=
per n=5 ( ) 45 =φ e i primi con 5 sono 1 2 3 4 e per il teorema di Eulero si ha
5mod12564
5mod1813
5mod1162
5mod111
4
4
4
4
equiv=
equiv=
equiv=
equiv=
Si puograve notare come nel caso in cui n egrave un numero primo si ritrova il piccolo teorema di Fermat
Infatti per n primo ( )nφ = nndash1 e per il teorema di Eulero per ogni altn e primo con n Ricordiamo infatti
che il piccolo teorema di Fermat afferma che se n egrave un numero primo e a un intero minore di n allora egrave
divisibile per n che con il linguaggio dellrsquoaritmetica modulare diventa che puograve essere riscritto e se a egrave primo
con n allora egrave che egrave equivalente a
Infine si prova che per ogni altn e primo con esso esiste lrsquoinverso di a e esso egrave dato da ( ) 1minusnaφ Infatti
( ) ( ) na=aa nφnφ1mod1 equivsdot minus per il teorema di Eulero Si ricorda che lrsquoinverso di un numero a egrave quel numero che
moltiplicato per a dagrave 1 indicato convenzionalmente con andash1
Ad esempio per n=5 i primi con 5 sono 1 2 3 4 e per ognuno di questi esiste lrsquoinverso infatti
bull lrsquoinverso di 1 egrave ( ) 1mod51111 31415 equivminusminus ===φ
e infatti
bull lrsquoinverso di 2 egrave ( ) 3mod58222 31415 equivminusminus ===φ
e infatti
bull lrsquoinverso di 3 egrave ( ) 2mod527333 31415 equivminusminus ===φ
e infatti
bull lrsquoinverso di 4 egrave ( ) 4mod564444 31415 equivminusminus ===φ
Le funzioni unidirezionali
Chiamiamo funzione da un insieme A a un insieme B qualunque procedura che associa a ogni elemento
di un insieme A (detto dominio) uno e un solo elemento di un insieme B (detto condominio) In simboli f
A rarr B Se poi indichiamo con x il generico elemento dellrsquoinsieme A e con y il generico elemento dellrsquoinsieme B
la f indica la procedura che ad ogni xisinA associa un yisinB e cioegrave y=f(x) ad esempio ldquofare il doppio dihelliprdquo
29
prendendo come dominio e codominio lrsquoinsieme dei numeri interi egrave in questo senso una funzione percheacute dato
ad esempio il numero 3 lo trasforma nel numero 6 come 5 lo trasforma in 10 e cosigrave via
Molte funzioni matematiche sono cosiddette bidirezionali nel senso che egrave facile dato un determinato x
generare il corrispondente y ma egrave altrettanto facile invertire la funzione cioegrave ritrovare lrsquoelemento x originario a
partire dal suo corrispondente
Facciamo qualche esempio
bull funzione xrarr fare il doppiorarr 2sdotx= y 3rarr fare il doppiorarr 2sdot3 = 6
funzione inversa y=2sdotx rarr fare la metagraverarr x 6=2sdot3 rarr fare la metagraverarr 3
bull funzione xrarr fare il quadruplorarr 4sdotxrarr aggiungere 1rarr sdoty=4sdotx +1
5rarr fare il quadruplorarr 4sdot5rarr aggiungere 1rarr 4sdot5 +1=21
funzione inversa y=4sdotx +1rarr sottrarre 1rarr 4sdot xrarr dividere per 4rarr x
21=4sdot5 +1rarr sottrarre 1rarr 4sdot 5rarr dividere per 4rarr 5
Le funzioni unidirezionali sono invece quelle funzioni facilmente calcolabili ma che non si possono invertire
Le funzioni cosiddette pseudounidirezionali (dette anche funzioni trappola a molla segreta) sono invece
quelle funzioni facilmente calcolabili ma che non altrettanto facilmente si possono invertire a meno che non si
conoscano alcune informazioni (la molla segreta) utilizzate nella loro costruzione
Lrsquoaritmetica modulare gioca un ruolo determinante in questo caso infatti permette di trasformare
funzioni bidirezionali in funzioni pseudounidirezionali
Facciamo lrsquoesempio della funzione ldquofare il quadruplordquo in simboli f(x)=4sdotx Egrave facilmente calcolabile
percheacute dato x per ottenere f(x) basta moltiplicare per 4 ma egrave altrettanto facile calcolare la sua inversa percheacute
dato f(x) basta dividere per 4 per ottenere lrsquooriginario x Ma anche se non avessimo la procedura inversa di
dividere per 4 sarebbe facile ritrovare lrsquoelemento originario anche procedendo per tentativi ed eliminazione
infatti se per esempio f(x) =20 si puograve tentare x=3 in tal caso f(x)=12 troppo piccolo quindi x deve essere
maggiore di 3 Si puograve allora pensare a 6 ma f(x)=24 troppo grande quindi x deve essere minore di 6 e cosigrave via
Vediamo cosa accade se calcoliamo utilizzando una aritmetica modulare Per esempio consideriamo la
stessa funzione f(x)=4sdotx in una aritmetica modulo 7 Possiamo osservare che la funzione non si comporta piugrave in
modo regolare come prima per accorgersene basta costruire una tabella (tabella 8)
x 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
f(x)=4sdotx 4 8 12 16 20 24 28 32 36 40 44 48 52 56 60
f(x)=4sdotmod 7 4 1 5 2 6 3 0 4 1 5 2 6 3 0 4
Tabella 8 La funzione f(x)=4sdotx in una aritmetica modulo 7
Anche in questa semplice situazione egrave chiaro che egrave piugrave complicato invertire la funzione e pertanto i valori
di x sono molto meglio protetti Si puograve fare anche lrsquoesempio della funzione esponenziale f(x)=3 x (tabella 9)
Tabella 9 La funzione f(x)=3 x in aritmetica modulo 11
x 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
f(x)=x3 1 8 27 64 125 216 343 512 729 1000 hellip hellip hellip hellip hellip
f(x)=x3 mod 11 1 8 5 9 4 7 2 6 3 10 hellip hellip hellip hellip hellip
30
Il cifrario a chiave pubblica RSA
Uno dei piugrave noti sistemi crittografici a chiave pubblica che sfrutta le idee precedentemente descritte egrave il
metodo RSA proposto dai matematici R L Rivest A Shamir e L Adlemann nel 1978 Esso risolve il problema
dello scambio delle chiavi in quanto queste ultime sono conosciute solamente ai rispettivi proprietari che non le
hanno preventivamente concordate e scambiate
Illustriamo schematicamente come i due utenti Mitt e Dest possano scambiarsi un messaggio segreto
utilizzando il metodo RSA Entrambi Mitt e Dest indipendentemente lrsquouno dallrsquoaltro poi
1 scelgono in modo casuale due numeri primi p q grandi (di 200-300 cifre in base 10)
2 calcolano N = psdotq e Φ(N) = (pndash1)sdot(qndash1)
3 scelgono un intero eltΦ(N) e primo con Φ(N) tale numero e saragrave la chiave pubblica
4 calcolano il numero d inverso di e mod Φ(N) tale cioegrave che esdotdequiv 1mod Φ(N) tale numero d saragrave
la chiave privata
5 rendono pubblici i numeri N ed e
Mitt per spedire un messaggio a Dest compie le seguenti operazioni
1 codifica il messaggio in un modo standard usando i numeri lt N
2 trasforma ogni numero M di tale codifica in Me (mod N) e lo spedisce a Dest
per decodificare il messaggio ricevuto Me Dest calcola (Me)d =Mesdotd =Mndash1=M (modN) riottenendo il messaggio
originale
Figura 12 Schema di cifrario con metodo RSA
31
Figura 13 Esempio di applicazione di metodi RSA
In che cosa consiste la sicurezza del metodo Da quanto esposto si osserva che per decodificare il
messaggio bisogna
1 conoscere d (chiave segreta)
2 essendo d lrsquoinverso di e nellrsquoaritmetica mod Φ(N) essendo e noto egrave necessario conoscere Φ(N)
3 ma noto N per calcolare Φ(N) egrave necessario conoscere i fattori primi di N cioegrave egrave necessario fattorizzare
N che egrave un problema computazionalmente difficile per quanto osservato in precedenza
Anche se non egrave stato dimostrato che non si possa rompere il codice in altro modo e cioegrave senza conoscere Φ(N) e i
fattori di N a tuttrsquooggi si puograve affermare che la sicurezza del metodo dipende essenzialmente dai seguenti fatti
Per codificare il messaggio bisogna saper costruire dei numeri primi grandi e tale operazione egrave
computazionalmente veloce si puograve infatti dimostrare che la complessitagrave computazionale di opportuni test di
primalitagrave per stabilire se un numero n egrave primo utilizzando il linguaggio di quel ramo della matematica nota
come teoria della complessitagrave egrave ldquoquasi-polinomialerdquo
Per violare il sistema bisogna saper fattorizzare interi grandi ottenuti come prodotto di due primi tale
problema egrave computazionalmente ldquolentordquo cioegrave con il linguaggio della teoria della complessitagrave appartiene alla
classe dei problemi non polinomiali Tale marcata differenza tra la velocitagrave di esecuzione delle operazioni di
costruzione di numeri primi grandi e di fattorizzazione di interi grandi garantisce la sicurezza del metodo
almeno per un tempo sufficientemente lungo Ad esempio con la tecnologia attuale lrsquooperazione di
fattorizzazione di un intero di 140 cifre in base 10 prodotto di due numeri primi casuali calcolati in pochi
secondi su un computer disponibile in commercio richiede utilizzando vari supercomputers operanti
parallelamente circa un mese
La RSA Security Inc gestisce una sfida a livello mondiale ove vengono premiati coloro che fattorizzano
gli interi proposti da loro in una particolare lista Ad esempio il 3 dicembre del 2003 egrave stato fattorizzato
32
rsa576 =
188198812920607963838697239461650439807163563379417382700763356422988859715234
665485319060606504743045317388011303396716199692321205734031879550656996221305
168759307650257059
un numero di 174 cifre decimali prodotto di due primi di 87 cifre
p =
398075086424064937397125500550386491199064362342526708406385189575946388957261
768583317
q =
472772146107435302536223071973048224632914695302097116459852171130520711256363
590397527
Le chiavi attualmente utilizzate dallRSA sono a 309 cifre decimali
La firma digitale
Consideriamo al solito un mittente che deve inviare a un destinatario un messaggio m La codifica di m
con il metodo descritto assicura lrsquoautenticitagrave del messaggio ma non fornisce alcuna sicurezza sulla sua
paternitagrave Infatti il messaggio m pur essendo autentico potrebbe essere stato inviato da qualcuno che si spaccia
per il mittente Questa egrave unimportantissima questione particolarmente nella trasmissione di messaggi che oltre
a dover essere segreti devono garantire la loro origine
Si dovrebbe quindi disporre di un analogo della firma manuale detta appunto firma digitale La firma
digitale deve allora essere progettata in modo da possedere le stesse caratteristiche di una firma manuale e cioegrave
lrsquoautenticitagrave la non falsificabilitagrave e lrsquoimpossibiltagrave di essere riutilizzata Facciamo vedere come lo stesso metodo
RSA puograve essere utilizzato per progettare una firma digitale
La situazione egrave la seguente il mittente (di seguito indicato con Mitt) invia un messaggio m con la firma
F al destinatario (di seguito indicato con Dest) Siano a b rispettivamente le chiavi pubblica e segreta di MITT
siano e d rispettivamente le chiavi pubblica e segreta di DEST
La procedura per apporre la firma digitale F al messaggio m egrave illustrata nei seguenti passi riassunti nel
grafico della figura 14
1 Mitt cripta la firma F (cioegrave i suoi dati identificativi) usando la propria chiave segreta (b)
ottenendo Fb
2 il messaggio m con la firma F criptata viene ulteriormente criptato con la chiave pubblica di
Dest (e) ottenendo (m Fb)e
3 Dest decodifica il messaggio con la sua chiave segreta (d) ottenendo
((m Fb)e)d = (me F(be)) d =m(e d)F(be d) = mFb
in cui la firma di Mitt egrave ancora criptata
4 Dest decodifica la firma di Mitt con la chiave pubblica di Mitt (a) ottenendo
(Fb)a = F(ba) = F
33
Grafico firma digitale
Mitt
Dest
pubblica
Fb
e dpubblica
a
((Fb)e)d=(Fb)ed=(Fb)1=Fb
(Fb)a=(F)ba=(F)1=F
ab de
(Fb)e
codifica
codificadecodifica
decodifica
1
2
3
4
5
6
7
8
segreta
b
segreta
Figura 14 Grafico firma digitale
Bibliografia
Thomas Beth Comunicazioni e sicurezza su Internet in ldquoLe Scienzerdquo n 330 febbraio 1996
Brian Butterworth Intelligenza matematica Vincere la paura dei numeri scoprendo le doti innate della mente
Rizzoli Milano 1999
John H Conway Richard K Guy Il libro dei numeri Hoepli Milano 2003
Richard Courant Herbert Robbins Che cosrsquoegrave la matematica Boringhieri Torino 1971
Philip J Davis Il mondo dei grandi numeri Zanichelli Bologna 1973
Keith Devlin Dove va la matematica Bollati Boringhieri Torino 1994
Jean Dieudonneacute Lrsquoarte dei numeri matematica e matematici oggi Mondadori Milano 1989
Martin E Ellmann La crittografia a chiave pubblica in La matematica della complessitagrave Quaderni n 67
settembre 1992 Le Scienze
Paolo Ferragina Fabrizio Luccio Crittografia principi ndash Algoritmi ndash Applicazioni Bollati Boringhieri Torino
2001
Godfrey H Hardy Apologia di un matematico Garzanti Milano 1989
Morris Kline Storia del pensiero matematico Einaudi Milano 1991
Serge Lang La bellezza della matematica Bollati Boringhieri Torino 1991
Mauro Leoncini Modelli di calcolo e complessitagrave computazionale in La matematica computazionale Quaderni
n 84 giugno 1995 Le Scienze
Fabrizio Luccio e Linda Pagli P = NP in La matematica della complessitagrave Quaderni n 67 settembre 1992
Le Scienze
Piergiorgio Odifreddi La Matematica del Novecento dagli insiemi alla complessitagrave Einaudi Torino 2000
34
ldquoPeriodico di matematicherdquo Serie VII Volume 7 Numero 2-3 luglio-dicembre 2000 Mathesis
ldquoPeriodico di matematicherdquo Serie VIII Volume 1 Numero 1 gennaio-marzo 2001 Mathesis
Carl Pomerance Alla ricerca dei numeri primi in ldquoLe Scienzerdquo n 174 febbraio 1983
Simon Singh Codici e segreti la storia affascinante dei messaggi cifrati dallrsquoantico Egitto a Internet Rizzoli
Milano 1999
Marcus du Sautoy Lrsquoenigma dei numeri primi lrsquoipotesi di Riemann lrsquoultimo grande mistero della matematica
Rizzoli Milano 2004
Gary Stix I segreti meglio custoditi la crittografia quantistica egrave passata dalla teoria al laboratorio per
approdare finalmente alle applicazioni in ldquoLe Scienzerdquo n 438 febbraio 2005
17
Figura 2 Cifrario di Giulio Cesare
Per decifrare si sostituisce ogni lettera del messaggio cifrato utilizzando la corrispondenza inversa
Come si puograve facilmente osservare in questo metodo lrsquoalfabeto cifrante altro non egrave che una
riorganizzazione dellrsquoalfabeto ordinario che si puograve ottenere con un qualsiasi spostamento tra 1 e il numero delle
lettere dellrsquoalfabeto ordinario Per esempio nel caso dellrsquoalfabeto italiano che consta di 21 lettere si possono
effettuare 20 diversi spostamenti e ottenere quindi 20 diversi alfabeti cifranti Essendo lrsquoalfabeto cifrante una
riorganizzazione dellrsquoalfabeto ordinario non egrave detto che questa debba essere ottenuta utilizzando il criterio
dello spostamento ma puograve coincidere con un qualsiasi anagramma dellrsquoalfabeto ordinario Si vede quindi
facilmente come aumentano gli alfabeti cifranti nel nostro caso il loro numero per quanto detto
precedentemente uguaglia il numero delle permutazioni di 21 elementi e cioegrave 21 e cioegrave oltre 50 miliardi di
miliardi
A partire da questo esempio cerchiamo di chiarire in termini generali il significato di metodo
crittografico intendendo con esso un algoritmo che mediante una chiave trasforma un messaggio in chiaro in
un messaggio cifrato o crittogramma
Ad esempio nel metodo descritto sopra lrsquoalgoritmo equivale alla procedura con cui ogni lettera
dellrsquoalfabeto in chiaro egrave sostituita dalla corrispondente lettera dellrsquoalfabeto cifrante la chiave equivale al
particolare alfabeto cifrante scelto per la cifratura o decifrazione di un particolare crittogramma
Inoltre crsquoegrave da sottolineare lrsquoimportanza concettuale della distinzione tra algoritmo e chiave Infatti la sola
conoscenza dellrsquoalgoritmo senza la chiave non permette di decifrare il crittogramma Ed egrave questo uno dei
principi fondamentali della crittografia formulato in modo definitivo nel 1883 dallrsquoolandese Auguste
Kerckhoffs von Nieuwenhof noto anche come legge di Kerckhoffs ldquola sicurezza di un crittosistema non deve
dipendere dal tener celato il crittoalgoritmo La sicurezza dipenderagrave solo dal tener celata la chiaverdquo
Le caratteristiche di un efficace sistema crittografico possono essere riassunte nelle seguenti
1 segretezza della chiave
2 semplicitagrave della chiave (per evitare possibili malintesi o errori al momento dello scambio tra
mittente e destinatario)
3 alto numero di potenziali chiavi tra cui scegliere
18
Come si puograve notare la 2) e la 3) sono collegate tra loro infatti nel sistema descritto sopra si potrebbe
scegliere una chiave piugrave semplice sacrificando il numero di chiavi potenziali
Infatti invece di generare lrsquoalfabeto cifrante da una riorganizzazione casuale dellrsquoalfabeto ordinario lo si
puograve fare a partire da una parola chiave come nel seguente esempio Supponiamo di accordarci sulla parola
chiave lsquolaurarsquo si eliminano eventuali spazi e lettere ripetute quindi la parola chiave diventa lsquolaurrsquo a questo
punto la sequenza l a u r saragrave lrsquoinizio dellrsquoalfabeto cifrante cui seguiranno tutte le altre lettere mancanti in
ordine alfabetico partendo dallrsquoultima lettera della chiave per cui lrsquoalfabeto cifrante che si ottiene saragrave l a u r s t
v z b c d e f g h i m n o p q
I crittosistemi basati sulla sostituzione hanno dominato la scena per tutto il primo millennio della nostra era
fincheacute i crittoanalisti non trovarono il suo punto debole ed elaborarono un metodo per decifrarne i crittogrammi prodotti
La violazione di tali sistemi si basa su unrsquoidea dovuta per prima a crittoanalisti arabi nella quale si
combinano conoscenze di linguistica statistica e matematica nota con il nome di analisi delle frequenze
Essa egrave descritta dallo studioso del IX secolo Abu Yusuf ibn Ishaq al-Kind sopran-nominato il filosofo
degli arabi in una sua monografia dal titolo Sulla decifrazione dei messaggi crittati ritrovata nellrsquoarchivio
ottomano Sulaimaniyyah di Istanbul solo nel 1987 Nel testo si legge
Un modo di svelare un messaggio crittato se conosciamo la lingua dellrsquooriginale consiste nel trovare
un diverso testo chiaro nella stessa lingua abbastanza lungo da poter calcolare la frequenza di ciascuna
lettera
Chiamiamo ldquoprimardquo quella che compare piugrave spesso ldquosecondardquo quella che la segue per frequenza
ldquoterzardquo la successiva e cosigrave via fino a esaurire tutte le lettere del campione di testo chiaro
Esaminiamo poi il testo in cifra che vogliamo interpretare ordinando (in base alla frequenza) anche i
suoi simboli Troviamo il simbolo piugrave comune e rimpiazziamolo con la ldquoprimardquo lettera dellrsquoesempio
chiaro il simbolo che lo segue per frequenza sia rimpiazzato dalla ldquosecondardquo lettera il successivo simbolo
piugrave comune sia rimpiazzato dalla ldquoterzardquo e cosigrave via fino ad aver preso in considerazione tutti i simboli del
crittogramma che intendevamo svelare
Tabella 4 Frequenze delle diverse lettere in italiano
Per superare lrsquoanalisi delle frequenze furono ideati diversi nuovi metodi crittografici tra cui ricordiamo
1 il metodo di sostituzione omofonica
2 il metodo di sostituzione polialfabetica
19
Il metodo di sostituzione omofonica consiste nel sostituire ogni lettera con un numero di simboli per
esempio numeri proporzionale alla sua frequenza Cosigrave ad esempio la lettera a avendo una frequenza di 11 74
viene sostituita da 11 simboli la lettera b con un solo simbolo la lettera c con 4 simboli ecc secondo la tabella 5
Il metodo di sostituzione polialfabetica consiste nellrsquouso di piugrave alfabeti cifranti su unrsquoidea di Leon
Battista Alberti che propose di utilizzarne due Lrsquoalgoritmo consiste nel sostituire la prima lettera del messaggio
in chiaro con la corrispondente del I alfabeto cifrante la seconda lettera con la corrispondente del II alfabeto
cifrante la terza con la corrispondente del I e cosigrave via passando alternativamente dal I alfabeto al secondo Come
nellrsquoesempio della figura 3
Tabella 5 Corrispondenza lettere e simboli nella sostituzione omofonica
Figura 3 Il metodo di sostituzione polialfabetica
Su tale idea si basa il metodo di Blaise de Vigenegravere diplomatico francese nato nel 1523 il quale utilizza
tanti alfabeti cifranti quante sono le lettere dellrsquoalfabeto in chiaro ad esempio nellrsquoalfabeto italiano che consta
di 21 lettere utilizza 21 alfabeti cifranti
Il primo passo consiste nel costruire la tavola di Vigenegravere in cui nella prima riga egrave riportato lrsquoalfabeto in
chiaro e in ognuna delle 21 righe successive egrave riportato un alfabeto cifrante spostato di una lettera rispetto a
quello della riga precedente cosigrave nella riga 1 egrave riportato lrsquoalfabeto spostato di una lettera nella riga 2 quello
spostato di due lettere nella riga 3 quello spostato di tre fino alla riga 20 in cui egrave riportato quello spostato di 20
lettere (figura 4)
20
Figura 4 La tavola di Vigenegravere
Il secondo passo consiste nello scegliere una parola chiave per esempio lsquoverorsquo Pertanto il messaggio in
chiaro ldquonon andarerdquo verrebbe cifrato come nella figura 5
La differenza sostanziale tra la cifratura omofonica e quella polialfabetica egrave che in quella omofonica a
ogni lettera corrispondono piugrave simboli ma ogni simbolo egrave il corrispondente di una sola lettera cioegrave egrave una
corrispondenza 1rarr m che invertita diventa mrarr 1 in quella polialfabetica a ogni lettera corrispondono piugrave
simboli e anche ogni simbolo egrave il corrispondente di piugrave lettere cioegrave mrarr m che rimane tale anche invertendola
Il vantaggio della cifratura polialfabetica egrave pertanto la sua resistenza allrsquoanalisi delle frequenze Oltre ad
ammettere un enorme numero di chiavi infatti si puograve scegliere qualunque parola del dizionario qualunque
combinazione di parole si puograve perfino ricorrere a neologismi rendendo impossibile il controllo di tutte le chiavi
possibili Ed ecco percheacute egrave ritenuta piugrave affidabile e non ha mai smesso di essere usata
Figura 5 Cifratura polialfabetica del messaggio ldquonon andarerdquo
21
Oggi sono noti tutti i punti deboli del sistema di Vigenegravere ed esistono vari procedimenti per decifrare i
crittogrammi generati da tale sistema che sfruttano ad esempio la modularitagrave nel ripetere la chiave o
osservazioni sulle ripetizioni del testo cifrato Ci sono testimonianze storiche che uno di tali procedimenti sia
stato ideato da Sir Charles Babbage famoso per aver progettato e mai realizzato la macchina alle differenze
progenitrice degli odierni calcolatori La prima descrizione resa pubblica del metodo perograve egrave del 1863 portata a
compimento dallrsquoufficiale prussiano F W Kasiski
Unrsquoosservazione decisiva fu che le insidie del metodo di Babbage potevano essere evitate utilizzando
nella cifratura di Vigenegravere una chiave molto lunga e fatta da lettere che si succedono in modo casuale se un
messaggio cifrato non presenta delle ripetizioni se non egrave possibile tentare di indovinare la chiave cadono tutti
gli appigli necessari per effettuare con successo la crittoanalisi
Tale osservazione fu ulteriormente sviluppata da G S Vernam che nel 1926 introdusse lrsquoidea di usare
una chiave casuale lunga quanto il messaggio stesso
Oggi sappiamo grazie agli studi di Claude Shannon del 1949 che tale metodo puograve definirsi
ldquoteoricamente sicurordquo
In pratica perograve ciograve comporta la difficoltagrave di costruire lunghe stringhe di lettere assolutamente casuali e di
scambiarsi segretamente e continuamente queste chiavi In sostanza risulta impraticabile per ogni messaggio
scambiato in modo sicuro egrave necessario prima trasmettere in modo sicuro il messaggio contenente la chiave
I metodi usati per buona parte del Novecento sono delle rielaborazioni sempre piugrave complesse delle idee
descritte finora ottenute anche con la costruzione di dispositivi per la meccanizzazione delle procedure di
cifratura e decifratura Un esempio tra i piugrave conosciuti egrave la macchina Enigma usata dai tedeschi durante la
Seconda guerra mondiale inventata dallrsquoingegnere Arthur Scherbius Enigma consisteva di diversi ingegnosi
elementi combinati in un potente e sofisticato dispositivo per la produzione di scritture segrete In particolare ma
macchina aveva tre componenti collegati da fili elettrici una tastiera per immettere le lettere del testo chiaro
unrsquounitagrave scambiatrice che cifra la lettera trasformandola nel corrispondente elemento del crittogramma e un
visore con varie lampadine che accendendosi indicano la lettera da inserire nel crittogramma
Lo sforzo per violare questa cifratura richiese anni di lavoro e fu portato a compimento dalla Scuola
Inglese Governativa di Codici e Cifre di Bletchley Park di cui faceva parte Alan M Turing noto oggi ai piugrave per
i suoi studi sullrsquointelligenza meccanica
La crittografia nellrsquoera dellrsquoinformatica
Nel 1945 fu realizzato ENIAC (Electronic Numerical Integrator And Calculator) unrsquoapparecchiatura
contenente 18 000 valvole elettroniche capace di effettuare 5000 calcoli al secondo considerato il capostipite
dei moderni calcolatori
Dopo il 1945 fu lrsquoinformatica a fare da protagonista nella battaglia tra crittografi e crittoanalisti operando
una decisiva svolta nelle metodologie di entrambi Infatti i metodi precedenti lrsquoera dellrsquoinformatica basavano la
propria sicurezza sullrsquoenorme numero di chiavi disponibili e sulla loro lunghezza ma che viene messa in crisi
dalla crescente potenza di calcolo dei computer Un computer molto potente infatti potrebbe individuare quella
giusta in pochi minuti anche nel caso di un milione di chiavi da esaminare
Tutti i metodi crittografici esaminati finora necessitano di
22
1 un algoritmo generale di cifratura G
2 di una chiave K che deve rimanere segreta
3 di un algoritmo di decifrazione H=Gndash1 (inverso di G)
e agiscono secondo il seguente schema
il messaggio in chiaro M tramite lrsquoalgoritmo G e la chiave K viene cifrato in MC questrsquoultimo tramite
lrsquoalgoritmo H e la stessa chiave K viene decifrato in M (figura 6)
Figura 6 Schema di metodi crittografici
La sicurezza di tali sistemi risiede interamente nella segretezza delle chiavi Ne segue che per distribuire
agli utenti le chiavi egrave necessario ricorrere a canali sicuri
Gli svantaggi che ne derivano sono essenzialmente
1 difficoltagrave nella distribuzione delle chiavi agli utenti
2 mancata autenticazione dei messaggi mittente e destinatario condividono la stessa chiave
pertanto non crsquoegrave modo di impedire che il destinatario si invii messaggi che poi sembrino
provenienti dal mittente Si pensi quali problemi possono provocare simili falsificazioni nella
posta elettronica o nei sistemi bancari elettronici
La svolta avvenne nel 1976 a opera di Diffie e Hellmann che proposero un metodo detto a chiave
pubblica il quale non necessita di uno scambio preventivo delle chiavi segrete Lrsquodea egrave chiarita dal seguente
esempio noto come esempio del doppio lucchetto
Supponiamo di avere due utenti Mitt e Dest e Mitt voglia spedire un messaggio segreto a Dest
1 Mitt mette il messaggio in una scatola che chiude con il proprio lucchetto LMitt (di cui solo lui ha
la chiave) e spedisce la scatola a Dest
2 Dest ricevuta la scatola aggiunge un proprio lucchetto LDest (di cui solo lui ha la chiave) e
rispedisce la scatola a Mitt
3 Mitt ricevuta la scatola con il doppio lucchetto toglie il lucchetto LMitt e rispedisce la scatola a
Dest
4 Dest ricevuta la scatola puograve togliere il lucchetto LDest e leggere il messaggio di Mitt
Il problema della distribuzione delle chiavi sembra risolto percheacute lo schema a doppia chiave non richiede
la condivisione delle stesse Tuttavia la realizzazione pratica di un tale sistema si scontra con un altro problema
quello riguardante lrsquoordine in cui cifrature e decifrature sono eseguite In altre parole in un sistema crittografico
egrave essenziale lrsquoordine con cui avvengono le rispettive cifrature e decifrature in quanto la cifratura eseguita per
23
ultimo andrebbe decifrata per prima (egrave un porsquo come quando la mattina infiliamo prima le calze e poi le scarpe
ma alla sera togliamo prima le scarpe e poi le calze)
Lrsquoesempio del doppio lucchetto in cui ciograve non avviene sembra tuttavia funzionare come idea percheacute ai
fini dellrsquoapertura della scatola non ha importanza lrsquoordine di rimozione dei lucchetti
Anche se il trucco dei due lucchetti non sembra immediatamente applicabile tuttavia fu il giusto punto di
partenza per la realizzazione di un sistema crittografico che aggira lrsquoostacolo della distribuzione delle chiavi
Infatti lrsquoidea egrave che mittente e destinatario generano ciascuno due chiavi distinte una chiave di cifratura E
(da utilizzare nellrsquoalgoritmo di cifratura) e una chiave di decifrazione D (da utilizzare nellrsquoalgoritmo di
decifrazione) Le chiavi sono correlate nel senso che servono per effettuare operazioni inverse (figura 7)
Figura 7 Le chiavi correlate per effettuare operazioni invese
Il trucco consiste nellrsquoimpossibilitagrave di poter derivare la chiave D dalla chiave E mediante algoritmi di
calcolo (figura 8)
Ogni utente puograve rendere pubblica la propria chiave di cifratura E indicandola magari sullrsquoelenco
telefonico senza compromettere la propria chiave di decifrazione che rimane segreta di pubblico dominio sono
anche gli algoritmi di cifratura G e decifrazione H
Figura 8 Inapplicabilitagrave del metodo del doppio lucchetto
Pertanto lrsquoesempio del doppio lucchetto viene cosigrave interpretato
1 il destinatario pubblica la chiave di cifratura E e mantiene segreta la chiave di decifrazione D
2 il mittente applica GE al messaggio M trasformandolo nel messaggio cifrato MC cioegrave
GE(M)=MC che spedisce al destinatario
3 il destinatario applica HD al messaggio cifrato MC riottenendo M cioegrave HD(MC)=M
24
La sicurezza di un tale sistema si fonda sulla difficoltagrave di poter
1 ritrovare il testo cifrato provando ad applicare lrsquoalgoritmo GE che egrave pubblico ad ogni possibile
testo in chiaro il cui numero pur essendo enorme egrave comunque finito
2 ricavare lrsquoalgoritmo HD da GE
in quanto entrambe le tecniche sono computazionalmente inattuabili nel senso che richiedono un tempo
di calcolo di lunghezza al di fuori di ogni possibile considerazione anche per i piugrave potenti calcolatori
Per descrivere tali algoritmi sono necessari alcuni concetti matematici che andiamo a illustrare
Figura 9 Schema di cifrario a chiave pubblica
Lrsquoaritmetica modulare
Lrsquoaritmetica modulare la cui introduzione egrave dovuta a Gauss costituisce un sistema di calcolo con
importanti applicazioni nei test di primalitagrave e nei metodi che stanno alla base della sicurezza delle comunicazioni
elettroniche Con essa infatti si hanno i seguenti vantaggi 1) si riduce lo spazio dei numeri su cui gli algoritmi
sono chiamati ad operare e quindi si aumenta la velocitagrave di calcolo 2) si riesce a rendere difficili alcuni problemi
computazionali che sono semplici (o addirittura banali) nellrsquoalgebra ordinaria al fine di aumentare la sicurezza
nelle comunicazioni Lrsquoidea egrave semplice ma potente Forse non lo sappiamo ma usiamo spesso laritmetica
modulare Potremmo chiamarla aritmetica dellorologio
Infatti pensiamo ad un normale orologio con 24 ore Se sono le 15 ed un amico ci comunica che saragrave a
casa nostra tra 5 ore sappiamo che egli verragrave alle 20 infatti 15+5=20 Ma se sono le 23 e dobbiamo partire fra 7
ore certamente non diciamo che la partenza saragrave alle 30 anche se 23+7=30 Sappiamo che dovremo partire alle
6 Allo stesso modo se sono le 20 che ora saragrave tra 14 ore Non diremo 34 anche se 20+14=34 ma diremo che
sono le 10 Come si spiega tutto ciograve
Immaginiamo di segnare sul quadrante dellrsquoorologio 24 ore Se la lancetta segna le 23 aggiungere 7 ore
significa spostarsi di 7 posti fino ad arrivare alle 6 Si giunge allo stesso risultato calcolando 23+7=30 ed
osservando che 30=1sdot24+6 o che egrave lo stesso 3024 =1 con resto 6 che significa che 30 lo si ottiene facendo fare
alla lancetta un giro completo piugrave 6
25
Se la lancetta segna le 20 e aggiungiamo 14 ore lrsquoorologio segneragrave le 10 percheacute 20+14=34 ma 3424= 1
con resto 10 per cui 34 lo si ottiene percorrendo un giro completo piugrave 10
Proviamo con il normale orologio a 12 ore I numeri che vediamo sul quadrante sono 0 1 2 3 4 5 6 7
8 9 10 11 Il numero 12 non compare percheacute a partire da 0 trascorse 12 ore torniamo di nuovo a 0 Questa
volta per fare un giro completo occorrono 12 ore Pertanto se sono le 7 che ore saranno tra 24 ore Saranno
ancora le 7 percheacute 7+24=31 ma 3112 = 2 con resto 7 cioegrave si compiono 2 giri completi piugrave 7 se sono le 8 tra 6
ore saranno le 2 percheacute 8+6=14 ma 1412=1 con resto 2 Dagli esempi dovrebbe risultare chiaro allora che ciograve
che contano non sono i risultati delle somme ma i loro resti nelle divisioni per il numero delle ore segnate sul
quadrante dellrsquoorologio
La stessa cosa succede con i giorni della settimana se pensiamo a un orologio con 7 ore sul quadrante
Facciamo corrispondere ai giorni della settimana i numeri da 0 a 6 (figura 10)
domenica Lunedigrave Martedigrave Mercoledigrave Giovedigrave Venerdigrave Sabato darr darr darr darr darr darr darr 0 1 2 3 4 5 6
Figura 10 Corrispondenza dei giorni della settimana con i numeri da 0 a 6
Se per esempio oggi egrave venerdigrave che giorno saragrave tra 12 giorni
Dovremo calcolare 5+12=17 ma i giorni si ripetono ogni 7 pertanto osservando che 177 =2 con resto 3
possiamo concludere che a partire da 5 e aggiungendo 12 si compiono 2 giri completi piugrave 3 ed essendo 3 il
numero corrispondente a mercoledigrave concludiamo che saragrave mercoledigrave Facciamo un altro esempio se oggi egrave
lunedigrave (1) che giorno saragrave tra 20 giorni Calcoliamo 1+20=21 217= 3 con resto 0 quindi saragrave domenica
Il numero n delle ore sullrsquoorologio costituisce quello che si chiama il modulo e individua lrsquoaritmetica di
modulo n in cui lrsquoinsieme dei numeri con i quali si opera indicato con Zn egrave lrsquoinsieme dei possibili resti della
divisione per n e cioegrave Zn=0 1 2 3 hellip nndash1e le operazioni si eseguono con le regole illustrate negli esempi
precedenti
Lrsquoesempio dellrsquoorologio a 24 ore costituisce la cosiddetta aritmetica finita di modulo 24 in essa Z24=0
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 essendo questi ultimi i possibili resti
della divisione per 24 Lrsquoorologio a 12 ore costituisce lrsquoaritmetica finita di modulo 12 in essa Z12=0 1 2 3 4
5 6 7 8 9 10 11 essendo questi ultimi i possibili resti della divisione per 12 Lrsquoesempio dei giorni della
settimana egrave lrsquoaritmetica finita di modulo 7 in cui Z7=0 1 2 3 4 5 6 essendo questi ultimi i possibili resti
della divisione per 7 Riassumiamo costruendo unrsquoaritmetica finita di modulo 4 I possibili resti della divisione
per 4 sono 0 1 2 3 quindi Z4=0123 Lrsquoaddizione e la moltiplicazione in Z4 si esegue come negli esempi
della tabella 6
26
operazioni indicate
Risultato nellrsquoaritmetica ordinaria
Risultato nellrsquoaritmetica modulo 4
2+2 4 0 percheacute 44=1 con resto 0
3+2 5 1 percheacute 54=1 con resto 1
2+1 3 3 percheacute 34=0 con resto 3
3sdot3 9 1 percheacute 94=2 con resto 1
3sdot2 6 2 percheacute 64=1 con resto 2
2sdot2 4 0 percheacute 44=1 con resto 0
Tabella 6 Addizione e moltiplicazione nellrsquoaritmetica finita di modulo 4
Si possono costruire le tavole dellrsquoaddizione e della moltiplicazione dellrsquoaritmetica modulo 4 che costituiscono
le tabelline di questa aritmetica sulla base delle quali si esegue qualsiasi addizione e moltiplicazione modulo 4
Nella tabella 7 sono spiegate le tabelline dellrsquoaritmetica in modulo 4
Tabella 7 Tavole dellrsquoaddizione e della moltiplicazione dellrsquoaritmetica modulo 4
Infine per indicare che due numeri a e b divisi per n danno lo stesso resto si usano le seguenti notazioni
tutte equivalenti tra loro
a=b mod n andashb=0 mod 4 a equiv b (mod n) che si legge a egrave congruo b modulo 4
Esempio
26=12 mod 7 egrave la stessa cosa di
26ndash12=0 mod 7 che egrave la stessa cosa di
26 equiv 12 (mod 7) e tutte e tre stanno a indicare che 26 e 12 divisi per 7 danno lo stesso resto che egrave 5 e
pertanto sono tutti equivalenti a 5
Facciamo vedere come sfruttare lrsquoaritmetica modulare per calcolare potenze come 2341 (figura 11) Il
metodo si basa sulla proprietagrave che il resto del quadrato di un numero a per un dato modulo n egrave uguale al
quadrato del resto dello stesso numero a per lo stesso modulo n cioegrave a2 mod n =(a mod n)2
+ 0 1 2 3
0 0 1 2 3
1 1 2 3 0
2 2 3 0 1
3 3 0 1 2
x 0 1 2 3
0 0 0 0 0
1 0 1 2 3
2 0 2 0 2
3 0 3 2 1
27
Figura 11 Il metodo per calcolare 2341
La funzione di Eulero
Per ogni intero ngt1 si definisce la funzione di Eulero = numero di interi minori di n e primi con esso Ad
esempio
bull ( ) 45 =φ percheacute gli interi minori di 5 sono 1 2 3 4 ed essi sono tutti primi con n
bull ( ) 26 =φ percheacute gli interi minori di 6 sono 1 2 3 4 5 e fra essi solo 1 e 5 sono primi con 6
bull ( ) 67 =φ percheacute gli interi minori di 7 sono 1 2 3 4 5 6 ed essi sono tutti primi con 7
bull ( ) 412 =φ percheacute gli interi minori di 12 sono 1 2 3 4 5 6 7 8 9 10 11 e fra essi solo 1 5 7
11 sono primi con 12
Se si conosce la scomposizione in fattori del numero n il seguente teorema ci fornisce un metodo per
calcolare Infatti esso afferma che per ogni ngt1 non primo ( )
minussdotsdot
minussdot
minussdotnppp
n=nφ 11
11
11
21
dove
p1 p2 hellip pn sono i fattori primi di n presi senza molteplicitagrave
22 mod 341=4
24=(22)2=(22 mod 341)2=42=16mod341=16
28=(24)2=(16)2=256mod341=256
216= (28)2=(256)2=65536mod341=64
232=(216)2=(64)2=4096mod341=4
264=(232)2=42=16mod341=16
2128=(264)2=(16)2=256mod341=256
2256=(2128)2=(256)2=65536mod341=64
2341=2(256+64+16+4+1) 2256 264 216 24 21 x x x x
64 1
1024 mod 341
= 1 x 64
64 x 16
1024 mod 341
1 x 2 =
=
x
28
Ad esempio
essendo 12 = 3sdot2sdot2 ( ) 42
1
3
212
2
11
3
111212 ===φ sdotsdot
minussdot
minussdot
essendo 6=2sdot3 ( ) 22
1
3
26
2
11
3
1166 ===φ sdotsdot
minussdot
minussdot
se n=psdotq ( ) ( ) ( )11111
11
1 minussdotminusminussdotminussdot
minussdot
minussdot qp=q
q
p
pn=
qpn=nφ
Ovviamente se n egrave un numero primo = nndash1
Vale inoltre il seguente teorema di Eulero per ngt1 e per ogni altn e primo con n si ha
Ad esempio per n=6 ( ) 26 =φ infatti i primi con 6 sono 1 e 5 per il teorema di Eulero si ha
2mod1255
2mod1112
2
equiv=
equiv=
per n=5 ( ) 45 =φ e i primi con 5 sono 1 2 3 4 e per il teorema di Eulero si ha
5mod12564
5mod1813
5mod1162
5mod111
4
4
4
4
equiv=
equiv=
equiv=
equiv=
Si puograve notare come nel caso in cui n egrave un numero primo si ritrova il piccolo teorema di Fermat
Infatti per n primo ( )nφ = nndash1 e per il teorema di Eulero per ogni altn e primo con n Ricordiamo infatti
che il piccolo teorema di Fermat afferma che se n egrave un numero primo e a un intero minore di n allora egrave
divisibile per n che con il linguaggio dellrsquoaritmetica modulare diventa che puograve essere riscritto e se a egrave primo
con n allora egrave che egrave equivalente a
Infine si prova che per ogni altn e primo con esso esiste lrsquoinverso di a e esso egrave dato da ( ) 1minusnaφ Infatti
( ) ( ) na=aa nφnφ1mod1 equivsdot minus per il teorema di Eulero Si ricorda che lrsquoinverso di un numero a egrave quel numero che
moltiplicato per a dagrave 1 indicato convenzionalmente con andash1
Ad esempio per n=5 i primi con 5 sono 1 2 3 4 e per ognuno di questi esiste lrsquoinverso infatti
bull lrsquoinverso di 1 egrave ( ) 1mod51111 31415 equivminusminus ===φ
e infatti
bull lrsquoinverso di 2 egrave ( ) 3mod58222 31415 equivminusminus ===φ
e infatti
bull lrsquoinverso di 3 egrave ( ) 2mod527333 31415 equivminusminus ===φ
e infatti
bull lrsquoinverso di 4 egrave ( ) 4mod564444 31415 equivminusminus ===φ
Le funzioni unidirezionali
Chiamiamo funzione da un insieme A a un insieme B qualunque procedura che associa a ogni elemento
di un insieme A (detto dominio) uno e un solo elemento di un insieme B (detto condominio) In simboli f
A rarr B Se poi indichiamo con x il generico elemento dellrsquoinsieme A e con y il generico elemento dellrsquoinsieme B
la f indica la procedura che ad ogni xisinA associa un yisinB e cioegrave y=f(x) ad esempio ldquofare il doppio dihelliprdquo
29
prendendo come dominio e codominio lrsquoinsieme dei numeri interi egrave in questo senso una funzione percheacute dato
ad esempio il numero 3 lo trasforma nel numero 6 come 5 lo trasforma in 10 e cosigrave via
Molte funzioni matematiche sono cosiddette bidirezionali nel senso che egrave facile dato un determinato x
generare il corrispondente y ma egrave altrettanto facile invertire la funzione cioegrave ritrovare lrsquoelemento x originario a
partire dal suo corrispondente
Facciamo qualche esempio
bull funzione xrarr fare il doppiorarr 2sdotx= y 3rarr fare il doppiorarr 2sdot3 = 6
funzione inversa y=2sdotx rarr fare la metagraverarr x 6=2sdot3 rarr fare la metagraverarr 3
bull funzione xrarr fare il quadruplorarr 4sdotxrarr aggiungere 1rarr sdoty=4sdotx +1
5rarr fare il quadruplorarr 4sdot5rarr aggiungere 1rarr 4sdot5 +1=21
funzione inversa y=4sdotx +1rarr sottrarre 1rarr 4sdot xrarr dividere per 4rarr x
21=4sdot5 +1rarr sottrarre 1rarr 4sdot 5rarr dividere per 4rarr 5
Le funzioni unidirezionali sono invece quelle funzioni facilmente calcolabili ma che non si possono invertire
Le funzioni cosiddette pseudounidirezionali (dette anche funzioni trappola a molla segreta) sono invece
quelle funzioni facilmente calcolabili ma che non altrettanto facilmente si possono invertire a meno che non si
conoscano alcune informazioni (la molla segreta) utilizzate nella loro costruzione
Lrsquoaritmetica modulare gioca un ruolo determinante in questo caso infatti permette di trasformare
funzioni bidirezionali in funzioni pseudounidirezionali
Facciamo lrsquoesempio della funzione ldquofare il quadruplordquo in simboli f(x)=4sdotx Egrave facilmente calcolabile
percheacute dato x per ottenere f(x) basta moltiplicare per 4 ma egrave altrettanto facile calcolare la sua inversa percheacute
dato f(x) basta dividere per 4 per ottenere lrsquooriginario x Ma anche se non avessimo la procedura inversa di
dividere per 4 sarebbe facile ritrovare lrsquoelemento originario anche procedendo per tentativi ed eliminazione
infatti se per esempio f(x) =20 si puograve tentare x=3 in tal caso f(x)=12 troppo piccolo quindi x deve essere
maggiore di 3 Si puograve allora pensare a 6 ma f(x)=24 troppo grande quindi x deve essere minore di 6 e cosigrave via
Vediamo cosa accade se calcoliamo utilizzando una aritmetica modulare Per esempio consideriamo la
stessa funzione f(x)=4sdotx in una aritmetica modulo 7 Possiamo osservare che la funzione non si comporta piugrave in
modo regolare come prima per accorgersene basta costruire una tabella (tabella 8)
x 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
f(x)=4sdotx 4 8 12 16 20 24 28 32 36 40 44 48 52 56 60
f(x)=4sdotmod 7 4 1 5 2 6 3 0 4 1 5 2 6 3 0 4
Tabella 8 La funzione f(x)=4sdotx in una aritmetica modulo 7
Anche in questa semplice situazione egrave chiaro che egrave piugrave complicato invertire la funzione e pertanto i valori
di x sono molto meglio protetti Si puograve fare anche lrsquoesempio della funzione esponenziale f(x)=3 x (tabella 9)
Tabella 9 La funzione f(x)=3 x in aritmetica modulo 11
x 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
f(x)=x3 1 8 27 64 125 216 343 512 729 1000 hellip hellip hellip hellip hellip
f(x)=x3 mod 11 1 8 5 9 4 7 2 6 3 10 hellip hellip hellip hellip hellip
30
Il cifrario a chiave pubblica RSA
Uno dei piugrave noti sistemi crittografici a chiave pubblica che sfrutta le idee precedentemente descritte egrave il
metodo RSA proposto dai matematici R L Rivest A Shamir e L Adlemann nel 1978 Esso risolve il problema
dello scambio delle chiavi in quanto queste ultime sono conosciute solamente ai rispettivi proprietari che non le
hanno preventivamente concordate e scambiate
Illustriamo schematicamente come i due utenti Mitt e Dest possano scambiarsi un messaggio segreto
utilizzando il metodo RSA Entrambi Mitt e Dest indipendentemente lrsquouno dallrsquoaltro poi
1 scelgono in modo casuale due numeri primi p q grandi (di 200-300 cifre in base 10)
2 calcolano N = psdotq e Φ(N) = (pndash1)sdot(qndash1)
3 scelgono un intero eltΦ(N) e primo con Φ(N) tale numero e saragrave la chiave pubblica
4 calcolano il numero d inverso di e mod Φ(N) tale cioegrave che esdotdequiv 1mod Φ(N) tale numero d saragrave
la chiave privata
5 rendono pubblici i numeri N ed e
Mitt per spedire un messaggio a Dest compie le seguenti operazioni
1 codifica il messaggio in un modo standard usando i numeri lt N
2 trasforma ogni numero M di tale codifica in Me (mod N) e lo spedisce a Dest
per decodificare il messaggio ricevuto Me Dest calcola (Me)d =Mesdotd =Mndash1=M (modN) riottenendo il messaggio
originale
Figura 12 Schema di cifrario con metodo RSA
31
Figura 13 Esempio di applicazione di metodi RSA
In che cosa consiste la sicurezza del metodo Da quanto esposto si osserva che per decodificare il
messaggio bisogna
1 conoscere d (chiave segreta)
2 essendo d lrsquoinverso di e nellrsquoaritmetica mod Φ(N) essendo e noto egrave necessario conoscere Φ(N)
3 ma noto N per calcolare Φ(N) egrave necessario conoscere i fattori primi di N cioegrave egrave necessario fattorizzare
N che egrave un problema computazionalmente difficile per quanto osservato in precedenza
Anche se non egrave stato dimostrato che non si possa rompere il codice in altro modo e cioegrave senza conoscere Φ(N) e i
fattori di N a tuttrsquooggi si puograve affermare che la sicurezza del metodo dipende essenzialmente dai seguenti fatti
Per codificare il messaggio bisogna saper costruire dei numeri primi grandi e tale operazione egrave
computazionalmente veloce si puograve infatti dimostrare che la complessitagrave computazionale di opportuni test di
primalitagrave per stabilire se un numero n egrave primo utilizzando il linguaggio di quel ramo della matematica nota
come teoria della complessitagrave egrave ldquoquasi-polinomialerdquo
Per violare il sistema bisogna saper fattorizzare interi grandi ottenuti come prodotto di due primi tale
problema egrave computazionalmente ldquolentordquo cioegrave con il linguaggio della teoria della complessitagrave appartiene alla
classe dei problemi non polinomiali Tale marcata differenza tra la velocitagrave di esecuzione delle operazioni di
costruzione di numeri primi grandi e di fattorizzazione di interi grandi garantisce la sicurezza del metodo
almeno per un tempo sufficientemente lungo Ad esempio con la tecnologia attuale lrsquooperazione di
fattorizzazione di un intero di 140 cifre in base 10 prodotto di due numeri primi casuali calcolati in pochi
secondi su un computer disponibile in commercio richiede utilizzando vari supercomputers operanti
parallelamente circa un mese
La RSA Security Inc gestisce una sfida a livello mondiale ove vengono premiati coloro che fattorizzano
gli interi proposti da loro in una particolare lista Ad esempio il 3 dicembre del 2003 egrave stato fattorizzato
32
rsa576 =
188198812920607963838697239461650439807163563379417382700763356422988859715234
665485319060606504743045317388011303396716199692321205734031879550656996221305
168759307650257059
un numero di 174 cifre decimali prodotto di due primi di 87 cifre
p =
398075086424064937397125500550386491199064362342526708406385189575946388957261
768583317
q =
472772146107435302536223071973048224632914695302097116459852171130520711256363
590397527
Le chiavi attualmente utilizzate dallRSA sono a 309 cifre decimali
La firma digitale
Consideriamo al solito un mittente che deve inviare a un destinatario un messaggio m La codifica di m
con il metodo descritto assicura lrsquoautenticitagrave del messaggio ma non fornisce alcuna sicurezza sulla sua
paternitagrave Infatti il messaggio m pur essendo autentico potrebbe essere stato inviato da qualcuno che si spaccia
per il mittente Questa egrave unimportantissima questione particolarmente nella trasmissione di messaggi che oltre
a dover essere segreti devono garantire la loro origine
Si dovrebbe quindi disporre di un analogo della firma manuale detta appunto firma digitale La firma
digitale deve allora essere progettata in modo da possedere le stesse caratteristiche di una firma manuale e cioegrave
lrsquoautenticitagrave la non falsificabilitagrave e lrsquoimpossibiltagrave di essere riutilizzata Facciamo vedere come lo stesso metodo
RSA puograve essere utilizzato per progettare una firma digitale
La situazione egrave la seguente il mittente (di seguito indicato con Mitt) invia un messaggio m con la firma
F al destinatario (di seguito indicato con Dest) Siano a b rispettivamente le chiavi pubblica e segreta di MITT
siano e d rispettivamente le chiavi pubblica e segreta di DEST
La procedura per apporre la firma digitale F al messaggio m egrave illustrata nei seguenti passi riassunti nel
grafico della figura 14
1 Mitt cripta la firma F (cioegrave i suoi dati identificativi) usando la propria chiave segreta (b)
ottenendo Fb
2 il messaggio m con la firma F criptata viene ulteriormente criptato con la chiave pubblica di
Dest (e) ottenendo (m Fb)e
3 Dest decodifica il messaggio con la sua chiave segreta (d) ottenendo
((m Fb)e)d = (me F(be)) d =m(e d)F(be d) = mFb
in cui la firma di Mitt egrave ancora criptata
4 Dest decodifica la firma di Mitt con la chiave pubblica di Mitt (a) ottenendo
(Fb)a = F(ba) = F
33
Grafico firma digitale
Mitt
Dest
pubblica
Fb
e dpubblica
a
((Fb)e)d=(Fb)ed=(Fb)1=Fb
(Fb)a=(F)ba=(F)1=F
ab de
(Fb)e
codifica
codificadecodifica
decodifica
1
2
3
4
5
6
7
8
segreta
b
segreta
Figura 14 Grafico firma digitale
Bibliografia
Thomas Beth Comunicazioni e sicurezza su Internet in ldquoLe Scienzerdquo n 330 febbraio 1996
Brian Butterworth Intelligenza matematica Vincere la paura dei numeri scoprendo le doti innate della mente
Rizzoli Milano 1999
John H Conway Richard K Guy Il libro dei numeri Hoepli Milano 2003
Richard Courant Herbert Robbins Che cosrsquoegrave la matematica Boringhieri Torino 1971
Philip J Davis Il mondo dei grandi numeri Zanichelli Bologna 1973
Keith Devlin Dove va la matematica Bollati Boringhieri Torino 1994
Jean Dieudonneacute Lrsquoarte dei numeri matematica e matematici oggi Mondadori Milano 1989
Martin E Ellmann La crittografia a chiave pubblica in La matematica della complessitagrave Quaderni n 67
settembre 1992 Le Scienze
Paolo Ferragina Fabrizio Luccio Crittografia principi ndash Algoritmi ndash Applicazioni Bollati Boringhieri Torino
2001
Godfrey H Hardy Apologia di un matematico Garzanti Milano 1989
Morris Kline Storia del pensiero matematico Einaudi Milano 1991
Serge Lang La bellezza della matematica Bollati Boringhieri Torino 1991
Mauro Leoncini Modelli di calcolo e complessitagrave computazionale in La matematica computazionale Quaderni
n 84 giugno 1995 Le Scienze
Fabrizio Luccio e Linda Pagli P = NP in La matematica della complessitagrave Quaderni n 67 settembre 1992
Le Scienze
Piergiorgio Odifreddi La Matematica del Novecento dagli insiemi alla complessitagrave Einaudi Torino 2000
34
ldquoPeriodico di matematicherdquo Serie VII Volume 7 Numero 2-3 luglio-dicembre 2000 Mathesis
ldquoPeriodico di matematicherdquo Serie VIII Volume 1 Numero 1 gennaio-marzo 2001 Mathesis
Carl Pomerance Alla ricerca dei numeri primi in ldquoLe Scienzerdquo n 174 febbraio 1983
Simon Singh Codici e segreti la storia affascinante dei messaggi cifrati dallrsquoantico Egitto a Internet Rizzoli
Milano 1999
Marcus du Sautoy Lrsquoenigma dei numeri primi lrsquoipotesi di Riemann lrsquoultimo grande mistero della matematica
Rizzoli Milano 2004
Gary Stix I segreti meglio custoditi la crittografia quantistica egrave passata dalla teoria al laboratorio per
approdare finalmente alle applicazioni in ldquoLe Scienzerdquo n 438 febbraio 2005
18
Come si puograve notare la 2) e la 3) sono collegate tra loro infatti nel sistema descritto sopra si potrebbe
scegliere una chiave piugrave semplice sacrificando il numero di chiavi potenziali
Infatti invece di generare lrsquoalfabeto cifrante da una riorganizzazione casuale dellrsquoalfabeto ordinario lo si
puograve fare a partire da una parola chiave come nel seguente esempio Supponiamo di accordarci sulla parola
chiave lsquolaurarsquo si eliminano eventuali spazi e lettere ripetute quindi la parola chiave diventa lsquolaurrsquo a questo
punto la sequenza l a u r saragrave lrsquoinizio dellrsquoalfabeto cifrante cui seguiranno tutte le altre lettere mancanti in
ordine alfabetico partendo dallrsquoultima lettera della chiave per cui lrsquoalfabeto cifrante che si ottiene saragrave l a u r s t
v z b c d e f g h i m n o p q
I crittosistemi basati sulla sostituzione hanno dominato la scena per tutto il primo millennio della nostra era
fincheacute i crittoanalisti non trovarono il suo punto debole ed elaborarono un metodo per decifrarne i crittogrammi prodotti
La violazione di tali sistemi si basa su unrsquoidea dovuta per prima a crittoanalisti arabi nella quale si
combinano conoscenze di linguistica statistica e matematica nota con il nome di analisi delle frequenze
Essa egrave descritta dallo studioso del IX secolo Abu Yusuf ibn Ishaq al-Kind sopran-nominato il filosofo
degli arabi in una sua monografia dal titolo Sulla decifrazione dei messaggi crittati ritrovata nellrsquoarchivio
ottomano Sulaimaniyyah di Istanbul solo nel 1987 Nel testo si legge
Un modo di svelare un messaggio crittato se conosciamo la lingua dellrsquooriginale consiste nel trovare
un diverso testo chiaro nella stessa lingua abbastanza lungo da poter calcolare la frequenza di ciascuna
lettera
Chiamiamo ldquoprimardquo quella che compare piugrave spesso ldquosecondardquo quella che la segue per frequenza
ldquoterzardquo la successiva e cosigrave via fino a esaurire tutte le lettere del campione di testo chiaro
Esaminiamo poi il testo in cifra che vogliamo interpretare ordinando (in base alla frequenza) anche i
suoi simboli Troviamo il simbolo piugrave comune e rimpiazziamolo con la ldquoprimardquo lettera dellrsquoesempio
chiaro il simbolo che lo segue per frequenza sia rimpiazzato dalla ldquosecondardquo lettera il successivo simbolo
piugrave comune sia rimpiazzato dalla ldquoterzardquo e cosigrave via fino ad aver preso in considerazione tutti i simboli del
crittogramma che intendevamo svelare
Tabella 4 Frequenze delle diverse lettere in italiano
Per superare lrsquoanalisi delle frequenze furono ideati diversi nuovi metodi crittografici tra cui ricordiamo
1 il metodo di sostituzione omofonica
2 il metodo di sostituzione polialfabetica
19
Il metodo di sostituzione omofonica consiste nel sostituire ogni lettera con un numero di simboli per
esempio numeri proporzionale alla sua frequenza Cosigrave ad esempio la lettera a avendo una frequenza di 11 74
viene sostituita da 11 simboli la lettera b con un solo simbolo la lettera c con 4 simboli ecc secondo la tabella 5
Il metodo di sostituzione polialfabetica consiste nellrsquouso di piugrave alfabeti cifranti su unrsquoidea di Leon
Battista Alberti che propose di utilizzarne due Lrsquoalgoritmo consiste nel sostituire la prima lettera del messaggio
in chiaro con la corrispondente del I alfabeto cifrante la seconda lettera con la corrispondente del II alfabeto
cifrante la terza con la corrispondente del I e cosigrave via passando alternativamente dal I alfabeto al secondo Come
nellrsquoesempio della figura 3
Tabella 5 Corrispondenza lettere e simboli nella sostituzione omofonica
Figura 3 Il metodo di sostituzione polialfabetica
Su tale idea si basa il metodo di Blaise de Vigenegravere diplomatico francese nato nel 1523 il quale utilizza
tanti alfabeti cifranti quante sono le lettere dellrsquoalfabeto in chiaro ad esempio nellrsquoalfabeto italiano che consta
di 21 lettere utilizza 21 alfabeti cifranti
Il primo passo consiste nel costruire la tavola di Vigenegravere in cui nella prima riga egrave riportato lrsquoalfabeto in
chiaro e in ognuna delle 21 righe successive egrave riportato un alfabeto cifrante spostato di una lettera rispetto a
quello della riga precedente cosigrave nella riga 1 egrave riportato lrsquoalfabeto spostato di una lettera nella riga 2 quello
spostato di due lettere nella riga 3 quello spostato di tre fino alla riga 20 in cui egrave riportato quello spostato di 20
lettere (figura 4)
20
Figura 4 La tavola di Vigenegravere
Il secondo passo consiste nello scegliere una parola chiave per esempio lsquoverorsquo Pertanto il messaggio in
chiaro ldquonon andarerdquo verrebbe cifrato come nella figura 5
La differenza sostanziale tra la cifratura omofonica e quella polialfabetica egrave che in quella omofonica a
ogni lettera corrispondono piugrave simboli ma ogni simbolo egrave il corrispondente di una sola lettera cioegrave egrave una
corrispondenza 1rarr m che invertita diventa mrarr 1 in quella polialfabetica a ogni lettera corrispondono piugrave
simboli e anche ogni simbolo egrave il corrispondente di piugrave lettere cioegrave mrarr m che rimane tale anche invertendola
Il vantaggio della cifratura polialfabetica egrave pertanto la sua resistenza allrsquoanalisi delle frequenze Oltre ad
ammettere un enorme numero di chiavi infatti si puograve scegliere qualunque parola del dizionario qualunque
combinazione di parole si puograve perfino ricorrere a neologismi rendendo impossibile il controllo di tutte le chiavi
possibili Ed ecco percheacute egrave ritenuta piugrave affidabile e non ha mai smesso di essere usata
Figura 5 Cifratura polialfabetica del messaggio ldquonon andarerdquo
21
Oggi sono noti tutti i punti deboli del sistema di Vigenegravere ed esistono vari procedimenti per decifrare i
crittogrammi generati da tale sistema che sfruttano ad esempio la modularitagrave nel ripetere la chiave o
osservazioni sulle ripetizioni del testo cifrato Ci sono testimonianze storiche che uno di tali procedimenti sia
stato ideato da Sir Charles Babbage famoso per aver progettato e mai realizzato la macchina alle differenze
progenitrice degli odierni calcolatori La prima descrizione resa pubblica del metodo perograve egrave del 1863 portata a
compimento dallrsquoufficiale prussiano F W Kasiski
Unrsquoosservazione decisiva fu che le insidie del metodo di Babbage potevano essere evitate utilizzando
nella cifratura di Vigenegravere una chiave molto lunga e fatta da lettere che si succedono in modo casuale se un
messaggio cifrato non presenta delle ripetizioni se non egrave possibile tentare di indovinare la chiave cadono tutti
gli appigli necessari per effettuare con successo la crittoanalisi
Tale osservazione fu ulteriormente sviluppata da G S Vernam che nel 1926 introdusse lrsquoidea di usare
una chiave casuale lunga quanto il messaggio stesso
Oggi sappiamo grazie agli studi di Claude Shannon del 1949 che tale metodo puograve definirsi
ldquoteoricamente sicurordquo
In pratica perograve ciograve comporta la difficoltagrave di costruire lunghe stringhe di lettere assolutamente casuali e di
scambiarsi segretamente e continuamente queste chiavi In sostanza risulta impraticabile per ogni messaggio
scambiato in modo sicuro egrave necessario prima trasmettere in modo sicuro il messaggio contenente la chiave
I metodi usati per buona parte del Novecento sono delle rielaborazioni sempre piugrave complesse delle idee
descritte finora ottenute anche con la costruzione di dispositivi per la meccanizzazione delle procedure di
cifratura e decifratura Un esempio tra i piugrave conosciuti egrave la macchina Enigma usata dai tedeschi durante la
Seconda guerra mondiale inventata dallrsquoingegnere Arthur Scherbius Enigma consisteva di diversi ingegnosi
elementi combinati in un potente e sofisticato dispositivo per la produzione di scritture segrete In particolare ma
macchina aveva tre componenti collegati da fili elettrici una tastiera per immettere le lettere del testo chiaro
unrsquounitagrave scambiatrice che cifra la lettera trasformandola nel corrispondente elemento del crittogramma e un
visore con varie lampadine che accendendosi indicano la lettera da inserire nel crittogramma
Lo sforzo per violare questa cifratura richiese anni di lavoro e fu portato a compimento dalla Scuola
Inglese Governativa di Codici e Cifre di Bletchley Park di cui faceva parte Alan M Turing noto oggi ai piugrave per
i suoi studi sullrsquointelligenza meccanica
La crittografia nellrsquoera dellrsquoinformatica
Nel 1945 fu realizzato ENIAC (Electronic Numerical Integrator And Calculator) unrsquoapparecchiatura
contenente 18 000 valvole elettroniche capace di effettuare 5000 calcoli al secondo considerato il capostipite
dei moderni calcolatori
Dopo il 1945 fu lrsquoinformatica a fare da protagonista nella battaglia tra crittografi e crittoanalisti operando
una decisiva svolta nelle metodologie di entrambi Infatti i metodi precedenti lrsquoera dellrsquoinformatica basavano la
propria sicurezza sullrsquoenorme numero di chiavi disponibili e sulla loro lunghezza ma che viene messa in crisi
dalla crescente potenza di calcolo dei computer Un computer molto potente infatti potrebbe individuare quella
giusta in pochi minuti anche nel caso di un milione di chiavi da esaminare
Tutti i metodi crittografici esaminati finora necessitano di
22
1 un algoritmo generale di cifratura G
2 di una chiave K che deve rimanere segreta
3 di un algoritmo di decifrazione H=Gndash1 (inverso di G)
e agiscono secondo il seguente schema
il messaggio in chiaro M tramite lrsquoalgoritmo G e la chiave K viene cifrato in MC questrsquoultimo tramite
lrsquoalgoritmo H e la stessa chiave K viene decifrato in M (figura 6)
Figura 6 Schema di metodi crittografici
La sicurezza di tali sistemi risiede interamente nella segretezza delle chiavi Ne segue che per distribuire
agli utenti le chiavi egrave necessario ricorrere a canali sicuri
Gli svantaggi che ne derivano sono essenzialmente
1 difficoltagrave nella distribuzione delle chiavi agli utenti
2 mancata autenticazione dei messaggi mittente e destinatario condividono la stessa chiave
pertanto non crsquoegrave modo di impedire che il destinatario si invii messaggi che poi sembrino
provenienti dal mittente Si pensi quali problemi possono provocare simili falsificazioni nella
posta elettronica o nei sistemi bancari elettronici
La svolta avvenne nel 1976 a opera di Diffie e Hellmann che proposero un metodo detto a chiave
pubblica il quale non necessita di uno scambio preventivo delle chiavi segrete Lrsquodea egrave chiarita dal seguente
esempio noto come esempio del doppio lucchetto
Supponiamo di avere due utenti Mitt e Dest e Mitt voglia spedire un messaggio segreto a Dest
1 Mitt mette il messaggio in una scatola che chiude con il proprio lucchetto LMitt (di cui solo lui ha
la chiave) e spedisce la scatola a Dest
2 Dest ricevuta la scatola aggiunge un proprio lucchetto LDest (di cui solo lui ha la chiave) e
rispedisce la scatola a Mitt
3 Mitt ricevuta la scatola con il doppio lucchetto toglie il lucchetto LMitt e rispedisce la scatola a
Dest
4 Dest ricevuta la scatola puograve togliere il lucchetto LDest e leggere il messaggio di Mitt
Il problema della distribuzione delle chiavi sembra risolto percheacute lo schema a doppia chiave non richiede
la condivisione delle stesse Tuttavia la realizzazione pratica di un tale sistema si scontra con un altro problema
quello riguardante lrsquoordine in cui cifrature e decifrature sono eseguite In altre parole in un sistema crittografico
egrave essenziale lrsquoordine con cui avvengono le rispettive cifrature e decifrature in quanto la cifratura eseguita per
23
ultimo andrebbe decifrata per prima (egrave un porsquo come quando la mattina infiliamo prima le calze e poi le scarpe
ma alla sera togliamo prima le scarpe e poi le calze)
Lrsquoesempio del doppio lucchetto in cui ciograve non avviene sembra tuttavia funzionare come idea percheacute ai
fini dellrsquoapertura della scatola non ha importanza lrsquoordine di rimozione dei lucchetti
Anche se il trucco dei due lucchetti non sembra immediatamente applicabile tuttavia fu il giusto punto di
partenza per la realizzazione di un sistema crittografico che aggira lrsquoostacolo della distribuzione delle chiavi
Infatti lrsquoidea egrave che mittente e destinatario generano ciascuno due chiavi distinte una chiave di cifratura E
(da utilizzare nellrsquoalgoritmo di cifratura) e una chiave di decifrazione D (da utilizzare nellrsquoalgoritmo di
decifrazione) Le chiavi sono correlate nel senso che servono per effettuare operazioni inverse (figura 7)
Figura 7 Le chiavi correlate per effettuare operazioni invese
Il trucco consiste nellrsquoimpossibilitagrave di poter derivare la chiave D dalla chiave E mediante algoritmi di
calcolo (figura 8)
Ogni utente puograve rendere pubblica la propria chiave di cifratura E indicandola magari sullrsquoelenco
telefonico senza compromettere la propria chiave di decifrazione che rimane segreta di pubblico dominio sono
anche gli algoritmi di cifratura G e decifrazione H
Figura 8 Inapplicabilitagrave del metodo del doppio lucchetto
Pertanto lrsquoesempio del doppio lucchetto viene cosigrave interpretato
1 il destinatario pubblica la chiave di cifratura E e mantiene segreta la chiave di decifrazione D
2 il mittente applica GE al messaggio M trasformandolo nel messaggio cifrato MC cioegrave
GE(M)=MC che spedisce al destinatario
3 il destinatario applica HD al messaggio cifrato MC riottenendo M cioegrave HD(MC)=M
24
La sicurezza di un tale sistema si fonda sulla difficoltagrave di poter
1 ritrovare il testo cifrato provando ad applicare lrsquoalgoritmo GE che egrave pubblico ad ogni possibile
testo in chiaro il cui numero pur essendo enorme egrave comunque finito
2 ricavare lrsquoalgoritmo HD da GE
in quanto entrambe le tecniche sono computazionalmente inattuabili nel senso che richiedono un tempo
di calcolo di lunghezza al di fuori di ogni possibile considerazione anche per i piugrave potenti calcolatori
Per descrivere tali algoritmi sono necessari alcuni concetti matematici che andiamo a illustrare
Figura 9 Schema di cifrario a chiave pubblica
Lrsquoaritmetica modulare
Lrsquoaritmetica modulare la cui introduzione egrave dovuta a Gauss costituisce un sistema di calcolo con
importanti applicazioni nei test di primalitagrave e nei metodi che stanno alla base della sicurezza delle comunicazioni
elettroniche Con essa infatti si hanno i seguenti vantaggi 1) si riduce lo spazio dei numeri su cui gli algoritmi
sono chiamati ad operare e quindi si aumenta la velocitagrave di calcolo 2) si riesce a rendere difficili alcuni problemi
computazionali che sono semplici (o addirittura banali) nellrsquoalgebra ordinaria al fine di aumentare la sicurezza
nelle comunicazioni Lrsquoidea egrave semplice ma potente Forse non lo sappiamo ma usiamo spesso laritmetica
modulare Potremmo chiamarla aritmetica dellorologio
Infatti pensiamo ad un normale orologio con 24 ore Se sono le 15 ed un amico ci comunica che saragrave a
casa nostra tra 5 ore sappiamo che egli verragrave alle 20 infatti 15+5=20 Ma se sono le 23 e dobbiamo partire fra 7
ore certamente non diciamo che la partenza saragrave alle 30 anche se 23+7=30 Sappiamo che dovremo partire alle
6 Allo stesso modo se sono le 20 che ora saragrave tra 14 ore Non diremo 34 anche se 20+14=34 ma diremo che
sono le 10 Come si spiega tutto ciograve
Immaginiamo di segnare sul quadrante dellrsquoorologio 24 ore Se la lancetta segna le 23 aggiungere 7 ore
significa spostarsi di 7 posti fino ad arrivare alle 6 Si giunge allo stesso risultato calcolando 23+7=30 ed
osservando che 30=1sdot24+6 o che egrave lo stesso 3024 =1 con resto 6 che significa che 30 lo si ottiene facendo fare
alla lancetta un giro completo piugrave 6
25
Se la lancetta segna le 20 e aggiungiamo 14 ore lrsquoorologio segneragrave le 10 percheacute 20+14=34 ma 3424= 1
con resto 10 per cui 34 lo si ottiene percorrendo un giro completo piugrave 10
Proviamo con il normale orologio a 12 ore I numeri che vediamo sul quadrante sono 0 1 2 3 4 5 6 7
8 9 10 11 Il numero 12 non compare percheacute a partire da 0 trascorse 12 ore torniamo di nuovo a 0 Questa
volta per fare un giro completo occorrono 12 ore Pertanto se sono le 7 che ore saranno tra 24 ore Saranno
ancora le 7 percheacute 7+24=31 ma 3112 = 2 con resto 7 cioegrave si compiono 2 giri completi piugrave 7 se sono le 8 tra 6
ore saranno le 2 percheacute 8+6=14 ma 1412=1 con resto 2 Dagli esempi dovrebbe risultare chiaro allora che ciograve
che contano non sono i risultati delle somme ma i loro resti nelle divisioni per il numero delle ore segnate sul
quadrante dellrsquoorologio
La stessa cosa succede con i giorni della settimana se pensiamo a un orologio con 7 ore sul quadrante
Facciamo corrispondere ai giorni della settimana i numeri da 0 a 6 (figura 10)
domenica Lunedigrave Martedigrave Mercoledigrave Giovedigrave Venerdigrave Sabato darr darr darr darr darr darr darr 0 1 2 3 4 5 6
Figura 10 Corrispondenza dei giorni della settimana con i numeri da 0 a 6
Se per esempio oggi egrave venerdigrave che giorno saragrave tra 12 giorni
Dovremo calcolare 5+12=17 ma i giorni si ripetono ogni 7 pertanto osservando che 177 =2 con resto 3
possiamo concludere che a partire da 5 e aggiungendo 12 si compiono 2 giri completi piugrave 3 ed essendo 3 il
numero corrispondente a mercoledigrave concludiamo che saragrave mercoledigrave Facciamo un altro esempio se oggi egrave
lunedigrave (1) che giorno saragrave tra 20 giorni Calcoliamo 1+20=21 217= 3 con resto 0 quindi saragrave domenica
Il numero n delle ore sullrsquoorologio costituisce quello che si chiama il modulo e individua lrsquoaritmetica di
modulo n in cui lrsquoinsieme dei numeri con i quali si opera indicato con Zn egrave lrsquoinsieme dei possibili resti della
divisione per n e cioegrave Zn=0 1 2 3 hellip nndash1e le operazioni si eseguono con le regole illustrate negli esempi
precedenti
Lrsquoesempio dellrsquoorologio a 24 ore costituisce la cosiddetta aritmetica finita di modulo 24 in essa Z24=0
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 essendo questi ultimi i possibili resti
della divisione per 24 Lrsquoorologio a 12 ore costituisce lrsquoaritmetica finita di modulo 12 in essa Z12=0 1 2 3 4
5 6 7 8 9 10 11 essendo questi ultimi i possibili resti della divisione per 12 Lrsquoesempio dei giorni della
settimana egrave lrsquoaritmetica finita di modulo 7 in cui Z7=0 1 2 3 4 5 6 essendo questi ultimi i possibili resti
della divisione per 7 Riassumiamo costruendo unrsquoaritmetica finita di modulo 4 I possibili resti della divisione
per 4 sono 0 1 2 3 quindi Z4=0123 Lrsquoaddizione e la moltiplicazione in Z4 si esegue come negli esempi
della tabella 6
26
operazioni indicate
Risultato nellrsquoaritmetica ordinaria
Risultato nellrsquoaritmetica modulo 4
2+2 4 0 percheacute 44=1 con resto 0
3+2 5 1 percheacute 54=1 con resto 1
2+1 3 3 percheacute 34=0 con resto 3
3sdot3 9 1 percheacute 94=2 con resto 1
3sdot2 6 2 percheacute 64=1 con resto 2
2sdot2 4 0 percheacute 44=1 con resto 0
Tabella 6 Addizione e moltiplicazione nellrsquoaritmetica finita di modulo 4
Si possono costruire le tavole dellrsquoaddizione e della moltiplicazione dellrsquoaritmetica modulo 4 che costituiscono
le tabelline di questa aritmetica sulla base delle quali si esegue qualsiasi addizione e moltiplicazione modulo 4
Nella tabella 7 sono spiegate le tabelline dellrsquoaritmetica in modulo 4
Tabella 7 Tavole dellrsquoaddizione e della moltiplicazione dellrsquoaritmetica modulo 4
Infine per indicare che due numeri a e b divisi per n danno lo stesso resto si usano le seguenti notazioni
tutte equivalenti tra loro
a=b mod n andashb=0 mod 4 a equiv b (mod n) che si legge a egrave congruo b modulo 4
Esempio
26=12 mod 7 egrave la stessa cosa di
26ndash12=0 mod 7 che egrave la stessa cosa di
26 equiv 12 (mod 7) e tutte e tre stanno a indicare che 26 e 12 divisi per 7 danno lo stesso resto che egrave 5 e
pertanto sono tutti equivalenti a 5
Facciamo vedere come sfruttare lrsquoaritmetica modulare per calcolare potenze come 2341 (figura 11) Il
metodo si basa sulla proprietagrave che il resto del quadrato di un numero a per un dato modulo n egrave uguale al
quadrato del resto dello stesso numero a per lo stesso modulo n cioegrave a2 mod n =(a mod n)2
+ 0 1 2 3
0 0 1 2 3
1 1 2 3 0
2 2 3 0 1
3 3 0 1 2
x 0 1 2 3
0 0 0 0 0
1 0 1 2 3
2 0 2 0 2
3 0 3 2 1
27
Figura 11 Il metodo per calcolare 2341
La funzione di Eulero
Per ogni intero ngt1 si definisce la funzione di Eulero = numero di interi minori di n e primi con esso Ad
esempio
bull ( ) 45 =φ percheacute gli interi minori di 5 sono 1 2 3 4 ed essi sono tutti primi con n
bull ( ) 26 =φ percheacute gli interi minori di 6 sono 1 2 3 4 5 e fra essi solo 1 e 5 sono primi con 6
bull ( ) 67 =φ percheacute gli interi minori di 7 sono 1 2 3 4 5 6 ed essi sono tutti primi con 7
bull ( ) 412 =φ percheacute gli interi minori di 12 sono 1 2 3 4 5 6 7 8 9 10 11 e fra essi solo 1 5 7
11 sono primi con 12
Se si conosce la scomposizione in fattori del numero n il seguente teorema ci fornisce un metodo per
calcolare Infatti esso afferma che per ogni ngt1 non primo ( )
minussdotsdot
minussdot
minussdotnppp
n=nφ 11
11
11
21
dove
p1 p2 hellip pn sono i fattori primi di n presi senza molteplicitagrave
22 mod 341=4
24=(22)2=(22 mod 341)2=42=16mod341=16
28=(24)2=(16)2=256mod341=256
216= (28)2=(256)2=65536mod341=64
232=(216)2=(64)2=4096mod341=4
264=(232)2=42=16mod341=16
2128=(264)2=(16)2=256mod341=256
2256=(2128)2=(256)2=65536mod341=64
2341=2(256+64+16+4+1) 2256 264 216 24 21 x x x x
64 1
1024 mod 341
= 1 x 64
64 x 16
1024 mod 341
1 x 2 =
=
x
28
Ad esempio
essendo 12 = 3sdot2sdot2 ( ) 42
1
3
212
2
11
3
111212 ===φ sdotsdot
minussdot
minussdot
essendo 6=2sdot3 ( ) 22
1
3
26
2
11
3
1166 ===φ sdotsdot
minussdot
minussdot
se n=psdotq ( ) ( ) ( )11111
11
1 minussdotminusminussdotminussdot
minussdot
minussdot qp=q
q
p
pn=
qpn=nφ
Ovviamente se n egrave un numero primo = nndash1
Vale inoltre il seguente teorema di Eulero per ngt1 e per ogni altn e primo con n si ha
Ad esempio per n=6 ( ) 26 =φ infatti i primi con 6 sono 1 e 5 per il teorema di Eulero si ha
2mod1255
2mod1112
2
equiv=
equiv=
per n=5 ( ) 45 =φ e i primi con 5 sono 1 2 3 4 e per il teorema di Eulero si ha
5mod12564
5mod1813
5mod1162
5mod111
4
4
4
4
equiv=
equiv=
equiv=
equiv=
Si puograve notare come nel caso in cui n egrave un numero primo si ritrova il piccolo teorema di Fermat
Infatti per n primo ( )nφ = nndash1 e per il teorema di Eulero per ogni altn e primo con n Ricordiamo infatti
che il piccolo teorema di Fermat afferma che se n egrave un numero primo e a un intero minore di n allora egrave
divisibile per n che con il linguaggio dellrsquoaritmetica modulare diventa che puograve essere riscritto e se a egrave primo
con n allora egrave che egrave equivalente a
Infine si prova che per ogni altn e primo con esso esiste lrsquoinverso di a e esso egrave dato da ( ) 1minusnaφ Infatti
( ) ( ) na=aa nφnφ1mod1 equivsdot minus per il teorema di Eulero Si ricorda che lrsquoinverso di un numero a egrave quel numero che
moltiplicato per a dagrave 1 indicato convenzionalmente con andash1
Ad esempio per n=5 i primi con 5 sono 1 2 3 4 e per ognuno di questi esiste lrsquoinverso infatti
bull lrsquoinverso di 1 egrave ( ) 1mod51111 31415 equivminusminus ===φ
e infatti
bull lrsquoinverso di 2 egrave ( ) 3mod58222 31415 equivminusminus ===φ
e infatti
bull lrsquoinverso di 3 egrave ( ) 2mod527333 31415 equivminusminus ===φ
e infatti
bull lrsquoinverso di 4 egrave ( ) 4mod564444 31415 equivminusminus ===φ
Le funzioni unidirezionali
Chiamiamo funzione da un insieme A a un insieme B qualunque procedura che associa a ogni elemento
di un insieme A (detto dominio) uno e un solo elemento di un insieme B (detto condominio) In simboli f
A rarr B Se poi indichiamo con x il generico elemento dellrsquoinsieme A e con y il generico elemento dellrsquoinsieme B
la f indica la procedura che ad ogni xisinA associa un yisinB e cioegrave y=f(x) ad esempio ldquofare il doppio dihelliprdquo
29
prendendo come dominio e codominio lrsquoinsieme dei numeri interi egrave in questo senso una funzione percheacute dato
ad esempio il numero 3 lo trasforma nel numero 6 come 5 lo trasforma in 10 e cosigrave via
Molte funzioni matematiche sono cosiddette bidirezionali nel senso che egrave facile dato un determinato x
generare il corrispondente y ma egrave altrettanto facile invertire la funzione cioegrave ritrovare lrsquoelemento x originario a
partire dal suo corrispondente
Facciamo qualche esempio
bull funzione xrarr fare il doppiorarr 2sdotx= y 3rarr fare il doppiorarr 2sdot3 = 6
funzione inversa y=2sdotx rarr fare la metagraverarr x 6=2sdot3 rarr fare la metagraverarr 3
bull funzione xrarr fare il quadruplorarr 4sdotxrarr aggiungere 1rarr sdoty=4sdotx +1
5rarr fare il quadruplorarr 4sdot5rarr aggiungere 1rarr 4sdot5 +1=21
funzione inversa y=4sdotx +1rarr sottrarre 1rarr 4sdot xrarr dividere per 4rarr x
21=4sdot5 +1rarr sottrarre 1rarr 4sdot 5rarr dividere per 4rarr 5
Le funzioni unidirezionali sono invece quelle funzioni facilmente calcolabili ma che non si possono invertire
Le funzioni cosiddette pseudounidirezionali (dette anche funzioni trappola a molla segreta) sono invece
quelle funzioni facilmente calcolabili ma che non altrettanto facilmente si possono invertire a meno che non si
conoscano alcune informazioni (la molla segreta) utilizzate nella loro costruzione
Lrsquoaritmetica modulare gioca un ruolo determinante in questo caso infatti permette di trasformare
funzioni bidirezionali in funzioni pseudounidirezionali
Facciamo lrsquoesempio della funzione ldquofare il quadruplordquo in simboli f(x)=4sdotx Egrave facilmente calcolabile
percheacute dato x per ottenere f(x) basta moltiplicare per 4 ma egrave altrettanto facile calcolare la sua inversa percheacute
dato f(x) basta dividere per 4 per ottenere lrsquooriginario x Ma anche se non avessimo la procedura inversa di
dividere per 4 sarebbe facile ritrovare lrsquoelemento originario anche procedendo per tentativi ed eliminazione
infatti se per esempio f(x) =20 si puograve tentare x=3 in tal caso f(x)=12 troppo piccolo quindi x deve essere
maggiore di 3 Si puograve allora pensare a 6 ma f(x)=24 troppo grande quindi x deve essere minore di 6 e cosigrave via
Vediamo cosa accade se calcoliamo utilizzando una aritmetica modulare Per esempio consideriamo la
stessa funzione f(x)=4sdotx in una aritmetica modulo 7 Possiamo osservare che la funzione non si comporta piugrave in
modo regolare come prima per accorgersene basta costruire una tabella (tabella 8)
x 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
f(x)=4sdotx 4 8 12 16 20 24 28 32 36 40 44 48 52 56 60
f(x)=4sdotmod 7 4 1 5 2 6 3 0 4 1 5 2 6 3 0 4
Tabella 8 La funzione f(x)=4sdotx in una aritmetica modulo 7
Anche in questa semplice situazione egrave chiaro che egrave piugrave complicato invertire la funzione e pertanto i valori
di x sono molto meglio protetti Si puograve fare anche lrsquoesempio della funzione esponenziale f(x)=3 x (tabella 9)
Tabella 9 La funzione f(x)=3 x in aritmetica modulo 11
x 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
f(x)=x3 1 8 27 64 125 216 343 512 729 1000 hellip hellip hellip hellip hellip
f(x)=x3 mod 11 1 8 5 9 4 7 2 6 3 10 hellip hellip hellip hellip hellip
30
Il cifrario a chiave pubblica RSA
Uno dei piugrave noti sistemi crittografici a chiave pubblica che sfrutta le idee precedentemente descritte egrave il
metodo RSA proposto dai matematici R L Rivest A Shamir e L Adlemann nel 1978 Esso risolve il problema
dello scambio delle chiavi in quanto queste ultime sono conosciute solamente ai rispettivi proprietari che non le
hanno preventivamente concordate e scambiate
Illustriamo schematicamente come i due utenti Mitt e Dest possano scambiarsi un messaggio segreto
utilizzando il metodo RSA Entrambi Mitt e Dest indipendentemente lrsquouno dallrsquoaltro poi
1 scelgono in modo casuale due numeri primi p q grandi (di 200-300 cifre in base 10)
2 calcolano N = psdotq e Φ(N) = (pndash1)sdot(qndash1)
3 scelgono un intero eltΦ(N) e primo con Φ(N) tale numero e saragrave la chiave pubblica
4 calcolano il numero d inverso di e mod Φ(N) tale cioegrave che esdotdequiv 1mod Φ(N) tale numero d saragrave
la chiave privata
5 rendono pubblici i numeri N ed e
Mitt per spedire un messaggio a Dest compie le seguenti operazioni
1 codifica il messaggio in un modo standard usando i numeri lt N
2 trasforma ogni numero M di tale codifica in Me (mod N) e lo spedisce a Dest
per decodificare il messaggio ricevuto Me Dest calcola (Me)d =Mesdotd =Mndash1=M (modN) riottenendo il messaggio
originale
Figura 12 Schema di cifrario con metodo RSA
31
Figura 13 Esempio di applicazione di metodi RSA
In che cosa consiste la sicurezza del metodo Da quanto esposto si osserva che per decodificare il
messaggio bisogna
1 conoscere d (chiave segreta)
2 essendo d lrsquoinverso di e nellrsquoaritmetica mod Φ(N) essendo e noto egrave necessario conoscere Φ(N)
3 ma noto N per calcolare Φ(N) egrave necessario conoscere i fattori primi di N cioegrave egrave necessario fattorizzare
N che egrave un problema computazionalmente difficile per quanto osservato in precedenza
Anche se non egrave stato dimostrato che non si possa rompere il codice in altro modo e cioegrave senza conoscere Φ(N) e i
fattori di N a tuttrsquooggi si puograve affermare che la sicurezza del metodo dipende essenzialmente dai seguenti fatti
Per codificare il messaggio bisogna saper costruire dei numeri primi grandi e tale operazione egrave
computazionalmente veloce si puograve infatti dimostrare che la complessitagrave computazionale di opportuni test di
primalitagrave per stabilire se un numero n egrave primo utilizzando il linguaggio di quel ramo della matematica nota
come teoria della complessitagrave egrave ldquoquasi-polinomialerdquo
Per violare il sistema bisogna saper fattorizzare interi grandi ottenuti come prodotto di due primi tale
problema egrave computazionalmente ldquolentordquo cioegrave con il linguaggio della teoria della complessitagrave appartiene alla
classe dei problemi non polinomiali Tale marcata differenza tra la velocitagrave di esecuzione delle operazioni di
costruzione di numeri primi grandi e di fattorizzazione di interi grandi garantisce la sicurezza del metodo
almeno per un tempo sufficientemente lungo Ad esempio con la tecnologia attuale lrsquooperazione di
fattorizzazione di un intero di 140 cifre in base 10 prodotto di due numeri primi casuali calcolati in pochi
secondi su un computer disponibile in commercio richiede utilizzando vari supercomputers operanti
parallelamente circa un mese
La RSA Security Inc gestisce una sfida a livello mondiale ove vengono premiati coloro che fattorizzano
gli interi proposti da loro in una particolare lista Ad esempio il 3 dicembre del 2003 egrave stato fattorizzato
32
rsa576 =
188198812920607963838697239461650439807163563379417382700763356422988859715234
665485319060606504743045317388011303396716199692321205734031879550656996221305
168759307650257059
un numero di 174 cifre decimali prodotto di due primi di 87 cifre
p =
398075086424064937397125500550386491199064362342526708406385189575946388957261
768583317
q =
472772146107435302536223071973048224632914695302097116459852171130520711256363
590397527
Le chiavi attualmente utilizzate dallRSA sono a 309 cifre decimali
La firma digitale
Consideriamo al solito un mittente che deve inviare a un destinatario un messaggio m La codifica di m
con il metodo descritto assicura lrsquoautenticitagrave del messaggio ma non fornisce alcuna sicurezza sulla sua
paternitagrave Infatti il messaggio m pur essendo autentico potrebbe essere stato inviato da qualcuno che si spaccia
per il mittente Questa egrave unimportantissima questione particolarmente nella trasmissione di messaggi che oltre
a dover essere segreti devono garantire la loro origine
Si dovrebbe quindi disporre di un analogo della firma manuale detta appunto firma digitale La firma
digitale deve allora essere progettata in modo da possedere le stesse caratteristiche di una firma manuale e cioegrave
lrsquoautenticitagrave la non falsificabilitagrave e lrsquoimpossibiltagrave di essere riutilizzata Facciamo vedere come lo stesso metodo
RSA puograve essere utilizzato per progettare una firma digitale
La situazione egrave la seguente il mittente (di seguito indicato con Mitt) invia un messaggio m con la firma
F al destinatario (di seguito indicato con Dest) Siano a b rispettivamente le chiavi pubblica e segreta di MITT
siano e d rispettivamente le chiavi pubblica e segreta di DEST
La procedura per apporre la firma digitale F al messaggio m egrave illustrata nei seguenti passi riassunti nel
grafico della figura 14
1 Mitt cripta la firma F (cioegrave i suoi dati identificativi) usando la propria chiave segreta (b)
ottenendo Fb
2 il messaggio m con la firma F criptata viene ulteriormente criptato con la chiave pubblica di
Dest (e) ottenendo (m Fb)e
3 Dest decodifica il messaggio con la sua chiave segreta (d) ottenendo
((m Fb)e)d = (me F(be)) d =m(e d)F(be d) = mFb
in cui la firma di Mitt egrave ancora criptata
4 Dest decodifica la firma di Mitt con la chiave pubblica di Mitt (a) ottenendo
(Fb)a = F(ba) = F
33
Grafico firma digitale
Mitt
Dest
pubblica
Fb
e dpubblica
a
((Fb)e)d=(Fb)ed=(Fb)1=Fb
(Fb)a=(F)ba=(F)1=F
ab de
(Fb)e
codifica
codificadecodifica
decodifica
1
2
3
4
5
6
7
8
segreta
b
segreta
Figura 14 Grafico firma digitale
Bibliografia
Thomas Beth Comunicazioni e sicurezza su Internet in ldquoLe Scienzerdquo n 330 febbraio 1996
Brian Butterworth Intelligenza matematica Vincere la paura dei numeri scoprendo le doti innate della mente
Rizzoli Milano 1999
John H Conway Richard K Guy Il libro dei numeri Hoepli Milano 2003
Richard Courant Herbert Robbins Che cosrsquoegrave la matematica Boringhieri Torino 1971
Philip J Davis Il mondo dei grandi numeri Zanichelli Bologna 1973
Keith Devlin Dove va la matematica Bollati Boringhieri Torino 1994
Jean Dieudonneacute Lrsquoarte dei numeri matematica e matematici oggi Mondadori Milano 1989
Martin E Ellmann La crittografia a chiave pubblica in La matematica della complessitagrave Quaderni n 67
settembre 1992 Le Scienze
Paolo Ferragina Fabrizio Luccio Crittografia principi ndash Algoritmi ndash Applicazioni Bollati Boringhieri Torino
2001
Godfrey H Hardy Apologia di un matematico Garzanti Milano 1989
Morris Kline Storia del pensiero matematico Einaudi Milano 1991
Serge Lang La bellezza della matematica Bollati Boringhieri Torino 1991
Mauro Leoncini Modelli di calcolo e complessitagrave computazionale in La matematica computazionale Quaderni
n 84 giugno 1995 Le Scienze
Fabrizio Luccio e Linda Pagli P = NP in La matematica della complessitagrave Quaderni n 67 settembre 1992
Le Scienze
Piergiorgio Odifreddi La Matematica del Novecento dagli insiemi alla complessitagrave Einaudi Torino 2000
34
ldquoPeriodico di matematicherdquo Serie VII Volume 7 Numero 2-3 luglio-dicembre 2000 Mathesis
ldquoPeriodico di matematicherdquo Serie VIII Volume 1 Numero 1 gennaio-marzo 2001 Mathesis
Carl Pomerance Alla ricerca dei numeri primi in ldquoLe Scienzerdquo n 174 febbraio 1983
Simon Singh Codici e segreti la storia affascinante dei messaggi cifrati dallrsquoantico Egitto a Internet Rizzoli
Milano 1999
Marcus du Sautoy Lrsquoenigma dei numeri primi lrsquoipotesi di Riemann lrsquoultimo grande mistero della matematica
Rizzoli Milano 2004
Gary Stix I segreti meglio custoditi la crittografia quantistica egrave passata dalla teoria al laboratorio per
approdare finalmente alle applicazioni in ldquoLe Scienzerdquo n 438 febbraio 2005
19
Il metodo di sostituzione omofonica consiste nel sostituire ogni lettera con un numero di simboli per
esempio numeri proporzionale alla sua frequenza Cosigrave ad esempio la lettera a avendo una frequenza di 11 74
viene sostituita da 11 simboli la lettera b con un solo simbolo la lettera c con 4 simboli ecc secondo la tabella 5
Il metodo di sostituzione polialfabetica consiste nellrsquouso di piugrave alfabeti cifranti su unrsquoidea di Leon
Battista Alberti che propose di utilizzarne due Lrsquoalgoritmo consiste nel sostituire la prima lettera del messaggio
in chiaro con la corrispondente del I alfabeto cifrante la seconda lettera con la corrispondente del II alfabeto
cifrante la terza con la corrispondente del I e cosigrave via passando alternativamente dal I alfabeto al secondo Come
nellrsquoesempio della figura 3
Tabella 5 Corrispondenza lettere e simboli nella sostituzione omofonica
Figura 3 Il metodo di sostituzione polialfabetica
Su tale idea si basa il metodo di Blaise de Vigenegravere diplomatico francese nato nel 1523 il quale utilizza
tanti alfabeti cifranti quante sono le lettere dellrsquoalfabeto in chiaro ad esempio nellrsquoalfabeto italiano che consta
di 21 lettere utilizza 21 alfabeti cifranti
Il primo passo consiste nel costruire la tavola di Vigenegravere in cui nella prima riga egrave riportato lrsquoalfabeto in
chiaro e in ognuna delle 21 righe successive egrave riportato un alfabeto cifrante spostato di una lettera rispetto a
quello della riga precedente cosigrave nella riga 1 egrave riportato lrsquoalfabeto spostato di una lettera nella riga 2 quello
spostato di due lettere nella riga 3 quello spostato di tre fino alla riga 20 in cui egrave riportato quello spostato di 20
lettere (figura 4)
20
Figura 4 La tavola di Vigenegravere
Il secondo passo consiste nello scegliere una parola chiave per esempio lsquoverorsquo Pertanto il messaggio in
chiaro ldquonon andarerdquo verrebbe cifrato come nella figura 5
La differenza sostanziale tra la cifratura omofonica e quella polialfabetica egrave che in quella omofonica a
ogni lettera corrispondono piugrave simboli ma ogni simbolo egrave il corrispondente di una sola lettera cioegrave egrave una
corrispondenza 1rarr m che invertita diventa mrarr 1 in quella polialfabetica a ogni lettera corrispondono piugrave
simboli e anche ogni simbolo egrave il corrispondente di piugrave lettere cioegrave mrarr m che rimane tale anche invertendola
Il vantaggio della cifratura polialfabetica egrave pertanto la sua resistenza allrsquoanalisi delle frequenze Oltre ad
ammettere un enorme numero di chiavi infatti si puograve scegliere qualunque parola del dizionario qualunque
combinazione di parole si puograve perfino ricorrere a neologismi rendendo impossibile il controllo di tutte le chiavi
possibili Ed ecco percheacute egrave ritenuta piugrave affidabile e non ha mai smesso di essere usata
Figura 5 Cifratura polialfabetica del messaggio ldquonon andarerdquo
21
Oggi sono noti tutti i punti deboli del sistema di Vigenegravere ed esistono vari procedimenti per decifrare i
crittogrammi generati da tale sistema che sfruttano ad esempio la modularitagrave nel ripetere la chiave o
osservazioni sulle ripetizioni del testo cifrato Ci sono testimonianze storiche che uno di tali procedimenti sia
stato ideato da Sir Charles Babbage famoso per aver progettato e mai realizzato la macchina alle differenze
progenitrice degli odierni calcolatori La prima descrizione resa pubblica del metodo perograve egrave del 1863 portata a
compimento dallrsquoufficiale prussiano F W Kasiski
Unrsquoosservazione decisiva fu che le insidie del metodo di Babbage potevano essere evitate utilizzando
nella cifratura di Vigenegravere una chiave molto lunga e fatta da lettere che si succedono in modo casuale se un
messaggio cifrato non presenta delle ripetizioni se non egrave possibile tentare di indovinare la chiave cadono tutti
gli appigli necessari per effettuare con successo la crittoanalisi
Tale osservazione fu ulteriormente sviluppata da G S Vernam che nel 1926 introdusse lrsquoidea di usare
una chiave casuale lunga quanto il messaggio stesso
Oggi sappiamo grazie agli studi di Claude Shannon del 1949 che tale metodo puograve definirsi
ldquoteoricamente sicurordquo
In pratica perograve ciograve comporta la difficoltagrave di costruire lunghe stringhe di lettere assolutamente casuali e di
scambiarsi segretamente e continuamente queste chiavi In sostanza risulta impraticabile per ogni messaggio
scambiato in modo sicuro egrave necessario prima trasmettere in modo sicuro il messaggio contenente la chiave
I metodi usati per buona parte del Novecento sono delle rielaborazioni sempre piugrave complesse delle idee
descritte finora ottenute anche con la costruzione di dispositivi per la meccanizzazione delle procedure di
cifratura e decifratura Un esempio tra i piugrave conosciuti egrave la macchina Enigma usata dai tedeschi durante la
Seconda guerra mondiale inventata dallrsquoingegnere Arthur Scherbius Enigma consisteva di diversi ingegnosi
elementi combinati in un potente e sofisticato dispositivo per la produzione di scritture segrete In particolare ma
macchina aveva tre componenti collegati da fili elettrici una tastiera per immettere le lettere del testo chiaro
unrsquounitagrave scambiatrice che cifra la lettera trasformandola nel corrispondente elemento del crittogramma e un
visore con varie lampadine che accendendosi indicano la lettera da inserire nel crittogramma
Lo sforzo per violare questa cifratura richiese anni di lavoro e fu portato a compimento dalla Scuola
Inglese Governativa di Codici e Cifre di Bletchley Park di cui faceva parte Alan M Turing noto oggi ai piugrave per
i suoi studi sullrsquointelligenza meccanica
La crittografia nellrsquoera dellrsquoinformatica
Nel 1945 fu realizzato ENIAC (Electronic Numerical Integrator And Calculator) unrsquoapparecchiatura
contenente 18 000 valvole elettroniche capace di effettuare 5000 calcoli al secondo considerato il capostipite
dei moderni calcolatori
Dopo il 1945 fu lrsquoinformatica a fare da protagonista nella battaglia tra crittografi e crittoanalisti operando
una decisiva svolta nelle metodologie di entrambi Infatti i metodi precedenti lrsquoera dellrsquoinformatica basavano la
propria sicurezza sullrsquoenorme numero di chiavi disponibili e sulla loro lunghezza ma che viene messa in crisi
dalla crescente potenza di calcolo dei computer Un computer molto potente infatti potrebbe individuare quella
giusta in pochi minuti anche nel caso di un milione di chiavi da esaminare
Tutti i metodi crittografici esaminati finora necessitano di
22
1 un algoritmo generale di cifratura G
2 di una chiave K che deve rimanere segreta
3 di un algoritmo di decifrazione H=Gndash1 (inverso di G)
e agiscono secondo il seguente schema
il messaggio in chiaro M tramite lrsquoalgoritmo G e la chiave K viene cifrato in MC questrsquoultimo tramite
lrsquoalgoritmo H e la stessa chiave K viene decifrato in M (figura 6)
Figura 6 Schema di metodi crittografici
La sicurezza di tali sistemi risiede interamente nella segretezza delle chiavi Ne segue che per distribuire
agli utenti le chiavi egrave necessario ricorrere a canali sicuri
Gli svantaggi che ne derivano sono essenzialmente
1 difficoltagrave nella distribuzione delle chiavi agli utenti
2 mancata autenticazione dei messaggi mittente e destinatario condividono la stessa chiave
pertanto non crsquoegrave modo di impedire che il destinatario si invii messaggi che poi sembrino
provenienti dal mittente Si pensi quali problemi possono provocare simili falsificazioni nella
posta elettronica o nei sistemi bancari elettronici
La svolta avvenne nel 1976 a opera di Diffie e Hellmann che proposero un metodo detto a chiave
pubblica il quale non necessita di uno scambio preventivo delle chiavi segrete Lrsquodea egrave chiarita dal seguente
esempio noto come esempio del doppio lucchetto
Supponiamo di avere due utenti Mitt e Dest e Mitt voglia spedire un messaggio segreto a Dest
1 Mitt mette il messaggio in una scatola che chiude con il proprio lucchetto LMitt (di cui solo lui ha
la chiave) e spedisce la scatola a Dest
2 Dest ricevuta la scatola aggiunge un proprio lucchetto LDest (di cui solo lui ha la chiave) e
rispedisce la scatola a Mitt
3 Mitt ricevuta la scatola con il doppio lucchetto toglie il lucchetto LMitt e rispedisce la scatola a
Dest
4 Dest ricevuta la scatola puograve togliere il lucchetto LDest e leggere il messaggio di Mitt
Il problema della distribuzione delle chiavi sembra risolto percheacute lo schema a doppia chiave non richiede
la condivisione delle stesse Tuttavia la realizzazione pratica di un tale sistema si scontra con un altro problema
quello riguardante lrsquoordine in cui cifrature e decifrature sono eseguite In altre parole in un sistema crittografico
egrave essenziale lrsquoordine con cui avvengono le rispettive cifrature e decifrature in quanto la cifratura eseguita per
23
ultimo andrebbe decifrata per prima (egrave un porsquo come quando la mattina infiliamo prima le calze e poi le scarpe
ma alla sera togliamo prima le scarpe e poi le calze)
Lrsquoesempio del doppio lucchetto in cui ciograve non avviene sembra tuttavia funzionare come idea percheacute ai
fini dellrsquoapertura della scatola non ha importanza lrsquoordine di rimozione dei lucchetti
Anche se il trucco dei due lucchetti non sembra immediatamente applicabile tuttavia fu il giusto punto di
partenza per la realizzazione di un sistema crittografico che aggira lrsquoostacolo della distribuzione delle chiavi
Infatti lrsquoidea egrave che mittente e destinatario generano ciascuno due chiavi distinte una chiave di cifratura E
(da utilizzare nellrsquoalgoritmo di cifratura) e una chiave di decifrazione D (da utilizzare nellrsquoalgoritmo di
decifrazione) Le chiavi sono correlate nel senso che servono per effettuare operazioni inverse (figura 7)
Figura 7 Le chiavi correlate per effettuare operazioni invese
Il trucco consiste nellrsquoimpossibilitagrave di poter derivare la chiave D dalla chiave E mediante algoritmi di
calcolo (figura 8)
Ogni utente puograve rendere pubblica la propria chiave di cifratura E indicandola magari sullrsquoelenco
telefonico senza compromettere la propria chiave di decifrazione che rimane segreta di pubblico dominio sono
anche gli algoritmi di cifratura G e decifrazione H
Figura 8 Inapplicabilitagrave del metodo del doppio lucchetto
Pertanto lrsquoesempio del doppio lucchetto viene cosigrave interpretato
1 il destinatario pubblica la chiave di cifratura E e mantiene segreta la chiave di decifrazione D
2 il mittente applica GE al messaggio M trasformandolo nel messaggio cifrato MC cioegrave
GE(M)=MC che spedisce al destinatario
3 il destinatario applica HD al messaggio cifrato MC riottenendo M cioegrave HD(MC)=M
24
La sicurezza di un tale sistema si fonda sulla difficoltagrave di poter
1 ritrovare il testo cifrato provando ad applicare lrsquoalgoritmo GE che egrave pubblico ad ogni possibile
testo in chiaro il cui numero pur essendo enorme egrave comunque finito
2 ricavare lrsquoalgoritmo HD da GE
in quanto entrambe le tecniche sono computazionalmente inattuabili nel senso che richiedono un tempo
di calcolo di lunghezza al di fuori di ogni possibile considerazione anche per i piugrave potenti calcolatori
Per descrivere tali algoritmi sono necessari alcuni concetti matematici che andiamo a illustrare
Figura 9 Schema di cifrario a chiave pubblica
Lrsquoaritmetica modulare
Lrsquoaritmetica modulare la cui introduzione egrave dovuta a Gauss costituisce un sistema di calcolo con
importanti applicazioni nei test di primalitagrave e nei metodi che stanno alla base della sicurezza delle comunicazioni
elettroniche Con essa infatti si hanno i seguenti vantaggi 1) si riduce lo spazio dei numeri su cui gli algoritmi
sono chiamati ad operare e quindi si aumenta la velocitagrave di calcolo 2) si riesce a rendere difficili alcuni problemi
computazionali che sono semplici (o addirittura banali) nellrsquoalgebra ordinaria al fine di aumentare la sicurezza
nelle comunicazioni Lrsquoidea egrave semplice ma potente Forse non lo sappiamo ma usiamo spesso laritmetica
modulare Potremmo chiamarla aritmetica dellorologio
Infatti pensiamo ad un normale orologio con 24 ore Se sono le 15 ed un amico ci comunica che saragrave a
casa nostra tra 5 ore sappiamo che egli verragrave alle 20 infatti 15+5=20 Ma se sono le 23 e dobbiamo partire fra 7
ore certamente non diciamo che la partenza saragrave alle 30 anche se 23+7=30 Sappiamo che dovremo partire alle
6 Allo stesso modo se sono le 20 che ora saragrave tra 14 ore Non diremo 34 anche se 20+14=34 ma diremo che
sono le 10 Come si spiega tutto ciograve
Immaginiamo di segnare sul quadrante dellrsquoorologio 24 ore Se la lancetta segna le 23 aggiungere 7 ore
significa spostarsi di 7 posti fino ad arrivare alle 6 Si giunge allo stesso risultato calcolando 23+7=30 ed
osservando che 30=1sdot24+6 o che egrave lo stesso 3024 =1 con resto 6 che significa che 30 lo si ottiene facendo fare
alla lancetta un giro completo piugrave 6
25
Se la lancetta segna le 20 e aggiungiamo 14 ore lrsquoorologio segneragrave le 10 percheacute 20+14=34 ma 3424= 1
con resto 10 per cui 34 lo si ottiene percorrendo un giro completo piugrave 10
Proviamo con il normale orologio a 12 ore I numeri che vediamo sul quadrante sono 0 1 2 3 4 5 6 7
8 9 10 11 Il numero 12 non compare percheacute a partire da 0 trascorse 12 ore torniamo di nuovo a 0 Questa
volta per fare un giro completo occorrono 12 ore Pertanto se sono le 7 che ore saranno tra 24 ore Saranno
ancora le 7 percheacute 7+24=31 ma 3112 = 2 con resto 7 cioegrave si compiono 2 giri completi piugrave 7 se sono le 8 tra 6
ore saranno le 2 percheacute 8+6=14 ma 1412=1 con resto 2 Dagli esempi dovrebbe risultare chiaro allora che ciograve
che contano non sono i risultati delle somme ma i loro resti nelle divisioni per il numero delle ore segnate sul
quadrante dellrsquoorologio
La stessa cosa succede con i giorni della settimana se pensiamo a un orologio con 7 ore sul quadrante
Facciamo corrispondere ai giorni della settimana i numeri da 0 a 6 (figura 10)
domenica Lunedigrave Martedigrave Mercoledigrave Giovedigrave Venerdigrave Sabato darr darr darr darr darr darr darr 0 1 2 3 4 5 6
Figura 10 Corrispondenza dei giorni della settimana con i numeri da 0 a 6
Se per esempio oggi egrave venerdigrave che giorno saragrave tra 12 giorni
Dovremo calcolare 5+12=17 ma i giorni si ripetono ogni 7 pertanto osservando che 177 =2 con resto 3
possiamo concludere che a partire da 5 e aggiungendo 12 si compiono 2 giri completi piugrave 3 ed essendo 3 il
numero corrispondente a mercoledigrave concludiamo che saragrave mercoledigrave Facciamo un altro esempio se oggi egrave
lunedigrave (1) che giorno saragrave tra 20 giorni Calcoliamo 1+20=21 217= 3 con resto 0 quindi saragrave domenica
Il numero n delle ore sullrsquoorologio costituisce quello che si chiama il modulo e individua lrsquoaritmetica di
modulo n in cui lrsquoinsieme dei numeri con i quali si opera indicato con Zn egrave lrsquoinsieme dei possibili resti della
divisione per n e cioegrave Zn=0 1 2 3 hellip nndash1e le operazioni si eseguono con le regole illustrate negli esempi
precedenti
Lrsquoesempio dellrsquoorologio a 24 ore costituisce la cosiddetta aritmetica finita di modulo 24 in essa Z24=0
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 essendo questi ultimi i possibili resti
della divisione per 24 Lrsquoorologio a 12 ore costituisce lrsquoaritmetica finita di modulo 12 in essa Z12=0 1 2 3 4
5 6 7 8 9 10 11 essendo questi ultimi i possibili resti della divisione per 12 Lrsquoesempio dei giorni della
settimana egrave lrsquoaritmetica finita di modulo 7 in cui Z7=0 1 2 3 4 5 6 essendo questi ultimi i possibili resti
della divisione per 7 Riassumiamo costruendo unrsquoaritmetica finita di modulo 4 I possibili resti della divisione
per 4 sono 0 1 2 3 quindi Z4=0123 Lrsquoaddizione e la moltiplicazione in Z4 si esegue come negli esempi
della tabella 6
26
operazioni indicate
Risultato nellrsquoaritmetica ordinaria
Risultato nellrsquoaritmetica modulo 4
2+2 4 0 percheacute 44=1 con resto 0
3+2 5 1 percheacute 54=1 con resto 1
2+1 3 3 percheacute 34=0 con resto 3
3sdot3 9 1 percheacute 94=2 con resto 1
3sdot2 6 2 percheacute 64=1 con resto 2
2sdot2 4 0 percheacute 44=1 con resto 0
Tabella 6 Addizione e moltiplicazione nellrsquoaritmetica finita di modulo 4
Si possono costruire le tavole dellrsquoaddizione e della moltiplicazione dellrsquoaritmetica modulo 4 che costituiscono
le tabelline di questa aritmetica sulla base delle quali si esegue qualsiasi addizione e moltiplicazione modulo 4
Nella tabella 7 sono spiegate le tabelline dellrsquoaritmetica in modulo 4
Tabella 7 Tavole dellrsquoaddizione e della moltiplicazione dellrsquoaritmetica modulo 4
Infine per indicare che due numeri a e b divisi per n danno lo stesso resto si usano le seguenti notazioni
tutte equivalenti tra loro
a=b mod n andashb=0 mod 4 a equiv b (mod n) che si legge a egrave congruo b modulo 4
Esempio
26=12 mod 7 egrave la stessa cosa di
26ndash12=0 mod 7 che egrave la stessa cosa di
26 equiv 12 (mod 7) e tutte e tre stanno a indicare che 26 e 12 divisi per 7 danno lo stesso resto che egrave 5 e
pertanto sono tutti equivalenti a 5
Facciamo vedere come sfruttare lrsquoaritmetica modulare per calcolare potenze come 2341 (figura 11) Il
metodo si basa sulla proprietagrave che il resto del quadrato di un numero a per un dato modulo n egrave uguale al
quadrato del resto dello stesso numero a per lo stesso modulo n cioegrave a2 mod n =(a mod n)2
+ 0 1 2 3
0 0 1 2 3
1 1 2 3 0
2 2 3 0 1
3 3 0 1 2
x 0 1 2 3
0 0 0 0 0
1 0 1 2 3
2 0 2 0 2
3 0 3 2 1
27
Figura 11 Il metodo per calcolare 2341
La funzione di Eulero
Per ogni intero ngt1 si definisce la funzione di Eulero = numero di interi minori di n e primi con esso Ad
esempio
bull ( ) 45 =φ percheacute gli interi minori di 5 sono 1 2 3 4 ed essi sono tutti primi con n
bull ( ) 26 =φ percheacute gli interi minori di 6 sono 1 2 3 4 5 e fra essi solo 1 e 5 sono primi con 6
bull ( ) 67 =φ percheacute gli interi minori di 7 sono 1 2 3 4 5 6 ed essi sono tutti primi con 7
bull ( ) 412 =φ percheacute gli interi minori di 12 sono 1 2 3 4 5 6 7 8 9 10 11 e fra essi solo 1 5 7
11 sono primi con 12
Se si conosce la scomposizione in fattori del numero n il seguente teorema ci fornisce un metodo per
calcolare Infatti esso afferma che per ogni ngt1 non primo ( )
minussdotsdot
minussdot
minussdotnppp
n=nφ 11
11
11
21
dove
p1 p2 hellip pn sono i fattori primi di n presi senza molteplicitagrave
22 mod 341=4
24=(22)2=(22 mod 341)2=42=16mod341=16
28=(24)2=(16)2=256mod341=256
216= (28)2=(256)2=65536mod341=64
232=(216)2=(64)2=4096mod341=4
264=(232)2=42=16mod341=16
2128=(264)2=(16)2=256mod341=256
2256=(2128)2=(256)2=65536mod341=64
2341=2(256+64+16+4+1) 2256 264 216 24 21 x x x x
64 1
1024 mod 341
= 1 x 64
64 x 16
1024 mod 341
1 x 2 =
=
x
28
Ad esempio
essendo 12 = 3sdot2sdot2 ( ) 42
1
3
212
2
11
3
111212 ===φ sdotsdot
minussdot
minussdot
essendo 6=2sdot3 ( ) 22
1
3
26
2
11
3
1166 ===φ sdotsdot
minussdot
minussdot
se n=psdotq ( ) ( ) ( )11111
11
1 minussdotminusminussdotminussdot
minussdot
minussdot qp=q
q
p
pn=
qpn=nφ
Ovviamente se n egrave un numero primo = nndash1
Vale inoltre il seguente teorema di Eulero per ngt1 e per ogni altn e primo con n si ha
Ad esempio per n=6 ( ) 26 =φ infatti i primi con 6 sono 1 e 5 per il teorema di Eulero si ha
2mod1255
2mod1112
2
equiv=
equiv=
per n=5 ( ) 45 =φ e i primi con 5 sono 1 2 3 4 e per il teorema di Eulero si ha
5mod12564
5mod1813
5mod1162
5mod111
4
4
4
4
equiv=
equiv=
equiv=
equiv=
Si puograve notare come nel caso in cui n egrave un numero primo si ritrova il piccolo teorema di Fermat
Infatti per n primo ( )nφ = nndash1 e per il teorema di Eulero per ogni altn e primo con n Ricordiamo infatti
che il piccolo teorema di Fermat afferma che se n egrave un numero primo e a un intero minore di n allora egrave
divisibile per n che con il linguaggio dellrsquoaritmetica modulare diventa che puograve essere riscritto e se a egrave primo
con n allora egrave che egrave equivalente a
Infine si prova che per ogni altn e primo con esso esiste lrsquoinverso di a e esso egrave dato da ( ) 1minusnaφ Infatti
( ) ( ) na=aa nφnφ1mod1 equivsdot minus per il teorema di Eulero Si ricorda che lrsquoinverso di un numero a egrave quel numero che
moltiplicato per a dagrave 1 indicato convenzionalmente con andash1
Ad esempio per n=5 i primi con 5 sono 1 2 3 4 e per ognuno di questi esiste lrsquoinverso infatti
bull lrsquoinverso di 1 egrave ( ) 1mod51111 31415 equivminusminus ===φ
e infatti
bull lrsquoinverso di 2 egrave ( ) 3mod58222 31415 equivminusminus ===φ
e infatti
bull lrsquoinverso di 3 egrave ( ) 2mod527333 31415 equivminusminus ===φ
e infatti
bull lrsquoinverso di 4 egrave ( ) 4mod564444 31415 equivminusminus ===φ
Le funzioni unidirezionali
Chiamiamo funzione da un insieme A a un insieme B qualunque procedura che associa a ogni elemento
di un insieme A (detto dominio) uno e un solo elemento di un insieme B (detto condominio) In simboli f
A rarr B Se poi indichiamo con x il generico elemento dellrsquoinsieme A e con y il generico elemento dellrsquoinsieme B
la f indica la procedura che ad ogni xisinA associa un yisinB e cioegrave y=f(x) ad esempio ldquofare il doppio dihelliprdquo
29
prendendo come dominio e codominio lrsquoinsieme dei numeri interi egrave in questo senso una funzione percheacute dato
ad esempio il numero 3 lo trasforma nel numero 6 come 5 lo trasforma in 10 e cosigrave via
Molte funzioni matematiche sono cosiddette bidirezionali nel senso che egrave facile dato un determinato x
generare il corrispondente y ma egrave altrettanto facile invertire la funzione cioegrave ritrovare lrsquoelemento x originario a
partire dal suo corrispondente
Facciamo qualche esempio
bull funzione xrarr fare il doppiorarr 2sdotx= y 3rarr fare il doppiorarr 2sdot3 = 6
funzione inversa y=2sdotx rarr fare la metagraverarr x 6=2sdot3 rarr fare la metagraverarr 3
bull funzione xrarr fare il quadruplorarr 4sdotxrarr aggiungere 1rarr sdoty=4sdotx +1
5rarr fare il quadruplorarr 4sdot5rarr aggiungere 1rarr 4sdot5 +1=21
funzione inversa y=4sdotx +1rarr sottrarre 1rarr 4sdot xrarr dividere per 4rarr x
21=4sdot5 +1rarr sottrarre 1rarr 4sdot 5rarr dividere per 4rarr 5
Le funzioni unidirezionali sono invece quelle funzioni facilmente calcolabili ma che non si possono invertire
Le funzioni cosiddette pseudounidirezionali (dette anche funzioni trappola a molla segreta) sono invece
quelle funzioni facilmente calcolabili ma che non altrettanto facilmente si possono invertire a meno che non si
conoscano alcune informazioni (la molla segreta) utilizzate nella loro costruzione
Lrsquoaritmetica modulare gioca un ruolo determinante in questo caso infatti permette di trasformare
funzioni bidirezionali in funzioni pseudounidirezionali
Facciamo lrsquoesempio della funzione ldquofare il quadruplordquo in simboli f(x)=4sdotx Egrave facilmente calcolabile
percheacute dato x per ottenere f(x) basta moltiplicare per 4 ma egrave altrettanto facile calcolare la sua inversa percheacute
dato f(x) basta dividere per 4 per ottenere lrsquooriginario x Ma anche se non avessimo la procedura inversa di
dividere per 4 sarebbe facile ritrovare lrsquoelemento originario anche procedendo per tentativi ed eliminazione
infatti se per esempio f(x) =20 si puograve tentare x=3 in tal caso f(x)=12 troppo piccolo quindi x deve essere
maggiore di 3 Si puograve allora pensare a 6 ma f(x)=24 troppo grande quindi x deve essere minore di 6 e cosigrave via
Vediamo cosa accade se calcoliamo utilizzando una aritmetica modulare Per esempio consideriamo la
stessa funzione f(x)=4sdotx in una aritmetica modulo 7 Possiamo osservare che la funzione non si comporta piugrave in
modo regolare come prima per accorgersene basta costruire una tabella (tabella 8)
x 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
f(x)=4sdotx 4 8 12 16 20 24 28 32 36 40 44 48 52 56 60
f(x)=4sdotmod 7 4 1 5 2 6 3 0 4 1 5 2 6 3 0 4
Tabella 8 La funzione f(x)=4sdotx in una aritmetica modulo 7
Anche in questa semplice situazione egrave chiaro che egrave piugrave complicato invertire la funzione e pertanto i valori
di x sono molto meglio protetti Si puograve fare anche lrsquoesempio della funzione esponenziale f(x)=3 x (tabella 9)
Tabella 9 La funzione f(x)=3 x in aritmetica modulo 11
x 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
f(x)=x3 1 8 27 64 125 216 343 512 729 1000 hellip hellip hellip hellip hellip
f(x)=x3 mod 11 1 8 5 9 4 7 2 6 3 10 hellip hellip hellip hellip hellip
30
Il cifrario a chiave pubblica RSA
Uno dei piugrave noti sistemi crittografici a chiave pubblica che sfrutta le idee precedentemente descritte egrave il
metodo RSA proposto dai matematici R L Rivest A Shamir e L Adlemann nel 1978 Esso risolve il problema
dello scambio delle chiavi in quanto queste ultime sono conosciute solamente ai rispettivi proprietari che non le
hanno preventivamente concordate e scambiate
Illustriamo schematicamente come i due utenti Mitt e Dest possano scambiarsi un messaggio segreto
utilizzando il metodo RSA Entrambi Mitt e Dest indipendentemente lrsquouno dallrsquoaltro poi
1 scelgono in modo casuale due numeri primi p q grandi (di 200-300 cifre in base 10)
2 calcolano N = psdotq e Φ(N) = (pndash1)sdot(qndash1)
3 scelgono un intero eltΦ(N) e primo con Φ(N) tale numero e saragrave la chiave pubblica
4 calcolano il numero d inverso di e mod Φ(N) tale cioegrave che esdotdequiv 1mod Φ(N) tale numero d saragrave
la chiave privata
5 rendono pubblici i numeri N ed e
Mitt per spedire un messaggio a Dest compie le seguenti operazioni
1 codifica il messaggio in un modo standard usando i numeri lt N
2 trasforma ogni numero M di tale codifica in Me (mod N) e lo spedisce a Dest
per decodificare il messaggio ricevuto Me Dest calcola (Me)d =Mesdotd =Mndash1=M (modN) riottenendo il messaggio
originale
Figura 12 Schema di cifrario con metodo RSA
31
Figura 13 Esempio di applicazione di metodi RSA
In che cosa consiste la sicurezza del metodo Da quanto esposto si osserva che per decodificare il
messaggio bisogna
1 conoscere d (chiave segreta)
2 essendo d lrsquoinverso di e nellrsquoaritmetica mod Φ(N) essendo e noto egrave necessario conoscere Φ(N)
3 ma noto N per calcolare Φ(N) egrave necessario conoscere i fattori primi di N cioegrave egrave necessario fattorizzare
N che egrave un problema computazionalmente difficile per quanto osservato in precedenza
Anche se non egrave stato dimostrato che non si possa rompere il codice in altro modo e cioegrave senza conoscere Φ(N) e i
fattori di N a tuttrsquooggi si puograve affermare che la sicurezza del metodo dipende essenzialmente dai seguenti fatti
Per codificare il messaggio bisogna saper costruire dei numeri primi grandi e tale operazione egrave
computazionalmente veloce si puograve infatti dimostrare che la complessitagrave computazionale di opportuni test di
primalitagrave per stabilire se un numero n egrave primo utilizzando il linguaggio di quel ramo della matematica nota
come teoria della complessitagrave egrave ldquoquasi-polinomialerdquo
Per violare il sistema bisogna saper fattorizzare interi grandi ottenuti come prodotto di due primi tale
problema egrave computazionalmente ldquolentordquo cioegrave con il linguaggio della teoria della complessitagrave appartiene alla
classe dei problemi non polinomiali Tale marcata differenza tra la velocitagrave di esecuzione delle operazioni di
costruzione di numeri primi grandi e di fattorizzazione di interi grandi garantisce la sicurezza del metodo
almeno per un tempo sufficientemente lungo Ad esempio con la tecnologia attuale lrsquooperazione di
fattorizzazione di un intero di 140 cifre in base 10 prodotto di due numeri primi casuali calcolati in pochi
secondi su un computer disponibile in commercio richiede utilizzando vari supercomputers operanti
parallelamente circa un mese
La RSA Security Inc gestisce una sfida a livello mondiale ove vengono premiati coloro che fattorizzano
gli interi proposti da loro in una particolare lista Ad esempio il 3 dicembre del 2003 egrave stato fattorizzato
32
rsa576 =
188198812920607963838697239461650439807163563379417382700763356422988859715234
665485319060606504743045317388011303396716199692321205734031879550656996221305
168759307650257059
un numero di 174 cifre decimali prodotto di due primi di 87 cifre
p =
398075086424064937397125500550386491199064362342526708406385189575946388957261
768583317
q =
472772146107435302536223071973048224632914695302097116459852171130520711256363
590397527
Le chiavi attualmente utilizzate dallRSA sono a 309 cifre decimali
La firma digitale
Consideriamo al solito un mittente che deve inviare a un destinatario un messaggio m La codifica di m
con il metodo descritto assicura lrsquoautenticitagrave del messaggio ma non fornisce alcuna sicurezza sulla sua
paternitagrave Infatti il messaggio m pur essendo autentico potrebbe essere stato inviato da qualcuno che si spaccia
per il mittente Questa egrave unimportantissima questione particolarmente nella trasmissione di messaggi che oltre
a dover essere segreti devono garantire la loro origine
Si dovrebbe quindi disporre di un analogo della firma manuale detta appunto firma digitale La firma
digitale deve allora essere progettata in modo da possedere le stesse caratteristiche di una firma manuale e cioegrave
lrsquoautenticitagrave la non falsificabilitagrave e lrsquoimpossibiltagrave di essere riutilizzata Facciamo vedere come lo stesso metodo
RSA puograve essere utilizzato per progettare una firma digitale
La situazione egrave la seguente il mittente (di seguito indicato con Mitt) invia un messaggio m con la firma
F al destinatario (di seguito indicato con Dest) Siano a b rispettivamente le chiavi pubblica e segreta di MITT
siano e d rispettivamente le chiavi pubblica e segreta di DEST
La procedura per apporre la firma digitale F al messaggio m egrave illustrata nei seguenti passi riassunti nel
grafico della figura 14
1 Mitt cripta la firma F (cioegrave i suoi dati identificativi) usando la propria chiave segreta (b)
ottenendo Fb
2 il messaggio m con la firma F criptata viene ulteriormente criptato con la chiave pubblica di
Dest (e) ottenendo (m Fb)e
3 Dest decodifica il messaggio con la sua chiave segreta (d) ottenendo
((m Fb)e)d = (me F(be)) d =m(e d)F(be d) = mFb
in cui la firma di Mitt egrave ancora criptata
4 Dest decodifica la firma di Mitt con la chiave pubblica di Mitt (a) ottenendo
(Fb)a = F(ba) = F
33
Grafico firma digitale
Mitt
Dest
pubblica
Fb
e dpubblica
a
((Fb)e)d=(Fb)ed=(Fb)1=Fb
(Fb)a=(F)ba=(F)1=F
ab de
(Fb)e
codifica
codificadecodifica
decodifica
1
2
3
4
5
6
7
8
segreta
b
segreta
Figura 14 Grafico firma digitale
Bibliografia
Thomas Beth Comunicazioni e sicurezza su Internet in ldquoLe Scienzerdquo n 330 febbraio 1996
Brian Butterworth Intelligenza matematica Vincere la paura dei numeri scoprendo le doti innate della mente
Rizzoli Milano 1999
John H Conway Richard K Guy Il libro dei numeri Hoepli Milano 2003
Richard Courant Herbert Robbins Che cosrsquoegrave la matematica Boringhieri Torino 1971
Philip J Davis Il mondo dei grandi numeri Zanichelli Bologna 1973
Keith Devlin Dove va la matematica Bollati Boringhieri Torino 1994
Jean Dieudonneacute Lrsquoarte dei numeri matematica e matematici oggi Mondadori Milano 1989
Martin E Ellmann La crittografia a chiave pubblica in La matematica della complessitagrave Quaderni n 67
settembre 1992 Le Scienze
Paolo Ferragina Fabrizio Luccio Crittografia principi ndash Algoritmi ndash Applicazioni Bollati Boringhieri Torino
2001
Godfrey H Hardy Apologia di un matematico Garzanti Milano 1989
Morris Kline Storia del pensiero matematico Einaudi Milano 1991
Serge Lang La bellezza della matematica Bollati Boringhieri Torino 1991
Mauro Leoncini Modelli di calcolo e complessitagrave computazionale in La matematica computazionale Quaderni
n 84 giugno 1995 Le Scienze
Fabrizio Luccio e Linda Pagli P = NP in La matematica della complessitagrave Quaderni n 67 settembre 1992
Le Scienze
Piergiorgio Odifreddi La Matematica del Novecento dagli insiemi alla complessitagrave Einaudi Torino 2000
34
ldquoPeriodico di matematicherdquo Serie VII Volume 7 Numero 2-3 luglio-dicembre 2000 Mathesis
ldquoPeriodico di matematicherdquo Serie VIII Volume 1 Numero 1 gennaio-marzo 2001 Mathesis
Carl Pomerance Alla ricerca dei numeri primi in ldquoLe Scienzerdquo n 174 febbraio 1983
Simon Singh Codici e segreti la storia affascinante dei messaggi cifrati dallrsquoantico Egitto a Internet Rizzoli
Milano 1999
Marcus du Sautoy Lrsquoenigma dei numeri primi lrsquoipotesi di Riemann lrsquoultimo grande mistero della matematica
Rizzoli Milano 2004
Gary Stix I segreti meglio custoditi la crittografia quantistica egrave passata dalla teoria al laboratorio per
approdare finalmente alle applicazioni in ldquoLe Scienzerdquo n 438 febbraio 2005
20
Figura 4 La tavola di Vigenegravere
Il secondo passo consiste nello scegliere una parola chiave per esempio lsquoverorsquo Pertanto il messaggio in
chiaro ldquonon andarerdquo verrebbe cifrato come nella figura 5
La differenza sostanziale tra la cifratura omofonica e quella polialfabetica egrave che in quella omofonica a
ogni lettera corrispondono piugrave simboli ma ogni simbolo egrave il corrispondente di una sola lettera cioegrave egrave una
corrispondenza 1rarr m che invertita diventa mrarr 1 in quella polialfabetica a ogni lettera corrispondono piugrave
simboli e anche ogni simbolo egrave il corrispondente di piugrave lettere cioegrave mrarr m che rimane tale anche invertendola
Il vantaggio della cifratura polialfabetica egrave pertanto la sua resistenza allrsquoanalisi delle frequenze Oltre ad
ammettere un enorme numero di chiavi infatti si puograve scegliere qualunque parola del dizionario qualunque
combinazione di parole si puograve perfino ricorrere a neologismi rendendo impossibile il controllo di tutte le chiavi
possibili Ed ecco percheacute egrave ritenuta piugrave affidabile e non ha mai smesso di essere usata
Figura 5 Cifratura polialfabetica del messaggio ldquonon andarerdquo
21
Oggi sono noti tutti i punti deboli del sistema di Vigenegravere ed esistono vari procedimenti per decifrare i
crittogrammi generati da tale sistema che sfruttano ad esempio la modularitagrave nel ripetere la chiave o
osservazioni sulle ripetizioni del testo cifrato Ci sono testimonianze storiche che uno di tali procedimenti sia
stato ideato da Sir Charles Babbage famoso per aver progettato e mai realizzato la macchina alle differenze
progenitrice degli odierni calcolatori La prima descrizione resa pubblica del metodo perograve egrave del 1863 portata a
compimento dallrsquoufficiale prussiano F W Kasiski
Unrsquoosservazione decisiva fu che le insidie del metodo di Babbage potevano essere evitate utilizzando
nella cifratura di Vigenegravere una chiave molto lunga e fatta da lettere che si succedono in modo casuale se un
messaggio cifrato non presenta delle ripetizioni se non egrave possibile tentare di indovinare la chiave cadono tutti
gli appigli necessari per effettuare con successo la crittoanalisi
Tale osservazione fu ulteriormente sviluppata da G S Vernam che nel 1926 introdusse lrsquoidea di usare
una chiave casuale lunga quanto il messaggio stesso
Oggi sappiamo grazie agli studi di Claude Shannon del 1949 che tale metodo puograve definirsi
ldquoteoricamente sicurordquo
In pratica perograve ciograve comporta la difficoltagrave di costruire lunghe stringhe di lettere assolutamente casuali e di
scambiarsi segretamente e continuamente queste chiavi In sostanza risulta impraticabile per ogni messaggio
scambiato in modo sicuro egrave necessario prima trasmettere in modo sicuro il messaggio contenente la chiave
I metodi usati per buona parte del Novecento sono delle rielaborazioni sempre piugrave complesse delle idee
descritte finora ottenute anche con la costruzione di dispositivi per la meccanizzazione delle procedure di
cifratura e decifratura Un esempio tra i piugrave conosciuti egrave la macchina Enigma usata dai tedeschi durante la
Seconda guerra mondiale inventata dallrsquoingegnere Arthur Scherbius Enigma consisteva di diversi ingegnosi
elementi combinati in un potente e sofisticato dispositivo per la produzione di scritture segrete In particolare ma
macchina aveva tre componenti collegati da fili elettrici una tastiera per immettere le lettere del testo chiaro
unrsquounitagrave scambiatrice che cifra la lettera trasformandola nel corrispondente elemento del crittogramma e un
visore con varie lampadine che accendendosi indicano la lettera da inserire nel crittogramma
Lo sforzo per violare questa cifratura richiese anni di lavoro e fu portato a compimento dalla Scuola
Inglese Governativa di Codici e Cifre di Bletchley Park di cui faceva parte Alan M Turing noto oggi ai piugrave per
i suoi studi sullrsquointelligenza meccanica
La crittografia nellrsquoera dellrsquoinformatica
Nel 1945 fu realizzato ENIAC (Electronic Numerical Integrator And Calculator) unrsquoapparecchiatura
contenente 18 000 valvole elettroniche capace di effettuare 5000 calcoli al secondo considerato il capostipite
dei moderni calcolatori
Dopo il 1945 fu lrsquoinformatica a fare da protagonista nella battaglia tra crittografi e crittoanalisti operando
una decisiva svolta nelle metodologie di entrambi Infatti i metodi precedenti lrsquoera dellrsquoinformatica basavano la
propria sicurezza sullrsquoenorme numero di chiavi disponibili e sulla loro lunghezza ma che viene messa in crisi
dalla crescente potenza di calcolo dei computer Un computer molto potente infatti potrebbe individuare quella
giusta in pochi minuti anche nel caso di un milione di chiavi da esaminare
Tutti i metodi crittografici esaminati finora necessitano di
22
1 un algoritmo generale di cifratura G
2 di una chiave K che deve rimanere segreta
3 di un algoritmo di decifrazione H=Gndash1 (inverso di G)
e agiscono secondo il seguente schema
il messaggio in chiaro M tramite lrsquoalgoritmo G e la chiave K viene cifrato in MC questrsquoultimo tramite
lrsquoalgoritmo H e la stessa chiave K viene decifrato in M (figura 6)
Figura 6 Schema di metodi crittografici
La sicurezza di tali sistemi risiede interamente nella segretezza delle chiavi Ne segue che per distribuire
agli utenti le chiavi egrave necessario ricorrere a canali sicuri
Gli svantaggi che ne derivano sono essenzialmente
1 difficoltagrave nella distribuzione delle chiavi agli utenti
2 mancata autenticazione dei messaggi mittente e destinatario condividono la stessa chiave
pertanto non crsquoegrave modo di impedire che il destinatario si invii messaggi che poi sembrino
provenienti dal mittente Si pensi quali problemi possono provocare simili falsificazioni nella
posta elettronica o nei sistemi bancari elettronici
La svolta avvenne nel 1976 a opera di Diffie e Hellmann che proposero un metodo detto a chiave
pubblica il quale non necessita di uno scambio preventivo delle chiavi segrete Lrsquodea egrave chiarita dal seguente
esempio noto come esempio del doppio lucchetto
Supponiamo di avere due utenti Mitt e Dest e Mitt voglia spedire un messaggio segreto a Dest
1 Mitt mette il messaggio in una scatola che chiude con il proprio lucchetto LMitt (di cui solo lui ha
la chiave) e spedisce la scatola a Dest
2 Dest ricevuta la scatola aggiunge un proprio lucchetto LDest (di cui solo lui ha la chiave) e
rispedisce la scatola a Mitt
3 Mitt ricevuta la scatola con il doppio lucchetto toglie il lucchetto LMitt e rispedisce la scatola a
Dest
4 Dest ricevuta la scatola puograve togliere il lucchetto LDest e leggere il messaggio di Mitt
Il problema della distribuzione delle chiavi sembra risolto percheacute lo schema a doppia chiave non richiede
la condivisione delle stesse Tuttavia la realizzazione pratica di un tale sistema si scontra con un altro problema
quello riguardante lrsquoordine in cui cifrature e decifrature sono eseguite In altre parole in un sistema crittografico
egrave essenziale lrsquoordine con cui avvengono le rispettive cifrature e decifrature in quanto la cifratura eseguita per
23
ultimo andrebbe decifrata per prima (egrave un porsquo come quando la mattina infiliamo prima le calze e poi le scarpe
ma alla sera togliamo prima le scarpe e poi le calze)
Lrsquoesempio del doppio lucchetto in cui ciograve non avviene sembra tuttavia funzionare come idea percheacute ai
fini dellrsquoapertura della scatola non ha importanza lrsquoordine di rimozione dei lucchetti
Anche se il trucco dei due lucchetti non sembra immediatamente applicabile tuttavia fu il giusto punto di
partenza per la realizzazione di un sistema crittografico che aggira lrsquoostacolo della distribuzione delle chiavi
Infatti lrsquoidea egrave che mittente e destinatario generano ciascuno due chiavi distinte una chiave di cifratura E
(da utilizzare nellrsquoalgoritmo di cifratura) e una chiave di decifrazione D (da utilizzare nellrsquoalgoritmo di
decifrazione) Le chiavi sono correlate nel senso che servono per effettuare operazioni inverse (figura 7)
Figura 7 Le chiavi correlate per effettuare operazioni invese
Il trucco consiste nellrsquoimpossibilitagrave di poter derivare la chiave D dalla chiave E mediante algoritmi di
calcolo (figura 8)
Ogni utente puograve rendere pubblica la propria chiave di cifratura E indicandola magari sullrsquoelenco
telefonico senza compromettere la propria chiave di decifrazione che rimane segreta di pubblico dominio sono
anche gli algoritmi di cifratura G e decifrazione H
Figura 8 Inapplicabilitagrave del metodo del doppio lucchetto
Pertanto lrsquoesempio del doppio lucchetto viene cosigrave interpretato
1 il destinatario pubblica la chiave di cifratura E e mantiene segreta la chiave di decifrazione D
2 il mittente applica GE al messaggio M trasformandolo nel messaggio cifrato MC cioegrave
GE(M)=MC che spedisce al destinatario
3 il destinatario applica HD al messaggio cifrato MC riottenendo M cioegrave HD(MC)=M
24
La sicurezza di un tale sistema si fonda sulla difficoltagrave di poter
1 ritrovare il testo cifrato provando ad applicare lrsquoalgoritmo GE che egrave pubblico ad ogni possibile
testo in chiaro il cui numero pur essendo enorme egrave comunque finito
2 ricavare lrsquoalgoritmo HD da GE
in quanto entrambe le tecniche sono computazionalmente inattuabili nel senso che richiedono un tempo
di calcolo di lunghezza al di fuori di ogni possibile considerazione anche per i piugrave potenti calcolatori
Per descrivere tali algoritmi sono necessari alcuni concetti matematici che andiamo a illustrare
Figura 9 Schema di cifrario a chiave pubblica
Lrsquoaritmetica modulare
Lrsquoaritmetica modulare la cui introduzione egrave dovuta a Gauss costituisce un sistema di calcolo con
importanti applicazioni nei test di primalitagrave e nei metodi che stanno alla base della sicurezza delle comunicazioni
elettroniche Con essa infatti si hanno i seguenti vantaggi 1) si riduce lo spazio dei numeri su cui gli algoritmi
sono chiamati ad operare e quindi si aumenta la velocitagrave di calcolo 2) si riesce a rendere difficili alcuni problemi
computazionali che sono semplici (o addirittura banali) nellrsquoalgebra ordinaria al fine di aumentare la sicurezza
nelle comunicazioni Lrsquoidea egrave semplice ma potente Forse non lo sappiamo ma usiamo spesso laritmetica
modulare Potremmo chiamarla aritmetica dellorologio
Infatti pensiamo ad un normale orologio con 24 ore Se sono le 15 ed un amico ci comunica che saragrave a
casa nostra tra 5 ore sappiamo che egli verragrave alle 20 infatti 15+5=20 Ma se sono le 23 e dobbiamo partire fra 7
ore certamente non diciamo che la partenza saragrave alle 30 anche se 23+7=30 Sappiamo che dovremo partire alle
6 Allo stesso modo se sono le 20 che ora saragrave tra 14 ore Non diremo 34 anche se 20+14=34 ma diremo che
sono le 10 Come si spiega tutto ciograve
Immaginiamo di segnare sul quadrante dellrsquoorologio 24 ore Se la lancetta segna le 23 aggiungere 7 ore
significa spostarsi di 7 posti fino ad arrivare alle 6 Si giunge allo stesso risultato calcolando 23+7=30 ed
osservando che 30=1sdot24+6 o che egrave lo stesso 3024 =1 con resto 6 che significa che 30 lo si ottiene facendo fare
alla lancetta un giro completo piugrave 6
25
Se la lancetta segna le 20 e aggiungiamo 14 ore lrsquoorologio segneragrave le 10 percheacute 20+14=34 ma 3424= 1
con resto 10 per cui 34 lo si ottiene percorrendo un giro completo piugrave 10
Proviamo con il normale orologio a 12 ore I numeri che vediamo sul quadrante sono 0 1 2 3 4 5 6 7
8 9 10 11 Il numero 12 non compare percheacute a partire da 0 trascorse 12 ore torniamo di nuovo a 0 Questa
volta per fare un giro completo occorrono 12 ore Pertanto se sono le 7 che ore saranno tra 24 ore Saranno
ancora le 7 percheacute 7+24=31 ma 3112 = 2 con resto 7 cioegrave si compiono 2 giri completi piugrave 7 se sono le 8 tra 6
ore saranno le 2 percheacute 8+6=14 ma 1412=1 con resto 2 Dagli esempi dovrebbe risultare chiaro allora che ciograve
che contano non sono i risultati delle somme ma i loro resti nelle divisioni per il numero delle ore segnate sul
quadrante dellrsquoorologio
La stessa cosa succede con i giorni della settimana se pensiamo a un orologio con 7 ore sul quadrante
Facciamo corrispondere ai giorni della settimana i numeri da 0 a 6 (figura 10)
domenica Lunedigrave Martedigrave Mercoledigrave Giovedigrave Venerdigrave Sabato darr darr darr darr darr darr darr 0 1 2 3 4 5 6
Figura 10 Corrispondenza dei giorni della settimana con i numeri da 0 a 6
Se per esempio oggi egrave venerdigrave che giorno saragrave tra 12 giorni
Dovremo calcolare 5+12=17 ma i giorni si ripetono ogni 7 pertanto osservando che 177 =2 con resto 3
possiamo concludere che a partire da 5 e aggiungendo 12 si compiono 2 giri completi piugrave 3 ed essendo 3 il
numero corrispondente a mercoledigrave concludiamo che saragrave mercoledigrave Facciamo un altro esempio se oggi egrave
lunedigrave (1) che giorno saragrave tra 20 giorni Calcoliamo 1+20=21 217= 3 con resto 0 quindi saragrave domenica
Il numero n delle ore sullrsquoorologio costituisce quello che si chiama il modulo e individua lrsquoaritmetica di
modulo n in cui lrsquoinsieme dei numeri con i quali si opera indicato con Zn egrave lrsquoinsieme dei possibili resti della
divisione per n e cioegrave Zn=0 1 2 3 hellip nndash1e le operazioni si eseguono con le regole illustrate negli esempi
precedenti
Lrsquoesempio dellrsquoorologio a 24 ore costituisce la cosiddetta aritmetica finita di modulo 24 in essa Z24=0
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 essendo questi ultimi i possibili resti
della divisione per 24 Lrsquoorologio a 12 ore costituisce lrsquoaritmetica finita di modulo 12 in essa Z12=0 1 2 3 4
5 6 7 8 9 10 11 essendo questi ultimi i possibili resti della divisione per 12 Lrsquoesempio dei giorni della
settimana egrave lrsquoaritmetica finita di modulo 7 in cui Z7=0 1 2 3 4 5 6 essendo questi ultimi i possibili resti
della divisione per 7 Riassumiamo costruendo unrsquoaritmetica finita di modulo 4 I possibili resti della divisione
per 4 sono 0 1 2 3 quindi Z4=0123 Lrsquoaddizione e la moltiplicazione in Z4 si esegue come negli esempi
della tabella 6
26
operazioni indicate
Risultato nellrsquoaritmetica ordinaria
Risultato nellrsquoaritmetica modulo 4
2+2 4 0 percheacute 44=1 con resto 0
3+2 5 1 percheacute 54=1 con resto 1
2+1 3 3 percheacute 34=0 con resto 3
3sdot3 9 1 percheacute 94=2 con resto 1
3sdot2 6 2 percheacute 64=1 con resto 2
2sdot2 4 0 percheacute 44=1 con resto 0
Tabella 6 Addizione e moltiplicazione nellrsquoaritmetica finita di modulo 4
Si possono costruire le tavole dellrsquoaddizione e della moltiplicazione dellrsquoaritmetica modulo 4 che costituiscono
le tabelline di questa aritmetica sulla base delle quali si esegue qualsiasi addizione e moltiplicazione modulo 4
Nella tabella 7 sono spiegate le tabelline dellrsquoaritmetica in modulo 4
Tabella 7 Tavole dellrsquoaddizione e della moltiplicazione dellrsquoaritmetica modulo 4
Infine per indicare che due numeri a e b divisi per n danno lo stesso resto si usano le seguenti notazioni
tutte equivalenti tra loro
a=b mod n andashb=0 mod 4 a equiv b (mod n) che si legge a egrave congruo b modulo 4
Esempio
26=12 mod 7 egrave la stessa cosa di
26ndash12=0 mod 7 che egrave la stessa cosa di
26 equiv 12 (mod 7) e tutte e tre stanno a indicare che 26 e 12 divisi per 7 danno lo stesso resto che egrave 5 e
pertanto sono tutti equivalenti a 5
Facciamo vedere come sfruttare lrsquoaritmetica modulare per calcolare potenze come 2341 (figura 11) Il
metodo si basa sulla proprietagrave che il resto del quadrato di un numero a per un dato modulo n egrave uguale al
quadrato del resto dello stesso numero a per lo stesso modulo n cioegrave a2 mod n =(a mod n)2
+ 0 1 2 3
0 0 1 2 3
1 1 2 3 0
2 2 3 0 1
3 3 0 1 2
x 0 1 2 3
0 0 0 0 0
1 0 1 2 3
2 0 2 0 2
3 0 3 2 1
27
Figura 11 Il metodo per calcolare 2341
La funzione di Eulero
Per ogni intero ngt1 si definisce la funzione di Eulero = numero di interi minori di n e primi con esso Ad
esempio
bull ( ) 45 =φ percheacute gli interi minori di 5 sono 1 2 3 4 ed essi sono tutti primi con n
bull ( ) 26 =φ percheacute gli interi minori di 6 sono 1 2 3 4 5 e fra essi solo 1 e 5 sono primi con 6
bull ( ) 67 =φ percheacute gli interi minori di 7 sono 1 2 3 4 5 6 ed essi sono tutti primi con 7
bull ( ) 412 =φ percheacute gli interi minori di 12 sono 1 2 3 4 5 6 7 8 9 10 11 e fra essi solo 1 5 7
11 sono primi con 12
Se si conosce la scomposizione in fattori del numero n il seguente teorema ci fornisce un metodo per
calcolare Infatti esso afferma che per ogni ngt1 non primo ( )
minussdotsdot
minussdot
minussdotnppp
n=nφ 11
11
11
21
dove
p1 p2 hellip pn sono i fattori primi di n presi senza molteplicitagrave
22 mod 341=4
24=(22)2=(22 mod 341)2=42=16mod341=16
28=(24)2=(16)2=256mod341=256
216= (28)2=(256)2=65536mod341=64
232=(216)2=(64)2=4096mod341=4
264=(232)2=42=16mod341=16
2128=(264)2=(16)2=256mod341=256
2256=(2128)2=(256)2=65536mod341=64
2341=2(256+64+16+4+1) 2256 264 216 24 21 x x x x
64 1
1024 mod 341
= 1 x 64
64 x 16
1024 mod 341
1 x 2 =
=
x
28
Ad esempio
essendo 12 = 3sdot2sdot2 ( ) 42
1
3
212
2
11
3
111212 ===φ sdotsdot
minussdot
minussdot
essendo 6=2sdot3 ( ) 22
1
3
26
2
11
3
1166 ===φ sdotsdot
minussdot
minussdot
se n=psdotq ( ) ( ) ( )11111
11
1 minussdotminusminussdotminussdot
minussdot
minussdot qp=q
q
p
pn=
qpn=nφ
Ovviamente se n egrave un numero primo = nndash1
Vale inoltre il seguente teorema di Eulero per ngt1 e per ogni altn e primo con n si ha
Ad esempio per n=6 ( ) 26 =φ infatti i primi con 6 sono 1 e 5 per il teorema di Eulero si ha
2mod1255
2mod1112
2
equiv=
equiv=
per n=5 ( ) 45 =φ e i primi con 5 sono 1 2 3 4 e per il teorema di Eulero si ha
5mod12564
5mod1813
5mod1162
5mod111
4
4
4
4
equiv=
equiv=
equiv=
equiv=
Si puograve notare come nel caso in cui n egrave un numero primo si ritrova il piccolo teorema di Fermat
Infatti per n primo ( )nφ = nndash1 e per il teorema di Eulero per ogni altn e primo con n Ricordiamo infatti
che il piccolo teorema di Fermat afferma che se n egrave un numero primo e a un intero minore di n allora egrave
divisibile per n che con il linguaggio dellrsquoaritmetica modulare diventa che puograve essere riscritto e se a egrave primo
con n allora egrave che egrave equivalente a
Infine si prova che per ogni altn e primo con esso esiste lrsquoinverso di a e esso egrave dato da ( ) 1minusnaφ Infatti
( ) ( ) na=aa nφnφ1mod1 equivsdot minus per il teorema di Eulero Si ricorda che lrsquoinverso di un numero a egrave quel numero che
moltiplicato per a dagrave 1 indicato convenzionalmente con andash1
Ad esempio per n=5 i primi con 5 sono 1 2 3 4 e per ognuno di questi esiste lrsquoinverso infatti
bull lrsquoinverso di 1 egrave ( ) 1mod51111 31415 equivminusminus ===φ
e infatti
bull lrsquoinverso di 2 egrave ( ) 3mod58222 31415 equivminusminus ===φ
e infatti
bull lrsquoinverso di 3 egrave ( ) 2mod527333 31415 equivminusminus ===φ
e infatti
bull lrsquoinverso di 4 egrave ( ) 4mod564444 31415 equivminusminus ===φ
Le funzioni unidirezionali
Chiamiamo funzione da un insieme A a un insieme B qualunque procedura che associa a ogni elemento
di un insieme A (detto dominio) uno e un solo elemento di un insieme B (detto condominio) In simboli f
A rarr B Se poi indichiamo con x il generico elemento dellrsquoinsieme A e con y il generico elemento dellrsquoinsieme B
la f indica la procedura che ad ogni xisinA associa un yisinB e cioegrave y=f(x) ad esempio ldquofare il doppio dihelliprdquo
29
prendendo come dominio e codominio lrsquoinsieme dei numeri interi egrave in questo senso una funzione percheacute dato
ad esempio il numero 3 lo trasforma nel numero 6 come 5 lo trasforma in 10 e cosigrave via
Molte funzioni matematiche sono cosiddette bidirezionali nel senso che egrave facile dato un determinato x
generare il corrispondente y ma egrave altrettanto facile invertire la funzione cioegrave ritrovare lrsquoelemento x originario a
partire dal suo corrispondente
Facciamo qualche esempio
bull funzione xrarr fare il doppiorarr 2sdotx= y 3rarr fare il doppiorarr 2sdot3 = 6
funzione inversa y=2sdotx rarr fare la metagraverarr x 6=2sdot3 rarr fare la metagraverarr 3
bull funzione xrarr fare il quadruplorarr 4sdotxrarr aggiungere 1rarr sdoty=4sdotx +1
5rarr fare il quadruplorarr 4sdot5rarr aggiungere 1rarr 4sdot5 +1=21
funzione inversa y=4sdotx +1rarr sottrarre 1rarr 4sdot xrarr dividere per 4rarr x
21=4sdot5 +1rarr sottrarre 1rarr 4sdot 5rarr dividere per 4rarr 5
Le funzioni unidirezionali sono invece quelle funzioni facilmente calcolabili ma che non si possono invertire
Le funzioni cosiddette pseudounidirezionali (dette anche funzioni trappola a molla segreta) sono invece
quelle funzioni facilmente calcolabili ma che non altrettanto facilmente si possono invertire a meno che non si
conoscano alcune informazioni (la molla segreta) utilizzate nella loro costruzione
Lrsquoaritmetica modulare gioca un ruolo determinante in questo caso infatti permette di trasformare
funzioni bidirezionali in funzioni pseudounidirezionali
Facciamo lrsquoesempio della funzione ldquofare il quadruplordquo in simboli f(x)=4sdotx Egrave facilmente calcolabile
percheacute dato x per ottenere f(x) basta moltiplicare per 4 ma egrave altrettanto facile calcolare la sua inversa percheacute
dato f(x) basta dividere per 4 per ottenere lrsquooriginario x Ma anche se non avessimo la procedura inversa di
dividere per 4 sarebbe facile ritrovare lrsquoelemento originario anche procedendo per tentativi ed eliminazione
infatti se per esempio f(x) =20 si puograve tentare x=3 in tal caso f(x)=12 troppo piccolo quindi x deve essere
maggiore di 3 Si puograve allora pensare a 6 ma f(x)=24 troppo grande quindi x deve essere minore di 6 e cosigrave via
Vediamo cosa accade se calcoliamo utilizzando una aritmetica modulare Per esempio consideriamo la
stessa funzione f(x)=4sdotx in una aritmetica modulo 7 Possiamo osservare che la funzione non si comporta piugrave in
modo regolare come prima per accorgersene basta costruire una tabella (tabella 8)
x 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
f(x)=4sdotx 4 8 12 16 20 24 28 32 36 40 44 48 52 56 60
f(x)=4sdotmod 7 4 1 5 2 6 3 0 4 1 5 2 6 3 0 4
Tabella 8 La funzione f(x)=4sdotx in una aritmetica modulo 7
Anche in questa semplice situazione egrave chiaro che egrave piugrave complicato invertire la funzione e pertanto i valori
di x sono molto meglio protetti Si puograve fare anche lrsquoesempio della funzione esponenziale f(x)=3 x (tabella 9)
Tabella 9 La funzione f(x)=3 x in aritmetica modulo 11
x 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
f(x)=x3 1 8 27 64 125 216 343 512 729 1000 hellip hellip hellip hellip hellip
f(x)=x3 mod 11 1 8 5 9 4 7 2 6 3 10 hellip hellip hellip hellip hellip
30
Il cifrario a chiave pubblica RSA
Uno dei piugrave noti sistemi crittografici a chiave pubblica che sfrutta le idee precedentemente descritte egrave il
metodo RSA proposto dai matematici R L Rivest A Shamir e L Adlemann nel 1978 Esso risolve il problema
dello scambio delle chiavi in quanto queste ultime sono conosciute solamente ai rispettivi proprietari che non le
hanno preventivamente concordate e scambiate
Illustriamo schematicamente come i due utenti Mitt e Dest possano scambiarsi un messaggio segreto
utilizzando il metodo RSA Entrambi Mitt e Dest indipendentemente lrsquouno dallrsquoaltro poi
1 scelgono in modo casuale due numeri primi p q grandi (di 200-300 cifre in base 10)
2 calcolano N = psdotq e Φ(N) = (pndash1)sdot(qndash1)
3 scelgono un intero eltΦ(N) e primo con Φ(N) tale numero e saragrave la chiave pubblica
4 calcolano il numero d inverso di e mod Φ(N) tale cioegrave che esdotdequiv 1mod Φ(N) tale numero d saragrave
la chiave privata
5 rendono pubblici i numeri N ed e
Mitt per spedire un messaggio a Dest compie le seguenti operazioni
1 codifica il messaggio in un modo standard usando i numeri lt N
2 trasforma ogni numero M di tale codifica in Me (mod N) e lo spedisce a Dest
per decodificare il messaggio ricevuto Me Dest calcola (Me)d =Mesdotd =Mndash1=M (modN) riottenendo il messaggio
originale
Figura 12 Schema di cifrario con metodo RSA
31
Figura 13 Esempio di applicazione di metodi RSA
In che cosa consiste la sicurezza del metodo Da quanto esposto si osserva che per decodificare il
messaggio bisogna
1 conoscere d (chiave segreta)
2 essendo d lrsquoinverso di e nellrsquoaritmetica mod Φ(N) essendo e noto egrave necessario conoscere Φ(N)
3 ma noto N per calcolare Φ(N) egrave necessario conoscere i fattori primi di N cioegrave egrave necessario fattorizzare
N che egrave un problema computazionalmente difficile per quanto osservato in precedenza
Anche se non egrave stato dimostrato che non si possa rompere il codice in altro modo e cioegrave senza conoscere Φ(N) e i
fattori di N a tuttrsquooggi si puograve affermare che la sicurezza del metodo dipende essenzialmente dai seguenti fatti
Per codificare il messaggio bisogna saper costruire dei numeri primi grandi e tale operazione egrave
computazionalmente veloce si puograve infatti dimostrare che la complessitagrave computazionale di opportuni test di
primalitagrave per stabilire se un numero n egrave primo utilizzando il linguaggio di quel ramo della matematica nota
come teoria della complessitagrave egrave ldquoquasi-polinomialerdquo
Per violare il sistema bisogna saper fattorizzare interi grandi ottenuti come prodotto di due primi tale
problema egrave computazionalmente ldquolentordquo cioegrave con il linguaggio della teoria della complessitagrave appartiene alla
classe dei problemi non polinomiali Tale marcata differenza tra la velocitagrave di esecuzione delle operazioni di
costruzione di numeri primi grandi e di fattorizzazione di interi grandi garantisce la sicurezza del metodo
almeno per un tempo sufficientemente lungo Ad esempio con la tecnologia attuale lrsquooperazione di
fattorizzazione di un intero di 140 cifre in base 10 prodotto di due numeri primi casuali calcolati in pochi
secondi su un computer disponibile in commercio richiede utilizzando vari supercomputers operanti
parallelamente circa un mese
La RSA Security Inc gestisce una sfida a livello mondiale ove vengono premiati coloro che fattorizzano
gli interi proposti da loro in una particolare lista Ad esempio il 3 dicembre del 2003 egrave stato fattorizzato
32
rsa576 =
188198812920607963838697239461650439807163563379417382700763356422988859715234
665485319060606504743045317388011303396716199692321205734031879550656996221305
168759307650257059
un numero di 174 cifre decimali prodotto di due primi di 87 cifre
p =
398075086424064937397125500550386491199064362342526708406385189575946388957261
768583317
q =
472772146107435302536223071973048224632914695302097116459852171130520711256363
590397527
Le chiavi attualmente utilizzate dallRSA sono a 309 cifre decimali
La firma digitale
Consideriamo al solito un mittente che deve inviare a un destinatario un messaggio m La codifica di m
con il metodo descritto assicura lrsquoautenticitagrave del messaggio ma non fornisce alcuna sicurezza sulla sua
paternitagrave Infatti il messaggio m pur essendo autentico potrebbe essere stato inviato da qualcuno che si spaccia
per il mittente Questa egrave unimportantissima questione particolarmente nella trasmissione di messaggi che oltre
a dover essere segreti devono garantire la loro origine
Si dovrebbe quindi disporre di un analogo della firma manuale detta appunto firma digitale La firma
digitale deve allora essere progettata in modo da possedere le stesse caratteristiche di una firma manuale e cioegrave
lrsquoautenticitagrave la non falsificabilitagrave e lrsquoimpossibiltagrave di essere riutilizzata Facciamo vedere come lo stesso metodo
RSA puograve essere utilizzato per progettare una firma digitale
La situazione egrave la seguente il mittente (di seguito indicato con Mitt) invia un messaggio m con la firma
F al destinatario (di seguito indicato con Dest) Siano a b rispettivamente le chiavi pubblica e segreta di MITT
siano e d rispettivamente le chiavi pubblica e segreta di DEST
La procedura per apporre la firma digitale F al messaggio m egrave illustrata nei seguenti passi riassunti nel
grafico della figura 14
1 Mitt cripta la firma F (cioegrave i suoi dati identificativi) usando la propria chiave segreta (b)
ottenendo Fb
2 il messaggio m con la firma F criptata viene ulteriormente criptato con la chiave pubblica di
Dest (e) ottenendo (m Fb)e
3 Dest decodifica il messaggio con la sua chiave segreta (d) ottenendo
((m Fb)e)d = (me F(be)) d =m(e d)F(be d) = mFb
in cui la firma di Mitt egrave ancora criptata
4 Dest decodifica la firma di Mitt con la chiave pubblica di Mitt (a) ottenendo
(Fb)a = F(ba) = F
33
Grafico firma digitale
Mitt
Dest
pubblica
Fb
e dpubblica
a
((Fb)e)d=(Fb)ed=(Fb)1=Fb
(Fb)a=(F)ba=(F)1=F
ab de
(Fb)e
codifica
codificadecodifica
decodifica
1
2
3
4
5
6
7
8
segreta
b
segreta
Figura 14 Grafico firma digitale
Bibliografia
Thomas Beth Comunicazioni e sicurezza su Internet in ldquoLe Scienzerdquo n 330 febbraio 1996
Brian Butterworth Intelligenza matematica Vincere la paura dei numeri scoprendo le doti innate della mente
Rizzoli Milano 1999
John H Conway Richard K Guy Il libro dei numeri Hoepli Milano 2003
Richard Courant Herbert Robbins Che cosrsquoegrave la matematica Boringhieri Torino 1971
Philip J Davis Il mondo dei grandi numeri Zanichelli Bologna 1973
Keith Devlin Dove va la matematica Bollati Boringhieri Torino 1994
Jean Dieudonneacute Lrsquoarte dei numeri matematica e matematici oggi Mondadori Milano 1989
Martin E Ellmann La crittografia a chiave pubblica in La matematica della complessitagrave Quaderni n 67
settembre 1992 Le Scienze
Paolo Ferragina Fabrizio Luccio Crittografia principi ndash Algoritmi ndash Applicazioni Bollati Boringhieri Torino
2001
Godfrey H Hardy Apologia di un matematico Garzanti Milano 1989
Morris Kline Storia del pensiero matematico Einaudi Milano 1991
Serge Lang La bellezza della matematica Bollati Boringhieri Torino 1991
Mauro Leoncini Modelli di calcolo e complessitagrave computazionale in La matematica computazionale Quaderni
n 84 giugno 1995 Le Scienze
Fabrizio Luccio e Linda Pagli P = NP in La matematica della complessitagrave Quaderni n 67 settembre 1992
Le Scienze
Piergiorgio Odifreddi La Matematica del Novecento dagli insiemi alla complessitagrave Einaudi Torino 2000
34
ldquoPeriodico di matematicherdquo Serie VII Volume 7 Numero 2-3 luglio-dicembre 2000 Mathesis
ldquoPeriodico di matematicherdquo Serie VIII Volume 1 Numero 1 gennaio-marzo 2001 Mathesis
Carl Pomerance Alla ricerca dei numeri primi in ldquoLe Scienzerdquo n 174 febbraio 1983
Simon Singh Codici e segreti la storia affascinante dei messaggi cifrati dallrsquoantico Egitto a Internet Rizzoli
Milano 1999
Marcus du Sautoy Lrsquoenigma dei numeri primi lrsquoipotesi di Riemann lrsquoultimo grande mistero della matematica
Rizzoli Milano 2004
Gary Stix I segreti meglio custoditi la crittografia quantistica egrave passata dalla teoria al laboratorio per
approdare finalmente alle applicazioni in ldquoLe Scienzerdquo n 438 febbraio 2005
21
Oggi sono noti tutti i punti deboli del sistema di Vigenegravere ed esistono vari procedimenti per decifrare i
crittogrammi generati da tale sistema che sfruttano ad esempio la modularitagrave nel ripetere la chiave o
osservazioni sulle ripetizioni del testo cifrato Ci sono testimonianze storiche che uno di tali procedimenti sia
stato ideato da Sir Charles Babbage famoso per aver progettato e mai realizzato la macchina alle differenze
progenitrice degli odierni calcolatori La prima descrizione resa pubblica del metodo perograve egrave del 1863 portata a
compimento dallrsquoufficiale prussiano F W Kasiski
Unrsquoosservazione decisiva fu che le insidie del metodo di Babbage potevano essere evitate utilizzando
nella cifratura di Vigenegravere una chiave molto lunga e fatta da lettere che si succedono in modo casuale se un
messaggio cifrato non presenta delle ripetizioni se non egrave possibile tentare di indovinare la chiave cadono tutti
gli appigli necessari per effettuare con successo la crittoanalisi
Tale osservazione fu ulteriormente sviluppata da G S Vernam che nel 1926 introdusse lrsquoidea di usare
una chiave casuale lunga quanto il messaggio stesso
Oggi sappiamo grazie agli studi di Claude Shannon del 1949 che tale metodo puograve definirsi
ldquoteoricamente sicurordquo
In pratica perograve ciograve comporta la difficoltagrave di costruire lunghe stringhe di lettere assolutamente casuali e di
scambiarsi segretamente e continuamente queste chiavi In sostanza risulta impraticabile per ogni messaggio
scambiato in modo sicuro egrave necessario prima trasmettere in modo sicuro il messaggio contenente la chiave
I metodi usati per buona parte del Novecento sono delle rielaborazioni sempre piugrave complesse delle idee
descritte finora ottenute anche con la costruzione di dispositivi per la meccanizzazione delle procedure di
cifratura e decifratura Un esempio tra i piugrave conosciuti egrave la macchina Enigma usata dai tedeschi durante la
Seconda guerra mondiale inventata dallrsquoingegnere Arthur Scherbius Enigma consisteva di diversi ingegnosi
elementi combinati in un potente e sofisticato dispositivo per la produzione di scritture segrete In particolare ma
macchina aveva tre componenti collegati da fili elettrici una tastiera per immettere le lettere del testo chiaro
unrsquounitagrave scambiatrice che cifra la lettera trasformandola nel corrispondente elemento del crittogramma e un
visore con varie lampadine che accendendosi indicano la lettera da inserire nel crittogramma
Lo sforzo per violare questa cifratura richiese anni di lavoro e fu portato a compimento dalla Scuola
Inglese Governativa di Codici e Cifre di Bletchley Park di cui faceva parte Alan M Turing noto oggi ai piugrave per
i suoi studi sullrsquointelligenza meccanica
La crittografia nellrsquoera dellrsquoinformatica
Nel 1945 fu realizzato ENIAC (Electronic Numerical Integrator And Calculator) unrsquoapparecchiatura
contenente 18 000 valvole elettroniche capace di effettuare 5000 calcoli al secondo considerato il capostipite
dei moderni calcolatori
Dopo il 1945 fu lrsquoinformatica a fare da protagonista nella battaglia tra crittografi e crittoanalisti operando
una decisiva svolta nelle metodologie di entrambi Infatti i metodi precedenti lrsquoera dellrsquoinformatica basavano la
propria sicurezza sullrsquoenorme numero di chiavi disponibili e sulla loro lunghezza ma che viene messa in crisi
dalla crescente potenza di calcolo dei computer Un computer molto potente infatti potrebbe individuare quella
giusta in pochi minuti anche nel caso di un milione di chiavi da esaminare
Tutti i metodi crittografici esaminati finora necessitano di
22
1 un algoritmo generale di cifratura G
2 di una chiave K che deve rimanere segreta
3 di un algoritmo di decifrazione H=Gndash1 (inverso di G)
e agiscono secondo il seguente schema
il messaggio in chiaro M tramite lrsquoalgoritmo G e la chiave K viene cifrato in MC questrsquoultimo tramite
lrsquoalgoritmo H e la stessa chiave K viene decifrato in M (figura 6)
Figura 6 Schema di metodi crittografici
La sicurezza di tali sistemi risiede interamente nella segretezza delle chiavi Ne segue che per distribuire
agli utenti le chiavi egrave necessario ricorrere a canali sicuri
Gli svantaggi che ne derivano sono essenzialmente
1 difficoltagrave nella distribuzione delle chiavi agli utenti
2 mancata autenticazione dei messaggi mittente e destinatario condividono la stessa chiave
pertanto non crsquoegrave modo di impedire che il destinatario si invii messaggi che poi sembrino
provenienti dal mittente Si pensi quali problemi possono provocare simili falsificazioni nella
posta elettronica o nei sistemi bancari elettronici
La svolta avvenne nel 1976 a opera di Diffie e Hellmann che proposero un metodo detto a chiave
pubblica il quale non necessita di uno scambio preventivo delle chiavi segrete Lrsquodea egrave chiarita dal seguente
esempio noto come esempio del doppio lucchetto
Supponiamo di avere due utenti Mitt e Dest e Mitt voglia spedire un messaggio segreto a Dest
1 Mitt mette il messaggio in una scatola che chiude con il proprio lucchetto LMitt (di cui solo lui ha
la chiave) e spedisce la scatola a Dest
2 Dest ricevuta la scatola aggiunge un proprio lucchetto LDest (di cui solo lui ha la chiave) e
rispedisce la scatola a Mitt
3 Mitt ricevuta la scatola con il doppio lucchetto toglie il lucchetto LMitt e rispedisce la scatola a
Dest
4 Dest ricevuta la scatola puograve togliere il lucchetto LDest e leggere il messaggio di Mitt
Il problema della distribuzione delle chiavi sembra risolto percheacute lo schema a doppia chiave non richiede
la condivisione delle stesse Tuttavia la realizzazione pratica di un tale sistema si scontra con un altro problema
quello riguardante lrsquoordine in cui cifrature e decifrature sono eseguite In altre parole in un sistema crittografico
egrave essenziale lrsquoordine con cui avvengono le rispettive cifrature e decifrature in quanto la cifratura eseguita per
23
ultimo andrebbe decifrata per prima (egrave un porsquo come quando la mattina infiliamo prima le calze e poi le scarpe
ma alla sera togliamo prima le scarpe e poi le calze)
Lrsquoesempio del doppio lucchetto in cui ciograve non avviene sembra tuttavia funzionare come idea percheacute ai
fini dellrsquoapertura della scatola non ha importanza lrsquoordine di rimozione dei lucchetti
Anche se il trucco dei due lucchetti non sembra immediatamente applicabile tuttavia fu il giusto punto di
partenza per la realizzazione di un sistema crittografico che aggira lrsquoostacolo della distribuzione delle chiavi
Infatti lrsquoidea egrave che mittente e destinatario generano ciascuno due chiavi distinte una chiave di cifratura E
(da utilizzare nellrsquoalgoritmo di cifratura) e una chiave di decifrazione D (da utilizzare nellrsquoalgoritmo di
decifrazione) Le chiavi sono correlate nel senso che servono per effettuare operazioni inverse (figura 7)
Figura 7 Le chiavi correlate per effettuare operazioni invese
Il trucco consiste nellrsquoimpossibilitagrave di poter derivare la chiave D dalla chiave E mediante algoritmi di
calcolo (figura 8)
Ogni utente puograve rendere pubblica la propria chiave di cifratura E indicandola magari sullrsquoelenco
telefonico senza compromettere la propria chiave di decifrazione che rimane segreta di pubblico dominio sono
anche gli algoritmi di cifratura G e decifrazione H
Figura 8 Inapplicabilitagrave del metodo del doppio lucchetto
Pertanto lrsquoesempio del doppio lucchetto viene cosigrave interpretato
1 il destinatario pubblica la chiave di cifratura E e mantiene segreta la chiave di decifrazione D
2 il mittente applica GE al messaggio M trasformandolo nel messaggio cifrato MC cioegrave
GE(M)=MC che spedisce al destinatario
3 il destinatario applica HD al messaggio cifrato MC riottenendo M cioegrave HD(MC)=M
24
La sicurezza di un tale sistema si fonda sulla difficoltagrave di poter
1 ritrovare il testo cifrato provando ad applicare lrsquoalgoritmo GE che egrave pubblico ad ogni possibile
testo in chiaro il cui numero pur essendo enorme egrave comunque finito
2 ricavare lrsquoalgoritmo HD da GE
in quanto entrambe le tecniche sono computazionalmente inattuabili nel senso che richiedono un tempo
di calcolo di lunghezza al di fuori di ogni possibile considerazione anche per i piugrave potenti calcolatori
Per descrivere tali algoritmi sono necessari alcuni concetti matematici che andiamo a illustrare
Figura 9 Schema di cifrario a chiave pubblica
Lrsquoaritmetica modulare
Lrsquoaritmetica modulare la cui introduzione egrave dovuta a Gauss costituisce un sistema di calcolo con
importanti applicazioni nei test di primalitagrave e nei metodi che stanno alla base della sicurezza delle comunicazioni
elettroniche Con essa infatti si hanno i seguenti vantaggi 1) si riduce lo spazio dei numeri su cui gli algoritmi
sono chiamati ad operare e quindi si aumenta la velocitagrave di calcolo 2) si riesce a rendere difficili alcuni problemi
computazionali che sono semplici (o addirittura banali) nellrsquoalgebra ordinaria al fine di aumentare la sicurezza
nelle comunicazioni Lrsquoidea egrave semplice ma potente Forse non lo sappiamo ma usiamo spesso laritmetica
modulare Potremmo chiamarla aritmetica dellorologio
Infatti pensiamo ad un normale orologio con 24 ore Se sono le 15 ed un amico ci comunica che saragrave a
casa nostra tra 5 ore sappiamo che egli verragrave alle 20 infatti 15+5=20 Ma se sono le 23 e dobbiamo partire fra 7
ore certamente non diciamo che la partenza saragrave alle 30 anche se 23+7=30 Sappiamo che dovremo partire alle
6 Allo stesso modo se sono le 20 che ora saragrave tra 14 ore Non diremo 34 anche se 20+14=34 ma diremo che
sono le 10 Come si spiega tutto ciograve
Immaginiamo di segnare sul quadrante dellrsquoorologio 24 ore Se la lancetta segna le 23 aggiungere 7 ore
significa spostarsi di 7 posti fino ad arrivare alle 6 Si giunge allo stesso risultato calcolando 23+7=30 ed
osservando che 30=1sdot24+6 o che egrave lo stesso 3024 =1 con resto 6 che significa che 30 lo si ottiene facendo fare
alla lancetta un giro completo piugrave 6
25
Se la lancetta segna le 20 e aggiungiamo 14 ore lrsquoorologio segneragrave le 10 percheacute 20+14=34 ma 3424= 1
con resto 10 per cui 34 lo si ottiene percorrendo un giro completo piugrave 10
Proviamo con il normale orologio a 12 ore I numeri che vediamo sul quadrante sono 0 1 2 3 4 5 6 7
8 9 10 11 Il numero 12 non compare percheacute a partire da 0 trascorse 12 ore torniamo di nuovo a 0 Questa
volta per fare un giro completo occorrono 12 ore Pertanto se sono le 7 che ore saranno tra 24 ore Saranno
ancora le 7 percheacute 7+24=31 ma 3112 = 2 con resto 7 cioegrave si compiono 2 giri completi piugrave 7 se sono le 8 tra 6
ore saranno le 2 percheacute 8+6=14 ma 1412=1 con resto 2 Dagli esempi dovrebbe risultare chiaro allora che ciograve
che contano non sono i risultati delle somme ma i loro resti nelle divisioni per il numero delle ore segnate sul
quadrante dellrsquoorologio
La stessa cosa succede con i giorni della settimana se pensiamo a un orologio con 7 ore sul quadrante
Facciamo corrispondere ai giorni della settimana i numeri da 0 a 6 (figura 10)
domenica Lunedigrave Martedigrave Mercoledigrave Giovedigrave Venerdigrave Sabato darr darr darr darr darr darr darr 0 1 2 3 4 5 6
Figura 10 Corrispondenza dei giorni della settimana con i numeri da 0 a 6
Se per esempio oggi egrave venerdigrave che giorno saragrave tra 12 giorni
Dovremo calcolare 5+12=17 ma i giorni si ripetono ogni 7 pertanto osservando che 177 =2 con resto 3
possiamo concludere che a partire da 5 e aggiungendo 12 si compiono 2 giri completi piugrave 3 ed essendo 3 il
numero corrispondente a mercoledigrave concludiamo che saragrave mercoledigrave Facciamo un altro esempio se oggi egrave
lunedigrave (1) che giorno saragrave tra 20 giorni Calcoliamo 1+20=21 217= 3 con resto 0 quindi saragrave domenica
Il numero n delle ore sullrsquoorologio costituisce quello che si chiama il modulo e individua lrsquoaritmetica di
modulo n in cui lrsquoinsieme dei numeri con i quali si opera indicato con Zn egrave lrsquoinsieme dei possibili resti della
divisione per n e cioegrave Zn=0 1 2 3 hellip nndash1e le operazioni si eseguono con le regole illustrate negli esempi
precedenti
Lrsquoesempio dellrsquoorologio a 24 ore costituisce la cosiddetta aritmetica finita di modulo 24 in essa Z24=0
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 essendo questi ultimi i possibili resti
della divisione per 24 Lrsquoorologio a 12 ore costituisce lrsquoaritmetica finita di modulo 12 in essa Z12=0 1 2 3 4
5 6 7 8 9 10 11 essendo questi ultimi i possibili resti della divisione per 12 Lrsquoesempio dei giorni della
settimana egrave lrsquoaritmetica finita di modulo 7 in cui Z7=0 1 2 3 4 5 6 essendo questi ultimi i possibili resti
della divisione per 7 Riassumiamo costruendo unrsquoaritmetica finita di modulo 4 I possibili resti della divisione
per 4 sono 0 1 2 3 quindi Z4=0123 Lrsquoaddizione e la moltiplicazione in Z4 si esegue come negli esempi
della tabella 6
26
operazioni indicate
Risultato nellrsquoaritmetica ordinaria
Risultato nellrsquoaritmetica modulo 4
2+2 4 0 percheacute 44=1 con resto 0
3+2 5 1 percheacute 54=1 con resto 1
2+1 3 3 percheacute 34=0 con resto 3
3sdot3 9 1 percheacute 94=2 con resto 1
3sdot2 6 2 percheacute 64=1 con resto 2
2sdot2 4 0 percheacute 44=1 con resto 0
Tabella 6 Addizione e moltiplicazione nellrsquoaritmetica finita di modulo 4
Si possono costruire le tavole dellrsquoaddizione e della moltiplicazione dellrsquoaritmetica modulo 4 che costituiscono
le tabelline di questa aritmetica sulla base delle quali si esegue qualsiasi addizione e moltiplicazione modulo 4
Nella tabella 7 sono spiegate le tabelline dellrsquoaritmetica in modulo 4
Tabella 7 Tavole dellrsquoaddizione e della moltiplicazione dellrsquoaritmetica modulo 4
Infine per indicare che due numeri a e b divisi per n danno lo stesso resto si usano le seguenti notazioni
tutte equivalenti tra loro
a=b mod n andashb=0 mod 4 a equiv b (mod n) che si legge a egrave congruo b modulo 4
Esempio
26=12 mod 7 egrave la stessa cosa di
26ndash12=0 mod 7 che egrave la stessa cosa di
26 equiv 12 (mod 7) e tutte e tre stanno a indicare che 26 e 12 divisi per 7 danno lo stesso resto che egrave 5 e
pertanto sono tutti equivalenti a 5
Facciamo vedere come sfruttare lrsquoaritmetica modulare per calcolare potenze come 2341 (figura 11) Il
metodo si basa sulla proprietagrave che il resto del quadrato di un numero a per un dato modulo n egrave uguale al
quadrato del resto dello stesso numero a per lo stesso modulo n cioegrave a2 mod n =(a mod n)2
+ 0 1 2 3
0 0 1 2 3
1 1 2 3 0
2 2 3 0 1
3 3 0 1 2
x 0 1 2 3
0 0 0 0 0
1 0 1 2 3
2 0 2 0 2
3 0 3 2 1
27
Figura 11 Il metodo per calcolare 2341
La funzione di Eulero
Per ogni intero ngt1 si definisce la funzione di Eulero = numero di interi minori di n e primi con esso Ad
esempio
bull ( ) 45 =φ percheacute gli interi minori di 5 sono 1 2 3 4 ed essi sono tutti primi con n
bull ( ) 26 =φ percheacute gli interi minori di 6 sono 1 2 3 4 5 e fra essi solo 1 e 5 sono primi con 6
bull ( ) 67 =φ percheacute gli interi minori di 7 sono 1 2 3 4 5 6 ed essi sono tutti primi con 7
bull ( ) 412 =φ percheacute gli interi minori di 12 sono 1 2 3 4 5 6 7 8 9 10 11 e fra essi solo 1 5 7
11 sono primi con 12
Se si conosce la scomposizione in fattori del numero n il seguente teorema ci fornisce un metodo per
calcolare Infatti esso afferma che per ogni ngt1 non primo ( )
minussdotsdot
minussdot
minussdotnppp
n=nφ 11
11
11
21
dove
p1 p2 hellip pn sono i fattori primi di n presi senza molteplicitagrave
22 mod 341=4
24=(22)2=(22 mod 341)2=42=16mod341=16
28=(24)2=(16)2=256mod341=256
216= (28)2=(256)2=65536mod341=64
232=(216)2=(64)2=4096mod341=4
264=(232)2=42=16mod341=16
2128=(264)2=(16)2=256mod341=256
2256=(2128)2=(256)2=65536mod341=64
2341=2(256+64+16+4+1) 2256 264 216 24 21 x x x x
64 1
1024 mod 341
= 1 x 64
64 x 16
1024 mod 341
1 x 2 =
=
x
28
Ad esempio
essendo 12 = 3sdot2sdot2 ( ) 42
1
3
212
2
11
3
111212 ===φ sdotsdot
minussdot
minussdot
essendo 6=2sdot3 ( ) 22
1
3
26
2
11
3
1166 ===φ sdotsdot
minussdot
minussdot
se n=psdotq ( ) ( ) ( )11111
11
1 minussdotminusminussdotminussdot
minussdot
minussdot qp=q
q
p
pn=
qpn=nφ
Ovviamente se n egrave un numero primo = nndash1
Vale inoltre il seguente teorema di Eulero per ngt1 e per ogni altn e primo con n si ha
Ad esempio per n=6 ( ) 26 =φ infatti i primi con 6 sono 1 e 5 per il teorema di Eulero si ha
2mod1255
2mod1112
2
equiv=
equiv=
per n=5 ( ) 45 =φ e i primi con 5 sono 1 2 3 4 e per il teorema di Eulero si ha
5mod12564
5mod1813
5mod1162
5mod111
4
4
4
4
equiv=
equiv=
equiv=
equiv=
Si puograve notare come nel caso in cui n egrave un numero primo si ritrova il piccolo teorema di Fermat
Infatti per n primo ( )nφ = nndash1 e per il teorema di Eulero per ogni altn e primo con n Ricordiamo infatti
che il piccolo teorema di Fermat afferma che se n egrave un numero primo e a un intero minore di n allora egrave
divisibile per n che con il linguaggio dellrsquoaritmetica modulare diventa che puograve essere riscritto e se a egrave primo
con n allora egrave che egrave equivalente a
Infine si prova che per ogni altn e primo con esso esiste lrsquoinverso di a e esso egrave dato da ( ) 1minusnaφ Infatti
( ) ( ) na=aa nφnφ1mod1 equivsdot minus per il teorema di Eulero Si ricorda che lrsquoinverso di un numero a egrave quel numero che
moltiplicato per a dagrave 1 indicato convenzionalmente con andash1
Ad esempio per n=5 i primi con 5 sono 1 2 3 4 e per ognuno di questi esiste lrsquoinverso infatti
bull lrsquoinverso di 1 egrave ( ) 1mod51111 31415 equivminusminus ===φ
e infatti
bull lrsquoinverso di 2 egrave ( ) 3mod58222 31415 equivminusminus ===φ
e infatti
bull lrsquoinverso di 3 egrave ( ) 2mod527333 31415 equivminusminus ===φ
e infatti
bull lrsquoinverso di 4 egrave ( ) 4mod564444 31415 equivminusminus ===φ
Le funzioni unidirezionali
Chiamiamo funzione da un insieme A a un insieme B qualunque procedura che associa a ogni elemento
di un insieme A (detto dominio) uno e un solo elemento di un insieme B (detto condominio) In simboli f
A rarr B Se poi indichiamo con x il generico elemento dellrsquoinsieme A e con y il generico elemento dellrsquoinsieme B
la f indica la procedura che ad ogni xisinA associa un yisinB e cioegrave y=f(x) ad esempio ldquofare il doppio dihelliprdquo
29
prendendo come dominio e codominio lrsquoinsieme dei numeri interi egrave in questo senso una funzione percheacute dato
ad esempio il numero 3 lo trasforma nel numero 6 come 5 lo trasforma in 10 e cosigrave via
Molte funzioni matematiche sono cosiddette bidirezionali nel senso che egrave facile dato un determinato x
generare il corrispondente y ma egrave altrettanto facile invertire la funzione cioegrave ritrovare lrsquoelemento x originario a
partire dal suo corrispondente
Facciamo qualche esempio
bull funzione xrarr fare il doppiorarr 2sdotx= y 3rarr fare il doppiorarr 2sdot3 = 6
funzione inversa y=2sdotx rarr fare la metagraverarr x 6=2sdot3 rarr fare la metagraverarr 3
bull funzione xrarr fare il quadruplorarr 4sdotxrarr aggiungere 1rarr sdoty=4sdotx +1
5rarr fare il quadruplorarr 4sdot5rarr aggiungere 1rarr 4sdot5 +1=21
funzione inversa y=4sdotx +1rarr sottrarre 1rarr 4sdot xrarr dividere per 4rarr x
21=4sdot5 +1rarr sottrarre 1rarr 4sdot 5rarr dividere per 4rarr 5
Le funzioni unidirezionali sono invece quelle funzioni facilmente calcolabili ma che non si possono invertire
Le funzioni cosiddette pseudounidirezionali (dette anche funzioni trappola a molla segreta) sono invece
quelle funzioni facilmente calcolabili ma che non altrettanto facilmente si possono invertire a meno che non si
conoscano alcune informazioni (la molla segreta) utilizzate nella loro costruzione
Lrsquoaritmetica modulare gioca un ruolo determinante in questo caso infatti permette di trasformare
funzioni bidirezionali in funzioni pseudounidirezionali
Facciamo lrsquoesempio della funzione ldquofare il quadruplordquo in simboli f(x)=4sdotx Egrave facilmente calcolabile
percheacute dato x per ottenere f(x) basta moltiplicare per 4 ma egrave altrettanto facile calcolare la sua inversa percheacute
dato f(x) basta dividere per 4 per ottenere lrsquooriginario x Ma anche se non avessimo la procedura inversa di
dividere per 4 sarebbe facile ritrovare lrsquoelemento originario anche procedendo per tentativi ed eliminazione
infatti se per esempio f(x) =20 si puograve tentare x=3 in tal caso f(x)=12 troppo piccolo quindi x deve essere
maggiore di 3 Si puograve allora pensare a 6 ma f(x)=24 troppo grande quindi x deve essere minore di 6 e cosigrave via
Vediamo cosa accade se calcoliamo utilizzando una aritmetica modulare Per esempio consideriamo la
stessa funzione f(x)=4sdotx in una aritmetica modulo 7 Possiamo osservare che la funzione non si comporta piugrave in
modo regolare come prima per accorgersene basta costruire una tabella (tabella 8)
x 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
f(x)=4sdotx 4 8 12 16 20 24 28 32 36 40 44 48 52 56 60
f(x)=4sdotmod 7 4 1 5 2 6 3 0 4 1 5 2 6 3 0 4
Tabella 8 La funzione f(x)=4sdotx in una aritmetica modulo 7
Anche in questa semplice situazione egrave chiaro che egrave piugrave complicato invertire la funzione e pertanto i valori
di x sono molto meglio protetti Si puograve fare anche lrsquoesempio della funzione esponenziale f(x)=3 x (tabella 9)
Tabella 9 La funzione f(x)=3 x in aritmetica modulo 11
x 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
f(x)=x3 1 8 27 64 125 216 343 512 729 1000 hellip hellip hellip hellip hellip
f(x)=x3 mod 11 1 8 5 9 4 7 2 6 3 10 hellip hellip hellip hellip hellip
30
Il cifrario a chiave pubblica RSA
Uno dei piugrave noti sistemi crittografici a chiave pubblica che sfrutta le idee precedentemente descritte egrave il
metodo RSA proposto dai matematici R L Rivest A Shamir e L Adlemann nel 1978 Esso risolve il problema
dello scambio delle chiavi in quanto queste ultime sono conosciute solamente ai rispettivi proprietari che non le
hanno preventivamente concordate e scambiate
Illustriamo schematicamente come i due utenti Mitt e Dest possano scambiarsi un messaggio segreto
utilizzando il metodo RSA Entrambi Mitt e Dest indipendentemente lrsquouno dallrsquoaltro poi
1 scelgono in modo casuale due numeri primi p q grandi (di 200-300 cifre in base 10)
2 calcolano N = psdotq e Φ(N) = (pndash1)sdot(qndash1)
3 scelgono un intero eltΦ(N) e primo con Φ(N) tale numero e saragrave la chiave pubblica
4 calcolano il numero d inverso di e mod Φ(N) tale cioegrave che esdotdequiv 1mod Φ(N) tale numero d saragrave
la chiave privata
5 rendono pubblici i numeri N ed e
Mitt per spedire un messaggio a Dest compie le seguenti operazioni
1 codifica il messaggio in un modo standard usando i numeri lt N
2 trasforma ogni numero M di tale codifica in Me (mod N) e lo spedisce a Dest
per decodificare il messaggio ricevuto Me Dest calcola (Me)d =Mesdotd =Mndash1=M (modN) riottenendo il messaggio
originale
Figura 12 Schema di cifrario con metodo RSA
31
Figura 13 Esempio di applicazione di metodi RSA
In che cosa consiste la sicurezza del metodo Da quanto esposto si osserva che per decodificare il
messaggio bisogna
1 conoscere d (chiave segreta)
2 essendo d lrsquoinverso di e nellrsquoaritmetica mod Φ(N) essendo e noto egrave necessario conoscere Φ(N)
3 ma noto N per calcolare Φ(N) egrave necessario conoscere i fattori primi di N cioegrave egrave necessario fattorizzare
N che egrave un problema computazionalmente difficile per quanto osservato in precedenza
Anche se non egrave stato dimostrato che non si possa rompere il codice in altro modo e cioegrave senza conoscere Φ(N) e i
fattori di N a tuttrsquooggi si puograve affermare che la sicurezza del metodo dipende essenzialmente dai seguenti fatti
Per codificare il messaggio bisogna saper costruire dei numeri primi grandi e tale operazione egrave
computazionalmente veloce si puograve infatti dimostrare che la complessitagrave computazionale di opportuni test di
primalitagrave per stabilire se un numero n egrave primo utilizzando il linguaggio di quel ramo della matematica nota
come teoria della complessitagrave egrave ldquoquasi-polinomialerdquo
Per violare il sistema bisogna saper fattorizzare interi grandi ottenuti come prodotto di due primi tale
problema egrave computazionalmente ldquolentordquo cioegrave con il linguaggio della teoria della complessitagrave appartiene alla
classe dei problemi non polinomiali Tale marcata differenza tra la velocitagrave di esecuzione delle operazioni di
costruzione di numeri primi grandi e di fattorizzazione di interi grandi garantisce la sicurezza del metodo
almeno per un tempo sufficientemente lungo Ad esempio con la tecnologia attuale lrsquooperazione di
fattorizzazione di un intero di 140 cifre in base 10 prodotto di due numeri primi casuali calcolati in pochi
secondi su un computer disponibile in commercio richiede utilizzando vari supercomputers operanti
parallelamente circa un mese
La RSA Security Inc gestisce una sfida a livello mondiale ove vengono premiati coloro che fattorizzano
gli interi proposti da loro in una particolare lista Ad esempio il 3 dicembre del 2003 egrave stato fattorizzato
32
rsa576 =
188198812920607963838697239461650439807163563379417382700763356422988859715234
665485319060606504743045317388011303396716199692321205734031879550656996221305
168759307650257059
un numero di 174 cifre decimali prodotto di due primi di 87 cifre
p =
398075086424064937397125500550386491199064362342526708406385189575946388957261
768583317
q =
472772146107435302536223071973048224632914695302097116459852171130520711256363
590397527
Le chiavi attualmente utilizzate dallRSA sono a 309 cifre decimali
La firma digitale
Consideriamo al solito un mittente che deve inviare a un destinatario un messaggio m La codifica di m
con il metodo descritto assicura lrsquoautenticitagrave del messaggio ma non fornisce alcuna sicurezza sulla sua
paternitagrave Infatti il messaggio m pur essendo autentico potrebbe essere stato inviato da qualcuno che si spaccia
per il mittente Questa egrave unimportantissima questione particolarmente nella trasmissione di messaggi che oltre
a dover essere segreti devono garantire la loro origine
Si dovrebbe quindi disporre di un analogo della firma manuale detta appunto firma digitale La firma
digitale deve allora essere progettata in modo da possedere le stesse caratteristiche di una firma manuale e cioegrave
lrsquoautenticitagrave la non falsificabilitagrave e lrsquoimpossibiltagrave di essere riutilizzata Facciamo vedere come lo stesso metodo
RSA puograve essere utilizzato per progettare una firma digitale
La situazione egrave la seguente il mittente (di seguito indicato con Mitt) invia un messaggio m con la firma
F al destinatario (di seguito indicato con Dest) Siano a b rispettivamente le chiavi pubblica e segreta di MITT
siano e d rispettivamente le chiavi pubblica e segreta di DEST
La procedura per apporre la firma digitale F al messaggio m egrave illustrata nei seguenti passi riassunti nel
grafico della figura 14
1 Mitt cripta la firma F (cioegrave i suoi dati identificativi) usando la propria chiave segreta (b)
ottenendo Fb
2 il messaggio m con la firma F criptata viene ulteriormente criptato con la chiave pubblica di
Dest (e) ottenendo (m Fb)e
3 Dest decodifica il messaggio con la sua chiave segreta (d) ottenendo
((m Fb)e)d = (me F(be)) d =m(e d)F(be d) = mFb
in cui la firma di Mitt egrave ancora criptata
4 Dest decodifica la firma di Mitt con la chiave pubblica di Mitt (a) ottenendo
(Fb)a = F(ba) = F
33
Grafico firma digitale
Mitt
Dest
pubblica
Fb
e dpubblica
a
((Fb)e)d=(Fb)ed=(Fb)1=Fb
(Fb)a=(F)ba=(F)1=F
ab de
(Fb)e
codifica
codificadecodifica
decodifica
1
2
3
4
5
6
7
8
segreta
b
segreta
Figura 14 Grafico firma digitale
Bibliografia
Thomas Beth Comunicazioni e sicurezza su Internet in ldquoLe Scienzerdquo n 330 febbraio 1996
Brian Butterworth Intelligenza matematica Vincere la paura dei numeri scoprendo le doti innate della mente
Rizzoli Milano 1999
John H Conway Richard K Guy Il libro dei numeri Hoepli Milano 2003
Richard Courant Herbert Robbins Che cosrsquoegrave la matematica Boringhieri Torino 1971
Philip J Davis Il mondo dei grandi numeri Zanichelli Bologna 1973
Keith Devlin Dove va la matematica Bollati Boringhieri Torino 1994
Jean Dieudonneacute Lrsquoarte dei numeri matematica e matematici oggi Mondadori Milano 1989
Martin E Ellmann La crittografia a chiave pubblica in La matematica della complessitagrave Quaderni n 67
settembre 1992 Le Scienze
Paolo Ferragina Fabrizio Luccio Crittografia principi ndash Algoritmi ndash Applicazioni Bollati Boringhieri Torino
2001
Godfrey H Hardy Apologia di un matematico Garzanti Milano 1989
Morris Kline Storia del pensiero matematico Einaudi Milano 1991
Serge Lang La bellezza della matematica Bollati Boringhieri Torino 1991
Mauro Leoncini Modelli di calcolo e complessitagrave computazionale in La matematica computazionale Quaderni
n 84 giugno 1995 Le Scienze
Fabrizio Luccio e Linda Pagli P = NP in La matematica della complessitagrave Quaderni n 67 settembre 1992
Le Scienze
Piergiorgio Odifreddi La Matematica del Novecento dagli insiemi alla complessitagrave Einaudi Torino 2000
34
ldquoPeriodico di matematicherdquo Serie VII Volume 7 Numero 2-3 luglio-dicembre 2000 Mathesis
ldquoPeriodico di matematicherdquo Serie VIII Volume 1 Numero 1 gennaio-marzo 2001 Mathesis
Carl Pomerance Alla ricerca dei numeri primi in ldquoLe Scienzerdquo n 174 febbraio 1983
Simon Singh Codici e segreti la storia affascinante dei messaggi cifrati dallrsquoantico Egitto a Internet Rizzoli
Milano 1999
Marcus du Sautoy Lrsquoenigma dei numeri primi lrsquoipotesi di Riemann lrsquoultimo grande mistero della matematica
Rizzoli Milano 2004
Gary Stix I segreti meglio custoditi la crittografia quantistica egrave passata dalla teoria al laboratorio per
approdare finalmente alle applicazioni in ldquoLe Scienzerdquo n 438 febbraio 2005
22
1 un algoritmo generale di cifratura G
2 di una chiave K che deve rimanere segreta
3 di un algoritmo di decifrazione H=Gndash1 (inverso di G)
e agiscono secondo il seguente schema
il messaggio in chiaro M tramite lrsquoalgoritmo G e la chiave K viene cifrato in MC questrsquoultimo tramite
lrsquoalgoritmo H e la stessa chiave K viene decifrato in M (figura 6)
Figura 6 Schema di metodi crittografici
La sicurezza di tali sistemi risiede interamente nella segretezza delle chiavi Ne segue che per distribuire
agli utenti le chiavi egrave necessario ricorrere a canali sicuri
Gli svantaggi che ne derivano sono essenzialmente
1 difficoltagrave nella distribuzione delle chiavi agli utenti
2 mancata autenticazione dei messaggi mittente e destinatario condividono la stessa chiave
pertanto non crsquoegrave modo di impedire che il destinatario si invii messaggi che poi sembrino
provenienti dal mittente Si pensi quali problemi possono provocare simili falsificazioni nella
posta elettronica o nei sistemi bancari elettronici
La svolta avvenne nel 1976 a opera di Diffie e Hellmann che proposero un metodo detto a chiave
pubblica il quale non necessita di uno scambio preventivo delle chiavi segrete Lrsquodea egrave chiarita dal seguente
esempio noto come esempio del doppio lucchetto
Supponiamo di avere due utenti Mitt e Dest e Mitt voglia spedire un messaggio segreto a Dest
1 Mitt mette il messaggio in una scatola che chiude con il proprio lucchetto LMitt (di cui solo lui ha
la chiave) e spedisce la scatola a Dest
2 Dest ricevuta la scatola aggiunge un proprio lucchetto LDest (di cui solo lui ha la chiave) e
rispedisce la scatola a Mitt
3 Mitt ricevuta la scatola con il doppio lucchetto toglie il lucchetto LMitt e rispedisce la scatola a
Dest
4 Dest ricevuta la scatola puograve togliere il lucchetto LDest e leggere il messaggio di Mitt
Il problema della distribuzione delle chiavi sembra risolto percheacute lo schema a doppia chiave non richiede
la condivisione delle stesse Tuttavia la realizzazione pratica di un tale sistema si scontra con un altro problema
quello riguardante lrsquoordine in cui cifrature e decifrature sono eseguite In altre parole in un sistema crittografico
egrave essenziale lrsquoordine con cui avvengono le rispettive cifrature e decifrature in quanto la cifratura eseguita per
23
ultimo andrebbe decifrata per prima (egrave un porsquo come quando la mattina infiliamo prima le calze e poi le scarpe
ma alla sera togliamo prima le scarpe e poi le calze)
Lrsquoesempio del doppio lucchetto in cui ciograve non avviene sembra tuttavia funzionare come idea percheacute ai
fini dellrsquoapertura della scatola non ha importanza lrsquoordine di rimozione dei lucchetti
Anche se il trucco dei due lucchetti non sembra immediatamente applicabile tuttavia fu il giusto punto di
partenza per la realizzazione di un sistema crittografico che aggira lrsquoostacolo della distribuzione delle chiavi
Infatti lrsquoidea egrave che mittente e destinatario generano ciascuno due chiavi distinte una chiave di cifratura E
(da utilizzare nellrsquoalgoritmo di cifratura) e una chiave di decifrazione D (da utilizzare nellrsquoalgoritmo di
decifrazione) Le chiavi sono correlate nel senso che servono per effettuare operazioni inverse (figura 7)
Figura 7 Le chiavi correlate per effettuare operazioni invese
Il trucco consiste nellrsquoimpossibilitagrave di poter derivare la chiave D dalla chiave E mediante algoritmi di
calcolo (figura 8)
Ogni utente puograve rendere pubblica la propria chiave di cifratura E indicandola magari sullrsquoelenco
telefonico senza compromettere la propria chiave di decifrazione che rimane segreta di pubblico dominio sono
anche gli algoritmi di cifratura G e decifrazione H
Figura 8 Inapplicabilitagrave del metodo del doppio lucchetto
Pertanto lrsquoesempio del doppio lucchetto viene cosigrave interpretato
1 il destinatario pubblica la chiave di cifratura E e mantiene segreta la chiave di decifrazione D
2 il mittente applica GE al messaggio M trasformandolo nel messaggio cifrato MC cioegrave
GE(M)=MC che spedisce al destinatario
3 il destinatario applica HD al messaggio cifrato MC riottenendo M cioegrave HD(MC)=M
24
La sicurezza di un tale sistema si fonda sulla difficoltagrave di poter
1 ritrovare il testo cifrato provando ad applicare lrsquoalgoritmo GE che egrave pubblico ad ogni possibile
testo in chiaro il cui numero pur essendo enorme egrave comunque finito
2 ricavare lrsquoalgoritmo HD da GE
in quanto entrambe le tecniche sono computazionalmente inattuabili nel senso che richiedono un tempo
di calcolo di lunghezza al di fuori di ogni possibile considerazione anche per i piugrave potenti calcolatori
Per descrivere tali algoritmi sono necessari alcuni concetti matematici che andiamo a illustrare
Figura 9 Schema di cifrario a chiave pubblica
Lrsquoaritmetica modulare
Lrsquoaritmetica modulare la cui introduzione egrave dovuta a Gauss costituisce un sistema di calcolo con
importanti applicazioni nei test di primalitagrave e nei metodi che stanno alla base della sicurezza delle comunicazioni
elettroniche Con essa infatti si hanno i seguenti vantaggi 1) si riduce lo spazio dei numeri su cui gli algoritmi
sono chiamati ad operare e quindi si aumenta la velocitagrave di calcolo 2) si riesce a rendere difficili alcuni problemi
computazionali che sono semplici (o addirittura banali) nellrsquoalgebra ordinaria al fine di aumentare la sicurezza
nelle comunicazioni Lrsquoidea egrave semplice ma potente Forse non lo sappiamo ma usiamo spesso laritmetica
modulare Potremmo chiamarla aritmetica dellorologio
Infatti pensiamo ad un normale orologio con 24 ore Se sono le 15 ed un amico ci comunica che saragrave a
casa nostra tra 5 ore sappiamo che egli verragrave alle 20 infatti 15+5=20 Ma se sono le 23 e dobbiamo partire fra 7
ore certamente non diciamo che la partenza saragrave alle 30 anche se 23+7=30 Sappiamo che dovremo partire alle
6 Allo stesso modo se sono le 20 che ora saragrave tra 14 ore Non diremo 34 anche se 20+14=34 ma diremo che
sono le 10 Come si spiega tutto ciograve
Immaginiamo di segnare sul quadrante dellrsquoorologio 24 ore Se la lancetta segna le 23 aggiungere 7 ore
significa spostarsi di 7 posti fino ad arrivare alle 6 Si giunge allo stesso risultato calcolando 23+7=30 ed
osservando che 30=1sdot24+6 o che egrave lo stesso 3024 =1 con resto 6 che significa che 30 lo si ottiene facendo fare
alla lancetta un giro completo piugrave 6
25
Se la lancetta segna le 20 e aggiungiamo 14 ore lrsquoorologio segneragrave le 10 percheacute 20+14=34 ma 3424= 1
con resto 10 per cui 34 lo si ottiene percorrendo un giro completo piugrave 10
Proviamo con il normale orologio a 12 ore I numeri che vediamo sul quadrante sono 0 1 2 3 4 5 6 7
8 9 10 11 Il numero 12 non compare percheacute a partire da 0 trascorse 12 ore torniamo di nuovo a 0 Questa
volta per fare un giro completo occorrono 12 ore Pertanto se sono le 7 che ore saranno tra 24 ore Saranno
ancora le 7 percheacute 7+24=31 ma 3112 = 2 con resto 7 cioegrave si compiono 2 giri completi piugrave 7 se sono le 8 tra 6
ore saranno le 2 percheacute 8+6=14 ma 1412=1 con resto 2 Dagli esempi dovrebbe risultare chiaro allora che ciograve
che contano non sono i risultati delle somme ma i loro resti nelle divisioni per il numero delle ore segnate sul
quadrante dellrsquoorologio
La stessa cosa succede con i giorni della settimana se pensiamo a un orologio con 7 ore sul quadrante
Facciamo corrispondere ai giorni della settimana i numeri da 0 a 6 (figura 10)
domenica Lunedigrave Martedigrave Mercoledigrave Giovedigrave Venerdigrave Sabato darr darr darr darr darr darr darr 0 1 2 3 4 5 6
Figura 10 Corrispondenza dei giorni della settimana con i numeri da 0 a 6
Se per esempio oggi egrave venerdigrave che giorno saragrave tra 12 giorni
Dovremo calcolare 5+12=17 ma i giorni si ripetono ogni 7 pertanto osservando che 177 =2 con resto 3
possiamo concludere che a partire da 5 e aggiungendo 12 si compiono 2 giri completi piugrave 3 ed essendo 3 il
numero corrispondente a mercoledigrave concludiamo che saragrave mercoledigrave Facciamo un altro esempio se oggi egrave
lunedigrave (1) che giorno saragrave tra 20 giorni Calcoliamo 1+20=21 217= 3 con resto 0 quindi saragrave domenica
Il numero n delle ore sullrsquoorologio costituisce quello che si chiama il modulo e individua lrsquoaritmetica di
modulo n in cui lrsquoinsieme dei numeri con i quali si opera indicato con Zn egrave lrsquoinsieme dei possibili resti della
divisione per n e cioegrave Zn=0 1 2 3 hellip nndash1e le operazioni si eseguono con le regole illustrate negli esempi
precedenti
Lrsquoesempio dellrsquoorologio a 24 ore costituisce la cosiddetta aritmetica finita di modulo 24 in essa Z24=0
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 essendo questi ultimi i possibili resti
della divisione per 24 Lrsquoorologio a 12 ore costituisce lrsquoaritmetica finita di modulo 12 in essa Z12=0 1 2 3 4
5 6 7 8 9 10 11 essendo questi ultimi i possibili resti della divisione per 12 Lrsquoesempio dei giorni della
settimana egrave lrsquoaritmetica finita di modulo 7 in cui Z7=0 1 2 3 4 5 6 essendo questi ultimi i possibili resti
della divisione per 7 Riassumiamo costruendo unrsquoaritmetica finita di modulo 4 I possibili resti della divisione
per 4 sono 0 1 2 3 quindi Z4=0123 Lrsquoaddizione e la moltiplicazione in Z4 si esegue come negli esempi
della tabella 6
26
operazioni indicate
Risultato nellrsquoaritmetica ordinaria
Risultato nellrsquoaritmetica modulo 4
2+2 4 0 percheacute 44=1 con resto 0
3+2 5 1 percheacute 54=1 con resto 1
2+1 3 3 percheacute 34=0 con resto 3
3sdot3 9 1 percheacute 94=2 con resto 1
3sdot2 6 2 percheacute 64=1 con resto 2
2sdot2 4 0 percheacute 44=1 con resto 0
Tabella 6 Addizione e moltiplicazione nellrsquoaritmetica finita di modulo 4
Si possono costruire le tavole dellrsquoaddizione e della moltiplicazione dellrsquoaritmetica modulo 4 che costituiscono
le tabelline di questa aritmetica sulla base delle quali si esegue qualsiasi addizione e moltiplicazione modulo 4
Nella tabella 7 sono spiegate le tabelline dellrsquoaritmetica in modulo 4
Tabella 7 Tavole dellrsquoaddizione e della moltiplicazione dellrsquoaritmetica modulo 4
Infine per indicare che due numeri a e b divisi per n danno lo stesso resto si usano le seguenti notazioni
tutte equivalenti tra loro
a=b mod n andashb=0 mod 4 a equiv b (mod n) che si legge a egrave congruo b modulo 4
Esempio
26=12 mod 7 egrave la stessa cosa di
26ndash12=0 mod 7 che egrave la stessa cosa di
26 equiv 12 (mod 7) e tutte e tre stanno a indicare che 26 e 12 divisi per 7 danno lo stesso resto che egrave 5 e
pertanto sono tutti equivalenti a 5
Facciamo vedere come sfruttare lrsquoaritmetica modulare per calcolare potenze come 2341 (figura 11) Il
metodo si basa sulla proprietagrave che il resto del quadrato di un numero a per un dato modulo n egrave uguale al
quadrato del resto dello stesso numero a per lo stesso modulo n cioegrave a2 mod n =(a mod n)2
+ 0 1 2 3
0 0 1 2 3
1 1 2 3 0
2 2 3 0 1
3 3 0 1 2
x 0 1 2 3
0 0 0 0 0
1 0 1 2 3
2 0 2 0 2
3 0 3 2 1
27
Figura 11 Il metodo per calcolare 2341
La funzione di Eulero
Per ogni intero ngt1 si definisce la funzione di Eulero = numero di interi minori di n e primi con esso Ad
esempio
bull ( ) 45 =φ percheacute gli interi minori di 5 sono 1 2 3 4 ed essi sono tutti primi con n
bull ( ) 26 =φ percheacute gli interi minori di 6 sono 1 2 3 4 5 e fra essi solo 1 e 5 sono primi con 6
bull ( ) 67 =φ percheacute gli interi minori di 7 sono 1 2 3 4 5 6 ed essi sono tutti primi con 7
bull ( ) 412 =φ percheacute gli interi minori di 12 sono 1 2 3 4 5 6 7 8 9 10 11 e fra essi solo 1 5 7
11 sono primi con 12
Se si conosce la scomposizione in fattori del numero n il seguente teorema ci fornisce un metodo per
calcolare Infatti esso afferma che per ogni ngt1 non primo ( )
minussdotsdot
minussdot
minussdotnppp
n=nφ 11
11
11
21
dove
p1 p2 hellip pn sono i fattori primi di n presi senza molteplicitagrave
22 mod 341=4
24=(22)2=(22 mod 341)2=42=16mod341=16
28=(24)2=(16)2=256mod341=256
216= (28)2=(256)2=65536mod341=64
232=(216)2=(64)2=4096mod341=4
264=(232)2=42=16mod341=16
2128=(264)2=(16)2=256mod341=256
2256=(2128)2=(256)2=65536mod341=64
2341=2(256+64+16+4+1) 2256 264 216 24 21 x x x x
64 1
1024 mod 341
= 1 x 64
64 x 16
1024 mod 341
1 x 2 =
=
x
28
Ad esempio
essendo 12 = 3sdot2sdot2 ( ) 42
1
3
212
2
11
3
111212 ===φ sdotsdot
minussdot
minussdot
essendo 6=2sdot3 ( ) 22
1
3
26
2
11
3
1166 ===φ sdotsdot
minussdot
minussdot
se n=psdotq ( ) ( ) ( )11111
11
1 minussdotminusminussdotminussdot
minussdot
minussdot qp=q
q
p
pn=
qpn=nφ
Ovviamente se n egrave un numero primo = nndash1
Vale inoltre il seguente teorema di Eulero per ngt1 e per ogni altn e primo con n si ha
Ad esempio per n=6 ( ) 26 =φ infatti i primi con 6 sono 1 e 5 per il teorema di Eulero si ha
2mod1255
2mod1112
2
equiv=
equiv=
per n=5 ( ) 45 =φ e i primi con 5 sono 1 2 3 4 e per il teorema di Eulero si ha
5mod12564
5mod1813
5mod1162
5mod111
4
4
4
4
equiv=
equiv=
equiv=
equiv=
Si puograve notare come nel caso in cui n egrave un numero primo si ritrova il piccolo teorema di Fermat
Infatti per n primo ( )nφ = nndash1 e per il teorema di Eulero per ogni altn e primo con n Ricordiamo infatti
che il piccolo teorema di Fermat afferma che se n egrave un numero primo e a un intero minore di n allora egrave
divisibile per n che con il linguaggio dellrsquoaritmetica modulare diventa che puograve essere riscritto e se a egrave primo
con n allora egrave che egrave equivalente a
Infine si prova che per ogni altn e primo con esso esiste lrsquoinverso di a e esso egrave dato da ( ) 1minusnaφ Infatti
( ) ( ) na=aa nφnφ1mod1 equivsdot minus per il teorema di Eulero Si ricorda che lrsquoinverso di un numero a egrave quel numero che
moltiplicato per a dagrave 1 indicato convenzionalmente con andash1
Ad esempio per n=5 i primi con 5 sono 1 2 3 4 e per ognuno di questi esiste lrsquoinverso infatti
bull lrsquoinverso di 1 egrave ( ) 1mod51111 31415 equivminusminus ===φ
e infatti
bull lrsquoinverso di 2 egrave ( ) 3mod58222 31415 equivminusminus ===φ
e infatti
bull lrsquoinverso di 3 egrave ( ) 2mod527333 31415 equivminusminus ===φ
e infatti
bull lrsquoinverso di 4 egrave ( ) 4mod564444 31415 equivminusminus ===φ
Le funzioni unidirezionali
Chiamiamo funzione da un insieme A a un insieme B qualunque procedura che associa a ogni elemento
di un insieme A (detto dominio) uno e un solo elemento di un insieme B (detto condominio) In simboli f
A rarr B Se poi indichiamo con x il generico elemento dellrsquoinsieme A e con y il generico elemento dellrsquoinsieme B
la f indica la procedura che ad ogni xisinA associa un yisinB e cioegrave y=f(x) ad esempio ldquofare il doppio dihelliprdquo
29
prendendo come dominio e codominio lrsquoinsieme dei numeri interi egrave in questo senso una funzione percheacute dato
ad esempio il numero 3 lo trasforma nel numero 6 come 5 lo trasforma in 10 e cosigrave via
Molte funzioni matematiche sono cosiddette bidirezionali nel senso che egrave facile dato un determinato x
generare il corrispondente y ma egrave altrettanto facile invertire la funzione cioegrave ritrovare lrsquoelemento x originario a
partire dal suo corrispondente
Facciamo qualche esempio
bull funzione xrarr fare il doppiorarr 2sdotx= y 3rarr fare il doppiorarr 2sdot3 = 6
funzione inversa y=2sdotx rarr fare la metagraverarr x 6=2sdot3 rarr fare la metagraverarr 3
bull funzione xrarr fare il quadruplorarr 4sdotxrarr aggiungere 1rarr sdoty=4sdotx +1
5rarr fare il quadruplorarr 4sdot5rarr aggiungere 1rarr 4sdot5 +1=21
funzione inversa y=4sdotx +1rarr sottrarre 1rarr 4sdot xrarr dividere per 4rarr x
21=4sdot5 +1rarr sottrarre 1rarr 4sdot 5rarr dividere per 4rarr 5
Le funzioni unidirezionali sono invece quelle funzioni facilmente calcolabili ma che non si possono invertire
Le funzioni cosiddette pseudounidirezionali (dette anche funzioni trappola a molla segreta) sono invece
quelle funzioni facilmente calcolabili ma che non altrettanto facilmente si possono invertire a meno che non si
conoscano alcune informazioni (la molla segreta) utilizzate nella loro costruzione
Lrsquoaritmetica modulare gioca un ruolo determinante in questo caso infatti permette di trasformare
funzioni bidirezionali in funzioni pseudounidirezionali
Facciamo lrsquoesempio della funzione ldquofare il quadruplordquo in simboli f(x)=4sdotx Egrave facilmente calcolabile
percheacute dato x per ottenere f(x) basta moltiplicare per 4 ma egrave altrettanto facile calcolare la sua inversa percheacute
dato f(x) basta dividere per 4 per ottenere lrsquooriginario x Ma anche se non avessimo la procedura inversa di
dividere per 4 sarebbe facile ritrovare lrsquoelemento originario anche procedendo per tentativi ed eliminazione
infatti se per esempio f(x) =20 si puograve tentare x=3 in tal caso f(x)=12 troppo piccolo quindi x deve essere
maggiore di 3 Si puograve allora pensare a 6 ma f(x)=24 troppo grande quindi x deve essere minore di 6 e cosigrave via
Vediamo cosa accade se calcoliamo utilizzando una aritmetica modulare Per esempio consideriamo la
stessa funzione f(x)=4sdotx in una aritmetica modulo 7 Possiamo osservare che la funzione non si comporta piugrave in
modo regolare come prima per accorgersene basta costruire una tabella (tabella 8)
x 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
f(x)=4sdotx 4 8 12 16 20 24 28 32 36 40 44 48 52 56 60
f(x)=4sdotmod 7 4 1 5 2 6 3 0 4 1 5 2 6 3 0 4
Tabella 8 La funzione f(x)=4sdotx in una aritmetica modulo 7
Anche in questa semplice situazione egrave chiaro che egrave piugrave complicato invertire la funzione e pertanto i valori
di x sono molto meglio protetti Si puograve fare anche lrsquoesempio della funzione esponenziale f(x)=3 x (tabella 9)
Tabella 9 La funzione f(x)=3 x in aritmetica modulo 11
x 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
f(x)=x3 1 8 27 64 125 216 343 512 729 1000 hellip hellip hellip hellip hellip
f(x)=x3 mod 11 1 8 5 9 4 7 2 6 3 10 hellip hellip hellip hellip hellip
30
Il cifrario a chiave pubblica RSA
Uno dei piugrave noti sistemi crittografici a chiave pubblica che sfrutta le idee precedentemente descritte egrave il
metodo RSA proposto dai matematici R L Rivest A Shamir e L Adlemann nel 1978 Esso risolve il problema
dello scambio delle chiavi in quanto queste ultime sono conosciute solamente ai rispettivi proprietari che non le
hanno preventivamente concordate e scambiate
Illustriamo schematicamente come i due utenti Mitt e Dest possano scambiarsi un messaggio segreto
utilizzando il metodo RSA Entrambi Mitt e Dest indipendentemente lrsquouno dallrsquoaltro poi
1 scelgono in modo casuale due numeri primi p q grandi (di 200-300 cifre in base 10)
2 calcolano N = psdotq e Φ(N) = (pndash1)sdot(qndash1)
3 scelgono un intero eltΦ(N) e primo con Φ(N) tale numero e saragrave la chiave pubblica
4 calcolano il numero d inverso di e mod Φ(N) tale cioegrave che esdotdequiv 1mod Φ(N) tale numero d saragrave
la chiave privata
5 rendono pubblici i numeri N ed e
Mitt per spedire un messaggio a Dest compie le seguenti operazioni
1 codifica il messaggio in un modo standard usando i numeri lt N
2 trasforma ogni numero M di tale codifica in Me (mod N) e lo spedisce a Dest
per decodificare il messaggio ricevuto Me Dest calcola (Me)d =Mesdotd =Mndash1=M (modN) riottenendo il messaggio
originale
Figura 12 Schema di cifrario con metodo RSA
31
Figura 13 Esempio di applicazione di metodi RSA
In che cosa consiste la sicurezza del metodo Da quanto esposto si osserva che per decodificare il
messaggio bisogna
1 conoscere d (chiave segreta)
2 essendo d lrsquoinverso di e nellrsquoaritmetica mod Φ(N) essendo e noto egrave necessario conoscere Φ(N)
3 ma noto N per calcolare Φ(N) egrave necessario conoscere i fattori primi di N cioegrave egrave necessario fattorizzare
N che egrave un problema computazionalmente difficile per quanto osservato in precedenza
Anche se non egrave stato dimostrato che non si possa rompere il codice in altro modo e cioegrave senza conoscere Φ(N) e i
fattori di N a tuttrsquooggi si puograve affermare che la sicurezza del metodo dipende essenzialmente dai seguenti fatti
Per codificare il messaggio bisogna saper costruire dei numeri primi grandi e tale operazione egrave
computazionalmente veloce si puograve infatti dimostrare che la complessitagrave computazionale di opportuni test di
primalitagrave per stabilire se un numero n egrave primo utilizzando il linguaggio di quel ramo della matematica nota
come teoria della complessitagrave egrave ldquoquasi-polinomialerdquo
Per violare il sistema bisogna saper fattorizzare interi grandi ottenuti come prodotto di due primi tale
problema egrave computazionalmente ldquolentordquo cioegrave con il linguaggio della teoria della complessitagrave appartiene alla
classe dei problemi non polinomiali Tale marcata differenza tra la velocitagrave di esecuzione delle operazioni di
costruzione di numeri primi grandi e di fattorizzazione di interi grandi garantisce la sicurezza del metodo
almeno per un tempo sufficientemente lungo Ad esempio con la tecnologia attuale lrsquooperazione di
fattorizzazione di un intero di 140 cifre in base 10 prodotto di due numeri primi casuali calcolati in pochi
secondi su un computer disponibile in commercio richiede utilizzando vari supercomputers operanti
parallelamente circa un mese
La RSA Security Inc gestisce una sfida a livello mondiale ove vengono premiati coloro che fattorizzano
gli interi proposti da loro in una particolare lista Ad esempio il 3 dicembre del 2003 egrave stato fattorizzato
32
rsa576 =
188198812920607963838697239461650439807163563379417382700763356422988859715234
665485319060606504743045317388011303396716199692321205734031879550656996221305
168759307650257059
un numero di 174 cifre decimali prodotto di due primi di 87 cifre
p =
398075086424064937397125500550386491199064362342526708406385189575946388957261
768583317
q =
472772146107435302536223071973048224632914695302097116459852171130520711256363
590397527
Le chiavi attualmente utilizzate dallRSA sono a 309 cifre decimali
La firma digitale
Consideriamo al solito un mittente che deve inviare a un destinatario un messaggio m La codifica di m
con il metodo descritto assicura lrsquoautenticitagrave del messaggio ma non fornisce alcuna sicurezza sulla sua
paternitagrave Infatti il messaggio m pur essendo autentico potrebbe essere stato inviato da qualcuno che si spaccia
per il mittente Questa egrave unimportantissima questione particolarmente nella trasmissione di messaggi che oltre
a dover essere segreti devono garantire la loro origine
Si dovrebbe quindi disporre di un analogo della firma manuale detta appunto firma digitale La firma
digitale deve allora essere progettata in modo da possedere le stesse caratteristiche di una firma manuale e cioegrave
lrsquoautenticitagrave la non falsificabilitagrave e lrsquoimpossibiltagrave di essere riutilizzata Facciamo vedere come lo stesso metodo
RSA puograve essere utilizzato per progettare una firma digitale
La situazione egrave la seguente il mittente (di seguito indicato con Mitt) invia un messaggio m con la firma
F al destinatario (di seguito indicato con Dest) Siano a b rispettivamente le chiavi pubblica e segreta di MITT
siano e d rispettivamente le chiavi pubblica e segreta di DEST
La procedura per apporre la firma digitale F al messaggio m egrave illustrata nei seguenti passi riassunti nel
grafico della figura 14
1 Mitt cripta la firma F (cioegrave i suoi dati identificativi) usando la propria chiave segreta (b)
ottenendo Fb
2 il messaggio m con la firma F criptata viene ulteriormente criptato con la chiave pubblica di
Dest (e) ottenendo (m Fb)e
3 Dest decodifica il messaggio con la sua chiave segreta (d) ottenendo
((m Fb)e)d = (me F(be)) d =m(e d)F(be d) = mFb
in cui la firma di Mitt egrave ancora criptata
4 Dest decodifica la firma di Mitt con la chiave pubblica di Mitt (a) ottenendo
(Fb)a = F(ba) = F
33
Grafico firma digitale
Mitt
Dest
pubblica
Fb
e dpubblica
a
((Fb)e)d=(Fb)ed=(Fb)1=Fb
(Fb)a=(F)ba=(F)1=F
ab de
(Fb)e
codifica
codificadecodifica
decodifica
1
2
3
4
5
6
7
8
segreta
b
segreta
Figura 14 Grafico firma digitale
Bibliografia
Thomas Beth Comunicazioni e sicurezza su Internet in ldquoLe Scienzerdquo n 330 febbraio 1996
Brian Butterworth Intelligenza matematica Vincere la paura dei numeri scoprendo le doti innate della mente
Rizzoli Milano 1999
John H Conway Richard K Guy Il libro dei numeri Hoepli Milano 2003
Richard Courant Herbert Robbins Che cosrsquoegrave la matematica Boringhieri Torino 1971
Philip J Davis Il mondo dei grandi numeri Zanichelli Bologna 1973
Keith Devlin Dove va la matematica Bollati Boringhieri Torino 1994
Jean Dieudonneacute Lrsquoarte dei numeri matematica e matematici oggi Mondadori Milano 1989
Martin E Ellmann La crittografia a chiave pubblica in La matematica della complessitagrave Quaderni n 67
settembre 1992 Le Scienze
Paolo Ferragina Fabrizio Luccio Crittografia principi ndash Algoritmi ndash Applicazioni Bollati Boringhieri Torino
2001
Godfrey H Hardy Apologia di un matematico Garzanti Milano 1989
Morris Kline Storia del pensiero matematico Einaudi Milano 1991
Serge Lang La bellezza della matematica Bollati Boringhieri Torino 1991
Mauro Leoncini Modelli di calcolo e complessitagrave computazionale in La matematica computazionale Quaderni
n 84 giugno 1995 Le Scienze
Fabrizio Luccio e Linda Pagli P = NP in La matematica della complessitagrave Quaderni n 67 settembre 1992
Le Scienze
Piergiorgio Odifreddi La Matematica del Novecento dagli insiemi alla complessitagrave Einaudi Torino 2000
34
ldquoPeriodico di matematicherdquo Serie VII Volume 7 Numero 2-3 luglio-dicembre 2000 Mathesis
ldquoPeriodico di matematicherdquo Serie VIII Volume 1 Numero 1 gennaio-marzo 2001 Mathesis
Carl Pomerance Alla ricerca dei numeri primi in ldquoLe Scienzerdquo n 174 febbraio 1983
Simon Singh Codici e segreti la storia affascinante dei messaggi cifrati dallrsquoantico Egitto a Internet Rizzoli
Milano 1999
Marcus du Sautoy Lrsquoenigma dei numeri primi lrsquoipotesi di Riemann lrsquoultimo grande mistero della matematica
Rizzoli Milano 2004
Gary Stix I segreti meglio custoditi la crittografia quantistica egrave passata dalla teoria al laboratorio per
approdare finalmente alle applicazioni in ldquoLe Scienzerdquo n 438 febbraio 2005
23
ultimo andrebbe decifrata per prima (egrave un porsquo come quando la mattina infiliamo prima le calze e poi le scarpe
ma alla sera togliamo prima le scarpe e poi le calze)
Lrsquoesempio del doppio lucchetto in cui ciograve non avviene sembra tuttavia funzionare come idea percheacute ai
fini dellrsquoapertura della scatola non ha importanza lrsquoordine di rimozione dei lucchetti
Anche se il trucco dei due lucchetti non sembra immediatamente applicabile tuttavia fu il giusto punto di
partenza per la realizzazione di un sistema crittografico che aggira lrsquoostacolo della distribuzione delle chiavi
Infatti lrsquoidea egrave che mittente e destinatario generano ciascuno due chiavi distinte una chiave di cifratura E
(da utilizzare nellrsquoalgoritmo di cifratura) e una chiave di decifrazione D (da utilizzare nellrsquoalgoritmo di
decifrazione) Le chiavi sono correlate nel senso che servono per effettuare operazioni inverse (figura 7)
Figura 7 Le chiavi correlate per effettuare operazioni invese
Il trucco consiste nellrsquoimpossibilitagrave di poter derivare la chiave D dalla chiave E mediante algoritmi di
calcolo (figura 8)
Ogni utente puograve rendere pubblica la propria chiave di cifratura E indicandola magari sullrsquoelenco
telefonico senza compromettere la propria chiave di decifrazione che rimane segreta di pubblico dominio sono
anche gli algoritmi di cifratura G e decifrazione H
Figura 8 Inapplicabilitagrave del metodo del doppio lucchetto
Pertanto lrsquoesempio del doppio lucchetto viene cosigrave interpretato
1 il destinatario pubblica la chiave di cifratura E e mantiene segreta la chiave di decifrazione D
2 il mittente applica GE al messaggio M trasformandolo nel messaggio cifrato MC cioegrave
GE(M)=MC che spedisce al destinatario
3 il destinatario applica HD al messaggio cifrato MC riottenendo M cioegrave HD(MC)=M
24
La sicurezza di un tale sistema si fonda sulla difficoltagrave di poter
1 ritrovare il testo cifrato provando ad applicare lrsquoalgoritmo GE che egrave pubblico ad ogni possibile
testo in chiaro il cui numero pur essendo enorme egrave comunque finito
2 ricavare lrsquoalgoritmo HD da GE
in quanto entrambe le tecniche sono computazionalmente inattuabili nel senso che richiedono un tempo
di calcolo di lunghezza al di fuori di ogni possibile considerazione anche per i piugrave potenti calcolatori
Per descrivere tali algoritmi sono necessari alcuni concetti matematici che andiamo a illustrare
Figura 9 Schema di cifrario a chiave pubblica
Lrsquoaritmetica modulare
Lrsquoaritmetica modulare la cui introduzione egrave dovuta a Gauss costituisce un sistema di calcolo con
importanti applicazioni nei test di primalitagrave e nei metodi che stanno alla base della sicurezza delle comunicazioni
elettroniche Con essa infatti si hanno i seguenti vantaggi 1) si riduce lo spazio dei numeri su cui gli algoritmi
sono chiamati ad operare e quindi si aumenta la velocitagrave di calcolo 2) si riesce a rendere difficili alcuni problemi
computazionali che sono semplici (o addirittura banali) nellrsquoalgebra ordinaria al fine di aumentare la sicurezza
nelle comunicazioni Lrsquoidea egrave semplice ma potente Forse non lo sappiamo ma usiamo spesso laritmetica
modulare Potremmo chiamarla aritmetica dellorologio
Infatti pensiamo ad un normale orologio con 24 ore Se sono le 15 ed un amico ci comunica che saragrave a
casa nostra tra 5 ore sappiamo che egli verragrave alle 20 infatti 15+5=20 Ma se sono le 23 e dobbiamo partire fra 7
ore certamente non diciamo che la partenza saragrave alle 30 anche se 23+7=30 Sappiamo che dovremo partire alle
6 Allo stesso modo se sono le 20 che ora saragrave tra 14 ore Non diremo 34 anche se 20+14=34 ma diremo che
sono le 10 Come si spiega tutto ciograve
Immaginiamo di segnare sul quadrante dellrsquoorologio 24 ore Se la lancetta segna le 23 aggiungere 7 ore
significa spostarsi di 7 posti fino ad arrivare alle 6 Si giunge allo stesso risultato calcolando 23+7=30 ed
osservando che 30=1sdot24+6 o che egrave lo stesso 3024 =1 con resto 6 che significa che 30 lo si ottiene facendo fare
alla lancetta un giro completo piugrave 6
25
Se la lancetta segna le 20 e aggiungiamo 14 ore lrsquoorologio segneragrave le 10 percheacute 20+14=34 ma 3424= 1
con resto 10 per cui 34 lo si ottiene percorrendo un giro completo piugrave 10
Proviamo con il normale orologio a 12 ore I numeri che vediamo sul quadrante sono 0 1 2 3 4 5 6 7
8 9 10 11 Il numero 12 non compare percheacute a partire da 0 trascorse 12 ore torniamo di nuovo a 0 Questa
volta per fare un giro completo occorrono 12 ore Pertanto se sono le 7 che ore saranno tra 24 ore Saranno
ancora le 7 percheacute 7+24=31 ma 3112 = 2 con resto 7 cioegrave si compiono 2 giri completi piugrave 7 se sono le 8 tra 6
ore saranno le 2 percheacute 8+6=14 ma 1412=1 con resto 2 Dagli esempi dovrebbe risultare chiaro allora che ciograve
che contano non sono i risultati delle somme ma i loro resti nelle divisioni per il numero delle ore segnate sul
quadrante dellrsquoorologio
La stessa cosa succede con i giorni della settimana se pensiamo a un orologio con 7 ore sul quadrante
Facciamo corrispondere ai giorni della settimana i numeri da 0 a 6 (figura 10)
domenica Lunedigrave Martedigrave Mercoledigrave Giovedigrave Venerdigrave Sabato darr darr darr darr darr darr darr 0 1 2 3 4 5 6
Figura 10 Corrispondenza dei giorni della settimana con i numeri da 0 a 6
Se per esempio oggi egrave venerdigrave che giorno saragrave tra 12 giorni
Dovremo calcolare 5+12=17 ma i giorni si ripetono ogni 7 pertanto osservando che 177 =2 con resto 3
possiamo concludere che a partire da 5 e aggiungendo 12 si compiono 2 giri completi piugrave 3 ed essendo 3 il
numero corrispondente a mercoledigrave concludiamo che saragrave mercoledigrave Facciamo un altro esempio se oggi egrave
lunedigrave (1) che giorno saragrave tra 20 giorni Calcoliamo 1+20=21 217= 3 con resto 0 quindi saragrave domenica
Il numero n delle ore sullrsquoorologio costituisce quello che si chiama il modulo e individua lrsquoaritmetica di
modulo n in cui lrsquoinsieme dei numeri con i quali si opera indicato con Zn egrave lrsquoinsieme dei possibili resti della
divisione per n e cioegrave Zn=0 1 2 3 hellip nndash1e le operazioni si eseguono con le regole illustrate negli esempi
precedenti
Lrsquoesempio dellrsquoorologio a 24 ore costituisce la cosiddetta aritmetica finita di modulo 24 in essa Z24=0
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 essendo questi ultimi i possibili resti
della divisione per 24 Lrsquoorologio a 12 ore costituisce lrsquoaritmetica finita di modulo 12 in essa Z12=0 1 2 3 4
5 6 7 8 9 10 11 essendo questi ultimi i possibili resti della divisione per 12 Lrsquoesempio dei giorni della
settimana egrave lrsquoaritmetica finita di modulo 7 in cui Z7=0 1 2 3 4 5 6 essendo questi ultimi i possibili resti
della divisione per 7 Riassumiamo costruendo unrsquoaritmetica finita di modulo 4 I possibili resti della divisione
per 4 sono 0 1 2 3 quindi Z4=0123 Lrsquoaddizione e la moltiplicazione in Z4 si esegue come negli esempi
della tabella 6
26
operazioni indicate
Risultato nellrsquoaritmetica ordinaria
Risultato nellrsquoaritmetica modulo 4
2+2 4 0 percheacute 44=1 con resto 0
3+2 5 1 percheacute 54=1 con resto 1
2+1 3 3 percheacute 34=0 con resto 3
3sdot3 9 1 percheacute 94=2 con resto 1
3sdot2 6 2 percheacute 64=1 con resto 2
2sdot2 4 0 percheacute 44=1 con resto 0
Tabella 6 Addizione e moltiplicazione nellrsquoaritmetica finita di modulo 4
Si possono costruire le tavole dellrsquoaddizione e della moltiplicazione dellrsquoaritmetica modulo 4 che costituiscono
le tabelline di questa aritmetica sulla base delle quali si esegue qualsiasi addizione e moltiplicazione modulo 4
Nella tabella 7 sono spiegate le tabelline dellrsquoaritmetica in modulo 4
Tabella 7 Tavole dellrsquoaddizione e della moltiplicazione dellrsquoaritmetica modulo 4
Infine per indicare che due numeri a e b divisi per n danno lo stesso resto si usano le seguenti notazioni
tutte equivalenti tra loro
a=b mod n andashb=0 mod 4 a equiv b (mod n) che si legge a egrave congruo b modulo 4
Esempio
26=12 mod 7 egrave la stessa cosa di
26ndash12=0 mod 7 che egrave la stessa cosa di
26 equiv 12 (mod 7) e tutte e tre stanno a indicare che 26 e 12 divisi per 7 danno lo stesso resto che egrave 5 e
pertanto sono tutti equivalenti a 5
Facciamo vedere come sfruttare lrsquoaritmetica modulare per calcolare potenze come 2341 (figura 11) Il
metodo si basa sulla proprietagrave che il resto del quadrato di un numero a per un dato modulo n egrave uguale al
quadrato del resto dello stesso numero a per lo stesso modulo n cioegrave a2 mod n =(a mod n)2
+ 0 1 2 3
0 0 1 2 3
1 1 2 3 0
2 2 3 0 1
3 3 0 1 2
x 0 1 2 3
0 0 0 0 0
1 0 1 2 3
2 0 2 0 2
3 0 3 2 1
27
Figura 11 Il metodo per calcolare 2341
La funzione di Eulero
Per ogni intero ngt1 si definisce la funzione di Eulero = numero di interi minori di n e primi con esso Ad
esempio
bull ( ) 45 =φ percheacute gli interi minori di 5 sono 1 2 3 4 ed essi sono tutti primi con n
bull ( ) 26 =φ percheacute gli interi minori di 6 sono 1 2 3 4 5 e fra essi solo 1 e 5 sono primi con 6
bull ( ) 67 =φ percheacute gli interi minori di 7 sono 1 2 3 4 5 6 ed essi sono tutti primi con 7
bull ( ) 412 =φ percheacute gli interi minori di 12 sono 1 2 3 4 5 6 7 8 9 10 11 e fra essi solo 1 5 7
11 sono primi con 12
Se si conosce la scomposizione in fattori del numero n il seguente teorema ci fornisce un metodo per
calcolare Infatti esso afferma che per ogni ngt1 non primo ( )
minussdotsdot
minussdot
minussdotnppp
n=nφ 11
11
11
21
dove
p1 p2 hellip pn sono i fattori primi di n presi senza molteplicitagrave
22 mod 341=4
24=(22)2=(22 mod 341)2=42=16mod341=16
28=(24)2=(16)2=256mod341=256
216= (28)2=(256)2=65536mod341=64
232=(216)2=(64)2=4096mod341=4
264=(232)2=42=16mod341=16
2128=(264)2=(16)2=256mod341=256
2256=(2128)2=(256)2=65536mod341=64
2341=2(256+64+16+4+1) 2256 264 216 24 21 x x x x
64 1
1024 mod 341
= 1 x 64
64 x 16
1024 mod 341
1 x 2 =
=
x
28
Ad esempio
essendo 12 = 3sdot2sdot2 ( ) 42
1
3
212
2
11
3
111212 ===φ sdotsdot
minussdot
minussdot
essendo 6=2sdot3 ( ) 22
1
3
26
2
11
3
1166 ===φ sdotsdot
minussdot
minussdot
se n=psdotq ( ) ( ) ( )11111
11
1 minussdotminusminussdotminussdot
minussdot
minussdot qp=q
q
p
pn=
qpn=nφ
Ovviamente se n egrave un numero primo = nndash1
Vale inoltre il seguente teorema di Eulero per ngt1 e per ogni altn e primo con n si ha
Ad esempio per n=6 ( ) 26 =φ infatti i primi con 6 sono 1 e 5 per il teorema di Eulero si ha
2mod1255
2mod1112
2
equiv=
equiv=
per n=5 ( ) 45 =φ e i primi con 5 sono 1 2 3 4 e per il teorema di Eulero si ha
5mod12564
5mod1813
5mod1162
5mod111
4
4
4
4
equiv=
equiv=
equiv=
equiv=
Si puograve notare come nel caso in cui n egrave un numero primo si ritrova il piccolo teorema di Fermat
Infatti per n primo ( )nφ = nndash1 e per il teorema di Eulero per ogni altn e primo con n Ricordiamo infatti
che il piccolo teorema di Fermat afferma che se n egrave un numero primo e a un intero minore di n allora egrave
divisibile per n che con il linguaggio dellrsquoaritmetica modulare diventa che puograve essere riscritto e se a egrave primo
con n allora egrave che egrave equivalente a
Infine si prova che per ogni altn e primo con esso esiste lrsquoinverso di a e esso egrave dato da ( ) 1minusnaφ Infatti
( ) ( ) na=aa nφnφ1mod1 equivsdot minus per il teorema di Eulero Si ricorda che lrsquoinverso di un numero a egrave quel numero che
moltiplicato per a dagrave 1 indicato convenzionalmente con andash1
Ad esempio per n=5 i primi con 5 sono 1 2 3 4 e per ognuno di questi esiste lrsquoinverso infatti
bull lrsquoinverso di 1 egrave ( ) 1mod51111 31415 equivminusminus ===φ
e infatti
bull lrsquoinverso di 2 egrave ( ) 3mod58222 31415 equivminusminus ===φ
e infatti
bull lrsquoinverso di 3 egrave ( ) 2mod527333 31415 equivminusminus ===φ
e infatti
bull lrsquoinverso di 4 egrave ( ) 4mod564444 31415 equivminusminus ===φ
Le funzioni unidirezionali
Chiamiamo funzione da un insieme A a un insieme B qualunque procedura che associa a ogni elemento
di un insieme A (detto dominio) uno e un solo elemento di un insieme B (detto condominio) In simboli f
A rarr B Se poi indichiamo con x il generico elemento dellrsquoinsieme A e con y il generico elemento dellrsquoinsieme B
la f indica la procedura che ad ogni xisinA associa un yisinB e cioegrave y=f(x) ad esempio ldquofare il doppio dihelliprdquo
29
prendendo come dominio e codominio lrsquoinsieme dei numeri interi egrave in questo senso una funzione percheacute dato
ad esempio il numero 3 lo trasforma nel numero 6 come 5 lo trasforma in 10 e cosigrave via
Molte funzioni matematiche sono cosiddette bidirezionali nel senso che egrave facile dato un determinato x
generare il corrispondente y ma egrave altrettanto facile invertire la funzione cioegrave ritrovare lrsquoelemento x originario a
partire dal suo corrispondente
Facciamo qualche esempio
bull funzione xrarr fare il doppiorarr 2sdotx= y 3rarr fare il doppiorarr 2sdot3 = 6
funzione inversa y=2sdotx rarr fare la metagraverarr x 6=2sdot3 rarr fare la metagraverarr 3
bull funzione xrarr fare il quadruplorarr 4sdotxrarr aggiungere 1rarr sdoty=4sdotx +1
5rarr fare il quadruplorarr 4sdot5rarr aggiungere 1rarr 4sdot5 +1=21
funzione inversa y=4sdotx +1rarr sottrarre 1rarr 4sdot xrarr dividere per 4rarr x
21=4sdot5 +1rarr sottrarre 1rarr 4sdot 5rarr dividere per 4rarr 5
Le funzioni unidirezionali sono invece quelle funzioni facilmente calcolabili ma che non si possono invertire
Le funzioni cosiddette pseudounidirezionali (dette anche funzioni trappola a molla segreta) sono invece
quelle funzioni facilmente calcolabili ma che non altrettanto facilmente si possono invertire a meno che non si
conoscano alcune informazioni (la molla segreta) utilizzate nella loro costruzione
Lrsquoaritmetica modulare gioca un ruolo determinante in questo caso infatti permette di trasformare
funzioni bidirezionali in funzioni pseudounidirezionali
Facciamo lrsquoesempio della funzione ldquofare il quadruplordquo in simboli f(x)=4sdotx Egrave facilmente calcolabile
percheacute dato x per ottenere f(x) basta moltiplicare per 4 ma egrave altrettanto facile calcolare la sua inversa percheacute
dato f(x) basta dividere per 4 per ottenere lrsquooriginario x Ma anche se non avessimo la procedura inversa di
dividere per 4 sarebbe facile ritrovare lrsquoelemento originario anche procedendo per tentativi ed eliminazione
infatti se per esempio f(x) =20 si puograve tentare x=3 in tal caso f(x)=12 troppo piccolo quindi x deve essere
maggiore di 3 Si puograve allora pensare a 6 ma f(x)=24 troppo grande quindi x deve essere minore di 6 e cosigrave via
Vediamo cosa accade se calcoliamo utilizzando una aritmetica modulare Per esempio consideriamo la
stessa funzione f(x)=4sdotx in una aritmetica modulo 7 Possiamo osservare che la funzione non si comporta piugrave in
modo regolare come prima per accorgersene basta costruire una tabella (tabella 8)
x 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
f(x)=4sdotx 4 8 12 16 20 24 28 32 36 40 44 48 52 56 60
f(x)=4sdotmod 7 4 1 5 2 6 3 0 4 1 5 2 6 3 0 4
Tabella 8 La funzione f(x)=4sdotx in una aritmetica modulo 7
Anche in questa semplice situazione egrave chiaro che egrave piugrave complicato invertire la funzione e pertanto i valori
di x sono molto meglio protetti Si puograve fare anche lrsquoesempio della funzione esponenziale f(x)=3 x (tabella 9)
Tabella 9 La funzione f(x)=3 x in aritmetica modulo 11
x 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
f(x)=x3 1 8 27 64 125 216 343 512 729 1000 hellip hellip hellip hellip hellip
f(x)=x3 mod 11 1 8 5 9 4 7 2 6 3 10 hellip hellip hellip hellip hellip
30
Il cifrario a chiave pubblica RSA
Uno dei piugrave noti sistemi crittografici a chiave pubblica che sfrutta le idee precedentemente descritte egrave il
metodo RSA proposto dai matematici R L Rivest A Shamir e L Adlemann nel 1978 Esso risolve il problema
dello scambio delle chiavi in quanto queste ultime sono conosciute solamente ai rispettivi proprietari che non le
hanno preventivamente concordate e scambiate
Illustriamo schematicamente come i due utenti Mitt e Dest possano scambiarsi un messaggio segreto
utilizzando il metodo RSA Entrambi Mitt e Dest indipendentemente lrsquouno dallrsquoaltro poi
1 scelgono in modo casuale due numeri primi p q grandi (di 200-300 cifre in base 10)
2 calcolano N = psdotq e Φ(N) = (pndash1)sdot(qndash1)
3 scelgono un intero eltΦ(N) e primo con Φ(N) tale numero e saragrave la chiave pubblica
4 calcolano il numero d inverso di e mod Φ(N) tale cioegrave che esdotdequiv 1mod Φ(N) tale numero d saragrave
la chiave privata
5 rendono pubblici i numeri N ed e
Mitt per spedire un messaggio a Dest compie le seguenti operazioni
1 codifica il messaggio in un modo standard usando i numeri lt N
2 trasforma ogni numero M di tale codifica in Me (mod N) e lo spedisce a Dest
per decodificare il messaggio ricevuto Me Dest calcola (Me)d =Mesdotd =Mndash1=M (modN) riottenendo il messaggio
originale
Figura 12 Schema di cifrario con metodo RSA
31
Figura 13 Esempio di applicazione di metodi RSA
In che cosa consiste la sicurezza del metodo Da quanto esposto si osserva che per decodificare il
messaggio bisogna
1 conoscere d (chiave segreta)
2 essendo d lrsquoinverso di e nellrsquoaritmetica mod Φ(N) essendo e noto egrave necessario conoscere Φ(N)
3 ma noto N per calcolare Φ(N) egrave necessario conoscere i fattori primi di N cioegrave egrave necessario fattorizzare
N che egrave un problema computazionalmente difficile per quanto osservato in precedenza
Anche se non egrave stato dimostrato che non si possa rompere il codice in altro modo e cioegrave senza conoscere Φ(N) e i
fattori di N a tuttrsquooggi si puograve affermare che la sicurezza del metodo dipende essenzialmente dai seguenti fatti
Per codificare il messaggio bisogna saper costruire dei numeri primi grandi e tale operazione egrave
computazionalmente veloce si puograve infatti dimostrare che la complessitagrave computazionale di opportuni test di
primalitagrave per stabilire se un numero n egrave primo utilizzando il linguaggio di quel ramo della matematica nota
come teoria della complessitagrave egrave ldquoquasi-polinomialerdquo
Per violare il sistema bisogna saper fattorizzare interi grandi ottenuti come prodotto di due primi tale
problema egrave computazionalmente ldquolentordquo cioegrave con il linguaggio della teoria della complessitagrave appartiene alla
classe dei problemi non polinomiali Tale marcata differenza tra la velocitagrave di esecuzione delle operazioni di
costruzione di numeri primi grandi e di fattorizzazione di interi grandi garantisce la sicurezza del metodo
almeno per un tempo sufficientemente lungo Ad esempio con la tecnologia attuale lrsquooperazione di
fattorizzazione di un intero di 140 cifre in base 10 prodotto di due numeri primi casuali calcolati in pochi
secondi su un computer disponibile in commercio richiede utilizzando vari supercomputers operanti
parallelamente circa un mese
La RSA Security Inc gestisce una sfida a livello mondiale ove vengono premiati coloro che fattorizzano
gli interi proposti da loro in una particolare lista Ad esempio il 3 dicembre del 2003 egrave stato fattorizzato
32
rsa576 =
188198812920607963838697239461650439807163563379417382700763356422988859715234
665485319060606504743045317388011303396716199692321205734031879550656996221305
168759307650257059
un numero di 174 cifre decimali prodotto di due primi di 87 cifre
p =
398075086424064937397125500550386491199064362342526708406385189575946388957261
768583317
q =
472772146107435302536223071973048224632914695302097116459852171130520711256363
590397527
Le chiavi attualmente utilizzate dallRSA sono a 309 cifre decimali
La firma digitale
Consideriamo al solito un mittente che deve inviare a un destinatario un messaggio m La codifica di m
con il metodo descritto assicura lrsquoautenticitagrave del messaggio ma non fornisce alcuna sicurezza sulla sua
paternitagrave Infatti il messaggio m pur essendo autentico potrebbe essere stato inviato da qualcuno che si spaccia
per il mittente Questa egrave unimportantissima questione particolarmente nella trasmissione di messaggi che oltre
a dover essere segreti devono garantire la loro origine
Si dovrebbe quindi disporre di un analogo della firma manuale detta appunto firma digitale La firma
digitale deve allora essere progettata in modo da possedere le stesse caratteristiche di una firma manuale e cioegrave
lrsquoautenticitagrave la non falsificabilitagrave e lrsquoimpossibiltagrave di essere riutilizzata Facciamo vedere come lo stesso metodo
RSA puograve essere utilizzato per progettare una firma digitale
La situazione egrave la seguente il mittente (di seguito indicato con Mitt) invia un messaggio m con la firma
F al destinatario (di seguito indicato con Dest) Siano a b rispettivamente le chiavi pubblica e segreta di MITT
siano e d rispettivamente le chiavi pubblica e segreta di DEST
La procedura per apporre la firma digitale F al messaggio m egrave illustrata nei seguenti passi riassunti nel
grafico della figura 14
1 Mitt cripta la firma F (cioegrave i suoi dati identificativi) usando la propria chiave segreta (b)
ottenendo Fb
2 il messaggio m con la firma F criptata viene ulteriormente criptato con la chiave pubblica di
Dest (e) ottenendo (m Fb)e
3 Dest decodifica il messaggio con la sua chiave segreta (d) ottenendo
((m Fb)e)d = (me F(be)) d =m(e d)F(be d) = mFb
in cui la firma di Mitt egrave ancora criptata
4 Dest decodifica la firma di Mitt con la chiave pubblica di Mitt (a) ottenendo
(Fb)a = F(ba) = F
33
Grafico firma digitale
Mitt
Dest
pubblica
Fb
e dpubblica
a
((Fb)e)d=(Fb)ed=(Fb)1=Fb
(Fb)a=(F)ba=(F)1=F
ab de
(Fb)e
codifica
codificadecodifica
decodifica
1
2
3
4
5
6
7
8
segreta
b
segreta
Figura 14 Grafico firma digitale
Bibliografia
Thomas Beth Comunicazioni e sicurezza su Internet in ldquoLe Scienzerdquo n 330 febbraio 1996
Brian Butterworth Intelligenza matematica Vincere la paura dei numeri scoprendo le doti innate della mente
Rizzoli Milano 1999
John H Conway Richard K Guy Il libro dei numeri Hoepli Milano 2003
Richard Courant Herbert Robbins Che cosrsquoegrave la matematica Boringhieri Torino 1971
Philip J Davis Il mondo dei grandi numeri Zanichelli Bologna 1973
Keith Devlin Dove va la matematica Bollati Boringhieri Torino 1994
Jean Dieudonneacute Lrsquoarte dei numeri matematica e matematici oggi Mondadori Milano 1989
Martin E Ellmann La crittografia a chiave pubblica in La matematica della complessitagrave Quaderni n 67
settembre 1992 Le Scienze
Paolo Ferragina Fabrizio Luccio Crittografia principi ndash Algoritmi ndash Applicazioni Bollati Boringhieri Torino
2001
Godfrey H Hardy Apologia di un matematico Garzanti Milano 1989
Morris Kline Storia del pensiero matematico Einaudi Milano 1991
Serge Lang La bellezza della matematica Bollati Boringhieri Torino 1991
Mauro Leoncini Modelli di calcolo e complessitagrave computazionale in La matematica computazionale Quaderni
n 84 giugno 1995 Le Scienze
Fabrizio Luccio e Linda Pagli P = NP in La matematica della complessitagrave Quaderni n 67 settembre 1992
Le Scienze
Piergiorgio Odifreddi La Matematica del Novecento dagli insiemi alla complessitagrave Einaudi Torino 2000
34
ldquoPeriodico di matematicherdquo Serie VII Volume 7 Numero 2-3 luglio-dicembre 2000 Mathesis
ldquoPeriodico di matematicherdquo Serie VIII Volume 1 Numero 1 gennaio-marzo 2001 Mathesis
Carl Pomerance Alla ricerca dei numeri primi in ldquoLe Scienzerdquo n 174 febbraio 1983
Simon Singh Codici e segreti la storia affascinante dei messaggi cifrati dallrsquoantico Egitto a Internet Rizzoli
Milano 1999
Marcus du Sautoy Lrsquoenigma dei numeri primi lrsquoipotesi di Riemann lrsquoultimo grande mistero della matematica
Rizzoli Milano 2004
Gary Stix I segreti meglio custoditi la crittografia quantistica egrave passata dalla teoria al laboratorio per
approdare finalmente alle applicazioni in ldquoLe Scienzerdquo n 438 febbraio 2005
24
La sicurezza di un tale sistema si fonda sulla difficoltagrave di poter
1 ritrovare il testo cifrato provando ad applicare lrsquoalgoritmo GE che egrave pubblico ad ogni possibile
testo in chiaro il cui numero pur essendo enorme egrave comunque finito
2 ricavare lrsquoalgoritmo HD da GE
in quanto entrambe le tecniche sono computazionalmente inattuabili nel senso che richiedono un tempo
di calcolo di lunghezza al di fuori di ogni possibile considerazione anche per i piugrave potenti calcolatori
Per descrivere tali algoritmi sono necessari alcuni concetti matematici che andiamo a illustrare
Figura 9 Schema di cifrario a chiave pubblica
Lrsquoaritmetica modulare
Lrsquoaritmetica modulare la cui introduzione egrave dovuta a Gauss costituisce un sistema di calcolo con
importanti applicazioni nei test di primalitagrave e nei metodi che stanno alla base della sicurezza delle comunicazioni
elettroniche Con essa infatti si hanno i seguenti vantaggi 1) si riduce lo spazio dei numeri su cui gli algoritmi
sono chiamati ad operare e quindi si aumenta la velocitagrave di calcolo 2) si riesce a rendere difficili alcuni problemi
computazionali che sono semplici (o addirittura banali) nellrsquoalgebra ordinaria al fine di aumentare la sicurezza
nelle comunicazioni Lrsquoidea egrave semplice ma potente Forse non lo sappiamo ma usiamo spesso laritmetica
modulare Potremmo chiamarla aritmetica dellorologio
Infatti pensiamo ad un normale orologio con 24 ore Se sono le 15 ed un amico ci comunica che saragrave a
casa nostra tra 5 ore sappiamo che egli verragrave alle 20 infatti 15+5=20 Ma se sono le 23 e dobbiamo partire fra 7
ore certamente non diciamo che la partenza saragrave alle 30 anche se 23+7=30 Sappiamo che dovremo partire alle
6 Allo stesso modo se sono le 20 che ora saragrave tra 14 ore Non diremo 34 anche se 20+14=34 ma diremo che
sono le 10 Come si spiega tutto ciograve
Immaginiamo di segnare sul quadrante dellrsquoorologio 24 ore Se la lancetta segna le 23 aggiungere 7 ore
significa spostarsi di 7 posti fino ad arrivare alle 6 Si giunge allo stesso risultato calcolando 23+7=30 ed
osservando che 30=1sdot24+6 o che egrave lo stesso 3024 =1 con resto 6 che significa che 30 lo si ottiene facendo fare
alla lancetta un giro completo piugrave 6
25
Se la lancetta segna le 20 e aggiungiamo 14 ore lrsquoorologio segneragrave le 10 percheacute 20+14=34 ma 3424= 1
con resto 10 per cui 34 lo si ottiene percorrendo un giro completo piugrave 10
Proviamo con il normale orologio a 12 ore I numeri che vediamo sul quadrante sono 0 1 2 3 4 5 6 7
8 9 10 11 Il numero 12 non compare percheacute a partire da 0 trascorse 12 ore torniamo di nuovo a 0 Questa
volta per fare un giro completo occorrono 12 ore Pertanto se sono le 7 che ore saranno tra 24 ore Saranno
ancora le 7 percheacute 7+24=31 ma 3112 = 2 con resto 7 cioegrave si compiono 2 giri completi piugrave 7 se sono le 8 tra 6
ore saranno le 2 percheacute 8+6=14 ma 1412=1 con resto 2 Dagli esempi dovrebbe risultare chiaro allora che ciograve
che contano non sono i risultati delle somme ma i loro resti nelle divisioni per il numero delle ore segnate sul
quadrante dellrsquoorologio
La stessa cosa succede con i giorni della settimana se pensiamo a un orologio con 7 ore sul quadrante
Facciamo corrispondere ai giorni della settimana i numeri da 0 a 6 (figura 10)
domenica Lunedigrave Martedigrave Mercoledigrave Giovedigrave Venerdigrave Sabato darr darr darr darr darr darr darr 0 1 2 3 4 5 6
Figura 10 Corrispondenza dei giorni della settimana con i numeri da 0 a 6
Se per esempio oggi egrave venerdigrave che giorno saragrave tra 12 giorni
Dovremo calcolare 5+12=17 ma i giorni si ripetono ogni 7 pertanto osservando che 177 =2 con resto 3
possiamo concludere che a partire da 5 e aggiungendo 12 si compiono 2 giri completi piugrave 3 ed essendo 3 il
numero corrispondente a mercoledigrave concludiamo che saragrave mercoledigrave Facciamo un altro esempio se oggi egrave
lunedigrave (1) che giorno saragrave tra 20 giorni Calcoliamo 1+20=21 217= 3 con resto 0 quindi saragrave domenica
Il numero n delle ore sullrsquoorologio costituisce quello che si chiama il modulo e individua lrsquoaritmetica di
modulo n in cui lrsquoinsieme dei numeri con i quali si opera indicato con Zn egrave lrsquoinsieme dei possibili resti della
divisione per n e cioegrave Zn=0 1 2 3 hellip nndash1e le operazioni si eseguono con le regole illustrate negli esempi
precedenti
Lrsquoesempio dellrsquoorologio a 24 ore costituisce la cosiddetta aritmetica finita di modulo 24 in essa Z24=0
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 essendo questi ultimi i possibili resti
della divisione per 24 Lrsquoorologio a 12 ore costituisce lrsquoaritmetica finita di modulo 12 in essa Z12=0 1 2 3 4
5 6 7 8 9 10 11 essendo questi ultimi i possibili resti della divisione per 12 Lrsquoesempio dei giorni della
settimana egrave lrsquoaritmetica finita di modulo 7 in cui Z7=0 1 2 3 4 5 6 essendo questi ultimi i possibili resti
della divisione per 7 Riassumiamo costruendo unrsquoaritmetica finita di modulo 4 I possibili resti della divisione
per 4 sono 0 1 2 3 quindi Z4=0123 Lrsquoaddizione e la moltiplicazione in Z4 si esegue come negli esempi
della tabella 6
26
operazioni indicate
Risultato nellrsquoaritmetica ordinaria
Risultato nellrsquoaritmetica modulo 4
2+2 4 0 percheacute 44=1 con resto 0
3+2 5 1 percheacute 54=1 con resto 1
2+1 3 3 percheacute 34=0 con resto 3
3sdot3 9 1 percheacute 94=2 con resto 1
3sdot2 6 2 percheacute 64=1 con resto 2
2sdot2 4 0 percheacute 44=1 con resto 0
Tabella 6 Addizione e moltiplicazione nellrsquoaritmetica finita di modulo 4
Si possono costruire le tavole dellrsquoaddizione e della moltiplicazione dellrsquoaritmetica modulo 4 che costituiscono
le tabelline di questa aritmetica sulla base delle quali si esegue qualsiasi addizione e moltiplicazione modulo 4
Nella tabella 7 sono spiegate le tabelline dellrsquoaritmetica in modulo 4
Tabella 7 Tavole dellrsquoaddizione e della moltiplicazione dellrsquoaritmetica modulo 4
Infine per indicare che due numeri a e b divisi per n danno lo stesso resto si usano le seguenti notazioni
tutte equivalenti tra loro
a=b mod n andashb=0 mod 4 a equiv b (mod n) che si legge a egrave congruo b modulo 4
Esempio
26=12 mod 7 egrave la stessa cosa di
26ndash12=0 mod 7 che egrave la stessa cosa di
26 equiv 12 (mod 7) e tutte e tre stanno a indicare che 26 e 12 divisi per 7 danno lo stesso resto che egrave 5 e
pertanto sono tutti equivalenti a 5
Facciamo vedere come sfruttare lrsquoaritmetica modulare per calcolare potenze come 2341 (figura 11) Il
metodo si basa sulla proprietagrave che il resto del quadrato di un numero a per un dato modulo n egrave uguale al
quadrato del resto dello stesso numero a per lo stesso modulo n cioegrave a2 mod n =(a mod n)2
+ 0 1 2 3
0 0 1 2 3
1 1 2 3 0
2 2 3 0 1
3 3 0 1 2
x 0 1 2 3
0 0 0 0 0
1 0 1 2 3
2 0 2 0 2
3 0 3 2 1
27
Figura 11 Il metodo per calcolare 2341
La funzione di Eulero
Per ogni intero ngt1 si definisce la funzione di Eulero = numero di interi minori di n e primi con esso Ad
esempio
bull ( ) 45 =φ percheacute gli interi minori di 5 sono 1 2 3 4 ed essi sono tutti primi con n
bull ( ) 26 =φ percheacute gli interi minori di 6 sono 1 2 3 4 5 e fra essi solo 1 e 5 sono primi con 6
bull ( ) 67 =φ percheacute gli interi minori di 7 sono 1 2 3 4 5 6 ed essi sono tutti primi con 7
bull ( ) 412 =φ percheacute gli interi minori di 12 sono 1 2 3 4 5 6 7 8 9 10 11 e fra essi solo 1 5 7
11 sono primi con 12
Se si conosce la scomposizione in fattori del numero n il seguente teorema ci fornisce un metodo per
calcolare Infatti esso afferma che per ogni ngt1 non primo ( )
minussdotsdot
minussdot
minussdotnppp
n=nφ 11
11
11
21
dove
p1 p2 hellip pn sono i fattori primi di n presi senza molteplicitagrave
22 mod 341=4
24=(22)2=(22 mod 341)2=42=16mod341=16
28=(24)2=(16)2=256mod341=256
216= (28)2=(256)2=65536mod341=64
232=(216)2=(64)2=4096mod341=4
264=(232)2=42=16mod341=16
2128=(264)2=(16)2=256mod341=256
2256=(2128)2=(256)2=65536mod341=64
2341=2(256+64+16+4+1) 2256 264 216 24 21 x x x x
64 1
1024 mod 341
= 1 x 64
64 x 16
1024 mod 341
1 x 2 =
=
x
28
Ad esempio
essendo 12 = 3sdot2sdot2 ( ) 42
1
3
212
2
11
3
111212 ===φ sdotsdot
minussdot
minussdot
essendo 6=2sdot3 ( ) 22
1
3
26
2
11
3
1166 ===φ sdotsdot
minussdot
minussdot
se n=psdotq ( ) ( ) ( )11111
11
1 minussdotminusminussdotminussdot
minussdot
minussdot qp=q
q
p
pn=
qpn=nφ
Ovviamente se n egrave un numero primo = nndash1
Vale inoltre il seguente teorema di Eulero per ngt1 e per ogni altn e primo con n si ha
Ad esempio per n=6 ( ) 26 =φ infatti i primi con 6 sono 1 e 5 per il teorema di Eulero si ha
2mod1255
2mod1112
2
equiv=
equiv=
per n=5 ( ) 45 =φ e i primi con 5 sono 1 2 3 4 e per il teorema di Eulero si ha
5mod12564
5mod1813
5mod1162
5mod111
4
4
4
4
equiv=
equiv=
equiv=
equiv=
Si puograve notare come nel caso in cui n egrave un numero primo si ritrova il piccolo teorema di Fermat
Infatti per n primo ( )nφ = nndash1 e per il teorema di Eulero per ogni altn e primo con n Ricordiamo infatti
che il piccolo teorema di Fermat afferma che se n egrave un numero primo e a un intero minore di n allora egrave
divisibile per n che con il linguaggio dellrsquoaritmetica modulare diventa che puograve essere riscritto e se a egrave primo
con n allora egrave che egrave equivalente a
Infine si prova che per ogni altn e primo con esso esiste lrsquoinverso di a e esso egrave dato da ( ) 1minusnaφ Infatti
( ) ( ) na=aa nφnφ1mod1 equivsdot minus per il teorema di Eulero Si ricorda che lrsquoinverso di un numero a egrave quel numero che
moltiplicato per a dagrave 1 indicato convenzionalmente con andash1
Ad esempio per n=5 i primi con 5 sono 1 2 3 4 e per ognuno di questi esiste lrsquoinverso infatti
bull lrsquoinverso di 1 egrave ( ) 1mod51111 31415 equivminusminus ===φ
e infatti
bull lrsquoinverso di 2 egrave ( ) 3mod58222 31415 equivminusminus ===φ
e infatti
bull lrsquoinverso di 3 egrave ( ) 2mod527333 31415 equivminusminus ===φ
e infatti
bull lrsquoinverso di 4 egrave ( ) 4mod564444 31415 equivminusminus ===φ
Le funzioni unidirezionali
Chiamiamo funzione da un insieme A a un insieme B qualunque procedura che associa a ogni elemento
di un insieme A (detto dominio) uno e un solo elemento di un insieme B (detto condominio) In simboli f
A rarr B Se poi indichiamo con x il generico elemento dellrsquoinsieme A e con y il generico elemento dellrsquoinsieme B
la f indica la procedura che ad ogni xisinA associa un yisinB e cioegrave y=f(x) ad esempio ldquofare il doppio dihelliprdquo
29
prendendo come dominio e codominio lrsquoinsieme dei numeri interi egrave in questo senso una funzione percheacute dato
ad esempio il numero 3 lo trasforma nel numero 6 come 5 lo trasforma in 10 e cosigrave via
Molte funzioni matematiche sono cosiddette bidirezionali nel senso che egrave facile dato un determinato x
generare il corrispondente y ma egrave altrettanto facile invertire la funzione cioegrave ritrovare lrsquoelemento x originario a
partire dal suo corrispondente
Facciamo qualche esempio
bull funzione xrarr fare il doppiorarr 2sdotx= y 3rarr fare il doppiorarr 2sdot3 = 6
funzione inversa y=2sdotx rarr fare la metagraverarr x 6=2sdot3 rarr fare la metagraverarr 3
bull funzione xrarr fare il quadruplorarr 4sdotxrarr aggiungere 1rarr sdoty=4sdotx +1
5rarr fare il quadruplorarr 4sdot5rarr aggiungere 1rarr 4sdot5 +1=21
funzione inversa y=4sdotx +1rarr sottrarre 1rarr 4sdot xrarr dividere per 4rarr x
21=4sdot5 +1rarr sottrarre 1rarr 4sdot 5rarr dividere per 4rarr 5
Le funzioni unidirezionali sono invece quelle funzioni facilmente calcolabili ma che non si possono invertire
Le funzioni cosiddette pseudounidirezionali (dette anche funzioni trappola a molla segreta) sono invece
quelle funzioni facilmente calcolabili ma che non altrettanto facilmente si possono invertire a meno che non si
conoscano alcune informazioni (la molla segreta) utilizzate nella loro costruzione
Lrsquoaritmetica modulare gioca un ruolo determinante in questo caso infatti permette di trasformare
funzioni bidirezionali in funzioni pseudounidirezionali
Facciamo lrsquoesempio della funzione ldquofare il quadruplordquo in simboli f(x)=4sdotx Egrave facilmente calcolabile
percheacute dato x per ottenere f(x) basta moltiplicare per 4 ma egrave altrettanto facile calcolare la sua inversa percheacute
dato f(x) basta dividere per 4 per ottenere lrsquooriginario x Ma anche se non avessimo la procedura inversa di
dividere per 4 sarebbe facile ritrovare lrsquoelemento originario anche procedendo per tentativi ed eliminazione
infatti se per esempio f(x) =20 si puograve tentare x=3 in tal caso f(x)=12 troppo piccolo quindi x deve essere
maggiore di 3 Si puograve allora pensare a 6 ma f(x)=24 troppo grande quindi x deve essere minore di 6 e cosigrave via
Vediamo cosa accade se calcoliamo utilizzando una aritmetica modulare Per esempio consideriamo la
stessa funzione f(x)=4sdotx in una aritmetica modulo 7 Possiamo osservare che la funzione non si comporta piugrave in
modo regolare come prima per accorgersene basta costruire una tabella (tabella 8)
x 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
f(x)=4sdotx 4 8 12 16 20 24 28 32 36 40 44 48 52 56 60
f(x)=4sdotmod 7 4 1 5 2 6 3 0 4 1 5 2 6 3 0 4
Tabella 8 La funzione f(x)=4sdotx in una aritmetica modulo 7
Anche in questa semplice situazione egrave chiaro che egrave piugrave complicato invertire la funzione e pertanto i valori
di x sono molto meglio protetti Si puograve fare anche lrsquoesempio della funzione esponenziale f(x)=3 x (tabella 9)
Tabella 9 La funzione f(x)=3 x in aritmetica modulo 11
x 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
f(x)=x3 1 8 27 64 125 216 343 512 729 1000 hellip hellip hellip hellip hellip
f(x)=x3 mod 11 1 8 5 9 4 7 2 6 3 10 hellip hellip hellip hellip hellip
30
Il cifrario a chiave pubblica RSA
Uno dei piugrave noti sistemi crittografici a chiave pubblica che sfrutta le idee precedentemente descritte egrave il
metodo RSA proposto dai matematici R L Rivest A Shamir e L Adlemann nel 1978 Esso risolve il problema
dello scambio delle chiavi in quanto queste ultime sono conosciute solamente ai rispettivi proprietari che non le
hanno preventivamente concordate e scambiate
Illustriamo schematicamente come i due utenti Mitt e Dest possano scambiarsi un messaggio segreto
utilizzando il metodo RSA Entrambi Mitt e Dest indipendentemente lrsquouno dallrsquoaltro poi
1 scelgono in modo casuale due numeri primi p q grandi (di 200-300 cifre in base 10)
2 calcolano N = psdotq e Φ(N) = (pndash1)sdot(qndash1)
3 scelgono un intero eltΦ(N) e primo con Φ(N) tale numero e saragrave la chiave pubblica
4 calcolano il numero d inverso di e mod Φ(N) tale cioegrave che esdotdequiv 1mod Φ(N) tale numero d saragrave
la chiave privata
5 rendono pubblici i numeri N ed e
Mitt per spedire un messaggio a Dest compie le seguenti operazioni
1 codifica il messaggio in un modo standard usando i numeri lt N
2 trasforma ogni numero M di tale codifica in Me (mod N) e lo spedisce a Dest
per decodificare il messaggio ricevuto Me Dest calcola (Me)d =Mesdotd =Mndash1=M (modN) riottenendo il messaggio
originale
Figura 12 Schema di cifrario con metodo RSA
31
Figura 13 Esempio di applicazione di metodi RSA
In che cosa consiste la sicurezza del metodo Da quanto esposto si osserva che per decodificare il
messaggio bisogna
1 conoscere d (chiave segreta)
2 essendo d lrsquoinverso di e nellrsquoaritmetica mod Φ(N) essendo e noto egrave necessario conoscere Φ(N)
3 ma noto N per calcolare Φ(N) egrave necessario conoscere i fattori primi di N cioegrave egrave necessario fattorizzare
N che egrave un problema computazionalmente difficile per quanto osservato in precedenza
Anche se non egrave stato dimostrato che non si possa rompere il codice in altro modo e cioegrave senza conoscere Φ(N) e i
fattori di N a tuttrsquooggi si puograve affermare che la sicurezza del metodo dipende essenzialmente dai seguenti fatti
Per codificare il messaggio bisogna saper costruire dei numeri primi grandi e tale operazione egrave
computazionalmente veloce si puograve infatti dimostrare che la complessitagrave computazionale di opportuni test di
primalitagrave per stabilire se un numero n egrave primo utilizzando il linguaggio di quel ramo della matematica nota
come teoria della complessitagrave egrave ldquoquasi-polinomialerdquo
Per violare il sistema bisogna saper fattorizzare interi grandi ottenuti come prodotto di due primi tale
problema egrave computazionalmente ldquolentordquo cioegrave con il linguaggio della teoria della complessitagrave appartiene alla
classe dei problemi non polinomiali Tale marcata differenza tra la velocitagrave di esecuzione delle operazioni di
costruzione di numeri primi grandi e di fattorizzazione di interi grandi garantisce la sicurezza del metodo
almeno per un tempo sufficientemente lungo Ad esempio con la tecnologia attuale lrsquooperazione di
fattorizzazione di un intero di 140 cifre in base 10 prodotto di due numeri primi casuali calcolati in pochi
secondi su un computer disponibile in commercio richiede utilizzando vari supercomputers operanti
parallelamente circa un mese
La RSA Security Inc gestisce una sfida a livello mondiale ove vengono premiati coloro che fattorizzano
gli interi proposti da loro in una particolare lista Ad esempio il 3 dicembre del 2003 egrave stato fattorizzato
32
rsa576 =
188198812920607963838697239461650439807163563379417382700763356422988859715234
665485319060606504743045317388011303396716199692321205734031879550656996221305
168759307650257059
un numero di 174 cifre decimali prodotto di due primi di 87 cifre
p =
398075086424064937397125500550386491199064362342526708406385189575946388957261
768583317
q =
472772146107435302536223071973048224632914695302097116459852171130520711256363
590397527
Le chiavi attualmente utilizzate dallRSA sono a 309 cifre decimali
La firma digitale
Consideriamo al solito un mittente che deve inviare a un destinatario un messaggio m La codifica di m
con il metodo descritto assicura lrsquoautenticitagrave del messaggio ma non fornisce alcuna sicurezza sulla sua
paternitagrave Infatti il messaggio m pur essendo autentico potrebbe essere stato inviato da qualcuno che si spaccia
per il mittente Questa egrave unimportantissima questione particolarmente nella trasmissione di messaggi che oltre
a dover essere segreti devono garantire la loro origine
Si dovrebbe quindi disporre di un analogo della firma manuale detta appunto firma digitale La firma
digitale deve allora essere progettata in modo da possedere le stesse caratteristiche di una firma manuale e cioegrave
lrsquoautenticitagrave la non falsificabilitagrave e lrsquoimpossibiltagrave di essere riutilizzata Facciamo vedere come lo stesso metodo
RSA puograve essere utilizzato per progettare una firma digitale
La situazione egrave la seguente il mittente (di seguito indicato con Mitt) invia un messaggio m con la firma
F al destinatario (di seguito indicato con Dest) Siano a b rispettivamente le chiavi pubblica e segreta di MITT
siano e d rispettivamente le chiavi pubblica e segreta di DEST
La procedura per apporre la firma digitale F al messaggio m egrave illustrata nei seguenti passi riassunti nel
grafico della figura 14
1 Mitt cripta la firma F (cioegrave i suoi dati identificativi) usando la propria chiave segreta (b)
ottenendo Fb
2 il messaggio m con la firma F criptata viene ulteriormente criptato con la chiave pubblica di
Dest (e) ottenendo (m Fb)e
3 Dest decodifica il messaggio con la sua chiave segreta (d) ottenendo
((m Fb)e)d = (me F(be)) d =m(e d)F(be d) = mFb
in cui la firma di Mitt egrave ancora criptata
4 Dest decodifica la firma di Mitt con la chiave pubblica di Mitt (a) ottenendo
(Fb)a = F(ba) = F
33
Grafico firma digitale
Mitt
Dest
pubblica
Fb
e dpubblica
a
((Fb)e)d=(Fb)ed=(Fb)1=Fb
(Fb)a=(F)ba=(F)1=F
ab de
(Fb)e
codifica
codificadecodifica
decodifica
1
2
3
4
5
6
7
8
segreta
b
segreta
Figura 14 Grafico firma digitale
Bibliografia
Thomas Beth Comunicazioni e sicurezza su Internet in ldquoLe Scienzerdquo n 330 febbraio 1996
Brian Butterworth Intelligenza matematica Vincere la paura dei numeri scoprendo le doti innate della mente
Rizzoli Milano 1999
John H Conway Richard K Guy Il libro dei numeri Hoepli Milano 2003
Richard Courant Herbert Robbins Che cosrsquoegrave la matematica Boringhieri Torino 1971
Philip J Davis Il mondo dei grandi numeri Zanichelli Bologna 1973
Keith Devlin Dove va la matematica Bollati Boringhieri Torino 1994
Jean Dieudonneacute Lrsquoarte dei numeri matematica e matematici oggi Mondadori Milano 1989
Martin E Ellmann La crittografia a chiave pubblica in La matematica della complessitagrave Quaderni n 67
settembre 1992 Le Scienze
Paolo Ferragina Fabrizio Luccio Crittografia principi ndash Algoritmi ndash Applicazioni Bollati Boringhieri Torino
2001
Godfrey H Hardy Apologia di un matematico Garzanti Milano 1989
Morris Kline Storia del pensiero matematico Einaudi Milano 1991
Serge Lang La bellezza della matematica Bollati Boringhieri Torino 1991
Mauro Leoncini Modelli di calcolo e complessitagrave computazionale in La matematica computazionale Quaderni
n 84 giugno 1995 Le Scienze
Fabrizio Luccio e Linda Pagli P = NP in La matematica della complessitagrave Quaderni n 67 settembre 1992
Le Scienze
Piergiorgio Odifreddi La Matematica del Novecento dagli insiemi alla complessitagrave Einaudi Torino 2000
34
ldquoPeriodico di matematicherdquo Serie VII Volume 7 Numero 2-3 luglio-dicembre 2000 Mathesis
ldquoPeriodico di matematicherdquo Serie VIII Volume 1 Numero 1 gennaio-marzo 2001 Mathesis
Carl Pomerance Alla ricerca dei numeri primi in ldquoLe Scienzerdquo n 174 febbraio 1983
Simon Singh Codici e segreti la storia affascinante dei messaggi cifrati dallrsquoantico Egitto a Internet Rizzoli
Milano 1999
Marcus du Sautoy Lrsquoenigma dei numeri primi lrsquoipotesi di Riemann lrsquoultimo grande mistero della matematica
Rizzoli Milano 2004
Gary Stix I segreti meglio custoditi la crittografia quantistica egrave passata dalla teoria al laboratorio per
approdare finalmente alle applicazioni in ldquoLe Scienzerdquo n 438 febbraio 2005
25
Se la lancetta segna le 20 e aggiungiamo 14 ore lrsquoorologio segneragrave le 10 percheacute 20+14=34 ma 3424= 1
con resto 10 per cui 34 lo si ottiene percorrendo un giro completo piugrave 10
Proviamo con il normale orologio a 12 ore I numeri che vediamo sul quadrante sono 0 1 2 3 4 5 6 7
8 9 10 11 Il numero 12 non compare percheacute a partire da 0 trascorse 12 ore torniamo di nuovo a 0 Questa
volta per fare un giro completo occorrono 12 ore Pertanto se sono le 7 che ore saranno tra 24 ore Saranno
ancora le 7 percheacute 7+24=31 ma 3112 = 2 con resto 7 cioegrave si compiono 2 giri completi piugrave 7 se sono le 8 tra 6
ore saranno le 2 percheacute 8+6=14 ma 1412=1 con resto 2 Dagli esempi dovrebbe risultare chiaro allora che ciograve
che contano non sono i risultati delle somme ma i loro resti nelle divisioni per il numero delle ore segnate sul
quadrante dellrsquoorologio
La stessa cosa succede con i giorni della settimana se pensiamo a un orologio con 7 ore sul quadrante
Facciamo corrispondere ai giorni della settimana i numeri da 0 a 6 (figura 10)
domenica Lunedigrave Martedigrave Mercoledigrave Giovedigrave Venerdigrave Sabato darr darr darr darr darr darr darr 0 1 2 3 4 5 6
Figura 10 Corrispondenza dei giorni della settimana con i numeri da 0 a 6
Se per esempio oggi egrave venerdigrave che giorno saragrave tra 12 giorni
Dovremo calcolare 5+12=17 ma i giorni si ripetono ogni 7 pertanto osservando che 177 =2 con resto 3
possiamo concludere che a partire da 5 e aggiungendo 12 si compiono 2 giri completi piugrave 3 ed essendo 3 il
numero corrispondente a mercoledigrave concludiamo che saragrave mercoledigrave Facciamo un altro esempio se oggi egrave
lunedigrave (1) che giorno saragrave tra 20 giorni Calcoliamo 1+20=21 217= 3 con resto 0 quindi saragrave domenica
Il numero n delle ore sullrsquoorologio costituisce quello che si chiama il modulo e individua lrsquoaritmetica di
modulo n in cui lrsquoinsieme dei numeri con i quali si opera indicato con Zn egrave lrsquoinsieme dei possibili resti della
divisione per n e cioegrave Zn=0 1 2 3 hellip nndash1e le operazioni si eseguono con le regole illustrate negli esempi
precedenti
Lrsquoesempio dellrsquoorologio a 24 ore costituisce la cosiddetta aritmetica finita di modulo 24 in essa Z24=0
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 essendo questi ultimi i possibili resti
della divisione per 24 Lrsquoorologio a 12 ore costituisce lrsquoaritmetica finita di modulo 12 in essa Z12=0 1 2 3 4
5 6 7 8 9 10 11 essendo questi ultimi i possibili resti della divisione per 12 Lrsquoesempio dei giorni della
settimana egrave lrsquoaritmetica finita di modulo 7 in cui Z7=0 1 2 3 4 5 6 essendo questi ultimi i possibili resti
della divisione per 7 Riassumiamo costruendo unrsquoaritmetica finita di modulo 4 I possibili resti della divisione
per 4 sono 0 1 2 3 quindi Z4=0123 Lrsquoaddizione e la moltiplicazione in Z4 si esegue come negli esempi
della tabella 6
26
operazioni indicate
Risultato nellrsquoaritmetica ordinaria
Risultato nellrsquoaritmetica modulo 4
2+2 4 0 percheacute 44=1 con resto 0
3+2 5 1 percheacute 54=1 con resto 1
2+1 3 3 percheacute 34=0 con resto 3
3sdot3 9 1 percheacute 94=2 con resto 1
3sdot2 6 2 percheacute 64=1 con resto 2
2sdot2 4 0 percheacute 44=1 con resto 0
Tabella 6 Addizione e moltiplicazione nellrsquoaritmetica finita di modulo 4
Si possono costruire le tavole dellrsquoaddizione e della moltiplicazione dellrsquoaritmetica modulo 4 che costituiscono
le tabelline di questa aritmetica sulla base delle quali si esegue qualsiasi addizione e moltiplicazione modulo 4
Nella tabella 7 sono spiegate le tabelline dellrsquoaritmetica in modulo 4
Tabella 7 Tavole dellrsquoaddizione e della moltiplicazione dellrsquoaritmetica modulo 4
Infine per indicare che due numeri a e b divisi per n danno lo stesso resto si usano le seguenti notazioni
tutte equivalenti tra loro
a=b mod n andashb=0 mod 4 a equiv b (mod n) che si legge a egrave congruo b modulo 4
Esempio
26=12 mod 7 egrave la stessa cosa di
26ndash12=0 mod 7 che egrave la stessa cosa di
26 equiv 12 (mod 7) e tutte e tre stanno a indicare che 26 e 12 divisi per 7 danno lo stesso resto che egrave 5 e
pertanto sono tutti equivalenti a 5
Facciamo vedere come sfruttare lrsquoaritmetica modulare per calcolare potenze come 2341 (figura 11) Il
metodo si basa sulla proprietagrave che il resto del quadrato di un numero a per un dato modulo n egrave uguale al
quadrato del resto dello stesso numero a per lo stesso modulo n cioegrave a2 mod n =(a mod n)2
+ 0 1 2 3
0 0 1 2 3
1 1 2 3 0
2 2 3 0 1
3 3 0 1 2
x 0 1 2 3
0 0 0 0 0
1 0 1 2 3
2 0 2 0 2
3 0 3 2 1
27
Figura 11 Il metodo per calcolare 2341
La funzione di Eulero
Per ogni intero ngt1 si definisce la funzione di Eulero = numero di interi minori di n e primi con esso Ad
esempio
bull ( ) 45 =φ percheacute gli interi minori di 5 sono 1 2 3 4 ed essi sono tutti primi con n
bull ( ) 26 =φ percheacute gli interi minori di 6 sono 1 2 3 4 5 e fra essi solo 1 e 5 sono primi con 6
bull ( ) 67 =φ percheacute gli interi minori di 7 sono 1 2 3 4 5 6 ed essi sono tutti primi con 7
bull ( ) 412 =φ percheacute gli interi minori di 12 sono 1 2 3 4 5 6 7 8 9 10 11 e fra essi solo 1 5 7
11 sono primi con 12
Se si conosce la scomposizione in fattori del numero n il seguente teorema ci fornisce un metodo per
calcolare Infatti esso afferma che per ogni ngt1 non primo ( )
minussdotsdot
minussdot
minussdotnppp
n=nφ 11
11
11
21
dove
p1 p2 hellip pn sono i fattori primi di n presi senza molteplicitagrave
22 mod 341=4
24=(22)2=(22 mod 341)2=42=16mod341=16
28=(24)2=(16)2=256mod341=256
216= (28)2=(256)2=65536mod341=64
232=(216)2=(64)2=4096mod341=4
264=(232)2=42=16mod341=16
2128=(264)2=(16)2=256mod341=256
2256=(2128)2=(256)2=65536mod341=64
2341=2(256+64+16+4+1) 2256 264 216 24 21 x x x x
64 1
1024 mod 341
= 1 x 64
64 x 16
1024 mod 341
1 x 2 =
=
x
28
Ad esempio
essendo 12 = 3sdot2sdot2 ( ) 42
1
3
212
2
11
3
111212 ===φ sdotsdot
minussdot
minussdot
essendo 6=2sdot3 ( ) 22
1
3
26
2
11
3
1166 ===φ sdotsdot
minussdot
minussdot
se n=psdotq ( ) ( ) ( )11111
11
1 minussdotminusminussdotminussdot
minussdot
minussdot qp=q
q
p
pn=
qpn=nφ
Ovviamente se n egrave un numero primo = nndash1
Vale inoltre il seguente teorema di Eulero per ngt1 e per ogni altn e primo con n si ha
Ad esempio per n=6 ( ) 26 =φ infatti i primi con 6 sono 1 e 5 per il teorema di Eulero si ha
2mod1255
2mod1112
2
equiv=
equiv=
per n=5 ( ) 45 =φ e i primi con 5 sono 1 2 3 4 e per il teorema di Eulero si ha
5mod12564
5mod1813
5mod1162
5mod111
4
4
4
4
equiv=
equiv=
equiv=
equiv=
Si puograve notare come nel caso in cui n egrave un numero primo si ritrova il piccolo teorema di Fermat
Infatti per n primo ( )nφ = nndash1 e per il teorema di Eulero per ogni altn e primo con n Ricordiamo infatti
che il piccolo teorema di Fermat afferma che se n egrave un numero primo e a un intero minore di n allora egrave
divisibile per n che con il linguaggio dellrsquoaritmetica modulare diventa che puograve essere riscritto e se a egrave primo
con n allora egrave che egrave equivalente a
Infine si prova che per ogni altn e primo con esso esiste lrsquoinverso di a e esso egrave dato da ( ) 1minusnaφ Infatti
( ) ( ) na=aa nφnφ1mod1 equivsdot minus per il teorema di Eulero Si ricorda che lrsquoinverso di un numero a egrave quel numero che
moltiplicato per a dagrave 1 indicato convenzionalmente con andash1
Ad esempio per n=5 i primi con 5 sono 1 2 3 4 e per ognuno di questi esiste lrsquoinverso infatti
bull lrsquoinverso di 1 egrave ( ) 1mod51111 31415 equivminusminus ===φ
e infatti
bull lrsquoinverso di 2 egrave ( ) 3mod58222 31415 equivminusminus ===φ
e infatti
bull lrsquoinverso di 3 egrave ( ) 2mod527333 31415 equivminusminus ===φ
e infatti
bull lrsquoinverso di 4 egrave ( ) 4mod564444 31415 equivminusminus ===φ
Le funzioni unidirezionali
Chiamiamo funzione da un insieme A a un insieme B qualunque procedura che associa a ogni elemento
di un insieme A (detto dominio) uno e un solo elemento di un insieme B (detto condominio) In simboli f
A rarr B Se poi indichiamo con x il generico elemento dellrsquoinsieme A e con y il generico elemento dellrsquoinsieme B
la f indica la procedura che ad ogni xisinA associa un yisinB e cioegrave y=f(x) ad esempio ldquofare il doppio dihelliprdquo
29
prendendo come dominio e codominio lrsquoinsieme dei numeri interi egrave in questo senso una funzione percheacute dato
ad esempio il numero 3 lo trasforma nel numero 6 come 5 lo trasforma in 10 e cosigrave via
Molte funzioni matematiche sono cosiddette bidirezionali nel senso che egrave facile dato un determinato x
generare il corrispondente y ma egrave altrettanto facile invertire la funzione cioegrave ritrovare lrsquoelemento x originario a
partire dal suo corrispondente
Facciamo qualche esempio
bull funzione xrarr fare il doppiorarr 2sdotx= y 3rarr fare il doppiorarr 2sdot3 = 6
funzione inversa y=2sdotx rarr fare la metagraverarr x 6=2sdot3 rarr fare la metagraverarr 3
bull funzione xrarr fare il quadruplorarr 4sdotxrarr aggiungere 1rarr sdoty=4sdotx +1
5rarr fare il quadruplorarr 4sdot5rarr aggiungere 1rarr 4sdot5 +1=21
funzione inversa y=4sdotx +1rarr sottrarre 1rarr 4sdot xrarr dividere per 4rarr x
21=4sdot5 +1rarr sottrarre 1rarr 4sdot 5rarr dividere per 4rarr 5
Le funzioni unidirezionali sono invece quelle funzioni facilmente calcolabili ma che non si possono invertire
Le funzioni cosiddette pseudounidirezionali (dette anche funzioni trappola a molla segreta) sono invece
quelle funzioni facilmente calcolabili ma che non altrettanto facilmente si possono invertire a meno che non si
conoscano alcune informazioni (la molla segreta) utilizzate nella loro costruzione
Lrsquoaritmetica modulare gioca un ruolo determinante in questo caso infatti permette di trasformare
funzioni bidirezionali in funzioni pseudounidirezionali
Facciamo lrsquoesempio della funzione ldquofare il quadruplordquo in simboli f(x)=4sdotx Egrave facilmente calcolabile
percheacute dato x per ottenere f(x) basta moltiplicare per 4 ma egrave altrettanto facile calcolare la sua inversa percheacute
dato f(x) basta dividere per 4 per ottenere lrsquooriginario x Ma anche se non avessimo la procedura inversa di
dividere per 4 sarebbe facile ritrovare lrsquoelemento originario anche procedendo per tentativi ed eliminazione
infatti se per esempio f(x) =20 si puograve tentare x=3 in tal caso f(x)=12 troppo piccolo quindi x deve essere
maggiore di 3 Si puograve allora pensare a 6 ma f(x)=24 troppo grande quindi x deve essere minore di 6 e cosigrave via
Vediamo cosa accade se calcoliamo utilizzando una aritmetica modulare Per esempio consideriamo la
stessa funzione f(x)=4sdotx in una aritmetica modulo 7 Possiamo osservare che la funzione non si comporta piugrave in
modo regolare come prima per accorgersene basta costruire una tabella (tabella 8)
x 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
f(x)=4sdotx 4 8 12 16 20 24 28 32 36 40 44 48 52 56 60
f(x)=4sdotmod 7 4 1 5 2 6 3 0 4 1 5 2 6 3 0 4
Tabella 8 La funzione f(x)=4sdotx in una aritmetica modulo 7
Anche in questa semplice situazione egrave chiaro che egrave piugrave complicato invertire la funzione e pertanto i valori
di x sono molto meglio protetti Si puograve fare anche lrsquoesempio della funzione esponenziale f(x)=3 x (tabella 9)
Tabella 9 La funzione f(x)=3 x in aritmetica modulo 11
x 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
f(x)=x3 1 8 27 64 125 216 343 512 729 1000 hellip hellip hellip hellip hellip
f(x)=x3 mod 11 1 8 5 9 4 7 2 6 3 10 hellip hellip hellip hellip hellip
30
Il cifrario a chiave pubblica RSA
Uno dei piugrave noti sistemi crittografici a chiave pubblica che sfrutta le idee precedentemente descritte egrave il
metodo RSA proposto dai matematici R L Rivest A Shamir e L Adlemann nel 1978 Esso risolve il problema
dello scambio delle chiavi in quanto queste ultime sono conosciute solamente ai rispettivi proprietari che non le
hanno preventivamente concordate e scambiate
Illustriamo schematicamente come i due utenti Mitt e Dest possano scambiarsi un messaggio segreto
utilizzando il metodo RSA Entrambi Mitt e Dest indipendentemente lrsquouno dallrsquoaltro poi
1 scelgono in modo casuale due numeri primi p q grandi (di 200-300 cifre in base 10)
2 calcolano N = psdotq e Φ(N) = (pndash1)sdot(qndash1)
3 scelgono un intero eltΦ(N) e primo con Φ(N) tale numero e saragrave la chiave pubblica
4 calcolano il numero d inverso di e mod Φ(N) tale cioegrave che esdotdequiv 1mod Φ(N) tale numero d saragrave
la chiave privata
5 rendono pubblici i numeri N ed e
Mitt per spedire un messaggio a Dest compie le seguenti operazioni
1 codifica il messaggio in un modo standard usando i numeri lt N
2 trasforma ogni numero M di tale codifica in Me (mod N) e lo spedisce a Dest
per decodificare il messaggio ricevuto Me Dest calcola (Me)d =Mesdotd =Mndash1=M (modN) riottenendo il messaggio
originale
Figura 12 Schema di cifrario con metodo RSA
31
Figura 13 Esempio di applicazione di metodi RSA
In che cosa consiste la sicurezza del metodo Da quanto esposto si osserva che per decodificare il
messaggio bisogna
1 conoscere d (chiave segreta)
2 essendo d lrsquoinverso di e nellrsquoaritmetica mod Φ(N) essendo e noto egrave necessario conoscere Φ(N)
3 ma noto N per calcolare Φ(N) egrave necessario conoscere i fattori primi di N cioegrave egrave necessario fattorizzare
N che egrave un problema computazionalmente difficile per quanto osservato in precedenza
Anche se non egrave stato dimostrato che non si possa rompere il codice in altro modo e cioegrave senza conoscere Φ(N) e i
fattori di N a tuttrsquooggi si puograve affermare che la sicurezza del metodo dipende essenzialmente dai seguenti fatti
Per codificare il messaggio bisogna saper costruire dei numeri primi grandi e tale operazione egrave
computazionalmente veloce si puograve infatti dimostrare che la complessitagrave computazionale di opportuni test di
primalitagrave per stabilire se un numero n egrave primo utilizzando il linguaggio di quel ramo della matematica nota
come teoria della complessitagrave egrave ldquoquasi-polinomialerdquo
Per violare il sistema bisogna saper fattorizzare interi grandi ottenuti come prodotto di due primi tale
problema egrave computazionalmente ldquolentordquo cioegrave con il linguaggio della teoria della complessitagrave appartiene alla
classe dei problemi non polinomiali Tale marcata differenza tra la velocitagrave di esecuzione delle operazioni di
costruzione di numeri primi grandi e di fattorizzazione di interi grandi garantisce la sicurezza del metodo
almeno per un tempo sufficientemente lungo Ad esempio con la tecnologia attuale lrsquooperazione di
fattorizzazione di un intero di 140 cifre in base 10 prodotto di due numeri primi casuali calcolati in pochi
secondi su un computer disponibile in commercio richiede utilizzando vari supercomputers operanti
parallelamente circa un mese
La RSA Security Inc gestisce una sfida a livello mondiale ove vengono premiati coloro che fattorizzano
gli interi proposti da loro in una particolare lista Ad esempio il 3 dicembre del 2003 egrave stato fattorizzato
32
rsa576 =
188198812920607963838697239461650439807163563379417382700763356422988859715234
665485319060606504743045317388011303396716199692321205734031879550656996221305
168759307650257059
un numero di 174 cifre decimali prodotto di due primi di 87 cifre
p =
398075086424064937397125500550386491199064362342526708406385189575946388957261
768583317
q =
472772146107435302536223071973048224632914695302097116459852171130520711256363
590397527
Le chiavi attualmente utilizzate dallRSA sono a 309 cifre decimali
La firma digitale
Consideriamo al solito un mittente che deve inviare a un destinatario un messaggio m La codifica di m
con il metodo descritto assicura lrsquoautenticitagrave del messaggio ma non fornisce alcuna sicurezza sulla sua
paternitagrave Infatti il messaggio m pur essendo autentico potrebbe essere stato inviato da qualcuno che si spaccia
per il mittente Questa egrave unimportantissima questione particolarmente nella trasmissione di messaggi che oltre
a dover essere segreti devono garantire la loro origine
Si dovrebbe quindi disporre di un analogo della firma manuale detta appunto firma digitale La firma
digitale deve allora essere progettata in modo da possedere le stesse caratteristiche di una firma manuale e cioegrave
lrsquoautenticitagrave la non falsificabilitagrave e lrsquoimpossibiltagrave di essere riutilizzata Facciamo vedere come lo stesso metodo
RSA puograve essere utilizzato per progettare una firma digitale
La situazione egrave la seguente il mittente (di seguito indicato con Mitt) invia un messaggio m con la firma
F al destinatario (di seguito indicato con Dest) Siano a b rispettivamente le chiavi pubblica e segreta di MITT
siano e d rispettivamente le chiavi pubblica e segreta di DEST
La procedura per apporre la firma digitale F al messaggio m egrave illustrata nei seguenti passi riassunti nel
grafico della figura 14
1 Mitt cripta la firma F (cioegrave i suoi dati identificativi) usando la propria chiave segreta (b)
ottenendo Fb
2 il messaggio m con la firma F criptata viene ulteriormente criptato con la chiave pubblica di
Dest (e) ottenendo (m Fb)e
3 Dest decodifica il messaggio con la sua chiave segreta (d) ottenendo
((m Fb)e)d = (me F(be)) d =m(e d)F(be d) = mFb
in cui la firma di Mitt egrave ancora criptata
4 Dest decodifica la firma di Mitt con la chiave pubblica di Mitt (a) ottenendo
(Fb)a = F(ba) = F
33
Grafico firma digitale
Mitt
Dest
pubblica
Fb
e dpubblica
a
((Fb)e)d=(Fb)ed=(Fb)1=Fb
(Fb)a=(F)ba=(F)1=F
ab de
(Fb)e
codifica
codificadecodifica
decodifica
1
2
3
4
5
6
7
8
segreta
b
segreta
Figura 14 Grafico firma digitale
Bibliografia
Thomas Beth Comunicazioni e sicurezza su Internet in ldquoLe Scienzerdquo n 330 febbraio 1996
Brian Butterworth Intelligenza matematica Vincere la paura dei numeri scoprendo le doti innate della mente
Rizzoli Milano 1999
John H Conway Richard K Guy Il libro dei numeri Hoepli Milano 2003
Richard Courant Herbert Robbins Che cosrsquoegrave la matematica Boringhieri Torino 1971
Philip J Davis Il mondo dei grandi numeri Zanichelli Bologna 1973
Keith Devlin Dove va la matematica Bollati Boringhieri Torino 1994
Jean Dieudonneacute Lrsquoarte dei numeri matematica e matematici oggi Mondadori Milano 1989
Martin E Ellmann La crittografia a chiave pubblica in La matematica della complessitagrave Quaderni n 67
settembre 1992 Le Scienze
Paolo Ferragina Fabrizio Luccio Crittografia principi ndash Algoritmi ndash Applicazioni Bollati Boringhieri Torino
2001
Godfrey H Hardy Apologia di un matematico Garzanti Milano 1989
Morris Kline Storia del pensiero matematico Einaudi Milano 1991
Serge Lang La bellezza della matematica Bollati Boringhieri Torino 1991
Mauro Leoncini Modelli di calcolo e complessitagrave computazionale in La matematica computazionale Quaderni
n 84 giugno 1995 Le Scienze
Fabrizio Luccio e Linda Pagli P = NP in La matematica della complessitagrave Quaderni n 67 settembre 1992
Le Scienze
Piergiorgio Odifreddi La Matematica del Novecento dagli insiemi alla complessitagrave Einaudi Torino 2000
34
ldquoPeriodico di matematicherdquo Serie VII Volume 7 Numero 2-3 luglio-dicembre 2000 Mathesis
ldquoPeriodico di matematicherdquo Serie VIII Volume 1 Numero 1 gennaio-marzo 2001 Mathesis
Carl Pomerance Alla ricerca dei numeri primi in ldquoLe Scienzerdquo n 174 febbraio 1983
Simon Singh Codici e segreti la storia affascinante dei messaggi cifrati dallrsquoantico Egitto a Internet Rizzoli
Milano 1999
Marcus du Sautoy Lrsquoenigma dei numeri primi lrsquoipotesi di Riemann lrsquoultimo grande mistero della matematica
Rizzoli Milano 2004
Gary Stix I segreti meglio custoditi la crittografia quantistica egrave passata dalla teoria al laboratorio per
approdare finalmente alle applicazioni in ldquoLe Scienzerdquo n 438 febbraio 2005
26
operazioni indicate
Risultato nellrsquoaritmetica ordinaria
Risultato nellrsquoaritmetica modulo 4
2+2 4 0 percheacute 44=1 con resto 0
3+2 5 1 percheacute 54=1 con resto 1
2+1 3 3 percheacute 34=0 con resto 3
3sdot3 9 1 percheacute 94=2 con resto 1
3sdot2 6 2 percheacute 64=1 con resto 2
2sdot2 4 0 percheacute 44=1 con resto 0
Tabella 6 Addizione e moltiplicazione nellrsquoaritmetica finita di modulo 4
Si possono costruire le tavole dellrsquoaddizione e della moltiplicazione dellrsquoaritmetica modulo 4 che costituiscono
le tabelline di questa aritmetica sulla base delle quali si esegue qualsiasi addizione e moltiplicazione modulo 4
Nella tabella 7 sono spiegate le tabelline dellrsquoaritmetica in modulo 4
Tabella 7 Tavole dellrsquoaddizione e della moltiplicazione dellrsquoaritmetica modulo 4
Infine per indicare che due numeri a e b divisi per n danno lo stesso resto si usano le seguenti notazioni
tutte equivalenti tra loro
a=b mod n andashb=0 mod 4 a equiv b (mod n) che si legge a egrave congruo b modulo 4
Esempio
26=12 mod 7 egrave la stessa cosa di
26ndash12=0 mod 7 che egrave la stessa cosa di
26 equiv 12 (mod 7) e tutte e tre stanno a indicare che 26 e 12 divisi per 7 danno lo stesso resto che egrave 5 e
pertanto sono tutti equivalenti a 5
Facciamo vedere come sfruttare lrsquoaritmetica modulare per calcolare potenze come 2341 (figura 11) Il
metodo si basa sulla proprietagrave che il resto del quadrato di un numero a per un dato modulo n egrave uguale al
quadrato del resto dello stesso numero a per lo stesso modulo n cioegrave a2 mod n =(a mod n)2
+ 0 1 2 3
0 0 1 2 3
1 1 2 3 0
2 2 3 0 1
3 3 0 1 2
x 0 1 2 3
0 0 0 0 0
1 0 1 2 3
2 0 2 0 2
3 0 3 2 1
27
Figura 11 Il metodo per calcolare 2341
La funzione di Eulero
Per ogni intero ngt1 si definisce la funzione di Eulero = numero di interi minori di n e primi con esso Ad
esempio
bull ( ) 45 =φ percheacute gli interi minori di 5 sono 1 2 3 4 ed essi sono tutti primi con n
bull ( ) 26 =φ percheacute gli interi minori di 6 sono 1 2 3 4 5 e fra essi solo 1 e 5 sono primi con 6
bull ( ) 67 =φ percheacute gli interi minori di 7 sono 1 2 3 4 5 6 ed essi sono tutti primi con 7
bull ( ) 412 =φ percheacute gli interi minori di 12 sono 1 2 3 4 5 6 7 8 9 10 11 e fra essi solo 1 5 7
11 sono primi con 12
Se si conosce la scomposizione in fattori del numero n il seguente teorema ci fornisce un metodo per
calcolare Infatti esso afferma che per ogni ngt1 non primo ( )
minussdotsdot
minussdot
minussdotnppp
n=nφ 11
11
11
21
dove
p1 p2 hellip pn sono i fattori primi di n presi senza molteplicitagrave
22 mod 341=4
24=(22)2=(22 mod 341)2=42=16mod341=16
28=(24)2=(16)2=256mod341=256
216= (28)2=(256)2=65536mod341=64
232=(216)2=(64)2=4096mod341=4
264=(232)2=42=16mod341=16
2128=(264)2=(16)2=256mod341=256
2256=(2128)2=(256)2=65536mod341=64
2341=2(256+64+16+4+1) 2256 264 216 24 21 x x x x
64 1
1024 mod 341
= 1 x 64
64 x 16
1024 mod 341
1 x 2 =
=
x
28
Ad esempio
essendo 12 = 3sdot2sdot2 ( ) 42
1
3
212
2
11
3
111212 ===φ sdotsdot
minussdot
minussdot
essendo 6=2sdot3 ( ) 22
1
3
26
2
11
3
1166 ===φ sdotsdot
minussdot
minussdot
se n=psdotq ( ) ( ) ( )11111
11
1 minussdotminusminussdotminussdot
minussdot
minussdot qp=q
q
p
pn=
qpn=nφ
Ovviamente se n egrave un numero primo = nndash1
Vale inoltre il seguente teorema di Eulero per ngt1 e per ogni altn e primo con n si ha
Ad esempio per n=6 ( ) 26 =φ infatti i primi con 6 sono 1 e 5 per il teorema di Eulero si ha
2mod1255
2mod1112
2
equiv=
equiv=
per n=5 ( ) 45 =φ e i primi con 5 sono 1 2 3 4 e per il teorema di Eulero si ha
5mod12564
5mod1813
5mod1162
5mod111
4
4
4
4
equiv=
equiv=
equiv=
equiv=
Si puograve notare come nel caso in cui n egrave un numero primo si ritrova il piccolo teorema di Fermat
Infatti per n primo ( )nφ = nndash1 e per il teorema di Eulero per ogni altn e primo con n Ricordiamo infatti
che il piccolo teorema di Fermat afferma che se n egrave un numero primo e a un intero minore di n allora egrave
divisibile per n che con il linguaggio dellrsquoaritmetica modulare diventa che puograve essere riscritto e se a egrave primo
con n allora egrave che egrave equivalente a
Infine si prova che per ogni altn e primo con esso esiste lrsquoinverso di a e esso egrave dato da ( ) 1minusnaφ Infatti
( ) ( ) na=aa nφnφ1mod1 equivsdot minus per il teorema di Eulero Si ricorda che lrsquoinverso di un numero a egrave quel numero che
moltiplicato per a dagrave 1 indicato convenzionalmente con andash1
Ad esempio per n=5 i primi con 5 sono 1 2 3 4 e per ognuno di questi esiste lrsquoinverso infatti
bull lrsquoinverso di 1 egrave ( ) 1mod51111 31415 equivminusminus ===φ
e infatti
bull lrsquoinverso di 2 egrave ( ) 3mod58222 31415 equivminusminus ===φ
e infatti
bull lrsquoinverso di 3 egrave ( ) 2mod527333 31415 equivminusminus ===φ
e infatti
bull lrsquoinverso di 4 egrave ( ) 4mod564444 31415 equivminusminus ===φ
Le funzioni unidirezionali
Chiamiamo funzione da un insieme A a un insieme B qualunque procedura che associa a ogni elemento
di un insieme A (detto dominio) uno e un solo elemento di un insieme B (detto condominio) In simboli f
A rarr B Se poi indichiamo con x il generico elemento dellrsquoinsieme A e con y il generico elemento dellrsquoinsieme B
la f indica la procedura che ad ogni xisinA associa un yisinB e cioegrave y=f(x) ad esempio ldquofare il doppio dihelliprdquo
29
prendendo come dominio e codominio lrsquoinsieme dei numeri interi egrave in questo senso una funzione percheacute dato
ad esempio il numero 3 lo trasforma nel numero 6 come 5 lo trasforma in 10 e cosigrave via
Molte funzioni matematiche sono cosiddette bidirezionali nel senso che egrave facile dato un determinato x
generare il corrispondente y ma egrave altrettanto facile invertire la funzione cioegrave ritrovare lrsquoelemento x originario a
partire dal suo corrispondente
Facciamo qualche esempio
bull funzione xrarr fare il doppiorarr 2sdotx= y 3rarr fare il doppiorarr 2sdot3 = 6
funzione inversa y=2sdotx rarr fare la metagraverarr x 6=2sdot3 rarr fare la metagraverarr 3
bull funzione xrarr fare il quadruplorarr 4sdotxrarr aggiungere 1rarr sdoty=4sdotx +1
5rarr fare il quadruplorarr 4sdot5rarr aggiungere 1rarr 4sdot5 +1=21
funzione inversa y=4sdotx +1rarr sottrarre 1rarr 4sdot xrarr dividere per 4rarr x
21=4sdot5 +1rarr sottrarre 1rarr 4sdot 5rarr dividere per 4rarr 5
Le funzioni unidirezionali sono invece quelle funzioni facilmente calcolabili ma che non si possono invertire
Le funzioni cosiddette pseudounidirezionali (dette anche funzioni trappola a molla segreta) sono invece
quelle funzioni facilmente calcolabili ma che non altrettanto facilmente si possono invertire a meno che non si
conoscano alcune informazioni (la molla segreta) utilizzate nella loro costruzione
Lrsquoaritmetica modulare gioca un ruolo determinante in questo caso infatti permette di trasformare
funzioni bidirezionali in funzioni pseudounidirezionali
Facciamo lrsquoesempio della funzione ldquofare il quadruplordquo in simboli f(x)=4sdotx Egrave facilmente calcolabile
percheacute dato x per ottenere f(x) basta moltiplicare per 4 ma egrave altrettanto facile calcolare la sua inversa percheacute
dato f(x) basta dividere per 4 per ottenere lrsquooriginario x Ma anche se non avessimo la procedura inversa di
dividere per 4 sarebbe facile ritrovare lrsquoelemento originario anche procedendo per tentativi ed eliminazione
infatti se per esempio f(x) =20 si puograve tentare x=3 in tal caso f(x)=12 troppo piccolo quindi x deve essere
maggiore di 3 Si puograve allora pensare a 6 ma f(x)=24 troppo grande quindi x deve essere minore di 6 e cosigrave via
Vediamo cosa accade se calcoliamo utilizzando una aritmetica modulare Per esempio consideriamo la
stessa funzione f(x)=4sdotx in una aritmetica modulo 7 Possiamo osservare che la funzione non si comporta piugrave in
modo regolare come prima per accorgersene basta costruire una tabella (tabella 8)
x 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
f(x)=4sdotx 4 8 12 16 20 24 28 32 36 40 44 48 52 56 60
f(x)=4sdotmod 7 4 1 5 2 6 3 0 4 1 5 2 6 3 0 4
Tabella 8 La funzione f(x)=4sdotx in una aritmetica modulo 7
Anche in questa semplice situazione egrave chiaro che egrave piugrave complicato invertire la funzione e pertanto i valori
di x sono molto meglio protetti Si puograve fare anche lrsquoesempio della funzione esponenziale f(x)=3 x (tabella 9)
Tabella 9 La funzione f(x)=3 x in aritmetica modulo 11
x 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
f(x)=x3 1 8 27 64 125 216 343 512 729 1000 hellip hellip hellip hellip hellip
f(x)=x3 mod 11 1 8 5 9 4 7 2 6 3 10 hellip hellip hellip hellip hellip
30
Il cifrario a chiave pubblica RSA
Uno dei piugrave noti sistemi crittografici a chiave pubblica che sfrutta le idee precedentemente descritte egrave il
metodo RSA proposto dai matematici R L Rivest A Shamir e L Adlemann nel 1978 Esso risolve il problema
dello scambio delle chiavi in quanto queste ultime sono conosciute solamente ai rispettivi proprietari che non le
hanno preventivamente concordate e scambiate
Illustriamo schematicamente come i due utenti Mitt e Dest possano scambiarsi un messaggio segreto
utilizzando il metodo RSA Entrambi Mitt e Dest indipendentemente lrsquouno dallrsquoaltro poi
1 scelgono in modo casuale due numeri primi p q grandi (di 200-300 cifre in base 10)
2 calcolano N = psdotq e Φ(N) = (pndash1)sdot(qndash1)
3 scelgono un intero eltΦ(N) e primo con Φ(N) tale numero e saragrave la chiave pubblica
4 calcolano il numero d inverso di e mod Φ(N) tale cioegrave che esdotdequiv 1mod Φ(N) tale numero d saragrave
la chiave privata
5 rendono pubblici i numeri N ed e
Mitt per spedire un messaggio a Dest compie le seguenti operazioni
1 codifica il messaggio in un modo standard usando i numeri lt N
2 trasforma ogni numero M di tale codifica in Me (mod N) e lo spedisce a Dest
per decodificare il messaggio ricevuto Me Dest calcola (Me)d =Mesdotd =Mndash1=M (modN) riottenendo il messaggio
originale
Figura 12 Schema di cifrario con metodo RSA
31
Figura 13 Esempio di applicazione di metodi RSA
In che cosa consiste la sicurezza del metodo Da quanto esposto si osserva che per decodificare il
messaggio bisogna
1 conoscere d (chiave segreta)
2 essendo d lrsquoinverso di e nellrsquoaritmetica mod Φ(N) essendo e noto egrave necessario conoscere Φ(N)
3 ma noto N per calcolare Φ(N) egrave necessario conoscere i fattori primi di N cioegrave egrave necessario fattorizzare
N che egrave un problema computazionalmente difficile per quanto osservato in precedenza
Anche se non egrave stato dimostrato che non si possa rompere il codice in altro modo e cioegrave senza conoscere Φ(N) e i
fattori di N a tuttrsquooggi si puograve affermare che la sicurezza del metodo dipende essenzialmente dai seguenti fatti
Per codificare il messaggio bisogna saper costruire dei numeri primi grandi e tale operazione egrave
computazionalmente veloce si puograve infatti dimostrare che la complessitagrave computazionale di opportuni test di
primalitagrave per stabilire se un numero n egrave primo utilizzando il linguaggio di quel ramo della matematica nota
come teoria della complessitagrave egrave ldquoquasi-polinomialerdquo
Per violare il sistema bisogna saper fattorizzare interi grandi ottenuti come prodotto di due primi tale
problema egrave computazionalmente ldquolentordquo cioegrave con il linguaggio della teoria della complessitagrave appartiene alla
classe dei problemi non polinomiali Tale marcata differenza tra la velocitagrave di esecuzione delle operazioni di
costruzione di numeri primi grandi e di fattorizzazione di interi grandi garantisce la sicurezza del metodo
almeno per un tempo sufficientemente lungo Ad esempio con la tecnologia attuale lrsquooperazione di
fattorizzazione di un intero di 140 cifre in base 10 prodotto di due numeri primi casuali calcolati in pochi
secondi su un computer disponibile in commercio richiede utilizzando vari supercomputers operanti
parallelamente circa un mese
La RSA Security Inc gestisce una sfida a livello mondiale ove vengono premiati coloro che fattorizzano
gli interi proposti da loro in una particolare lista Ad esempio il 3 dicembre del 2003 egrave stato fattorizzato
32
rsa576 =
188198812920607963838697239461650439807163563379417382700763356422988859715234
665485319060606504743045317388011303396716199692321205734031879550656996221305
168759307650257059
un numero di 174 cifre decimali prodotto di due primi di 87 cifre
p =
398075086424064937397125500550386491199064362342526708406385189575946388957261
768583317
q =
472772146107435302536223071973048224632914695302097116459852171130520711256363
590397527
Le chiavi attualmente utilizzate dallRSA sono a 309 cifre decimali
La firma digitale
Consideriamo al solito un mittente che deve inviare a un destinatario un messaggio m La codifica di m
con il metodo descritto assicura lrsquoautenticitagrave del messaggio ma non fornisce alcuna sicurezza sulla sua
paternitagrave Infatti il messaggio m pur essendo autentico potrebbe essere stato inviato da qualcuno che si spaccia
per il mittente Questa egrave unimportantissima questione particolarmente nella trasmissione di messaggi che oltre
a dover essere segreti devono garantire la loro origine
Si dovrebbe quindi disporre di un analogo della firma manuale detta appunto firma digitale La firma
digitale deve allora essere progettata in modo da possedere le stesse caratteristiche di una firma manuale e cioegrave
lrsquoautenticitagrave la non falsificabilitagrave e lrsquoimpossibiltagrave di essere riutilizzata Facciamo vedere come lo stesso metodo
RSA puograve essere utilizzato per progettare una firma digitale
La situazione egrave la seguente il mittente (di seguito indicato con Mitt) invia un messaggio m con la firma
F al destinatario (di seguito indicato con Dest) Siano a b rispettivamente le chiavi pubblica e segreta di MITT
siano e d rispettivamente le chiavi pubblica e segreta di DEST
La procedura per apporre la firma digitale F al messaggio m egrave illustrata nei seguenti passi riassunti nel
grafico della figura 14
1 Mitt cripta la firma F (cioegrave i suoi dati identificativi) usando la propria chiave segreta (b)
ottenendo Fb
2 il messaggio m con la firma F criptata viene ulteriormente criptato con la chiave pubblica di
Dest (e) ottenendo (m Fb)e
3 Dest decodifica il messaggio con la sua chiave segreta (d) ottenendo
((m Fb)e)d = (me F(be)) d =m(e d)F(be d) = mFb
in cui la firma di Mitt egrave ancora criptata
4 Dest decodifica la firma di Mitt con la chiave pubblica di Mitt (a) ottenendo
(Fb)a = F(ba) = F
33
Grafico firma digitale
Mitt
Dest
pubblica
Fb
e dpubblica
a
((Fb)e)d=(Fb)ed=(Fb)1=Fb
(Fb)a=(F)ba=(F)1=F
ab de
(Fb)e
codifica
codificadecodifica
decodifica
1
2
3
4
5
6
7
8
segreta
b
segreta
Figura 14 Grafico firma digitale
Bibliografia
Thomas Beth Comunicazioni e sicurezza su Internet in ldquoLe Scienzerdquo n 330 febbraio 1996
Brian Butterworth Intelligenza matematica Vincere la paura dei numeri scoprendo le doti innate della mente
Rizzoli Milano 1999
John H Conway Richard K Guy Il libro dei numeri Hoepli Milano 2003
Richard Courant Herbert Robbins Che cosrsquoegrave la matematica Boringhieri Torino 1971
Philip J Davis Il mondo dei grandi numeri Zanichelli Bologna 1973
Keith Devlin Dove va la matematica Bollati Boringhieri Torino 1994
Jean Dieudonneacute Lrsquoarte dei numeri matematica e matematici oggi Mondadori Milano 1989
Martin E Ellmann La crittografia a chiave pubblica in La matematica della complessitagrave Quaderni n 67
settembre 1992 Le Scienze
Paolo Ferragina Fabrizio Luccio Crittografia principi ndash Algoritmi ndash Applicazioni Bollati Boringhieri Torino
2001
Godfrey H Hardy Apologia di un matematico Garzanti Milano 1989
Morris Kline Storia del pensiero matematico Einaudi Milano 1991
Serge Lang La bellezza della matematica Bollati Boringhieri Torino 1991
Mauro Leoncini Modelli di calcolo e complessitagrave computazionale in La matematica computazionale Quaderni
n 84 giugno 1995 Le Scienze
Fabrizio Luccio e Linda Pagli P = NP in La matematica della complessitagrave Quaderni n 67 settembre 1992
Le Scienze
Piergiorgio Odifreddi La Matematica del Novecento dagli insiemi alla complessitagrave Einaudi Torino 2000
34
ldquoPeriodico di matematicherdquo Serie VII Volume 7 Numero 2-3 luglio-dicembre 2000 Mathesis
ldquoPeriodico di matematicherdquo Serie VIII Volume 1 Numero 1 gennaio-marzo 2001 Mathesis
Carl Pomerance Alla ricerca dei numeri primi in ldquoLe Scienzerdquo n 174 febbraio 1983
Simon Singh Codici e segreti la storia affascinante dei messaggi cifrati dallrsquoantico Egitto a Internet Rizzoli
Milano 1999
Marcus du Sautoy Lrsquoenigma dei numeri primi lrsquoipotesi di Riemann lrsquoultimo grande mistero della matematica
Rizzoli Milano 2004
Gary Stix I segreti meglio custoditi la crittografia quantistica egrave passata dalla teoria al laboratorio per
approdare finalmente alle applicazioni in ldquoLe Scienzerdquo n 438 febbraio 2005
27
Figura 11 Il metodo per calcolare 2341
La funzione di Eulero
Per ogni intero ngt1 si definisce la funzione di Eulero = numero di interi minori di n e primi con esso Ad
esempio
bull ( ) 45 =φ percheacute gli interi minori di 5 sono 1 2 3 4 ed essi sono tutti primi con n
bull ( ) 26 =φ percheacute gli interi minori di 6 sono 1 2 3 4 5 e fra essi solo 1 e 5 sono primi con 6
bull ( ) 67 =φ percheacute gli interi minori di 7 sono 1 2 3 4 5 6 ed essi sono tutti primi con 7
bull ( ) 412 =φ percheacute gli interi minori di 12 sono 1 2 3 4 5 6 7 8 9 10 11 e fra essi solo 1 5 7
11 sono primi con 12
Se si conosce la scomposizione in fattori del numero n il seguente teorema ci fornisce un metodo per
calcolare Infatti esso afferma che per ogni ngt1 non primo ( )
minussdotsdot
minussdot
minussdotnppp
n=nφ 11
11
11
21
dove
p1 p2 hellip pn sono i fattori primi di n presi senza molteplicitagrave
22 mod 341=4
24=(22)2=(22 mod 341)2=42=16mod341=16
28=(24)2=(16)2=256mod341=256
216= (28)2=(256)2=65536mod341=64
232=(216)2=(64)2=4096mod341=4
264=(232)2=42=16mod341=16
2128=(264)2=(16)2=256mod341=256
2256=(2128)2=(256)2=65536mod341=64
2341=2(256+64+16+4+1) 2256 264 216 24 21 x x x x
64 1
1024 mod 341
= 1 x 64
64 x 16
1024 mod 341
1 x 2 =
=
x
28
Ad esempio
essendo 12 = 3sdot2sdot2 ( ) 42
1
3
212
2
11
3
111212 ===φ sdotsdot
minussdot
minussdot
essendo 6=2sdot3 ( ) 22
1
3
26
2
11
3
1166 ===φ sdotsdot
minussdot
minussdot
se n=psdotq ( ) ( ) ( )11111
11
1 minussdotminusminussdotminussdot
minussdot
minussdot qp=q
q
p
pn=
qpn=nφ
Ovviamente se n egrave un numero primo = nndash1
Vale inoltre il seguente teorema di Eulero per ngt1 e per ogni altn e primo con n si ha
Ad esempio per n=6 ( ) 26 =φ infatti i primi con 6 sono 1 e 5 per il teorema di Eulero si ha
2mod1255
2mod1112
2
equiv=
equiv=
per n=5 ( ) 45 =φ e i primi con 5 sono 1 2 3 4 e per il teorema di Eulero si ha
5mod12564
5mod1813
5mod1162
5mod111
4
4
4
4
equiv=
equiv=
equiv=
equiv=
Si puograve notare come nel caso in cui n egrave un numero primo si ritrova il piccolo teorema di Fermat
Infatti per n primo ( )nφ = nndash1 e per il teorema di Eulero per ogni altn e primo con n Ricordiamo infatti
che il piccolo teorema di Fermat afferma che se n egrave un numero primo e a un intero minore di n allora egrave
divisibile per n che con il linguaggio dellrsquoaritmetica modulare diventa che puograve essere riscritto e se a egrave primo
con n allora egrave che egrave equivalente a
Infine si prova che per ogni altn e primo con esso esiste lrsquoinverso di a e esso egrave dato da ( ) 1minusnaφ Infatti
( ) ( ) na=aa nφnφ1mod1 equivsdot minus per il teorema di Eulero Si ricorda che lrsquoinverso di un numero a egrave quel numero che
moltiplicato per a dagrave 1 indicato convenzionalmente con andash1
Ad esempio per n=5 i primi con 5 sono 1 2 3 4 e per ognuno di questi esiste lrsquoinverso infatti
bull lrsquoinverso di 1 egrave ( ) 1mod51111 31415 equivminusminus ===φ
e infatti
bull lrsquoinverso di 2 egrave ( ) 3mod58222 31415 equivminusminus ===φ
e infatti
bull lrsquoinverso di 3 egrave ( ) 2mod527333 31415 equivminusminus ===φ
e infatti
bull lrsquoinverso di 4 egrave ( ) 4mod564444 31415 equivminusminus ===φ
Le funzioni unidirezionali
Chiamiamo funzione da un insieme A a un insieme B qualunque procedura che associa a ogni elemento
di un insieme A (detto dominio) uno e un solo elemento di un insieme B (detto condominio) In simboli f
A rarr B Se poi indichiamo con x il generico elemento dellrsquoinsieme A e con y il generico elemento dellrsquoinsieme B
la f indica la procedura che ad ogni xisinA associa un yisinB e cioegrave y=f(x) ad esempio ldquofare il doppio dihelliprdquo
29
prendendo come dominio e codominio lrsquoinsieme dei numeri interi egrave in questo senso una funzione percheacute dato
ad esempio il numero 3 lo trasforma nel numero 6 come 5 lo trasforma in 10 e cosigrave via
Molte funzioni matematiche sono cosiddette bidirezionali nel senso che egrave facile dato un determinato x
generare il corrispondente y ma egrave altrettanto facile invertire la funzione cioegrave ritrovare lrsquoelemento x originario a
partire dal suo corrispondente
Facciamo qualche esempio
bull funzione xrarr fare il doppiorarr 2sdotx= y 3rarr fare il doppiorarr 2sdot3 = 6
funzione inversa y=2sdotx rarr fare la metagraverarr x 6=2sdot3 rarr fare la metagraverarr 3
bull funzione xrarr fare il quadruplorarr 4sdotxrarr aggiungere 1rarr sdoty=4sdotx +1
5rarr fare il quadruplorarr 4sdot5rarr aggiungere 1rarr 4sdot5 +1=21
funzione inversa y=4sdotx +1rarr sottrarre 1rarr 4sdot xrarr dividere per 4rarr x
21=4sdot5 +1rarr sottrarre 1rarr 4sdot 5rarr dividere per 4rarr 5
Le funzioni unidirezionali sono invece quelle funzioni facilmente calcolabili ma che non si possono invertire
Le funzioni cosiddette pseudounidirezionali (dette anche funzioni trappola a molla segreta) sono invece
quelle funzioni facilmente calcolabili ma che non altrettanto facilmente si possono invertire a meno che non si
conoscano alcune informazioni (la molla segreta) utilizzate nella loro costruzione
Lrsquoaritmetica modulare gioca un ruolo determinante in questo caso infatti permette di trasformare
funzioni bidirezionali in funzioni pseudounidirezionali
Facciamo lrsquoesempio della funzione ldquofare il quadruplordquo in simboli f(x)=4sdotx Egrave facilmente calcolabile
percheacute dato x per ottenere f(x) basta moltiplicare per 4 ma egrave altrettanto facile calcolare la sua inversa percheacute
dato f(x) basta dividere per 4 per ottenere lrsquooriginario x Ma anche se non avessimo la procedura inversa di
dividere per 4 sarebbe facile ritrovare lrsquoelemento originario anche procedendo per tentativi ed eliminazione
infatti se per esempio f(x) =20 si puograve tentare x=3 in tal caso f(x)=12 troppo piccolo quindi x deve essere
maggiore di 3 Si puograve allora pensare a 6 ma f(x)=24 troppo grande quindi x deve essere minore di 6 e cosigrave via
Vediamo cosa accade se calcoliamo utilizzando una aritmetica modulare Per esempio consideriamo la
stessa funzione f(x)=4sdotx in una aritmetica modulo 7 Possiamo osservare che la funzione non si comporta piugrave in
modo regolare come prima per accorgersene basta costruire una tabella (tabella 8)
x 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
f(x)=4sdotx 4 8 12 16 20 24 28 32 36 40 44 48 52 56 60
f(x)=4sdotmod 7 4 1 5 2 6 3 0 4 1 5 2 6 3 0 4
Tabella 8 La funzione f(x)=4sdotx in una aritmetica modulo 7
Anche in questa semplice situazione egrave chiaro che egrave piugrave complicato invertire la funzione e pertanto i valori
di x sono molto meglio protetti Si puograve fare anche lrsquoesempio della funzione esponenziale f(x)=3 x (tabella 9)
Tabella 9 La funzione f(x)=3 x in aritmetica modulo 11
x 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
f(x)=x3 1 8 27 64 125 216 343 512 729 1000 hellip hellip hellip hellip hellip
f(x)=x3 mod 11 1 8 5 9 4 7 2 6 3 10 hellip hellip hellip hellip hellip
30
Il cifrario a chiave pubblica RSA
Uno dei piugrave noti sistemi crittografici a chiave pubblica che sfrutta le idee precedentemente descritte egrave il
metodo RSA proposto dai matematici R L Rivest A Shamir e L Adlemann nel 1978 Esso risolve il problema
dello scambio delle chiavi in quanto queste ultime sono conosciute solamente ai rispettivi proprietari che non le
hanno preventivamente concordate e scambiate
Illustriamo schematicamente come i due utenti Mitt e Dest possano scambiarsi un messaggio segreto
utilizzando il metodo RSA Entrambi Mitt e Dest indipendentemente lrsquouno dallrsquoaltro poi
1 scelgono in modo casuale due numeri primi p q grandi (di 200-300 cifre in base 10)
2 calcolano N = psdotq e Φ(N) = (pndash1)sdot(qndash1)
3 scelgono un intero eltΦ(N) e primo con Φ(N) tale numero e saragrave la chiave pubblica
4 calcolano il numero d inverso di e mod Φ(N) tale cioegrave che esdotdequiv 1mod Φ(N) tale numero d saragrave
la chiave privata
5 rendono pubblici i numeri N ed e
Mitt per spedire un messaggio a Dest compie le seguenti operazioni
1 codifica il messaggio in un modo standard usando i numeri lt N
2 trasforma ogni numero M di tale codifica in Me (mod N) e lo spedisce a Dest
per decodificare il messaggio ricevuto Me Dest calcola (Me)d =Mesdotd =Mndash1=M (modN) riottenendo il messaggio
originale
Figura 12 Schema di cifrario con metodo RSA
31
Figura 13 Esempio di applicazione di metodi RSA
In che cosa consiste la sicurezza del metodo Da quanto esposto si osserva che per decodificare il
messaggio bisogna
1 conoscere d (chiave segreta)
2 essendo d lrsquoinverso di e nellrsquoaritmetica mod Φ(N) essendo e noto egrave necessario conoscere Φ(N)
3 ma noto N per calcolare Φ(N) egrave necessario conoscere i fattori primi di N cioegrave egrave necessario fattorizzare
N che egrave un problema computazionalmente difficile per quanto osservato in precedenza
Anche se non egrave stato dimostrato che non si possa rompere il codice in altro modo e cioegrave senza conoscere Φ(N) e i
fattori di N a tuttrsquooggi si puograve affermare che la sicurezza del metodo dipende essenzialmente dai seguenti fatti
Per codificare il messaggio bisogna saper costruire dei numeri primi grandi e tale operazione egrave
computazionalmente veloce si puograve infatti dimostrare che la complessitagrave computazionale di opportuni test di
primalitagrave per stabilire se un numero n egrave primo utilizzando il linguaggio di quel ramo della matematica nota
come teoria della complessitagrave egrave ldquoquasi-polinomialerdquo
Per violare il sistema bisogna saper fattorizzare interi grandi ottenuti come prodotto di due primi tale
problema egrave computazionalmente ldquolentordquo cioegrave con il linguaggio della teoria della complessitagrave appartiene alla
classe dei problemi non polinomiali Tale marcata differenza tra la velocitagrave di esecuzione delle operazioni di
costruzione di numeri primi grandi e di fattorizzazione di interi grandi garantisce la sicurezza del metodo
almeno per un tempo sufficientemente lungo Ad esempio con la tecnologia attuale lrsquooperazione di
fattorizzazione di un intero di 140 cifre in base 10 prodotto di due numeri primi casuali calcolati in pochi
secondi su un computer disponibile in commercio richiede utilizzando vari supercomputers operanti
parallelamente circa un mese
La RSA Security Inc gestisce una sfida a livello mondiale ove vengono premiati coloro che fattorizzano
gli interi proposti da loro in una particolare lista Ad esempio il 3 dicembre del 2003 egrave stato fattorizzato
32
rsa576 =
188198812920607963838697239461650439807163563379417382700763356422988859715234
665485319060606504743045317388011303396716199692321205734031879550656996221305
168759307650257059
un numero di 174 cifre decimali prodotto di due primi di 87 cifre
p =
398075086424064937397125500550386491199064362342526708406385189575946388957261
768583317
q =
472772146107435302536223071973048224632914695302097116459852171130520711256363
590397527
Le chiavi attualmente utilizzate dallRSA sono a 309 cifre decimali
La firma digitale
Consideriamo al solito un mittente che deve inviare a un destinatario un messaggio m La codifica di m
con il metodo descritto assicura lrsquoautenticitagrave del messaggio ma non fornisce alcuna sicurezza sulla sua
paternitagrave Infatti il messaggio m pur essendo autentico potrebbe essere stato inviato da qualcuno che si spaccia
per il mittente Questa egrave unimportantissima questione particolarmente nella trasmissione di messaggi che oltre
a dover essere segreti devono garantire la loro origine
Si dovrebbe quindi disporre di un analogo della firma manuale detta appunto firma digitale La firma
digitale deve allora essere progettata in modo da possedere le stesse caratteristiche di una firma manuale e cioegrave
lrsquoautenticitagrave la non falsificabilitagrave e lrsquoimpossibiltagrave di essere riutilizzata Facciamo vedere come lo stesso metodo
RSA puograve essere utilizzato per progettare una firma digitale
La situazione egrave la seguente il mittente (di seguito indicato con Mitt) invia un messaggio m con la firma
F al destinatario (di seguito indicato con Dest) Siano a b rispettivamente le chiavi pubblica e segreta di MITT
siano e d rispettivamente le chiavi pubblica e segreta di DEST
La procedura per apporre la firma digitale F al messaggio m egrave illustrata nei seguenti passi riassunti nel
grafico della figura 14
1 Mitt cripta la firma F (cioegrave i suoi dati identificativi) usando la propria chiave segreta (b)
ottenendo Fb
2 il messaggio m con la firma F criptata viene ulteriormente criptato con la chiave pubblica di
Dest (e) ottenendo (m Fb)e
3 Dest decodifica il messaggio con la sua chiave segreta (d) ottenendo
((m Fb)e)d = (me F(be)) d =m(e d)F(be d) = mFb
in cui la firma di Mitt egrave ancora criptata
4 Dest decodifica la firma di Mitt con la chiave pubblica di Mitt (a) ottenendo
(Fb)a = F(ba) = F
33
Grafico firma digitale
Mitt
Dest
pubblica
Fb
e dpubblica
a
((Fb)e)d=(Fb)ed=(Fb)1=Fb
(Fb)a=(F)ba=(F)1=F
ab de
(Fb)e
codifica
codificadecodifica
decodifica
1
2
3
4
5
6
7
8
segreta
b
segreta
Figura 14 Grafico firma digitale
Bibliografia
Thomas Beth Comunicazioni e sicurezza su Internet in ldquoLe Scienzerdquo n 330 febbraio 1996
Brian Butterworth Intelligenza matematica Vincere la paura dei numeri scoprendo le doti innate della mente
Rizzoli Milano 1999
John H Conway Richard K Guy Il libro dei numeri Hoepli Milano 2003
Richard Courant Herbert Robbins Che cosrsquoegrave la matematica Boringhieri Torino 1971
Philip J Davis Il mondo dei grandi numeri Zanichelli Bologna 1973
Keith Devlin Dove va la matematica Bollati Boringhieri Torino 1994
Jean Dieudonneacute Lrsquoarte dei numeri matematica e matematici oggi Mondadori Milano 1989
Martin E Ellmann La crittografia a chiave pubblica in La matematica della complessitagrave Quaderni n 67
settembre 1992 Le Scienze
Paolo Ferragina Fabrizio Luccio Crittografia principi ndash Algoritmi ndash Applicazioni Bollati Boringhieri Torino
2001
Godfrey H Hardy Apologia di un matematico Garzanti Milano 1989
Morris Kline Storia del pensiero matematico Einaudi Milano 1991
Serge Lang La bellezza della matematica Bollati Boringhieri Torino 1991
Mauro Leoncini Modelli di calcolo e complessitagrave computazionale in La matematica computazionale Quaderni
n 84 giugno 1995 Le Scienze
Fabrizio Luccio e Linda Pagli P = NP in La matematica della complessitagrave Quaderni n 67 settembre 1992
Le Scienze
Piergiorgio Odifreddi La Matematica del Novecento dagli insiemi alla complessitagrave Einaudi Torino 2000
34
ldquoPeriodico di matematicherdquo Serie VII Volume 7 Numero 2-3 luglio-dicembre 2000 Mathesis
ldquoPeriodico di matematicherdquo Serie VIII Volume 1 Numero 1 gennaio-marzo 2001 Mathesis
Carl Pomerance Alla ricerca dei numeri primi in ldquoLe Scienzerdquo n 174 febbraio 1983
Simon Singh Codici e segreti la storia affascinante dei messaggi cifrati dallrsquoantico Egitto a Internet Rizzoli
Milano 1999
Marcus du Sautoy Lrsquoenigma dei numeri primi lrsquoipotesi di Riemann lrsquoultimo grande mistero della matematica
Rizzoli Milano 2004
Gary Stix I segreti meglio custoditi la crittografia quantistica egrave passata dalla teoria al laboratorio per
approdare finalmente alle applicazioni in ldquoLe Scienzerdquo n 438 febbraio 2005
28
Ad esempio
essendo 12 = 3sdot2sdot2 ( ) 42
1
3
212
2
11
3
111212 ===φ sdotsdot
minussdot
minussdot
essendo 6=2sdot3 ( ) 22
1
3
26
2
11
3
1166 ===φ sdotsdot
minussdot
minussdot
se n=psdotq ( ) ( ) ( )11111
11
1 minussdotminusminussdotminussdot
minussdot
minussdot qp=q
q
p
pn=
qpn=nφ
Ovviamente se n egrave un numero primo = nndash1
Vale inoltre il seguente teorema di Eulero per ngt1 e per ogni altn e primo con n si ha
Ad esempio per n=6 ( ) 26 =φ infatti i primi con 6 sono 1 e 5 per il teorema di Eulero si ha
2mod1255
2mod1112
2
equiv=
equiv=
per n=5 ( ) 45 =φ e i primi con 5 sono 1 2 3 4 e per il teorema di Eulero si ha
5mod12564
5mod1813
5mod1162
5mod111
4
4
4
4
equiv=
equiv=
equiv=
equiv=
Si puograve notare come nel caso in cui n egrave un numero primo si ritrova il piccolo teorema di Fermat
Infatti per n primo ( )nφ = nndash1 e per il teorema di Eulero per ogni altn e primo con n Ricordiamo infatti
che il piccolo teorema di Fermat afferma che se n egrave un numero primo e a un intero minore di n allora egrave
divisibile per n che con il linguaggio dellrsquoaritmetica modulare diventa che puograve essere riscritto e se a egrave primo
con n allora egrave che egrave equivalente a
Infine si prova che per ogni altn e primo con esso esiste lrsquoinverso di a e esso egrave dato da ( ) 1minusnaφ Infatti
( ) ( ) na=aa nφnφ1mod1 equivsdot minus per il teorema di Eulero Si ricorda che lrsquoinverso di un numero a egrave quel numero che
moltiplicato per a dagrave 1 indicato convenzionalmente con andash1
Ad esempio per n=5 i primi con 5 sono 1 2 3 4 e per ognuno di questi esiste lrsquoinverso infatti
bull lrsquoinverso di 1 egrave ( ) 1mod51111 31415 equivminusminus ===φ
e infatti
bull lrsquoinverso di 2 egrave ( ) 3mod58222 31415 equivminusminus ===φ
e infatti
bull lrsquoinverso di 3 egrave ( ) 2mod527333 31415 equivminusminus ===φ
e infatti
bull lrsquoinverso di 4 egrave ( ) 4mod564444 31415 equivminusminus ===φ
Le funzioni unidirezionali
Chiamiamo funzione da un insieme A a un insieme B qualunque procedura che associa a ogni elemento
di un insieme A (detto dominio) uno e un solo elemento di un insieme B (detto condominio) In simboli f
A rarr B Se poi indichiamo con x il generico elemento dellrsquoinsieme A e con y il generico elemento dellrsquoinsieme B
la f indica la procedura che ad ogni xisinA associa un yisinB e cioegrave y=f(x) ad esempio ldquofare il doppio dihelliprdquo
29
prendendo come dominio e codominio lrsquoinsieme dei numeri interi egrave in questo senso una funzione percheacute dato
ad esempio il numero 3 lo trasforma nel numero 6 come 5 lo trasforma in 10 e cosigrave via
Molte funzioni matematiche sono cosiddette bidirezionali nel senso che egrave facile dato un determinato x
generare il corrispondente y ma egrave altrettanto facile invertire la funzione cioegrave ritrovare lrsquoelemento x originario a
partire dal suo corrispondente
Facciamo qualche esempio
bull funzione xrarr fare il doppiorarr 2sdotx= y 3rarr fare il doppiorarr 2sdot3 = 6
funzione inversa y=2sdotx rarr fare la metagraverarr x 6=2sdot3 rarr fare la metagraverarr 3
bull funzione xrarr fare il quadruplorarr 4sdotxrarr aggiungere 1rarr sdoty=4sdotx +1
5rarr fare il quadruplorarr 4sdot5rarr aggiungere 1rarr 4sdot5 +1=21
funzione inversa y=4sdotx +1rarr sottrarre 1rarr 4sdot xrarr dividere per 4rarr x
21=4sdot5 +1rarr sottrarre 1rarr 4sdot 5rarr dividere per 4rarr 5
Le funzioni unidirezionali sono invece quelle funzioni facilmente calcolabili ma che non si possono invertire
Le funzioni cosiddette pseudounidirezionali (dette anche funzioni trappola a molla segreta) sono invece
quelle funzioni facilmente calcolabili ma che non altrettanto facilmente si possono invertire a meno che non si
conoscano alcune informazioni (la molla segreta) utilizzate nella loro costruzione
Lrsquoaritmetica modulare gioca un ruolo determinante in questo caso infatti permette di trasformare
funzioni bidirezionali in funzioni pseudounidirezionali
Facciamo lrsquoesempio della funzione ldquofare il quadruplordquo in simboli f(x)=4sdotx Egrave facilmente calcolabile
percheacute dato x per ottenere f(x) basta moltiplicare per 4 ma egrave altrettanto facile calcolare la sua inversa percheacute
dato f(x) basta dividere per 4 per ottenere lrsquooriginario x Ma anche se non avessimo la procedura inversa di
dividere per 4 sarebbe facile ritrovare lrsquoelemento originario anche procedendo per tentativi ed eliminazione
infatti se per esempio f(x) =20 si puograve tentare x=3 in tal caso f(x)=12 troppo piccolo quindi x deve essere
maggiore di 3 Si puograve allora pensare a 6 ma f(x)=24 troppo grande quindi x deve essere minore di 6 e cosigrave via
Vediamo cosa accade se calcoliamo utilizzando una aritmetica modulare Per esempio consideriamo la
stessa funzione f(x)=4sdotx in una aritmetica modulo 7 Possiamo osservare che la funzione non si comporta piugrave in
modo regolare come prima per accorgersene basta costruire una tabella (tabella 8)
x 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
f(x)=4sdotx 4 8 12 16 20 24 28 32 36 40 44 48 52 56 60
f(x)=4sdotmod 7 4 1 5 2 6 3 0 4 1 5 2 6 3 0 4
Tabella 8 La funzione f(x)=4sdotx in una aritmetica modulo 7
Anche in questa semplice situazione egrave chiaro che egrave piugrave complicato invertire la funzione e pertanto i valori
di x sono molto meglio protetti Si puograve fare anche lrsquoesempio della funzione esponenziale f(x)=3 x (tabella 9)
Tabella 9 La funzione f(x)=3 x in aritmetica modulo 11
x 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
f(x)=x3 1 8 27 64 125 216 343 512 729 1000 hellip hellip hellip hellip hellip
f(x)=x3 mod 11 1 8 5 9 4 7 2 6 3 10 hellip hellip hellip hellip hellip
30
Il cifrario a chiave pubblica RSA
Uno dei piugrave noti sistemi crittografici a chiave pubblica che sfrutta le idee precedentemente descritte egrave il
metodo RSA proposto dai matematici R L Rivest A Shamir e L Adlemann nel 1978 Esso risolve il problema
dello scambio delle chiavi in quanto queste ultime sono conosciute solamente ai rispettivi proprietari che non le
hanno preventivamente concordate e scambiate
Illustriamo schematicamente come i due utenti Mitt e Dest possano scambiarsi un messaggio segreto
utilizzando il metodo RSA Entrambi Mitt e Dest indipendentemente lrsquouno dallrsquoaltro poi
1 scelgono in modo casuale due numeri primi p q grandi (di 200-300 cifre in base 10)
2 calcolano N = psdotq e Φ(N) = (pndash1)sdot(qndash1)
3 scelgono un intero eltΦ(N) e primo con Φ(N) tale numero e saragrave la chiave pubblica
4 calcolano il numero d inverso di e mod Φ(N) tale cioegrave che esdotdequiv 1mod Φ(N) tale numero d saragrave
la chiave privata
5 rendono pubblici i numeri N ed e
Mitt per spedire un messaggio a Dest compie le seguenti operazioni
1 codifica il messaggio in un modo standard usando i numeri lt N
2 trasforma ogni numero M di tale codifica in Me (mod N) e lo spedisce a Dest
per decodificare il messaggio ricevuto Me Dest calcola (Me)d =Mesdotd =Mndash1=M (modN) riottenendo il messaggio
originale
Figura 12 Schema di cifrario con metodo RSA
31
Figura 13 Esempio di applicazione di metodi RSA
In che cosa consiste la sicurezza del metodo Da quanto esposto si osserva che per decodificare il
messaggio bisogna
1 conoscere d (chiave segreta)
2 essendo d lrsquoinverso di e nellrsquoaritmetica mod Φ(N) essendo e noto egrave necessario conoscere Φ(N)
3 ma noto N per calcolare Φ(N) egrave necessario conoscere i fattori primi di N cioegrave egrave necessario fattorizzare
N che egrave un problema computazionalmente difficile per quanto osservato in precedenza
Anche se non egrave stato dimostrato che non si possa rompere il codice in altro modo e cioegrave senza conoscere Φ(N) e i
fattori di N a tuttrsquooggi si puograve affermare che la sicurezza del metodo dipende essenzialmente dai seguenti fatti
Per codificare il messaggio bisogna saper costruire dei numeri primi grandi e tale operazione egrave
computazionalmente veloce si puograve infatti dimostrare che la complessitagrave computazionale di opportuni test di
primalitagrave per stabilire se un numero n egrave primo utilizzando il linguaggio di quel ramo della matematica nota
come teoria della complessitagrave egrave ldquoquasi-polinomialerdquo
Per violare il sistema bisogna saper fattorizzare interi grandi ottenuti come prodotto di due primi tale
problema egrave computazionalmente ldquolentordquo cioegrave con il linguaggio della teoria della complessitagrave appartiene alla
classe dei problemi non polinomiali Tale marcata differenza tra la velocitagrave di esecuzione delle operazioni di
costruzione di numeri primi grandi e di fattorizzazione di interi grandi garantisce la sicurezza del metodo
almeno per un tempo sufficientemente lungo Ad esempio con la tecnologia attuale lrsquooperazione di
fattorizzazione di un intero di 140 cifre in base 10 prodotto di due numeri primi casuali calcolati in pochi
secondi su un computer disponibile in commercio richiede utilizzando vari supercomputers operanti
parallelamente circa un mese
La RSA Security Inc gestisce una sfida a livello mondiale ove vengono premiati coloro che fattorizzano
gli interi proposti da loro in una particolare lista Ad esempio il 3 dicembre del 2003 egrave stato fattorizzato
32
rsa576 =
188198812920607963838697239461650439807163563379417382700763356422988859715234
665485319060606504743045317388011303396716199692321205734031879550656996221305
168759307650257059
un numero di 174 cifre decimali prodotto di due primi di 87 cifre
p =
398075086424064937397125500550386491199064362342526708406385189575946388957261
768583317
q =
472772146107435302536223071973048224632914695302097116459852171130520711256363
590397527
Le chiavi attualmente utilizzate dallRSA sono a 309 cifre decimali
La firma digitale
Consideriamo al solito un mittente che deve inviare a un destinatario un messaggio m La codifica di m
con il metodo descritto assicura lrsquoautenticitagrave del messaggio ma non fornisce alcuna sicurezza sulla sua
paternitagrave Infatti il messaggio m pur essendo autentico potrebbe essere stato inviato da qualcuno che si spaccia
per il mittente Questa egrave unimportantissima questione particolarmente nella trasmissione di messaggi che oltre
a dover essere segreti devono garantire la loro origine
Si dovrebbe quindi disporre di un analogo della firma manuale detta appunto firma digitale La firma
digitale deve allora essere progettata in modo da possedere le stesse caratteristiche di una firma manuale e cioegrave
lrsquoautenticitagrave la non falsificabilitagrave e lrsquoimpossibiltagrave di essere riutilizzata Facciamo vedere come lo stesso metodo
RSA puograve essere utilizzato per progettare una firma digitale
La situazione egrave la seguente il mittente (di seguito indicato con Mitt) invia un messaggio m con la firma
F al destinatario (di seguito indicato con Dest) Siano a b rispettivamente le chiavi pubblica e segreta di MITT
siano e d rispettivamente le chiavi pubblica e segreta di DEST
La procedura per apporre la firma digitale F al messaggio m egrave illustrata nei seguenti passi riassunti nel
grafico della figura 14
1 Mitt cripta la firma F (cioegrave i suoi dati identificativi) usando la propria chiave segreta (b)
ottenendo Fb
2 il messaggio m con la firma F criptata viene ulteriormente criptato con la chiave pubblica di
Dest (e) ottenendo (m Fb)e
3 Dest decodifica il messaggio con la sua chiave segreta (d) ottenendo
((m Fb)e)d = (me F(be)) d =m(e d)F(be d) = mFb
in cui la firma di Mitt egrave ancora criptata
4 Dest decodifica la firma di Mitt con la chiave pubblica di Mitt (a) ottenendo
(Fb)a = F(ba) = F
33
Grafico firma digitale
Mitt
Dest
pubblica
Fb
e dpubblica
a
((Fb)e)d=(Fb)ed=(Fb)1=Fb
(Fb)a=(F)ba=(F)1=F
ab de
(Fb)e
codifica
codificadecodifica
decodifica
1
2
3
4
5
6
7
8
segreta
b
segreta
Figura 14 Grafico firma digitale
Bibliografia
Thomas Beth Comunicazioni e sicurezza su Internet in ldquoLe Scienzerdquo n 330 febbraio 1996
Brian Butterworth Intelligenza matematica Vincere la paura dei numeri scoprendo le doti innate della mente
Rizzoli Milano 1999
John H Conway Richard K Guy Il libro dei numeri Hoepli Milano 2003
Richard Courant Herbert Robbins Che cosrsquoegrave la matematica Boringhieri Torino 1971
Philip J Davis Il mondo dei grandi numeri Zanichelli Bologna 1973
Keith Devlin Dove va la matematica Bollati Boringhieri Torino 1994
Jean Dieudonneacute Lrsquoarte dei numeri matematica e matematici oggi Mondadori Milano 1989
Martin E Ellmann La crittografia a chiave pubblica in La matematica della complessitagrave Quaderni n 67
settembre 1992 Le Scienze
Paolo Ferragina Fabrizio Luccio Crittografia principi ndash Algoritmi ndash Applicazioni Bollati Boringhieri Torino
2001
Godfrey H Hardy Apologia di un matematico Garzanti Milano 1989
Morris Kline Storia del pensiero matematico Einaudi Milano 1991
Serge Lang La bellezza della matematica Bollati Boringhieri Torino 1991
Mauro Leoncini Modelli di calcolo e complessitagrave computazionale in La matematica computazionale Quaderni
n 84 giugno 1995 Le Scienze
Fabrizio Luccio e Linda Pagli P = NP in La matematica della complessitagrave Quaderni n 67 settembre 1992
Le Scienze
Piergiorgio Odifreddi La Matematica del Novecento dagli insiemi alla complessitagrave Einaudi Torino 2000
34
ldquoPeriodico di matematicherdquo Serie VII Volume 7 Numero 2-3 luglio-dicembre 2000 Mathesis
ldquoPeriodico di matematicherdquo Serie VIII Volume 1 Numero 1 gennaio-marzo 2001 Mathesis
Carl Pomerance Alla ricerca dei numeri primi in ldquoLe Scienzerdquo n 174 febbraio 1983
Simon Singh Codici e segreti la storia affascinante dei messaggi cifrati dallrsquoantico Egitto a Internet Rizzoli
Milano 1999
Marcus du Sautoy Lrsquoenigma dei numeri primi lrsquoipotesi di Riemann lrsquoultimo grande mistero della matematica
Rizzoli Milano 2004
Gary Stix I segreti meglio custoditi la crittografia quantistica egrave passata dalla teoria al laboratorio per
approdare finalmente alle applicazioni in ldquoLe Scienzerdquo n 438 febbraio 2005
29
prendendo come dominio e codominio lrsquoinsieme dei numeri interi egrave in questo senso una funzione percheacute dato
ad esempio il numero 3 lo trasforma nel numero 6 come 5 lo trasforma in 10 e cosigrave via
Molte funzioni matematiche sono cosiddette bidirezionali nel senso che egrave facile dato un determinato x
generare il corrispondente y ma egrave altrettanto facile invertire la funzione cioegrave ritrovare lrsquoelemento x originario a
partire dal suo corrispondente
Facciamo qualche esempio
bull funzione xrarr fare il doppiorarr 2sdotx= y 3rarr fare il doppiorarr 2sdot3 = 6
funzione inversa y=2sdotx rarr fare la metagraverarr x 6=2sdot3 rarr fare la metagraverarr 3
bull funzione xrarr fare il quadruplorarr 4sdotxrarr aggiungere 1rarr sdoty=4sdotx +1
5rarr fare il quadruplorarr 4sdot5rarr aggiungere 1rarr 4sdot5 +1=21
funzione inversa y=4sdotx +1rarr sottrarre 1rarr 4sdot xrarr dividere per 4rarr x
21=4sdot5 +1rarr sottrarre 1rarr 4sdot 5rarr dividere per 4rarr 5
Le funzioni unidirezionali sono invece quelle funzioni facilmente calcolabili ma che non si possono invertire
Le funzioni cosiddette pseudounidirezionali (dette anche funzioni trappola a molla segreta) sono invece
quelle funzioni facilmente calcolabili ma che non altrettanto facilmente si possono invertire a meno che non si
conoscano alcune informazioni (la molla segreta) utilizzate nella loro costruzione
Lrsquoaritmetica modulare gioca un ruolo determinante in questo caso infatti permette di trasformare
funzioni bidirezionali in funzioni pseudounidirezionali
Facciamo lrsquoesempio della funzione ldquofare il quadruplordquo in simboli f(x)=4sdotx Egrave facilmente calcolabile
percheacute dato x per ottenere f(x) basta moltiplicare per 4 ma egrave altrettanto facile calcolare la sua inversa percheacute
dato f(x) basta dividere per 4 per ottenere lrsquooriginario x Ma anche se non avessimo la procedura inversa di
dividere per 4 sarebbe facile ritrovare lrsquoelemento originario anche procedendo per tentativi ed eliminazione
infatti se per esempio f(x) =20 si puograve tentare x=3 in tal caso f(x)=12 troppo piccolo quindi x deve essere
maggiore di 3 Si puograve allora pensare a 6 ma f(x)=24 troppo grande quindi x deve essere minore di 6 e cosigrave via
Vediamo cosa accade se calcoliamo utilizzando una aritmetica modulare Per esempio consideriamo la
stessa funzione f(x)=4sdotx in una aritmetica modulo 7 Possiamo osservare che la funzione non si comporta piugrave in
modo regolare come prima per accorgersene basta costruire una tabella (tabella 8)
x 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
f(x)=4sdotx 4 8 12 16 20 24 28 32 36 40 44 48 52 56 60
f(x)=4sdotmod 7 4 1 5 2 6 3 0 4 1 5 2 6 3 0 4
Tabella 8 La funzione f(x)=4sdotx in una aritmetica modulo 7
Anche in questa semplice situazione egrave chiaro che egrave piugrave complicato invertire la funzione e pertanto i valori
di x sono molto meglio protetti Si puograve fare anche lrsquoesempio della funzione esponenziale f(x)=3 x (tabella 9)
Tabella 9 La funzione f(x)=3 x in aritmetica modulo 11
x 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
f(x)=x3 1 8 27 64 125 216 343 512 729 1000 hellip hellip hellip hellip hellip
f(x)=x3 mod 11 1 8 5 9 4 7 2 6 3 10 hellip hellip hellip hellip hellip
30
Il cifrario a chiave pubblica RSA
Uno dei piugrave noti sistemi crittografici a chiave pubblica che sfrutta le idee precedentemente descritte egrave il
metodo RSA proposto dai matematici R L Rivest A Shamir e L Adlemann nel 1978 Esso risolve il problema
dello scambio delle chiavi in quanto queste ultime sono conosciute solamente ai rispettivi proprietari che non le
hanno preventivamente concordate e scambiate
Illustriamo schematicamente come i due utenti Mitt e Dest possano scambiarsi un messaggio segreto
utilizzando il metodo RSA Entrambi Mitt e Dest indipendentemente lrsquouno dallrsquoaltro poi
1 scelgono in modo casuale due numeri primi p q grandi (di 200-300 cifre in base 10)
2 calcolano N = psdotq e Φ(N) = (pndash1)sdot(qndash1)
3 scelgono un intero eltΦ(N) e primo con Φ(N) tale numero e saragrave la chiave pubblica
4 calcolano il numero d inverso di e mod Φ(N) tale cioegrave che esdotdequiv 1mod Φ(N) tale numero d saragrave
la chiave privata
5 rendono pubblici i numeri N ed e
Mitt per spedire un messaggio a Dest compie le seguenti operazioni
1 codifica il messaggio in un modo standard usando i numeri lt N
2 trasforma ogni numero M di tale codifica in Me (mod N) e lo spedisce a Dest
per decodificare il messaggio ricevuto Me Dest calcola (Me)d =Mesdotd =Mndash1=M (modN) riottenendo il messaggio
originale
Figura 12 Schema di cifrario con metodo RSA
31
Figura 13 Esempio di applicazione di metodi RSA
In che cosa consiste la sicurezza del metodo Da quanto esposto si osserva che per decodificare il
messaggio bisogna
1 conoscere d (chiave segreta)
2 essendo d lrsquoinverso di e nellrsquoaritmetica mod Φ(N) essendo e noto egrave necessario conoscere Φ(N)
3 ma noto N per calcolare Φ(N) egrave necessario conoscere i fattori primi di N cioegrave egrave necessario fattorizzare
N che egrave un problema computazionalmente difficile per quanto osservato in precedenza
Anche se non egrave stato dimostrato che non si possa rompere il codice in altro modo e cioegrave senza conoscere Φ(N) e i
fattori di N a tuttrsquooggi si puograve affermare che la sicurezza del metodo dipende essenzialmente dai seguenti fatti
Per codificare il messaggio bisogna saper costruire dei numeri primi grandi e tale operazione egrave
computazionalmente veloce si puograve infatti dimostrare che la complessitagrave computazionale di opportuni test di
primalitagrave per stabilire se un numero n egrave primo utilizzando il linguaggio di quel ramo della matematica nota
come teoria della complessitagrave egrave ldquoquasi-polinomialerdquo
Per violare il sistema bisogna saper fattorizzare interi grandi ottenuti come prodotto di due primi tale
problema egrave computazionalmente ldquolentordquo cioegrave con il linguaggio della teoria della complessitagrave appartiene alla
classe dei problemi non polinomiali Tale marcata differenza tra la velocitagrave di esecuzione delle operazioni di
costruzione di numeri primi grandi e di fattorizzazione di interi grandi garantisce la sicurezza del metodo
almeno per un tempo sufficientemente lungo Ad esempio con la tecnologia attuale lrsquooperazione di
fattorizzazione di un intero di 140 cifre in base 10 prodotto di due numeri primi casuali calcolati in pochi
secondi su un computer disponibile in commercio richiede utilizzando vari supercomputers operanti
parallelamente circa un mese
La RSA Security Inc gestisce una sfida a livello mondiale ove vengono premiati coloro che fattorizzano
gli interi proposti da loro in una particolare lista Ad esempio il 3 dicembre del 2003 egrave stato fattorizzato
32
rsa576 =
188198812920607963838697239461650439807163563379417382700763356422988859715234
665485319060606504743045317388011303396716199692321205734031879550656996221305
168759307650257059
un numero di 174 cifre decimali prodotto di due primi di 87 cifre
p =
398075086424064937397125500550386491199064362342526708406385189575946388957261
768583317
q =
472772146107435302536223071973048224632914695302097116459852171130520711256363
590397527
Le chiavi attualmente utilizzate dallRSA sono a 309 cifre decimali
La firma digitale
Consideriamo al solito un mittente che deve inviare a un destinatario un messaggio m La codifica di m
con il metodo descritto assicura lrsquoautenticitagrave del messaggio ma non fornisce alcuna sicurezza sulla sua
paternitagrave Infatti il messaggio m pur essendo autentico potrebbe essere stato inviato da qualcuno che si spaccia
per il mittente Questa egrave unimportantissima questione particolarmente nella trasmissione di messaggi che oltre
a dover essere segreti devono garantire la loro origine
Si dovrebbe quindi disporre di un analogo della firma manuale detta appunto firma digitale La firma
digitale deve allora essere progettata in modo da possedere le stesse caratteristiche di una firma manuale e cioegrave
lrsquoautenticitagrave la non falsificabilitagrave e lrsquoimpossibiltagrave di essere riutilizzata Facciamo vedere come lo stesso metodo
RSA puograve essere utilizzato per progettare una firma digitale
La situazione egrave la seguente il mittente (di seguito indicato con Mitt) invia un messaggio m con la firma
F al destinatario (di seguito indicato con Dest) Siano a b rispettivamente le chiavi pubblica e segreta di MITT
siano e d rispettivamente le chiavi pubblica e segreta di DEST
La procedura per apporre la firma digitale F al messaggio m egrave illustrata nei seguenti passi riassunti nel
grafico della figura 14
1 Mitt cripta la firma F (cioegrave i suoi dati identificativi) usando la propria chiave segreta (b)
ottenendo Fb
2 il messaggio m con la firma F criptata viene ulteriormente criptato con la chiave pubblica di
Dest (e) ottenendo (m Fb)e
3 Dest decodifica il messaggio con la sua chiave segreta (d) ottenendo
((m Fb)e)d = (me F(be)) d =m(e d)F(be d) = mFb
in cui la firma di Mitt egrave ancora criptata
4 Dest decodifica la firma di Mitt con la chiave pubblica di Mitt (a) ottenendo
(Fb)a = F(ba) = F
33
Grafico firma digitale
Mitt
Dest
pubblica
Fb
e dpubblica
a
((Fb)e)d=(Fb)ed=(Fb)1=Fb
(Fb)a=(F)ba=(F)1=F
ab de
(Fb)e
codifica
codificadecodifica
decodifica
1
2
3
4
5
6
7
8
segreta
b
segreta
Figura 14 Grafico firma digitale
Bibliografia
Thomas Beth Comunicazioni e sicurezza su Internet in ldquoLe Scienzerdquo n 330 febbraio 1996
Brian Butterworth Intelligenza matematica Vincere la paura dei numeri scoprendo le doti innate della mente
Rizzoli Milano 1999
John H Conway Richard K Guy Il libro dei numeri Hoepli Milano 2003
Richard Courant Herbert Robbins Che cosrsquoegrave la matematica Boringhieri Torino 1971
Philip J Davis Il mondo dei grandi numeri Zanichelli Bologna 1973
Keith Devlin Dove va la matematica Bollati Boringhieri Torino 1994
Jean Dieudonneacute Lrsquoarte dei numeri matematica e matematici oggi Mondadori Milano 1989
Martin E Ellmann La crittografia a chiave pubblica in La matematica della complessitagrave Quaderni n 67
settembre 1992 Le Scienze
Paolo Ferragina Fabrizio Luccio Crittografia principi ndash Algoritmi ndash Applicazioni Bollati Boringhieri Torino
2001
Godfrey H Hardy Apologia di un matematico Garzanti Milano 1989
Morris Kline Storia del pensiero matematico Einaudi Milano 1991
Serge Lang La bellezza della matematica Bollati Boringhieri Torino 1991
Mauro Leoncini Modelli di calcolo e complessitagrave computazionale in La matematica computazionale Quaderni
n 84 giugno 1995 Le Scienze
Fabrizio Luccio e Linda Pagli P = NP in La matematica della complessitagrave Quaderni n 67 settembre 1992
Le Scienze
Piergiorgio Odifreddi La Matematica del Novecento dagli insiemi alla complessitagrave Einaudi Torino 2000
34
ldquoPeriodico di matematicherdquo Serie VII Volume 7 Numero 2-3 luglio-dicembre 2000 Mathesis
ldquoPeriodico di matematicherdquo Serie VIII Volume 1 Numero 1 gennaio-marzo 2001 Mathesis
Carl Pomerance Alla ricerca dei numeri primi in ldquoLe Scienzerdquo n 174 febbraio 1983
Simon Singh Codici e segreti la storia affascinante dei messaggi cifrati dallrsquoantico Egitto a Internet Rizzoli
Milano 1999
Marcus du Sautoy Lrsquoenigma dei numeri primi lrsquoipotesi di Riemann lrsquoultimo grande mistero della matematica
Rizzoli Milano 2004
Gary Stix I segreti meglio custoditi la crittografia quantistica egrave passata dalla teoria al laboratorio per
approdare finalmente alle applicazioni in ldquoLe Scienzerdquo n 438 febbraio 2005
30
Il cifrario a chiave pubblica RSA
Uno dei piugrave noti sistemi crittografici a chiave pubblica che sfrutta le idee precedentemente descritte egrave il
metodo RSA proposto dai matematici R L Rivest A Shamir e L Adlemann nel 1978 Esso risolve il problema
dello scambio delle chiavi in quanto queste ultime sono conosciute solamente ai rispettivi proprietari che non le
hanno preventivamente concordate e scambiate
Illustriamo schematicamente come i due utenti Mitt e Dest possano scambiarsi un messaggio segreto
utilizzando il metodo RSA Entrambi Mitt e Dest indipendentemente lrsquouno dallrsquoaltro poi
1 scelgono in modo casuale due numeri primi p q grandi (di 200-300 cifre in base 10)
2 calcolano N = psdotq e Φ(N) = (pndash1)sdot(qndash1)
3 scelgono un intero eltΦ(N) e primo con Φ(N) tale numero e saragrave la chiave pubblica
4 calcolano il numero d inverso di e mod Φ(N) tale cioegrave che esdotdequiv 1mod Φ(N) tale numero d saragrave
la chiave privata
5 rendono pubblici i numeri N ed e
Mitt per spedire un messaggio a Dest compie le seguenti operazioni
1 codifica il messaggio in un modo standard usando i numeri lt N
2 trasforma ogni numero M di tale codifica in Me (mod N) e lo spedisce a Dest
per decodificare il messaggio ricevuto Me Dest calcola (Me)d =Mesdotd =Mndash1=M (modN) riottenendo il messaggio
originale
Figura 12 Schema di cifrario con metodo RSA
31
Figura 13 Esempio di applicazione di metodi RSA
In che cosa consiste la sicurezza del metodo Da quanto esposto si osserva che per decodificare il
messaggio bisogna
1 conoscere d (chiave segreta)
2 essendo d lrsquoinverso di e nellrsquoaritmetica mod Φ(N) essendo e noto egrave necessario conoscere Φ(N)
3 ma noto N per calcolare Φ(N) egrave necessario conoscere i fattori primi di N cioegrave egrave necessario fattorizzare
N che egrave un problema computazionalmente difficile per quanto osservato in precedenza
Anche se non egrave stato dimostrato che non si possa rompere il codice in altro modo e cioegrave senza conoscere Φ(N) e i
fattori di N a tuttrsquooggi si puograve affermare che la sicurezza del metodo dipende essenzialmente dai seguenti fatti
Per codificare il messaggio bisogna saper costruire dei numeri primi grandi e tale operazione egrave
computazionalmente veloce si puograve infatti dimostrare che la complessitagrave computazionale di opportuni test di
primalitagrave per stabilire se un numero n egrave primo utilizzando il linguaggio di quel ramo della matematica nota
come teoria della complessitagrave egrave ldquoquasi-polinomialerdquo
Per violare il sistema bisogna saper fattorizzare interi grandi ottenuti come prodotto di due primi tale
problema egrave computazionalmente ldquolentordquo cioegrave con il linguaggio della teoria della complessitagrave appartiene alla
classe dei problemi non polinomiali Tale marcata differenza tra la velocitagrave di esecuzione delle operazioni di
costruzione di numeri primi grandi e di fattorizzazione di interi grandi garantisce la sicurezza del metodo
almeno per un tempo sufficientemente lungo Ad esempio con la tecnologia attuale lrsquooperazione di
fattorizzazione di un intero di 140 cifre in base 10 prodotto di due numeri primi casuali calcolati in pochi
secondi su un computer disponibile in commercio richiede utilizzando vari supercomputers operanti
parallelamente circa un mese
La RSA Security Inc gestisce una sfida a livello mondiale ove vengono premiati coloro che fattorizzano
gli interi proposti da loro in una particolare lista Ad esempio il 3 dicembre del 2003 egrave stato fattorizzato
32
rsa576 =
188198812920607963838697239461650439807163563379417382700763356422988859715234
665485319060606504743045317388011303396716199692321205734031879550656996221305
168759307650257059
un numero di 174 cifre decimali prodotto di due primi di 87 cifre
p =
398075086424064937397125500550386491199064362342526708406385189575946388957261
768583317
q =
472772146107435302536223071973048224632914695302097116459852171130520711256363
590397527
Le chiavi attualmente utilizzate dallRSA sono a 309 cifre decimali
La firma digitale
Consideriamo al solito un mittente che deve inviare a un destinatario un messaggio m La codifica di m
con il metodo descritto assicura lrsquoautenticitagrave del messaggio ma non fornisce alcuna sicurezza sulla sua
paternitagrave Infatti il messaggio m pur essendo autentico potrebbe essere stato inviato da qualcuno che si spaccia
per il mittente Questa egrave unimportantissima questione particolarmente nella trasmissione di messaggi che oltre
a dover essere segreti devono garantire la loro origine
Si dovrebbe quindi disporre di un analogo della firma manuale detta appunto firma digitale La firma
digitale deve allora essere progettata in modo da possedere le stesse caratteristiche di una firma manuale e cioegrave
lrsquoautenticitagrave la non falsificabilitagrave e lrsquoimpossibiltagrave di essere riutilizzata Facciamo vedere come lo stesso metodo
RSA puograve essere utilizzato per progettare una firma digitale
La situazione egrave la seguente il mittente (di seguito indicato con Mitt) invia un messaggio m con la firma
F al destinatario (di seguito indicato con Dest) Siano a b rispettivamente le chiavi pubblica e segreta di MITT
siano e d rispettivamente le chiavi pubblica e segreta di DEST
La procedura per apporre la firma digitale F al messaggio m egrave illustrata nei seguenti passi riassunti nel
grafico della figura 14
1 Mitt cripta la firma F (cioegrave i suoi dati identificativi) usando la propria chiave segreta (b)
ottenendo Fb
2 il messaggio m con la firma F criptata viene ulteriormente criptato con la chiave pubblica di
Dest (e) ottenendo (m Fb)e
3 Dest decodifica il messaggio con la sua chiave segreta (d) ottenendo
((m Fb)e)d = (me F(be)) d =m(e d)F(be d) = mFb
in cui la firma di Mitt egrave ancora criptata
4 Dest decodifica la firma di Mitt con la chiave pubblica di Mitt (a) ottenendo
(Fb)a = F(ba) = F
33
Grafico firma digitale
Mitt
Dest
pubblica
Fb
e dpubblica
a
((Fb)e)d=(Fb)ed=(Fb)1=Fb
(Fb)a=(F)ba=(F)1=F
ab de
(Fb)e
codifica
codificadecodifica
decodifica
1
2
3
4
5
6
7
8
segreta
b
segreta
Figura 14 Grafico firma digitale
Bibliografia
Thomas Beth Comunicazioni e sicurezza su Internet in ldquoLe Scienzerdquo n 330 febbraio 1996
Brian Butterworth Intelligenza matematica Vincere la paura dei numeri scoprendo le doti innate della mente
Rizzoli Milano 1999
John H Conway Richard K Guy Il libro dei numeri Hoepli Milano 2003
Richard Courant Herbert Robbins Che cosrsquoegrave la matematica Boringhieri Torino 1971
Philip J Davis Il mondo dei grandi numeri Zanichelli Bologna 1973
Keith Devlin Dove va la matematica Bollati Boringhieri Torino 1994
Jean Dieudonneacute Lrsquoarte dei numeri matematica e matematici oggi Mondadori Milano 1989
Martin E Ellmann La crittografia a chiave pubblica in La matematica della complessitagrave Quaderni n 67
settembre 1992 Le Scienze
Paolo Ferragina Fabrizio Luccio Crittografia principi ndash Algoritmi ndash Applicazioni Bollati Boringhieri Torino
2001
Godfrey H Hardy Apologia di un matematico Garzanti Milano 1989
Morris Kline Storia del pensiero matematico Einaudi Milano 1991
Serge Lang La bellezza della matematica Bollati Boringhieri Torino 1991
Mauro Leoncini Modelli di calcolo e complessitagrave computazionale in La matematica computazionale Quaderni
n 84 giugno 1995 Le Scienze
Fabrizio Luccio e Linda Pagli P = NP in La matematica della complessitagrave Quaderni n 67 settembre 1992
Le Scienze
Piergiorgio Odifreddi La Matematica del Novecento dagli insiemi alla complessitagrave Einaudi Torino 2000
34
ldquoPeriodico di matematicherdquo Serie VII Volume 7 Numero 2-3 luglio-dicembre 2000 Mathesis
ldquoPeriodico di matematicherdquo Serie VIII Volume 1 Numero 1 gennaio-marzo 2001 Mathesis
Carl Pomerance Alla ricerca dei numeri primi in ldquoLe Scienzerdquo n 174 febbraio 1983
Simon Singh Codici e segreti la storia affascinante dei messaggi cifrati dallrsquoantico Egitto a Internet Rizzoli
Milano 1999
Marcus du Sautoy Lrsquoenigma dei numeri primi lrsquoipotesi di Riemann lrsquoultimo grande mistero della matematica
Rizzoli Milano 2004
Gary Stix I segreti meglio custoditi la crittografia quantistica egrave passata dalla teoria al laboratorio per
approdare finalmente alle applicazioni in ldquoLe Scienzerdquo n 438 febbraio 2005
31
Figura 13 Esempio di applicazione di metodi RSA
In che cosa consiste la sicurezza del metodo Da quanto esposto si osserva che per decodificare il
messaggio bisogna
1 conoscere d (chiave segreta)
2 essendo d lrsquoinverso di e nellrsquoaritmetica mod Φ(N) essendo e noto egrave necessario conoscere Φ(N)
3 ma noto N per calcolare Φ(N) egrave necessario conoscere i fattori primi di N cioegrave egrave necessario fattorizzare
N che egrave un problema computazionalmente difficile per quanto osservato in precedenza
Anche se non egrave stato dimostrato che non si possa rompere il codice in altro modo e cioegrave senza conoscere Φ(N) e i
fattori di N a tuttrsquooggi si puograve affermare che la sicurezza del metodo dipende essenzialmente dai seguenti fatti
Per codificare il messaggio bisogna saper costruire dei numeri primi grandi e tale operazione egrave
computazionalmente veloce si puograve infatti dimostrare che la complessitagrave computazionale di opportuni test di
primalitagrave per stabilire se un numero n egrave primo utilizzando il linguaggio di quel ramo della matematica nota
come teoria della complessitagrave egrave ldquoquasi-polinomialerdquo
Per violare il sistema bisogna saper fattorizzare interi grandi ottenuti come prodotto di due primi tale
problema egrave computazionalmente ldquolentordquo cioegrave con il linguaggio della teoria della complessitagrave appartiene alla
classe dei problemi non polinomiali Tale marcata differenza tra la velocitagrave di esecuzione delle operazioni di
costruzione di numeri primi grandi e di fattorizzazione di interi grandi garantisce la sicurezza del metodo
almeno per un tempo sufficientemente lungo Ad esempio con la tecnologia attuale lrsquooperazione di
fattorizzazione di un intero di 140 cifre in base 10 prodotto di due numeri primi casuali calcolati in pochi
secondi su un computer disponibile in commercio richiede utilizzando vari supercomputers operanti
parallelamente circa un mese
La RSA Security Inc gestisce una sfida a livello mondiale ove vengono premiati coloro che fattorizzano
gli interi proposti da loro in una particolare lista Ad esempio il 3 dicembre del 2003 egrave stato fattorizzato
32
rsa576 =
188198812920607963838697239461650439807163563379417382700763356422988859715234
665485319060606504743045317388011303396716199692321205734031879550656996221305
168759307650257059
un numero di 174 cifre decimali prodotto di due primi di 87 cifre
p =
398075086424064937397125500550386491199064362342526708406385189575946388957261
768583317
q =
472772146107435302536223071973048224632914695302097116459852171130520711256363
590397527
Le chiavi attualmente utilizzate dallRSA sono a 309 cifre decimali
La firma digitale
Consideriamo al solito un mittente che deve inviare a un destinatario un messaggio m La codifica di m
con il metodo descritto assicura lrsquoautenticitagrave del messaggio ma non fornisce alcuna sicurezza sulla sua
paternitagrave Infatti il messaggio m pur essendo autentico potrebbe essere stato inviato da qualcuno che si spaccia
per il mittente Questa egrave unimportantissima questione particolarmente nella trasmissione di messaggi che oltre
a dover essere segreti devono garantire la loro origine
Si dovrebbe quindi disporre di un analogo della firma manuale detta appunto firma digitale La firma
digitale deve allora essere progettata in modo da possedere le stesse caratteristiche di una firma manuale e cioegrave
lrsquoautenticitagrave la non falsificabilitagrave e lrsquoimpossibiltagrave di essere riutilizzata Facciamo vedere come lo stesso metodo
RSA puograve essere utilizzato per progettare una firma digitale
La situazione egrave la seguente il mittente (di seguito indicato con Mitt) invia un messaggio m con la firma
F al destinatario (di seguito indicato con Dest) Siano a b rispettivamente le chiavi pubblica e segreta di MITT
siano e d rispettivamente le chiavi pubblica e segreta di DEST
La procedura per apporre la firma digitale F al messaggio m egrave illustrata nei seguenti passi riassunti nel
grafico della figura 14
1 Mitt cripta la firma F (cioegrave i suoi dati identificativi) usando la propria chiave segreta (b)
ottenendo Fb
2 il messaggio m con la firma F criptata viene ulteriormente criptato con la chiave pubblica di
Dest (e) ottenendo (m Fb)e
3 Dest decodifica il messaggio con la sua chiave segreta (d) ottenendo
((m Fb)e)d = (me F(be)) d =m(e d)F(be d) = mFb
in cui la firma di Mitt egrave ancora criptata
4 Dest decodifica la firma di Mitt con la chiave pubblica di Mitt (a) ottenendo
(Fb)a = F(ba) = F
33
Grafico firma digitale
Mitt
Dest
pubblica
Fb
e dpubblica
a
((Fb)e)d=(Fb)ed=(Fb)1=Fb
(Fb)a=(F)ba=(F)1=F
ab de
(Fb)e
codifica
codificadecodifica
decodifica
1
2
3
4
5
6
7
8
segreta
b
segreta
Figura 14 Grafico firma digitale
Bibliografia
Thomas Beth Comunicazioni e sicurezza su Internet in ldquoLe Scienzerdquo n 330 febbraio 1996
Brian Butterworth Intelligenza matematica Vincere la paura dei numeri scoprendo le doti innate della mente
Rizzoli Milano 1999
John H Conway Richard K Guy Il libro dei numeri Hoepli Milano 2003
Richard Courant Herbert Robbins Che cosrsquoegrave la matematica Boringhieri Torino 1971
Philip J Davis Il mondo dei grandi numeri Zanichelli Bologna 1973
Keith Devlin Dove va la matematica Bollati Boringhieri Torino 1994
Jean Dieudonneacute Lrsquoarte dei numeri matematica e matematici oggi Mondadori Milano 1989
Martin E Ellmann La crittografia a chiave pubblica in La matematica della complessitagrave Quaderni n 67
settembre 1992 Le Scienze
Paolo Ferragina Fabrizio Luccio Crittografia principi ndash Algoritmi ndash Applicazioni Bollati Boringhieri Torino
2001
Godfrey H Hardy Apologia di un matematico Garzanti Milano 1989
Morris Kline Storia del pensiero matematico Einaudi Milano 1991
Serge Lang La bellezza della matematica Bollati Boringhieri Torino 1991
Mauro Leoncini Modelli di calcolo e complessitagrave computazionale in La matematica computazionale Quaderni
n 84 giugno 1995 Le Scienze
Fabrizio Luccio e Linda Pagli P = NP in La matematica della complessitagrave Quaderni n 67 settembre 1992
Le Scienze
Piergiorgio Odifreddi La Matematica del Novecento dagli insiemi alla complessitagrave Einaudi Torino 2000
34
ldquoPeriodico di matematicherdquo Serie VII Volume 7 Numero 2-3 luglio-dicembre 2000 Mathesis
ldquoPeriodico di matematicherdquo Serie VIII Volume 1 Numero 1 gennaio-marzo 2001 Mathesis
Carl Pomerance Alla ricerca dei numeri primi in ldquoLe Scienzerdquo n 174 febbraio 1983
Simon Singh Codici e segreti la storia affascinante dei messaggi cifrati dallrsquoantico Egitto a Internet Rizzoli
Milano 1999
Marcus du Sautoy Lrsquoenigma dei numeri primi lrsquoipotesi di Riemann lrsquoultimo grande mistero della matematica
Rizzoli Milano 2004
Gary Stix I segreti meglio custoditi la crittografia quantistica egrave passata dalla teoria al laboratorio per
approdare finalmente alle applicazioni in ldquoLe Scienzerdquo n 438 febbraio 2005
32
rsa576 =
188198812920607963838697239461650439807163563379417382700763356422988859715234
665485319060606504743045317388011303396716199692321205734031879550656996221305
168759307650257059
un numero di 174 cifre decimali prodotto di due primi di 87 cifre
p =
398075086424064937397125500550386491199064362342526708406385189575946388957261
768583317
q =
472772146107435302536223071973048224632914695302097116459852171130520711256363
590397527
Le chiavi attualmente utilizzate dallRSA sono a 309 cifre decimali
La firma digitale
Consideriamo al solito un mittente che deve inviare a un destinatario un messaggio m La codifica di m
con il metodo descritto assicura lrsquoautenticitagrave del messaggio ma non fornisce alcuna sicurezza sulla sua
paternitagrave Infatti il messaggio m pur essendo autentico potrebbe essere stato inviato da qualcuno che si spaccia
per il mittente Questa egrave unimportantissima questione particolarmente nella trasmissione di messaggi che oltre
a dover essere segreti devono garantire la loro origine
Si dovrebbe quindi disporre di un analogo della firma manuale detta appunto firma digitale La firma
digitale deve allora essere progettata in modo da possedere le stesse caratteristiche di una firma manuale e cioegrave
lrsquoautenticitagrave la non falsificabilitagrave e lrsquoimpossibiltagrave di essere riutilizzata Facciamo vedere come lo stesso metodo
RSA puograve essere utilizzato per progettare una firma digitale
La situazione egrave la seguente il mittente (di seguito indicato con Mitt) invia un messaggio m con la firma
F al destinatario (di seguito indicato con Dest) Siano a b rispettivamente le chiavi pubblica e segreta di MITT
siano e d rispettivamente le chiavi pubblica e segreta di DEST
La procedura per apporre la firma digitale F al messaggio m egrave illustrata nei seguenti passi riassunti nel
grafico della figura 14
1 Mitt cripta la firma F (cioegrave i suoi dati identificativi) usando la propria chiave segreta (b)
ottenendo Fb
2 il messaggio m con la firma F criptata viene ulteriormente criptato con la chiave pubblica di
Dest (e) ottenendo (m Fb)e
3 Dest decodifica il messaggio con la sua chiave segreta (d) ottenendo
((m Fb)e)d = (me F(be)) d =m(e d)F(be d) = mFb
in cui la firma di Mitt egrave ancora criptata
4 Dest decodifica la firma di Mitt con la chiave pubblica di Mitt (a) ottenendo
(Fb)a = F(ba) = F
33
Grafico firma digitale
Mitt
Dest
pubblica
Fb
e dpubblica
a
((Fb)e)d=(Fb)ed=(Fb)1=Fb
(Fb)a=(F)ba=(F)1=F
ab de
(Fb)e
codifica
codificadecodifica
decodifica
1
2
3
4
5
6
7
8
segreta
b
segreta
Figura 14 Grafico firma digitale
Bibliografia
Thomas Beth Comunicazioni e sicurezza su Internet in ldquoLe Scienzerdquo n 330 febbraio 1996
Brian Butterworth Intelligenza matematica Vincere la paura dei numeri scoprendo le doti innate della mente
Rizzoli Milano 1999
John H Conway Richard K Guy Il libro dei numeri Hoepli Milano 2003
Richard Courant Herbert Robbins Che cosrsquoegrave la matematica Boringhieri Torino 1971
Philip J Davis Il mondo dei grandi numeri Zanichelli Bologna 1973
Keith Devlin Dove va la matematica Bollati Boringhieri Torino 1994
Jean Dieudonneacute Lrsquoarte dei numeri matematica e matematici oggi Mondadori Milano 1989
Martin E Ellmann La crittografia a chiave pubblica in La matematica della complessitagrave Quaderni n 67
settembre 1992 Le Scienze
Paolo Ferragina Fabrizio Luccio Crittografia principi ndash Algoritmi ndash Applicazioni Bollati Boringhieri Torino
2001
Godfrey H Hardy Apologia di un matematico Garzanti Milano 1989
Morris Kline Storia del pensiero matematico Einaudi Milano 1991
Serge Lang La bellezza della matematica Bollati Boringhieri Torino 1991
Mauro Leoncini Modelli di calcolo e complessitagrave computazionale in La matematica computazionale Quaderni
n 84 giugno 1995 Le Scienze
Fabrizio Luccio e Linda Pagli P = NP in La matematica della complessitagrave Quaderni n 67 settembre 1992
Le Scienze
Piergiorgio Odifreddi La Matematica del Novecento dagli insiemi alla complessitagrave Einaudi Torino 2000
34
ldquoPeriodico di matematicherdquo Serie VII Volume 7 Numero 2-3 luglio-dicembre 2000 Mathesis
ldquoPeriodico di matematicherdquo Serie VIII Volume 1 Numero 1 gennaio-marzo 2001 Mathesis
Carl Pomerance Alla ricerca dei numeri primi in ldquoLe Scienzerdquo n 174 febbraio 1983
Simon Singh Codici e segreti la storia affascinante dei messaggi cifrati dallrsquoantico Egitto a Internet Rizzoli
Milano 1999
Marcus du Sautoy Lrsquoenigma dei numeri primi lrsquoipotesi di Riemann lrsquoultimo grande mistero della matematica
Rizzoli Milano 2004
Gary Stix I segreti meglio custoditi la crittografia quantistica egrave passata dalla teoria al laboratorio per
approdare finalmente alle applicazioni in ldquoLe Scienzerdquo n 438 febbraio 2005
33
Grafico firma digitale
Mitt
Dest
pubblica
Fb
e dpubblica
a
((Fb)e)d=(Fb)ed=(Fb)1=Fb
(Fb)a=(F)ba=(F)1=F
ab de
(Fb)e
codifica
codificadecodifica
decodifica
1
2
3
4
5
6
7
8
segreta
b
segreta
Figura 14 Grafico firma digitale
Bibliografia
Thomas Beth Comunicazioni e sicurezza su Internet in ldquoLe Scienzerdquo n 330 febbraio 1996
Brian Butterworth Intelligenza matematica Vincere la paura dei numeri scoprendo le doti innate della mente
Rizzoli Milano 1999
John H Conway Richard K Guy Il libro dei numeri Hoepli Milano 2003
Richard Courant Herbert Robbins Che cosrsquoegrave la matematica Boringhieri Torino 1971
Philip J Davis Il mondo dei grandi numeri Zanichelli Bologna 1973
Keith Devlin Dove va la matematica Bollati Boringhieri Torino 1994
Jean Dieudonneacute Lrsquoarte dei numeri matematica e matematici oggi Mondadori Milano 1989
Martin E Ellmann La crittografia a chiave pubblica in La matematica della complessitagrave Quaderni n 67
settembre 1992 Le Scienze
Paolo Ferragina Fabrizio Luccio Crittografia principi ndash Algoritmi ndash Applicazioni Bollati Boringhieri Torino
2001
Godfrey H Hardy Apologia di un matematico Garzanti Milano 1989
Morris Kline Storia del pensiero matematico Einaudi Milano 1991
Serge Lang La bellezza della matematica Bollati Boringhieri Torino 1991
Mauro Leoncini Modelli di calcolo e complessitagrave computazionale in La matematica computazionale Quaderni
n 84 giugno 1995 Le Scienze
Fabrizio Luccio e Linda Pagli P = NP in La matematica della complessitagrave Quaderni n 67 settembre 1992
Le Scienze
Piergiorgio Odifreddi La Matematica del Novecento dagli insiemi alla complessitagrave Einaudi Torino 2000
34
ldquoPeriodico di matematicherdquo Serie VII Volume 7 Numero 2-3 luglio-dicembre 2000 Mathesis
ldquoPeriodico di matematicherdquo Serie VIII Volume 1 Numero 1 gennaio-marzo 2001 Mathesis
Carl Pomerance Alla ricerca dei numeri primi in ldquoLe Scienzerdquo n 174 febbraio 1983
Simon Singh Codici e segreti la storia affascinante dei messaggi cifrati dallrsquoantico Egitto a Internet Rizzoli
Milano 1999
Marcus du Sautoy Lrsquoenigma dei numeri primi lrsquoipotesi di Riemann lrsquoultimo grande mistero della matematica
Rizzoli Milano 2004
Gary Stix I segreti meglio custoditi la crittografia quantistica egrave passata dalla teoria al laboratorio per
approdare finalmente alle applicazioni in ldquoLe Scienzerdquo n 438 febbraio 2005
34
ldquoPeriodico di matematicherdquo Serie VII Volume 7 Numero 2-3 luglio-dicembre 2000 Mathesis
ldquoPeriodico di matematicherdquo Serie VIII Volume 1 Numero 1 gennaio-marzo 2001 Mathesis
Carl Pomerance Alla ricerca dei numeri primi in ldquoLe Scienzerdquo n 174 febbraio 1983
Simon Singh Codici e segreti la storia affascinante dei messaggi cifrati dallrsquoantico Egitto a Internet Rizzoli
Milano 1999
Marcus du Sautoy Lrsquoenigma dei numeri primi lrsquoipotesi di Riemann lrsquoultimo grande mistero della matematica
Rizzoli Milano 2004
Gary Stix I segreti meglio custoditi la crittografia quantistica egrave passata dalla teoria al laboratorio per
approdare finalmente alle applicazioni in ldquoLe Scienzerdquo n 438 febbraio 2005