Quebra de Senhas (Hashes MD5) de Forma Paralela

Objetivo

O objetivo central desta atividade é o desenvolvimento de um sistema que se beneficie do desempenho provido por uma computação paralela das tarefas. O mesmo é direcionado a computação numericamente intensiva, promovendo a quebra de senhas MD5.

Datas

  • 14/08/2013 - data limite para informação dos times (informar pelo email adenauer at inf.ufpel.edu.br)
  • 15/08/2013 - informar até às 22h00 os hashes MD5 do time
  • 15/08/2013 - 23h59 os hashes serão disponibilizadas para os times iniciarem o processamento
  • 21/08/2013 - 23h59 os grupos devem retornar para o email adenauer at inf.ufpel.edu.br os hashes que conseguiram quebrar. Quem quebrar todas as senhas antes desta data deve informar o quanto antes, e somente ao professor.

Descrição

Serão fornecidas senhas MD5 para serem quebradas. Para composição das senhas será utilizado o alfabeto de a … z (maiúsculas e minúsculas), os algarismos de 0 … 9 e os símbolos !@#$%&*()_-+=[]{}?/\|><

No processo de descoberta das senhas cada grupo poderá utilizar a estratégia de distribuição que lhe parecer mais eficiente.

A solução entendida como melhor será aquela que quebrar antes todas as senhas, ou aquela tiver o maior número de senhas quebradas até a data limite.

A seguir links relacionados ao MD5. Estes links tem por objetivo trazer informações sobre o tema hashes MD5. Para implementação é recomendável utilizar a biblioteca para processamento de hash MD5 disponível na linguagem que via ser utilizada.

Esta atividade está dividida em duas frentes:

  • a) quebrador de senhas MD5 (clientes)
  • b) distribuidor de tarefas para o quebrador senhas MD5 (servidor)
  • OBS. cada grupo tem total liberdade para projetar a sua forma de explorar o paralelismo. É possível trabalhar com o dicionário, com o volume de senhas que é entregue para cada cliente de cada vez, e assim por diante. É possível, também, ter mais de um servidor na arquitetura que irá realizar a computação paralela.

Apresentação

Metodologia: organizar um kit conclusão de trabalho, composto pelos seguintes itens:

  • um arquivo ZIP com os códigos fonte dos programas utilizados. Importante os programas estarem fortemente documentados;
  • uma apresentação feita em MS-PowerPoint, Libre-Office ou LaTeX (preferencialmente) resumindo a solução adotada. Quem trabalhar com ferramentas proprietárias (pagas, por exemplo MS-PowerPoint) além do fonte, deve fornecer versão em PDF do seu documento;
  • registrar o tempo necessário para quebra de todas as senhas;
  • caracterizar o hardware utilizado, bem como a forma como foi organizada a paralelização das tarefas;
  • a apresentação deve ser organizada para ser ao redor de 10 minutos;
  • será sorteado um integrante do time para fazer a apresentação.

Senhas para Teste

Abaixo 54 senhas MD5 para os grupos utilizarem nos seus testes. As senhas são de 4, 5 ou 6 caracteres.

01a8649e264e14d4215065fb3eee2112
05968f80e5d2f335bddb6faf9cbe23ee
22aadb26447d87b550b155a4d764fad0
22d5f5321072a715ae3d76907dda5c2f
27805b6edb985a5cb9e4912f21775a9b
31a468920cff1aad10753b5f14042824
3f5469ea889c05ea7e22153216c769d3 
469ab2c03a994442b6d2f81a34fa3091
4b68e2cae855ed125433be90c76f6d8a
4fb164677becad4b371ddbba89b28a47
533e216ce150f00dae071be9449d29e5
56b0fbc82e5050909a1fbd10de711dbd
572c2978f71bf4858e649f776a5d7dd8
5fa1b99a271b967b04b2952868081287
5fbcadef4caf526b04715e71ec38ceb2
67c1ffe07ead9acada98bb57c94989c4
67f1ae07542da043233c3aa5005c35b0
6913fd55dde3a1420304249c84486cc7
6ad3c6324400fd2d7304ac79ca87047f
6feb889691ef26940044c9bfd7e09c8f
72772597be404696f2278b02be6f04fb
735de7be155b9d078c9643042d1987ea
783a6eb17104d0f5175904e481ae7d74
7c52ef1d9350c608eb7eeced81bea0c4
7de0049ee50d1ed44a2f5a211be2a3b1
8421378d307e579d2681ef3b04e2aa1b
91321441ac234aad3549b3c815ffb8ad
946c19824355d7501de9f0de408297d1
96cb4a09998411f8272f857d893265b0
99dd7946d77fd370bebb357c54eff46a
9cbe2e02d88bcd507f44f553bbef4cc6
9f0876be336b34cfda57d392292f05b6
9f184130760a8991273d61aa23897dcc
a5043c328e52783c75dc1f12db4e3b93
ae2f866194753ab18a3a38b426b41958
b1507d468121e69e408c60cc0bc97c42
b8e12936fe4d5d19c37b9442e34c3839
c18d8827c555043b4db2a8c72de637ab
c295e2d817b939ed7cd97fede0a233ab
c8f5e09a214f83a610da0f17f1635797
ccd8fc809c2637abaa24f6161aad4a66
cdfce282f10b20571b7e542c0ab548ed
ce017e68f36932bae1faedc8b4a2d4c2
d0cbddd770c023ee20170c7dc1741d42
d29892b607f61993ab489cc2b4bc18a1
d45623e9bcf7ef0fc18f25dd1a8a3a3a
e54a8426475731f2561981e60630dbbe
eb81adcc4edfeccb1ba0f16dfe1a737f
ecbd259dd576d0dc3f504c99a05d4303 
eea7530d166b6279d2720929639973d1
f209b4ecb8fdfc2285e4175ea0ce489a
f37ff44fa840288762f16074a48ca191
f40eea175007de3bb7dd7436ef78a4a8
f947e6c5ca751155df70628f65c28967 

Senhas para Execução do Trabalho

Cada grupo irá fornecer 30 hashes MD5, 10 de quatro, 10 de cinco e 10 de seis caracteres misturadas, isto é, não deverá ser possível identificar o tamanho da senha a ser quebrada.

As senhas correspondentes aos hashes devem ser mantidas somente de conhecimento do time.

Composição dos Times

Cada time (grupo) poderá contar com no máximo três participantes.

 
quebra-md5-paralela.txt · Last modified: 2013/08/28 21:48 by adenauer · [Old revisions]
Recent changes RSS feed Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki