Come giustamente osserva DW, l'isomorfismo grafico non è noto per essere in P, e si ritiene che non sia NP-difficile. Inoltre, molti credono che sia in BQP, ma questo non è stato dimostrato. Ciò lo pone nella stessa categoria di altri problemi su cui i cryptosystems si affidano in genere per la loro sicurezza, come il factoring principale e il problema di registro discreto, entrambi noti per essere in BQP. (Non so dove sia il problema della moltiplicazione inversa della curva ellittica o come si chiama si collochi rispetto al BQP, ma non mi sorprenderebbe affatto se tutti questi problemi crittografici utili si rivelassero equivalenti in un certo senso.)
È vero che non conosciamo problemi di isomorfismo grafico per i quali la soluzione è "difficile". Tuttavia, supponiamo per un momento che abbiamo fatto. Quindi sì, puoi usarlo per la crittografia.
Ad esempio, diamo un'occhiata a un sistema chiave a prova di conoscenza zero basato sull'isomorfismo grafico.
La chiave privata di Alice è un grafico con etichetta (le etichette possono essere solo numeri interi) che è stato costruito in modo tale che sia "difficile" controllare un isomorfismo del grafico e contiene un ciclo hamiltoniano che è "difficile" da trovare. La sua chiave pubblica è solo il grafico etichettato, senza informazioni sul ciclo hamiltoniano. Si noti che derivare la chiave privata dalla chiave pubblica richiede di risolvere il problema del ciclo hamiltoniano, che è NP-difficile e, assumiamo, è difficile per questo grafico in particolare.
Alice vuole convincere Bob che conosce un ciclo hamiltoniano nel grafico, senza in realtà dargli il ciclo hamiltoniano. Ecco come lo fa.
Alice invia a Bob un grafico senza etichetta. Gli offre una scelta: o rivelerà le etichette o rivelerà un ciclo hamiltoniano nel grafico. Bob lancia una moneta (o prende una decisione in qualche altro modo) su quale vuole, e Alice fa qualunque delle due che Bob chiede.
Se Bob ha richiesto la rivelazione delle etichette, può facilmente verificare (in tempo lineare) che il grafico etichettato resuling è lo stesso della chiave pubblica di Alice, ma non riesce a trovare un ciclo hamiltoniano perché sarebbe NP-difficile. Se, d'altra parte, Bob ha chiesto il ciclo hamiltoniano, può facilmente verificare (di nuovo, in tempo lineare) che il grafico senza etichetta risultante contenga effettivamente un ciclo hamiltoniano, ma non può verificare che sia il grafico della chiave pubblica di Alice, perché l'isomorfismo grafico è (presumibilmente) difficile.
Dal punto di vista di Bob, Alice avrebbe potuto tentare di ingannare Bob dando un grafico che ha un ciclo Hamiltoniano noto ma non è isomorfo alla sua chiave pubblica, o dandogli il suo grafico di chiave pubblica con le etichette rimosse ma non conoscendo il Ciclo hamiltoniano. Stava scommettendo su Bob che avrebbe fatto la scelta sbagliata. Supponendo che Bob abbia davvero fatto la sua scelta in modo casuale, allora questo trucco avrebbe una probabilità del 50% di successo.
Quindi lo scambio sopra è ripetuto con un diverso grafico senza etichetta. Dopon round del protocollo, la probabilità che Alice inganni Bob con successo su tutti i round è 2−n, che converge molto rapidamente in "certo di quanto devi essere".
Ovviamente questo non è affatto vicino a un sistema pratico così com'è. Inoltre, ci sono alcune cose ovvie che puoi fare per renderlo più sicuro. Ad esempio, anziché Alice che invia a Bob un grafico senza etichetta, potrebbe semplicemente inviarne un hash. Quando Bob risponde, potrebbe quindi inviare il grafico e Bob può verificare che il grafico corrisponda.
Tuttavia, in linea di principio potresti creare un sistema crittografico, anche se non è terribilmente utile.