معيار التشفير المتقدم
معيار التشفير المتقدم ويُدعى اختصارًا إيه إي إس (AES)، هو طريقة تشفير رسمية تبنتها NIST (المركز القومي للمعايير والتكنولوجيا وهو فرع في حكومة الولايات المتحدة). هذه الخوارزمية لاقت قبولاً واسعاً في العالم إذ أنها تُعتبر طريقة آمنة للتشفير وذلك بسبب طول مفتاح التشفير. هذه الخوارزمية هي تطوير لافكار ظهرت في DES.
في عام 1997 بدأت NIST بالبحث عن بديل ل-DES وذلك لان DES كان يُعتبر بشكل واسع آنذاك انه غير آمن وذلك بسبب تطوير وسائل متطورة لكسر هذه الوسيلة, وقد كانت التسعينات نهاية DES حيث أنه Wiener في بداية التسعينيات اعلن عن آلة بقيمة 1000000 دولار لكسر DES في 3.5 ساعات فقط ! كل هذا ساهم بالاساس في الإعلان عن إصدار معيار تشفير اقوى , وقد كان إحدى أهداف هذا البحث هو الإعلان عن بديل يُستخدم بشكل عام ولا يقتصر على الجيش , ولاجل هذا دعت كل المتخصصين في علم التعمية لتقديم اقتراحاتهم وكانت الشروط كالتالي :
ولاحقا تم تحديد طول (المفتاح، الكتلة) الذي من المفترض ان يقدمها AES وهي : (256,128),(192,128),(128,128).
والمسابقة كانت على مرحلتين في المرحلة الأولى تقدمت 15 خوارزمية وفي عام 1999 تم اختيار 5 خوارزميات للتصفيات وهي :
وفي تشرين أول من عام 2000 تم اختيار RIJNDEAL ليكون بديل DES وقد تم تغيير اسمه ل- AES وفي تشرين ثاني من عام 2001 أصبح معيارا رسميا (FIPS 197 ).
مُخترعي هذا المعيار هما دايمن ورامين(Daemen and Rijmen )
رايندول هو خوارزمية تشفير كتل وهو يدعم أطوال مفاتيح وأطوال نصوص متعددة . مفتاح التشفير k هو مصفوفة ذات أبعاد formula_1 (اي طول المفتاح هو formula_2 بايت ) :
حيث كل formula_3 يمكن اعتباره :
طول المفتاح في خوارزمية رايندول يمكن أن يكون formula_6 بايت .
قراءة مفتاح التشفير من المصفوفة تكون حسب كل عامود من اليسار إلى اليمين أي :
formula_7
الكتلة أو النص الذي نريد تشفيره formula_8 هو مصفوفة ذات اطوال formula_9 (اي طول المفتاح هو formula_10 بايت ) :
حيث كل formula_11 يمكن اعتباره :
الكتلة في خوارزمية رايندول يمكن أن تكون formula_14 بايت .
قراءة الكتلة من المصفوفة تكون حسب كل عامود من اليسار إلى اليمين أي :
formula_15
وضعية رايندال formula_16 هو المصفوفة :
حيث كل formula_17 هو عدد صحيح في formula_5 .
رايندول هو تركيب تحويلات (Transformations) على وضعيات رايندول وهذه التحويلات سنسميها الدورات (iterations) أي :
formula_19
كل formula_20 أي أن المجال والمدى هو وضعيات رايندول ,
عدد الدورات (formula_21)يتعلق بطول المفتاح (formula_22 ) وطول النص (formula_23 ) :
الدورة الأولى formula_24 هو XOR بين النص (الوضعية الأولى ) وبين مفتاح التشفير اي :
formula_25
الدورات التي تأتي بعد هذا سوف تُعنى بتحويل الوضعية الحالية , ولتتم هذا الخوارزمية تفعل هذا في مراحل :
حتى نُظهر المُعمى يكفي ان نقلب التحويلات أي : formula_26
عملية استبدال البايت هي مصفوفة S ثابتة دائما (اي عندما نريد التشفير عملية الاستبدال تتم من خلال هذا الصندوق دوما ) والاستبدال يتم وفقا للمصفوفة التالية :
مثال : إذا كان العدد الذي نريد استبداله هو 0x19 (حسب نظام العد الستة عشري) حينها يتم استبداله كالتالي : نذهب للسطر الأول العامود التاسع والناتج هو 0x4d أو 212(حسب القاعدة 10 ) كما هو مبين في الصورة :
وهي عملية تزيح اسطر الوضعية بإزاحة دائرية , وهي تزيح السطر ال-i : i ازاحات يساراً,
formula_27
وهي عملية خلط خطية للعواميد , بمعنى انها تتم بواسطة مصفوفة , وهذه العملية مُعرفة بواسطة عمليات في formula_28 . اي انه لكل عامود
formula_29
الحقل formula_30 مبني على متعدد الحدود formula_31 .
طريقة أخرى لتنفيذ العملية هي :
formula_32
في حين أَنَّ : formula_33 و- formula_34
مقلوب هذه التحويلة هو أيضا خطي وهو مشابه جدا للعملية نفسها ما عدا اننا نكتب d مكان f :
ببساطة هذه العملية تعمل التالي : تأخذ الوضعية الحالية وتعمل XOR مع مفتاح الدورة ( مفتاح الدورة لديه نفس طول الوضعية الحالية اي النص ) مفتاح الدورة نحسبه بواسطة خوارزمية إنتاج المفاتيح .
إذا كانت الوضعية الحالية هي : formula_35 ومفتاح الدورة هو formula_36 حينها :
formula_37
التشفير كالتالي :
حتى نفك التشفير كما ذكرنا في البداية يجب قلب ترتيب عمليات التشفير حسب الترتيب .
وهي ضرورية لإنتاج مفتاح جديد من الذي استخدمناه سابقا ( لذا لن نستخدم نفس المفتاح مرتين ) والخوارزمية مدخلها مصفوفة بكبر formula_42 كلمات (كل كلمة هي 32 بيت ) والخوارزمية تحسب مفتاح الدورة formula_43 (الدورة القادمة),ليكن W مصفوفة كلمات وهو بكبر formula_44 . حينها 4 الكلمات الأولى تصبح مفتاح الدورة الأولى و 4 الكلمات القادمة هي مفتاح الدورة الثانية وهكذا ... والخوارزمية هي كالتالي :formula_45
formula_46
لاحظ ان هذه الاعداد هي قوى العدد 2 في الحقل formula_30
بشكل عام لا يوجد برهان على أنَّ AES هي دالة وحيدة الاتجاه ولا حتى انه غير قابل للكسر ! ولكن بشكل عام يُعتقد أنها غير قابلة للكسر ما يجعل منها مرشحة لتكون دالة وحيدة الاتجاه , ولكن حتى الآن يُمكن اعتبارها كذلك وذلك لان نسبة البيانات التي نستطيع الحصول على مقلوبها هو صغير جدا.
بما أنَّ AES هو خوارزمية تشفير لذا فان له كثير من الاستخدامات التي تضم حماية المستخدم عبر الانترنت لتصل إلى حماية وضمان البيانات في البنوك والمعامل كما أن ل-AES استخدامات في المجالات العسكرية , ان ما ضمن ان AES نافع في كل هذه التطبيقات هو عدم وجود طريقة فعالة لكسره , كما أن بعض أشهر البرامج والبروتوكلات تعتمد على مقاومة AES للهجمات الإلكترونية ومنها :