MARS es un algoritmo de cifrado por bloques que IBM presentó al proceso de Estándar de cifrado avanzado . MARS fue seleccionado como finalista de AES en agosto de 1999, después de la conferencia AES2 en marzo de 1999, donde fue votado como el quinto y último algoritmo finalista.
El equipo de diseño de MARS incluía a Don Coppersmith , que había participado en la creación del anterior Estándar de cifrado de datos (DES) veinte años antes. El proyecto se diseñó específicamente para resistir los futuros avances en criptografía mediante la adopción de un enfoque estratificado y compartimentado.
El informe oficial de IBM afirmó que MARS y Serpent eran los únicos dos finalistas que habían implementado algún tipo de red de seguridad con respecto a los posibles avances en las matemáticas criptográficas. El equipo de Twofish hizo una declaración similar sobre su sistema de cifrado. [2]
MARS tiene un tamaño de bloque de 128 bits y un tamaño de clave variable de entre 128 y 448 bits (en incrementos de 32 bits). A diferencia de la mayoría de los cifrados de bloque, MARS tiene una estructura heterogénea: varias rondas de un núcleo criptográfico están "protegidas" por rondas de mezcla sin clave, junto con el blanqueamiento de claves .
Las subclaves con largas secuencias de unos o ceros pueden dar lugar a ataques eficientes a MARS. [3] Los dos bits menos significativos de las claves redondas utilizadas en la multiplicación siempre se establecen en el valor 1. Por lo tanto, siempre hay dos entradas que no cambian durante el proceso de multiplicación independientemente de la subclave, y otras dos que tienen una salida fija independientemente de la subclave. [3]
Un ataque de encuentro en el medio publicado en 2004 por John Kelsey y Bruce Schneier puede romper 21 de las 32 rondas de MARS. [4]