Menú
Está libre
Registro
hogar  /  Educación/ Algoritmos de cifrado asimétrico. Algoritmos de cifrado modernos Todos los algoritmos de cifrado

Algoritmos de cifrado asimétrico. Algoritmos de cifrado modernos Todos los algoritmos de cifrado

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

Algoritmos de sustitución o sustitución: los caracteres del texto de origen se reemplazan con caracteres de otro (o del mismo) alfabeto de acuerdo con un esquema predeterminado, que será la clave de este cifrado. Por separado, este método prácticamente no se usa en los sistemas criptográficos modernos debido a la fuerza criptográfica extremadamente baja.

Algoritmos de permutación: los caracteres del texto original se intercambian según un determinado principio, que es la clave secreta. El algoritmo de permutación en sí tiene una fuerza criptográfica baja, pero se incluye como un elemento en muchos criptosistemas modernos.

Algoritmos gamma: los caracteres del texto de origen se agregan a los caracteres de alguna secuencia aleatoria. El ejemplo más común es el cifrado de archivos "username.rwl", en el que el sistema operativo sistema 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 para iniciar sesión en Windows 95, genera una gamma (siempre la misma) que se utiliza para cifrar las contraseñas de la red mediante el algoritmo de cifrado RC4. La sencillez de la selección de la contraseña se debe en este caso al hecho de que Windows siempre prefiere la misma gama.

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

Métodos combinados. Cifrado secuencial del texto original utilizando dos o más métodos.

Algoritmos de cifrado

Echemos un vistazo más de cerca a los métodos de protección de datos criptográficos.

1. Algoritmos de reemplazo (sustitución)

2. Algoritmo de permutación

3. Algoritmo gamma

4. Algoritmos basados ​​en transformaciones matemáticas complejas

5. Métodos de cifrado combinados

Algoritmos 1-4 en " forma pura"se usaban antes, y hoy están incrustados en casi cualquier, incluso en los más programa dificil encriptación Cada uno de los métodos considerados implementa Propia manera protección criptográfica de la información y tiene sus propias ventajas y desventajas, pero su común el más importante característica es la durabilidad. Se entiende como la cantidad mínima de texto cifrado, cuyo análisis estadístico puede revelar el texto original. Por lo tanto, por la fuerza de la cifra, es posible determinar la cantidad máxima permitida de información cifrada utilizando una clave. A la hora de elegir un algoritmo criptográfico para utilizarlo en un determinado desarrollo, su fortaleza es uno de los factores determinantes.

Todos los criptosistemas modernos están diseñados de tal manera que no hay forma de abrirlos más. manera efectiva que una búsqueda exhaustiva en todo el espacio de claves, es decir, sobre todos los valores clave posibles. Está claro que la fuerza de tales cifrados está determinada por el tamaño de la clave utilizada en ellos.

Daré estimaciones de la fuerza de los métodos de cifrado discutidos anteriormente. La sustitución monoalfabética es el cifrado menos seguro, ya que su uso conserva todos los patrones estadísticos del texto original. Ya con una longitud de 20-30 caracteres, estos patrones se manifiestan hasta tal punto que, por regla general, le permite abrir el texto de origen. Por lo tanto, dicho cifrado se considera adecuado solo para cerrar contraseñas, mensajes de señal cortos y caracteres individuales.

La estabilidad de una sustitución polialfabética simple (de sistemas similares, se consideró la sustitución según la tabla de Vigenere) se estima en 20n, donde n es el número de alfabetos diferentes utilizados para la sustitución. Cuando se usa la tabla de Vigenere, el número de alfabetos diferentes está determinado por el número de letras en palabra clave. La complicación de la sustitución polialfabética aumenta significativamente su estabilidad.

La estabilidad del juego está determinada únicamente por el largo período de la gama. Actualmente, el uso de una gama infinita se está convirtiendo en una realidad, al usarlo, teóricamente, la fuerza del texto cifrado también será infinita.

Se puede observar que la gama y las permutaciones y sustituciones complicadas son las más adecuadas para el cierre confiable de grandes matrices de información.

Cuando se utilizan métodos de cifrado combinados, la fuerza del cifrado es igual al producto de las fuerzas de los métodos individuales. Por lo tanto, el cifrado combinado es el método más seguro de cierre criptográfico. Es este método el que fue la base para el funcionamiento de todos los dispositivos de cifrado conocidos actualmente.

El algoritmo DES fue aprobado hace incluso más de 20 años, pero durante este tiempo las computadoras han dado un salto increíble en la velocidad computacional, y ahora no es tan difícil romper este algoritmo enumerando exhaustivamente todas las opciones clave posibles (y DES usa solo 8 bytes), que recientemente parecía completamente imposible.

GOST 28147-89 fue desarrollado por los servicios especiales Unión Soviética, y es solo 10 años más joven que DES; durante el desarrollo, se incorporó tal margen de seguridad que este GOST sigue siendo relevante.

Los valores de fuerza de cifrado considerados son valores potenciales. Se pueden implementar con estricto apego a las reglas de uso. medios criptográficos proteccion. Las principales de estas reglas son: mantener las claves en secreto, evitar la duplicación (es decir, volver a cifrar el mismo texto con las mismas claves) y cambiar las claves con bastante frecuencia.

Conclusión

Así, en este trabajo se realizó una descripción general de los métodos más comunes actualmente de protección de información criptográfica y métodos para su implementación. La elección de sistemas específicos debe basarse en un análisis profundo de los puntos débiles y fortalezas alguna forma de protección. Una elección razonable de uno u otro sistema de protección, en general, debe basarse en unos criterios de eficiencia. Desafortunadamente, todavía no se han desarrollado métodos adecuados para evaluar la eficacia de los sistemas criptográficos.

El criterio más simple para tal eficiencia es la probabilidad de revelar la clave o la cardinalidad del conjunto de claves (M). En esencia, esto es lo mismo que la fuerza criptográfica. Para su evaluación numérica, también se puede utilizar la complejidad de descifrar el cifrado por enumeración de todas las claves. Sin embargo, este criterio no tiene en cuenta otros requisitos importantes para los criptosistemas:

la imposibilidad de divulgación o modificación significativa de la información basada en el análisis de su estructura,

la perfección de los protocolos de seguridad utilizados,

la cantidad mínima de información clave utilizada,

la complejidad mínima de implementación (en el número de operaciones de la máquina), su costo,

alta eficiencia.

Por lo tanto, es deseable, por supuesto, utilizar algunos indicadores integrales que tengan en cuenta estos factores. Pero, en cualquier caso, el conjunto seleccionado de métodos criptográficos debe combinar comodidad, flexibilidad y eficiencia de uso, así como una protección confiable contra intrusos de la información que circula en el sistema.


Parte práctica:

Ejercicio 1.

1) Rellene el campo X ejecutando

1.1 Establecer manualmente el primer valor

1.2 Ejecutar Editar->Rellenar->

2) Rellene el campo de valor de la función g =

Fig.1.1 - La fórmula de la función g (x)

2.1) Calcular los valores de funciones

3) Graficar

3.1) Seleccionar celdas con valores de Funciones g

3.2) Elija un patrón de gráfico

Fig.1.2 - Asistente de gráfico - Gráfico

Siguiente -> Fila

Fig.1.3 - Asistente de gráfico - etiqueta de ejes

Resaltar el valor del eje X

Presiona Enter (ingresar)

3.3) Tablas de nombres

3.4) Seleccione la celda con la fórmula gráfica

3.6) Seleccione la pestaña -> Líneas de cuadrícula, configure

X líneas intermedias, Y líneas principales ->Siguiente

3.7) Colocamos la gráfica de la función en la hoja existente -> (Listo)

4) Como resultado, obtenemos (Fig.1.4)

Fig.1.4 - Gráfico de la función g (x)

1.2.

1) Definir las funciones de los gráficos futuros en los campos de la tabla

Fig.1.5 - Firma de las funciones de las cartas futuras

2) Complete el campo X ejecutando:

2.1 Establecer manualmente el primer valor

2.2 Ejecutar Editar->Rellenar->Progresión (por columnas, aritmética, paso, valor límite) en x [-2;2]

3) Calcular los valores de las funciones y=2sin( x) - 3cos( x), z = cos²(2 x) - 2sin( x).


Fig.1.6 - Fórmulas de las funciones y(x) y z(x)

4) Trazado

4.1Seleccionar celdas con valores de Funciones y y z

Elegir un asistente de gráficos

Fig.1.7 - Asistente de gráfico - Gráfico

Resaltar el valor del eje X

Presiona Enter (ingresar)

4.2) Tablas de nombres

4.3) Seleccione la celda con la fórmula gráfica

Presiona enter (enter), luego haz lo mismo con la segunda fila

4.5) Seleccione la pestaña -> Líneas de cuadrícula, configure

X líneas intermedias, Y líneas principales ->Siguiente

4.6) Colocamos la gráfica de la función en la hoja existente -> (Listo)

5) Como resultado, obtenemos (Fig.1.8)

Fig.1.8 - Gráficas de las funciones y(x) y z(x)

Tarea 2.

Creación de la lista de "Departamento de RRHH"

Fig.2.1 Lista de "Departamento de RRHH"

· Clasificación

Fig.2.2 - Clasificación por el nombre del campo

Como resultado, obtenemos (Fig.2.3)

Fig.2.3 - Tabla ordenada "Departamento de RRHH"

·
Busque información usando un autofiltro (obtenga información sobre hombres cuyo nombre comienza con la letra Carta, patronímico - "Ivanovich", con un salario Salario);

Fig.2.4 - Autofiltro

Busque información usando el filtro avanzado (busque información del departamento Departamento1 Envejecido Edad1 y Edad2, y sobre mujeres del departamento Departamento2 Envejecido Edad3);

1) Ingrese los criterios para el filtro avanzado 1

Como resultado, obtenemos (Fig.2.5)

Fig.2.5 - Filtro avanzado 1

2) Introduzca los criterios para el filtro avanzado 2.

Como resultado, obtenemos (Fig. 2.6)

Fig.2.6 - Filtro avanzado 2

Resumiendo (determinar el número y la edad promedio de los empleados en cada departamento);

Fig.2.7 - Resultados

Función DMIN- Devuelve el número más pequeño en un campo (columna) de registros en una lista o base de datos que satisface las condiciones dadas.

Fig.2.8 - Análisis de la lista usando la función DMIN

Tarea 3.

Crear dos tablas relacionadas Sesión(fig.3.2) y estudiantes(fig.3.4)

Fig.3.1- Constructor de tablas Sesión

Fig.3.2- Tabla Sesión

Fig.3.3 - Constructor de tablas estudiantes


Fig.3.4 - Mesa estudiantes

1) Usando una tabla estudiantes, crear tres consultas, según las cuales se seleccionarán alternativamente de la base de datos los nombres y apellidos de los alumnos de los grupos 1-E-1, 1-E-2, 1-E-3.

Fig.3.5 - Generador de consultas 1.1


Fig.3.7 - Constructor de consulta 1.2

Fig.3.9 - Constructor de consultas 1.3

2) Usando una mesa estudiantes, cree dos consultas, según las cuales los apellidos y los nombres de las mujeres se seleccionarán alternativamente de la base de datos, y luego los apellidos y los nombres de los hombres.

Fig.3.11 - Constructor de consulta 2.1

Fig.3.13 - Constructor de consultas 2.2

3) uso una mesa estudiantes, cree dos consultas, según las cuales los apellidos y los nombres de las mujeres del grupo 1-E-2, y luego los hombres del grupo 1-E-1, se seleccionarán alternativamente de la base de datos.

Fig.3.15 - Constructor de consultas 3.1

Fig.3.17 - Constructor - 3.2

4) Usar tablas vinculadas estudiantes y Sesión, cree una consulta, según la cual se seleccionarán de la base de datos los apellidos, nombres, números de crédito y calificaciones en matemáticas de los estudiantes del grupo 1-E-2.

Fig.3.19 - Constructor de consultas 5

5) Uso de tablas vinculadas estudiantes y Sesión, crear una consulta que seleccionará de la base de datos los apellidos, nombres, números de registro y calificaciones en filosofía de los estudiantes (hombres) del grupo 1-E-2.

Fig.3.21 - Constructor de consultas 8

6) Usar tablas vinculadas estudiantes y Sesión, cree una consulta que seleccionará de la base de datos los apellidos, nombres, números de registro de los estudiantes que han recibido una calificación de "satisfactorio" (3) en filosofía.

Fig.3.23 - Constructor de consultas 10

7) Uso de tablas vinculadas estudiantes y Sesión, crear una consulta que seleccionará de la base de datos los apellidos, nombres, números de registro de los estudiantes que recibieron una calificación de "bueno" (4) simultáneamente en dos materias: filosofía y matemáticas.

Fig.3.25 - Constructor de consultas 14

8) Usar tablas vinculadas estudiantes y Sesión, cree una consulta que seleccionará de la base de datos los apellidos, nombres, números de registro de los estudiantes que recibieron una calificación "insatisfactoria" (2) en una de dos materias: matemáticas o informática.

Fig.3.27 - Constructor de consultas 18

9) Usar tablas vinculadas estudiantes y Sesión, crear una consulta que seleccionará de la base de datos apellidos, nombres, números de registro de los estudiantes que recibieron una calificación de "bueno" (4) en todas las materias.

Fig.3.29 - Constructor de consultas 22

10) Usando una mesa Sesión, crear una consulta llamada Puntuación media para calcular el puntaje promedio de cada estudiante basado en los resultados de aprobar cuatro exámenes. La solicitud debe contener el campo libro de registro, que luego se usará para vincular varias tablas.

Fig.3.31 - Constructor de tablas de sesión

11) Uso de tablas vinculadas estudiantes, Sesión y solicitud Puntuación media, cree una consulta que seleccionará apellidos, nombres, números de registro, números de grupo de estudiantes con una puntuación media de 3,25 de la base de datos.

Fig.3.33 - Constructor de consultas 25

12) Uso de tablas vinculadas estudiantes, Sesión y solicitud Puntuación media, cree una consulta que seleccione la calificación de matemáticas, el puntaje promedio y el número de grupo del estudiante Ivanov de la base de datos.

Fig.3.35 - Constructor de consultas 29

13) Uso de tablas vinculadas estudiantes, Sesión y solicitud Puntuación media, cree una consulta que seleccionará de la base de datos apellidos, nombres de estudiantes con un puntaje promedio de menos de 3.75.

Fig.3.37 - Constructor de consultas 33

14) Usando una mesa estudiantes, para determinar el apellido, el nombre y el número de registro de la estudiante, si se sabe que su patronímico es Viktorovna.

Fig.3.39 - Constructor de consultas 35

Tarea 4.

Para convertir un número de un sistema numérico decimal a un sistema numérico con una base diferente, proceda de la siguiente manera:

a) Para trasladar la parte entera de un número, se divide enteramente por la base del sistema, fijando el resto. Si el cociente incompleto no es igual a cero, continúa dividiéndolo por completo. Si es igual a cero, los residuos se escriben en orden inverso.

b) Para traducir la parte fraccionaria del número, se multiplica por la base del sistema numérico, fijando las partes enteras de los productos resultantes. Las partes enteras no participan en la multiplicación posterior. La multiplicación se realiza hasta obtener 0 en la parte fraccionaria del producto o hasta la precisión de cálculo especificada.

c) La respuesta se escribe como una suma del entero traducido y la parte fraccionaria traducida del número.

49812,22₁₀ = 1100001010010100,001₂ 49812,22₁₀ = 141224,160₈

0,
0,

49812.22₁₀ = С294, 385₁₆

0,

Tarea 5.

Para convertir un número a un sistema numérico decimal de un sistema numérico con una base diferente, cada coeficiente del número traducido se multiplica por la base del sistema en la medida correspondiente a este coeficiente, y los resultados se suman.

A) 10101001.11001₂ = 1*2^7+1*2^5+1*2^3+1*2^0+1*2^(-1)+1*2^(-2)+1* 2 (-5)= 169,78125₁₀

Para convertir de binario a octal, es necesario dividir el número binario dado a la derecha e izquierda del punto decimal en una tríada (tres dígitos) y representar cada tríada con el código octal correspondiente. Si es imposible dividir en triadas, se permite agregar ceros a la izquierda en la notación entera del número y a la derecha en la parte fraccionaria del número. Para la traducción inversa, cada dígito de un número octal está representado por la tríada binaria correspondiente.

Tabla 5.1 - Traducción de números

Sistema de números decimales Sistema numérico binario Sistema de numeración octal sistema numérico hexadecimal
Triadas (0-7) Tétradas (0-15)
A
B
C
D
mi
F

B) 674.7₈ = 110111100.111₂=1*2^2+1*2^3+1*2^4+1*2^5+1*2^7+1*2^8+1*2^ (- 1) +1*2^(-2) +1*2^(-3)= 443,875₁₀

110 111 100. 111₂

C) FED,51₁₆ = 111011011111.01010001₂=1*2^0+1*2^1+1*2^2+1*2^3+1*2^4+1*2^6+ +1*2 ^ 7+1*2^9+ +1*2^10+1*2^11+1*2^(-2) 1*2^(-4) 1*2^(-8)= 3807,31640625₁₀

1110 1101 1111 . 0101 0001₂

Tarea 6.

La suma de números en el sistema binario se basa en la tabla de suma de números binarios de un solo dígito.

0 + 0 = 0 0 + 1 = 1 1 + 0 = 1 1 + 1 = 10
La adición de números binarios de varios dígitos se realiza de acuerdo con esta tabla, teniendo en cuenta las posibles transferencias desde el bit menos significativo hasta el más alto. En el sistema de numeración octal, como en cualquier otro sistema posicional, existen reglas propias para la suma de números, las cuales están representadas por las reglas para la suma de dígitos con órdenes iguales relacionados con dos números sumados. Estas reglas son visibles en la Tabla 6.1. El guión que aparece al sumar algunos dígitos de este dígito se muestra con el símbolo "↶".
Tabla 6.1 - Adición en el sistema numérico 8
+
↶0
↶0 ↶1
↶0 ↶1 ↶2
↶0 ↶1 ↶2 ↶3
↶0 ↶1 ↶2 ↶3 ↶4
↶0 ↶1 ↶2 ↶3 ↶4 ↶5
↶0 ↶1 ↶2 ↶3 ↶4 ↶5 ↶6

Las reglas para sumar dígitos de dos números hexadecimales en los mismos dígitos de estos números se pueden ver en la Tabla 6.2. El acarreo que ocurre al sumar algunos dígitos de un dígito dado se muestra con el símbolo "↶".

6 8 5 . 3 2 2 UN ₁₆ + 1 0 1 0 1 0 0 1 0 . 1 0 ₂ + 4 7 7 . 6₈

RE UN 4 8 5 , 4 4 6 0 ₁₆ 1 1 0 0 0 0 1 1 0 , 1 1 0 1 0₂6 5 1 , 5 6₈

RE UN segundo 0 UN , 7 6 8 A₁₆ 1 0 1 1 0 1 1 0 0 1 , 0 1 0 1 0₂ 1 3 5 1 .3 6₈

Tabla 6.2 - Adición en el sistema numérico 16

+ A B C D mi F
A B C D mi F
A B C D mi F ↶0
A B C D mi F ↶0 ↶1
A B C D mi F ↶0 ↶1 ↶2
A B C D mi F ↶0 ↶1 ↶2 ↶3
A B C D mi F ↶0 ↶1 ↶2 ↶3 ↶4
A B C D mi F ↶0 ↶1 ↶2 ↶3 ↶4 ↶5
A B C D mi F ↶0 ↶1 ↶2 ↶3 ↶4 ↶5 ↶6
A B C D mi F ↶0 ↶1 ↶2 ↶3 ↶4 ↶5 ↶6 ↶7
A B C D mi F ↶0 ↶1 ↶2 ↶3 ↶4 ↶5 ↶6 ↶7 ↶8
A A B C D mi F ↶0 ↶1 ↶2 ↶3 ↶4 ↶5 ↶6 ↶7 ↶8 ↶9
B B C D mi F ↶0 ↶1 ↶2 ↶3 ↶4 ↶5 ↶6 ↶7 ↶8 ↶9 ↶A
C C D mi F ↶0 ↶1 ↶2 ↶3 ↶4 ↶5 ↶6 ↶7 ↶8 ↶9 ↶A ↶B
D D mi F ↶0 ↶1 ↶2 ↶3 ↶4 ↶5 ↶6 ↶7 ↶8 ↶9 ↶A ↶B ↶C
mi mi F ↶0 ↶1 ↶2 ↶3 ↶4 ↶5 ↶6 ↶7 ↶8 ↶9 ↶A ↶B ↶C ↶D
F F ↶0 ↶1 ↶2 ↶3 ↶4 ↶5 ↶6 ↶7 ↶8 ↶9 ↶A ↶B ↶C ↶D ↶E

Tarea 7.

Usando la tabla de sumas para números octales, puedes restarlos. Sea necesario calcular la diferencia de dos números octales. Nos encontramos en la primera columna de la tabla. 6.1 el dígito correspondiente al último en el restado, y en su línea encontraremos el último dígito del reducido: se encuentra en la intersección de la línea del sustraendo y la columna de diferencia. Entonces encontramos el último dígito de la diferencia. De manera similar, se busca cada dígito de la diferencia.

a) _ 2 5 1 5 1 4 , 4 0₈

5 4 2 5 , 5 5

2 4 3 0 6 6 , 6 3₈

b) _1 0 1 1 0 1 1 0 0 0 , 1 0 0 0 0₂

1 0 1 0 0 1 0 0 1 , 1 0 0 1 1

1 0 1 1 0 0 1 0 0 1 1 , 0 0 0 0 1₂

c) _E 3 1 6 , 2 5 0₁₆

5 8 8 1 , F RE C₁₆

8 A 9 4 , 2 7 4

Tarea 8.

La multiplicación de números en el sistema binario se basa en la tabla de multiplicar de números binarios de un solo dígito.

0 0 = 0
0 1 = 0
1 0 = 0
1 1 = 1

La multiplicación de números binarios de varios dígitos se lleva a cabo en
de acuerdo con esta tabla de la manera habitual,
que usas en el sistema decimal.

La propia tabla de multiplicar, como ya hemos tenido la oportunidad de asegurar, está disponible en cada sistema de numeración posicional. En binario es el más pequeño, en octal (Tabla 8.1) y decimal ya es más extenso. Entre los sistemas numéricos de uso común de los que hemos considerado, la tabla de multiplicar más grande es hexadecimal (Tabla 8.2).

Pestaña. 8.1. – Multiplicación en el 8vo sistema

×

a) 1 0 1 0 0 1₂

* 1 1 1 0 1 1

1 0 1 0 0 1 .

1 0 0 1 0 1 1 1 0 0 1 1₂

b) 1 0 1 1 1 0 0₂

* 1 1 0 1 1

1 0 1 1 1 0 0 .

1 0 0 1 1 0 1 1 0 1 0 0₂

c) B C D , 5₁₆

*D5A₁₆

9 re 9 3 3 mi 2₁₆


Tabla 8.2 - Multiplicación en el sistema 16

× A B C D mi F
A B C D mi F
A C mi 1A 1C 1E
C F 1B 1E 2A 2D
C 1C 2C 3C
A F 1E 2D 3C 4B
C 1E 2A 3C 4E 5A
mi 1C 2A 3F 4D 5B
1B 2D 3F 5A 6C 7E
A A 1E 3C 5A 6E 8C
B B 2C 4D 6E 8F 9A A5
C C 3C 6C 9C A8 B4
D D 1A 4E 5B 8F 9C A9 B6 C3
mi mi 1C 2A 7E 8C 9A A8 B6 C4 D2
F F 1E 2D 3C 4B 5A A5 B4 C3 D2 E1

Tarea 9.

código directo es una forma de representar números binarios de punto fijo en la aritmética informática. Al escribir un número en un código directo, el dígito más significativo es dígito de signo. Si su valor es 0, entonces el número es positivo, si es 1, entonces es negativo.

código inverso- un método de matemáticas computacionales que le permite restar un número de otro, usando solo la operación de suma en números naturales. Al escribir un número para un número positivo, coincide con el código directo, y para un número negativo, todos los dígitos se reemplazan por opuestos, excepto el dígito.

código adicional(Inglés) complemento a dos, algunas veces complemento a dos) es la forma más común de representar enteros negativos en las computadoras. Le permite reemplazar la operación de resta con la operación de suma y hacer que las operaciones de suma y resta sean las mismas para números con y sin signo, lo que simplifica la arquitectura de la computadora. Al escribir un número para un número positivo, coincide con el código directo, y para un número negativo, el código adicional se determina obteniendo el código inverso y sumando 1.

Suma de números en el código adicional, se descarta el acarreo de 1 resultante en el bit de signo, y en el código inverso se suma al bit menos significativo de la suma de los códigos.

Si el resultado de las operaciones aritméticas es un código numérico negativo, debe convertirse a un código directo. El código inverso se convierte en un reemplazo directo de dígitos en todos los dígitos excepto el signo uno con los opuestos. El código complemento a dos se convierte en directo sumando 1.

Código directo:

X=0.10111 1.11110

Y=1.11110 0,10111

Código inverso:

X=0,10111 0,10111

Y=1.00001 1,00001

1,11000 1,00111

Código adicional:

X=0,10111 0,10111

Y=1.00010 1,00010

1,11001 1,00110

Código directo:

Código inverso:

X=0.110110 0.0110110

Y=0.101110 0,0101110

Código adicional:

X=0.110110 0.0110110

Y=0.101110 0,0101110

Tarea 10.

Elementos lógicos

1. El elemento lógico NO realiza negación lógica. Tiene una entrada y una salida. La ausencia de señal (tensión) se denotará con "0", y la presencia de señal con "1". La señal de salida siempre es opuesta a la señal de entrada. Esto se puede ver en la tabla de verdad, que muestra la dependencia de la señal de salida con respecto a la entrada.

2. La puerta OR realiza una suma lógica. Tiene múltiples entradas y una salida. Habrá una señal en la salida si hay una señal al menos en una entrada.

Símbolo mesa de la verdad

3. La puerta AND realiza una multiplicación lógica. La señal en la salida de este elemento lógico será solo si hay una señal en todas las entradas.

Notación convencional Tabla de verdad

F=(A v B) ʌ (C v D)

Tabla 10.1 - Tabla de verdad

A B C D A B C D (A contra B) (CvD) F=(A v B) ʌ (C v D)

AEn el álgebra de la lógica, hay una serie de leyes que permiten transformaciones equivalentes de expresiones lógicas. Presentemos las relaciones que reflejan estas leyes.

1. Ley de la doble negación: (A) = A

La doble negación excluye la negación.

2. Ley conmutativa (conmutativa):

Para la suma lógica: A V B = B V A

Para la multiplicación lógica: A&B = B&A

El resultado de la operación sobre declaraciones no depende del orden en que se toman estas declaraciones.

3. Ley asociativa (asociativa):

Para la suma lógica: (A v B) v C = A v (Bv C);

Para la multiplicación lógica: (A&B)&C = A&(B&C).

Con los mismos signos, los corchetes pueden colocarse arbitrariamente o incluso omitirse.

4. Ley distributiva (distributiva):

Para la suma lógica: (A v B)&C = (A&C)v(B&C);

Para la multiplicación lógica: (A&B) v C = (A v C)&(B v C).

Define la regla para poner entre paréntesis una declaración general.

5. Ley de inversión general (leyes de Morgan):

Para la suma lógica: (Av B) = A & B;

Para la multiplicación lógica: (A& B) = A v B;

6. Ley de la idempotencia

Para la suma lógica: A v A = A;

Para la multiplicación lógica: A&A = A.

La ley significa que no hay exponentes.

7. Leyes de exclusión de constantes:

Para la suma lógica: A v 1 = 1, A v 0 = A;

Para la multiplicación lógica: A&1 = A, A&0 = 0.

8. Ley de contradicción: A&A = 0.

Es imposible que declaraciones contradictorias sean verdaderas al mismo tiempo.

9. La ley de la exclusión del medio: A v A = 1.

10. Ley de Absorción:

Para la suma lógica: A v (A&B) = A;

Para la multiplicación lógica: A&(A v B) = A.

11. La ley de exclusión (pegado):

Para la suma lógica: (A&B) v (A &B) = B;

Para la multiplicación lógica: (A v B)&(A v B) = B.

12. Ley de contraposición (regla de inversión):

(AvB) = (BvA).

(A→B) = A&B

A&(AvB)= A&B

Una fórmula tiene forma normal si no contiene signos de equivalencia, implicación, doble negación, mientras que los signos de negación se encuentran sólo en las variables.


Información similar.


El cifrado de datos es extremadamente importante para proteger la privacidad. En este artículo, hablaré sobre los diferentes tipos y métodos de encriptación 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 la banca por Internet, el pago en línea, el correo electrónico, el intercambio de mensajes privados y oficiales, etc., que implican 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. A siguientes lineas, cubriré cada uno de estos tipos de cifrado 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".

A 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 cifrado simétrico. software, que lo usa 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 el software que procesa los 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 transmitir mensaje falso, 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 regreso. 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 hace 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 dado. 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 de 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 conveniente de transmitir la clave secreta. Esta combinación de métodos se conoce como el "sobre digital". El programa de cifrado de 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.


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. Para empezar, considere los principales métodos de protección de información criptográfica. En una palabra, criptografía- la ciencia de la seguridad de la información usando 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.
    Los algoritmos de firma electrónica utilizan dos tipos de claves:
    • 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 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, suele ser el hash de los datos lo que se "firma", y no todos los datos;
    • 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,
DE(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, llamó 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.

A 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 (dado 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 de la clave pública y la lentitud de la velocidad de cifrado. 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 denominan 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.

El estándar de cifrado estatal en Rusia es el algoritmo registrado como GOST 28147-89. Es un cifrado de bloques, es decir, no cifra caracteres individuales, sino bloques de 64 bits. El algoritmo proporciona 32 ciclos de conversión de datos con una clave de 256 bits, por lo que es muy fiable (tiene una gran fuerza criptográfica). En las computadoras modernas, descifrar este cifrado mediante un ataque de fuerza bruta llevaría al menos cientos de años, lo que haría que dicho ataque no tuviera sentido. Estados Unidos utiliza un cifrado de bloque AES similar.

El algoritmo RSA es popular en Internet, lleva el nombre de las letras iniciales de los nombres de sus autores: R.Rivest, A.Shamir y L.Adleman. Este es un algoritmo de clave pública cuya fortaleza se basa en el uso de propiedades de los números primos. Para descifrarlo, necesitas descomponer un número muy grande en factores primos. Este problema ahora solo puede resolverse mediante la enumeración de opciones. Dado que la cantidad de opciones es enorme, se necesitan muchos años de computadoras modernas para resolver el cifrado.

Para aplicar el algoritmoSe requiere RSA para construir las claves pública y privada de la siguiente manera.

1. Elija dos números primos grandes, p y q.
2. Encuentra su producto n = p * q y el valor f = (p - 1) (q - 1)
3. Elija el número e (1< e < k), которое не имеет общих делителей с f.
4. Encuentra un número d que satisfaga la condición d e = k f + 1 para algún número entero k
5. El par de valores (e, n) es la clave pública RSA (se puede publicar libremente) y el par de valores (d, n) es la clave privada.

El mensaje transmitido primero debe representarse como una secuencia de números en el rango de 0 a n - 1. Para el cifrado, se usa la fórmula y \u003d x e mod n, donde x es el número del mensaje original, (e, n ) es la clave pública, y es el número del mensaje codificado y la notación x e mod n denota el resto de dividir x por n. El mensaje se descifra usando la fórmula x = y d mod n.
Esto significa que cualquier persona puede cifrar un mensaje (la clave pública se conoce públicamente), y solo aquellos que conocen el exponente secreto d pueden leerlo.
Para una mejor comprensión mostraremos el funcionamiento del algoritmo RSA con un ejemplo sencillo.
EJEMPLO: Tome p = 3 y q = 7, luego encontramos n = p q = 21 y f = (p - 1) (q - 1) = 12. Elegimos e = 5, luego la igualdad d e = kf + 1 se cumple, por ejemplo, para d = 17 (y k = 7). Así, obtuvimos la clave pública (5, 21) y la clave secreta (17, 21).

Codifiquemos el mensaje "123" usando la clave pública (5.21). Obtenemos

1 1 5 mod 21 = 1 ,
2 2 5 modificación21 = 11 ,

3 → 3 5 módulo 21 = 12,
es decir, el mensaje encriptado consta de números 1 ,11 y 12. Conociendo la clave secreta (17, 21), podemos descifrarla:

1 → 1 17 modificación 21 = 1 ,

11 → 11 17 modificación 21 = 2 ,
12 → 12 17 módulo 21 = 3 .

Hemos recibido el mensaje original.

Por supuesto, notó que al cifrar y descifrar, debe calcular el resto de la división muy números grandes(por ejemplo, 12 17) por el n. Resulta que no es necesario encontrar el número 12 17 en este caso. Basta con escribir una unidad en una variable entera ordinaria, por ejemplo x, y luego realizar la transformación x = 12*x mod 21 17 veces, después de eso, la variable x tendrá el valor 12 17 mod 21 = 3. Intente para probar la corrección de este algoritmo.
Para descifrar el mensaje, necesita conocer el exponente secreto d. Y para esto, a su vez, necesitas encontrar los factores p y q, tal que n = p q. Si n es grande, este es un problema muy difícil y llevará cientos de años resolverlo mediante una búsqueda exhaustiva de opciones en una computadora moderna. En 2009, un grupo de científicos de diferentes paises como resultado de muchos meses de cálculos en cientos de computadoras, pudo descifrar un mensaje cifrado con el algoritmo RSA con una clave de 768 bits. Por lo tanto, las claves con una longitud de 1024 bits o más ahora se consideran confiables. Si se construye uno que funcione computadora cuántica, descifrar el algoritmo RSA será posible en muy poco tiempo.
Cuando se usan cifrados simétricos, siempre surge un problema: ¿cómo transferir la clave si el canal de comunicación no es confiable? Después de todo, habiendo recibido la clave, el enemigo podrá descifrar todos los mensajes posteriores. Para el algoritmo RSA este problema no existe, basta con que las partes intercambien claves públicas que puedan ser mostradas a todos.
El algoritmo RSA tiene otra ventaja: puede usarse para firmar mensajes digitalmente. Sirve para probar la autoría de los documentos, proteger los mensajes de falsificaciones y cambios deliberados.

Una firma digital es un conjunto de caracteres que se obtiene cifrando un mensaje utilizando el código secreto personal del remitente.

El remitente puede enviar junto con el mensaje original el mismo mensaje encriptado con su clave privada (esta es la firma digital). El destinatario descifra la firma digital utilizando la clave pública. Si coincide con un mensaje no cifrado, puede estar seguro de que fue enviado por la persona que sabe código secreto. Si el mensaje se ha modificado en tránsito, no coincidirá con la firma digital descifrada. Dado que el mensaje puede ser muy largo, para reducir la cantidad de datos transmitidos, la mayoría de las veces no se cifra todo el mensaje, sino solo su código hash.
Muchos programas modernos tienen la capacidad de cifrar datos con una contraseña. Por ejemplo, suites ofimáticas openoffice.org y oficina de microsoft te permite cifrar todo documentos creados(para verlos y/o cambiarlos es necesario introducir una contraseña). Al crear un archivo (por ejemplo, en archivadores 7Zip, WinRAR, WinZip) también puede establecer una contraseña, sin la cual es imposible extraer archivos.
En las tareas más sencillas, para cifrar archivos, puede utilizar programa gratis criptógrafo(http://www.familytree.ru/ru/cipher.htm), cuyas versiones existen para linux y ventanas. Programas TnieCrypt(http://www.truecrypt.org/), Mejor Cripta(www.jetico.com) y GratisOTFE(freeotfe.org) crean discos contenedores lógicos, cuya información está cifrada. Software libre discocrypto r (diskcryptor.net) le permite cifrar particiones del disco duro e incluso crear unidades flash y CD/DVD cifrados.
Programa GnuPG(gnupg.org) también es software libre. Admite cifrados simétricos y asimétricos, así como varios algoritmos de firma digital.

Esteganografía

Video de Youtube

Al enviar mensajes, no solo puede usar el cifrado, sino también ocultar el hecho mismo de enviar un mensaje.


La esteganografía es la ciencia de la transmisión encubierta de información al ocultar el hecho mismo de la transmisión de información.

El antiguo historiador griego Heródoto describió, por ejemplo, un método de este tipo: se escribía un mensaje en la cabeza rapada de un esclavo, y cuando le crecía el cabello, se dirigía al destinatario, quien se rapaba la cabeza y leía el mensaje.
El método clásico de esteganografía es la tinta simpática (invisible), que aparece solo bajo ciertas condiciones (calor, iluminación, revelador químico). Por ejemplo, un texto escrito con leche se puede leer cuando se calienta.
Ahora, la esteganografía se dedica a ocultar información en archivos de texto, gráficos, sonido y video mediante la "inyección" programática de los mensajes necesarios en ellos.
La forma más sencilla- reemplazar bits bajos del archivo en el que está codificada la imagen. Además, esto debe hacerse de tal manera que la diferencia entre el original y los dibujos resultantes sea imperceptible para una persona. Por ejemplo, si en una imagen en blanco y negro (256 tonos de gris), el brillo de cada píxel se codifica en 8 bits. Si cambia los 1-2 bits menos significativos de este código, "incrustando" un mensaje de texto allí, una foto que no tiene límites claros difícilmente cambiará. Al reemplazar 1 bit, cada byte del mensaje de texto original se almacena en los bits menos significativos de los códigos de 8 píxeles. Por ejemplo, digamos que los primeros 8 píxeles de una imagen tienen los siguientes códigos:

10101101

10010100

00101010

01010010

10101010

10101010

10101011

10101111

Para codificar el código de la letra "I" (110010002) en ellos, debe cambiar los bits inferiores de los códigos:

1010110 1

1001010 1

0010101 0

0101001 0

1010101 1

1010101 0

1010101 0

1010111 0

El destinatario debe tomar estos bits inferiores y "ensamblarlos" en un solo byte.
Para los sonidos se utilizan otros métodos de esteganografía, basados ​​en la adición de señales condicionales cortas a la grabación, que indican 1 y 0 y no se perciben.
tomado

una persona de oído. También es posible reemplazar una pieza de sonido con otra.
Las marcas de agua digitales se utilizan para confirmar la autoría y la protección de los derechos de autor de imágenes, videos y archivos de sonido: información sobre el autor incrustada en el archivo. Obtuvieron su nombre de viejas marcas de agua en dinero y documentos. Para establecer la autoría de una fotografía basta con descifrar la información oculta registrada mediante una marca de agua.
A veces, las marcas de agua digitales se hacen visibles (texto o logotipo de la empresa en una foto o en cada cuadro de un video). Muchos sitios que venden fotos digitales tienen marcas de agua visibles en las fotos de vista previa.


Preguntas de prueba:
  1. ¿Qué algoritmo de cifrado se adopta en Rusia como estándar estatal?
  2. ¿Qué es un algoritmo de cifrado de bloques?
  3. ¿Qué tipo de algoritmo es RSA? ¿En qué se basa su fuerza criptográfica?
  4. ¿Que es una asignatura digital?
  5. ¿Cómo se puede utilizar el algoritmo RSA para la firma digital?
  6. ¿Qué es la esteganografía?
  7. ¿Qué métodos de esteganografía existían antes de la invención de las computadoras?
  8. ¿Cómo puedo agregar texto a una imagen codificada?
  9. ¿En qué se basan los métodos de esteganografía para datos de sonido y video?
  10. ¿Qué son las marcas de agua digitales? ¿Por qué se usan?

Ejercicio:

1. Vea el material de la lección y responda las preguntas de control.
2. Siga los enlaces y familiarícese con los programas para cifrar archivos.
3. Cifre cualquier documento en cualquiera de suites de oficina openoffice.org o oficina de microsoft y envíame .