Cajas-S
En criptografía, una Caja-S (Caja de Sustitución) es un componente básico de algoritmos de clave simétrica los cuales realizan sustitución. En codificadores de bloques, ellos son típicamente usados para obscurecer la relación entre la clave y el texto cifrado —propiedad de confusión de Claude Shannon.[1]
En general, una Caja-S toma algún número de bits de entrada, m, y los transforma en algún número de bits de salida, n, donde n es no necesariamente igual a m.[1] Una Caja-S m×n puede ser implementada como una tabla de consulta con 2m palabras de n bits cada una. Tablas fijas son comúnmente usadas, como por ejemplo en DES, pero en algunos codificadores las tablas son generadas dinámicamente desde la clave (por ejemplo, cifrado Blowfish y el algoritmo de encriptación Twofish).[cita requerida]
Un buen ejemplo de tabla fija es esta Caja-S de 6×4-bits de DES (S5):
S5 | Middle 4 bits of input | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0000 | 0001 | 0010 | 0011 | 0100 | 0101 | 0110 | 0111 | 1000 | 1001 | 1010 | 1011 | 1100 | 1101 | 1110 | 1111 | ||
Outer bits | 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 es encontrada seleccionando la fila usando los dos bits externos (el primero y el último) y la columna usando los cuatro bits internos. Por ejemplo, si la entrada es «011011» sus bits externos son «01» y sus bits internos «1101»; entonces la correspondiente salida debería ser «1001».[cita requerida]
Las 8 Cajas-S de DES fueron un tema de intenso estudio por muchos años por la preocupación de que un backdoor —una vulnerabilidad conocida solo por sus diseñadores— podría haber sido colocada en el codificador. El criterio de diseño de Caja-S fue eventualmente publicado (en Coppersmith, 1994) después del redescubrimiento público de criptoanálisis diferencial, mostrando que ellos habían sido cuidadosamente afinados para incrementar la resistencia en contra de este ataque específico. Otra investigación ya ha indicado que aún pequeñas modificaciones a una Caja-S podría significativamente debilitar DES.[cita requerida]
Ha habido una gran cantidad de investigación en el diseño de buenas Cajas-S y mucho más se ha comprendido acerca de su uso en codificadores de bloque desde que DES fue lanzado.[cita requerida]
Referencias
- Chandrasekaran, J. et al. (2011). «A Chaos Based Approach for Improving Non Linearity in the S-Box Design of Symmetric Key Cryptosystems». En Meghanathan, N. et al., ed. Advances in Networks and Communications: First International Conference on Computer Science and Information Technology, CCSIT 2011, Bangalore, India, January 2-4, 2011. Proceedings, Part 2. Springer. p. 516. ISBN 978-3-642-17877-1.
Otras lecturas
- Kaisa Nyberg (1991). «Perfect nonlinear S-boxes». Advances in Cryptology - EUROCRYPT '91. Brighton. pp. 378-386. Consultado el 20 de febrero de 2007. (enlace roto disponible en Internet Archive; véase el historial, la primera versión y la última).
- Coppersmith, Don (1994). «The Data Encryption Standard (DES) and its strength against attacks» (PDF). IBM Journal of Research and Development 38 (3): 243-250. doi:10.1147/rd.383.0243. Consultado el 20 de febrero de 2007.
- S. Mister and C. Adams (1996). «Practical S-Box Design». Workshop on Selected Areas in Cryptography (SAC '96) Workshop Record. Queens University. pp. 61-76. Consultado el 20 de febrero de 2007.
- Schneier, Bruce (1996). Applied Cryptography, Second Edition. John Wiley & Sons. pp. 296-298, 349. ISBN 0-471-11709-9.