المفاهيم الأساسية والمصطلحات
التشفير (من اليونانية: "كتابة سرية") هو علم وفن تحويل الرسائل لجعلها آمنة ومحصنة ضد الهجمات. احفظ هذه التعريفات جيدًا - تظهر في كل اختبار.
+ المفتاح
(نص مشفر)
+ المفتاح
(اتجاه القراءة من اليمين لليسار)
نصيحة اختبار: ماذا يحمي التشفير؟
التشفير يحمي السرية (Confidentiality) (بالتشفير) والسلامة (Integrity) (بالتجزئة). لا يحمي التوفر (Availability) - هجوم الحرمان من الخدمة (DoS) يمكن أن يعطل خدمة مشفرة.
مبدأ كيرشوف (Kerckhoffs's Principle)
قاعدة أساسية في التشفير تتبعها جميع أنظمة التشفير الحديثة.
القاعدة الأساسية
يجب أن تكون الخوارزمية آمنة حتى لو عرف الجميع كيف تعمل. يجب أن يعتمد أمان نظام التشفير فقط على سرية المفتاح - وليس على سرية الخوارزمية.
الخوارزمية - أي شخص (بما في ذلك المهاجمين) يمكنه معرفتها.
فقط المفتاح يبقى سريًا. مقاومة الشيفرة تعتمد كليًا على سرية المفتاح.
معيار AES (التشفير المتقدم) عام بالكامل - أي شخص يمكنه قراءة الخوارزمية. ما يجعل بياناتك آمنة هو المفتاح 256 بت الذي تعرفه أنت فقط. هذا هو مبدأ كيرشوف في التطبيق.
تصنيف أنظمة التشفير
تصنف أنظمة التشفير وفق ثلاث أبعاد مستقلة:
🔑 حسب عدد المفاتيح
- نفس المفتاح للتشفير وفك التشفير → متماثل (Symmetric)
- مفاتيح مختلفة للتشفير وفك التشفير → غير متماثل (Asymmetric)
🔄 حسب نوع العملية
- إحلال (Substitution) - كل عنصر (حرف/بت) يُستبدل بعنصر آخر
- تبديل (Transposition) - إعادة ترتيب العناصر، دون استبدال
📦 حسب معالجة النص العادي
- Block Cipher - يعالج كتلة واحدة من المدخلات في كل مرة
- Stream Cipher - يعالج المدخلات بتًا بتًا
طرق التشفير التقليدية
🏛️ شيفرة قيصر (إحلال)
استخدمها يوليوس قيصر في القرن الأول قبل الميلاد. شيفرة قيصر هي إزاحة (shift) الحروف بعدد معين من المواضع. ناتج الإزاحة ينتج عنه الحرف المشفر.
الصيغة: التشفير: E(x) = (x + n) mod 26 | فك التشفير: D(x) = (x − n) mod 26
| النوع | النص |
|---|---|
| النص العادي | "attack at dawn" |
| النص المشفر (إزاحة 14) | "OHHOQY OH ROKB" |
E(a) = (1+14) mod 26 = 15 = "o" | D(O) = (15−14) mod 26 = 1 = "a"
🔁 ROT13 (حالة خاصة من قيصر)
شيفرة إحلال شائعة حيث كل حرف يُستبدل بالحرف الذي يليه ب 13 موضعًا. تطبيق ROT13 مرتين يعيد النص الأصلي. هناك 26! ≈ 4×10²⁶ احتمال ممكن للإحلال الأحادي.
النص العادي: "نحب جامعة الأمير سلطان" → النص المشفر: "بحب جامعخ الأيير سطخان" (كل حرف مُزاح 13 موضعًا)
🔡 شيفرة فيجنير (إحلال متعدد الأبجديات)
تستخدم كلمة مفتاحية تتكرر لتطابق طول النص العادي. كل حرف يُزاح بمقدار الحرف المقابل في الكلمة المفتاحية - مما يجعل تحليل التردد أصعب بكثير من قيصر.
| الحقل | القيمة |
|---|---|
| النص العادي | GEEKSFORGEEKS |
| الكلمة المفتاحية | AYUSH (تتكرر → AYUSHAYUSHAYU) |
| النص المشفر | GCYCZFMLYLEIM |
التشفير: الصفوف = نص عادي، الأعمدة = مفتاح → التقاطع = النص المشفر. فك التشفير: الصفوف = مفتاح، ابحث عن النص المشفر، العمود = النص العادي.
📋 لوحة المرة الواحدة (غير قابلة للكسر!)
اخترعت في 1917 بواسطة جوزيف ماوبورن وجيلبرت فيرنام. تستخدم كتلة من مفاتيح إزاحة عشوائية تمامًا (k₁, k₂, …, kₙ) - مفتاح لكل حرف - يتم اختيارها بشكل عشوائي منتظم.
بما أن كل إزاحة عشوائية، كل نص مشفر متساوي الاحتمال لأي نص عادي. هذا يجعلها غير قابلة للكسر على الإطلاق - الشيفرة الوحيدة المثالية نظريًا.
لماذا ليست عملية
يجب أن يكون المفتاح بطول الرسالة، عشوائيًا حقًا، لا يُعاد استخدامه أبدًا، ويتم مشاركته بأمان - مما يجعلها غير عملية لمعظم الاستخدامات الواقعية.
↔️ شيفرة التبديل (Transposition)
بدلاً من استبدال الأحرف، شيفرات التبديل تعيد ترتيب مواضع الأحرف دون تغيير الأحرف نفسها. الأحرف تبقى كما هي - فقط ترتيبها يتغير.
النص العادي: HELLO ← أعيد ترتيبه بنمط مفتاحي → النص المشفر: LLEHO. تحليل التردد لن يفيد لأن ترددات الحروف محفوظة.
التشفير المتماثل مقابل غير المتماثل
🔐 التشفير المتماثل
مفتاح سري مشترك واحد يستخدم لكل من التشفير وفك التشفير. يجب أن يكون لدى كل من المرسل والمستقبل نفس المفتاح.
- سريع - أسرع بحوالي 30,000 مرة من غير المتماثل
- توزيع المفاتيح هو التحدي الأكبر
- DK(EK(P)) = P (فك تشفير النص المشفر يعيد النص العادي)
- يُسمى أيضًا: تشفير المفتاح الخاص، التقليدي، المفتاح السري
🗝️ المفتاح المشترك
🗝️ المفتاح المشترك
🔑 التشفير غير المتماثل (بالمفاتيح العامة)
مفتاحان منفصلان: مفتاح عام (ينشر للجميع) ومفتاح خاص (يُحفظ سريًا). يُستخدم للسرية، التوثيق، أو كلاهما.
- المفتاح العام = يُقفل (يشفر)
- المفتاح الخاص = يفتح (يفك التشفير)
- أبطأ من المتماثل - لكنه يحل مشكلة توزيع المفاتيح
- يعتمد على دوال الباب الخلفي أحادية الاتجاه (مثل تحليل الأعداد الأولية الكبيرة)
التشفير بـ المفتاح العام للمستقبل → فك التشفير بـ المفتاح الخاص للمستقبل. التوقيع بـ المفتاح الخاص للمرسل → التحقق بـ المفتاح العام للمرسل.
| الميزة | متماثل | غير متماثل |
|---|---|---|
| المفاتيح | مفتاح سري مشترك واحد | مفتاحان: عام + خاص |
| السرعة | أسرع بـ 30,000 مرة | أبطأ بكثير |
| توزيع المفاتيح | صعب / مشكلة | سهل (المفتاح العام منشور) |
| الاستخدامات | تشفير البيانات الضخمة | تبادل المفاتيح، التوقيعات الرقمية |
| نصيحة اختبار | مشكلة التشفير المتماثل = توزيع آمن للمفاتيح (من اختبار سابق) | |
س: ما هي مشكلة التشفير بالمفتاح المتماثل؟
أ) إنه أبطأ من التشفير بالمفتاح غير المتماثل
ب) معظم الخوارزميات تبقى خاصة
ج) عامل العمل ليس دالة لحجم المفتاح
د) التوزيع الآمن للمفتاح السري ✅
س: في التشفير بالمفاتيح العامة…
أ) فقط المفتاح الخاص يمكنه التشفير وفقط المفتاح العام يمكنه فك التشفير
ب) فقط المفتاح العام يمكنه التشفير وفقط المفتاح الخاص يمكنه فك التشفير
ج) المفتاح العام يستخدم للتشفير وفك التشفير
د) إذا قام المفتاح العام بالتشفير، فإن المفتاح الخاص فقط يمكنه فك التشفير ✅
دوال التجزئة (Hash Functions)
دالة التجزئة هي دالة رياضية خاصة تؤدي تشفيرًا أحادي الاتجاه. بمجرد المعالجة، لا توجد طريقة عملية لاستعادة النص العادي من مخرج التجزئة.
أحادية الاتجاه
لا يمكن عكس التجزئة لاسترجاع النص العادي الأصلي. النص العادي → التجزئة سهل؛ التجزئة → النص العادي مستحيل عمليًا.
مخرج بطول ثابت
ملخص الرسالة (قيمة التجزئة) له طول ثابت بغض النظر عن حجم المدخل. "HELLO" وملف بحجم 10 جيجابايت ينتجان نفس طول التجزئة.
لا يوجد تجزئتان متطابقتان
من الناحية المثالية، لا توجد طريقة عملية لتوليد نصين عاديين مختلفين ينتجان نفس التجزئة. عندما يحدث هذا، تُسمى هجمة تصادم (collision attack).
الاستخدامات الشائعة للتجزئة
- تخزين كلمات المرور في الحاسوب (لا تخزن كلمات المرور كنص عادي أبدًا)
- ضمان سلامة الرسالة (اكتشاف العبث)
- رمز مصادقة الرسالة (MAC) - تجزئة + مفتاح سري للتحقق من السلامة والصحة
- التوقيعات الرقمية (تجزئة الرسالة، ثم توقيع التجزئة)
لماذا MAC؟
دوال التجزئة عامة - أي شخص يمكنه تشغيلها. لذا نحتاج مفتاحًا سريًا مدمجًا مع التجزئة لإنشاء MAC، لإثبات من أرسل الرسالة وأنها لم تُعبث.
🔐 SHA - خوارزمية التجزئة الآمنة
طورتها NSA ووافقت عليها NIST كمعيار فيدرالي.
| الإصدار | السنة | حجم المخرج | الحالة |
|---|---|---|---|
| SHA-1 | 1993 | 160 بت | ⚠️ عرضة لهجمات التصادم - تجنب |
| SHA-2 | 2002 | SHA-256 أو SHA-512 | ✅ أكثر أمانًا من SHA-1 |
| SHA-3 | 2015 | 224, 256, 384, أو 512 بت | ✅ أحدث معيار من NIST |
📋 MD - Message Digest
| الإصدار | السنة | المخرج | ملاحظات |
|---|---|---|---|
| MD2 | 1989 | 128 بت | عرضة للخطر بدون checksum |
| MD4 | 1990 | 128 بت | سريع لكنه عرضة للعديد من الهجمات |
| MD5 | 1991 | 128 بت | يعتمد على MD4 لكنه أكثر أمانًا؛ أبطأ قليلاً |
هجمة التصادم (Collision Attack)
هجمة التصادم تجد رسالتين مختلفتين تعطيان نفس قيمة التجزئة - فقدان السلامة. SHA-1 و MD5 معروفان بأنهما عرضة للخطر. استخدم SHA-256 أو أعلى.
الهجمات على أنظمة التشفير
هدف المهاجم هو استرجاع المفتاح (وليس الرسائل الفردية فقط)، مما يعرض كل النصوص المشفرة المستقبلية والسابقة للخطر. طريقتان عامتان:
١. تحليل الشفرات (Cryptanalysis)
هجمات رياضية/تحليلية تستغل نقاط الضعف في الخوارزمية أو المعلومات المعروفة. يُفترض أن خوارزمية التشفير معروفة لجميع الهجمات.
٢. القوة الغاشمة (Brute Force)
جرب كل مفتاح ممكن حتى يتم العثور على نص عادي مفهوم. الفعالية تتناسب مع حجم المفتاح - مفاتيح أكبر = وقت هجوم أطول بشكل أسي.
أنواع هجمات تحليل الشفرات
| نوع الهجوم | ما يعرفه المهاجم | الهدف | الصعوبة |
|---|---|---|---|
| نص مشفر فقط | النص المشفر فقط (C₁, C₂, …). معرفة النص العادي ضئيلة. | إيجاد المفتاح K و/أو النصوص العادية | الأصعب للمهاجم |
| نص عادي معروف | بعض أزواج النص العادي-المشفر (P₁,C₁), (P₂,C₂), … | إيجاد المفتاح K | متوسطة |
| نص عادي مختار | أزواج نص عادي-مشفر و يمكنه اختيار أي نصوص عادية لتشفيرها | إيجاد المفتاح K | أسهل للمهاجم |
| نص مشفر مختار | يمكنه اختيار نصوص مشفرة لفك تشفيرها؛ لديه وصول إلى أوراكل فك التشفير | إيجاد المفتاح K | الأسهل للمهاجم |
القوة الغاشمة: حجم المفتاح مقابل الوقت
| حجم المفتاح | المفاتيح الممكنة | الوقت @ 1 فك/μs | الوقت @ 10⁶ فك/μs |
|---|---|---|---|
| 32 بت | 4.3 × 10⁹ | 35.8 دقيقة | 2.15 ملي ثانية |
| 56 بت (DES) | 7.2 × 10¹⁶ | 1,142 سنة | 10.01 ساعة ⚠️ مكسور |
| 128 بت (AES) | 3.4 × 10³⁸ | 5.4 × 10²⁴ سنة | 5.4 × 10¹⁸ سنة ✅ |
| 168 بت (3DES) | 3.7 × 10⁵⁰ | 5.9 × 10³⁶ سنة | 5.9 × 10³⁰ سنة ✅ |
📊 تحليل التردد (هجوم على شيفرات الإحلال)
الحروف في اللغات الطبيعية ليست موزعة بشكل منتظم. في العربية، حرف 'ا' يظهر بنسبة عالية جدًا، وحرف 'ل' بنسبة عالية أيضًا، إلخ. بتحليل الحروف الأكثر ظهورًا في النص المشفر، يمكن للمهاجم استنتاج نمط الإحلال وكسر الشيفرة.
في هجوم نص مشفر فقط على شيفرة قيصر، إذا ظهر الحرف 'X' بشكل متكرر، يخمن المهاجم أن X = E (أكثر حرف شيوعًا في الإنجليزية)، يحسب الإزاحة، ويفك تشفير الرسالة - بدون مفتاح!
لماذا تقاوم فيجنير تحليل التردد
شيفرة فيجنير تستخدم إزاحات مختلفة لكل حرف، لذا نفس الحرف في النص العادي يمكن أن ينتج أحرفًا مختلفة في النص المشفر - مما يخفي أنماط التردد.
التشفير مقابل التوقيعات الرقمية
🔐 التشفير (السرية)
المرسل يشفر
باستخدام المفتاح العام للمستقبل
المستقبل يفك التشفير
باستخدام مفتاحه الخاص
✍️ التوقيع الرقمي (التوثيق)
الموقع يوقع
باستخدام مفتاحه الخاص
أي شخص يتحقق
باستخدام المفتاح العام للمرسل
س: ما الذي يُستخدم لإنشاء توقيع رقمي؟
أ) المفتاح العام للمستقبل
ب) المفتاح العام للمرسل
ج) المفتاح الخاص للمرسل ✅
د) المفتاح العام للمستقبل
قاعدة للحفظ: وقع بمفتاحك الخاص، تحقق بمفتاحك العام.
Block Ciphers والانتشار والتعتيم
🔀 الانتشار (Diffusion)
ينشر تأثير حرف واحد من النص العادي على العديد من أحرف النص المشفر. يجعل من الصعب رؤية العلاقة بين بنية النص العادي وبنية النص المشفر.
س: في Block Cipher، الانتشار… → ب) ينشر تأثير حرف النص العادي على العديد من أحرف النص المشفر ✅
🎭 التعتيم (Confusion)
يخفي العلاقة بين النص المشفر والنص العادي (والمفتاح). يُنفذ عادة باستخدام S-boxes غير خطية (صناديق إحلال).
حيلة للحفظ: الانتشار مقابل التعتيم
الانتشار = ينتشر (حرف واحد يؤثر على عدة أحرف). التعتيم = يخفي (إخفاء العلاقة). كلاهما مطلوب لـ Block Cipher آمن.
نصائح وحيل للاختبارات 🎯
التشفير يحمي جزئيًا من CIA
التشفير يحمي السرية (بالتشفير) والسلامة (بالتجزئة). لا يحمي التوفر.
قواعد اتجاه المفاتيح
التشفير للخصوصية → المفتاح العام للمستقبل. التوقيع للتوثيق → المفتاح الخاص للمرسل. التحقق من التوقيع → المفتاح العام للمرسل.
السرعة
التشفير المتماثل أسرع بحوالي 30,000 مرة من غير المتماثل. إذا ذكرت السرعة في سؤال، فكر في المتماثل.
لوحة المرة الواحدة = غير قابلة للكسر
الشيفرة الوحيدة نظريًا غير القابلة للكسر. لكن يجب أن يكون المفتاح بطول الرسالة ولا يُعاد استخدامه أبدًا - مما يجعلها غير عملية.
ترتيب إصدارات SHA
SHA-1 (160 بت، مكسور) ← SHA-2 (256/512، آمن) ← SHA-3 (2015، الأحدث). لكلمات المرور، لا تستخدم SHA-1 أو MD5 أبدًا.
مبدأ كيرشوف في سطر واحد
الخوارزمية عامة، المفتاح سري. الأمان يأتي من سرية المفتاح، وليس سرية الخوارزمية. تستخدمه AES, RSA, وكل الأنظمة الحديثة.
مشكلة المتماثل = توزيع المفاتيح
الضعف التقليدي للتشفير المتماثل هو كيف تشارك المفتاح بأمان؟ التشفير غير المتماثل يحل هذه المشكلة بالمفاتيح العامة.
Block vs Stream
Block cipher = يعالج قطعًا ثابتة الحجم. Stream cipher = يعالج بتًا/بايتًا واحدًا في كل مرة. Block أكثر شيوعًا (AES هو Block cipher).
مرجع سريع - كل شيء في لمحة
| الموضوع | النقطة الرئيسية |
|---|---|
| التشفير يحمي | السرية + السلامة فقط (وليس التوفر) |
| مبدأ كيرشوف | الخوارزمية = عامة؛ المفتاح = سري |
| متماثل | مفتاح مشترك واحد؛ سريع (أسرع بـ 30,000 مرة)؛ توزيع المفاتيح = مشكلة |
| غير متماثل | مفاتيح عام + خاص؛ أبطأ؛ يحل مشكلة توزيع المفاتيح |
| التشفير للخصوصية | استخدم المفتاح العام للمستقبل |
| التوقيع (رقمي) | استخدم المفتاح الخاص للمرسل |
| التحقق من التوقيع | استخدم المفتاح العام للمرسل |
| شيفرة قيصر | E(x) = (x+n) mod 26; شيفرة إزاحة; يمكن كسرها بتحليل التردد |
| شيفرة فيجنير | إحلال متعدد الأبجديات؛ كلمة مفتاحية متكررة; تقاوم تحليل التردد |
| لوحة المرة الواحدة | غير قابلة للكسر؛ مفتاح = عشوائي، بطول الرسالة، لا يُعاد استخدامه أبدًا |
| التجزئة = أحادية الاتجاه | لا يمكن عكسها; مخرج بطول ثابت; تستخدم لكلمات المرور + السلامة |
| SHA-1 | 160 بت; عرضة لهجمات التصادم - تجنب |
| SHA-2/3 | SHA-256/512; المعيار الحالي |
| هجمة التصادم | مدخلان مختلفان → نفس التجزئة → فقدان السلامة |
| MAC | تجزئة + مفتاح سري = يثبت السلامة والتوثيق |
| هجوم نص مشفر فقط | الأصعب; المهاجم لديه نص مشفر فقط |
| هجوم نص مشفر مختار | الأسهل للمهاجم; لديه وصول إلى أوراكل فك التشفير |
| الانتشار | ينشر تأثير حرف نص عادي واحد على عدة أحرف نص مشفر |
| التعتيم | يخفي العلاقة بين النص العادي والمشفر; يستخدم S-boxes |
| القوة الغاشمة | جرب كل المفاتيح; AES 128 بت = غير قابل للكسر عمليًا |
| تحليل التردد | يكسر شيفرات الإحلال باستخدام أنماط تردد الحروف |