Resumo
- O RFC 1321, de abril de 1992, especificou MD5 e incluiu uma implementação de referência em C, um programa de teste e sete resultados esperados. Implementadores podiam comparar um programa em execução com um alvo comum.
- O RFC 6151, de 2011, revisou a avaliação de segurança: MD5 deixou de ser aceitável onde a resistência a colisões era necessária, como em assinaturas digitais. Os vetores antigos continuaram corretos para conferir o cálculo.
Uma receita que já vinha com a prova de bancada
Uma soma MD5 costuma chegar à tela como uma fileira de letras e números sem explicação. O RFC 1321 mostrava o caminho até ela. Acrescentava bits de preenchimento até um limite definido, anexava o comprimento original, inicializava quatro palavras de 32 bits e processava blocos de 512 bits. O detalhe de ordem dos bytes podia mudar o resultado. Se dois programadores entendessem um passo de maneira diferente, seus computadores discordariam sobre a mesma mensagem. Para que o algoritmo viajasse, era preciso acertar os detalhes pequenos.
Rivest colocou ferramentas de trabalho no apêndice A. Os arquivos global.h, md5.h e md5c.c traziam tipos, interface e implementação; mddriver.c servia para experimentar cadeias, arquivos ou entrada padrão. A opção -x executava uma bateria fixa. O próprio RFC publicava sete saídas esperadas, começando pela cadeia vazia, a e abc, e seguindo para sequências maiores. Para abc, a resposta impressa era 900150983cd24fb0d6963f7d28e17f72. A apostila já vinha com o gabarito. Uma versão nova podia ser confrontada com o texto e com o computador de referência.
O código veio de RSAREF, uma ferramenta criptográfica para Privacy-Enhanced Mail. A inclusão tornava curta a distância entre ler uma especificação e rodar um exemplo. Uma equipe poderia escrever sua própria implementação, conferir as respostas e detectar uma falha de preenchimento ou de representação. Outra poderia portar o código fornecido para a sua máquina. O RFC o apresentava como portátil e apontava uma otimização para certos sistemas de ordem de bytes baixa. Era uma forma prática de convidar gente de laboratórios diferentes para produzir os mesmos bits.
A publicação tinha uma aposta maior por trás da engenharia. MD5 prolongava MD4. O documento sugeria que MD4 talvez tivesse sido adotado antes de receber a revisão crítica que merecia, e buscava uma margem de segurança maior ao custo de um pouco de velocidade. Rivest citava assinaturas digitais como uso pretendido: reduzir um arquivo grande a um resumo antes da operação com chave privada. O algoritmo foi colocado em domínio público para exame e possível padronização, enquanto o próprio memo era Informational. O pacote oferecia tanto uma receita para concordar sobre a saída quanto uma expectativa sobre a dificuldade de forjar uma saída igual para mensagens diferentes.
Os sete testes tratavam da primeira tarefa. Qualquer programador podia verificar se sua versão produzia as respostas conhecidas. A expectativa de resistência a colisões dependia de outra atividade: descobrir o que um adversário engenhoso conseguiria construir. Um bom gabarito revela um erro no cálculo; a criptanálise interroga a pergunta. A distinção ficou mais importante conforme o algoritmo saiu da página e passou a sustentar decisões de segurança.
Em março de 2011, o RFC 6151 refez essa avaliação. Os ataques publicados tornaram MD5 inadequado para aplicações que exigem resistência a colisões, em especial assinaturas digitais. O texto separou outros usos, como HMAC-MD5 e verificações voltadas apenas a erros acidentais, e orientou novos protocolos a evitar HMAC-MD5. O computador ainda calculava para abc a mesma sequência de 1992. O grau de confiança exigido de uma assinatura havia mudado.
Há uma ironia discreta nessa trajetória. O RFC original foi cuidadoso ao oferecer explicação, código e exemplos observáveis; isso ajudou programas independentes a concordarem. O RFC posterior também foi cuidadoso, agora ao revisar o valor de segurança dessa concordância. As duas peças não brigam sobre qual digest o algoritmo gera. Elas mostram momentos diferentes do conhecimento sobre o que aquele digest consegue sustentar. O gabarito sobreviveu inteiro, enquanto a prova de segurança ganhou outra correção.
Briefing para membros
Contexto aprofundado do perfil
Faça login com o nível de assinatura correto para desbloquear o briefing completo e as notas das fontes.
Exclusivo para o Círculo Estratégico
Strategic Circle
Aberto a todos os leitores. Desbloqueie Briefings de perfil após se inscrever e fazer login.
Junte-se ao Strategic CircleSomente para Leadership Alliance
Leadership Alliance
Para proprietários e gestores qualificados de ativos de PI; faça login para desbloquear os briefings da Leadership Alliance.
Junte-se ao Leadership Alliance





