 Okay, lass uns anfangen. Es ist eigentlich nett, Daten zu verschlüsseln. Und es ist natürlich auch netter, wenn man sie dann auch online speichern kann. Aber dann hat man natürlich das Problem, dass mit der Cloud gewisse Risiken verbunden sind. Der nächste Vortrag wird einige Lösungen zu diesen Problemen vorstellen. Tobias Müller und Christian Vorler stellen Ansätze vor, wie man durch verschlüsselte Daten suchen kann, ohne zu wissen, was der Schlüssel oder der Klartext der Information ist. Also ein warmer Applaus bitte für unsere Sprecher. Perfekt, vielen Dank. Vielen Dank, dass ihr hier seid am vierten Tag nach dieser großen Partynacht. Es freut mich, so viele Leute hier zu sehen. Also ich bin immer noch überrascht, dass es so viele Leute sind nach der großen Partynacht gestern. Es ist richtig, wir beschäftigen uns mit dem Problem, Daten so zu verschlüsseln, dass man immer noch sie durchsuchen kann, so dass man die Innerheit des Ciphertexts suchen kann. Und in diesem Vortrag werden wir einige Lösungen vorstellen, die dieses Problem adressieren und die euch hoffentlich inspirieren werden, diese Technologien auch von euren Cloud-Providern zu verlangen. Und natürlich, dass ihr auch hackt und programmiert mit dieser Technologie. Und in den nächsten 45 Minuten werden wir eben darüber sprechen. Und danach werden wir dann auch noch einige Fragen beantworten können. Und wir werden auch bei der Bar hinter der Lecture Hall sein, um noch weitere Fragen zu beantworten oder einfach zu reden. Das ist unser Plan für den Vortrag. Wir wollen erst mal erklären, wie wir die Dinge sehen, wie wir die Welt der Clouds und Verschlüsselung sehen. Und dann wollen wir einige Verschlüsselungsschema zeigen, wie man innerhalb einem Ciphertext suchen kann. Lasst uns über die Cloud sprechen. Wer von euch nutzt die W-Cloud? Eine ganze Menge Leute melden sich. Das ist wahrscheinlich die Mehrheit. Das ist auch das, wie wir uns das vorstellen, wie wir uns die Welt vorstellen. Dass viele Leute externe Cloud-Provider verwenden, um ihre Daten hochzuladen, um auch die Kundendaten abzulegen. Ich gehe mit Stan, ein sehr vertrauenswürdiger Typ. Ich lade meine Daten hoch und die ersten Zweckige dabei sind kostenlos. Und er verspricht mir auch, dass es die im Zeitpunkt die Daten runterladen kann. Es gibt natürlich viele Alternativen. Man muss nicht unbedingt ihn nehmen. Es gibt viele Cloud-Services, die man nehmen kann. Einige erlauben es nur, die Daten hochzuladen, andere auf die Kontakte. Alle versprechen, dass sie eure Daten nicht durchwursten und sie einen Provider oder einen User-Profile anlegen. Manche werden sich deine Daten verarbeiten, um dich eine bessere Ansicht zu geben. Sie buchen deine Key-Way, Schüsselwörter und sie sagen dir, welche Werbung am besten für dich sind. Ich zahle Geld dafür. Ich zahle diesen Premium-E-Mail-Premium-Kalender. Sie haben keine große Anreize, um mich zu bescheißen. Aber wenn Sie extra Profit machen können, dann vielleicht machen Sie es auch. Wir sind Kryptografer. Wir wollen nicht unbedingt die Garantie, dass Sie nicht an die Daten anschauen. Diese Garantie ist nicht auf Papier, sondern wir wollen die mathematische Beweis, dass Sie es nicht können. Also, dass Sie es technisch nicht können. Sie können dann nicht durch unsere Daten gehen. Wir suchen eine kryptografische Lösung zu diesem Problem von Daten hochladen und jedoch erlauben, Operationen durchzuführen auf diesen Daten. Das Problem ist, wie ich gesagt habe, der Provider geht durch die Daten und extrahieren Informationen über sie, über ihre Nutzung. Also, ganz normale Daten zu minnen, Data-Mining, ist nicht so kompliziert. Es ist einfach, und es ist ganz normaler Text, man kann dann einfach analysieren. Und wir denken, dass es der falsche Weg ist. Wir denken, wir als Community, als Gemeinschaft, als Hackers, sollten wir aktiv arbeiten, daran, dass die Provider überhaupt nicht in der Lage sind, an die Daten anzuschauen und uns nicht zu profilieren und nicht vorhersagen, was wir zunächst machen. Danke. Eine Runde Applaus. So, wir haben die Frage. Warum verschlüsselst du nicht? Warum machst du keine Verschlüsselung auf deine Daten, bevor du das hochledest? Weil die Verschlüsselung wird uns alle retten vor der dunkle Seite der Datenanalyse. Und die Szenario, das wir im Kopf haben, als wir dieses Slides vorstellen, in unserem Szenario, der Nutzer hat Daten lokal und der lädt die Daten hoch zu einem dritten Partei. Und dann vergisst er die Daten lokal, weil es ist alles hochgeladen und du brauchst nicht unbedingt wissen, was du alles für Daten online hast, aber später möchtest du irgendwie durchsuchen, welche Dateien da, welche Kontakte habe ich, ohne unbedingt diese gesamten Daten zu haben. Auf den einen Gerät, wo man das nutzen will, zum Beispiel ein Handy. Was wir machen werden ist, wir werden schemes vorstellen, Möglichkeiten vorstellen. Aber diese Möglichkeiten, diese Technologien sind nicht fertig, sind nicht so hife, nicht so plug-and-play. Und dass man das einspielen und dann ist fertig. Also, man muss immer noch die Schlüssel handeln. Es ist, ja, das ist der Science Track. Also, das ist Wissenschaft hier. Das ist akademische Arbeit derzeit. Und manchmal ist es ein bisschen kompliziert, das in der echten Leben zu verwenden. Also, behalt das im Hinterkopf, als wir da die Slice vorstellen. Ja, wie ich sagte, wir versuchen gerade euch zu zeigen, eine Richtung, die euch inspiriert, dass ihr wisst, was, wonach ihr gucken sollt, wenn ihr implementiert, oder wenn ihr so was bei eurem Anbieter nachfragt. Erste Sache, ganz einfache, ganz, ganz einfaches Verschlüsselung, die erlaubt, eine verschlüsselte Suche. Als Ingenieur versuche ich die minimale Lösung, die einfachste Lösungen und dann die Hochbauern und immer besser verbessern. Unsere erste Ansatz ist, wir verschlüsseln alles. Klingt einfach, es ist auch einfach. Also, wir haben unsere Daten und verschlüsselt und wir verschlüsseln jede Datensatz und wir laden das dann hoch, das verschlüsselte. Ganz einfach, fertig. Aber wenn du eine Suche machen möchtest, was du, du musst alles runterladen. Du musst komplett die Daten, die gesamte Datenbank, frag mal die Datenbank, hol mal alle Datensätze und dann alles entschlüsseln und dann hat man den Unverschlüsselte, den Klartext. Und, ja, das ist ein Ansatz ist, nicht unbedingt, was wir wollen, aber sehr einfach, aber wenn du auf dein Handy bist, willst du nicht deine drei Terabyte Filme herunterladen. Deswegen ist es nicht so einen guten Ansatz. Wir wollen da Hochbauern, wir wollen Lösungen, die einfach besser funktioniert. Aber wie ich möchte sagen, das ist implementiert in kommerzielle Produkte, die du kaufen kannst. Also Proxy Produkte, die verkaufen. Also das ist ungefähr ein Gerät, dass man zwischen dich und Gmail verpackst. So, das wird verkauft. Die Frage ist als Ingenieur, können wir besser tun? Können wir es besser? Und die Frage stelle ich Christian vor. Ja, wir können das besser machen. Natürlich können wir das. Ja, das ist die, das sehr geil ist. Okay. Die Cloud, wir wollen, dass die Cloud die Suche für uns durchführt. Es ist ein Cloud-Dienst und also wollen wir, also wollen wir diese Rechnung, diese Suche nicht auf unserem eigenen Computer machen, insbesondere mit den großen Datenmengen in der Cloud. Und Verschlüsselte Daten zu durchsuchen, das klingt ein bisschen wie Magie, aber tatsächlich ist es ziemlich einfach. Also, wir können es besser machen. Und zwar, Daten in der Cloud zu durchsuchen geht, einfach mit einem deterministischen Verschlüsselungsschema oder Algorithmus. Wir haben, also wir haben einmal den plaintext und dann haben wir auch den verschlüsselten Text. Also identisch verschlüsselter Text und identisch verschlüsselter Text. Und das Ganze ist deterministisch, so dass es alles eine 1 zu 1-Smapping ist. Und nun, es funktioniert nicht, es ist kaputt, also zumindest jetzt die Präsentation. Augenblick, wir versuchen das wieder hinzukriegen. Soll ich das nochmal alles durchgehen? Hat jemand was nicht verstanden? Soll ich die Zfolie nochmal durchgehen? Wir waren hier, richtig? Okay, sorry about that. Okay, das war der falsche Knopf, Entschuldigung. Ich habe es eher mit Kryptografie und nicht so mit Computern. Okay, also das ist ein 2-Button-Interface, richtig? Das hätten wir vorher proben sollen. Ich glaube, diese Computer, wenn sie sich nicht durchsetzen. Ja, das ist der richtige Knopf. Du bist gehackt. Oh, ich habe einen Crash Report gekriegt, das ist natürlich praktisch. Okay, liebes Publikum, bitte hört auf unseren Rechner zu hacken. Okay, wir machen trotzdem weiter. Okay, den Slide überspringen wir jetzt. Nicht den Knopf drücken, nicht den Knopf drücken. Okay, vielleicht drück ich den Knopf. Oh, meinst du das ernst? Nächste Folie, oh nein, das ist jetzt schon wieder das gleiche. Ernsthaft, das ganze stürzt ab. Okay, also kannst du in der Zwischenzeit einen Witz erzählen? Lass mich nur das Vorrend dann durchführen und abschießen. Also wir haben natürlich noch nie die Slides mit diesem Programm. Wir sind die noch nicht durchgegangen? Natürlich nicht. Okay, also ich springe nicht durch die Slides, ich gehe da direkt hin, aber okay, hat nicht funktioniert. Keine Sorge, wir haben das alles im Griff. Hey, wir haben es geschafft. Okay, endlich. Deterministische Verschlüsselung. Gleicher Klartext, gleicher verschlüsselter Text. Und für jeden verschlüsselten Text. Schaut man einfach, ob es ein Match ist oder nicht. Wenn es ein Treffer ist, dann ist es super. Dann ist das Schlüsselwort halt Teil vom Ciphertext. Das ist ziemlich einfach. Ja, allerdings ist es etwas zu einfach. Okay, also okay, es funktioniert. Okay, aber bei diesem Schema, es muss ja irgendwo was faul sein. Das Problem ist natürlich, deterministische Verschlüsselung ist nicht wirklich sicher. Also ihr könnt ja alles Beispiel mit dem Pinguin, wenn man jetzt deterministische Verschlüsselung durchführt. Es ist halt nur teilweise der Klartext. Und die Frage ist natürlich, können wir das jetzt besser machen? Weil das ist nicht das, was wir wollen. Wir wollen natürlich unsere Daten verstecken. Und das Ganze wirklich gut verstecken. Und da gab es halt diese Idee von Song Warner & Peric. Und es funktioniert wunderbar. Es benutzt halt dieses Deterministische Verschlüsselungsschema. Also das Ganze ist natürlich noch nicht für sich gesehen total sicher. Aber das können wir natürlich korrigieren. Und wir verwenden dann einfach ein XOR mit einer Bitmaske. Und die Maske ist halt ein zufälliger Bitfolge, also ein One-Time-Pad. Und man kann dann halt einfach eine Stream-Ziffer benutzen und kein richtiges One-Time-Pad. Und dann haben wir natürlich das Problem. Aber wenn wir das dann alles verschlüsselt haben mit der Maske, wie können wir dann noch die Daten auf dem Server durchsuchen? Und das ist der Punkt, wo wir das Publikum vom Verständnis sehr verlieren. Okay, jetzt wird es kompliziert, also festhalten. Okay, jetzt kommt die Magie. Okay, wir brauchen eine magische Maske, damit das alles funktioniert. Okay, lass uns schauen, wie wir so eine Maske herstellen können. Wir teilen die Maske in eine linke und eine rechte Seite. Oh, die linke Seite. Dafür verwenden wir zufällige Bits. Und dabei können wir einfach eine Stream-Schiefe verwenden, um die Bits zu erzeugen. Keine große Herausforderung. Und dann machen wir die sicherministische Verschlüsselung von dem Keyword. Und dann teilen wir das Schlüsselwort in einen linken und in einem rechten Teil. Und von dem linken Teil besorgen wir uns einen dritten Schlüssel oder generieren einen dritten Schlüssel. Und dafür verwenden wir eine Key-Tash-Function. Und dann Edge-Mac, ich weiß nicht, was Edge-Mac heißt. Und dann haben wir halt unseren Suchschlüssel. Und dann, wenn die linke Seite. Und wir, anhand von der beiden Daten, haben dann unsere Maske. Die rechte Seite ist TI, die linke Seite ist SE, und recht ist TI. Unsere deterministische Verschlüsselung. Und mit der linke Seite des Maskes rechnen wir die rechte Seite des Maskes. Das ist praktisch. Und dann nutzen wir das aus. Um die Suche zu machen. Ja, das ist die Grundidee. Wir können die rechte Seite der Maske durch die linke Seite. Das ist die Grundidee. Und nun, lass uns mal mit unserer magische Maske. Lass uns mal Magie machen. So, wir laden unserem Zeug hoch mit Schlüssel und plaintext. Wir machen Verschlüsselung. Und dann, wir machen unserem XOR mit unserer magische Maske. Und dann laden wir es in der Cloud hoch. Das klingt cool. Und nun, jetzt fängt die Magie an. Später, wollt ihr etwas suchen. Und das heißt, für eine Suche, also ihr müsst eine deterministische Verschlüsselung und die Suchschlüssel. Jedes Mal, dass wir eine Suche machen, laden wir beide hoch. Dann, der Cloud kann testen für jede Cyphertext von unserem Sammlung ob unserem deterministische Cyphertext eine magische Maske ist. Und wenn es eine magische Maske ist, dann ist es einen Treffer. Und jetzt können wir sehen, ob dieses Teil von unserem verschlüsselten Text. Und jetzt können wir suchen über verschlüsselte Daten. Das ist super und schön. Jetzt ist es fertig. Nein, nicht wirklich. Es gibt, also es ist, wir haben da ein großes Problem, zwei großes Problem. Zuerst ist es nicht super sicher. Es hat statistische Analyse ganz brechen. Was bedeutet das, dass wenn ich weiß, jemand, mein Victim ist, ist jemand von der Wikipedia Community. Denn, und letztes Sachen hoch, dann vielleicht hat es mit Wikipedia zu tun. Und dann kann ich, ich kann, ich kann die Suche, die Suchwörter erraten und die Frequenz von einer Suche. Und hier, also ein großes Wort bedeutet sehr oft gesucht und kleiner bedeutet nicht so oft. Und damit kann man erraten. Und dann nutze ich, also dann kann ich den User überwachen und dann gebe ich zurück die Queries, die speichere ich. Und irgendwann mal kann ich meine, was ich geraten habe, gegen das, die tatsächlich erwartete. Und damit kann ich sagen, hey, diese Person sucht gerade viel für 0x94 und so weiter. Und das ist eine große Chance, dass er sucht nach, nach den Cypher Texten, verschlüsselte für Wikipedia oder Foundation und meine Opfer, guckt immer nur einmal für den 0x, was auch immer. Und das ist dann, das muss einfach den kleineren Wörter, wie zum Beispiel Leist oder Licensed. Und das ist, wie ich meine, der Cypher Text zur Teil, teilweise nachbauen. Und wenn man sehr viel sucht, dann, man kann dann den Teil der Cypher Text verschlüsseln, entschlüsseln. Und das ist ein Problem. Dann gibt es das zweite Problem und die Geschwindigkeit. Und wir haben symmetrische Verschlüsselung. Das ist nicht so schlimm wie eine fröhliche homophomische Verschlüsselung. Aber zuerst habe ich ein Zeug implementiert. Und wie schnell das geht. Und die erste Sache ist, der Cypher Text ist eigentlich sechsmal so groß wie der plain Text, also wie der unverschlüsselt. Jeden, ich habe Padding zu 32 Bit, bevor ich das überhaupt verschlüsselt habe. Dieses Padding ist sehr wichtig, weil wenn man verschlüsselt, normales, normale Sprache, Wörter, kann man, hat man schon sehr viel Informationen. Ja, nein. Und wenn der Cypher, wenn der Verschlüsselt, sollte immer aufgebuffert sein. Und einfach anhand der Länge vom Cypher Text, kann ich eine Menge über den unverschuldeten Text lernen. Okay, das ist einfach ein Fakt. Es hängt davon ab, was ihr verschlüsselt. Dann ist natürlich noch die Frage, wie lange dauert es, etwas zu verschlüsseln. Das ist relativ schnell. Wir haben AES, Symmetrische Verschlüsselung von Intel verwendet. Aber das war jetzt alles auf einem Single Core Maschine. Also meistens hat man ja mehr Kurs. Und die Suche könnte ein Problem sein, weil man linearer Zeit braucht. Für jedes Wort hat man halt, für jedes Wort muss man halt jeden Eintracht anschauen, wenn man das mit Big Data macht oder mit großen Datenmengen, dann muss man halt ein paar Minuten warten auf die Suchergebnisse. Das ist gut, wenn man gerne Kaffee trinkt und Kaffee pausen macht. Aber meistens will man das nicht wirklich. Dann werden ja schnelle Suchergebnisse. Was können wir besser machen? Können wir die Suchzeit optimieren? Was wir machen können, ist jetzt, was haben die Datenbank oder die Betriebssystemen Leute gemacht, um solche Probleme zu lösen? Denn sie müssen ja schnell suchen. Und sie verwenden Indizes. Also sollten wir auch einen Index verwenden, um die Sachen zu beschleunigen. Also nochmal, hier haben wir den einfachsten, also die einfachste Variante ist halt ein Klartextindex auf dem Klein zu haben. Also zum Beispiel. Und dann kann man halt... Also hochgeladen, verschüsselt. Und heutzutage, ihr habt euer Smartphone, ihr Tablets, ihr Notebook, der PC Your Server, dein anderes Server, 15.000 Bots, das wird ein bisschen viel. Und dann, es ist kautisch, wenn du versuchst, irgendwas zu synchronisieren. Manche Leute wissen wovon wir reden. Es funktioniert nicht. Der nächste Versuch ist, lass uns mal den Index verschlüsseln und den hochladen. Okay, wir können das tun. Einfach als komplette Hochladen, verschlüsselt, sicherer Verschlüsselung. Und dann, man kann den Index runterladen jedes Mal. Der ist immer aktuell. Und dann der für Entschlüsseln. Ja, aber bei großem Big Data der Index ist ein paar Megabytes. Und das ist kein Spaß, das alles runterzuladen. Insbesondere, wenn du irgendwie auf dem Dorf mit deinem billiges DSL in Deutschland, das ist überhaupt kein Spaß. Ich will mein Index jetzt. Ich will nicht 10 Minuten warten, ich will nicht 20 Minuten warten, ich will denn jetzt. Das ist keine gute Benutzererfahrung. Um das zu machen, brauchen wir ein bisschen vortrittlichere Krypto. Zuerst, wir müssen einen Sonderindex generieren. Zuerst, brauchen wir die Suchschlüsseln, einen Indexlüssel und für diesen Beispiel wollen wir einen Index für den Tabelle generieren. Und wir wollen die Nachname suchen. Für jede Nachname machen wir einen Suchschlüssel, einen Indexlüssel und mit der Suchschlüssel machen wir einen Hasch, 0 und das ist unseren Suchtoken. Und damit haben wir unseren Token. Und dann mit dem Indexkey-Schlüssel sprechen wir die IDs. Und das funktioniert. Wenn man eine Suche machen will, dann einfach einen Suche, Hochladen von der Suchschlüssel und von der Nachname und dann der Cloud kann den Index nachsuchen. Und wenn es ein Hit bekommt, verschlüsselt das Index und schickt es uns. Das ist beeindruckend. Das hat ein leichtes Problem, weil bei üblichen Namen wie Müller oder Schmidt, es gibt sehr viele Einträge. Sehr viele Hits, sehr viele Werte, sehr viele IDs, ganz viele für Smith. Und damit ist die Größe der Wert größer als die Größe von Voller. Es ist nicht so oft. Und wenn man den Zugang zu den Index hat, anhand der Größe des Wertes kann man versuchen, können wir auch der Plaintext erraten, schätzen. Einfach von der Größe des Inhalts. Also wir müssen die Größe verstecken. Also die Frequenz der Nachnamen. Also ansonsten wird es nicht schön. Wir wollen unserem Index verlieren können, ohne... Wir wollen unserem Feind der Index geben, ohne ihn Probleme zu geraten. Das ist das Problem. Der Feind. Und der Gegner hat halt niemals den Zugriff auf unseren Index. Okay. Wir vermuten, dass der Gegner Zugriff auf den Index hat. Aber wenn er den Index hat, dann verrät das halt nichts über unseren Klartext. Daher müssen wir jetzt die Größe der Information verstecken. Und es gibt da eine coole Idee von Cash at All, die letztes Jahr folgende Idee vorgestellt haben, wie man die Größe verstecken kann. Und das macht man indem man den Index ausdünnt, outflatten. In der ersten Reihe, wenn euer Index FU ist, dann machen wir einen Eintrag FU. Und die Häufigkeit ist Null. Und dann verschlüsseln wir die Reihen-ID. Dann haben wir Bob, der ebenfalls FU als Nachname hat. Und der Name hatte, aber einmal vor, also häschten wir 1 anstatt Null. Und dann haben wir Bar als Nachname. Und soweit hatten wir keine Vorkommnisse von Bar. Und deswegen häschten wir einfach Null unter dem neuen Suchschlüssel für Bar. Und dann verschlüsseln wir den Wert und die Reihen-ID. Und der Eintrag von unserem Index. Wir alignieren, also wir errichten das nach Größe aus, so dass der Gegner nicht mehr so viel sieht und nur eine Reihe von zufälligen Werten oder scheinbar zufälligen Werten. Und nochmal zusammengefasst, also man verschlüsselt den Klartext mit dem Bliebdingsalgorithmus der Wahl. Dann generiert man den Index und legt den Index hoch. Und nun können wir, jetzt kann die Cloud auch über unsere Daten suchen. Und für jede Suchanfrage haben wir den Schlüssel und den Index. Und dann kann die Cloud mit dem Schlüssel und dem Index suchen. Dann machen wir einen Lookup. Dann machen wir eine Suche für Null im Index. Und dann schauen wir 1, okay, hat noch ein Treffer. Und dann schauen wir 2, okay, kein weiterer Treffer. Und dann haben wir die Werte. Und dann haben wir die Werte. Also ich habe dann nochmal den gleichen Klartext, wie vorhin verwendet, für meinen Benchmark. Ich verwende die King James Bibel, weil viele Leute das auch benutzen als Benchmark und es hat halt eine bestimmte Zusammensetzung von Wörtern. Und hier habe ich mich nicht ums Auspolzern, der Wörter gekümmert. Ich habe es einfach so als binären Block betrachtet. Je nach Situation muss man halt auspolzern, also der Strings machen. Die Indexgröße ist okay. Abhängig vom plaintext. Also man braucht ungefähr 32 bytes für jeden Eintrag. Oder 16 bytes für den Key und für die Suche irgendwie 60 oder so. Und 60 bytes für jeden Eintrag ist okay. Hängt von der Situation ab. Und das Coole ist, wir können die Suche in konstanter Zeit machen. Ich habe viele Tests gemacht und alle Ergebnisse waren und die Suche hat immer weniger als eine Millisekunde gedauert und das ist ziemlich gut. Die Geschwindigkeit ist gut und ja und alles ist jetzt wunderbar. Nein, wir haben schon wieder ein Problem mit der Statische Analyse, weil die Suchschlüssel ist die gleiche. Also wenn ich 20 mal den gleichen Nachname, dann habe ich 20 Ergebnisse. Aber wir haben Techniken, um das zu machen, um das zu verstecken, aber die Performance ist schlecht. Also dann können wir ein paar Stunden oder Minuten warten und die verschüttelte Textgröße wird explodieren. Also derzeit haben wir immer noch Probleme mit Statische Analyse, vielleicht in die Zukunft. So und nun, Tobi wird also wird ein Auskunft geben und Konklusion. So, das war faszinierend, oder? Du erlaubst jemand anderem, eine Suchoperation durchzuführen auf verschüttelte Daten obwohl die Daten verschlüsselt sind. Jegliche Operationen darauf, aber es ist möglich das sind ein paar Möglichkeiten, die wir da vorgestellt haben, die wir auch implementiert haben. Es gibt deutlich mehr. Also von was ich euch gezeigt habe, diese haben das Problem mit der deterministische Suchtoken. Wenn ihr zweimal für den gleichen Keyword sucht, dann wird ihr den gleichen Token generieren und der Dienstanbieter könnte das tatsächlich erraten, anhand der Suchkriterien. Es gibt weitere Versuche, andere Techniken um dieses Problem zu lösen, aber diese praktisch zu machen ist derzeit schwierig. Also für die letzten Jahre haben ganz viele Recherche drauf, ganz viele Forschung, aber derzeit das ist, was nutzbar ist. Den Rest ist von der Performance her viel zu schlecht. Von der Speicherplatz, es ist keine Möglichkeit, aber wenn ihr ein bisschen Zeit habt, dann könnt ihr da weitere Lösungen suchen um diese Probleme zu finden. Wir haben gesehen, dass diese Möglichkeiten wurden implementiert und es gibt deutlich mehr und wenn ihr ein bisschen Zeit habt, aber ihr möchtet lieber hacken als Forschen, guckt euch diese Papiere und baut Libraries dafür. Damit andere diese Libraries verwenden können und verschlüsseltes Dienste anbieten können. Idealerweise hätten wir eine kollaborative Arbeit um dieses Nachfrage zu machen. So, dass Leute das wirklich wollen. Wir werden keinen Let's Encrypt-Initiative starten, aber wir möchten euch dazu inspirieren, in diese Richtung zu gehen. Also, dass mehr Verschlüsselung in der Cloud und mehr Verschlüsselung im Internet bringen. Wir haben ein paar von diesen Verschlüsselungsschemas. Deterministische Verschlüsselung, das ist sehr einfach und ihr könnt das machen ohne viel Rechnung auf eurer Maschine. Die Suche ist nicht so cool, sicherheitstechnisch. Wir haben mit etwa besserem Schema mit Suche, wo man die Größe, also wo man besser suchen kann, aber das ist größer. Jeder Intext, es könnte oder könnte auch nicht sein, wenn ihr so einen Ansatz habt. Vielleicht wollt ihr den Cash Adals-Geschehen-Ansatz. Wenn der Index sauber sortiert ist, geht es relativ schnell. Das ist immer ein O1-Algorithmus. Allerdings, der Index jedes Mal, das ist eine Aktualisierung. Wenn eine neue Eintrag gegeben wird oder wenn es Änderungen gibt, dann bitte denkt dran. Es gibt weitere Ansätze, und sie haben alle leicht unterschiedliche Möglichkeiten. Abhängig von, was ihr tatsächlich wollt, ihr könnt etwas sehr Effizienzes finden mit weniger Funktionalität, das ihr erwartet von eurem Ansatz. Dann könnt ihr, wie viel Speicherplatz und Laufzeit es braucht, reduzieren sehr stark. Die Frage ist wirklich, denken an, was sind die Anforderungen? Wie ich gesagt habe, es gibt, wenn ihr ein bisschen Forschung macht, also sucht es ein bisschen, ihr werdet sehr viel finden, akademische Papiere und das ist ein Software-Implimentierung. Gibt es schon Libraries? Manche brauchen noch Arbeit. Wenn ihr Zeit habt, gibt Pudges. Oder baut die erstmal, damit wir schöne Sachen haben können. Ich hoffe, dass wir da vorgestellt haben. Ja, Suche auf Verschlüsseldaten ist praktisch. Ihr könnt die Datenverschlüsselung, ihr könnt das bauen. Ihr könnt das bauen ohne, dass der Server-Site tatsächlich alles lernt, also alles erfährt. Das ist, ja, wenn ihr in einer Gespräch seid, wisst ihr, dass es möglich ist, und ihr solltet das nutzen. Ja, gut damit. Vielen herzlichen Dank für die Aufmerksamkeit. Wir werden dann an der Bar sein. Die Hektar in diesem Talk werden wir an der Bar sein. Viertel vor Eins. Okay, jetzt zu den Fragen. Wer den Raum verlässt, seid bitte leise, damit wir die Antwort noch gut verstehen können. Nimm den Müll mit, Mikrofon. In Philip Rubberways sehr guten Paper, der Moral Character of Cryptography. Anmerkendes Übersetzer. Er zitiert gerade aus der wissenschaftlichen Veröffentlichung. Und ... Ich warte noch auf die Frage. Das ist eine Kritik von der Arbeit, von guter Cryptografi-Arbeit in eine ... Also, dass die Leute damit beschäftigt werden. Das ist ein sehr interessantes Papier. Wenn ihr ein paar Stunden habt, dann ist das ein sehr interessantes Papier. Der Papier ist sehr kritisch von der Crypto-Leute, dafür, dass sie völlig neben der echten Welt sind. Und der hat recht. Die voll homomorphik Forschungsrichtung ist sehr kompliziert. Es ist sehr viel Aufwand. Das ist völlig okay. Wir als Community sollten echte Lebenssachen ermöglichen. Diese Techniken, die wir haben, für Nutzung in einem echten Leben. Wie wir das vorgestellt haben. Ich habe es vereinfacht. So weit wie möglich. Und ich hoffe, dass wir nicht in diese Kategorie fallen. Also, gut, Crypto. Ich glaube, dass es jetzt langweiliger Crypto ist. Du kannst einfach so nutzen, deswegen ist es langweilig. Wenn wir Papier machen, das sind die Referenzen, die wir haben. Wenn ihr lesen wollt, dann bitte schön. Das ist das. Könnt ihr dieses Thema mit Iron Goldbergs Information Retrieval System vergleichen? Ich bin kein Super-Expert. Über den Ding. Aber ich glaube, dass es fast praktisch ist. Was wir da vorgestellt haben, ist tatsächlich praktisch. Hat eine praktische Anwendung. Also, diese andere Technik. Es hat Probleme mit mit dem Verschüsselten Text, mit der Suche, der Index, mit der Suchqueries, mit der Komplexität. Das mag vielleicht nicht so gut funktionieren mit viele Daten, als wir denken, dass es denkt. Ich glaube, das hat ein Skalierungsproblem. Auf kleinere Datensätze mag es sehr cool sein, aber mit sehr viel Daten, sehr schwierig. Weiterhin, es sind die Suche der Information. Man wird Sachen runterladen von der Server und der Server lernt, von was man runterlässt. Also, der Ansatz, dass er zeigt, der Server lernt. Also, wenn man das versteckt, dann wird es teuer sein. Und ich glaube nicht, dass es implementierbar ist, jetzt. Dass es sehr viel Arbeit noch zu tun. Ein Problem, dass ich hier sehe, ist, dass ihr erwähnt habt, dass ihr die Wörter so ausgepolstert habt, dass sie alle die gleiche Länge haben. Es gibt da ein Problem. Ich weiß nicht, ob ihr von der Verteilungshypothese gehört habt. Die Kollokationen von Wörtern, also das gemeinsame Vorkommen verrät etwas über den Inhalt oder die Bedeutung von Text. Und einfach durch die, indem man sich anschaut, wie verschlüsselte Wörter zusammenhängend auftauchen. Dadurch kann man halt rekonstruieren, welche Wörter das sind. Einfach sage ich, dadurch, dass sie zusammen, häufig zusammen auftauchen. Es funktioniert halt. Ich weiß nicht, ob ihr euch das schon angeschaut habt. Aber es ist halt eine potenzielle Schwachstelle. Dann ist halt jedes Wort immer noch der gleiche Token. Und das macht das Ganze halt anfällig für Rekonstruktion. Das ist ein Problem tatsächlich. Aber ich möchte noch mal dazu aufmerken, das ist deutlich besser als der Plantex-Hochladen. Derzeit laden wir Plantex-Hoch. Und Plantex zu bekommen aus Plantex ist gar keine Herausforderung. Deswegen, die initiale Performance ist, es wird etwas kosten, diese Analyse. Man muss wirklich böse Ansatz haben. Kriminelle Energie haben. Damit muss man wirklich ein Lexical-Attacke-Angriff. Es ist besser beim Hochladen. Ja, es gibt Probleme. Ich habe es euch gesagt, das ist nicht die finale Lösung. Das ist nicht die beste Lösung. Aber ich glaube, dass wir sollten auch wenn es tatsächlich, auch wenn es nicht bestimmte Angriffe, Angriffsszenario möglich sind. Das macht es auf jeden Fall schwieriger, die Daten zu analysieren. Also das wird sehr schwierig sein. Alle Daten. Ja, okay, ein Teil davon vielleicht. Aber das ist deutlich besser als Klartext-Hochladen. Vielen Dank für den Vortrag. Ich war recht angenehm, dass dieser Vortrag von einer Firma finanziert wurde. Vielen Dank dafür, dass diese Firma das unterstützt. Die neuen Antiterror-Gesetze in China wie beeinflussen die so etwas? Wenn man jetzt die Regierung sagt, dass man eine Backdoor haben muss und dass man die Sachen entschlüsseln muss. Wie muss man damit umgehen? Braucht man die Backdoor? Ich weiß nicht. Ich habe damit nichts zu tun. Ja. Eine Frage aus dem Internet. Was ist über Zusammenhänge? Normale Suchen geben einem den Zusammenhang, den Kontext? Wie geht ihr mit Kontext oder Zusammenhängen aus? Schwierig, Kontakt, also Kontext. Wie die Uhrzeit oder Ort, wo die Frage herkommt. Nein, die Wörter, die drumherum sind. Um die Sache, dass du so aus vielleicht Hitz sind, relevanter. Obwohl der gleiche Schlüsselwort ist. Ja, nochmal. Das mag ein Problem sein. Ja, sicher. Wir haben keine praktische Lösung derzeit. Aber es ist besser als nur Plaintexturladen. Ich verschlüsse das. Nutze das als Technik. Und die Feinde werden schwieriger Zeit haben. Als jetzt, als mit dem Plaintext. Ja, natürlich kann man sagen, es gibt dieses Problem, dieses Problem, dieses Problem. Nutze das entsprechend nicht. Aber nutze es nicht. Heißt, du nutzt Plaintext. Und die Militär sind völlig begeistert. Wenn man Klartext nutzt, das einfach so verschlüsselt, macht es schon schwieriger für sie. Seid ihr kennt ihr einige Möglichkeiten um die Index-Kalkulation auf ein, ich glaube, Cloud-Provider hochzuladen? Also, ich verstehe euer Schema so, dass der Klein die Index-Berechnung macht. Aber könnte man auch dem Server die Index-Berechnung überlassen? Es ist deutlich einfacher, den Index zu erstellen, wenn du den Plaintext kennst. Ich kenne keinen praktischen Ansatz. Es mag ein sein, aber ich kenne keins. Ich weiß es nicht. Ich habe mich gefragt, ob es Ansätze gibt, um alle Anfragen oder Suchen zu machen, wie alle Leute in der Datenbank zu finden, die älter als 30 sind. Es gibt Schemathe mit Sortieren nach, die Einträge nach. Man kann die Daten so verschlüsseln, dass die Sachen alle sortiert sind. Also, dass die Ordnung im Plaintext der, wenn man den Plaintext entspricht. Aber es ist nicht so einfach. Der Sicherheitsaspekt ist irgendwie nicht so ganz da. Wir wollen etwas, das wirklich sicher ist. Es gibt eine exponentielle Größe von der verschlüsselte Text. Du kannst es besser machen, wenn du aufhörst, ein bisschen Sicherheit. Aber gerade wir können ein bisschen Analyse machen und testen. Aber es ist nicht so einfach, wie wir das, was wir hier vorgestellt haben. Also, man kann es deutlich schwieriger machen. Also, da musst du einfach die Leute, die Krypo kennen, fragen. Du hast zwei Wege vorgestellt, wie man indexbasierte Verschlüsselung durchführen kann. Einmal eine zahlenweise verschlüsselte Krypto. Denk dir, es ist sinnvoll, mehr Arbeit in die zweite Lösung zu packen. Denn jedes Mal, wenn man sucht, dann gibt man dem Server ja bekannt, was die Beziehung in Reihen ist oder in Zeilen ist. Man hat durch dieses Verfahren auch zu viele Verzögerungen. Es hängt ab, was du brauchst. Wenn du die Länge versteckst, kannst du eine Analyse über die Größe von der Index bei dir machen. Der zweite Ansatz hat das Problem nicht, wo die Länge versteckt ist. Wenn du die Länge versteckt hast, dann nimm mal statt der teurer. Wenn du weißt, was du brauchst, dann kannst du es genau anpassen, damit es richtig gut funktioniert. Weiß du, wie viel Informationen dadurch bekannt wird. Es hängt ab komplett von deinem plaintext. Es ist sehr schwierig, wenn man nicht bewusst ist, was geleckt wird. Was ist bedeutet? Für die Situation, die ihr kurz erwähnt habt, wo man 3TB Daten hat, die man durchsuchen will, ich sehe, dass es sehr viel Sinn macht, den Cloud Provider dazu zu animieren, die Suche zu machen. Was ist der Ausgleich? Wenn ich jetzt nur ein paar Gigabyte habe, was bei den meisten der Leute der Fall ist, macht es dann nicht eher Sinn, den Index bei mir selber zu berechnen und dann den Index hochzuladen. Und dann für weitere Suche an Fragen, den Index später wieder runterzuladen, weil der Index nicht so groß ist. Ich denke, es ist schneller, den Index runterzuladen und damit dann die Suche durchzuführen. Also, wann zahlt es sich aus, den Index auf dem Server zu lassen? Nein, wir haben da nicht reingeguckt, weil wir bauen Cloud Services. Wir sind Dienstanbieter. Deswegen, das ist was uns interessiert. Also, die Suche auf verschlüsselte Daten, das ist was uns interessiert, deswegen haben wir diesen Ansatz nicht geguckt. Das ist für uns nicht relevant. Okay, letzte Frage. Habt ihr über, aufteilen den Text, habt ihr darüber nachgedacht, den Text aufzuteilen, habt ihr darüber verschlüsselt und dann also, das Verfahren würde halt die Frequenzanalyse, statistische Analyse erschweren. Ja, du hast recht. Du kannst es auch so machen. Es sieht so aus, als wenn es keine Fragen mehr gibt oder was mit dem Internet. Das Internet sagt auch nichts mehr. Vielen Dank, Tobias Müller und Christian. Bitte einen herzlichen Applaus.