Saltar al contenido principal
it/blog/kyber/la-conjetura-y-el-contrato/

La congettura e il contratto — La distanza del segreto — I

Di Xscriptor — Óscar Preciado5 min di lettura
FilosofiaTecnologiaCrittografiaSaggiocrittografiapost-quantisticaKyberLWEcongetturafilosofiatecnologiaXscriptorÓscar Preciado
La congettura e il contratto — La distanza del segreto — I

Chiamiamo sicuro ciò che ancora non sappiamo rompere.



C'è una domanda a cui la crittografia non risponde bene: quando possiamo dire che qualcosa è sicuro? Non mi riferisco alla sicurezza pratica — chiavi di lunghezza sufficiente, parametri che rendono un attacco più costoso di qualsiasi risorsa disponibile — ma alla sicurezza fondamentale, quella che promette di resistere non solo agli attacchi di oggi ma anche a quelli di domani.

Kyber, lo standard post-quantistico che NIST ha selezionato nel 2024, è sicuro secondo tutte le analisi conosciute. Ma quella sicurezza poggia su una congettura: che il problema Learning With Errors (LWE) su moduli di polinomi non abbia soluzione efficiente, né classica né quantistica.

Non c'è dimostrazione. Non c'è prova. C'è un contratto.

La struttura del salto

La crittografia asimmetrica moderna si regge su congetture di durezza. RSA poggia sulla difficoltà di fattorizzare interi grandi. ECDH poggia sul logaritmo discreto in curve ellittiche. Kyber poggia su LWE.

La differenza è che RSA e ECC cadono davanti a un computer quantistico sufficientemente grande — l'algoritmo di Shor le risolve in tempo polinomiale — mentre LWE non ha un Shor conosciuto. Ma "non avere Shor conosciuto" non è la stessa cosa che "essere infrangibile".

Stato della conoscenza (luglio 2026):

  RSA-2048:    Shor la rompe con ~4099 qubit logici
  ECC P-256:   Shor la rompe con ~2330 qubit logici
  Kyber-768:   Non si conosce attacco quantistico subesponenziale

  Domanda aperta: esiste un algoritmo quantistico per LWE?
  Risposta: non si sa. È una congettura.

La congettura è plausibile: trent'anni di analisi non hanno trovato un algoritmo efficiente contro LWE, nemmeno con aiuto quantistico. Ma la storia della crittografia è piena di congetture che furono plausibili fino a quando smisero di esserlo.

Il contratto sociale della sicurezza

Rousseau scrisse che la società si fonda su un contratto: gli individui cedono parte della loro libertà in cambio di sicurezza collettiva. La crittografia funziona allo stesso modo. Ogni volta che usiamo Kyber — o RSA, o ECC — stiamo firmando un contratto tacito:


Accettiamo che la sicurezza di questo schema è sufficiente per il presente prevedibile, e confidiamo che la comunità crittografica ci avviserà se la congettura cessa di reggersi.


Non è una promessa di sicurezza eterna. È un patto di trasparenza: finché lo schema resiste allo scrutinio pubblico, lo consideriamo sicuro. Quando qualcuno trova un attacco, migriamo.

# Il contratto crittografico, espresso informalmente
def è_sicuro(schema, tempo):
    attacchi_conosciuti = crittoanalisi(schema)
    if not attacchi_conosciuti:
        return True  # per ora
    else:
        return all(a.costo > RISORSE_DISPONIBILI for a in attacchi_conosciuti)

La variabile RISORSE_DISPONIBILI cambia nel tempo. Non solo per il progresso tecnologico ma per l'apparizione di nuovi paradigmi computazionali.

Il problema dell'induzione

Hume osservò che non possiamo giustificare l'induzione logicamente: assumere che il sole sorgerà domani perché è sorto tutti i giorni precedenti è una credenza, non una verità dimostrabile. La crittografia soffre lo stesso problema.

Che LWE abbia resistito trent'anni di analisi non garantisce che resista trent'anni in più. Che nessun algoritmo quantistico conosciuto risolva LWE non garantisce che non ne esista uno. La crittografia post-quantistica è, in questo senso, un esercizio di induzione applicata: assumiamo che il futuro assomiglierà al passato.

P(sicuro in t+n)anni di analisi senza rotturacomplessitaˋ strutturale del problemaP(\text{sicuro in } t+n) \propto \frac{\text{anni di analisi senza rottura}}{\text{complessità strutturale del problema}}

Non è una formula rigorosa — non può esserlo — ma descrive il criterio implicito che usiamo per fidarci di uno schema. Classic McEliece, con ~40 anni di analisi e una struttura più conservativa (codici di Goppa), avrebbe un valore più alto di Kyber, con ~20 anni e una struttura più recente. Ma Classic McEliece ha chiavi di ~1 MB, e questo lo rende impraticabile per quasi tutto.

La sicurezza non è solo matematica. È anche logistica.

Cosa significa allora "sicuro"?

Nel dominio di Kyber, "sicuro" significa:

  1. Resistenza ad attacchi conosciuti: nessun attacco pratico pubblicato rompe i parametri raccomandati.
  2. Margini di sicurezza: i parametri sono scelti con un fattore di sicurezza che eccede ampiamente il necessario contro i migliori attacchi conosciuti.
  3. Analisi continua: la comunità crittografica esamina lo schema dal 2017 e non ha trovato debolezze fondamentali.
  4. Implementazioni multiple: esistono implementazioni indipendenti (C, Go, Rust, Python) che si verificano a vicenda.
  5. Adozione precoce: lo scrutinio che viene con il dispiegamento massivo (Chrome, Cloudflare, Signal) è la forma più esigente di audit.

Nessuno di questi criteri è una prova. Sono indicatori. La fiducia in Kyber è ragionevole — più ragionevole della fiducia in RSA/ECC a lungo termine — ma rimane fiducia, non certezza.


In II: La capa che fallisce, esploreremo l'abisso tra l'algoritmo e la sua implementazione: come uno schema matematicamente solido può crollare per un errore in codice Dart, una variabile non costante in tempo, o un compilatore che ottimizza dove non dovrebbe.


Riferimenti incrociati con la ricerca: