PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Algorithmen Tutorial


TrackerPolizei
26.02.2009, 18:22
Algorithmen

Nachfolgend eine kleine Übersicht über verschiedene Verfahren, die zur Zeit von den meisten
Kryptologieprogrammen verwendet werden. Falls jemand weitere Informationen zu den genannten
Algorithmen hat, bitte ich um eine kurze Nachricht mit entsprechenden Infos!

3-Way
3-Way ist eine Blockchiffrierung, die von Joan Daemen stammt. Das Verfahren arbeitet mit einer
Blocklänge und einer Schlüssellänge von 96 Bit und läßt sich sehr effizient in Hardware implementieren.
3-Way ist kein Feistel-Netzwerk, sondern eine iterierte Blockchiffrierung. 3-Way kann mit n-Runden
arbeiten; Daemen empfiehlt 11. Bisher gibt es keine erfolgreiche Kryptanalyse von 3-Way. Der
Algorithmus ist nicht patentiert.

Blowfish
Der Algorithmus wurde von Bruce Schneier entworfen. Blowfish ist ein sehr schneller Algorithmus, der
besonders auf 32bit-Prozessoren eine exzellente Performance bietet. Ein weitere Vorteil ist seine variable
Schlüssellänge von bis zu 448 Bits (56 Bytes). Er wurde erstmals im April 1994 in Doctor Dobb's Journal
publiziert. Nach einem Jahr intensiver Cryptoanalyse war er immer noch ungebrochen (DDJ 10/95). Bis
heute sind keine Schwächen bekannt.
Download des Source-Code für Blowfish (96,6 kB)

CA-1.1
CA ist eine Blockchiffrierung, die von Howard Gutowitz entwickelt wurde und auf zellulären Automaten
beruht. Das Verfahren verschlüsselt Klartext in Blöcken der Länge 384 Bit und benutzt einen Schlüssel von
1088 Bit Länge (eigentlich zwei Schlüssel von jeweils 1024 und 64 Bit). CA-1.1 basiert auf einer
Verknüpfung von Blöcken. Das bedeutet, daß die Verarbeitung des Nachrichtenblocks teilweise von der
Verarbeitung des Stroms zufälliger Informationen getrennt ist, der während der Verschlüsselung
eingefügt wird. Diese zufälligen Informationen verknüpfen die Verschlüsselungsstufen miteinander. Die
Informationen des Verbindungsglieds werden als Teil der Verschlüsselung erzeugt.
Da es sich bei CA-1.1 um einen neuen Algorithmus handelt, ist es für Aussagen zu seiner Sicherheit noch
zu früh. Gutowitz beschreibt einige mögliche Angriffe einschließlich differentieller Kryptanalyse. Er kann
den Algorithmus jedoch nicht knacken. CA-1.1 ist patentiert, steht jedoch für nichtkommerzielle
Anwendungen zur freien Verfügung.

CAST
CAST kommt aus Kanada (entwickelt von C. Adams and S. Tavares). Der Algorithmus ist schnell und auf
32bit Prozessoren optimiert. Der CAST-Algorithmus arbeitet mit einer Blockgröße von 64 Bit und
Schlüsseln der Länge 64 Bit. Die Stärke des Algorithmus beruht auf seinen S-Boxen. CAST benutzt keine
festen S-Boxen, sondern es werden für jede Anwendung neue konstruiert. Es wurde gezeigt, daß CAST
differentieller Kryptanalyse widersteht, ebenso wurde seine Widerstandskraft gegen lineare Kryptanalyse
bewiesen. Außer Brute-Force ist keine Möglichkeit zum Knacken von CAST bekannt.

Cobra128
Dies ist ein neuer Algorithmus, entworfen von Christian Schneider. Er wurde in der Newsgroup
sci.crypt.research Mitte April 1996 publiziert. Man kann Cobra128 als eine Mutation von Blowfish mit
einigen interessanten und allgemein anerkannten Erweiterungstechniken ansehen. Cobra128 wurde
ursprünglich als 128 Blockchiffrierer mit 24 Verschlüsselungsrunden und einer Schlüssellänge von 72
Bytes entworfen. Durch seine offene Architektur kann er jedoch auf größere oder kleiner Blocklängen
erweitert bzw. verkleinert werden.

DES
Bei DES handelt es sich um ein symmetrisches Verfahren, wobei der Algorithmus mit der sogennanten
Produktverschlüsselung arbeitet, bei der als elementare Verschlüsselung Subsitutionen und
Transpositionen (Permutationen) verwendet werden. Der DES-Algorithmus wurde erstmals 1974 von der
US Regierung veröffentlicht und ist als ANSI-Standard normiert (ANSI X3.92-1981). Es handelt sich um
einen Blockalgorithmus, welcher 64 Bits Klartext in 64 Bits Schlüsseltext und umgekehrt überführt. Die
Schlüssellänge beträgt ebenfalls 64 Bit, wobei jedoch nur 56 Bit hiervon signifikant sind. DES läßt sich
sowohl hardwaremässig, wie auch softwaremässig implementieren. Bei den neuesten Hardware-
Implemtierungen liegen die Verschlüsselungsraten schon im Bereich GByte/s. Eingesetzt wird das DES
Verfahren insbesondere in Finanz-Applikationen und kann als Quasi-Standard bezeichnet werden. Obwohl
er seit nunmehr 20 Jahren einer dauerhaften Analyse ausgesetzt war wurden bis heute keine Schwächen
entdeckt. Das einzige Problem ist jedoch die zu kurze Schlüssellänge von 8 Bytes (entsprechen 56 Bits).
Hat man Zugriff auf schnelle Rechnersysteme, so können alle möglichen Schlüssel innerhalb weniger
Stunden getestet werden.
Zur Sicherheit von DES:
Seit den ersten Veröffentlichungen des vorgesehenen und später auch realisierten Standards hat es im
Zusammenhang mit DES Diskussionen und Kritik gegeben. So wurde z.B. verschiedentlich die Anzahl der
internen Runden mit 16 als zu gering empfunden. Die Hauptangriffspunkte sind:
? Die Design-Kriterien der S-Boxen wurden zunächst gar nicht, später nur sehr vage bekanntgegeben. Diese für die Sicherheit zentralen Teile könnten 'Falltüren' enthalten, die den
Entwicklern von DES die (unbefugte) Invertierung zumindest wesentlich erleichtern.
? Die Schlüssellänge ist mit acht Byte relativ klein. Nach Abzug der 8 Paritätsbits verbleiben gerade
noch 56 frei verfügbare Binärstellen. Es sind also nur N = 256 = 72 057 594 037 927 936
verschiedene Schlüssel wählbar (beim ursprünglichen Entwurf LUCIFER - und dieser Vergleich ist
sicher naheliegend - ist die Anzahl der Schlüssel mit 2128 wesentlich größer).
? Der Schlüssel wird jeweils für eine Verbindung gewählt und bleibt dann vergleichsweise sehr
lange fest - dieser praktisch monoalphabetische Gebrauch von DES ist besonders angreifbar.
Berücksichtigt man, das der Industrie hier in Deutschland DES mit ca. zwanzigjähriger Verspätung als
modernes Verfahren angeboten wird, dann kann man nur zur Vorsicht raten!
Bei der von der Firma RSA ausgerufenen Secret-Key Challenge wurde am 17. Juni, nach einer Laufzeit
von 140 Tagen, eine mit Standard-DES verschüsselte Nachricht gebrochen. Erreicht wurde dies durch
eine Brute Force Attack an welcher tausende von Rechnern teilgenommen haben. Informationen hierzu
finden sich unter 301 Moved Permanently (http://www.klammeraffe.org/challenge).
Am 23. Februar wurde die zweite Secret-Key Challenge DES II erfolgreich abgeschlossen. Die Laufzeit
betrug diesmal lediglich 39 Tage.
Triple-DES (3DES) erhöht die Sicherheit vom normalen DES-Verfahren, indem die Daten mit doppelter
(112 Bit) oder dreifacher (168 Bit) Schlüssellänge verschlüsselt werden. Es gibt einige DES-Varianten, die
den originalen Algorithmus in seiner Schlüssellänge erweitern. Der am meiste gebräuchliche davon ist
Triple-DES, welcher einen 64bit-Datenblock dreimal hintereinander mit DES verschlüsselt und dabei drei
verschiedene Schlüssel verwendet (bzw. einen Schlüssel, der dann in drei Teile zerlegt wird). Dadurch
ergibt sich eine resultierende Schlüssellänge von 32 Bytes (168 Bits), welche die Sicherheit drastisch
erhöht, jedoch auch dazu führt, daß der Algorithmus nun sehr langsam arbeitet.

Diamond 2
Diamond 2 ist eine neue Blockchiffrierung mit einer Blockgröße von 128 Bit und einer variablen
Schlüssellänge, der auf der Kombination nichtlinearer Funktionen basiert. Eine schnellere Variante von
Diamond2, genannt Diamond2 Lite, verwendet eine Blockgröße von 64 Bits. Diamond 2 kann sowohl in
Software als auch in Hardware implementiert werden. Zur Sicherheit von Diamond 2 kann man zur Zeit
noch nicht viel sagen.
Download des Source-Code für Diamond 2 (61,7 kB)

Diffie-Hellman
Diffie und Hellman stellten 1976 als erste ein Public-Key-Verfahren vor, das ähnlich wie RSA zu einem
Public-Private-Schlüsselpaar führt. Das Diffie- Hellman-Verfahren (DH) nutzt den Elgamal-Algorithmus,
der bei gleicher Schlüssellänge genauso sicher ist wie der RSA-Algorithmus. Elgamal beruht auf der
Schwierigkeit, diskrete Logarithmen über einem endlichen Körper zu berechnen.

FEAL
FEAL wurde 1987 von den Japanern Shimizu und Miyaguchi mit dem Ziel entworfen, DES durch einen
schnelleren und mindestens ebenso sicheren Algorithmus zu ersetzen. Er ist wie DES ein Feistel-
Netzwerk mit 64 Bit-Blöcken, nutzt aber einen 64 Bit-Schlüssel. FEAL-4 (FEAL mit vier Runden) ist auch
wirklich deutlich schneller als DES - nur nicht sicherer.
Mit ganzen 20 gewählten Klartexten wurde FEAL-4 1990 von Murphy mittels differentieller Kryptanalyse
gebrochen. Die Entwickler antworteten mit FEAL-8. Nun zeigten Biham und Shamir, daß differentielle
Kryptanalyse gegen FEAL für bis zu 32 Runden effektiver als Brute-Force ist. Die Zahl gewählter Klartexte
für FEAL-4 sank auf 8 (!), für FEAL-8 betrug sie 10000, und für FEAL-16 waren noch 228 gewählte
Klartexte erforderlich. Als Antwort entwarfen die Entwickler FEAL-NX, das 128-Bit-Schlüssel verwendet.
Biham und Shamir zeigten, daß ihr Angriff genauso effektiv mit diesem Algorithmus funktioniert.
Der erste bekannte Angriff mit linearer Kryptanalyse von Matsui und Yamagishi 1992 erlaubte, FEAL-4 mit
fünf bekannten Klartexten zu brechen (40 Byte)! Bei FEAL-8 sind immerhin noch 32768 bekannte Klartexte
notwendig. Durch sogenannte differentiell-lineare Kryptanalyse kann FEAL-8 mit inzwischen nur noch
zwölf gewählten Klartexten gebrochen werden.

GOST
Ein Algorithmus aus der früheren Sowjetunion, das Gegenstück zum DES der westlichen Welt. Obwohl er
schon seit langem existiert sind bis heute keine Schwächen bekannt. Das einzig seltsame ist eine kleine
Tabelle aus festen Werten (den sogenannten Substitutionsboxen, kurz: S-Boxen). Diese ist nach der
Spezifikation austauschbar und könnte somit Auswirkungen auf die Sicherheit des Algorithmus haben.
Man kann nun spekulieren, daß einige Instituationen in der damaligen UDSSR bessere und manche
"unbedeutendere" leichter zu knackende S-Boxen verwendet haben bzw. benutzen mußten. Dies sind
jedoch nur unbestätigte Gerüchte. Bemerkenswert ist auch die doppelt so hohe Rundenzahl von GOST im
Vergleich zu Blowfish, was die Sicherheit entscheidend verstärkt. Die Schlüssellänge von GOST beträgt 32
Bytes (entsprechen 256 Bits) und die Blockgröße 64 Bit.
Download des Source-Code für GOST (14,4 kB)

IDEA
Bei IDEA handelt es sich um einen Block-orientierten konventionellen Verschlüsselungsalgorithmus. Er
wurde von Xuejia Lai und James Massey entwickelt und erstmals 1990 veröffentlicht. Eine verbesserte
Version erschien 1991. Das Patent wird von der Ascom Systec AG gehalten. IDEA ist als möglicher Ersatz
für DES zu sehen. Es wird ebenfalls mit 64 Bit Blöcken gearbeitet, allerdings wird 128 Bit Schlüssel
benutzt (bei DES nur 64 Bit bzw. 56 Bit). IDEA ist in den USA, sowie in den meisten europäischen Ländern
patentiert. Die erfolgreichsten Angriffe gegen IDEA blieben bisher bereits nach 3,5 Runden stecken. Das
Verfahren ist gegen differentielle Kryptanalyse optimiert; Lai vermutet, daß es schon nach vier Runden
immun gegen diesen Angriff ist. Auch ein versuchter Angriff mit verwandten Schlüsseln von Biham
scheiterte.
Eine effektivere Kryptanalyse trug Philip Hawkes auf der EUROCRYPT '98 vor. Er entdeckte 265 schwache
Schlüssel, bei deren Verwendung jeweils etwa 20 gewählte Klartexte ausreichen, um 72 Bit des
Schlüssels zu bestimmen. Die restlichen 56 Bit ermittelt man dann per Brute Force - ein mit DES
vergleichbarer Aufwand. Für einen Angreifer bedeutet das: Er kann durchschnittlich etwa aller 9
Trillionen mitgehöriger Sitzungen seine IDEA-Crack-Maschine anwerfen, um den Schlüssel zu brechen.
Das klingt noch nicht sonderlich gefährlich. Trotzdem ist es keine Paranoia - die nächste Verbesserung
der Kryptanalyse könnte effektiver sein.
Einen echten Nachteil hat der Algorithmus IDEA allerdings doch: Er ist nicht skalierbar, d.h., er kann die
wachsende Verarbeitungsbreite moderner Rechner nicht nutzen. Natürlich ist IDEA noch nicht so lange
untersucht worden, daß auch die letzten Zweifler von seiner Sicherheit überzeugt wären. Aber öffentlich
sind keine erfolgreichen Angriffe bekannt geworden, obwohl sich Kryptologen zunehmend mit IDEA
beschäftigen.

Khufu
Dieser Algorithmus wurde 1990 von Ralph Merkle vorgestellt. Khufu ist eine 64-Bit-Blockchiffrierung.
Obwohl Teile des Schlüssels am Anfang und Ende des Algorithmus mit dem zu verschlüsselnden Block
XOR-verknüpft werden, ist die Erzeugung der S-Boxen die Hauptaufgabe des Schlüssels. Diese S-Boxen
sind geheim und im wesentlichen Bestandteil des Schlüssels. Khufu benötigt eine gesamte Schlüssellänge
von 512 Bit und enthält einen Algorithmus zur Erzeugung der S-Boxen aus dem Schlüssel. Die Anzahl der
Runden für den Algorithmus ist nicht spezifiziert. Merkle schreibt, daß Khufu mit acht Runden anfällig für
einen Angriff mit gewähltem Klartext ist und empfiehlt 16, 24 oder 32 Runden.
Da Khufu mit schlüsselabhängigen und geheimen S-Boxen arbeitet, widersteht es differentieller
Kryptanalyse. Es gibt einen differentiellen Angriff gegen Khufu mit 16 Runden, der den Schlüssel mit 231
gewählten Klartexten ermittelt, doch dieser Angriff läßt sich nicht auf größere Rundenzahlen erweitern.
Unter der Annahme, daß Brute-Force den besten Angriff auf Khufu darstellt, ist die Sicherheit des
Algorithmus beeindruckend: Die Schlüssellänge von 512 Bit ergibt die unvorstellbare Komplexität von 2512.

Khafre
Das Schema des ebenfalls von Merkle entwickelten Algorithmus ähnelt Khufu, wurde aber für
Anwendungen entwickelt, bei denen keine Zeit für Vorberechnungen zur Verfügung steht. Die S-Boxen
hängen nicht vom Schlüssel ab. Khafre benutzt stattdessen feste S-Boxen.
Merkle nahm an, daß für Khafre Schlüssellängen von 64 oder 128 Bit benutzt würden und mehr
Verschlüsselungsrunden nötig seien als für Khufu. Diese Tatsache und die im Vergleich zu Khufu höhere
Komplexität von Khafre in jeder Runde bewirken, daß Khafre langsamer ist. Zum Ausgleich benötigt
Khafre keinerlei Vorberechnungen und verschlüsselt geringe Datenmengen schneller.
Biham und Shamir wandten ihre Technik der differentiellen Kryptanalyse 1990 gegen Khafre an. Sie
konnten Khafre mit 16 Runden mit einem chosen-plaintext-Angriff und etwa 1500 verschiedenen
Verschlüsselungen brechen, was auf einem PC etwa eine Stunde dauerte. Die Umwandlung dieses
Angriffs in einen known-plaintext-Angriff würde etwa 238 Verschlüsselungen benötigen. Khafre mit 24
Runden läßt sich mit einem chosen-plaintext-Angriff und 253 Verschlüsselungen knacken, ein known-
plaintext-Angriff benötigt 259 Verschlüsselungen.

LOKI91
LOKI91 stammt aus Australien und wurde als mögliche Alternative zu DES vorgestellt. Der Algorithmus
arbeitet auf 64-Bit-Blöcken und benutzt einen Schlüssel der Länge 64 Bit. Der Ablauf von LOKI91 ähnelt
dem von DES.
Knudsen versuchte eine Kryptanalyse von LOKI91, fand jedoch heraus, daß der Algorithmus sicher gegen
differentielle Kryptanalyse ist. Er entwickelte jedoch einen Angriff mit gewähltem Klartext und verwandten
Schlüsseln, der die Komplexität einer Brute-Force-Suche fast um den Faktor vier reduzierte. Dieser
Angriff macht sich eine Schwäche in der Schlüsselverwendung zunutze und funktioniert auch, wenn der
Algorithmus als Einweg-Hashfunktion verwendet wird.
Ein anderer Angriff mittels verwandten Schlüsseln knackt LOKI91 mit 232 gewählten Klartexten bei
gewähltem Schlüssel oder 248 bekannten Klartexten bei gewähltem Schlüssel. Der Angriff hängt nicht von
der Rundenzahl des Algorithmus ab. LOKI91 läßt sich gegen diesen Angriff schützen, indem man die
einfache Schlüsselverwaltung ändert.

Lucifer
IBM startete in den späten sechziger Jahren unter Leitung von Horst Feistel und Walt Tuchman ein
Forschungsprogramm zur Computer-Kryptographie mit dem Namen Lucifer. Lucifer ist außerdem der
Name eines Blockalgorithmus, der in den frühen siebziger Jahren als Resultat dieses Programms
entstand.
Lucifer besteht aus einem Geflecht von Substitutionen und Permutationen und enthält Bausteine, die in
ähnlicher Form auch in DES zu finden sind. Lucifer arbeitet mit 16 Runden, Blöcken der Länge 128 Bit und
einem im Vergleich zu DES einfacheren Schlüsselschema.
Biham und Shamir zeigten mit Hilfe differentieller Kryptanalyse, daß man die erste Fassung von Lucifer
(mit 32-Bit-Blöcken und acht Runden) mit 40 gewählten Klartexten in 229 Schritten knacken kann. Mit dem
selben Angriff läßt sich eine Lucifer-Variante mit 128-Bit-Blöcken und acht Runden mit 60 gewählten
Klartexten in 253 Schritten knacken. Ein anderer Angriff mittels differentieller Kryptanalyse knackt eine
Lucifer-Variante mit 18 Runden und 128-Bit-Blöcken mit 24 gewählten Klartexten in 221 Schritten. All diese
Angriffe benutzen die starken S-Boxen von DES. Durch Kryptanalyse mit verwandten Schlüsseln läßt sich
Lucifer mit 128-Bit und beliebiger Rundenzahl mit 233 gewählten Klartexten bei gewähltem Schlüssel oder
mit 265 bekannten Klartexten bei gewähltem Schlüssel knacken. Die zweite Fassung von Lucifer ist noch
schwächer.

Madryga
W.E. Madryga stellte diesen Blockalgorithmus 1984 vor. Er eignet sich für effiziente Software-
Impletierungen, da er auf umständliche Permutationen verzichtet und alle Operationen auf Bytes
arbeiten.
Die Entwurfsziele des Algorithmus beinhalteten u.a., daß es möglich sein sollte, die Längen von Schlüssel
und Text anzupassen, um unterschiedlichen Sicherheitsbedürfnissen Genüge zu tun. Geht man von Brute-
Force als bester Möglichkeit zum Knacken eines Algorithmus aus, befriedigt man mit einem Schlüssel
variabler Länge sicher diejenigen, denen 56 Bit zu wenig waren. Sie konnten diesen Algorithmus mit
jeder gewünschten Schlüssellänge implementieren.
Wissenschaftler an der Queensland University of Technology untersuchten Madryga zusammen mit
anderen Blockchiffrierungen. Sie stellten fest, daß es bei diesem Algorithmus keinen Lawineneffekt
zwischen Klartext und Chiffretext gab. Eine flüchtige Betrachtung durch Eli Biham erbrachte folgende
Beobachtungen:
? Der Algorithmus besteht nur aus linearen Operationen, die abhängig von den Daten geringfügig
modifiziert werden.
? Es gibt kein Element, dessen Stärke den S-Boxen von DES vergleichbar wäre.
? Die Parität aller Bits des Klartexts und des Chiffretexts ist konstant und hängt nur vom Schlüssel
ab. Wenn man also einen Klartext und den zugehörigen Chiffretext kennt, kann man für jeden
Klartext die Parität des Chiffretexts vorhersagen.
Diese Punkte sind zwar für sich genommen nicht gravierend, dennoch hat er bei diesem Algorithmus kein
gutes Gefühl.

MMB
Der Nachteil von IDEA, daß er mit 64-Bit-Blöcken zur Verschlüsselung arbeitet, wurde von Joan Daemen
mit dem Algorithmus MMB (Modular Multiplication-based Block Cipher) behoben. MMB beruht auf der
gleichen Theorie wie IDEA, nämlich der Mischung von Operationen aus verschiedenen algebraischen
Gruppen. MMB ist ein iterativer Algorithmus, der hauptsächlich aus linearen Schritten (XOR und
Schlüsselanwendungen) besteht sowie der parallelen Anwendung von vier großen nichtlinearen
invertierbaren Substitutionen. Die Substitutionen werden durch eine Multiplikation modulo 232 - 1 mit
konstanten Faktoren bestimmt. Dies liefert einen Algorithmus, bei dem sowohl die Schlüssellänge als
auch die Blockgröße jeweils 128 Bit betragen.
Das Design von MMB garantiert, daß jede Runde unabhängig vom Schlüssel eine ausreichende Diffusion
bewirkt. MMB wurde außerdem so entworfen, daß es im Gegensatz zu IDEA keine schwachen Schlüssel
gibt.
MMB hat aus verschiedenen Gründen ausgedient, obwohl keine Kryptanalyse veröffentlicht wurde.
Zunächst wurde der Algorithmus nicht mit dem Ziel der Widerstandsfähigkeit gegen lineare Kryptanalyse
entwickelt. Die Multiplikationsfaktoren wurden zwar so gewählt, daß sie Schutz vor differentieller
Kryptanalyse bieten, doch die Entwickler kannten die lineare Kryptanalyse noch nicht.
Zweitens entwickelte Eli Biham einen wirksamen Angriff mit gewähltem Schlüssel. Er nutzt die Tatsache,
daß alle Runden identisch sind und daß die Schlüsselverwaltung nur aus einer zyklischen Verschiebung
um 32 Bit besteht.
Download des Source-Code für MMB (5,77 kB)

NewDES
NewDES wurde 1985 von Robert Scott als möglicher Nachfolger von DES entwickelt. Der Algorithmus ist
keine Variante von DES, obwohl sein Name diese Vermutung nahelegt. Er arbeitet auf 64 Bit großen
Blöcken des Klartexts, benutzt aber eine Schlüssellänge von 120 Bit. NewDES ist einfacher als DES und
verzichtet auf die Eingangs- und Schlußpermutationen. Alle Operationen arbeiten auf ganzen Bytes.
Scott zeigte, daß nach nur sieben Runden jedes Bit des Klartextblocks jedes Bit des Chiffretextblocks
beeinflußt. NewDES unterliegt der gleichen Komplementär- eigenschaften wie DES: Für EK(P) = C gilt
EK'(P') = C'. Diese Eigenschaft vermindert den Aufwand für einen Brute-Force-Angriff von 2120 auf 2119
Schritte. Biham bemerkte, daß jede ein vollständiges Byte betreffende Änderung, die auf alle Bytes des
Schlüssels und der Daten angewandt wird, eine andere Komplementäreigenschaft zur Folge hat. Dies
reduziert einen Brute-Force-Angriff weiter auf 2112 Schritte.
Damit ist der Algorithmus zwar noch nicht ganz abgeschrieben, doch Bihams kryptanalytischer Angriff mit
verwandten Schlüsseln kann NewDES mit 233 gewählten Klartexten bei gewählten Schlüsseln in 248
Schritten knacken. Dieser Angriff ist zwar zeitaufwendig und großteils theoretisch, zeigt aber, daß
NewDES schwächer als DES ist.
Download des Source-Code für NewDES (8,43 kB)

PC1
Dieser Algorithmus ist 100% kompatibel zu RC4. PC1 ist ein Stromverschlüsseler, welcher Bytes einzeln
verschlüsseln kann.

RC2
RC2 ist ein Verschlüsselungsalgorithmus mit variabler Schlüssellänge, der von Ron Rivest für RSA Data
Security, Inc. (RSADSI) entwickelt wurde. RC2 ist eine 64-Bit-Blockchiffrierung, die als Ersatz für DES
entwickelt wurde. Laut Entwicklerfirma sind Software-Implementierungen von RC2 dreimal so schnell wie
DES. Der Algorithmus benutzt einen Schlüssel variabler Länge, die von 0 Byte bis zu maximalen String-
Länge des Computers reichen kann. Die Geschwindigkeit der Verschlüsselung hängt nicht von der
Schlüssellänge ab. Aus dem Schlüssel wird vorab eine schlüsselabhängige Tabelle mit 128 Byte
berechnet. Die effektive Anzahl der verschiedenen Schlüssel beträgt damit 21024. RC2 benutzt keine S-
Boxen. Die beiden benutzten Operationen heißen "mix" und "mash". Aufgrund einer Vereinbarung
zwischen der Software Publishers Association und der amerikanischen Regierung erhielten RC2 und RC4
besonderen Exportstatus unter der Voraussetzung, daß die Schlüssellänge nicht mehr als 40 Bit beträgt.

RC4
RC4 wurde 1987 von RSA Data Security, Inc. entwickelt, wobei das Design des Algorithmus jedoch
geheimgehalten wird. 1994 jedoch tauchte ein Posting im Usenet auf, in welchem ein (wie behauptet
wurde) aquivalenter Quellecode vorgestellt wurde. Es wird als sehr wahrscheinlich angenommen, daß
der vorgestellte Algorithmus wirklich aquivalent zu RC4 ist.
Im Unterschied zum Blockalgorithmus RC5 ist RC4 eine typische Stromchiffrierung: In Abhängigkeit von
einem Schlüssel variabler Länge wird eine Bytefolge erzeugt, die man als individuellen Schlüssel (One
Time Pad) nutzt. Der Geheimtext ergibt sich also durch einfache byteweise XOR-Verknüpfung der
Schlüsselbytefolge mit dem Klartext, die Umkehrung arbeitet ebenso.
Das Verfahren ist tatsächlich erstaunlich einfach und extrem leicht zu programmieren. RC4 ist wirklich
simpel und clever entworfen. Nach Aussagen der Firma RSADSI gibt es keine Angriffe mit differentieller
oder linearer Kryptanalyse. Mehr ist anscheinend nicht bekannt. Allerdings ist RC4 als Stromchiffrierung
empfindlich gegenüber einem Angriff durch Einfügen. Solange ein Softwarepaket RC4 ohne einen
Initialisierungsvektor verwendet, ist die Benutzung dieser Software gefährlich, so gut RC4 auch sein
mag!
Download des Source-Code für RC4 (7,69 kB)

RC5
RC5 wurde von Ron Rivest für RSA Data Security, Inc. entwickelt (April 1995). RC5 ist ein
Blockverschlüsselungsalgorithmus und wurde als möglicher Nachfolger von DES gedacht. Im Gegensatz zu
DES bietet RC5 eine variable Schlüssel-, Wortlänge und eine variable Anzahl von Durchläufen. RC5 ist
sowohl für Software wie auch Hardware Implementierungen geeignet.
Bei der von der Firma RSA ausgerufenen Secret-Key Challenge soll weltweit eine Brute Force Attack auf
RC5 mit zwölf unterschiedlichen Schlüssellängen ausgeführt werden. Weitere Informationen hierzu finden
sich unter The Bovine RC5 Cracking Effort Headquarters.
Der Schlüssel von RC5-48 wurde am 10.02.1997 gefunden, nachdem in 13 Tagen etwa 30% des
gesamten Schlüsselraums durchsucht wurde.
Der Schlüssel von RC5-56 wurde am 19.10.1997 gefunden, nachdem in gut 200 Tagen 49.1% des
gesamten Schlüsselraums durchsucht wurde.
Weiter gehts jetzt mit dem RC5-64 ...
Download des Source-Code für RC5 (35,7 kB)

REDOC II
REDOC II ist ein weiterer Blockalgorithmus und wurde von Michael Wood für Cryptech, Inc. entwickelt. Er
arbeitet mit einem 20 Byte (160 Bit) langen Schlüssel und einer Blocklänge von 80 Bit.
REDOC II führt alle Operationen (Permutationen, Substitutionen und XOR - Verknüpfungen mit dem
Schlüssel) auf Bytes aus. REDOC II benutzt variable Funktionstabellen. Im Gegensatz zu DES, bei dem
sich die Permutations- und Substitutionstabellen nicht ändern, arbeitet REDOC II mit Tabellen (S-Boxen),
die von Schlüssel und Klartext abhängen. REDOC II hat zehn Runden, von denen jede aus einer
komplizierten Folge von Blockmanipulationen besteht.
Wenn man davon ausgeht, daß ein Brute-Force-Angriff den effizientesten Angriff darstellt, dann ist
REDOC II sehr sicher - zur Aufdeckung des Schlüssels sind 2160 Operationen erforderlich. Thomas Cusick
kryptanalysierte eine Runde von REDOC II, konnte den Angriff jedoch nicht auf mehrere Runden
erweitern. Biham und Shamir setzten differentielle Kryptanalyse erfolgreich gegen eine Runde von REDOC
II mit 2300 gewählten Klartexten ein. Der Angriff läßt sich zwar nicht auf mehrere Runden ausdehnen, sie
waren jedoch in der Lage, nach vier Runden die Werte dreier Masken zu ermitteln. Weitere
Kryptanalysen sind mir bisher nicht bekannt.
Download des Source-Code für REDOC (6,11 kB)

REDOC III
REDOC III ist eine verbesserte Version von REDOC II, die ebenfalls von Michael Wood entwickelt wurde.
Dieser Algorithmus arbeitet mit einer Blocklänge von 80 Bit. Die Schlüssellänge ist variabel und kann bis
auf 2560 Byte (20480 Bit) ausgedehnt werden. Der Algorithmus besteht nur aus XOR-Verknüpfungen von
Schlüsselbytes mit Nachrichtenbytes; es gibt weder Permutationen noch Substitutionen.
Dieser Algorithmus ist einfach und schnell. Allerdings ist REDOC III nicht sicher - er ist anfällig für
differentielle Kryptanalyse. Es sind dafür nur etwa 223 gewählte Klartexte erforderlich.
Download des Source-Code für REDOC (6,11 kB)

RSA
RSA ist ein 1977 von Rivest, Shamir und Adleman vorgestellter Algorithmus, der unter anderem in PGP
zur asymetrischen Verschlüsselung verwendet wird. Die Schlüssel entstehen dabei durch Multiplikation
zweier Primzahlen mit mehreren hundert Stellen. Die hohe Sicherheit von RSA beruht darauf, daß es
erheblich aufwendiger ist, aus dem Ergebnis wieder die ursprünglichen Primzahlen zu ermitteln. Kritisch
für die Sicherheit einer RSA-Verschlüsselung ist die Länge des verwendeten Schlüssels.
Problematisch bei RSA ist, daß die Ver- bzw. Entschlüsselung ungleich länger dauert als etwa bei den
Algorithmen DES und IDEA. Aus diesem Grund setzen die meisten Public-Key-Produkte auf zwei
Algorithmen: Zum Kodieren wird z.B. IDEA verwendet, der dabei benutzte Schlüssel wird anschließend
mit RSA kodiert und (in kodierter Form) mit der Nachricht übertragen.

SAFER
SAFER steht für "Secure And Fast Encryption Routine". James Massey entwarf diesen nicht patentierten
Algorithmus für die Cylink Corp. Der Algorithmus arbeitet mit einer Blockgröße und einer Schlüssellänge
von 64 Bit. Im Gegensatz zu DES handelt es sich nicht um ein Feistel- Netzwerk, sondern um eine iterierte
Blockchiffrierung. Dieselbe Funktion wird über eine bestimmte Anzahl von Runden immer wieder
angewandt. Jede Runde benutzt zwei 64-Bit-Teilschlüssel. Der Algorithmus arbeitet nur mit Byte-
orientierten Operationen.
Massey zeigte, daß SAFER K-64 nach acht Runden immun gegen differentielle Kryptanalyse ist und bereits
nach sechs Runden angemessenen Schutz vor diesem Angriff bietet. Lineare Kryptanalyse gegen diesen
Algorithmus ist nach nur drei Runden bereits wirkungslos.
Knudsen entdeckte einen Schwachpunkt der Schlüsselverwaltung: Für fast jeden Schlüssel existiert
mindestens ein anderer Schlüssel, der bestimmte unterschiedliche Klartexte in identische Chiffretexte
verschlüsselt. Dies hat zwar keinen Einfluß auf die Sicherheit von SAFER als Verschlüsselungsalgorithmus,
vermindert jedoch seine Sicherheit beim Einsatz als Einweg-Hashfunktion. Knudsen empfiehlt in jedem
Fall mindestens acht Runden.
SAFER wurde für die Firma CYLINK entworfen, die mit der NSA unter einer Decke steckt. Man kann nur
eine mehrjährige intensive Kryptanalyse vor dem Einsatz von SAFER in irgeneiner Form empfehlen.

Sapphire II
Sapphire II ist eine neue Stromchiffrierung mit einer variablen Schlüssellänge. Die Stromchiffre Sapphire
II ist ein recht schneller, kompakter, beweglicher Algorithmus, der zur Verschlüsselung, Authentisierung
und Erzeugung zufälliger Zahlen (pseudorandom number generator) benutzt werden kann. Weil es eine
verhältnismäßig neue Stromchiffre ist, wird Vorsicht und weitere Studien empfohlen, bevor man sie in
kritischen Sicherheits-Anwendungen verwendet.
Download des Source-Code für Sapphire II (53,7 kB)

SEAL
SEAL ist wie RC5 ein junger Algorithmus - er wurde 1994 von Rogaway und Coppersmith vorgestellt.
SEAL ist eine Stromchiffrierung, d.h., aus einem Schlüssel wird eine geheime Schlüsselfolge berechnet
und mit dem Geheimtext per XOR verknüpft. SEAL ist sehr gut für die Verschlüsselung ganzer Festplatten
geeignet. Im Unterschied zu anderen Stromchiffrierungen lassen sich SEAL-chiffrierte Nachrichten auch
über Kanäle verschicken, die ab und zu Daten verschlucken - es gibt kein Synchronisationsproblem.
Allerdings ist SEAL von IBM patentiert und wurde auch noch nicht öffentlich kryptanalysiert. Wenn jedoch
Coppersmith einen Algorithmus entwirft, dann kann man davon ausgehen, daß er gut durchdacht ist.
Download des Source-Code für SEAL (3,78 kB)

WAKE
WAKE steht für 'Word Auto Key Encryption Algorithm' und wurde von David Wheeler erfunden. Der
Algorithmus erzeugt einen Strom von 32-Bit-Wörtern, die mit dem Klartext XOR-verknüpft werden
können, um den Chiffretext zu erhalten, oder mit dem Chiffretext, um den Klartext zu erhalten. WAKE ist
schnell.
WAKE arbeitet im CFB-Modus; das vorherige Chiffretextwort wird benutzt, um das nächste Schlüsselwort
zu generieren. WAKE benutzt eine S-Box mit 256 Einträgen der Größe 32 Bit.
Der größte Vorteil von WAKE ist seine Geschwindigkeit. Der Algorithmus ist jedoch anfällig für einen
chosen-plaintext- oder chosen-ciphertext-Angriff.


AES - Kandidaten
Das inzwischen in die Jahre gekommene DES (Data Encryption Standard) von IBM - Jahrgang 1977 - soll
durch einen neuen Algorithmus abgelöst werden.
Nachfolgend eine Übersicht der verschiedenen Verfahren, die zur Zeit als Kandidaten für AES (Advanced
Encryption Standard) vorgesehen sind. Falls jemand weitere Informationen zu den genannten
Algorithmen hat, bitte ich um eine kurze Nachricht mit entsprechenden Infos!
CAST-256
CAST-256 wird von der kanadischen Firma Entrust Technologies, Inc. von Carlisle Adams entwickelt. Der
Algorithmus arbeitet mit einer Blockgröße von 128 Bit und Schlüsseln der Länge 256 Bit.

CRYPTON
CRYPTON wird derzeit von Future Systems, Inc. entwickelt und ist ein Algorithmus mit einer Blockgröße
von 128 Bit, einer Schlüssellänge von 256 Bit und 12 Runden. CRYPTON soll angeblich eine hohe
Sicherheit gegen existierende Angriffe wie die differentielle und lineare Kryptanalyse besitzen.
Download des Source-Code für CRYPTON (633 kB - in C)