شرح تشفير AES-256: ماذا يعني لبياناتك
شرح AES-256: كيف يعمل الشفرة، لماذا تهم مفاتيح 256 بت، ما يضيفه وضع GCM، وما يجب التحقق منه عندما يدّعي تطبيق ما استخدام تشفير AES-256.
AES-256 هو معيار التشفير المتقدم بمفتاح 256 بت، صادر من NIST بوصفه FIPS 197 عام 2001. وهو خوارزمية التشفير المتماثل التي تستخدمها الحكومة الأمريكية للمعلومات السرية، والبنوك للمعاملات المالية، والتطبيقات المهتمة بالأمان لحماية البيانات في حالة السكون وأثناء النقل. لدى AES-256 ما يبلغ 2^256 مفتاحاً محتملاً -- وهو رقم أكبر من العدد التقديري للذرات في الكون المرئي. لا يوجد هجوم معروف يقلل فضاء المفاتيح هذا إلى بحث ممكن حسابياً.
يشرح هذا الدليل ما يفعله AES-256 فعلاً، لماذا يهم حجم المفتاح، ما تعنيه الأوضاع المختلفة (ECB، CBC، GCM)، وما يجب البحث عنه عندما يدّعي تطبيق ما استخدام تشفير AES-256.
ما يفعله AES فعلاً
AES هو شفرة كتلية متماثلة. "متماثل" يعني أن المفتاح ذاته يُشفّر ويفكّ التشفير. "شفرة كتلية" يعني معالجة البيانات في كتل ذات حجم ثابت 128 بت (16 بايت).
تأخذ الخوارزمية بياناتك (النص الصريح)، وتجمعها بمفتاح، وتنتج مخرجات مشفرة (نص مشفر) عبر سلسلة من التحويلات الرياضية. تتكرر هذه التحويلات -- الاستبدال، والإزاحة، والمزج، وإضافة المفتاح -- لعدد محدد من الجولات. يستخدم AES-256 جولات 14.
تطبّق كل جولة أربع عمليات:
- SubBytes: يُستبدل كل بايت باستخدام جدول استبدال ثابت (S-box)، مما يضيف اللاخطية.
- ShiftRows: تُزاح البايتات في كل صف بإزاحات مختلفة، مما ينشر البيانات عبر المواضع.
- MixColumns: تُخلط الأعمدة من خلال ضرب المصفوفة في حقل منتهٍ، مما ينشر التغييرات عبر البايتات.
- AddRoundKey: يُطبَّق XOR على مفتاح الجولة (المشتق من المفتاح الرئيسي) مع البيانات.
بعد 14 جولة، يكون النص الصريح مشوشاً تماماً. عكس هذه العمليات بالمفتاح الصحيح يستعيد البيانات الأصلية. بدون المفتاح، لا يمكن تمييز النص المشفر عن الضوضاء العشوائية.
لماذا يهم الرقم 256
يشير "256" في AES-256 إلى طول المفتاح: 256 بت. هذا يحدد عدد المفاتيح المحتملة التي يجب على المهاجم تجربتها لكسر التشفير بالقوة الغاشمة.
| حجم المفتاح | المفاتيح المحتملة | الوقت اللازم للقوة الغاشمة (تريليون تخمين/ثانية) |
|---|---|---|
| 56 بت (DES) | 7.2 × 10^16 | ~20 ساعة |
| 128 بت (AES-128) | 3.4 × 10^38 | 10^13 سنة (10 تريليون سنة) |
| 256 بت (AES-256) | 1.16 × 10^77 | 10^51 سنة |
للسياق: عمر الكون حوالي 1.38 × 10^10 سنة. كسر AES-256 بالقوة الغاشمة سيستغرق ما يقارب 10^41 ضعف عمر الكون، حتى بتريليون تخمين في الثانية.
AES-128 غير ممكن كسره بالقوة الغاشمة. يوفر AES-256 هامشاً إضافياً ضد التقدم المستقبلي في الحوسبة، بما في ذلك الحوسبة الكمومية. خوارزمية غروفر (هجوم حوسبة كمومية) تنصف طول المفتاح الفعّال بشكل فعلي -- محولةً AES-256 إلى ما يعادل AES-128، وهو لا يزال غير ممكن. سيُختزل AES-128 إلى أمان فعّال بـ 64 بت، وهو ضعيف محتمل. لذلك تفضّل التطبيقات الأمنية الحرجة AES-256.
أوضاع AES: لماذا تهم
يشفّر AES بحد ذاته كتلة واحدة فقط بـ 128 بت في كل مرة. بالنسبة للبيانات الحقيقية (الصور، المستندات، الفيديوهات)، تحتاج إلى "وضع عمل" يتعامل مع البيانات الأكبر من 16 بايت. الوضع يحدد كيفية تسلسل الكتل معاً وله تداعيات أمنية مهمة.
ECB (كتاب الرموز الإلكتروني) -- لا تستخدم
تُشفَّر كل كتلة بشكل مستقل بالمفتاح ذاته. تنتج الكتل المتطابقة من النص الصريح كتلاً متطابقة من النص المشفر. هذا يكشف أنماطاً في البيانات. التوضيح الكلاسيكي: تشفير صورة نقطية بـ ECB يحافظ على بنية الصورة في النص المشفر، مما يجعل المحتوى قابلاً للتعرف. ECB مُدرج في المعيار لكن يجب عدم استخدامه أبداً مع البيانات ذات البنية أو الأنماط المتكررة (وهذا يشمل كل البيانات العملية تقريباً).
CBC (تسلسل كتل الشفرة) -- قديم
تُطبَّق XOR على كل كتلة مع كتلة النص المشفر السابقة قبل التشفير. هذا يزيل تسرب الأنماط في ECB. كان CBC الوضع القياسي لعقود لكنه تجاوزته GCM لمعظم التطبيقات. يتطلب CBC متجهاً عشوائياً للتهيئة (IV) ولا يوفر مصادقة مدمجة (لا يمكنك اكتشاف ما إذا تم التلاعب بالنص المشفر).
GCM (وضع غالوا/العداد) -- المعيار الحالي
يجمع GCM بين تشفير وضع العداد ومصادقة حقل غالوا. يوفر تشفيراً مصادقاً: يشفّر البيانات وينتج علامة مصادقة تكتشف أي تعديل على النص المشفر. إذا تغير بت واحد، يفشل فك التشفير بدلاً من إنتاج نص صريح تالف.
أقرّ NIST معيار GCM في SP 800-38D (2007). وهو الوضع الموصى به للتطبيقات الجديدة.
AES-256-GCM هو AES بمفتاح 256 بت في وضع Galois/Counter. هذا ما يجب أن تستخدمه التطبيقات الأمنية الحرجة وما يستخدمه Vaultaire لتشفير الصور ومحتوى الملفات.
| الوضع | تسرب الأنماط | المصادقة | التوصية الحالية |
|---|---|---|---|
| ECB | نعم (شديد) | لا | لا تستخدم |
| CBC | لا | لا (يتطلب MAC منفصل) | قديم؛ مقبول مع HMAC |
| GCM | لا | نعم (مدمج) | موصى به للتطبيقات الجديدة |
ما يعنيه AES-256 لتخزين الصور
عندما يدّعي تطبيق خزنة صور "تشفير AES-256"، يجب أن تكون ثلاثة أشياء صحيحة:
محتويات الملف مشفرة بـ AES-256. بيانات الصورة الخام (البكسل، البيانات الوصفية، الصورة المصغرة) محوّلة إلى نص مشفر بمفتاح 256 بت.
كل ملف يستخدم متجه تهيئة فريد (IV). إذا شُفِّرت صورتان متطابقتان بالمفتاح ذاته، يجب أن يكون النص المشفر مختلفاً. هذا يتطلب IV فريداً لكل ملف. بدونه، يمكن للتحليل الإحصائي الكشف عن الأنماط.
الوضع يوفر مصادقة (GCM أو ما يعادله). بدون مصادقة، يمكن للمهاجم تعديل النص المشفر دون اكتشاف. سيكون النتيجة المفككة بيانات تالفة لا خطأ.
ما لا يخبرك به "AES-256" على صفحة تسويقية
AES-256 ضروري لكنه غير كافٍ. عوامل حرجة عدة تحدد ما إذا كان التشفير يحمي بياناتك فعلاً:
الاشتقاق الرئيسي مهم. كيف يتم إنشاء مفتاح 256 بت؟ إذا كان مشتقًا من رقم تعريف شخصي مكون من 4 أرقام باستخدام KDF ضعيف، فإن الأمان الفعال هو 4 أرقام (10000 مجموعة)، وليس 256 بت. يستخدم تنفيذ قوي PBKDF2 مع عدد تكرار مرتفع أو Argon2 مع الذاكرة المناسبة ومعلمات الوقت. يستخدم فولتير PBKDF2 مع HMAC-SHA512 و600000 تكرار لاشتقاق مفتاح قبو محلي من نمط 5x5 المختار وملح الجهاز. PBKDF2 يجعل كل تخمين أكثر تكلفة؛ فهو لا يرفع إنتروبيا النمط إلى 256 بت.
تخزين المفاتيح مهم. أين يعيش المفتاح؟ إذا تم تخزين المفتاح في نص عادي في وضع الحماية الخاص بالتطبيق، فيمكن للبرامج الضارة التي يمكنها الوصول إلى الملف قراءته. أبل Secure Enclave يدعم عمليات مفاتيح محددة غير قابلة للتصدير، وليس مفاتيح AES التعسفية التي يوفرها التطبيق. قد تعتمد بدلاً من ذلك على تصميمات المفاتيح المتماثلة Keychain وحماية البيانات، لذلك يجب أن تحدد الوثائق واجهة برمجة التطبيقات (API) وفئة الحماية بدقة بدلاً من ذكر "مدعومة بالأجهزة" فقط.
ما يُشفَّر مهم. بعض التطبيقات تشفّر محتويات الملفات لكن تترك أسماء الملفات والصور المصغرة والبيانات الوصفية غير مشفرة. قد لا يرى المحقق الجنائي صورتك، لكنه يرى "vacation-beach-2025.jpg" في قائمة الملفات. التشفير الشامل يغطي البيانات الوصفية بشكل منفصل.
دورة الحياة الرئيسية مهمة. ما المدة التي تظل فيها المواد الرئيسية التي تم فك تشفيرها متاحة؟ يسقط Vaultaire خزنته النشطة وحالة المفتاح الرئيسي عند قفله أو إغلاقه ويتطلب فتحًا جديدًا. توجد بالضرورة بايتات المفاتيح المتناظرة في ذاكرة التطبيق عندما يكون المخزن مفتوحًا، وSwift و iOS لا تدع التطبيق يثبت أنه تمت الكتابة فوق كل نسخة عابرة.
AES-256 في الممارسة: من يستخدمه
| الجهة | حالة الاستخدام | الوضع |
|---|---|---|
| الحكومة الأمريكية (NSA) | المعلومات السرية | GCM (أو CTR مع مصادقة منفصلة) |
| Apple (iCloud ADP) | تشفير iCloud من طرف لطرف | GCM |
| Signal | تشفير الرسائل | CBC (مع HMAC للمصادقة) |
| البنوك | تشفير المعاملات المالية | GCM |
| 1Password | خزنة كلمات المرور | GCM |
| Vaultaire | خزنة الصور والملفات | GCM |
| VeraCrypt | تشفير القرص | XTS (محسّن لكتل القرص) |
المفاهيم الخاطئة الشائعة
"التشفير العسكري" لا يعني شيئاً محدداً. تستخدم الصفحات التسويقية هذه العبارة لأنها تبدو مثيرة للإعجاب. يستخدم AES-256 في الجيوش. كذلك AES-128. العبارة لا تخبرك عن الوضع أو اشتقاق المفتاح أو تخزين المفتاح أو ما يُشفَّر فعلاً.
"تشفير 256 بت" قد لا يعني AES-256. تستخدم شفرات أخرى أيضاً مفاتيح 256 بت (ChaCha20، Twofish، Serpent). تحقق من تحديد الخوارزمية. AES-256-GCM هو المعيار الحالي.
AES-256 لا يحمي من كلمة المرور الضعيفة. إذا كانت كلمة مرورك "1234" واشتقاق المفتاح ضعيف، فالتشفير ذو أمان 4 أرقام بشكل فعّال بغض النظر عن قوة الشفرة. السلسلة تنكسر عند حلقتها الأضعف.
AES-256 لا يحمي البيانات أثناء الاستخدام. عند عرض صورة، يجب فك تشفيرها في الذاكرة. في تلك اللحظة، توجد بنص صريح في ذاكرة الوصول العشوائي. التطبيقات الصحيحة تقلّل هذه النافذة الزمنية وتمحو البيانات المفككة فوراً.
الأسئلة الشائعة
هل يمكن اختراق AES-256؟
لا يوجد هجوم معروف يخترق AES-256 بتقليل فضاء المفاتيح الكامل. أفضل هجوم معروف (هجوم biclique بقلم Bogdanov وKhovratovich وRechberger، 2011) يقلل AES-256 من 2^256 عملية إلى 2^254.4 -- تحسين نظري لا معنى له حسابياً. يبقى AES-256 غير مكسور.
هل AES-256 مقاوم للحوسبة الكمومية؟
إلى حد كبير، نعم. خوارزمية غروفر الكمومية تنصف الطول الفعّال للمفتاح: يصبح AES-256 مكافئاً لأمان 128 بت ضد الهجمات الكمومية. سيُختزل AES-128 إلى أمان فعّال بـ 64 بت، وهو ضعيف محتمل. توصي NIST بـ AES-256 للأمان طويل الأمد ضد تقدم الحوسبة الكمومية.
ما الفرق بين AES-128 و AES-256؟
يستخدم AES-128 مفتاحاً بـ 128 بت (10 جولات). يستخدم AES-256 مفتاحاً بـ 256 بت (14 جولة). كلاهما يُعتبر آمناً ضد الهجمات الحالية. يوفر AES-256 هامشاً أكبر ضد التقدم المستقبلي، خاصة الحوسبة الكمومية. AES-256 أبطأ بنحو 40% من AES-128 بسبب الجولات الإضافية، لكن التسريع بالأجهزة يجعل ذلك لا يُذكر على الأجهزة الحديثة.
هل يبطّئ تشفير AES-256 هاتفي؟
ليس بشكل ملحوظ في الاستخدام العادي. توفر معالجات Apple الحديثة تسريع الأجهزة لـ AES من خلال مكتبات تشفير النظام. هذا لا يعني أن عملية AES الخاصة بالتطبيق تعمل بالداخل Secure Enclave. لا يزال الوقت يعتمد على حجم الملف، والجهاز، والتخزين، والتنفيذ، لذلك يجب أن تعتمد المطالبة الأمنية على القياسات بدلاً من رقم المللي ثانية العالمي.
كيف أعرف إذا كان تطبيق ما يستخدم AES-256 فعلاً؟
تحقق من وثائق الأمان الخاصة بالتطبيق، وليس فقط صفحة التسويق الخاصة به. ابحث عن الخوارزمية والوضع المحددين، والتسلسل الهرمي للمفاتيح، ومعلمات الاشتقاق، بدقة Keychain أو Secure Enclave الاستخدام، والتعامل مع عدم وجوده، ومسار الاسترداد، وما إذا كانت البيانات التعريفية مشفرة أيضًا. تعمل التعليمات البرمجية مفتوحة المصدر وعمليات التدقيق المستقلة على تسهيل التحقق من هذه الادعاءات.
الخلاصة
AES-256 هو المعيار الذهبي للتشفير المتماثل، معتمد من NIST، تستخدمه الحكومات والمؤسسات المالية، ومقاوم لجميع الهجمات المعروفة بما فيها الحوسبة الكمومية. عند تقييم التطبيقات التي تدّعي تشفير AES-256، انظر وراء الشفرة: تحقق من الوضع (GCM)، اشتقاق المفتاح (PBKDF2/Argon2 بعدد تكرار مرتفع)، تخزين المفتاح (مدعوم بالأجهزة)، وما يُشفَّر فعلاً (المحتويات + البيانات الوصفية).
فولتير الاستخدامات AES-256-GCM لمحتوى الملف والرؤوس وبيانات التعريف والفهارس والصور المصغرة. PBKDF2 مع HMAC-SHA512 يستمد مفتاح قبو محلي من النمط وعلى مستوى الجهاز Keychain ملح؛ يقوم هذا المفتاح بفك مفتاح رئيسي عشوائي يستخدم لتشفير الملفات. يتم تشغيل العمليات المتماثلة في عملية التطبيق من خلال CryptoKit بينما iOS Keychain وحماية البيانات تحمي حالة الاسترداد عندما يكون الجهاز مقفلاً. تم توثيق التسلسل الهرمي الكامل في نموذج الأمن.