
Инструмент стеганографии на Python для сокрытия изображений или текста в изображениях.
Matroshka — это инструмент стеганографии командной строки, написанный на чистом Python. Вы можете использовать его для сокрытия и шифрования изображений или текста в наименее значащих битах пикселей изображения.
Для шифрования используется HMAC-SHA256 для аутентификации скрытых данных. Поэтому предоставленный MAC-пароль хешируется с помощью дайджеста SHA-256 для создания ключа HMAC-SHA256. MAC и данные сообщения дополнительно шифруются с использованием алгоритма XTEA в режиме CFB с 32 итерациями перед встраиванием в данные изображения. Хеш SHA-256 для ключа XTEA создается с использованием 128 старших бит предоставленного пароля. В блочном шифре CFB с 64-битным блоком используется случайное 8-байтовое начальное значение.
Случайное начальное значение добавляется к скрытому секрету и используется вместе с предоставленным пользователем паролем для расшифровки скрытого сообщения с помощью блочного шифра XTEA в соответствии с процессом шифрования. Затем расшифрованный секрет аутентифицируется путем сравнения встроенного хеша HMAC с HMAC-SHA256 извлеченного скрытого сообщения и предоставленного пользователем MAC-пароля.
Это развлекательный проект. Не используйте его для серьезных целей шифрования!
Возможно, вы захотите установить Matroschka в virtualenv, в котором установлен Pillow. Клонируйте репозиторий и перейдите в корневой каталог. Вот и всё.
pip install Pillow
git clone [email protected]:fgrimme/Matroschka.git
cd Matroschka
Поддерживаются только форматы изображений без потерь. Поэтому рекомендуется использовать изображения PNG или BMP для сокрытия вашего секрета. Секрет может быть текстовым файлом с расширением .txt или изображением с расширением .png и форматом.
Примечание: Если ваше изображение содержит прозрачные пиксели, скорее всего, после встраивания данных будут видны артефакты. Это вызвано манипуляцией наименее значащим битом в каждом цветовом канале пикселя.
Скрыть секрет
python matroschka.py -hide -m <mac-password> -k <password> <secret> <image>
Раскрыть секрет
python matroschka.py -open -m <mac-password> -k <password> <image>
Пример
matroschka_medium.png скрывается и шифруется в matroschka_big.png
python matroschka.py -hide -m foo -k bar resources/matroschka_medium.png resources/matroschka_big.png
Расшифровка изображения сохранит извлеченное изображение в resources/secret-image.png
python matroschka.py -open -m foo -k bar resources/matroschka_big.png
GNU General Public License 3.0