Red de conocimiento informático - Conocimiento informático - ¿Qué es el texto cifrado? Explícamelo en detalle.

¿Qué es el texto cifrado? Explícamelo en detalle.

El texto cifrado es relativo al texto sin formato. El texto sin formato es en realidad la información que desea transmitir, y el texto sin formato se convierte en texto cifrado después del cifrado. El texto cifrado es en realidad una palabra para la seguridad de la información. Déjame presentártelo.

La historia del desarrollo de la seguridad de la información

El nacimiento de la ciencia de la seguridad de las comunicaciones

El cifrado César del Imperio Romano: puede convertir información de texto plano en una cadena de caracteres que la gente no puede entender. Cuando el texto cifrado llega al socio, se puede restaurar fácilmente a su formato de texto sin formato original. El cifrado César se obtiene desplazando circularmente las letras del texto plano en 3 bits.

En 1568, L. Battista inventó el cifrado de sustitución de tablas múltiples, que fue utilizado por las fuerzas aliadas durante la Guerra Civil estadounidense. Ejemplos: cifrado Vigenere y cifrado Beaufort

En 1854, Playfair inventó el cifrado polialfabético que sustituyó al cifrado utilizado por los británicos en la Primera Guerra Mundial. Ejemplo: el cifrado Hill, los cifrados de varias letras y de sustitución de varias letras se han convertido en la corriente principal de la criptografía clásica.

El desarrollo del criptoanálisis: En 1918, W. Friedman utilizó el índice de coincidencia para descifrar múltiples tablas en lugar del criptoanálisis como hito. 1949 Se publica el artículo de C. Shannon "Teoría de la comunicación de los sistemas de seguridad" en el "Bell System Technical Journal". Estos dos logros sentaron las bases para la investigación científica de la criptografía. Del arte a la ciencia. De hecho, este es el nacimiento de la ciencia de la seguridad de las comunicaciones, en la que la criptografía es la tecnología central.

La revolución de la criptografía de clave pública

25 años después, en los años 1970, el DES (American Data Encryption Standard) de IBM y Diffie-Hellman en 1976 propusieron la idea de Criptografía de clave pública, El algoritmo criptográfico de clave pública RSA en 1977 inyectó nueva vitalidad al desarrollo de la criptografía.

La criptografía de clave pública ha desencadenado una revolución y ha realizado tres contribuciones importantes a la seguridad de la información: en primer lugar, caracteriza la solidez de los algoritmos criptográficos en términos de complejidad computacional, rompiendo la limitación de Shannon de preocuparse únicamente por la solidez teórica. Cambió el requisito de confidencialidad de la gestión de dos claves en los algoritmos criptográficos tradicionales por un requisito para proteger la confidencialidad de una unidad y la integridad de otra unidad. Cambia la propiedad de las claves en los algoritmos criptográficos tradicionales de ambas partes comunicantes a un solo usuario, reduciendo así en gran medida la complejidad de la gestión de claves.

La introducción de la criptografía de clave pública requiere atención: primero, la investigación sobre criptografía ha ido gradualmente más allá del alcance de la confidencialidad de la comunicación de datos y, en segundo lugar, ha llevado a cabo investigaciones sobre la integridad de los datos, la firma digital y otras tecnologías; con la computadora Con el desarrollo de Internet e Internet, la criptografía se ha convertido gradualmente en un pilar importante de la seguridad informática y de la red, haciendo de la seguridad de los datos un contenido completamente nuevo de la seguridad de la información, superando la posición dominante anterior de la seguridad física en la seguridad informática. .

Tecnología de control de acceso y criterios de evaluación para ordenadores de confianza

En 1969, Lampson propuso un modelo de control de acceso.

En 1973, D. Bell y L. Lapadula establecieron un modelo de operación informática para simular la estrategia de seguridad militar. Este es el modelo de seguridad multinivel informático más antiguo y más utilizado.

En 1985, el Departamento de Defensa de Estados Unidos propuso un estándar confiable de evaluación informática basado en el modelo Bell-LaPadula (comúnmente conocido como el "Libro Naranja"). Según las capacidades de protección de seguridad del sistema informático, se divide en 8 niveles.

En 1987, se propuso el modelo Clark-Wilson para la protección de la integridad y aplicaciones comerciales.

Aseguramiento de la información

En octubre de 1998, la Agencia de Seguridad Nacional (NSA) de los EE. UU. lanzó la versión 1.1. El 6 de febrero de 2003, el Departamento de Defensa de los EE. UU. (DOD) publicó la Implementación de seguridad de la información. Según la Orden 8500.2, la seguridad de la información se ha convertido en la ideología rectora establecida para que las organizaciones de defensa estadounidenses lleven a cabo operaciones de información.

IA: Aseguramiento de la Información (IA): Protege los sistemas de información asegurando la disponibilidad, integridad, identificabilidad, confidencialidad y negación de la información, al tiempo que introduce capacidades de protección, detección y respuesta para proporcionar información. El sistema proporciona funcionalidad de recuperación. Este es el modelo de seguridad de la información de PDRR.

Proteger proteger, detectar detectar, reaccionar responder, restaurar restaurar.

El progreso del marco de tecnología de seguridad de la información en los Estados Unidos ha hecho que la gente se dé cuenta de que la comprensión de la seguridad de la información no debe permanecer dentro del marco de la protección, sino también prestar atención a las capacidades de detección y respuesta de la información. sistemas.

En el año 2003, nuestro país emitió los “Opiniones del Grupo Líder Nacional de Informatización en Seguridad de la Información”, el cual es un documento rector para que el país eleve la seguridad de la información a un nivel estratégico.

Resultados de la investigación de tecnología de seguridad de la información;

Desarrollar varios algoritmos criptográficos y sus aplicaciones;

DES (Estándar de cifrado de datos), RSA (Sistema de clave pública), ECC (Criptosistema logarítmico discreto de curva elíptica), etc.

Modelo de seguridad y criterios de evaluación de la seguridad de los sistemas de información informáticos:

Modelo de monitorización de accesos, modelo de seguridad multinivel, etc. TCSEC (Criterios de evaluación de sistemas informáticos confiables), ITSEC (Criterios de evaluación de seguridad de tecnologías de la información), etc.

Cifrado (Encryption)

El cifrado es un medio por el cual sólo el emisor y el receptor pueden decodificar y recuperar información recombinándola.

El sistema de cifrado tradicional se basa en claves y es un cifrado simétrico, es decir, el usuario utiliza la misma clave para cifrar y descifrar.

Actualmente, con el desarrollo de la tecnología, el cifrado se está integrando gradualmente en sistemas y redes, como el protocolo de Internet de próxima generación IPv6 que está desarrollando el IETF. En cuanto al hardware, Intel también está desarrollando un coprocesador de cifrado para PC y placas base de servidores.

Autenticación (autenticación)

El firewall es la primera línea de defensa del sistema para evitar la intrusión ilegal de datos. La función del control de seguridad es prevenir usuarios ilegales. Hay muchas formas de identificar la legitimidad de un usuario y las contraseñas son las más utilizadas. Sin embargo, este método suele fallar porque muchos usuarios utilizan como contraseñas palabras o frases fáciles de adivinar. Otros métodos incluyen el reconocimiento de características fisiológicas humanas (como las huellas dactilares), tarjetas IC inteligentes y unidades flash USB.

Firma digital (firma digital)

La firma digital se puede utilizar para demostrar que un mensaje está efectivamente firmado por el remitente y se puede utilizar para verificar datos cuando se utiliza para almacenar datos o programas o la integridad del programa.

El Estándar de Firma Digital (DSS) adoptado por el gobierno de EE. UU. utiliza un algoritmo de hash seguro. Usando este algoritmo para calcular la información procesada, se puede obtener una cadena digital de 160 bits. Esta cadena digital se puede combinar con la clave de la información de alguna manera para obtener una firma digital.

Inspección de contenido (Inspección de contenido)

Incluso con firewalls, autenticación y cifrado, la gente todavía se preocupa por ser atacada por virus. Algunos virus se propagan a través del correo electrónico o mediante subprogramas ActiveX y Java descargados por los usuarios. Después de activar un subprograma que contiene virus, es posible que se descarguen otros subprogramas automáticamente. El software antivirus existente puede eliminar los virus del correo electrónico, y hay algunas formas de lidiar con los nuevos virus Java y ActiveX, como mejorar los firewalls para monitorear el funcionamiento de miniprogramas o etiquetar miniprogramas para que los usuarios conozcan sus fuentes.

Introduzca algunos conocimientos sobre cifrado.

Modelo de sistema de cifrado/descifrado de claves

Antes de que Diffie y Hellman publicaran su artículo "New Directions in Cryptography" [9] en 1976, la llamada criptografía se refería al criptosistema de clave simétrica. Debido a que se utiliza la misma clave para el cifrado/descifrado, también se le llama criptosistema de clave única.

Este tipo de algoritmo tiene una larga historia, desde el primer cifrado César hasta el algoritmo de cifrado DES más utilizado, todos son criptosistemas de clave única.

Normalmente, el sistema de cifrado de claves incluye las siguientes partes:

①Espacio de mensaje M (mensaje)

②Espacio de texto cifrado C (texto cifrado)

③Espacio clave K (clave)

④Algoritmo de cifrado E (algoritmo de cifrado)

⑤Algoritmo de descifrado D (algoritmo de descifrado)

El mensaje M (llamado texto sin formato) en el espacio del mensaje se cifra utilizando el algoritmo de cifrado controlado por la clave de cifrado K1 para obtener el texto cifrado C. El texto cifrado C se puede restaurar al texto sin formato original M mediante el algoritmo de descifrado controlado por la clave de descifrado K2. Es decir:

EK1(M)=C

DK2(C)=M

DK2(EK1(M))=M

Concepto:

Cuando la clave de cifrado del algoritmo se puede derivar de la clave de descifrado, o por el contrario, la clave de descifrado se puede derivar de la clave de cifrado, el algoritmo se denomina algoritmo simétrico, también conocido como como algoritmo de clave secreta o algoritmo de clave única;

Cuando la clave de cifrado y la clave de descifrado son diferentes, una de las claves no se puede derivar de la otra clave. Este algoritmo se denomina algoritmo de clave pública.

1.Transformación de cifrado César

La transformación de cifrado de sustitución por turnos más general es

Cifrado: E(m)=(m+k) mod 26

p>

Descifrado: D(c)=(c-k) módulo 26

2. Cifrado de reemplazo

En el cifrado de permutación, las letras del texto sin formato y del texto cifrado permanecen sin cambios. , pero el orden se altera. En un cifrado simple alineado verticalmente, el texto sin formato se escribe horizontalmente en un papel cuadriculado de ancho fijo y el texto cifrado se lee verticalmente; el descifrado implica escribir el texto cifrado verticalmente en un papel cuadriculado de ancho fijo y leer el texto sin formato horizontalmente. Por ejemplo:

Texto sin formato: el cifrado es la conversión de datos a algún formato ilegible.

Criptotexto: EIF FOB NSO DML CT raee rhmtufyeano PTT IRR Trinemiao taon nond NSOSA

En la década de 1940, Shannon propuso un concepto de evaluación de uso común. Se cree que un buen algoritmo de cifrado debe ser difuso y difuso.

Borrosidad: los algoritmos de cifrado deben ocultar todos los patrones locales, es decir, cualquier carácter reconocible del idioma debe ocultarse, y los métodos de cifrado deben ocultar características sugerentes del lenguaje que puedan conducir a descifrar la clave;

Difusión: Se requiere cifrado para mezclar diferentes partes del texto cifrado, pero sin que un solo carácter quede en su posición original.

La razón por la que los algoritmos de cifrado se descifran fácilmente es porque no se cumplen estas dos condiciones de Shannon.

Estándar de cifrado de datos

El algoritmo DES convierte un bloque de entrada de texto sin formato de 64 bits en un bloque de salida de texto cifrado de 64 bits, y su clave también es de 64 bits. Su función es reorganizar el bloque de datos de 64 bits de entrada bit a bit y dividir la salida en dos partes, L0 y R0, cada parte tiene 32 bits de longitud. Después de 16 iteraciones, se obtienen L16 yr 16, que se utilizan como entrada de la permutación inversa para obtener la salida del texto cifrado. La permutación inversa es simplemente la operación inversa del diseño inicial.

No puedo explicar el método específico. Lo sentimos

El algoritmo DES se puede resumir de la siguiente manera:

Generación de subclave:

c[0]D[0]= PC–1(K)

p>

Para 1<= i<= 16

{C[i] = LS[i](C[i?1])

D[ i ] = LS[i](D[i?1])

k[I]= PC–2(C[I]D[I])}

Proceso de cifrado:

L[0]R[0] = IP(x)

Para 1 & lt;= i & lt= 16

{L[i ] = R[yo? 1]

R[i] = L[i? 1]XORf? (R[i?1],K[i])}

c= IP? 1(R[16]L[16])v

Proceso de descifrado:

R[16]L[16] = IP(c)

Para 1 & lt;= i & lt= 16

{R[i? 1] = L[i]

l[yo? 1] = R[i] XORf? (L[i], K[i])}

x= IP? 1(L[0]R[0])

DES utiliza una clave de 56 bits para cifrar un bloque de datos de 64 bits y realiza 16 rondas de codificación en el bloque de datos de 64 bits. En comparación con la codificación por ronda, se obtiene un valor de clave "por ronda" de 48 bits a partir de la clave completa de 56 bits. DES tarda mucho en decodificarse mediante software, mientras que la decodificación de hardware es muy rápida. Afortunadamente, la mayoría de los piratas informáticos en ese momento no tenían suficiente equipo para crear dicho hardware.

En 1977, se estimó que construir una computadora dedicada para el descifrado DES costaría 20 millones de dólares y tomaría 12 horas para obtener resultados. Por lo tanto, DES se consideraba un método de cifrado muy potente en ese momento. Pero ahora que las computadoras son cada vez más rápidas, el costo de construir una máquina tan especial se ha reducido a alrededor de 100.000 dólares, por lo que se consideraría cuidadosamente su uso para proteger un cable interbancario de mil millones de dólares. Por otro lado, si sólo lo está utilizando para proteger un servidor, entonces DES es de hecho un buen método porque los piratas informáticos nunca gastarán tanto dinero para descifrar el texto cifrado DES sólo para entrar en un servidor.

Dado que ahora se puede construir una computadora dedicada capaz de descifrar DES por 200.000 dólares, ya no es adecuada para situaciones en las que se requiere un cifrado "fuerte".

Mal uso del algoritmo DES

El algoritmo DES tiene una seguridad extremadamente alta. Hasta el momento, aparte del método de búsqueda exhaustiva para atacar el algoritmo DES, no se ha encontrado ningún método más eficaz. El espacio exhaustivo para una clave de 56 bits es 256, lo que significa que si una computadora detecta un millón de claves por segundo, tardaría casi 2285 años en buscar todas las claves. Obviamente, esto es difícil de lograr. Por supuesto, con el desarrollo de la tecnología, cuando aparezcan computadoras de ultra alta velocidad, podemos considerar aumentar la longitud de la clave DES para lograr un mayor nivel de confidencialidad.

De la introducción anterior del algoritmo DES, podemos ver que la clave de 64 bits utilizada en el algoritmo DES es solo de 56 bits, 8 bits del octavo bit, 16, 24,... el El bit 64 no participa en la operación DES, esto nos da un requisito de aplicación, es decir, la seguridad de DES se basa en otros que no sean 8, 16, 24,... Por lo tanto, en aplicaciones prácticas, el uso de 8, 16, 24,... .El bit 64 se utiliza como bit de datos válido y los otros 56 bits se utilizan como bits de datos válidos para garantizar que el algoritmo DES funcione de forma segura y confiable. Si no comprende esto, el uso de 8, 16, 24 y 64 bits de la clave como datos válidos no garantiza la seguridad de los datos cifrados con DES. Para los sistemas que utilizan DES para lograr la confidencialidad, también causará la riesgo de que los datos sean descifrados. Se trata de un malentendido en la aplicación del algoritmo DES, lo que deja un enorme peligro oculto de ser atacado y descifrado.

Método de cálculo A5

Introducción a los cifrados de secuencia

Los cifrados de secuencia, también conocidos como cifrados de flujo, son las unidades básicas para dividir texto sin formato en caracteres (como letras individuales) o su codificación (como 0, 1), luego se cifra con el flujo de claves y se descifra con el mismo flujo de claves generado sincrónicamente.

La fuerza del cifrado de secuencia depende completamente de la aleatoriedad y la imprevisibilidad de la secuencia generada por el generador de flujo de claves. La cuestión central es el diseño del generador de flujo de claves. La tecnología clave para lograr un descifrado confiable es mantener una sincronización precisa de los flujos de claves del remitente y del receptor.

Algoritmo A5

El algoritmo A5 es un cifrado de secuencia y un algoritmo de cifrado especificado en el estándar europeo GSM. Se utiliza para cifrar teléfonos móviles digitales y el enlace entre los equipos del usuario y las estaciones base. Existen muchos algoritmos A5, principalmente A5/1 y A5/2. Entre ellos, A5/1 es un algoritmo de cifrado potente adecuado para Europa. A5/2 es un algoritmo de cifrado débil y adecuado para su uso fuera de Europa. El algoritmo A5/1 se discutirá en detalle aquí.

Los componentes principales del algoritmo A5/1 son tres registros de desplazamiento de retroalimentación lineal (LFSR) R1, R2 y R3, con longitudes de 19, 22 y 23 respectivamente. Los tres registros de desplazamiento se desplazan hacia la izquierda bajo el control del reloj. Después de cada desplazamiento a la izquierda, los bits más bajos del registro se llenan con algunos bits del registro después de la operación XOR. El polinomio de retroalimentación de cada registro es:

r 1:x 18+x 17+x 16+x 13

R2:x21+x20

R3: x22+x21+x2x7

La entrada del algoritmo A5 es la clave de sesión de 64 bits Kc y el número aleatorio de 22 bits (número de fotograma).

Idea

IDEA es un algoritmo de cifrado de datos aceptado internacionalmente, su prototipo es PES (Proposed Encryption Standard). El algoritmo PES mejorado se llamó IPES y pasó a llamarse IDEA (Algoritmo Internacional de Cifrado de Datos) en 1992.

IDEA es un algoritmo de cifrado de bloques con una longitud de bloque de 64 bits y una longitud de clave de 128 bits. Se puede utilizar el mismo algoritmo para el cifrado y descifrado.

El proceso de cifrado de IDEA incluye dos partes:

(1) El grupo de texto sin formato de 64 bits de entrada se divide en cuatro 16 subpaquetes: X1, X2, X3 y X4. Los cuatro subgrupos se utilizan como entrada de la primera ronda del algoritmo y se realizan ocho rondas de operaciones iterativas para producir una salida de texto cifrado de 64 bits.

(2) La clave de sesión de entrada de 128 bits genera 52 subclaves necesarias para ocho rondas de iteraciones (6 para cada ronda de ocho operaciones y 4 para la transformación de salida).

Generación de subclaves: divida la clave de entrada de 128 bits en 8 16 subclaves (como las 6 claves para la primera ronda de operación y las 2 primeras claves para la segunda ronda de operación); se desplaza circularmente hacia la izquierda 25 bits para obtener 8 subclaves (las primeras 4 se usan para la segunda ronda y las últimas 4 se usan para la tercera ronda).

Repita este proceso hasta que se generen todas las claves.

El proceso de descifrado de IDEA es el mismo que el proceso de cifrado, pero los requisitos para las subclaves son diferentes. La siguiente tabla proporciona las subclaves de cifrado y las subclaves de descifrado correspondientes.

Los enlaces satisfacen:

Zi(r) ⊙ Zi(r)? 1 = 1 mod(216+1)

Zi(r)? +?Zi(r) =0 mod (216+1)

Algoritmo Blowfish

Blowfish fue diseñado por Bruce Schneier y se puede utilizar de forma gratuita.

Blowfish es un cifrado de bloques de 16 rondas. La longitud del bloque de texto plano es de 64 bits, utilizando claves de longitud variable (de 32 a 448 bits). El algoritmo Blowfish consta de dos partes: expansión de claves y cifrado de datos.

1. Cifrado de datos

El cifrado de datos siempre requiere 16 iteraciones, como se muestra en la figura. La descripción específica es (dividir el texto plano X en dos partes de 32 bits: xL, xR)

Para i = 1 a 16

{

xL = xL XOR Pi

xR = F(xL) XOR

If

{

Intercambiar xL y xR

}

}

xR = xR XOR P17

xL = xL XOR P18

Fusionar xL y xR

Entre ellos, la matriz P son 18 subclaves de 32 bits P1, P2,..., P18.

El proceso de descifrado es exactamente igual que el proceso de cifrado, excepto que las claves P1, P2,..., P18 se utilizan en el orden opuesto.

2. La función f

XL se divide en cuatro grupos de 8 bits a, b, cy D, que se envían a cuatro cajas S respectivamente. Entrada de bits y salida de 32 bits. Las salidas de las cuatro cajas S se combinan en una salida de 32 bits mediante una operación determinada. La operación es F (xL) = ((S1, a + S2, b módulo 232) XOR S3. c) + S4, d módulo 232

Donde, Si,x representa la salida del subgrupo x (x=a, B, C o D) a través del Si (i=1, 2, 3 o 4 ) caja.

No quiero escribir mucho, así que no quiero enumerar todo el proceso, solo dar una breve introducción.

Algoritmo GOST

GOST es un algoritmo de cifrado de bloques diseñado por la antigua Unión Soviética y adoptado por la Oficina Estatal de Normas de la antigua Unión Soviética. El número estándar es: 28147–89[5].

El paquete de mensajes de GOST es de 64 bits, la longitud de la clave es de 256 bits y hay algunas claves adicionales que utilizan 32 iteraciones.

Algoritmo RC5

RC5 es un sistema de cifrado de bloques con longitud de bloque variable, longitud de clave y número de iteraciones de cifrado. El algoritmo RC5 consta de tres partes: expansión de clave, algoritmo de cifrado y algoritmo de descifrado.

Algoritmo PKZIP

El algoritmo de cifrado PKZIP es un algoritmo de cifrado de secuencia con longitud de clave variable, que cifra un byte a la vez. Está integrado en el programa de compresión de datos PKZIP.

El algoritmo utiliza tres variables de 32 bits clave0, clave1, clave2 y una variable de 8 bits clave3 derivada de clave2. Key0, key1 y key2 se inicializan mediante la clave y estas tres variables se actualizan mediante texto sin formato durante el cifrado. La función principal de la contraseña de secuencia PKZIP es update_keys(). Esta función actualiza tres variables de 32 bits en función de los bytes de entrada (normalmente texto sin formato) y obtiene la clave3.

Puntos clave: función hash unidireccional

Método de cálculo MD5

¿El nombre completo de md5 es mensaje-? ¿Digestión? ¿algoritmo? 5 (algoritmo de agregación de información), desarrollado por el MIT a principios de los años 1990? ¿laboratorio? ¿para qué? ¿computadora? ¿Ciencia y rsa? ¿datos? ¿guardia de seguridad? ¿Ronald de la empresa? Desarrollado por rivest, md2, md3, md4. Su función es "comprimir" grandes volúmenes de información en un formato confidencial antes de firmar la clave privada con un software de firma digital. Convierta una cadena de bytes de cualquier longitud en un número entero grande de cierta longitud). Ya sea md2, md4 o md5, necesita obtener una longitud aleatoria de información y generar un resumen de información de 128 bits.

¿Aunque estos? La estructura del algoritmo es más o menos similar, pero el diseño de md2 es completamente diferente al de md4 y md5, porque md2 está optimizado para computadoras de 8 bits, mientras que md4 y md5 están diseñados para computadoras de 32 bits. cerebro.

Rivest desarrolló el algoritmo md2 en 1989. En este algoritmo, la información primero se complementa con datos de modo que la longitud en bytes de la información sea múltiplo de 16. Luego, pruebe con 16 bits y añádalo. El mensaje termina. Y calcule el valor hash en función de esta información recién generada. Más tarde, rogier y chauvaud descubrieron que si se ignoraba la suma de comprobación, se producirían conflictos md2. ¿Resultado del cifrado del algoritmo md2? Sea único, sin repeticiones. ? Para mejorar la seguridad del algoritmo, rivest desarrolló el algoritmo md4 en 1990. ¿El algoritmo Md4 también requiere completar información para su confirmación? La longitud en bytes de la información de seguridad puede ser divisible por 512 después de sumar 448 (longitud en bytes de información mod?512?=?448). Luego, agregue la longitud inicial del mensaje binario de 64 bits. ¿La información se procesa en damg de 512 bits? Bloques de la estructura de iteración rd/merkle, ¿cuál debería ser cada bloque? A través de tres pasos diferentes. ¿guarida? Boer, bosselaers y otros descubrieron rápidamente vulnerabilidades que atacaban el primer y tercer paso de la versión md4. Dobbertin le muestra cómo utilizar la electricidad personal normal. Brain descubrió el conflicto en la versión completa de md4 en unos pocos minutos (este conflicto es en realidad una vulnerabilidad que conducirá al cifrado de contenido diferente pero se puede obtener el mismo resultado de cifrado). ¿No hay duda de que este es el fin de md4? Fue eliminado. ? Aunque la seguridad del algoritmo md4 tiene una laguna tan grande, jugó un papel rector importante en el surgimiento de varios algoritmos de cifrado de seguridad de la información que se desarrollaron posteriormente. Además de md5, también existen sha-1, rip-md, Haval, etc. ?

Un año después, en 1991, rivest desarrolló el algoritmo md5, técnicamente más maduro. Añade un "cinturón de seguridad" basado en md4. concepto. Aunque md5 es ligeramente más lento que md4, es más seguro. El algoritmo aparentemente consta de cuatro pasos y es ligeramente diferente del diseño md4. En el algoritmo md5, ¿cuál es el tamaño y el relleno del resumen del mensaje? Las condiciones necesarias son exactamente las mismas que las de md4. ¿guarida? Boer y bosselaers han descubierto colisiones espurias en el algoritmo md5, pero no se han descubierto otras consecuencias criptográficas. ¿camión? Oorschot y Wiener habían considerado una función (¿fuerza bruta? ¿Función hash?) y supusieron que una máquina diseñada específicamente para buscar colisiones md5 (fabricar esta máquina costó alrededor de un millón de dólares en 1994) promediaba ¿Encontrar una cada 24 días? Un conflicto. Pero en los 10 años transcurridos entre 1991 y 2001, no hubo md6 u otro algoritmo nuevo que reemplazara al algoritmo md5, por lo que podemos ver que esta falla no existe. Demasiado afecta la seguridad de md5. Nada de lo anterior es suficiente para convertirse en un problema en la aplicación práctica de md5. ¿Y porque no es necesario pagar ninguna tarifa de derechos de autor para utilizar el algoritmo md5, en general? En circunstancias (no en áreas de aplicación de alto secreto. Pero incluso en áreas de alto secreto, md5 es una excelente tecnología intermedia), md5 debe considerarse muy seguro bajo cualquier circunstancia.

Algoritmo

MD significa resumen de mensaje. MD5 es una versión mejorada de MD4 que genera un valor hash de 128 bits (o resumen de mensaje) para un mensaje de entrada de longitud arbitraria. El algoritmo MD5 se muestra en la Figura 4-2.

Una breve descripción del algoritmo md5 puede ser la siguiente: md5 procesa la información de entrada en paquetes de 512 bits y cada paquete se divide en 16 paquetes de 32 bits. Después de una serie de procesamiento, la salida del algoritmo consta de cuatro paquetes de 32 bits. La concatenación de estos cuatro paquetes de 32 bits generará un valor hash de 128 bits. ?

1) Bits de relleno adicionales

Primero, rellena el mensaje para que su longitud sea un número 64 bits menor que un múltiplo de 512. Método de relleno: rellene un bit de 1 después del mensaje y luego rellene el número requerido de ceros. El número de dígitos de relleno varía de 1 a 512.

2) Agregar longitud

Agrega una representación de 64 bits de la longitud del mensaje original al mensaje rellenado. Cuando la longitud del mensaje original es mayor que 264, se rellena con la longitud del mensaje mod 264. En este momento, la longitud del mensaje es exactamente un múltiplo entero de 512.

Sea m[0 1...n? 1] es un relleno para cada palabra del mensaje (32 bits por palabra), n es un múltiplo de 16.

3) Inicializar el búfer MD

Inicializar el búfer de 128 bits utilizado para calcular el resumen del mensaje. El búfer está representado por cuatro registros de 32 bits a, b, cy d. El valor de inicialización del registro es (almacenado en el orden del byte de orden inferior primero):

Respuesta: 01 23 45. 67

B: 89 ab cd ef

C: fe dc ba 98

Número de teléfono: 76 54 32 10

4) Tome 512 dígitos ya que un grupo maneja los mensajes entrantes.

Este paso es el bucle principal de MD5, que incluye cuatro rondas, como se muestra en la Figura 4-3. Cada ciclo toma como entrada el paquete de datos de 512 bits Yq actualmente procesado y el valor del búfer de 128 bits ABCD, y luego actualiza el contenido del búfer.

La diferencia entre las cuatro rondas de operación es que la función no lineal utilizada en cada ronda es diferente. Antes de la primera ronda de operación, copie A, B, C y D a otras variables A, B, C y D. Las cuatro funciones no lineales son (sus entradas/salidas son todas palabras de 32 bits):

F(X,Y,Z) = (XY)((~X) Z)

G(X,Y,Z) = (XZ)(Y(~Z ))

H(X, Y, Z) = XYZ

I(X, Y, Z) = Y(X(~Z))

Lo que significa AND bit a bit significa bit a bit o; ~ significa negación bit a bit;

Además, como se muestra en la Figura 4-4, en este paso también se utiliza la tabla T [1...64] con 64 elementos, donde T[i]=232×abs(sin( i) ), la unidad de I es radianes.

Basado en la descripción anterior, el proceso de este paso se resume de la siguiente manera:

Para i = 0 a N/16? 1 hacer

/* Procese 16 elementos por palabra, es decir, un paquete de mensajes de 512 bytes */

/*Copie el bloque I (512 bits) en 16 subpaquetes de 32 bits en X */

Hacer para j = 0 a 15

Establecer X[j] en M[i*16+j]

Fin /*j loop*/

/*Guardar A como AA, B como BB, C como CC, D como DD*/

AA = A

BB = B

CC = C

DD = D

/*Primera ronda*/

/*Habilite [abcd k s i] para indicar la operación.

a = b + ((a + F(b,c,d)+X[k]+T[I])<<<s)

Donde, y < & lt& lts significa ciclo y desplazamiento a la izquierda en s bits*/

/*Completa las siguientes 16 operaciones*/

[ABCD 0 7 1? ] [DABC 1 12 2? ] [CDAB 2 17 3? ] [BCDA 3 22 4? ]

[ABCD 4 7 5? ] [DABC 5 12 6? ] [CDAB 6 17 7? ] [BCDA 7 22 8? ]

[ABCD 8 7 9? ][DABC 9 12 10][CDAB 10 17 11][BCDA 11 22 12]

[ABCD 12 7 13][DABC 13 12 14][CDAB 14 17 15][BCDA 15 22 16]

/*Segunda ronda*/

/*Utilice [abcd k s i] para indicar la operación.

a = b + ((a + G(b,c,d)+X[k]+T[I])<<<s)*/

/*Completo las siguientes 16 operaciones*/

[ABCD 1 5 17][DABC 6 9 18][CDAB 1 1 14 19][BCDA 0 20 20]

[DABC 10 9 22 ][CDAB 15 14 23][BCDA 4 20 24]

[ABCD 9 5 25][DABC 14 9 26][CDAB 3 14 27][BCDA 8 20 28]

[ABCD 13 5 29][DABC 2 9 30][CDAB 7 14 31][BCDA 12 20 32]

/*Tercera Ronda*/

/* Provoca el [ abcd k s t] directiva para ejecutar.

a = b + ((a + H(b,c,d)+X[k]+T[I])<<<s)*/

/*Completo las siguientes 16 operaciones*/

[ABCD 5 4 33][DABC 8 11 34][CDAB 11 16 35][BCDA 14 23 36]

[ABCD 1 4 37] [DABC 4 11 38][CDAB 7 16 39][BCDA 10 23 40]

[ABCD 13 4 41][DABC 0 11 42][CDAB 3 16 43][BCDA 6 23 44 ]

[ABCD 9 4 45][DABC 12 11 46][CDAB 15 16 47][BCDA 2 23 48]

/*Cuarta Ronda*/

/*Habilita la ejecución de instrucciones [abcd k s t].

a = b + ((a + I(b,c,d)+X[k]+T[I])& lt;& lt& lts) */

/*Completa las siguientes 16 operaciones*/

[ABCD 0 6 49][DABC 7 10 50][CDAB 14 15 51][BCDA 5 21 52]

[ABCD 12 6 53][DABC 3 10 54][CDAB 10 15 55][BCDA 1 21 56]

[ABCD 8 6 57][DABC 15 10 58][CDAB 6 15 59][BCDA 13 21 60 ]

[ABCD 4 6 61][DABC 11 10 62][CDAB 2 15 63][BCDA 9 21 64]

A = A + AA

B = B + BB

C = C + CC

D = D + DD

Fin /*i bucle*/

5) Salida

De la salida de los cuatro registros A, B, C y D, se obtiene el resumen del mensaje de 128 bits en el orden del byte pequeño primero (es decir, comenzando desde el nivel bajo). byte de A, hasta el final D del byte alto).

Lo anterior es una descripción del algoritmo MD5. Las operaciones del algoritmo MD5 son todas operaciones básicas, fáciles de implementar y rápidas.

Función Hash Segura (SHA)

Algoritmo

SHA es un algoritmo hash seguro diseñado por NIST y NSA* * para su uso en los estándares de firma digital DSS. SHA–1 es una versión modificada de SHA, publicada en 1995 con el nombre de Publicación FIPS 180–1[2].