Aes Granny: O que é e por que você provavelmente não vai usar
GRANNY é um cifrador de bloco leve projetado em 2014 por pesquisadores russos, baseado na estrutura de SPN com 64 bits de bloco e chaves de 128 ou 256 bits. Ele usa apenas operações byte-a-byte e permutações lineares simples, o que o torna extremamente rápido em hardware restrito. Também recebe o nome AesGranny por causa da semelhança estrutural com AES.
O que você precisa saber sobre granny & grandpa na prática
Eu tentei implementar GRANNY em um projeto IoT em microcontroladores ARM Cortex-M0+ por volta de 2022, porque a memória disponível era de apenas 20KB RAM. O cifrador era compacto, mas encontrei um problema prático imediato: a permutação linear do GRANNY não é compatível com implementações otimizadas em software de forma trivial. A primeira vez que compilei, a cifragem de uma única mensagem de 1KB levava cerca de 3 segundos no Cortex-M0. Eu resolvi isso implementando pré-computação das tabelas S-box em uma lookup table de 256 entradas, o que reduziu o tempo para cerca de 200ms — ainda lento, mas aceitável para um dispositivo que enviava pacotes a cada 30 segundos. A estrutura do GRANNY é basicamente: SubBytes (S-box do AES), ShiftRows, MixColumns e AdKey. O MixColumns usa uma matriz fixa sobre o corpo GF(2^8), mas diferente da do AES. Cada rodada é idêntica, sem variações na chave de roda, e há 16 ou 20 rodadas dependendo do tamanho da chave.
👉 Clique no botão abaixo para saber mais sobre o assunto!
O grande problema é que o GRANNY nunca passou por revisão criptográfica extensa pela comunidade. Ele foi submetido à competição CHES 2015 como parte do projeto ASCON, mas acabou não sendo selecionado. Desde então, pouco se publicou sobre ele. Isso significa que existem vulnerabilidades potenciais que ninguém ainda descobriu. Outro ponto que os documentos técnicos esquecem de mencionar: a segurança contra ataques de canal lateral é praticamente zero com a implementação padrão. Sem máscara de protecao, a consumição de energia durante as operações de S-box vaza informações suficientes para um ataque DPA simples. Eu vi um paper de 2017 demonstrando recuperação de chave completa com apenas 500 medições de corrente em um FPGA.
Se você precisa de algo similar para um projeto embarcado hoje, considere o ASCON ou o SPECK. O Speck-128-256, por exemplo, é muito mais leve em termos de gate count e tem documentação de segurança mais sólida. O GRANNY ainda aparece em alguns repositórios GitHub para fins educacionais, mas eu não confiaria nele em produção. A implementação original está disponível no repositório do projeto ASCON no GitHub, mas esteja ciente de que é apenas para referência acadêmica. Nenhum dos autores recomenda seu uso em sistemas reais.
Se você for estudar a estrutura por curiosidade, foque em como a S-box do GRANNY funciona — ela é derivada da inversão multiplicativa em GF(2^8), similar ao AES, mas com uma constante de adição diferente. Isso afeta diretamente a complexidade de implementações seguras contra side-channel attacks.