0Pricing
Cryptology Academy · درس

أساسيات تشفير الكتل والحشو

افهم حجم الكتلة وحشو PKCS7 وبنية الشيفرة

أساسيات تشفير الكتل والحشو درس مجاني في Cryptology Academy على CoddyKit. هذا هو الدرس 1 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Cryptology Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Cryptology Academy 4 دروس في المجموع.

مرحبًا

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

مراجعة حجم الكتلة

يستخدم AES كتلًا بحجم 128 بت (16 بايتًا). وكان DES يستخدم كتلًا بحجم 64 بت (8 بايتات). إذا كان النص الصريح بطول 16 بايتًا تمامًا، فإنه يشكل كتلة واحدة. أما 17 بايتًا فتتطلب كتلتين.

سبب الحاجة إلى الحشو

إذا كان النص الصريح بطول 20 بايتًا، فإن الكتلة الثانية تحتوي على 4 بايتات فقط. وتحتاج الشفرة إلى كتلة كاملة بحجم 16 بايتًا. لذلك نحشو البايتات الـ12 المتبقية باستخدام مخطط حتمي قابل للعكس.

حشو PKCS#7

يضيف PKCS#7 عددًا N من البايتات، بحيث تكون قيمة كل منها N: - الحاجة إلى 3 بايتات → أضف: 03 03 03 - الحاجة إلى 12 بايتًا → أضف: 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C - الحاجة إلى 0 بايتات → أضف كتلة كاملة من 16: 10×16

أضف دائمًا كتلة كاملة واحدة

إذا كان النص الصريح بطول 16 بايتًا تمامًا، يضيف PKCS#7 كتلة إضافية كاملة من 0x10×16. ويضمن ذلك أن يعرف المستقبل دائمًا موضع انتهاء الحشو: فقيمة البايت الأخير تحدد عدد البايتات التي يجب حذفها.

PKCS#7 في Python

def pkcs7_pad(data: bytes, block_size: int = 16) -> bytes: n = block_size - (len(data) % block_size) return data + bytes([n] * n) def pkcs7_unpad(data: bytes) -> bytes: n = data[-1] return data[:-n]

هجمات قناة الحشو

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

الحشو الصفري وANSI X.923

الحشو الصفري: الحشو ببايتات 0x00 (وهو ملتبس، فقد تنتهي البيانات الأصلية بأصفار). ANSI X.923: الحشو بأصفار، مع جعل قيمة البايت الأخير مساوية للعدد. ISO 7816-4: بايت الحشو الأول = 0x80، والباقي = 0x00. يُعد PKCS#7 غير ملتبس، وهو المفضل.

الحشو على مستوى البتات (CTS)

يتجنب Ciphertext Stealing (CTS) الحشو تمامًا؛ إذ يعيد ترتيب الكتلتين الأخيرتين للتعامل مع الإدخال ذي الكتلة الجزئية. ويُستخدم في تشفير الأقراص (Kerberos وبعض تطبيقات AES).

أثر حجم الكتلة على الأمان

مع الكتل بحجم 64 بت (DES و3DES وBlowfish): يحدث تصادم عيد الميلاد بعد 2^32 كتلة (نحو 32 GB). عطّلت المتصفحات استخدام 3DES في TLS بعد أن أثبت هجوم SWEET32 ذلك عام 2016. أما كتل AES بحجم 128 بت فتحتاج إلى 2^64 كتلة، وهو آمن عمليًا.

الأوضاع غير المحشوة

لا يتطلب AES-CTR وAES-GCM حشوًا؛ إذ يستخدمان شفرة الكتل مولّدًا لسلسلة مفاتيح ويطبّقان XOR على إدخال ذي طول عشوائي. ويكون حدّ الكتلة مجرد تفصيل داخلي في التنفيذ.

تحقّق سريعًا

عند استخدام PKCS#7 مع كتل بحجم 16 بايتًا، ما الحشو الذي يُضاف إلى رسالة طولها 13 بايتًا؟

مراجعة

لقد أتقنت حشو شفرات الكتل! سنقارن بعد ذلك بين نمطي ECB وCBC، بدءًا من هجوم بطريق ECB الشهير.

الأسئلة الشائعة

هل درس «أساسيات تشفير الكتل والحشو» مجاني؟

نعم — نص درس «أساسيات تشفير الكتل والحشو» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Cryptology Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Cryptology Academy 4 دروس في المجموع.

ماذا ستتعلم في «أساسيات تشفير الكتل والحشو»؟

افهم حجم الكتلة وحشو PKCS7 وبنية الشيفرة تتمرن على Cryptology Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Cryptology Academy؟

لا تُشترط خبرة سابقة. Cryptology Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 4.

كم من الوقت يستغرق درس «أساسيات تشفير الكتل والحشو»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Cryptology Academy هذا؟

نعم. كل درس في Cryptology Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. أساسيات تشفير الكتل والحشو
  2. ECB مقابل CBC: الأنماط والمتجهات الابتدائية
  3. نمط CTR وسلوك تشفير التدفق
  4. GCM والتشفير الموثَّق
← العودة إلى Cryptology Academy