 So verstehen, dass man noch mal das M dran schreibt und das bedeutet eben diese Moduloarithmetik. Und dann kann man noch minus von der Zahl machen, das ist also minus a mod m. Und da kann man eigentlich schon gleich sagen, was das dann einfach ist. Das ist nämlich in der Regel m minus a, außer a ist gleich 0 und dann kommt 0 raus. Ja, also genau. Ja, laden wir eben auch das Beispiel. Also zum Beispiel sowas, wenn hier a minus 3 ist und m ist 5. Und dann kam eben 5 minus 3 raus und das ist 2. Da hat man eigentlich schon das Beispiel. So, so jetzt nochmal ein paar Beispiele hier. Also 18 plus 8 modulo 24 ist 26 modulo 24 ist 2. 3 mal 4 modulo 7 ist 12 modulo 7 ist 5. Gut, es gelten jetzt die üblichen Rechenregeln, kann man mal sagen. Man kann addieren, subtrahieren, multiplizieren, wie immer. Man kann zum Beispiel beim addieren und beim multiplizieren die Klammern weglassen. Das ist das sogenannte Assoziativgesetz. Und es gilt auch das sogenannte Vertauschungs- oder Komutativgesetz. Also egal ob die 3, hier steht um die 4, hier oder in der anderen Reihenfolge zum Beispiel. So, machen wir nochmal ein anderes Beispiel. Wir rechnen modulo 12, 5 mal 7 modulo 12 ist 35 modulo 12 ist 11. Okay, das ist kein unproblematisch. Dann machen wir mal ein anderes Beispiel. 3 mal 4 modulo 12 ist 12 modulo 12 und das ist 0. Hier haben wir doch einen Unterschied zum normalen Rechnen. Denn normalerweise ist es so, es ist vollkommen ausgeschlossen, dass eine Zahl ungleich 0 multipliziert mit einer anderen Zahl, ungleich 0 ergibt. Und das ist hier eben gummerweise genau der Fall. 3 mal 4 ist eben dann jetzt hier, bei dieser Modulo-Arithmetic dann eben 0. Das ist nicht so toll. Also das ist ein Aspekt, den man vermeiden möchte. Also diese Regel möchte man halt auch noch haben zusätzlich zu denen, die man jetzt bisher schon hatte. Und ja, woran liegt das? Das liegt eben jetzt gerade daran, dass 3 und 4 halt gerade beide Teile von 12 sind und zusammen eben auf Modulo 12 ergeben. Wenn ich das vermeiden will, dann sollte ich eine Printzahl nehmen, weil dann kann das ja offensichtlich nicht auftreten. Müsste man jetzt noch beweisen, dass es dann wirklich nicht auftreten kann. Aber auf jeden Fall ist es sehr naheliegend. Es ist auf jeden Fall klar, wenn ich keine Printzahlen nehme, dann kann ich einfach Teile geschicken und dann multiplizieren. Und das reicht auch aus, Printzahlen zu nehmen. Also für diesen sogenannten Modulus M nehmen wir jetzt eine Printzahl und damit bezeichnen wir ihn auch entsprechend als Priemzahl. Also P. So, jetzt wird es noch ein bisschen komplizierter. Wir geben uns jetzt mal so eine Printzahl vor und eine andere positive Zahl, die kleiner ist als P und wir betrachten jetzt A hoch E Modulo P. So, dieses Exponentieren ist jetzt wirklich sehr wichtig für das, was folgt. Und hier heißt A die Basis und E der Exponent. Wir machen also ganz normal A hoch E, aber Mod P. Und wie, also wieder bei der Modulation und der Addition auch. Beispiel, sagen wir mal, P dieser Modulus ist 11 und A, die Basis ist 2. Und da schauen wir uns das einfach mal ganz explizit an. So, 2 hoch 0 ist einfach 1 und das bleibt doch dann dabei. Das ist einfach so. 2 hoch 1 ist 2. 2 hoch 2 ist 4. 2 hoch 3 ist 8. Okay, alles klar. Das war jetzt nicht so wahnsinnig schwierig. 2 hoch 4 ist normalerweise das folgende, also das ist 16 und das rechnen wir so aus, den wir 8 mal 2 nehmen. Und wenn ich 16 Modulo 11 nehme, dann muss ich halt 11 abziehen und kommt 5 raus. So, jetzt mache ich so, dass ich immer von dem, was ich schon habe, ausgehe und dann mit 2 multipliziere. So, also ich muss jetzt zum Beispiel die 5 mit 2 multiplizieren. Da kommt das nächste Ergebnis raus. Und jetzt muss ich die 10 mit 2 multiplizieren, kommt dann also 20 raus und dann muss ich dann die 11 wieder abziehen. Also kommt dann 9 raus. So, jetzt muss ich wieder die 9 mit 2 multiplizieren, kommt 18 raus und wieder die 11 abziehen, kommt also dann 7 raus und dann die 7 mal 2, kommt 14 raus, 11 abziehen, kommt 3 raus und dann nochmal hier die 6. So, und das sieht ja super aus. Also ich habe nämlich jetzt das folgende. Ich habe hier 10 Einträge. Ja, das geht von 0 bis 9 im Exponenten und ich habe hier genau alle Zahlen von 1 bis 10, aber in anderen Reihenfolge. So, und ich behaupte, das ist auch einigermaßen willkürlich, was hier steht oder zufällig, sagen wir mal, und nicht vorhersehbar. Hier oben natürlich nicht. So lange ich nicht Modulo rechne, ich bin auch ziemlich klar, was rauskommen muss. Aber ich stelle mir das einfach so vor, ich rechne Modulo, einen großen Modulus, nicht jetzt 11 oder so, sondern ganz was Richtiges. Und der Anfang am Anfang, das ist einfach sehr, sehr klein und dann kommt was raus, wenn ich hier in dem unteren Bereich bin, auf jeden Fall, was irgendwie zufällig aussieht. Das ist irgendwie so ein bisschen der Punkt. Ja, und es sollte irgendwie schwierig sein, das ist schon mal ein bisschen ein Vorgriff auf das Protokoll von der rechten Seite zur linken zu kommen. Also von der linken zur rechten ist einfach und von der rechten zur linken ist schwierig. So, also ich habe hier diese 10 Zahlen, andere Reihenfolge. Was kommt als Nächstes? Was ist zwar auch 10? Okay, füge ich jetzt ein und kann man jetzt raten, welche Zahl kommt jetzt als Nächstes? Ich habe jetzt einfach die hier alle zur Auswahl. Können ein davon muss es sein, weil es muss ja einfach 1 zwischen 9 und 10 rauskommen. Okay, jetzt geht oben wieder los. Und dann geht das hier wieder runter. Und das ist eben kein Zufall. Wenn ich unten angekommen bin, geht es um wieder los, geht es wieder runter. Und dann geht es um wieder los, geht es wieder runter. So, und dann geht es wieder von vorne los und so weiter. Also halten wir mal ein paar Eigenschaften hier fest, wie wir hier sehen. Das Ergebnis ist nie 0. Das liegt daran, weil ich einfach immer aufmultiziere, diese 2 ist nicht 0. Ich multipliziere auf 11, es ist eine Primzahl, kann ich 0 rauskommen. Das habe ich vorher so erklärt. So, wenn ich jetzt hier einfach die Exponenten von 0 bis 9 durchlaufen lasse, dann habe ich 2 auch 0 bis 2 auch 9. Das heißt, dass er durchläuft an das Ergebnis. Dieses Ergebnis durchläuft alle Zahlen von 1 bis 10. So, dann 2 hoch 10 modulo 11 ist 1. Das ist das da oben. Und dann geht es wieder von vorne los. Und entsprechend ist 2 hoch 20 modulo 11 ist auch 1 und so weiter. Das heißt, wenn ich 2 hoch A modulo 11 ausrechnen, dann ist das dasselbe, wie wenn ich 2 hoch 10 mal irgendwas plus A ausrechnen, wobei dieses irgendwas einfach auch wieder eine natürliche Zahl ist. Also zum Beispiel 2 hoch 4 modulo 11 ist sehr, wie 2 hoch 14 modulo 11 ist sehr, wie 2 hoch 24 modulo 11 ist sehr, wie 2 hoch 34 modulo 11. So, wenn ich mir das jetzt einfach mal überlege und von rechts nach links gehe, dann bedeutet das doch das folgende, nämlich ich kann im Exponenten modulo 10 rechnen. Hier steht genau auch das Gleiche, was ich gerade gesagt habe, nämlich insbesondere zum Beispiel 2 hoch 14 modulo 11 ist das Gleiche wie 2 hoch 4 modulo 11. Ich kann also im Exponenten modulo 10 rechnen. So, das sieht relativ harmlos aus, das ist sehr, sehr interessant. Ich rechne hier eigentlich modulo dieser Primzahl, modulo p. Und jetzt gehe ich zum Exponenten über und im Exponenten rechne ich modulo p minus 1. Also ich rechne normalerweise modulo p, das ist eine Primzahl, und dann rechne ich im Exponenten modulo p minus 1. Und p minus 1 ist garantiert keine Primzahl. Das kann jetzt jeder mal schnell beweisen. Also es gibt zwei Arten von Primzahl, die eine ist zwei und dann ist Exponent 1 und dann ist p minus 1 1 oder alle anderen sind ungerade und dann ist p minus 1 gerade und gerade zwei sind keine Primzahl. So, also ich halte das nochmal fest. 2 hoch e ist nie null. Wenn ich e vor null bis null laufen lasse, durchläuft 2 hoch e alle Zahlen von 1 vor 10, aber in irgendeiner anderen Reihenfolge. Wenn ich 2 hoch 10 modulo 11 ist 1, dann geht es wieder von vorne los. 2 hoch a modulo 11 ist dasselbe wie 2 hoch 10 mal n plus a modulo 11 und das bedeutet dann insbesondere, wenn ich 2 hoch e modulo 11 ausrechnen will, dann kann ich den Exponenten modulo 10 nennen. Und das ist irgendwie sozusagen eine gewisse Hinsicht allgemein richtig. In einer gewissen Hinsicht ist das allgemein richtig. Oder vielleicht genauer gesagt, man kann sowas immer erreichen. Und das möchte ich jetzt erläutern. So, da kommt ein anderer mal ins Spiel, der schon länger, der schon länger tot ist, genau. Gauss hier auf unserem alten 10 Mark Schein. Und genau. Also es geht eigentlich hier so in der gewissen Hinsicht los mit der Erscheine von, dem Buch von Gauss, Disquisitiones Arithmeticae, im Jahr 1801, ein grundlegendes Buch zur Zahlentheorie. So, und da macht Gauss das folgende. Wir nehmen mal eine beliebige Primzahl und so eine positive Zahl wie eben. Und wir machen dann dieses Exponentieren und modulo rechnen. Und es gibt auf jeden Fall immer eine Zahl, sodass hier eins rauskommt. Irgendwo geht es wieder von vorne los. Das ist jetzt nicht besonders tief. Und die kleinste solche Zahl nennen wir mal die Ordnung. Weil in wem, was ich gerade gesagt hatte, war das 10. Also p-1. So, und jetzt haben wir den folgenden Satz, der zum großen Teil auf Gauss zurückgeht, jedenfalls in seinem Kern, in dem schwierigsten Teil. Also erstens, die Zahlen von A hoch 0, modulo p bis A hoch, Ordnung von A minus 1, sind alle verschieden. Also erst mal werden alle möglichen verschiedenen Zahlen durchlaufen und dann geht es wieder von vorne los. So, das ist auch nicht so besonders schwierig. Und jetzt kommt die Kernaussage von Gauss. Es gibt eine so eine Zahl, so eine Basis, mit der Eigenschaft, dass die Ordnung genau p-1 ist. Und das ist das, was wir eben hatten. Das war, das ist genau so gewesen in dem Beispiel. Und das bedeutet, dass A hoch 0 modulo p bis A hoch p-2 modulo p alle Zahlen von 1 bis p-1 durchläuft. Das sind genau p-1 Zahlen, und das ist das, was wir eben hatten. Das war eben, eben war das 2 hoch 0 bis 2 hoch 9. Das sind genau diese 10 Zahlen gewesen. Und bei A hoch p-1 geht es dann wieder von vorne los. Das war genau das, was wir eben in dem Beispiel hatten. Und das gibt es. Und diese, ja, es gibt diese ausgewählte Basis. So was gibt es immer. Und allgemein kann man noch beweisen, dass die Ordnung immer ein Teil davon p-1 ist. Das heißt, zum Beispiel, wenn der Modulus 11 ist, dann ist die Ordnung, ja, zum Beispiel, 10. Das hatten wir eben in den Beispielen. Oder 5 oder 2 oder 1. Und bei der Zahl kann ich vorkommen. Gut, alles klar. Gut, das merken wir uns jetzt mal. Gut, dann diskutieren wir mal, was der Logarithmus ist. Okay, das habe ich jetzt hingeschrieben. Wenn wir immer eine positive Zahl haben und, ja, dann nehmen wir so eine nicht negative Zahl, dann können wir neben a auch e ist gleich b. Dann können wir das sozusagen umdrehen. Dann heißt e der Logarithmus von a zur Basis b. Und okay, hier ist schon ein Fehler. Das ist der Logarithmus von b zur Basis a. Tut mir leid. Das kommt auch ein bisschen daher, dass man b immer schon gerne, als die Basis nimmt. Aber in dem kraftischen Anwendung hätte ich gerne a als Basis. Deshalb habe ich jetzt hier den Fehler gemacht. Gut, aber die Notation ist trotzdem richtig. Also so, das ist richtig. Das muss vertauscht werden, aber das ist richtig. So, der Logarithmus ist eindeutig bestimmt jetzt durch a und b. Das ist jetzt dieser exponent, ziemlich offensichtlich. Gut, und dann haben wir noch die ganz normale Regel für den Logarithmus für hier diese drei Zahlen a, b und c. Das müssen wir uns mal merken. Gut, und das machen wir jetzt sozusagen zusammen mit dem Modulo-Rechnung. Also wir machen jetzt so eine Geschichte, die Primzahl, die Basis. Und dann nehmen wir mal an, wir haben eine Zahl b, die wir so schreiben können, auch e Modulo p. Und dann können wir sagen, dass der exponent, den nennen wir jetzt den Diskretenlogarithmus von b zur Basis a. Und das ist die Bezeichnung. Also so sieht es aus, das ist korrekt. Die kleinste solche Zahl, dieser kleinste solche exponent, das ist der Diskretenlogarithmus. Was bedeutet hier eigentlich Diskret? Ja, was bedeutet eigentlich Diskret? Heißt das so was wie verschwiegen oder so? Nein, das heißt endlich. Also oder unzusammenhängend. Also das ist mit dem Wort Diskret gemeint. Das ist keine Anspielung auf irgendwas, was man verschlüsseln oder so zu tun hat. Gut. Machen wir ein Beispiel, das ist jetzt außer der Welle. 2 hoch 8 Modulo 11 ist 3. Und hier ist dann 8 Diskretenlogarithmus von 3 zur Basis 2. Für diesen festen Modulus, den Modulus müssen wir uns merken. Gut. Das Diskretenlogarithmus Problem, das ist das folgende algorithmische Problem, gegeben so eine Primzahl, eine Basis und eine weitere Zahl, die man eben so schreiben kann, dass wir überhaupt so ein Diskretenlogarithmus haben, den eben berechnen. Das ist eben das Problem. Das ist ein interessantes algorithmisches Problem und dieses Schlüsselaustauschverfahren von Diffie und Helmen beruht auf diesen Problemen. Also die Schwierigkeit von diesen Verfahren oder die Sicherheit von den Verfahren hängt entscheidend davon ab, wie schwierig dieses Problem hier ist. So, und das machen wir jetzt. Jetzt kommt die größte Innovation dieses Vortrages und die lautet wie folgt, wir machen jetzt nicht Alice und Bob, sondern wir machen jetzt, das ist meine Innovation, wir machen jetzt Wit und Martin. So, also Wit und Martin einigen sich in der Öffentlichkeit auf eine große Primzahl und so eine Basis und dann wählt jeder von beiden zufällig, möglichst zufällig, ein X und ein Y und dann wird das hier verschickt und dann haben die beiden eine gemeinsame Information und ob es ein Geheimnis ist, ja kurz kommt drauf an, ob man das ausrechnen kann. Und zwar wie folgt, genau, also Wit hat ja Y, Groß Y, weil sie mir gerade geschickt worden ist und er hat ja klein X, weil er es ja selber gewählt hat. Dann hat er noch P, weil er sowieso öffentlich ist. Ja, und dann kann er das so ausrechnen. Martin kann das ausrechnen und das Ergebnis ist das gleiche. Das Ergebnis ist A hoch X Y modulo P. Wenn man es einfach mal auflöst, wenn ich Groß X hoch klein Y nehmen, ist das A hoch X Y. Das ist das gemeinsame Geheimnis. Genauer gesagt, das ist jetzt überhaupt erstmal die gemeinsame Information, denn ob es ein Geheimnis ist, wie ich schon sage, das hängt davon ab, ob man es berechnen kann. Wenn das jetzt jemand belauscht, was müsste er jetzt machen, um dieses sogenannte, sagen wir mal, angebliche Geheimnis hier zu berechnen? Also erkennt P, erkennt A, erkennt Groß X, erkennt Groß Y und er soll das hier berechnen. Das ist einfach die Aufgabe. Also der Lauscher hier, der kennt jetzt die Primzahl, die Basis, Groß X, Groß Y und soll eben das berechnen. Ja, das ist ein neues Problem gewesen, das hat dann einen Namen bekommen, und zwar die verheilenden Probleme. Ganz einfach. Das ist das sogenannte die verheilenden Problem. So, was hat das mit einem diskreten Logarithmus zu tun? Der Punkt ist, der folgende. Wenn man das kleine X berechnen kann, dann kann man auch Groß Y hoch Klein X machen, und dann kommt das raus. Und das kleine X zu berechnen, bedeutet gerade hier einen diskreten Logarithmus zu berechnen. Wir haben ja die Basis, das Ergebnis und den Modulos. Und den Exponenten wollen wir eben kurz finden. Also wenn wir das diskreten Logarithmus-Problem in diesem Fall lösen können, dann haben die beiden kein Geheimnis. So, genau. Also hängt die Sicherheit dieses Protokolls in wesentlicher Weise von der Schwierigkeit des Diskreten Logarithmus-Problems ab. Es ist noch eine andere Sache, ob es vielleicht leichter ist, das Protokoll zu lösen. Das könnte ja auch sein. Man weiß allerdings keine Methode, das Diffy-Helmen-Problem zu lösen ohne Diskreten Logarithmus zu berechnen. Man vermutet, dass die beiden Probleme schwer sind. Gleich schwer sind. Jetzt möchte ich aber noch was anderes sagen. Ich habe nämlich gerade gesagt, die Sicherheit dieses Protokolls hängt von der Schwierigkeit dieses Diffy-Helmen-Problems ab. Und das stimmt in einer gewissen Weise. In einer gewissen Weise stimmt es auch irgendwie wieder nicht. Es stimmt, dass wenn der Lauscher dieses Problem lösen kann, dann ist das Protokoll gebrochen. Das ist aber keine genau dann-wenn-Beziehung. Im Sinne von, es ist unbedingt notwendig, dass ein Angreifer das macht, um das Protokoll zu brechen. Es gibt nämlich noch andere Methoden. Wenn es ein Lauscher ist, dann stimmt das, was ich gesagt habe. Aber wir können ja nicht davon ausgehen, dass sozusagen ein böser Mensch unbedingt nur ein Lauscher ist. Er kann ja auch noch mehr machen. Und was hier jetzt relevant ist, ich stelle mich jetzt einfach mal in die Mitte, noch wenn ich da genau in den Beamer gucke, ist, ich kann jetzt einen sogenannten Man in the Middle-Angriff machen. Ich sage einfach zu Witt, hallo, ich bin Martin. Und zu Martin sage ich hallo, ich bin Witt. Und ich verbeeinbare mit beiden einen Schlüssel und dann habe ich mit beiden einen Geheimnis. Und dann kommt die verschlüsselte Botschaft an von Witt zu Martin. Ich fange die ab, ich entschlüssel sie, lese sie, verschlüssel sie wieder und schick sie ab. Und gut, und dann weiß ich auch alles. Und die merken es nicht. Das ist eigentlich so offensichtlich. Das wurde auch gerade in ihrem Workshop sogar besprochen. Also das Problem der Authentisierung, das ist eigentlich vollkommen klar. Wenn sich einfach zwei Personen nicht ins Auge sehen, ist es auch irgendwie klar, dass sie nicht wissen, wegen sie reden. Das ist eigentlich einfach selbst evident. Aber man muss es trotzdem mal gesagt haben. Also das Protokoll ist als solches erstmal vollkommen unsicher, weil die Authentisierung fehlt. Es gibt diesen sogenannten Man in the Middle-Angriff. Die beiden Personen müssen sich gegenseitig ausweisen, damit das Problem bewusst werden kann. Oder sie machen das Auge zu Auge, aber das wäre dann das Protokoll irgendwie sinnlos. Und also man muss dann also die Authentisierung in dieses Protokoll einfügen. Und ja, wenn das dann gemacht ist, dann kann man in der Tat sagen, dass die Sicherheit wirklich in einer strengen Art und Weise auf dem Diffie-Helmen-Problem beruht. Das heißt, das Protokoll ist genau dann sicher in einer explizit spezifizierten Art und Weise, wenn das Diffie-Helmen-Problem schwer ist. Und das kann man mathematisch exakt definieren und beweisen. Und man vermutet jetzt weiterhin, dass die Schwierigkeit des Diffie-Helmen-Problems genauso hoch ist wie die Schwierigkeit des Diskretino-Rhythmus-Problems. Und wenn man das dann alles gemacht hat, dann kann man sagen, ja, wohl, wir haben hier ein Protokoll, dessen Schwierigkeit beruht auf der Schwierigkeit des Diskretino-Rhythmus-Problems oder die Sicherheit des Protokolls beruht auf der Schwierigkeit des Diskretino-Rhythmus-Problems. Gut, und da müssen wir noch die Parameter geeignet werden. Ja, jetzt kommt, der nächste Teil ist Angriffe. Wir werden jetzt Angriffe diskutieren auf dieses Protokoll und ausgehend von den Angriffen werden wir dann alternativen, leichte Alternativen suchen und das würde uns dann sehr natürlich zu ellipschen Kurven führen. Es gibt zwei Arten von Angriffen, grob betrachtet, kann man sagen. Die erste Art von Angriff ist die sogenannte Kollisionsmethode. Die Idee ist, man betrachtet sozusagen zufällige Potenzen, auch i mod p und, ja, es ist nicht ganz eine Potenz, auch j mal b mod p. Und diese werden abgespeichert und alle mit allen verglichen. Das ist die Idee. Okay. Okay. Ist das das gleiche wie Bootforce? Ist das das gleiche wie Bootforce? Nein. Ist nicht das gleich wie Bootforce. Okay, da komme ich gleich drauf. Also, ich speichere die ab, vergleiche die alle miteinander. Wie das geht, wie das effizient geht, ist noch eine andere Sache, aber kann man mit einem Sortieralgorithmus vielleicht machen oder so. Gibt es noch mehr Ideen, werde ich auch gleich darauf eingehen, aber mir so als erstes, wir gehen mal von aus, dass dieser Vergleich irgendwie möglich ist. Das ist jetzt nicht der entscheidende Punkt. Wir sind ja nur bei der Idee. Also, nehmen wir mal, wir haben so eine sogenannte Kollision, die exponenten miteinander vergleichen. Das heißt, logaritmieren. Wir logaritmieren zur Basis A und haben dann hier den Logarithmus, ist i, der Logarithmus hier ist j. Aus dem Mal wird plus. Deshalb habe ich Ihnen das eben hingeschrieben, dafür, dass wir das alles nochmal merken. Wir haben hier den Logarithmus von b zur Basis A. Das ist das, was gesucht ist. Und wir müssen hier modulo denjenigen nehmen, wo wir sozusagen diese Rückkehreigenschaft haben. Also modulo eben diese Ordnung von A, dann können wir davon ausgehen, dass die p minus eins ist, aber die kann eben auch kleiner sein. Und das ist eben nochmal die Eigenschaft, ist eben, dass A hoch die Ordnung von modulo p ist eins. Und da muss halt hier modulo eben genau dem hier nehmen, damit man diese Gleichheit hier eben hat. So, okay, und lösen. Und wir haben dann einfach auf die andere Seite bringen und haben jetzt diese Lösung. So, okay, also das ist eigentlich irgendwie, ja, vielleicht relativ klar. Und die Frage ist nur, warum machen wir das? Und wie viele Zahlen muss man hier, sozusagen, ja, wie viele Exponenten muss man hier nehmen? Wie viele Zahlen muss man hier abspeichern? Und mit großer Wahrscheinlichkeit so eine sogenannte Kollision hier zu finden. Deshalb habe ich eben gefragt, ist das so wie Bootforce? Ist das so was wie, ja, wir müssen alles was Mögliches durchprobieren, alle Exponenten durchprobieren, vielleicht so, also die, nach der Hälfte vielleicht, mal ein bisschen mehr, ein bisschen weniger vielleicht, so. Die Antwort ist, nein, man muss nur ungefähr die Wurzeln machen, nur die Wurzeln. Okay, das werde ich gleich nochmal kurz erläutern, was ich auch noch sagen möchte, ist, man muss diese Geschichte mit dem Abspeichern hier gar nicht machen. Das habe ich jetzt nur gemacht, um das ein bisschen einfacher zu machen. Man muss eigentlich immer nur eine bestimmte Zahl abspeichern und immer, wenn man eine neue Potenz berechnet hat, immer nur mit einem Vorgänger vergleichen. Oder es gibt auch Varianten, wo es ein ganz paar Vorgänger sind. Aber der Speicheraufwand ist minimal und das ist nicht das Problem mit dem Algorithmus. Wie das geht, werde ich jetzt nicht darauf eingehen. Das ist jetzt hier nicht das entscheidende Vortrag. Gut, jetzt werde ich mal motivieren, warum da so eine interessant gute Laufzeit rauskommt, das mit der Wurzel aus der Ordnung. Okay, also 23 Leute, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 23, 25, ungefähr 35. So, 35 Leute, okay, ich habe hier gesagt 23. 23 Leute in einem Raum, was ist die Wahrscheinlichkeit? Dass zwei davon am selben Tag Geburtstag haben? Was ist die Wahrscheinlichkeit, dass zwei von ihnen am selben Tag Geburtstag haben? Soll ich wetten, zwei von ihnen haben den selben am selben Tag Geburtstag oder soll ich dagegen wetten? Wo sind die Chancen höher? Ich nenne keinen Tag, nein. Ich sage nur, zwei haben am selben Tag Geburtstag, ist größer als 50%, ist extrem hoch. Das ist die Kollision. Die Kollision besteht darin, dass zwei Leute am selben Tag Geburtstag haben. Das ist dieselbe Idee. Warum ist das so? Ich habe den Tat nicht genannt. Es kann man sich eigentlich ganz leicht überlegen, wenn die Person einfach mal aufteilt. Die ersten 12 Personen, die mache ich keine Betrachtung erst mal. Gut. Was erst mal passieren kann, zwei von denen haben am selben Tag Geburtstag oder nicht. Wenn zwei von 12 am selben Tag Geburtstag haben, habe ich schon gewonnen. Wenn nicht, okay. Dann haben die eben an allen verschiedenen Tagen Geburtstag. Dann habe ich noch 11 Personen zur Auswahl. Bei jeder einzelnen Person habe ich die Wahrscheinlichkeit von 31, dass ich den einen der vorgegebenen Geburtstages finde. Bei jeder und ich habe aber noch 11 Personen zur Auswahl. Bei jeder 31. Das ist schon ziemlich viel. Und die Lösungen sind noch ein bisschen besser. Da habe ich diese Aufteilung gemacht, die nicht ganz optimal ist. Okay, also ist extrem hoch diese Wahrscheinlichkeit und besser funktioniert. Punkt. Okay. Jetzt kommen wir zum nächsten. Ich habe gesagt, es gibt im Wesentlichen zwei Angriffsarten. Das eine ist die Kollisionsmethode und die andere Methode ist die sogenannte Relationmethode. Und das ist das Interessante. Das ist das, was jetzt hier wirklich interessant ist. Gut, die Relationmethode ist vielleicht auf den ersten Blick noch ein bisschen schwieriger. Deshalb werde ich noch ein bisschen genauer erklären. Wir geben uns mal so eine Primzahl vor und dann noch so eine andere Zeit, die jetzt als Basis fungiert. Und die Ordnung davon ist genau P-1. Das heißt, wenn ich damit durch die Exponenten gehe, dann wird jede Zahl, die kleiner ist, als P-1 dann getroffen. So wie, als ich das gemacht habe mit Modulo 11, wo auch wirklich jede Zahl getroffen wurde. Jede Zahl zwischen 1 und 10 wurde getroffen. So mache ich sie auch. Das heißt, insbesondere jede positive Zahl, kleiner gleich, minus 1, kann ich schreiben als A hoch irgendwas Modulo P. Also sie hat einen diskreten Logarithmus. Jede Zahl hat einen diskreten Logarithmus. So. Ich habe die Logarithmen zu dieser vorgegebenen Basis berechnen. Zu dieser Basis, aber es funktioniert dann auch mit jeder anderen. Wenn man es zu einer kann, dann kann man es auch zu jeder. So, nehmen wir mal an, wir haben die folgende Tabelle. Wir haben eine Tabelle, die sozusagen für kleine Primzahlen, die Logarithmen enthält. Den Logarithmus zu 2, zu 3, zu 5, zu 7 bis irgendwo hin. Wenn ich jetzt sage Logarithmus, dann nehme ich das diskreten Logarithmus. Also nehmen wir es mal an, bis irgendwo hin, bis zu irgendeiner Schranke. Für alle Primzahlen, die unterhalb von einer vorgegebenen Schranke sind. Ich behaupte, diese Tabelle ist nützlich, wenn ich einen beliebigen diskreten Logarithmus berechnen will. Die ist so nützlich, wie eine normale Logarithmentafel nützlich ist. Wir sind jetzt alle im elektronischen Zeitalter, da benutzt man relativ wenig Logarithmentafeln, aber das hat man ja immerhin mal gemacht, und die waren ja auch nützlich. Gut, und jetzt erkläre ich, warum das so ist. Wenn ich jetzt einen beliebigen diskreten Logarithmus berechnen will, dann mache ich einfach das folgende. Okay, ich gucke erst mal nach, ob b eine Primzahl ist, die kleiner ist als meine Schranke, und wenn das der Fall ist, gucke ich meine Tabelle, dann bin ich fertig. Die Schranke sollte aber so mittel sein, nicht besonders groß, nein, die Wahrscheinlichkeit, dass das der Fall ist, ist nicht besonders hoch. Da machen wir mal was anderes. Wir modifizieren, wir betrachten nicht b, sondern a hoch i mal b mod p. Und das gucken wir mal in der Tabelle nach. Das machen wir so lange, bis wir sozusagen eine Lösung finden. Und dann können wir auch ein bisschen verbessern. Das muss jetzt nicht eine Primzahl sein, sondern das muss nur faktorisieren, wobei das eben alles Primzahlen sind, die in meiner Tabelle vorkommen. So, wenn ich das nämlich habe, dann kann ich hier wieder logaritmieren, dann kommt das i runter, dann kommt hier der Logarithmus, dann kann ich hier dann entsprechend auch die Logarithmen hinschreiben, mit der Addition hier oben ist die Multiplikation. Das Ganze muss ich modulo rechnen, und das ist in dem Fall modulo p-1, weil die Ordnung, modulo d ich normalerweise rechnen muss, ist in dem Fall p-1. So, also habe ich hier diese schöne Gleichung. Also, wenn ich diese Tabelle habe, und wenn ich hier also das hier irgendwie durchprobiere, bis ich sowas habe, dann habe ich diese schöne Gleichung. Und dann kann ich umstellen, kann ich einfach das i auf die andere Seite bringen, und dann habe ich die Lösung. Es gibt ja auch vielleicht das kleine Problem mit dem Faktorisieren. Also, ich mache a hoch i mal b mod p, und das muss jetzt irgendwie faktorisiert werden, um das dann nachzugucken. Das klingt auch wie ein schwieriges Problem. Faktorisieren ist auch ein schwieriges Problem. Aber wir stellen uns mal auf den Standpunkt, dass in der Tabelle nicht so wahnsinnig große Primzahlen durchvorkommen, und deshalb mache ich das einfach sozusagen mit Bootforce. Ich gucke einfach mal, ob das durch 2 Teilbar ist, wenn ja, dann teile ich durch 2, und dann gucke ich nochmal, ob es durch 2 Teilbar ist und so weiter, bis es nicht mehr ein Fall ist, dann teile ich durch 3, dann teile ich durch 5, dann teile ich durch 7 und so weiter, bis ich das alles durchprobiert habe. Also, das Faktorisieren ist jetzt nicht das Thema, dafür brauchen wir keinen unglaublich effizienten Algorithmen, also, das heißt, ich muss hier eigentlich einfach nur sozusagen ausprobieren, und irgendwann habe ich das. Und natürlich ist klar, je größer die Tabelle, ist es so besser, denn wenn die Tabelle größer ist, ist die Wahrscheinlichkeit, dass das hier passiert, einfach größer. Andererseits, muss ich die Tabelle ja erstmal generieren, ja, und das sollte vielleicht so sein, je größer die Tabelle ist, desto schwieriger ist es, so eine Tabelle erstmal zu generieren. Aber die Frage ist, wie generieren wir überhaupt erstmal so eine Tabelle? Das ist erstmal überhaupt die Frage. Ja, die Idee ist wieder mit good force. Ja, aber das ist nicht so eine gute Idee. Wie berechnen wir eine solche Tabelle? Also, wir geben uns eine Prim-Zafond-Modulos und diese Schranke, und wir sagen jetzt, okay, zu allen Prim-Zahlen, unterhalb von dieser Schranke wollen wir, den diskreten Algorithmus kennen. Wie geht das? Und da haben wir eine sehr schöne Methode von einer Mathematiker, der heißt Maurice Kreitschik, und das ist auch schon sehr lange her. Das ist auch schon fast 100 Jahre her. Dass er diese Methode aufgestellt hat. Das ist übrigens älter als die Kollisionsmethode und war nicht dafür gedacht, kryptografische Anwendungen zu haben. Interessant. Also, die Antwort da auf die Frage, wie man so eine Tabelle macht, ist grob gesagt so ähnlich, aber ein bisschen schwieriger. Und zwar betrachten wir jetzt auch i mod p für i gleich 1, 2, 3 und so weiter. Das ist einfach durch. Ein bisschen geschickter wäre, das zufällig zu wählen. Und dann machen wir das selber wie vorher. Wir betrachten auch i mod p und versuchen das zu fakturisieren, in derselben Art und Weise, wie wir das vorher gemacht haben. Genau dieselbe Fragestellung. Und wenn wir das haben, dann wird wieder logarithmiert. Das ist sehr, sehr ähnlich wie das, was wir vorherhaben. Und dann haben wir eine Information. Wir kennen nicht diese Zahl. Die nächste, die nächste, die nächste, die nächste. Wir kennen die alle nicht, aber wir wissen, die Summe ist i. Und das ist eine Information. Das ist eine Information. Und die Idee ist sozusagen, hier stehen alles Unbekannte. Und wenn wir ungefähr so viele Informationen haben wie Unbekannte, dann können wir das auflösen. Das werde ich jetzt erläutern. Ja, also wir speichern das ab. Und die Idee ist, wenn ich ungefähr so viele Sachen abgespeichert habe, wie ich hier Unbekannte habe, weil die Dinger sind wirklich unbekannt, diese logarithmen, dann kann ich das lösen. Und das werde ich jetzt erläutern an einem Beispiel. Beispiel. P ist 83. Ich habe jetzt hier große Buchstaben genommen. A ist 2. Das ist also das Rehebe wie das kleine A. Die Schranke ist 7 und die Primzahlen sind 2, 3, 5 und 7. Das sind die Primzahlen unterhalb von dieser Schranke. Ich hätte auch sagen können, die Schranke ist 10. Dann wären die Primzahlen immer noch die gleichen. Also, ich will eine Tabelle machen für diesen Modellos mit diesen 4 Primzahlen. Ist natürlich jetzt nicht wahnsinnig schwierig. Ich könnte es auch einfach ausprobieren. Ich mache das jetzt aber mit der Methode. Es war auch 1 Modellos, 83 ist 2. Es war auch 2 und so weiter. Es gibt mir keine neuen wirklich wahnsinnig tollen Informationen. Ich muss schon mal irgendwie mal Modellos rechnen. Und das erste Mal, wo das wirklich passiert, ist 2 hoch 7, Modellos 83 ist 45. Und das kann ich so fakturisieren. Und das ist gut. Das ist meine erste Information. Dann 2 hoch 8. Ey, ist auch super. Da habe ich ein Glückstreffer gemacht. Das heißt, der Logarithmus von 7 zur Bade 2 ist 8 fertig. 2 hoch 9 ist nichts Neues. Weil 2 hoch 9 ist irgendwie sozusagen ein triviales Ergebnis. Mathematiker sagen immer so gerne trivial. Ist trivial zusammengesetzt aus dem 1. und dem 3. Wenn ich die einfach multipliziere, kommt das raus. Und das ist nicht gut genug. Ich will wirklich was substantiell Neues. Nicht was, was ich auf so eine einfache Automatik halten kann. Das ist keine neue Information. 2 hoch 10 ist gleiche. 2 hoch 11, oh, wie er ist gleiche. 2 hoch 12, ja, Modellos 83, 29 ist nicht in der Tabelle. Wenn ich mich dafür interessieren würde, wäre das schön. Aber ist nicht mein Ziel. Dann wieder keine neue Information. Das ist zusammengesetzt aus dem 1. Das ist auch nicht so toll, weil 11 ist nicht in meiner Tabelle. Bringt auch nichts. Das ist auch nicht so toll. Das ist dieselbe Information wie die hier. 2 hoch 8, ja, 7. 2 hoch 16, na ja, 7 Quadrat. Auch nicht so toll. 2 hoch 17, Modellos 83 ist 15. Da habe ich jetzt aber endlich mal ein bisschen Glück gehabt. Das ist nur neue Information. Und jetzt wird logarithmiert. Aber nur die wichtigen Sachen. Das heißt, das hier, das, das und das. Das hier und das hier liefert mir sofort das Ergebnis. Der Logarithmus von 2 zur Basis 2 ist 1. Da hätte ich auch gar keine Rechnung machen wollen. Der Logarithmus von 7 zur Basis 2 ist 8. Und hier habe ich eine Information und hier habe ich eine Information. Und es ist eben a priori nicht klar, wie der Logarithmus von 3 und wie der von 5 ist. Aber aus diesen beiden Informationen kann ich das erhalten. So. Um noch was zu erläutern, werde ich jetzt auch noch gleich das hier logarithmieren. Also, wir logarithmieren alles, was hier steht. Zum Beispiel. Das ist vielleicht das Interessante. Das ist vielleicht zum Beispiel. Das hier logarithmiert zur Basis 2 ist 7 auf der einen Seite. Und auf der anderen Seite habe ich 2 mal den Logarithmus von 3 plus den Logarithmus von 5. Okay. Das führt auf die folgenden Gleichungen. Das ist genau die Zeile, die ich eben gesagt habe. 2 mal den Logarithmus von 3 plus 5 ist 7. Plus mit Moduloarithmetik. Und Modulo, wir rechnen nicht Modulo p, wir rechnen Modulo p minus 1. Deshalb habe ich das eben auch so betont. Weil wir nämlich im Exponenten rechnen. Mit Exponent, im Exponenten rechnen wir immer Modulo p minus 1. Das ist nicht so leicht. Das ist wirklich nicht leicht. Dass man hier nicht 83 hinschreibt, sondern 82. Also gut, man kann sich das vielleicht merken, aber es ist subtil. Und ja, und man kann lange darüber reflektieren. So, okay, also wir haben jetzt diese Gleichungen hier. Hier steht sofort das Ergebnis, hier steht sofort das Ergebnis. Das hier ist das, was ich vorher gesagt habe, das liefert keine neuen Informationen. Und das sehen wir jetzt hier auch nochmal. Dass diese Zeile hier aus der Addition von der und der Zeile von der ersten und der dritten Zeile entsteht. Wer ein bisschen was weiß über lineare Kleinungssysteme, das ist keine neue Information. Das ist keine neue Information. Wir haben hier ein sogenanntes lineares Kleinungssystem Modulo 82. Und was wir machen wollen, ist, wir wollen jetzt hier nochmal das hier berechnen, also Logritmus von 3 und Logritmus von 5. Und das machen wir so, wie man das so was macht. Wir müssen diese Zeilen hier geschickt addieren oder subtrahieren. Ja, und wir machen das zum Beispiel, wenn wir den Logritmus von 3 berechnen wollen, dann nehmen wir hier diese Zeile hier und ziehen die ab. Okay, also zweite minus fünfte ist Logritmus von 3 ist 7 minus 17, Modulo 82. So, 7 minus 17 ist minus 10 und das Modulo 82 ist 72. Wenn ich minus 10 durch 82 teile, ist der Rest 72. Das hatte ich am Anfang erklärt, weil der Rest ist immer positiv. So, wie kriegen wir den Logritmus von 5 raus? Ja, da müssen wir vielleicht das Folgen machen. Wir nehmen zweimal die zweite Zeile. Nein, falsch. Wir nehmen die zweite Zeile und ziehen die fünfte zweimal ab. Dann haben wir hier zweimal den Logritmus, minus zweimal den Logritmus. Ah, da steht hier was Negatives. Da steht der Logritmus von 5 minus zweimal den Logritmus von 5. Da steht das Negatives. Da machen wir es doch lieber umgekehrt. Zweimal die fünfte Zeile minus die zweite Zeile. Okay, dann fällt das minus das weg und dann wieder zweimal das minus das ist einmal das. Zweimal die fünfte Zeile minus die zweite Zeile ist der Logritmus von 5 ist gleich. Zweimal 17 minus 7, Modulo 82. Okay, das ist nicht schwierig. Kommt einfach 27 raus. Muss man nicht Modulo rechnen. Gut, jetzt ist alles fertig. Wir haben den Logritmus von 2, wir haben den Logritmus von 7, wir haben den Logritmus von 3 und wir haben den von 5. Also wir haben alle. Lass mal das Ziel. Fertig. Ich werde das jetzt nochmal ein bisschen systematscher darstellen, wie man das gerne aufschreibt. Auch für ein Algorithmus. Das ist alles ziemlich unübersichtlich. Wie würde man das abspeichern? Da muss man eine schöne Tabelle machen. Man kann auch sagen eine Matrix. Und zwar als Information schreibe ich oben die Primzahl hin. 2, 3, 5 und 7. Und hier sind die Koeffizienten, die vor den Logritmen stehen. Hier steht einmal den Logritmus von 2. Ja, und dann ist hier ein 1. Und hier steht zweimal den Logritmus von 3. Plus einmal den Logritmus von 5 ist 7. Einmal den Logritmus von 7 ist 8. Das ist hier die überflüssige Zeile. Das ist die Addition von der Zeile und der Zeile. Und dann noch die letzte Zeile. Und die kann man dann auch addieren und subtrahieren, so wie vorher. Das ist genau dieselbe Operation, wie die, die wir vorher gemacht haben. Wie zum Beispiel das hier, minus das, ist diese Zeile. Und das ist dann das Ergebnis. Oder zweimal diese Zeile, minus diese Zeile. Dann ist das das Ergebnis. Das, was schon mal gesehen hat, sollte, das sollte das nicht neu sein. Das nennt man die nähere Algebra, Matrizenrechnung. Ich glaube, dass das viele Leute mehr oder weniger kennen. Der einzige Problem ist, wir rechnen hier in Modulo 82. Okay. Gut. Also, hier sind dann die Logritmen. Gut. Okay. So, schauen wir mal auf die Uhrzeit. Okay. Jetzt vergleichen wir mal die beiden Methoden. Wir haben die Kollisionsmethode. Und wir haben die andere, die Relationmethode. Und die Komplexität oder Laubzeit von der Kollisionsmethode wird von der Ordnung bestimmt. Das hat sich eben auch gesagt. Also, was für Exponenten sind hier überhaupt relevant? Also, wie groß kann der Logritm uns überhaupt werden? Und das bestimmt die Komplexität bei dieser Methode, Stichwort Geburtstagsparadox. So. Die Abhängigkeit von P ist minimal. Wir brauchen P nur zum Rechnen. Wir müssen also Modulo P rechnen. Das ist aber alles. Und die Komplexität wird wirklich von dieser Ordnung bestimmt. Und ja, ich hatte sie auch schon genannt. Im Wesentlichen, das war die Wurzel aus dieser Ordnung. Und man kann das noch verfeinern. Man kann auch noch sagen, die Komplexität wird vom größten Primteil eine Ordnung bestimmt. Das heißt, wenn ich möglichst sicher gehen will, dann sollte diese Ordnung eine Primzahl sein, und zwar eine große. Außerdem ist der Speicherverbrauch minimal und die Methode ist sehr gut parallelisierbar. Das hatte ich eben schon angedeutet. So, das ist die erste Methode. Und jetzt kommt die zweite. Es sieht sehr anders aus. Wir kommen einfach vor, kommen andere Ergebnisse, die von anderen Parametern abhängen. Die Komplexität und Laubzeit hängt hier ausschließlich von P ab. In Abhängigkeit von P ist die Methode aber überraschend performant. Und die Methode kann auch noch zuerst sich sehr stark verbessert werden. Und es gibt einen ständigen Fortschritt im Gegensatz zur Kollisionsmethode, die mehr oder weniger stark ist, die nicht verbessert werden kann in einer gewissen Hand. Okay. Also, wir haben zwei Parameter, P und die Ordnung. Und die Sicherheit hängt eben von beiden ab, weil wir beide Methoden haben. Hier kommt auch noch dazu, dass der Speichentaufwand enorm ist, weil man so viel abspeichern muss, habe ich hier gerade gesagt, diese ganzen sogenannten Relationen in dieser sogenannten Matrix. Und die Methode ist mehr wegen aus dem selben Grund nur teilweise partiell parallelisierbar. Genauer gesagt, der erste Teil des Finden der Relation ist parallelisierbar. Und der zweite Teil, die lineare Algebra ist nur extrem schwer parallelisierbar. Gut, was auch interessant ist, diese Relationenmethode kann auch fürs Faktorisieren benutzt werden. Stichwort RSA. Und da kriegt man im Wesentlichen die selben Ergebnisse. Ist nur ein bisschen leichter. Algorithmisch leichter, aber ein bisschen schwerer darzustellen. Die Methode ist algorithmisch leichter, aber weniger benötigbar, also für einen Vortrag. Weniger, gut darstellbar. Es ist ein bisschen leichter, weil hier, weil man bei der Linearen Algebra rechnet man bei RSA Modulo 2 und hier rechnen wir Modulo p-1. Das ist ein kleiner Unterschied. Modulo 2 rechnen ist leichter. Deshalb ist RSA ein bisschen so lang leichter, ein bisschen anfälliger, bezüglich der Methode, aber wie gesagt, nur ein bisschen. So, jetzt stellen wir mal die Rekorde da. Das ist nämlich jetzt wirklich sehr interessant. Das sieht man da sehr gut. Also bei der Kollisionsmethode sollte man fairerweise von vornherein davon ausgehen, dass die Ordnung eine Primzahl ist. Sonst kann man das irgendwie nochmal aufteilen und so weiter. Das ist jedenfalls kein sinnvoller Vergleich. Also nehmen wir mal an, die Ordnung ist eine Primzahl. Dann ist der Rekord, liegt bei 112 Bit. Bei der Relationmethode, kommt es ja auf P an, und da liegt der Rekord bei 596 Bit. Okay, das ist ja schon ein Unterschied. Und bei RSA liegt der Rekord sogar bei 768 Bit. Okay. Und man kann jetzt auch noch sagen, hier ist mehr Aufwand getrieben worden als hier. Das heißt, man sollte auch von ausgehen, dass man mit einem ähnlichen Aufwand man auch einen Rekord auf jeden Fall im Bereich von 700 Bit erreichen kann. Okay. So, das heißt, P muss 700 Bit haben. Das hat Auswirkungen auf meinen Schlüssel, nämlich auf den öffentlichen Schlüssel. Dein privaten Schlüssel, Entschuldigung, ich weiß, in einem anderen Verfahren, aber ich sage den Satz jetzt zu Ende, interessiert vielleicht doch den einen oder anderen. Wenn ich ein Publikivverfahren mache mit dem Skriptnöbel-Rhythmus-Problem, dann dominiert das hier den Komplexität des öffentlichen Schlüssel und das die Komplexität des privaten Schlüssel. Gut, aber ich weiß nur, also... Ich habe das nicht ganz verstanden. Bei diesem RSA, da habe ich ja ein P und ein Q eigentlich. Also was ist jetzt genau das P? Ist es die größere oder die kleinere Primzahl? Okay, also die Antwort ist, das ist, also die Antwort ist, was ich hier P nenne, entspricht beim RSA dem Produkt. Das ist das, was ich faktorisieren möchte. Okay, und da weitergehende Antwort kann ich jetzt dazu nicht geben. Außerdem sollten P und Q ungefähr gleich groß sein. Also von daher stellt sich die Frage in der Hinsicht jetzt nicht so wirklich, aber es geht, die Komplexität wird von diesem Produkt bestimmt und das ist die Analogie. Also die Analogie besteht nicht darin, dass wir hier eine Primzahl haben. Okay? Gut. Gut, okay. Also jedenfalls ist das so. Ich kann es sehr. Wenn ich keine Relationmethode hätte, dann wäre die Komplexität nur von der Kollisionsmethode bestimmt. So, und ich... Ja, und das ist eben die Frage. Also, wenn ich eine Relationmethode habe, ja, und was noch dazu kommt hier, ist, dass diese Rekorde irgendwie schneller wachsen als dieser Rekord. Erstens, wegen der asymptotischen Entwicklung das Algorithmus selbst, und zweitens, weil es auch noch ein wissenschaftlichen Fortschritt gibt. So, die Ordnung sollte 256 Bit haben und eine Primzahl sein und P sollte bei 2.000 Bit ungefähr liegen. Das ist natürlich enorm. Das selbe gilt auch für RSA. Ja, nochmal die Frage. Kann man das Untere vermeiden? Das ist im Wesentlichen der Punkt. Kann man das Untere vermeiden? Ja, genau. Das führt mich eben zu den elliptischen Kurven. Wir möchten, das ist das Ziel, wir möchten nicht in diesem Rechenbereich rechnen, was wir vorher gemacht haben, wir haben hierhin gerechnet, und zwar mit Multiplikation, Exponentiation, Berut auf Multiplikation, Fortgesetze Multiplikation, und das wollen wir eben ersetzen. Wir wollen diese Modulo-Multiplikation hier ersetzen. Wir wollen einen anderen Rechenbereich haben, also wir brauchen diesen endlichen Rechenbereich. Wir brauchen eine endliche Menge mit einer Rechenoperation zum Beispiel in Multiplikation. Das ist aber nur Name. Wir brauchen nur so was ähnliches mit der Multiplikation. Wir brauchen etwas so, dass das folgende gilt. Ich habe zwei Elemente aus meinem Rechenbereich, und dem kann ich ein neues Element zuordnen, wie zum Beispiel drei gegeben, vier gegeben, wir brauchen das. Das nennen wir mal eine Rechenoperation. Könnte, eine Multiplikation, eine Addition, aber in Wirklichkeit sind das auch nur Namen. Ich brauche einfach nur so ein Ding, egal wie ich das nenne. Dabei sind die Sätze gelten, zum Beispiel das Assoziativgesetz. Klar, man will ich weglassen können. Das bedeutet, wenn man das als Mathematiker sagt, ich brauche eine sogenannte endliche Gruppe. Das heißt das einfach. Die Angriffe nicht funktionieren. Ich habe das angedeutet, was die Antwort ist. Die Kollisionsmethode funktioniert immer. Denn in der Kollisionsmethode habe ich eigentlich gar nichts benutzt. Ich habe ja nur die Exponenziation selbst benutzt. Und die Exponenziation selbst ist ja nur eine fortgesetzte Multiplikation. Und die Multiplikation ist ja meiner Rechenoperation. Das heißt, sobald ich die Rechenoperation habe, sobald ich überhaupt die Gruppe habe, habe ich auch die Kollisionsmethode. Die gibt es also immer, ist nicht vermeidbar. Die folgt einfach aus dem Setting selbst. Deshalb nennt man das auch eine sogenannte generische Methode. Und die Frage ist, was ist mit der Relationmethode? Genau. Und das weiß man nicht, ob so oder nicht. Aber jedenfalls gibt es einen Vorschlag von zwei Herren, Viktor Miller und Niel Korblitz, 1985 unabhängig voneinander. Auch kleine Story hier am Rande, hier. Zwei Herren, die sowohl einiges meinander gemein haben, als auch einige Unterschiede. Gemeinsamkeiten sind ungefähr gleich alt. Haben beide an sehr prominenten amerikanischen Universitäten in Zahlentheorie promoviert, mit sehr guten Promotionen in Harvard und in Princeton. Es gibt aber auch sehr große Unterschiede. Viktor Miller hat sich seinem Land gewidmet, patriotisch und arbeitet für eine Firma, die ausschließlich für die amerikanische Regierung, d.h. insbesondere NSA und amerikanische Militär arbeitet. Und Niel Korblitz ist in die völlig umgekehrte Richtung gegangen, hat in den 70er Jahren zum Beispiel ein Jahr zusammen mit seiner Frau in Moskau gewohnt. Er hat sich in den 70er Jahren eine andere politische Einstellung allein schon aus den Taten vielleicht ableiten. Das ist ja auch keine falsche Hypothese. Sehr interessant in der Mathematik finden viele Leute zusammen, die ansonsten vielleicht nicht so zusammenfinden würden und können sogar zivilisiert miteinander reden. Gut, also, Sie haben vorgeschlagen sogenannte eliptische Kurven, ich hatte Ihnen am Anfang ein Bild gezeigt, über diesem endlichen Rechenbereich also wir rechnen weiterhin Modell P, Addition, Multikation, aber wir machen darüber sozusagen dieses Bild, was ich am Anfang gezeigt hatte. Ja, das ist nochmal das Bild. Hier ist die eliptische Kurve und hier ist die Rechenoperation. Gegeben so einen Punkt, dem kann ich einen neuen Punkt zuordnen und das ist der hier. Das ist meine Rechenoperation. So geht die, das ist eine geometrische Konstruktion. Die geben zwei Punkte, male die gerade dadurch, heraus. Hier ist diese Kurve, die ist durch eine Gleichung gegeben. Die Kurve, oder diese Menge, man nennt die Kurve, besteht aus allen Punkten, die eben diese Gleichung hier erfüllen, also X-Koordinator und Y-Koordinator. Ja, so, man sieht hier zum Beispiel, man kann eben spiegeln, weil, wenn ich einen Punkt habe, kann ich auch Y, minus Y ersetzen, habe ich wieder einen Punkt, weil ich dann wieder eine Lösung habe, weil man gerne fällt es hier weg. So, ich habe hier diese Rechenoperation. Jetzt möchte ich mal eine kleine vielleicht Warnung für Sie aussprechen, oder vielleicht ein benutzerfreundlichen Hinweis. Diese Rechenoperation wird additiv geschrieben, das heißt, wie es ganz normale Plus, wer das also mal sieht, wer das mal implementieren möchte zum Beispiel, wir haben hier ein Plus als Symbol. Ich hatte aber am Anfang gesagt, das Symbol ist vollkommen irrelevant. Es geht einfach nur darum, dass man ein neues Element machen kann. Und das ist alles, egal wie ich es hinschreibe. Ich hätte auch mal hinschreiben können, oder drei Eck oder vier Eck. Also nur weil bei elliptischen Kurven irgendwo ein Plus vorkommt, heißt es noch lange nicht, dass das was mit der normalen Addition zu tun hat. Denken Sie nicht, da ist ein Plus, also es ist einfach. Plus hat hier, das hat damit nichts zu tun. Man nennt das eine Addition, aber das ist nicht die normale Addition, das ist ziemlich komplex. Wenn man jetzt also so eine elliptische Redaktion aus dem endlichen Rechenbereich gegeben haben kann, haben wir die folgende Resultate. Es gibt umgekehrte Punkte auf der Kurve mit Koordinaten-NFP. Es gibt diese Rechenoperation, die ich Ihnen gerade hingemalt habe, für diese Punkte. Wir haben diese endliche Gruppe. Das ist genau das, was ich eben möchte. Diesen endlichen Rechenbereich mit den schönen Regeln. Und wir können, dass das Kreatologer-Rhythmus-Problem betrachten. Wir können definieren, dass die Kreatologer-Rhythmen sind, die Kreatologer-Rhythmapunkt ist. Die inschreiben wir jetzt groß. Ja, die einschreibt mal groß. Genau, das können wir also machen. Und ja, können wir das betrachten. Und wie ich schon sagte, Kollisionsmethode funktioniert, immer. Relationsmethode weiß man nicht, aber es gibt Guteargumente dafür, dass es jedenfalls nicht auf eine offensichtliche Art und Weise funktioniert. ist, also ist das sicher? Und wenn ja, welchen Parametern? Und die Antwort ist wie folgt? Vorbemerkung, erst mal, es gibt hier viele Parameter, die man wählen kann. Man muss hier nicht nur die Primzahl wählen, sondern auch noch die Kurve mit der Gleichung. Gibt hier viele Möglichkeiten. Und nach heutiger Forschung kann man sagen, dass Großen und Ganzen die besten Angriffe auf elliptischen Kurven sind bis auf manche Ausnahmen diese sogenannten generischen Angriffe, die immer funktionieren. So, besten Angriffe sind die generischen Angriffe, die immer funktionieren. Und jetzt muss man aber trotzdem noch eine gute Kurve wählen. Muss man trotzdem die Parameter noch gut wählen. Das heißt, P muss erst mal groß genug sein, damit wir überhaupt genügend Punkte haben. Dann brauchen, dann müssen wir auch noch ein Basispunkt wählen, für den die Ordnung groß genug ist. Und im optimalen Fall sind diese beiden Zahlen ungefähr gleich groß. Und das Ganze hängt nur von P ab. Das heißt, wir müssen einfach nur P groß wählen. Und was ist groß genug? Ja, groß genug heißt im Wesentlichen groß genug, sodass die generischen Angriffe nicht funktionieren. Und wenn wir dann eine gute Kurve wählen, dann sind wir wahrscheinlich auf der sicheren Seite. Also, wir wählen P mit 256 Bit und dann kann man behaupten, würde ich auch sagen, es gibt jetzt hier, sagen wir mal, kropatographisch starke elliptische Kurven, muss man, wie gesagt, die Parameter gut wählen, sodass man sagen kann, das wird wohl in den nächsten Jahren bis Jahrzehnten, zwei Jahrzehnte oder sowohl nichts werden, das zu lösen. Und jedenfalls, lange wir keine Quantencomputer haben. Wenn wir Quantencomputer haben, wäre ein interessantes Thema, ist alles unsicher. Ja, aber gut, okay. Es ist eine Spekulation, Quantencomputer ist auch interessant, aber das machen wir jetzt im Vordergrund. Es gibt sogar auch, auch hier Experte sagen, es gibt hier Kurven, die sind einfach sicher Punkt. Es wird niemals in Existenz des Universums einen Computer geben, der diese Diskretten algorithmen berechnen kann. Okay, und ich möchte nochmal betonen, man muss die Kurven gut wählen. In der Regel ist schon so, wenn man die Kurve zufällig wählt, dass die generischen Methoden die Besten sind, aber es gibt Ausnahmen und das sollte man nicht selber machen, das sollte man schon Experten überlassen. Gut, dann möchte ich schließen, die elliptische Kurve, so wie wir angefangen haben, so enten wir auch. Ich bedanke mich für Ihre Aufmerksamkeit. Dankeschön.