Saltar al contenido principal
it/blog/kyber/research/fundamentos-lwe/

Fondamenti di LWE e Reticoli

Di Xscriptor — Óscar Preciado4 min di lettura
TecnologiaCrittografiaRicercacrittografiapost-quantisticaKyberLWEreticoliModule-LWEricercaXscriptor
Fondamenti di LWE e Reticoli

Riepilogo

Kyber basa la sua sicurezza sul problema Module-LWE (Learning With Errors su moduli), una variante del LWE classico definito da Regev nel 2005. Comprendere LWE è comprendere perché Kyber è sicuro e, più importante, fin quando potrebbe esserlo.

Il Problema LWE

Dato un segreto s, una matrice A e un vettore di errori e:

s = vettore segreto (dimensione n)
A = matrice casuale (m × n)
e = vettore di errore piccolo (campionato da una distribuzione χ)
b = A·s + e   (modulo q)

Problema di ricerca (Search-LWE): Dati (A, b), trovare s.

Problema di decisione (Decision-LWE): Dati (A, b), distinguere se b = A·s + e o se b è uniformemente casuale.

La sicurezza dipende dal fatto che, sebbene A·s sia deterministico, l'errore e rende il sistema difficilmente invertibile. Senza e, sarebbe algebra lineare banale.

Perché è duro

Recuperare s da (A, b) è equivalente a risolvere problemi di reticoli (lattices) che sono NP-duri nel caso peggiore. La riduzione di Regev (2005) ha mostrato che rompere LWE è almeno tanto duro quanto certi problemi di reticoli nel caso peggiore (GapSVP, SIVP).

Module-LWE

Kyber usa Module-LWE, dove A e s non sono interi scalari ma elementi di un modulo su un anello di polinomi:

R_q = Z_q[x] / (x^n + 1)

Dove n = 256 per Kyber. La matrice A ha entrate in R_q e dimensione k × k (dove k = 2, 3, 4 secondo il livello di sicurezza).

A ∈ R_q^{k×k},  s ∈ R_q^{k},  e ∈ R_q^{k}
b = A·s + e

Vantaggio rispetto a LWE standard: Module-LWE offre un equilibrio tra efficienza (gli anelli permettono moltiplicazione rapida via NTT) e sicurezza (il modulo k controlla la dimensione senza crescere al quadrato).

Perché modulo e non anello completo?

Ring-LWE (usato da NewHope, per esempio) opera su un singolo anello (R_q). Module-LWE interpola tra LWE standard e Ring-LWE:

Schema Dimensione Efficienza Sicurezza conservativa
LWE standard n × k Bassa Alta
Ring-LWE n Alta Media
Module-LWE n × k Alta Alta

La Distribuzione di Errore

Kyber usa una distribuzione binomiale centrata CBD(η) invece di una gaussiana discreta. Questo semplifica l'implementazione (non richiede campionamento da tabella) e evita attacchi di temporizzazione.

Pr[ e = x ] = (C(2η, η+x)) / 2^(2η)

Per ML-KEM-512: η = 2. Per ML-KEM-768 e 1024: η = 3.

Il Modulo q = 3329

La scelta di q = 3329 non è accidentale:

  • È un primo tale che q ≡ 1 (mod 2n) per n = 256, il che permette di usare NTT (Number Theoretic Transform) per moltiplicazione rapida in R_q.
  • È abbastanza piccolo perché ciphertext e chiavi siano compatti.
  • È abbastanza grande perché l'errore non trabocchi e causi decifrature errate.

La Congettura Centrale

La sicurezza di Kyber (e di tutta la crittografia basata su reticoli) poggia sulla congettura che:


Non esiste un algoritmo quantistico (né classico) che risolva Module-LWE per i parametri di Kyber in tempo polinomiale.


Questa congettura è plausibile ma non dimostrata. La storia della crittografia insegna che le congetture di durezza a volte falliscono. Ciò che distingue LWE da RSA/ECC è che non si conosce un analogo quantistico di Shor per i reticoli — ma questo non significa che non possa essere scoperto.

Riferimenti

  • Regev, O. (2005). "On lattices, learning with errors, random linear codes, and cryptography." STOC 2005.
  • Bos, J. et al. (2018). "CRYSTALS-Kyber: A CCA-Secure Module-Lattice-Based KEM." EuroS&P 2018.
  • Langlois, A. & Stehlé, D. (2015). "Worst-case to average-case reductions for module lattices." Designs, Codes and Cryptography.