Lab-in-a-Tab

Crittografia e sicurezza

Ogni volta che compri qualcosa online, la matematica scherma i tuoi dati dall'intero internet. Come fa un segreto a restare segreto in pubblico?

CifraturaRSAQuantistica
ProvaPress Run the exchange and follow every number that crosses the middle. Then ask yourself: was the final Shared key ever one of them?
Cosa stai vedendoAlice on the left and Bob on the right want a shared secret number. The eye at the top is an eavesdropper who sees absolutely everything they send. Watch the numbers travel across, and keep an eye on Shared key at the end.
Cosa notare
No — the shared key never crossed the wire, yet Alice and Bob both ended up with the same number. Each kept one secret number to themselves and sent only a scrambled mixture. Because of how the mixing works, combining your own secret with the other person's mixture gives the same answer both ways round. The eavesdropper saw every message and still can't reproduce it — which is roughly what protects your card details every time you buy something online.

Messaggi segreti e lucchetti inviolabili!

Livello Base — linguaggio semplice, senza matematica

Diciamo che vuoi passare un biglietto a un amico attraverso una stanza affollata dove tutti adorerebbero leggerlo. Ricorri a un cifrario — un codice segreto. Il trucco più antico del manuale, usato da Giulio Cesare duemila anni fa, sposta semplicemente ogni lettera di una quantità fissa: A diventa D, B diventa E, e così via. Il tuo amico, che conosce lo spostamento, lo legge all'istante; tutti gli altri vedono un'assurdità.

Ma c'è un intoppo che ha tormentato i creatori di codici per millenni: come dici al tuo amico lo spostamento in primo luogo senza che qualcuno origli? La risposta, trovata solo negli anni '70, sembra un gioco di prestigio — la crittografia a chiave pubblica. Immagina un lucchetto che chiunque può far scattare chiuso ma di cui solo tu hai la chiave per aprirlo. Spedisci quel lucchetto aperto al mondo intero; chiunque può chiudervi dentro un messaggio e rispedirlo, e solo tu puoi aprirlo, anche se non hai mai condiviso un segreto.

È così che funziona ogni sito sicuro. Quando il lucchettino compare nel tuo browser, il tuo computer e il server stanno evocando un segreto condiviso allo scoperto — proprio sotto il naso di qualsiasi origliatore, che se ne va comunque con nulla. Nella simulazione qui sotto, guarda quello scambio di chiavi dispiegarsi un passo alla volta.

Da sapere

  • L'HTTPS cifra oggi oltre il 95% del traffico web. La matematica che protegge le tue password era sostanzialmente inesistente prima del 1976.
  • L'algoritmo RSA, inventato nel 1977, deriva la sua sicurezza dal fatto che moltiplicare due grandi primi richiede millisecondi, ma fattorizzare il risultato richiede più tempo dell'età dell'universo.
  • I computer quantistici potrebbero rompere la cifratura RSA — ed è per questo che i governi di tutto il mondo stanno già passando a standard di crittografia "post-quantistica".

RSA, Diffie-Hellman e la matematica delle funzioni a senso unico

Livello Studente — le equazioni principali

L'RSA (Rivest–Shamir–Adleman, 1977) poggia su una bella asimmetria: moltiplicare due grandi primi è istantaneo, ma smoltiplicare il risultato — fattorizzarlo — si crede sia praticamente impossibile. Scegli i primi \(p, q\), poni \(n = pq\) e \(\varphi(n) = (p-1)(q-1)\), scegli un esponente pubblico \(e\), e calcola il privato \(d \equiv e^{-1} \pmod{\varphi(n)}\). Poi cifratura e decifratura sono solo potenze modulari: \(c = m^e \bmod n\) e \(m = c^d \bmod n\). Si annullano a vicenda perché il teorema di Eulero garantisce \(m^{\varphi(n)} \equiv 1 \pmod n\), quindi \(m^{ed} \equiv m\). Recuperare \(d\) dalla coppia pubblica \((e, n)\) si crede sia difficile quanto fattorizzare \(n\) — non dimostrato, ma sicuro a 2048 bit.

Il Diffie–Hellman (1976) è il trucco che permette a due sconosciuti di concordare un segreto in piena vista di tutti. Alice e Bob fissano pubblicamente un primo \(p\) e un generatore \(g\); Alice tiene un segreto \(a\) e invia \(g^a \bmod p\), Bob tiene \(b\) e invia \(g^b \bmod p\). Ciascuno eleva ciò che ha ricevuto al proprio segreto, ed entrambi atterrano sulla stessa chiave \(K = g^{ab} \bmod p\). Un origliatore vede \(g, p, g^a, g^b\) e ancora non può ottenere \(K\) senza risolvere il problema del logaritmo discreto — facile da calcolare in avanti, creduto irrealizzabile da invertire.

La matematica a chiave pubblica è lenta, quindi si usa con parsimonia. Le connessioni reali fanno un approccio ibrido: Diffie–Hellman (o il suo cugino a curve ellittiche) concorda una chiave, poi un veloce cifrario simmetrico come AES cifra il traffico effettivo. A tenere tutto insieme ci sono le funzioni di hash (SHA-256, SHA-3), che schiacciano qualsiasi input in un'impronta di dimensione fissa che è a senso unico, resistente alle collisioni e selvaggiamente sensibile — capovolgi un bit di input e circa metà dei bit di output cambiano. Quelle impronte sono ciò che rende possibili firme digitali, certificati e blockchain.

Formule chiave

Cifratura RSA\(c = m^e \bmod n\)
Decifratura RSA\(m = c^d \bmod n,\quad d \equiv e^{-1}\!\!\pmod{\varphi(n)}\)
Teorema di Eulero\(m^{\varphi(n)} \equiv 1 \pmod n \;\Rightarrow\; m^{ed} \equiv m\)
Segreto condiviso DH\(K = g^{ab} \bmod p\)
Funzione di hash\(H:\{0,1\}^{*} \to \{0,1\}^{256}\)a senso unico, resistente alle collisioni
Limite del compleanno\(\text{collisione dopo } \sim\!\sqrt{2^{256}} = 2^{128} \text{ query}\)

Da sapere

  • La chiave di cifratura RSA-2048 ha 617 cifre decimali. Fattorizzarla col miglior algoritmo noto su tutti i computer attuali richiederebbe più tempo dell'età dell'universo.
  • La connessione HTTPS del tuo telefono usa Elliptic Curve Diffie-Hellman (ECDH) — fornendo sicurezza equivalente a RSA con chiavi 20 volte più piccole, grazie alla difficoltà del logaritmo discreto su curve ellittiche.
  • Il NIST standardizzò i suoi primi algoritmi di crittografia post-quantistica nel 2024 — CRYSTALS-Kyber per lo scambio di chiavi e CRYSTALS-Dilithium per le firme — entrambi basati su problemi reticolari.

Sicurezza teorico-informativa, crittografia reticolare e prove a conoscenza zero

Livello Esperto — profondità matematica completa

01La segretezza perfetta e il suo prezzo impossibile

Shannon (1949) fissò il soffitto teorico: un cifrario è perfettamente segreto quando il testo cifrato non tradisce assolutamente nulla sul messaggio, \(P(M=m \mid C=c) = P(M=m)\) per ogni \(m, c\). Il cifrario a blocco monouso (one-time pad) — XOR del messaggio con una chiave davvero casuale usata esattamente una volta, \(c = m \oplus k\) — lo raggiunge, e Shannon dimostrò che è essenzialmente l'unica cosa che lo fa. La stangata è nel requisito: la chiave deve essere lunga quanto il messaggio e mai riusata, quindi per inviare segretamente un gigabyte devi aver già condiviso segretamente un gigabyte. La segretezza perfetta è reale, e quasi inutile.

02Barattare la perfezione con la praticità

Tutto ciò che è usabile scende quindi alla sicurezza computazionale: un cifrario è "sicuro" se nessun avversario limitato al tempo polinomiale può fare meglio che trascurabilmente meglio del tirare a indovinare. Questo rilocalizza in silenzio tutta la crittografia su terreno non dimostrato — l'RSA si appoggia sulla difficoltà della fattorizzazione, il Diffie–Hellman sui logaritmi discreti, e nessuno di questi è dimostrato intrattabile; una dimostrazione risolverebbe \(P\) contro \(NP\). Stiamo, in effetti, scommettendo internet su congetture che hanno semplicemente resistito a ogni attacco finora.

03La minaccia quantistica e la risposta reticolare

Quella scommessa ha una data di scadenza nota. L'algoritmo di Shor permette a un grande computer quantistico di fattorizzare e prendere logaritmi discreti in tempo polinomiale, demolendo in silenzio l'RSA e il Diffie–Hellman classico. Il rimpiazzo di punta è la crittografia reticolare, costruita su Learning With Errors: dati molti campioni rumorosi \(b_i = \langle a_i, s\rangle + e_i \bmod q\), recuperare il segreto \(s\) appare difficile persino per una macchina quantistica. I primi standard post-quantistici del NIST (2024) sono schemi reticolari, e la migrazione è già in corso.

04Calcolare su dati che non puoi leggere

I reticoli sbloccarono qualcosa un tempo ritenuto impossibile: la cifratura completamente omomorfa (Gentry, 2009), dove un server calcola direttamente sul testo cifrato, \(f(\mathrm{Enc}(x)) = \mathrm{Enc}(f(x))\), e restituisce una risposta cifrata che non ha mai effettivamente visto. Puoi eseguire una ricerca, addestrare un modello o interrogare un database con i dati che restano sigillati per tutto il tempo. La prima FHE era un milione di volte troppo lenta; gli schemi moderni l'hanno riportata verso qualche centinaio di volte, spostandola da esperimento mentale verso il dispiegamento.

05Dimostrare di conoscere un segreto senza rivelarlo

Le prove a conoscenza zero (Goldwasser–Micali–Rackoff, 1985) realizzano un vero paradosso: un dimostratore convince un verificatore che un'affermazione è vera pur rivelando nulla oltre la sua verità. Le tre richieste sono completezza (le prove oneste convincono sempre), solidità (le affermazioni false quasi mai passano) e conoscenza zero (il verificatore non impara nulla che non avrebbe potuto inventarsi da solo). Puoi dimostrare di conoscere una password senza pronunciarla, o che una transazione è valida senza svelarne l'importo.

06Prove succinte e dove sta andando tutto ciò

I cavalli da tiro moderni sono le zk-SNARK — prove che sono sia non interattive sia sorprendentemente compatte, una costante \(O(1)\) in dimensione e verificabili in millisecondi per quanto vasto sia il calcolo che attestano. Già alimentano valute che preservano la privacy, credenziali anonime e calcolo esternalizzato verificabile, e stanno strisciando verso il dimostrare che uno specifico modello di IA ha prodotto uno specifico output senza esporre il modello o l'input. Una curiosità un tempo liquidata come pura teoria si sta trasformando in infrastruttura fondamentale.

Formule chiave

Segretezza perfetta\(P(M=m \mid C=c) = P(M=m)\quad \forall\, m,c\)
Cifrario a blocco monouso\(c = m \oplus k,\quad |k| = |m|\)k uniforme, usata una volta
Campione LWE\(b_i = \langle a_i, s\rangle + e_i \pmod q\)e_i piccolo rumore
Proprietà omomorfa\(f(\mathrm{Enc}(x)) = \mathrm{Enc}(f(x))\)
Garanzie ZKP\(\text{completezza} + \text{solidità} + \text{conoscenza zero}\)
Dimensione prova zk-SNARK\(|\pi| = O(1)\)indipendente dalla dimensione del circuito

Da sapere

  • Una prova zk-SNARK che una rete neurale ha prodotto uno specifico output può essere generata e verificata — senza rivelare i pesi del modello o i dati di input.
  • Il problema LWE è così difficile che persino un computer quantistico che esegue l'algoritmo di Shor (che rompe RSA) non può risolverlo — non si conosce alcuna accelerazione quantistica.
  • Il premio Turing 2012 andò a Silvio Micali e Shafi Goldwasser per aver inventato le prove a conoscenza zero — originariamente considerate una curiosità puramente teorica.

Fonti

Articolo completo su Wikipedia ↗