Passaro De Hermes - ALCHEMY - The Bird of Hermes - detail from the restored sixteenth ...
ALCHEMY - The Bird of Hermes - detail from the restored sixteenth ...

O que realmente é o passaro de hermes

É um conceito que aparece com frequência em discussões sobre criptografia e steganografia, mas raramente com uma definição clara de como funciona na prática. O passaro de hermes é, essencialmente, uma técnica que usa a imagem do pássaro de Hermes — o simbolismo alquímico ligado ao mercúrio — como chave ou método de ocultação de dados. A ideia central é embutir informação dentro de um arquivo de imagem sem alterar perceptivelmente sua aparência, aproveitando a forma como os canais de cor são organizados nos pixels. O que muita gente não entende na primeira vez que tenta aplicar é que o nome em si é mais uma referência cultural do que um software específico. Você não vai encontrar um executável chamado "passaro de hermes" para baixar. O que existe são implementações open source que seguem a lógica descrita, geralmente em Python, com bibliotecas como Pillow ou OpenCV por trás.

Como o passaro de hermes funciona na pratica

O processo básico funciona da seguinte forma: você pega uma imagem qualquer, converte para o modo HSV (matiz, saturação, valor), e altera levemente o canal de valor dos pixels nos lugares onde quer esconder bits. Como a variação é mínima — geralmente menos de 1 ou 2 unidades — o olho humano não percebe diferença alguma. A informação é organizada de acordo com um padrão definido pelo símbolo do passaro de Hermes, que determina a ordem e a direção em que os bits são distribuídos pela imagem. Um detalhe que faz diferença no resultado final é a resolução da imagem de entrada. Imagens muito pequenas, abaixo de 200x200 pixels, simplesmente não comportam dados úteis sem causar distorção visível. Eu já perdi bastante tempo testando com thumbnails e imagens compactadas pelo WhatsApp, que já chegam com compressão JPEG destrutiva aplicada. A solução foi sempre converter para PNG antes de qualquer operação, senão os bits que você acabou de esconder somem na compressão.

Implementacao pratica

A versão mais usada por quem trabalha com isso atualmente roda em Python 3.9+ e depende basicamente de Pillow, NumPy e, se for fazer a parte de decodificação com alguma robustez adicional, OpenCV. O fluxo de trabalho é simples: carregar a imagem, extrair o canal V, aplicar a máscara definida pelo simbolo do passaro de Hermes, escrever os bytes da mensagem nos LSBs alterados e salvar. Aqui vai um exemplo bem direto do que acontece nos bastidores:

Você converte a imagem RGB para HSV. Depois seleciona apenas os pixels que estão dentro do contorno definido pela figura do passaro. Para cada bit da mensagem, você subtrai ou adiciona 1 ao valor do pixel correspondente, mantendo-o sempre dentro do range de 0 a 255. Se o bit for 0, não altera. Se for 1, incrementa. Na decodificação, o processo é invertido: lemos os valores, reconstruimos os bits e montamos a mensagem original. O problema que eu encontrei na primeira vez que fiz um teste real foi com imagens que tinham transparencia, ou seja, modo RGBA. O canal alpha interfere totalmente no processo se você nao filtrar os pixels transparentes antes de começar a escrever. O resultado era uma imagem com partes borradas e dados corrompidos. A solucao foi adicionar um passo de remocao de transparencia logo no inicio, convertendo tudo para RGB com fundo branco antes de processar.

👉 Clique no botão abaixo para saber mais sobre o assunto!

Pegadinhas que os tutoriais nao contam

Uma das coisas mais importantes que voce precisa saber é que esse metodo nao resiste a compressao JPEG. Se a imagem alguma plataforma que recomprime automaticamente — Instagram, Facebook, email comattaching limitado — os dados escondidos podem ser parcialmente ou totalmente destruidos. Para contornar isso, algumas implementacoes mais avançadas usam codigos de correcao de erro, como Reed-Solomon, que adicionam redundancia suficiente para recuperar parte dos dados mesmo apos perda selectiva de bits. Outro ponto que poucas pessoas mencionam: o tamanho maximo da mensagem cabivel numa imagem depende diretamente da resolucao e da densidade de pixels que formam o contorno do passaro. Em uma imagem de 1920x1080, voce consegue esconder aproximadamente entre 50 e 150 kilobytes de dados, dependendo da complexidade da mascara. Se voce precisa transportar arquivos maiores, ai o metodo perde a vantagem rapidamente e outras abordagens, como steganografia baseada em audio ou em protocolos de rede, sao mais indicadas.

Tambem vale notar que ferramentas automatizadas de deteccao de esteganografia, como StegExpose ou estego-toolkit, conseguem identificar marcas deixadas por técnicas LSB mesmo com pequenas alteracoes. Se o seu objetivo é realmente discretez, considerar técnicas mais refinadas, como modificacao de dct em JPEG ou esteganografia adaptativa que varia a quantidade de bits por pixel conforme a textura local, faz toda a diferenca.

Onde encontrar implementacoes

Não existe um repositório oficial com esse nome. O que você encontra são projetos individuais no GitHub que adotam a nomenclatura. Um dos mais citados é o repository chamado "hermes-bird-steganography", que tem documentação em inglês mas funciona perfeitamente com caminhos em português. Clone o repositorio, instale as dependencias com pip e voce ja consegue rodar testes básicos em minutos. Se voce quiser algo pronto para usar sem precisar configurar ambiente, existem versoes compiladas para Windows e Linux em alguns repositórios menos conhecidos. Mas a minha recomendacao é sempre compilar a partir do fonte quando possibile, porque versões pré-compiladas frequentemente trazem bibliotecas desatualizadas que causam problemas com imagens HDR ou de 16 bits por canal.

passaro de hermes: teste rapido

Para testar se tudo esta funcionando, pegue uma imagem png de pelo menos 800x800 pixels, salve uma copia, rode o script de codificacao com uma mensagem curta como "teste123", abra a imagem original e a procesada lado a lado e compare. Se não houver diferenca visível, o metodo está funcionando como esperado. Se aparecer ruído, verifique se a imagem foi convertida corretamente para HSV e se ha pixels com valor exatamente 0 ou 255 que podem estar causando overflow durante a escrita dos bits. Essencialmente, o passaro de hermes é mais uma ferramenta conceitual do que um produto acabado. Funciona bem para mensagens curtas, imagens de boa qualidade e quando voce controla o fluxo de distribuicao. Para qualquer coisa que exija persistência após compressao agressiva ou transferencia por redes sociais, você vai precisar adicionar camadas extras de correcao de erro ou mudar completamente de estrategia.