Un’appendice culturale, fuori programma di Quinta, che mostra come l’aritmetica elementare (mcd, divisori, congruenze) sia diventata — a partire dagli anni ‘70 — la base della sicurezza digitale moderna. Si introducono le congruenze modulo nn, il piccolo teorema di Fermat e il teorema di Eulero, fino all’algoritmo RSA: un esempio splendido di matematica “pura” che si rivela imprevedibilmente applicata.

A cultural appendix, outside the Year 5 syllabus, showing how elementary arithmetic (gcd, divisors, congruences) became — from the 1970s onwards — the basis of modern digital security. We introduce congruences modulo nn, Fermat’s little theorem and Euler’s theorem, up to the RSA algorithm: a splendid example of “pure” mathematics that turns out to be unexpectedly applied.

Questa appendice è fuori programma di Quinta scientifico, ma mostra come l’aritmetica elementare (mcd, divisori, congruenze) sia diventata — a partire dagli anni ‘70 — la base della sicurezza digitale moderna. È un esempio splendido di matematica “pura” che si rivela imprevedibilmente applicata. Il punto di partenza è la relazione di congruenza.

Definizione — Congruenza modulo nn

Dati a,bZa,b\in\mathbb{Z} e nNn\in\mathbb{N} con n2n\ge 2, si dice che aa è congruo a bb modulo nn, e si scrive ab(modn),a \equiv b \pmod n, se nn divide aba-b. Equivalentemente: aa e bb danno lo stesso resto nella divisione per nn.

Esempi: 172(mod5)17\equiv 2\pmod 5 (poiché 172=1517-2=15 è divisibile per 55); 34(mod7)-3\equiv 4\pmod 7. L’aritmetica modulare è quella dell’orologio: 1414 ore +13+ 13 ore =273(mod24)= 27\equiv 3\pmod{24} (le 33 di mattina del giorno dopo).

Collegamenti

Argomenti: Distribuzioni probabilita
Concetti: Aritmetica modulare · Congruenza
Competenze: Usare formule

This appendix is outside the Fifth-year scientific syllabus, but it shows how elementary arithmetic (gcd, divisors, congruences) became — starting from the 1970s — the basis of modern digital security. It is a splendid example of “pure” mathematics that turns out to be unpredictably applied. The starting point is the congruence relation.

Definition — Congruence modulo nn

Given a,bZa,b\in\mathbb{Z} and nNn\in\mathbb{N} with n2n\ge 2, we say that aa is congruent to bb modulo nn, and we write ab(modn),a \equiv b \pmod n, if nn divides aba-b. Equivalently: aa and bb give the same remainder in the division by nn.

Examples: 172(mod5)17\equiv 2\pmod 5 (since 172=1517-2=15 is divisible by 55); 34(mod7)-3\equiv 4\pmod 7. Modular arithmetic is that of the clock: 1414 hours +13+ 13 hours =273(mod24)= 27\equiv 3\pmod{24} (3 o’clock the next morning).

Topics: Distribuzioni probabilita
Concepts: Aritmetica modulare · Congruenza
Skills: Usare formule

La congruenza si comporta bene rispetto alle operazioni: si può “ridurre modulo nn” in qualsiasi momento del calcolo, il che rende praticabili anche potenze altrimenti enormi.

Proprietà — Compatibilità con le operazioni

Se aa(modn)a\equiv a'\pmod n e bb(modn)b\equiv b'\pmod n, allora a+ba+b(modn),abab(modn),ak(a)k(modn).a+b \equiv a'+b'\pmod n, \quad a\cdot b\equiv a'\cdot b'\pmod n, \quad a^k\equiv (a')^k\pmod n. L’aritmetica modulare “rispetta” le operazioni di somma, prodotto e potenza. Non sempre la divisione: 2x4(mod6)2x\equiv 4\pmod 6 non implica x2x\equiv 2 (anche x=5x=5 funziona). La divisione modulare richiede che mcd(a,n)=1\mathrm{mcd}(a,n)=1.

Esempio — Calcolo veloce di potenze modulari

7100(mod13)7^{100}\pmod{13}. Per Fermat 7121(mod13)7^{12}\equiv 1\pmod{13}. Allora 7100=79674=(712)87474=2401=13184+99(mod13).7^{100} = 7^{96}\cdot 7^4 = (7^{12})^8\cdot 7^4\equiv 7^4 = 2401 = 13\cdot 184 + 9\equiv 9\pmod{13}.

Collegamenti

Argomenti: Distribuzioni probabilita
Concetti: Aritmetica modulare · Congruenza
Metodi: Aritmetica modulare
Competenze: Calcolare · Usare formule

Congruence behaves well with respect to operations: you can “reduce modulo nn” at any moment of the computation, which makes even otherwise enormous powers feasible.

Property — Compatibility with operations

If aa(modn)a\equiv a'\pmod n and bb(modn)b\equiv b'\pmod n, then a+ba+b(modn),abab(modn),ak(a)k(modn).a+b \equiv a'+b'\pmod n, \quad a\cdot b\equiv a'\cdot b'\pmod n, \quad a^k\equiv (a')^k\pmod n. Modular arithmetic “respects” the operations of sum, product and power. Not always division: 2x4(mod6)2x\equiv 4\pmod 6 does not imply x2x\equiv 2 (also x=5x=5 works). Modular division requires mcd(a,n)=1\mathrm{mcd}(a,n)=1.

Example — Fast computation of modular powers

7100(mod13)7^{100}\pmod{13}. By Fermat 7121(mod13)7^{12}\equiv 1\pmod{13}. Then 7100=79674=(712)87474=2401=13184+99(mod13).7^{100} = 7^{96}\cdot 7^4 = (7^{12})^8\cdot 7^4\equiv 7^4 = 2401 = 13\cdot 184 + 9\equiv 9\pmod{13}.

Topics: Distribuzioni probabilita
Concepts: Aritmetica modulare · Congruenza
Methods: Aritmetica modulare
Skills: Calcolare · Usare formule

Due teoremi classici sono il cuore aritmetico di RSA: quello di Fermat per i moduli primi e la sua generalizzazione dovuta a Eulero per moduli qualsiasi.

Teorema — Piccolo teorema di Fermat

Se pp è primo e mcd(a,p)=1\mathrm{mcd}(a,p)=1, allora ap11(modp).a^{p-1} \equiv 1\pmod p.

Teorema — Eulero

Sia φ(n)\varphi(n) il numero di interi in {1,2,,n}\{1,2,\ldots,n\} coprimi con nn (funzione di Eulero). Se mcd(a,n)=1\mathrm{mcd}(a,n)=1, allora aφ(n)1(modn).a^{\varphi(n)} \equiv 1\pmod n.

Per una rilettura storica di Fermat ed Eulero sui residui modulari si veda Stillwell (cap. 3).

Calcolo di φ(n)\varphi(n). Se n=pqn = p\cdot q con p,qp,q primi distinti, φ(n)=(p1)(q1)\varphi(n) = (p-1)(q-1). Esempio: φ(1113)=1012=120\varphi(11\cdot 13) = 10\cdot 12 = 120.

Collegamenti

Argomenti: Distribuzioni probabilita
Concetti: Aritmetica modulare · Funzione di eulero
Competenze: Usare formule
Persone: Leonhard Euler (Eulero) · Pierre de Fermat

Two classical theorems are the arithmetic heart of RSA: Fermat’s one for prime moduli and its generalisation due to Euler for arbitrary moduli.

Theorem — Fermat's little theorem

If pp is prime and mcd(a,p)=1\mathrm{mcd}(a,p)=1, then ap11(modp).a^{p-1} \equiv 1\pmod p.

Theorem — Euler

Let φ(n)\varphi(n) be the number of integers in {1,2,,n}\{1,2,\ldots,n\} coprime with nn (Euler’s totient function). If mcd(a,n)=1\mathrm{mcd}(a,n)=1, then aφ(n)1(modn).a^{\varphi(n)} \equiv 1\pmod n.

For a historical re-reading of Fermat and Euler on modular residues see Stillwell (ch. 3).

Computing φ(n)\varphi(n). If n=pqn = p\cdot q with p,qp,q distinct primes, φ(n)=(p1)(q1)\varphi(n) = (p-1)(q-1). Example: φ(1113)=1012=120\varphi(11\cdot 13) = 10\cdot 12 = 120.

Topics: Distribuzioni probabilita
Concepts: Aritmetica modulare · Funzione di eulero
Skills: Usare formule
People: Leonhard Euler (Eulero) · Pierre de Fermat

RSA (Rivest, Shamir, Adleman, 1977; pubblicato nel 1978) basa la propria sicurezza su due fatti:

  • È facile moltiplicare due primi grandi e ottenere un numero nn;
  • È difficilissimo (con i computer attuali, impraticabile per primi di 300300 cifre) fattorizzare nn ritrovando pp e qq.

Schema operativo.

  1. Alice sceglie due primi p,qp,q grandi e calcola n=pqn=pq e φ(n)=(p1)(q1)\varphi(n) = (p-1)(q-1).
  2. Sceglie ee coprimo con φ(n)\varphi(n) (chiave pubblica di codifica).
  3. Calcola dd tale che ed1(modφ(n))ed\equiv 1\pmod{\varphi(n)} (chiave privata di decodifica). dd è l’inverso modulare di ee.
  4. Pubblica (n,e)(n,e). Tiene segreti dd, pp, qq.
  5. Bob, per inviare il messaggio m{0,,n1}m\in\{0,\ldots,n-1\}, calcola c=memodnc = m^e\bmod n e invia cc.
  6. Alice decodifica: m=cdmodnm = c^d\bmod n, grazie a Eulero cdmedm1+kφ(n)m1m(modn)c^d \equiv m^{ed} \equiv m^{1+k\varphi(n)} \equiv m\cdot 1 \equiv m\pmod n.

Osservazione — Perché funziona in pratica

Tutte le operazioni di codifica/decodifica si fanno in tempo polinomiale (O(log3n)O(\log^3 n) con esponenziazione veloce). L’unico passo che richiederebbe tempo esponenziale è fattorizzare nn: con primi p,qp,q di 10241024 bit ciascuno (300\approx 300 cifre decimali) nessun calcolatore conosciuto può farlo in tempi ragionevoli. La sicurezza di RSA poggia su questa asimmetria. Lo scenario cambierà se e quando il calcolo quantistico renderà praticabile l’algoritmo di Shor: è una delle ragioni dello sviluppo della crittografia post-quantistica.

Collegamenti

Argomenti: Distribuzioni probabilita
Concetti: Aritmetica modulare · Crittografia rsa · Funzione di eulero
Competenze: Modellizzare
Persone: Adleman · Rivest · Shamir

RSA (Rivest, Shamir, Adleman, 1977; published in 1978) bases its security on two facts:

  • It is easy to multiply two large primes and obtain a number nn;
  • It is extremely hard (with current computers, impractical for primes of 300300 digits) to factorise nn recovering pp and qq.

Operating scheme.

  1. Alice chooses two large primes p,qp,q and computes n=pqn=pq and φ(n)=(p1)(q1)\varphi(n) = (p-1)(q-1).
  2. She chooses ee coprime with φ(n)\varphi(n) (public encoding key).
  3. She computes dd such that ed1(modφ(n))ed\equiv 1\pmod{\varphi(n)} (private decoding key). dd is the modular inverse of ee.
  4. She publishes (n,e)(n,e). She keeps secret dd, pp, qq.
  5. Bob, to send the message m{0,,n1}m\in\{0,\ldots,n-1\}, computes c=memodnc = m^e\bmod n and sends cc.
  6. Alice decodes: m=cdmodnm = c^d\bmod n, thanks to Euler cdmedm1+kφ(n)m1m(modn)c^d \equiv m^{ed} \equiv m^{1+k\varphi(n)} \equiv m\cdot 1 \equiv m\pmod n.

Remark — Why it works in practice

All the encoding/decoding operations are done in polynomial time (O(log3n)O(\log^3 n) with fast exponentiation). The only step that would require exponential time is factorising nn: with primes p,qp,q of 10241024 bits each (300\approx 300 decimal digits) no known computer can do it in reasonable time. RSA’s security rests on this asymmetry. The scenario will change if and when quantum computing makes Shor’s algorithm feasible: it is one of the reasons for the development of post-quantum cryptography.

Topics: Distribuzioni probabilita
Concepts: Aritmetica modulare · Crittografia rsa · Funzione di eulero
Skills: Modellizzare
People: Adleman · Rivest · Shamir

Un esempio numerico minuscolo mostra tutti i passi di RSA con conti eseguibili a mano.

Esempio — RSA giocattolo p=11p=11, q=13q=13

n=143n = 143, φ(n)=1012=120\varphi(n) = 10\cdot 12 = 120. Scegliamo e=7e=7 (coprimo con 120120). L’inverso di 77 modulo 120120 si trova con l’algoritmo di Euclide esteso: 7103=721=6120+17\cdot 103 = 721 = 6\cdot 120 + 1, quindi d=103d=103.

Codifica del messaggio m=9m=9: c=97mod143c = 9^7\bmod 143. Calcolo: 92=819^2 = 81, 94=812=6561=45143+1261269^4 = 81^2 = 6561 = 45\cdot 143 + 126\equiv 126, quindi 97=94929=126819(mod143).9^7 = 9^4\cdot 9^2\cdot 9 = 126\cdot 81\cdot 9 \pmod{143}. Si trova c48(mod143)c \equiv 48\pmod{143}.

Decodifica: 48103mod14348^{103}\bmod 143. Si verifica numericamente (esponenziazione veloce) che restituisce 99. ✓

Il messaggio m=9\boxed{m=9} viene cifrato in c=48c=48 con la chiave pubblica (n,e)=(143,7)(n,e)=(143,7) e recuperato con la chiave privata d=103d=103: è l’intero meccanismo di RSA in scala di giocattolo.

Collegamenti

Argomenti: Distribuzioni probabilita
Concetti: Aritmetica modulare · Crittografia rsa
Metodi: Rsa cifratura
Competenze: Calcolare · Usare formule

A tiny numerical example shows all the steps of RSA with computations you can do by hand.

Example — Toy RSA p=11p=11, q=13q=13

n=143n = 143, φ(n)=1012=120\varphi(n) = 10\cdot 12 = 120. We choose e=7e=7 (coprime with 120120). The inverse of 77 modulo 120120 is found with the extended Euclidean algorithm: 7103=721=6120+17\cdot 103 = 721 = 6\cdot 120 + 1, hence d=103d=103.

Encoding the message m=9m=9: c=97mod143c = 9^7\bmod 143. Computation: 92=819^2 = 81, 94=812=6561=45143+1261269^4 = 81^2 = 6561 = 45\cdot 143 + 126\equiv 126, hence 97=94929=126819(mod143).9^7 = 9^4\cdot 9^2\cdot 9 = 126\cdot 81\cdot 9 \pmod{143}. One finds c48(mod143)c \equiv 48\pmod{143}.

Decoding: 48103mod14348^{103}\bmod 143. One verifies numerically (fast exponentiation) that it returns 99. ✓

The message m=9\boxed{m=9} is encrypted into c=48c=48 with the public key (n,e)=(143,7)(n,e)=(143,7) and recovered with the private key d=103d=103: it is the whole mechanism of RSA on a toy scale.

Topics: Distribuzioni probabilita
Concepts: Aritmetica modulare · Crittografia rsa
Methods: Rsa cifratura
Skills: Calcolare · Usare formule