
Ferramenta de esteganografia em Python para ocultar imagens ou texto em imagens.
Matroshka é uma ferramenta de esteganografia de linha de comando escrita em Python puro. Você pode usá-la para ocultar e criptografar imagens ou texto nos bits menos significativos dos pixels de uma imagem.
A criptografia utiliza HMAC-SHA256 para autenticar os dados ocultos. Portanto, a senha MAC fornecida é transformada em hash com o resumo SHA-256 para gerar a chave HMAC-SHA256. O MAC e os dados da mensagem são posteriormente criptografados usando o algoritmo XTEA no modo CFB com 32 iterações, antes de serem embutidos nos dados da imagem. O hash SHA-256 para a chave XTEA é gerado usando os 128 bits de ordem superior da senha fornecida. Uma semente aleatória de 8 bytes é usada no cifrador de bloco de 64 bits CFB.
A semente aleatória é anexada ao segredo oculto e é usada com a senha fornecida pelo usuário para decriptografar a mensagem oculta usando o cifrador de bloco XTEA de acordo com o processo de criptografia. Além disso, o segredo decriptografado é autenticado comparando o hash hmac embutido com o HMAC-SHA256 da mensagem oculta extraída e da senha MAC fornecida pelo usuário.
Este é um projeto divertido. Não use para fins de criptografia sérios!
Você pode querer instalar o Matroschka em um virtualenv que tenha o Pillow instalado. Clone o repositório e navegue até o diretório raiz. É só isso.
pip install Pillow
git clone [email protected]:fgrimme/Matroschka.git
cd Matroschka
Apenas formatos de imagem sem perda são suportados. Portanto, é recomendado usar imagens PNG ou BMP para ocultar seu segredo. O segredo pode ser um arquivo de texto com a extensão .txt ou uma imagem com a extensão e formato .png.
Nota: Se sua imagem contiver pixels transparentes, provavelmente artefatos serão visíveis após a incorporação dos dados. Isso é causado pela manipulação do bit menos significativo em cada canal de cor dos pixels.
Ocultar Segredo
python matroschka.py -hide -m <mac-password> -k <password> <secret> <image>
Revelar Segredo
python matroschka.py -open -m <mac-password> -k <password> <image>
Exemplo
matroschka_medium.png é ocultada e criptografada em matroschka_big.png
python matroschka.py -hide -m foo -k bar resources/matroschka_medium.png resources/matroschka_big.png
Decriptografar a imagem salvará a imagem extraída em resources/secret-image.png
python matroschka.py -open -m foo -k bar resources/matroschka_big.png
GNU General Public License 3.0