En la criptografía , ICE ( I NFORMACIÓN C oncealment E Ngine ) es una clave simétrica- cifrado de bloques publicado por Kwan en 1997. El algoritmo es similar en estructura a DES , pero con la adición de una permutación dependiente de la clave bit en la función de ronda. La permutación de bits dependiente de la clave se implementa de manera eficiente en el software. El algoritmo ICE no está sujeto a patentes y el código fuente se ha colocado en el dominio público.
General | |
---|---|
Diseñadores | Matthew Kwan |
Publicado por primera vez | 1997 |
Derivado de | DES |
Detalle de cifrado | |
Tamaños de clave | 64 bits (ICE), 64 × n bits (ICE- n ) |
Tamaños de bloque | 64 bits |
Estructura | Red Feistel |
Rondas | 16 (ICE), 8 (Thin-ICE), 16 × n (ICE- n ) |
Mejor criptoanálisis público | |
El criptoanálisis diferencial puede romper 15 de 16 rondas de ICE con complejidad 2 56 . Thin-ICE se puede romper usando 2 27 textos sin formato elegidos con una probabilidad de éxito del 95%. |
ICE es una red Feistel con un tamaño de bloque de 64 bits. El algoritmo estándar de ICE toma una clave de 64 bits y tiene 16 rondas. Una variante rápida, Thin-ICE , usa solo 8 rondas. Una variante abierta, ICE- n , utiliza 16 n rondas con una clave de 64 n bits.
Van Rompay y col. (1998) intentó aplicar el criptoanálisis diferencial al ICE. Describieron un ataque a Thin-ICE que recupera la clave secreta utilizando 2 23 textos sin formato elegidos con una probabilidad de éxito del 25%. Si se utilizan 2 27 textos sin formato elegidos, la probabilidad se puede mejorar al 95%. Para la versión estándar de ICE, se encontró un ataque en 15 de 16 rondas, requiriendo 2 56 trabajos y como máximo 2 56 textos sin formato elegidos.
Estructura
ICE es una red Feistel de 16 rondas . Cada ronda utiliza una función F de 32 → 32 bits, que utiliza 60 bits de material clave.
La estructura de la función F es algo similar a DES: la entrada se expande tomando campos superpuestos, la entrada expandida se aplica XOR con una tecla y el resultado se alimenta a una serie de cajas S reductoras que deshacen la expansión.
Primero, ICE divide la entrada en 4 valores superpuestos de 10 bits. Son los bits 0 a 9, 8 a 17, 16 a 25 y 24 a 33 de la entrada, donde los bits 32 y 33 son copias de los bits 0 y 1.
El segundo es una permutación con clave, que es exclusiva de ICE. Usando una subclave de permutación de 20 bits, los bits se intercambian entre las mitades de la entrada expandida de 40 bits. (Si el bit de subclave i es 1, los bits i e i +20 se intercambian).
En tercer lugar, el valor de 40 bits tiene un OR exclusivo con 40 bits de subclave más.
En cuarto lugar, el valor se alimenta a través de 4 cajas S de 10 bits, cada una de las cuales produce 8 bits de salida. (Son mucho más grandes que las cajas S de 8 6 → 4 bits de DES).
En quinto lugar, los bits de salida de la caja S se permutan de modo que las salidas de cada caja S se enrutan a cada campo de 4 bits de la palabra de 32 bits, incluidos 2 de los 8 bits "superpuestos" duplicados durante la expansión de la siguiente ronda.
Como DES, una implementación de software normalmente almacenaría los S-boxes prepermutados, en 4 tablas de búsqueda de 1024 × 32 bits.