Contactos

Estándar de cifrado nacional GOST 28147 89. El paso principal de la transformación criptográfica

DES es un estándar de cifrado doméstico más conveniente para la implementación de software.

A diferencia del DES estadounidense, el estándar ruso utiliza una clave más larga: 256 bits. Además, el estándar ruso propone usar 32 rondas de cifrado, mientras que DES, solo 16.

Por lo tanto, los parámetros principales del algoritmo de transformación de datos criptográficos GOST 28147-89 son los siguientes: el tamaño del bloque es de 64 bits, el tamaño de la clave es de 256 bits y el número de rondas es de 32.

El algoritmo es red clásica Feistel. El bloque de datos encriptados se divide en dos partes idénticas, la derecha R y la izquierda L. La parte derecha se agrega a la subclave redonda y encripta la parte izquierda mediante algún algoritmo. Antes de la siguiente ronda, se intercambian los lados izquierdo y derecho. Esta estructura permite el uso del mismo algoritmo tanto para el cifrado como para el descifrado del bloque.

El algoritmo de cifrado utiliza las siguientes operaciones:

  • adición de palabras módulo 2 32;
  • desplazamiento cíclico de la palabra a la izquierda por el número especificado de bits;
  • módulo de adición bit a bit 2;
  • Reemplazo de acuerdo con la tabla.

En diferentes pasos de los algoritmos GOST, los datos sobre los que operan se interpretan y utilizan de diferentes maneras. En algunos casos, los elementos de datos se tratan como matrices de bits independientes, en otros casos como un entero sin signo y en otros como un elemento complejo con una estructura, que consta de varios elementos más simples.

Estructura redonda GOST 28147-89

La estructura de una ronda de GOST 28147-89 se muestra en la Fig. 5.1.

El bloque de datos cifrado se divide en dos partes, que luego se procesan como enteros separados de 32 bits sin signo. Primero, la mitad derecha del bloque y la subclave de la ronda se agregan módulo 2 32. Luego se realiza la sustitución bloque por bloque. El valor de 32 bits obtenido en el paso anterior (llamémoslo S) se interpreta como una matriz de ocho bloques de código de 4 bits: S = (S 0, S 1, S 2, S 3, S 4, S 5, S 6, S 7)... Además, el valor de cada uno de los ocho bloques se reemplaza por uno nuevo, que se selecciona de acuerdo con la tabla de sustitución de la siguiente manera: el valor del bloque S i se reemplaza por el elemento S i -ésimo en orden (numeración desde cero ) del i-ésimo nodo de sustituciones (es decir, las tablas de sustitución de la i-ésima fila, numeradas también desde cero). En otras palabras, un elemento con un número de fila igual al número del bloque reemplazado y un número de columna igual al valor del bloque reemplazado como un entero no negativo de 4 bits se selecciona como reemplazo del valor del bloque. Cada fila de la tabla de sustitución contiene números del 0 al 15 en orden aleatorio sin repeticiones. Los valores de los elementos de la tabla de sustitución se toman de 0 a 15, ya que en los cuatro bits que se sustituyen se puede escribir un entero sin signo en el rango de 0 a 15. Por ejemplo, la primera línea de una caja S puede contener valores como este: 5, 8, 1, 13, 10, 3, 4, 2, 14, 15, 12, 7, 6, 0, 9, 11 ... En este caso, el valor del bloque S 0 (los cuatro bits menos significativos del número S de 32 bits) será reemplazado por el número en la posición cuyo número es igual al valor del bloque reemplazado. Si S 0 = 0, entonces será reemplazado por 5, si S 0 = 1, entonces será reemplazado por 8, etc.


Arroz. 5.1.

Una vez realizada la sustitución, todos los bloques de 4 bits se vuelven a combinar en una sola palabra de 32 bits, que luego se desplaza cíclicamente 11 bits a la izquierda. Finalmente, con la operación bit a bit "suma mod 2" el resultado se combina con la mitad izquierda, lo que da como resultado una nueva mitad derecha de R i. El nuevo lado izquierdo L i se toma igual a la parte menos significativa del bloque transformado: L i = R i-1.

El valor resultante del bloque transformado se considera el resultado de una ronda del algoritmo de cifrado.

Procedimientos de cifrado y descifrado

GOST 28147-89 es un cifrado de bloque, por lo tanto transformación de datos se lleva a cabo en bloques en el llamado ciclos base... Los bucles básicos consisten en múltiples ejecuciones para el bloque de datos de la ronda principal, que consideramos anteriormente, utilizando diferentes elementos clave y se diferencian entre sí en el orden de uso de elementos clave. Cada ronda utiliza una de las ocho posibles subclaves de 32 bits.

Consideremos el proceso de creación de rondas de subclaves. En GOST, este procedimiento es muy simple, especialmente en comparación con DES. La clave K de 256 bits se divide en ocho subclaves de 32 bits, denominadas K 0, K 1, K 2, K 3, K 4, K 5, K 6, K 7. El algoritmo incluye 32 rondas, por lo que cada subclave se utiliza para el cifrado en cuatro rondas en la secuencia que se muestra en la Tabla 5.1.

Cuadro 5.1. Secuencia de uso de subclaves para cifrado
Ronda 1 2 3 4 5 6 7 8
Construcción completa K 0 K 1 K 2 K 3 K 4 K 5 K 6 K 7
Ronda 9 10 11 12 13 14 15 16
Construcción completa K 0 K 1 K 2 K 3 K 4 K 5 K 6 K 7
Ronda 17 18 19 20 21 22 23 24
Construcción completa K 0 K 1 K 2 K 3 K 4 K 5 K 6 K 7
Ronda 25 26 27 28 29 30 31 32
Construcción completa K 7 K 6 K 5 K 4 K 3 K 2 K 1 K 0

El proceso de descifrado sigue el mismo algoritmo que el cifrado. La única diferencia es el orden en el que se utilizan las subclaves Ki. Al descifrar, las subclaves deben usarse en el orden inverso, es decir, como se indica en

1 Esquema estructural algoritmo de transformación criptográfica 1

2 Modo de intercambio fácil 4

3 Modo gamma 8

4 Modo gamma con reacción 11

5 Modo de producción del inserto de imitación 14

Apéndice 1 Términos utilizados en esta norma y sus definiciones 16

Apéndice 2 Valores de las constantes C1, C2 18

Apéndice 3 Esquemas de implementación de software del algoritmo criptográfico

transformación. diecinueve

Apéndice 4 Reglas para la suma módulo 2 32 y módulo (2 32 -I) 25

ESTÁNDAR ESTATAL

UNION SSR

SISTEMAS DE PROCESAMIENTO DE INFORMACIÓN. CRIPTOGRÁFICO PROTEGIDO

Algoritmo de transformación criptográfica

Fecha de introducción 01.07.90

Este estándar establece un algoritmo de transformación criptográfico unificado para sistemas de procesamiento de información en redes electrónicas. maquinas de computación(Computadora), sistemas informáticos individuales y computadoras, que determina las reglas para el cifrado de datos y el desarrollo de un inserto de imitación.

El algoritmo de transformación criptográfica está destinado a la implementación de hardware o software, cumple con los requisitos criptográficos y, en términos de sus capacidades, no impone restricciones sobre el grado de secreto de la información protegida.

El estándar es obligatorio para las organizaciones, empresas e instituciones que soliciten protección criptográfica datos almacenados y transmitidos en redes informáticas, en sistemas informáticos separados o en ordenadores.

Los términos utilizados en esta norma y sus definiciones se dan en el anexo 1.

I. ESQUEMA ESTRUCTURAL DEL ALGORITMO DE TRANSFORMACIÓN CRIPTOGRÁFICO

1.1. El diagrama de bloques del algoritmo de transformación criptográfica (criptosquema) contiene (ver Figura 1):

Edición oficial ★

Dispositivo de almacenamiento de claves de 256 bits (KZU), que consta de ocho unidades de 32 bits (X 0, X t. X 2, A3 L4, X $, X 6, Xy); cuatro unidades de 32 bits (/ V (, N 2, Nj, / V 4);

Prohibida la reimpresión

© Standards Publishing House, 1989 © IPK Standards Publishing House, 1996

dos unidades de 32 bits L / $,) con rellenos constantes C 2, C \\

dos sumadores de 32 bits módulo 32 (CM |, SL / 3);

Sumador de 32 bits para módulo 2 de suma bit a bit (SL / 2);

Módulo sumador de 32 bits (2 32 - 1) (SL / 4);

sumador módulo 2 (SL / 5), no se impone ninguna limitación a la capacidad del sumador SL / $;

bloque de sustitución (A);

un registro de desplazamiento cíclico once pasos hacia el bit más significativo (R).

1.2. El bloque de sustitución A "consta de ocho nodos de sustitución A'j,

A 2, A “z, K 4, A5, A7, A 8 con memoria de 64 bits cada uno. Correo

El vector de 32 bits aplicado al bloque de sustitución se divide en ocho vectores consecutivos de 4 bits, cada uno de los cuales se convierte en un vector de 4 bits por el nodo de reemplazo correspondiente, que es una tabla de dieciséis filas que contienen cuatro bits de relleno por línea. . El vector de entrada define la dirección de la fila en la tabla, el relleno de esta fila es el vector de salida. A continuación, los vectores de salida de 4 bits se concatenan secuencialmente en un vector de 32 bits.

1.3. Durante la suma y el desplazamiento cíclico de vectores binarios, se considera que los bits más significativos son los bits de las unidades con números grandes.

1.4. Al escribir la clave (I ", W 2 ..., W q e (0,1), d = N256, en

Se ingresa el valor KZU W \ i-ésimo rango unidad Xq, el valor W 2 se ingresa en el segundo bit de la unidad L #, ..., el valor W ^ 2 se ingresa en el 32 ° bit de la unidad Xq; el valor W33 se ingresa en el primer bit de la unidad X \ y el valor se ingresa en el segundo bit de X \ y ..., el valor WM se ingresa en el bit 32 del valor X \\ W 6 5 se ingresa en el primer bit de la unidad X 2, etc., el valor 1Y 2 5b se ingresa en el bit 32 del almacenamiento Xy.

1.5. Al reescribir información, el contenido del p-ésimo bit de un dispositivo de almacenamiento (sumador) se reescribe en p-ésimo rango otra unidad (sumador).

1.6. Los valores de los llenados constantes Cj, C 2 (constantes) de los dispositivos de almacenamiento / V 6, / V5 se dan en el Apéndice 2.

1.7. Las claves que determinan el llenado del CAM y las tablas del bloque de sustitución K son elementos secretos y se suministran de la forma prescrita.

Completar las tablas del bloque de sustitución K es un elemento clave a largo plazo común a la red informática.

Organización diferentes tipos la comunicación se logra mediante la construcción de un sistema de claves apropiado. En este caso, se puede utilizar la posibilidad de generar claves (llenando el CCD) en el modo de reemplazo simple y cifrarlas en el modo de reemplazo simple con la provisión de protección de imitación para transmisión a través de canales de comunicación o almacenamiento en la memoria de la computadora.

1.8. El criptoesquema proporciona cuatro tipos de trabajo: cifrado (descifrado) de datos en un modo de reemplazo simple; cifrado (descifrado) de datos en modo gamma;

cifrado (descifrado) de datos en modo gamma con retroalimentación;

modo de producción de un inserto simulado.

Los esquemas de implementación de software del algoritmo de transformación criptográfica se dan en el Apéndice 3.

2. MODO DE REEMPLAZO SENCILLO

2.1. Cifrar datos abiertos en modo de intercambio fácil

2.1.1. Cryptocircuit "que implementa el algoritmo de cifrado en el modo de reemplazo simple, debe tener la forma que se muestra en la Fig. 2.

Los datos abiertos a cifrar se dividen en bloques de 64 bits cada uno. Entrada de cualquier bloque T () = (D | (0), ^ (O), ..., q 3 1 (0), x 32 (0), L | (0), b 2 (0) y. .., Z> 32 (0)) información binaria en las unidades N \ y N 2 se hace de modo que el valor de D | (0) se ingrese en el 1er bit de N |, el valor a 2 (0) se ingrese en el 2do bit / Vj, etc., el el valor es 32 (0) se ingresa en el bit 32 de iVj; se ingresa el valor /> | (0)

1er bit A / 2, el valor b 2 (0) se introduce en el 2º bit N 2, etc., el valor /> 32 (0) se introduce en el 32º bit N 2. Como resultado, se obtiene un estado (i 32 (0), i 3 | (0), ..., y 2 (0) y<7|(0)) накопителя yVj и состояние (/>32 (0), b 2 1 (0), ..., /> | (0)) impulsa N 2.

2.1.2. Se ingresan 256 bits de la clave en la RAM. El contenido de ocho unidades de 32 bits Aq, X \ t ..., Xj es el siguiente:

^0 = (^32^3.....

*1 =(^64^63, . ^34^33)

* 7 = (^ 56> ^ 255. ..., U / 226, ^ 225)

2.1.3. El algoritmo de cifrado para un bloque de 64 bits de datos abiertos en el modo de reemplazo simple consta de 32 ciclos.

En el primer ciclo, el llenado inicial del acumulador se suma módulo 2 32 en el sumador CM \ con el llenado del acumulador Xq mientras se conserva el llenado del acumulador Nj.

El resultado de la suma se convierte en el bloque de sustitución K y el vector resultante se alimenta a la entrada del registro / ?, donde se desplaza cíclicamente en once pasos hacia los bits superiores. El resultado del desplazamiento se suma en módulo 2 bit a bit en el sumador CM 2 con relleno de 32 bits de la unidad yV 2. El resultado obtenido en CM 2 se registra en N \% con el relleno antiguo N | sobrescribe en N 2. Termina el primer ciclo.

Los ciclos posteriores se llevan a cabo de la misma manera, mientras que en

En el segundo ciclo, el llenado X \ se lee del CCD, en el tercer ciclo del CCD

se lee el llenado X 2, etc., en el octavo ciclo, se lee el llenado Xj de la RAM. En los ciclos del 9 al 16, así como en los ciclos del 17 al 24, los rellenos se leen del CCD en el mismo orden:

En los últimos ocho ciclos, del 25 al 32, el orden de lectura de los empastes del CCD se invierte:

infierno, infierno, infierno, infierno.

Por lo tanto, al cifrar en 32 ciclos, se lleva a cabo el siguiente orden de selección de rellenos de unidad:

infierno, ^ 2, ^), ^ 4> ^ 5, ^ 6 "^ 7, infierno, ^ 2, ^ 3" ^ 4, ^ 5, - ^ 6, ^ 7, infierno, infierno, infierno, infierno, infierno , infierno, infierno, infierno.

En el ciclo 32, el resultado del sumador SL / 2 se ingresa en el almacenamiento UU 2 y el llenado anterior se guarda en el almacenamiento N \.

Obtenido después del 32º níquel de cifrado de llenado de las unidades N | y N2 es un bloque de datos cifrados correspondiente a un bloque de datos abierto.

2.1 4 Las ecuaciones de cifrado en el modo de sustitución simple son las siguientes:

J * Cr> "(

Yo b (/) = a (/ ~ yo)

cuando y = I -24;

GRAMO"

\ bO) - a O - O en / 8 * 25 -r 31; a (32) = a (31)

A (32) = (q (31) ffl X 0) KRG> b (31)

donde d (0) = (a 32 (0), «s | (0), ..., D | (0)) - llenado inicial de N \ antes del primer ciclo de cifrado;

6 (0) = (632 (0), 63j (0), ..., 6j (0)) - llenado inicial / U 2 antes del primer ciclo de cifrado;

a (j) = (032 (7), 0z | (/) e ..., 0 | (/)) - llenando la CU, después del y-ésimo ciclo de cifrado;

b (j) = (6z 2 (/), 63j (/ "), ..., 6 | (/)) - llenado / V 2 después del y-ésimo ciclo de cifrado, y = 032.

El signo φ significa la suma bit a bit de vectores de 32 bits módulo 2.

El signo W denota la suma de vectores de 32 bits módulo 2 32. Las reglas de suma módulo 2 32 se dan en el Apéndice 4;

/? - operación de desplazamiento cíclico en once pasos hacia los dígitos superiores, es decir

^ (r 32 "O |> r 30> r 29> r 28> r 27> r 26" r 25> r 24> r 23 'G 22 "r 2b r 20>» r 2 * r |) ~

= (r 21 "r 20> -" r 2 * r 1 * Г 32> Г31 * ГзО "г 29 * г 28 *, 27e" 26e / "25>, 24> Г23", 22) *

2.1.5. Un bloque de 64 bits de datos cifrados T w se emite desde las unidades Л ^, УУ 2 en el siguiente orden: desde el 1 °, 2 °, ..., 32 ° bits de la unidad Л7 |, luego desde el 1 °, 2 °, ..., almacenamiento de 32 bits W 2, es decir

t w - (a,<32),0 2 (32),0 32 (32), 6,(32), 6 2 <32),6 32 <32».

El resto de los bloques de datos abiertos se cifran de la misma manera en el modo de reemplazo simple.

2.2. Descifrado de datos cifrados en modo de sobrescritura fácil

2.2.1. El criptocircuito que implementa el algoritmo de descifrado en el modo de reemplazo simple tiene la misma forma (ver página 2) que para el cifrado. Se ingresan en la RAM 256 bits de la misma clave en la que se realizó el cifrado. Los datos cifrados a descifrar se dividen en bloques de 64 bits cada entrada de cualquier bloque

T w - (0, (32), о 2 (32), ..., 0 32 (32), 6, (32), 6 2 (32), ..., 6 32 (32))

en los dispositivos de almacenamiento L ', y N 2 se producen de modo que el valor de dj (32) se ingrese en el 1er bit / V, el valor o 2 (32) se ingrese en el 2do bit / V, y así sucesivamente, el valor de 32 (32) se inyecta en el 32 bit / V; el valor 6, (32) se ingresa en el primer bit de N 2, y así sucesivamente, el valor 6 32 (32) se ingresa en el 32º bit de N 2.

2.2.2. El descifrado se realiza de acuerdo con el mismo algoritmo que el cifrado de datos abiertos, con el cambio de que los rellenos de las unidades Xq, X \ y ..., Xj se leen de la RAM en ciclos de descifrado en el siguiente orden:

infierno, infierno 3, infierno, infierno, infierno, infierno, infierno, infierno 0,

Infierno 6, Infierno 4, Infierno 2, Infierno, Infierno, Infierno, Infierno 2, Infierno.

2.2.3. Las ecuaciones de descifrado son:

Sol re (32 - /) = (re (32 - / + 1) ShLG,.,) * LF6 (32 - / + 1) b (32 - /) = re (32 - / + 1) en, / = 1 + 8;

Yo o (32- /) = (a (32- / M) SHDG (32 _ /)(tode8))KLFL(32./M) | 6 (32- /) = d (32 - / + 1)

en / = 9 + 31;

B (0) = (a (1) WDGo) OFi (1)

2.2.4. Obtenido después de 32 ciclos de operación de llenado, los accionamientos W y N 2 constituyen un bloque de datos abiertos.

To = (fli (O), a 2 (0), ..., Az 2 (0) "6, (0), 6 2 (0), ..., 6 32 (0)), correspondiente a a bloque de datos cifrados, mientras que el valor de o, (0) el bloque 7o corresponde al contenido del 1er bit yV, el valor 02 (0) corresponde

P. 8 GOST 28147-89

corresponde al contenido del segundo dígito N \, etc., el valor Dz2 (0) corresponde al contenido del 32º dígito de N \; el valor 6j (0) corresponde al contenido del 1er dígito; el valor ^ (0) corresponde al contenido del 2do dígito de N2, etc., el valor £ zr (0) corresponde al contenido del 32do dígito de N2-

El resto de los bloques de datos cifrados se descifran de la misma forma.

2.3. El algoritmo de cifrado en el modo de reemplazo simple de un bloque de 64 bits Г 0 se indica con А у, es decir,

Una (T 0) = A (una (0), segundo (0)) = (una (32), segundo (32)) = T w.

2.4. Se permite utilizar el modo de sustitución simple para cifrar (descifrar) datos sólo en los casos especificados en la cláusula 1.7.

3. MODO JUEGO

3.1. Cifrado de datos abiertos en modo gamma

3.1.1. El criptocircuito que implementa el algoritmo de cifrado en el modo gamma tiene la forma que se muestra en la Fig.3.

Los datos abiertos, divididos en bloques de la serie 64 T \) \ 7), 2) ..., 7)) m ", 1 7 [) M), se cifran en el modo gamma mediante el módulo 2 de suma bit a bit en el SL / 5 sumador con la escala del cifrado G w, que se genera en bloques de 64 bits, es decir

G _ / L1) L2) Lm-1) LM) \

"ill V 1 sh e * sh *" "Sh" "* * *" 111 / "

donde M está determinado por el volumen de datos cifrados.

Tjj) - Y-ésimo bloque de 64 bits, / "el número de dígitos binarios en el bloque 7J) M) puede ser inferior a 64, mientras que la parte de la gama de cifrado no utilizada para el cifrado del bloque Г \ ^] se descarta.

3.1.2. Se ingresan 256 bits de la clave en la RAM. Se introduce una secuencia binaria de 64 bits (ráfaga sincronizada) S = (5 * 1, S 2, ..., 5 ^ 4) en las unidades iVj, N 2, que es el llenado inicial de estas unidades para el siguiente generación de bloques MB del cifrado gamma. Synchro-package se introduce en jV | y Л ^ para que el valor 5 [se ingrese en el 1er bit de UU), el valor de S 2 se ingrese en el 2do bit de N \, etc., el valor ^ se ingrese en el 32º bit 7V |; el valor de S33 se ingresa en el primer bit de N 2, el valor 4S34 se ingresa en el segundo bit de N 2, y así sucesivamente, el valor se ingresa en el 32º bit de N 2.

3.1.3. El llenado inicial de las unidades / Vj y N 2 (synchro-burst 5) se cifra en el modo de reemplazo simple de acuerdo con

La historia de este cifrado es mucho más antigua. El algoritmo que más tarde se convirtió en la base del estándar nació, presumiblemente, en las entrañas de la Octava Dirección Principal de la KGB de la URSS (ahora en la estructura del FSB), probablemente en uno de los institutos de investigación cerrados bajo su dirección. jurisdicción, probablemente en la década de 1970 como parte de proyectos para crear implementaciones de software y hardware del cifrado para varias plataformas informáticas.

Desde el momento en que se publicó el GOST, tenía un sello restrictivo "Para uso oficial", y formalmente el código no se declaró "totalmente abierto" hasta mayo de 1994. El historial de la creación del cifrado y los criterios para los desarrolladores a partir de 2010 no se han publicado.

Descripción

GOST 28147-89: cifrado en bloque con una clave de 256 bits y 32 ciclos de conversión, que opera en bloques de 64 bits. La base del algoritmo de cifrado es la red de Feistel. Hay cuatro modos de funcionamiento de GOST 28147-89:

  • modo de inserción de imitación.

Modo de reemplazo fácil

Para el cifrado en este modo, el texto sin formato se divide primero en dos mitades (bits menos significativos - A, bits más significativos - B). En el i-ésimo ciclo, se utiliza la subclave K i:

(= binario "exclusivo o")

Para generar subclaves, la clave original de 256 bits se divide en ocho bloques de 32 bits: K 1 ... K 8.

Las claves K 9 ... K 24 son una repetición cíclica de las claves K 1 ... K 8 (numeradas desde los bits menos significativos hasta los más significativos). Las teclas K 25… K 32 son las teclas K 8… K 1.

Después de ejecutar las 32 rondas del algoritmo, los bloques A 33 y B 33 se pegan (tenga en cuenta que el bit más significativo se convierte en A 33 y el bit menos significativo es B 33); el resultado es el resultado del trabajo del algoritmo.

El descifrado se realiza de la misma forma que el cifrado, pero el orden de las subclaves Ki se invierte.

Función se calcula de la siguiente manera:

A i y K i se agregan módulo 2 32.

El resultado se divide en ocho subsecuencias de 4 bits, cada una de las cuales va a la entrada de su propia nodo de tabla de reemplazo(en orden ascendente de precedencia de bits), llamado a continuación Bloque en S... El número total de cajas S de GOST es ocho, es decir, tantas como subsecuencias. Cada Bloque en S es una permutación de números del 0 al 15. La primera subsecuencia de 4 bits va a la entrada del primer S-box, la segunda va a la entrada del segundo, y así sucesivamente.

Si Bloque en S tiene este aspecto:

1, 15, 13, 0, 5, 7, 10, 4, 9, 2, 3, 14, 6, 11, 8, 12

y en la entrada del bloque S 0, entonces la salida será 1, si es 4, entonces la salida será 5, si la entrada es 12, entonces la salida será 6, etc.

Las salidas de las ocho cajas S se concatenan en una palabra de 32 bits, luego la palabra completa se desplaza cíclicamente hacia la izquierda (MSB) en 11 bits.

El modo de intercambio simple tiene las siguientes desventajas:

  • Solo se puede utilizar para cifrar texto sin formato con una longitud de múltiplos de 64 bits
  • Al cifrar bloques idénticos de texto sin formato, se obtienen bloques idénticos de texto cifrado, que pueden proporcionar cierta información a un criptoanalista.

El texto de la norma indica que el suministro de llenado de nodos de reemplazo (cajas S) se realiza de la manera prescrita, es decir, por el desarrollador del algoritmo. La comunidad de desarrolladores de CIPF rusos ha acordado los nodos de reemplazo utilizados en Internet, consulte RFC 4357.

Ventajas de GOST

  • la inutilidad de un ataque de fuerza (los ataques XSL no se tienen en cuenta, ya que su efectividad no está completamente probada en este momento);
  • eficiencia de implementación y, en consecuencia, alto rendimiento en computadoras modernas.
  • la presencia de protección contra la imposición de datos falsos (desarrollo de un inserto de imitación) y el mismo ciclo de cifrado en los cuatro algoritmos GOST.

Criptoanálisis

Se cree (ver, por ejemplo, Vitaly V. Shorin, Vadim V. Jelezniakov y Ernst M. Gabidulin: Criptoanálisis lineal y diferencial del GOST ruso) que GOST es resistente a métodos tan ampliamente utilizados como el criptoanálisis lineal y diferencial. El orden inverso del uso de claves en las últimas ocho rondas proporciona protección contra ataques de deslizamiento y ataques de reflexión.

En mayo de 2011, el conocido criptoanalista Nicolas Courtois demostró la existencia de un ataque a este cifrado, que tiene una complejidad de 2 8 (256) veces menor que la complejidad de una búsqueda directa por fuerza bruta, siempre que haya 2 64 abiertos. -texto / pares de texto cerrado. Este ataque no se puede llevar a cabo en la práctica debido a su complejidad computacional demasiado alta. Además, el conocimiento de 264 pares de texto plano / texto cerrado obviamente permite leer textos cifrados sin siquiera calcular la clave. La mayoría de los otros trabajos también describen ataques que son aplicables solo bajo ciertos supuestos, como cierto tipo de claves o tablas de reemplazo, alguna modificación del algoritmo original o que requieren cantidades de memoria o cálculo aún inalcanzables. La cuestión de si existen ataques prácticos que no aprovechan la debilidad de las claves individuales o de las tablas de reemplazo permanece abierta.

Crítica de GOST

Los principales problemas de GOST están asociados con lo incompleto del estándar en términos de generación de claves y tablas de reemplazo. Se cree que GOST tiene claves "débiles" y tablas de sustitución, pero el estándar no describe los criterios de selección y selección de las "débiles". Además, el estándar no especifica un algoritmo para generar tablas de sustitución (cajas S). Por un lado, puede tratarse de información secreta adicional (además de la clave) y, por otro lado, plantea una serie de problemas:

  • es imposible determinar la fuerza criptográfica del algoritmo sin conocer de antemano la tabla de sustituciones;
  • las implementaciones de algoritmos de diferentes fabricantes pueden utilizar diferentes tablas de sustitución y pueden ser incompatibles entre sí;
  • la posibilidad de que las autoridades encargadas de la concesión de licencias de la Federación de Rusia proporcionen deliberadamente tablas de sustitución débiles;
  • el potencial (ausencia de una prohibición en el estándar) del uso de tablas de reemplazo en las que los nodos no son permutaciones, lo que puede conducir a una disminución extrema en la fuerza del cifrado.

En octubre de 2010, en una reunión del 1er Comité Técnico Conjunto de la Organización Internacional de Normalización (ISO / IEC JTC 1 / SC 27), se propuso la inclusión de GOST en el estándar internacional de cifrado de bloques ISO / IEC 18033-3. En este sentido, en enero de 2011 se formaron conjuntos fijos de nodos de reemplazo y se analizaron sus propiedades criptográficas. Sin embargo, GOST no se adoptó como estándar y las tablas de sustitución correspondientes no se publicaron.

Posibles aplicaciones

Notas (editar)

ver también

Enlaces

  • GOST 28147-89 “Sistemas de procesamiento de información. Protección criptográfica. Algoritmo de transformación criptográfica "
  • Sergey Panasenko Estándar de cifrado GOST 28147-89 (ruso) (15 de agosto de 2007). Consultado el 3 de agosto de 2012.
  • ... - un proyecto criptográfico de Cryptocom LLC para agregar algoritmos criptográficos rusos a la biblioteca OpenSSL. Archivado desde el original el 24 de agosto de 2011. Consultado el 16 de noviembre de 2008.

Literatura

  • V. V. Melnikov Protección de la información en sistemas informáticos. - M.: Finanzas y estadísticas, 1997.
  • Romanets Yu. V. Timofeev P. A., Shangin V. F. Protección de la información en sistemas y redes informáticos. - M.: Radio y comunicación, 1999.
  • Kharin Yu.S., Bernik V.I., Matveev G.V. Fundamentos matemáticos de la criptología. - Mn. : BSU, 1999.
  • Gerasimenko V.A., Malyuk A.A. Fundamentos de seguridad de la información. - M .: MGIFI, 1997.
  • Leonov A.P., Leonov K.P., Frolov G.V. Seguridad de las tecnologías de oficina y banca automatizada. - Mn. : Nat. libro Cámara de Bielorrusia, 1996.
  • Invierno V. M. Moldovyan A. A., Moldovyan N. A. Redes informáticas y protección de la información transmitida. - SPb. : SPbGU, 1998.
  • Schneier B. 14.1 Algoritmo GOST 28147-89 // Criptografía aplicada. Protocolos, algoritmos, textos fuente en C = Criptografía aplicada. Protocolos, algoritmos y código fuente en C. - M .: Triumph, 2002 .-- S. 373-377. - 816 p. - 3000 copias. - ISBN 5-89392-055-4
  • Popov, V., Kurepkin, I. y S. Leontiev Algoritmos criptográficos adicionales para usar con algoritmos GOST 28147-89, GOST R 34.10-94, GOST R 34.10-2001 y GOST R 34.11-94 // RFC 4357... - IETF, enero de 2006.

Fundación Wikimedia. 2010.

Algoritmo GOST 28147-89

GOST 28147-89: el estándar soviético y ruso para el cifrado simétrico, introducido en 1990, también es un estándar CIS. El nombre completo es “GOST 28147-89 Sistemas de procesamiento de información. Protección criptográfica. Algoritmo de transformación criptográfica ".

Arroz. 4.

Algoritmo de cifrado en bloque. Cuando se utiliza el método de cifrado con gamma, puede realizar las funciones de un algoritmo de cifrado de flujo. GOST 28147-89: cifrado en bloque con una clave de 256 bits y 32 ciclos de conversión, que opera en bloques de 64 bits. La base del algoritmo de cifrado es la red de Feistel. Hay cuatro modos de funcionamiento de GOST 28147-89: reemplazo simple, radiación gamma, radiación gamma con retroalimentación y el modo de generar un inserto de imitación.

Las ventajas del algoritmo: la inutilidad de un ataque de fuerza, la eficiencia de la implementación y, en consecuencia, el alto rendimiento en las computadoras modernas, la presencia de protección contra la imposición de datos falsos (generación de un inserto de imitación) y el mismo ciclo de cifrado en los cuatro algoritmos GOST, una clave más grande en comparación con el algoritmo DESX.

Desventajas del algoritmo: Los principales problemas de GOST están relacionados con el carácter incompleto del estándar en términos de generación de claves y tablas de reemplazo. Se cree que GOST tiene claves "débiles" y tablas de sustitución, pero el estándar no describe los criterios de selección y selección de las "débiles". Además, el estándar no especifica un algoritmo para generar tablas de sustitución (cajas S). Por un lado, esto puede ser información secreta adicional (además de la clave), y por otro lado, plantea una serie de problemas: es imposible determinar la fuerza criptográfica de un algoritmo sin conocer la tabla de sustitución de antemano. ; las implementaciones de algoritmos de diferentes fabricantes pueden utilizar diferentes tablas de sustitución y pueden ser incompatibles entre sí; la posibilidad de que las autoridades encargadas de la concesión de licencias de la Federación de Rusia proporcionen deliberadamente tablas de sustitución débiles.

Ventajas de IDEA sobre análogos

En implementación de software en Intel486SX es dos veces más rápido en comparación con DES IDEA, lo que representa un aumento significativo en la velocidad, la longitud de la clave para IDEA es de 128 bits, frente a 56 bits para DES, que es una buena mejora frente a la enumeración de claves por fuerza bruta. La probabilidad de utilizar claves débiles es muy pequeña y asciende a 1/2 64. IDEA es más rápido que el algoritmo GOST 28147-89 (en la implementación de software en Intel486SX). El uso de IDEA en modos de cifrado paralelo en procesadores Pentium III y Pentium MMX le permite obtener altas velocidades. En comparación con los finalistas de AES, IDEA de 4 vías es solo un poco más lento que RC6 y Rijndael en Pentium II, pero más rápido que Twofish y MARS. Pentium III 4-way IDEA es incluso más rápido que RC6 y Rijndael. La ventaja es también un buen conocimiento y resistencia a herramientas de criptoanálisis conocidas.

Algoritmo de cifrado GOST 28147-89, su uso e implementación de software para computadoras en la plataforma Intel x86.


Andrey Vinokurov

Descripción del algoritmo.

Términos y designaciones.

La descripción del estándar de cifrado de la Federación de Rusia está contenida en un documento muy interesante titulado "El algoritmo de transformación criptográfica GOST 28147-89". El hecho de que en su nombre en lugar del término "cifrado" aparezca un concepto más general " transformación criptográfica "No es en absoluto accidental. Además de varios procedimientos de cifrado estrechamente relacionados, el documento describe un algoritmo para generar inserciones de imitación ... Este último no es más que una combinación de control criptográfico, es decir, un código generado a partir de los datos originales utilizando una clave secreta para el propósito imitoproteccion o proteger sus datos de cambios no autorizados.

En diferentes pasos de los algoritmos GOST, los datos sobre los que operan se interpretan y utilizan de diferentes maneras. En algunos casos, los elementos de datos se tratan como matrices de bits independientes, en otros casos como un entero sin signo y en otros como un elemento complejo con una estructura, que consta de varios elementos más simples. Por tanto, para evitar confusiones, es necesario acordar la notación utilizada.

Los elementos de datos de este artículo se designan con letras mayúsculas en cursiva (por ejemplo, X). A través de | X| indica el tamaño del artículo X en bits. Por lo tanto, si interpreta el elemento de datos X como un número entero no negativo, puede escribir la siguiente desigualdad:.

Si un elemento de datos consta de varios elementos más pequeños, este hecho se indica de la siguiente manera: X=(X 0 ,X 1 ,…,X n –1)=X 0 ||X 1 ||…||X n-una . El procedimiento para combinar varios elementos de datos en uno se llama concatenación datos y denotado por el símbolo "||". Naturalmente, para los tamaños de los elementos de datos, se debe cumplir la siguiente relación: | X|=|X 0 |+|X 1 |+…+|X n-1 |. Cuando se especifican elementos de datos complejos y se concatenan operaciones, los elementos de datos constituyentes se enumeran en orden ascendente de precedencia. En otras palabras, si interpreta un elemento compuesto y todos los elementos de datos incluidos en él como enteros sin signo, puede escribir la siguiente igualdad:

En el algoritmo, un elemento de datos se puede interpretar como una matriz de bits individuales; en este caso, los bits se indican con la misma letra que la matriz, pero en una versión en minúsculas, como se muestra en el siguiente ejemplo:

X=(X 0 ,X 1 ,…,x n –1)=X 0 +2 1 X 1 +…+2 norte-una · x n –1 .

Por lo tanto, si prestó atención, se adoptó el llamado GOST. Numeración de bits "little-endian", es decir dentro de las palabras de datos de múltiples bits, los bits individuales y sus grupos con números más bajos son menos significativos. Esto se establece directamente en la cláusula 1.3 del estándar: "Al sumar y desplazar vectores binarios cíclicos, los bits más significativos son los bits de las unidades con números grandes". Además, las cláusulas de la norma 1.4, 2.1.1 y otras prescriben comenzar a llenar los registros de almacenamiento del dispositivo de cifrado virtual con datos de los inferiores, es decir, descargas menos significativas. En la arquitectura del microprocesador Intel x86 se adopta exactamente el mismo orden de numeración, por lo que no se requieren permutaciones adicionales de los bits dentro de las palabras de datos cuando se implementa el cifrado en el software de esta arquitectura.

Si se realiza alguna operación que tiene un significado lógico en los elementos de datos, entonces se supone que esta operación se realiza en los bits correspondientes de los elementos. En otras palabras A B=(a 0 B 0 ,a 1 B 1 ,…,un –1 b n–1), donde norte=|A|=|B|, y el símbolo "" denota una operación lógica binaria arbitraria; generalmente se refiere a una operación exclusivo o , también es la operación de suma módulo 2:

La lógica de la construcción de un cifrado y la estructura de la información clave de GOST.

Si estudia detenidamente el GOST 28147–89 original, notará que contiene una descripción de los algoritmos de varios niveles. En la parte superior se encuentran prácticos algoritmos diseñados para cifrar matrices de datos y generar un inserto de imitación para ellos. Todos ellos se basan en tres algoritmos de nivel inferior, llamados en el texto de GOST ciclos ... Estos algoritmos fundamentales se denominan en este artículo ciclos base para distinguirlos de todos los demás bucles. Tienen los siguientes nombres y designaciones, estas últimas se dan entre paréntesis y su significado se explicará más adelante:

  • ciclo de cifrado (32-Ç);
  • ciclo de descifrado (32-P);
  • ciclo de producción del inserto imitador (16-З).

A su vez, cada uno de los ciclos básicos es una repetición múltiple de un solo procedimiento, llamado a ser definido más adelante en este trabajo. el paso principal de la transformación criptográfica .

Por lo tanto, para comprender GOST, debe comprender las siguientes tres cosas:

  • Qué ha pasado paso principal transformaciones criptográficas;
  • cómo los ciclos básicos se componen de los pasos básicos;
  • como de tres ciclos básicos Se suman todos los algoritmos prácticos de GOST.

Antes de pasar a estudiar estos temas, debe hablar sobre la información clave que utilizan los algoritmos GOST. De acuerdo con el principio de Kirchhoff, que es satisfecho por todos los cifrados modernos conocidos por el público en general, es su secreto lo que garantiza el secreto del mensaje cifrado. En GOST, la información clave consta de dos estructuras de datos. Además de la actual llave requerido para todos los cifrados, también contiene tabla de sustitución ... A continuación se muestran las principales características de las estructuras clave de GOST.

El paso principal de la transformación criptográfica.

El paso principal de una transformación criptográfica es esencialmente un operador que define la transformación de un bloque de datos de 64 bits. Un parámetro adicional de este operador es un bloque de 32 bits, que se utiliza como cualquier elemento clave. El algoritmo de paso principal se muestra en la Figura 1.


Figura 1. Diagrama del paso principal de la cripto-transformación del algoritmo GOST 28147-89.

A continuación se muestran las explicaciones del algoritmo de paso principal:

Paso 0

  • norte- el bloque de datos de 64 bits convertido, durante la ejecución del paso, su menos significativo ( norte 1) y senior ( norte 2) las partes se tratan como enteros individuales de 32 bits sin signo. Por lo tanto, uno puede escribir N =(norte 1 ,norte 2).
  • X- elemento clave de 32 bits;

Paso 1

Adición clave. La mitad inferior del bloque convertido se agrega módulo 2 32 con el elemento clave utilizado en el paso, el resultado se pasa al siguiente paso;

Paso 2

Reemplazo de bloque. El valor de 32 bits obtenido en el paso anterior se interpreta como una matriz de ocho bloques de código de 4 bits: S =(S 0 , S 1 , S 2 , S 3 , S 4 , S 5 , S 6 , S 7) y S 0 contiene los 4 menos significativos, y S 7-4 bits más significativos S.

Además, el valor de cada uno de los ocho bloques se reemplaza por uno nuevo, que se selecciona de acuerdo con la tabla de sustitución de la siguiente manera: valor del bloque Si cambios a Si-th elemento en orden (numeración desde cero) I th nodo de reemplazo (es decir I-ésima línea de la tabla de sustituciones, la numeración también es de cero). En otras palabras, un elemento de la tabla de sustitución con un número de fila igual al número del bloque reemplazado y un número de columna igual al valor del bloque reemplazado como un entero no negativo de 4 bits se selecciona como reemplazo del valor de bloque. Por lo tanto, el tamaño de la tabla de sustitución queda claro: el número de filas es igual al número de elementos de 4 bits en un bloque de datos de 32 bits, es decir, ocho, y el número de columnas es igual al número de diferentes valores de un bloque de datos de 4 bits, que se sabe que es 2 4, dieciséis.

Paso 3

Desplazamiento cíclico 11 bits a la izquierda. El resultado del paso anterior se desplaza cíclicamente 11 bits hacia los bits más significativos y se transfiere al siguiente paso. En el diagrama del algoritmo, el símbolo denota la función de desplazamiento cíclico de su argumento 11 bits hacia la izquierda, es decir, hacia los dígitos superiores.

Etapa 4

Suma bit a bit: el valor obtenido en el paso 3 se suma módulo 2 bit a bit con la mitad superior del bloque convertido.

Paso 5

Desplazamiento a lo largo de la cadena: la parte inferior del bloque convertido se desplaza al lugar del anterior y el resultado del paso anterior se coloca en su lugar.

Paso 6

El valor resultante del bloque transformado se devuelve como resultado de la ejecución del algoritmo del paso principal de la transformación criptográfica.

Ciclos básicos de transformaciones criptográficas.

Como se señaló al comienzo de este artículo, GOST se refiere a la clase de cifrado de bloques, es decir, la unidad de procesamiento de información en él es un bloque de datos. Por lo tanto, es bastante lógico esperar que defina algoritmos para transformaciones criptográficas, es decir, para cifrado, descifrado y "contabilidad" en la combinación de control de un bloque de datos. Son estos algoritmos los que se llaman ciclos básicos GOST, que enfatiza su importancia fundamental para la construcción de este cifrado.

Los bucles básicos se construyen a partir de Pasos principales la transformación criptográfica discutida en la sección anterior. Durante el paso principal, solo se utiliza un elemento clave de 32 bits, mientras que la clave GOST contiene ocho de esos elementos. Por lo tanto, para que la clave se utilice por completo, cada uno de los bucles base debe ejecutar repetidamente el paso principal con sus diversos elementos. Al mismo tiempo, parece bastante natural que en cada ciclo básico todos los elementos de la clave se utilicen el mismo número de veces; por razones de la fuerza del cifrado, este número debería ser más de uno.

Todas las suposiciones hechas anteriormente, basadas simplemente en el sentido común, resultaron ser correctas. Los bucles básicos constan de varias ejecuciones paso principal utilizan diferentes elementos clave y se diferencian entre sí solo en el número de repeticiones de pasos y en el orden en que se utilizan los elementos clave. A continuación se muestra el orden de los diferentes bucles.

Ciclo de cifrado 32-Z:

K 0 ,K 1 ,K 2 ,K 3 ,K 4 ,K 5 ,K 6 ,K 7 ,K 0 ,K 1 ,K 2 ,K 3 ,K 4 ,K 5 ,K 6 ,K 7 ,K 0 ,K 1 ,K 2 ,K 3 ,K 4 ,K 5 ,K 6 ,K 7 ,K 7 ,K 6 ,K 5 ,K 4 ,K 3 ,K 2 ,K 1 ,K 0 .


Figura 2a. Diagrama de ciclo de cifrado 32-Z

Ciclo de descifrado 32-P:

K 0 ,K 1 ,K 2 ,K 3 ,K 4 ,K 5 ,K 6 ,K 7 ,K 7 ,K 6 ,K 5 ,K 4 ,K 3 ,K 2 ,K 1 ,K 0 ,K 7 ,K 6 ,K 5 ,K 4 ,K 3 ,K 2 ,K 1 ,K 0 ,K 7 ,K 6 ,K 5 ,K 4 ,K 3 ,K 2 ,K 1 ,K 0 .


Figura 2b. Diagrama del ciclo de descifrado 32-P

Ciclo de producción del inserto imitador 16-З:

K 0 ,K 1 ,K 2 ,K 3 ,K 4 ,K 5 ,K 6 ,K 7 ,K 0 ,K 1 ,K 2 ,K 3 ,K 4 ,K 5 ,K 6 ,K 7 .


Figura 2c. Esquema del ciclo de producción del inserto imitador 16-З.

Cada uno de los ciclos tiene su propia designación alfanumérica correspondiente al patrón " n-X ", donde el primer elemento de la notación ( norte), especifica el número de repeticiones del paso principal del ciclo y el segundo elemento de la notación ( X), letra, especifica el orden de cifrado ("Z") o descifrado ("P") en el uso de elementos clave. Esta orden necesita aclaraciones adicionales:

El ciclo de descifrado debe ser el inverso del ciclo de cifrado, es decir, la aplicación secuencial de estos dos ciclos a un bloque arbitrario debe dar como resultado el bloque original, que se refleja en la siguiente relación: C 32-P ( C 32-З ( T))= T, donde T- un bloque de datos arbitrario de 64 bits, C X ( T) - el resultado del bucle X encima del bloque de datos T... Para cumplir esta condición para algoritmos como GOST, es necesario y suficiente que el orden de uso de elementos clave por los ciclos correspondientes sea mutuamente inverso. Es fácil verificar la validez de la condición registrada para el caso en consideración comparando las secuencias anteriores para los ciclos 32-Ç y 32-Р. Una consecuencia interesante se sigue de lo dicho: la propiedad de un ciclo de ser inverso a otro ciclo es recíproca, es decir, el ciclo 32-Ç es inverso con respecto al ciclo 32-Р. En otras palabras, el cifrado del bloque de datos se puede realizar teóricamente con un ciclo de descifrado, en cuyo caso el descifrado del bloque de datos debe realizarse con un ciclo de cifrado. Cualquiera de los dos ciclos mutuamente inversos se puede usar para el cifrado, luego el segundo debe usarse para descifrar los datos, pero el estándar GOST 28147-89 asigna roles a los ciclos y no le da al usuario el derecho de elegir en este asunto.

El ciclo de generación de un inserto de imitación es dos veces más corto que los ciclos de cifrado, el orden de uso de los elementos clave en él es el mismo que en los primeros 16 pasos del ciclo de cifrado, lo cual es fácil de verificar al examinar las secuencias anteriores. por lo tanto, este orden en la designación del ciclo está codificado por la misma letra "Z".

Los diagramas de ciclos básicos se muestran en las Figuras 2a-c. Cada uno de ellos toma como argumento y devuelve como resultado un bloque de datos de 64 bits indicado en los diagramas norte... Símbolo de paso ( norte,X) denota la ejecución del paso principal de la cripto-transformación para el bloque de datos norte usando elemento clave X... Existe una diferencia más entre los ciclos de encriptación e imitación de inserción, no mencionada anteriormente: al final de los ciclos de encriptación básicos, las partes superior e inferior del bloque de resultados se invierten, esto es necesario para su mutua reversibilidad.

Modos de cifrado básicos.

GOST 28147-89 proporciona los siguientes tres modos de cifrado de datos:

  • reemplazo simple,
  • juegos de azar
  • gammament con retroalimentación,

y un modo adicional para generar un inserto simulado.

En cualquiera de estos modos, los datos se procesan en bloques de 64 bits, en los que se divide la matriz en proceso de transformación criptográfica, razón por la cual GOST se refiere a cifrados en bloque. Sin embargo, en dos modos gamma, es posible procesar un bloque de datos incompleto de menos de 8 bytes de tamaño, lo cual es esencial cuando se cifran matrices de datos con un tamaño arbitrario, que puede no ser un múltiplo de 8 bytes.

Antes de proceder a considerar algoritmos específicos para transformaciones criptográficas, es necesario aclarar la notación utilizada en los diagramas en las siguientes secciones:

T Oh T w - matrices de datos abiertos y cifrados, respectivamente;

, – I- Bloques de 64 bits en orden de datos abiertos y cifrados, respectivamente: , , el último bloque puede estar incompleto :;

norte- el número de bloques de 64 bits en la matriz de datos;

C X - función de convertir un bloque de datos de 64 bits según el algoritmo del ciclo básico "X".

Ahora describamos los principales modos de cifrado:

Reemplazo fácil.

El cifrado en este modo consiste en aplicar el ciclo 32-Ç a bloques de datos abiertos, descifrado - ciclo 32-Р a bloques de datos cifrados. Este es el modo más simple; los bloques de datos de 64 bits se procesan en él de forma independiente entre sí. Los diagramas de algoritmos de cifrado y descifrado en el modo de reemplazo simple se muestran en las Figuras 3a yb, respectivamente, son triviales y no necesitan ningún comentario.


Dibujo. 3a. Algoritmo de cifrado de datos en modo de fácil reemplazo


Dibujo. 3b. Algoritmo de descifrado de datos en modo de reemplazo simple

El tamaño de la matriz de datos abiertos o cifrados, sujetos a cifrado o descifrado, respectivamente, debe ser un múltiplo de 64 bits: | T o | = | T w | = 64 norte , una vez completada la operación, el tamaño de la matriz de datos recibidos no cambia.

El modo de cifrado Simple Swap tiene las siguientes características:

  • Dado que los bloques de datos se cifran independientemente entre sí y de su posición en la matriz de datos, cifrar dos bloques de texto sin formato idénticos da como resultado bloques de texto cifrado idénticos y viceversa. La propiedad indicada permitirá al criptoanalista llegar a una conclusión sobre la identidad de los bloques de los datos iniciales, si se encuentran bloques idénticos en la matriz de datos cifrados, lo cual es inaceptable para un cifrado serio.
  • Si la longitud de la matriz de datos cifrados no es un múltiplo de 8 bytes o 64 bits, surge el problema de cómo y cómo complementar el último bloque de datos incompleto de la matriz a 64 bits completos. Esta tarea no es tan fácil como parece a primera vista. Soluciones obvias como "complementar un bloque incompleto con cero bits" o, de manera más general, "complementar un bloque incompleto con una combinación fija de cero y uno bits" pueden, bajo ciertas condiciones, dar al criptoanalista la capacidad de usar métodos de enumeración para determinar el contenido de este bloque más incompleto, y este hecho significa una disminución en el cifrado de fuerza. Además, la longitud del texto cifrado cambiará, aumentando al múltiplo entero más cercano de 64 bits, lo que a menudo no es deseable.

A primera vista, las características anteriores hacen que sea casi imposible usar el modo de reemplazo simple, porque solo se puede usar para cifrar matrices de datos con un tamaño múltiple de 64 bits que no contienen bloques repetidos de 64 bits. Parece que para cualquier dato real, es imposible garantizar el cumplimiento de las condiciones especificadas. Este es casi el caso, pero hay una excepción muy importante: recuerde que la clave es de 32 bytes y la tabla de reemplazo es de 64 bytes. Además, la presencia de bloques repetidos de 8 bytes en una clave o tabla de reemplazo indicará su muy mala calidad, por lo que no puede haber tal repetición en elementos clave reales. Por lo tanto, descubrimos que el modo de reemplazo simple es bastante adecuado para encriptar información clave, especialmente porque otros modos son menos convenientes para este propósito, ya que requieren un elemento de datos de sincronización adicional: un mensaje de sincronización (consulte la siguiente sección). Nuestra suposición es correcta, GOST prescribe usar el modo de reemplazo simple exclusivamente para encriptar datos clave.

Engomado.

¿Cómo puede deshacerse de las deficiencias del modo Easy Swap? Para ello, es necesario posibilitar la encriptación de bloques con un tamaño inferior a 64 bits y asegurarse de que el bloque de texto cifrado dependa de su número, es decir, aleatorizar proceso de cifrado. En GOST, esto se logra de dos formas diferentes en dos modos de cifrado, proporcionando jugar . Engomado - se trata de la imposición (eliminación) de una gama criptográfica sobre datos abiertos (cifrados), es decir, una secuencia de elementos de datos generados mediante algún algoritmo criptográfico para obtener datos cifrados (abiertos). Para la imposición de gamma durante el cifrado y su eliminación durante el descifrado, deben utilizarse operaciones binarias mutuamente inversas, por ejemplo, módulo de suma y resta 64 para bloques de datos de 64 bits. En GOST, para este propósito, se utiliza la operación de adición bit a bit módulo 2, ya que es la inversa de sí misma y, además, se implementa más fácilmente en hardware. Gamma resuelve los dos problemas anteriores: en primer lugar, todos los elementos gamma son diferentes para matrices cifradas reales y, por lo tanto, el resultado de cifrar incluso dos bloques idénticos en una matriz de datos será diferente. En segundo lugar, aunque los elementos gamma se generan en porciones iguales de 64 bits, se puede utilizar una parte de dicho bloque con un tamaño igual al tamaño del bloque cifrado.

Ahora vayamos directamente a la descripción del modo gamma. La gamma para este modo se obtiene de la siguiente manera: con la ayuda de un determinado generador algorítmico de secuencia numérica recurrente (RNG), se generan bloques de datos de 64 bits, que luego se someten a conversión en un ciclo de 32-Z, es decir, cifrado en el modo de reemplazo simple, como resultado, se obtienen bloques gamma. Debido a que la imposición y eliminación de gamma se realiza utilizando la misma operación de bitwise exclusivo o, los algoritmos de cifrado y descifrado en el modo gamma son idénticos, su esquema general se muestra en la Figura 4.

RGPC utilizado para generar gamma es una función recurrente: - elementos de una secuencia recurrente, F- función de conversión. En consecuencia, inevitablemente surge la pregunta sobre su inicialización, es decir, sobre el elemento, en realidad este elemento de datos es un parámetro de algoritmo para los modos gamma, en los diagramas se designa como S, y se llama en criptografía paquete sincronizado , y en nuestro GOST - llenado inicial uno de los registros del cifrador. Por ciertas razones, los desarrolladores de GOST decidieron usar para la inicialización del RGFC no el synchro-parcel en sí, sino el resultado de su transformación en el ciclo 32-З: ... La secuencia de elementos que genera el RGHR depende enteramente de su llenado inicial, es decir, los elementos de esta secuencia son función de su número y del llenado inicial del RGHR: donde f yo(X)=F(f yo –1 (X)), F 0 (X)=X... Teniendo en cuenta la transformación por el algoritmo de reemplazo simple, también se agrega una dependencia de la clave:

donde YoI-ésimo elemento de gama, K- llave.

Por lo tanto, la secuencia de elementos gamma que se utilizará en el modo gamma está determinada únicamente por los datos clave y la secuencia de sincronización. Naturalmente, para la reversibilidad del procedimiento de cifrado, se debe utilizar el mismo mensaje sincronizado en los procesos de cifrado y descifrado. Del requisito de unicidad de la gama, cuya falla conduce a una disminución catastrófica en la fuerza del cifrado, se deduce que para cifrar dos matrices de datos diferentes en la misma clave, es necesario garantizar el uso de diferentes mensajes sincronizados. Esto lleva a la necesidad de almacenar o transmitir un mensaje de sincronización a través de canales de comunicación junto con datos cifrados, aunque en algunos casos especiales se puede predefinir o calcular de una manera especial si se excluye el cifrado de dos matrices en una clave.

Ahora echemos un vistazo más de cerca al RGFC utilizado en GOST para generar elementos gamma. En primer lugar, cabe señalar que no es necesario proporcionar ninguna característica estadística de la secuencia de números generada. El RGFC fue diseñado por los desarrolladores de GOST en base a la necesidad de cumplir las siguientes condiciones:

  • el período de repetición de la secuencia de números generada por el RGPC no debe diferir mucho (en porcentaje) del valor máximo posible de 2 64 para un tamaño de bloque dado;
  • los valores adyacentes generados por el RGPC deben diferir entre sí en cada byte, de lo contrario se simplificará la tarea del criptoanalista;
  • RGFC debería ser bastante simple de implementar tanto en hardware como en software en los tipos más comunes de procesadores, la mayoría de los cuales se sabe que son de 32 bits.

Sobre la base de los principios enumerados, los creadores de GOST han diseñado un RGFC muy exitoso, que tiene las siguientes características:

Donde C 0 =1010101 16 ;

Donde C 1 =1010104 16 ;

El subíndice en la notación de un número significa su sistema numérico, por lo que las constantes utilizadas en este paso se escriben en sistema numérico hexadecimal.

La segunda expresión necesita comentarios, ya que el texto de GOST contiene algo diferente :, con el mismo valor constante C una . Pero más adelante en el texto de la norma, se hace un comentario que, resulta, bajo la operación de tomar el resto módulo 2 32 –1 allí no significa lo mismo que en matemáticas. La diferencia es que según GOST (2 32 –1) modificación(2 32 –1) = (2 32 –1), no 0. De hecho, esto simplifica la implementación de la fórmula, y la expresión matemáticamente correcta se da arriba.

  • el período de repetición de la secuencia para la parte de orden inferior es 2 32, para la parte de orden superior 2 32 -1, para toda la secuencia el período es 2 32 (2 32 -1), la prueba de este hecho es bastante simple, consígalo usted mismo. La primera de las dos fórmulas se implementa en un comando, la segunda, a pesar de su aparente incomodidad, en dos comandos en todos los procesadores modernos de 32 bits: el primer comando es el módulo de adición habitual 32 con el almacenamiento del bit de acarreo, y el segundo comando agrega el bit de acarreo al valor recibido.

El esquema del algoritmo de cifrado en el modo gamma se muestra en la Figura 4, a continuación se encuentran las explicaciones del esquema:


Figura 4. Algoritmo de cifrado (descifrado) de datos en modo gamma.

Paso 0

Define los datos iniciales para el paso principal de la transformación criptográfica:

  • T o (w) - una matriz de datos abiertos (cifrados) de tamaño arbitrario, sujetos al procedimiento de cifrado (descifrado), durante el procedimiento, la matriz se transforma en porciones de 64 bits;
  • S paquete sincronizado , Elemento de datos de 64 bits necesario para inicializar el generador de gamma;

Paso 1

La transformación inicial del mensaje sincronizado, realizada para “aleatorizarlo”, es decir, para eliminar las regularidades estadísticas presentes en él, el resultado se utiliza como llenado inicial del RGFC;

Paso 2

Un paso del funcionamiento del RGPC, que implementa su algoritmo recurrente. Durante este paso, el mayor ( S 1) y menores ( S 0) partes de la secuencia de datos se generan independientemente unas de otras;

Paso 3

Engomado. El siguiente elemento de 64 bits, generado por el RGPC, se somete al procedimiento de cifrado en un ciclo de 32-Z, el resultado se utiliza como un elemento gamma para el cifrado (descifrado) del siguiente bloque de datos abiertos (cifrados) del mismo tamaño.

Etapa 4

El resultado del algoritmo es una matriz de datos cifrada (descifrada).

Las siguientes son las características de gammapping como modo de encriptación:

  1. Los bloques idénticos en una matriz de datos abierta darán diferentes bloques de texto cifrado durante el cifrado, lo que ocultará el hecho de su identidad.
  2. Dado que la superposición de gamma se realiza bit a bit, el cifrado de un bloque de datos incompleto se logra fácilmente como el cifrado de los bits de ese bloque incompleto utilizando los bits correspondientes del bloque de gamma. Entonces, para encriptar un bloque incompleto de 1 bit, de acuerdo con el estándar, se debe usar el bit menos significativo del bloque gamma.
  3. El mensaje de sincronización utilizado en el cifrado debe transmitirse de alguna manera para su uso en el descifrado. Esto se puede lograr de las siguientes formas:
  • para almacenar o transmitir un mensaje de sincronización junto con una matriz de datos cifrados, lo que conducirá a un aumento en el tamaño de la matriz de datos durante el cifrado por el tamaño del mensaje de sincronización, es decir, en 8 bytes;
  • utilizar un valor de mensaje sincronizado predeterminado o generarlo sincrónicamente por una fuente y un receptor de acuerdo con una determinada ley, en este caso no hay cambio en el tamaño de la matriz de datos transmitidos o almacenados;

Ambos métodos se complementan, y en los raros casos en los que el primero, el más común de ellos, no funciona, se puede utilizar el segundo, el más exótico. El segundo método tiene mucha menos aplicación, ya que es posible predefinir la transmisión sincronizada solo si no se encripta conscientemente más de una matriz de datos en un conjunto dado de información clave, lo cual no es tan frecuente. Tampoco siempre es posible generar un mensaje sincronizado de forma sincrónica en el origen y el destino de la matriz de datos, ya que requiere un enlace estricto a algo en el sistema. Entonces, una idea aparentemente sensata de usar el número del mensaje transmitido como un mensaje sincronizado en el sistema para transmitir mensajes cifrados no es adecuada, ya que el mensaje puede perderse y no llegar al destinatario, en este caso habrá una desincronización. de los sistemas de cifrado de origen y receptor. Por lo tanto, en el caso considerado, no hay alternativa a transmitir un mensaje de sincronización junto con un mensaje cifrado.

Por otro lado, se puede citar el ejemplo opuesto. Supongamos que el cifrado de datos se utiliza para proteger la información en un disco y se implementa a un nivel bajo, para garantizar un acceso independiente, los datos están cifrados por sectores. En este caso, es imposible almacenar el mensaje de sincronización junto con los datos cifrados, ya que el tamaño del sector no se puede cambiar, pero se puede calcular en función del número de cabezal de lectura del disco, el número de pista (cilindro) y el sector. número en la pista. En este caso, el mensaje de sincronización está vinculado a la posición del sector en el disco, que difícilmente puede cambiar sin reformatear el disco, es decir, sin destruir los datos que contiene.

El modo gamma tiene otra característica interesante. En este modo, los bits de la matriz de datos se cifran de forma independiente entre sí. Por lo tanto, cada bit del texto cifrado depende del bit correspondiente del texto plano y, naturalmente, del número ordinal del bit en la matriz: ... De esto se deduce que cambiar el bit de texto cifrado al valor opuesto conducirá a un cambio similar al opuesto del bit de texto plano:

donde denota invertido con respecto a t valor de bit ().

Esta propiedad le da al atacante la capacidad, actuando sobre los bits del texto cifrado, para realizar cambios predecibles e incluso específicos en el texto plano correspondiente obtenido después de que ha sido descifrado sin poseer la clave secreta. Esto ilustra el hecho bien conocido en criptología de que el secreto y la autenticidad son propiedades diferentes sistemas criptográficos ... En otras palabras, las propiedades del criptosistema para proporcionar protección contra el conocimiento no autorizado del contenido del mensaje y la modificación no autorizada del mensaje son independientes y solo en algunos casos pueden superponerse. Esto significa que existen algoritmos criptográficos que brindan un cierto secreto de los datos encriptados y al mismo tiempo no protegen contra cambios y viceversa, aseguran la autenticidad de los datos y de ninguna manera limitan la posibilidad de familiarizarse con ellos. Por esta razón, la propiedad considerada del modo gamma no debe considerarse como su desventaja.

Engullir con comentarios.

Este modo es muy similar al modo gamma y se diferencia de él solo en el método de generación de elementos gamma: el siguiente elemento gamma se genera como resultado de la conversión de ciclo 32-Ç del bloque anterior de datos cifrados, y para cifrar el primer bloque de la matriz de datos, el elemento gamma se genera como resultado de la conversión de acuerdo con el mismo ciclo de envío sincronizado. Esto logra la participación del bloque: cada bloque de texto cifrado en este modo depende de los bloques de texto sin formato correspondientes y de todos los anteriores. Por lo tanto, este modo a veces se llama engomado con compromiso de bloque ... El hecho de que el bloque se enganche no tiene ningún efecto sobre la fuerza del cifrado.

El esquema de algoritmos para el descifrado y descifrado en el modo gamma con retroalimentación se muestra en la Figura 5 y, debido a su simplicidad, no necesita comentarios.


Figura 5. Algoritmo para el cifrado (descifrado) de datos en modo gamma con retroalimentación.

El cifrado en el modo gamma de circuito cerrado tiene las mismas características que el cifrado en el modo gamma normal, con la excepción del efecto de las distorsiones del texto cifrado en el texto sin formato correspondiente. A modo de comparación, anotemos las funciones de descifrado de bloques para ambos modos mencionados:

Engomado;

Engullir con retroalimentación;

Si en el modo gamma normal los cambios en ciertos bits del texto cifrado afectan solo a los bits correspondientes del texto sin formato, entonces en el modo gamma de bucle cerrado la imagen es algo más complicada. Como puede verse en la ecuación correspondiente, al descifrar un bloque de datos en modo gamma de bucle cerrado, el bloque de datos abierto depende de los bloques de datos cifrados correspondientes y anteriores. Por lo tanto, si introduce distorsiones en el bloque cifrado, luego del descifrado, se distorsionarán dos bloques de datos abiertos: el correspondiente y el siguiente, y las distorsiones en el primer caso tendrán el mismo carácter que en el modo gamma, y en el segundo caso, como en el modo de reemplazo simple. En otras palabras, en el bloque correspondiente de datos abiertos, se corromperán los mismos bits que en el bloque de datos encriptados, y en el siguiente bloque de datos abiertos todos los bits son independientes entre sí con probabilidad 1 / 2 cambiarán sus valores.

Desarrollo de un inserto simulado a una matriz de datos.

En las secciones anteriores, discutimos el impacto de la manipulación de datos cifrados en los datos públicos correspondientes. Hemos descubierto que al descifrar en modo de sobrescritura simple, el bloque correspondiente de datos abiertos resulta distorsionado de manera impredecible, y al descifrar un bloque en modo gamma, los cambios son predecibles. En el modo gamma de circuito cerrado, dos bloques se distorsionan, uno de forma predecible y el otro de forma impredecible. ¿Significa esto que, desde el punto de vista de la protección contra la intrusión de datos falsos, el modo gamma es malo y los modos gamma de intercambio simple y retroalimentación son buenos? - En ningún caso. Al analizar esta situación, es necesario tener en cuenta el hecho de que los cambios impredecibles en el bloque de datos descifrados solo se pueden detectar en el caso de redundancia de estos mismos datos, y cuanto mayor es el grado de redundancia, más probabilidades hay de que se produzca. detectar distorsión. Se produce una redundancia muy grande, por ejemplo, para textos en lenguajes naturales y artificiales; en este caso, el hecho de la distorsión se revela casi inevitablemente. Sin embargo, en otros casos, por ejemplo, al distorsionar imágenes de sonido digitalizadas comprimidas, simplemente obtenemos una imagen diferente que nuestro oído puede percibir. En este caso, la distorsión no se detectará, a menos que, por supuesto, no haya información a priori sobre la naturaleza del sonido. La conclusión aquí es la siguiente: dado que la capacidad de algunos modos de cifrado para detectar distorsiones introducidas en los datos cifrados se basa esencialmente en la presencia y el grado de redundancia de los datos cifrados, esta capacidad no es una propiedad inherente de los modos correspondientes y no puede considerarse como su ventaja.

Para resolver el problema de detectar distorsiones en una matriz de datos cifrados con una probabilidad determinada, GOST proporciona un modo adicional de transformación criptográfica: el desarrollo de un inserto de imitación. La inserción de imitación es una combinación de control que depende de datos abiertos e información de clave secreta. El propósito de usar un inserto simulado es detectar todos los cambios accidentales o deliberados en la matriz de información. El problema mencionado en el párrafo anterior se puede resolver con éxito agregando un inserto simulado a los datos cifrados. Para un atacante potencial, las siguientes dos tareas son prácticamente insolubles si no posee la clave:

  • cálculo de una inserción simulada para una determinada matriz abierta de información;
  • selección de datos abiertos para una tasa de imitación determinada;

En la Figura 6 se muestra un diagrama del algoritmo para generar un inserto simulado.


Figura 6. Algoritmo para generar un inserto simulado para una matriz de datos.

Una parte del bloque recibido en la salida se toma como un inserto de imitación, generalmente sus 32 bits menos significativos. Al elegir el tamaño del inserto de imitación, es necesario tener en cuenta que la probabilidad de imposición exitosa de datos falsos es igual a 2 - | I | para un intento de fuerza bruta, a menos que el atacante tenga a su disposición un método de fuerza bruta más eficaz que la simple conjetura. Cuando se utiliza un inserto de imitación de 32 bits, esta probabilidad es

Discusión de los algoritmos criptográficos GOST.

Estabilidad criptográfica de GOST.

A la hora de elegir un algoritmo criptográfico para utilizarlo en un desarrollo específico, uno de los factores determinantes es su resistencia, es decir, la resistencia a los intentos del enemigo por revelarlo. En un examen más detenido, la cuestión de la fuerza del cifrado se reduce a dos cuestiones interrelacionadas:

  • ¿Es posible revelar este cifrado?
  • si es así, cuán difícil es en la práctica;

Los cifrados que no se pueden revelar en absoluto se denominan absoluta o teóricamente estables. La existencia de tales cifrados está probada por el teorema de Shannon, pero el precio de esta fuerza es la necesidad de utilizar una clave no menor que el tamaño del mensaje en sí para cifrar cada mensaje. En todos los casos, a excepción de algunos especiales, este precio es excesivo, por lo que, en la práctica, se utilizan principalmente cifrados que no tienen fuerza absoluta. Por tanto, los esquemas de cifrado más comunes se pueden revelar en un tiempo finito o, más precisamente, en un número finito de pasos, cada uno de los cuales es alguna operación sobre números. Para ellos, lo más importante es el concepto de resiliencia práctica, que expresa la dificultad práctica de su divulgación. Una medida cuantitativa de esta dificultad puede ser el número de operaciones aritméticas y lógicas elementales que se deben realizar para descubrir el cifrado, es decir, para determinar el texto plano correspondiente a un texto cifrado dado con una probabilidad no menor a un valor dado. Al mismo tiempo, además de la matriz de datos descifrados, el criptoanalista puede tener bloques de datos abiertos y los datos cifrados correspondientes, o incluso la capacidad de obtener los datos cifrados correspondientes para cualquier dato abierto que elija, dependiendo de los enumerados y muchos otras condiciones no especificadas, se distinguen tipos separados de criptoanálisis.

Todos los criptosistemas modernos se basan en el principio de Kirchhoff, es decir, el secreto de los mensajes cifrados está determinado por el secreto de la clave. Esto significa que incluso si el criptoanalista conoce el algoritmo de cifrado, no podrá descifrar el mensaje si no tiene la clave correspondiente. Un cifrado se considera bien diseñado si no hay forma de romperlo de una manera más eficiente que la fuerza bruta a través de todo el espacio de claves, es decir, sobre todos los valores clave posibles. GOST probablemente corresponde a este principio: a lo largo de los años de investigación intensiva, no se ha propuesto un solo método eficaz de su criptoanálisis. En términos de fuerza, es superior en muchos órdenes de magnitud al estándar de cifrado estadounidense anterior, DES.

En GOST, se utiliza una clave de 256 bits y el volumen del espacio de la clave es 2256. Ninguno de los dispositivos electrónicos actualmente existentes o que se espera que se implementen en un futuro cercano puede recoger la clave en un tiempo inferior a muchos cientos de años. Este valor se ha convertido en el estándar de facto para el tamaño de clave para criptoalgoritmos simétricos en estos días; por ejemplo, el nuevo estándar de cifrado de EE. UU. También lo admite. El antiguo estándar americano, DES, con su tamaño de clave real de 56 bits y un espacio de clave de solo 2 56 ya no es lo suficientemente fuerte a la luz de las capacidades de las instalaciones informáticas modernas. Esto se demostró a finales de los 90 mediante varios ataques de fuerza bruta con éxito en DES. Además, DES ha sido expuesto a técnicas especiales de criptoanálisis como diferencial y lineal. En este sentido, DES puede ser de interés científico o de investigación más que práctico. En 1998, se reconoció oficialmente su debilidad criptográfica: el Instituto Nacional de Estándares de EE. UU. Recomendó el uso de cifrado triple en lugar de DES. Y a finales de 2001, se aprobó oficialmente un nuevo estándar de cifrado de EE. UU., AES, construido sobre diferentes principios y libre de las deficiencias de su predecesor.

Notas sobre la arquitectura de GOST.

Es bien sabido que el estándar de cifrado doméstico es un representante de toda una familia de cifrados, construido sobre los mismos principios. Su "pariente" más famoso es el antiguo estándar de cifrado estadounidense, el algoritmo DES. Todos estos cifrados, como GOST, contienen algoritmos de tres niveles. Siempre se basa en un cierto "paso básico", sobre cuya base se construyen los "ciclos básicos" de manera similar, y ya sobre su base se construyen procedimientos prácticos para el cifrado y el desarrollo de un inserto de imitación. Así, la especificidad de cada uno de los cifrados de esta familia radica precisamente en su paso principal, más precisamente, incluso en su parte. Aunque la arquitectura de los cifrados de bloques clásicos, a los que pertenece GOST, se encuentra mucho más allá del alcance de este artículo, vale la pena decir algunas palabras al respecto.

Los algoritmos para los "pasos básicos de la cripto-transformación" para cifrados como GOST se construyen de manera idéntica, y esta arquitectura se llama red de Feistel equilibrada (red equilibrada de Feistel) nombrada en honor a la persona que la propuso por primera vez. Esquema de transformación de datos en un ciclo, o, como se le llama comúnmente, ronda , se muestra en la Figura 7.


Figura 7. Contenido del paso principal de la cripto-transformación para cifrados en bloque como GOST.

Se alimenta un bloque de tamaño uniforme a la entrada del paso principal, cuyas mitades alta y baja se procesan por separado una de otra. Durante la transformación, la mitad inferior del bloque se coloca en el lugar de la superior, y la mitad superior, combinada utilizando el bit a bit " exclusivo o »Con el resultado de calcular alguna función, en lugar de la más joven. Esta función, tomando como argumento la mitad inferior del bloque y un elemento de información clave ( X), es una parte significativa del cifrado y se llama función de cifrado ... Por varias razones, resultó ventajoso dividir el bloque cifrado en dos partes del mismo tamaño: | norte 1 |=|norte 2 | - este hecho se refleja en la palabra "equilibrado" en el nombre de la arquitectura. Sin embargo, las redes de cifrado no balanceadas también se utilizan de vez en cuando, aunque no con tanta frecuencia como las balanceadas. Además, las consideraciones sobre la fuerza del cifrado requieren que el tamaño del elemento clave no sea menor que el tamaño de medio bloque: en GOST, los tres tamaños son iguales a 32 bits .

Si aplicamos lo anterior al esquema del paso principal del algoritmo GOST, resultará obvio que los bloques 1, 2, 3 del algoritmo (ver Fig.1) determinan el cálculo de su función de cifrado, y los bloques 4 y 5 especificar la formación del bloque de salida del paso principal en función del contenido del bloque de entrada y los valores de la función de cifrado. Se pueden encontrar más detalles sobre las arquitecturas de los cifrados de bloques modernos con una clave secreta en obras clásicas o, en una forma adaptada, en mis obras.

En la sección anterior, ya comparamos DES y GOST en términos de seguridad, ahora los compararemos en términos de contenido funcional y facilidad de implementación. En los ciclos de cifrado GOST, el paso principal se repite 32 veces, para DES este valor es 16. Sin embargo, la función de cifrado GOST en sí es mucho más simple que la función DES análoga, en la que hay muchas permutaciones de bits irregulares. Estas operaciones son extremadamente ineficientes en los procesadores de propósito general actuales. GOST no contiene tales operaciones, por lo que es mucho más conveniente para la implementación del software.

Ninguna de las implementaciones de DES consideradas por el autor para la plataforma Intel x86 alcanza ni la mitad del rendimiento de la implementación de GOST que se le ofrece en este artículo, a pesar del ciclo dos veces más corto. Todo lo anterior indica que los desarrolladores de GOST tomaron en cuenta tanto los aspectos positivos como negativos de DES, y también evaluaron de manera más realista las posibilidades actuales y prometedoras del criptoanálisis. Sin embargo, ya no es relevante tomar DES como base al comparar el rendimiento de las implementaciones de cifrado. El nuevo estándar de cifrado de EE. UU. Está funcionando mucho mejor con la eficiencia (con el mismo tamaño de clave de 256 bits que en GOST, AES es aproximadamente un 14% más rápido que él) en comparación en términos de la cantidad de "operaciones elementales". Además, GOST es prácticamente imposible de paralelizar, y AES tiene muchas más capacidades en este sentido. En algunas arquitecturas, esta ventaja de AES puede ser menor, en otras puede ser mayor. Entonces, en un procesador Intel Pentium, alcanza el 28%. Los detalles se pueden encontrar en.

Requisitos de calidad para la información clave y las fuentes clave.

No todas las claves y tablas de sustitución proporcionan la máxima fuerza de cifrado. Cada algoritmo de cifrado tiene sus propios criterios para evaluar la información clave. Entonces, para el algoritmo DES, la existencia del llamado " claves débiles ”, Cuando la conexión entre datos abiertos y cifrados no está suficientemente enmascarada y el cifrado es relativamente fácil de romper.

Una respuesta exhaustiva a la pregunta sobre los criterios de calidad para las claves y las tablas de reemplazo GOST, si se puede obtener en cualquier lugar, solo de los desarrolladores del algoritmo. Los datos relevantes no se han publicado en la prensa abierta. Sin embargo, de acuerdo con el procedimiento establecido, los datos clave recibidos de una organización autorizada deben utilizarse para cifrar la información que tiene un sello. Indirectamente, esto puede indicar la existencia de métodos para verificar datos clave en busca de "piojos". Si la presencia de claves débiles en GOST es un tema debatible, entonces la presencia de nodos de reemplazo débiles está fuera de toda duda. Obviamente, la tabla "trivial" de sustituciones, según la cual cualquier valor se reemplaza por sí mismo, es tan débil que cuando se usa, el cifrado simplemente se rompe, sin importar cuál sea la clave.

Como se señaló anteriormente, los criterios para evaluar la información clave no están disponibles, pero aún se pueden hacer algunas consideraciones generales al respecto.

Llave

La clave debe ser una matriz de bits estadísticamente independientes, tomando los valores 0 y 1 con igual probabilidad. No se puede descartar por completo que algunos valores de clave específicos puedan resultar "débiles", es decir, el cifrado puede que no proporcionen un determinado nivel de seguridad si se utilizan. Sin embargo, presumiblemente, la participación de dichos valores en la masa total de todas las claves posibles es insignificante. Al menos, los estudios intensivos del cifrado aún no han revelado ninguna clave de este tipo para ninguna de las tablas de reemplazo conocidas (es decir, propuestas por FAPSI). Por lo tanto, las claves generadas con la ayuda de algún generador de números verdaderamente aleatorio serán cualitativas con una probabilidad que difiere de una en una cantidad insignificante. Si las claves se generan utilizando un generador de números pseudoaleatorios, entonces el generador utilizado debe proporcionar las características estadísticas anteriores y, además, tener una alta resistencia criptográfica, no menor que la del propio GOST. En otras palabras, el problema de determinar los miembros faltantes de la secuencia de elementos generados por el generador no debería ser más fácil que el problema de romper el cifrado. Además, se pueden utilizar varios criterios estadísticos para rechazar claves con características estadísticas deficientes. En la práctica, dos criterios suelen ser suficientes: para comprobar la distribución equiprobable de los bits de clave entre los valores 0 y 1, se suele utilizar la prueba de Pearson ("chi-cuadrado") y para comprobar la independencia de los bits de clave , se utiliza la prueba de ejecución. Puede leer sobre los criterios mencionados en libros de texto o libros de referencia sobre estadística matemática.

El mejor enfoque para generar claves sería utilizar sensores de rango medio de hardware, pero esto no siempre es aceptable por razones económicas. Cuando se genera una matriz de pequeño volumen de información clave, una alternativa razonable al uso de dicho sensor es y es ampliamente utilizada en la práctica por el método de la "ruleta electrónica", cuando la siguiente porción generada de bits aleatorios depende del tiempo que el operador presiona una tecla en el teclado de la computadora. En este esquema, la fuente de datos aleatorios es el usuario de la computadora, más precisamente, las características temporales de su reacción. En este caso, solo se pueden generar unos pocos bits de datos aleatorios con una pulsación de tecla, por lo que la velocidad general de generación de información clave no es alta, hasta varios bits por segundo. Obviamente, este enfoque no es adecuado para obtener grandes conjuntos de claves.

En el caso de que sea necesario generar un gran volumen de información clave, es posible y muy extendido utilizar varios sensores de software para números pseudoaleatorios. Dado que dicho sensor requiere una alta resistencia criptográfica, es natural utilizar el cifrado en sí mismo como un generador de gamma; simplemente "cortamos" la gama generada por el cifrado en "piezas" del tamaño requerido, para GOST - 32 bytes cada uno. Por supuesto, para este enfoque, necesitamos una "clave maestra", que podemos obtener utilizando el método de la ruleta electrónica descrito anteriormente, y con su ayuda, utilizando el cifrado en el modo del generador de gamma, obtenemos una matriz de información clave. del volumen requerido. Por tanto, estas dos formas de generar claves - "manual" y "algorítmica" - funcionan en conjunto y se complementan entre sí. Los esquemas de generación de claves en los sistemas de protección de cifrado de información de "bajo presupuesto" casi siempre se basan en este principio.

Mesa de recambio

La tabla de reemplazo es un elemento clave a largo plazo, es decir, es válida por un período mucho más largo que una sola clave. Se supone que es común a todos los nodos de cifrado dentro del mismo sistema de protección criptográfica. Incluso si se viola la confidencialidad de la tabla de sustitución, la fuerza del cifrado permanece extremadamente alta y no cae por debajo del límite aceptable. Por lo tanto, no hay una necesidad particular de mantener la tabla en secreto, y en la mayoría de las aplicaciones comerciales de GOST así es como se hace. Por otro lado, la tabla de sustitución es un elemento crítico para garantizar la solidez de todo el cifrado. La elección de la tabla incorrecta puede provocar que el cifrado se rompa fácilmente mediante técnicas de criptoanálisis conocidas. El criterio para el desarrollo de nodos de reemplazo es un secreto detrás de siete sellos y es poco probable que FAPSI lo comparta con el público en un futuro próximo. En última instancia, decidir si una tabla de sustitución determinada es buena o mala requiere una enorme cantidad de trabajo: muchos miles de horas de trabajo y de máquina. Una vez seleccionada y utilizada, la tabla debe ser reemplazada si y solo si el cifrado con su uso resultó ser vulnerable a uno u otro tipo de criptoanálisis. Por lo tanto, la mejor opción para un usuario de cifrado común sería tomar una de varias tablas que se han hecho públicas. Por ejemplo, del estándar para la función hash, también es "banco central"; La información sobre estas tablas se puede encontrar en la prensa abierta e incluso en Internet, si busca bien.

Para aquellos que no están acostumbrados a ir por el camino fácil, a continuación se muestra un esquema general para obtener tablas de alta calidad:

  1. Con uno u otro método, se desarrolla un conjunto de ocho nodos de reemplazo con características de no linealidad garantizadas. Existen varias técnicas de este tipo, una de ellas es el uso de las llamadas funciones dobladas.
  2. Verifique que se cumplan los "criterios de calidad" más simples, como los publicados para los nodos de reemplazo de DES. Aquí hay algunas consideraciones más generales: Cada nodo de sustituciones puede describirse mediante cuatro funciones lógicas a partir de cuatro argumentos lógicos. Si estas funciones escritas en forma mínima(es decir, con la mínima longitud de expresión posible) no son lo suficientemente complejos, tal nodo de reemplazo se rechaza. Además, las funciones individuales dentro de toda la tabla de sustitución deben ser lo suficientemente diferentes entre sí. En esta etapa, se eliminan muchas tablas deliberadamente de baja calidad.
  3. Para el cifrado con las tablas de su elección, construya diferentes modelos redondos correspondientes a diferentes tipos de criptoanálisis y mida las características de "perfil" correspondientes. Entonces, para el criptoanálisis lineal, construya un análogo estadístico lineal de la ronda de cifrado y calcule la característica del "perfil": el indicador de no linealidad. Si resulta insuficiente, se descarta la mesa de recambio.
  4. Finalmente, utilizando los resultados del párrafo anterior, somete el cifrado con la tabla de su elección a una investigación intensiva, un intento de criptoanálisis por todos los métodos conocidos. Esta etapa es la más difícil y requiere más tiempo. Pero si está hecho con alta calidad, entonces con un alto grado de probabilidad se puede afirmar que el cifrado con las tablas que ha elegido no será roto por simples mortales y, posiblemente, será demasiado difícil para los servicios especiales. .

Sin embargo, puede hacerlo mucho más fácilmente. El punto es que cuantas más rondas hay en el cifrado, menos influencia tienen las características de fuerza de una ronda en la fuerza de todo el cifrado. Hay hasta 32 rondas en GOST, más que en casi todos los cifrados con una arquitectura similar. Por lo tanto, para la mayoría de las aplicaciones domésticas y comerciales, es suficiente obtener nodos de sustitución como permutaciones aleatorias independientes de números del 0 al 15. Esto se puede implementar prácticamente, por ejemplo, barajando una baraja de dieciséis cartas, a cada una de las cuales se le asigna una. de los valores del rango especificado.

Cabe señalar un dato más interesante con respecto a la tabla de sustituciones. Para la reversibilidad de los ciclos de cifrado "32-З" y "32-Р", no es necesario que los nodos de reemplazo sean permutaciones de números del 0 al 15. Todo funciona incluso si hay elementos duplicados en el nodo de reemplazo, y el reemplazo determinado por dicho nodo, irreversible; sin embargo, en este caso, la fuerza del cifrado disminuye. Por qué esto es así no se considera en este artículo, pero no es difícil estar convencido del hecho en sí. Para hacer esto, es suficiente intentar primero encriptar y luego desencriptar el bloque de datos usando una tabla de reemplazo "defectuosa", cuyos nodos contienen valores duplicados.

Variaciones sobre el tema GOST

Muy a menudo, para su uso en un sistema de protección de datos criptográficos, se requiere un algoritmo con una velocidad de implementación más rápida que la de GOST y, al mismo tiempo, no se requiere una fuerza criptográfica tan alta. Un ejemplo típico de estas tareas son los diversos tipos de sistemas de negociación de intercambio electrónico que gestionan las sesiones de negociación en tiempo real. Aquí, los algoritmos de cifrado utilizados son necesarios para que sea imposible descifrar los datos operativos del sistema durante la sesión (datos sobre pedidos enviados, transacciones concluidas, etc.), después de su expiración, estos datos ya suelen ser inútiles para intrusos. . En otras palabras, se requiere una durabilidad garantizada de solo unas pocas horas; esta es la duración típica de una sesión de negociación. Está claro que el uso de un GOST completo en esta situación sería disparar un cañón a los gorriones.

¿Qué hacer en este y otros casos similares para aumentar la velocidad de cifrado? La respuesta está en la superficie: utilizar una modificación del cifrado con menos pasos básicos (rondas) en ciclos básicos. La cantidad de veces que reducimos la cantidad de rondas de cifrado, la misma cantidad de veces que aumenta el rendimiento. El cambio indicado se puede lograr de dos maneras: disminuyendo la longitud de la clave y disminuyendo el número de "ciclos de exploración" de la clave. Recuerde que el número de pasos básicos en los bucles de cifrado básico es norte=n m, donde norte- el número de elementos de 32 bits en la clave, metro- el número de ciclos de uso de elementos clave, en el estándar norte=8, metro= 4. Puede disminuir cualquiera de estos números, pero la opción más simple es disminuir la longitud de la clave sin afectar el esquema de su uso.

Está claro que el precio a pagar por acelerar el trabajo será una disminución en la fuerza del cifrado. La principal dificultad radica en el hecho de que es bastante difícil estimar con mayor o menor precisión la magnitud de esta disminución. Evidentemente, la única forma posible de hacerlo es realizar un estudio de variantes del cifrado con ciclos reducidos de transformación criptográfica "en su totalidad". Está claro que, en primer lugar, esto requiere el uso de información clasificada, que es propiedad únicamente de los desarrolladores de GOST, y, en segundo lugar, es muy laborioso. Por lo tanto, ahora intentaremos dar una valoración, muy, muy aproximada, basada únicamente en leyes generales.

En cuanto a la resistencia del cifrado a romperse por métodos "extensivos", es decir, a un ataque "exhaustivo", todo está más o menos claro aquí: una clave de 64 bits está en algún lugar al borde de la accesibilidad a este tipo de ataque , un cifrado con una clave de 96 bits o superior (recuerde que la clave debe contener un número entero de elementos de 32 bits) es bastante robusto contra él. De hecho, hace unos años, el antiguo estándar de cifrado de EE. UU., DES, fue pirateado repetidamente por la fuerza bruta: primero fue pirateado por una red informática organizada sobre la base de Internet global, y luego por una especializada, es decir. una computadora especialmente diseñada para esto. Supongamos que la versión estándar de GOST, cuando se implementa en software en procesadores modernos, es cuatro veces más rápida que DES. Entonces, el "GOST reducido" de 8 rondas funcionará 16 veces más rápido que DES. Supongamos también que en el tiempo transcurrido desde que se rompió DES, el rendimiento informático se ha cuadruplicado de acuerdo con la Ley de Moore. Como resultado, obtenemos que ahora la verificación de una clave de 64 bits para el "GOST reducido" con ocho ciclos se lleva a cabo 64 veces más rápido que la verificación de una clave DES a su debido tiempo. Por lo tanto, la ventaja de esta versión de GOST sobre DES en términos de la complejidad del ataque exhaustivo se reduce de 2 64–56 = 2 8 = 256 a 256 / 64 = 4 veces. De acuerdo, esta es una diferencia muy ilusoria, casi nada.

Es mucho más difícil evaluar la resistencia de las modificaciones debilitadas de GOST a los métodos "intensivos" de criptoanálisis. Sin embargo, aquí también se puede rastrear un patrón general. El hecho es que las características del "perfil" de muchos de los tipos de criptoanálisis más potentes en la actualidad dependen exponencialmente del número de rondas de cifrado. Entonces, para el criptoanálisis lineal (LCA), esta será la característica de linealidad L :

donde C y son constantes, R es el número de rondas. Existe una relación similar para el criptoanálisis diferencial. Según su "significado físico", todas las características de este tipo son probabilidades. Por lo general, la cantidad de datos iniciales necesarios para el criptoanálisis y su intensidad de trabajo son inversamente proporcionales a tales características. De ello se deduce que estos indicadores de intensidad laboral crecen exponencialmente con el crecimiento del número de pasos básicos de cifrado. Por lo tanto, con una disminución en el número de rondas en varias veces, la intensidad de trabajo de los tipos de análisis más famosos cambiará como, muy aproximadamente y aproximadamente, la raíz de este grado desde el número inicial. Esta es una caída muy grande de resistencia.

Por otro lado, GOST fue diseñado con un gran margen de seguridad y hoy en día es resistente a todos los tipos de criptoanálisis conocidos, incluidos los diferenciales y lineales. Con respecto al LCA, esto significa que para su implementación exitosa, se requieren más pares "bloque abierto - bloque cifrado" que "existen en la naturaleza", es decir, más de 2 64. Teniendo en cuenta lo anterior, esto significa que para un LCA exitoso de 16 rondas, GOST requerirá al menos bloques o 2 35 bytes o 32 GB de datos, y para una ronda de 8, al menos bloques o 2 19 bytes o 0,5 MB .

Las conclusiones de todo lo dicho anteriormente se dan en la siguiente tabla, que resume las características de las versiones reducidas de GOST.

Numero de rondas Tamaño de clave, bit Índice de acción rápida Características probables del cifrado (estimación muy aproximada)
24 192 1,33 Resistente a la mayoría de los tipos de naves espaciales conocidos, o al borde de la estabilidad. La implementación práctica de la nave espacial es imposible debido a los altos requisitos de datos iniciales y la intensidad del trabajo.
16 128 2 Teóricamente inestable para algunos tipos de criptoanálisis, sin embargo, su implementación práctica en la mayoría de los casos es difícil debido a los altos requisitos de los datos iniciales y la intensidad del trabajo.
12 95 2,67 No es resistente a algunos tipos conocidos de criptoanálisis, pero es adecuado para garantizar el secreto de pequeñas cantidades de datos (hasta decenas a cientos de KB) durante un período corto.
8 64 4 No es resistente a algunos tipos conocidos de criptoanálisis, pero es adecuado para garantizar el secreto de pequeñas cantidades de datos (hasta decenas de KB) durante un breve período de tiempo.

Las dos últimas opciones, con 12 y 8 rondas, son capaces de proporcionar una protección de tiempo muy, muy limitado. Su uso está justificado solo en tareas donde solo se requiere el secreto a corto plazo de los datos que se cierran, del orden de varias horas. Un posible campo de aplicación para estas opciones de cifrado débil es el cierre del tráfico UDP de los sistemas de comercio de intercambio electrónico. En este caso, cada paquete de datos (datagrama, "D" central de la abreviatura UDP) se cifra en una clave separada de 64 bits, y la clave en sí se cifra en la clave de sesión (una clave cuyo alcance es una sesión de comunicación entre dos computadoras) y se transmite junto con los datos.

Antes de terminar con las versiones reducidas de GOST, diré que todas las consideraciones anteriores son altamente especulativas. El estándar proporciona durabilidad para solo una variación de 32 rondas. Y nadie puede ofrecerle ninguna garantía de que la resistencia de las variantes reducidas del cifrado al descifrado cambie de la manera indicada anteriormente. Si a pesar de todo decides utilizarlos en tus diseños, recuerda que has pisado un terreno muy inestable, que puede desaparecer bajo tus pies en cualquier momento. Dado que la velocidad de cifrado es fundamental para usted, tal vez debería considerar utilizar un cifrado más rápido o una computadora más potente. Otra consideración por la que se debe hacer esto es que las versiones debilitadas de GOST serán lo más sensibles posible a la calidad de los nodos de reemplazo utilizados.

El tema en consideración tiene una desventaja. ¿Qué pasa si la velocidad de cifrado no es crítica y los requisitos de seguridad son muy estrictos? Hay dos formas de aumentar la resistencia a GOST: llamémoslas "extensivas" e "intensivas". El primero no es más que un simple aumento en el número de rondas de cifrado. No me queda del todo claro por qué esto podría ser realmente necesario, porque el estándar nacional proporciona la durabilidad necesaria sin él. Sin embargo, si sufre de paranoia más del nivel requerido (y todos los "defensores de la información" simplemente tienen que sufrirla, esta es la condición para la idoneidad profesional, la única pregunta está en la gravedad del caso :), esto será Ayudarle a calmarse un poco. Si no está seguro acerca de este cifrado KGB o la tabla de sustitución que está utilizando, simplemente doble, cuádruple, etc. número de rondas: seleccione la multiplicidad según la gravedad de su caso. Este enfoque le permite aumentar realmente la fuerza del cifrado: si el criptoanálisis anterior era simplemente imposible, ¡ahora es imposible al cuadrado!

Una pregunta más complicada e interesante es si es posible aumentar la fuerza del cifrado sin cambiar el número y la estructura de los pasos básicos del cifrado. Sorprendentemente, la respuesta a esta pregunta es sí, aunque nuevamente estamos pisando el terreno inestable de la especulación. El hecho es que en GOST, en el paso de conversión principal, se supone que reemplaza 4 por 4 bits, pero en la práctica (hablaremos de esto más adelante) todas las implementaciones de software realizan el reemplazo byte por byte, es decir, 8 por 8 bits: esto se hace por razones de eficiencia. Si diseñamos inmediatamente un reemplazo de este tipo como uno de 8 bits, mejoraremos significativamente las características de una ronda. Primero, la característica de "difusión" o el indicador de "avalancha" aumentará: un bit de los datos originales y / o la clave afectará a más bits del resultado. En segundo lugar, para los nodos de reemplazo grandes, es posible obtener características lineales y diferenciales más bajas, reduciendo así la susceptibilidad del cifrado a los mismos tipos de criptoanálisis. Esto es especialmente cierto para los ciclos GOST reducidos, y para las opciones de 8 y 12 rondas, este paso es simplemente necesario. Esto compensará de alguna manera la pérdida de resistencia en ellos debido a una disminución en el número de rondas. Lo que dificulta el uso de esta técnica es que usted mismo tendrá que diseñar estas unidades de reemplazo "ampliadas". Y también el hecho de que los nodos más grandes son generalmente mucho más difíciles de diseñar que los más pequeños.

Uso no estándar del estándar.

Por supuesto, el propósito principal de los criptoalgoritmos GOST es el cifrado de datos y la protección contra la imitación. Sin embargo, pueden encontrar otros usos, asociados, por supuesto, a la protección de la información. Hablemos brevemente de ellos:

1. Para el cifrado en modo gamma, GOST prevé el desarrollo de una gama criptográfica: una secuencia de bits con buenas características estadísticas y alta capacidad criptográfica. Además, esta gama se utiliza para modificar datos abiertos, lo que da como resultado datos cifrados. Sin embargo, esta no es la única aplicación posible de la gama criptográfica. El caso es que el algoritmo para generarlo es un generador de secuencia de números pseudoaleatorios (PRNG) con excelentes características. Por supuesto, no es muy razonable usar un GPPC de este tipo donde solo se requiere obtener las características estadísticas de la secuencia generada y no se necesita fuerza criptográfica, no es muy razonable; para estos casos, hay generadores mucho más eficientes. Pero para varias aplicaciones relacionadas con la seguridad de la información, dicha fuente será muy útil:

  • Como se señaló anteriormente, la gama se puede utilizar como "materia prima" para la fabricación de claves. Para hacer esto, solo necesita obtener un segmento de la escala de la longitud requerida: 32 bytes. De esta manera, las claves se pueden generar según sea necesario y no es necesario almacenarlas; si se necesita una clave de este tipo nuevamente, será bastante fácil generarla nuevamente. Solo será necesario recordar en qué clave se desarrolló originalmente, qué mensaje de sincronización se utilizó y desde qué byte de la escala generada comenzó la clave. Toda la información, excepto la clave utilizada, no está clasificada. Este enfoque facilitará el control de un sistema de claves bastante complejo y ramificado utilizando sólo una "clave maestra".
  • Al igual que el anterior, la gamma se puede utilizar como materia prima para generar contraseñas. Aquí puede surgir la pregunta, ¿por qué es necesario generarlos? ¿No es más fácil simplemente inventarlos según sea necesario? El fracaso de este enfoque quedó ampliamente demostrado por una serie de incidentes en las redes informáticas, el mayor de los cuales fue la parálisis de Internet de 24 horas en noviembre de 1988 causada por el gusano Morris. Una de las formas en que un programa malicioso penetró en una computadora fue adivinar la contraseña: el programa intentó ingresar al sistema, probando secuencialmente contraseñas de su lista interna de varios cientos, y en una proporción significativa de casos pudo hacerlo. La fantasía del hombre de inventar contraseñas resultó ser muy pobre. Por eso, en aquellas organizaciones en las que se presta la debida atención a la seguridad, el administrador del sistema de seguridad genera y distribuye las contraseñas a los usuarios. Generar contraseñas es un poco más difícil que generar claves, ya que en este caso la gama binaria "sin procesar" debe convertirse a forma simbólica, y no simplemente "cortarse" en pedazos. Además, es posible que deban descartarse los valores individuales para garantizar que todos los caracteres del alfabeto aparezcan por igual en la contraseña.
  • Otra forma de utilizar la gama criptográfica es garantizar el borrado de datos en medios magnéticos. El hecho es que incluso después de reescribir la información en un medio magnético, quedan rastros de datos anteriores, que pueden ser restaurados por la experiencia adecuada. Para eliminar estos rastros, dicha reescritura debe realizarse muchas veces. Resultó que sería necesario reescribir la información en el portador menos veces si, con tal procedimiento, se usarían datos aleatorios o pseudoaleatorios, que serían desconocidos para los expertos que intentan recuperar la información borrada. La escala del cifrado será muy útil aquí.

2. No solo la gama criptográfica, sino también la transformación criptográfica en sí, se puede utilizar para necesidades que no están directamente relacionadas con el cifrado:

  • Sabemos que una de estas opciones para usar GOST es el desarrollo de un inserto simulado para matrices de datos. Sin embargo, sobre la base de cualquier cifrado de bloque, incluido GOST, es bastante fácil construir un esquema para calcular una función hash unidireccional, también llamada MDC en la literatura, que se descifra en diferentes fuentes como cambiar el código de detección / manipulaciones (METRO odificación / METRO anipulación D etección C oda) o resumen del mensaje (METRO mensaje D igest C oda). La primera transcripción apareció en la literatura mucho antes, la segunda, más corta, creo, fue inventada por aquellos que no pudieron recordar la primera :) - era una broma. MDC se puede utilizar directamente en sistemas de imitación de seguridad como análogo de un inserto de imitación, que, sin embargo, no depende de la clave secreta. Además, MDC se usa ampliamente en esquemas de firma digital electrónica (EDS), porque la mayoría de estos esquemas están diseñados de tal manera que es conveniente firmar un bloque de datos de un tamaño fijo. Como sabe, sobre la base del estándar discutido GOST 28147-89, se construye el estándar de la Federación de Rusia para calcular la función hash unidireccional GOST R34.11-94.
  • Es menos conocido que sobre la base de cualquier cifrado de bloque, incluido GOST, se puede construir un esquema EDS completamente funcional, con una clave de firma secreta y una combinación de verificación abierta. Por varias razones, este esquema no ha recibido una amplia distribución práctica, pero en algunos casos todavía se puede considerar como una alternativa muy atractiva a los esquemas EDS "matemáticos" actualmente dominantes en el mundo.

Literatura

Sistemas de procesamiento de información. Protección criptográfica. Algoritmo de transformación criptográfica GOST 28147-89. Expresar Com. URSS según estándares, M., 1989. ftp://ftp.wtc-ural.ru/pub/ru.crypt/GOST-28147
Shannon Claude. Teoría matemática de sistemas secretos. En la colección "Trabajos sobre teoría de la información y cibernética", M., IL, 1963, p. 333-369. http://www.enlight.ru/crypto/articles/shannon/shann__i.htm
Anuncio de la aprobación del Estándar federal de procesamiento de información (FIPS) 197, Estándar de cifrado avanzado (AES), Registro federal Vol. 66, No. 235 / Jueves 6 de diciembre de 2001 / Avisos, págs. 63369-63371. http://csrc.nist.gov/encryption/aes/
Feistel Horst. Criptografía y seguridad informática. Traducido por A. Vinokurov, publicado por Horst Feistel. Criptografía y privacidad informática, Scientific American, mayo de 1973, vol. 228, núm. 5, págs. 15-23. http://www.enlight.ru/crypto/articles/feistel/feist_i.htm
Schneier Bruce. Criptografía aplicada. 2ª ed. Protocolos, algoritmos y textos fuente en lenguaje C., M., "Triumph", 2002 http://www.ssl.stu.neva.ru/psw/crypto/appl_rus/appl_cryp.htm
Menezes Alfred, van Oorschot Paul, Vanstone Scott. Manual de criptografía aplicada. ttp: //www.cacr.math.uwaterloo.ca/hac/
Vinokurov Andrey. ¿Cómo funciona un cifrado en bloque? Manuscrito. http://www.enlight.ru/crypto/articles/vinokurov/blcyph_i.htm
Vinokurov Andrey. Problemas criptográficos para iNFUSED BYTES en línea. http://www.enlight.ru/crypto/articles/ib/ib.htm
Vinokurov Andrey, Primenko Eduard. Texto del informe "Sobre la implementación de software de estándares de cifrado en la Federación de Rusia y los Estados Unidos", conferencia sobre informatización, Moscú, MEPhI, 28-29 de enero de 2001. Publicado en las actas de la conferencia.
Tecnologías de la información. Protección de la información criptográfica. Función hash GOST R34.11-94, Gosstandart RF, M., 1994.



¿Te gustó el artículo? Compártelo