Artikel

Homomorphe Verschlüsselung Beschleunigung

FPGA-Beschleunigung ermöglicht diese einzigartige Lösung, die Berechnungen mit verschlüsselten Daten ohne Entschlüsselung oder gemeinsame Nutzung von Schlüsseln ermöglicht

Grenzen der traditionellen Verschlüsselung

Die Verschlüsselung von Daten ist eine Notwendigkeit für sensible Informationen wie medizinische Akten oder Finanzdaten, deren Volumen exponentiell wächst. Idealerweise würden diese Daten in einer kostengünstigen öffentlichen Cloud-Infrastruktur gespeichert, einschließlich der Verarbeitungsfunktionen, wie z. B. das Nachschlagen eines Datensatzes in einer Datenbank. Aufgrund der Verschlüsselung bedeutet dies jedoch, dass der Anbieter des Cloud-Speichers die privaten Schlüssel benötigt - und die Suchbegriffe und -ergebnisse einsehen kann. Diese gemeinsame Nutzung von Schlüsseln und die Offenlegung privater Informationen birgt erhebliche Sicherheitsrisiken.

Herkömmliche Verschlüsselung mit Cloud Storage & Compute

In dem obigen Beispiel wird eine verschlüsselte Datenbank auf einem öffentlichen Cloud-Server gespeichert. Um Daten abzurufen, z. B. bei einer Suche, muss das Cloud-System sowohl die privaten Schlüssel besitzen, um die Datenbank zu entschlüsseln, als auch Einblick in den Suchbegriff und das Ergebnis haben. Diese Daten werden zwar verschlüsselt, bevor sie über ungesicherte Verbindungen übertragen werden, aber das Risiko besteht darin, dass der Cloud-Anbieter über private Schlüssel verfügt und die Sicherheit davon abhängt, dass seine Systeme nicht kompromittiert werden.

Aufgrund dieser Beschränkungen können viele Arten von hochsicheren Daten, wie z. B. medizinische Aufzeichnungen, keine öffentliche Cloud-Infrastruktur nutzen.

Homomorphe Verschlüsselung

Eine jahrzehntealte Technik ermöglicht jedoch die Verarbeitung verschlüsselter Daten, wie z. B. eine Textsuche, ohne Entschlüsselung oder Zugang zu privaten Schlüsseln. Außerdem können die Verarbeitungsanforderung (z. B. der Suchbegriff) und das Ergebnis ebenfalls verschlüsselt werden. Der Speicheranbieter könnte sensible verschlüsselte Daten ohne Risiko speichern und verarbeiten.

Diese Technik wird als homomorphe Verschlüsselung (HE) bezeichnet und ist in mehreren Stufen mit steigendem Rechenbedarf verfügbar. Bis leistungsfähige FPGA-Karten wie die IA-440i von BittWare verfügbar waren, schränkte der für die homomorphe Verschlüsselung erforderliche Rechenaufwand die praktischen Anwendungsfälle stark ein.

Homomorphe Verschlüsselung - Anwendungsfälle

Wir haben zwar die Suche in einer Datenbank erwähnt, aber es gibt noch viele andere Einsatzmöglichkeiten für die homomorphe Verschlüsselung:

  • Mehrere Benutzer arbeiten gemeinsam an verschlüsselten Daten, ohne dass die Gefahr besteht, dass die Daten selbst offengelegt werden, da sie niemals im Klartext gespeichert oder gar übertragen werden.
  • Unternehmen können sensible Daten frei zwischen Standorten austauschen, ohne das Risiko einzugehen, Entschlüsselungsschlüssel auszutauschen.
  • Datenbanken könnten in der öffentlichen Cloud vollständig verschlüsselt gespeichert und weiterhin aktiv genutzt werden; ein Einbruch in die Cloud würde nur die verschlüsselten Daten offenlegen, ohne Zugang zu den privaten Schlüsseln.
  • Bild- oder Audiosuchen mit maschinellem Lernen könnten von öffentlichen Inferenz-Rechenressourcen durchgeführt werden, wobei die Suche selbst, das Ergebnis und sogar der Quelldatenpool für den Rechen-/Speicheranbieter nicht zu erkennen sind.

Wie es funktioniert

Homomorphe Verschlüsselungsverfahren verfolgen in der Regel einen von zwei Ansätzen:

Nivellierte HE-Regelung

Dieser Ansatz erlaubt es, eine bestimmte Menge an Verarbeitung durchzuführen, bevor der interne Fehler, der in allen HE-Schemata auftritt, zu groß wird. Wenn die Tiefe der erforderlichen Verarbeitung im Voraus bekannt ist, kann der Benutzer ein HE-Schema mit der entsprechenden Toleranz erstellen. Dies hat den Vorteil, dass nur der geringste Teil der Verarbeitung durchgeführt wird, was den Durchsatz erhöht.

Vollständiges Hochschulprogramm (FHE)

Dieses Verfahren leidet ebenfalls unter zunehmendem Rauschen, verwendet aber eine Technik namens "Bootstrapping", um Fehler zu beseitigen, bevor sie zu groß werden. Boostrapping ist sehr langsam, obwohl es in letzter Zeit einige Fortschritte bei der Beschleunigung dieses Leistungsengpasses gegeben hat.

Die Wahl des zu verwendenden HE-Schemas hängt stark vom Problemfall des Nutzers ab. Daher ist es unwahrscheinlich, dass eine Lösung für alle geeignet ist. Die Verarbeitung verschlüsselter Daten in HE ist außerdem sehr langsam und bedarf einer erheblichen Beschleunigung, um sinnvoll zu sein. Glücklicherweise sind FPGAs extrem gut in der Art von Berechnungen, die für Verschlüsselungsschemata erforderlich sind, und flexibel genug, um jedes beliebige HE-Schema effizient zu verarbeiten.

FPGA-beschleunigtes homomorphes Verschlüsselungssystem

BittWare IA-440i FPGA-Beschleunigungskarte

Mit einer Ethernet-fähigen FPGA-Karte können Benutzer verschlüsselte Datenbankanfragen senden. Die HE-Logik auf dem FPGA wandelt diese Anfrage in die entsprechende Suche in einer verschlüsselten Datenbank um, die im angeschlossenen permanenten Speicher gespeichert ist. Zu keinem Zeitpunkt kann ein Hacker nützliche Informationen extrahieren, so dass die Datenbank in der Öffentlichkeit frei zugänglich ist. Da die Datenbank in einem verschlüsselten Format vorliegt, können keine sensiblen Informationen oder Algorithmus-IP extrahiert werden, wenn ein illegaler Zugriff auf die Daten erfolgt ist.

Maschinelles Lernen - Inferenz mit homomorpher Verschlüsselung

Homomorphe Verschlüsselung ist nicht auf textbasierte Datenbankanwendungen beschränkt. Dasselbe FPGA-Beschleunigungssystem, das oben beschrieben wurde, kann Beschleunigung als Dienstleistung für Berechnungen anbieten, z. B. für maschinelles Lernen (ML) und Inferenz. Im medizinischen Bereich können beispielsweise Röntgenaufnahmen von Patienten (als Bilder) an Cloud-basierte ML-Modelle gesendet werden, um Anomalien zu erkennen. Wie im Beispiel der Datenbank erfordert eine solche Suche jedoch das Senden persönlicher medizinischer Informationen (die Röntgenbilder) an einen gemeinsam genutzten ML-Modellanbieter, der die Bilder entschlüsseln muss, um die Schlussfolgerung durchführen zu können. Das folgende Diagramm zeigt, was stattdessen möglich ist: ein FPGA-beschleunigtes HE- und Inferenzsystem, das sichere Abfragen für eine Reihe von Benutzern bereitstellt:

In diesem HE-gesicherten System würden die Röntgenbilder des Patienten, das trainierte ML-Modell und das Ergebnis im System des gemeinsamen Anbieters verschlüsselt bleiben. Wie beim Beispiel der Datenbanksuche würde der ideale Host viele Benutzer und Abfragen auf einer gemeinsam genutzten Ressource verarbeiten. Um ein solches System mit homomorpher Verschlüsselung zu sichern, ist der Aufbau sehr ähnlich wie beim Beispiel der Datenbanksuche.

Heutige Leistungseinschränkungen

Es ist zu beachten, dass das HE-System heute selbst mit der Hochleistungsbeschleunigung durch FPGAs um Größenordnungen langsamer als das unverschlüsselte Äquivalent. Daher sind weitere Arbeiten erforderlich, um diesen Leistungsunterschied für eine breitere Anwendung zu verringern.

Tiefer gehen: Eine kurze Geschichte der homomorphen Verschlüsselung

Bevor die vollständig homomorphe Verschlüsselung (FHE) realisiert wurde, wiesen einige bekannte Verschlüsselungsverfahren bereits einige teilweise homomorphe Fähigkeiten auf. Das Verschlüsselungsverfahren RSA weist einen multiplikativen Homomorphismus auf, d. h. zwei verschlüsselte Chiffretexte können miteinander multipliziert werden und ergeben bei der Entschlüsselung das gleiche Multiplikationsergebnis wie der Klartext.

Gleichung: RSA Multiplikativer Homomorphismus auf Nachricht m

Das Paillier-Kryptosystem ist ein Beispiel für ein additives Verschlüsselungsverfahren. Dies kann wie folgt geschrieben werden...

Gleichung: Additiv homomorphes Paillier-Kryptosystem

Wie bereits erwähnt, ist ein vollständig homomorphes Verschlüsselungsverfahren (FHE) eines, das sowohl additive als auch multiplikative Operationen durchführen kann. In diesem Fall sind wiederholte Multiplikationen oder Additionen des Chiffriertextes zulässig, während der ursprüngliche Klartext weiterhin wiederhergestellt werden kann.

Eine Darstellung eines vollständig homomorphen Verschlüsselungsverfahrens

Wenn ein HE-Schema sowohl Multiplikationen als auch Additionen zulässt, ist es in der Lage, ein logisches NAND-Gatter und damit jede logische Schaltung auszuführen. 

DGHV Vollständig homomorphes Verschlüsselungsverfahren

Eines der ersten FHE-Verfahren war das DGHV-Verfahren. Es beruhte auf extrem großen Chiffretexten, um eine gute Sicherheit zu gewährleisten. Die Verschlüsselungs- und Entschlüsselungsverfahren werden durch die folgenden Gleichungen dargestellt.

Equation: DGHV Encryption of message m to ciphertext c for m ∈{0,1}, p is the sercret key, q and r are random numbers
Gleichung: DGHV-Entschlüsselung von Chiffretext zu Nachricht m.

Für eine gute Verschlüsselung muss der Chiffretext sehr groß sein, d. h. mehrere 10 Millionen Bits, der geheime Schlüssel p Tausende von Bits und ein großer Rauschwert. Um sicherzustellen, dass ein Verschlüsselungsverfahren nicht für Angriffe der linearen Algebra anfällig ist, muss das Rauschen (r) bewusst eingeführt werden. Dies ist unten dargestellt.

Darstellung der DGHV-Chiffretextgröße bei Hinzufügen von Zufallsrauschen

Die Verwendung eines so großen Chiffriertextes führt eindeutig zu Leistungsproblemen, da ein einziges Bit des Klartextes zu Millionen von Bits des Chiffriertextes anwächst, was es in realen Anwendungsfällen unpraktisch macht. Dennoch war dies eines der ersten funktionalen HE-Verfahren, das die akademische Forschung im Bereich HE neu belebte.

Ein weiteres Problem des DGHV-Verfahrens war die Zunahme des Rauschens, das durch den erforderlichen Zufallsfaktor bei der Verschlüsselung entsteht. In diesem Fall erhöht das Hinzufügen von Chiffretexten das Rauschen um ein einziges Bit, während eine Multiplikation das Rauschen bei jeder Anwendung verdoppelt.

Exponentielles Rauschwachstum bei Multiplikationen mit verschlüsselten Daten

Die Abbildung zeigt, dass sich das multiplikative Rauschen ρ im Verhältnis zur Größe des geheimen Schlüssels q verdoppelt. Sobald das Rauschen q überschreitet, kann der Klartext nicht mehr fehlerfrei wiederhergestellt werden. Das bedeutet, dass wir nur eine begrenzte Anzahl von Operationen verarbeiten können, bevor der Prozess zusammenbricht.

Um dieses Fehlerwachstum zu beheben, wird eine Technik namens Bootstrapping eingesetzt. Bootstrapping kann das Rauschen entfernen, indem der Geheimtext durch die Verschlüsselungslogik geleitet und mit einem gemeinsamen öffentlichen Schlüssel verschlüsselt wird. Dies ist gleichbedeutend mit einer Entschlüsselung des Chiffriertextes (wodurch das Rauschen entfernt wird) und einer erneuten Verschlüsselung, wobei die Daten jedoch durchgehend privat bleiben, da der öffentliche Schlüssel nicht zur Wiederherstellung des ursprünglichen Klartextes verwendet werden kann. Dieser Prozess ist zwar rechenintensiv, kann aber das Rauschen entfernen und eine unbegrenzte Anzahl verschlüsselter Berechnungen ermöglichen: ein vollständig homomorphes Verschlüsselungsverfahren (FHE).

Beispiel für Bootstrapping durch Auffrischen des verschlüsselten Klartextes auf der rechten Seite gegenüber der Entschlüsselung des Geheimtextes auf der linken Seite

Lernen mit Fehlern (LWE)

Das Learning With Error (LWE)-Verfahren basiert auf der Polynomauswertung, bei der der Verschlüsselungsschlüssel die Koeffizienten eines Polynoms vom Grad N sind. Die Koeffizienten der Polynome liegen in einem endlichen Feld mit der Wortgröße q. Um die Sicherheit zu erhöhen, muss dem System Rauschen (e) hinzugefügt werden - andernfalls lässt sich das Verfahren leicht mit linearer Algebra lösen.

Verschlüsselungsfunktion f der Nachricht m, wobei s(→) ein Feld von Koeffizienten, e das eingeführte Rauschen und q der Primzahlmodul ist

Die Addition von zwei Polynomen ergibt ein drittes Polynom gleichen Grades; die Multiplikation der beiden Polynome ergibt jedoch ein quadratisches Polynom mit (n+1)2 Koeffizienten. Um diesen Anstieg der Anzahl der Polynomterme zu korrigieren, wird eine Technik namens Re-Linearisierung verwendet. Dabei werden die quadratischen Terme des Polynoms veröffentlicht, die dann mittels binärer Zerlegung vom Ergebnis subtrahiert werden können, wodurch das erweiterte Polynom wieder auf (n+1) Koeffizienten reduziert wird. Diese Multiplikation leidet unter dem gleichen Rauschanstieg wie die DGHV, jedoch kann eine Technik namens "modulus switching" verwendet werden, um die Auswirkungen zu reduzieren.

Es kann gezeigt werden, dass die Entschlüsselungsergebnisse gleich bleiben, wenn die Koeffizienten durch eine neue Primzahl skaliert werden, so dass die neuen Koeffizienten "c" gleichwertig sind, so dass cnew = c mod 2. Diese Beziehung kann verwendet werden, um ein exponentielles Wachstum des Rauschens in ein lineares umzuwandeln, so dass viel mehr Operationen am Chiffretext durchgeführt werden können, bevor das Rauschwachstum zu groß wird (siehe Abbildung unten).

Beispiel für eine Modulumschaltung zur Reduzierung des exponentiellen Rauschwachstums auf ein lineares Rauschwachstum

Dies nennt man eine nivellierte FHE. Wenn wir die Tiefe der Berechnungen kennen, können wir die Größe des Anfangsmoduls so wählen, dass sie für ein bestimmtes Problem groß genug ist, und so die teure Bootstrapping-Phase vermeiden.

Ring Learning With Errors (RLWE)

Eine Erweiterung des LWE-Schemas ist die Verwendung eines Polynomrings, wobei N eine Potenz von 2 ist. Die Polynome befinden sich nun im Ring . In diesem Fall werden bei der Addition oder Multiplikation zweier Polynome die Koeffizienten noch um den Primzahlmodul reduziert. Nach der Multiplikation werden die 2N Koeffizienten reduziert, indem man den Rest bei der Division durch (XN + 1).

Die Multiplikation der Polynome ist der größte Engpass bei dieser HE-Implementierung, da die Anzahl der Koeffizienten in der Regel im Bereich N = [210,214] liegt. Eine Optimierung der Polynommultiplikation ist die negazyklische zahlentheoretische Transformation (NTT). Dadurch wird die Anzahl der Berechnungen von NN auf Nlog(N) reduziert. Die NTT ist eine schnelle Fourier-Transformation (FFT) über ein endliches Feld von ganzen Zahlen.

Die Multiplikation zweier Polynome f(x) und g(x) wird dann zu...

InvNTT (FwdNTT(f(x)) * FwdNTT(g(x)))

Öffentlich zugängliche APIs

Es gibt mehrere öffentlich zugängliche HE-APIs, die meist für CPUs optimiert sind. Hier sind einige Beispiele:

Die meisten befinden sich in ständigem Wandel, da die Leistung verbessert und schnellere Techniken eingeführt werden.

Intel HEXL - FPGA

Intel hat auch einen parallelen FPGA-Zweig zu seiner HEXL-Bibliothek. Die Intel Homomorphic Encryption Acceleration Library for FPGAs(HEXL-fpga) ist eine Open-Source-Bibliothek, die einige Beispiel-FPGA-Implementierungen von HE-Funktionen bietet.

Die folgenden Operatoren sind derzeit in der FPGA-API enthalten:

  • Dyadische Multiplikation: Multiplikation von zwei Polynomen
  • KeySwitch: Umschalten des öffentlichen Verschlüsselungsschlüssels oder der Parameter
  • Vorwärts- und inverse negazyklische zahlentheoretische Transformationen (NTT)

Diese geben den Benutzern die Möglichkeit, mit verschiedenen HE-Workflows auf FPGAs zu experimentieren. Die BittWare USM (Unified Share Memory) BSPs sind mit dieser Bibliothek kompatibel.

Schlussfolgerung

Die potenziellen Vorteile der homomorphen Verschlüsselung sind beträchtlich; sie ermöglicht eine viel bessere Nutzung der gemeinsam genutzten öffentlichen Ressourcen für risikoreiche Daten, wie sie in der Medizin und im Finanzbereich verwendet werden. HE wird weiterentwickelt, um die Leistungsprobleme mit neuen Techniken zu lösen.

FPGAs sind aufgrund ihrer äußerst flexiblen und leistungsfähigen Architektur die ideale Technologie, um die Einführung von HE zu unterstützen. BittWare-Karten wie die IA-440i sind gut geeignet, um Kunden bei der Umstellung auf homomorphe Verschlüsselung von der akademischen Forschung auf reale Anwendungen zu unterstützen.

Erfahren Sie mehr über unsere von Agilex betriebenen FPGA-Beschleunigerkarten →

Abkürzungen

HE: Homomorphe Verschlüsselung

RSA: Rivest, Shamir und Adleman

FHE: Vollständig homomorphe Verschlüsselung

DGHV: Digi Gentry Halevi Vaikuntanathan

RLWE: Ring Learning With Error

Video-Ressourcen zur homomorphen Verschlüsselung