Caja S


En criptografía , una caja S ( caja de sustitución ) es un componente básico de los algoritmos de clave simétrica que realiza la sustitución. En los cifrados en bloque , se suelen utilizar para ocultar la relación entre la clave y el texto cifrado , lo que garantiza la propiedad de confusión de Shannon . Matemáticamente, una caja S es una función booleana vectorial . [1]

En general, una caja S toma una cierta cantidad de bits de entrada , m , y los transforma en una cierta cantidad de bits de salida, n , donde n no es necesariamente igual a m . [2] Se puede implementar una caja S m × n como una tabla de búsqueda con 2 m palabras de n bits cada una. Las tablas fijas se utilizan normalmente, como en el Estándar de cifrado de datos (DES), pero en algunos cifrados las tablas se generan dinámicamente a partir de la clave (por ejemplo, Blowfish y Twofish algoritmos de cifrado).

Un buen ejemplo de una tabla fija es la caja S de DES (S 5 ), que asigna una entrada de 6 bits a una salida de 4 bits:

Dada una entrada de 6 bits, la salida de 4 bits se encuentra seleccionando la fila usando los dos bits externos (el primero y el último bits), y la columna usando los cuatro bits internos. Por ejemplo, una entrada " 0 1101 1 " tiene bits externos " 01 " y bits internos "1101"; la salida correspondiente sería "1001". [3]

Las ocho cajas S de DES fueron objeto de un intenso estudio durante muchos años debido a la preocupación de que una puerta trasera (una vulnerabilidad conocida solo por sus diseñadores) pudiera haberse plantado en el cifrado. Los criterios de diseño de la caja S se publicaron finalmente (en Coppersmith 1994 ) después del redescubrimiento público del criptoanálisis diferencial , lo que demuestra que se habían ajustado cuidadosamente para aumentar la resistencia contra este ataque específico. Biham y Shamir descubrieron que incluso pequeñas modificaciones en una caja S podrían debilitar significativamente a DES. [4]

Se ha investigado mucho sobre el diseño de buenas cajas S, y se sabe mucho más sobre su uso en cifrados de bloques que cuando se lanzó DES. [ cita requerida ]