Caja S - S-box
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 de 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 .
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 am . Se puede implementar una caja S m × n como una tabla de búsqueda con 2 m palabras de n bits cada una. Normalmente se utilizan tablas fijas, 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, los algoritmos de cifrado Blowfish y Twofish ).
Ejemplo
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:
S 5 | Medio 4 bits de entrada | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0000 | 0001 | 0010 | 0011 | 0100 | 0101 | 0110 | 0111 | 1000 | 1001 | 1010 | 1011 | 1100 | 1101 | 1110 | 1111 | ||
Pedazos externos | 00 | 0010 | 1100 | 0100 | 0001 | 0111 | 1010 | 1011 | 0110 | 1000 | 0101 | 0011 | 1111 | 1101 | 0000 | 1110 | 1001 |
01 | 1110 | 1011 | 0010 | 1100 | 0100 | 0111 | 1101 | 0001 | 0101 | 0000 | 1111 | 1010 | 0011 | 1001 | 1000 | 0110 | |
10 | 0100 | 0010 | 0001 | 1011 | 1010 | 1101 | 0111 | 1000 | 1111 | 1001 | 1100 | 0101 | 0110 | 0011 | 0000 | 1110 | |
11 | 1011 | 1000 | 1100 | 0111 | 0001 | 1110 | 0010 | 1101 | 0110 | 1111 | 0000 | 1001 | 1010 | 0100 | 0101 | 0011 |
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".
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.
Análisis y propiedades
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.
Cualquier caja S donde cualquier combinación lineal de bits de salida se produce mediante una función doblada de los bits de entrada se denomina caja S perfecta .
Los S-boxes se pueden analizar usando criptoanálisis lineal y criptoanálisis diferencial en forma de una Tabla de Aproximación Lineal (LAT) o Transformada de Walsh y Tabla de Distribución de Diferencias (DDT) o tabla de autocorrelación y espectro. Su fuerza se puede resumir en la no linealidad (doblada, casi doblada) y la uniformidad diferencial (perfectamente no lineal, casi perfectamente no lineal).
Ver también
- Biyección, inyección y sobreyección
- Función booleana
- Número de nada en la manga
- Caja de permutación ( caja P)
- Cifrado de permutación
- Caja S Rijndael
- Cifrado de sustitución
Referencias
Otras lecturas
- Kaisa Nyberg (1991). Cajas S perfectas no lineales (PDF) . Avances en Criptología - EUROCRYPT '91. Brighton . págs. 378–386 . Consultado el 20 de febrero de 2007 .
- Calderero, Don (1994). "El estándar de cifrado de datos (DES) y su fuerza frente a los ataques". Revista de investigación y desarrollo de IBM . 38 (3): 243–250. doi : 10.1147 / rd.383.0243 .
- S. Mister y C. Adams (1996). Práctica caja-S Diseño . Taller de Áreas Seleccionadas en Criptografía (SAC '96) Taller de Registro. Universidad de Queen . págs. 61–76. CiteSeerX 10.1.1.40.7715 .
- Schneier, Bruce (1996). Criptografía aplicada, segunda edición . John Wiley e hijos . pp. 296 -298, 349. ISBN 978-0-471-11709-4.
- Chuck Easttom (2018). "Una metodología generalizada para diseñar elementos no lineales en primitivas criptográficas simétricas". 2018 IEEE 8th Annual Computing and Communication Workshop and Conference (CCWC) . Taller y conferencia de IEEE Computing and Communication (CCWC), 2018 IEEE 8th Annual. IEEE . págs. 444–449. doi : 10.1109 / CCWC.2018.8301643 . ISBN 978-1-5386-4649-6. S2CID 3659645 .