Implementação MD5 para microcontrolador


11

Alguém tem algum exemplo do algoritmo MD5 para um microcontrolador (de preferência um de 8 bits)? Nosso projeto vai usar um dispositivo da série Microchip PIC18.

Respostas:


11

Se você estiver procurando por uma implementação C, a pilha Microchip TCP / IP possui uma implementação MD5 no arquivo Hashes.c.


Isso é exatamente o que eu precisava.
J.J. Polfer


4

Eu continuaria com uma implementação respeitável conhecida do MD5 e ficaria longe das bibliotecas encontradas por fornecedores de terceiros. A RFC 1321 original, que descreveu o MD5, tem uma amostra de implementação C.

Lembrete: os pontos fracos conhecidos do MD5 são ataques de colisão, e não ataques de pré-imagem ; portanto, é adequado para alguns aplicativos criptográficos, mas não para outros. Se você não sabe a diferença, não deve usá-la, mas não a descarte por completo. Consulte http://www.vpnc.org/hash.html .


1
Para a criptografia, eu orientar clara de MD5 altogther ...
Toby Jaffey

1
@Joby: aprecio o pensamento, mas o MD5 tem aspectos que são ótimos para criptografia. Você apenas precisa conhecer seus pontos fortes e fracos.
Jason S

+1 para vincular ao código fonte C na RFC original. Embora eu provavelmente usasse o código fonte da Microchip, as mesmas pessoas que fabricaram o chip serão executadas.
Davidcary


3

da página da wikipedia no MD5 :

... foi demonstrado que o MD5 não é resistente a colisões, portanto, o MD5 não é adequado para aplicativos como certificados SSL ou assinaturas digitais que dependem dessa propriedade.

e dos pesquisadores de SSL na mesma página:

Também esperamos que o uso do MD5 em outros aplicativos seja reconsiderado.

Eu entendo que você provavelmente não quer ouvir isso, mas você realmente precisa do MD5? Não deve ser usado para fins criptográficos, pois é muito inseguro (e há cargas de barcos de tabelas arco-íris disponíveis). Se você está procurando algo para validar apenas os dados, consulte o CRC (código aqui ), que é computacionalmente mais barato. Se você o estiver usando para fins criptográficos, posso sugerir a mudança para o SHA ? O único problema é que a maioria dos algoritmos criptograficamente seguros não funciona particularmente bem nos microcontroladores. Eu sei que pode parecer que o MD5 é "bom o suficiente", mas o caminho da engenharia é errar por precaução.


1
Não descarte completamente o MD5: sua declaração de "Não deve ser usada para fins criptográficos, pois é muito insegura" é muito generalizada.
Jason S

1
Também não use o fato de que um algoritmo de hash possui ou não tabelas de arco-íris como consideração para usá-lo ou não. Se o SHA não tiver muitas tabelas arco-íris agora, ele terá. Acrescente um "sal" secreto a uma mensagem para contornar esse problema.
Jason S
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.