Com o advento da tecnologia da computação, tornou-se mais produtivo armazenar informações em bancos de dados, em vez de no papel. Os aplicativos da Web que requerem autenticação do usuário normalmente verificam as senhas de login em comparação com as reais, que geralmente são armazenadas em bancos de dados privados da empresa. Se os invasores obtiverem acesso ao banco de dados mencionado, os dados pessoais dos usuários serão perdidos. Atualmente, os bancos de dados usam algoritmos hash para proteger as senhas armazenadas, mas as questões de segurança ainda são relevantes. Todos os anos, os hackers publicam uma grande lista de senhas hackeadas de redes sociais conhecidas ou armazenamentos de dados. Esses ataques tiveram sucesso devido ao uso de um algoritmo de hash fraco.
As funções criptográficas de hash, geralmente chamadas simplesmente de hashes, são uma ferramenta indispensável e onipresente, usada para realizar uma variedade de tarefas, incluindo autenticação, verificação de integridade de dados, proteção de arquivos e até detecção de malware. É um algoritmo matemático que converte uma matriz arbitrária de dados em uma sequência de letras e números de comprimento fixo. Além disso, desde que seja utilizado o mesmo tipo de hash, esse comprimento permanecerá inalterado, independentemente da quantidade de dados de entrada [2]. Existem muitos algoritmos de hash que diferem em força criptográfica, complexidade, profundidade de bits e outras propriedades. Acredita-se que a ideia de hashing pertence a um funcionário da IBM, surgiu há cerca de 50 anos e não mudou fundamentalmente desde então.Hoje em dia, o hashing adquiriu muitas propriedades novas e é usado em muitas áreas da tecnologia da informação.
O algoritmo de hash de mensagem MD5 é a 5ª versão do algoritmo de hash de mensagem desenvolvido por Ron Rivest em 1991 para produzir uma mensagem de saída de 128 bits. Esta versão [5] foi apresentada como aprimorada em termos de confiabilidade em relação ao algoritmo MD4 anterior.
Converter uma mensagem de comprimento arbitrário em um valor hash envolve cinco etapas do algoritmo, cada uma com sua própria tarefa específica. Vamos dar uma olhada mais de perto nas etapas do algoritmo:
Etapa 1: Alinhe o fluxo
É necessário adicionar bits extras à mensagem original de forma que o comprimento da mensagem original com os bits extras seja igual a 448 módulo 512. A adição é realizada mesmo que o comprimento da mensagem original já seja comparável a 448. Nos bits de preenchimento, apenas o primeiro bit é 1 e o resto dos bits são 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 criptografia (Fundamentos da teoria da segurança da informação): Livro didático. Um manual para botas e ped. universidades. / Ed. V.A. Sadovnichy - M.: Superior. shk., 1999.
8. John Black, Martin Cochran, Trevor Highland Fast Software Encryption. FSE ed. 2006.S. 262-277.
9. Entropia de informação // ru.wikipedia.org/ (data de acesso: 12.11.2020).
10. Como quebrar MD5 e outras funções de hash // (data de acesso: 17/10/2020).
11. Estruturas de dados / cadeias de hash // medium.com (data de acesso: 10.12.2020).