 So, ich glaube wir können dann anfangen, ich will euch was dazu erzählen, wie Kryptografie funktioniert von dem Ton, ich habe das Gefühl, es ist halt furchtbar, ok, dann ist das nur für mich hier im Formel. Also ich will euch etwas darüber erzählen, wie Kryptografie und Komplexitätstheorie zusammenhängt, also Titel irgendwie P versus NP, was die meisten von euch wahrscheinlich mal irgendwie gehört haben und dann halt Zusammenhang zur Kryptografie, ich werde jetzt auch alles nochmal definieren, ja, und eine andere Sichtweise darauf ist, dass das Ganze ein bisschen eine Einführung, die Komplexitätstheorie aus die Sicht eines Kryptografen ist. Und ja, also ich werde ein paar allgemeine Dinge erzählen und P versus NP definieren und dann mir mal angucken oder uns mal angucken, was genau in den Fällen eigentlich passiert, wenn P gleich NP oder wenn P ungleich NP ist. Die klassische Kryptografie hat letztendlich so funktioniert, dass man versucht hat, irgendwie ein sicheres Verfahren zu bauen und man hat das immer wieder versucht und dann gehofft, dass es irgendwann sicher ist und klassisch heißt hier deutlich länger als irgendwie nur die C-Seitschrift drin, das geht bis in die 70er Jahre hinein, ja, da ist ein Problem, existierte ein Problem, das hat Bruce Schneier mal ganz schön formuliert, anyone from the most clueless amateurs to the best Kryptographer can create an algorithm that he himself can't break, das heißt man kann immer wieder was bauen, wo man denkt, dass das Ganze sicher ist, aber es kann jederzeit am nächsten Tag jemand vorbeikommen und sagen, so kann man das aber doch angreifen und das ist keine gute Voraussetzung für Kryptografie. Es hat einigermaßen funktioniert bei den symmetrischen Primitiven, aber spätestens seitdem es dann mehr um Asymmetri-Primitive wie zum Beispiel in RSA geht, die auch noch zusätzlich eine sehr starke Mathematstruktur haben und dadurch Angriffe tendenziell vereinfachen oder es auch vereinfachen, dass man doch irgendwann etwas findet, was das Ganze angreifen kann, auch dafür, dass das nicht mehr wirklich ein gangbarer Weg ist, deshalb will man dann beweisbare Kryptografie. Eine Möglichkeit zu sagen, wir beweisen unsere Kryptografie ist zu sagen, Angriffe sollen unmöglich sein. Das schränkt uns leider sehr ein, was die Kryptografie angeht, das Ganze nennt sich dann informationsteoretische Kryptografie, es gibt ein paar Anwendungsfälle wie zum Beispiel in One Time Pat, wobei man das wirklich in kaum einem Fall verwenden will oder so was wie Chamius Secret Sharing, wo man eine Nachricht zwischen verschiedenen Parteien aufteilen kann und dann können ein Unterteil dieser Gruppe die Nachricht wieder zurückgenerieren, aber es müssen ein bestimmter Anzahl von Menschen dabei sein. Insofern ja, aber insgesamt sind es kaum Anwendungen. Deshalb müssen wir es dabei belassen, dass es nur schwierig für einen Angreifer ist. Also zum Beispiel, er kann nicht mehr als einfach den Ki raten, er kann immer noch alle Kies durchprobieren und irgendwann wird er den richtigen finden und in Zweifel wird das bis zum Ende des Universums dauern. Aber dann ist natürlich die Frage, was bedeutet schwierig? Fangen wir erstmal damit an, was einfach bedeutet und dann zum Fall zu kommen, was schwierig ist, da das etwas einfacher ist. Wenn wir einfache Probleme uns angucken, wollen wir nicht, dass irgendwie ein Konkretesproblem einfach ist, da das Ganze dann von der aktuellen Laufzeit und Geschwindigkeit von Rechnern abhängig ist, sondern wir wollen, dass das Ganze abhängig von einem Parameter für beliebig große Parameter einfach ist, also letztendlich, dass die Entwicklung in einer gewisse Weise einfach ist. Beispielsweise könnte man das dann abhängig von einer Schlüsselgröße machen und wenn halt die Rechner wieder schneller werden, macht man den Schlüssel einfach ein bisschen größer. Das andere ist die Frage, welche Laufzeit ist eigentlich für uns einfach? Das hängt auch wieder sehr stark von der Anwendung ab. So etwas wie O von N hoch 3 ist zum Beispiel für ein Satio-Algorithmus katastrophal schlecht, aber wenn es darum geht, einen kleinen Kieh einmal zu generieren, ist das etwas, was relativ problemlos ist. Da man sich dann nicht auf was Spezielles festlegen will, geht man im Allgemeinen davon aus, dass sämtliche Probleme, die irgendeine Polynamie Laufzeit haben, also irgendwas N hoch, irgendeine Konstante C als asymptotische Laufzeit haben, einfach sind. Das hat zusätzlich die schöne Eigenschaft, dass ich diese Programme beliebig zusammenschmeißen kann. Also ich kann sie hinternamnetten behängen, dann addieren sich die Laufzeiten, kann das eine Mal das andere ausführen, oder in jedem Schritt das andere ausführen, dann multiplizieren sich, oder ich kann das eine als Unterroutine irgendwo um anderen aufrufen, dann hat man das eine Polynomen vom anderen Polynomen von der Eingabelänge und das bleiben immer Polynome. Das heißt, wenn wir einfache Probleme kombinieren, bleiben wir immer bei einfachen Problemen. Genau, jetzt komme ich zur Definition, genau wie man diese Komplexitätsklasse P, von P versus NP definiert, das Ganze wird jetzt kurz etwas formellar, aber ich hoffe nicht zu mathematisch. In Komplexitätsklassen guckt man sich Wörter an, die letztendlich einfach Bit-Strength sind, also irgendwie 0,1, eine Beliebinglänge und jetzt sagt man, eine Sprache ist gerade eine Untermenge dieser Wörter und dabei soll diese Sprache dann irgendwie unser Problem beschreiben. Und wir sagen jetzt, eine Sprache ist in der Komplexitätsklasse P, wenn es irgendeine polynomelle Laufzeit gibt und für jedes Wort X, das einen Algorithmus gibt, der maximal in dieser polynomellen Laufzeit läuft und in dieser entscheiden kann, ob dieses Wort in L enthalten ist oder nicht. Ein Beispiel wäre, so was wie die Frage, ist X eine Primzahl, also das Problem zu entscheiden, ob etwas eine Primzelle ist oder nicht, ist in polynomeller Zeit machbar, ist also ein einfaches Problem und in dem Fall wäre dann X einfach der Bit-Strength, also man würde einfach sich angucken, was ist dieser Bit-Strength und dann überprüfen, ist das Ganze eine Primzahl. Das ist jetzt hier bei Primzellen relativ einfach, manchmal ist es etwas komplizierter, das Problem in eine solche Sprache umzuwandeln, aber es geht meistens eine häufige Technik, zum Beispiel wenn man ein Problem hat, wo man ein längeres Ergebnis haben will als nur eine Ja oder Nein Frage, kann man dann umschreiben, indem man sich eine Präfixsprache baut, wo man sagt, ist das Ergebnis des Problems mit folgendem String an und dann kann man einfach mehrere Rationen brauchen, das Ganze ist wieder in polynomeller Laufzeit, weil man nur polynomell oft das Ganze machen muss und dann hat man das Problem in eine Sprache umgewandelt. So und jetzt ist die Frage, wie definieren wir schwierige Probleme oder wir brauchen auch schwierige Probleme, sonst wäre Kryptografie etwas los, wenn jeder das Problem in einfacher Laufzeit lösen kann. Die erste Idee wäre, wir gucken uns einfach das entsprechende Equalent zu exponentieller Laufzeit an, EXP, das hilft aber nicht so wirklich weiter, da dann das Problem für jeden schwierig ist. Wir wollen ja, dass das Problem für den Angreifer schwierig ist, aber für den normalen Benutzer soll es einfach sein, ansonsten bräuchte irgendwie jeder zu Hause ein PC, der Krypto knacken kann. Und da kommen wir zur Klasse NP, die ist etwas merkwürdig definiert, das Ganze ist nämlich die Non-deterministik polynomial time und das Gedankenexperiment einer nicht-deterministischen Turing-Maschine, wobei Turing-Maschine nur das Berechnungsmodell ist und nicht wirklich wichtig ist, die etwas anders funktioniert als die Programme, die wir so kennen, also da in dem Bild das Linke ist ein Programm, wie wir es kennen, das führt einfach etwas weitgehend linear aus und manchmal muss es sich entscheiden, für ob es jetzt einen bestimmten Weg geht oder einen anderen, aber es gibt immer einen bestimmten Weg. Und eine nicht-deterministische Turing-Maschine, an jede Entscheidung beide Wege gleichzeitig wählen kann. Es ist also wie ein komplett parallelisiertes Programm, was beliebig viele Kerne hat und an jede Entscheidung, wo es sich entscheiden müsste, gehe ich jetzt in die eine Richtung oder gehe ich in die andere, seit sich das Bit auf Null oder Eins führt es einfach alle gleichzeitig aus und es beendet sich, sobald es zu einer sinnvollen Antwort gekommen ist, als zum Beispiel da oben würde das Programm nach drei Schritten potenziell schon zu Ende sein, weil es einen Weg zu accept gefunden hat. Wenn wir ein normales Programm hätten und das sich nicht im ersten Schritt für links entscheiden würde, könnte es sein, dass das ewig zum Rechnen braucht, da es diesen kurzen Weg einfach übersehen hat. Und damit können wir jetzt genau das modulieren, was wir haben wollen. Denn der Vorteil, den der Anwender gegenüber dem Angreifer hat, ist, dass der Anwender zusätzliche Informationen hat. Und diese zusätzlichen Informationen können wir jetzt in den Weg, den dann unsere normale Turing-Maschine, also eine nicht-nicht-deterministische Turing-Maschine, wählen soll einfügen. Also wir können diesem Algorithmus dann sagen, geh im ersten Schritt links, dann kannst du es ganz schnell lösen und ein Angreifer hat diese Informationen nicht und kann dementsprechend es nicht so schnell lösen. In der Realität arbeitet man übrigens genau mit dieser Zusatzinformation, weil diese Definition über nicht-deterministische Turing-Maschinen nicht wirklich praktikabel ist. Und genau, die Sprache NP ist jetzt genau die Sprache der Probleme, für die es eine solche nicht-deterministische Turing-Maschine gibt, die in polinumieller Laufzeit läuft. Das heißt, wir haben genau den Fall, wo der Benutzer dadurch, dass er die Zusatzinformation hat, genau den kurzen Weg wählen kann, der dann in polinumieller Zeit läuft. Aber ein Angreifer kann diesen Weg nicht unbedingt wählen, weil er ihn nicht kennt und braucht dadurch deutlich mehr Zeit. Ein Beispiel wäre da für Sudoku. Eine nicht-deterministische Turing-Maschine kann das Problem relativ einfach lösen, indem es Feld für Feld durch das Sudoku durchgeht und dann jedem Feld sämtliche Werte, die gerade möglich sind, parallel auswürtt. Und dadurch geht das durch alle Felder durch und wird am Ende, falls es Sudoku löstbar ist, mindestens eine Lösung finden, weil irgendeiner der verschiedenen Lösungswege zu einer Lösung finden, erführen wird. Und hier wäre jetzt die Zusatzinformationen, die man braucht, um das Ganze durchzuführen, beispielsweise einfach die Belegung des Sudokos. Und das ist auch eine wichtige Untermenge der NP-Probleme. Nämlich die Probleme, bei denen man einfach verifizieren kann, dass eine Lösung richtig ist, also wo die Lösung einfach die Zusatzinformation ist. Und die Probleme, die wir bisher angeguckt haben, sehen ungefähr so aus. Das heißt, wir haben unsere Probleme P und wir haben eine potenziell größere Menge NP. Das heißt, wir können auch nicht einfach irgendein Problem aus NP nehmen, sondern wir suchen irgendein Problem aus NP, welches nicht in P enthalten ist. Ansonsten wären wir wieder bei den einfachen Problemen und der Angreifer hatte kein Problem, das Ganze zu lösen. Insofern ist jetzt die entscheidende Frage, gibt es irgendein Problem, welches in NP enthalten ist, aber nicht in P? Und das Ganze ist eines der Millennium-Probleme, eines der von, ich weiß nicht genau, wie viele Problemen, die um 2000 definiert wurden, die als wichtigste Probleme aktuell in der Mathematik gelten und die mit einer Million Dollar versehen sind, wenn man das Problem löst. Und bisher hat zumindest dieses Problem noch niemand gelöst. Es gibt diverse Beweispersuche. Da oben habe ich eine Webseite angegeben, die die ganzen sammelt. Die Versuche sind natürlich immer der Meinung, dass sie jetzt das eine oder das andere bewiesen hat, das ist auch relativ gemischt. Aber es gibt keinen Beweis, der bisher als gut oder richtig akzeptiert wurde. Was es immer wieder gibt, sind Beweise, bei denen gezeigt wird, dass man es mit einer bestimmten Technik nicht lösen kann, aber das hilft auch nicht weiter und es ist tatsächlich auch unklar, ob man überhaupt das beweisen kann. Also ein Beweis für P-Gleich-NP wäre relativ einfach, da wir eine Menge von Problemen haben, bei denen wir wissen, dass es die schwersten Probleme in NP sind. Das heißt, wenn diese Probleme in polinumieller Laufzeit losbar sind, wissen wir direkt, dass es kein Problem gibt in NP, was nicht gleichzeitig auch in P enthalten sind. Beispiele für die Probleme sind Travelling Sales, man Satisfiability, also überprüfen, ob für eine Menge von Variablen, die mit und oder verbunden sind, es eine Lösung gibt, wie die gesamte Aussage dann zu wahr ausgewertet wird. Ja, aber der Fall P-Un-Gleich-NP ist nicht klar, ob es dafür überhaupt ein Beweis geben kann. Habt ihr schon Fragen dazu, zu den Definitionen bisher? Okay, dann gehe ich mal zu den beiden Fragen, was wäre wenn? Die erste Frage ist, was wäre, wenn P-Gleich-NP ist? Und potenziell etwas unerwartet für Kryptokarfen ist, dass die meisten Bereiche aus der Mathematik, aus der Wirtschaft sich freuen würden, wenn da, wenn P-Gleich-NP gilt, diverse Probleme, die wir im Moment haben, sei es von Optimierungsalgorithmen, von dem Wauen von Farblehen zur Entwicklung neuer Medikamente, entwickelnden, neuer Baumaterialien plötzlich zu einfachen Problemen werden würden. Insofern kann es sein, dass wir dann auf einem Weg zu irgendeiner Utopie sind, wo wir überhaupt keine Kryptografie mehr brauchen. Aber das ist nicht unbedingt gegeben. Der Kryptografie sieht das Ganze natürlich etwas deprimierender aus. Wir wissen dann plötzlich, dass wir für jedes Verfahren irgendeinen effizienten Angreifer haben. Es heißt nicht unbedingt direkt, dass wir den Angreifer kennen. Es kann gut sein, dass wir einen Beweis für P-Gleich-NP haben, der nicht direkt auch ein Algorithmus ausgibt. Aber sobald wir einen Algorithmus für diese NP vollstrengenden Probleme haben, wie Troubling-Salesman und so weiter, haben wir direkt sämtliche Probleme dort gelöst und es würde auf einmal alles kaputt gehen. Und wir wissen dauerhaft, es kann jederzeit alles kaputt gehen. Das Ganze wäre also nicht wirklich eine zufriedenstellende Situation. Was natürlich immer noch funktionieren würde, ist die informationsteoretische Kryptografie. Aber wie schon erwähnt, so wirklich viel kann man mit der nicht anfangen. Es gibt das One Time Pad, aber da hat man zum Beispiel das Problem grundsätzlich bei informationsteoretischer Verschlüsselung. Der Schlüssel immer mindestens genauso lang sein muss, wie der Ciphertext. Und wir haben schon jetzt in der Kryptografie riesige Probleme, Schlüsse überhaupt auszutauschen. Das funktioniert schon regelmäßig für die kurzen Schlüssel, die wir aktuell verwenden, nicht wirklich zufriedenstellend. Und das Ganze für so große Schlüssel dann zu machen, ist nicht wirklich praktikal. Es gibt einen Ausweg, wir ändern einfach unsere Definition. Wir haben uns ja vorhin definiert, was für uns schwierig und was für uns einfach ist. Und es hindert uns erst mal niemand daran, zu sagen, OK, vielleicht, wenn wir daran was ändern, kriegen wir noch Kryptografie hin. Ein Beispiel wäre zu sagen, OK, Moment, gehen wir davon aus, dass sämtliche Probleme, die irgendwie in polynomieller Laufzeit zu lösen sind, einfach sind. Aber es gibt immer noch einen Riesenunterschied zwischen, zum Beispiel, ein quadratischer Laufzeit und jetzt eine Laufzeit, die in O von NO 25 liegt. Es gibt Ansätze, Beweis, Kryptografie mit exakteren Laufzeitgrenzen zu bauen. Das Ganze läuft dann unter Fine-Crain-Kryptografie. Und es gab auch ganz am Anfang in den Zeiten von, als Key Exchange entwickelt wurde, gab es bereits Verfahren, die zum Beispiel nur einen quadratischen Vorteil von normalen Nutzer gegenüber dem Angreifer hatte. Das heißt, irgendwie der Nutzer musste zum Beispiel Operationen in O von N Quadrat ausführen, während der Angreifer dann O von N hoch 4 benutzen musste. Das führt dann aber dazu, dass unsere Schlüssellänge explodieren. Also zum Beispiel, wenn wir sagen, wir haben eine Schlüssellänge von 42, das wäre dann ein Schlüssel von 1 Terabyte. Dann haben wir ein Sicherheitslevel von 2 hoch 80, was ausreichen sollte, was aber schon deutlich weniger Abstand zu brechbaren Angriffen hat, als zum Beispiel ein IS, wo das Sicherheitslevel bei 2 hoch 128 liegt. Das heißt, ja, potenziell ist noch was möglich, aber es ist nicht der Fall, bei dem man will, dass er eintritt. Dann die andere Richtung, was wäre, wenn P ungleich NP ist, haben wir dann direkt beweisbar sichere Kryptografie. Die Antwort ist leider nein. Dazu muss ich nochmal ein bisschen in Richtung der Definitionen gehen und One-Way Funktionen definieren. One-Way Funktionen sind Funktionen, die einfach zu berechnen sind, aber schwierig zu invertieren sind. Also ich kann für ein beliebiges X, F und X berechnen, aber wenn ich dann dieses F und X bekomme, kann ich kein X zurück berechnen, auch kein anderes Potentialist Pre-Image. Formell ist das dann so definiert, dass es keinen Angreifer geben sollte, der für ein zufälliges F und X, wobei das X zufällig gewählt wird, ein X-Stich berechnen kann, so dass F und X gleich Y ist. Wir brauchen das Ganze mit X-Stich, weil es könnte sein, dass F nicht injektiv ist. Das heißt, wir müssen nur irgend ein X finden, was auf Y abbildet, nicht genau das X, was wir uns gewählt hatten. Und ich präsentiere One-Way Funktionen, weil sie vor Aussetzung für fast jedes kryptografische Verfahren sind. Also aus fast jedem kryptografischen Verfahren kann man wieder eine One-Way Funktion bauen. Das heißt, wenn es One-Way Funktionen gibt, dann existiert quasi keine Kryptografie. Dementsprechend ist die entscheidende Frage, kann ich aus irgendwelchen komplexitätstheoretischen Eigenschaften beweisen, dass ich One-Way Funktionen habe? Beispielsweise kann ich beweisen, aus p und gleich np, dass One-Way Funktionen existieren. Und ja, die Antwort darauf ist, wir wissen es nicht so wirklich. Es gibt da ein Resultat von, oder ein Paper von Russell Impacliasso aus 1995, wo er fünf verschiedene Welten beschrieben hat. Das Ganze sind mögliche imaginäre Welten, in denen verschiedene Bedingungen gelten. Und die Idee ist letztendlich in einer von denen leben wir, wir haben doch keine Ahnung, in welcher. Das Ganze hat er an einem eine Art Spiel formuliert. Ihr habt potenziell schon mal von der Geschichte gehört, dass Gauss als kleiner Junge in der Schule die Aufgabe gestellt wurde, die Zahlen von 1 bis 100 zu addieren. Und Gauss war innerhalb von kurzer Zeit fertig, weil er einen Trick angewendet hat, den ihr wahrscheinlich alle kennt. Auf jeden Fall hat sich das dann in der Realität so weiterentwickelt, dass dieser Lehrer versucht hat, Gauss irgendwelche Probleme zu geben, die er nicht lösen kann. In der Realität ist er gescheitert. Hier gehen wir jetzt davon aus, dass dieser Lehrer zusätzlich die Informationen hat, die ein aktueller Komplexitätswissenschaftler hat und das er weiß, in welcher Welt er lebt. Und die erste Welt haben wir letztendlich schon betrachtet. Das ist einfach die Welt, wo P gleich NP gilt. Das heißt, jedes Problem, was sich irgendwie verifizieren kann und das ist für die Spiel natürlich wichtig, weil wenn der Lehrer Gauss ein Problem gibt und er nicht überprüfen kann, ob die Lösung überhaupt richtig ist, kann Gauss irgendwas sagen und in dieser Welt, dass jedes Problem, welches sich einfach verifizieren lässt, auch einfach zu lösen. Dementsprechend kann dieser Lehrer Professor Kruse nicht gewinnen und dementsprechend kann auch jede One-Way-Funktion invertiert werden. Die nächste Welt, die erste Welt, wo P ungleich NP gilt, ist Heuristika. In dieser Welt gibt es Sprachen, die in NP sind, aber nicht in P. Aber das Ganze gilt immer nur für den Worst Case. Das heißt, im Average Case ist das Problem immer einfach zu lösen. Es könnte beispielsweise eine Sprache sein, wo es immer nur für jede Länge N genau ein Wort gibt, was schwierig zu entscheiden ist und alle anderen Wörter sind einfach zu entscheiden. Das reicht dafür, dass dieses Problem nicht mehr in der Klasse P liegt. Aber da es zusätzlich auch noch sein kann, dass es schwierig ist, dieses Wort überhaupt zu finden, bedeutet das, dass es uns für Kryptografie nicht wirklich weiter hilft. Weil wir sind angewiesen darauf, schwierige Probleme generieren zu können. Ansonsten können wir keine Kies generieren, die uns dann irgendein Verschlüsselungsverfahren geben. Insofern in so einer Welt kann es allein diese schwierige Instanz zu lösen, ist bereits ein schwieriges Problem. Dementsprechend hilft es, wie der Verwonderer funktioniert. Noch hilft es für das Spiel zwischen Gauss und Prof. Kruse, da jetzt Prof. Kruse potenziell genauso lang braucht, um ein Problem zu generieren, wie Gauss braucht, um es zu lösen. Das nächste Land ist letztendlich die unschönste Welt, das ist Pesiland. Hier gibt es Probleme, die auch im Average Case schwierig sind. Wir haben aber keine One-Way-Funktion. Das führt dazu, dass wir zwar schwierige Probleme finden können, aber wir können keine gelösten schwierigen Probleme finden. Das heißt, wenn wir ein schwieriges Problem finden, ist das für uns genauso schwierig wie für den Angreifer, also für den normalen Benutzer, das ist genauso schwierig wie für den Angreifer. Damit kann zwar Prof. Kruse Probleme erzeugen, die auch für Gauss schwierig sind, aber er kann selbst keine Lösung zeigen. Gauss könnte sich hinstellen und sagen, es gibt keine Lösung, und Prof. Kruse könnte nicht sagen, doch hier ist die Lösung. Dementsprechend ist das letztendlich die schlechteste Welt von allen, da die Vorteile von P-Gleich-NP aus Wirtschaft, Medizin, sonst war es alle wegfallen, weil es gibt hier auch noch schwierige Probleme, aber wir können trotzdem keine Kryptografie bauen. Die letzten beiden Welten von Im Parc-Leaçot sind die Welten, in denen Kryptografie existieren. Das erste ist Minicrypt, da ist einfach die Annahme, es existieren One-Way-Funktionen. Und One-Way-Funktionen reichen bereits aus, um diverse kryptografische Prometive wie symmetrische Verschlüsselung oder sogar Signaturen zu bauen. Aber beispielsweise keine asymmetrische bzw. publicly Verschlüsselung. Hier kann jetzt Prof. Kruse endlich gewinnen, er kann sich einfach ein zufälliges X wählen und dann eine One-Way-Funktion darauf anwenden und Gauss die Aufgabe stellen, diese One-Way-Funktion zu invertieren. Und das kann Gauss nicht gewinnen. Als letzte Welt, nur noch mal der Vollständigkeit habe, gibt es dann noch Kryptomania, das ist einfach die Welt, wo quasi alle kryptografischen Prometive, die wir so heute kennen, funktionieren. Also zusätzlich zu One-Way-Funktionen auch Publiki-Kryptografie. Das ist so die Welt, in der wir erstmal ausgehen, dass wir leben, weil wir gehen davon aus, dass RSA schwierig ist oder selbst für den Quanten Computer existieren, auch irgendwelche asymmetrischen Verschlüsselungsverfahren existieren. Das heißt, zusammenfassend, es gibt diverse Hürden, die wir noch überwinden müssen, um aus P und NPD dann tatsächlich zeigen zu können, dass wir One-Way-Funktionen haben oder etwas Kryptografie überhaupt existiert. Das Ganze könnte sein, wenn man von jemanden beweist, aktuelle Resultate deuten aber eher auf das Gegenteil hin, dass es nicht möglich ist, nur aus der Annahme P und NPD zu beweisen, dass Kryptografie existiert. Ja, Fazit ist, wäre P gleich NPD, haben wir große Probleme. Hätten wir P ungleich NPD, hilft uns das auch nicht so viel weiter. Das heißt, es bleibt dabei, dass die Kryptografie letztendlich eine Wissenschaft mit viel Unwissen ist und immer davon ausgehen muss, dass diverse Eigenschaften existieren. Positiv ist vielleicht noch, dass nach einer aktuellen Umfrage 88 aller Forscher, die eine Umfrage teilgenommen haben und im Bereich der Informatik tätig sind, denken, dass P ungleich NPD ist. Wenn wir das Ganze zusätzlich noch einschränkt auf Experten, die im Bereich der Komplexitätstheorie arbeiten, sind das sogar 99%, aber wirklich sicher kann man sich natürlich nie sein. Damit bin ich fertig. Falls ihr Fragen habt, Niemand? Ich glaube, ich habe hier sogar ein Mikrofon. Du hast eben erwähnt, du hast im Quantencomputer erwähnt. Meine Frage wäre, kann man etwas darüber aufsagen, wie Quantencomputer sich zu diesen Komplexitätsklassen verhalten? Können Quantencomputer zum Beispiel allgemein NPD Probleme in P lösen oder so was? Man geht davon aus, das nicht. Es ist natürlich wieder mit viel Unsicherheit. Wenn P ungleich NPD ist, können Quantencomputer natürlich alle Probleme in NPD lösen. Aber man geht davon aus, dass das Ganze eine Klasse dazwischen ist. Also, wenn man sich das anguckt, gibt es dann noch zusätzlich ein Kreis um P, der aber immer noch in NPD enthalten ist. Wie müssten wir Kryptografie denken, wenn wir, sagen wir mal, einen gödelischen Unvollständigkeitsbeweis für gerade diese Probleme finden würden, dass es unentscheidbar ist, ob P ungleich NPD. Ich bin mir tatsächlich nicht ganz sicher, ob nicht ein Beweis dieser Art schon ein Beweis dafür wäre, dass P ungleich NPD ist, da, wie erwähnt, ein Beweis für P-Gleich NPD eigentlich immer möglich sein sollte, da das Ganze ja mit Beispiel funktionieren sollte. Also, ich meine, wenn P ungleich NPD ist, muss es für jeden NP-vollständigen Algorithmus, der irgendein Algorithmus geben, der in polynomialer Laufzeit läuft, also einfach ist. Und wenn wir zufällig auf die Entstoßen, haben wir ja bewiesen, dass P-Gleich NPD ist. Dadurch kann es eigentlich nur sein, dass das Ganze nicht entscheid- oder nicht beweisbar ist, wenn P ungleich NPD ist. Aber ich bin mir nicht ganz sicher. Die Frage natürlich ist, ob ein Beweis möglich ist, zu zeigen, dass das Ganze nicht beweisbar ist. Die stellt zwar eine Anfängerfrage. Also heißt das wir glauben im Moment eigentlich nur, dass Kryptografie sicher ist? Ja, es könnte jederzeit irgendjemand herkommen und sämtliche kryptografischen Probleme lösen. Bis auf die Information theoretisch. Da wissen wir, dass sie sicher sind. Gibt es eigentlich schon irgendwelche Hinweise in welcher von den Realitäten wir leben? Sind wir wirklich in Kryptomanien oder gibt es da genauso wenig Anhaltspunkte für P-Gleich NPD? Also wir können keine der Welten ausschließen. Alles andere ist wieder wie bei den Umfragen mit ob P-Gleich NPD ist. Letztendlich nur Spekulation. Sonst noch irgendwelche Fragen? Ah, es gibt sogar mehrere P-Groß. Die angenommen, wir sind in der Welt in der One-Wave Functions-Existieren. Bedeutet das in dieser Welt dann automatisch, also wann One-Wave Functions existieren, sehen wir dann bei P-Gleich NPD? Ja, wenn One-Wave Funktionen existieren, muss P-Gleich NPD sein. Sonst noch irgendwelche Fragen? Dann noch mal vielen Dank für eure Aufmerksamkeit. Ich hoffe, es hat euch irgendwie weiter geholfen.