🎴 بطاقات تعليمية للمراجعة
عدد البطاقات: 5 بطاقة لهذه الصفحة
ما هي الخطوات الأساسية في خوارزمية تشفير فيجينير (Vigenere Cipher)؟
الإجابة: 1. حساب طول الكلمة المفتاحية (keyword_length). 2. تحويل كل حرف في الكلمة المفتاحية إلى قيمته ASCII (keyword_as_int). 3. تحويل كل حرف في النص الأصلي إلى قيمته ASCII (plaintext_int). 4. لكل حرف في النص الأصلي، حساب القيمة المشفرة: (قيمة حرف النص الأصلي + قيمة الحرف المقابل من المفتاح) % 26. 5. تحويل القيمة المحسوبة إلى حرف وإضافته إلى النص المشفر.
الشرح: تستخدم خوارزمية فيجينير عملية إزاحة متغيرة لكل حرف بناءً على حرف من كلمة مفتاحية، مما يجعلها أقوى من شيفرة قيصر البسيطة.
تلميح: ركز على العملية الحسابية التي تجمع بين حرف النص الأصلي وحرف المفتاح، وتذكر استخدام عملية modulo.
التصنيف: صيغة/خطوات | المستوى: متوسط
ما هي الخطوات الأساسية في خوارزمية فك تشفير فيجينير (Vigenere Decrypt)؟
الإجابة: 1. حساب طول الكلمة المفتاحية (keyword_length). 2. تحويل كل حرف في الكلمة المفتاحية إلى قيمته ASCII (keyword_as_int). 3. تحويل كل حرف في النص المشفر إلى قيمته ASCII (ciphertext_int). 4. لكل حرف في النص المشفر، حساب القيمة الأصلية: (قيمة حرف النص المشفر - قيمة الحرف المقابل من المفتاح) % 26. 5. تحويل القيمة المحسوبة إلى حرف وإضافته إلى النص الأصلي.
الشرح: لفك تشفير رسالة مشفرة باستخدام فيجينير، يجب استخدام نفس الكلمة المفتاحية وتطبيق العملية العكسية (الطرح) على كل حرف.
تلميح: تذكر أن عملية فك التشفير هي عكس عملية التشفير، حيث يتم الطرح بدلاً من الجمع.
التصنيف: صيغة/خطوات | المستوى: متوسط
ما هو دور عملية modulo 26 في خوارزمية فيجينير؟
الإجابة: تضمن عملية modulo 26 أن القيمة المحسوبة بعد الجمع (في التشفير) أو الطرح (في فك التشفير) تظل ضمن نطاق الحروف الأبجدية الإنجليزية الكبيرة (A-Z)، والتي تمثلها القيم من 0 إلى 25. فهي تعيد القيمة إلى بداية النطاق إذا تجاوزت 25.
الشرح: بدون عملية modulo، قد تنتج القيمة المحسوبة رقماً لا يتوافق مع أي حرف أبجدي، مما يؤدي إلى خطأ. عملية modulo تضمن أن الناتج دائماً بين 0 و 25.
تلميح: فكر في عدد الحروف الأبجدية الإنجليزية وكيفية بقاء الناتج ضمن هذا العدد.
التصنيف: مفهوم جوهري | المستوى: صعب
ما هو الغرض من استخدام الكلمة المفتاحية (keyword) في تشفير فيجينير؟
الإجابة: تحدد الكلمة المفتاحية نمط الإزاحة المتغيرة التي تطبق على كل حرف من أحرف النص الأصلي. كل حرف في الكلمة المفتاحية يحدد مقدار الإزاحة للحرف المقابل في النص، مما يجعل الشيفرة مقاومة لتحليل التكرارات أكثر من الشيفرات ذات الإزاحة الثابتة.
الشرح: استخدام كلمة مفتاحية يجعل كل حرف في النص المشفر يعتمد على حرفين: حرف النص الأصلي وحرف المفتاح، مما يزيد من صعوبة كسر الشيفرة.
تلميح: فكر في كيف أن استخدام كلمة بدلاً من رقم ثابت يجعل التشفير أكثر تعقيداً.
التصنيف: مفهوم جوهري | المستوى: متوسط
لماذا يتم إضافة القيمة 65 إلى المتغير 'value' قبل تحويله إلى حرف في كود Python؟
الإجابة: لأن القيمة المحسوبة من عملية modulo تكون بين 0 و 25، والتي تمثل مواضع الحروف في الأبجدية (A=0, B=1, ... Z=25). القيمة 65 هي القيمة ASCII للحرف 'A' الكبير. بإضافة 65 إلى القيمة المحسوبة، نحصل على القيمة ASCII للحرف الأبجدي الصحيح (65 لـ A، 66 لـ B، وهكذا).
الشرح: هذه الخطوة ضرورية لتحويل الرقم الذي يمثل موضع الحرف (0-25) إلى القيمة الرقمية الصحيحة التي يتعرف عليها الكمبيوتر كحرف أبجدي (A-Z).
تلميح: تذكر أن دالة chr() في Python تحتاج إلى قيمة ASCII لتعيد الحرف المقابل.
التصنيف: تفكير ناقد | المستوى: صعب