تشفير بالمفتاح المتناظر

تشفير بالمفتاح المتناظر تقنية مستخدمة في معظم الخوارزميات، حيث يتيح مفتاح التشفير أن يستخرج منه قيمة مفتاح فك التشفير والعكس بالعكس.

الخوارزمية المتناظرة DES

صممت الخوارزمية من قبل NIST وذلك لغرض حماية المعلومات غير المصنفة داخل الولايات المتحدة.
تم اعتماد طول المفتاح ليكون 64 بت ولكن يستعمل منها فقط 56 بت فقط بشكل فعال وتستعمل 8 بتات الباقية كخانات تدقيق للأخطاء، وبما أن الخوارزمية متناظرة يستعمل نفس المفتاح للتشفير وفك التشفير وبالرغم من إمكانية اختراق خوارزمية DES فإنها ما زالت تستخدم بشكل كبير ولكن تم استبدالها في الآونة الأخيرة بخوارزمية TribleDES حيث يتم تطبيق خوارزمية DES ثلاث مرات بمفاتيح مختلفة.

أنماط خوارزمية DES

ECB (Electronic CodeBook) Mode : Try
يتم التشفير في هذا النمط على أساس كتل Blocks حجم الواحدة منها 8 بايتات ويجري تشفير وفك تشفير كل كتلة بمعزل عن باقي الكتل.
ميزات النمط :
بما أنه يجري تشفير وفك تشفير كل كتلة بمعزل عن باقي الكتل فإن حدوث خطأ في أحد الكتل المشفرة لن يؤثر على باقي الكتل ومن الممكن أيضا فك تشفير الكتل الواصلة بينما قد تكون بقية الكتل لم تشفر بعد عند المرسل، هذه الحالة مشابهة لما يحدث عند استخدام هذا النمط في تشفير حقول قاعدة بيانات حيث يمكن الاستفادة من الحقول الواصلة بدلا من انتظار وصول بقية الحقول.
سلبيات النمط :
-يتم التشفير في هذه الحالة على المعلومات المرسلة فقط، ففي حال وجود معلومات ثابتة مثل ترويسة الرسائل الصادرة (جامعة دمشق – كلية الهندسة المعلوماتية) فإن نتيجة التشفير دائما ستكون واحدة مما يعطي معلومة للمخترقين تسهل عليهم مهمة اكتشاف المفتاح المستخدم في التشفير.
-في حال استخدامه في المعاملات المصرفية فإن تغيير بت وحيد في الكتلة المشفر قد تحول $1 إلى رقم أكبر بكثير من ذلك.
-يتعرض هذا النمط إلى الهجوم المسمى "هجوم التكرار" حيث أنه من الممكن أن يقوم المخترق بتكرار الكتلة التي تحمل رقم $1 أكثر من مرة في حال استطاع تخمين الكتلة مما يسبب تغيير المبلغ الأصلي.

CBC (Cipher Block Chaining) Mode

يمكن تلخيص طريقة عمل النمط بالخطوات التالية :
-يتم تطبيق عملية XOR على الكتلة الأولى من الرسالة الأصلية P1 مع شعاع التهيئة والذي هو عبارة عن بيانات عشوائية يجب أن تتغير في كل جلسة تشفير (IV) وتكون نفسها لدى من المرسل والمستقبل ومن ثم يتم تشفير الناتج مما ينتج الكتلة المشفرة الأولى C1.
-تطبق عملي XOR على الكتلة المشفرة Cn والكتلة Pn+1ويتم تشفير الناتج مما يعطي الكتلة المشفرة Cn+1.
ميزات النمط :
-يعتبر هذا النمط أقل تعرضا للاختراق بالمقارنة مع النمط السابق ECB حيث أنه بتغيير شعاع التهيئة لن يكون للرسائل المتشابهة نفس ناتج التشفير.
-تغير بت وحيد في أي رسالة عن الرسالة الأخرى بنتج عنه تغير كافة الكتل التي بعده.
سلبيات النمط :
من الممكن أن ينجح المخترق بإجراء تغيير محلي في كتلتين متعاقبتين ولا يؤثر ذلك على بقية الكتل مما يجعل هذا النمط عرضة لبعض الهجومات.

PCBC (Propagating Cipher Block Chaining) Mode

يعمل هذا النمط بطريقة مشابهة لعمل النمط السابق CBC، الاختلاف بين النمطين أنه بعد حساب كتلة التشفير الأولى وإنتاج C1 فإن الكتلة الثانية سوف يتم حسابها بإجراء عملية XOR على كل من C1 و P1 و P2 ومن ثم يتم تشفير الناتج ليظهر لدينا كتلة التشفير C2.
أي أنه يتم إجراء عملية XOR على Cn و Pn و Pn+1 ويشفر الناتج مما ينتج كتلة التشفير Cn+1.
ميزات النمط :
يمنع هذا النمط المخترق من إجراء تغييرات محلية على الكتل المشفرة مما يسد الثغرة الموجودة في النمط السابق.
سلبيات النمط :
لايمكن في الهذا النمط فك تشفير الكتلة Ci إلا بعد فك تشفير جميع الكتل C1,…,Ci-1 حيث أنه يلزمنا Pi-1 لفك تشفير Ci.
CFB (Cipher FeedBack) Mode
يستخدم هذا النمط في التطبيقات التي لاتتعامل مع كتل البيانات ذات الثمانية بايتات مثل تطبيق Telnet حيث أنه بمجرد ضغط المستخدم لمحرف ما فإنه يرسل مباشرة من تطبيق الزبون إلى المخدم.
يمكن تلخيص خطوات التشفير في هذا النمط كالتالي :
1.يتم تهيئة شعاع مكون من ثمانية بايتات بقيمة تختلف من stream لآخر.
2.نقوم بتشفير شعاع التهيئة الناتج لينتج لدينا مسجل ازاحة من ثمانية بايتات.
3.نجري عملية XORعلى الثمانية بتات الأولى من الرسالة الأصلية والثمانية بتات الأولى من اليسار من مسجل الإزاحة لينتج لدينا الثمانية بتات الأولى من النص المشفر.
4.يتم ازاحة مسجل الإزاحة إلى اليسار بمقدار ثمانية بتات ونقوم بوضع الخانات الثمانية الناتجة عن تشفير الخطوة السابقة في أقصى يمين مسجل الإزاحة.
5.يتم تشفير مسجل الإزاحة.
6.نجري عملية XOR على الثمانية بتات التالية من الرسالة الأصلية مع الثمانية بتات الأولى من اليسار من مسجل الإزاحة لينتج لدينا الثمانية بتات الثانية من النص المشفر.
7.يتم تكرار الخطوات من 4 إلى 6 حتى تشفير كامل النص.
ويتم فك التشفير في هذا النمط كالتالي :
1.يتم تهيئة شعاع مكون من ثمانية بايتات بقيمة مساوية للقيمة المستخدمة في التشفير.
2.يتم تشفير شعاع التهيئة الناتج لينتج لدينا مسجل ازاحة من ثمانية بايتات.
3.نجري عملية XOR على الثمانية بتات الأولى من النص المشفر والثمانية بتات الأولى من اليسار من مسجل الإزاحة لينتج لدينا الثمانية بتات الأولى من النص الأصلي.
4.يتم ازاحة مسجل الإزاحة إلى اليسار بمقدار ثمانية بتات ونقوم بوضع الخانات الثمانية الناتجة عن فك التشفيرمن الخطوة السابقة (الثمانية بتات الأخيرة من النص الأصلي) في أقصى يمين مسجل الإزاحة.
5.يتم تشفير مسجل الإزاحة.
6.نجري عملية XOR على الثمانية بتات التالية من النص المشفر مع الثمانية بتات الأولى من اليسار من مسجل الإزاحة لينتج لدينا الثمانية بتات الثانية من النص الأصلي.
7.يتم تكرار الخطوات من 4 إلى 6 حتى فك تشفير كامل النص.
ميزات النمط :
-مفيد للتطبيقات التي لا تتعامل مع كتل من البايتات مما يمكنها من تشفير وإرسال كل بايت على حده.
-حصول خطأ في الأحد البايتات المشفرة ينتج عنه خطأ بعد ثمانية بايتات بسبب دمج البايت المشفر في أقصى يمين مسجل الإزاحة مما يمنع المخترقين من إجراء تغييرات محلية على البايتات لأنها حتما ستؤثر على بقية الرسالة.
سلبيات النمط :
-في حال كان المخترق يعرف النص الأصلي فإنه يستطيع اجراء تغيير على أكثر من بت بحيث يكون النص الناتج عن فك التشفير في الطرف الآخر كما هو متوقع.
-يعتبر هذا النمط بطيئا بالمقارنة مع نمط ECB لأن كل بايت يتم تشفيره على حده أي أن الزمن اللازم لإتمام تشفير كتلة من ثمانية بايتات هو ثمانية أضعاف الزمن اللازم في نمط ECB.
التشفير في النمط OFB (Output FeedBack) Mode :
يشبه هذا النمط النمط السابق فيما ماعدا أن البايتات المضافة إلى مسجل الإزاحة تكون من المسجل نفسه أي أن الإزاحة هي إزاحة دورانية إلى اليسار، ويستخدم هذا النمط في تشفير دفق من الصوت أو الصورة.
ميزات النمط :
وجود خطأ في أحد البتات المشفرة ينتج عنه خطأ في بت وحيد في النص الناتج عن التشفير مما يجعل هذا النمط مناسبا لنقل دفق الصوت والصورة (لاينطبق هذا الأمر على النصوص) حيث أنه من المسموح وجود عدد قليل من الأخطاء.
ملاحظة : يجب تغيير شعاع التهيئة عند الإمكان لكي يمنع المخترقين من الاعتماد على إزاحة ثابتة وعدم استخدام المفتاح نفسه مرتين.