Questo è essenzialmente il regno delle classi di complessità computazionale. Ad esempio, la classe BQP può essere grossolanamente descritta come l'insieme di tutti i problemi che possono essere risolti in modo efficiente su un computer quantistico. La difficoltà con le classi di complessità è che è difficile dimostrare la separazione tra molte classi, vale a dire l'esistenza di problemi che sono in una classe ma non in un'altra.
In un certo senso, è sufficiente poter dire "se questo algoritmo quantico non può romperlo, è sicuro", devi solo usare l'algoritmo giusto. È necessario un algoritmo completo BQP come la ricerca di radici del polinomio di Jones : qualsiasi algoritmo quantistico può essere lanciato come istanza di un algoritmo completo BQP. Tuttavia, come tale algoritmo possa essere utilizzato per il cracking è completamente poco chiaro e non banale. Non è sufficiente vedere che non puoi direttamente forzare le cose con la forza. Quindi, questo approccio probabilmente non è così utile.
Cosa vogliamo da uno scenario crittografico post-quantico? Abbiamo bisogno:
- y= f( x )
- f- 1( y)
- zg(y,z)=xf(x)z
Quest'ultimo punto è (essenzialmente) la definizione della classe di complessità NP: i problemi per i quali può essere difficile trovare una soluzione, ma per i quali una soluzione è facilmente verificabile quando viene fornita una prova (corrispondente alla chiave privata nel nostro caso) .
≠
La sottigliezza aggiuntiva che complica le cose, tuttavia, è all'incirca (non sono un esperto) che le classi di complessità parlano della complessità del caso peggiore, cioè per una data dimensione del problema, riguarda quanto sia difficile l'istanza più difficile possibile del problema. Ma potrebbe esserci solo un'istanza del problema, il che significherebbe che se risolviamo la dimensione del problema (come standard, ad esempio potresti parlare di RSA a 1024 bit; la dimensione del problema è 1024 bit), ci sarà solo una chiave privata. Se lo sappiamo, un intercettatore può semplicemente usare quella chiave privata per decrittografare i messaggi. Quindi, in realtà abbiamo bisogno che questo ragionamento sulla complessità computazionale si applichi per una grande proporzione di possibili input. Questo ti porta nel mondo della complessità dei casi medi in cui, come ho capito, diventa molto più difficile fare tali affermazioni.
Potrebbe essere utile fare un confronto con RSA, un sistema crittografico a chiave pubblica, e ignorare l'esistenza di computer quantistici. Si basa sulla difficoltà di fattorizzare grandi numeri composti. Questo problema non è (si ritiene sia) in P, quindi si ritiene che sia difficile per un hacker con un computer classico ottenere la risposta. Nel frattempo, è in NP perché la soluzione è prontamente verificata (se ti viene dato un fattore, puoi facilmente verificare che sia un fattore). Ciò significa che può essere decifrato utilizzando un computer classico dal legittimo destinatario.