 Daniel J. Bernstein, auch genannt DJB, beide sind in dem Komitee für moderne Krypto-Verfahren und ich habe mit anderen Leuten in der Community geredet und Tanja ist diejenige, die die Praxiserfahrungen bringt. Bitte Applaus für Daniel Bernstein und Tanja Lange. Okay, man hört mich, oder? Ja, wir kommen bei der Late Night Show mit Daniel und Tanja. Es gibt viele Krypto-Vorträge, die einem suggerieren wollen, dass es haufenweise Probleme gibt, Performance, Komplexität, Löcher, merkwürdige Standards, schrecklicher, nicht überprüfbarer Code und das alles wird dann zusammengeführt zu diesem gigantischen schwarzen Loch und das nennen wir dann irgendwie Security. Aber eigentlich ist noch viel schlimmer. Hauptsächlich wegen dem, was noch kommen wird, nämlich den Quantencomputern. Die normalen Vorträge geben euch den Eindruck, dass die Kernbausteine sowas wie elliptische Kurven eigentlich im Kern okay sind, dass es nur die Implementierung ist. Aber soweit Quantencomputer da sind, sind sogar die wertlos und man kann es einfach knacken, auch selbst wenn es keine Schwächen hat. Dieses Paper ist von Peter Schor, einem Mathematiker, der sich mit Quanten-Kryptografie befasst hat. Vor 20 Jahren hat er einen Paper geschrieben, dass der Quantencomputer eben große Ganzzahlen einverfaktorisieren kann. Wenn ich sowas höre, dann will ich natürlich als erstes mal auch so ein Ding haben. Wie weit ist es denn jetzt überhaupt? Jetzt hört man, dass D-Wave da ist. Das ist der erste echte Quantencomputer, von dem man so hört. Es ist ziemlich coole Technik, Wahnsinnsmarketing auch dabei, aber eigentlich ist es nicht wirklich brauchbar. Dieses spezielle Quantencomputer kann nicht so die allgemeinen Dinge tun, die man erwarten würde von einem Quantencomputer. Es kann zum Beispiel keine stabilen Cubits abspeichern. Es kann nicht mal einfache Operationen darauf anbinden. Es kann keinen Schor-Algorithmus ausführen. Es kann keine großen Integer faktorisieren. Aber die Firma sagt, okay, das ist eigentlich völlig egal. Wir haben das für einen ganz anderen Zweck vorgesehen. Das ist das Problem, dass wir lösen wollen. Offensichtlich ist natürlich dann auch die Maschine relativ gut darin, genau dieses Problem, was sie sich definiert haben, auch zu lösen. Wenn man das mit einem normalen Laptop vergleicht, dann ist es 10 noch 8 schneller. Und wenn man dann den Great Circle anguckt, der ist dann genau so schnell. Wenn euch das hier ein bisschen komfortabel macht, dann zeigen wir euch, weil es ist noch kommt. Es gibt Fortschritt. Es wird an Universalen Quantencomputer geben. Da ist eine sehr viel Forschung in das hier reingehen, die in den Quantencomputer geht. Und es geht sehr, sehr viel Geld in diese Forschung. Und das sind sehr, sehr viele Institute, die sich daran beteiligen. Und jetzt zitiere ich mal die Wikipedia-Seite. Wir haben über die vergangenen Jahre einen großen Fortschritt in Cubits gesehen. Zum Beispiel kommen sie viel stabiler und die Kommunikation ist besser. Und die einfachen Cubits können jetzt kommunizieren. IBM hat bekannt gegeben, dass ihr CO sagt, dass sie sagen, dass es vielleicht nicht 50 Jahre, vielleicht 10 oder 15 Jahre entfernt. Und sie sagen, sie werden da ziemlich bald sein. Jetzt machen wir einen einfachen Schritt vorwärts. Es ist jetzt 2022 oder 2027. Und es gibt einen Universalen Quantencomputer. Und der Shore Algorithmus löst in polynomialer Zeit. Ganze Zahlen, Faktorisierung, diskrete Logaritmusprobleme in beschränkten Feldern, beschränkte Logaritmen auf elliptischen Kurven. Und dieses bricht dann alle Public Crypto, die es Cryptografie, die es gerade im Internet gibt. Wenn man an die Sicherheit von AS glaubt, in Wahrheit sind 128 Bit-IS nur 2 auf 64 Quanten sicher. Aber man kann auch auf das Doppelte hochgehen. Also wenn das jetzt irgendwie so ein Problem ist, was machen wir denn da? Wir können jetzt irgendwie den Kopf im Sand vergraben und hoffen, dass es einfach nicht kommt oder man könnte irgendwie auch physisch sichere Krypto ausrollen. Man könnte Quanten Schlüssel verteilen. Das ist aber natürlich nur eine Option für sehr reiche Leute. Man kann das nicht einfach jedem geben, der irgendwie ein Laptop hat. Aber sagen wir mal, man hätte irgendwie genug Geld, dass es kein Problem darstellt. Es gibt noch ein anderes Problem, und zwar die Sicherheit. Also normalerweise werden die beworben, als dass sie irgendwie absolut sicher sind. Niemand kommt an diesen Aktenkoffer an, aber und dann kommen irgendwie ein Haufen Annahmen, die irgendwie sehr fragwürdig sind. Und stellt sich raus, dass wenn Leute dann wirklich versuchen, das anzugreifen, dass sie dann gar nicht stimmen. Und die Systeme werden immer wieder mit durchaus realistischen Ansätzen geknackt. Und jetzt sagen wir mal, wir hätten ein System, das wirklich sicher ist, dann ist es unglaublich schwierig, das zu überprüfen. Also es ist wirklich einfach, eine Backdoor einzubauen und niemand kann das so einfach überprüfen. Und das Schöne an diese Quantenkriptografie ist, dass es eigentlich gar nicht so viel Krypto macht. Man fängt einfach mit einem gemeinsamen Geheimnis an und Quantenschlüsselverteilung startet einfach mit einem gemeinsamen Quantenwellen. Quantenkriptografie sagt eben, es ist sicher und also es ist beweisbar sicher unter vernünftigen Annahmen. Im Gegensatz zu diesem Situation bei AS. Stellt euch mal vor, wir müssten Betriebssystem Updates über verschlossene Aktenkoffer verteilen. Stellt euch mal vor, Microsoft würde das so machen. Wenn das irgendwie so klingt, als wäre das realistisch, dann in der realen Welt müssen wir uns irgendwie was besseres überlegen für Kryptografie. Okay, also ich versuche jetzt mal ein optimistischer Standpunkt einzunehmen. Gibt es jetzt noch Hoffnung? Und ich sage ja. Den Name kommt von Post-Quanten-Kryptografie. Das heißt Kryptografie, die immer noch sicher ist, auch in dem Moment, wo der Angreifer schon über Quantencomputer verfügt. Wir haben nur normale Computer, aber der Gegner hat nur, aber der Gegner hat Quanten-Krypt-Computer. Also es geht im Prinzip um vorwärtsgerichtetes Sicherheit. Da gab es einen ersten Workshop 2006 und dann gab es eine ganze Reihe davon bis 2014 und das ist jetzt hier die ein Bild von den Teilnehmern des letzten Workshops. Als nächstes haben wir auch einen Workshop in Japan im Februar und 2017 ist auch schon eine geplant und es gibt noch ein neues Projekt von der EU, das auch solche Kryptografie unterstützen will. Wir haben jetzt natürlich jemand vergessen, die NSA. NSA sagt, lass auch mal was machen. Im August dieses Jahres kam eine Nachricht auf der Homepage, dass in der nahen Zukunft eine Bewegung dahin geben wird, dass man einen quantensicheren Algorithmus übernehmen wird. Danach haben sie festgestellt, dass es wohl irgendwie nicht ganz richtig war und da haben sie dann gesagt, wir werden sogar in diese Zukunft voranschreiten und einen solchen Übergang vorantreiben. Also sie kommen irgendwie schon zu spät und dann verpatzen sie auch noch ihren Auftritt. Aber wenn ihr gedacht habt, das wäre schon schlimm, dann es dauert wirklich lange, bevor man irgendwie so ein Kryptografie aufbauen kann, bevor man sowas entwickeln kann. Wenn man eine Idee hat, was sicher sein könnte gegenüber Quanten-Kryptografie als zum Beispiel AES, das liegt in erst den Gedanken daran, dass wir schon zehn Jahre Erfahrung damit haben, wie man versucht das einzugreifen und wir haben einfach schon alle Wege oder viele Wege davon ausgerannt, wenn man mal so eine Erfahrung hat, was machbar ist, was irgendwie funktionieren könnte, wie man das den Angriff implementieren kann. Es gibt einen Riesenhaufen Arbeit, die man irgendwie vorab erledigen muss, um festzustellen, ob sowas irgendwie machbar ist. Manchmal muss man auch feststellen, okay, besser geht es einfach nicht. Jetzt hat man irgendwie so kleine Bausteine für Krypto und da muss man auch irgendwie so die, die muss man dann noch einhaken in größere Sachen, sowas wie AES mit dem TLS, ja und dann für die Post-Quanten-Kryptografie muss das auch noch erledigt werden. Also die elliptischen Kurven-Kryptografie wurde 85 erfunden und jetzt sind wir im Prinzip so weit, dass vernünftige ECC langsam im Internet verwendet wird, also 30 Jahre. Wir können nicht erst warten, bis ein Quanten-Computer da ist, bevor wir irgendwie anfangen, da Forschung reinzustecken. Also wenn das schon schlimm klingt, dann ist es wirklich noch schlimmer. Es ist nicht so, dass in, nicht nur in 50 Jahren, dass das, was man dann schickt, irgendwie knackbar ist, aber es gibt eine, es gibt Anzeichen, dass jetzt schon eine gewisse Organisation möglicherweise euren Traffic überwacht. Wenn wir, als wir in 2012 so einen Vortrag gehalten haben, der hieß Kryptografie für die Paranoiden, da wurden wir damals ausgelacht, weil wir die gleichen Sachen gesagt haben. Heute wissen wir, NSA hat eure ganzen Verbindungen überwacht. Und jetzt nehmen wir mal an, du bist eine interessante Person oder du bist ein Politiker, vielleicht bist du reich oder du hast dich mit den falschen Leuten umgeben. Und jetzt wollen sie zurückgehen an den Tag heute, um rauszufinden, was ihr während der Talks gemacht habt. Im Prinzip können sie zurückgehen. Einfach über die Metadaten und über die Metadaten. Und die können die jetzt entschlüsseln, weil die Metadaten einen verwundbaren Algorithmus verwendet haben. Und sie können einfach zurückgehen und das entschlüsseln jetzt. Es ist also nicht einfach so, dass wir einfach warten müssen bis Quantencomputer da sind, sondern vielleicht sind wir sogar wirklich schon längst zu spät. Auf der nächsten Folie ist eine Liste von Namen, die sich zusammen hocken und zusammen gute Vorschläge machen wollen für Post, Quantensystem, Computing. Wir wollen wirklich etwas von dem wir davon ausgehen können, dass es die nächsten 100 Jahre sicher ist. Und wir wollen eine Liste von Vorschlägen machen, die wirklich mindestens ein 256-Bit Schlüssel haben. Wir wollen für Authentifizierung, für Symmetrische, brauchen wir überhaupt keine Schlüssel. Das ist der Teil, von dem wir ausgehen, dass es sowieso schon sicher ist. Da können wir wirklich uns entspannen und das könnte wirklich funktionieren. Man kann es sich ja noch verbessern, man kann auch gute Forschen darüber machen. Aber es ist nicht so wirklich drängend wie bei den anderen Themen. Die unteren zwei, das ist die öffentliche Schlüsselverknüpfung, Verschlüsselung und die Signaturen. Das sind die Teile, die wirklich kritisch sind. Dann gibt es Goppersort für bestimmte Parametergrößen. Das andere ist heischbasiert. So und jetzt tauchen wir ein bisschen in den heischbasierten Bereich von diesem. Dies geht noch ein bisschen weiter als 80er. Es geht zurück in den 1979er. Und das war das Ziel einen Nachricht unter einem Schlüssel zu verschlüsseln. Das einzige was du für diese Public Key System gebrauchst. Damals war das noch ein Problem, aber heute sind die hechsachen besser und die Schwierigkeiten existieren nicht mehr. Und da ist viel, viel Verbesserung. Aber bei allen diesen hechsystemen ist es sehr, sehr einfach, die Sicherheit zu verstehen. Und es ist wirklich sehr einfach und wenn man vorsichtig über diese einfachen Sachen ist, dann können wir genau verstehen, welche Sicherheit wir daraus bekommen. Wir brauchen ein Signaturesystem, was nur leere Nachrichten unterschreibt. Stellt euch vor, ihr wollt einen Panic-Knopfhaben. Hier ist eine Nachricht, das sagt mein Haus, meine Computer ist beeinträchtigt und vertraut nichts mehr, was von diesem Computer kommt und was mit diesem Schlüssel verschlüsselt worden ist. Und die Leute können verifizieren, dass diese Nachricht von dir kommt und nie der Mann kann das faken. Und hier kommen wir noch zu dem Rest von dem Hash-Based Crypto. Lassen Sie mal ein bisschen in der SAA 265 sich gucken, den ihr einfach über das Debian oder Linux Partition bekommt, um einen Schlüsselpaar mit diesen Systemen zu verschlüsseln. Alles, was ihr braucht, sind 32 Byte von Random Data. Ihr könnt schon your Random vertrauen, aber es ist, vielleicht hilft es noch, den Hash noch dran zu tun. Und der Publici ist einfach ein Hash von dem Geheimen Schlüssel. Natürlich wird dann der Public Schlüssel veröffentlicht und der Seekerschlüssel wird behalten. Und jetzt seht ihr den Geheimen Schlüssel in der untersten Zeile und den öffentlichen Schlüssel in der Linie darüber. So wie signiert ihr jetzt eure Nachrichten? Das ist eine sehr populäre IPI für ... Jetzt die signierte Nachricht. Wie verifizieren dann bekommt ihr die Nachricht daraus, wo der einzige Nachricht damit ... Wenn die Nachricht anders als die leeren Nachrichten, dann darf man das nicht übersetzen. Aber wenn jetzt die leeren Nachricht kommt, dann ... Also die Idee von Public Key Cryptography ist, dass man die Verschlüsselung überprüfen kann. Also für die Verifizierung überprüft man im Prinzip nur die signierte Nachricht. Man schaut sich den Hash an und schaut, dass er mit dem Public Key veranstimmt. Wie will ich das jetzt angreifen? Also wenn ich jetzt noch keine Nachricht signiert habe, muss man einen String finden, der, wenn ich in Hasche diesen Public Key gibt. Also das ist jetzt ein Urbildproblem, wenn ich jetzt diesen Hash umdrehen muss. Das ist halt relativ hart. Niemand wird das einfach so finden. Und wenn es ein guter Hash Algorithmus ist, dann findet man auch keinen anderen String, bei dem das funktioniert. Ihr könnt ja mal probieren, das zu versuchen. So, jetzt gehen wir weiter. Wir haben jetzt leere Nachrichten signiert. Jetzt wollen wir ein Bit Nachrichten generieren. Also unser Key kann entweder 0 oder 1 signieren. Das ist irgendwie Blöde. Wir machen jetzt zwei Schlüssel, der eine verschlüsselt 0 und der andere verschlüsselt die 1. Ihr seht schon, wie kompliziert das ist. Also macht man einen, der die 0 und einen, der die 1 verschlüsselt, dann hängt man die einfach zusammen und dann hat man den Key. So, wenn man jetzt 0 verschlossen will, dann ist eben 0 und gefolgt von dem 32 Bit von dem Key. Es stellt euch einfach vor, den Hash mit dem simplen System zu verschüsseln. Ja, bei der 1 nimmt man jetzt einfach die andere Hälfte von dem Key, um jetzt zu verifizieren, dass es das richtige ist und man jetzt einfach das Offensichtliche machen. Also ich möchte jetzt mal betonen, dieser Code wurde nicht reviewed. Ich habe den nur für diesen Code irgendwie, für diesen Talk rausgehauen, aber man kann das sicher auf 100 wegen falsch machen, aber es geht nur um die Idee. Wenn man jetzt sich überlegt, dass man diese eine Nachricht verschlüsselt, wenn man jetzt versucht, etwas zu fälschen, dann muss man diesen 32 Bit String finden, der genau auf dieses Resultat rauskommt. Okay, ich verspreche ich werde jetzt nicht für jede Länge gehen, aber 4 ist jetzt irgendwie eine neue Situation, die man bei dem 1 nicht sieht. So, jetzt schauen wir uns das an und das skaliert dann auch hoch für, beliebe ich, viele Bits. Also wir nehmen uns jetzt mal 4 sein Bit Key Haare, jeder von den 32 Bit Hashes, also jeder, jeder geheimes Schlüssel ist 32 Bit und jeder Public Key ist der Herrsch davon. Wir machen jetzt 4 von diesen Paaren und dann hängen wir die aneinander. Okay, um jetzt eine Nachricht zu verschlüsseln, müssen wir uns die Nachricht anschauen und müssen gucken, ist es die Nachricht zwischen 0 und 15 und dann kann man jedes einzelne Bit davon signieren und die shiftet man halt und signiert jedes einzelne Bit. Danach hängt man das zusammen und man hat dieses Ergebnis. So, und die Verifizierung arbeitet dann genauso wie man es erwarten will. So, das hat jetzt aber ein Problem. Wenn man dieses Signiersystem verwendet, um zwei Nachrichten, zwei verschiedenen Nachrichten zu verschüssen, dann erlaubt man Fälschungen. Also zum Beispiel überlegen wir uns mal, wir signieren jetzt 11 und 7. Die Signatur von 11, 11 Binaire ist 8 plus 2 plus 1 und 7 ist 4 plus 2 plus 1. Du hast jetzt etwas preisgegeben und zwar die Signatur beim dritten Bit, das dritte Bit ist 1, weil Teil der Signatur von 7 und bei 11 hat man rausgegeben, dass das dritte Bit 0 ist. Und jetzt kann man das irgendwie einfach ein bisschen durchprobieren und dann kriegt man verschiedene Bits davon raus. Also dieses Signaturesystem ist total sicher, wenn man genau eine Nachricht signiert, aber wenn man das durchprobieren kann, dann kann man auch Informationen über das Verfahren rauskriegen. Jetzt zeigen wir euch wie Lamports einmal Signaturesystem funktioniert. Also man muss jetzt erst mal diese 4 Bit auf 256 Bit hochskalieren und wenn es länger ist, dann nimmt man einfach ein Hashtag von den ersten 256 Bit. Man kann jetzt auch noch irgendwie Verbesserungen vornehmen, also man kann irgendwie Winternitz Signaturen verwenden. Man kann hier viel rum optimieren, dass man irgendwie Raumzeitabwägungen macht. Also wegen der Einmal-Einschränkung. Man kann jeden Schlüssel nur einmal verwenden für eine Nachricht. Das wurde jetzt von Merkel behoben. Sagt einfach, man nimmt 8 Lamport-Einmal-Kies und die hängt man hintereinander. Aber das ist jetzt irgendwie deutlich effizienter, als es erst mal klingt. Also macht jetzt diese 8S, das sind die geheimen Lamports Schlüssel und jeder von denen ist in der Lage eine Nachricht zu verschlüsseln und dann gibt es die öffentlichen Nachrichten P1 bis P8. Die hasht man zusammen in einem Baum. Also erst mal P1 und P2 zu P9 und P3, P4 zu P10 und so weiter, bis man bei genau einem Schlüssel ankommt, das ist P15 und das ist der gesamte öffentliche Schlüssel. Man hat jetzt ein Haufen geheimen Schlüssel, die man lokal hält und diesen P15 als öffentlichen Schlüssel. So wie sieht es jetzt aus, wenn man eine Nachricht signieren will. Also wenn man die erste Nachricht signiert, dann nimmt man S1. Wenn man die mal verwendet hat, dann verwendet man das nie wieder. Also man verschüsselt die Nachricht mit S1 und der kann es dann verifizieren mit P1. Aber mein öffentlicher Schlüssel ist in P15. Wie kann ich den jetzt verifizieren, dass es das Richtige ist? Man zeigt ihn einfach P2, P10 und P14 und dann kann man das mit P1 verbinden und dann können sie die 15 wieder ausrechnen und sehen, dass die Nachricht sich richtig verschüsselt wurde. Wir kümmern uns nicht wirklich um den Platz bedarf. Mein Gott, packt sie auf lokale Platte und dann ist alles in Ordnung. So, das Gute an den hashbasierten Kryptografien ist, es ist Post-Quanten, Kryptografie sicher, kein Problem, wir brauchen uns keinen Kopf wieder übermachen. Alles, was man braucht, ist eine gute Hashfunktion und wir haben auch einen Haufen von denen, die hinreichend angesehen wurden und verifiziert. Wir haben auch wirklich Standardsverfahren gehabt, wo die Leute alles gegeben haben, um es zu brechen und es wurde nicht geknackt. Die Sicherheit dahinter ist gut verstanden, es ist ziemlich schnell und es gibt sogar schon Standardisierungsverfahren dafür. Dass die erste sterilisierte und auch angewendete Post-Quanten-Krypto-Algorithmen, das, das mehr Angst erfüllende ist, ist die Statefulness. Was ist, wenn ihr ein Backup im Hintergrund habt und was ist, wenn ihr das wieder benutzt und dann kann es jemand fälschen, so wie ich das vorgesagt habe. Einige von euch werden in den Roots Talk vorher. Die Lösung ist natürlich, den Staat zu beseitigen, den Status. Ich habe nur noch drei Minuten für diese Sektion übrig. Die Idee, um den State loszuwerten ist, man baut eine große Anzahl an von CIS-45 CAs und hier nutzt dem Onsenfly, so wie ihr ihn benötigt. Und einer von diesen grundliegenden CAs wird mein Nachricht zertifiziert und dann zertifiziert, dass der Nächste und so weiter. Dann habt ihr diese Zertifizierungskette und dann wie zertifiziert diese Zertifizierungskette. Und ihr tut das gleiche, was echte CAs tun und wie diese CAs stören, herstellt ihr sie einfach, wie ihr sie da gerade benötigt. Und dann herrscht ihr sie zusammen mit einem sehr langlebigen Geheimnis. Und so können wir CAs erzeugen, wie wir sie gebrauchen. Und dann gucken wir nur an ein paar CAs für die entsprechende Signatur. Und das ist dann, dass wir keine A2 benutzen und wir dürfen keine A2 benutzen. Also bei den originalen Goldreich Signaturen mit guten, einmal Verschlüsselungs-Signaturen kommt man bei 600 Kilo weit raus. Bei dem durchschnittlichen Debian-Paket sind es 1,2 MB und man kann sich es schon irgendwie vorstellen, dass man das mitschickt, aber es ist schon ziemlich groß. Und jetzt schauen wir mal die durchschnittliche Webseite in den Elefster Top anschauen. Es sind dann schon 2 MB und es hängt dann ein bisschen davon ab, wie groß die Seiten sind. 0,6 MB sind schon ziemliches Problem, aber haben wir es jetzt angeguckt und wir haben jetzt eine Neuschüsselverfahren gehabt. Da ist es dann nur noch 40 kW für ein 2 hoch 28 Post-Quantensicherheitsverfahren. Das ist doch sehr brauchbar. Okay, jetzt haben wir eine ziemlich gute Idee, wie wir mit den Signaturen verfahren und das ist was. Jetzt sind wir wieder bei den Aktenkoffern. Wie kann man sicherstellen, dass man wirklich diesem Aktenkoffer trauen kann? Jetzt soll es noch um Fehlerbehandlung gehen. Also hier geht es um Fehlerkorrigierende Verfahren. Wie nennen die ETC Error Correcting Codes? Also es kann immer irgendwie was vorkommen, dass irgendwie einfach kosmische Strahlung, ein Bit im Ram umschwenkt oder wenn ich jetzt zum Beispiel ein Buch kaufe oder irgendein anderes Medium, da ist eine ISBN dran. Die letzte Ziffer in der ISBN hängt ab von den anderen Ziffern da drin. Das ist eine Prüfziffer und wenn die jetzt irgendwie nicht stimmt, dann kann ich feststellen, ah, probier es noch mal, die ist falsch. Und ECC ist noch ein bisschen cleverer. Jetzt haben wir im Ram 64 Bit gespeichert und es hat jetzt noch eine gewisse Redundanz mit dabei. Extra Bits, mit denen man Fehler feststellen kann. Und wenn ich ein Fehler habe, kann ich damit nicht nur den feststellen, sondern sogar wiederherstellen. Also jetzt nicht so, dass wenn jemand irgendwie mit dem Schraubenzieher drauf haut, dass ich dann das nochmal den Inhalt auslesen kann. Aber wenn irgendwie ein, zwei Bits sich verdreht haben, dann kann man das immer noch wiederherstellen. Also in der Regel ist es so, dass wir irgendwie eine gewisse Menge an Bits haben, die wir, die uns wirklich wichtig sind, also sagen wir Car Bits, und dann haben wir irgendwie noch ein bisschen Redundanz dabei. Das heißt, wir nehmen die Car Bit und packen sie in N Bit. Und N wollen wir jetzt natürlich nach Möglichkeit irgendwie nicht zu viel größer als Car haben. Also diese Parität, die wir da dazufügen, dann wisst ihr es mal. Parity ist so gedacht, dass man quasi wieder zum Beispiel eine gerade Zahl hat immer am Ende. Jetzt reden wir aber natürlich nicht irgendwie einfach von normaler Parität, sondern von Parität von komplizierteren Systemen und nicht einfach nur gerade ungrade. Okay. Wenn jetzt ein Fehler war, dann wird irgendwie ein Teil in dem Algorithmus fehlschlagen. Und je nachdem, wie dieses Fehlerbild aussieht, kann man dann auch wieder wieder herstellen, was genau, oder man kann raushinden, was schief gelaufen ist in den Bits und es dann wieder korrigieren. Es kann auch sein, dass eines von diesen Zusatz Bits sich verdreht haben. Also es muss nicht unbedingt so sein, dass die Originalnachricht, die es ihnen Fehler hat. Aber wenn man einen guten Code hat, dann will man möglichst Car sehr groß haben und end nur wenig viel größer als Car, einfach aus Platz gründen. Jetzt kriegen wir ein paar Garantien, wenn wir jetzt so ein Verfahren entwickeln. Wir wissen natürlich, dass es sogar so, das sind untere Schranken. Also wenn wir das designen und das sagt, man kann mindestens 100 Fehler korrigieren, dann ist es in der Praxis sogar so, dass man vielleicht 200 korrigieren kann. Und jetzt geht es um Matrizenrechnung. Also nehmen wir mal diese Gleichung hier, kleines Beispiel. Nehmen wir mal an, ihr wollt 4 Bit verschüssen, Car ist 4 und wir fügen jetzt einfach noch 3 Bit dazu. Also ziemlich ineffizient, aber man kann es gut verstehen. Diese Zeilen, die wir da anzeigen, das sind unsere Paritätsgleichungen. Also wir haben 7 Bit mit der Redundanz und jetzt schauen uns jetzt die erste Zeile an. Es ist 1, 0, 0, 1, 1, 0, 1. Wir nehmen das erste Bit, lassen das zweite und dritte aus, dann nehmen wir das vierte und das fünfte und dann lassen wir wieder eins aus und nehmen das erste. Und in der zweiten Zeile machen wir es ähnlich. Dann lassen wir das erste aus, nehmen das zweite, dritte lassen wir aus, vierte nehmen wir mit, fünfte lassen wir aus, sechs und sieben nehmen wir und so weiter. Also nette Diagonale, links und der Rest ist durch diese Gleichungen beschrieben. Jetzt nehmen wir mal an, etwas geht schief und wir haben jetzt diese 7 Bits und wir kommen nach ein paar Stunden wieder und die schauen uns diese 7 Bits noch mal an und wollen wissen, ob was schief gegangen ist und wir lassen jetzt einfach diesen Paritätschecker laufen. Und dann sehen wir einen Fehlermuster. Wenn alles okay ist, dann sollten wir 0, 0, 0 kriegen. Aber jetzt nehmen wir mal an, wir kriegen 1, 0, 1. Also die erste und die letzte Gleichungen sind verletzt und die zweite ist noch in Ordnung. Okay. Wo kann das herkommen? Also wir sind ziemlich sicher. Die B1 ist richtig, weil das kommt davor, sonst wäre die auch falsch. Also wir müssen jetzt immer davon ausgehen, dass nur ein Fehler immer auftritt. Weil wenn mehr als eine auftritt, dann kann man sich auch nicht mehr verlassen. Aber es ist vielwahrscheinlich, dass nur eins sich verändert hat, als dass es zwei sind. Okay. Und wir sehen jetzt an dem Fehlermuster, dass es vor dem Ende sich bedreht hat und deswegen muss es b4 sein. Es gibt uns jetzt irgendwie so eine Forschung davon, wie man das machen muss und man muss es dann durchprobieren. Wenn man zwei Fehler hätte, müsste man jede Kombination von zwei aus n berechnen. Jetzt sagen wir mal, n ist 1000 bits und ich sage euch jetzt, da sind 100 Fehler drin. Dann muss man jede Kombination von 100 Stellen aus diesen 1000 verwenden. Das ist natürlich eine riesige Zahl und das kann natürlich nicht funktionieren. So kann niemals zum Beispiel die VDR Korrektur funktionieren oder so. Also um jetzt das alles ein bisschen effizienter zu machen, machen wir das Ganze ein bisschen kürzer schreiben. Das ist als Matrix und das h ist dann die Matrix. Das und b ist ein Vektor. b ist der Vektor, den ich speichere und h ist die Matrix, die dieses Verfahren kodiert. Dann kriege ich das Fehlerbild als h mal b. Einfach nur Vektor und Multiplikation. Wir nehmen den ganzen jetzt mal Namen. Also wir nennen jetzt c das codeword. Dann gibt es einen Fehlervektor, den nennen wir e und wenn wir ein Wort empfangen, das nennen wir dann b. Das ist das von der vorherigen Foei und wir wollen jetzt wieder Platz sparen. Also wenn wir die Diagonale vorne haben, die nur 1 enthält und der Rest nur 0, dann lassen wir das einfach aus. Also wir schreiben die ersten drei Spalten gar nicht hin und in Kodier Theorie passieren natürlich viele Dinge und wir haben damit schon viele Jahre Erfahrung. Wir können jetzt für sehr große Bezahlen hochgehen mit sehr großen Matrizen. Das ist natürlich für viele Verfahren viel einfacher, so das so hinzuschreiben. Wenn man zu viele Fehler hat, kann man nichts korrigieren. Also wir immer nur so viel wie dieses Verfahren verspricht und dann vielleicht noch ein bisschen mehr. Also wenn die H-Matrix zum Beispiel ein bisschen verdreht ist, vielleicht eine andere Darstellung einfach. Wir nennen es jetzt nicht mehr b.1 und b.17 und es schaut nicht mehr so aus wie der Code, den wir vorher verwendet haben, wenn es ein Zufall als Matrix ist zum Beispiel. Es gibt viele Attacken, die sind nicht so gut, aber sie funktionieren nur noch. Dass wir jetzt ein Code basierter Krypto machen ist, wir benutzen diese Kombinationen. Was uns noch rettet, ist das, was wir in den 70 Jahren entwickelt worden ist, in den 1978, nur in einem Jahr nach ASA und der Code und das Verschlüsselen als Verschlüsselung. Ihr verschlüsselt ein Vektor und dann fügt ihr einige Fehler hinzu und sie können es tatsächlich nicht brechen. Sie benutzen einen speziellen Coder drin, der ein paar Jahre davor entwickelt worden ist, und dann kam mit einer Version, die kleiner war, wo der öffentliche Schlüssel kleiner war. Das war ein ähnliches Ding, was ihr dann früher gesehen habt mit der HM Matrix und das H ist unser öffentlicher Schlüssel, unser geheimes Schlüssel, das ist der Algorithmus, den nur ich weiß, das ist der Goppercode. Aber da gibt es sehr, sehr viele Goppercodes für die gleiche Größe. Dann könnt ihr den Goppergruppen mit 2.000 Bits haben und da sind sehr, sehr viele Möglichkeiten drin und in eurer Verschlüsselung ist ein Vektor zu nehmen mit einer bestimmten Anzahl an Bits und das mit H-Multipositionen, das ist Auskommen mit H-Multipositionen. Und dann Peter Schwabe und Tung Schur haben einen sehr effizienten Implementationen davon entwickelt, das ist McBlitz. Und dann lassen wir noch ein bisschen darüber reden, warum wir es sicher sind, dass es funktioniert. Und das passiert auf Hash-Funktionen und Hash-Funktionen sind bei Definitionen etwas, was nur einen Weg funktioniert. Und wir haben Leute, die das nachgucken, warum das sicher sein kann. Und dann McBlitz sagt, wir haben dieses harte Problem und einen zufälligen Schlüssel zu entschlüsseln ist ein Schlüssel und dann fällt sie raus selbst, wenn das ein sehr klein Schlüsselwort ist und ist es NP-hard. Und diese dann kam, nachdem es für Krypto vorgeschlagen worden ist. Und dann gab es sehr, sehr viele Studien dazu, was für den Fall, wenn der Angriff für einen Quanten Computer hat. Und es ist sehr, sehr klar, dass wir Schaub benutzen können. Aber wir können Grover benutzen, aber es ist nicht klar, wie viel Grover uns geben kann. Wir hatten diesen S256, der zur SH64 führte und wenn ihr Konservativ-Seiten auf der sicheren Seite sein wollt und dann geht ihr für ein Schlüssel von 256 für den öffentlichen Schlüssel und dann bei dem Postquantum bekommt ihr etwas und wo noch mehr Forschung nötig ist, wie weit wir die Schlüssel verkleinern können, um Postquanten, Krypto sicher zu sein. Vielleicht in fünf Jahren oder weniger in fünf Jahren und wir können euch etwas sagen, was weniger ist, aber genauso sicher ist. Der etwas war, das ist, das ist genannt, QCMDPC. Einige von diesen Variationen haben standgehalten, andere nicht. Nur jetzt einige Leute können dann noch und niemand weiß, was passieren kann, wenn nach mehr Leuten dran gucken. Und dieses Neu, aber das wurde noch nicht häufig untersucht und nicht in die richtigen Richtungen untersucht. Durch die Prequantumzeit hat niemand geschafft das zu beschädigen. Und sie haben 600 Beit für den öffentlichen Schlüssel. Es ist nicht sehr groß, aber es ist groß genug. Und das ist, da seit den 1990ern, das ist das NTU und dann gibt es noch mehr Gitter-basierte Systeme. Da ist das Einzel von 2009 von SmartVacom. Und das wurde, aber es wurde dann in Pillennialzeit von einem Quantencomputer in der Postquantum-Krypto gebrochen. Aber alle diese haben den Vorteil, dass die Signaturen, die diese Systeme in den Schlüsseln sehr, sehr klein sein können. Und da gibt es sehr, sehr viele Vorschläge. Einige von diesen gebrochen, einige nicht. Da gibt es Teile, die sind ungebrochen für 20 Jahre. Und vielleicht bleibt es bestehend. Mal gucken, wie das ist, wenn mehr Leute sich danach damit beschäftigen. Und wenn man mehr Beschränkungen in der Leistung hat, dann sollte man mehr in diese anderen Sachen gucken. Müssen wir gucken, wie gut wir zwischen diesen ganzen Möglichkeiten entscheiden können. Das Letzte ist für Leute, die elliptische Kurven mögen. Und das zeigt die gleichen Datenfürste, wie Diffie Heyman. Und so kann man das einfach mit Diffie Heyman wieder verwenden. Und sehr, sehr viel mehr Arbeit, sehr, sehr viel Möglichkeiten gibt es hier. Letzte Folie, wenn ihr für mehr Informationen gebraucht, ist das hier unsere erste Übersichtseite. Das ist der erste Punkt. Und da gibt es auch eine Übersicht über Literatur, wo ihr dann Papers findet, die zur Post Krypto geschrieben worden sind und die findet dann hier. Und auf der Startseite haben wir auch links zu den ganzen Konferenzen, die zurzeit sind. Dann der zweite Punkt, das ist die Hauptseite für das EU-Projekt. Das hat erst dieses Jahr angefangen, aber es wird bald freie Bibliotheken, freie Software-Bibliotheken veröffentlichen. Und auch Benchmarking, sodass man unter den Bedingungen die Krypto-Algorithmen vergleichen kann. Und da wäre vielleicht eine Spring-School oder eine Summer-School in 2017 sein. Dann gibt es noch den Pico-Crypto-Twitter-Feed. Und natürlich habt noch ihr die Verantwortung, ihr müsst das Zeug lernen, ihr müsst über diese Hash-Based und GitHub-basierten Sachen lernen, weil in der Zukunft alle Krypto-Post-Quantum-Krypto sein wird. Und wenn ihr euch für diese Zukunft anpassen wollt, dann müsst ihr euch diese Systeme angucken und Verbesserung finden und schreibt darüber Papers und implementiert diese Sachen, implementiert diese Sachen im Netzwerk entwickeln. Das ist vielen Dank für eure Aufmerksamkeit. Wow. Now we'll have some short questions, please. Es gibt noch ein paar kurze Fragen. Da ist ein Mikrofon, ein Mikrofon 1. Schnelle Frage, da war es das Graphiomorphism. Sie verstehen das Gebiet nicht wirklich und das sind nur ganz Oberflächenähnlichkeiten. Gibt es da irgendwelchen Weise, dass Sachen, die an dem Beweis verwendet hat, auch hier verwendet worden sind? Graphiomorphism sind heutzutage schon ziemlich weit vorgeschritten. Es ist insofern wichtig, weil Graphiomorphismen immer bekannt waren, dass es nicht in polynomialen Zeiten lösbar ist. Aber jetzt gibt es irgendwie den Fortschritt zu dahin, dass man die meisten Fälle relativ einfach lösen konnte bis auf merkwürdige Sonderfälle und er war jetzt ein Stück weiter, das man auch die anderen einfach lösen kann und er hat jetzt das Neues erfunden. Das funktioniert aber nur, wenn man ein Haufen Informationen rausrückt an den Angreifer. Jetzt funktioniert es in den meisten Fällen, aber nicht in diesen Randfällen. Ganz ehrlich, wir gehen in eine ganz andere Richtung, weil wir lassen keine, also wir versuchen einfach nicht viele Informationen an den Angreifer rauszugeben. Insofern ist das nicht wirklich relevant für uns. Nächste Frage, Nummer 1. Hallo, danke für den Talk. Wir sind die Chancen, dass man damit wie vorwärts Sicherheit haben könnte. Du hast über den Dave Heimann gesprochen, ist das der Einzige? Ja, man kann vorwärtsgerichtete Sicherheit haben mit den normalen Verfahren, zum Beispiel indem man jedes mal einen neuen Schlüssel erzeugt. Man kann auch bei RSA diese Sicherheit haben, indem man einfach einen Einmarschlüssel nimmt und den dann von Alice zu Bob schickt. Wenn Alice diesen Schlüssel nie zweimal verwendet, dann ist es vorwärtssicher. Und genau wie man das mit RSA macht, könnte man das auch mit McLeese Schlüssel machen. Das Problem ist halt, dass die Schlüssel relativ groß sind bei uns und das ist ziemlich unpraktisch, wenn man wirklich anfängt mit jemanden zu reden. Hey, ich bin dein Kleinen, du bist mein Server und das Essen musst du mal einen Megabyte Schlüssel übertragen. Aber auf der einen Seite kann man es natürlich machen. Klar, es ist halt nur relativ aufwendig sein Protokoll darauf, um rumzubauen, dass man halt so viel erwartet. Und ja, dann hätte man diese Vorwärtssicherheit. Ohne transferieren den Schlüssel. Also man trägt immer den ersten Teil von so einem diskreten Log. Es geht nur darum, um die Methode, wie die öffentlichen Schlüssel verwendet werden, die sich unterschneidet. Da sind zwei Fragen von dem Internet, die ein bisschen verwandt sind. Die erste ist gegeben, dass ein Funktionen in der Quantum Computer ist. Wie startet man, wie startet man Quantum Algorithmen zu entwickeln? Und die zweite verwandte Frage, das alles ist darauf basiert, dass die Haschfunktion auf einen Weg funktioniert. Wie kann man wissen, dass da kein Quantum Algorithmen ist, der das nicht bricht? Kann man das beweisen? Also die Technik, die man da verwendet, ist die Kryptoanalyse. Und wir schauen uns die Verfahren genau und überlegen uns, kann man einen Algorithmus finden, der das besser knackt als sie bisher. Und wir versuchen halt, möglichst viele kürige Köpfe zu finden, die dann den anderen immer einen Schritt voraus sind. Aber wir haben keine Garantien, dass das so ist. Und es gibt noch die sehr extra Schwierigkeit. Wir haben natürlich noch keinen Quantum Computer. Also wir können auch nicht verifizieren, dass die Quanten Algorithmen, die wir entwickeln, dass sie dann auch wirklich so funktionieren. Also zum Beispiel das Zahlfeld Sieb können wir nur überprüfen durch Experimente. Und wenn wir die nicht haben, und das ist bei Quantum Copies in der Fall, dann kann man sich halt nicht so wirklich sicher sein. Klar, irgendwann werden wir sie haben. Und dann, wir haben auch Ideen, wie man sowas simulieren kann vielleicht. Und es gab auch schon erste Erfolge in der Richtung, aber wir können bisher halt nur über Simulationen sowas machen. Und beim zweiten Teil, also wir verwenden natürlich immer den pessimistischsten Schranken bei solchen Schätzungen. Wir gehen davon aus, dass es in Wahrheit deutlich besser ist. Also wir sind immer auf der pessimistischen Seite und haben dann die Hoffnung, dass es immer noch ein bisschen besser ist. Und die Frage ist jetzt, wie testen wir sowas überhaupt? Also bei den konstruktiven Algorithmen war wirklich auch ein Verfahren dafür gehört zum Schluss. Die kann man zur Not auch auf den normalen Computer laufen lassen. Man kann die ein bisschen testen. Wir haben auch Benchmarks. Wir haben Zahlen, wie sie sich verhält für jetzige, aber mehr nicht. Ich habe eine Frage von der Verwendbarkeit von diesen Methoden. Wie viel Zeit wird es, wie viel Größenordnung ein 48, ein 48 Bit-Krieg zu tun? Also quasi instantan. Weißt du noch irgendwas über andere kriptografische Primitives? Zero Knowledge Beweise sind ein nicht interaktiver Teil. Das ist sehr nahverwandt mit Signaturen. Und ja, es gibt auch Werkarbeit, die in die Richtung geht, aber wir sagen natürlich nicht, macht keine Forschung in der Richtung, macht die bitte. Warum popt ihr so viel Bedeutung auf die Schüssellänge? Insbesondere in so einem Delikaten, die immer wie PostQuantum und Kriptografie, wo es sehr, sehr schnell gehen kann, diese zu auszurechnen. Also um ehrlich zu sein, unser Vorschlag ist es sogar im Moment, dass man genau dieses ein MB Schüssell verwendet und das Verfahren, das da dran hängt. Das Schöne daran ist, dass Verschlüsselung und Entschlüsselung total effizient ist. Aber das war nicht unser Hauptziel. Also was wir haben wollten, war etwas, was wir als wirklich sicher erachten und wo wir davon ausgehen, dass es auch einem Angriff standhält. Und wenn man das dann hat, okay, dann kann man versuchen, das zu optimieren. Und die Implementierung, die wir jetzt vorschlagen, ist sogar besser als eliptische Kurven-Kriptografie in jeder Hinsicht bis halt auf den Platzbedarf. Applaus nochmal für die beiden. Ihr habt die Übersetzung des Vortrags PostQuantum Computation Hacks.