Twofish Chiffre

Kategorisierung:Modern und binär-basiert
Herkunft / Verwendung: Twofish ist der Nachfolger von Blowfish und ist eine symmetrische Blockchiffre mit einer Blocklänge von 128 bit (16 Bytes). Die Schlüsselänge kann 128, 192 oder 256 Bit betragen. Twofish war einer der Kandidaten im AES Auswahlverfahren des NIST und schaffte es unter die besten drei. Twofish wurde 1998 von Bruce Schneier, Niels Ferguson, John Kelsey, Doug Whiting, David Wagner und Chris Hall entwickelt. Twofish, wie schon zuvor Blowfish ist nicht patentiert und wurde unter Public-Domain veröffentlicht. Es steht damit jedem zur Nutzung frei zur Verfügung.

Vom Design her lässt sich Twofish zwischen Serpent, das als sehr konservativ und sicherheitsbewusst gilt und AES, welches als innovativ, elegant und schnell gilt, einordnen. Es gilt als sicher und stellt eine gute Alternative zu AES dar.

Beschreibung des Algorithmus

Twofish verschlüsselt Blöcke mit der Länge 128 bit, die in vier jeweils 32 bit breite Worte aufgeteilt und dann mit schlüsselabhängigen S-Boxen und den Binäroperationen XOR, ROT und MOD verarbeitet werden. Dies geschieht über 16 Runden. Dazu nutzt es ein Feistel-Netzwerk.

Hier steht nur der ECB-Modus zur Verfügung, der jeden Block gleich verschlüsselt.

Beispiel

Klartext:Beispielklartext (Länge 16, kein Padding)
Schlüssel:Schokoladentorte (Länge 16, kein Padding = Bitlänge 128)
Chiffrat (ECB):CE9378971E1F1CCB8545A18ACC81D255

Code / Chiffre online dekodieren / entschlüsseln bzw. kodieren / verschlüsseln (Decoder / Encoder / Solver-Tool)

Die Länge des Textes sollte durch 16 (=Blocklänge) teilbar sein. Kürze Texte werden mit Nullbytes rechts aufgefüllt. Die Länge des Ergebnisses ist immer durch 16 teilbar und damit ggf. bis zu 15 Bytes länger als der Klartext.
Der Schlüssel sollte min. 16 Zeichen lang sein, besser noch ein binärer Hash mit min. 128 Bit. Längere Schlüssel werden (durch Wiederholung) erweitert auf 24 oder 32 Bytes und es wird automatisch eine bessere Verschlüsselungsstärke (Bitlänge) gewählt.
Wenn Sie Texte eingeben, die nicht als Hex-Sequenz (ohne Leerzeichen) interpretiert werden können, erfolgt eine automatische Umsetzung in Binärdaten. Ist das Ergebnis nicht umsetzbar in druckbare ASCII-Zeichen, erfolgt eine automatische Ausgabe in Hex.



Quellen, Literaturverweise und weiterführende Links

Schmeh, Klaus: Kryptografie: Verfahren - Protokolle - Infrastrukturen, dpunkt Verlag, 5. Auflage 2013, iX-Edition, S. 143