CMAC e Poly1305: MACs baseados em cifras de bloco
Compare CMAC e Poly1305 como alternativas a MACs baseados em funções de resumo.
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.
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
- Conceitos de MAC e ataques de extensão de comprimento
- Construção do HMAC e prova de segurança
- HMAC em APIs: assinatura de solicitações
- CMAC e Poly1305: MACs baseados em cifras de bloco