stringtranslate.com

Red de sustitución-permutación

Esquema de una red de sustitución-permutación con tres rondas, que cifra un bloque de texto simple de 16 bits en un bloque de texto cifrado de 16 bits. Las cajas S son las S i , las cajas P son las mismas P y las claves de ronda son las K i .

En criptografía , una red SP , o red de sustitución-permutación ( SPN ), es una serie de operaciones matemáticas vinculadas que se utilizan en algoritmos de cifrado de bloques como AES (Rijndael) , 3-Way , Kalyna , Kuznyechik , PRESENT , SAFER , SHARK y Square .

Una red de este tipo toma un bloque del texto simple y la clave como entradas, y aplica varias rondas alternas o capas de cajas de sustitución (cajas S) y cajas de permutación (cajas P) para producir el bloque de texto cifrado . Las cajas S y las cajas P transforman (sub)bloques de bits de entrada en bits de salida. Es común que estas transformaciones sean operaciones que son eficientes para realizar en hardware, como la operación exclusiva o (XOR) y la rotación bit a bit . La clave se introduce en cada ronda, generalmente en forma de " claves de ronda " derivadas de ella. (En algunos diseños, las propias cajas S dependen de la clave).

El descifrado se realiza simplemente invirtiendo el proceso (utilizando los inversos de las cajas S y P y aplicando las claves redondas en orden inverso).

Componentes

Una S-box sustituye un bloque pequeño de bits (la entrada de la S-box) por otro bloque de bits (la salida de la S-box). Esta sustitución debe ser uno a uno , para garantizar la invertibilidad (y, por lo tanto, el descifrado). En particular, la longitud de la salida debe ser la misma que la longitud de la entrada (la imagen de la derecha tiene S-boxes con 4 bits de entrada y 4 bits de salida), lo que es diferente de las S-boxes en general que también podrían cambiar la longitud, como en el Estándar de cifrado de datos (DES), por ejemplo. Una S-box no suele ser simplemente una permutación de los bits. Más bien, en una buena S-box cada bit de salida se verá afectado por cada bit de entrada. Más precisamente, en una buena S-box cada bit de salida cambiará con un 50% de probabilidad por cada bit de entrada. Dado que cada bit de salida cambia con una probabilidad del 50%, aproximadamente la mitad de los bits de salida cambiarán realmente con un cambio de bit de entrada (cf. Criterio de avalancha estricto ). [1]

Una P-box es una permutación de todos los bits: toma las salidas de todas las S-boxes de una ronda, permuta los bits y los introduce en las S-boxes de la siguiente ronda. Una buena P-box tiene la propiedad de que los bits de salida de cualquier S-box se distribuyen a tantas entradas de S-box como sea posible.

En cada ronda, la clave de ronda (obtenida a partir de la clave con algunas operaciones simples, por ejemplo, usando cajas S y cajas P) se combina usando alguna operación de grupo, típicamente XOR .

Propiedades

Una única caja S típica o una única caja P por sí solas no tienen mucha fuerza criptográfica: una caja S podría considerarse un cifrado de sustitución , mientras que una caja P podría considerarse un cifrado de transposición . Sin embargo, una red SP bien diseñada con varias rondas alternas de cajas S y P ya satisface las propiedades de confusión y difusión de Shannon :

Actuación

Aunque una red Feistel que utiliza S-boxes (como DES ) es bastante similar a las redes SP, existen algunas diferencias que hacen que una u otra sean más aplicables en ciertas situaciones. Para una cantidad dada de confusión y difusión , una red SP tiene más "paralelismo inherente" [2] y, por lo tanto, dada una CPU con muchas unidades de ejecución , puede calcularse más rápido que una red Feistel. [3] Las CPU con pocas unidades de ejecución, como la mayoría de las tarjetas inteligentes , no pueden aprovechar este paralelismo inherente. Además, los cifrados SP requieren que las S-boxes sean invertibles (para realizar el descifrado); las funciones internas de Feistel no tienen tal restricción y pueden construirse como funciones unidireccionales .

Véase también

Referencias

  1. ^ Webster, AF; Tavares, Stafford E. (1985). "Sobre el diseño de cajas S". Avances en criptología – Crypto '85 . Apuntes de clase sobre informática. Vol. 218. Nueva York, NY: Springer-Verlag New York, Inc. pp. 523–534. ISBN 0-387-16463-4.
  2. ^ "Principios y rendimiento de los algoritmos criptográficos" por Bart Preneel, Vincent Rijmen y Antoon Bosselaers.
  3. ^ "La familia de funciones hash Skein" Archivado el 15 de enero de 2009 en Wayback Machine. 2008 por Niels Ferguson , Stefan Lucks , Bruce Schneier , Doug Whiting, Mihir Bellare , Tadayoshi Kohno, Jon Callas , Jesse Walker, página 40.

Lectura adicional