Harte Nüsse - Verschlüsselungsverfahren und ihre Anwendungen

Kryptographische Algorithmen bilden ein Fundament der Datensicherheit, sind aber der am schwierigsten zu bewertende und zu verstehende Teil.

In Pocket speichern vorlesen Druckansicht
Lesezeit: 19 Min.
Von
  • Dr. Reinhard Wobst
Inhaltsverzeichnis

Wer Daten über einen unsicheren Kanal wie Internet oder Wireless-LAN versendet, kann sich nur durch Verschlüsseln vor dem unbefugten Mithören schützen. Das ist leichter gesagt als getan: Nicht nur der Verschlüsselungsalgorithmus selbst muss Angriffen widerstehen können, sondern auch der Schlüssel. Das kryptographische Protokoll muss ebenso wasserdicht sein wie seine Implementierung, und nicht zuletzt ist oft der Benutzer die größte Sicherheitslücke.

Aus dieser Kette greift der folgende Artikel nur ein Glied heraus, die kryptographischen Algorithmen. Schon dieses Thema ist verwirrend und schwierig genug: Selbst ein Experte kann die Sicherheit eines Verschlüsselungsalgorithmus allein kaum beurteilen, es sei denn, der Algorithmus ist offensichtlich schwach. Viele Themen können daher nur gestreift werden; mehr erfährt man in der „Bibel“ von Schneier [1] oder dem weniger mathematischen und umfangreichen, aber aktuelleren Buch des Autors [2].

Kryptographie, also die Lehre von der Verschlüsselung, ist Jahrtausende alt. Einen historischen Überblick liefert beispielsweise [3]. Eine der wichtigen Lehren aus der Geschichte lautet: „Der Feind kennt immer dein Verfahren.“ Es bringt also nichts, sich irgendwelche obskuren Kodierungen auszudenken, „auf die niemals jemand kommen wird“. Solche Methoden werden üblicherweise als „Snake Oil“ bezeichnet; man erkennt entsprechende Produkte an Formulierungen wie „einzigartiger, patentierter Algorithmus mit nie gekannter Sicherheit“, „Tausende Bit lange Schlüssel“, „beweisbar sichere Algorithmen“. Wenn das Verfahren dann doch einmal offen gelegt und (wie bei fast allen Eigenentwicklungen zu erwarten) als unsicher erkannt wird, lassen sich nachträglich noch alle abgefangenen Nachrichten dechiffrieren.

In der klassischen Kryptographie vereinbaren die Kommunikationspartner einen gemeinsamen geheimen Schlüssel. Jeder, der diesen Schlüssel besitzt, kann damit chiffrieren wie dechiffrieren. Wegen dieser Symmetrie werden die verwendeten Algorithmen auch symmetrische Verfahren genannt. Dazu zählt der populäre Substitutionsalgorithmus, bei dem jeder Buchstabe nach einer festen Tabelle durch einen anderen ersetzt wird (die Ersetzungstabelle ist dabei als Schlüssel aufzufassen). Dieses Verfahren ist besonders bei Kindern beliebt - und das Sicherheitsniveau dementsprechend [3].

Auf einer ähnlichen Methode beruht das Vigen&egravere-Verfahren, das im 16. Jahrhundert entwickelt wurde. Auch heute kommt es teilweise noch zum Einsatz, einige amerikanische Mobiltelefone sollen es angeblich noch verwenden. In der ursprünglichen Form wird der Schlüssel - in diesem Fall ein Passwort - direkt über den Klartext geschrieben:

PATRICKPATRICKPATRICK

DASISTEINGEHEIMERTEXT

Übereinander liegende Zeichen „addiert“ man, indem man A als 0, B als 1 usw. kodiert und Ergebnisse größer als 25 um 26 verkleinert. Nach Rückkodierung ergibt sich der Geheimtext

SALZAVOXNZVPGSBEKKMZD

Ein so genannter deterministischer Angriff, bei dem man zu einem bekannten Klartext den verschlüsselten Text kennt, liefert sofort den Schlüssel. Aber auch mit statischen Methoden und anderen Tricks lässt sich die Vigen&egravere-Verschlüsselung knacken (auch bei komprimiertem Klartext), mehr dazu findet sich inklusive Beispielprogrammen in [2].

Nur in einem Spezialfall ist dieses Verfahren (in der bitweisen Version) sicher: Wenn der Schlüssel genauso lang wie der Geheimtext und obendrein wirklich zufällig ist. Das ist das so genannte One-Time Pad, die einzige bisher beweisbar sichere Verschlüsselungsmethode. Sie ist allerdings hochgradig unpraktisch und daher nur in ganz seltenen Fällen sinnvoll.

Moderne Algorithmen wie AES, 3DES et cetera arbeiten blockweise. Bei solchen Blockalgorithmen wird der Klartext zum Beispiel in Portionen zu 64 Bit aufgeteilt und aus jeder solchen Portion jeweils ein Geheimtext von 64 Bit Länge erzeugt. Das entspricht in der Theorie einem Substitutionsalgorithmus, dessen Tabelle 264 Einträge umfasst. Allein die Größe dieser Zahl verhindert statistische Analysen analog zu den klassischen Verfahren. In der Praxis konstruiert man oft eine Transformation, in die alle Bits aus dem Klartextblock sowie ein Schlüssel mit eingehen und die sowohl statistische Analyse erschwert als auch kompliziert genug ist, um deterministische Angriffe zu verhindern. Diese Transformation wird mehrfach hintereinander angewandt, jedes Mal mit einem anderen Schlüssel. Man spricht von Runden und nennt daher die Teilschlüssel auch Rundenschlüssel. Letztere werden aus dem Verfahrensschlüssel gesondert erzeugt.

Mathematisch gesehen ist die Transformation eines Klartextblockes in einen Geheimtextblock das Produkt von mehreren Runden-Transformationen, die sich bis auf die verwendeten Rundenschlüssel gleichen. Daher spricht man bei solchen Chiffrierverfahren auch von Produktalgorithmen. Die meisten Algorithmen, die bis heute allen Kryptanalysen erfolgreich widerstanden haben, gehören zu dieser Kategorie. Beispiele dafür sind DES, 3DES, IDEA, AES, Twofish, RC5 und RC6. Bei sorgfältigem Design lassen Produktalgorithmen bekannte statistische Angriffsmethoden ins Leere laufen [1, 2].

Neben den Blockalgorithmen gibt es noch eine Familie ganz anderer Verschlüsselungsverfahren, die so genannten Stromchiffrierungen. Bei ihnen wird aus einem geheimen Schlüssel ein pseudozufälliger Bitstrom erzeugt und per bitweisem XOR mit dem Klartext verknüpft. Der Empfänger braucht diese Operation nur zu wiederholen, um aus dem Geheimtext den Klartext zu erzeugen.

Von der Arbeitsweise her entspricht das einem One-Time Pad, allerdings setzt jenes echten Zufall voraus. Die Qualität einer Stromchiffrierung kann daran gemessen werden, wie „zufällig“ der Schlüsselstrom ist. Solche Stromchiffren waren traditionell Domäne des Militärs. Man erzeugt den Schlüsselstrom oft mittels Hardware (rückgekoppelte Schieberegister, vgl. [1, 2]) und erreicht damit sehr hohe Geschwindigkeiten. Eine populäre zivile Anwendung ist der Algorithmus A5, mit dem der Datenverkehr von GSM-Handys chiffriert wird. Es geht aber auch in Software - der unter anderem beim SSL-Protokoll verwendete Algorithmus RC4 ist ein Beispiel hierfür. In Software sind jedoch Blockalgorithmen im Allgemeinen schneller, weil heutige Prozessoren Einheiten von 32 oder 64 Bit parallel verarbeiten und bei kleineren Bitmengen ineffizienter werden.

Beim OFB-Modus (Output Feedback) wird ein zufälliger Block IV immer wieder chiffriert und der so erzeugte Bitstrom per XOR mit dem Klartext verknüpft. Das ist günstig für Echtzeitanwendungen.

Stromchiffrierungen haben den Vorteil, dass man den Schlüsselstrom im Voraus berechnen und daher bit- oder byteweise chiffrieren und sofort übertragen kann. Sie sind also ideal, um etwa Tastendrücke verschlüsselt zu senden (bei einem Blockalgorithmus müsste dazu jeweils auf die Blocklänge „aufgerundet“ werden). Nachteilig ist allerdings, dass der gleiche Schlüsselstrom niemals wiederverwendet werden darf, denn sonst sind gefährliche Angriffe möglich. Außerdem besteht die Gefahr, dass durch so genanntes „Bit umkippen“ gezielt Teile des Klartextes verfälscht werden können: Ändert ein Angreifer ein Bit im Geheimtext, so ändert es sich auch im Klartext. Das liegt in der Natur der XOR-Operation und kann nur durch zusätzliche Prüfsummen erkannt werden.

Beim CBC-Modus (Cipher Block Chain) werden die Klartextblöcke vor dem Chiffrieren per XOR mit dem letzten Geheimtext verknüpft. Das verbirgt Klartextstrukturen und ist zum Beispiel bei Dateiverschlüsselungen üblich.

Jeder Blockalgorithmus lässt sich ebenso als Stromchiffrierung verwenden, beispielsweise im so genannten OFB-Modus (Output Feedback). Dazu wird ein Block „IV“ immer wieder chiffriert und der entstehende Datenstrom als Schlüsselstrom verwendet. „IV“ steht hier für „Initialisierungsvektor“, eine etwas unglückliche Bezeichnung für einen zufälligen, nicht geheimen Startblock.

In der Regel wendet man bei Blockalgorithmen allerdings den CBC-Modus (Cipher Block Chain) an. Das Ergebnis der letzten Chiffrierung wird dabei zunächst per XOR mit dem nächsten Klartextblock verknüpft und erst dieses Ergebnis chiffriert. Dadurch wird die Klartextstruktur zerstört, über die man beim simplen blockweisen Verschlüsseln noch Aussagen machen könnte (beispielsweise würde 1 KByte Nullen 128 gleiche 64-Bit-Geheimtextblöcke erzeugen). Vor- und Nachteile der bekannten Chiffriermoden sind in [1, Kap. 9.11] detailliert dargelegt.

Um zu beurteilen, wie sicher ein Verschlüsselungsalgorithmus ist, muss man sich überlegen, wie einfach und mit welchen Mitteln er auszuhebeln ist. Im einfachsten Fall knackt man einen Algorithmus, indem man alle möglichen Schlüssel durchprobiert und testet, ob sich bei Dechiffrierung ein sinnvoller Klartext ergibt. Diese Methode heißt „Brute Force“ und hat ihre Grenzen. Schlüssellängen von 32 oder auch 40 Bit sind für heutige PCs keine Hürde mehr. Einen 56-Bit-Schlüssel von DES kann Spezialhardware erraten [5], und 64 Bit sind für weltweit verteilte, parallel arbeitende Rechner noch machbar. Dass das Durchprobieren aller 128 Bit langen Schlüssel in vorstellbarer Zukunft ein Wunschtraum bleiben wird, mag sich jeder selbst ausrechnen. Ein Algorithmus gilt als sicher, wenn Brute Force die effektivste bekannte Angriffsmethode ist.

Der Begriff „Kryptanalyse“ wird jedoch viel weiter gefasst: Nicht nur die Rekonstruktion des Klartextes aus dem Geheimtext ohne Kenntnis des Schlüssels ist damit gemeint, sondern auch die Gewinnung jeglicher Aussagen über den Klartext (wie etwa die Sprache) oder über den Schlüssel (Wert einzelner Bits) zählt dazu. Oft kennt man auch einige Bytes des Klartextes (bekannte Headerstrukturen bei Word-Dokumenten) und versucht nur, damit die Zahl möglicher Schlüssel zu verringern. Ebenso interessant kann es sein, bekannte oder gar ausgewählte Klartexte unterzuschieben und den erzeugten Geheimtext zu analysieren. Im zweiten Weltkrieg bombardierten Alliierte zu diesem Zweck Leuchtbojen, weil daraufhin „erloschen ist Leuchttonne“ chiffriert und gefunkt wurde [3]. Manchmal gelingt es auch einem Angreifer, einzelne Bits des Klartextes beziehungsweise des Schlüssels (in Smartcards) umzukippen und die Chiffrierung wiederholen zu lassen. Gegenüber dem letzteren Angriff zeigte sich zum Beispiel DES empfindlich. Weitere kryptanalytische Methoden finden sich in [1] und [2].

Wie man sieht, ist in der Kryptanalyse alles erlaubt - Hauptsache, es ist praktizierbar und führt zum Ziel. Nicht einmal mathematische Strenge ist gefordert, sogar Computersimulationen werden eingesetzt. Das alles bringt die Designer der Algorithmen, die Kryptographen, in eine schwierige Lage. Formulierungen wie „resistent gegen alle bekannten Angriffe“ belegen schon ihr Dilemma. Bis auf das fast nie anwendbare One-Time Pad ist bisher die Sicherheit nicht eines Algorithmus beweisbar. Vermutlich wird sich daran auch nicht so schnell etwas ändern.

Dennoch besteht kein Grund zum Verzweifeln. Die Kryptanalyse hat in den letzten zehn Jahren große Fortschritte gemacht, aber die Kryptographen ebenfalls. Eine erfolgreiche Kryptanalyse muss noch lange keinen praktikablen Angriff bedeuten. Ein gutes Beispiel hierfür liefert DES: Die beste bekannte Analyse setzt 243 bekannte Klartextblöcke voraus, das entspricht etwa 70 Terabyte. Die anschließende Rechenarbeit auf zwölf Workstations HP 9735 würde dann noch 50 Tage dauern (mit heutigen Rechnern sicherlich kürzer). Gegenüber dieser Methode ist Brute Force mit Deep Crack [5] um Größenordnungen gefährlicher. Analog sind die für Theoretiker beunruhigenden Ergebnisse zu AES zu sehen [7]. Allerdings darf man einem Algorithmus erst vertrauen, wenn er offen gelegt wurde und über viele Jahre hinweg das Interesse zahlreicher Kryptanalytiker fand. Flops wie die Chiffrierungen von WordPerfect und PKZIP belegen dies [2].

Ein grundsätzliches Problem der verschlüsselten Kommunikation besteht im Austausch des Schlüssels: Da dieser geheim bleiben muss, sollte er nicht im Klartext über einen unsicheren Kanal wie das Internet versendet werden. Die erste praktikable Lösung für den Schlüsseltransfer publizierten Diffie und Hellman 1976. Sie beruht auf dem Problem, diskrete Logarithmen zu ermitteln: Die Berechnung des üblichen Logarithmus, also des Exponenten x aus bekannten Größen a und ax, gehört zum Schulstoff. Anders verhält es sich, wenn man nur mit ganzen Zahlen arbeitet und die Reste bei Teilung durch eine Primzahl p betrachtet. Es ist für große p (typischerweise 1024 oder 2048 Bit lang) im Allgemeinen nicht möglich, aus dem Teilungsrest ax mod p bei bekannter Basis a die Größe x zu ermitteln. Zumindest hat man in den letzten Jahrzehnten trotz größter Anstrengungen keine praktikable Methode gefunden. Nach Diffie und Hellman vereinbaren die Kommunikationspartner (in der Kryptographie traditionell Alice und Bob genannt) zwei gemeinsame Zahlen a und p, und jeder wählt für sich zufällige (geheime) Exponenten x und y. Schickt Alice an Bob

X = ax mod p

und Bob an Alice

Y = ay mod p

können beide ein gemeinsames Geheimnis errechnen, ohne dass es über das Netz übertragen werden muss, nämlich

axy mod p

Dieses Geheimnis kann jetzt als Schlüssel in einem symmetrischen Verfahren genutzt werden.

Der Diffie-Hellman-Schlüsseltausch ist beispielsweise Grundlage für das Protokoll der Secure Shell (SSH2, OpenSSH) und ebenso für IPSec. Weil es jedoch eine Interaktion beider Parteien voraussetzt, kann es beispielsweise nicht bei der Mail-Verschlüsselung eingesetzt werden.

Dazu dienen asymmetrische oder auch Public-Key-Verfahren, bei denen es zwei Schlüssel gibt: einen öffentlichen, der nur zum Chiffrieren dient, und einen geheimen (privaten) - ausschließlich mit ihm kann man wieder dechiffrieren. Jeder kann also chiffrieren, doch nur der Besitzer des privaten Schlüssels kann den Geheimtext wieder entschlüsseln. Damit braucht kein geheimer Schlüssel mehr transportiert zu werden. Die bekanntesten solchen Public-Key-Verfahren sind ElGamal und vor allem RSA.

Der wichtigste asymmetrische Algorithmus RSA beruht darauf, dass es mathematisch extrem schwierig ist, große Zahlen zu faktorisieren, also etwa aus dem Produkt pq zweier sehr großer Primzahlen die beiden Faktoren p und q zu ermitteln. Zur Anwendung wählt man zufällig zwei Primzahlen p und q, von denen nur das Produkt pq bekannt gegeben wird, und konstruiert zwei spezielle Exponenten, einen „öffentlichen“ d und einen „privaten“ e. Bei der Chiffrierung einer Zahl (Nachricht) m berechnet man

c = md mod pq ,

und e ist so gewählt, dass

de = 1 mod (p-1)(q-1) und

m = ce mod pq

gilt. Dabei lässt sich e nicht aus d berechnen, ohne die Primzahlen p und q zu kennen. Ließen sich diese aus pq bestimmen, dann wäre der diskrete Algorithmus und damit RSA geknackt.

Eine Übersicht symmetrischer und asymmetrischer Krypto-Verfahren finden sie in der Tabelle Verschlüsselungs-Algorithmen.

Die Schlüssellänge bei solchen Verfahren beschreibt die Anzahl der Bit der Zahl p beziehungsweise pq, typischerweise 512, 1024 oder 2048. Diese Zahlen sind allerdings nicht mit den Schlüssellängen bei symmetrischen Verschlüsselungsverfahren vergleichbar; 128 Bit bei AES bieten beispielsweise deutlich mehr Sicherheit als 512 Bit bei RSA. Welche Schlüssellängen für welches Verfahren zu empfehlen sind, können Sie der Tabelle am Ende des Artikels entnehmen.

In der Praxis werden asymmetrische Verfahren normalerweise nur eingesetzt, um pseudozufällige Klartexte wie Sitzungsschlüssel oder Hashes zu chiffrieren. Asymmetrische Verschlüsselungsverfahren sind im Vergleich zu symmetrischen recht langsam - das ist aber nur ein nebensächlicher Grund. Entscheidender ist, dass asymmetrische Verfahren sehr anfällig gegenüber Implementierungsfehlern sind. Klartexte werden daher niemals direkt mit asymmetrischen Verfahren verschlüsselt, sondern nur Sitzungsschlüssel oder Ähnliches - die Gefahr einer erfolgreichen Kryptanalyse wäre einfach zu hoch.

Auch die asymmetrischen Verfahren setzen auf das Prinzip Hoffnung. Es ist nicht sehr wahrscheinlich, doch ein genialer Trick zur Berechnung des diskreten Logarithmus könnte Verfahren wie ElGamal und vor allem RSA mit einem Schlag unsicher machen. Schon die Entdeckung einer praktikablen Faktorisierungsmethode wäre für die Wirtschaft verhängnisvoll.

Die größte Gefahr jedoch könnten die noch hypothetischen Quantencomputer darstellen [6] (nicht zu verwechseln mit der Quantenkryptographie). Man spricht oft davon, dass diese in realistischer Zeit faktorisieren könnten. Auch andere Verfahren, die diskrete Logarithmen in abstrakten Strukturen benutzen, könnten dadurch gebrochen werden, zum Beispiel Kryptographie, die auf so genannten elliptischen Kurven beruht.

Zwar bestreiten viele Physiker heftig, dass solche Computer in realistischer Größe überhaupt möglich sind, andere wiederum arbeiten umso intensiver daran. Die Forschung zu Quantencomputern wird an neun großen Hochschulen und Firmen in den USA nicht ohne Grund gerade vom Geheimdienst NSA gesponsert, und zahlreiche wissenschaftliche Konferenzen belegen die Fortschritte auf diesem Gebiet. Nach Einschätzung der NSA könnte es durchaus noch 20 Jahre dauern, bis Quantencomputer RSA knacken. Allerdings darf man nicht vergessen, dass alle sicheren asymmetrischen Verfahren der letzten 30 Jahre auf Faktorisierung beziehungsweise diskretem Logarithmus beruhen und immer noch kein anderes Prinzip in Sicht ist.

Moderne, gut untersuchte Algorithmen bieten in der Regel kaum praktisch ausnutzbare Schwächen. Angreifer werden daher an anderer Stelle ansetzen, zum Beispiel beim kryptographischen Protokoll, der Schlüsselwahl, der zu kurzen Passphrase zur Absicherung privater Schlüssel und so weiter. Ein lehrreiches Beispiel für einen Protokollangriff lieferte eine Attacke auf OpenPGP, wie in [2, 7.1.4] beschrieben. Private Schlüssel werden bei PGP und GnuPG im CFB-Modus chiffriert (Cipher Feedback), bei dem man ähnlich wie beim erwähnten OFB-Modus (Output-Feedback) leicht bestimmte Bits umklappen kann, genauer: Ein in den Rechner eingedrungener Angreifer ändert ein Bit im verschlüsselten Secret Key und weiß, welches Bit sich nach Dechiffrierung beim Klartext ändern wird. Wer mit einem solchen „gestörten“ Schlüssel signiert, hat verloren: Aus der falschen Signatur lässt sich der private Schlüssel berechnen. Der Angriff wurde möglich, weil die Designer von OpenPGP nur CRC-Prüfsummen implementierten, deren Verhalten bei solchen Störungen vorhersagbar ist. Die Attacke ist sehr eng mit dem Algorithmus selbst verquickt und nutzt kryptanalytische Erkenntnisse aus. Ähnliche Effekte hätte übrigens ein Bitfehler bei der Berechnung digitaler Signaturen. Die Software sollte Letztere also immer nochmals auf Korrektheit prüfen.

Besonders hinterhältig sind so genannte Seitenangriffe auf Smartcards, bei denen die Taktzeiten zur Chiffrierung untergeschobener Klartexte gemessen werden (timing attack) oder auch der zeitliche Verlauf des Stromverbrauchs (DPA = differential power attack). Nicht nur die Smartcard-Hersteller, sondern ebenso die Algorithmendesigner müssen an diese Möglichkeiten denken.

Angesichts der beschriebenen Schwierigkeiten sollte es klar sein, dass man mit Eigenentwicklungen den Angreifern eine Freude macht. Kryptanalytiker sind Mathematiker, und wer ihnen widerstehen will, muss ihr Handwerkszeug kennen und beherrschen. Ein Blick in ein „echtes“ Kryptographiebuch wie [4] oder noch besser in CRYPTO-Proceedings aus der LNCS-Reihe des Springer-Verlages zeigt, welches Niveau dazu erforderlich ist.

Doch auch gute Kenntnis gängiger Methoden reicht nicht: Eigene erfolgreiche Kryptanalysen sind Voraussetzung, um einen guten Algorithmus beziehungsweise ein sicheres kryptographisches Protokoll überhaupt entwickeln zu können. Sichere Kryptographie beruht auf mathematisch anspruchsvollen Überlegungen - ein Mathematikstudium ist fast schon ein Muss für seriöse Kryptologen. Zudem muss gutes Verständnis über Computer und Software vorhanden sein, damit keine Implementierungsfehler passieren. Aber auch von den mathematischen und technischen Schwierigkeiten ganz abgesehen, sollte man sich bei der Entwicklung eines Krypto-Algorithmus die Frage stellen, ob es wirklich nötig ist, das Rad ein zweites Mal zu erfinden. Der bekannte Kryptograph Schneier schreibt in seinem lesenswerten „Memo to the Amateur Cipher Designer“ [9]: „Es ist leicht, einen Algorithmus zu entwerfen, den man selbst nicht knacken kann. Schwierig wird es, wenn ihn auch andere nicht knacken können sollen. Und selbst bei einem guten Algorithmus muss sich sein Designer die Frage gefallen lassen, welche Vorzüge dieser zum Beispiel gegenüber AES oder Twofish haben soll.“

[1] Bruce Schneier: Angewandte Kryptographie, Addison-Wesley 1996

[2] Dr. Reinhard Wobst: Abenteuer Kryptologie, Addison-Wesley 2000

[3] Friedrich L. Bauer: Kryptologie - Methoden und Maximen (2. Auflage), Springer New York 1994

[4] Douglas Stinson: Cryptography - Theory and Practice, CRC Press 1995

[5] EFF: Cracking DES, O’Reilly 1998

[6] Dr. Reinhard Wobst: Mythos Quantencomputer, UNIX/open 2/02, S. 28-30 und 3/02, S. 22-24

[7] Dr. Reinhard Wobst: AES unter Beschuss, c't 21/02, S. 38

[8] Dr. Reinhard Wobst: Von DES zu AES, iX 10/01, S. 92-96

[9] Bruce Schneier: Memo to the Amateur Cipher Designer

[10] Kryptanalyse von RC4

Name Art Schlüssel-
länge
Geschwindigkeit Sicherheit Anwendung Bemerkungen
Symmetrische Algorithmen
One-Time-Pad Strom Klartextlänge hoch perfekt nur in Sonderfällen einziger beweisbar sicherer Algorithmus
Substitutionschiffre zeichen-
weise
theoretisch 88 Bit (=26!) uninteressant extrem niedrig historisch, Denkaufgaben bei Rätseln noch beliebt
Vigenère zeichen-
weise
variabel hoch sehr niedrig historisch, vereinzelt noch heute sehr leicht zu brechen
DES Block 56 Bit Hardware: hoch
Software: niedrig
mit Spezialhardware angreifbar (hoher Aufwand) verbreitet, war 20 Jahre lang Standard Schlüssellänge ist einziger praktisch ausnutzbarer Schwachpunkt
3DES Block 112 Bit Hardware: hoch
Software: sehr niedrig
kein Angriff bekannt verbreitet zu langsam in Software, veraltet
IDEA Block 128 Bit schneller als DES sehr hoch verbreitet patentiert, auch in Europa
RC4 Strom variabel Software: hoch bei richtiger Anwendung hoch, Angriffspunkte bekannt [10] in vielen Produkten (SSL, Windows-Applikationen) bei drahtloser Datenübertragung mit WEP sind effektive Angriffe möglich (schlechte Implementierung)
pkzip-Chiffrierung Strom variabel Software: hoch wurde gebrochen in PKZIP Eigenbau-Algorithmus”, Crackprogramm in [3]
A5 Strom 64 Bit Hardware: sehr hoch wurde gebrochen in allen GSM Handys eine Sekunde Rechenzeit reicht zum Knacken [3]
Kasumi Block 128 Bit Hardware: hoch kein Angriff bekannt in allen UMTS-Handys Anwendung als Stromchiffre [3]
RC5 Block variabel Software: hoch praktisch sicher in einigen Produkten beruht auf neuem Prinzip variabler Rotation, US-Patent
RC5a Block variabel Software: hoch sicherer als RC5 eine Anwendung im Bankwesen Verbesserung von RC5, vgl. [3], fällt auch unter RC5-Patent
RC6 Block variabel Software: hoch kein Angriff bekannt ? Weiterentwicklung von RC5, AES-Endkandidat [8], US-Patent
Blowfish Block variabel Software: hoch kein Angriff bekannt verbreitet, u.a. in OpenSource-Software frei verfügbar für jede Nutzung
Twofish Block variabel Software und Hardware: hoch kein Angriff bekannt, noch sicherer als Blowfish ? frei verfügbar wie Blowfish, AES-Endkanditat
AES (Rijndael) Block 128-256 Bit Software und Hardware: sehr hoch bisher nur theoretische Schwächen [7] schon sehr verbreitet, Standardalgorithmus Nachfolger von DES [8]
Asymmetrische Algorithmen
RSA - oft 1024 oder 2048 Bit sehr niedrig bis heute sicher wichtigstes Public-Key-Verfahren basiert auf Problem der Faktorisierung (s.Text)
EIGamal - wie RSA sehr niedrig bis heute sicher sehr verbreitet basiert auf diskretem Logarithmus
Diffie-Hellmann - keine sehr niedrig bis heute sicher sehr verbreitet (z.B. Ipsec, SSH) wie ElGamal, einfach und robust, nur bei Interaktion

()