Cryptology Academy · Aula

CMAC e Poly1305: MACs baseados em cifras de bloco

Compare CMAC e Poly1305 como alternativas a MACs baseados em funções de resumo.

Aula 4 de 413 etapas

CMAC e Poly1305: MACs baseados em cifras de bloco é uma aula grátis de Cryptology Academy no CoddyKit. Esta é a aula 4 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Cryptology Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Cryptology Academy inclui 4 aulas no total.

O que é um MAC?

Um código de autenticação de mensagem (MAC) recebe uma chave e uma mensagem e produz uma marca. A marca comprova que a mensagem não foi adulterada e foi produzida por alguém que possui a chave.

HMAC versus MACs baseados em cifras de bloco

HMAC usa uma função de resumo como primitiva. CMAC e Poly1305, por sua vez, usam cifras de bloco ou aritmética polinomial. Os MACs baseados em cifras de bloco evitam a dependência de uma função de resumo e se integram naturalmente ao hardware AES.

Construção do CMAC

CMAC (MAC baseado em cifra) é definido no NIST SP 800-38B. Ele preenche a mensagem até um limite de bloco, deriva duas subchaves K1/K2 a partir da cifra, aplica XOR nelas no bloco final e então executa o modo CBC sem armazenar o texto cifrado intermediário.

Derivação das subchaves do CMAC

K1 = AES_K(0^128) deslocada à esquerda em 1 bit, com XOR de uma constante se o MSB era 1. K2 = K1 deslocada da mesma forma. Essas subchaves vinculam o bloco parcial final com segurança contra a extensão de comprimento.

Visão geral do Poly1305

Poly1305 é um autenticador de uso único criado por Daniel Bernstein. Ele avalia um polinômio sobre o primo 2^130-5, tratando a mensagem como coeficientes polinomiais e usando um par de chaves de uso único (r, s).

Matemática do Poly1305

Tag = (sum of (m_i * r^i) mod 2^130-5) + s mod 2^128. A chave r é limitada a 22 bits específicos para impedir ataques de temporização. s é uma máscara de adição de uso único com 16 bytes.

ChaCha20-Poly1305

Poly1305 quase sempre é combinado com ChaCha20. ChaCha20 gera o par de uso único (r, s) a partir do fluxo de chaves da cifra de fluxo, tornando o esquema AEAD combinado comprovadamente seguro e extremamente rápido em processadores ARM/móveis.

AES-GCM versus AES-CMAC

AES-GCM autentica usando GHASH, um MAC polinomial sobre GF(2^128). AES-CMAC é mais simples e usado no IEEE 802.11i (WPA2) e nos conjuntos de cifras do TLS 1.2. GCM fornece criptografia e autenticação em uma única passagem.

Comparação de desempenho

Poly1305 em ARM Cortex-A alcança cerca de 1 ciclo por byte usando intrínsecos NEON. AES-CMAC exige uma operação de bloco AES por bloco de 16 bytes. Para grandes volumes de dados, Poly1305 supera CMAC em hardware sem AES-NI.

Propriedades de segurança

CMAC é existencialmente infalsificável sob um ataque de mensagem escolhida, supondo que AES seja uma permutação pseudorrandômica. Poly1305 é seguro em termos de informação quando recebe uma chave de uso único verdadeiramente aleatória — a probabilidade de falsificação é de no máximo 8*ceil(L/16)/2^106.

Casos de uso

CMAC: WPA2, S/MIME, integridade do sistema de arquivos. Poly1305: TLS 1.3 por meio de ChaCha20-Poly1305, VPN WireGuard, Signal Protocol, Noise Protocol Framework. Ambos são amplamente usados em sistemas modernos de alta segurança.

Verificação rápida

Qual MAC é usado no AEAD ChaCha20-Poly1305?

Recapitulação

Você aprendeu a construção do CMAC baseada em CBC e a aritmética polinomial do Poly1305. Ambos são MACs seguros de tempo constante usados em protocolos reais. Em seguida: TLS/HTTPS e como todas essas primitivas se combinam.

Grátis para começar

Aprenda Cryptology Academy com um tutor de IA — grátis

Escreva e execute código real no seu navegador, obtenha ajuda instantânea de um tutor de IA 24/7 e continue de onde parou na web ou no app.

Cursos
67
Aulas
261

Perguntas Frequentes

A aula “CMAC e Poly1305: MACs baseados em cifras de bloco” é grátis?

Sim — o texto completo de “CMAC e Poly1305: MACs baseados em cifras de bloco” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Cryptology Academy, atualize para CoddyKit PRO. O curso de Cryptology Academy inclui 4 aulas no total.

O que vou aprender em “CMAC e Poly1305: MACs baseados em cifras de bloco”?

Compare CMAC e Poly1305 como alternativas a MACs baseados em funções de resumo. Você pratica Cryptology Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Cryptology Academy?

Nenhuma experiência prévia é necessária. Cryptology Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 4 de 4.

Quanto tempo leva a aula “CMAC e Poly1305: MACs baseados em cifras de bloco”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Cryptology Academy?

Sim. Cada aula de Cryptology Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Conceitos de MAC e ataques de extensão de comprimento
  2. Construção do HMAC e prova de segurança
  3. HMAC em APIs: assinatura de solicitações
  4. CMAC e Poly1305: MACs baseados em cifras de bloco
← Voltar para Cryptology Academy