StegoPy - Alat Steganografi LSB dengan Python

Kata pengantar


Baru-baru ini, saya perhatikan bahwa orang-orang di forum saya menjadi tertarik dengan topik steganografi berbagai teks dalam gambar, file mp3 dan video. Dan kemudian saya memiliki ide untuk menulis skrip saya sendiri untuk steganografi teks dalam gambar. Saya harus mengatakan tepat sebelumnya bahwa saya tidak pernah menemukan alat tulis yang serupa untuk steganografi.

Sebelum berkenalan dengan steganografi LSB, saya mempertimbangkan cara lain, atau lebih tepatnya, muncul dengan cara saya sendiri. Tetapi saya tidak memiliki kekuatan untuk menghasilkan sesuatu dengan milik saya sendiri dan saya memutuskan untuk google itu:

LSB adalah metode steganografi di mana bit yang lebih rendah dari salah satu warna RGB dalam piksel diubah menjadi bit teks yang disandikan.

Kemudian saya berkenalan dengan perpustakaan Bantal untuk bekerja dengan gambar dan Kriptografi. Yang kedua dalam kasus saya diperlukan untuk membuat enkripsi DES, yang kemudian akan dikodekan ke dalam gambar.

Coding


Saya memposting gagasan saya di GitHub, jadi untuk pekerjaan lebih lanjut dengan StegoPy kita hanya perlu mengkloning proyek dengan GitHub:

> git clone https://github.com/eBind/StegoPy
> cd StegoPy
> pip3 install -r requirements.txt
> python3 stegopy.py

Instalasi

Namun, semuanya seperti biasa dalam hal pemasangan. Sekarang mari kita lihat sintaks perintah peluncuran.

> python3 stegopy.py -e in.jpg data.txt

Dengan perintah ini, kita akan menyandikan teks dari file data.txt ke dalam gambar in.jpg.
Tetapi sebelum penyandian, kita akan diminta keseimbangan, yang bisa dari 1 hingga 4. Ini hanyalah salah satu hal yang paling menarik dalam program ini.

File dalam.jpg


File data.txt
this is private message

Saldo adalah jumlah bit urutan rendah yang terlibat dalam steganografi. Itu berkisar dari 1 hingga 4.

Dengan demikian, semakin besar keseimbangan, maka:

  1. Lebih sedikit piksel akan terlibat dalam pengkodean
  2. Perubahan nyata dalam saluran warna

Dari sini kita dapat menyimpulkan bahwa semakin kecil keseimbangan, semakin tinggi keandalan steganografi dan itu tidak akan terlihat oleh mata manusia.

Faktor penting lainnya adalah hanya saluran biru yang berubah, warna yang paling tidak terlihat oleh mata kita.

Setelah kami memutuskan saldo, skrip kami akan membuat dua file tambahan:

  • out.png - gambar dengan teks yang disandikan
  • key.dat - file dengan kunci yang diperlukan untuk dekripsi

File out.png


File key.dat
1$960$gxvZH4Q8Gq2qLGeA1aSCXIPRljJlJbihsvSBdzx-wSM=

Coding

Decoding


Sintaks untuk perintah dalam kasus kami adalah:

> python3 ./stegopy.py -d out.png

Kemudian kita akan ditanya kunci yang kita terima saat coding. Setelah decoding, teks yang didekripsi akan disimpan dalam file out.txt

Decoding

Seperti yang Anda perhatikan, gambar input memiliki format JPEG, dan hasilnya PNG. Ini adalah cacat dalam program, yang akan segera diperbaiki dan Anda akan memiliki kesempatan untuk memilih format output.

Hanya JPEG dan PNG yang diuji pada gambar input, secara teoritis itu harus bekerja pada yang kurang digunakan, seperti bmp dan sebagainya.

Omong-omong, pylint memberi peringkat StegoPy di โ€‹โ€‹10/10. Komentar pada kode dan fungsionalitas dipersilahkan saat saya berencana untuk mengembangkan aplikasi.

โ†’ Proyek ini tersedia di GitHub

All Articles