Bearbeiten

Homomorphe Verschlüsselung mit SEAL

.NET

In diesem Artikel wird erläutert, wie und wann Sie die homomorphe Verschlüsselung verwenden sollten und wie Sie die homomorphe Verschlüsselung mit der als Open Source veröffentlichten Microsoft-Bibliothek für einfache verschlüsselte Arithmetik (Simple Encrypted Arithmetic Library, SEAL) implementieren.

Aufbau

Diagram showing traditional and SEAL encryption.

Laden Sie eine Visio-Datei dieser Architektur herunter.

Workflow

Herkömmliche Verschlüsselungsschemas umfassen drei Funktionen: Schlüsselgenerierung, Verschlüsselung und Entschlüsselung. In Verschlüsselungsschemas mit symmetrischen Schlüsseln wird derselbe geheime Schlüssel sowohl für die Verschlüsselung als auch für die Entschlüsselung verwendet. Sie ermöglichen eine effiziente Verschlüsselung großer Datenmengen für einen sicheren, ausgelagerten Cloudspeicher. In Verschlüsselungsschemas mit öffentlichen Schlüsseln wird ein öffentlicher Schlüssel für die Verschlüsselung und ein separater geheimer Schlüssel für die Entschlüsselung verwendet. Jeder, der den öffentlichen Schlüssel kennt, kann Daten verschlüsseln, aber nur diejenigen Personen, die den geheimen Schlüssel kennen, können die Daten entschlüsseln und lesen. Die Verschlüsselung mit öffentlichem Schlüssel ermöglicht eine sichere Onlinekommunikation, ist aber in der Regel weniger effizient als die Verschlüsselung mit einem symmetrischen Schlüssel.

Sie können die herkömmliche Verschlüsselung zwar für sichere Speicherung und Kommunikation verwenden, aber für die ausgelagerte Berechnung ist das Entfernen von Verschlüsselungsebenen erforderlich. Clouddienste, die ausgelagerte Berechnungen bereitstellen, müssen Zugriffsrichtlinien implementieren, um nicht autorisierten Zugriff auf die Daten und Schlüssel zu verhindern. Der Datenschutz basiert auf Zugriffssteuerungs-Richtlinien, die vom Cloudanbieter festgelegt und vom Kunden als vertrauenswürdig eingestuft werden.

Mit der homomorphen Verschlüsselung von Microsoft SEAL haben Cloud-Anbieter niemals unverschlüsselten Zugriff auf die Daten, die sie speichern und auf denen sie Berechnungen durchführen. Die Berechnungen können direkt mit den verschlüsselten Daten ausgeführt werden. Die Ergebnisse solcher verschlüsselter Berechnungen bleiben verschlüsselt und können nur vom Datenbesitzer mithilfe des geheimen Schlüssels entschlüsselt werden. Bei der homomorphen Verschlüsselung wird meistens ein Verschlüsselungsschema mit öffentlichem Schlüssel verwendet, obwohl die Funktionalität des öffentlichen Schlüssels nicht immer benötigt wird.

Szenariodetails

Unternehmen senden, empfangen und speichern ihre Clouddaten häufig in verschlüsselter Form. Um Cloudcomputing nutzen zu können, müssen Unternehmen jedoch entweder unverschlüsselte Daten oder die Schlüssel zum Entschlüsseln bereitstellen. Diese Vorgehensweise stellt ein erhöhtes Risiko für Unternehmensdaten dar. Die homomorphe Verschlüsselung ermöglicht direkte Berechnungen mit verschlüsselten Daten und vereinfacht es somit, das Potenzial der Cloud auch auf vertrauliche Daten anzuwenden.

Mögliche Anwendungsfälle

  • Einfache Berechnungen wie Addition und Multiplikation mit vertraulichen Daten und Teilen von Programmen
  • Ausgelagertes Cloud Computing, bei dem sich alle Daten im Besitz einer einzelnen Person befinden, die alleinigen Zugang zu den Entschlüsselungsschlüsseln hat

Überlegungen

  • Mit verschlüsselten Daten sind nur bestimmte Berechnungen möglich. Die Microsoft-Bibliothek für homomorphe Verschlüsselung SEAL ermöglicht Additionen und Multiplikationen mit verschlüsselten ganzen oder reellen Zahlen. Verschlüsselte Vergleiche, Sortierungen oder reguläre Ausdrücke sind für die Auswertung von verschlüsselten Daten mit dieser Technologie oft nicht möglich. Daher können nur bestimmte vertrauliche Cloudberechnungen an Teilen von Programmen mithilfe von Microsoft SEAL implementiert werden.

  • Microsoft SEAL verfügt über zwei homomorphe Verschlüsselungsschemas mit unterschiedlichen Eigenschaften. Das BFV-Schema ermöglicht modulare Arithmetik für verschlüsselte Ganzzahlen. Das CKKS-Schema ermöglicht Additionen und Multiplikationen mit verschlüsselten reellen oder komplexen Zahlen, liefert jedoch nur ungefähre Ergebnisse. CKKS ist die beste Wahl bei der Aufsummierung verschlüsselter reeller Zahlen, dem Auswerten von Machine-Learning-Modellen mit verschlüsselten Daten oder dem Berechnen der Entfernungen zwischen verschlüsselten Standorten. Für Anwendungen, bei denen genaue Werte erforderlich sind, ist das BFV-Schema die einzige Wahl.

  • Die homomorphe Verschlüsselung ist nicht effizient. Da die homomorphe Verschlüsselung einen großen Leistungsaufwand mit sich bringt, sind Berechnungen, die bereits für unverschlüsselte Daten aufwendig sind, für verschlüsselte Daten wahrscheinlich nicht möglich.

  • Homomorph verschlüsselte Daten sind oft um ein Vielfaches größer als die unverschlüsselten Daten, daher ist es möglicherweise nicht sinnvoll, mit dieser Technologie etwa vollständige große Datenbanken zu verschlüsseln. Szenarien, in denen strikte Datenschutzanforderungen eine unverschlüsselte Berechnung in der Cloud verhindern, die eigentlichen Berechnungen jedoch recht einfach sind, stellen sinnvolle Anwendungsfälle dar.

  • Üblicherweise verfügen Schemas für homomorphe Verschlüsselung über einen einzelnen geheimen Schlüssel, der vom Datenbesitzer aufbewahrt wird. Die homomorphe Verschlüsselung ist für Szenarien, in denen mehrere verschiedene Besitzer privater Daten an einer gemeinsamen Berechnung beteiligt sein möchten, nicht sinnvoll.

  • Es ist nicht immer einfach oder unkompliziert, eine unverschlüsselte Berechnung in eine Berechnung verschlüsselter Daten zu übersetzen. Auch wenn neue Benutzer eine Berechnung mit Microsoft SEAL programmieren und ausführen können, kann der Unterschied zwischen effizienter und ineffizienter Implementierung mitunter sehr groß sein. Eine Verbesserung der Leistung kann sich schwierig gestalten.

  • Der Grundtyp der homomorphen Verschlüsselung ist selbst sicher, er kann jedoch nicht gewährleisten, dass die Apps und Protokolle, die ihn verwenden, sicher sind.

Beitragende

Dieser Artikel wird von Microsoft gepflegt. Er wurde ursprünglich von folgenden Mitwirkenden geschrieben:

Hauptautor:

Nächste Schritte

Weitere Informationen zur homomorphen Verschlüsselung und zur Microsoft-Bibliothek SEAL finden Sie unter Microsoft SEAL von Microsoft Research und im SEAL-Codeprojekt auf GitHub.

Informationen zur Sicherheit in Azure finden Sie in den folgenden Ressourcen: