
Strumento di steganografia Python per nascondere immagini o testo nelle immagini
Matroshka è uno strumento di steganografia da riga di comando scritto in puro Python. Puoi usarlo per nascondere e crittografare immagini o testo nei bit meno significativi dei pixel di un'immagine.
La crittografia utilizza HMAC-SHA256 per autenticare i dati nascosti. Pertanto la password MAC fornita viene hashata con digest SHA-256 per generare la chiave HMAC-SHA256. Il MAC e i dati del messaggio vengono ulteriormente crittografati utilizzando l'algoritmo XTEA in modalità CFB con 32 iterazioni, prima di essere incorporati nei dati dell'immagine. L'hash SHA-256 per la chiave XTEA viene creato utilizzando i 128 bit di ordine superiore della password fornita. Un seed casuale di 8 byte viene utilizzato nel cifrario a blocchi CFB a 64 bit.
Il seed casuale viene aggiunto al segreto nascosto e viene utilizzato con la password fornita dall'utente per decrittografare il messaggio nascosto utilizzando il cifrario a blocchi XTEA secondo il processo di crittografia. Inoltre, il segreto decrittografato viene autenticato confrontando l'hash hmac incorporato con l'HMAC-SHA256 del messaggio nascosto estratto e la password MAC fornita dall'utente.
Questo è un progetto per divertimento. Non utilizzarlo per scopi di crittografia seri!
Potresti voler installare Matroschka in un virtualenv che abbia Pillow installato. Clona il repository e naviga nella directory principale. Questo è tutto.
pip install Pillow
git clone [email protected]:fgrimme/Matroschka.git
cd Matroschka
Sono supportati solo formati di immagine lossless. Pertanto si consiglia di utilizzare immagini PNG o BMP per nascondere il tuo segreto. Il segreto può essere un file di testo con estensione .txt o un'immagine con estensione .png e formato.
Nota: Se la tua immagine contiene pixel trasparenti, molto probabilmente saranno visibili artefatti dopo aver incorporato i dati. Ciò è causato dalla manipolazione del bit meno significativo in ogni canale di colore dei pixel.
Nascondere il segreto
python matroschka.py -hide -m <password-mac> -k <password> <segreto> <immagine>
Rivelare il segreto
python matroschka.py -open -m <password-mac> -k <password> <immagine>
Esempio
matroschka_medium.png viene nascosto e crittografato in matroschka_big.png
python matroschka.py -hide -m foo -k bar resources/matroschka_medium.png resources/matroschka_big.png
Decrittografando l'immagine verrà salvata l'immagine estratta in resources/secret-image.png
python matroschka.py -open -m foo -k bar resources/matroschka_big.png
GNU General Public License 3.0