MARS Chiffre

Kategorisierung:Moderne binär-basierte Blockchiffre
Herkunft / Verwendung: MARS ist eine von Carolynn Burwick, Don Coppersmith, Edward D’Avignon, Rosario Gennaro, Shai Halevi, Charanjit Jutla, Stephen M. Matyas Jr., Luke O’Connor, Mohammad Peyravian, David Safford und Nevenko Zunic bei IBM entwickelte Blockchiffre, die als Kandidat für AES beim NIST eingereicht wurde, wo der Algorithmus es in die finale Runde (unter die besten Fünf) schaffte. Er gilt nach heutigem Erkenntnisstand als sicher. Vom NIST wurde MARS zusammen mit den Verschlüsselungsalgorithmen Serpent und Twofish als einzige als hoch-sicher eingestuft.

MARS lässt einem die Wahl bei der Schlüssellänge zwischen 128 und 448 bit (16 bis 56 Byte in 4 Byte Schritten). Die Blocklänge beträgt 128 bit. Üblicherweise wird als Schlüssel der binäre Hashwert eines Klartext-Passwortes angegeben.

Beschreibung des Algorithmus

Die MARS-Verschlüsselungen basiert auf einem Feistel-Netzwerk. Der angegebene Schlüssel (128 bis 448 bit) wird intern durch die Schlüsselexpansion auf eine Länge von in Summe 1248 Bit für die einzelnen Rundenschlüssel aufgeweitet.

Mars verarbeitet den Klartext in 128 bit breiten Blöcken, die in vier Worte à 32 bit aufgeteilt werden. Diese Worte werden wie folgt weiterverarbeitet: Je ein Klartext-Wort wird mit einem Schlüssel-Wort addiert. In acht Runden folgt ein schlüsselose Verwürfelung der Daten (sogenanntes "forward mixing"). Danach folgen acht Runden einer Transformation ("forward transformation") unter Einbezug von Teilschlüsseln. Daraufhin folgt die "backwards transformation" genannte Transformation, ebenfalls unter Einbeziehung von Teilschlüsseln. Schließlich folgt das "backwards mixing", in denen in widerum acht Runden die Worte abermals verwürfelt werden.

Die genaue Spezifikation findet sich in der Publikation "MARS – a candidate cipher for AES" der Autoren.

Beispiel

Klartext:BeispielklartextBeispielklartext (32 Bytes, 2 Blöcke)
Schlüssel:Schokoladentorte (16 Zeichen, 128 bit, entsprechend wird diese Bitstärke gewählt)
Chiffrat CBC:AA5223CA33CDE0C75C9128BC344F61C635A21F93620249C47CD24887F2EEF139 (hex)
Chiffrat ECB:AA5223CA33CDE0C75C9128BC344F61C6AA5223CA33CDE0C75C9128BC344F61C6 (hex)*

*Beachten Sie die Wiederholung im Modus ECB

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, 28, 32, 36, 40, 44, 48, 52 oder 56 Bytes und es wird automatisch eine bessere Verschlüsselungsstärke (Bitlänge) gewählt. Den optionalen Initialisierungsvektor (IV) mit 16 Byte Länge geben Sie durch Komma getrennt als 2. Angabe im Schlüsselfeld an. Kürzere IV werden mit Nullen rechts aufgefüllt, längere auf richtige Länge gekürzt.
Wenn Sie Texte eingeben, die nicht als Hex-Sequenz (ohne Leerzeichen) interpretiert werden können, erfolgt eine automatische Umsetzung in eine Hex-Sequenz buw. 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. 148