A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Quebra de Hashes MD5 de Forma Paralela Introdução ao Processamento Paralelo e Distribuído.

Apresentações semelhantes


Apresentação em tema: "Quebra de Hashes MD5 de Forma Paralela Introdução ao Processamento Paralelo e Distribuído."— Transcrição da apresentação:

1 Quebra de Hashes MD5 de Forma Paralela Introdução ao Processamento Paralelo e Distribuído

2 Sumário o Caracterização do Hardware Utilizado o Caracterização do Problema o Heurísticas aplicadas o Abordagem em divisão de dados o Abordagem na divisão de tarefas o Resultado final o Propostas para melhoria

3 Sumário  Caracterização do Hardware Utilizado o Caracterização do Problema o Heurísticas aplicadas o Abordagem em divisão de dados o Abordagem na divisão de tarefas o Resultado final o Propostas para melhoria

4 Caracterização do Hardware Utilizado Máquina 1 Intel Core i7 3770K Cores: 4 Threads: 8 Cache L3: 8MB Mem: 16GB

5 Caracterização do Hardware Utilizado Máquina 2 Intel Core i7 2670QM Cores: 4 Threads: 8 Cache L3: 6MB Mem: 6GB

6 Sumário Caracterização do Hardware Utilizado  Caracterização do Problema o Heurísticas aplicadas o Abordagem em divisão de dados o Abordagem na divisão de tarefas o Resultado final o Propostas para melhoria

7 Caracterização do Problema  240 hashes MD5 a serem quebradas (excluindo as do próprio time) – 80 hashes de tamanho 4 – 80 hashes de tamanho 5 – 80 hashes de tamanho 6  85 caracteres válidos para combinação – 85 4 combinações = 52.200.625 – 85 5 combinações = 4.437.053.125 – 85 6 combinações = 377.149.515.625

8 Caracterização do Problema  240 hashes MD5 a serem quebradas (excluindo as do próprio time) – 80 hashes de tamanho 4 – 80 hashes de tamanho 5 – 80 hashes de tamanho 6  85 caracteres válidos para combinação – 85 4 combinações = 52.200.625 x 4 bytes = 200 Mb – 85 5 combinações = 4.437.053.125 x 5 bytes = 20,6 Gb – 85 6 combinações = 377.149.515.625 x 6 bytes = 2,05 Tb

9 Caracterização do Problema  240 hashes MD5 a serem quebradas (excluindo as do próprio time) – 80 hashes de tamanho 4 – 80 hashes de tamanho 5 – 80 hashes de tamanho 6  85 caracteres válidos para combinação – 85 4 combinações = 52.200.625 x 4 bytes = 200 Mb – 85 5 combinações = 4.437.053.125 x 5 bytes = 20,6 Gb – 85 6 combinações = 377.149.515.625 x 6 bytes = 2,05 Tb

10 Como paralelizar ??

11 Sumário Caracterização do Hardware Utilizado Caracterização do Problema  Heurísticas aplicadas o Abordagem em divisão de dados o Abordagem na divisão de tarefas o Resultado final o Propostas para melhoria

12 Heurísticas aplicadas  Estratégia em força bruta para gerar combinações – aaaa, aaab, aaac,...,<<<< – aaaaa, aaaab,..., <<<<< – aaaaaa, aaaaab,..., <<<<<<  Estratégia randômica para gerar combinações – abDx, *98N,..., +=mA – aGb9x, 4*G8$,..., $Gm77 – #fbD4, Gt9gN,..., +HnX@

13 Sumário Caracterização do Hardware Utilizado Caracterização do Problema  Heurísticas aplicadas  Abordagem em divisão de dados o Abordagem na divisão de tarefas o Resultado final o Propostas para melhoria

14 Abordagem na divisão dos dados - 1  Para cada hash MD5 lida do arquivo é disparado 3 Threads cada uma executanda a estratégia de Força Bruta.  Para 240 hashes são disparadas 720 Threads. Hash MD5FB : 4aaaaFB : 5aaaaaFB : 6aaaaaaHash MD5FB : 4aaaaFB : 5aaaaaFB : 6aaaaaa

15 Abordagem na divisão dos dados - 1  Para cada hash MD5 lida do arquivo é disparado 3 Threads cada uma executanda a estratégia de Força Bruta.  Para 240 hashes são disparadas 720 Threads. Hash MD5FB : 4aaaFB : 5aaaaaFB : 6aaaaaaHash MD5FB : 4aaaFB : 5aaaaaFB : 6aaaaaa

16 Abordagem na divisão dos dados - 2  A lista de hashes MD5 será subdividida em 8 subconjuntos.  É disparado 3 Threads cada uma executando a estratégia de Força Bruta.  Para 8 subconjuntos são disparadas 24Threads. Subconjunto de Hash MD5 FB : 4aaaaFB : 5aaaaaFB : 6aaaaaa Subconjunto de Hash MD5 FB : 4aaaaFB : 5aaaaaFB : 6aaaaaa

17 Abordagem na divisão dos dados - 2  A lista de hashes MD5 será subdividida em 8 subconjuntos.  É disparado 3 Threads cada uma executando a estratégia de Força Bruta.  Para 8 subconjuntos são disparadas 24Threads. Subconjunto de Hash MD5 FB : 4aaaFB : 5aaaaaFB : 6aaaaaa Subconjunto de Hash MD5 FB : 4aaaFB : 5aaaaaFB : 6aaaaaa

18 Sumário Caracterização do Hardware Utilizado Caracterização do Problema  Heurísticas aplicadas Abordagem em divisão de dados  Abordagem na divisão de tarefas o Resultado final o Propostas para melhoria

19 Abordagem na divisão de tarefas  Gerar todas as combinações possíveis é custoso. – Ponto a ser explorado  Hashes a serem quebradas passam a ser inseridas em uma TreeMap – Tempo de consulta log(n)

20 Abordagem na divisão de tarefas  Vetor de caracteres de tamanho 85 0 84

21 Abordagem na divisão de tarefas  Vetor dividido em 8 partes  Para cada parte disparado 1 Thread em FB pesquisando a combinação da vez 0 910 2021 3031 4243 5253 6263 7475 84 aaaa j<<< kkkk u<<< vvvv E<<< FFFF Q<<< RRRR 1<<< 2222 @<<< #### [<<< ]]]] <<<<

22 Abordagem na divisão de tarefas 0 910 2021 3031 4243 5253 6263 7475 84 Tamanho 4

23 Abordagem na divisão de tarefas 0 910 2021 3031 4243 5253 6263 7475 84 Tamanho 4

24 Abordagem na divisão de tarefas 0 910 2021 3031 4243 5253 6263 7475 84 Tamanho 4

25 Abordagem na divisão de tarefas 0 910 2021 3031 4243 5253 6263 7475 84 Tamanho 4

26 Abordagem na divisão de tarefas 0 910 2021 3031 4243 5253 6263 7475 84 Sincroniza

27 Abordagem na divisão de tarefas  Vetor de combinações partido em 2 e distribuído para cada máquina 0 84 4142 Máquina 1Máquina 2

28 Abordagem na divisão de tarefas  Cada máquina executa 8 threads sobre seu trecho de combinação 0 84 4142

29 Abordagem na divisão de tarefas 0 84 4142 Tamanho 4

30 Abordagem na divisão de tarefas 0 84 4142 Tamanho 4

31 Abordagem na divisão de tarefas 0 84 4142 Tamanho 4

32 Abordagem na divisão de tarefas 0 84 4142 Tamanho 4

33 Abordagem na divisão de tarefas 0 84 4142 Tamanho 4 Sincroniza

34 Abordagem na divisão de tarefas  Estratégia extra para hashes de tamanho 6 Reverse

35 Abordagem na divisão de tarefas  No modo reverse, a máquina que termina suas combinações antes, assume a parte da outra máquina no modo reverse somente para as hashes de tamanho 6.  O modo reverse gera as combinações de trás para frente.  A última combinação de cada trhead é testada por primeiro e assim por diante.

36 Abordagem na divisão de tarefas 0 84 4142 Reverse para 6 Encerrado

37 Abordagem na divisão de tarefas 0 84 4142 Reverse para 6 Encerrado

38 Abordagem na divisão de tarefas 0 84 4142 Reverse para 6 Encerrado

39 Abordagem na divisão de tarefas 0 84 4142 Reverse para 6 Encerrado

40 Abordagem na divisão de tarefas 0 84 4142 Reverse para 6 EncerradoInterrompe

41 Sumário Caracterização do Hardware Utilizado Caracterização do Problema Heurísticas aplicadas Abordagem em divisão de dados Abordagem na divisão de tarefas  Resultado final o Propostas para melhoria

42 Resultado final  Linguagem: Java  Tempo total de execução: 16horas  Total de Trheads rodando simultaneamente: 16 (8x2)  Máquina 1 quebrou 99 hashes – 31 de tamanho 4 – 24 de tamanho 5 – 33 de tamanho 6 – 11 de tamaho 6 no modo reverse  Máquina 2 quebrou 140 hashes – 49 de tamanho 4 – 56 de tamanho 5 – 35 de tamanho 6

43 Resultado final  Máquinas extras rodando algoritmo randômico foram interrompidas.  Hashes quebradas por esta estratégia não foram aproveitadas.  12 horas de trabalho quebraram 6 hashes de tamanho 6.

44 Sumário Caracterização do Hardware Utilizado Caracterização do Problema Heurísticas aplicadas Abordagem em divisão de dados Abordagem na divisão de tarefas Resultado final  Propostas para melhoria

45 Propostas para melhoria  Estender a estratégia para mais máquinas diminui o tempo total?  Rodar modo reverse desde o ínicio? – Exige controle exato do range de combinações para evitar o retrabalho  Modo reverse para todos os tamanhos? – Todas as combinações de tamanho 4 são testadas em ~10 segundos  Melhorar a estratégia de distribuição pode reduzir o tempo.

46 Obrigado!


Carregar ppt "Quebra de Hashes MD5 de Forma Paralela Introdução ao Processamento Paralelo e Distribuído."

Apresentações semelhantes


Anúncios Google