مواضيع عامةمواضيع ومقالات

مقال : حل التحدي السادس من تحديات موقع hackthissite – realistic

تم أرشفة هذا المحتوى


المرحلة: Realistic Level: 6 (ToxiCo Industrial Chemicals)

الصعوبة: صعبة

الرابط: https://www.hackthissite.org/playlevel/6/

المهمة: فك تشفير رسالة ستساعد على إنقاذ البيئة.

 

الرسالة: مرحبا، لدي رسالة مشفرة أريد فك تشفيرها. أنا أعمل في شركة تنشر سمومها ومخلفاتها في النهر، وقد أتى إلينا مفتشو البيئة وكتبوا تقريرا بعدم وجود أي مخلفات تلقى في النهر! أنا متأكد إن هذا غير صحيح، فالنهر بجانب الشركة مليئ بالسموم، وأتوقع إنه قد تم دفع الأموال للمفتشين. بعد تنصتي على الشبكة الداخلية لدينا في الشركة، استطعت الحصول على رسالة مشفرة، ستجدها هنا . هل تستطيع فك تشفيرها؟ أرسلي الرسالة الأصلية إذا استطعت فك التشفير.

اذهب الآن وحاول أن تحل المشكلة. لا تتعدى هذه النقطة إذا كنت تريد حل التحدي بنفسك..


 

التلميح الأول:
جرب أن تُدخل حرفا واحدا بدون كلمة مرور، ماذا تلاحظ؟

 

التلميح الثاني:
أدخل حرفا واحدا بدون كلمة مرور واجمع الثلاث أرقام، ثم أدخل نفس الحرق مع كلمة مرور “a” مثلا، ماذا تلاحظ؟

 

التلميح الثالث:
الرقم الأول + الرقم الثاني + الرقم الثالث = الحرف الأصلي + كلمة السر.

 

الحل:

تستطيع البحث عن اسم الخوارزمية في الانترنت لفهم كيفية عملها، ومن ثم ستكون قادرا على فك تشفيرها. ولكن دعنا أولا نحاول فهم الخوارزمية بدون الإستعانة بأي مصادر خارجية. حاول أن تُدخل الحرف “a” ليتم تشفيره، وأدخل أي كلمة سرية تريد. ستظهر لك 3 أرقام. جرب أن تُدخل حرفان، كـ “ab” ستظهر لك 6 أرقام. أي أن الخوارزمية تقوم بتشفير كل حرف بـ 3 أرقام. الآن أدخل حرف “a” بدون كلمة سرية، ستلاحظ 3 أرقام! حاول أن تجمعهم، سيكون حاصل جمعهم 97 وهو الـ ascii representation للحرف a. جرب إدخال نفس الحرف ولكن ضع كلمة سرية من حرف واحد، “b” مثلا. حين تجمع الثلاث أرقام لن تكون 97 هذه المرة، ولكنها ستكون 195 وهي 97 + 98 (b = 98). إذن نستطيع أن نقول أن

الرقم الأول + الرقم الثاني + الرقم الثالث = الحرف الأصلي + كلمة السر.

إذن، الحرف الأصلي = مجموع الأرقام الثلاثة – كلمة السر.

إذن، كلمة السر = مجموع الأرقام الثلاثة – الحرف الأصلي

فك هذه الشفرة أسهل مما تتوقع، فلست بحاجة لمعرفة كلمة السر لتقوم بفكها.

هناك عدة طرق لفك الشفرة، أحدها الإعتماد على حرف يتكرر كثيرا في اللغة الإنجليزية كـ الحرف “a” مثلا أو المسافة وسنستخدم المسافة (space). المسافة = 32 في ascii representation .

وهذا الجدول يحتوي على الحروف الإنجليزية وما يقابلها من ascii.

hackthissite - realistec - 6 - 1

لنقوم أولا بجمع كل 3 أرقام معا ونضعهم في array. من ثم نقوم بطرح المسافة (32) من  أول رقم (وهو مجموع أول 3 أرقام)، لنحصل على كلمة مرور مُتوقعة. نقوم بتجربة هذه الكلمة على كل الـ array من خلال طرح هذه الكلمة من كل الأرقام، إذا كانت الرسالة مفهومة فهذه هي كلمة المرور الصحيحة، إن لم تكن، نجرب طرح المسافة من الرقم الثاني، وهكذا..

بعد الإنتهاء من فك التشفير أرسل الرسالة بعد فك تشفيرها إلى “ToxiCo_Watch” من خلال الرسائل الداخلية للموقع.

 

ملحق:

تستطيع كتابة الكود بنفسك لحل التحدي، ولكن إن أردت الإستعانة بكود جاهز، هذا اللينك يحتوي على أحد هذه الأكواد (الكود الأول للتشفير، الكود الثاني لفك التشفير):

http://codereview.stackexchange.com/questions/4712/xecryption-encryption-and-decryption-script

 

لماذا اخترنا المسافة؟

المسافة تتكرر كثيرا في الرسائل، فستكون بعد أول كلمة بلا ريب، ولهذا اخترناها. تستطيع اختيار أي حرف آخر، وفي أول ظهور له في الرسالة ستحصل على كلمة السر الصحيحة الخاصة بك.

محمد مجدي

محمد من مصر، يعشق التكنلوجيا وأمن المعلومات. مختبر اختراق ومطور ويب. تويتر: @mhassan772

مقالات ذات صلة

‫6 تعليقات

  1. لقد جربت وأخذت أصغر قيمة لثلاثة أرقام وطرحت 10 الخاص برجوع إلى السطر ووجدت كلمة السر وهي 762.
    والرسالة تبدأ:
    Samuel smith

    Thank you…

  2. اعجبتني فكره تشفير الرساله بالارقام وعلى فكره يمكن كتابه رساله باللغه العربيه ولاكن يحتاج لترتيب جدول

    1. هذا الطريقة مستخدمة عند إستخدام المصفوفات في التشفير, و “شفرة هِّلّْ Hill Cipher ” أنموذج, حيث يتم تقطيع الرسالة الأصلية إلى مصفوفات عمودية (مصفوفات تحتوي على عدد عمودي ثابت وهو عمود واحد وعدد متغير من الصفوف,حيث يعتمد عدد الصفوف على طول الرسالة المقطعة) وذلك إعتمادًا على رتبة المصفوفة (لتحقيق شرط ضرب المصفوفات), ولكي نستطيع إجراء العمليات الحسابية (الضرب تحديدًا) على عناصر مصفوفة الرسالة المقطعة المراد تشفيرها بمصفوفة من رتبة معينة تم إختيارها كمفتاح لتشفير الرسالة المقطعة يتم إستبدال الأبجدية (سواء عربية أو رومانية أو سيريلية إلخ…) بأرقام, وهذا ما يسمى بالترميز.

      الهجوم المستخدم في هذا التحدي هو هجوم معروف في علم تحليل الشفرات وقديم يسمّى “هجوم تحليل التردد” .

      شكرًا لك عزيزي محمد مجدي على التحدي الممتع.

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

زر الذهاب إلى الأعلى