MARS (Verschlüsselung)
MARS ist eine unter anderem von Don Coppersmith bei IBM entwickelte Blockchiffre, die als Kandidat für den Advanced Encryption Standard (AES, FIPS/PUBS-197) vorgelegt wurde.[1] Der Algorithmus schaffte es bis in die finale Runde des Auswahlverfahrens und gilt nach heutigem Erkenntnisstand als sicher. Vom National Institute of Standards and Technology (NIST) wurde MARS zusammen mit den Verschlüsselungsalgorithmen Serpent und Twofish als hoch-sicher eingestuft, während Rijndael „nur“ als hinreichend-sicher eingestuft wurde. MARS wurde hinsichtlich seiner Sicherheit lediglich wegen seiner Komplexität, die eine Sicherheitsanalyse erschwert, kritisiert. Rijndael wurde vor allem wegen seiner mathematischen Struktur, die möglicherweise zu Angriffen führen könnte, kritisiert. Der Geschwindigkeitsvorteil Rijndaels gegenüber den anderen Finalisten – sowohl als Hardware- als auch als Software-Implementierung – dürfte bei der Entscheidung, ausgerechnet Rijndael zum AES-Standard zu erklären, letztlich den Ausschlag gegeben haben.
MARS | |
---|---|
Entwickler | IBM (Don Coppersmith) |
Veröffentlicht | 1998 |
Zertifizierung | AES-Finalist |
Schlüssellänge | 128, 192 oder 256 Bit |
Blockgröße | 128 Bit |
Struktur | Feistelchiffre |
Runden | 32 |
Die Grundstruktur des Algorithmus bildet ein Feistelnetzwerk. Diese spezielle Struktur garantiert auch die Umkehrbarkeit des Algorithmus zwischen der Ver- und Entschlüsselung. Des Weiteren besitzt MARS noch folgende Eigenschaften:
- Variable primäre Schlüssel von 128 bis zu 448 Bit Länge in 32 Bit Schritten und einer fixen Blocklänge von 128 Bit. Der primäre Schlüssel wird intern durch die Schlüsselexpansion (engl. Round Key Setup) auf eine Länge von in Summe 1248 Bit für die einzelnen Rundenschlüssel aufgeweitet. Der IBM-Dokumentation zufolge erreichen primäre Schlüssellängen über 256 Bit aufgrund der in der Schlüsselexpansion eingesetzten Funktionen keine wesentliche zusätzliche Sicherheit. Übliche Werte bei Implementierungen sind daher 128, 192 und 256 Bit primäre Schlüssellänge.
- Unterschiedliche Rundenfunktionen im Feistelnetzwerk: Die Rundenfunktionen unterteilen sich in schlüsselunabhängige äußere vorwärts bzw. rückwärts Durchmischungen der Daten und den schlüsselabhängigen Runden im kryptografischen Kern des Feistelnetzwerkes. Dieser unterschiedliche Aufbau des Feistelnetzwerkes in den einzelnen Runden soll eine Stärkung des Algorithmus gegenüber der differentiellen Kryptoanalyse bieten.
- Neben Additionen, Subtraktionen und XOR-Operationen finden bei MARS noch eine fixe Substitutionstabelle, fixe und datenabhängige Rotationen und Multiplikationen mit fixen Faktoren Verwendung.