Nächste Seite: Performance
Aufwärts: Analyse von Serpent
Vorherige Seite: Analyse von Serpent
Serpent ist seit 1998 veröffentlicht und wurde seitdem vor allem im Rahmen der AES-Konferenzen untersucht.
Es sind derzeit keine Schwächen bekannt, die zu einem wirksamen Angriff führen könnten.
Zunächst sollen einige der Angriffe vorgestellt werden, welche die Entwickler selbst betrachtet haben.
- vollständige Schlüsselsuche
Ein klassischer Brute Force-Angriff, der bei allen AES-Kandidaten funktioniert.
Hierbei werden alle Schlüssel durchprobiert, der Rechenaufwand entspricht somit der Menge der möglichen Schlüssel.
Es wird nur ein Klartext / Kryptotext-Beispiel benötigt.
- Wörterbuch-Angriff
Ebenfalls ein Brute Force-Angriff, der auf alle AES-Kandidaten angewandt werden kann.
Es werden dazu alle möglichen Klartextblöcke sowie die dazugehörigen Kryptotextblöcke benötigt.
Der Angreifer kann damit jeden Kryptotextblock entschlüsseln, indem er den entsprechenden Klartextblock in
seiner Sammlung sucht. Der Platzbedarf ist ausschließlich von der Anzahl der möglichen Blöcke und damit
von der Blocklänge abhängig (welche für die AES-Kandidaten auf 128 Bit festgelegt ist).
- CBC- und CFB-Modi
Werden
Kryptotextblöcke im CBC- oder CFB-Modus übertragen, liegt die Wahrscheinlichkeit bereits bei 1/2
daß zwei identische Kryptotextblöcke dabei waren. Daraus lassen sich dann einzelne Bits der nachfolgenden
Klartexte rekonstruieren (je mehr identische Kryptotextblöcke auftauchen, desto mehr kann vom Angreifer
rekonstruiert werden). Eine typische Gegenmaßnahme ist der Wechsel des verwendeten Schlüssels nach der
Übertragung einer gewissen Anzahl von Blöcken in einem der beiden Modi. Dieser Angriff kann ebenfalls auf jedes
Blockchiffre angewandt werden, und der Platzbedarf ist ausschließlich von der Blocklänge abhängig.
- differentielle Kryptoanalyse
Diese Verfahren basieren auf der Untersuchung sehr ähnlicher Klartexte und den Unterschieden in den dazugehörigen
Verschlüsselungen. Da bei Serpent jedoch die Änderungen eines einzelnen Eingabe-Bits bereits nach wenigen
Runden alle Ausgabe-Bits beeinflußt, sehen die Entwickler keine Ansatzpunkte für solche Verfahren.
- lineare Kryptoanalysis
Hierbei sucht der Angreifer nach linearen Abhängigkeiten zwischen Eingabe- und Ausgabe-Bits der S-Boxen,
die mit einer Wahrscheinlichkeit ungleich 50% (das wäre der ideale Zufall) auftreten. Solche Abhängigkeiten
können unter Umständen zu linearen Abhängigkeiten zwischen der Eingabe und der Ausgabe des gesamten Algorithmus
führen, welche dann ebenfalls mit Wahrscheinlichkeiten ungleich 50 % auftreten.
Aufgrund der sorgfältigen Auswahl der S-Boxen und der hohen Rundenzahl liegen diese Wahrscheinlichkeiten
bei Serpent (für den kompletten Algorithmus, nicht für jede einzelne S-Box) jedoch so nahe an den 50%,
daß sie nicht für Angriffe genutzt werden können.
- verwandte Schlüssel
Der Angreifer verschlüsselt einen bekannten Klartext mit verschiedenen Schlüsseln, die sich an bestimmten Stellen
unterscheiden. Durch den Vergleich der Ergebnisse mit dem echten Kryptotext versucht er dann Rückschlüsse
auf den dort verwendeten Schlüssel zu ziehen. Die Entwickler begründen die Immunität von Serpent gegenüber solchen
Angriffen damit, daß sich bereits geringste Änderungen an den Rundenschlüsseln nach wenigen Runden auf sehr
viele Schlüssel-Bits der nachfolgenden Rundenschlüssel auswirken.
- Timing Attack
Dieses Verfahren geht davon aus, daß dem Angreifer Daten über die Dauer der Rechenoperationen zur Verfügung stehen,
die während der Verschlüsselungen benutzt wurden. Daraus versucht er dann Rückschlüsse auf die beteiligten
Operanden zu ziehen. Die von Serpent verwendeten Operationen and, or, xor,
not, rotate und shift sind für solche Verfahren allerdings kaum anfällig,
da sie annähernd feste (d.h. von den Operanden unabhängige) Ausführungszeiten haben.
Auch im AES-Report zur zweiten Runde finden sich Untersuchungen zur Sicherheit der fünf Finalisten
(Rijndael, Serpent, MARS, RC6 und Twofish). Bei keinem dieser Algorithmen konnten Hinweise auf mögliche Angriffe
gefunden werden. Um dennoch ein Maß für die Sicherheit der Algorithmen zu finden, hat man Angriffe auf
vereinfachte Versionen der Algorithmen versucht. Anhand des Grades der dazu nötigen Vereinfachung,
wurde den Algorithmen dann ein großer bzw. ein angemessener Sicherheitsspielraum bescheinigt.
Die Vereinfachungen bei Serpent bestanden im wesentlichen in der Reduktion der Rundenzahl.
Die nachfolgende Tabelle gibt einen Überblick über
mögliche Angriffe auf Serpent-Versionen mit reduzierter Rundenzahl
und den jeweils dazu benötigten Klartextblöcken. Hierbei wurde alles als Angriff gewertet,
was weniger Klartexte als der Brute Force-Angriff benötigt (der Wörterbuchangriff benötigt
Klartextblöcke).
Anzahl der Runden |
Verfahren |
benötigte Klartexte |
6 Runden |
differentielle Kryptoanalysis |
Klartextblöcke |
7 Runden |
differentielle Kryptoanalysis |
Klartextblöcke |
8 und 9 Runden |
amplified Boomerang |
Klartextblöcke |
Es konnten also maximal neun Runden angegriffen werden, was bei einer Gesamtrundenzahl von 32 eine
beträchtliche Vereinfachung darstellt. Untersuchungen im Rahmen der AES-Konferenzen ergaben außerdem, daß nach
vier und mehr Runden die Ausgabe von Serpent Eigenschaften einer zufälligen Bitfolge hat. Serpent hat eine
einfache und gut zu analysierende Struktur und verwendet nur konventionelle und bereits gut untersuchte Verfahren,
bei denen das Risiko daß ein neuer effizienter Angriff gefunden wird, vergleichsweise gering ist.
Insgesamt wurde Serpent deshalb ein hoher Sicherheitsspielraum bescheinigt (ebenso wie MARS und Twofish),
während RC6 und Rijndael ein angemessener Sicherheitsspielraum attestiert wurde.
Nächste Seite: Performance
Aufwärts: Analyse von Serpent
Vorherige Seite: Analyse von Serpent
Michael Ueckerdt
2002-08-23