Fortaleza de un sistema de cifrado, clasificación de los sistemas de cifrado por fortaleza. Tipos de ataques al sistema de cifrado. Principales etapas del desarrollo de los sistemas criptográficos.

Ahora, habiendo aprendido el propósito de la criptografía, familiaricémonos con los términos básicos que usaremos al estudiar los métodos criptográficos de protección de la información.

Cifrar– un conjunto de métodos previamente acordados para transformar el mensaje secreto original con el fin de protegerlo.

Los mensajes originales generalmente se llaman en textos claros. En la literatura extranjera, el término se utiliza para texto abierto. texto plano.

Símbolo es cualquier carácter, incluida una letra, un número o un signo de puntuación.

Alfabeto- un conjunto finito de símbolos utilizados para codificar información. Por ejemplo, el alfabeto ruso contiene 33 letras de la A a la Z. Sin embargo, estos treinta y tres caracteres no suelen ser suficientes para escribir mensajes, por lo que se complementan con un espacio, un punto, una coma y otros caracteres. El alfabeto de números arábigos son los símbolos 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. Este alfabeto contiene 10 caracteres y se puede utilizar para escribir cualquier número natural. Cualquier mensaje también se puede escribir utilizando el alfabeto binario, es decir, utilizando únicamente ceros y unos.

El mensaje recibido después de la transformación utilizando cualquier cifrado se llama mensaje cifrado(texto cerrado, criptograma). En la literatura extranjera, el término se utiliza para texto cerrado. texto cifrado.

La conversión de texto sin formato en un criptograma se llama cifrado. La acción inversa se llama descifrado. En la literatura en idioma inglés, los términos "cifrado/descifrado" corresponden a los términos "cifrar/descifrar".

Llave– información necesaria para el cifrado y descifrado de mensajes.

Desde el punto de vista del idioma ruso, los términos "descifrado" y "descifrado" son sinónimos. Sin embargo, en los trabajos sobre criptografía de las últimas décadas, estas palabras suelen distinguirse. Supondremos que los términos "descifrado" y "descifrado" no son sinónimos. Supongamos que el destinatario legal del mensaje (el que conoce la clave) lo está descifrando, y la persona a quien no está destinado el mensaje lo está descifrando, tratando de comprender su significado.

Sistema de cifrado, o sistema de cifrado, es cualquier sistema que puede utilizarse para cambiar de forma reversible el texto de un mensaje para hacerlo incomprensible para todos excepto para aquellos a quienes está destinado.

Fuerza criptográfica es una característica de un cifrado que determina su resistencia al descifrado sin conocer la clave (es decir, la capacidad de resistir el criptoanálisis).

Así, teniendo en cuenta todas las definiciones realizadas, podemos dar una definición más precisa de la ciencia de la “criptografía”. Criptografía estudia la construcción y el uso de sistemas de cifrado, incluidas sus fortalezas, debilidades y grado de vulnerabilidad a diversos métodos de ataque.

Todos los métodos de transformación de información con el fin de protegerla contra el acceso no autorizado se dividen en dos grandes grupos: métodos de cifrado de clave privada y métodos de cifrado de clave pública. Cifrado de clave privada(cifrado de clave secreta o cifrado simétrico) ha sido utilizado por los seres humanos durante bastante tiempo. Estos métodos utilizan la misma clave para cifrar y descifrar datos, que ambas partes intentan mantener en secreto para el enemigo. Cifrado de clave pública(cifrado asimétrico) comenzó a utilizarse para sellar criptográficamente información sólo en la segunda mitad del siglo XX. Este grupo incluye métodos de cifrado que utilizan dos claves diferentes para cifrar y descifrar datos. En este caso, una de las claves (clave pública) se puede transmitir a través de un canal de comunicación abierto (desprotegido). Firma electrónica (digital) es un bloque de datos generalmente adjunto a un mensaje, obtenido mediante una transformación criptográfica. Una firma electrónica permite verificar la autoría y autenticidad del mensaje cuando otro usuario recibe un texto.

Sistema de seguridad de la información criptográfica.– un sistema de seguridad de la información que utiliza métodos criptográficos para cifrar datos.

3.5.3 Modelos y métodos de cifrado/descifrado de mensajes discretos

Los mensajes discretos pueden representarse mediante señales que tienen un número finito de estados. Se trata de diversos tipos de datos, textos impresos, así como señales de voz e imágenes, si previamente se convierten en señales discretas (digitales).

Un modelo matemático de un sistema de cifrado/descifrado de mensajes discretos es un par de funciones.

mi = f(M,K w), M = g(E,K d),

que convierten el mensaje M en criptograma E utilizando la clave de cifrado K w y, a la inversa, el criptograma E en mensaje M utilizando la clave de descifrado K d. Ambas funciones que definen el criptosistema deben cumplir los siguientes requisitos:

· las funciones f(M, Kw) y g(E, Kd) con argumentos conocidos se calculan simplemente;

· la función g(E,?) con clave desconocida Kd es difícil de calcular.

Se supone que la clave de descifrado K d es desconocida para los usuarios ilegales, aunque pueden conocer las funciones f y g, así como la clave de cifrado K sh, si no coincide con la clave K d. el llamado principio de Kaziski.

Es necesario distinguir entre tres tipos principales de ataques al criptosistema:

· sólo con un criptograma E conocido;

· dado un criptograma conocido E y un mensaje conocido M, que corresponde a una determinada parte del criptograma obtenido utilizando la misma clave (ataque con un mensaje abierto parcialmente conocido);

· con un criptograma conocido y una parte del mensaje especialmente seleccionada correspondiente a una parte del criptograma obtenido con la misma clave (ataque con un mensaje abierto parcialmente seleccionado).

Los criptosistemas modernos se consideran fuertes si son resistentes a los tres tipos de ataques.

Si la clave de cifrado es igual a la clave de descifrado, es decir

Kw = Kd = K

entonces el sistema se llama simétrico (de una sola tecla). Para que funcione, los puntos de cifrado y descifrado deben tener las mismas claves.

Si Ksh no es igual a Kd, entonces el sistema de cifrado se denomina asimétrico (de dos claves). En este caso, la clave Ksh se entrega al punto de cifrado y la clave Kd se entrega al punto de descifrado. Obviamente, ambas claves deben estar conectadas por una dependencia funcional K d = j(K w), pero de manera que utilizando la clave de cifrado conocida K sh sería imposible recuperar la clave de descifrado K d. Esto significa que para un sistema de cifrado asimétrico j. () debería ser una función computable difícil. En un sistema de este tipo, es posible distribuir en secreto sólo sus claves de descifrado entre usuarios legítimos y hacer públicas las claves de cifrado, incluso para su publicación. Por tanto, el criptosistema en cuestión se denomina sistema de clave pública.

El primero de estos tipos de cifrado implica la presencia de cierta información (clave), cuya posesión permite cifrar y descifrar el mensaje.

Por un lado, este esquema tiene la desventaja de que, además de un canal abierto para transmitir el cifrado, también es necesario tener un canal secreto para transmitir la clave y, además, si se filtra información sobre la clave, Es imposible demostrar de cuál de los dos corresponsales se produjo la filtración.

Por otro lado, entre los cifrados de este grupo en particular existe el único esquema de cifrado del mundo que tiene fuerza teórica absoluta. Todos los demás pueden descifrarse al menos en principio. Un esquema de este tipo es el cifrado normal (por ejemplo, una operación XOR) con una clave cuya longitud es igual a la longitud del mensaje. En este caso, la clave sólo se debe utilizar una vez. Cualquier intento de descifrar dicho mensaje es inútil, incluso si hay información a priori sobre el texto del mensaje. Al seleccionar una clave, puede obtener cualquier mensaje como resultado.

Los cifrados de clave pública implican la presencia de dos claves: una pública y otra privada; uno se utiliza para cifrar y el otro para descifrar mensajes. La clave pública se publica y se comunica a todos, mientras que la clave secreta la conserva su propietario y es la clave para el secreto de los mensajes. La esencia del método es que lo que se cifra con la clave secreta sólo se puede descifrar con la clave pública y viceversa. Estas claves se generan en pares y tienen una correspondencia uno a uno entre sí. Además, es imposible calcular otra a partir de una clave.

Un rasgo característico de los cifrados de este tipo, que los distingue favorablemente de los cifrados con clave secreta, es que aquí la clave secreta sólo la conoce una persona, mientras que en el primer esquema deben ser conocidas al menos dos. Esto proporciona las siguientes ventajas:

no se requiere ningún canal seguro para enviar la clave secreta, toda la comunicación se realiza a través de un canal abierto;

“lo que dos saben, lo sabe un cerdo” - presencia el único una copia de la clave reduce la posibilidad de pérdida y permite establecer una responsabilidad personal clara por mantener el secreto;

la presencia de dos claves permite el uso de este sistema de cifrado en dos modos: comunicación secreta y firma digital.

El ejemplo más simple de los algoritmos de cifrado considerados es el algoritmo RSA. Todos los demás algoritmos de esta clase no se diferencian fundamentalmente de él. Se puede decir que, en general, RSA es el único algoritmo de clave pública.

09.07.2003

¿Qué es el cifrado?

El cifrado ha sido utilizado por la humanidad desde el momento en que apareció la primera información secreta, es decir, aquella información a la que el acceso debería estar limitado. Esto fue hace mucho tiempo; por ejemplo, uno de los métodos de cifrado más famosos lleva el nombre de César, quien, si no lo inventó él mismo, lo utilizó activamente (ver recuadro).

La criptografía garantiza que el significado de un mensaje esté oculto y se revele mediante el descifrado utilizando claves y algoritmos especiales. Entendemos la clave como un estado secreto específico de los parámetros de los algoritmos de cifrado y descifrado. Conocer la clave permite leer el mensaje secreto. Sin embargo, como verás a continuación, el desconocimiento de la clave no siempre garantiza que el mensaje no pueda ser leído por un extraño.

El proceso de descifrar un cifrado sin conocer la clave se llama criptoanálisis. El tiempo necesario para descifrar un cifrado está determinado por su solidez criptográfica. Cuanto más grande es, más "fuerte" es el algoritmo de cifrado. Es incluso mejor si inicialmente es imposible saber si el resultado del hack es alcanzable.

Métodos básicos de cifrado modernos.

Entre los distintos métodos de cifrado, se pueden distinguir los siguientes métodos principales:

  • Algoritmos de reemplazo o sustitución: los caracteres del texto original se reemplazan con caracteres de otro (o el mismo) alfabeto de acuerdo con un esquema predeterminado, que será la clave de este cifrado. Por otra parte, este método prácticamente no se utiliza en los criptosistemas modernos debido a su fuerza criptográfica extremadamente baja.
  • Algoritmos de permutación: los caracteres del texto original se intercambian según un principio determinado, que es la clave secreta. El algoritmo de permutación en sí tiene una fuerza criptográfica baja, pero se incluye como elemento en muchos criptosistemas modernos.
  • Algoritmos gamma: los caracteres del texto original se agregan a los caracteres de una determinada secuencia aleatoria. El ejemplo más común es el cifrado de archivos "username.pwl", en el que el sistema operativo Microsoft Windows 95 almacena contraseñas para los recursos de red de un usuario determinado (contraseñas para iniciar sesión en servidores NT, contraseñas para acceso telefónico a Internet, etc.) .

Cuando un usuario ingresa su contraseña al iniciar sesión en Windows 95, se genera una gamma (siempre la misma) utilizando el algoritmo de cifrado RC4, que se utiliza para cifrar las contraseñas de la red. La simplicidad de la selección de contraseña en este caso se debe al hecho de que Windows siempre prefiere el mismo esquema de color.

  • Algoritmos basados ​​en transformaciones matemáticas complejas del texto fuente según una fórmula determinada. Muchos de ellos utilizan problemas matemáticos sin resolver. Por ejemplo, el algoritmo de cifrado RSA ampliamente utilizado en Internet se basa en las propiedades de los números primos.

Criptosistemas simétricos y asimétricos.

Antes de pasar a los algoritmos individuales, consideremos brevemente el concepto de criptosistemas simétricos y asimétricos. Generar una clave secreta y cifrar un mensaje con ella es sólo la mitad de la batalla. Pero, ¿cómo se puede enviar esa clave a alguien que debe utilizarla para descifrar el mensaje original? La transmisión de la clave de cifrado se considera uno de los principales problemas de la criptografía.

Permaneciendo dentro del marco de un sistema simétrico (llamado así porque se utiliza la misma clave para cifrar y descifrar), es necesario disponer de un canal de comunicación fiable para transmitir la clave secreta. Pero este canal no siempre está disponible y, por eso, los matemáticos estadounidenses Diffie, Hellman y Merkle desarrollaron el concepto de clave pública y cifrado asimétrico en 1976. En tales criptosistemas, sólo la clave para el proceso de cifrado está disponible públicamente y el procedimiento de descifrado sólo lo conoce el propietario de la clave secreta.

Por ejemplo, cuando quiero que me envíen un mensaje, genero claves públicas y privadas. Te lo envío, cifras el mensaje y me lo envías. Sólo yo puedo descifrar el mensaje, ya que no le di la clave secreta a nadie. Por supuesto, ambas claves están vinculadas de una manera especial (de diferentes maneras en cada criptosistema), y la distribución de la clave pública no destruye la fortaleza criptográfica del sistema.

En sistemas asimétricos, se debe cumplir el siguiente requisito: no existe ningún algoritmo (o aún no se conoce) que pueda derivar el texto original a partir del criptotexto y la clave pública. Un ejemplo de este tipo de sistema es el conocido criptosistema RSA.

algoritmo RSA

El algoritmo RSA (después de las primeras letras de los apellidos de sus creadores Rivest-Shamir-Adleman) se basa en las propiedades de los números primos (y de los muy grandes). Los números primos son aquellos números que no tienen más divisores que ellos mismos y el uno. Y los números coprimos son aquellos números que no tienen divisores comunes distintos de 1.

Primero, elijamos dos números primos muy grandes (se necesitan números primos grandes para construir claves criptográficas grandes. Por ejemplo, el programa Unix ssh-keygen genera claves de 1024 bits de longitud de forma predeterminada).

Definamos el parámetro norte como resultado de la multiplicación pag Y q. Elijamos un número aleatorio grande y llamémoslo d, y debe ser coprimo con el resultado de la multiplicación (p -1)*(q -1).

Encontremos un número e para el cual la relación es verdadera.

(e*d) mod ((p -1)*(q -1)) = 1

(modo- resto de la división, es decir, si e multiplicado por d se divide por ((p -1)*(q -1)), entonces el resto es 1).

La clave pública es un par de números. e y n, y cerrado - d y n.

Al cifrar, el texto fuente se trata como una serie de números y realizamos una operación en cada número.

C(i)= (M(i) e) mod n.

El resultado es la secuencia C(yo), que conformará el criptotexto. La decodificación de la información se produce según la fórmula.

M(i) = (C(i) d) mod n.

Como puede ver, el descifrado requiere conocer la clave secreta.

Probémoslo con números pequeños.

vamos a instalar p=3,q=7. Entonces n=p*q=21. Elegir d como 5. De la fórmula (e*5) mod 12=1 calcular e=17. Clave pública 17, 21 , secreto - 5, 21 .

Cifremos la secuencia "12345":

C(1)= 1 17 módulo 21= 1

C(2)= 2 17 módulo 21 =11

C(3)= 3 17 módulo 21= 12

C(4)= 4 17 módulo 21= 16

C(5)= 5 17 módulo 21= 17

Criptotexto - 1 11 12 16 17.

Comprobemos el descifrado:

M(1)= 1 5 módulo 21= 1

M(2)= 11 5 módulo 21= 2

M(3)= 12 5 módulo 21= 3

M(4)= 16 5 módulo 21= 4

M(5)= 17 5 módulo 21= 5

Como puede ver, el resultado coincidió.

El criptosistema RSA se utiliza ampliamente en Internet. Cuando se conecta a un servidor seguro a través de SSL, instala un certificado WebMoney en su PC o se conecta a un servidor remoto usando Open SSH o SecureShell, todos estos programas utilizan cifrado de clave pública utilizando ideas del algoritmo RSA. ¿Es este sistema realmente tan confiable?

Competiciones de piratería RSA

Desde su creación, RSA ha estado constantemente sujeta a ataques de fuerza bruta. En 1978, los autores del algoritmo publicaron un artículo en el que presentaban una cadena cifrada utilizando el método que acababan de inventar. La primera persona que descifrara el mensaje recibió una recompensa de 100 dólares, pero para ello era necesario dividir un número de 129 dígitos en dos factores. Esta fue la primera competencia en descifrar RSA. El problema se resolvió sólo 17 años después de la publicación del artículo.

La fortaleza criptográfica de RSA se basa en la suposición de que es extremadamente difícil, si no imposible, determinar la clave privada a partir de la clave pública. Para ello, era necesario resolver el problema de la existencia de divisores de un número entero enorme. Hasta ahora, nadie lo ha resuelto utilizando métodos analíticos y el algoritmo RSA sólo puede descifrarse mediante la fuerza bruta. Estrictamente hablando, la afirmación de que el problema de factorización es difícil y que romper el sistema RSA es difícil tampoco está probada.

El número obtenido como resultado del procesamiento del texto del mensaje mediante la función hash se cifra mediante el algoritmo RSA en la clave privada del usuario y se envía al destinatario junto con la carta y una copia de la clave pública. El destinatario, utilizando la clave pública del remitente, realiza la misma función hash en el mensaje entrante. Si ambos números son iguales, esto significa que el mensaje es genuino, pero si se ha cambiado al menos un carácter, los números no coincidirán.

Uno de los clientes de correo electrónico más comunes en Rusia, el programa The Bat, tiene capacidades integradas para agregar firmas digitales a las cartas (preste atención al elemento del menú Privacidad al editar una carta). Lea más sobre esta técnica en el artículo (ver “PC World”, No. 3/02).

Arroz. 3

Criptografía

La criptografía es la ciencia de los principios, medios y métodos de transformar la información para protegerla del acceso no autorizado y la distorsión. Últimamente se ha estado desarrollando muy, muy rápidamente. Es una carrera emocionante e interminable que requiere mucho tiempo y esfuerzo: los criptoanalistas descifran algoritmos que hasta hace poco eran estándares y ampliamente utilizados. Por cierto, recientemente los matemáticos Dan Goldston (EE.UU.) y Kem Ildirim (Turquía) demostraron la primera regularidad en la distribución de números primos (estas regularidades no se habían observado hasta ahora). Los números primos se encuentran en el eje numérico en ciertos grupos, lo que los hace algo más fáciles de encontrar.

Las investigaciones matemáticas realizadas en todo el mundo conducen constantemente a nuevos descubrimientos. Quién sabe, tal vez estemos a punto de romper el algoritmo RSA u otros criptosistemas basados ​​en problemas matemáticos no resueltos.

Oleg Bunin- especialista en desarrollo de software para grandes proyectos de Internet, empleado de la empresa Rambler, http://www..htm).

  • Introducción a la criptografía / Ed. V.V. Yáshchenko. M.: MTsNMO, 2000.
  • Nosov V. A. Breve reseña histórica del desarrollo de la criptografía // Actas de la conferencia "La Universidad de Moscú y el desarrollo de la criptografía en Rusia", MSU, 17 al 18 de octubre de 2002.
  • Salomaa A. Criptografía de clave pública. M., 1996.
  • Zimmerman F. PGP: cifrado de clave pública para todos.
  • Sistema de cifrado César

    Un ejemplo de algoritmo de reemplazo es el sistema de cifrado Caesar. Este método se basa en sustituir cada letra del mensaje por otra desplazándose del original en un número fijo de caracteres. Intente descifrar la cuarteta de Omar Khayyam (tiempo para completarla: 10 minutos).

    RLZ YOMEYZ AVBZHU IYZAVLU, BZHSCHLU ZHSCHEZZHZ ZHUOSCHZ, EYSH YSHCHAZhFO IYSHCHYVESH BSHCHIZHV EESH ZHSCHRSCHG: LF EMRSYU ЪZEZESCHG, RYU RLZ IZISHCHEZ YUKLU, IN EMRSYU BMEU ZEVZH, RYO OYYUKLU K DUYO IZISHCHEZ.

    ¿Lo lograste? Aquí está la respuesta:

    Para vivir tu vida sabiamente, necesitas saber mucho,

    Recuerde dos reglas importantes para comenzar:

    Preferirías morir de hambre antes que comer cualquier cosa.

    Y es mejor estar solo que con cualquiera.

    Clave de descifrado: desplazar siete caracteres (tomar el séptimo) hacia la izquierda alfabéticamente. El alfabeto está en bucle. Las mayúsculas y minúsculas no son sensibles.

    Windows y contraseñas

    ¿Cómo cifra Windows las contraseñas?

    El sistema toma la contraseña, la convierte a mayúsculas, la recorta a 14 caracteres, luego los divide en dos mitades de 7, cifra cada uno por separado y lo guarda de esa manera, lo que facilita un poco el hackeo. Por cierto, cuando se te ocurra una contraseña, ten en cuenta que una combinación de más de 14 caracteres tiene poco significado.

    Concurso AES (Estándar de cifrado avanzado)

    En los años 80 en los EE. UU. Adoptaron un estándar de cifrado simétrico para uso interno: DES ((Estándar de cifrado de datos, existe un estándar similar en Rusia). Pero en 1997, cuando quedó claro que la clave DES de 56 bits no era suficiente para una seguridad confiable criptosistema, el American Standards Institute anunció un concurso para un nuevo algoritmo estándar. Entre 15 opciones, se eligió el mejor: el algoritmo belga Rijndael (su nombre se compone de los nombres de los autores: Rijmen y Daemen, leídos como "Rijndael". Este algoritmo ya está integrado en varias herramientas criptográficas suministradas al mercado por otros finalistas). Los ganadores del concurso fueron MARS, RC6, Serpent, TwoFish. Todos estos algoritmos resultaron ser bastante robustos y resistieron con éxito todos los métodos de criptoanálisis conocidos. .

    Funciones hash criptográficas

    Las funciones hash criptográficas convierten datos de entrada de cualquier tamaño en una cadena de tamaño fijo. Es extremadamente difícil encontrarles:

    • dos conjuntos de datos diferentes con el mismo resultado de transformación (resistencia a la colisión); por ejemplo, el número de operaciones aritméticas necesarias para encontrar un bloque de datos que también tenga un mensaje corto para la función hash MD5 es aproximadamente 2·64;
    • valor de entrada basado en un resultado de hash conocido (irreversibilidad); para MD5, el número estimado de operaciones necesarias para calcular el mensaje original es 2128.

    En números anteriores descubrimos que criptografía es una disciplina que estudia formas de proteger los procesos de interacción de información de intentos intencionados de desviarlos de las condiciones del flujo normal, basándose en transformaciones criptográficas, es decir, transformaciones de datos que utilizan algoritmos secretos.

    Desde la antigüedad hasta nuestros días, la tarea más importante de la criptografía es proteger los datos transmitidos a través de canales de comunicación o almacenados en sistemas de procesamiento de información del acceso no autorizado y de la distorsión deliberada. La criptografía resuelve este problema cifrando los datos protegidos, lo que implica el uso de las dos transformaciones inversas siguientes: Antes de enviar datos a través de una línea de comunicación o antes de almacenarlos, se someten a
    cifrado; - para restaurar los datos originales a partir de los datos cifrados, se le aplica un procedimiento

    descifrado.

    La siguiente Figura 1 muestra el esquema de conversión de datos durante el cifrado: Fig.1.

    Esquema de conversión de datos durante el cifrado. Cifrar Hay un par de algoritmos que implementan cada una de estas transformaciones. El secreto del segundo de ellos hace que los datos sean inaccesibles para accesos no autorizados, y el secreto del primero imposibilita la imposición de datos falsos.

    Obtener datos abiertos a partir de datos cifrados sin conocer el algoritmo de descifrado se llama
    descifrado

    . Inicialmente, el cifrado se utilizaba para proteger los mensajes transmitidos de ambas amenazas, pero luego se demostró que podía proteger los datos de modificaciones no autorizadas sólo si se cumplían ciertas condiciones, a saber: El mensaje cifrado contiene mucha redundancia;

    - el proceso de cifrado "mezcla" bien las unidades estructurales del mensaje (bits, símbolos, etc.). Dado que estas condiciones no siempre se cumplen, en el caso general el cifrado no es un medio Las transformaciones de cifrado y descifrado deben satisfacer la siguiente propiedad:

    T = D(E(T))

    La segunda condición que debe cumplir un cifrado es: debe... cifrar datos, es decir, hacerlos incomprensibles para los no iniciados.

    En otras palabras, no debería haber conexiones fácilmente rastreables entre los datos originales y los cifrados. Además, el cifrado debe ser criptorresistente, es decir, resistente a los intentos de descifrar mensajes. Está claro que la cuestión de la seguridad del cifrado es la principal en esta rama de la criptografía, y comenzaremos su consideración descubriendo qué puede servir como medida de seguridad.

    El mensaje enviado antes de llegar al destinatario es incierto para él y, por supuesto, para el atacante; si no fuera así, no tendría ningún sentido enviarlo. Que sea posible enviar mensajes. T1,T2,...,Tn con probabilidad p1, p2,..., pn respectivamente. Luego mida incertidumbre del mensaje para cualquiera que tenga esta información a priori, puede servir el valor de la expectativa matemática del logaritmo de la probabilidad de un mensaje, tomado con un signo menos;

    por algunas razones es conveniente elegir 2 como base del logaritmo: Esta cantidad tiene un significado físico completamente comprensible: el número de bits de información que necesario

    transferencia en promedio para eliminar completamente la incertidumbre. Si no hay información a priori sobre el mensaje aparte de su tamaño de N bits, entonces todas las opciones posibles de 2 N se consideran igualmente probables y entonces la incertidumbre del mensaje es igual a su tamaño: Dado que estas condiciones no siempre se cumplen, en el caso general el cifrado no es un medio ) = -2 H( norte H( ·2 - H( ) = H( = | Dado que estas condiciones no siempre se cumplen, en el caso general el cifrado no es un medio |,

    iniciar sesión 2 (2 - por dónde | incógnita por dónde || indica el tamaño del bloque de datos<не считают нужным>en pedazos. ¿Qué pasa si no se sabe nada sobre el texto fuente, ni siquiera su tamaño?

    En este caso, todavía es necesario adoptar algún tipo de modelo de distribución como base. Como regla general, en realidad tales dificultades no surgen, ya que muchos cifrados muy fuertes " .

    ,

    Ahora viene dado por la siguiente fórmula: donde a través p (T i | T") indica la probabilidad de que el mensaje original sea yo siempre que el resultado de su cifrado sea.

    T"

    Una de las características más importantes de la calidad de un cifrado es la cantidad de información sobre el texto fuente que un atacante puede extraer del texto cifrado interceptado; se encuentra como la diferencia entre la incertidumbre a priori y a posteriori del mensaje original: yo = (Dado que estas condiciones no siempre se cumplen, en el caso general el cifrado no es un medio ) - yo = (Dado que estas condiciones no siempre se cumplen, en el caso general el cifrado no es un medio | Dado que estas condiciones no siempre se cumplen, en el caso general el cifrado no es un medio" ).

    h

    Esta cantidad siempre es no negativa.

    transferencia en promedio para eliminar completamente la incertidumbre. Si no hay información a priori sobre el mensaje aparte de su tamaño de N bits, entonces todas las opciones posibles de 2 N se consideran igualmente probables y entonces la incertidumbre del mensaje es igual a su tamaño: Dado que estas condiciones no siempre se cumplen, en el caso general el cifrado no es un medio | Dado que estas condiciones no siempre se cumplen, en el caso general el cifrado no es un medio" ) = yo = (Dado que estas condiciones no siempre se cumplen, en el caso general el cifrado no es un medio ),

    El indicador aquí es cuánto disminuirá la incertidumbre del texto fuente (está claro que no puede aumentar) al obtener el texto cifrado correspondiente en comparación con la incertidumbre a priori, y si será menor que el valor mínimo aceptable. En el mejor de los casos, para los desarrolladores de cifrado, ambas incertidumbres son iguales: es decir, el atacante no puede extraer ninguna información útil sobre el texto sin formato del texto cifrado interceptado: I= 0. En otras palabras, el conocimiento del texto cifrado no nos permite reducir la incertidumbre del texto claro correspondiente, mejorar su evaluación y aumentar la probabilidad de su correcta determinación. Los cifrados que cumplen esta condición se denominan absolutamente resistente o

    cifrados perfectos

    , ya que los mensajes cifrados con ellos no solo no se pueden descifrar en principio, sino que el atacante ni siquiera podrá acercarse a determinar con éxito el texto original, es decir, aumentar la probabilidad de descifrarlo correctamente.

    La incertidumbre de un algoritmo de cifrado se define exactamente de la misma manera que la incertidumbre de un mensaje (la expectativa matemática del logaritmo binario de la probabilidad de utilizar el algoritmo con un signo menos) y sólo tiene sentido si se dispone de un conjunto de algoritmos posibles. se definen y se da la probabilidad de utilizar cada uno de ellos.

    1 0 0 1 0 1 1 1 0 1 0 1

    La solidez de los cifrados se basa en el secreto, es decir, en la incertidumbre del algoritmo de descifrado para un atacante; si no fuera así, cualquiera podría descifrar los datos cifrados. Cuanto menos sepa el atacante sobre el cifrado, menos probable será que el mensaje se descifre con éxito. Expliquemos lo dicho con un ejemplo: interceptemos un cifrado corto de 12 bits, que tiene el siguiente contenido:

    Para simplificar, asumiremos que el mensaje original tiene la misma longitud. Si el atacante no tiene ningún conocimiento previo sobre el mensaje cifrado, cada una de las 2 12 opciones iniciales es igualmente probable para él y, por lo tanto, la probabilidad de identificar correctamente el mensaje original mediante una simple adivinación es 2 -12.

    Ahora supongamos que el atacante sabe a priori que el cifrado se realiza imponiendo la misma máscara de 4 bits en cada grupo de 4 bits del mensaje mediante la operación

    bit a bit exclusivo o.

    Obviamente, hay 16 = 2 4 opciones de máscara de bits diferentes posibles, por lo que son posibles 16 valores de texto fuente diferentes:

    Analizar un mensaje cifrado interceptado: casi siempre tiene a su disposición un determinado conjunto de textos cifrados, para algunos de ellos puede haber textos claros correspondientes, o incluso la capacidad de obtener un texto cifrado para cualquier texto claro predeterminado;

    Un atacante puede tener información a priori sobre el cifrado obtenida de varias fuentes; por ejemplo, antes podría haber sido una instrucción de cifrado o un borrador con resultados intermedios para un texto específico, ahora podría ser un fragmento de código de computadora o un chip que implementa cifrado en hardware.

    Un atacante siempre tiene la primera posibilidad, la segunda también es muy probable: es difícil mantener en secreto un algoritmo que "funciona" activamente ante los extraños. Con base en lo anterior, podemos enumerar varias cualidades que debe cumplir un cifrado para ser considerado bueno.

    1. El análisis de los datos cifrados no debe proporcionar al atacante ninguna información sobre la estructura interna del cifrado. No se deben rastrear patrones estadísticos en el texto cifrado; por ejemplo, las pruebas estadísticas no deben revelar dependencias o desviaciones de la distribución igualmente probable de bits (símbolos) del texto cifrado en los datos cifrados.

    2. El algoritmo debe ser reconfigurable. Tarde o temprano, un atacante puede tener a su disposición una descripción del algoritmo, su implementación de software o hardware. Para garantizar que en este caso el algoritmo no tenga que ser reemplazado por completo en todos los nodos de cifrado donde se utiliza, debe contener una pieza fácilmente reemplazable.

    La segunda condición nos lleva al principio de Kirchhoff (en las traducciones del inglés a veces se le "llama" Kerkhoff, lo cual no es del todo cierto, ya que es holandés, no inglés, y la transcripción de su apellido debe ser alemán, no inglés) , que ahora es incondicionalmente aceptado en el arte de construir cifrados fuertes. Este principio es el siguiente: un cifrado se define como un algoritmo parametrizado que consta de una parte de procedimiento, es decir, una descripción de exactamente qué operaciones y en qué secuencia se realizan en los datos cifrados, y parámetros: varios elementos de datos utilizados en las transformaciones. Revelar solo la parte procesal no debería conducir a un aumento en la probabilidad de que un atacante descifre exitosamente el mensaje más allá del límite aceptable. Por esta razón, y también porque la desclasificación de esta parte es bastante probable, no tiene ningún sentido mantenerla en secreto. Una parte de los parámetros del algoritmo se mantiene en secreto, lo que se denomina:

    clave de cifrado T" (Dado que estas condiciones no siempre se cumplen, en el caso general el cifrado no es un medio )=E (Dado que estas condiciones no siempre se cumplen, en el caso general el cifrado no es un medio ),

    = EK Aquí k

    - clave de cifrado.

    El uso del principio de Kirchhoff le permite obtener las siguientes ventajas al construir cifrados:

    La divulgación de un cifrado específico (algoritmo y clave) no implica la necesidad de reemplazar completamente la implementación de todo el algoritmo; basta con reemplazar solo la clave comprometida;

    Las claves pueden separarse de los componentes restantes del sistema de cifrado: almacenarse por separado de la implementación del algoritmo en un lugar más seguro y cargarse en el cifrador solo cuando sea necesario y solo durante la duración del cifrado; esto aumenta significativamente la confiabilidad del el sistema en su conjunto;

    Es posible estimar con precisión el "grado de incertidumbre" del algoritmo de cifrado; es simplemente igual a la incertidumbre de la clave utilizada: H ( ) = yo = (Aquí ).

    ek

    En consecuencia, es posible estimar la probabilidad y la complejidad de un descifrado exitoso, es decir, la cantidad de trabajo computacional que un atacante necesita realizar para ello.

    transferencia en promedio para eliminar completamente la incertidumbre. Si no hay información a priori sobre el mensaje aparte de su tamaño de N bits, entonces todas las opciones posibles de 2 N se consideran igualmente probables y entonces la incertidumbre del mensaje es igual a su tamaño: Dado que estas condiciones no siempre se cumplen, en el caso general el cifrado no es un medio ) = | Dado que estas condiciones no siempre se cumplen, en el caso general el cifrado no es un medio |.

    La máxima incertidumbre posible de un bloque de datos de tamaño fijo se logra cuando todos los valores posibles de ese bloque son igualmente probables, en cuyo caso es igual al tamaño del bloque en bits. Entonces la incertidumbre clave Aquí no excede su longitud:

    Teniendo en cuenta lo anterior, obtenemos la condición necesaria de fuerza absoluta para cifrados que satisfacen el principio de Kirchhoff:

    Para que un cifrado construido según el principio de Kirchhoff sea absolutamente seguro, es necesario que el tamaño de la clave utilizada para el cifrado no sea menor que el tamaño de los datos cifrados.

    La igualdad exacta solo es posible si todos los valores clave posibles son igualmente probables, lo que equivale a la condición de que los bits clave sean igualmente probables y estadísticamente independientes entre sí.

    Un ejemplo de un cifrado absolutamente seguro es el antiguo Vernam gamma, una superposición de datos abiertos ( t) llave ( Aquí) del mismo tamaño, compuesto por bits estadísticamente independientes que toman valores posibles con la misma probabilidad, utilizando alguna operación binaria °:

    La operación utilizada para imponer gamma debe satisfacer ciertas condiciones, que se pueden resumir de la siguiente manera: la ecuación de cifrado debe poder resolverse de manera única con respecto al texto sin formato dados los datos cifrados conocidos y la clave, y debe poder resolverse de manera única con respecto a la clave dada la clave conocida. texto plano y datos cifrados. Si una operación satisface esta propiedad, es adecuada. Entre las operaciones adecuadas, no hay mejor ajuste ni peor ajuste desde el punto de vista de la solidez del cifrado, todas son iguales: el concepto de "perfección" no conoce grados comparativos, existe o existe; no lo hace. Por esta razón, para un uso práctico, se suele elegir la operación que sea más conveniente de implementar: suma bit a bit módulo 2 o O exclusivo bit a bit

    , ya que ella:

    Requiere para su implementación la mínima complejidad lógica entre todas las operaciones posibles;

    Volvamos a la cuestión de la solidez absoluta de los cifrados: como se señaló anteriormente, los cifrados absolutamente sólidos requieren el uso de una clave no menor que los datos que se cifran. Tanto el remitente como el destinatario deben tener esta clave, es decir, primero se les debe entregar, y para ello se requiere de un canal seguro. Por lo tanto, junto con un canal potencialmente desprotegido para transmitir datos cifrados, debe haber un canal seguro para transmitir una clave del mismo tamaño. Esto no siempre es aceptable por razones económicas, por lo que estos sistemas se utilizan sólo en casos excepcionales para proteger información de particular valor. La gran mayoría de los sistemas de comunicación cifrados reales utilizan algoritmos que no son absolutamente seguros y por eso se denominan cifrados imperfectos.

    Naturalmente, para tales cifrados es relevante la cuestión de una evaluación fiable de su solidez. Para ellos, conocer el texto cifrado reduce la incertidumbre del texto claro correspondiente, aumentando así la probabilidad de un descifrado exitoso. Sin embargo, contrariamente a la creencia popular, de esto no se sigue en absoluto que dicho descifrado sea posible.

    Siempre.

    La opinión de que un mensaje cifrado con un cifrado imperfecto siempre puede descifrarse sin ambigüedades si el criptoanalista tiene suficiente texto cifrado y capacidades informáticas ilimitadas es una simplificación excesiva y, en general, incorrecta.

    El caso es que aumentar ligeramente la probabilidad de un descifrado exitoso y igualarla a uno no es lo mismo. Esta idea se puede ilustrar fácilmente con un ejemplo: si se cifra una determinada matriz de bits, la clave tiene un tamaño de un bit y el cifrado se realiza de acuerdo con las siguientes reglas:

    Si la clave es 0, los bits impares del texto fuente se invierten y se numeran de izquierda a derecha;

    Si la clave es 1, los bits pares del texto fuente se invierten;

    Por tanto, la cuestión de la posibilidad de descifrar sin ambigüedades un mensaje cifrado con un cifrado imperfecto sigue abierta. ¿Cuándo es posible tal descifrado?

    Shannon exploró este tema en detalle en sus obras. Para el análisis introdujo las siguientes características del cifrado para simplificar la presentación, se presentan aquí para la representación de datos en bits:

    1. Función de falta de confiabilidad de clave: incertidumbre de clave con n bits de texto cifrado conocidos: norte ) = yo = (Aquí | Dado que estas condiciones no siempre se cumplen, en el caso general el cifrado no es un medio" f ( Dado que estas condiciones no siempre se cumplen, en el caso general el cifrado no es un medio" | = norte .

    ), donde | Esta claro que F(norte) norte.

    Puede que no esté determinado para todos norte 2. Distancia de unicidad del cifrado: este valor 0 .

    , en el que la función de falta de confiabilidad, es decir, la incertidumbre de la clave se acerca a U(E) = norte norte, Dónde

    -el mínimo de aquellos para los cuales

    ,

    Shannon demostró que ambas cantidades definidas anteriormente dependen de la redundancia del texto plano, siendo la distancia de unicidad directamente proporcional al tamaño de la clave e inversamente proporcional a la redundancia:

    donde la redundancia del texto fuente R está determinada por la siguiente relación:

    transferencia en promedio para eliminar completamente la incertidumbre. Si no hay información a priori sobre el mensaje aparte de su tamaño de N bits, entonces todas las opciones posibles de 2 N se consideran igualmente probables y entonces la incertidumbre del mensaje es igual a su tamaño: Dado que estas condiciones no siempre se cumplen, en el caso general el cifrado no es un medio ) = yo = (Aquí ) = | Aquí |

    Esto significa que al eliminar por completo la redundancia del texto plano, haremos imposible descifrarlo sin ambigüedades basándose únicamente en el conocimiento del texto cifrado correspondiente, incluso si el criptoanalista tiene capacidades informáticas ilimitadas a su disposición. En este caso, la incertidumbre del texto fuente será igual a la incertidumbre y, en consecuencia, al tamaño de la clave:

    Se pueden obtener características numéricas similares de la fuerza de un cifrado para una situación en la que el criptoanalista tiene a su disposición no sólo el texto cifrado, sino también el texto claro correspondiente.

    (Está claro que ya no dependerán de la redundancia de los mensajes originales. En este caso, la distancia de unicidad del cifrado es del orden del tamaño de su clave, es decir, muy pequeña. Por estas razones, un cifrado de este tipo puede descifrarse fácilmente dados los recursos informáticos ilimitados del analista, y cuando se diseñan cifrados sólidos, pasan a primer plano principios completamente diferentes. Pero esto se discutirá en el próximo número.)

    Continuará,
    Serguéi Panasenko
    Jefe del departamento de desarrollo de software de Ankad,

    [correo electrónico protegido]

    Conceptos básicos

    El proceso de convertir datos abiertos en datos cifrados y viceversa suele denominarse cifrado, y los dos componentes de este proceso se denominan cifrado y descifrado, respectivamente. Matemáticamente, esta transformación está representada por las siguientes dependencias que describen acciones con la información original:

    C = Ek1(M)

    M" = Dk2(C),
    donde M (mensaje) es información abierta (en la literatura sobre seguridad de la información a menudo se le llama "texto fuente");
    C (texto cifrado): texto cifrado (o criptograma) obtenido como resultado del cifrado;
    E (cifrado): función de cifrado que realiza transformaciones criptográficas en el texto fuente;
    k1 (clave): parámetro de la función E, llamado clave de cifrado;
    M" - información obtenida como resultado del descifrado;
    D (descifrado): función de descifrado que realiza transformaciones criptográficas inversas en el texto cifrado;

    k2 es la clave utilizada para descifrar información.

    Para que el resultado del descifrado coincida con el mensaje original (es decir, para M" = M), se deben cumplir dos condiciones simultáneamente. Primero, la función de descifrado D debe coincidir con la función de cifrado E. En segundo lugar, la clave de descifrado k2 debe coincidir con el cifrado. clave k1.

    Si se utilizó un algoritmo de cifrado criptográficamente fuerte para el cifrado, entonces, en ausencia de la clave k2 correcta, es imposible obtener M" = M. La fuerza criptográfica es la característica principal de los algoritmos de cifrado y, en primer lugar, indica el grado de complejidad de obtener el original. texto de un texto cifrado sin clave k2.

    Los algoritmos de cifrado se pueden dividir en dos categorías: cifrado simétrico y asimétrico. Para el primero, la proporción de claves de cifrado y descifrado se define como k1 = k2 = k (es decir, las funciones E y D utilizan la misma clave de cifrado). Con el cifrado asimétrico, la clave de cifrado k1 se calcula a partir de la clave k2 de tal manera que la transformación inversa es imposible, por ejemplo, usando la fórmula k1 = ak2 mod p (ayp son los parámetros del algoritmo utilizado).

    Cifrado simétrico

    Los algoritmos de cifrado simétrico se remontan a la antigüedad: fue este método de ocultar información el que utilizó el emperador romano Cayo Julio César en el siglo I a.C. e., y el algoritmo que inventó se conoce como “criptosistema César”.

    Actualmente, el algoritmo de cifrado simétrico más conocido es el DES (Data Encryption Standard), desarrollado en 1977. Hasta hace poco era el “estándar estadounidense”, ya que el gobierno de este país recomendaba su uso para implementar diversos sistemas de cifrado de datos. A pesar de que originalmente se planeó que DES se usara por no más de 10 a 15 años, los intentos de reemplazarlo comenzaron solo en 1997.

    No consideraremos DES en detalle (casi todos los libros de la lista de materiales adicionales tienen una descripción detallada del mismo), pero recurriremos a algoritmos de cifrado más modernos. Solo vale la pena señalar que la razón principal para cambiar el estándar de cifrado es su fuerza criptográfica relativamente débil, la razón es que la longitud de la clave DES es de solo 56 bits significativos. Se sabe que cualquier algoritmo de cifrado potente puede descifrarse probando todas las claves de cifrado posibles (el llamado ataque de fuerza bruta). Es fácil calcular que un grupo de 1 millón de procesadores, cada uno de los cuales calcula 1 millón de claves por segundo, comprobará 256 variantes de claves DES en casi 20 horas. Y dado que dicha potencia informática es bastante realista para los estándares actuales, está claro. que una clave de 56 bits es demasiado corta y que el algoritmo DES debe reemplazarse por uno más potente.

    Hoy en día, se utilizan cada vez más dos algoritmos de cifrado potentes y modernos: el estándar nacional GOST 28147-89 y el nuevo estándar criptográfico estadounidense: AES (Estándar de cifrado avanzado).

    Estándar GOST 28147-89

    El algoritmo definido por GOST 28147-89 (Fig. 1) tiene una longitud de clave de cifrado de 256 bits. Cifra información en bloques de 64 bits (tales algoritmos se denominan algoritmos de bloques), que luego se dividen en dos subbloques de 32 bits (N1 y N2). El subbloque N1 se procesa de cierta manera, después de lo cual su valor se suma con el valor del subbloque N2 (la suma se realiza en módulo 2, es decir, se aplica la operación XOR lógica - "exclusivo o"), y luego los subbloques se intercambian. Esta transformación se realiza un determinado número de veces (“rondas”): 16 o 32, dependiendo del modo de funcionamiento del algoritmo. En cada ronda se realizan dos operaciones.

    El primero es clave. El contenido del subbloque N1 se suma módulo 2 con la parte de 32 bits de la clave Kx. La clave de cifrado completa se representa como una concatenación de subclaves de 32 bits: K0, K1, K2, K3, K4, K5, K6, K7. Durante el proceso de cifrado se utiliza una de estas subclaves, dependiendo del número de ronda y del modo de funcionamiento del algoritmo.

    La segunda operación es el reemplazo de la mesa. Después de la codificación, el subbloque N1 se divide en 8 partes de 4 bits, cuyo valor se reemplaza de acuerdo con la tabla de reemplazo para esta parte del subbloque. A continuación, el subbloque se gira 11 bits hacia la izquierda.

    Sustituciones de mesa(Caja de sustitución - S-box) se utilizan a menudo en los algoritmos de cifrado modernos, por lo que vale la pena explicar cómo se organiza dicha operación.

    Los valores de salida de los bloques se registran en la tabla. Un bloque de datos de una determinada dimensión (en nuestro caso, 4 bits) tiene su propia representación numérica, que determina el número del valor de salida. Por ejemplo, si el S-box parece 4, 11, 2, 14, 15, 0, 8, 13, 3, 12, 9, 7, 5, 10, 6, 1 y el bloque de 4 bits "0100" llegó a la entrada (valor 4), entonces, según la tabla, el valor de salida será 15, es decir “1111” (0 a 4, 1 a 11, 2 a 2...).

    El algoritmo, definido por GOST 28147-89, proporciona cuatro modos de operación: reemplazo simple, gamma, gamma con retroalimentación y generación de archivos adjuntos de imitación. Utilizan la misma transformación de cifrado descrita anteriormente, pero como la finalidad de los modos es diferente, esta transformación se realiza de forma diferente en cada uno de ellos. en modo fácil reemplazo

    Para cifrar cada bloque de información de 64 bits se realizan las 32 rondas descritas anteriormente. En este caso, las subclaves de 32 bits se utilizan en la siguiente secuencia:

    K0, K1, K2, K3, K4, K5, K6, K7, K0, K1, etc. - en las rondas 1 a 24;

    K7, K6, K5, K4, K3, K2, K1, K0 - en las rondas 25 a 32.

    El descifrado en este modo se realiza exactamente de la misma manera, pero con una secuencia ligeramente diferente de uso de subclaves:

    K0, K1, K2, K3, K4, K5, K6, K7 - en las rondas 1 a 8;

    K7, K6, K5, K4, K3, K2, K1, K0, K7, K6, etc. - en las rondas 9 a 32.

    Todos los bloques se cifran independientemente unos de otros, es decir, el resultado del cifrado de cada bloque depende únicamente de su contenido (el bloque correspondiente del texto original). Si hay varios bloques idénticos de texto original (sin formato), los bloques de texto cifrado correspondientes también serán idénticos, lo que proporciona información adicional útil para un criptoanalista que intenta descifrar el cifrado. Por lo tanto, este modo se utiliza principalmente para cifrar las claves de cifrado (muy a menudo se implementan esquemas de claves múltiples en los que, por diversas razones, las claves se cifran entre sí). Otros dos modos de funcionamiento están destinados a cifrar la información misma: gamma y gamma con retroalimentación. EN modo gamma

    1. Su llenado inicial se escribe en los registros N1 y N2, un valor de 64 bits llamado mensaje de sincronización.

    2. El contenido de los registros N1 y N2 (en este caso, mensajes de sincronización) se cifra en modo de reemplazo simple.

    3. El contenido del registro N1 se suma módulo (232 - 1) con la constante C1 = 224 + 216 + 28 + 24, y el resultado de la suma se escribe en el registro N1.

    4. El contenido del registro N2 se suma módulo 232 con la constante C2 = 224 + 216 + 28 + 1, y el resultado de la suma se escribe en el registro N2.

    5. El contenido de los registros N1 y N2 se genera como un bloque gamma de 64 bits del cifrado (en este caso, N1 y N2 forman el primer bloque gamma).

    Si se necesita el siguiente bloque gamma (es decir, es necesario continuar con el cifrado o descifrado), se regresa al paso 2.

    Para el descifrado, la gamma se genera de manera similar y luego el texto cifrado y los bits de gamma se vuelven a aplicar XOR. Dado que esta operación es reversible, en el caso de una escala correctamente desarrollada se obtiene el texto original (tabla).

    Cifrado y descifrado en modo gamma.

    Para desarrollar el cifrado necesario para descifrar la gamma, el usuario que descifra el criptograma debe tener la misma clave y el mismo valor de mensaje de sincronización que se utilizó al cifrar la información. De lo contrario, no será posible obtener el texto original del cifrado.

    En la mayoría de las implementaciones del algoritmo GOST 28147-89, el mensaje de sincronización no es secreto; sin embargo, hay sistemas en los que el mensaje de sincronización es el mismo elemento secreto que la clave de cifrado. En tales sistemas, la longitud efectiva de la clave del algoritmo (256 bits) se incrementa en otros 64 bits del mensaje secreto de sincronización, que también puede considerarse como un elemento clave.

    En el modo gamma de retroalimentación, para completar los registros N1 y N2, a partir del segundo bloque, no se utiliza el bloque gamma anterior, sino el resultado de cifrar el bloque de texto plano anterior (Fig. 2). El primer bloque en este modo se genera de forma totalmente similar al anterior.

    Arroz. 2. Desarrollo de un cifrado gamma en modo gamma con retroalimentación.

    considerando el modo generación de prefijos de imitación, conviene definir el concepto de sujeto de generación. Un prefijo es una suma de verificación criptográfica calculada mediante una clave de cifrado y diseñada para verificar la integridad de los mensajes. Al generar un prefijo de imitación, se realizan las siguientes operaciones: el primer bloque de 64 bits de la matriz de información, para el cual se calcula el prefijo de imitación, se escribe en los registros N1 y N2 y se cifra en el modo de reemplazo simple reducido (el se realizan las primeras 16 rondas de 32). El resultado resultante se suma módulo 2 con el siguiente bloque de información y el resultado se almacena en N1 y N2.

    El ciclo se repite hasta el último bloque de información. El contenido de 64 bits resultante de los registros N1 y N2 o parte de ellos como resultado de estas transformaciones se denomina prefijo de imitación. El tamaño del prefijo de imitación se selecciona en función de la confiabilidad requerida de los mensajes: con la longitud del prefijo de imitación r bits, la probabilidad de que un cambio en el mensaje pase desapercibido es igual a 2-r. Se utiliza un prefijo de imitación de 32 bits, es decir, la mitad del contenido de los registros. Esto es suficiente porque, como cualquier suma de control, el adjunto de imitación está destinado principalmente a proteger contra la distorsión accidental de la información. Para protegerse contra la modificación intencional de datos, se utilizan otros métodos criptográficos, principalmente una firma digital electrónica.

    Al intercambiar información, el prefijo de imitación sirve como una especie de medio de control adicional. Se calcula para el texto sin formato cuando se cifra cualquier información y se envía junto con el texto cifrado. Después del descifrado, se calcula un nuevo valor del prefijo de imitación y se compara con el enviado. Si los valores no coinciden, significa que el texto cifrado se corrompió durante la transmisión o se utilizaron claves incorrectas durante el descifrado. El prefijo de imitación es especialmente útil para comprobar el correcto descifrado de información clave cuando se utilizan esquemas de múltiples claves.

    El algoritmo GOST 28147-89 se considera un algoritmo muy sólido; actualmente, no se han propuesto métodos más efectivos para su divulgación que el método de "fuerza bruta" mencionado anteriormente. Su alta seguridad se logra principalmente gracias a la gran longitud de la clave: 256 bits. Cuando se utiliza un mensaje de sincronización secreto, la longitud efectiva de la clave aumenta a 320 bits y el cifrado de la tabla de reemplazo agrega bits adicionales. Además, la solidez criptográfica depende del número de rondas de transformación, que según GOST 28147-89 debería ser 32 (el efecto completo de la dispersión de los datos de entrada se logra después de 8 rondas).

    Estándar AES

    A diferencia del algoritmo GOST 28147-89, que permaneció en secreto durante mucho tiempo, el estándar de cifrado estadounidense AES, diseñado para reemplazar a DES, fue seleccionado mediante un concurso abierto, donde todas las organizaciones e individuos interesados ​​pudieron estudiar y comentar sobre los algoritmos candidatos.

    En 1997, el Instituto Nacional de Estándares y Tecnología de EE. UU. (NIST, Instituto Nacional de Estándares y Tecnología) anunció un concurso para reemplazar al DES. Al concurso se presentaron 15 algoritmos candidatos, desarrollados tanto por organizaciones conocidas en el campo de la criptografía (RSA Security, Counterpane, etc.) como por particulares. Los resultados del concurso se anunciaron en octubre de 2000: el ganador fue el algoritmo Rijndael, desarrollado por dos criptógrafos de Bélgica, Vincent Rijmen y Joan Daemen.

    El algoritmo de Rijndael no es similar a la mayoría de los algoritmos de cifrado simétrico conocidos, cuya estructura se denomina "red Feistel" y es similar al GOST 28147-89 ruso. La peculiaridad de la red Feistel es que el valor de entrada se divide en dos o más subbloques, parte de los cuales en cada ronda se procesa de acuerdo con una ley determinada, después de lo cual se superpone a los subbloques no procesados ​​(ver Fig. 1).

    A diferencia del estándar de cifrado nacional, el algoritmo de Rijndael representa un bloque de datos en forma de una matriz de bytes bidimensional de tamaño 4X4, 4X6 o 4X8 (se permite el uso de varios tamaños fijos del bloque de información cifrado). Todas las operaciones se realizan en bytes individuales de la matriz, así como en columnas y filas independientes.

    El algoritmo de Rijndael realiza cuatro transformaciones: BS (ByteSub): reemplazo en la tabla de cada byte de la matriz (Fig. 3); SR (ShiftRow): desplazamiento de filas de la matriz (Fig. 4). Con esta operación, la primera línea permanece sin cambios y el resto se desplaza cíclicamente byte a byte hacia la izquierda un número fijo de bytes, dependiendo del tamaño de la matriz. Por ejemplo, para una matriz 4X4, las líneas 2, 3 y 4 se desplazan 1, 2 y 3 bytes respectivamente. Luego viene MC (MixColumn), una operación en columnas de una matriz independiente (Fig. 5), cuando cada columna se multiplica por una matriz fija c(x) de acuerdo con una regla determinada. Y finalmente, AK (AddRoundKey): agregar una clave. A cada bit de la matriz se le suma módulo 2 con el bit correspondiente de la clave redonda, que, a su vez, se calcula de cierta manera a partir de la clave de cifrado (Fig. 6).


    Arroz. 3. Operación BS.

    Arroz. 4. Operación SR.

    Arroz. 5. Operación MC.

    El número de rondas de cifrado (R) en el algoritmo de Rijndael es variable (10, 12 o 14 rondas) y depende del tamaño del bloque y de la clave de cifrado (también hay varios tamaños fijos para la clave).

    El descifrado se realiza mediante las siguientes operaciones inversas. La tabla se invierte y se reemplaza con una tabla inversa (relativa a la utilizada para el cifrado). La operación inversa a SR es rotar filas hacia la derecha en lugar de hacia la izquierda. La operación inversa para MC es la multiplicación usando las mismas reglas por otra matriz d(x) que cumple la condición: c(x) * d(x) = 1. Sumar la clave AK es la inversa de sí misma, ya que solo usa el XOR operación. Estas operaciones inversas se aplican durante el descifrado en la secuencia inversa a la utilizada durante el cifrado.

    Rijndael se ha convertido en el nuevo estándar para el cifrado de datos debido a una serie de ventajas sobre otros algoritmos. En primer lugar, proporciona una alta velocidad de cifrado en todas las plataformas: tanto de implementación de software como de hardware. Se distingue por posibilidades incomparablemente mejores de paralelizar cálculos en comparación con otros algoritmos presentados a la competencia. Además, los requisitos de recursos para su funcionamiento son mínimos, lo cual es importante cuando se utiliza en dispositivos con capacidades informáticas limitadas.

    La única desventaja del algoritmo puede considerarse su esquema poco convencional inherente. El hecho es que las propiedades de los algoritmos basados ​​en la red Feistel han sido bien investigadas y, por el contrario, Rijndael puede contener vulnerabilidades ocultas que sólo pueden descubrirse después de un tiempo desde su uso generalizado.

    Cifrado asimétrico

    Los algoritmos de cifrado asimétrico, como ya se señaló, utilizan dos claves: k1, la clave de cifrado, o pública, y k2, la clave de descifrado, o secreta. La clave pública se calcula a partir del secreto: k1 = f(k2).

    Los algoritmos de cifrado asimétrico se basan en el uso de funciones unidireccionales. Por definición, una función y = f(x) es unidireccional si: es fácil de calcular para todos los valores posibles de x y para la mayoría de los valores posibles de y es bastante difícil calcular un valor de x para el cual y =f(x).

    Un ejemplo de función unidireccional es la multiplicación de dos números grandes: N = P*Q. En sí misma, dicha multiplicación es una operación sencilla. Sin embargo, la función inversa (descomposición de N en dos factores grandes), llamada factorización, según las estimaciones modernas, es un problema matemático bastante complejo. Por ejemplo, la factorización N con una dimensión de 664 bits en P ? Q requerirá aproximadamente 1023 operaciones, y para calcular inversamente x para el exponente modular y = ax mod p con a, p e y conocidos (con las mismas dimensiones de a y p) necesitará realizar aproximadamente 1026 operaciones. El último ejemplo dado se llama Problema de logaritmo discreto (DLP), y este tipo de función se usa a menudo en algoritmos de cifrado asimétrico, así como en algoritmos utilizados para crear una firma digital electrónica.

    Otra clase importante de funciones utilizadas en el cifrado asimétrico son las funciones de puerta trasera unidireccionales. Su definición establece que una función es unidireccional con puerta trasera si es unidireccional y es posible calcular eficientemente la función inversa x = f-1(y), es decir, si la "puerta trasera" (algún número secreto, aplicado para funciones asimétricas) algoritmos de cifrado: el valor de la clave secreta).

    Las funciones de puerta trasera unidireccional se utilizan en el algoritmo de cifrado asimétrico RSA, ampliamente utilizado.

    algoritmo RSA

    Desarrollado en 1978 por tres autores (Rivest, Shamir, Adleman), debe su nombre a las primeras letras de los apellidos de los desarrolladores. La confiabilidad del algoritmo se basa en la dificultad de factorizar números grandes y calcular logaritmos discretos. El parámetro principal del algoritmo RSA es el módulo del sistema N, que se utiliza para realizar todos los cálculos en el sistema, y ​​N = P*Q (P y Q son números primos aleatorios secretos grandes, generalmente de la misma dimensión).

    La clave secreta k2 se elige aleatoriamente y debe cumplir las siguientes condiciones:

    1

    donde MCD es el máximo común divisor, es decir, k1 debe ser coprimo con respecto al valor de la función de Euler F(N), siendo esta última igual al número de enteros positivos en el rango de 1 a N coprimo a N, y se calcula como F(N) = (P - 1)*(Q - 1).

    La clave pública k1 se calcula a partir de la relación (k2*k1) = 1 mod F(N), y para ello se utiliza el algoritmo euclidiano generalizado (algoritmo para calcular el máximo común divisor). El cifrado del bloque de datos M utilizando el algoritmo RSA se realiza de la siguiente manera: C=M [a la potencia k1] modo N. Tenga en cuenta que dado que en un criptosistema real que utiliza RSA el número k1 es muy grande (actualmente su dimensión puede alcanzar hasta 2048 bits), el cálculo directo de M [a la potencia k1] poco realista. Para obtenerlo se utiliza una combinación de elevaciones repetidas al cuadrado de M y multiplicación de los resultados.

    La inversión de esta función para dimensiones grandes no es factible; en otras palabras, es imposible encontrar M dados los C, N y k1 conocidos. Sin embargo, teniendo una clave secreta k2, mediante transformaciones simples se puede calcular M = Ck2 mod N. Obviamente, además de la clave secreta en sí, es necesario garantizar el secreto de los parámetros P y Q. Si un atacante obtiene sus valores , podrá calcular la clave secreta k2.

    ¿Qué cifrado es mejor?

    La principal desventaja del cifrado simétrico es la necesidad de transferir claves "de mano en mano". Este inconveniente es muy grave, ya que imposibilita el uso de cifrado simétrico en sistemas con un número ilimitado de participantes. Sin embargo, por lo demás, el cifrado simétrico tiene algunas ventajas que son claramente visibles en el contexto de las graves desventajas del cifrado asimétrico.

    El primero de ellos es la baja velocidad de las operaciones de cifrado y descifrado, debido a la presencia de operaciones que consumen muchos recursos. Otra desventaja "teórica" ​​es que la solidez criptográfica de los algoritmos de cifrado asimétrico no ha sido demostrada matemáticamente. Esto se debe principalmente al problema del logaritmo discreto: aún no se ha demostrado que su solución en un tiempo aceptable sea imposible. También surgen dificultades innecesarias por la necesidad de proteger las claves públicas contra la sustitución: al reemplazar la clave pública de un usuario legal, un atacante podrá cifrar un mensaje importante con su clave pública y posteriormente descifrarlo fácilmente con su clave privada.

    Sin embargo, estas desventajas no impiden el uso generalizado de algoritmos de cifrado asimétrico. Hoy en día existen criptosistemas que admiten la certificación de claves públicas, además de combinar algoritmos de cifrado simétricos y asimétricos. Pero este es un tema para un artículo aparte.

    Fuentes adicionales de información

    Para aquellos lectores que estén seriamente interesados ​​en el cifrado, el autor recomienda ampliar sus horizontes con la ayuda de los siguientes libros.

    1. Brassard J. "Criptología moderna".
    2. Petrov A. A. "Seguridad informática: métodos criptográficos de protección".
    3. Romanets Yu., Timofeev P. A., Shangin V. F. "Protección de la información en los sistemas informáticos modernos".
    4. Sokolov A.V., Shangin V.F. "Protección de la información en redes y sistemas corporativos distribuidos".

    Puede encontrar una descripción completa de los algoritmos de cifrado en los siguientes documentos:

    1. GOST 28147-89. Sistema de procesamiento de información. Protección criptográfica.
    2. Algoritmo de conversión criptográfica. - M.: Norma estatal de la URSS, 1989.
    3. Algoritmo AES: http://www.nist.gov/ae.

    Algoritmo RSA: http://www.rsasecurity.com/rsalabs/pkcs/pkcs-1.

    año académico

    parte teorica

    1. Principales tipos de transformaciones criptográficas de la información. La esencia de cada transformación, alcance.

    2. Representación de un sistema de cifrado mediante un gráfico, principio de unicidad de cifrado y descifrado.

    3. Modelo matemático de un sistema de cifrado-descifrado de información.

    4. Fortaleza del sistema de cifrado, clasificación de los sistemas de cifrado por fortaleza. Tipos de ataques al sistema de cifrado.

    5. Definición de un sistema de cifrado incondicionalmente seguro, una declaración sobre las condiciones necesarias para la existencia de un sistema incondicionalmente seguro.

    6. Definición de un sistema de cifrado incondicionalmente seguro, una declaración sobre las condiciones suficientes para la existencia de un sistema incondicionalmente seguro.

    7. Sistemas de cifrado computacionalmente fuertes, el concepto de la complejidad del criptoanálisis, enfoques básicos para descifrar sistemas criptográficos, análisis de ataques clave de fuerza bruta y ataques basados ​​en estadísticas de mensajes.

    8. Cifrado en bloque, esquema de Feistel, propiedades del cifrado en bloque.

    9. Cifrado de sustitución, sus propiedades.

    10. Cifrado gamma y sus propiedades.

    11. Mods (modos de funcionamiento) de cifrados en bloque, breve descripción de los modos.

    12. Estándar de cifrado GOST R34.12-2015, algoritmo de cifrado básico para un bloque de 64 bits.

    13. Estándar de cifrado GOST R34.12-2015, algoritmo de cifrado básico para un bloque de 128 bits.

    14. Estándar de cifrado GOST R34.13-2015, algoritmo de cifrado en modo de reemplazo simple, algoritmo de cifrado en modo gamma y gamma con retroalimentación. Comparación de modos.

    15. Registro lineal recurrente, propiedades algebraicas de una secuencia lineal recurrente, análisis de la propiedad de previsibilidad.

    16. Registro recurrente lineal, propiedades estadísticas de una secuencia recurrente lineal.

    17. Principios de la construcción de generadores gamma de cifrado (el concepto de complejidad lineal equivalente, el uso de nodos no lineales para aumentar la complejidad lineal).

    18. Cifrado A5/1, características del cifrado, principio de construcción, aplicación.

    19. El principio de construcción y características del cifrado AES.

    21. El concepto de función hash, requisitos para las funciones hash criptográficas.

    22. Función hash según el estándar GOST R34.11-12, características, principio de construcción, aplicación.

    23. Sistema de cifrado El-Gamal, ataques al sistema.

    24. Sistema de cifrado RSA, ataques al sistema.

    25. Definición, clasificación, propiedades básicas, modelo EP.

    26. Esquema de ES RSHA.

    27. Esquema del PE de El-Gamal.

    28. Firma digital según GOSTR 34.10-12, características generales, principio de generación y verificación de firma.

    29. Autenticación de mensajes en sistemas de telecomunicaciones (modelo de sistema de falsificación, estrategias de imposición, indicadores de falsificación).

    30. El concepto de función hash clave. Una clase de funciones hash estrictamente universales, ejemplos de implementación de estas funciones hash.

    31. Construcción de sistemas de autenticación con probabilidad de imposición garantizada.

    32. Construcción de un sistema de autenticación para la transmisión repetida de mensajes.

    33. Sistemas de autenticación computacionalmente seguros.

    34. Desarrollo de inserciones de imitación de acuerdo con GOST R34.12-2015.

    35. Modelo de gestión de claves en sistemas criptográficos simétricos, características del ciclo de vida de las claves.

    36. Métodos de distribución de claves basados ​​​​en el intercambio mutuo de mensajes entre corresponsales. Método Diffie-Hellman.

    37. Métodos para generar números aleatorios al generar claves.

    38. Métodos para distribuir claves utilizando el DRC en la etapa inicial.

    39. Métodos de distribución de claves utilizando el centro de distribución digital en modo interactivo. Protocolo Needham-Schroeder.

    40. El principio de distribución de claves públicas.

    41. El concepto de infraestructura de clave pública (PKI), composición, principio de interacción de elementos estructurales.

    42. Objeto, principio de formación y características de un certificado de clave pública.

    Parte practica

    1. Cifre (descifre) el mensaje manualmente mediante sustitución, permutación y cifrado gamma. Programa LR1_1.exe.

    2. Descifrar el criptograma basándose en el análisis de sus estadísticas utilizando el programa CHANGE.EXE.

    3. Encuentre el factor de multiplicación del error al descifrar el criptograma de un cifrado de permutación-sustitución de bloques con una longitud de bloque de 16 bits. programa tst.

    4. Descifrar el criptograma del cifrado de sustitución-permutación mediante una búsqueda exhaustiva de las claves utilizando el programa tst. Justifique los parámetros para decidir la decodificación correcta.

    5. Cifre un mensaje de 64 bits utilizando el algoritmo de cifrado básico GOST R 34.12-2015 (1 ronda)

    6. Cifre un mensaje de 128 bits utilizando el programa AES.exe. Compruebe que la primera transformación (operación SubBytes) utilice la inversión del elemento en el campo GF(2 8).

    7. Usando el polinomio característico h(x), construya un LRR (relleno inicial 10...01) Determine el período de la secuencia. Encuentre un equilibrio, verifique las propiedades de series y ventanas. Verifique el resultado usando el programa LRR 1.

    8. Encuentre la secuencia en la salida del generador gamma de cifrado que contiene los elementos OR, NAND, Jeff. Utilizo el programa LRR 2 para determinar la complejidad equivalente de la secuencia. Construya un LRR equivalente. Extraer conclusiones.

    9. Realice los siguientes cálculos en la sección de matemáticas discretas:

    Encuentre el máximo común divisor utilizando el algoritmo euclidiano;

    Calcule un modp x usando el algoritmo para elevar rápidamente un número a una potencia;

    Encuentra el inverso de un número módulo p.

    Encuentra la función de Euler del número x;

    10. - utilizando la prueba de Fermat para comprobar si el número x es primo, encuentre la probabilidad de que la prueba dé un resultado erróneo.

    11. Se dan los parámetros del sistema de cifrado ElGamal: a=4, p=11, clave privada x=7, cifrar el mensaje M=. Descifrar el criptograma.

    12. Los parámetros del sistema de cifrado RSA se establecen en p=11, q=13, cifran el mensaje M=5. Descifrar el criptograma.

    13. Se dan los parámetros del sistema de cifrado ElGamal: a=4, p=11, clave privada x=8, firmar un mensaje cuyo código hash es h(M)=. Verifique la firma.

    14. Los parámetros del sistema de cifrado RSA se establecen en p=11, q=13, firma el mensaje cuyo código hash es h(M)= 6. Verifica la firma.

    15. Utilizando el programa RSA, cifre un archivo grande utilizando el criptosistema RSA seguro y calcule el tiempo de cifrado y descifrado.

    16. Utilizando el programa RSA, firme mensajes y verifique la firma. El ancho del mensaje es de al menos 100 bits.

    17. Se da una curva elíptica E13(1,1). Encuentre el punto C igual a la suma de dos puntos, coordenadas de puntos y x 1 =, y 1 =, x 2 =, y 2 =. Encuentra el punto opuesto. Calcula el punto donde k =3.

    18. Generar un autenticador para un mensaje binario. METRO=1010 basado en funciones hash estrictamente universales según el algoritmo K0 = 0101, k 1= (número de billete) . Los cálculos en el campo se realizan módulo un polinomio irreducible. , b=4.



    
    Arriba