Lezione 6 · calcolo quantistico

Algoritmi quantistici: che cosa diventa facile

Pochi: P⊆BPP⊆BQP⊆PP⊆PSPACE\mathrm{P} \subseteq \mathrm{BPP} \subseteq \mathrm{BQP} \subseteq \mathrm{PP} \subseteq \mathrm{PSPACE}. Gli NP-completi restano (si crede) difficili; Grover dimezza l'esponente della forza bruta, Shor fattorizza e rompe RSA.

Qubit, macchina di Turing quantistica e la classe BQP sono nella scheda Quantistiche delle classi, con la mappa.

Speedup quantistici

I tre speedup delle slide: Fourier, Shor, Grovernon chiesto all'esame

In breve

Uno speedup è un'accelerazione rispetto al miglior algoritmo classico noto. Le slide citano tre algoritmi quantistici, che danno la risposta con errore limitato, non con certezza:

  • la trasformata di Fourier, che scompone un segnale nelle sue frequenze, su spazi di dimensione nn: da O(nlog⁡n)O(n \log n) a O(log⁡2n)O(\log^2 n). Lo speedup è esponenziale, ma su un problema già in P; è il mattone dell'algoritmo di Shor;
  • la fattorizzazione degli interi con l'algoritmo di Shor: classicamente non si conosce un algoritmo polinomiale, Shor lo è. Il problema sta in NP, probabilmente non è NP-completo, e non si sa se sta in P;
  • la ricerca non ordinata con l'algoritmo di Grover: dati un insieme SS e una funzione ff che vale 0 o 1 e costa tempo O(m)O(m), trovare un xx con f(x)=1f(x) = 1. A forza bruta si prova un elemento dopo l'altro, in tempo O(m⋅∣S∣)O(m \cdot |S|), dove ∣S∣|S| è il numero di elementi; Grover impiega O(m⋅∣S∣)O(m \cdot \sqrt{|S|}). Lo speedup è quadratico.

Esempio

In un elenco telefonico non ordinato di un milione di nomi servono fino a un milione di controlli; con Grover ne bastano dell'ordine di 1.000.000=1.000\sqrt{1.000.000} = 1.000.

Negli appunti: §9

Grover sui problemi NP: l'esponente si dimezza

In breve

La ricerca di Grover ha proprio la forma di un problema di NP: SS è l'insieme dei possibili certificati, che sono esponenzialmente tanti; ogni certificato è corto; ff è la verifica, che costa tempo polinomiale. Se la forza bruta classica costa cnkc^{n^k} passi, Grover la porta a circa cnk=cnk/2\sqrt{c^{n^k}} = c^{n^k/2}: l'esponente si dimezza. Il problema resta esponenziale, ma a parità di tempo si risolvono istanze circa due volte più grandi. Più il problema è difficile, meno si guadagna: se il classico costa 2nk2^{n^k}, la taglia risolubile nello stesso tempo cresce solo di un fattore 2k\sqrt[k]{2}.

Esempio

KNAPSACK (Lezione 8, §6): dati nn oggetti con pesi e valori, esiste un sottoinsieme con peso totale al più WW e valore totale almeno VV? Grover cerca tra i 2n2^n sottoinsiemi, e controllarne uno costa O(n)O(n). Il costo, scritto come nelle slide, è O(4n/2)O(4^{n/2}): confrontato con il classico scritto nella stessa base, O(4n)O(4^n), è la radice quadrata. Con i tempi delle slide, in circa 3 ore e 20 minuti il classico arriva a 70 oggetti e Grover a 140. Le istanze reali, però, hanno decine di migliaia di oggetti: restano fuori portata anche con Grover.

Definizione e formule

Proposizione: ogni problema in NP si risolve quantisticamente, con errore limitato, in tempo O(cnk/2)O\big(c^{n^k/2}\big) per qualche cc e kk.

Negli appunti: §9

Quando conviene il calcolo quantisticonon chiesto all'esame

In breve

È una questione di rapporto tra costo e prestazioni. Le slide propongono quattro domande da porsi, in ordine, per ogni problema:

  1. È facile (in P)? Il calcolo classico è molto competitivo e costa decisamente meno: classico.
  2. È difficile, ma la taglia è gestibile con algoritmi classici? Il classico può convenire, a seconda di quanto accelera il quantistico.
  3. Altrimenti, la taglia è gestibile con un algoritmo quantistico (per gli NP-completi, circa il doppio)? Allora conviene il quantistico.
  4. Altrimenti serve una soluzione approssimata, che di solito richiede tempo polinomiale: lì il classico torna competitivo, perché per ora non ci sono risultati sull'approssimazione quantistica.

Esempio

SORT (ordinare una lista) è in P: caso 1, si usa il classico. KNAPSACK è NP-completo: dipende dalla taglia, quindi caso 2, 3 o 4.

Negli appunti: §9

Prova: Grover contro una chiave simmetrica

Classico · chiave iniziale

21282^{128}

Ordine dei tentativi di ricerca

Grover · chiave di 128 bit

2642^{64}

Ordine delle interrogazioni quantistiche

Il vantaggio è quadratico: 2n=2n/2\sqrt{2^n} = 2^{n/2}. La ricerca resta esponenziale. Modello teorico di ricerca non strutturata usato all'esame.

Crittografia e Shor

Crittografia simmetrica e asimmetricanon chiesto all'esame

In breve

La crittografia simmetrica usa una sola chiave, sia per cifrare sia per decifrare: i due interlocutori devono prima scambiarsela, e lo scambio è rischioso. La crittografia asimmetrica, o a chiave pubblica, usa due chiavi. Funziona come una cassetta delle lettere: chiunque può imbucare, cioè cifrare con la chiave pubblica, ma solo il proprietario può aprire, cioè decifrare con la chiave privata. Per la firma digitale si cifra con la chiave privata. La sicurezza dei cifrari asimmetrici è computazionale: non è impossibile romperli, è che nessuno conosce un algoritmo polinomiale per farlo.

Esempio

AES è un cifrario simmetrico; RSA e Diffie-Hellman sono asimmetrici.

Definizione e formule

Se cifrare e decifrare sono operazioni "pratiche" (in P), attaccare il cifrario sta al più in NP: si indovina la chiave e si verifica in tempo polinomiale se è giusta.

Negli appunti: §10

RSAnon chiesto all'esame

In breve

Moltiplicare due numeri primi grandi è facile; risalire ai due primi partendo dal prodotto è, per i computer classici, difficilissimo. RSA mette il prodotto nella chiave pubblica e tiene segreti i due primi. Chi conosce i primi fa tutte le operazioni in tempo polinomiale; chi non li conosce dovrebbe fattorizzare. Nei conti, "a mod na \bmod n" è il resto della divisione di aa per nn.

Esempio

Primi p=3p = 3 e q=11q = 11: n=33n = 33 e Φ(n)=(3−1)(11−1)=20\Phi(n) = (3-1)(11-1) = 20. Si sceglie e=3e = 3, che non ha fattori in comune con 20, e si trova d=7d = 7, perché 3⋅7=213 \cdot 7 = 21 diviso 20 dà resto 1. Chiave pubblica (3,33)(3, 33), chiave privata (7,33)(7, 33). Il messaggio m=4m = 4 si cifra in 43 mod 33=64 mod 33=314^3 \bmod 33 = 64 \bmod 33 = 31 e si decifra con 317 mod 33=431^7 \bmod 33 = 4.

Definizione e formule

Con n=pqn = pq e Φ(n)=(p−1)(q−1)\Phi(n) = (p-1)(q-1) (la funzione toziente di Eulero): d=e−1 mod Φ(n)d = e^{-1} \bmod \Phi(n), cifratura c=me mod nc = m^e \bmod n, decifratura m=cd mod nm = c^d \bmod n. RSA è sicuro perché non si conoscono algoritmi classici polinomiali né per la fattorizzazione (dato nn, trovare pp e qq), né per il logaritmo discreto (dati cc, nn e cd mod nc^d \bmod n, trovare dd), né per il calcolo di Φ(n)\Phi(n) a partire da nn, che è difficile quanto fattorizzare.

Negli appunti: §10

L'impatto di Shornon chiesto all'esame

In breve

Shor risolve in tempo polinomiale, su un computer quantistico, sia la fattorizzazione sia il logaritmo discreto: entrambi stanno in BQP. Quindi la crittografia asimmetrica (RSA, Diffie-Hellman) diventa violabile, perché non si basa su problemi NP-completi ma su problemi che Shor risolve. Sono a rischio SSL/TLS, HTTPS e le firme digitali. Le alternative sono cifrari basati su problemi NP-completi e la crittografia quantistica. La crittografia simmetrica invece sembra immune: Grover accelera l'attacco a forza bruta (provare tutte le chiavi), ma il costo resta esponenziale, e per tornare al livello di sicurezza di prima basta raddoppiare la lunghezza della chiave.

Esempio

Con una chiave da 128 bit la forza bruta classica prova circa 21282^{128} chiavi, Grover circa 2642^{64}. Con una chiave da 256 bit Grover torna a 21282^{128}, e cifrare e decifrare diventano solo un po' più lenti. Nei protocolli reali la chiave pubblica serve solo all'inizio (handshake), per scambiarsi una chiave simmetrica di sessione: è quella fase, insieme alle firme digitali, che va ripensata.

Negli appunti: §10

Conclusioni

Le conclusioni: niente bacchetta magica

In breve

Il messaggio finale ha tre punti. Primo: il computer quantistico non è una bacchetta magica. I problemi difficili, dagli NP-completi in su, restano plausibilmente difficili (è una congettura); quelli da 2-EXP in su restano sicuramente difficili. Secondo: i benefici ci sono. Con Grover si risolvono istanze circa doppie dei problemi NP-completi, e qualche problema che si ritiene né NP-completo né in P, come la fattorizzazione, può diventare facile. Terzo: quando i problemi tecnologici saranno risolti, gli attuali cifrari asimmetrici potranno essere violati in fretta, e bisognerà ripensare le firme digitali e lo scambio iniziale delle chiavi.

Esempio

Domanda tipo: "SAT sta in PP?". Sì: SAT sta in NP, e NP sta dentro PP. Domanda tipo: "ciò che risolve un computer quantistico richiede solo spazio polinomiale su un computer classico?". Sì: BQP sta dentro PSPACE.

Definizione e formule

La catena da sapere è

P⊆BPP⊆BQP⊆PP⊆PSPACE,NP⊆PP\mathrm{P} \subseteq \mathrm{BPP} \subseteq \mathrm{BQP} \subseteq \mathrm{PP} \subseteq \mathrm{PSPACE}, \qquad \mathrm{NP} \subseteq \mathrm{PP}

E le tre classi della lezione a confronto:

ClasseSi accetta seErrore sotto una soglia fissata in tempo polinomiale?
PPpiù della metà dei run dice "yes"non si sa (il vantaggio può essere esponenzialmente piccolo)
BPPalmeno 3/4 dei run dà la risposta giustasì
BQPla QTM dà la risposta giusta con probabilità almeno 2/3sì

Negli appunti: §11

Esercizi

Conviene risolvere SORT con un computer quantistico?

No. SORT è in P (O(nlog⁡n)O(n \log n)): il calcolo classico è già efficiente e costa molto meno. Non c'è margine per uno speedup esponenziale: ordinando per confronti servono almeno circa nlog⁡nn \log n confronti anche con un algoritmo quantistico. È il caso 1 della lista "Quando conviene il calcolo quantistico".

Conviene risolvere KNAPSACK con un computer quantistico?

Dipende dalla taglia. KNAPSACK è NP-completo: si congettura che non stia in BQP, quindi niente soluzione polinomiale. Grover dà uno speedup quadratico (O(cn)→O(cn/2)O(c^n) \to O(c^{n/2})): conviene quando l'istanza è troppo grande per il classico ma rientra nella taglia circa doppia gestibile da Grover. Per istanze enormi (migliaia di oggetti) servono algoritmi approssimati, polinomiali, dove il classico torna competitivo.

Conviene sviluppare algoritmi quantistici di crittografia?

Sì. Shor rende violabili in tempo polinomiale i cifrari asimmetrici (RSA, Diffie-Hellman), quindi l'handshake di TLS/HTTPS e le firme digitali. Servono alternative: crittografia quantistica (es. distribuzione quantistica delle chiavi) oppure cifrari classici basati su problemi ritenuti difficili anche per BQP (es. NP-completi). La crittografia simmetrica invece basta allungarla (chiavi lunghe il doppio contro Grover).

Collegamenti con l'esame

Gli argomenti di questa lezione compaiono all'esame come domande SÌ / NO / altro, da motivare in poche righe. Cosa saper fare:

  • Grover. Lo speedup è quadratico: 2n2^n diventa 2n/22^{n/2}. Contro la forza bruta sulle chiavi simmetriche basta quindi raddoppiarne la lunghezza.
Prova nelle tracce · 4 domande

Fonte: appunti della Lezione 6 · Algoritmi probabilistici e calcolo quantistico (slide lezione-6.pdf, Bonatti; Papadimitriou cap. 11). La dispensa non ha un capitolo dedicato.