![]() |
Síntese de circuitos (data-path) partindo de C | Trabalhos Finais de Curso 2004/2005 | Compilador de C para Assembly do Processador P3 |
![]() |
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.
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.
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.
Ter conhecimento da linguagem de descrição de circuitos VHDL.
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.
Este trabalho será realizado no INESC-ID, no grupo ALGOS
Prof. Paulo Flores
(pff@inesc-id.pt) Tel: 213100399
IST/INESC-ID, R. Alves Redol N. 9,
1000 Lisboa
![]() |
Síntese de circuitos (data-path) partindo de C | Trabalhos Finais de Curso 2004/2005 | Compilador de C para Assembly do Processador P3 |
![]() |
ALGOS Homepage | TFCs Main page | 2004-04-29 |