19-10-17, 10:07 AM
بسم الله الرحمن الرحيم
السلام عليكم و رحمة الله و بركاته
نبذة:
تعتبر طرق فن الاختزال (Steganography) من الطرق التي استخدمها
الإنسان قديما في مجال إخفاء البيانات،
وتعود هذه الطريقة إلى أصول يونانية،
حيث تعني كلمة (Stegano) مغطى أو محجوب،
وكلمة (Graphy) تعني رسالة أو كتابة،
أي إمكانية إخفاء البيانات داخل غطاء معين
أخواني الكرام:
في المرفقات Secret Messenger
و عمل البرنامج هو تخزين رسالة نصية داخل صورة كطريقة لتشفير النص
- تقوم فكرة البرنامج على حساب قيمة الحرف في شيفرة ASCII ثم تحويلها للترميز الثنائي
و المعروف من قبل الجميع أن الحرف يخزن في بايت يحتوي على ثمانية بتات
تحتوي بدورها على إحدى القيمتين صفر أو واحد
نخزن كل حرف في ثلاثة بيكسل من الصورة
و المعروف أن أي لون هو مزيج للألوان الرئيسية الثلاثة الأحمر و الأخضر و الأزرق
فإذا اعتبرنا أن كل بيكسل من الصورة يحتوي على الألوان الثلاثة أحمر أخضر أزرق
فعند استخدام ثلاثة بيكسل من الصورة يصبح عندنا تسعة أرقام ثلاثة ألوان لكل بيكسل
و بدلاً من تخزين القيمة الثنائية بثمانية بتات عن طريق الصفر و الواحد
سنخزن القيمة بالثمانية ألوان الأولى عن طريق العدد الفردي و العدد الزوجي
للتوضيح أكثر سأعطيكم مثال عملي:
بفرض أني أريد تخزين الحرف "a" في البكسلات الثلاثة التالية:
(154,73,211) (98,110,39) (16,255,85)
شيفرة "a" في كود ASCII هي بالترميز العشري 97 و بالترميز الثنائي 01100001
يحول البرنامج الألوان الثمانية الأولى لعدد زوجي لذا تصبح البيكسلات الثمانية كالتالي:
(154,72,210) (98,110,38) (16,254,85)
ثم يقوم البرنامج بتخزين التمثيل الثنائي للحرف بالألوان الثمانية الزوجية
بحيث إذا كان الرقم في التمثيل الثنائي 1 يضيف البرنامج 1 للون الذي بموضعه فتكون النتيجة:
(154,73,211) (98,110,38) (16,255,85)
سوف تلاحظ أن الإختلاف في اللون بين قيمة البداية و قيمة النهاية صغير جداً و لا يمكن ملاحظته
و ستكون النتيجة هي الصورة نفسها لكن تحتوي على الرسالة السرية
إذا لم يكن الشرح كافياً فالتعليقات التي بالكود ستوضح الأمر أكثر
هذا و الله أعلم
السلام عليكم و رحمة الله و بركاته
نبذة:
تعتبر طرق فن الاختزال (Steganography) من الطرق التي استخدمها
الإنسان قديما في مجال إخفاء البيانات،
وتعود هذه الطريقة إلى أصول يونانية،
حيث تعني كلمة (Stegano) مغطى أو محجوب،
وكلمة (Graphy) تعني رسالة أو كتابة،
أي إمكانية إخفاء البيانات داخل غطاء معين
أخواني الكرام:
في المرفقات Secret Messenger
و عمل البرنامج هو تخزين رسالة نصية داخل صورة كطريقة لتشفير النص
- تقوم فكرة البرنامج على حساب قيمة الحرف في شيفرة ASCII ثم تحويلها للترميز الثنائي
و المعروف من قبل الجميع أن الحرف يخزن في بايت يحتوي على ثمانية بتات
تحتوي بدورها على إحدى القيمتين صفر أو واحد
نخزن كل حرف في ثلاثة بيكسل من الصورة
و المعروف أن أي لون هو مزيج للألوان الرئيسية الثلاثة الأحمر و الأخضر و الأزرق
فإذا اعتبرنا أن كل بيكسل من الصورة يحتوي على الألوان الثلاثة أحمر أخضر أزرق
فعند استخدام ثلاثة بيكسل من الصورة يصبح عندنا تسعة أرقام ثلاثة ألوان لكل بيكسل
و بدلاً من تخزين القيمة الثنائية بثمانية بتات عن طريق الصفر و الواحد
سنخزن القيمة بالثمانية ألوان الأولى عن طريق العدد الفردي و العدد الزوجي
للتوضيح أكثر سأعطيكم مثال عملي:
بفرض أني أريد تخزين الحرف "a" في البكسلات الثلاثة التالية:
(154,73,211) (98,110,39) (16,255,85)
شيفرة "a" في كود ASCII هي بالترميز العشري 97 و بالترميز الثنائي 01100001
يحول البرنامج الألوان الثمانية الأولى لعدد زوجي لذا تصبح البيكسلات الثمانية كالتالي:
(154,72,210) (98,110,38) (16,254,85)
ثم يقوم البرنامج بتخزين التمثيل الثنائي للحرف بالألوان الثمانية الزوجية
بحيث إذا كان الرقم في التمثيل الثنائي 1 يضيف البرنامج 1 للون الذي بموضعه فتكون النتيجة:
(154,73,211) (98,110,38) (16,255,85)
سوف تلاحظ أن الإختلاف في اللون بين قيمة البداية و قيمة النهاية صغير جداً و لا يمكن ملاحظته
و ستكون النتيجة هي الصورة نفسها لكن تحتوي على الرسالة السرية
إذا لم يكن الشرح كافياً فالتعليقات التي بالكود ستوضح الأمر أكثر
هذا و الله أعلم