UMA PROPOSTA DE OTIMIZAÇÃO ALGORITMO DE CRIPTOGRAFIA MD6 DE DESEMPENHO PARA O André Ricardo Dantas Bezerra¹, Josuel Feitosa, David Wesley Amado Duarte¹, João Alberto Brito de Abreu¹, Guilherme Álvaro Rodrigues Maia Esmeraldo². 1 Instituto Federal de Educação, Ciência e Tecnologia do Ceará (IFCE) Correspondência para: [email protected] O Message Digest 6 (MD6) é um algoritmo de criptografia em hashes de até 512 bits, e, por isso, é mais seguro que o seu antecessor, o MD5, que incluiu hashes de 128 bits. Foi desenvolvido baseado na estrutura de dados Merkle tree. Nele, a computação inicia nas folhas da árvore e segue até sua raiz, de forma que cada nó executa uma função de compressão sobre um subconjunto da base de dados. O trabalho apresentado neste artigo consistiu no desenvolvimento de uma solução paralela para o algoritmo MD6 visando aumento de desempenho. O algoritmo paralelo proposto permite que a função de compressão seja executada em cada nó paralelamente através do uso de processos computacionais. A solução foi implementada com a linguagem C, utilizando o padrão Message Passing Interface (MPI) para a distribuição da computação entre processos. Para os experimentos, o algoritmo proposto foi executado sobre um cluster do tipo beowulf com 20 nós computacionais utilizando uma base de dados formada por 2 milhões de números inteiros. O algoritmo foi executado com diferentes números de processos, variando de 2 a 42. Para cada número de processos, o algoritmo foi executado 30 vezes computando-se a média dos resultados de desempenho. Os resultados finais mostraram que houve aumento de desempenho para o cálculo dos hashes utilizando o algoritmo paralelo proposto, em relação ao algoritmo do MD6 sequencial (um único processo). O melhor resultado permitiu um speedup de 1,97, mostrando que o desempenho do algoritmo paralelo é quase o dobro do sequencial. Palavras-chave: MD6. Paralelo. Cluster. Desempenho.