Con la llegada de la tecnología informática, se ha vuelto más productivo almacenar información en bases de datos que en papel. Las aplicaciones web que requieren autenticación de usuario suelen comparar las contraseñas de inicio de sesión con contraseñas reales que normalmente se almacenan en bases de datos de empresas privadas. Si los intrusos obtienen acceso a la base de datos antes mencionada, se perderán los datos personales de los usuarios. Actualmente, las bases de datos utilizan algoritmos hash para proteger las contraseñas almacenadas, pero los problemas de seguridad siguen siendo relevantes. Todos los años, los piratas informáticos publican una gran lista de contraseñas pirateadas de conocidas redes sociales o almacenes de datos. Dichos ataques han tenido éxito debido al uso de un algoritmo hash débil.
Las funciones de hash criptográficas, a menudo denominadas simplemente hash, son una herramienta indispensable y ubicua que se utiliza para realizar una variedad de tareas, incluida la autenticación, la verificación de la integridad de los datos, la protección de archivos e incluso la detección de malware. Es un algoritmo matemático que convierte una matriz arbitraria de datos en una cadena de letras y números de longitud fija. Además, siempre que se utilice el mismo tipo de hash, esta longitud se mantendrá sin cambios, independientemente de la cantidad de datos de entrada [2]. Hay muchos algoritmos hash que difieren en la fuerza criptográfica, la complejidad, la profundidad de bits y otras propiedades. Se cree que la idea de hash pertenece a un empleado de IBM, apareció hace unos 50 años y no ha cambiado fundamentalmente desde entonces.Hoy en día, el hash ha adquirido muchas propiedades nuevas y se utiliza en muchas áreas de la tecnología de la información.
El algoritmo de hash de mensajes MD5 es la quinta versión del algoritmo de hash de mensajes desarrollado por Ron Rivest en 1991 para producir un mensaje de salida de 128 bits. Esta versión [5] se presentó como mejorada en términos de confiabilidad en relación con el algoritmo MD4 anterior.
La conversión de un mensaje de longitud arbitraria en un valor hash implica cinco pasos del algoritmo, cada uno de los cuales tiene su propia tarea específica. Echemos un vistazo más de cerca a los pasos del algoritmo:
Paso 1: alinea el flujo
Es necesario agregar bits adicionales al mensaje original de tal manera que la longitud del mensaje original con los bits adicionales sea igual a 448 módulo 512. La adición se realiza incluso si la longitud del mensaje original ya es comparable a 448. En los bits de relleno, solo el primer bit es 1 y el resto de los bits son 0.
2.
64- ( ) . , 512 . 512 .
3: MD-
(A, B, C, D) . A, B, C, D 32 - ,
Word A |
01 |
23 |
45 |
67 |
Word B |
89 |
AB |
CD |
EF |
Word C |
FE |
DC |
BA |
98 |
Word D |
76 |
54 |
32 |
10 |
4:
MD5 , 32- 32- [1].
OR, XOR, AND, NOT. ( ) , . , .
5.
A, B, C, D MD5, .
MD5 . - , . MD5 , - .
MD5 , «» MD5:
1)
— - , . , , . , . .
— , , , ( ) [7].
. , , . , , – . ( ), . - .
PasswordsPro, MD5BFCPF, John the Ripper.
2)
- , , , . - , -, [4].
- H n P. - : , h p P, H(p)=h, , . — H(p) p P, , -.
— . — R, P. , R -. - [11]:
1) - ;
2) .
, , .
H R, .
h, ( ), R(…R(H(R(h)))…). - - - , . h, .
-. , : H, R1, H, R2, …, H, Rk.
. , k .
MD5
- ( ) . -, «» .
MD5 2004 . 2004 MD5- .
[10] , 512- , -. MD5 1 . , ( ):
, , . , MD5 .
,
. , , , .
N L — . H . [9]
, , , . , , 2 , « » . , . , . : , .
“”
, . , , , , . - , , ( ), [8]. , , , . , 48 . :
1) : , , . .
2) () : , . , . . , , , , .
3) . , , username, . , . , , , “root” “admin”.
, − , . , - : -, , - -, , . , , MD5 . IETF (Internet Engineering Task Force) MD5 , .
MD5 , .
:
1. MD5 // wikipedia.org. ( : 20.11.2020).
2. A.. , .. , .. , .. . . 2- , . -2006.
3. - // wikipedia.org. ( : 5.12.2020).
4. // wikipedia.org ( : 2.12.2020).
5. Rivest, R. (1992, April). The MD5 Message Digest Algorithm. Request for Comments (RFC) 1321. Retrieved from https://www.rfceditor.org/rfc/rfc1321.txt
6. Kioon M. C, Wang Z. S, Shubra D.D Security Analysis of MD5 Algorithm in Password Storage // Scientific.Net. 2013. . 2706-2711.
7. Nechaev V.I. Elementos de criptografía (Fundamentos de la teoría de la seguridad de la información): Libro de texto. Un manual para botas altas de piel y ped. universidades. / Ed. VIRGINIA. Sadovnichy - M.: Superior. shk., 1999.
8. John Black, Martin Cochran, Trevor Highland Fast Software Encryption. FSE ed. 2006 S. 262-277.
9. Entropía de la información // ru.wikipedia.org/ (fecha de acceso: 12.11.2020).
10. Cómo romper MD5 y otras funciones hash // (fecha de acceso: 17/10/2020).
11. Estructuras de datos / Cadenas hash // medium.com (fecha de acceso: 10.12.2020).