¿Cómo puede tener DES cajas S de 6x4 y aún ser reversible?

12

¿No se perderían los datos al asignar valores de 6 bits a valores de 4 bits en los S-Box de DES? Si es así, ¿cómo podemos revertirlo para que aparezca la salida correcta?


fuente
3
Esta es probablemente una pregunta muy interesante, pero trataría de hacerlo más autónomo para que pueda obtener una respuesta decente. Intenta proporcionar más información de fondo.
Dave Clarke
2
Si bien Sadeq tiene una respuesta, aún sería útil aclarar la pregunta. En primer lugar, ¿qué es un S-Box en DES?
Suresh Venkat
55
Un cifrado basado en Feistel divide la entrada en dos cadenas de bits de igual longitud y R (32 bits en DES) y luego aplica repetidamente la operación que Sadeq describe a continuación (en DES, se repite 16 veces). En DES, un S -box es una función de 6 bits a 4 bits que es un componente de la aplicación de F . Las cajas S tenían algunas propiedades estadísticas interesantes, cuyo propósito permaneció oscuro durante quince años. Muchas personas sospecharon que hicieron que DES fuera más fácil de romper. Finalmente, se descubrió que estas propiedades de las cajas S hacen que el DES sea resistente al criptoanálisis diferencial. LRSFS
Peter Shor
3
@Suresh: los cifrados clásicos se dividen en dos tipos: cifrados de sustitución (como César) y cifrados de permutación (como transposición en columnas). Más tarde, se hizo evidente que ninguno de los dos tipos proporcionaba suficiente seguridad. Los cifrados de bloque modernos hacen uso de ambas transformaciones. En particular, tienen cajas P (= cajas de permutación) y cajas S (= cajas de sustitución).
MS Dousti
3
@Suresh: Estoy totalmente de acuerdo contigo. Si bien los S-Box son famosos por los criptógrafos, creo que el OP debe hacer la pregunta de manera que beneficie a todos, no a una pequeña porción de la comunidad.
MS Dousti

Respuestas:

25

F

En cada ronda, se aplica la siguiente operación:

yo=0 0,1,...,norte

Lyo+1=Ryo

Ryo+1=LyoF(Ryo,Kyo)

El descifrado se realiza de la siguiente manera:

Ryo=Lyo+1

Lyo=Ryo+1F(Lyo+1,Kyo)

FF-1

MS Dousti
fuente
4

Consulte el Capítulo 5 del libro de texto "Introducción a la criptografía moderna" de Katz y Lindell.

usuario686
fuente
1

Sin entrar en todo el mumbo-jumbo matemático sobre Feistel (que aún no entiendo al 100%), si miras esta imagen de Wikipedia:

Paso de cifrado DES

Puede ver que aunque las 8 cajas-s están comprimiendo 48 bits a 32, solo 32 bits de entropía provienen del texto sin formato , por lo tanto, puede obtener los otros 16 bits de la clave al descifrar, que es la magia realizada por funciones Feistel mencionadas anteriormente.

Sophistifunk
fuente