MARS (cifrario)
# MARS (cifrario)

In crittografia il MARS è un cifrario a blocchi che è stato presentato da IBM come candidato al processo di standardizzazione dell'Advanced Encryption Standard. Il MARS è stato selezionato come finalista dell'AES nell'agosto del 1999 dopo che alla conferenza AES2 del marzo 1999 era stato votato come quinto ed ultimo algoritmo finalista. Il gruppo di sviluppatori che ha progettato il MARS include Don Coppersmith, che ha partecipato anche alla creazione del Data Encryption Standard (DES) circa 20 anni prima.

Secondo quanto dichiarato ufficialmente da IBM, il MARS è, insieme al Serpent, uno dei pochi algoritmi finalisti dell'AES specificatamente sviluppati per resistere anche a tecniche di crittanalisi future. Curioso è il fatto che anche il gruppo di sviluppo del Twofish fece una dichiarazione simile per il suo cifrario.

## Struttura

Il MARS opera su blocchi dati di 128 bit e può usare chiavi di lunghezza variabile da 128 a 448 bit (con incrementi di 32 bit). A differenza della maggioranza dei cifrari a blocchi il MARS ha una struttura eterogenea denominata rete di Feistel non bilanciata: ci sono infatti 8 passaggi "in avanti" ed 8 passaggi "indietro". Questi 16 passaggi sono preceduti e seguiti da altri 8 passaggi definiti di "mescolamento" ed indipendenti dalla chiave di cifratura.

## Sicurezza

Le sotto-chiavi con lunghe sequenze di 1 e 0 possono portare ad attacchi efficienti contro il MARS. I due bit meno significativi delle sotto-chiavi usate nelle operazioni di moltiplicazione nei passaggi interni sono sempre impostate ad 1. Per questo ci sono sempre due input che non sono modificati attraverso il processo moltiplicativo, ed altri due che hanno output fissi (relativamente alla sotto-chiave).

Eli Biham, Bruce Schneier, Bart Preneel, Lars Knudsen ed altri esperti hanno proposto diversi attacchi su versioni del MARS con un numero ridotto di passaggi. Il più efficiente di questi è quello di Kelsey, Kohno e Schneier condotto ad una versione del MARS con 11 passaggi e che sfrutta l'attacco a boomerang: l'attacco permette di violare il cifrario utilizzando $2^{65}$ testi in chiaro scelti.

