التشفير المتناظر و طُرق مهاجمته Symmetric Encryption Attacks

مرحباً بك في مدونة علوم، قبل أن تبدأ إن لم تكُن تملك الفكرة المبدئية عن التشفير أوصيك بالإطلاع على تدوينة 5 أساسيات يجب أن تعلمها عن التشفير ثم مواصلة القراءة عن التشفير المتناظر و طرق مهاجمته. سأذكر في هذه التدوينة فكرة بسيطة عن التشفير المتناظر مع التركيز على طرق مهاجمة التشفير المتناظر.

إذا أردت إرسال رسالة “سرية” إلى صديق و رغبت في إخفائها عن الأعين و ضمان أنها ستكون سرية إلى أقصى درجة فلا بد لك أن تستخدم طريقة من طرق التشفير، بالتأكيد سوف تستخدم التشفير المتناظر لأن هذا هو موضوع التدوينة 🙂 .

الفكرة المبسطة للتشفير المتناظر هي أن تأخذ رسالتك لتُدخلها في صندوق سرّي ثُم تُغلقه بمفتاح خاص. أرسل الصندوق إلى صديقك ، وأرسل المفتاح الخاص بالصندوق و لكن سراً دون أن يراه أي أحد. بحيث يستطيع صديقك – و صديقك فقط – فتح الصندوق عند إستلام المفتاح السري. بنهاية هذه الجملة هل أحسست كم هي رسالتُك بأمان؟

سيناريو مباشر

عندما نحول هذا المفهوم إلى مفاهيم أمن المعلومات، فسنفترض أن لدى (عنتر) نصاً يرغب في إرساله إلى شخص ما (عبلة) دون أن يطلع عليه أي شخص (كاسر). فيدخل عنتر هذا النص في خوارزمية تشفير و يدخل في هذه الخوارزمية مفتاحهُ الخاص  -تذكر هذا المفتاح- حتى ينتج شفرة لن يستطيع فهمها كاسر.
يرسل عنتر هذه الشفرة إلى عبلة عن طريق قناة غير آمنة، فالرسالة مشفرة و لو رآها كاسر لن يفهمها 🙂 و لكن يحرص كل الحرص على إرسال المفتاح بطريقة آمنة بينه و بين عبلة فقط دون أن يستطيع أي شخص الإطلاع عليه، فالمفتاح هو الطريقة الطبيعية لتحويل الشفرة إلى نص عادي مرة أخرى.
عندما تستلم عبلة المفتاح و الرسالة فإنها تستطيع تحويل الشفرة مرة أخرى إلى نص و تقرأ ما أرسله عنتر.

التشفير المتناظر و طرق مهاجمته


في التشفير المُتناظر قد يكون مفتاح السري عبارة عن حرف/رقم واحد أو سلسلة من الأرقام. حيث أن هذا المفتاح يستخدم في التشفير و فك التشفير أيضاً. و يستخدم هذا المفتاح بين طرفين . طرفين فقط لا غير. لذا سمي بالتشفير المتناظر.

بحيث أنهُ إذا أراد عنتر التواصل مع أكثر من شخص فإنه يحتاج إلى مفاتيح سرية بعدد الأشخاص الذين يتواصل معهم، بمعنى إذا كان لديك مجموعة من الناس عددهم جـ و جميعهم يجب أن يتواصل مع بعض فإن عدد المفاتيح التي يحتاجونها للتواصل يساوي (جـ × جـ – 1) ÷ 2  ـ × (جـ – 1) ÷ 2.

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

مبدأ كرتشوف Kerckhoff

وفقاً لمبدأ كرتشوف يجب عليك أن تفترض دوماً أن المُهاجم يعرف مسبقاً خوارزميتا التشفير و فك التشفير، و أن تكون مقاومة خوارزمية و قوتها في صعوبة الوصول إلى مفتاح التشفير فقط. و هذا يجعل الإهتمام منصب كلياً على جعل المفتاح السري للخوارزمية صعباً جداً في الوصول إليه و محاولة مهاجمته. و ستجد أن هذا المبدأ معتمد عليه بصورة كبيرة في خوارزميات التشفير.

طرق مهاجمة التشفير المتناظر – تحليل الشفرات Cryptanalysis

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

توجد أربع طرق للهجوم نستعرضها فيما يلي

هجوم الشفرة فقط Ciphertext-only attack

هجوم الشفرة فقط

في هذا النوع من الهجوم نفترض أن المُهاجم يعلم مسبقاً الخوارزمية المُستخدمة و يستطيع الحصول على الشفرات بعد إرسالها من قبل عنتر و قبل وصولها إلى عبلة، ثم يقوم بفك تشفيرها و معرفة النص الأصلي. بكل تأكيد يعتبر هذا النوع من الهجوم من أكثر الأنواع شيوعاً، و للتصدي لهذا النوع من الهجوم يجب أن تكون مقاومة الخوارزمية لفك تشفير النص عالية جداً.


طرق تنفيذ الهجوم باستخدام الشفرة فقط الشفرة فقط

توجد ثلاث طرق لتنفيذ الهجوم بإستخدام الشفرة فقط:

  1. القوة الغاشمة Brute-force: بما أن المهاجم كما ذكرنا يعلم الخوارزمية و يملك الشفرة، فإنه يحتاج فقط إلى المفتاح حتى يفك الشفرة، في هذه الطريقة يعتمد المهاجم على تجربة جميع المفاتيح المحتملة، معتمداً على تحديد المفاتيح المحتملة من معرفته للخوارزمية، فكل خوارزمية لها مدى مفاتيح محدد، مثلاً إذا كانت الخوارزمية تستخدم رقما واحداً كمفتاح فإن مدى المفاتيح هو من 0 إلى 9 (أي عشرةُ أرقام فقط!!) و هذا بكل تأكيد يسهل مهمة المهاجم، و إذا كان مدى المفاتيح حرف واحد إنجليزي، فإن مدى المفاتيح هو من A إلى Z (أي 26 حرف!!) عدد أكبر و لكن ما زالت الخوارزمية سهلة جداً للكسر.
  2. التحليل الإحصائي: لكل لغة من اللغات خصائص خاصة بها من حيث التكرار، سواءً كان هذا التكرار من حيث عدد الأحرف أو عدد الكلمات الثنائية أو الثلاثية أو الرباعية و هكذا. في التحليل الإحصائي يحلل المهاجم الشفرة التي تحصل عليها و يحاول معرفة الأحرف الأكثر تكراراً أو معرفة الكلمات الأكثر تكراراً و هكذا حتى يصل إلى ماذا؟ ليس إلى النص الأصلي و إنما إلى المفتاح الذي يفك الشفرة.
    يقاوم هذا النوع من الهجوم عن طريق إخفاء الملامح الإحصائية من الشفرة، فمثلاً إذا كان تشفير حرف الميم هو الراء ، فيجب أن لا يكون تكرار حرف الراء مساوياً لتكرار حرف الميم.
  3. الهجوم بإستخدام النمط: تستطيع بعض الخوارزميات إخفاء الملامح الإحصائية للغات، و لكن الخوارزمية نفسها تولّد نمطاً معيناً عن طريقه يستطيع المهاجم الوصول إلى النص الأصلي، مثلاً إذا كانت الخوارزمية تشفر حرف الميم الأول إلى 1 و الثاني إلى 2 و الثالث إلى 3. فهذا تسلسل نمطي واضح يستطيع المهاجم تحليله للوصول إلى النص الأصلي. و للتغلب على هذا النوع من الهجوم يجب أن تخفي الخوارزمية كل الملامح النمطية من النص المشفر. بمعنى أن يكون عشوائياً إلى أقصى درجة.

هجوم النص المعروف known-plaintext attack

هجوم النص المعروف

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

أصبح كاسر يملك الشفرة و الرسالة و لكنه لا يعرف المفتاح، ثم أرسل عنتر رسالة أخرى إلى عبلة و استطاع كاسر الحصول على الشفرة أيضا. حينئذٍ يملك كاسر شفرة و النص المقابل لها، و يملك شفرة بدون نص و يرغب بالحصول على النص. هنا يستطيع كاسر إستخدام هجوم النص المعروف و الذي يبنى على تحليل النص و الشفرة المقابلة لها و المعروفة لدى المهاجم و إستخدامها في فك الشفرات الجديدة. تعتبر هذه الطريقة سهلة جداً في الوصول إلى النص الأصلي و لكن تكمُن صعوبتها إذا كان عنتر من الذكاء إذا غير المفتاح السري و أرسله لعبلة دون أن يدري كاسر :).

 

هجوم النص المُختار chosen-plaintext attack

هجوم النص المُختار

إذا كان كاسر صديقاً لعنتر، حصل كاسر على شفرة رسالة أرسلها إلى عبلة ثم ذهب إلى عنتر في مكتبه و طلب منه إستخدام حاسبه الخاص، و إستخدم كاسر حاسب عنتر ليُشفّر بعض النصوص التي إختارها بعناية بإستخدام الخوارزمية الموجودة على حاسب عنتر. بعد أنك أكمل كاسر عملية التشفير أصبح يملك نصوص قد إختارها و الشفرات المُقابلة لها.

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

 

هجوم الشفرة المُختارة chosen-ciphertext attack

هجوم الشفرة المُختارة

يُشابه هُجوم الشفرة المُختارة هجوم النص المُختار غير أنه بدلاً عن الحصول على صلاحية التشفير في جهاز المُرسل عنتر، يحتاج المُهاجم صلاحية الوصول إلى خوارزمية فك التشفير لدى المُستقبل. حيث يقوم كاسر بإختيار عدة شفرات و يذهب بها إلى عبلة و يطلب إستخدام حاسبها، ثُم يفك شفرات عدة رسائل ( ما عدا الرسالة المُرسلة من عنتر !! لماذا؟ حاول معرفة الإجابة) حيث تُساعده هذه الرسائل و الشفرات في فك الشفرة التي يملكها.
حيثُ ذكرت لك هذه الأربع طرق لتحليل الشفرات، هناك تساؤل أترُكهُ لك، في هجومي النص المُختار و الشفرة المُختارة، ما دام كاسر قد ملك صلاحية الوصول إلى حاسبي عنتر و عبلة، لماذا لم يحصُل على المفتاح السري فقط؟!!
أتمنى رؤية إجابتك في التعليقات و أن تكون قد إستمتعت بوقتك في تعلم التشفير المتناظر وطرق مهاجمته.

اقرأ عن:

خوازرمية تشفير افيني

حكومات سعيدة بهجمات أنونيموس!


قد يعجبك أيضا

خوارزمية التشفير بالإستبدال بالأبجدية الموحدة | Substitution Monoalphbetic Cipher

خوارزمية التشفير بالإستبدال بالأبجدية الموحدة | Substitution Monoalphbetic Cipher
ما رأيك؟ اترك تعليقاً أدناه


  1. كيف يرسل عنتر مفتاح فك التشفير الى عبله بمعنى ارسل رسالة بريد الكتروني الى عبله كيف تتم ارسال المفاتيح الى عبله من عنتر ؟؟؟

  2. السلام عليكم لو سمحت لدي شفره، واريد مساعدتك في حلها إذا سمحت؟
    كيف اعرف اذا كان المفتاح رقم او حرف؟

  3. شكرًا لك, شرح وافي وواضح جدًا
    اتضحت لدي الصورة الآن 🙂

    + لدي ملاحظة على عدد المفاتيح ذكرت: (جـ × جـ – 1) ÷ 2.
    أليس من المفترض أن تكون جـ * (جـ – 1) ÷ 2 ؟

    وجُوزيت خيرًا

    1. الشُّكر لك أخي أحد-و اعذرني إن أخطأت النطق- على تعليقك الرائع،

      ملاحظتك صحيحة 100% و لك يُنسب الفضل في تصحيح هذا السهو. تم تصحيحهُ بالتدوينة جزاك الله كل خير و أسال الله لك التوفيق الدائم.

  4. لأنه يريد تحليل مدى مفتاح الخوارزمية لجهاز عبلة ويمكنه ذلك من قراءت كل النصوص المشفرة في جهاز عبلة لأنه اصبح يعرف مدى خوازميات جهازها وشكرا على الشرح والمعلومات وعلى مجهوداتكووووووو………….

{"email":"البريد الالكتروني غير صحيح","url":"رابط الموقع غير صحيح","required":"بعض الحقول المطلوبة لم تتم تعبئتها"}

نجاح!

تنبيه!

خطأ!