PRIMAVERA IN BICOCCA



Похожие документы
Introduzione alla Crittografia

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

4 3 4 = 4 x x x 10 0 aaa

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

APPUNTI DI MATEMATICA LE FRAZIONI ALGEBRICHE ALESSANDRO BOCCONI

Dimensione di uno Spazio vettoriale

1. PRIME PROPRIETÀ 2

Matematica generale CTF

Dispense di Informatica per l ITG Valadier

Il principio di induzione e i numeri naturali.

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

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

Un po di teoria dei numeri

Introduzione alla crittografia. Il crittosistema RSA e la sua sicurezza

Prodotto libero di gruppi

Alessandro Pellegrini

Corrispondenze e funzioni

Lezione 9: Cambio di base

INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI

Numeri naturali numeri naturali minore maggiore Operazioni con numeri naturali

I numeri semiprimi e i numeri RSA. come loro sottoinsieme

Applicazioni lineari

LE FUNZIONI A DUE VARIABILI

Lezioni di Matematica 1 - I modulo

SOMMARIO I radicali pag I radicali aritmetici pag Moltiplicazione e divisione fra radicali aritmetici pag.

Parte 2. Determinante e matrice inversa

risulta (x) = 1 se x < 0.

1 Giochi a due, con informazione perfetta e somma zero

Esercizi su lineare indipendenza e generatori

LEZIONE 23. Esempio Si consideri la matrice (si veda l Esempio ) A =

Convertitori numerici in Excel

I SISTEMI DI NUMERAZIONE

Per lo svolgimento del corso risulta particolarmente utile considerare l insieme

CALCOLO COMBINATORIO

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

Schemi delle Lezioni di Matematica Generale. Pierpaolo Montana

Analisi di programmi: Crittografia

Funzioni inverse Simmetrie rispetto alla bisettrice dei quadranti dispari. Consideriamo la trasformazione descritta dalle equazioni : = y

Matematica in laboratorio

Alcune nozioni di base di Logica Matematica

11) convenzioni sulla rappresentazione grafica delle soluzioni

Capitolo 2. Operazione di limite

LE SUCCESSIONI 1. COS E UNA SUCCESSIONE

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

Sistema di numerazione binario, operazioni relative e trasformazione da base due a base dieci e viceversa di Luciano Porta

ESERCIZI APPLICAZIONI LINEARI

APPLICAZIONI LINEARI

Equilibrio bayesiano perfetto. Giochi di segnalazione

Le funzioni continue. A. Pisani Liceo Classico Dante Alighieri A.S A. Pisani, appunti di Matematica 1

Soluzioni del giornalino n. 16

10. Insiemi non misurabili secondo Lebesgue.

Si sa che la via più breve tra due punti è la linea retta. Ma vi siete mai chiesti, Qual è la via più breve tra tre punti? o tra quattro punti?

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

Processo di risoluzione di un problema ingegneristico. Processo di risoluzione di un problema ingegneristico

Teoria delle code. Sistemi stazionari: M/M/1 M/M/1/K M/M/S

UNIVERSITÀ DEGLI STUDI DI TERAMO

Osservazioni sulla continuità per le funzioni reali di variabile reale

ESERCIZI DI ALGEBRA LINEARE E GEOMETRIA

1 Applicazioni Lineari tra Spazi Vettoriali

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

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

PROPRIETA' ASSOCIATIVA La somma di tre o più addendi non cambia se al posto di alcuni di essi si sostituisce la loro somma.

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

II.f. Altre attività sull euro

Matematica 1 - Corso di Laurea in Ingegneria Meccanica

4. Operazioni aritmetiche con i numeri binari

un protocollo è costituito da una serie di passi (step) e coinvolge due o più persone (parti, entità) allo scopo di svolgere un incarico

3 GRAFICI DI FUNZIONI

4. Operazioni elementari per righe e colonne

Parte 3. Rango e teorema di Rouché-Capelli

I sistemi di numerazione

Corso PAS Anno ESEMPIO. Per n = 3, Z 3 contiene 3 elementi:

DOMINI A FATTORIZZAZIONE UNICA

Soluzione dell esercizio del 2 Febbraio 2004

Funzioni. Funzioni /2

SISTEMI DI NUMERAZIONE E CODICI

ESEMPIO 1: eseguire il complemento a 10 di 765

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

LA MOLTIPLICAZIONE IN CLASSE SECONDA

Esponenziali elogaritmi

LABORATORIO DI MATEMATICA RENDITE, AMMORTAMENTI, LEASING CON EXCEL

Esercizi svolti sui numeri complessi

UNA LEZIONE SUI NUMERI PRIMI: NASCE LA RITABELLA

Lezione 6. Divisibilità e divisori. Teorema di divisione euclidea. Algoritmo delle divisioni successive.

Teoria dei Giochi. Anna Torre

LA TRASMISSIONE DELLE INFORMAZIONI QUARTA PARTE 1

Operazioni binarie fondamentali

CONCETTO DI LIMITE DI UNA FUNZIONE REALE

Complemento al corso di Fondamenti di Informatica I corsi di laurea in ingegneria, settore dell informazione Università la Sapienza Consorzio Nettuno

1. Limite finito di una funzione in un punto

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

Edited by Foxit PDF Editor Copyright (c) by Foxit Software Company, 2004 For Evaluation Only.

SISTEMI DI NUMERAZIONE DECIMALE E BINARIO

La matematica dell orologio

Teoria dei Giochi. Anna Torre

IL CALCOLO VETTORIALE (SUPPLEMENTO AL LIBRO)

DA GIOCHI D AUTUNNO 2006 SOLUZIONI E COMMENTI

Транскрипт:

PRIMAVERA IN BICOCCA 1. Numeri primi e fattorizzazione Una delle applicazioni più rilevanti della Teoria dei Numeri si ha nel campo della crittografia. In queste note vogliamo delineare, in particolare, il metodo di crittografia a chiave pubblica RSA, che prende il nome dai suoi ideatori Rivest, Shamir e Adleman. Da un punto di vista matematico, la crittografia a chiave pubblica si basa sull idea di individuare una funzione che sia invertibile ma, mentre la funzione individuata deve essere facile da calcolare, la sua inversa deve essere invece molto difficile da calcolare. È per certi versi sorprendente che una funzione con queste proprietà sia la funzione che, dati due numeri primi, ne restituisce il loro prodotto. Per capire meglio il senso di questa affermazione ci mettiamo in un contesto leggermente più generale. Ricordiamo intanto la definizione di numero primo. Definizione. Un numero naturale p, diverso da 0 e da 1, si dice primo se gli unici interi positivi per cui è divisibile sono 1 e p. Esempio. Sono numeri primi 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31... Il più grande numero primo finora (gennaio 2014) conosciuto è 2 57885161 1, scoperto nel 2013. Questo numero ha 17425170 cifre decimali. È noto fin dall antichità che i numeri primi sono infiniti e hanno un ruolo centrale nell aritmetica perchè permettono di costruire, attraverso la moltiplicazione, tutti i numeri interi. Più precisamente: Teorema (Teorema della Fattorizzazione Unica). Ogni numero intero n, maggiore o uguale a 2, si scrive come prodotto di potenze di numeri primi, cioè n = p t 1 1 p t 2 2 p ts s con p 1, p 2,..., p s numeri primi distinti, t 1,..., t s interi positivi. Questa scrittura è unica a meno dell ordine, cioè i primi p 1,..., p s e gli esponenti t 1, t s sono univocamente determinati da n. Esempio. La fattorizzazione di 1500 è 2 2 3 5 3. La fattorizzazione di 26094 è 2 3 4349. Supponiamo ora che ci venga dato un numero N che sappiamo essere il prodotto di due numeri primi distinti p e q (dunque N = p q) e ci venga chiesto, conoscendo solo N, di determinare p e q. Un modo di procedere è di dividere N per 2, 3, 4,... N 1 fin quando non troviamo un fattore di N. Quante divisioni dobbiamo fare? Se N = p q allora p e q non possono essere entrambi maggiori di N, altrimenti il loro prodotto sarebbe maggiore di N. Quindi, se supponiamo che sia p < q, abbiamo che p N. Il punto cruciale per la crittografia è che, se N è abbastanza grande, il numero di divisioni che dobbiamo provare è talmente elevato che, con la attuale potenza di calcolo dei computer, non possiamo dare una risposta al problema in un tempo ragionevole. Il 1

2 PRIMAVERA IN BICOCCA metodo delle divisioni è certamente poco efficiente, ma anche con i metodi teorici più efficienti a disposizione, e con le attuali risorse di calcolo, il problema di fattorizzare numeri grandi è in pratica impossibile. Per darvi una idea dell ordine di grandezza del numero N = p q impiegato in crittografia, lo standard di sicurezza, considerato solido almeno fino al 2030, prevede di utilizzare un numero N dell ordine di 10 600. La società RSA Security ha lanciato, nel 1991, una sfida (RSA Factoring Challenge) pubblicando una lista di numeri della forma N = p q, e promettendo un premio in denaro per chi fosse riuscito a fattorizzarli. La sfida si è conclusa nel 2007. Il più piccolo numero della lista aveva 100 cifre decimali ed è stato fattorizzato in pochi giorni, ma molti altri non sono stati ancora fattorizzati (il più piccolo dei quali ha 190 cifre decimali). La funzione invertibile che è facile da calcolare, ma la cui inversa è difficile da calcolare, è quindi la funzione che, dati due numeri primi p e q, ci restituisce il loro prodotto N = p q. 2. Massimo comun divisore e moduli Siano a e b due numeri interi, che per semplicità supponiamo entrambi positivi. Possiamo considerare il loro massimo comun divisore, che indichiamo con M CD(a, b). Sia a che b sono multipli del loro massimo comun divisore. Inoltre i divisori di M CD(a, b) sono tutti e soli i divisori comuni tra a e b. Come si calcola il massimo comun divisore tra a e b? Un modo è quello di utilizzare la fattorizzazione in prodotto di numeri primi di a e b. Un altro modo, che per quello che segue è più utile, è usare l algoritmo di Euclide (o algoritmo delle divisioni successive). Vediamolo su un esempio. Prendiamo a = 1218 e b = 132 e vogliamo calcolare il loro massimo comun divisore. 1218 = 132 9 + 30 a = bq 1 + r 1 132 = 30 4 + 12 b = r 1 q 2 + r 2 30 = 12 2 + 6 r 1 = r 2 q 3 + r 3 12 = 6 2 + 0 r 2 = r 3 q 4 + 0 Il massimo comun divisore tra 1218 e 132 è l ultimo resto non nullo nel procedimento delle divisioni successive. Un altra informazione che otteniamo dall algoritmo di Euclide, è che esistono due interi s e t per cui MCD(a, b) = a s + b t. Riprendiamo il nostro esempio che riscriviamo, per maggior chiarezza, nella colonna di sinistra, usando la lettera a per 1218 e la lettera b per 132. Nella colonna di destra, partendo dalla prima divisione, isoliamo il resto. Inoltre in ciascuna delle equazioni di destra, a partire dalla seconda, sostituiamo le precedenti. a = b 9 + 30 30 = a 9b b = 30 4 + 12 12 = b 4 30 = b 4(a 9b) = 37b 4a 30 = 12 2 + 6 6 = 30 2 12 = (a 9b) 2(37b 4a) = = 9a 83b

PRIMAVERA IN BICOCCA 3 Dunque abbiamo ottenuto che 6 = 1218 9 132 83, ovvero una possibile scelta per gli interi s e t che cercavamo è s = 9 e t = 83. Naturalmente questa non è l unica possibilità, perchè se k è un qualunque intero, allora 6 = (9 kb)a + ( 83 + ka)b. Più in generale, se MCD(a, b) = as + bt, allora è vero anche che MCD(a, b) = a(s kb) + b(t + ka). Introduciamo adesso l aritmetica dei moduli (o aritmetica dell orologio). Si tratta di un concetto che ci è familiare. Comincio dunque con un esempio. Consideriamo un orologio con 24 ore che indichiamo con 0,... 23. Se adesso sono le 15 e ci venisse chiesto che ore sono tra 22 ore, cosa faremmo per rispondere? Quello che faremmo è sommare 15 + 22 = 37, dividere (divisione con resto) 37 per 24, ottenendo 37 = 24 1 + 13 e considerare il resto ottenuto, cioè 13. Quindi se adesso sono le 15, tra 22 ore sono le 13. Ancora un esempio. Se partiamo dall ora 0, dopo 55 ore che ore sono? Di nuovo quello che facciamo è dividere 55 per 24, 55 = 24 2 + 7 e considerare il resto. Dunque, dopo 55 ore sono le 7. L aritmetica dei moduli generalizza questo esempio dal caso di un orologio con 24 ore al caso di un orologio con n di ore, dove n 1 è un naturale. Vediamolo ancora su un esempio. Se n = 7 stiamo considerando un orologio con 7 ore, che indichiamo con 0, 1, 2, 3, 4, 5 e 6. Se adesso sono le 5, per sapere che ore sono tra 4 ore quello che facciamo è sommare 5 + 4 = 9, dividere 9 per 7 ottenendo 9 = 7 1 + 2, e dunque tra 4 ore sono le 2. Esattamente lo stesso procedimento che abbiamo usato prima, nel caso di un orologio di 24 ore. Nel linguaggio matematico l aritmetica su un orologio con 7 ore è l aritmetica modulo 7. In simboli scriviamo che 5 + 4 mod 7 = 2. Allo stesso modo se partiamo dalle ore 0, e vogliamo sapere che ore sono dopo 89 ore, dividiamo 89 per 7 e ne prendiamo il resto. Abbiamo dunque 89 = 7 12 + 5 e scriviamo 89 mod 7 = 5. Analogamente al caso della somma, se vogliamo calcolare 5 4 mod 7, calcoliamo 5 4 = 20, dividiamo il risultato per 7 e ne consideriamo il resto, dunque 5 4 mod 7 = 6. Una proprietà del prodotto modulo 7 ci permette semplificare i conti. Per esempio, se vogliamo calcolare 89 145 mod 7, sappiamo che dobbiamo calcolare 89 143 = 12727 e poi dividere il risultato per 7, 12727 = 7 1818 + 1, ottenendo che 89 143 mod 7 = 12727 mod 7 = 1. Avremmo potuto anche calcolare separatamente 89 mod 7 = 5 e 143 mod 7 = 3 e poi (5 3) mod 7 = 15 mod 7 = 1. In modo analogo si può ragionare per la somma. In generale, se n 1 è un naturale fissato e a è un numero intero (che per semplicità supponiamo positivo) definiamo a mod n come il resto r che otteniamo dividendo a per n. Osserviamo che il resto nella divisione per n è sempre compreso tra 0 e n 1. Come negli esempi precedenti possiamo definire somma o prodotto di a e b modulo n come, rispettivamente, la somma o il prodotto usuali di a e b seguiti dalla divisione per n. Come negli esempi se vogliamo calcolare, per esempio, il prodotto a b mod n possiamo calcolare a mod n = r 1 e b mod n = r 2 e poi il prodotto r 1 r 2 mod n. Lo stesso vale per la somma.

4 PRIMAVERA IN BICOCCA 3. La funzione di Eulero Un ruolo cruciale per la descrizione dell algoritmo RSA è giocato dalla funzione ϕ di Eulero. Vediamo come è definita. La funzione ϕ ha come dominio l insieme N \ {0} e come codominio N, dunque ϕ : N \ {0} N. In 1 poniamo che la funzione valga 1, cioè poniamo che ϕ(1) = 1. Se n è un numero naturale maggiore o uguale a 2, per definire ϕ(n) consideriamo l insieme A di tutti i numeri naturali k che soddisfano queste due proprietà: 1) 1 k n; 2) il massimo comun divisore tra k e n è uguale a 1. Allora il valore di ϕ in n è uguale al numero di elementi dell insieme A. La definizione sembra complicata ma vediamola su qualche esempio. Esempio. Consideriamo n = 8. L insieme A è l insieme di tutti i numeri naturali k che soddisfano le due proprietà: 1) 1 k 8; 2) il massimo comun divisore tra k e 8 è uguale a 1. Allora otteniamo A = {1, 3, 5, 7} e il numero di elementi di A è 4, dunque ϕ(8) = A = 4. Esempio. Consideriamo n = 24. L insieme A è l insieme di tutti i numeri naturali k che soddisfano le due proprietà: 1) 1 k 24; 2) il massimo comun divisore tra k e 24 è uguale a 1. Allora otteniamo A = {1, 5, 7, 11, 13, 17, 19, 23} e il numero di elementi di A è 8, dunque ϕ(24) = A = 8. Esempio. Consideriamo n = 11. L insieme A è l insieme di tutti i numeri naturali k che soddisfano le due proprietà: 1) 1 k 11; 2) il massimo comun divisore tra k e 11 è uguale a 1. Allora otteniamo A = {1, 2, 3, 5, 6, 7, 8, 9, 10} e il numero di elementi di A è 10, dunque ϕ(11) = A = 10. Adesso abbiamo capito come è definita la funzione di Eulero, ma, riguardando l ultimo esempio, abbiamo anche una informazione in più su come calcolarla. Infatti nell ultimo esempio, n = 11 è un numero primo. Allora è facile capire come è fatto l insieme A. Siccome gli unici divisori di 11 sono 1 e 11, comunque scelgo k con 1 k 10, risulta che il massimo comun divisore tra k e 11 è uguale a 1. Quindi l insieme A contiene tutti

PRIMAVERA IN BICOCCA 5 gli interi tra 1 e 10. Questo ragionamento vale più in generale. Se p è un numero primo allora A = {k : 1 k p 1, MCD(k, p) = 1} dunque ϕ(p) = A = p 1. Facciamo un ulteriore passo. abbiamo che Se p è un numero primo e m 1 un numero intero, A = {k : 1 k p m e MCD(k, p m ) = 1} = {1, 2,..., p m } \ {p, 2p, 3p,..., p m 1 p} dunque ϕ(p m ) = A = p m p m 1. Per poter calcolare la funzione di Eulero, senza dover elencare ogni volta gli elementi dell insieme A, abbiamo bisogno di una ulteriore sua proprietà. La enuncio solamente perchè per dimostrarla servono le conoscenze di un corso di Algebra del primo anno di Matematica (ma se deciderete di studiare Matematica lo scoprirete). La proprietà è questa. Se n e m sono numeri naturali con MCD(n, m) = 1 allora ϕ(n m) = ϕ(n) ϕ(m). Per esempio se consideriamo 88 = 8 11, poichè MCD(8, 11) = 1 abbiamo che ϕ(88) = ϕ(8)ϕ(11) = 4 10 = 40. Con le tre proprietà che abbiamo visto, cioè 1) ϕ(p) = p 1 con p numero primo, 2) ϕ(p m ) = p m p m 1 con p numero primo, m intero positivo, 3) se MCD(m, n) = 1 allora ϕ(n m) = ϕ(n) ϕ(m), possiamo calcolare agevolmente il valore della funzione di Eulero in un qualsiasi numero naturale n 2. Infatti per il Teorema della Fattorizzazione unica sappiamo che possiamo scrivere n = p t 1 1 p t 2 2 p t 3 3 p tr r con p 1, p 2,... p t numeri primi distinti e t 1,... t r interi positivi. Poichè MCD(p t 1 1, p t 2 2 p tr r ) = 1, applicando la proprietà 3) otteniamo ϕ(n) = ϕ(p t 1 1 )ϕ(p t 2 2 p t 3 3 p tr r ). Adesso applichiamo di nuovo la proprietà 3) osservando che MCD(p t 2 2, p t 3 3 p tr r ) = 1 e dunque ϕ(n) = ϕ(p t 1 1 )ϕ(p t 2 2 )ϕ(p t 3 3 p tr r ). Procedendo in questo modo abbiamo ϕ(n) = ϕ(p t 1 1 )ϕ(p t 2 2 )ϕ(p t 3 3 ) ϕ(p tr r ). Infine per concludere usiamo la proprietà 2) e otteniamo che ϕ(n) = ϕ(p t 1 1 )ϕ(p t 2 2 )ϕ(p t 3 3 ) ϕ(p tr r ) = (p t 1 1 p t 1 1 1 )(p t 2 2 p t 2 1 2 )(p t 3 3 p t 3 1 3 ) (p tr r p tr 1 r ). Esempio. Riprendiamo il secondo esempio di calcolo della funzione di Eulero visto sopra. Abbiamo che 24 = 2 3 3 dunque ϕ(24) = ϕ(2 3 )ϕ(3) = (2 3 2 2 )(3 1) = 4 2 = 8. L ultimo risultato che ci serve sulla funzione di Eulero è un Teorema (dovuto sempre a Eulero) che enuncio

6 PRIMAVERA IN BICOCCA Teorema (Teorema di Eulero). Siano N un intero con N 2 e a un numero intero con MCD(a, N) = 1. Allora a ϕ(n) mod N = 1. Anche qui la dimostrazione richiede delle nozioni di Algebra del primo anno di Matematica. 4. RSA Alice Sceglie due numeri primi p e q con p q. Calcola N = p q e ϕ(n) = (p 1)(q 1). Sceglie un intero r in modo che MCD(ϕ(N), r) = 1. Calcola, con l algoritmo di Euclide, due interi s e t in modo che rs + ϕ(n)t = 1 Pubblica la coppia (N, r) mentre tiene ben segreti p, q, ϕ(n) e s. Riceve il messaggio a da Bob e deve ricostruire il messaggio originale, cioè b. Calcola a s mod N e ritrova b. Bob Vuole mandare ad Alice il messaggio b, dove b è un numero intero, con 0 < b < N. Per semplicità supponiamo anche che sia MCD(b, N) = 1. Legge la coppia (N, r) che Alice ha pubblicato, e calcola il numero c = b r. Calcola a = c mod N e invia il numero a ad Alice. Perchè Alice riesce a ricostruire il messaggio originale di Bob? Il motivo è il Teorema di Eulero che abbiamo citato prima. Infatti b = b 1 mod N = b rs+ϕ(n)t mod N = b rs b ϕ(n)t mod N = ((b r ) s mod N)((b ϕ(n) ) t mod N) = a s mod N. Nell ultimo passaggio abbiamo usato proprio il Teorema di Eulero, che ci assicura che b ϕ(n) mod N = 1, dunque anche (b ϕ(n) ) t mod N = 1. Supponiamo adesso che una terza persona, Eva, intercetti il messaggio a che Bob spedisce ad Alice. Se ci mettiamo nei panni di Eva la situazione è questa Alice Eva Bob (N, r) Intercetta il messaggio a Spedisce il messaggio a ad che Bob ha spedito ad Alice. Alice. Conosce la coppia (N, r)

PRIMAVERA IN BICOCCA 7 scelta da Alice, perchè Alice l ha resa pubblica. Per ricostruire il messaggio originale b di Bob, ha bisogno di conoscere l intero s e poi operare esattamente come fa Alice. È facile per Eva calcolare l intero s se conosce ϕ(n). Infatti Eva può applicare l algoritmo delle divisioni successive. Quindi il problema di Eva è conoscere ϕ(n) = (p 1)(q 1), ovvero conoscere p e q. Eva conosce N = pq ma, se p e q sono numeri primi grandi, da questa informazione non sa ricostruire p e q. Esempio. Vediamo un esempio concreto di funzionamento dell algoritmo RSA. Supponiamo innanzitutto che a ciascuna lettera dell alfabeto sia stato associato un numero secondo lo schema seguente A B C D E F G H I L M N O P Q R S T U V Z Spazio 2 3 4 5 6 7 8 9 29 31 12 13 14 37 16 17 18 19 43 21 22 23 Alice sceglie i numeri primi p = 5 e q = 11, calcola N = pq = 55, ϕ(n) = ϕ(55) = 4 10 = 40. Inoltre Alice sceglie un numero r in modo tale che MCD(r, ϕ(n)) = MCD(r, 40) = 1. Nel nostro esempio Alice sceglie r = 37. Poi Alice calcola, tramite l algoritmo di Euclide, due interi s e t per i quali 1 = 40t + 37s, ottenendo t = 12 e s = 13. Riporto qui i calcoli 40 = 37 1 + 3 3 = 40 37 37 = 3 12 + 1 1 = 37 12 3 = 37 12(40 37) = 12 40 + 13 37. 3 = 3 1 + 0 Infine Alice pubblica la coppia (N, r) = (55, 37). Bob legge le informazioni rese pubbliche da Alice e le spedisce il messaggio seguente 26 7 21 9 52 7 52 41 23 28 24 7 18 49 7

8 PRIMAVERA IN BICOCCA Per decifrarlo Alice considera il primo numero 26 e calcola 26 s mod N cioè 26 13 mod 55. Si tratta quindi di calcolare 26 13, dividerlo per 55 e considerarne il resto. Quello che Alice ottiene è 31. In modo alternativo, Alice può ragionare così: da 13 = 1 + 4 + 8 segue che 26 13 mod 55 = (26 1 mod 55) (26 4 mod 55) (26 8 mod 55) 26 4 mod 55 = 456976 mod 55 = 36 26 8 mod 55 = 208827064576 mod 55 = 31 26 13 mod 55 = 26 36 31 mod 55 = 29016 mod 55 = 31. Dunque decifrando 26 otteniamo 31 ovvero la lettera L. Facciamo ancora un passo. Consideriamo 7. Alice calcola 7 13 mod 55 ottenenendo 2. Come prima, in modo alternativo, si poteva ragionare come segue 7 13 mod 55 = (7 1 mod 55) (7 4 mod 55) (7 8 mod 55) 7 4 mod 55 = 2401 mod 55 = 36 7 8 mod 55 = 5764801 mod 55 = 31 7 13 mod 55 = 7 36 31 mod 55 = 7812 mod 55 = 2. Il messaggio inviato da Bob, alla luce di quanto abbiamo visto, diventa L A 21 9 52 A 52 41 23 28 24 A 18 49 A Se avete voglia, finite di decifrarlo. Referenze Un libro piacevole sullo sviluppo storico crittografia, che delinea anche gli aspetti matematici, è Simon Singh, Codici e Segreti, BUR Biblioteca Universale Rizzoli (1999)