Implementação em Hardware do Algoritmo MD5 - Melhoria em Termos de Área, Freqüência do Relógio e Consumo de Potência



Documentos relacionados
SHA(SECURE HASH ALGORITHM - ALGORITMO HASH SEGURO) BRUNO KAMINO YAMAMOTO ALEXANDRE FLEURY

Segurança da Informação

TRABALHO BIBLIOTECA MD5

EA773 - Experimento 5

DECODIFICADOR DE DISPLAY DE 7 SEGMENTOS COM LATCH

ULA Sinais de Controle enviados pela UC

ORGANIZAÇÃO DE COMPUTADORES MÓDULO 8

O diagrama ASM contém dois elementos básicos: o bloco de estado e o bloco de decisão.

Protocolo TCP/IP. Neste caso cada computador da rede precisa de, pelo menos, dois parâmetros configurados:

CAPÍTULO 5. INTERFACES PARA PERIFÉRICOS DE ARMAZENAMENTO INTERFACES DIVERSAS: FIREWIRE, SPI e I 2 C INTERFACES COM O MUNDO ANALÓGICO

Sistemas Operacionais

Quadro de consulta (solicitação do mestre)

Notas da Aula 17 - Fundamentos de Sistemas Operacionais

MÓDULO 7 Modelo OSI. 7.1 Serviços Versus Protocolos

Orientação a Objetos

GUIA DE LABORATÓRIO DE SISTEMAS DIGITAIS PARA O CURSO DE ENGENHARIA DE CONTROLE E AUTOMAÇÃO

UNIP UNIVERSIDADE PAULISTA

PROJETO DE REDES

Organização e Arquitetura de Computadores I

Conforme explicado em 2.4.3, o sinal de voz x(n) às vezes é alterado com a adição de ruído r(n), resultando num sinal corrompido y(n).

Copyright 2013 VW Soluções

Arquitetura de Rede de Computadores

IFPE. Disciplina: Sistemas Operacionais. Prof. Anderson Luiz Moreira

Entendendo como funciona o NAT

CAPÍTULO 6 ARITMÉTICA DIGITAL

Curso Superior de Sistemas de Telecomunicações Unidade São José. Disciplina: Síntese de Sistemas de Telecomunicações 7º Fase

Capítulo 3. Avaliação de Desempenho. 3.1 Definição de Desempenho

Sistemas Computacionais II Professor Frederico Sauer


Comparativo de desempenho do Pervasive PSQL v11

Informática I. Aula 5. Aula 5-13/05/2006 1

Introdução. Em se tratando de computador, entendemos que memória são dispositivos que armazenam dados com os quais o processador trabalha.

ADDRESS RESOLUTION PROTOCOL. Thiago de Almeida Correia

FACULDADE PITÁGORAS DISCIPLINA: ARQUITETURA DE COMPUTADORES

Tutorial de Eletrônica Aplicações com 555 v

Prof. Rafael Gross.

CONTROLE DIGITAL DE VOLUME

Memória Cache. Prof. Leonardo Barreto Campos 1

Manual de operação. BS Ponto Versão 5.1

Para resolver este problema foi aberta a solicitação abaixo

1. NÍVEL CONVENCIONAL DE MÁQUINA (Cont.) 1.3. INSTRUÇÕES Conceitos Básicos

UNIVERSIDADE CATÓLICA DE PETRÓPOLIS CENTRO DE ENGENHARIA E COMPUTAÇÃO

Organização e Arquitetura de Computadores I. de Computadores

Tabela de roteamento

Roteiro para preparação de proposta de Trabalhos Técnico-Científicos

O protocolo I2C. Fig. 1 Diagrama em blocos e pinos do circuito integrado PT2313.

Disciplina: Laboratório de Circuitos Digitais

Memória cache. Prof. Francisco Adelton

Disciplina: Introdução à Informática Profª Érica Barcelos

Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Informática Organização e Arquitetura de Computadores

Introdução a Java. Hélder Nunes

Satélite. Manual de instalação e configuração. CENPECT Informática cenpect@cenpect.com.br

GRS Gerador de Redes Sistêmicas. (outubro/2004)

Memórias Prof. Galvez Gonçalves

Manual SAGe Versão 1.2 (a partir da versão )

Sumário INTRODUÇÃO... 4 PROTOCOLO ARP...5 ARP - ADDRESS RESOLUTION PROTOCOL...5 FUNCIONAMENTO DO PROTOCOLO ARP...5 CACHE ARP... 6

A memória é um recurso fundamental e de extrema importância para a operação de qualquer Sistema Computacional; A memória trata-se de uma grande

10 DICAS DE TECNOLOGIA PARA AUMENTAR SUA PRODUTIVIDADE NO TRABALHO

28/9/2010. Paralelismo no nível de instruções Processadores superescalares

Arquitetura de Computadores. Tipos de Instruções

Controle de Múltiplos Pivôs Centrais com um único Conjunto Motor-Bomba

MANUAL DE UTILIZAÇÃO SISTEMA DE CADASTRO INTRANET

Teoria Princípio do Capacitor

Aritmética Binária e. Bernardo Nunes Gonçalves

28/9/2010. Unidade de Controle Funcionamento e Implementação

Mapeamento de memória e programação da IHM do controlador CP-WS41/8DO8DI4AO2AI2TAI

3. O NIVEL DA LINGUAGEM DE MONTAGEM

Aula 8 Circuitos Integrados

Desenvolvimento de um Simulador de Gerenciamento de Memória

MÓDULO 11 ELEMENTOS QUE FAZEM PARTE DO PROJETO DO SISTEMA

PROJETO LÓGICO DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar

Somador e subtrator de 8 bits

Conceitos básicos do

ESTUDOS SOBRE A IMPLEMENTAÇÃO ONLINE DE UMA TÉCNICA DE ESTIMAÇÃO DE ENERGIA NO CALORÍMETRO HADRÔNICO DO ATLAS

Prof.: Roberto Franciscatto. Capítulo 1.2 Aspectos Gerais

implementação Nuno Ferreira Neves Faculdade de Ciências de Universidade de Lisboa Fernando Ramos, Nuno Neves, Sistemas Operativos,

Programador/a de Informática

Arquitetura de processadores: RISC e CISC

Sinal analógico x sinal digital. Sinal analógico. Exemplos de variações nas grandezas básicas. Grandezas básicas em sinais periódicos

Admistração de Redes de Computadores (ARC)

Implementações e Comparação de Multiplicadores de Alta Velocidade para Dispositivos Reconfiguráveis

Ao longo do presente capítulo será apresentada uma descrição introdutória da tecnologia FPGA e dos módulos básicos que a constitui.

PÉGASUS (ETHERNET POCKET) STUDIO V1.00 MANUAL DE INSTALAÇÃO E OPERAÇÃO

ICC Introdução para JavaScript

TRABALHO COM GRANDES MONTAGENS

Projeto de Circuitos. Introdução ao Computador 2008/01 Bernardo Gonçalves

Organização e Arquitetura de Computadores I

Display de 7. PdP. Autor: Tiago Lone Nível: Básico Criação: 16/12/2005 Última versão: 18/12/2006. Pesquisa e Desenvolvimento de Produtos

Status. Barra de Título. Barra de Menu. Barra de. Ferramentas Padrão. Caixa de nomes. Barra de. Ferramentas de Formatação. Indicadores de Coluna

Trabalho Final. Data da Submissão: das 8h do dia 16/06 às 24h do dia 17/06. Data da Entrega do Relatório: das 15h às 18h no dia 18/06.

SUMÁRIO 1. AULA 6 ENDEREÇAMENTO IP:... 2

Arquitetura de Computadores I

Sistemas Operacionais

PONTIFÍCIA UNIVERSIDADE CATÓLICA DO PARANÁ

PROJETO LÓGICO DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar

Podemos encontrar uma figura interessante no PMBOK (Capítulo 7) sobre a necessidade de organizarmos o fluxo de caixa em um projeto.

Unidade 13: Paralelismo:

Transcrição:

Implementação em Hardware do Algoritmo MD5 - Melhoria em Termos de Área, Freqüência do Relógio e Consumo de Potência João W. L. de Oliveira 1, Dra. Fernanda G. de L. Kastensmidt 2 1 Unidade de Guaíba Universidade Estadual do Rio Grande do Sul (UERGS) CEP 92500-000 Guaíba RS Brazil 2 Instituto de Informática Universidade Federal do Rio Grande do Sul (UFRGS) Caixa Postal 15.064 91.501-970 Porto Alegre RS Brazil joao-lopes@uergs.edu.br / jwloliveira@yahoo.com, fglima@inf.ufrgs.br Abstract. The work consists of analyzing and describing the message digest (MD5) and to implement it in the Hardware. The efforts had been in the improvement of the algorithm in terms place, frequency of the clock and consumption of power compared with others two implementations. To improve the area used, we implement a serial version, of the version standard of the algorithm, where it occupied a lesser area that the others. From this developed algorithm we try to parallel its operations, so that it could be executed in the half of the cycles, it delay more to carry through the operations, but, as its cycles had been reduced compensated in the end. Improving the area taken and the performance of developed algorithm MD5 we wait that its consumption of power also improves. Resumo. O trabalho consiste em analisar e descrever um sumário de mensagem (MD5) e implementá-lo em Hardware. Os esforços se resumem na melhoria do algoritmo em termos de área, freqüência do relógio e consumo de potência, comparados a outras duas implementações. Para melhorar a área ocupada, implementamos uma versão serial, da versão padrão do algoritmo, onde ela ocupou menor área que as demais. A partir deste algoritmo desenvolvido tentamos paralelizar as suas operações, para que ele pudesse ser executado na metade dos ciclos, ele demora mais para realizar as operações, mas, como seus ciclos foram reduzidos compensou no final. Melhorando a área e o desempenho do MD5 desenvolvido esperamos que seu consumo de potência também melhore. 1. Introdução Muitos documentos legais, bancarias e com outras finalidades necessitam ser assinadas. Assim, foram criadas diversas formas de assinaturas digitais, que utilizam algoritmos de chave simétrica e algoritmos de chave pública [TAN 03]. Normalmente, as mensagens que serão enviadas são processadas por uma função de hash, como o MD5 (Message Digest 5), e então o hash é assinado e não toda a mensagem original. O trabalho desenvolvido (que foi a mesma implementação do meu primeiro trabalho de conclusão de curso) visa melhorar o quinto sumário de mensagem em termos de área

ocupada, por exemplo, em um dispositivo FPGA (como o Virtex4 - xc4vsx25-12-ff668 da Xilinx, usado neste trabalho para todos os processos de síntese), em uma forma serial do algoritmo padrão [RIV 92]. Visa também, otimizar a freqüência de operação do relógio diminuindo os ciclos de operação pela metade, e ainda, o consumo de potência para realizar uma determinada tarefa em uma dada freqüência de operação com as duas implementações anteriores. 1.1. Resumo de Mensagem O processo de criptografia de dados é um processo muito dispendioso em termos computacionais. Para resolver esta dificuldade foi usado o resumo de mensagens (ou sumário de mensagem), onde, ao invés de assinar toda a mensagem, é assinado somente o resumo, usando-se um sumário de mensagem para gerar o resumo. Ele é similar a uma soma de verificação. Este tipo de algoritmo pega uma mensagem m, de comprimento qualquer, e a transforma em uma impressão digital de um tamanho fixo de dados, formando um resumo de mensagem R(m) [KUR 03]. 2. O Algoritmo MD5 Será mostrado um resumo do algoritmo padrão MD5 [RIV 92]. Ele pega uma mensagem como entrada, de um comprimento qualquer, e produz como saída (128 bits) uma impressão digital, do valor de entrada. Ele processa o resumo de mensagem em quatro estágios. Primeiro, a mensagem é enxertada (aumentada) de modo que seu comprimento, em bits, seja equivalente a 448 bits, módulo de 512 bits. O enxerto é sempre executado, mesmo se o comprimento da mensagem já seja equivalente a 448 bits. Assim, um único bit 1 é adicionado à mensagem, e logo depois são adicionados vários bits 0, quantos forem necessários para completar a mensagem. A segunda etapa, o tamanho da mensagem (64 bits), antes do enxerto, será anexado ao final do bloco de 448 bits, formando um bloco de 512 bits. Em terceiro, quatro registradores (32 bits) A, B, C e D são usados para computar o sumário da mensagem, eles serão inicializados com os valores constantes: A: 01 23 45 67h, B: 89 AB CD EFh, C: FE DC BA 98h e D: 76 54 32 10h, e depois atualizados durante o processamento. Por último, quatro funções auxiliares são definidas (F/G/H/I), onde cada uma tem como entrada três palavras de 32 bits e produz como a saída uma palavra de 32 bits. Nesta fase dos cálculos, uma tabela com 64 elementos foi construída a partir da função seno. {T[i] = 4294967296*abs(sin(i))}. E outra tabela com deslocamentos s, que varia de 4 a 23. A mensagem de entrada é indexada em 16 palavras (X[i]). Ao todo, serão 64 interações, os valores dos registradores são copiados de um para o outro, deslocando os valores, na saída temos o sumário de mensagem. Então, cada função será processada 16 vezes, da seguinte forma: O = P + ((O + F/G/H/I(P, Q, R) + X[k] + T[i]) <<< s). Para detalhes de funcionamento consulte [RIV 92]. 3. Implementações Existentes do MD5 (Pancham/ Castillo) Os algoritmos utilizados foram pesquisados em diversas referências ao algoritmo MD5. Eles dispunham seu código fonte (Verilog), que pode ser utilizado como fonte para estudo e/ou trabalhos científicos.

Pancham (O Quinto) [SWA 06] é um algoritmo sintetizável que implementa o algoritmo MD5. Seu funcionamento básico é: Quando o sinal msg_in_valid (mensagem valida na entrada) estiver em um, a mensagem em msg_in (mensagem de entrada - 128 bits) é capturada para um registrador interno, ela pode ser processada em quatro ciclos de relógio, tendo uma mensagem de 512 bits. No sinal msg_in_width (tamanho) é passado o tamanho total da mensagem de entrada, que vai ser concatenada a ela internamente por simples deslocamento. Ao final do processamento do sumário de mensagem, o sinal msg_out_valid (saída valida) mudara para 1, no próximo ciclo o sinal ready indica que se pode ler o sumário de mensagem (em msg_out), porque, o processamento está encerrado. Na outra implementação do MD5 (Castillo) [CAS 06], o sinal load_i (iniciar o processamento) precisa ficar em nível um por quatro ciclos de relógio para que a mensagem em data_i (mensagem de entrada) seja capturada para um registrador interno, a mensagem é composta em quatro ciclos de relógio, tendo uma mensagem de 512 bits ao final. O sinal newtext_i indica que um novo processamento vai começar. No ciclo que o sinal ready_o (termino dos cálculos) vai para 1 o sumário de mensagem está em data_o. 4. Arquitetura Desenvolvida O algoritmo MD5 desenvolvido (Fig. 1 - a) foi descrito em VHDL conforme a sua estrutura padrão [Riv 92], validado com um algoritmo em C. Ele calcula o sumário de mensagem, para uma mensagem de até 448 bits de entrada. Esta mensagem já deve ter os bits enxertados e o tamanho anexado a ela. Este formato é similar ao algoritmo de Castillo. Assim, a diferença para Pancham é que ele enxerta os bits por meio de simples deslocamento e pega o tamanho da mensagem externamente, anexando ao bloco de mensagem. A utilização de um dispositivo FPGA com certas características particulares foi necessária para o projeto, porque, as arquiteturas exigiram uma grande quantidade de pinos de entrada e saída. Em vista disso, foi escolhido um dispositivo da família Virtex4 (Xilinx) para a utilização neste projeto. Este dispositivo atendeu às necessidades dos pinos para a entrada e saída de dados, no momento de fazer a síntese do circuito implementado, bem como outras características importantes destacadas ao longo do trabalho. O que pode ser visto nesta estrutura é que ela não usa os estágios de recheio (enxerto de bits 0/1) e de anexação (concatenar tamanho de mesagem), mas, os demais estágios. No estágio de inicialização do acumulador são copiadas as constantes mágicas para os registradores (s_o, s_p, s_q e s_r da Fig.1 - a), elas serão usados na operação de cálculo do resumo de mensagem. O estágio mais importante é o estágio final do laço, onde, a mensagem de entrada que foi capturada em 4 ciclos de relógio (Fig. 2) é armazenada em um registrador (M2), e dividida em 16 palavras (32 bits -X[n]). A partir deste ponto 4 rodadas de cálculos serão processadas. Uma delas processa uma das funções padrões (F/G/H/I(P, R, Q)) com 16x3 valores de entrada diferentes. As constantes, por exemplo, tabela seno e valores usados no deslocamento, são fornecidos pela máquina de estado (Fig. 1 - b). Assim, os estágios de 00 ao 15, são usados na primeira rodadas de cálculos da função F, 16 ao 31 na função G, e assim por diante.

O que torna o processamento mais complexo é o fato da variável receber a soma dela própria, com o resultado do processamento de uma das funções, F/G/H/I, com a tabela seno e com uma fatia da mensagem de entrada. O somatório é deslocado e somado a variável P, ainda, as variáveis são deslocadas, ou seja, O recebe R, P recebe O, Q recebe P e R recebe Q, fazendo com que uma interação dependa do estado anterior para ser usada como uma de suas entradas. Após as 4 rodadas de cálculos (64 processamentos), o valor das variáveis é somado aos valores do começo do processamento, constantes mágicas, resultando no MD5. Figura 1. Algoritmo (a) e máquina de estados (b) do algoritmo MD5 desenvolvido Figura 2. Diagrama de tempo do algoritmo MD5 desenvolvido 4.1. Primeira Etapa: Área Aqui se propôs a estratégia de melhorar o algoritmo MD5 (Algoritmo Desenvolvido para Área A.D.A.) em termos de área ocupada. Desta forma, descrevemos com uma operação serial para os cálculos do resumo de mensagem. Assim, queremos alcançar a menor área de hardware possível, com um desempenho razoável. Depois de estudar a

estrutura do algoritmo, o resultado da simplificação feita no código inicialmente proposto, pode ser visto na Tab. 1, assim como a comparação com as demais arquiteturas. O esquemático da operação serial está representado na Fig. 3 - (a). Tablela 1. Comparação das arquiteturas em termo de área ocupada A. D. A. Pancham Castillo SLICES (10240) 844 (8%) 1628 (15%) 1242 (12%) FLIP-FLOP (20480) 839 (4%) 769 (3%) 1009 (4%) LUTS (4 entradas - 20480) 1255 (6%) 3075 (15%) 2291 (11%) IOs (pinos - 320) 260 (81%) 269 (84%) 261 (81%) GCLKS (32) 1 (3%) 1 (3%) 1 (3%) Máxima freqüência de operação (M. F. O. MHz) 80,945 76,353 77,799 Ciclos de relógio 70 66 68 Figura 3. Esquemático (MD5 desenvolvido) otimizado para área ocupada (a) e para desempenho (b) 4.2. Segunda Etapa: Relógio Uma análise foi feita em pontos onde os cálculos são mais dependentes de resultados anteriores. Assim, sua estrutura foi dividida em blocos, os pontos onde não dependiam dos estados atuais foram paralelisados. E, em pontos que dependem dos estados atuais foram otimizados, para diminuir o caminho crítico das operações, que está associado ao maior atraso de operação. Portanto, nesta nova estrutura, ao invés de fazer uma rodada de cálculo por ciclo de relógio, ele faz duas rodadas por vez. Com esta redução pela metade nas rodadas de cálculos (Tab. 2) a máquina de estado (Fig. 3 - b) teve de ser alterada para a metade dos estados.

O primeiro bloco, no qual os cálculos foram paralelisados, operações como somar o valor da tabela seno, que é um valor fixo, com uma parte da mensagem que depois de capturada não é mais alterada, foram antecipados para a segunda rodada de cálculos. Conseqüentemente, no segundo bloco, uma simplificação foi alcançada, assim, menos operações deverão ser feitas, e mais rapidamente poderá ser executado, como ocorre na segunda rotação à esquerda, que depende da primeira rotação à esquerda, passando pelas funções padrões, e as somas do primeiro bloco, que podem ser vistos no esquema da Fig. 3 - b, estão agora otimizados, o quadro menor é o mesmo da Fig. 3 - a. É importante destacar que além de paralelizar pequenos trechos, onde os cálculos são mais pesados, e de reduzir a máquina de estado pela metade dos estados, o algoritmo (Algoritmo Desenvolvido para Desempenho A.D.D.) teve alguns de seus sinais internos otimizados. Sinais como os que habilitam o começo do processamento interno das rodadas de cálculos foram antecipados ou até mesmo eliminados para que o MD5 fosse executado em um número menor de ciclos. Ainda, a nova implementação não ultrapassou os números das implementações de Pancham e Castillo, em termos de área ocupada, Tab. 2. Mas, toda esta tentativa de melhoramento teve um custo, a freqüência máxima de operação do circuito foi reduzida, aumentando o tempo para o processamento do resultado. Contudo, o número de ciclos de relógio foi reduzido, portanto, calculando o tempo total para o processamento do sumário de mensagem o algoritmo se mostrou melhor que os demais, Tab. 3. Tablela 2. Comparação das arquiteturas em número de ciclos de relógio e área ocupada MD5 A. D. D. A. D. A. Pancham Castillo SLICES (10240) 1169 (11%) 844 (8%) 1628 (15%) 1242 (12%) FLIP-FLOP (20480) 739 (3%) 839 (4%) 769 (3%) 1009 (4%) LUTS (4 entradas - 20480) 2001 (9%) 1255 (6%) 3075 (15%) 2291 (11%) IOs (pinos - 320) 260 (81%) 260 (81%) 269 (84%) 261 (81%) GCLKS (32) 1 (3%) 1 (3%) 1 (3%) 1 (3%) Máxima freqüência de operação (MHz) 57,555 80,945 76,353 77,799 Ciclos de relógio 33 70 66 68 Tablela 3. Comparação das arquiteturas em relação ao tempo total MD5 M. F. O.(MHz) Período de operação Ciclos de relógio Tempo total DESENVOLVIDO: DESEMPENHO DESENVOLVIDO: ÁREA 57,555 17,375 33 573 80,945 12,354 70 865

PANCHAM 76,353 13,097 66 864 CASTILLO 77,799 12,853 68 874 4.3. Terceira Etapa: Potência Os valores de energia consumida pelas três arquiteturas do MD5, foram analisados no programa para potência XPower (Xilinx). Esta ferramenta é capaz de fazer as estimativas de consumo de potência. Foi preciso criar um arquivo do tipo.vcd [MEN 06]. Foi necessário arquivos da implementação [XIL 99] gerados depois da síntese, feitos com o programa ISE 8.1i, para um dispositivo FPGA Virtex4 (4vsx25ff668-12 - tensão de 1,2V). Foram arbitrados valores de entrada (Entrada: A a ; B A, abc ; C B, message digest ; D - C, abcdefghijklmnopqrstuvwxyz ) e calculados os tempos para o completo processamento da entrada, convencionou-se que este tempo iria até cinco ciclos depois do processamento, para todas as simulações. Os valores de freqüência de operação (F. O.), para as simulações, foram determinados pela máxima freqüência de operação (M. F. O.) da implementação mais lenta (Pancham). Ainda, foram feitas simulações, para comparar com o algoritmo otimizado para desempenho. A ferramenta calcula uma estimativa da potência (mw), como queremos o valor em Joules, pegamos os valores de tempos para cada simulação (Tab. 4) e calculamos os valores da energia (J), Tab. 5. Podemos notar que a implementação desenvolvida e a de Pancham se equilibram no consumo e a de Castillo é a que consome menos energia. Comparando a implementação desenvolvida de área com a de desempenho viu-se que uma é o dobro da outra, visto que uma opera na metade do tempo os mesmos cálculos. Tablela 4. Comparação das arquiteturas em termos de consumo de potência MD5 A. D. A. (kj) A. D. D. (kj) Pancham (kj) Castillo (kj) Vetor TEMPO POTÊNCIA TEMPO POTÊNCIA TEMPO POTÊNCIA TEMPO POTÊNCIA (mw) (mw) (mw) (mw) A 995,6 351,02 - - 969,4 363,73 982,5 207.50 B 1951,9 351,35 - - 1873,3 361,19 1899,5 223,01 C 2908,2 352,02 - - 2777,2 358,95 2816,5 223,12 D 3864,5 351,44 - - 3681,1 357.41 3733,5 222,85 D 5133 343,75 2871 396,12 4849,4 320,09 4959 219,18 Tablela 5. Comparação das arquiteturas em termos de consumo de energia Vetor\MD5 F. O.(MHz) A. D. A. (kj) A. D. D. (kj) Pancham(kJ) Castillo(kJ) A 76,34 352,6-375,2 211,2 B 76,34 180,0-192,8 117,4

C 76,34 121,2-129,2 79,2 D 76,34 90,9-97,1 59,7 D 57,47 67,0 138,0 66,0 44,2 4.4. Resultados Obtidos No que diz respeito à área ocupada, pode-se dizer que os objetivos foram alcançados. O algoritmo desenvolvido a partir das especificações padrões do MD5 [RIV 92] se mostrou melhor em relação à área na FPGA do que os demais algoritmos. Isto porque, fazendo a síntese das arquiteturas, o número de LUTs usadas foi em média 50% menor que as demais implementações, refletindo-se na freqüência máxima de operação das implementações. O número de filp-flop, que representa basicamente os registradores internos, está equilibrado entre as arquiteturas. A otimização do algoritmo desenvolvido em termos de freqüência de relógio obteve êxito, pois, foi reduzido pela metade o número de estados (máquina de estados) e alterando alguns sinais internos, se conseguiu menos da metade dos ciclos de relógio da implementação, otimizada para a área. Era esperado que ele ficasse mais lento, e de fato ficou, mas como o número de ciclos foi reduzido, foi compensado o tempo total para o cálculo do MD5. Em média, enquanto as demais implementações fazem dois resumos de mensagem, o algoritmo otimizado executa três processamentos. Ressaltamos que, dobrando os blocos de cálculos, a área ocupada pela nova implementação não ultrapassou os números de área ocupada pelos algoritmos de Pancham e Castillo. Nas operações de cálculos para o MD5, nas três implementações, o algoritmo de Castillo apresentou o menor consumo de energia. Isso porque, ele não ocupa a maior área, na FPGA, e ele demora mais ciclos para realizar as operações do MD5, ou seja, o chaveamento interno é menor, em um maior espaço de tempo, justificando o menor consumo de potência. Ainda, acreditamos que os módulos internos de Castillo fiquem mais tempo ociosos. As outras implementações praticamente tiveram os mesmos níveis de consumo de energia para os mesmos vetores de teste, em um tempo de execução. A implementação desenvolvida para desempenho consome o dobro de energia que a implementação para área, pois, ele faz os cálculos na metade do tempo. 5. Conclusões O objetivo inicial do trabalho era descrever em VHDL o algoritmo de resumo de mensagem MD5, a partir da definição padrão do MD5. Ele foi sintetizado e implementado em um dispositivo FPGA. Foram pesquisadas várias arquiteturas similares, que realizassem o cálculo do MD5, sendo escolhidas duas para se fazer às comparações com implementações do algoritmo MD5 e analisar as suas diferentes características de desempenho em termos de área, freqüência de relógio e consumo de potência. Assim, os objetivos foram alcançados. O trabalho apresentou um estudo sobre o impacto da implementação do algoritmo do quinto resumo de mensagem (MD5) em um dispositivo FPGA. O desenvolvimento do algoritmo para área foi a melhor das implementações ocupando uma área menor que os demais, devido a sua operação de forma serial, e ela foi bastante otimizada. O algoritmo desenvolvido para freqüência de relógio também foi mais bem sucedido que os outros,

realizando três operações enquanto os outros realizavam duas. Para consumo de potência o algoritmo de Castillo foi o que consumiu menor energia, acreditamos que foi devido a um tempo maior, de seus módulos internos, sem serem usados. Como este trabalho foi baseado no primeiro trabalho de conclusão de curso, o curso de engenharia em sistemas digitais da Uergs, para a primeira turma, tem dois trabalhos de conclusão para serem desenvolvidos e apresentados, assim, como trabalho futuro será rodado o algoritmo em um processador e em Hardware puro para comparar desempenho e área. O processador escolhido foi o MiniMips, tentarei propor uma solução Hardware/Software. Referências [RIV 92] RIVEST, R.. The MD5 Message-Digest Algorithm. Request for Comments: 1321. MIT Laboratory for Computer Science and RSA Data Security, Inc. Abril 1992. [SWA 06] SWAPNAJIT, Mittra. Pancham MD5. Project VeriPage. Versão 2.1. 2003. <http://www.angelfire.com/ca/verilog> Acesso em 19 out. 2006. [CAS 06] CASTILLO, Javier. MD5 Implementation. Versão 1.1.1.1. 08/09/2004. <http://www.opencores.org/lgpl.shtml> Acesso em 15 out. 2006. [MEN 06] Mentor Graphics Corporation. Xilinx. Março 2006. User s Manual. Versão 6.1e. ModelSim [XIL 99] XILINX DEVELOPMENT SYSTEM. VHDL Reference Guide. 1999. USA. Xilinx. [TAN 03] TANENBAUM, Andrew S.. Computer Networks. New Jersey, NJ EUA: Prentice Hall, 4ª ed., 384 pg, 2003. [KUR 03] KUROSE, James F.; ROSS, Keith W.. Redes de Computadores e a Internet. Pearson, Addison Wesley. São Paulo SP. 2003.