Códigos de autenticação de mensagem - HMAC, CMAC, Poly1305
Hash-based Message Authentication Code. Autenticação usando funções hash criptográficas (SHA-256, BLAKE3).
Cipher-based MAC usando AES. Aprovado pelo NIST para autenticação baseada em cifras de bloco.
MAC de alta velocidade usado em ChaCha20-Poly1305. Excelente desempenho em software.
Comparação em tempo constante para prevenir ataques de timing side-channel.
| Tipo | Descrição | Tamanho Tag |
|---|---|---|
HmacSha256 |
HMAC com SHA-256 | 256 bits |
HmacSha512 |
HMAC com SHA-512 | 512 bits |
HmacBlake3 |
HMAC com BLAKE3 | 256 bits |
CmacAes128 |
CMAC com AES-128 | 128 bits |
CmacAes256 |
CMAC com AES-256 | 128 bits |
Poly1305 |
MAC Poly1305 | 128 bits |
use avx_mac::HmacSha256;
fn main() {
let key = b"chave_secreta_32_bytes_min!!!!!!";
let message = b"Mensagem a ser autenticada";
// Criar MAC
let mut mac = HmacSha256::new(key);
mac.update(message);
let tag = mac.finalize();
println!("HMAC-SHA256: {}", hex::encode(tag));
// Verificar MAC
let mut verifier = HmacSha256::new(key);
verifier.update(message);
assert!(verifier.verify(&tag));
println!("✅ MAC verificado!");
}
use avx_mac::CmacAes256;
fn main() {
let key = [0u8; 32]; // Chave AES-256
let message = b"Dados para autenticar";
let mut cmac = CmacAes256::new(&key);
cmac.update(message);
let tag = cmac.finalize();
println!("CMAC: {}", hex::encode(tag));
}
use avx_mac::Poly1305;
fn main() {
let key = [0u8; 32]; // Chave única
let message = b"Mensagem rápida";
let tag = Poly1305::mac(&key, message);
println!("Poly1305: {}", hex::encode(tag));
// Verificar
assert!(Poly1305::verify(&key, message, &tag));
}
pub fn new(key: &[u8]) -> Self
Cria novo HMAC com chave.
pub fn update(&mut self, data: &[u8])
Adiciona dados ao MAC.
pub fn finalize(&self) -> [u8; 32]
Retorna tag de autenticação.
pub fn verify(&self, tag: &[u8]) -> bool
Verifica tag em tempo constante.
pub fn mac(key: &[u8; 32], message: &[u8]) -> [u8; 16]
Gera tag Poly1305.
pub fn verify(key: &[u8; 32], message: &[u8], tag: &[u8; 16]) -> bool
Verifica tag Poly1305.
HMAC para verificar integridade e autenticidade de requests/responses em APIs REST.
Autenticação de pacotes em protocolos seguros como TLS, IPsec e VPNs.
Verificação de integridade em armazenamento e transmissão de dados sensíveis.
Assinatura de tokens de autenticação e JSON Web Tokens (JWT).
AVX MAC é software proprietário desenvolvido pela Ávila Inc. Todos os direitos reservados.
Para licenciamento comercial, entre em contato: nicolas@avila.inc