von Thomas
Erstellt am 18.10.2021
In meiner Projektarbeit (T-2000 für die DHBW Karlsruhe) „Evaluation des praktischen Nutzen von
homomorpher Verschlüsselung“, habe ich mich
mit dem Thema homomorphe
Verschlüsselung beschäftigt. Homomorphe Verschlüsselung ist eine
Verschlüsselungsmethode, die es ermöglicht, mit den verschlüsselten Daten zu
operieren. Damit ist gemeint, dass es möglich sein soll zwei verschlüsselte
Zahlen, ohne Kenntnis über die Entschlüsselungsmethode, zu verrechnen. Das Wissen, wie
das funktioniert und wie gut Homomorphe Verschlüsselung schon ausgereift ist, erkläre ich in diesem
kurzen Artikel.
Stell dir vor, du willst deine Word Dokumente aus der Office 365 Cloud
so bearbeiten, dass Unbekannte und Microsoft zu keinem Zeitpunkt den Inhalt
lesen können. Aktuell wird das durch Zugriffsberechtigungen umgesetzt. Dabei wird
das Dokument zwar verschlüsselt Übertragen, auf dem Server von Microsoft
selbst liegt das Dokument entschlüsselt. Wäre das Dokument verschlüsselt,
könnte der Server keine Änderungen an dem Dokument vornehmen.
Unbefugte haben in der Regel keinen Zugriff auf die Dokumente, da Microsoft
durch entsprechende Zugriffsberechtigungen jene ausschließt.
Wie sieht es aber mit Microsoft selbst aus? Das wissen wir leider nicht. Jeder
muss Microsoft als Unternehmen vertrauen, dass die Daten nicht
ausspioniert werden.
Zugegeben, ich persönlich glaube nicht daran, dass Daten von Microsoft
ausgespäht werden. Aber allein die Tatsache, dass es möglich ist lässt
auf Lösungen hoffen, die dieses Problem eventuell beheben könnten – und genau
hier kommt homomorphe Verschlüsselung zum Einsatz. Mit homomorpher Verschlüsselung sind die Daten zu
jedem Zeitpunkt, außer
auf dem Client selbst, verschlüsselt. Die Verschlüsselung
bringt den Vorteil mit sich, dass selbst Microsoft mit den Daten nichts mehr
anfangen könnte, weil sie verschlüsselt sind. Sogar wenn Daten von einem
Microsoft Server gestohlen werden, sind alle Dokumente sicher, denn was
will ein Dieb mit verschlüsselten Daten, die er sowieso nicht lesen kann?
Man sieht, dass die homomorphe Verschlüsselung schon hier einen Vorteil bringt. Noch interessanter wird es aber im Data-Insights Umfeld. Aufgrund der DSGVO ist es nur mit der Zustimmung von Kunden möglich, persönliche Daten (z. B. Hobbys, Wohnort, Interessen, etc.) auszuwerten. Nun stell dir vor du möchtest aber genau anhand solcher Daten von allen Kunden Auswertungen machen, um deine Produkte noch effektiver auf den Markt zu bringen. Dadurch erhoffen sich Unternehmen den Umsatz zu steigern. Wegen der homorphen Verschlüsselung wäre es möglich diese Auswertungen dennoch zu tätigen. Denn alle Daten die von einem Kunden vorliegen sind verschlüsselt. Somit könnten keine Rückschlüsse zu einem speziellen Kunden gemacht werden. Diese Methode ist DSGVO-konform und dank homomorpher Verschlüsselung möglich umzusetzten.
Um nun ein bisschen wissenschaftlicher zu werden, möchte ich noch kurz nahebringen, wie die homomorpher Verschlüsselung in der Theorie funktioniert. Homomorphe Verschlüsselung arbeitet nach dem Public-Key- Verschlüsselungsverfahren. Bei diesem Verschlüsselungsverfahren werden zwei Schlüssel, ein Private- (privater) und ein Public-key (öffentlicher) erstellt. Dabei kann eine Nachricht N nur von dem Public-key, verschlüsselt werden. Aus dem Private-key kann jederzeit der Public-key erzeugt werden, so ist es indirekt möglich mit dem Private-key zu verschlüsseln. Entschlüsselt kann die Nachricht nur von dem Private-key.
Homomorphe Verschlüsselung setzt bei diesem Prinzip an, verwendet jedoch einen weiteren Schlüssel, den Evaluations-key, um Operationen auf den verschlüsselten Daten zuzulassen
Zusätzlich sind schon einige Algorithmen in der Theorie und Praxis definiert, die es ermöglichen Zahlen miteinander zu verrechnen:
Die beiden Algorithmen finden in der Praxis bereits Anwendung. Microsoft hat in der Microsoft SEAL Bibliothek beide Algorithmen in C++ umgesetzt und deren Anwendung stark vereinfacht. Die Bibliothek ist Open Source und kann auf Github eingesehen und verwendet werden.
Kurz gesagt: Theoretisch, ja – Praktisch, zu langsam.
In der Praxis ist es dank eines Transpiler
von Google möglich bereits einfache
Zeichenketten (Strings) miteinander zu vergleichen oder zu manipulieren.
Dadurch lässt sich z. B. an einem verschlüsselten Datensatz von Kunden
herausfinden, wie viele die gleiche Postleitzahl haben. Im Rahmen meiner
Projektarbeit T-2000 hat sich aber herausgestellt, dass eine solche Berechnung
bei nur 30 Datensätzen mehr als fünf Minuten benötigt. Praktisch ist Data-
Insights damit schon heute möglich, aber aufgrund der Performance nicht
rentabel. Google erwähnt im Blog
selbst, dass der Transpiler nur für
experimentelle Zwecke gedacht ist.
Ein anderes Beispiel aus dem Bereich der DNA zeigt,
dass es durchaus möglich
ist, dass HE schon heute praktische Anwendung findet.
Auch Google zeigt sich in einem Blogeintrag optimistisch über die Zukunft von
homomorpher Verschlüsselung:
In the next 10 years, FHE could even help researchers find associations
between specific gene mutations by analyzing genetic information across
thousands of encrypted samples and testing different hypotheses to identify the
genes most strongly associated with the diseases they’re studying.