|Key sizes||128, 192, or 256 bits|
|Block sizes||128 bits|
|Structure||Type-3 Feistel network|
MARS is a block cipher that was IBM's submission to the Advanced Encryption Standard process. MARS was selected as an AES finalist in August 1999, after the AES2 conference in March 1999, where it was voted as the fifth and last finalist algorithm.
The MARS design team included Don Coppersmith, who had been involved in the creation of the previous Data Encryption Standard (DES) twenty years earlier. The project was specifically designed to resist future advances in cryptography by adopting a layered, compartmentalized approach.
IBM's official report stated that MARS and Serpent were the only two finalists to implement any form of safety net with regard to would-be advances in cryptographic mathematics. The Twofish team made a similar statement about its cipher.
MARS has a 128-bit block size and a variable key size of between 128 and 448 bits (in 32-bit increments). Unlike most block ciphers, MARS has a heterogeneous structure: several rounds of a cryptographic core are "jacketed" by unkeyed mixing rounds, together with key whitening.
Subkeys with long runs of ones or zeroes may lead to efficient attacks on MARS. The two least significant bits of round keys used in multiplication are always set to the value 1. Thus, there are always two inputs that are unchanged through the multiplication process regardless of the subkey, and two others which have fixed output regardless of the subkey.
Notes and references
- NIST (2000), Report on the Development of the Advanced Encryption Standard (AES) (PDF), NIST
- B. Preneel et al. (2000), Comments by the NESSIE Project on the AES Finalists (PDF), NIST
- MARS Attacks! Preliminary Cryptanalysis of Reduced-Round MARS Variants John Kelsey, Bruce Schneier, 2004
- 256bit Ciphers - MARS Reference implementation and derived code
- Specification of MARS
- IBM's page on MARS
- SCAN's entry on MARS
- John Savard's description of MARS