المرحلة: 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

 

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

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