Implementação em Hardware do algoritmo MD5

Enquadramento

O algoritmo MD5 é um dos mais utilizados na geração de hashes seguras, em particular no standard de autenticação de mensagens na Internet. A sua utilização permite uma relação ``única'' entre a mensagem original e o valor de hash, que pode ser encarado como uma assinatura digital da mensagem. Assim, é possível substituir a autenticação de uma grande mensagem ou documento pela autenticação de um pequeno valor de hash.

Assegurar a integridade e autenticação de dado são serviços essenciais para a realização de transacções financeiras, comercio electrónico, distribuição de software, comunicações electrónicas, etc.

Objectivo

Descrever em VHDL o algoritmo MD5 para ser sintetizado e implementado numa FPGA. Desenvolver várias arquitecturas possíveis para a implementação do algoritmo MD5 e estudar/analisar as suas diferentes características e desempenhos.

Descrição

O MD5 é um algoritmo para obter hash de mensagens desenvolvido por Ron Rivest no MIT. O algoritmo aceita como entrada uma mensagem de tamanho arbitrário e produz como saída 128 bits (4 palavras de 32 bits) que representam um valor de hash da mensagem de entrada e que pode ser encarado como uma assinatura digital da mensagem.

As operações do algoritmo MD5 para obter os 128 bits de hash são realizadas em sub-blocos de 512 bits. O resultado do hash depende não só dos dados dos do sub-bloco com também do resultado de hash obtido para o sub-bloco anterior. Assim, a arquitectura a desenvolver não pode ser totalemente paralelizada pelo hardware. Cada passo do algoritmo MD5 envolve 4 somas, 3 operações lógicas, 2 leituras de valores tabelados e 1 rotação. As arquitecturas a desenvolver devem implementar estas operações permitindo diferentes tipos de desempenho.

Requisitos

Ter conhecimento da linguagem de descrição de circuitos VHDL.

Referências

Resultado esperado

Estudo de várias arquitecturas alternativas para implementar o algoritmo MD5. A descrição em VHDL sintetizável do algoritmo MD5 (com várias arquitecturas alternativas). Implementação do algoritmo numa FPGA e verificação do seu correcto funcionamento.

Local

Este trabalho será realizado no INESC-ID, no grupo ALGOS

Contactos

Prof. Paulo Flores (pff@inesc-id.pt)    Tel: 213100399
IST/INESC-ID,  R. Alves Redol N. 9, 1000 Lisboa


ALGOS Homepage TFCs Main page 2004-04-29