Quanto è difficile da risolvere


8

Dall'isomorfismo grafico, sappiamo che due grafici A e B sono isomorfi se esiste una matrice di permutazione P tale che A=P×B×P1

Quindi, per risolvere il problema, se due grafici sono isomorfi, dobbiamo trovare una tale matrice di permutazione P. Si ritiene che il problema sia NP (e NP completo per il caso dell'isomorfismo del sottografo). Tuttavia, ho trovato un esempio da risolvere per P che mi è sembrato promettente e può essere trovato in http://en.wikipedia.org/wiki/Permutation_matrix nella sezione: risolvere per P.

La confusione che ho ora è, funziona per matrici più grandi? molto largo? ho ragione che l'equazione sopra è difficile da risolvere e può essere candidata per un sistema crittografico?


Migrando a CS in modo da poter ottenere le risposte che stai cercando.

Risposte:


6

L'isomorfismo grafico è stato ben studiato. Un breve riassunto: il problema dell'isomorfismo del grafico non è noto in P (non esistono algoritmi del tempo polinomiale noti), ma non si ritiene che sia NP-completo. Esistono algoritmi euristici per l'isomorfismo grafico che funzionano molto bene sulla maggior parte dei casi che si presentano nella pratica. Leggi la pagina di Wikipedia sull'isomorfismo grafico per ulteriori informazioni.

Per quanto riguarda il tuo particolare approccio proposto: la pagina Wikipedia a cui ti sei collegato spiega già perché questo metodo non funziona in generale. Tale metodo funziona solo se non ci sono autovalori ripetuti nella matrice corrispondente al grafico di adiacenza. Pertanto, fallirà per i grafici in cui sono presenti autovalori ripetuti. Tali grafici non possono essere ignorati. Di conseguenza, quel metodo potrebbe funzionare per alcuni grafici ma non funzionerà (o funzionerà male) per altri grafici, quindi non è una soluzione generale.

L'isomorfismo grafico non è un buon candidato per una base per un sistema crittografico, per due motivi. Innanzitutto, gli algoritmi euristici esistenti sono molto bravi a risolvere il problema in pratica, e non è chiaro come generare istanze difficili di isomorfismo grafico. In secondo luogo, e più seriamente, per essere utili per la crittografia, dobbiamo non solo avere un problema difficile; dobbiamo avere una "botola nascosta" che il creatore della chiave pubblica può incorporare, il che rende il problema facile per il creatore, ma che è difficile da rilevare per chiunque altro. Nessuno sa come incorporare una "botola nascosta" nel problema dell'isomorfismo grafico.


1

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 è 2n, 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.


non ci sono "casi difficili" di problemi - per ogni caso esiste un algoritmo di tempo lineare che lo risolve. quello che ti serve per cripto è un problema che è difficile in media (e che è per cripto minimo); anche se l'isomorfismo grafico risulta essere difficile, in media potrebbe non essere difficile. infatti P \ neq NP non è noto per implicare l'esistenza di problemi che sono mediamente difficili per le distribuzioni campionabili.
Sasho Nikolov,

@Sasho Nikolov, grazie per il chiarimento.
Pseudonimo,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.