El cifrado de clave simétrica es omnipresente en el mundo actual: almacena y transmite información, correo electrónico e incluso mira videos en YouTube. Los cifrados simétricos fuertes incluyen cajas S bien formadas. En esta publicación, lo guiaré a través de las diferentes formas de crear cajas S y compararlas.
1. ¿Qué es el bloque S?
El bloque S es una función que toma n bits en la entrada, los transforma de acuerdo con un cierto algoritmo y devuelve m bits en la salida. Las cajas S se utilizan ampliamente en la mayoría de los cifrados de bloques. Pueden diferir en los tamaños de entrada y salida (nym), pueden generarse de forma determinista o aleatoria y también pueden ser inmutables (fijos) o generados en función de una clave. Las cajas S se pueden representar como una tabla (como en DES) o como una función booleana algebraica (como en AES). Los criterios importantes al componer un S-box son su no linealidad y el criterio para la propagación de funciones booleanas. Para ver el S-box como una secuencia de funciones booleanas, primero comprendemos cómo las funciones booleanas se relacionan generalmente con la criptografía.
2. Funciones booleanas en criptografía
En los sistemas de encriptación tradicionales que traducen un mensaje abierto en uno encriptado con una clave secreta, el aparato de funciones booleanas es muy utilizado. El principal requisito para ellos es que compliquen la decodificación del mensaje por una persona que no es su destinatario.
Para ilustrar el uso de funciones booleanas, presentamos un esquema de cifrado de flujo, cuando cada carácter entrante se convierte inmediatamente en un carácter de texto cifrado. El texto original, la clave y el texto cifrado son cadenas binarias de la misma longitud. En la práctica, la mayoría de las veces el remitente y el receptor eligen una secuencia pseudoaleatoria en lugar de una clave en el cifrado Vernam, que se genera a partir de una clave secreta corta de acuerdo con el algoritmo acordado. Esta secuencia se llama keystream o gamma .
, (Linear Feedback Shift Register, LSFR).
. ( ) ( ). LSFR , , LSFR.
, , L. ,
,
.
, .
3.
- 2 (
),
-
.
S- :
:
, S- :
- (
).
.
.
( ) :
2.
, :
, () . "".
4.
, , .
,
- .
:
(
-
,
-
.
- ,
.
- ,
- . -
.
( )
.
,
,
-
,
- ,
. -.
- .
5.-
- - , . - .
, -, .
-
,
- .
,
.
,
,
.
.
6. -
6.1
-
.
1.
: .
: - - 8 .
: , :
2.
: -
,
,
- -.
: -
.
:
( -)
. . 4 6 . - "" (, ), .
3.
: ,
,
- .
: - , .
:
,
-
-
.
- , -. .
6.2 -
"" - , . , , , .
, - 6 . . . - , , - .
- , . - , -
. .
.
, , .
, ,
.
, .
- -, -. . . - ( ).
- , - . , , - .
. -, - . (, 6
). -, - .
4. ( -)
:
- (
- )
,
,
:
(1.1) (1.2)
,
:
-
.
:
(1.1) (1.2)
,
:
1.1
,
,
1.2 1
.
.
.
, (3),
,
- -, ; (1).
, 4 . - (. - ), (4) - , , .
7. S-
S- - ,
, ,
. ,
S-, . S-.
S-, 8- .
1. S-, ,
2. S-, ,
1 2, , S-, , S- (98 100).
3. S-, ,
, S- , S- - ( 2) (. 3). , 98, S- .
4. S-, -,
S-, - (. 4). S- 112, ( , 104). 20 S- 100, S-, - .
, - S- .
, , - S- (80, ). S- (, ) S- .
8.
, S- . , , . S-, -.
. -
Anna Grocholewska-Czurylo and Janusz Stoklosa - Random Generation of S-Boxes for Block Ciphers
Meier, W., Staffelbach, O - Criterios de no linealidad para funciones criptográficas
Wikipedia - S-box (informática)
Wikipedia - Caja S
Wikipedia - Funciones dobladas