Wie DW zu Recht bemerkt, ist nicht bekannt, dass der Graphisomorphismus in P vorliegt, und es wird angenommen, dass er nicht NP-hart ist. Darüber hinaus glauben viele, dass es sich um BQP handelt, aber dies wurde nicht bewiesen. Damit gehört es zur gleichen Kategorie wie andere Probleme, auf die Kryptosysteme normalerweise für ihre Sicherheit angewiesen sind, wie z. B. Prime Factoring und das Problem des diskreten Protokolls, von denen beide bekannt sind, dass sie in BQP vorliegen. (Ich weiß nicht, wo das Problem der inversen Multiplikation der elliptischen Kurve oder wie auch immer es heißt, in Bezug auf BQP liegt, aber es würde mich nicht im geringsten überraschen, wenn sich all diese kryptografisch nützlichen Probleme in gewissem Sinne als gleichwertig herausstellen würden.)
Es ist wahr, dass wir keine Probleme mit dem Graphisomorphismus kennen, für die die Lösung "schwer" ist. Nehmen wir jedoch für einen Moment an, dass wir es getan haben. Dann können Sie es ja für die Kryptographie verwenden.
Schauen wir uns als Beispiel ein wissensfreies Schlüsselsystem an, das auf Graphisomorphismus basiert.
Alices privater Schlüssel ist ein beschrifteter Graph (die Beschriftungen können nur ganze Zahlen sein), der so konstruiert wurde, dass es "schwer" ist, einen Graphisomorphismus zu überprüfen, und er enthält einen Hamilton-Zyklus, der "schwer" zu finden ist. Ihr öffentlicher Schlüssel ist nur das beschriftete Diagramm ohne Informationen über den Hamilton-Zyklus. Beachten Sie, dass das Ableiten des privaten Schlüssels vom öffentlichen Schlüssel die Lösung des Hamilton-Zyklus-Problems erfordert, das NP-hart ist und, wie wir annehmen, insbesondere für diesen Graphen schwierig ist.
Alice möchte Bob davon überzeugen, dass sie einen Hamilton-Zyklus in der Grafik kennt, ohne ihm tatsächlich den Hamilton-Zyklus zu geben. Hier ist, wie sie es macht.
Alice schickt Bob eine unbeschriftete Grafik. Sie bietet ihm eine Auswahl an: Entweder zeigt sie die Beschriftungen oder sie zeigt einen Hamilton-Zyklus in der Grafik. Bob wirft eine Münze (oder trifft auf andere Weise eine Entscheidung), welche er will, und Alice tut, was auch immer Bob verlangt.
Wenn Bob darum bittet, dass die Beschriftungen aufgedeckt werden, kann er leicht (in linearer Zeit) überprüfen, ob das beschriftete Beschriftungsdiagramm mit Alices öffentlichem Schlüssel identisch ist, kann jedoch keinen Hamilton-Zyklus finden, da dies NP-schwer wäre. Wenn Bob andererseits nach dem Hamilton-Zyklus gefragt hat, kann er leicht (wieder in linearer Zeit) überprüfen, ob das resultierende unbeschriftete Diagramm tatsächlich einen Hamilton-Zyklus enthält, aber er kann nicht überprüfen, ob es sich um Alices Public-Key-Diagramm handelt. weil der Graphisomorphismus (vermutlich) schwer ist.
Aus Bobs Sicht hätte Alice versuchen können, Bob auszutricksen, indem sie entweder ein Diagramm mit einem bekannten Hamilton-Zyklus angegeben hat, das jedoch nicht isomorph zu ihrem öffentlichen Schlüssel ist, oder indem sie ihm ihr Diagramm mit öffentlichem Schlüssel mit entfernten Beschriftungen gab, ohne das zu kennen Hamilton-Zyklus. Sie würde darauf wetten, dass Bob die falsche Wahl traf. Unter der Annahme, dass Bob seine Wahl wirklich zufällig getroffen hat, hätte dieser Trick eine 50% ige Erfolgschance.
Der obige Austausch wird also mit einem anderen unbeschrifteten Diagramm wiederholt. Nach Runden des Protokolls beträgt die Wahrscheinlichkeit, dass Alice Bob in allen Runden erfolgreich austrickst, , was sehr schnell zu "so sicher, wie Sie sein müssen" konvergiert.n2- n
Dies ist natürlich bei weitem kein praktisches System. Darüber hinaus gibt es einige offensichtliche Dinge, die Sie tun können, um die Sicherheit zu erhöhen. Anstatt Alice beispielsweise Bob ein unbeschriftetes Diagramm zu senden, könnte sie einfach einen Hash davon senden. Wenn Bob antwortet, kann sie das Diagramm senden und Bob kann überprüfen, ob das Diagramm übereinstimmt.
Trotzdem könnten Sie im Prinzip ein Kryptosystem daraus erstellen, auch wenn es nicht besonders nützlich ist.