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
ProvaPremi Esegui lo scambio e segui ogni numero che attraversa il centro. Poi chiediti: la Chiave condivisa finale è mai stata uno di loro?
Cosa stai vedendoAlice a sinistra e Bob a destra vogliono un numero segreto condiviso. L'occhio in alto è un intercettatore che vede assolutamente tutto ciò che inviano. Guarda i numeri viaggiare attraverso, e tieni d'occhio Chiave condivisa alla fine.
Cosa notare
No — la chiave condivisa non ha mai attraversato il filo, eppure Alice e Bob sono finiti entrambi con lo stesso numero. Ciascuno ha tenuto per sé un numero segreto e ha inviato solo una miscela mescolata. Per come funziona il mescolamento, combinare il proprio segreto con la miscela dell'altra persona dà la stessa risposta in entrambi i sensi. L'intercettatore ha visto ogni messaggio e ancora non può riprodurla — che è più o meno ciò che protegge i dati della tua carta ogni volta che compri qualcosa 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 ↗