MD6 Compression function

27
UNIVERSIDADE ESTADUAL DO MARANHÃO CENTRO DE CIÊNCIAS TECNOLÓGICAS ENGENHARIA DE COMPUTAÇÃO LEANDRO COELHO JEFFERSON GOMES MAURO PINHEIRO MD6: Message-Digest Algorithm

description

A basic study of the MD6 Compression function in cryptography.

Transcript of MD6 Compression function

UNIVERSIDADE ESTADUAL DO MARANHOCENTRO DE CINCIAS TECNOLGICASENGENHARIA DE COMPUTAO

LEANDRO COELHOJEFFERSON GOMESMAURO PINHEIRO

MD6: Message-Digest Algorithm

So Lus2015LEANDRO COELHOJEFFERSON GOMESMAURO PINHEIRO

MD6: Message-Digest AlgorithmTrabalho apresentado Henrique Mariano, professor da disciplina Programao Cientfica, do Curso de Engenharia de Computao, da Universidade Estadual do Maranho, para obteno de nota referente primeira avaliao.

So Lus2015SUMRIO

1INTRODUO52FUNO HASH 62.1 Tabela hash 62.2 Hashing 62.3 Funes Hash 73MD6: Message-Digest Algorithm73.1 Notao 73.2 Entradas do MD6 83.2.1 Comprimento de mensagem d 83.2.2 Chave K (opcional) 93.2.3 Controle de modo L (opcional) 103.2.4 Numero de rodadas de r (opcional) 113.2.5 Outros parmetros MD6113.2.6 Verses nomeao de MD6114Sada do MD6125Modo de operao do MD6125.1 Modo de operao Hierrquico135.2 Entrada da funo de compresso 155.2.1 ID nico U165.2.2 A palavra de controle V 175.3 Modo de Operao com L=64175.4 Modo de Operao MD6 PAR185.5 Modo de Operao SEQ196Funo de Compresso MD6207 Referncias20

1 INTRODUOEste trabalho descreve e analisa a funo hash MD6 e sua metodologia de implementao. O algoritmo MD6 (Message-Digest 6) uma funo hash criptogrfica que utiliza uma estrutura do tipo rvore de Merkle que permite computao paralela de hashes para entradas muito longas. Os autores do algoritmo afirmam que o MD6 possui resistncia provvel contra criptoanlise diferencial.

2 FUNO HASHTabela Hash

Na Cincia da Computao, uma tabela hash uma estrutura de dados que associa chaves de pesquisa a valores. A utilizao de tabelas hash em estrutura de dados algo importante e com aplicaes em diversas reas visto que fornecem um acesso muito mais rpido aos elementos de um vetor, por exemplo, que qualquer outro mtodo (listas encadeadas, rvores binrias, etc). Seu objetivo , a partir de uma chave simples, fazer uma busca rpida e obter o valor desejado. A funo hash a responsvel por gerar um ndice a partir de determinada chave. O ideal para a funo hash que sejam sempre fornecidos ndices nicos para as chaves de entrada. A funo perfeita (hashing perfeito) seria a que, para quaisquer entradas A e B, sendo A diferente de B, fornecesse sadas diferentes.

1.1 Hashing

Uma funo hash h(x) transforma os elementos de um universo arbitrrio em inteiros positivos relativamente pequenos que indexem uma tabela generalizando se assim a operao de indexao, ou seja, os registros armazenados na tabela hash so diretamente endereados a partir de uma transformao aritmtica sobre a chave de pesquisa.Existem dois problemas relacionados com o mtodo hashing. O primeiro consiste em obter uma funo hash que distribua os registros de forma uniforme entre as entradas da tabela. O segundo ocorre quando duas chaves distintas so mapeadas no mesmo endereo da tabela, o que caracteriza uma coliso. O domnio das chaves de uma tabela hash tipicamente muito maior do que o nmero de entradas da tabela. inevitvel que duas chaves diferentes acabem sendo mapeadas para a mesma entrada da tabela pela funo de disperso.

1.2 Funes Hash

Uma boa funo hash aquela que: (i) simples de ser computada e (ii) minimiza o nmero de colises, isto , para cada chave de entrada, qualquer uma das sadas possveis igualmente provvel de ocorrer. Se as chaves fossem verdadeiramente randmicas, bastaria extrair alguns bits delas e us-los para compor o valor da funo hash, mas na prtica sempre necessrio que o valor da funo hash seja dependente de todos os bits da chave para satisfazer a propriedade (ii).

2 MD6: Message-Digest Algorithm3.1 NotaoSeja w o tamanho da palavra em bits. MD6 definido em termos de uma palavra padro w de 64 bits. Entretando seu design suporta implementao eficiente usando outros tamanhos de palavras e diferentes variaes do MD6 podem ser facilmente utilizadas para outros tamanhos de palavras. [Neste trabalho uma palavra vai sempre se referir a 64 bits (8 bytes), w = 64bits].Usando W para denotar o conjunto [0,1]w de todas as palavras w-bit.Se A (ou qualquer letra maiuscula) denotar uma lista de informao, ento a (em minusculo) usualmente representa seu comprimento (o numero de itens de dados em A). (Nosso uso de W acima uma exceo). Ns usamos tanto A[i] e Ai para representar o i-simo elemento de A. MD6 definido em relao ordenao dos bytes (big-endian): o byte de maior ordem de uma palavra definido como sendo o primeiro byte (mais a esquerda). assim como nas funes hash SHA porm diferente em MD5. Big-endian conhecido tambm como ordem de rede uma vez que os protocolos de internet normalmente usam a ordenao de bytes big-endian. Ns numeramos os bytes de uma palavra comeando com o byte 0 como o byte de maior ordem e similarmente numeramos os bits de um byte ou palavra tendo o bit 0 como o mais significante.

3.2 Entradas do MD6

Duas entradas so obrigatrias e outras trs so opcionais:M Mensagem passar pela funo hash.d - Comprimento da mensagem em bits. K valor de chave (opcionais)L controle de modo (opcionais)r numero de rounds (opcionais)Caso no especificado os valores opcionais assumem valores padres. Ns usamos H para denotar a funo hash MD6.A mensagem M deve ter comprimento finito m tal que 0