FnStegoCrypt dados encriptados em imagens.
Funcionalidades principais
O programa possui as seguintes capacidades principais:
- Geração de Sal e Derivação de Chave:
- Utiliza uma combinação de PBKDF2-HMAC com SHA-256 para derivar uma chave segura a partir de uma senha fornecida.
- Gera um salt aleatório para aumentar a segurança da derivação da chave.
- Criptografia AES-GCM:
- Os dados são criptografados com o algoritmo AES-GCM, que oferece confidencialidade e autenticação integrada dos dados.
- Ocultação de Dados em Imagens:
- Utiliza os bits menos significativos (LSBs) dos pixels para armazenar informações sem comprometer a qualidade visível da imagem.
- Verificação de Integridade:
- Gera um hash SHA-256 dos dados originais e o embute junto com os dados criptografados, permitindo verificar se os dados foram corrompidos.
- Suporte a Diversos Formatos de Imagem:
- Suporta formatos comuns como PNG e JPEG, além de imagens no formato HEIF e HEIC.
- Processamento em Massa:
- Permite processar múltiplas imagens em um diretório de forma eficiente utilizando threads.
Vídeo exemplo FnStegoCrypt.
Estrutura do Programa
Classe ImprovedSteganography
Essa classe é o núcleo do programa e contém os métodos responsáveis por todas as operações de esteganografia e criptografia:
-
generate_salt
: Gera um salt aleatório. -
_derive_key
: Deriva uma chave segura a partir de uma senha usando PBKDF2. -
encrypt_data
edecrypt_data
: Realizam a criptografia e descriptografia dos dados usando AES-GCM. -
hash_data
: Calcula o hash SHA-256 dos dados para garantir integridade. -
check_image_capacity
: Verifica se a imagem tem capacidade suficiente para armazenar os dados. -
hide_data_in_image
: Insere os dados criptografados na imagem. -
extract_data_from_image
: Recupera os dados escondidos da imagem.
Fluxo do Programa
- Modo de Escrita (Ocultar Dados):
- O usuário escolhe um arquivo de imagem ou um diretório.
- Lê os dados de um arquivo de texto e os criptografa.
- Insere os dados criptografados na imagem e salva uma nova versão da imagem.
- Modo de Leitura (Extrair Dados):
- O usuário fornece uma imagem com dados ocultos e a senha correspondente.
- O programa extrai e verifica os dados criptografados, realiza a descriptografia e os retorna ao usuário.
Principais Tecnologias Utilizadas
- Biblioteca
cryptography
:- Utilizada para criptografia e derivação de chave.
- Biblioteca
Pillow
:- Usada para manipulação de imagens.
-
NumPy
:- Fornece operações eficientes para manipular arrays de pixels.
-
concurrent.futures
:- Permite processamento paralelo para otimizar operações em lotes.
Exemplos de Uso
Escondendo Dados em Uma Imagem
- O programa solicita a senha e o caminho de uma imagem e de um arquivo de texto.
- Encripta o conteúdo do arquivo de texto com a senha fornecida.
- Esconde os dados criptografados na imagem e salva a imagem resultante em um diretório de saída.
Extraindo Dados de Uma Imagem
- O usuário fornece a imagem esteganografada e a senha.
- O programa verifica a integridade dos dados e os descriptografa.
- Retorna os dados ao usuário, que pode optar por visualizá-los ou salvá-los em um arquivo.
Considerações Finais
O FnStegoCrypt é uma ferramenta poderosa para aplicações que exigem discrição e segurança na transmissão de informações. Seu uso de algoritmos de ponta, como AES-GCM e SHA-256, aliado à capacidade de trabalhar com múltiplos formatos de imagem, torna-o ideal para cenários onde a proteção de dados é essencial.
Caso tenha interesse em contribuir para melhorias, fique à vontade para explorar o código e adaptá-lo às suas necessidades.
Gostou de Ler este Artigo?
Aqui estão alguns artigos relacionados que você pode gostar de ler: