
이미지나 텍스트를 이미지에 숨기는 Python 스테가노그래피 도구
Matroshka는 순수 Python으로 작성된 명령줄 스테가노그래피 도구입니다. 이미지 픽셀의 최하위 비트에 텍스트나 이미지를 숨기고 암호화하는 데 사용할 수 있습니다.
암호화는 HMAC-SHA256을 사용하여 숨겨진 데이터를 인증합니다. 따라서 제공된 MAC 암호는 SHA-256 다이제스트로 해시되어 HMAC-SHA256 키를 생성합니다. MAC과 메시지 데이터는 이미지 데이터에 삽입되기 전에 XTEA 알고리즘(CFB 모드, 32회 반복)을 사용하여 추가로 암호화됩니다. XTEA 키에 대한 SHA-256 해시는 제공된 암호의 상위 128비트를 사용하여 생성됩니다. CFB 64비트 블록 암호에는 임의의 8바이트 시드가 사용됩니다.
임의의 시드는 숨겨진 비밀에 추가되며, 사용자가 제공한 암호와 함께 암호화 과정에 따라 XTEA 블록 암호를 사용하여 숨겨진 메시지를 복호화합니다. 또한, 복호화된 비밀은 내장된 HMAC 해시와 추출된 숨겨진 메시지 및 사용자가 제공한 MAC 암호의 HMAC-SHA256을 비교하여 인증됩니다.
이 프로젝트는 재미를 위한 것입니다. 진지한 암호화 목적으로 사용하지 마십시오!
Matroschka를 Pillow가 설치된 virtualenv에 설치할 수 있습니다. 저장소를 클론하고 루트 디렉토리로 이동합니다. 그게 전부입니다.
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