El algoritmo de la cifración el GOST 28147-89. El método de la sustitución simple.

«Mientras seas vivo, no mueras, este mundo mira.
A muchos aquí el alma es muerta – son muertos adentro.
Pero van y se ríen, sin saber que no existen,
No apresures la hora suprema »– me ha dicho.

La aria, «es alto Allí»


El contenido:

1. La     introducción

  1. Las noticias preliminares sobre las cifras de bloques prefabricados

2.1  Seti Fajstelja.
2.2  cifra De bloques prefabricados el GOST 28147-89

  1. El mínimo teorético

3.1     información Clave
3.2     paso Básico криптопреобразованиÑ

3.3  ciclos Básicos: "32-Z", "32-R".

  1. La práctica

4.1  Realización del paso básico криптопреобразованиÑ
4.2     Aumento de la velocidad del algoritmo
5. Las     exigencias a la información clave
6. La     lista de la literatura usada
7. El     agradecimiento.

La introducción.

El documento dado es mi tentativa de describir el método de la sustitución simple del algoritmo de la cifración el GOST 28147-89 más simple, pero, con todo eso, por la lengua técnicamente-competente. Sobre, si por cuanto ha resultado esto a yo, el lector dirá la opinión, después de que leerá primero seis puntos.

Para esto que lava el trabajo ha dado más de utilidad recomiendo armarse de los trabajos de los autores indicado en la lista de la literatura usada. Se Recomienda también el calculador que en ello sean la función según el cálculo de la operación XOR, porque la lectura del artículo supone que que lee ha tenido la intención de estudiar el algoritmo dado de la cifración. Aunque en calidad del subsidio de información se acercará también, pero escribía este artículo, como que enseña.

        

Las noticias preliminares sobre las cifras de bloques prefabricados.

            Antes de comenzaremos a examinar el algoritmo, tenemos que ponernos al corriente de la historia de la creación de esta especie de las cifras. El algoritmo se refiere a la categoría de las cifras de bloques prefabricados, en que arquitectura la información se estrella a la cantidad final de los bloques, final puede ser natural no completo. El proceso de la cifración pasa sobre los bloques completos, que forman шифрограмму. El bloque final, si él incompleto es completado que o (en los matices por su complemento diré más abajo) y es cifrado así como los bloques completos. Bajo шифрограммой comprendo – el resultado de la acción de la función de la cifración sobre alguna cantidad de los datos, que el usuario ha dado para la cifración. Con otras palabras шифрограмма es un resultado final de la cifración.

           La historia del desarrollo de las cifras de bloques prefabricados se junta al comienzo 70Ñ… de los años, cuando la compañía IBM habiendo reconocido la necesidad de la defensa de la información a la transferencia de los datos por los canales de comunicación del ORDENADOR, ha comenzado la ejecución de propio programa de las investigaciones científicas dedicadas a la defensa a la información en las redes electrónicas, incluso la criptografía.

           El grupo de los investigadores – los elaboradores de la firma IBM que ha comenzado la investigación de los sistemas de la cifración con el esquema simétrico del uso de las llaves, era encabezado por el doctor Horst Fajstel.

2.1 Seti Fajstelja

        Fajstelem propuesto la arquitectura del nuevo método de la cifración en la literatura clásica ha recibido el nombre «la Arquitectura de Fajstelja», pero para el momento actual en la literatura rusa y extranjera se usa un término que se ha hecho ley más – "la red de Fajstelja" o Feistel ` s NetWork. En la consecuencia por la arquitectura dada era construida la cifra "Lucifer" - que era publicado más tarde y ha llamado una nueva onda del interés en la criptografía en total.

           La idea de la arquitectura "de la red de Fajstelja" consiste en lo siguiente: el flujo de entrada de la información se estrella a los bloques de la dimensión en n битов, donde n el número par. ¡Cada bloque comparte en dos partes – L y R, más estas partes se apartan en la cifra iterativa de bloques prefabricados, en que el resultado de la j etapa está determinado por el resultado de la etapa anterior j-1! Dicho es posible ilustrar sobre el ejemplo:

Fig. 1

 Donde, la función Ð es una acción básica de la cifra de bloques prefabricados. Puede ser la acción simple, tal como la operación XOR, а puede tener un tipo más difícil ser la consecuencia serie de las acciones simples – la adición por el módulo, el giro a la izquierda, la sustitución de los elementos etc., en conjunto estas acciones simples forman así llamado – el paso básico криптопреобразованиÑ.

Debe notar que los elementos claves del trabajo de la función es la presentación de los elementos de las llaves y la operación XOR y de aquel por cuanto son bien pensados el trabajo de estas operaciones, habla sobre криптоÑтойкоÑти de la cifra en total.

Para que la idea de las redes de Fajstelja sea definitiva es clara, examinaremos el caso simplísimo representado en fig. 1, donde como Р– actuará las operaciones “mod 2†(“xorâ€), pero es el caso simplísimo, en una situación más seria, por ejemplo la ocultación de la información de la importancia estatal la función Ð puede ser más difícil (cuánto veía la función Ð realmente es muy difícil):

Los datos iniciales:

L = 1110b, R = 0101, K = 1111b

El objetivo:

Recibir шифрограмму

La decisión:

1. (R + K) mod 24 = Smod, Smod = 0100b

2. (Smod + L) mod 2 = Sxor, Sxor = 1010b

3. L = R, R = Sxor

El total:

 L = 0101b, R = 1010b

           Explicaremos nuestras acciones:

1.      Esta operación la adición por mod 24. En la práctica tal operación se reduce a la adición simple, donde debemos poner dos números y menospreciar el traslado en 5й la categoría. Puesto que, si poner sobre las categorías de la representación binaria del número poner los exponentes, sobre la quinta categoría habrá justamente un índice cuatro, miraremos el dibujo más abajo, donde son representadas las acciones de nuestra operación:

Fig. 2

Aquí por la aguja he indicado a los exponentes, según parece, el resultado debía resultar 10100, pero puesto que a la operación mod 24 es desdeñado el traslado, recibimos 0100.

2. Esta operación en la literatura se llama mod 2, en la lengua del ensamblador se realiza por la orden XOR. Pero su nombre más correcto mod 21. Sin esta operación única es posible construir poco probable el algoritmo rápido, fácilmente realizado de la cifración y además que él sea todavía bastante криптоÑтойким. ¡El carácter unical de esta operación consiste en lo que a él de vuelta! ¡Por ejemplo, si el número РпоXORить con el número, recibimos en resultado En, basta en lo sucesivo переXORить el número y En entre ellos para recibir el significado Ð anterior!

¡En esta operación hemos recibido 1010 teniendo los números 1110 y 0100 para recibir atrás 1110, basta переXORрить entre ellos el número 0100 y 1010! Más detalladamente sobre esta operación es posible respetar en el artículo, que es impuesto en el sitio www.wasm.ru, «la dirección Elemental por CRC_алгоритмам los descubrimientos de las faltas» el autor, por que Ross N. Williams. En este trabajo hay un punto - «5. La aritmética binaria sin tomar en cuenta los traslados». ¡Aquí en este artículo es descrita la operación xor! ¡Exclamo porque en este artículo esta operación es tan pintada que el lector no comprende simplemente como trabaja esta operación, él hasta la comienza a ver, oír y sentir!

3. Esta acción es necesario que a раÑшифровывании de шифрограммы era posible recibir los valores iniciales.

2.2 cifra De bloques prefabricados el GOST 28147-89

        El algoritmo de la cifración el GOST 28147 – 89 se refiere a la categoría de las cifras de bloques prefabricados de las redes equilibradas, que trabajan por la arquitectura, de Fajstelja, donde dos partes del bloque escogido de la información tienen la dimensión igual. El algoritmo era elaborado en los subsuelos del octavo departamento de KGB transformado ahora en ФÐПСИ y era fijado, como el estándar de la cifración de la Federación Rusa aun en 1989 a la URSS.

           Para el trabajo del método dado del algoritmo es necesario romper la información en los bloques de la dimensión en 64 pala. Generar o introducir en el sistema de la cifración, la información siguiente clave: la llave y la tabla de las sustituciones. Debe referirse a la elección de la llave y la tabla de las sustituciones a la cifración muy seriamente, porque es el fundamento de la seguridad de su información. Sobre aquel, que exigencias son impuestas a la llave, y la tabla de las sustituciones mira el punto «las Exigencias a la información clave».

Durante el examen del método no aguzaremos sobre esto la atención, porque este artículo, como hablaba ya más arriba, es escrito con el objetivo, enseñar que lee, cifrar los datos del método de la sustitución simple del algoritmo dado de la cifración, pero tocaremos obligatoriamente esta pregunta a finales del artículo.

El mínimo teorético.

3.1 información Clave

Como hablaba ya más arriba, en la cifración dado la participación activa aceptan:

3.1.1. La llave es una consecuencia de ocho elementos de la dimensión 32 pala cada uno. Más designaremos por el símbolo A, а los elementos de que él consiste – k1, k2, k3, k4, k5, k6, k7, k8.

           3.1.2 Tabla de las sustituciones – la matriz de ocho líneas y dieciséis columnas, en lo sucesivo – Hij. Cada elemento sobre la intersección de la línea i y la columna j es ocupado por 4 pala.

        

3.2 paso Básico криптопреобразованиÑ

           La acción básica durante la cifración es – el paso básico криптопреобразованиÑ. Esto nada otro, como la acción por la cifración de los datos de un cierto algoritmo, solamente los elaboradores han introducido el nombre voluminoso :).

           Antes de comenzar cifrar, el bloque rompen en dos partes L y R, por 32 pala cada uno. Escogen el elemento de la llave y solamente dan después estas dos partes del bloque, el elemento de la llave la tabla de las sustituciones en la función del paso básico, el resultado del paso básico es una iteración del ciclo básico, de que se tratará en el punto siguiente. El paso básico consiste de las acciones siguientes:

  1. La adición la parte del bloque R es sumada con el elemento de la llave K por mod 232. Sobre la operación semejante he descrito más arriba, aquí también más solamente el exponente no «4», а «32» - el resultado de esta operación designaré en lo sucesivo Smod.
  2. El resultado Smod recibido antes dividimos en cuatro elementos de bit s7, s6, s5, s4, s3, s2, s1, s0 y damos en la función de la sustitución. La sustitución pasa del modo siguiente: sale el elemento Smod - si, del comienzo es comenzado del elemento menor, y sustituimos por el significado de la tabla de las sustituciones por i - aquella línea y la columna, a que indica el significado del elemento si. Pasamos a si+1 al elemento obramos del mismo modo y es continuado así, no sustituiremos el significado del último elemento Smod – designaremos el resultado de esta operación como, Ssimple.
  3. En esta operación el significado Ssimple es movido cíclicamente a la izquierda a 11 palas y es recibido Srol.
  4. Escogemos la segunda parte del bloque L y es puesto por mod 2 con Srol, es tenido en resumen Sxor.
  5. ¡En esta fase la parte del bloque L se hace igual al significado de la parte R, а la parte R a su vez инициализируетÑÑ por el resultado Sxor y sobre esto la función del paso básico es acabada!

3.3 ciclos Básicos: "32-Z", "32-R".

           Para cifrar la información es necesario romperla en los bloques de la dimensión en 64 pala, el naturalmente último bloque puede ser menos 64 битов. Este hecho es el talón de Aquiles del método dado «la sustitución simple». Puesto que su complemento hasta 64 palas es la tarea muy importante por el aumento криптоÑтойкоÑти шифрограммы y a este lugar sensible, si asiste en el macizo de la información, а de ello puede y no ser (¡por ejemplo, el fichero de la dimensión en 512 bytes! ¡), debe referirse con la responsabilidad grande!

           Después de que habéis roto la información en los bloques, debe romper la llave en los elementos:

K = k1, k2, k3, k4, k5, k6, k7, k8

           La cifración misma consiste en el uso, así llamados – los ciclos básicos. Que incluyen a su vez n – ое la cantidad de los pasos básicos криптопреобразованиÑ.

           Los ciclos básicos tienen, como si decirlo, la marca: n – m. Donde n – la cantidad de los pasos básicos ÐºÑ€Ð¸Ð¿Ñ‚Ð¾Ð¿Ñ€ÐµÐ¾Ð±Ñ€Ð°Ð·Ð¾Ð²Ð°Ð½Ð¸Ñ en el ciclo básico, а m es un "tipo" del ciclo básico, e.d. sobre que va el habla, sobre «З» ашифровывании o «Р» аÑшифровывании de los datos.

           El ciclo básico de la cifración 32-Z consiste de 32 pasos básicos криптопреобразованиÑ. En la función que realiza las acciones del paso son dadas por el bloque N y el elemento de la llave A y, el primer paso pasa con к1, segundo sobre el resultado recibido con el elemento к2 etc. por el esquema siguiente:

k1,k2,k3,k4,k5,k6,k7,k8,k1,k2,k3,k4,k5,k6,k7,k8,k1,k2,k3,k4,k5,k6,k7,k8k8,k7,k6,k5,k4,k3,k2,k1

           El proceso раÑÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ñ‹Ð²Ð°Ð½Ð¸Ñ 32-R pasa del mismo modo, pero los elementos de la llave se apartan en la consecuencia de vuelta:

k1,k2,k3,k4,k5,k6,k7,k8,k8,k7,k6,k5,k4,k3,k2,k1,k8,k7,k6,k5,k4,k3,k2,k1,k8,k7,k6,k5,k4,k3,k2,k1

La práctica.

4.1 Realización del paso básico криптопреобразованиÑ

        Después de que hemos conocido la teoría como cifrar la información ha llegado mirar, como hay una cifración en la práctica.

Los datos iniciales:

           Tomaremos el bloque de la información N = 0102030405060708h, aquí las partes L y R son iguales:

L = 01020304h, R =05060708h, tomaremos la llave:

K = ‘ as28zw37q8397342ui238e2twqm2ewp1 ’ (esto ASCII – los códigos, para mirar la representación hexadecimal, es posible abrir este fichero en el régimen de la presentación en Total Commander habiendo presionado la tecla «F3» y más la tecla «3»). En este sentido los significados de los elementos serán:

k1 = ‘ as28 ’, k2 = ‘ zw37 ’, k3 = ‘ q839 ’, k4 = ‘ 7342’

k5 = ‘ ui23 ’, k6 = ‘ 8e2t ’, k7 = ‘ wqm2 ’, k8 = ‘ ewp1’

Tomaremos también la tabla siguiente de las sustituciones:

Fig. 3

Aquí las líneas son numeradas de 0 hasta 7, las columnas de 0 hasta F.

La prevención: ¡Toda la información, incluso la llave con la tabla de las sustituciones es tomada en calidad del ejemplo para el examen del algoritmo!

La tarea:

Usando «los datos Iniciales», es necesario recibir el resultado de la acción del paso básico криптопреобразованиÑ.

La decisión:

1. Escogemos la parte R = 05060708h y el elemento de la llave k1 = ‘ as28 ’, en el tipo hexadecimal el elemento de la llave se verá así: 61733238h. Ahora hacemos la operación de la suma por mod 232:

Fig. 4

Según parece en el dibujo no teníamos traslado a 33 palas marcado por el color rojo y con el exponente «32». Рsi teníamos otros significados R y el elemento de la llave es podría pasar completamente, y entonces lo menospreciaríamos, y usaban en lo sucesivo solamente las palas marcadas por el color amarillo.

        Cumplo tal operación por la orden del ensamblador add:

           ; eax = R, ebx = ‘ as28’

           add eax, ebx

           ; eax = Smod

El resultado de esta operación Smod = 66793940h

2. Ahora la operación más espinosa, pero si observar por más con atención, ella ya no tal terrible, como parece en el primer tiempo. Presentaremos Smod en el tipo siguiente:

Fig. 5

He tratado de un modo evidente de presentar los elementos Smod en el dibujo, pero explicaré da lo mismo:

s0 = 0, s1 = 4, s2 = 9 etc.

Ahora a partir del elemento menor s0, hacemos la sustitución. Acordando del punto «3.2 paso Básico криптопреобразованиÑ» i – la línea, si – la columna, buscamos en la línea de cero y la columna de cero el significado:

Fig. 6

Así, el significado Smod corriente, no 66793940h, а 66793945h.

Comenzamos sustituir s1, e.d. los cuatro. Usando la primera línea y la cuarta columna (¡s1 = 4!). Miramos el dibujo:

Fig. 7

Ya el significado Smod, no 66793945h, 66793925h. Supongo que ahora el algoritmo de la sustitución le es claro al lector, y puedo decir que después del resultado final Ssimple tendrá la importancia lo siguiente – 11e10325h.

Como esto más fácil es realizado en forma de las órdenes del ensamblador por mí contaré más tarde en el punto siguiente, después de que contaré de la tabla extendida.

  1. Debemos mover el significado Ssimple recibido a 11 palas a la izquierda.

Fig. 8

Según parece esta acción bastante simple, se realiza por una orden de la lengua del ensamblador – rol y el resultado de esta operación Srol es igual 0819288Fh.

4. Ahora hay una parte L de nuestro bloque de la información поXORить con el significado Srol. Tomo el calculador de w2k sp4 y recibo Sxor = 091b2b8bh.

5. Nos apropiamos esta acción total y simplemente, limpía R el significado de la parte L, а la parte L инициализируем por el significado Sxor.

El resultado final:

L = 091b2b8bh, R = 01020304h

4.2 Aumentos de la velocidad del algoritmo

        Ahora hablaremos sobre la optimización del algoritmo por la velocidad. ¡Al proceso de la realización, que o el proyecto, cae tomar en consideración que el programa, que trabaja con los registros más a menudo, que con la memoria trabaja más más rápidamente hasta aquí este juicio también muy importante, porque sobre un bloque de la información de enteros 32 acciones шифрации!

           Cuando realizaba el algoritmo de la cifración en el programa, he obrado del modo siguiente:

1.     Ha escogido la parte del bloque L en el registro eax, а R en edx.

2.     En el registro esi инициализировал por la dirección de la llave extendida, sobre esto más abajo.

3.     En el registro ebx se apropiaba el significado de la dirección de la tabla extendida de las sustituciones, sobre esto también más abajo

4.     Entregaba la información de los puntos 1,2, 3 a la función del ciclo básico 32 – З o 32 – Р, depende de la situación.

Estudiando el algoritmo de la cifración, а, más realizando, de ello me he encontrado con la dificultad de la presentación de los elementos de la llave en la función del ciclo básico. Pero he decidido el problema por medio de la transformación de la llave hasta extendido.

Si mirar el esquema de la presentación de los elementos de la llave en el punto «los ciclos Básicos:“ 32-Z "," 32-R â€Â», se puede presentar nuestra llave para el ciclo básico 32 – З en lo siguiente:

È32-Ç = жas28Т,жzw37Т,жq839Т,С7342Т,жui23Т,С8e2tЖ,жwqm2Т,жewp1Т,

жas28Т,жzw37Т,жq839Т,С7342Т,жui23Т,С8e2tЖ,жwqm2Т,жewp1Т,

жas28Т,жzw37Т,жq839Т,С7342Т,жui23Т,С8e2tЖ,жwqm2Т,жewp1Т,

жewp1Т,жwqm2Т,С8e2tЖ,жui23Т,С7342Т,жq839Т,жzw37Т,жas28Т

E.d. del comienzo van k1, k2, k3, k4, k5, k6, k7, k8 - ‘ as28 ’, ‘ zw37 ’, ‘ q839 ’, ‘ 7342 ’, ‘ ui23 ’, ‘ 8e2t ’, ‘ wqm2 ’, ‘ ewp1 ’ tres veces esta consecuencia repete. Luego los elementos van en el orden inverso, e.d.: k8, k7, k6, k5, k4, k3, k2, k1 - ‘ ewp1 ’, ‘ wqm2 ’, С8e2tЖ,жui23Т,С7342Т,жq839Т,жzw37Т,жas28Т.

¡De antemano he dispuesto en el macizo los elementos en aquel orden, como deben apartarse en 32 – he aumentado la memoria exigida llave en mano, pero se ha librado de algunos procesos del pensamiento, que no me eran necesario, y ha aumentado la velocidad del trabajo del algoritmo, a expensas de la reducción del tiempo del recurso a la memoria! Aquí he descrito solamente la llave para 32 – З, para el ciclo 32 – Р he obrado análogamente, pero usando otro esquema de la presentación de los elementos, que describía también en el punto «los ciclos Básicos:“ 32-Z "," 32-R ».

           Ha llegado el tiempo de describir la realización del trabajo de la función de las sustituciones, como prometía más arriba. No podía describir antes, porque esto exige la introducción de la nueva noción – la tabla extendida de las sustituciones. No podré explicarle que este tal. ¿En cambio la se mostraré, а usted formulen para que este tal – la tabla extendida de las sustituciones?

           Así, para comprender que tal la tabla extendida de las sustituciones nos será necesaria la tabla de las sustituciones, para el ejemplo tomaré aquella que es representada en fig. 3.

           Por ejemplo, como nosotros fue necesario sustituir, el número 66793940h. Lo presentaré en el tipo siguiente:

Fig. 9

¡Ahora si tomar los elementos s1, s0, e.d. ¡el byte menor, el resultado de la función de la sustitución será igual 25h! Habiendo leído el artículo de Andrei Vinokurova, que he llevado en el punto «la Lista usado la literatura», descubriréis realmente que si tomar dos líneas se puede recibir el macizo que permite rápidamente encontrar a los elementos de la sustitución por medio de la orden del ensamblador xlat. ¡Hablan se puede y de otro modo más rápido, pero Andrei Vinokurov ha gastado en la investigación de los algoritmos rápidos para la realización del GOST unos cuatro años! Pienso, no vale la pena inventar la bicicleta, cuando él es ya.

           Así, sobre el macizo:

Tomaremos las dos primeras líneas de cero y primero, crearemos el macizo a 256 bytes. Ahora observamos un rasgo que si es necesario transformar 00h, el resultado será 75h (se apoyamos en fig. 3) – ponemos este significado en el macizo al desplazamiento 00h. Tomamos el significado 01h, el resultado de la función de las sustituciones 79h, lo ponemos en el macizo al desplazamiento 01 etcétera hasta 0FFh, que nos dará 0FCh, que pondremos en el macizo por el desplazamiento 0FFh. Aquí hemos recibido la tabla extendida de las sustituciones para el primer grupo de las líneas: primero y de cero. Pero hay todavía tres grupos: el segundo p. 2, p. 3, el tercer p. 4, p. 5, el cuarto p. 6, p. 7. Con esto por tres grupos obramos por el mismo modo, así como con primero. ¡El resultado – la tabla extendida de las sustituciones!

           Ahora es posible realizar el algoritmo, que hará la sustitución. Tomamos para esto los códigos iniciales, que ha puesto Andrei Vinokurov en la página, mira «la Lista de la literatura usada».

           lea ebx, extented_table_simple

           mov eax, [poner el número que es necesario sustituir]

REPT 3

           xlat

           ror eax, 8d

           add ebx, 100h  ; el tránsito a dos nudos siguientes

ENDM

           xlat

           sub ebx, 300h  ; que en lo sucesivo ebx muestre a la tabla

¡Ahora todavía un rasgo, no sólo hemos sustituido por las acciones anteriores, sino también han movido el número a 8 palas a la izquierda! A nosotros se queda solamente mover el número todavía en 3 pala a la izquierda:

rol eax, 3h

¡Y recibimos el resultado de la operación rol eax, 11!

           Soy más grande que nada puedo añadir por la optimización, la única cosa que puedo subrayar lo que hablaba más arriba – usen los registros más a menudo, que el recurso a la memoria. Pienso estas palabras solamente para los novatos, experto y sin mis palabras lo comprenden perfectamente :).

Las exigencias a la información clave.

           Como es dicho en el artículo de Andrei Vinokurova la llave escogen según dos criterios:

- El criterio de la distribución equiprobable битов entre los significados 1 y 0. Habitualmente en calidad del criterio de la distribución equiprobable битов – actúa el criterio Pirsona ("hi-cuadrado").

Esto significa por la llave, puede en general cualquier número. ¡Es decir a la formación del bit de clave siguiente la probabilidad de su inicialización por la unidad o el cero 50/50!

¡Pido notar que la llave de ocho elementos, cada uno por 32 pala, así de todo en clave de 32*8 = 256 битов y la cantidad de las llaves posibles 2256! ¿Esto no te sorprende? :)

- El criterio de las series.

           Si miramos nuestra llave, que he llevado en el punto «4.1 Realización del paso básico криптопреобразованиÑ», notaréis que es justa la anotación siguiente:

Fig. 10

Por una frase el significado k1 no debe repetir no en k2, no en que u otro elemento de la llave.

Es decir la llave, que hemos escogido en calidad del examen del algoritmo de la cifración, corresponde completamente dos criterios llevados más arriba.

Ahora sobre la elección de la tabla de las sustituciones:

Ahora hablaremos como escoger correctamente la tabla de las sustituciones. La exigencia básica a la elección de las tablas de las sustituciones es un fenómeno «неповторÑемоÑти» de los elementos, cada uno de que a dimensión 4 pala. Como veíais ya más arriba, cada línea de la tabla de las sustituciones consiste de los significados 0h, 1h, 2h, 3h, …, 0fh. Así la exigencia básica dice sobre lo que en cada línea hay unos significados 0h, 1h, 2h, …, 0fh y cada tal significado en una copia. Por ejemplo, la consecuencia:

1 2 3 4 5 6 7 8 9 A B C D E F

¡Corresponde completamente a esta exigencia, pero con todo! No es recomendable escoger tal consecuencia en calidad de la línea. ¡Puesto que si daréis el significado a la entrada de la función, que se apoya en tal línea, a la salida reciban el mismo significado! ¿No creéis? Entonces tomen el número 332DA43Fh y tales ocho líneas, en calidad de la tabla de las sustituciones. ¡Realicen la operación de la sustitución, y le aseguro, a la salida reciban el número 332DA43Fh! ¡Es decir mismo que habéis dado a la entrada de la operación! ¿Рesto no es el indicio del buen tono a la cifración, y si era? :)

¡Esto era una exigencia, el criterio siguiente habla sobre lo que – cada uno las palas del bloque de salida debe ser es estadístico es independiente del bloque de entrada, cada la pala!

¿Cómo esto se ve más fácilmente? He aquí como, por ejemplo, hemos escogido del número llevado más arriba el elemento s0 = 0Fh, 01111b. ¡La probabilidad de lo que vamos a sustituir primero las palas por la unidad o el cero es igual 0,5! La probabilidad de la sustitución la segunda tercera y cuarta pala, cada uno las palas, examinamos por separado, por las unidades o los ceros es igual también 0, 5. ¡En la elección s1 = 0Eh, la probabilidad de lo que nosotros de cero de las palas, а es «0», sustituiremos por el cero o la unidad es igual también – 0,5! ¡Así, conforme a este criterio entre la sustitución de cero битов los elementos s0, s1 no existen ninguna ley! Sí, podíais sustituir por las unidades, pero podíais poner también y los ceros. :)

Para la apreciación de la tabla según este criterio es posible construir la tabla de los coeficientes las correlaciones contadas por la fórmula:

Donde

0≤i≤3

0≤j≤3

N=4

- Si p = 1, el significado la pala j a la salida es igual al significado la pala i a la entrada a cualesquiera combinaciones de las palas a la entrada;

- Si p =-1, el significado la pala j a la salida siempre es la inversión de entrada la pala i;

- Si p = 0, el día festivo de las palas j con la probabilidad igual acepta los significados 0 y 1 a cualquier significado fijado de entrada la pala i.

Tomaremos el ejemplo de una línea:

D

B

4

1

3

F

5

9

0

A

E

7

6

8

2

C

Expondremos en "componen":

La entrada

La salida

Contaremos un coeficiente por la fórmula llevado más arriba. Que era más fácil comprender, cómo esto se hace, explicaré más detalladamente:

- Tomamos las 0 palas del 0 (0) a la entrada y las 0 palas del 0 a la salida (1) realizamos la operación 0 XOR 1 = 1.

- Tomamos las 0 palas del 1 (1) a la entrada y las 0 palas del 1 a la salida (1) realizamos la operación 1 XOR 1 = 0.

- Tomamos las 0 palas del 2 (0) a la entrada y las 0 palas del 2 a la salida (0) realizamos la operación 0 XOR 0 = 0.

- Tomamos las 0 palas del 3 (1) a la entrada y las 0 palas del 3 a la salida (1) realizamos la operación 1 XOR 1 = 0.

… ….

Habiendo pasado sucesivamente las operaciones XOR en tal consecuencia, calculamos la cantidad de todos los significados no de cero, recibimos el significado 6. De aquí P00 = 1 (6/24-1) = 0,25. Así, se ha aclarado que el significado la pala 0 a la salida es igual al significado la pala 0 a la entrada en 4 casos de 16;

La tabla total de los coeficientes:

La entrada

La salida

0

1

2

3

0

0,25

0,00

0,00

-0,75

1

0,00

-0,25

0,00

0,25

2

-0,25

0,25

0,00

0,00

3

0,50

-0,25

0,00

0,00

Según parece de la tabla de los coeficientes correlativos de las palas 3 a la entrada es invertido relativamente la pala 0 a la salida en 14 casos de 16 que compone 87.5 % Aquí esto es ya no admisible para los sistemas normales de la cifración. Tomaremos para cambiar todavía примерчик:

9

8

3

A

C

D

7

E

0

1

B

2

4

5

F

6

La tabla de los coeficientes será que sigue (a quien no puede contar perezosamente)

La entrada

La salida

0

1

2

3

0

-0,25

0,00

0,00

0,00

1

0,00

1,00

0,00

0,00

2

0,00

0,00

1,00

0,00

3

0,00

0,00

0,00

-0,50

¡Y bien, en esta tabla del asunto van aún peor – las palas de 1 y 2 grupo se quedan invariable! Криптоаналитику es, donde dar vueltas Tomando en cuenta todas estas exigencias por el exceso :) simple («en la frente») eran encontradas las tablas del traslado correspondiente a la teoría indicada (al día de hoy – 1276 combinaciones) Aquí algunos de ellos:

09 0D 03 0E-06 02 05 08-0A 07 00 04-0C 01 0F 0B

00 05 0A 07-03 08 0F 0C-0E 0B 04 09-0D 06 01 02

06 0B 0F 00-0C 01 02 0D-08 07 09 04-05 0A 03 0E

04 0E 00 09-0B 01 0F 06-03 0D 07 0A-0C 02 08 05

04 02 08 0E-05 0F 03 09-0B 01 0D 07-0A 0C 06 00

07 03 09 0C-08 00 06 0F-0E 04 01 0A-0D 0B 02 05

06 0F 03 08-0D 04 0A 01-09 02 05 0C-00 0B 0E 07

0C 06 08 01-03 09 07 0E-0B 05 0F 02-04 0A 00 0D

04 0B 09 06-0E 01 00 0F-0A 05 03 0C-0D 02 07 08

00 0E 0F 01-07 08 09 06-04 0B 0A 05-03 0D 0C 02

0F 09 01 07-04 0A 08 06-0E 00 02 0C-05 03 0B 0D

0A 03 04 01-05 0C 0B 0E-08 06 0F 0D-07 09 00 02

0B 06 0F 01-04 0A 08 05-00 0D 0C 02-07 09 03 0E

0C 03 02 08-0D 06 0B 05-07 09 04 0F-0A 00 01 0E

02 0B 0F 04-09 00 06 0D-05 0E 01 08-0C 07 0A 03

La lista de la literatura usada.

  1. El artículo de Andrei Vinokurova:

El algoritmo de la cifración el GOST 28147-89, su uso y la realización

Para los ordenadores de la plataforma Intel x86.

(Se puede encontrar a su destino: http://www.enlight.ru/crypto/frame.htm).

Inmediatamente y los códigos iniciales, de la realización del algoritmo de la cifración.

  1. El artículo de Horsta Fajstelja:

La criptografía y la seguridad Informática.

(Se puede encontrar a la misma dirección así como el artículo anterior)

  1. Ross N. Williams:

La dirección elemental por CRC a los algoritmos del descubrimiento de las faltas

Es puesta en el sitio www.wasm.ru.

Del agradecimiento.

           Quisiera expresar el agradecimiento a todos los visitantes del foro www.wasm.ru. Pero desearía especialmente agradecer ChS, que es conocido en el momento presente, como SteelRat, él me ha ayudado comprender tales cosas, de que, probable, no comprendería nunca, а así como la ayuda a la escritura del punto: «las Exigencias a la información clave», básico la parte del punto dado les era escrita. Es profundamente reconocido También al empleado КГТУ a ellos. A.N.Tupolev y el pecado no notar a Chris Kasperski, que él es y Volodya / wasm.ru por sus instrucciones. Oh, me pasa en propiedad de :). Así como quiero notar Sega-Zero / Callipso pero que ha llevado hasta mi razón algunos dédalos matemáticos.

Esto, tal vez, todo que querría decirle.

Seré, es reconocido a la crítica o las preguntas vinculadas a este artículo o simplemente los consejos. Mis datos de contacto: int20h@yandex.ru, ICQ – 337310594.

Atentamente Evil ` s Interrupt.

+ P.S.: por este artículo no trataba de aventajar a alguien. Era escrita intencionadamente, facilitar el estudio del GOST y si a usted han resultado las dificultades, esto no significa que soy culpable en esto. ¡Sé son razonables, y armen de paciencia, todo a usted bueno!