
Outil de stéganographie en Python pour dissimuler des images ou du texte dans des images.
Matroschka est un outil de stéganographie en ligne de commande écrit en Python pur. Vous pouvez l'utiliser pour cacher et chiffrer des images ou du texte dans les bits de poids faible des pixels d'une image.
Le chiffrement utilise HMAC-SHA256 pour authentifier les données cachées. Par conséquent, le mot de passe MAC fourni est haché avec SHA-256 pour générer la clé HMAC-SHA256. Le MAC et les données du message sont ensuite chiffrés à l'aide de l'algorithme XTEA en mode CFB avec 32 itérations, avant d'être intégrés dans les données de l'image. Le hachage SHA-256 pour la clé XTEA est créé en utilisant les 128 bits de poids fort du mot de passe fourni. Un seed aléatoire de 8 octets est utilisé dans le chiffrement par blocs CFB 64 bits.
Le seed aléatoire est ajouté au secret caché et est utilisé avec le mot de passe fourni par l'utilisateur pour déchiffrer le message caché en utilisant le chiffrement par blocs XTEA selon le processus de chiffrement. De plus, le secret déchiffré est authentifié en comparant le hachage hmac intégré avec le HMAC-SHA256 du message caché extrait et du mot de passe MAC fourni par l'utilisateur.
Ceci est un projet ludique. Ne l'utilisez pas à des fins de chiffrement sérieuses !
Il est recommandé d'installer Matroschka dans un virtualenv qui a Pillow installé. Clonez le dépôt et naviguez vers le répertoire racine. C'est tout.
pip install Pillow
git clone [email protected]:fgrimme/Matroschka.git
cd Matroschka
Seuls les formats d'image sans perte sont pris en charge. Il est donc recommandé d'utiliser des images PNG ou BMP pour cacher votre secret. Le secret peut être soit un fichier texte avec l'extension .txt, soit une image avec l'extension et le format .png.
Remarque : Si votre image contient des pixels transparents, des artefacts seront probablement visibles après l'incorporation des données. Cela est dû à la manipulation du bit de poids faible dans chaque canal de couleur des pixels.
Cacher un secret
python matroschka.py -hide -m <mac-password> -k <password> <secret> <image>
Révéler un secret
python matroschka.py -open -m <mac-password> -k <password> <image>
Exemple
matroschka_medium.png est caché et chiffré dans matroschka_big.png
python matroschka.py -hide -m foo -k bar resources/matroschka_medium.png resources/matroschka_big.png
Le déchiffrement de l'image enregistrera l'image extraite dans resources/secret-image.png
python matroschka.py -open -m foo -k bar resources/matroschka_big.png
GNU General Public License 3.0