مقياس التشفير الآمن

Spread the love

كاتبة: اسماء بنت محمد بن حامد الجهني

1.    المقدمة :

يعد مقياس التشفير المتقدم (AES Advance Encryption Standard) من أشهر خوارزميات تشفير المعلومات،
و هو شكل من أشكال التشفير التي طبقتها حكومة الولايات المتحدة في 2000م، و يعد أكثر أمانا من خوارزمية
مقياس تشفير البيانات (DES Data Encryption Standard ) .
في عام 1993م كانت حكومة الولايات المتحدة على علم بأن مقياس تشفير البيانات (DES) على وشك الإختراق،و لم تكن تعمل بفعالية عالية، كما أنها كانت تستخدم 56 بت فقط (56 bit) كحجم للمفاتيح المستخدمة في التشفير و الذي يعد عُرضة للإختراق (1).
و على الرغم من أن (DES) هو الأكثر إنتشارا في العالم إلا أنه في عام 2000م تم استبداله بمقياس التشفير  المتقدم AES  كحجر أساس في التشفير المستخدم من قبل الحكومة و البنوك.
و في عام 1997م أجرى المعهد الوطني للمعايير (ANSI American National Standards Institute) منافسة لمشروع مقياس التشفير المتقدم (AES) لكي يتخطى سلبيات مقياس تشفير البيانات (DES)  و يحقق المعايير و الشروط التالية:
1)    أن تكون خوارزمية التشفير معرفة علنيًا، و تكون السرية في المفتاح المستخدم.
2)    أن يستخدم التشفير المتماثل (Symmetric block cipher).
3)    يجب أن يصمم بحيث يمكن زيادة طول المفتاح حسب الحاجة.
4)    يجب أن تكون طريقة حساب الخوارزمية قابلة لتنفيذها إما عن طريق الأجهزة (hardware)أو البرمجيات (software).
5)    الخوارزميات التي تحقق الشروط السابقة سيتم الحكم عليها استنادًا إلى العوامل التالية:
•    الأمن.
•    الكفاءة والبساطة و المرونة.
•    التكلفة.
•    آلية التنفيذ.
فاز في هذه المنافسة جوان ديمان و فنست ريجمن (Joan Daemen and Vincent Rijmen) من بلجيكا،
و سميت الخوارزمية بـ Rijndeal نسبة إلى اسمي مبتكريها.

2.    مصطلحات:

قبل الحديث عن تفاصيل مقياس التشفير المتقدم (AES) لنتفق على مسميات سيتم استخدامها كثيرًا.
مقياس التشفير المتقدم(AES)  يستخدم خمس وحدات قياس للإشارة إلى البيانات و هي : البت(Bit) ، البايت(Byte) ، العبارة (Word)،المجموعة (Block) و أخيرًا المصفوفة (State) و الموضحة في الصورة(1). و تفصيلها كالآتي:
1)    البت (Bit) : و هي أصغر وحدة قياس حيث أنها تعبر عن الرقم الثنائي إما 0 أو 1 ، سيرمز لها بـ (b).
2)    البايت (Byte): و التي تتكون من 8 بت و التي سنعبر عنها باستخدام  Hexadecimal و سيرمز لها بـ (b).
3)    العبارة (word): و هي مجموعة من 32 بت أو ما يعادل 4 بايت ، و نرمز لها بـ (w).
4)    المجموعة(Block): مقياس التشفير المتقدم (AES) يستخدم المجموعة في التشفير و فك التشفير ، و هي عبارة عن 128 بت أي ما يعادل 16 بايت.
5)    المصفوفة (State): ليتم تطبيق العمليات الرياضية للتشفير و فك التشفير فإننا نقوم بتحويل المجموعة إلى مصفوفة، تحتوي المصفوفة على 16 بايت، و يكون حجم هذه المصفوفة 4×4 ، و يمثل كل عنصر من عناصر المصفوفة ببايت.

unit-mejor-eas

Figure 1 : وحدات القياس المستخدمة في  AES(1)

ينبغي أن نأخذ في عين الاعتبار أن المدخلات و المخرجات هي عبارة عن مجموعة (Block)  و تتكون من 128 بت. كما أن مقياس التشفير المتقدم (AES) يستخدم الدورات (Rounds) و التي تحتوي على أربع عمليات في التشفير و معكوسها في فك التشفير و التي سنتحدث عن تفاصيلها لاحقًا.

3.    خوارزمية Rijndeal:

ببساطة هي خوارزمية تعتمد على عمليات المصفوفات الرياضية، كما أنها تدعم 128 بت و 192 بت و 256 بت كطول للمفتاح المستخدم في التشفير، و تشفر نصوص من أحجام مختلفة.
أخذ في الاعتبار أثناء تصميمه أن يكون مقاوم لجميع الهجمات المعروفة، و أن يكون سريعًا و بسيطًا و لا يستهلك الكثير من الذاكرة.
و تتكون هذه الخوارزمية من دورات يمكن تكراراها، تتكون كل دورة من أربع عمليات لها معكوس ، و تسمى كل عملية بـطبقة(layer) و تقدم كل طبقة خاصية أمنية معينة.
يتم تطبيق الدورة على مجموعة من البت (Bit) و تكرر على حسب طول المفتاح، التوضيح في الجدول(1).

relation-between-number


Table 1 : العلاقة بين عدد الدورات و حجم المفتاح

——————————————————————————————————————————–
1)    Forouzan, Behrouz A. Cryptography and Network Security . s.l. : McGraw-Hill, 2007.

 
4.    هيكل كل دورة :

تحتوي الدورة على أربع عمليات تقدم كل منها خاصية أمنية في التشفير، هذه العمليات هي :
1)    الاستبدال (Substitution)
2)    التقليب (Permutation)
3)    المزج (Mixing)
4)    إضافة المفتاح الخاص بالدورة (Add Round Key)
والصورة التالية توضح اختلاف الدورة الأخيرة في العمليات حيث أنها تحتوي على جميع العمليات ما عدا المزج . و سنتناول تفاصيل كل عملية على حدة في النقطة القادمة.

hearchal-proceses


Figure 2 : هيكل لعمليات مقياس التشفير المتقدم (AES)

5.    عمليات التشفير:

قبل  بداية التشفير يتم تحويل النصوص إلى أرقام (Hexadicimal)  باستخدام الجدول (2) و الذي يوضح كل حرف و ما يقابله من قيمة، يتم تحويل هذه القيمة إلى (Hexadicimal) . و لأن المدخلات في مقياس التشفير المتقدم (AES)
هي بطول 128 بت أي ما يعادل 16 بايت، سوف يتم تقسيم النص إلى عدد متغير من المجموعات على حسب طول النص بحيث تضم كل مجموعة 16 بايت فقط و ترتب في مصفوفة (state). ثم تطبق عمليات التشفير التي سنتحدث عنها لاحقًا على هذه المصفوفة.

values-chracter
Table 2 : جدول يوضح كل حرف والقيم المقابلة له

‌أ.    الاستبدال (Substitution):
و يطلق عليها (SubBytes) و هي عملية استبدال غير خطية تستخدم S-Box و الذي يعمل على استبدال المدخلات بمخرجات مختلفة حسب جدول الاستبدال (2). تقوم عملية الاستبدال على مستوى البايت في المصفوفة فهذه العملية تستقبل بايت و تستبدله ببايت آخر باستخدام S-Box  لكل بايت، و بما أن لدينا 128 بت أي ما يعادل 16 بايت ، بالتالي نحتاج إلى 16 S-Box في هذه العملية.

Substitution-table


Table 3 : جدول الاستبدال (1)

—————————————————————————————————————————————————————-
1)     Federal Information. Announcing the ADVANCED ENCRYPTION STANDARD (AES). November 26, 2001.

الصورة التالية توضح كيف يتم استخدام الجدول لاستبدال البايت في المصفوفة، مع العلم أن هذه العلمية لا تأخذ في عين الاعتبار البايتات الأخرى في المصفوفة.

how-to-use-Substitution-table

Figure 3 : كيفية استخدام جدول الاستبدال

و بما أن عدد المدخلات في هذه العملية مساوي لعدد المخرجات فيكون لهذه العملية معكوسًا يتم استخدامه في فك التشفير، و معكوس هذه العملية يعمل بنفس الطريقة غير أنه يستخدم جدول الاستبدال العكسي الموضح.

Substitution-reverse-table

Table 4 : جدول الاستبدال العكسي (1)

————————————————————————————————————————————————————-
1)    Federal Information. Announcing the ADVANCED ENCRYPTION STANDARD (AES). November 26, 2001.

‌ب.    التقليب (Permutation):
و يطلق عليها (ShiftRows)  أي تعمل تغيير أماكن البايت بناءً على رقم الصف الذي ينتمي إليه، علما أن ترتيب الصفوف يبدأ من الرقم صفر. و على ذلك فإن الصف (0) لا نغير فيه أي شيء، و الصف (1) فنغير مكان أول بايت من اليسار ليصبح مكانه أول بايت من اليمين، و الصف (2) نكرر نفس الطريقة لـ 2 بايت و أخيرًا الصف (3) نكرر نفس الطريقة لـ 3 بايت.

way-shiftRows
Figure 4 : طريقة عملية shiftRows

و لإيجاد معكوس هذه العملية (Inv shiftRows) : نقوم بعكس تغير أماكن البايت كما في الصورة.

Inv-ShiftRows-ways
Figure 5: طريقة عملية Inv ShiftRows

‌ج.    المزج (Mixing) :
توفر هذه العملية خاصية إخفاء العلاقة بين النص و النص المشفر، حيث أنها تعمل على ضرب كل عمود من أعمدة المصفوفة مع مصفوفة ثابتة. و في هذه العملية نكون قد تعمقنا في التشفير إلى مستوى البت، كما أنها أول عملية تأخذ في عين الاعتبار البايت المجاورة للبايت المراد تشفيره.
و في الصورة التالية توضح كيفية الضرب بمصفوفة ثابتة.علما أن ضرب المصفوفات يستخدم عمليات رياضية بحتة لن نتطرق إلى تفاصيلها هنا.

Mixing-way
Figure 6 : طريقة عملية المزج 1))

و لإيجاد المعكوس يتم ضرب المصفوفة بمعكوس المصفوفة الثابتة.

matrix
Figure 7 : معكوس المصفوفة الثابتة 1))

‌د.    إضافة المفتاح الخاص بالدورة (Add Round Key):
و هذه أهم عملية في مقياس التشفير المتقدم(AES)  ،  تكمن أهمية عملية إضافة المفتاح الخاص بالدورة إلى  أن جميع العمليات السابقة هي معروفة و معلنة لدى الجميع، فسرية التشفير هي في سرية المفتاح المستخدم.
مقياس التشفير المتقدم (AES) يستخدم ما يسمى بمولد المفاتيح (Key Generator)  و الذي يعمل على توليد مفتاح لكل دورة من  مفتاح التشفير، كل دورة تحتاج إلى مفتاح دورة من طول 128 بت و هو نفس طول المصفوفة المراد تشفيرها.
تقوم هذه العلمية بجمع مفتاح الدورة القادم من مولد المفاتيح (Key Generator)  مع المصفوفة ، و عملية جمع المصفوفات هي جمع في مجال GF(28) أي تستخدم XOR ما بين مفتاح الدورة و المصفوفة.
و بما أن الجمع و الطرح في مجال GF(28)  كلاهما يستخدم XOR  فإن عملية إضافة مفتاح الدورة هي معكوس لنفسها، أي نستخدم نفس العملية في فك التشفير.

xor
Figure 8 : عملية XOR ما بين مفتاح الدورة و المصفوفة(2)

——————————————————————————————————————————————————————–
1)    Federal Information. Announcing the ADVANCED ENCRYPTION STANDARD (AES). November 26, 2001.
2)    wikimedia. AES-AddRoundKey. [Online] http://commons.wikimedia.org/wiki/File:AES-AddRoundKey.png.

6.    التشفير:

و الآن سنتحدث عن كيفية استخدام هذه العمليات في مقياس التشفير المتقدم (AES) في التشفير و فك التشفير. و كما أوضحنا سابقًا أن كل عملية مستخدمة في التشفير لها معكوس نستخدمه في فك التشفير، بحيث أن معكوس العملية يلغي تأثير العملية نفسها.
كما أننا نستخدم المفاتيح الخاصة بالدورة بترتيب عكسي حتى نلغي تأثيرها. الصورة التالي توضح ترتيب العمليات المستخدمة و ترتيب مفاتيح الدورة المستخدمة في التشفير و فك التشفير. فينبغي أن نلاحظ في الصورة (9) أن مفتاح الدورة الأول المستخدم في التشفير قد تم استخدامه في الدورة الأخيرة في فك التشفير.

cordenate
Figure 9 : ترتيب العمليات و المفاتيح في التشفير و فك التشفير(1)

7.    الملخص:

تم تصميم مقياس التشفير المتقدم (AES Rijndael)  بمواصفات عالية ، حيث أخذ في عين الاعتبار الأجهزة التي سوف تستخدمه،
و البرمجيات ، كذلك الذاكرة المستهلكة.  
و بالرغم من بساطته إلا أنه لم يوفر المعلومات الكافية التي تمكن المخترقين من الاختراق، فقد تلافى جميع طرق الهجوم السابقة. فإن العمليات الأربع المستخدمة في مقياس التشفير المتقدم تقوم بإخفاء أي علاقة ما بين النص الأصلي و النص المشفر، و كذلك تخفي العلاقة بين مفتاح التشفير و النص المشفر، مما يمنع المهاجمين من استخدام طرق التحليل المختلفة، كذلك لا يوفر أي معلومة للإحصائيات التي تعتمد على تكرار الحروف، و أيضا يستحيل على المهاجم أن يجرب جميع الاحتمالات الممكنة للمفتاح المستخدم و ذلك لكبر مجال المفتاح.
في الوقع، مقياس التشفير المتقدم (AES Rijndael) هو أفضل مزيج من البساطة و السرعة و الحماية.
1) Forouzan, Behrouz A. Cryptography and Network Security . s.l. : McGraw-Hill, 2007. 0073327530.

8.    المراجع:

1. Khan, Mansoor-uz-Zafar Dawood and Abdul Raouf. National computer conference. Advanced encryption standard. 2002.
2. Forouzan, Behrouz A. Cryptography and Network Security . s.l. : McGraw-Hill, 2007. 0073327530.
3. Information, Federal. Announcing the ADVANCED ENCRYPTION STANDARD (AES). November 26, 2001.
4. Brian Carter, Ari Kassin, and Tanja Magoc. Advanced Encryption Standard. October 30, 2007.
5. Ross Anderson, Eli Biham, Lars Knudsen. Serpent: A Proposal for the Advanced Encryption Standard.
6. wikimedia. AES-AddRoundKey. [Online] http://commons.wikimedia.org/wiki/File:AES-AddRoundKey.png

الكاتب geek4arab

geek4arab

مواضيع متعلقة

التعليقات مغلقة