Vergessen Sie die homomorphe Verschlüsselung: Jetzt haben wir eine funktionale Verschlüsselung



Haben Sie von funktionaler Verschlüsselung (FS) gehört? Vielleicht haben Sie davon gehört, und für sich selbst haben Sie es mit der homomorphen Verschlüsselung gleichgesetzt , was nicht ganz falsch, aber nicht ganz richtig ist.

Schauen wir uns an, was FS heute für Sie ist, analysieren wir ein paar Beispiele und wie es sich von der vollständig homomorphen Verschlüsselung (PGS) unterscheidet.

Lassen Sie uns zuerst entscheiden, was wir meinen, wenn wir über FS sprechen. In jüngerer Zeit haben Dan Bonnet, Amit Sahai und Brent Waters 2010 das Konzept von FS formalisiert. Ungefähr FS kann wie folgt beschrieben werden: Dies ist ein Verschlüsselungsschema mit einem öffentlichen Schlüssel, bei dem verschiedene Schlüssel zur Entschlüsselung dem Benutzer ermöglichen, bestimmte Funktionen verschlüsselter Daten kennenzulernen.

Im FS-Schema für die Funktion F (·, ·) generiert der Verschlüsseler mit dem Hauptschlüssel den Schlüssel s k , wodurch die Funktion F (k, ·) aus den verschlüsselten Daten berechnet werden kann, so dass der Entschlüsseler den verschlüsselten Text c aus den Daten x und dem Schlüssel s kennt k , kann F (k, x) berechnen, ohne etwas anderes als das Ergebnis der Berechnung einer Funktion aus x herausfinden zu können.

FS gegen PGS


Wenn Sie mit dem Konzept von PGS vertraut sind, wird es interessant sein, die folgenden Parallelen zu ziehen:

Mit PGS können Sie alle Funktionen von verschlüsselten Daten berechnen, ohne diese Daten zu entschlüsseln. Dies ist eine interessante Gelegenheit, die Datenverarbeitung an nicht vertrauenswürdige Dritte zu delegieren. Das Minus des Ansatzes ist, dass das Ergebnis ebenfalls verschlüsselt wird. Um es zu entschlüsseln, müssen Sie es an den Besitzer des privaten Schlüssels senden. Der PGS-Prozess kann wie folgt dargestellt werden: E ist das Verschlüsselungsschema und F ist die Funktion, die aus den verschlüsselten Daten berechnet werden soll:

E (x_1), E (x_2), ..., E (x_n) → E (F (x_1, x_2, · ·, x_n))

Andererseits steht uns mit FS das Ergebnis unmittelbar nach den Berechnungen direkt zur Verfügung, dh:

E (x_1), E (x_2), · ·, E (x_n) → F (x_1, x_2, · ·, x_n)

In gewissem Sinne ist FS ein Schema, das das Ergebnis gleichzeitig berechnet und entschlüsselt, ohne dass der private Schlüssel und alle Informationen über x 1 , x 2 , · · ·, x n außer dem Berechnungsergebnis selbst verloren gehen.

Es ist klar, dass nicht jeder in der Lage sein muss, eine gewünschte Funktion zu berechnen, da es sonst einfach wäre, Informationen zu einzelnen Parametern im Klartext abzurufen (z. B. um eine identische Funktion zu berechnen). Daher kann nur der Eigentümer des privaten Schlüssels E (x_i) entschlüsseln und Abwicklungsschlüssel für bestimmte Funktionen seiner Wahl generieren. Dies bedeutet, dass das FS das Vorhandensein einer „zentralen Behörde“ erfordert, die „Abrechnungsschlüssel“ an Personen ausgibt, die für Funktionsberechnungen verantwortlich sind.

Das heißt, FS ist eine Verallgemeinerung der Idee der Verschlüsselung mit einem öffentlichen Schlüssel, die es Benutzern ermöglicht, Berechnungen bestimmter Funktionsklassen aus verschlüsselten Daten an Dritte zu delegieren, indem bestimmte geheime Schlüssel für diese Funktionen generiert werden. Im Gegensatz zu Standardverschlüsselungsschemata können Sie die Entschlüsselungsfunktionen, die für Dritte verfügbar sind, genauer steuern.

FS ist äußerst nützlich, da es uns ermöglicht, bestimmte Informationen über verschlüsselte Daten absichtlich an bestimmte Benutzer zu übertragen. Beispielsweise können wir den Durchschnittswert aus einem Satz verschlüsselter Daten abrufen, ohne die Daten selbst preiszugeben, oder weitere Statistiken zu diesem Satz abrufen. Angesichts der aktuellen Sicherheitsprobleme und der Anforderungen, die durch neue Gesetze wie die DSGVO gestellt werden, wird die Notwendigkeit effektiver FS-Systeme deutlicher, da Dritte verschlüsselte Daten verarbeiten können, ohne diese Daten in reiner Form an Dritte weiterzugeben. Dies bedeutet, dass wir weiter gehen können, als es die Pseudo-Anonymisierung personenbezogener Daten zulässt, und eine strengere Vertraulichkeit garantieren!

Zurück zu FS


Aufgrund seiner allgemeinen Natur umfasst und kombiniert FS viele andere fortschrittliche Verschlüsselungsverfahren, die zuvor unabhängig voneinander untersucht wurden: authentifizierungsbasierte Verschlüsselung, durchsuchbare Verschlüsselung, versteckte Vektorverschlüsselung, authentifizierungsbasierte Verschlüsselung mit Platzhaltermustern, attributbasierte Verschlüsselung , funktionale Verschlüsselung mit Skalarprodukt.

Obwohl FS-Programme noch sehr jung sind, ist seit 2010 viel passiert, und es gibt bereits einige interessante Programme, mit denen Sie Dinge tun können, die vor 8 Jahren noch sehr kompliziert erschienen. Es ist bereits so weit, dass Berichte über FS auf bestimmten kryptografischen Konferenzen organisiert werden!

Schauen wir uns einige verschiedene Arten von FS-Schemata an. Z.B:

  • Funktionale Verschlüsselung mit einem Skalarprodukt (FSFS), wobei Klartext ein Vektor ist und die verschlüsselten Daten zusammen mit dem Schlüssel verwendet werden können, um das Skalarprodukt dieses Vektors mit einem anderen zu berechnen. FSSP bietet mehrere Optionen: für viele Clients, für viele Eingaben, dezentral, mit Ausblendungsfunktionen usw.
  • Attributbasierte Verschlüsselung (SHO), bei der die verschlüsselten Daten mit einer Reihe von Attributen und geheimen Schlüsseln verknüpft werden, zusammen mit bestimmten Regeln, die steuern, welcher verschlüsselte Text abhängig von den von uns verwendeten Attributen verschlüsselt werden kann.
  • FS "General Purpose", mit dem aus den verschlüsselten Daten Enc (x) die Funktion f beliebiger Art berechnet werden kann.

Es ist jedoch wichtig zu erwähnen, dass, obwohl bereits viel Arbeit auf die theoretischen Aspekte von FS konzentriert wurde, um diesen Bereich so weit wie möglich zu entwickeln, alle Allzweck-FS heutzutage für den praktischen Einsatz zu ineffektiv sind. Dies ist eines der Forschungsthemen des FENTEC-Projekts ( Functional Encryption Technologies European Research Program): Durch das Entwerfen und Implementieren praktischer Schemata, die in industriellem Maßstab eingesetzt werden können, soll FS in die Praxis umgesetzt werden. In diesem Projekt werden nicht nur neue Schemata mit erweiterter Funktionalität entwickelt, sondern auch spezielle Coprozessoren, die die erforderlichen Berechnungen noch weiter beschleunigen können - alles, um die Theorie der Praxis näher zu bringen. Weitere Informationen zu diesem Gerät finden Sie im Blogpost des FENTEC- Projekts .

Möchten Sie FS noch heute verwenden? Bitte benutzen Sie


Aber was ist, wenn Sie FS heute verwenden möchten? Damit sollte es kein Problem geben! Im Rahmen des FENTEC-Projekts arbeitet ein Team von XLAB an der Implementierung vieler von Partneruniversitäten in Form der CiFEr C-Bibliothek und der GoFE Go-Bibliothek entwickelter Programme .

Weitere Informationen zu den Bibliotheken finden Sie im FENTEC-Blog. Sie können aber auch direkt zu Github gehen und mit den CiFEr- und GoFE-Bibliotheken spielen . Übrigens haben wir über WASM überprüft, ob sie auch im Browser funktionieren!

Es gibt sogar einige Beispiele im Github-Repository des Projekts:


All die schrecklichen Details: Was steckt im FS-Schema?


Unter den bereits implementierten Schemata finden Sie viele Schemata, die als "funktionale Verschlüsselung mit einem Skalarprodukt" bezeichnet werden. Aber was bedeutet dieser Name? Es sollte wörtlich genommen werden: Diese Schemata ermöglichen es Dritten, das Ergebnis des Skalarprodukts zweier Vektoren unter Verwendung von FS zu berechnen.

Angenommen, Sie möchten einen Vektor a verschlüsseln und das Ergebnis seines Skalarprodukts mit dem Vektor y erhalten. Für die Implementierung von FS benötigen wir zunächst eine zentrale Instanz.

In diesem Fall gibt die zentrale Behörde einen "öffentlichen Hauptschlüssel" mpk sowie einen Abrechnungsschlüssel z y für einen gegebenen Vektor y aus. Dann kann jeder, der den öffentlichen Schlüssel kennt, den Vektor a verschlüsseln, so dass Dritte, die den Schlüssel z y haben , <a, y> mit E mpk (a) berechnen können und nichts über den Vektor a selbst wissen.

Es ist zu beachten, dass in diesem FS-Schema der Vektor y, der dem Rechenschlüssel z y entspricht, einem Dritten bekannt sein muss, um das Skalarprodukt zu berechnen. Das heißt, nur der Vektor a bleibt geheim.

Was ist, wenn Sie möchten, dass beide Vektoren, a und y, ein Geheimnis bleiben, aber gleichzeitig, damit Dritte ihr Skalarprodukt berechnen können?

Glücklicherweise hat dieses Forschungsgebiet in den letzten Jahren auch große Durchbrüche erzielt. Es ist als "FS mit versteckenden Funktionen" bekannt. Das Verschlüsselungsschema des Skalarprodukts "verbirgt die Funktionen", wenn die Schlüssel und der Chiffretext keine zusätzlichen Informationen über die Vektoren a und y liefern, mit Ausnahme ihres Skalarprodukts <a, y>. In neuen Schemata mit FS werden immer häufiger Funktionen ausgeblendet ( 1 , 2 , 3 ).

Um es zusammenzufassen


Obwohl in letzter Zeit eine funktionale Verschlüsselung aufgetaucht ist, können wir uns bereits viele Optionen für die zukünftige Verwendung vorstellen. Besonders interessant ist die Möglichkeit, den Entscheidungsfindungsprozess auf der Grundlage einer End-to-End-Datenverschlüsselung von Back-End-Systemen auf bestimmte Gateway-Systeme in komplexen Netzwerken zu übertragen. Wir nennen dies "lokale Entscheidungsfindung", und eine solche Gelegenheit ist ein großer Schritt in Richtung der Schaffung sicherer Netzwerke für das "Internet der Dinge" und andere stark dezentrale Netzwerke, die eine Ende-zu-Ende-Verschlüsselung implementieren möchten, ohne zu viel Entscheidungsfähigkeit auf Gateway-Ebene zu verlieren.

Jetzt arbeiten wir an einem Prototyp eines Produkts, das mithilfe von FS und einem Skalarprodukt Bewegungen im Videostream von der Kamera zum Back-End-System auf Gateway-Ebene mithilfe der so genannten Funktion erfassen kann "Bewegungsvektoren" im H.264 / MPEG-4 AVC-Standard.


Visualisierung von Bewegungsvektoren im Frame bei der Codierung von H.264- Open-Short-Cartoon Big Buck Bunny

Bitte beachten Sie, wie gut Bewegungsvektoren als Kandidaten für die Verwendung in Schemata mit FS mit einem Skalarprodukt sind - weil ein Skalarprodukt auf Vektorräumen definiert ist! Wir sind immer noch auf der Suche nach den besten Optionen für Bewegungserkennungsmethoden und hoffen, bis Ende 2020 einen voll funktionsfähigen Prototyp mit FS für die Bewegungserkennung zu erhalten.

Source: https://habr.com/ru/post/de482790/


All Articles