Honey Encryption
# Honey Encryption

| Beteilige dich an der Diskussion! | Dieser Artikel wurde wegen inhaltlicher Mängel auf der Qualitätssicherungsseite der Redaktion Informatik eingetragen. Dies geschieht, um die Qualität der Artikel aus dem Themengebiet Informatik auf ein akzeptables Niveau zu bringen. Hilf mit, die inhaltlichen Mängel dieses Artikels zu beseitigen, und beteilige dich an der Diskussion! (+) Begründung: Siehe Begründung in der QS-Informatik. --Minderbinder 15:06, 26. Jul. 2022 (CEST) |
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.

## 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.

## Funktionsweise

Es werden drei Mengen unterschieden: die Menge aller Nachrichten ${\mathcal {M}}$ (Message Space), die Menge aller Schlüssel ${\mathcal {K}}$ (Key Space) und die Menge der sogenannten Seeds ${\mathcal {S}}$ (Seed Space). Letztere ist eine Repräsentation der Nachrichten, die vor die eigentliche Verschlüsselung geschaltet wird.
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.

### 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.
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.

### 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.

## 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:
$01\oplus 10=11$
11 ist der Ciphertext. Bei der Entschlüsselung wird der Ciphertext mit dem Schlüssel erneut XOR-verknüpft:
$11\oplus 10=01$
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 $11\oplus 00=11$, 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.
Sind dem Angreifer keine weiteren Informationen bekannt und ist die DTE gut gewählt, kann der Angreifer keinen Schlüssel als den richtigen identifizieren.