الوحدة الرابعة

معيار التشفير المتقدم AES

Advanced Encryption Standard

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

6-7 ساعات دراسة 5 أقسام رئيسية 6 أهداف تعليمية

الأهداف التعليمية للوحدة

فهم بنية AES وكيفية عملها على مستوى الكتل والجولات
تمييز الوظائف الأربع الأساسية لتحويل البيانات
فهم آلية توليد المفاتيح (Key Schedule)
تنفيذ مثال عملي يوضح خطوات التشفير كاملة
استخدام AES في سيناريوهات حقيقية
المقارنة بين AES و DES وفهم أسباب تفوق AES

🏗️ هيكل AES الأساسي

نوع الخوارزمية

خوارزمية تشفير كتل متماثل تعتمد على شبكة الاستبدال والنقل (SPN) بدلاً من بنية فايستل المستخدمة في DES.

المواصفات الأساسية:
  • حجم الكتلة الثابت: 128 بت = 16 بايت
  • بنية SPN: أكثر كفاءة وأماناً من فايستل
  • معالجة البيانات في مصفوفة 4×4 تسمى State Matrix
  • مناسب للتنفيذ في العتاد والبرمجيات
هيكل AES

تمثيل مرئي لبنية AES الشبكية

أطوال المفاتيح في AES

AES-128

10

جولة

مفتاح 128 بت

AES-192

12

جولة

مفتاح 192 بت

AES-256

14

جولة

مفتاح 256 بت
ملاحظة هامة

كلما زاد طول المفتاح → زادت الجولات → زادت القوة الأمنية والمقاومة للهجمات

مصفوفة الحالة State Matrix

يتم تنظيم البيانات في مصفوفة 4×4 حيث كل خلية تمثل بايت واحد:

العمود 0 العمود 1 العمود 2 العمود 3
الصف 0 b₀ b₄ b₈ b₁₂
الصف 1 b₁ b₅ b₉ b₁₃
الصف 2 b₂ b₆ b₁₀ b₁₄
الصف 3 b₃ b₇ b₁₁ b₁₅
كيفية التعبئة

يتم تعبئة المصفوفة عمودياً: البايتات b₀ إلى b₃ في العمود الأول، ثم b₄ إلى b₇ في العمود الثاني، وهكذا...

مقارنة: DES مقابل AES
الخاصية DES AES
هيكل الخوارزمية Feistel Substitution–Permutation
حجم الكتلة 64 بت 128 بت
طول المفتاح 56 بت 128-192-256 بت
عدد الجولات 16 10-12-14
الأمان ضعيف عالي جداً
الكفاءة متوسطة عالية

⚙️ وظائف التحويل الأساسية

الجولة النموذجية في AES
SubBytes

الاستبدال

ShiftRows

إزاحة الصفوف

MixColumns

خلط الأعمدة

AddRoundKey

إضافة المفتاح

SubBytes - الاستبدال

يتم استبدال كل بايت ببايت آخر باستخدام S-box غير خطي:

  • يوفر الارتباك Confusion
  • يعتمد على جبر GF(2⁸)
  • يمنع الهجمات الجبرية
  • غير خطي بالكامل
مثال: البايت 53 يصبح ED بعد التبديل
ShiftRows - إزاحة الصفوف

تدوير الصفوف بعدد معين من المواقع:

  • الصف 0: لا إزاحة
  • الصف 1: إزاحة 1 بايت
  • الصف 2: إزاحة 2 بايت
  • الصف 3: إزاحة 3 بايت
الهدف: نشر البايتات عبر الأعمدة
MixColumns - خلط الأعمدة

عملية رياضية على كل عمود باستخدام جبر GF(2⁸):

  • ينشر تأثير البايتات
  • يوفر الانتشار Diffusion
  • لا يستخدم في الجولة الأخيرة
  • يعتمد على ضرب المصفوفات
AddRoundKey - إضافة المفتاح

دمج مفتاح الجولة مع البيانات باستخدام XOR:

  • العنصر الأمني الأقوى
  • يعتمد على سرية المفتاح
  • يتم في كل جولة
  • مفتاح كل جولة مختلف
آلة S-Box في AES
خصائص S-Box المتقدمة:
  • مبنية على عمليات جبرية في المجال GF(2⁸)
  • توفر لاخطية قوية جداً
  • مقاومة للهجمات التفاضلية والخطية
  • تمنع الهجمات الجبرية
  • قابلة للحساب بدلاً من التخزين
مثال S-Box (مبسط):
الإدخال 00 01 02 ... FF
الإخراج 63 7C 77 ... 16

جدول استبدال 16×16 (256 قيمة)

🔑 توسعة المفتاح Key Expansion

الهدف من التوسعة

تحويل المفتاح الأساسي إلى مجموعة مفاتيح فرعية تستخدم في جولات AES المختلفة:

مخطط التوسعة
المفتاح الأساسي
تقسيم إلى كلمات (4 بايت لكل كلمة)
تطبيق RotWord + SubWord + Rcon
مفاتيح الجولات (Round Keys)
أحجام المفاتيح المولدة
  • AES-128 → 176 بايت (44 كلمة)
  • AES-192 → 208 بايت (52 كلمة)
  • AES-256 → 240 بايت (60 كلمة)
أهمية التوسعة
  • منع استنتاج مفاتيح الجولات من المفتاح الأساسي
  • ضمان تنوع المفاتيح رغم قصر المفتاح الأساسي
  • مقاومة هجمات التحليل الرياضي
مراحل التوسعة خطوة بخطوة
الخطوة 1: تقسيم المفتاح إلى كلمات

المفتاح 128 بت يقسم إلى 4 كلمات (W[0] إلى W[3])، كل كلمة 32 بت (4 بايت)

الخطوة 2: توليد الكلمات الجديدة

لكل كلمة جديدة: W[i] = W[i-4] ⊕ Transform(W[i-1])

الخطوة 3: التحويلات المطبقة
RotWord
تدوير البايتات دورياً
SubWord
تمرير البايتات عبر S-box
Rcon
ثابت خاص لكل جولة
الخطوة 4: تكرار العملية

تتكرر العملية حتى يتم توليد جميع مفاتيح الجولات المطلوبة

ثوابت الجولة Rcon
الجولة Rcon[1] Rcon[2] Rcon[3] Rcon[4] Rcon[5] Rcon[6] Rcon[7] Rcon[8] Rcon[9] Rcon[10]
القيمة 01 02 04 08 10 20 40 80 1B 36

قيم Rcon محسوبة في حقل GF(2⁸) باستثير كثير الحدود x⁸ + x⁴ + x³ + x + 1

🔍 مثال تطبيقي AES-128

عملية تشفير AES-128 خطوة بخطوة
النص الأصلي
00112233445566778899AABBCCDDEEFF
المفتاح
000102030405060708090A0B0C0D0E0F
خطوات التشفير
الخطوة 1: التهيئة الأولية

تحويل النص الأصلي إلى مصفوفة الحالة وتطبيق AddRoundKey باستخدام المفتاح الأساسي

الخطوة 2: الجولات الرئيسية (9 جولة)

في كل جولة: SubBytes → ShiftRows → MixColumns → AddRoundKey

الخطوة 3: الجولة الأخيرة

SubBytes → ShiftRows → AddRoundKey (بدون MixColumns)

الخطوة 4: الناتج النهائي
النص المشفر
69C4E0D86A7B0430D8CDB78070B4C55A

هذه النتيجة معيارية وتستخدم لاختبار صحة تنفيذ AES

تحول مصفوفة الحالة
الحالة الأولية
004488CC
115599DD
2266AAEE
3377BBFF
بعد 10 جولات من التحويلات
الحالة النهائية
696AD870
C47BCDB4
E004B7C5
D830805A
تجربة عملية

يمكن تجربة AES عملياً عبر: AES Encryption Online Tool لإدخال نصوص ومفاتيح مختلفة ومشاهدة النتائج فوراً

💻 التنفيذ العملي لـ AES

بروتوكولات HTTPS / TLS

يحمي اتصالات الويب والتطبيقات عبر الإنترنت

شبكات VPN

IPsec وOpenVPN لتأمين الاتصالات عن بُعد

شبكات Wi-Fi

WPA2/WPA3 لحماية الشبكات اللاسلكية

تشفير الأقراص

BitLocker وFileVault لحماية البيانات المخزنة

تطبيقات المراسلة

Signal وWhatsApp لحماية المحادثات

قواعد البيانات

حماية البيانات الحساسة والمعلومات الشخصية

أوضاع التشغيل الموصى بها
GCM - Galois/Counter Mode

الأقوى والأكثر استخداماً - يوفر سرية ومصادقة

CBC - Cipher Block Chaining

جيد للتطبيقات العامة - يحتاج متجه تهيئة IV

CTR - Counter Mode

سريع ويمكن التنفيذ بالتوازي

ECB - Electronic Codebook

غير آمن - لا يُستخدم - يظهر أنماط البيانات

لماذا AES آمن جداً؟
  • طول مفتاح كبير (128-256 بت)
  • عدم وجود نقاط ضعف عملية حتى الآن
  • مقاوم للهجمات التفاضلية والخطية
  • مناسب للعتاد والبرمجيات
  • كفاءة عالية في التنفيذ
  • تدقيق أمني مكثف من قبل الخبراء
حالة الأمان الحالية

بعد أكثر من 20 عاماً من التدقيق، لم يتم كسر AES عملياً. حتى الهجوم النظري الأفضل يتطلب وقتاً أطول من عمر الكون!

تمرين للتفكير
لماذا لا تستخدم AES بنية فايستل مثل DES؟

لأن AES يعتمد على شبكة الاستبدال والنقل SPN، وهو أكثر كفاءة وأماناً في العمليات الرياضية على مستوى البايت. بنية SPN تتيح:

  • معالجة متوازية أفضل
  • تنفيذ أسرع في العتاد الحديث
  • مقاومة أعلى للهجمات التحليلية
  • استغلال كامل لخواص الجبر في GF(2⁸)