Honey Encryption
Honey Encryption ist eine symmetrische Verschlüsselungsmethode, die einen Ciphertext unter jedem möglichen Schlüssel zu einem plausiblen Klartext entschlüsselt. Sie wurde im Mai 2014 von Ari Juels und Thomas Ristenpart auf der Eurocrypt cryptography conference vorgestellt.[1]
Idee
Bei konventionellen symmetrischen Verschlüsselungsverfahren wird ein Klartext mithilfe eines geheimen Schlüssels in einen Ciphertext umgewandelt. Ein Angreifer würde nun mithilfe einer Brute-Force-Attacke versuchen, den korrekten Schlüssel zu identifizieren. Dies tut er, indem er den vorliegenden Ciphertext mit jedem möglichen Schlüssel entschlüsselt und den daraus entstehenden Klartext auf Plausibilität prüft. Bei bekannten Informationen, wie zum Beispiel, dass es sich um eine verschlüsselte Datei mit einer bestimmten Struktur handelt, ist dies sehr einfach zu erreichen.
Die Idee von Honey Encryption ist nun, dem Angreifer diese Prüfung auf Plausibilität zu erschweren, indem der Ciphertext unter jedem Schlüssel zu einem plausiblen Klartext entschlüsselt wird. Damit könnte ein Angreifer bei einer Brute-Force-Attacke nicht mehr unterscheiden, ob ein probierter Schlüssel der richtige ist oder nicht.[2]
Funktionsweise
Es werden drei Mengen unterschieden: die Menge aller Nachrichten (Message Space), die Menge aller Schlüssel (Key Space) und die Menge der sogenannten Seeds (Seed Space). Letztere ist eine Repräsentation der Nachrichten, die vor die eigentliche Verschlüsselung geschaltet wird.[3]
Die Ver- und Entschlüsselung wird bei der Honey Encryption in zwei verschiedene Abschnitte aufgeteilt. Bei der Verschlüsselung wird ein Klartext mithilfe einer DTE (Distribution Transforming Encoder) auf einen Seed abgebildet und anschließend mit einem konventionellen Verschlüsselungsverfahren unter dem gewählten Schlüssel in einen Ciphertext umgewandelt. Bei der Entschlüsselung erhält man nach Dekodierung unter dem Schlüssel wieder einen Seed, der von der DTE auf die richtige Nachricht abgebildet wird.
Bei einem falschen Schlüssel wird der Ciphertext auf einen anderen Seed abgebildet und somit zu einer falschen Nachricht entschlüsselt.[4]
DTE
Die DTE (Distribution Transforming Encoder) stellt den wesentlichen Teil der Honey Encryption dar. Sie besteht aus den beiden Algorithmen encode und decode. encode bildet dabei von einer Nachricht auf einen Seed ab, decode von einem Seed auf eine Nachricht. Einer Nachricht können dabei mehrere Seeds zugewiesen sein, jedem Seed aber nur eine Nachricht. Sind für eine Nachricht mehrere Seeds möglich, wird im encode Algorithmus durch Zufall genau ein Seed ausgewählt. Dieser Algorithmus ist also randomisiert, während der Algorithmus decode deterministisch ist.[1]
Die DTE ist dann sicher, wenn einer Nachricht entsprechend ihrer Wahrscheinlichkeit eine Anzahl von Seeds zugewiesen werden können. Es soll also die relative Anzahl der zu einer Nachricht gehörenden Seeds zu allen Seeds so gut wie möglich der Wahrscheinlichkeit der Nachricht entsprechen. Es muss also für die Erstellung einer DTE die Wahrscheinlichkeitsverteilung der Nachrichten bekannt sein.[1]
Verschlüsselung
Bei der Verschlüsselung handelt es sich um eine konventionelle symmetrische Verschlüsselungsmethode und kann somit recht flexibel gewählt werden. Gefordert ist von ihr lediglich, dass sie bei der Entschlüsselung unter jedem möglichen Schlüssel auf den Seed Space abbildet, damit die DTE anschließend den Seed in eine plausible Nachricht umwandeln kann.[1]
Beispiel
Es soll der favorisierte RGB-Farbanteil verschlüsselt werden – deshalb sind r (rot), g (grün) und b (blau) die möglichen Nachrichten. Es sei die Verteilung der Nachrichten bekannt, nämlich werde blau mit 50 % Wahrscheinlichkeit gewählt und die beiden anderen Nachrichten zu je 25 %. Die DTE (rechts in der Abbildung) bildet von einer gewählten Nachricht auf einen Seed (Mitte) ab. In der Abbildung wird der zu verschlüsselnden Nachricht grün der Seed 01 zugewiesen. Der Schlüssel 10 wird nun mit diesem Seed XOR-verknüpft:
11 ist der Ciphertext. Bei der Entschlüsselung wird der Ciphertext mit dem Schlüssel erneut XOR-verknüpft:
Dies ist wieder der Seed, der dann von der DTE auf die ursprüngliche Nachricht abgebildet wird. Die Nachricht ist wieder entschlüsselt.
Sollte nun ein Angreifer einen Schlüssel ausprobieren, beispielsweise 00, verknüpft dieser den Ciphertext mit diesem Schlüssel und erhält , was zu blau dekodiert wird. Der Angreifer kann nicht unterscheiden, ob es sich hierbei um die korrekte oder um eine falsche Nachricht handelt.
Sicherheit
Auch wenn Honey Encryption bei der Entschlüsselung immer einen plausiblen Klartext erzeugt, kann ein Angreifer durch andere Informationen, zum Beispiel ihm bekannte Teile des Klartextes, den entschlüsselten Text und somit den Schlüssel auf Plausibilität prüfen. Dazu muss er aber alle möglichen Schlüssel ausprobieren, was einer Brute-Force-Attacke gleicht. Damit ist Honey Encryption mindestens so sicher wie die verwendete Verschlüsselung.[1]
Sind dem Angreifer keine weiteren Informationen bekannt und ist die DTE gut gewählt, kann der Angreifer keinen Schlüssel als den richtigen identifizieren.
Einzelnachweise
- ↑ a b c d e Ari Juels und Thomas Ristenpart: Honey Encryption – Security Beyond the Brute – Force Bound. In Eurocrypt 2014, Kopenhagen, Dänemark, Mai 2014.
- ↑ Ari Juels und Thomas Ristenpart: Honey Encryption: Security Beyond the Brute-force Bound. http://ec14.compute.dtu.dk/talks/19.pdf. Abgerufen am 16. Dezember 2014.
- ↑ Ari Juels. The Password That Never Was. http://crcs.seas.harvard.edu/event/ari-juels-the-password-that-never-was. Abgerufen am 27. Oktober 2014.
- ↑ Ari Juels und Thomas Ristenpart: Honey Encryption – Encryption beyond the Brute – Force Barrier. IEEE Security & Privacy, 12(4):59–62, April 2014.