
Herramienta de esteganografía en Python para ocultar imágenes o texto en imágenes.
Matroshka es una herramienta de esteganografía de línea de comandos escrita en Python puro. Puedes usarla para ocultar y cifrar imágenes o texto en los bits menos significativos de los píxeles de una imagen.
El cifrado utiliza HMAC-SHA256 para autenticar los datos ocultos. Por lo tanto, la contraseña MAC proporcionada se hashea con el resumen SHA-256 para generar la clave HMAC-SHA256. El MAC y los datos del mensaje se cifran adicionalmente utilizando el algoritmo XTEA en modo CFB con 32 iteraciones, antes de incrustarse en los datos de la imagen. El hash SHA-256 para la clave XTEA se crea utilizando los 128 bits de orden superior de la contraseña proporcionada. Se utiliza una semilla aleatoria de 8 bytes en el cifrador de bloques de 64 bits CFB.
La semilla aleatoria se añade al secreto oculto y se utiliza con la contraseña proporcionada por el usuario para descifrar el mensaje oculto usando el cifrador de bloques XTEA según el proceso de cifrado. Además, el secreto descifrado se autentica comparando el hash hmac incrustado con el HMAC-SHA256 del mensaje oculto extraído y la contraseña MAC proporcionada por el usuario.
Este es un proyecto divertido. ¡No lo uses para propósitos serios de cifrado!
Puede que quieras instalar Matroschka en un virtualenv que tenga Pillow instalado. Clona el repositorio y navega al directorio raíz. Eso es todo.
pip install Pillow
git clone [email protected]:fgrimme/Matroschka.git
cd Matroschka
Solo se admiten formatos de imagen sin pérdida. Por lo tanto, se recomienda usar imágenes PNG o BMP para ocultar tu secreto. El secreto puede ser un archivo de texto con extensión .txt o una imagen con extensión y formato .png.
Nota: Si tu imagen contiene píxeles transparentes, es probable que se vean artefactos después de incrustar datos. Esto es causado por la manipulación del bit menos significativo en cada canal de color de los píxeles.
Ocultar secreto
python matroschka.py -hide -m <mac-password> -k <password> <secret> <image>
Revelar secreto
python matroschka.py -open -m <mac-password> -k <password> <image>
Ejemplo
matroschka_medium.png se oculta y cifra en matroschka_big.png
python matroschka.py -hide -m foo -k bar resources/matroschka_medium.png resources/matroschka_big.png
Al descifrar la imagen se guardará la imagen extraída en resources/secret-image.png
python matroschka.py -open -m foo -k bar resources/matroschka_big.png
GNU General Public License 3.0