StegoPy - أداة إخفاء المعلومات LSB في بيثون

مقدمة


لقد لاحظت مؤخرًا أن الأشخاص في منتدبي أصبحوا مهتمين بموضوع إخفاء المعلومات للنصوص المختلفة في الصور وملفات mp3 ومقاطع الفيديو. وبعد ذلك ، كان لدي فكرة كتابة نص خاص بي لإخفاء النص في الصور. يجب أن أقول قبل ذلك أنني لم أواجه أبدًا كتابة أدوات مماثلة لإخفاء المعلومات.

قبل التعرف على إخفاء معلومات LSB ، فكرت في طرق أخرى ، أو بالأحرى ، توصلت إلى بلدي. لكن لم أكن أملك القوة للتوصل إلى شيء خاص بي وقررت أن أجعله في Google:

LSB هي طريقة إخفاء المعلومات حيث يتم تغيير البتات السفلية لأحد ألوان RGB في البكسل إلى أجزاء من النص المشفر.

ثم تعرفت على مكتبة وسادة للعمل مع الصور والتشفير. والثاني في حالتي كان مطلوبًا لإنشاء تشفير DES ، والذي سيتم ترميزه بعد ذلك في الصورة.

الترميز


لقد نشرت عقلي في GitHub ، لذلك لمزيد من العمل مع StegoPy ، نحتاج فقط إلى استنساخ المشروع مع GitHub:

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

التركيب

ومع ذلك ، كل شيء على النحو المعتاد من حيث التثبيت. الآن دعونا نلقي نظرة على بناء جملة أوامر الإطلاق.

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

باستخدام هذا الأمر ، سنقوم بتشفير النص من ملف data.txt في صورة in.jpg.
ولكن قبل التشفير ، سيُطلب منا التوازن ، والذي يمكن أن يكون من 1 إلى 4. هذا مجرد واحد من أكثر الأشياء إثارة للاهتمام في البرنامج.

ملف in.jpg
صورة الإدخال

ملف data.txt
هذه رسالة خاصة

التوازن هو عدد البتات منخفضة الترتيب الضالعة في إخفاء المعلومات. وهي تتراوح من 1 إلى 4.

وبناءً على ذلك ، كلما زاد التوازن ، كان:

  1. ستشارك وحدات بكسل أقل في الترميز
  2. تغييرات ملحوظة في قنوات الألوان

من هذا يمكننا أن نستنتج أنه كلما كان التوازن أصغر ، زادت موثوقية إخفاء المعلومات وستكون غير مرئية للعين البشرية.

عامل مهم آخر هو أن القناة الزرقاء فقط هي التي تتغير ، وظلالها هي الأقل ملحوظة لأعيننا.

بعد أن قررنا التوازن ، سينشئ البرنامج النصي ملفين إضافيين:

  • out.png - صورة بنص مشفر
  • key.dat - ملف بالمفتاح المطلوب لفك التشفير

File out.png
صورة مع نص

ملف Key.dat
1$960$gxvZH4Q8Gq2qLGeA1aSCXIPRljJlJbihsvSBdzx-wSM=

الترميز

فك التشفير


بناء الجملة للأمر في حالتنا هو:

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

ثم سيُطلب منا المفتاح الذي تلقيناه عند الترميز. بعد فك التشفير ، سيتم حفظ النص الذي تم فك تشفيره في ملف out.txt.

فك التشفير

وكما لاحظت ، فإن صورة الإدخال بتنسيق JPEG ، والإخراج هو PNG. هذا خلل في البرنامج ، والذي سيتم إصلاحه قريبًا وستتاح لك الفرصة لاختيار تنسيق الإخراج.

تم اختبار JPEG و PNG فقط على صورة الإدخال ، ومن الناحية النظرية يجب أن تعمل على الأقل استخدامًا ، مثل bmp وما إلى ذلك.

بالمناسبة ، تصنيف pylint StegoPy في 10/10. نرحب بالتعليقات على الكود والوظائف حيث أخطط لتطوير التطبيق.

المشروع متاح على جيثب

All Articles