En criptografía , CIPHERUNICORN-A es un cifrado por bloques creado por NEC en el año 2000. En 2003, CRYPTREC recomendó esta técnica criptográfica para su uso por el gobierno japonés. Sin embargo, en la revisión de CRYPTREC de 2013, pasó a la categoría de "candidato".
El algoritmo utiliza una estructura de red Feistel de 16 rondas similar a la de su predecesor, CIPHERUNICORN-E , pero con cambios significativos. El tamaño del bloque es de 128 bits, con tamaños de clave de 128, 192 o 256 bits.
La función de ronda es incluso más compleja que la de CIPHERUNICORN-E, pero se ha eliminado la función de mezcla adicional entre rondas. La función de ronda sigue dividida en dos cálculos casi paralelos; ambos son redes de Feistel.
La primera parte (la secuencia principal ) es una red Feistel de 10 rondas, que utiliza cuatro cajas S de 8×8 bits , muy parecidas a las de CIPHERUNICORN-E. Las dos últimas rondas de la secuencia principal están influenciadas por la salida de la segunda parte (la función de generación de clave temporal ). Esta segunda red Feistel, de 6 rondas, utiliza multiplicación modular , así como dos de las cajas S.
A diferencia de CIPHERUNICORN-E, las subclaves se incluyen únicamente al comienzo de cada ronda principal.
El esquema de claves de CIPHERUNICORN-A utiliza repetidamente una función llamada MT , mediante multiplicación modular y todas las cajas S. Se descubrió una vulnerabilidad en dicho esquema, de modo que ciertas claves son equivalentes, pero se desconoce la magnitud de esta debilidad.
La gran complejidad de la función de ronda de CIPHERUNICORN-A ha dificultado su análisis. Se han realizado algunos análisis limitados sobre variantes simplificadas, que muestran que probablemente sean resistentes tanto al criptoanálisis diferencial como al lineal .
Referencias
- Matt Robshaw (14 de diciembre de 2001). "Una revisión criptográfica de CIPHERUNICORN-A" (PDF) . Archivado del original (PDF) el 26 de septiembre de 2007. Recuperado el 21 de enero de 2007 .
Enlaces externos
- Cifrados de 256 bits - Implementación de referencia de CIPHERUNICORN y código derivado
- Cifrados de bloques
- Cifrados de Feistel