34
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 all’University College di Londra e autore del libro Intelligenza matematica, in esso così si esprime: “di tutte le facoltà che ci hanno innalzato dallo stato di cavernicoli e utilizzatori di strumenti in pietra a quello di edificatori di città grandiose e della scienza moderna, una delle più importanti – e anche una delle meno comprese – è quella di usare i numeri […] forse, se troviamo così difficile renderci conto di quanto siamo dipendenti dai numeri è proprio perché guardiamo il mondo inforcando lenti numeriche che non ci togliamo mai” In effetti i numeri influenzano quasi tutti gli aspetti più tipicamente umani della nostra vita. Oggi usiamo abitualmente i numeri in quasi ogni nostra attività: per contare oggetti, per dire che ora è, per fare statistiche, per giocare d’azzardo, 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 utilità, lo sono ancor più per la maniera in cui essi hanno foggiato il nostro modo di concepire il mondo. Quello dei numeri è il linguaggio con cui vengono formulate le teorie scientifiche, e tutti coloro che si sono occupati di scienza, dall’antichità a oggi, sono stati affascinati da essi, come si può evincere dalle seguenti citazioni, riportate in ordine cronologico. Proclo (410-485 circa): “Ovunque c’è il numero, c’è bellezza” Galileo Galilei(1564-1642): questo grandissimo libro (io dico l’universo) […] non si può intendere se prima non si impara a intender la lingua, e conoscer i caratteri, ne’ quali è scritto. Egli è scritto in lingua matematica.” Albert Einstein (1879-1955): [i numeri sono] “la controparte simbolica dell’universo” Carl Friedrich Gauss (1777-1855): “se la matematica è la regina delle scienze, la teoria dei numeri è la regina della matematica” Piergiorgio Odifreddi, (1950): [la teoria dei numeri] “è forse la disciplina in cui le connessioni fra il diacronico e il sincronico, il classico e il moderno, il concreto e l’astratto tipiche della matematica contemporanea si manifestano nella maniera più spettacolare, anche se non la sola”.

(eBook - ITA) Il Mistero Dei Numeri Primi e La Sicurezza Informatica

Embed Size (px)

Citation preview

Page 1: (eBook - ITA) Il Mistero Dei Numeri Primi e La Sicurezza Informatica

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

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

Page 2: (eBook - ITA) Il Mistero Dei Numeri Primi e La Sicurezza Informatica

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

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

Page 3: (eBook - ITA) Il Mistero Dei Numeri Primi e La Sicurezza Informatica

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

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

Page 4: (eBook - ITA) Il Mistero Dei Numeri Primi e La Sicurezza Informatica

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

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

Page 5: (eBook - ITA) Il Mistero Dei Numeri Primi e La Sicurezza Informatica

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

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

Page 6: (eBook - ITA) Il Mistero Dei Numeri Primi e La Sicurezza Informatica

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

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

Page 7: (eBook - ITA) Il Mistero Dei Numeri Primi e La Sicurezza Informatica

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

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

Page 8: (eBook - ITA) Il Mistero Dei Numeri Primi e La Sicurezza Informatica

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

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

Page 9: (eBook - ITA) Il Mistero Dei Numeri Primi e La Sicurezza Informatica

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

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

Page 10: (eBook - ITA) Il Mistero Dei Numeri Primi e La Sicurezza Informatica

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

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

Page 11: (eBook - ITA) Il Mistero Dei Numeri Primi e La Sicurezza Informatica

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

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

Page 12: (eBook - ITA) Il Mistero Dei Numeri Primi e La Sicurezza Informatica

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

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

Page 13: (eBook - ITA) Il Mistero Dei Numeri Primi e La Sicurezza Informatica

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

Page 14: (eBook - ITA) Il Mistero Dei Numeri Primi e La Sicurezza Informatica

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

Page 15: (eBook - ITA) Il Mistero Dei Numeri Primi e La Sicurezza Informatica

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

Page 16: (eBook - ITA) Il Mistero Dei Numeri Primi e La Sicurezza Informatica

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

Page 17: (eBook - ITA) Il Mistero Dei Numeri Primi e La Sicurezza Informatica

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

Page 18: (eBook - ITA) Il Mistero Dei Numeri Primi e La Sicurezza Informatica

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

Page 19: (eBook - ITA) Il Mistero Dei Numeri Primi e La Sicurezza Informatica

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

Page 20: (eBook - ITA) Il Mistero Dei Numeri Primi e La Sicurezza Informatica

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

Page 21: (eBook - ITA) Il Mistero Dei Numeri Primi e La Sicurezza Informatica

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

Page 22: (eBook - ITA) Il Mistero Dei Numeri Primi e La Sicurezza Informatica

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

Page 23: (eBook - ITA) Il Mistero Dei Numeri Primi e La Sicurezza Informatica

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

Page 24: (eBook - ITA) Il Mistero Dei Numeri Primi e La Sicurezza Informatica

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

Page 25: (eBook - ITA) Il Mistero Dei Numeri Primi e La Sicurezza Informatica

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

Page 26: (eBook - ITA) Il Mistero Dei Numeri Primi e La Sicurezza Informatica

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

Page 27: (eBook - ITA) Il Mistero Dei Numeri Primi e La Sicurezza Informatica

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

Page 28: (eBook - ITA) Il Mistero Dei Numeri Primi e La Sicurezza Informatica

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

Page 29: (eBook - ITA) Il Mistero Dei Numeri Primi e La Sicurezza Informatica

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

Page 30: (eBook - ITA) Il Mistero Dei Numeri Primi e La Sicurezza Informatica

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

Page 31: (eBook - ITA) Il Mistero Dei Numeri Primi e La Sicurezza Informatica

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

Page 32: (eBook - ITA) Il Mistero Dei Numeri Primi e La Sicurezza Informatica

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

Page 33: (eBook - ITA) Il Mistero Dei Numeri Primi e La Sicurezza Informatica

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

Page 34: (eBook - ITA) Il Mistero Dei Numeri Primi e La Sicurezza Informatica

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