Menú
Gratis
Registro
hogar  /  Educación/ Finalidad y estructura de los algoritmos de cifrado. Algoritmos de cifrado de datos Todos los algoritmos de cifrado

Propósito y estructura de los algoritmos de encriptación. Algoritmos de cifrado de datos Todos los algoritmos de cifrado

El algoritmo de cifrado de datos DES (Estándar de cifrado de datos) se publicó en 1977 y sigue siendo un algoritmo simétrico de bloque común utilizado en los sistemas de protección de información comercial.

El algoritmo DES se construye de acuerdo con la metodología de red de Feistel y consta de una secuencia alterna de permutaciones y sustituciones. El algoritmo DES encripta bloques de datos de 64 bits utilizando una clave de 64 bits, en la que 56 bits son significativos (los 8 restantes son bits de verificación de paridad).

El proceso de cifrado consiste en un intercambio de bits inicial de un bloque de 64 bits, 16 ciclos de cifrado (rondas) y, finalmente, un intercambio de bits final (Fig. 6.2).

Arroz. 6.2.

El descifrado en DES es la operación inversa del cifrado y se realiza repitiendo las operaciones de cifrado en orden inverso.

Las principales ventajas del algoritmo DES:

  • solo se utiliza una clave de 56 bits;
  • la relativa simplicidad del algoritmo asegura una alta velocidad de procesamiento;
  • después de cifrar un mensaje utilizando un paquete de software, se puede utilizar cualquier otro paquete de software que se ajuste al algoritmo DES para descifrarlo;
  • la fuerza criptográfica del algoritmo es suficiente para asegurar seguridad de información la mayoría de las aplicaciones comerciales.

La tecnología moderna de microprocesadores hace posible descifrar cifrados de bloques simétricos con una longitud de clave de 40 bits en un tiempo bastante aceptable. Para tal piratería, se utiliza el método de fuerza bruta: prueba total de todos los valores clave posibles (el método de "fuerza bruta"). Hasta hace poco, DES se consideraba un algoritmo de cifrado relativamente seguro.

Hay muchas formas de combinar algoritmos de bloques para obtener algoritmos nuevos y más robustos. Una de estas formas es encriptación múltiple - uso algoritmo de bloque varias veces con diferentes claves para cifrar el mismo bloque de texto sin formato. Con el cifrado triple, se pueden usar tres claves diferentes.

El algoritmo 3-DES (Triple DES - triple DES) se utiliza en situaciones en las que la fiabilidad del algoritmo DES se considera insuficiente.

Hoy en día, se utilizan cada vez más dos algoritmos de cifrado modernos resistentes a las criptomonedas: el estándar de cifrado nacional GOST 28147-89 y el nuevo estándar de cifrado estadounidense: AES (Advanced Encryption Standard).

El estándar de cifrado GOST 28147-89 está destinado a la implementación de hardware y software, cumple con los requisitos criptográficos y no impone restricciones sobre el grado de confidencialidad de la información protegida. El algoritmo de cifrado de datos definido por GOST 28147-89 es un algoritmo de bloque de 64 bits con una clave de 256 bits.

Los datos a cifrar se dividen en bloques de 64 bits. Estos bloques se dividen en dos subbloques. norte x Y N 2 32 bits cada uno (Fig. 6.3). Subbloque /V, procesado de cierta manera, luego de lo cual su valor se suma al valor del subbloque N 2(la suma se realiza módulo 2, es decir, se aplica la operación lógica XOR - “o exclusivo”), y luego


Arroz. 6.3.

los subbloques se intercambian. Esta transformación se realiza una cierta cantidad de veces ("rondas"): 16 o 32, según el modo de operación del algoritmo.

Se realizan dos operaciones en cada ronda.

La primera operación es la imposición de una llave. El contenido del subbloque /V, módulo 2 32 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: K 0 , K ( , K 2 , K 3 , K 4 , K 5 , K 6 , K 7 . Una de estas subclaves se utiliza en el proceso de encriptación, según el número de ronda y el modo de operación del algoritmo.

La segunda operación es un reemplazo de mesa. Después de teclear la subunidad NORTE( se divide en 8 partes de 4 bits, el valor de cada una de las cuales se reemplaza de acuerdo con la tabla de reemplazo para esta parte del subbloque. A continuación, el subbloque se gira bit a bit a la izquierda 11 bits.

Reemplazos de mesa. El cuadro de sustitución de 5 casillas se usa a menudo en los algoritmos de cifrado modernos, por lo que vale la pena explicar cómo se organiza dicha operación.

La caja de 5 bloques de sustitución consta de ocho nodos de sustitución (5 bloques de sustitución) 5, S2,..., 5 8 con memoria de 64 bits cada uno. Entrada al bloque de sustitución S El vector de 32 bits se divide en 8 vectores consecutivos de 4 bits, cada uno de los cuales se convierte en un vector de 4 bits mediante el nodo de reemplazo correspondiente. Cada nodo de reemplazo se puede representar como una tabla de permutación de 16 números binarios de 4 bits en el rango de 0000 a 1111. El vector de entrada especifica la dirección de una fila en la tabla y el número en esa fila es el vector de salida. Los vectores de salida de 4 bits luego se combinan secuencialmente en un vector de 32 bits. Los nodos de reemplazo (tablas de permutación) son elementos clave que son comunes a una red informática y rara vez cambian. Estos nodos de reemplazo deben mantenerse en secreto.

El algoritmo definido por GOST 28147-89 prevé cuatro modos de operación: sustitución simple, escalado, escalado con retroalimentación Y generación de prefijos 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 en cada uno de ellos de forma diferente.

en modo reemplazo simple 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:

K 0 , K ( , K 2 , K 3 , K 4 , K 5 , K 6 , K 7 , K 0 ,/G, etc. - en rondas del 1 al 24;

K 7, K b, K 5, K 4, K 3, K 2, K x, K 0 - en las rondas 25 a 32.

Descifrado en este modo se lleva a cabo exactamente de la misma manera, pero con una secuencia ligeramente diferente de subclaves:

K 0 , AG, 2 d, 3 d, 4 d, 5 d, b b, 7 d - en las rondas 1 a 8;

K 7 , K 6 , K 5 , K 4 , K 3 , K 2 , K ( , K 0 , K 7 , K segundo y así sucesivamente, 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 de origen correspondiente). Si hay varios bloques idénticos del texto original (sin formato), los bloques de texto cifrado correspondientes también serán los mismos, lo que da una ventaja adicional. información útil para un criptoanalista que intenta descifrar el cifrado. Por lo tanto, este modo se utiliza principalmente para cifrar las propias claves de cifrado (a menudo se implementan esquemas de claves múltiples en los que, por varias razones, las claves se cifran una encima de la otra). Para cifrar la información en sí, se pretenden otros dos modos de operación: gamma y gamma con retroalimentación.

EN modo gama cada bloque de texto sin formato se agrega módulo 2 bit a bit al bloque gamma de cifrado de 64 bits. cifrado gamma - es una secuencia especial que resulta de ciertas operaciones con registros norte1 Y S 2(Figura 6.9):

  • 1. A los registros n^ Y 1U 2 se escribe su relleno inicial: un valor de 64 bits llamado mensaje de sincronización.
  • 2. El contenido de los registros está encriptado norte1 Y M 2(en este caso, sincronizar mensajes) en el modo de reemplazo simple.
  • 3. Registrar contenidos n^ se suma módulo (2 32 - 1) con la constante C, = 2 24 + 2 16 + 2 8 + 2 4 , y el resultado de la suma se escribe en el registro norte1 .
  • 4. El contenido del registro CU 2 se suma módulo 232 con la constante C 2 = 2 24 + 2 16 + 2 8 + 1, y el resultado de la suma se escribe en el registro CU 2.
  • 5. Contenido de los registros norte, Y S 2 se emite como un bloque gamma de cifrado de 64 bits (en este caso n^ y CU 2 forman el primer bloque de la escala).

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

Para el descifrado, la gamma se genera de manera similar, y luego se aplica de nuevo la operación X (X) a los bits del texto cifrado y la gamma, dado que esta operación es reversible, en el caso de una gamma generada correctamente, la original se obtiene el texto (Tabla 6.1).

Tabla 6.1. Cifrado y descifrado en modo gamma

Para desarrollar el rango de cifrado requerido para el descifrado, el usuario que descifra el criptograma debe tener la misma clave y el mismo valor del mensaje de sincronización que se utilizó cuando se cifró la información. De lo contrario, no podrá 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, pero hay sistemas en los que el mensaje de sincronización es el mismo elemento secreto que la clave de cifrado. Para tales sistemas, la longitud efectiva de la clave del algoritmo (256 bits) se incrementa en otros 64 bits del mensaje de sincronización secreto, que también puede considerarse como un elemento clave.

EN modo gamma de retroalimentación para llenar los registros L", y ІУ 2, a partir del segundo bloque, no se usa el bloque gamma anterior, sino el resultado del cifrado del bloque de texto sin formato anterior (Fig. 6.4). El primer bloque en este modo se genera completamente parecido al anterior.

considerando el modo generación de prefijos de imitación, debe definirse el concepto de objeto de la generación. Prefijo de imitación - es una suma de control criptográfica calculada usando

Arroz. 6.4.

clave de cifrado y diseñado para comprobar la integridad de los mensajes. Al generar un prefijo, se realizan las siguientes operaciones: el primer bloque de 64 bits de la matriz de información, para el cual se calcula el prefijo, se escribe en los registros ^ y A^ 2 y se cifra en el modo de reemplazo simple abreviado ( se realizan las primeras 16 rondas de 32). El resultado obtenido se suma módulo 2 con el siguiente bloque de información, guardando el resultado en A", y S 2 .

El ciclo se repite hasta el último bloque de información. El contenido resultante de 64 bits de los registros A^ y A^ 2 o parte de ella y se denomina tasa 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 GRAMO bit, la probabilidad de que un cambio de mensaje pase desapercibido es 2~ años

La mayoría de las veces, se usa un prefijo de imitación de 32 bits, es decir, la mitad del contenido de los registros. Esto es suficiente, ya que, como cualquier suma de verificación, el prefijo de imitación está destinado principalmente a proteger contra la distorsión accidental de la información. Para protegerse contra la modificación deliberada de los 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 medios adicionales control. Se calcula para el texto sin formato cuando alguna información se cifra y se envía junto con el texto cifrado. Después del descifrado, se calcula un nuevo valor del prefijo de imitación, que se compara con el enviado. Si los valores no coinciden, entonces el texto cifrado se distorsionó durante la transmisión o se usaron claves incorrectas durante el descifrado. El prefijo de imitación es especialmente útil para verificar el descifrado correcto de la información clave cuando se usan esquemas de múltiples claves.

El algoritmo GOST 28147-89 es un algoritmo muy estable; en la actualidad, 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 debido a la gran longitud de la clave: 256 bits. Cuando se usa un mensaje de sincronización secreto, la longitud efectiva de la clave aumenta a 320 bits y el secreto de la tabla de sustitución agrega bits adicionales. Además, la fuerza criptográfica depende de la cantidad de rondas de transformaciones que, según GOST 28147-89, debería ser 32 (el efecto total de la dispersión de datos de entrada se logra después de 8 rondas).

Estándar de cifrado AES. En 1997, el Instituto Americano de Normalización NIST (Instituto Nacional de Estándares y Tecnología) anunció un concurso para nuevo estándar algoritmo criptográfico simétrico llamado AES (Advanced Encryption Standard). Los mayores centros de criptología de todo el mundo estaban conectados a su desarrollo. El ganador de esta competencia en realidad se convirtió en el estándar criptográfico global durante los próximos 10 a 20 años.

Se presentaron los siguientes requisitos a los criptoalgoritmos, candidatos para el nuevo estándar AES:

  • el algoritmo debe ser simétrico;
  • el algoritmo debe ser un cifrado de bloque;
  • el algoritmo debe tener una longitud de bloque de 128 bits y admitir tres longitudes de clave: 128, 192 y 256 bits.

Además, se recomendó a los desarrolladores de criptoalgoritmos:

  • utilizar operaciones que se implementan fácilmente tanto en hardware (en microchips) como en software (en Computadoras personales y servidores)
  • centrarse en procesadores de 32 bits;
  • no complique innecesariamente la estructura del cifrado, de modo que todas las partes interesadas puedan realizar de forma independiente un criptoanálisis independiente del algoritmo y asegurarse de que no contenga características no documentadas.

Los resultados del concurso se resumieron en octubre de 2000: el algoritmo Rijndael, desarrollado por dos criptógrafos de Bélgica, Vincent Rijmen y Joan Daemen, fue declarado ganador. El algoritmo Rijndael se ha convertido en el nuevo estándar de cifrado de datos AES.

El algoritmo AES es diferente 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. A diferencia del estándar de cifrado nacional, el algoritmo AES representa cada bloque de datos procesados ​​como una matriz de bytes bidimensional de tamaño 4x4, 4x6 o 4x8, según la longitud del bloque establecido (se permiten varios tamaños fijos del bloque de información cifrada). Además, en las etapas apropiadas, las transformaciones se realizan en columnas independientes, en filas independientes o, en general, en bytes individuales.

El algoritmo AES consta de un cierto número de rondas (de 10 a 14, depende del tamaño del bloque y la longitud de la clave) y realiza cuatro transformaciones:

BS (ByteSub) - reemplazo de tabla de cada byte de la matriz (Fig. 6.5);

SR (ShiftRow) - cambio de fila de matriz (Fig. 6.6). Con esta operación, la primera fila permanece sin cambios y el resto se desplaza cíclicamente byte a byte hacia la izquierda en un número fijo de bytes, según el tamaño de la matriz. Por ejemplo, para una matriz de 4x4, las filas 2, 3 y 4 se desplazan 1, 2 y 3 bytes, respectivamente;

MS (MixColumn): una operación en columnas de matriz independientes (Fig. 6.7), cuando cada columna se multiplica por una matriz fija c (x) de acuerdo con una determinada regla;

AK (AddRoundKey): agregar una clave. Cada bit de la matriz se suma en módulo 2 al bit correspondiente de la clave redonda, que a su vez se calcula de cierta manera a partir de la clave de cifrado (Fig. 6.8).


Arroz. 6.5.

para procesar cada byte de la matriz State

Arroz. 6.6. La transformación SR (ShiftRow) recorre los últimos tres

filas en la matriz State

d 2 j

a oz

a zz

Arroz. 6.8. La transformación AC (AddRoundKey) realiza una suma XOR de cada

una columna de la matriz State con una palabra del conjunto de claves

Estas conversiones actúan sobre la matriz State, a la que se dirige el puntero "state". La transformación AddRoundKey utiliza un puntero adicional para abordar la clave redonda.

La transformación BS (ByteSub) es una sustitución de bytes no lineal que opera de forma independiente en cada byte de la matriz State utilizando una tabla de sustitución iS-box.

En cada ronda (con algunas excepciones), se realiza lo siguiente sobre los datos encriptados.

transformaciones (Fig. 6.9). Se aplican excepciones a la primera y última ronda: antes de la primera ronda, se realiza una operación AK adicional y en la última ronda no hay MS.

Arroz. 6.9.

Como resultado, la secuencia de operaciones para el cifrado se ve así:

AK, (BS, SR, MC, AK) (repetidas R- 1 vez), BS, SR, AK.

Número de rondas de cifrado R en el algoritmo AES 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 utilizando las siguientes operaciones inversas. La tabla se invierte y se realiza un reemplazo de tabla en la tabla inversa (relativa a la utilizada en el cifrado). La operación inversa a SR es un desplazamiento circular de filas a la derecha, no a la izquierda. La operación inversa para MS es la multiplicación por las mismas reglas por otra matriz d(x), satisfaciendo la condición c(x) d(x) = 1. La adición de la tecla AK es la inversa de sí misma, ya que utiliza solo la operación XOR. Estas operaciones inversas se aplican al descifrar en orden inverso al utilizado para el cifrado.

Todas las transformaciones en el cifrado AES tienen una estricta justificación matemática. La estructura en sí y la secuencia de operaciones hacen posible ejecutar este algoritmo de manera eficiente tanto en procesadores de 8 bits como de 32 bits. La estructura del algoritmo incluye la posibilidad de ejecución paralela de algunas operaciones, lo que puede aumentar 4 veces la velocidad de cifrado en estaciones de trabajo multiprocesador.

El algoritmo AES se ha convertido en el nuevo estándar de cifrado de datos debido a una serie de ventajas sobre otros algoritmos. En primer lugar, proporciona cifrado de alta velocidad en todas las plataformas: tanto en la implementación del software como del hardware. Además, los requerimientos de recursos para su funcionamiento son mínimos, lo cual es importante cuando se utiliza en dispositivos con capacidades informáticas limitadas.

El único inconveniente del algoritmo AES es su esquema poco convencional. El hecho es que las propiedades de los algoritmos basados ​​en la "red Feistel" están bien estudiadas y AES, por el contrario, puede contener vulnerabilidades ocultas que solo pueden descubrirse después de que haya pasado un tiempo desde el inicio de su amplia distribución.

También se utilizan otros criptoalgoritmos de bloques simétricos para cifrar datos.

Los principales modos de funcionamiento del bloque simétrico.

algoritmo

La mayoría de los algoritmos criptográficos simétricos en bloque convierten directamente una entrada de texto sin formato de 64 bits en una salida de texto cifrado de 64 bits, pero los datos rara vez se limitan a 64 bits.

Para utilizar el algoritmo simétrico de bloques para resolver varios problemas criptográficos, se han desarrollado cuatro modos operativos:

  • libro de códigos electrónico EU B (Libro de Códigos Electrónicos);
  • encadenamiento de bloques de cifrado CBC (Cipher Block Chaining);
  • Comentario por texto cifrado CFB (Cipher Feed Back);
  • retroalimentación sobre la salida OFB (Output Feed Back).

Estos modos operativos se desarrollaron originalmente para el algoritmo de bloque DES, pero otros criptoalgoritmos de bloque pueden operar en cualquiera de estos modos.


El cifrado es el método criptográfico más utilizado para mantener la confidencialidad de la información, protege los datos del acceso no autorizado. Primero, veamos los principales métodos. protección criptográfica información. En una palabra, criptografía- la ciencia de la seguridad de la información utilizando metodos matematicos. También existe una ciencia opuesta a la criptografía y dedicada a los métodos para abrir información protegida: criptoanálisis. La combinación de criptografía y criptoanálisis se denomina criptología. Los métodos criptográficos se pueden clasificar de varias maneras, pero la mayoría de las veces se subdividen según la cantidad de claves utilizadas en los algoritmos criptográficos correspondientes (ver Fig. 1):

  1. Keyless, que no utiliza ninguna llave.
  2. Clave única: usan algún parámetro de clave adicional; por lo general, esta es una clave secreta.
  3. Dos claves, utilizando dos claves en sus cálculos: secreta y pública.

Arroz. 1. Algoritmos criptográficos

Descripción general de los métodos criptográficos

El cifrado es el principal método de protección; lo consideraremos en detalle más adelante.

Vale la pena decir algunas palabras sobre otros métodos criptográficos:

  1. Se utiliza una firma electrónica para confirmar la integridad y la autoría de los datos. La integridad de los datos significa que los datos no han sido alterados accidental o intencionalmente durante el almacenamiento o la transmisión.
    Algoritmos firma electronica Se utilizan dos tipos de llaves:
    • la clave secreta se utiliza para calcular la firma electrónica;
    • la clave pública se utiliza para verificarlo.
    Cuando se utiliza un algoritmo de firma electrónica criptográficamente fuerte y con el almacenamiento y uso adecuados de la clave secreta (es decir, si la clave no puede ser utilizada por nadie más que su propietario), nadie más puede calcular la firma electrónica correcta de cualquier documento.
  2. La autenticación le permite verificar que el usuario (o la computadora remota) es realmente quien dice ser. El esquema más simple la autenticación es una contraseña: como elemento secreto, utiliza una contraseña que presenta el usuario al verificarla. Tal esquema ha demostrado ser débil si no se aplican medidas administrativas y técnicas especiales para fortalecerlo. Y sobre la base del cifrado o hash (ver más abajo), puede crear esquemas de autenticación de usuario realmente sólidos.
  3. Existen varios métodos de suma de comprobación criptográfica:
    • hash con y sin llave;
    • cálculo de prefijos de imitación;
    • uso de códigos de autenticación de mensajes.
    De hecho, todos estos métodos, de diversas formas, a partir de datos de tamaño arbitrario, con o sin clave secreta, calculan una cierta suma de verificación de un tamaño fijo que corresponde únicamente a los datos originales.
    Dicha suma de verificación criptográfica se usa ampliamente en varios métodos de seguridad de la información, por ejemplo:
    • para confirmar la integridad de los datos en los casos en que el uso de una firma electrónica sea imposible (por ejemplo, debido a la alta intensidad de recursos) o sea redundante;
    • en los propios esquemas de firma electrónica, generalmente se "firma" un hash de datos, y no todos los datos en su totalidad;
    • en varios esquemas de autenticación de usuarios.
  4. Los generadores de números aleatorios y pseudoaleatorios le permiten crear secuencias de números aleatorios que se utilizan ampliamente en criptografía, en particular:
    • se necesitan números aleatorios para generar claves secretas que, idealmente, deberían ser completamente aleatorias;
    • los números aleatorios se utilizan en muchos algoritmos de firma electrónica;
    • Los números aleatorios se utilizan en muchos esquemas de autenticación.
    No siempre es posible obtener números absolutamente aleatorios; esto requiere la disponibilidad de generadores de hardware de alta calidad. Sin embargo, basándose en algoritmos de cifrado simétrico, se pueden construir generadores de números pseudoaleatorios de alta calidad.
Cifrado

Cifrado La información es la transformación de la información abierta en información cifrada (lo que se suele denominar texto cifrado o criptograma), y viceversa. La primera parte de este proceso se llama cifrado, segundo - descifrado.

El cifrado se puede representar con la siguiente fórmula:

С = E k1 (M),

Dónde:
METRO(mensaje) - información abierta,
CON(texto cifrado) - el texto cifrado obtenido como resultado del cifrado,
mi(cifrado) - una función de cifrado que realiza transformaciones criptográficas en METRO,
k1(tecla) - parámetro de función mi, llamado llave encriptación

En el estándar GOST 28147-89 (el estándar define el algoritmo de cifrado simétrico doméstico), el concepto llave se define como sigue: "Un estado secreto específico de algunos parámetros de un algoritmo de transformación criptográfica, que asegura la elección de una transformación del conjunto de transformaciones posibles para un algoritmo dado".

La clave puede pertenecer a un usuario o grupo de usuarios específico y ser única para ellos. La información cifrada con una clave en particular solo se puede descifrar con la misma clave o una clave asociada a ella en una determinada proporción.

El descifrado se puede presentar de una manera similar:

M" = D k2 (C),

Dónde:
METRO"- el mensaje recibido como resultado del descifrado,
D(descifrado) - función de descifrado; al igual que la función de cifrado, realiza transformaciones criptográficas en el texto cifrado,
k2- clave de descifrado.

Para obtener el texto plano correcto como resultado del descifrado (es decir, el que fue previamente encriptado: M"=M), se deben cumplir simultáneamente las siguientes condiciones:

  1. La función de descifrado debe coincidir con la función de cifrado.
  2. La clave de descifrado debe coincidir con la clave de cifrado.

En ausencia de la clave correcta k2 obtener mensaje original METRO" = METRO con la función correcta D imposible. La palabra "imposible" en este caso suele significar la imposibilidad de computar en tiempo real con los recursos informáticos existentes.

Los algoritmos de cifrado se pueden dividir en dos categorías (consulte la Figura 1):

  1. Algoritmos de cifrado simétrico.
  2. Algoritmos de cifrado asimétrico.

en algoritmos cifrado simétrico el descifrado generalmente usa la misma clave que para el cifrado, o una clave relacionada con ella por alguna relación simple. Este último es mucho menos común, especialmente en los algoritmos de cifrado modernos. Tal clave (común para el cifrado y descifrado) generalmente se llama simplemente Clave de encriptación.

EN cifrado asimétrico Clave de encriptación k1 calculado fácilmente a partir de la clave k2 de tal manera que no sea posible el cálculo inverso. Por ejemplo, la relación clave podría ser:

k1 = a k2 módulo p,

donde a y p son los parámetros del algoritmo de cifrado, que tienen una dimensión suficientemente grande.

Esta proporción de claves también se utiliza en algoritmos de firma electrónica.

La característica principal del algoritmo de encriptación es fuerza criptográfica, que determina su resistencia a la divulgación por métodos de criptoanálisis. Por lo general, esta característica está determinada por el intervalo de tiempo necesario para la divulgación del cifrado.

El cifrado simétrico es menos conveniente debido al hecho de que cuando se transmite información cifrada, alguien necesita que el destinatario reciba una clave por adelantado para descifrar la información. El cifrado asimétrico no tiene este problema (ya que la clave pública puede transferirse libremente a través de la red), sin embargo, tiene sus propios problemas, en particular, el problema de la sustitución. Llave pública y velocidad de cifrado lenta. La mayoría de las veces, el cifrado asimétrico se usa junto con el cifrado simétrico, para transferir la clave de cifrado simétrico, que cifra la mayor parte de los datos. Sin embargo, los esquemas de transmisión y almacenamiento de claves son un tema para un artículo aparte. Aquí me permitiré afirmar que el cifrado simétrico se usa con mucha más frecuencia que el cifrado asimétrico, por lo que el resto del artículo se dedicará únicamente al cifrado simétrico.

Hay dos tipos de cifrado simétrico:

  • Cifrado de bloque- la información se divide en bloques de una longitud fija (por ejemplo, 64 o 128 bits), después de lo cual estos bloques se cifran uno por uno. Además, en diferentes algoritmos de encriptación o incluso en diferentes modos de operación del mismo algoritmo, los bloques se pueden encriptar independientemente entre sí o "con concatenación", cuando el resultado de la encriptación del bloque de datos actual depende del valor del bloque anterior. o sobre el resultado del cifrado del bloque anterior.
  • Cifrado de flujo- es necesario, en primer lugar, en los casos en que la información no se puede dividir en bloques, por ejemplo, un determinado flujo de datos, cada uno de los cuales debe cifrarse y enviarse a algún lugar, sin esperar el resto de los datos suficientes para formar un bloque . Por lo tanto, los algoritmos de cifrado de flujo cifran los datos bit a bit o carácter a carácter. Aunque vale la pena decir que algunas clasificaciones no separan el cifrado de bloques y flujos, teniendo en cuenta que el cifrado de flujos es el cifrado de bloques de longitud unitaria.

Considere cómo se ven los algoritmos de cifrado de bloques simétricos desde el interior.La estructura de los algoritmos de cifrado

La gran mayoría de los algoritmos de encriptación modernos funcionan de manera muy similar: se realiza una cierta transformación en el texto encriptado con la participación de la clave de encriptación, que se repite un cierto número de veces (rondas). Al mismo tiempo, según el tipo de transformación repetida, los algoritmos de cifrado suelen dividirse en varias categorías. También hay varias clasificaciones aquí, daré una de ellas. Así, según su estructura, los algoritmos de cifrado se clasifican de la siguiente manera:

  1. Algoritmos basados ​​en la red de Feistel.

    La red Feistel implica dividir el bloque de datos procesados ​​en varios subbloques (la mayoría de las veces en dos), uno de los cuales es procesado por alguna función F() y superpuesta a uno o más sub-bloques. En la fig. 2 muestra la estructura más común de algoritmos basados ​​en la red de Feistel.

    Arroz. 2. La estructura de los algoritmos basados ​​en la red de Feistel.

    Argumento de función adicional F(), indicado en la Fig. 2 como Ki, se llama llave redonda. La clave redonda es el resultado del procesamiento de la clave de cifrado mediante el procedimiento de expansión de claves, cuya tarea es obtener el número requerido de claves Ki a partir de la clave de cifrado inicial de un tamaño relativamente pequeño (actualmente, un tamaño de 128 bits se considera suficiente para una clave de cifrado simétrica). En los casos más simples, el procedimiento de expansión de clave simplemente divide la clave en varios fragmentos, que se utilizan a su vez en rondas de cifrado; mucho más a menudo, el procedimiento de expansión clave es bastante complicado, y las claves Ki dependen de los valores de la mayoría de los bits de la clave de cifrado original.

    La superposición del subbloque procesado sobre el sin procesar se realiza con mayor frecuencia mediante la operación lógica "exclusivo o" - XOR (como se muestra en la Fig. 2). Muy a menudo, en lugar de XOR, aquí se usa la adición de módulo 2n, Dónde norte- tamaño del subbloque en bits. Después de la superposición, los subbloques se intercambian, es decir, en la siguiente ronda del algoritmo, se procesa otro subbloque de datos.

    Esta estructura de algoritmos de encriptación obtuvo su nombre de Horst Feistel, uno de los desarrolladores del algoritmo de encriptación de Lucifer y el algoritmo DES (Estándar de encriptación de datos) desarrollado sobre su base, el anterior (pero aún ampliamente utilizado) estándar de encriptación de EE. UU. Ambos algoritmos tienen una estructura similar a la que se muestra en la Fig. 2. Entre otros algoritmos basados ​​en la red Feistel, se puede citar como ejemplo el estándar de cifrado doméstico GOST 28147-89, así como otros algoritmos conocidos: RC5, Blowfish, TEA, CAST-128, etc.

    La mayoría de los algoritmos de cifrado modernos se basan en la red Feistel, debido a las muchas ventajas de dicha estructura, entre las que cabe destacar las siguientes:

    • Los algoritmos basados ​​en la red Feistel se pueden diseñar de tal manera que se pueda usar el mismo código de algoritmo para el cifrado y el descifrado; la diferencia entre estas operaciones solo puede consistir en el orden en que se aplican las claves Ki; esta propiedad del algoritmo es más útil cuando se implementa en hardware o en plataformas con recursos limitados; GOST 28147-89 se puede citar como un ejemplo de dicho algoritmo.
  2. Los algoritmos basados ​​en la red de Feistel son los más estudiados; dichos algoritmos están dedicados a gran cantidad investigación criptoanalítica, lo que supone una indudable ventaja tanto en el desarrollo del algoritmo como en su análisis.

    También hay una estructura más compleja de la red Feistel, cuyo ejemplo se muestra en la Fig. 3.

    Arroz. 3. La estructura de la red Feistel.

    Tal estructura se llama generalizado o extendido Red Feistel y se usa con mucha menos frecuencia que la red Feistel tradicional. Un ejemplo de tal red Feistel es el algoritmo RC6.

  3. Basado en algoritmos redes de permutación (red SP- Red de sustitución-permutación).

    A diferencia de la red Feistel, las redes SP procesan todo el bloque cifrado en una sola ronda. El procesamiento de datos se reduce principalmente a reemplazos (cuando, por ejemplo, un fragmento del valor de entrada se reemplaza por otro fragmento de acuerdo con la tabla de reemplazo, que puede depender del valor de la clave Ki) y permutaciones dependiendo de la clave Ki(En la Fig. 4 se muestra un diagrama simplificado).

    Arroz. 4. Red de permutación-permutación.

    Sin embargo, tales operaciones también son características de otros tipos de algoritmos de cifrado, por lo tanto, en mi opinión, el nombre de "red de permutación-permutación" es bastante arbitrario.

    Las redes SP son mucho menos comunes que las redes Feistel; Los algoritmos Serpent o SAFER+ se pueden citar como ejemplo de redes SP.

  4. Algoritmos estructurados "cuadrado"(Cuadrado).

    La estructura "cuadrada" se caracteriza por la representación del bloque de datos cifrados en forma de matriz de bytes bidimensional. Las transformaciones criptográficas se pueden realizar en bytes individuales de una matriz, así como en sus filas o columnas.

    La estructura del algoritmo toma su nombre del algoritmo Square, que fue desarrollado en 1996 por Vincent Rijmen y Joan Daemen, los futuros autores del algoritmo Rijndael, que se convirtió en el nuevo estándar de cifrado estadounidense AES después de ganar una competencia abierta. El algoritmo Rijndael también tiene una estructura similar a un cuadrado; otros ejemplos son los algoritmos Shark (un desarrollo anterior de Ridgeman y Damen) y Crypton. La desventaja de los algoritmos con la estructura "cuadrada" es su falta de conocimiento, lo que no impidió que el algoritmo Rijndael se convirtiera en el nuevo estándar estadounidense.

    Arroz. 5. Algoritmo de Rijndael.

    En la fig. La Figura 5 muestra un ejemplo de una operación en un bloque de datos realizada por el algoritmo Rijndael.

  5. Algoritmos con una estructura no estándar, es decir, aquellos algoritmos que no se pueden atribuir a ninguno de los tipos enumerados. Está claro que el ingenio puede ser ilimitado, por lo que es difícil clasificar todas las variantes posibles de algoritmos de cifrado. Como ejemplo de un algoritmo con una estructura no estándar, podemos citar el algoritmo FROG, único en su estructura, en cada ronda de la cual se modifican dos bytes de datos cifrados de acuerdo con reglas bastante complejas (ver Fig. 6).

    Arroz. 6. Modificación de dos bytes de datos cifrados.

    Los límites estrictos entre las estructuras descritas anteriormente no están definidos, por lo tanto, muy a menudo hay algoritmos clasificados por varios expertos como diferentes tipos de estructuras. Por ejemplo, el algoritmo CAST-256 pertenece a la red SP por su autor, y muchos expertos lo llaman red Feistel extendida. Otro ejemplo es el algoritmo HPC, llamado por su autor red Feistel, pero referido por expertos a algoritmos con una estructura no estándar.

Los algoritmos de cifrado se utilizan para cambiar la información confidencial de modo que no pueda ser leída por personas no autorizadas.

Los primeros cifrados se utilizaron en la época de la Antigua Roma, el Antiguo Egipto y la Antigua Grecia. Uno de los cifrados famosos es cifrado césar. este algoritmo funcionó de la siguiente manera: cada letra tiene su propio número de serie en el alfabeto, que se desplaza $3$ valores a la izquierda. Hoy en día, dicho algoritmo no brinda la protección que brindaba en el momento de su uso.

Hoy en día, se han desarrollado una gran cantidad de algoritmos de cifrado, incluidos los estándar, que proporcionan protección confiable información confidencial.

Divida los algoritmos de cifrado en simétrico(estos incluyen AES, CAST, GOST, DES, Blowfish) y asimétrico(RSA, El Gamal).

Algoritmos simétricos

Observación 1

Los algoritmos de cifrado simétrico utilizan la misma clave para cifrar y descifrar información.

Al transmitir información cifrada, también se debe transmitir la clave de descifrado. El punto débil de este método es el canal de datos. Si no es seguro o se escucha a escondidas, la clave de descifrado puede estar disponible para un atacante.

Algoritmos asimétricos

Observación 2

Los algoritmos asimétricos utilizan dos claves, una para cifrar y otra para descifrar.

Cada usuario debe tener un par de claves: una clave pública y una clave privada.

Clave de encriptación

Definición 1

Clave de encriptación es una secuencia de bits aleatoria o especialmente creada, que es un parámetro variable del algoritmo de cifrado.

Al cifrar los mismos datos con el mismo algoritmo, pero usando diferentes claves, los resultados son diferentes.

Los programas de cifrado (WinRAR, Rohos, etc.) crean una clave a partir de una contraseña especificada por el usuario.

La clave de cifrado puede ser diferentes longitudes, medida en bits. A medida que aumenta la longitud de la clave, aumenta la fuerza teórica del cifrado. En la práctica esto no siempre es así.

La fuerza del algoritmo de encriptación

Observación 3

Un algoritmo de cifrado se considera fuerte hasta que se demuestre lo contrario.

Algoritmos de cifrado

Algoritmo AES (Rijndael) en este momento es el estándar de cifrado federal de EE. UU. Fue aprobado como estándar por el Ministerio de Comercio en $ 2001. El estándar es una variante de cifrado con un tamaño de bloque de $ 128 bits. Desarrollado en $1997$ en Bélgica. Los tamaños de clave posibles son $128, 192$ y $256$ bits.

Algoritmo GOST 28147-8 es el estándar Federación Rusa para el cifrado de datos y la protección de imitación. Se convirtió en el estándar oficial en $ 1989. Desarrollado en la década de 1970. en la Dirección General de la KGB de la URSS. Utiliza una clave de bit de $256$.

Algoritmo de pez globo utiliza un esquema complejo de generación de claves, lo que complica significativamente un ataque de fuerza bruta al algoritmo. No apto para su uso en sistemas de cambio de clave frecuente y cuando se cifran pequeñas cantidades de datos. El algoritmo se utiliza mejor para sistemas en los que es necesario cifrar grandes cantidades de datos. Desarrollado en $ 1993. Se utiliza un tamaño de clave de $ 32 $ a $ 448 $ bits.

algoritmo DES fue el estándar de cifrado federal de EE. UU. en $ 1977-2001 $. El estándar federal fue adoptado en $1977$, luego de la introducción del nuevo estándar en $2001$, perdió el estatus de estándar. Desarrollado en $1972–1975$. Laboratorio de investigación de IBM. Utiliza una clave de bit de $56$.

Algoritmo CAST es algo análogo al algoritmo DES. Utiliza claves de $128$ y $256$ bits.

Debido al hecho de que la función principal de nuestro software es el cifrado de datos, a menudo nos hacen preguntas sobre ciertos aspectos de la criptografía. Decidimos recopilar las preguntas más frecuentes en un documento e intentamos darles las respuestas más detalladas, pero al mismo tiempo, no sobrecargadas con información innecesaria.

1. ¿Qué es la criptografía?

La criptografía es una disciplina científica teórica, una rama de las matemáticas que estudia la transformación de la información para protegerla de las acciones razonables del enemigo.

2. ¿Qué es un algoritmo de cifrado?

Un algoritmo de cifrado es un conjunto de reglas lógicas que determinan el proceso de conversión de información de un estado abierto a un estado cifrado (cifrado) y, a la inversa, de un estado cifrado a un estado abierto (descifrado).

Los algoritmos de cifrado surgen como resultado de la investigación teórica, tanto de científicos individuales como de equipos de investigación.

3. ¿Cómo se protegen los datos con cifrado?

El principio básico de la protección de datos con cifrado es cifrar los datos. Para un extraño, los datos cifrados parecen "basura de información", un conjunto de caracteres sin sentido. Por lo tanto, si la información en forma encriptada llega al atacante, simplemente no podrá usarla.

4. ¿Cuál es el algoritmo de encriptación más fuerte?

En principio, cualquier algoritmo de cifrado propuesto por algún criptógrafo conocido se considera seguro hasta que se demuestre lo contrario.

Como regla general, todos los algoritmos de encriptación emergentes se publican para revisión pública y se estudian exhaustivamente en centros de investigación criptográficos especializados. Los resultados de tales estudios también se publican para revisión pública.

5. ¿Qué es una clave de cifrado?

Una clave de cifrado es una secuencia de bits aleatoria, pseudoaleatoria o especialmente formada, que es un parámetro variable del algoritmo de cifrado.

En otras palabras, si cifra la misma información con el mismo algoritmo, pero con diferentes claves, los resultados también serán diferentes.

La clave de cifrado tiene una característica esencial: la longitud, que generalmente se mide en bits.

6. ¿Qué son los algoritmos de cifrado?

Los algoritmos de cifrado se dividen en dos grandes clases: simétricos y asimétricos (o asimétricos).

Los algoritmos de cifrado simétrico utilizan la misma clave para cifrar información y descifrarla. En este caso, la clave de cifrado debe ser secreta.

Los algoritmos de cifrado simétrico, por regla general, son fáciles de implementar y no requieren muchos recursos informáticos para su trabajo. Sin embargo, el inconveniente de tales algoritmos se manifiesta en los casos en que, por ejemplo, dos usuarios necesitan intercambiar claves. En este caso, los usuarios deben reunirse directamente o tener algún tipo de canal confiable a prueba de manipulaciones para enviar la clave, lo que no siempre es posible.

Ejemplos de algoritmos de cifrado simétrico son DES, RC4, RC5, AES, CAST.

Los algoritmos de cifrado asimétrico utilizan dos claves, una para cifrar y otra para descifrar. En este caso, se habla de un par de claves. Una clave de un par puede ser pública (accesible para todos), la otra puede ser secreta.

Los algoritmos de cifrado asimétrico son más difíciles de implementar y exigen más recursos informáticos que los simétricos; sin embargo, el problema del intercambio de claves entre dos usuarios es más fácil de resolver.

Cada usuario puede crear propia pareja claves, y envíe la clave pública a su suscriptor. Esta clave solo puede cifrar datos; el descifrado requiere una clave secreta, que solo almacena su propietario. Así, la obtención de una clave pública por parte de un atacante no le aportará nada, ya que le es imposible descifrar los datos cifrados.

Ejemplos de algoritmos de cifrado asimétrico son RSA, El-Gamal.

7. ¿Cómo se descifran los algoritmos de encriptación?

En la ciencia criptográfica, hay una subsección: el criptoanálisis, que estudia los problemas de descifrar los algoritmos de encriptación, es decir, obtener información abierta a partir de información encriptada sin una clave de encriptación.

Hay muchas formas y métodos diferentes de criptoanálisis, la mayoría de los cuales son demasiado complejos y extensos para reproducirlos aquí.

El único método que vale la pena mencionar es la enumeración directa de todos los valores posibles de la clave de cifrado (también llamado método de fuerza bruta o fuerza bruta). esencia este método consiste en la enumeración de todos los valores posibles de la clave de cifrado hasta encontrar la clave deseada.

8. ¿Cuál debe ser la longitud de la clave de cifrado?

Hoy en día, para los algoritmos de cifrado simétrico, 128 bits (16 bytes) se considera una longitud suficiente de la clave de cifrado. Para una enumeración completa de todos claves posibles 128 bits de longitud (ataque de fuerza bruta) en un año, necesita 4,2x1022 procesadores con una capacidad de 256 millones de operaciones de cifrado por segundo. El costo de esta cantidad de procesadores es de 3.5x1024 dólares estadounidenses (según Bruce Schneier, Applied Cryptography).

Hay un proyecto internacional distribuido.net, cuyo objetivo es unir a los usuarios de Internet para crear una supercomputadora distribuida virtual que enumera las claves de cifrado. El último proyecto de descifrado de claves de 64 bits se completó en 1757 días, participaron más de trescientos mil usuarios y poder computacional de todas las computadoras en el proyecto era equivalente a casi 50,000 procesadores AMD Athlon XP registrado a 2 GHz.

En este caso, debe tenerse en cuenta que al aumentar la longitud de la clave de cifrado en un bit, se duplica el número de valores de clave y, en consecuencia, el tiempo de enumeración. Es decir, según las cifras anteriores, en 1757 * 2 días es posible descifrar no una clave de 128 bits, como podría parecer a primera vista, sino solo una de 65 bits.

9. He oído hablar de claves de cifrado de 1024 e incluso de 2048 bits, y usted dice que 128 bits es suficiente. ¿Qué significa?

Así es, las claves de cifrado de 512, 1024 y 2048 bits, y en ocasiones incluso más largas, se utilizan en algoritmos de cifrado asimétrico. Utilizan principios que son completamente diferentes de los algoritmos simétricos, por lo que las escalas de las claves de cifrado también son diferentes.

La respuesta a esta pregunta es el secreto mejor guardado de los servicios especiales de cualquier estado. Desde un punto de vista teórico, es imposible leer datos cifrados con un algoritmo conocido con una clave de longitud suficiente (ver preguntas anteriores), sin embargo, ¿quién sabe qué se esconde detrás del velo de los secretos de estado? Bien puede resultar que hay algunas tecnologías alienígenas conocidas por el gobierno, con las que puedes descifrar cualquier cifrado 🙂

Lo único que se puede afirmar con certeza es que ni un solo estado, ni un solo servicio especial revelará este secreto, e incluso si es posible descifrar los datos de alguna manera, nunca los mostrará de ninguna manera.

Para ilustrar esta afirmación, se puede dar un ejemplo histórico. Durante la Segunda Guerra Mundial, el primer ministro británico Winston Churchill, como resultado de la interceptación y descifrado de mensajes alemanes, se dio cuenta del inminente bombardeo de la ciudad de Coventry. A pesar de esto, no tomó ninguna medida para evitar que el enemigo supiera que la inteligencia británica podía descifrar sus mensajes. Como resultado, en la noche del 14 al 15 de noviembre de 1940, Coventry fue destruida por aviones alemanes, matando a un gran número de civiles. Así, para Churchill, el precio de divulgar información que pudiera descifrar mensajes alemanes resultó ser más alto que el precio de varios miles de vidas humanas.

Es obvio que para los políticos modernos el precio de dicha información es aún más alto, por lo que no aprenderemos nada sobre las capacidades de los servicios especiales modernos, ni explícita ni indirectamente. Entonces, incluso si la respuesta a esta pregunta es sí, esta posibilidad, muy probablemente, no se manifestará de ninguna manera.

Fuente: SecurIT

^ volver a empezar ^

Por lo general, los nuevos algoritmos de encriptación se publican para revisión pública y se estudian en centros de investigación especializados. Los resultados de tales estudios también se publican para revisión pública.

Algoritmos simétricos
Los algoritmos de cifrado se dividen en dos grandes clases: simétricos (AES, GOST, Blowfish, CAST, DES) y asimétricos (RSA, El-Gamal). Los algoritmos de cifrado simétrico utilizan la misma clave para cifrar y descifrar la información, mientras que los algoritmos asimétricos utilizan dos claves: una para cifrar y otra para descifrar.

Si la información cifrada debe transferirse a otro lugar, la clave de descifrado también debe transferirse allí. El punto débil aquí es el canal de transmisión de datos: si no es seguro o está siendo escuchado, entonces la clave de descifrado puede llegar al atacante. Los sistemas basados ​​en algoritmos asimétricos no tienen este inconveniente. Dado que cada participante en dicho sistema tiene un par de claves: clave pública y clave secreta.

Clave de encriptación
Esta es una secuencia de bits aleatoria o creada especialmente según la contraseña, que es un parámetro variable del algoritmo de cifrado.
Si cifra los mismos datos con el mismo algoritmo, pero con diferentes claves, los resultados también serán diferentes.

Por lo general, en el software de cifrado (WinRAR, Rohos, etc.), la clave se crea a partir de una contraseña que especifica el usuario.

La clave de cifrado viene en diferentes longitudes, que generalmente se miden en bits. A medida que aumenta la longitud de la clave, aumenta la seguridad teórica del cifrado. En la práctica, esto no siempre es cierto.

En criptografía, se considera que el mecanismo de cifrado es un valor no clasificado, y un atacante puede tener acceso completo fuente algoritmo de cifrado, así como texto cifrado (regla de Kerckhoff). Otra suposición que puede tener lugar es que un atacante puede conocer parte del texto sin cifrar (sin formato).

Fuerza del algoritmo de cifrado.
Un algoritmo de cifrado se considera fuerte hasta que se demuestre lo contrario. Por lo tanto, si se ha publicado un algoritmo de cifrado, existe desde hace más de 5 años y no se han encontrado vulnerabilidades graves para él, podemos suponer que su fortaleza es adecuada para proteger información secreta.

Durabilidad teórica y práctica.
En 1949 K. E. Shannon publicó un artículo "Teoría de la comunicación en sistemas secretos". Shannon consideró la fuerza de los sistemas criptográficos como práctica y teórica. La conclusión sobre la seguridad teórica sigue siendo pesimista: la longitud de la clave debe ser igual a la longitud del texto sin formato.
Por lo tanto, Shannon también consideró el tema de la fuerza práctica de los sistemas criptográficos. ¿Es confiable el sistema si el atacante tiene tiempo y recursos informáticos limitados para analizar los mensajes interceptados?

Por lo general, las vulnerabilidades se encuentran en programas que cifran datos utilizando algún algoritmo. En este caso, los programadores cometen un error en la lógica del programa o en el protocolo criptográfico, gracias al cual, habiendo estudiado el funcionamiento del programa (a bajo nivel), se puede llegar a acceder a información secreta.

Rompiendo el algoritmo de encriptación
Se cree que el criptosistema se ha solucionado si el atacante puede calcular la clave secreta y además realizar un algoritmo de conversión equivalente al criptoalgoritmo original. Y que este algoritmo era factible en tiempo real.

En criptología, hay una subsección llamada criptoanálisis, que estudia los problemas de descifrado o falsificación de mensajes cifrados. Hay muchas formas y métodos de criptoanálisis. El más popular es el método de enumeración directa de todos los valores posibles de la clave de cifrado (el llamado método de "fuerza bruta" o fuerza bruta). La esencia de este método es enumerar todos los valores posibles de la clave de cifrado hasta encontrar la clave deseada.

En la práctica, esto significa que un atacante debe:

  • Tenga a su disposición un criptosistema (es decir, un programa) y ejemplos de mensajes cifrados.
  • Comprender el protocolo criptográfico. En otras palabras, cómo el programa cifra los datos.
  • Desarrollar e implementar un algoritmo de enumeración de Claves para este criptosistema.

¿Cómo saber si una clave es válida o no?
Todo depende del programa específico y la implementación del protocolo de cifrado. Por lo general, si después del descifrado resultó ser "basura", entonces esta es la clave incorrecta. Y si el texto es más o menos significativo (esto se puede comprobar), entonces la clave es correcta.

Algoritmos de cifrado
AES (Rijndael). Actualmente es el estándar de cifrado federal de EE. UU.

¿Qué algoritmo de cifrado elegir para proteger la información?

Aprobado como norma por el Departamento de Comercio el 4 de diciembre de 2001. La decisión entró en vigor desde el momento de su publicación en el registro federal (12.06.01). Se acepta como estándar una variante de cifrado con solo un tamaño de bloque de 128 bits.

GOST 28147-8. Estándar de la Federación Rusa para el cifrado de datos y protección de imitación. Inicialmente, tenía un cuello (OV o SS, no se sabe exactamente), luego el cuello se redujo constantemente y, cuando el algoritmo se llevó a cabo oficialmente a través del Estándar estatal de la URSS en 1989, se eliminó. El algoritmo permaneció DSP (como saben, DSP no se considera un cuello). En 1989, se convirtió en el estandarte oficial de la URSS y más tarde, tras el colapso de la URSS, en el estandarte federal de la Federación Rusa.

pez globo esquema complejo el desarrollo de elementos clave complica significativamente el ataque de fuerza bruta contra el algoritmo; sin embargo, lo hace inadecuado para su uso en sistemas donde la clave cambia con frecuencia y se cifran pequeños datos en cada clave.

El algoritmo es más adecuado para sistemas en los que se cifran grandes cantidades de datos con la misma clave.

DES Estándar de cifrado federal de EE. UU. 1977-2001. Adoptado como estándar federal de EE. UU. en 1977. En diciembre de 2001, perdió su estatus debido a la introducción de un nuevo estándar.

ELENCO En cierto sentido, un análogo de DES.

www.codenet.ru/progr/alg/enc
Algoritmos de cifrado, descripción general, información, comparación.

http://www.enlight.ru/crypto
Materiales sobre cifrado asimétrico, firma digital y otros sistemas criptográficos "modernos".

Alejandro Velikanov,
Olga Cheban,
Servicio Tesline S.R.L.

El exbanquero de Abu Dhabi, Mohammad Ghaith bin Mahah Al Mazrui, ha desarrollado un cifrado que, según él, es indescifrable. El cifrado llamado "Código de Abu Dhabi" se creó sobre la base de un grupo de símbolos inventados por el propio Al Mazrui. En su código, cada letra es reemplazada por un símbolo especialmente inventado, y estos símbolos no pertenecen a ningún idioma conocido en el mundo.

Qué algoritmos de encriptación de datos son más seguros

El desarrollador tardó un año y medio en trabajar en el cifrado, que Al Mazrui llama "absolutamente nuevo".

Según el entusiasta, todos pueden crear su propio código y la complejidad del cifrado está determinada por la longitud de su clave. Se cree que, en principio, si existe el deseo, ciertas habilidades y el software apropiado, se pueden descifrar casi todos, incluso los cifrados más complejos.

Sin embargo, Al Mazrui asegura que su creación es irrompible y es, con mucho, el cifrado más confiable. “Es casi imposible descifrar un documento codificado con el Código de Abu Dabi”, está seguro Al Mazrui.

Para probar su caso, el banquero desafió a todos los criptógrafos, piratas informáticos y criptógrafos destacados, instándolos a intentar descifrar su cifrado.

3. Kryptos es una escultura que el escultor estadounidense James Sanborn instaló en los terrenos de la sede de la CIA en Langley, Virginia, en 1990. El mensaje encriptado impreso en él aún no se puede desentrañar.

4. Cifrado impreso en lingote de oro chino. Supuestamente, en 1933 se entregaron siete lingotes de oro al general Wang en Shanghái. Están marcados con imágenes, letras chinas y algunos mensajes encriptados, incluso en letras latinas. Pueden contener certificados de autenticidad del metal emitidos por uno de los bancos estadounidenses.

Qué algoritmo de cifrado elegir en TrueCrypt

5. criptogramas Bale Tres mensajes encriptados que se cree que contienen detalles de la ubicación de un tesoro de dos vagones llenos de oro, plata y piedras preciosas enterrados en la década de 1820 cerca de Lynchburg, en el condado de Bedford, Virginia, por un grupo de mineros de oro dirigido por Thomas Jefferson Bale. El precio de un tesoro no encontrado hasta ahora, en términos de dinero moderno, debería rondar los 30 millones de dólares. El enigma de los criptogramas no se ha resuelto hasta el momento, en particular, la cuestión de la existencia real del tesoro sigue siendo controvertida. Uno de los mensajes ha sido descifrado: describe el tesoro en sí y da indicaciones generales de su ubicación. Las cartas restantes sin abrir pueden contener la ubicación exacta del marcador y una lista de los propietarios del tesoro. (información detallada)

6. Manuscrito Voynich a menudo referido como el libro más misterioso del mundo. El manuscrito utiliza un alfabeto único, contiene alrededor de 250 páginas y dibujos que representan flores desconocidas, ninfas desnudas y símbolos astrológicos. Apareció por primera vez a finales del siglo XVI, cuando el emperador del Sacro Imperio Romano Germánico Rodolfo II lo compró en Praga a un mercader desconocido por 600 ducados (unos 3,5 kg de oro, hoy más de 50 mil dólares). De Rodolfo II, el libro pasó a los nobles y científicos, y desapareció a finales del siglo XVII. El manuscrito reapareció alrededor de 1912 cuando fue comprado por el librero estadounidense Wilfried Voynich. Después de su muerte, el manuscrito fue donado a la Universidad de Yale. El erudito británico Gordon Rugg cree que el libro es un ingenioso engaño. El texto tiene rasgos que no son característicos de ninguno de los idiomas. Por otro lado, algunas características, como la longitud de las palabras, la forma en que se conectan las letras y las sílabas, son similares a las que se encuentran en los idiomas reales. “Muchas personas piensan que todo esto es demasiado complicado para que un engaño construya un sistema así, tomaría algunos años de alquimista loco”, dice Rugg. Sin embargo, Rugg muestra que esta complejidad se podría haber logrado fácilmente utilizando un dispositivo de cifrado inventado alrededor de 1550 y llamado rejilla Cardan. En esta tabla de símbolos, las palabras se crean moviendo una tarjeta con agujeros cortados. Debido a los espacios que quedan en la tabla, las palabras tienen diferentes longitudes. Al imponer dichas cuadrículas en la tabla de sílabas del manuscrito, Rugg ha creado un lenguaje que comparte muchas, si no todas, las características del lenguaje del manuscrito. Según él, tres meses serían suficientes para crear el libro completo. (información detallada, wikipedia)

7. cifra de dorabella, compuesta en 1897 por el compositor británico Sir Edward William Elgar. En forma encriptada, envió una carta a la ciudad de Wolverhampton a su novia Dora Penny, la hija de 22 años de Alfred Penny, rector de la Catedral de San Pedro. Este cifrado permanece sin resolver.

8. Hasta hace poco, a la lista asistían caocifrado, que no pudo ser descubierto en vida de su creador. El cifrado fue inventado por John F. Byrne en 1918, y durante casi 40 años trató sin éxito de interesar a las autoridades estadounidenses en él. El inventor ofreció una recompensa monetaria a cualquiera que pudiera resolver su clave, pero como resultado, nadie la pidió.

Pero en mayo de 2010, los miembros de la familia de Byrne entregaron todos los documentos restantes de Byrne al Museo Criptográfico Nacional de Maryland, lo que condujo al descubrimiento del algoritmo.

9. Cifrado D'Agapeyeff. En 1939, el cartógrafo británico de origen ruso, Alexander D'Agapeyeff, publicó un libro sobre los fundamentos de la criptografía Codes and Ciphers, en cuya primera edición citaba un cifrado de su propia invención. Este cifrado no se incluyó en ediciones posteriores. Posteriormente, D'Agapeyeff admitió que había olvidado el algoritmo para descifrar este cifrado. Se sospecha que los fracasos que han caído sobre todos los que han intentado descifrar su obra se deben a que el autor cometió errores al cifrar el texto.

Pero en nuestro tiempo, existe la esperanza de que el cifrado pueda resolverse utilizando métodos modernos, por ejemplo, un algoritmo genético.

10. Taman Shud. El 1 de diciembre de 1948, en la costa de Australia en Somerton, cerca de Adelaide, se encontró el cadáver de un hombre, vestido con un suéter y un abrigo, a pesar del calor característico del clima australiano. No se encontraron documentos sobre él. Los intentos de comparar las huellas de sus dientes y dedos con los datos disponibles sobre personas vivas tampoco dieron resultado. Un examen post mortem reveló un torrente de sangre antinatural, que llenó, en particular, su cavidad abdominal, así como un aumento en los órganos internos, pero no se encontraron sustancias extrañas en su cuerpo. En la estación de tren encontraron simultáneamente una maleta que podría haber pertenecido al difunto. La maleta contenía unos pantalones con un bolsillo secreto en el que encontraron un trozo de papel arrancado de un libro con las palabras impresas en él. Taman Shud. La investigación encontró que un trozo de papel había sido arrancado de una copia muy rara de la colección Rubaiyat del gran poeta persa Omar Khayyam. El libro en sí fue encontrado en el asiento trasero de un automóvil que no estaba cerrado. En la contraportada del libro, cinco líneas estaban garabateadas en letras mayúsculas; no se pudo descifrar el significado de este mensaje. Hasta el día de hoy, esta historia sigue siendo uno de los misterios más misteriosos de Australia.

El cifrado de datos es extremadamente importante para proteger la privacidad. En este artículo, hablaré sobre varios tipos y métodos de cifrado que se utilizan para proteger los datos en la actualidad.

¿Sabías?
En la época romana, Julio César usó el cifrado para hacer que las cartas y los mensajes fueran ilegibles para el enemigo. Desempeñó un papel importante como táctica militar, especialmente durante las guerras.

A medida que las posibilidades de Internet continúan creciendo, más y más de nuestras empresas se reclutan en línea. Entre estos, los más importantes son, banca por internet, pago en línea, correos electrónicos, intercambio de mensajes privados y oficiales, etc., que prevén el intercambio de datos e información confidencial. Si estos datos caen en las manos equivocadas, pueden dañar no solo al usuario individual, sino a todo el sistema comercial en línea.

Para evitar que esto suceda, se han implementado algunas medidas de seguridad en línea para proteger la transmisión de datos personales. El principal de ellos son los procesos de cifrado y descifrado de datos, lo que se conoce como criptografía. Existen tres métodos de cifrado principales que se utilizan en la mayoría de los sistemas actuales: cifrado hash, simétrico y asimétrico. En las siguientes líneas, hablaré sobre cada uno de estos tipos de encriptación con más detalle.

Tipos de cifrado

Cifrado simétrico

En el cifrado simétrico, los datos legibles normales, conocidos como texto sin formato, se codifican (cifran) de manera que se vuelven ilegibles. Esta codificación de datos se realiza mediante una clave. Una vez que los datos están encriptados, se pueden transferir de forma segura al receptor. En el destinatario, los datos cifrados se decodifican utilizando la misma clave que se utilizó para la codificación.

Por lo tanto, está claro que la clave es la parte más importante del cifrado simétrico. Debe ocultarse a los extraños, ya que cualquiera que tenga acceso podrá descifrar datos privados. Es por eso que este tipo de cifrado también se conoce como "clave secreta".

EN sistemas modernos ah, la clave suele ser una cadena de datos que proviene de una contraseña segura o de una fuente completamente aleatoria. Se introduce en el software de cifrado simétrico, que lo utiliza para proteger la entrada. La codificación de datos se logra mediante un algoritmo de cifrado simétrico como el Estándar de cifrado de datos (DES), el Estándar de cifrado avanzado (AES) o el Algoritmo de cifrado de datos internacional (IDEA).

Restricciones

El eslabón más débil de este tipo de cifrado es la seguridad de la clave, tanto en el almacenamiento como en la transmisión del usuario autenticado. Si un pirata informático puede obtener esta clave, puede descifrar fácilmente los datos cifrados, destruyendo todo el punto del cifrado.

Otro inconveniente se debe al hecho de que software, que procesa datos no puede funcionar con datos cifrados. Por lo tanto, para poder usar este software, primero se deben decodificar los datos. Si el software en sí está comprometido, un atacante puede obtener fácilmente los datos.

Cifrado asimétrico

Una clave de cifrado asimétrica funciona de manera similar a una clave simétrica en el sentido de que utiliza una clave para cifrar los mensajes que se envían. Sin embargo, en lugar de usar la misma clave, usa una completamente diferente para descifrar este mensaje.

La clave utilizada para el cifrado está disponible para todos y cada uno de los usuarios de la red. Como tal, se conoce como la clave "pública". Por otro lado, la clave utilizada para el descifrado se mantiene en secreto y está destinada a ser utilizada de forma privada por el propio usuario. Por lo tanto, se conoce como la clave "privada". El cifrado asimétrico también se conoce como cifrado de clave pública.

Dado que, con este método, la clave secreta necesaria para descifrar el mensaje no tiene que transmitirse cada vez y, por lo general, solo la conoce el usuario (receptor), la probabilidad de que un hacker pueda descifrar el mensaje es mucho mayor. más bajo.

Diffie-Hellman y RSA son ejemplos de algoritmos que utilizan el cifrado de clave pública.

Restricciones

Muchos piratas informáticos utilizan el "hombre en el medio" como una forma de ataque para eludir este tipo de encriptación. En el cifrado asimétrico, se le proporciona una clave pública que se utiliza para comunicarse de forma segura con otra persona o servicio. Sin embargo, los piratas informáticos usan redes engañosas para engañarlo para que se comunique con ellos mientras le hacen creer que está en una línea segura.

Para comprender mejor este tipo de piratería, considere las dos partes que interactúan, Sasha y Natasha, y el hacker Sergei con la intención de interceptar su conversación. Primero, Sasha envía un mensaje a través de la red destinado a Natasha, solicitando su clave pública. Sergei intercepta este mensaje y obtiene la clave pública asociada con ella y la usa para encriptar y enviar un mensaje falso a Natasha que contiene su clave pública en lugar de la de Sasha.

Natasha, pensando que este mensaje vino de Sasha, ahora lo encripta con la clave pública de Sergey y lo envía de vuelta. Este mensaje fue nuevamente interceptado por Sergey, descifrado, modificado (si lo desea), cifrado nuevamente usando la clave pública que Sasha había enviado originalmente y enviado de vuelta a Sasha.

Por lo tanto, cuando Sasha recibe este mensaje, se le ha hecho creer que proviene de Natasha y sigue sin darse cuenta del juego sucio.

hash

La técnica hash utiliza un algoritmo conocido como función hash para generar una cadena especial a partir de los datos proporcionados, conocida como hash. Este hash tiene las siguientes propiedades:

  • los mismos datos siempre producen el mismo hash.
  • no es posible generar datos sin procesar solo a partir de un hash.
  • No es práctico probar diferentes combinaciones de entradas para intentar generar el mismo hash.

Por lo tanto, la principal diferencia entre el hashing y las otras dos formas de cifrado de datos es que una vez que los datos se cifran (hash), no se pueden recuperar en su forma original (descifrados). Este hecho asegura que incluso si un hacker consigue el hash, no le servirá de nada, ya que no podrá descifrar el contenido del mensaje.

Message Digest 5 (MD5) y Secure Hashing Algorithm (SHA) son dos algoritmos de hash ampliamente utilizados.

Restricciones

Como se mencionó anteriormente, es casi imposible descifrar datos de un hash determinado. Sin embargo, esto solo es cierto si se implementa un hash fuerte. En el caso de una implementación débil de la técnica hash, usando suficientes recursos y ataques fuerza bruta, un hacker persistente puede encontrar datos que coincidan con el hash.

Combinación de métodos de encriptación

Como se discutió anteriormente, cada uno de estos tres métodos de encriptación adolece de algunas desventajas. Sin embargo, cuando se usa una combinación de estos métodos, forman un sistema de encriptación fuerte y altamente eficiente.

La mayoría de las veces, las técnicas de clave pública y privada se combinan y se usan juntas. El método de clave secreta permite un descifrado rápido, mientras que el método de clave pública ofrece una forma más segura y más manera conveniente para transferir la clave secreta. Esta combinación de métodos se conoce como el "sobre digital". Programa de cifrado Correo electrónico PGP se basa en la técnica del "sobre digital".

Hashing encuentra uso como un medio para verificar la seguridad de una contraseña. Si el sistema almacena el hash de la contraseña en lugar de la contraseña en sí, será más seguro, porque incluso si el hash cae en manos de un pirata informático, no podrá entenderlo (leerlo). Durante la verificación, el sistema verificará el hash de la contraseña entrante y verá si el resultado coincide con lo que está almacenado. Por lo tanto, la contraseña real solo será visible en los breves momentos en que debe cambiarse o verificarse, lo que reduce en gran medida la posibilidad de que caiga en manos equivocadas.

Hashing también se utiliza para autenticar datos con una clave secreta. El hash se genera utilizando los datos y esta clave. Por lo tanto, solo los datos y el hash son visibles, y la clave en sí no se transmite. De esta forma, si se realizan cambios en los datos o en el hash, se detectarán fácilmente.

En conclusión, estas técnicas se pueden usar para codificar datos de manera eficiente en un formato ilegible que puede garantizar que permanezca seguro. La mayoría de los sistemas modernos suelen utilizar una combinación de estos métodos de cifrado junto con una fuerte implementación de algoritmos para mejorar la seguridad. Además de la seguridad, estos sistemas también brindan muchos beneficios adicionales, como verificar la identidad del usuario y garantizar que los datos recibidos no puedan ser manipulados.