تشفير

(تم التحويل من علم التشفير)
علا نويلاتي
ساهم بشكل رئيسي في تحرير هذا المقال

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

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

علم التعمية والتشفير

علم التعمية هو فن أو علم إخفاء المعلومات بحيث تكون بأمان عند إرسالها أو تخزينها ؛ أي بوسائل تحويل البيانات (مثل الكتابة) من شكلها الطبيعي المفهوم لأي شخص إلى شكل غير مفهوم بحيث يتعذّر على من لا يملك معرفة سرية محددة معرفة فحواها.

أما التشفير: يُعرَّف بأنه عملية تحويل المعلومات إلى شيفرات غير مفهومة (تبدو غير ذات معنى) لمنع الأشخاص غير المُرخَّص لهم من الاطلاع على المعلومات أو فهمها، ولهذا تنطوي عملية التشفير على تحويل النصوص العادية إلى نصوص مُشفَّرَة.


نبذة تاريخية

استخدم الإنسان التشفير منذ نحو ألفي عام قبل الميلاد لحماية رسائله السرية، وبلغ هذا الاستخدام ذروته في فترات الحروب؛ خوفاً من وقوع الرسائل الحساسة في أيدي العدو. كان يوليوس قيصر (Julius Caesar) من أشهر القدماء الذين امتهنوا الكتابة المعماة حيث قام بتطوير خوارزمية تعمية (مشفَر Cipher) سميت باسمه شيفرة قيصر (Caesar Cipher)؛ لتأمين اتصالاته ومراسلاته مع قادة جيوشه.

وظهرت فيما بعد العديد من الآلات التي تقوم بعمليات التشفير، ومنها Enigma machine. وشكَّل الكمبيوتر في بدايات ظهوره وسيلةً جديدة للاتصالات الآمنة، وفك تشفير رسائل العدو. واحتكرت الحكومات في فترة الستينيات حق التشفير وفك التشفير. وفي أواخر الستينيات، أسَّست شركة آي بي إم (IBM) مجموعةً تختص بأبحاث التشفير، ونجحت هذه المجموعة في تطوير نظام تشفير أطلقت عليه اسم لوسيفَر (Lucifer). وكان هذا النظام مثاراً للجَدَل، ورغم تحفّظات الحكومة الأمريكية علية لاعتقادها بعدم حاجة الشركات والمؤسسات الخاصة إلى أنظمة التشفير، إلا إنه قد حقق انتشاراً واسعاً في الأسواق. ومنذ ذلك الحين، أخذت العديدُ من الشركات تقوم بتطويرَ أنظمة تشفير جديدة، مما أبرز الحاجة إلى وجود معيار لعمليات التشفير.

ومن أبرز المؤسسات التي أسهمت في هذا المجال، المعهد الوطني للمعايير والتكنولوجيا (National Institute of Standards and Technology- NIST) المعروف سابقاً باسم المكتب الوطني الأمريكي للمعايير (U.S. National Bureau of Standards)، إذ طوَّر هذا المعهد عام 1973 معياراً أطلق عليه معيار تشفير البيانات (Data Encryption Standard- DES). ويستنِد هذا المعيار إلى خوارزمية لوسيفَر (Lucifer algorithm) التي تستخدِم مفتاح تشفير بطول 56 بت (bit)، وتشترط أن يكون لكل من المرسِل والمستقبِل المفتاحَ السري ذاته. وقد استخدمت الحكومة هذا المعيار الرسمي عام 1976، واعتمدته البنوك لتشغيل آلات الصراف الآلي (ATM).



الأهمية

إن منافع الكتابة المشفرة معترف بها بشكل جيد, فالتشفير يمكن أن يحمي الاتصالات وخزن المعلومات من الوصول والكشف الغير مخول ,كما يحمي المعلومات من التزييف والاختراق, فالتشفير أداة أمن معلومات ضرورية ويجب أن تكون متوفرة بسهولة للمستعملين, ضد الفوضويين السريين, التشفير يحل معظم مشاكل الأمن ويواجه تهديدات المخترقين على سبيل المثال التشفير أن يوقف لصوص الحاسب , ولكن نظام التشفير يمكن أن يخترق عن طريق برامج تقوم بتخريب عملية التشفير ,لذلك نحتاج إلى إدارة وترتيب ,تصميم جيد,سيطرة على الدخول, وتأمين برامج حماية من خلال استخدام العديد من خوارزميات التشفير التي سنقوم باستعراضها.

  • الحفاظ على أمن المعلومات وتأمين نقلها بسرية تامة من طرف إلى آخر دون تسرب أي من المعلومات عند تبادلها.
  • الحفاظ على سرية الملف من قبل مستثمر عادي من خلال القيام بتشفير الملفات وفك تشفيرها عند حاجة المستثمر

السرية أو الخصوصية (Confidentiality)

هي خدمة تستخدم لحفظ محتوى المعلومات من جميع الأشخاص ما عدا الذي قد صرح لهم الإطلاع عليها.

تكامل البيانات (Integrity)

وهي خدمة تستخدم لحفظ المعلومات من التغيير (حذف أو إضافة أو تعديل) من قبل الأشخاص الغير مصرح لهم بذلك.

إثبات الهوية (Authentication)

وهي خدمة تستخدم لإثبات هوية التعامل مع البيانات (المصرح لهم).

عدم الإنكار (Non-repudiation)

وهي ضمان عدم الإنكار من قبل مرسل الرسالة أو الجهة التي طلبت خدمة ما. إذاً الهدف الأساسي من التشفير هو توفير هذه الخدمات للأشخاص ليتم الحفاظ على أمن معلوماتهم. وكما هو معلوم فلا يمكن الاستغناء عن ميزة أمن المعلومات في المواقع الحساسة مثل البنوك والتجارة الالكترونية والمواقع الأمنية


عرض لبعض الخوارزميات المتبعة لتشفير المعلومات

خوارزمية قيصر (Caesar Cipher)

في التشفير,شيفرة قيصر هي واحدة من أبسط تقنيات التشفير و أكثرها انتشاراً. و هي نوع من أنواع خوارزميات التبديل التي يتم فيها تبديل كل حرف من النص الأصلي بالحرف الثالث بعده في الأبجدية فمثلاً نستبدل الحرف A بالحرف D و الحرف B بالحرف E و هكذا بالنسبة لباقي الأحرف.

فعلى سبيل المثال إذا أردنا تشفير ait pedia باستخدام خوارزمية القيصر تصبح بالشكل :

shgld dlw 

Plaintext A I T P E D I A Key +3 +3 +3 +3 +3 +3 +3 +3 Ciphertext D L W S H G L D

من عيوب هذه الطريقة:

لو نظرنا إلى ھذه الطريقة من جانب أمني لرأينا أنھا سھلة الكسر لدينا 26 احتمالية (عدد الحروف الانجليزية) أو بالأصح 52 احتمالية لأن الحرف لا يساوي نفسه وتوقع هذه الأحرف سهل جداً باستخدام الحلقات. فإذا أردنا كسر تشفير حرف ما فإننا نجرب جميع الحروف ما عدا الحرف نفسه و هذه من الطرق المعروفة لكسر التشفير و تسمى البحث الشامل Brute Force Search.

خوارزمية الاستبدال (Substitution Cipher)

إن شيفرة القيصر هي إحدى أنواع شيفرات الاستبدال و لكنها من أبسط الأنواع حيث يمكن ابتكار شيفرات كثر تعقيداً باستخدام شيفرة الاستبدال. فمثلاً يوضح هذا الجدول خوارزمية استبدال بسيطة باستخدام المفتاح 123 Plaintext A I T P E D I A Key +1 +2 +3 +1 +2 +3 +1 +2 Ciphertext B K W Q G G J C ويمكن استخدام خوارزمية استبدال أكثر تعقيداً بمقابلة كل حرف من الأبجدية بحرف آخر لا على التعيين. فمثلاً نستخدم المفتاح التالي:

والسؤال هو: لماذا قمنا باختيار المفتاح (DKVQFIBJWPESCXHTMYAUOLRGZN) و هل له قاعدة معينة؟ إن هذا المفتاح يتم اختياره عشوائياً و ليس هناك قاعدة معينة لاختياره و لكن نحاول قدر الإمكان أن نوزع الحروف بشكل متباعد. فعلى سبيل المثال: إذا أردنا تشفير ait pedia باستخدام هذه الخوارزمية تصبح بالشكل

dwu tfqwd

Plaintext A I T P E D I A Ciphertext D W U T F Q W D تعتبر محاولة كسر خوارزمية الاستبدال البسيطة أكثر صعوبة من خوارزمية قيصر ففي حين أن معرفة الحرف الأصلي المقابل لحرف معمى في خوارزمية قيصر يؤدي لمعرفة باقي الأحرف فإن الوضع مختلف تماماً في خوارزمية الاستبدال حيث أن مجال القيم أو المحاولات اللازمة لكسر الخوارزمية هو 26×25×24×…×1 وهو يساوي 26! ويساوي تقريبا 4×1026 وهو مجال كبير يوفر مناعة أكبر ضد الاختراق. إن هذه الطريقة ليست قوية بما فيه الكفاية و تكمن المشكلة أن اللغة (سواء العربية أو الانكليزية) فيها تكرار فالحروف ليست متساوية في الاستخدام تتم محاولات الإختراق لهذه الخوارزمية بالإعتماد على تواتر الأحرف للغة الأصلية حيث يتم حسابها عن طريق اختبار عدد كبير من النصوص فإذا افترضنا مثلا أن تواتر الحرف e هو 13% فإننا نقوم بحساب التواتر للأحرف في اللغة المعماة فإذا وجدنا أن حرف t مثلا له تواتر قريب من هذا التواتر فهذا غالباً يؤدي إلى أن الحرف t في اللغة المعماة يقابله الحرف e في اللغة الأصلية . و على سبيل المثال نأخذ النص التالي: UZQSOVUOHXMOPVGPOZPEVSGZWSZOPFPESXUDBMETSXAIZ VUEPHZHMDZSHZOWSFPAPPDTSVPQUZWYMXUZUHSX EPYEPOPDZSZUFPOMBZWPFUPZHMDJUDTMOHMQ. و لمعرفة النص الأصلي نحسب الحرف الأكثر تكراراً في النص و على سبيل التخمين نجعل P=e , Z=t و على سبيل التخمين أيضاً نجعل ZW= th فيكون ZWP=the و بعد المحاولات نحصل على النص التالي: it was disclosed yesterday that several informal but direct contacts have been made with political representatives of the viet cong in Moscow


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

لا تعتمد الخوارزميات الحديثة للتشفير على الخوارزمية فقط؛ حيث أن معظم الخوارزميات معروفة ومنتشرة وإنما تعتمد على رقم يدعى المفتاح Key يتم استعماله في خوارزمية تشفير المعلومات وفي خوارزمية فك التشفير أيضاً حيث تعتبر عملية فك شيفرة المعلومات في حال وجود المفتاح عملية سهلة وسريعة بينما هي عملية صعبة جداً إن لم تكن مستحيلة في معظم الحالات العملية.

تنقسم الخوارزميات التي تستخدم المفتاح إلى قسمين:

  • خوارزميات التشفير بالمفتاح المتناظر (Symmetric Key).
  • خوارزميات التشفير بالمفتاح غير المتناظر (المفتاح العام) Public Key – Assymetric Key.

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


يوفر التشفير بالمفتاح المتناظر الفائدتين التاليتين:

  • الفعالية: حيث أن المستخدمين لا يعانوا من تأخير طويل نتيجة عمليتا التشفير وفك التشفير.
  • إثبات الهوية: يمنح التشفير بالمفتاح العام درجة مقبولة من إثبات هوية طرفي الاتصال حيث أنه لا يمكن فك تشفير المعلومات باستخدام مفتاح آخر غير الذي استخدم في التشفير، ويستطيع الطرفان التحقق من هوية الطرف الآخر طوال فترة بقاء المفتاح التناظر غير معروف لطرف ثالث وطالما أن المعلومات المستقبلة لها معنى وضمن المعقول.

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


تعد خوارزمية DES(Data) Encryption System أحد الخوارزميات المتناظرة المستخدمة بشكل كبير. خوارزمية DES :

هي من أشهر الخوارزميات التشفير المتناظرة شهرة تعتمد في التشفير على أخذ كتلة كتلة وتشفيرها وفق الخطوات التالية:

  • يجب أن يكون حجم كل كتلة 64 بت وتقسم إلى جزئيين كل جزء عبارة عن 32 بت, عند التشفير وفك التشفير * نتبع الطريقة نفسها عم فارق أن subKey عند فك التشفير يكون مقلوبا

ملاحظة: إن هذه الخوارزمية عند تطبيقها بشكل عتادي تصبح أسهل وأفضل Feistal function:

يطبق عمليات xor بين ال subkey و نصف ال block وتجمع النتيجة مع القسم الثاني من ال block ثم نعمل تبديل بين القسمين من أجل المرحلة الثانية التي نقوم فيها بنفس العمليات السابقة حتى نصل للمرحلة الأخيرة التي فيها لا نبدل بين القسمين

في كل مرحلة من المراحل ال 16 نقوم بأربع عمليات :

  • التوسيع(expansion): وفيها نأخذ نصف ال block ونوسعه إلى 48 بت باستخدام طريقة معينة نقوم على مبدأ تكرار بعض البتات للتوسعة رمزنا لها ب e في الشكل
  • keyMixing: نقوم فيها بدمج المفتاح مع النتيجة باستخدام عمليات xor النتيجة من هذه المرحلةحيث أن المفاتيح مرمزة على 48 بت ويستخدم واحد لكل مرحلة وهي مشتقة من ال key الأصلي
  • التبديل(substitution): بعد دمج ال subkey ال block تجزأ إلى ثمانية أجزاء وكل جزء عبارة عن 6 بت وذلك قبل معالجتها باستخدام s-boxes (substitution) حيث أن كل واحدة من هذه ال boxes وباستخدام بتات ال s-boxes يتم تبديل البتات الستة لجزء ال block بأربعة وذلك وفق تحويل غير خطي والتالي نحصل على 4*8 أي 32 بت

تؤمن ال s-boxesنواة التشفير في خوارزمية DES فبدونها تكون الشيفرة خطية وبالتالي تكون الشيفرة سهلة الكسر permutation (التباديل): ال 32 بت التي مَثلت خرج المرحلة السابقة والتي جاءت من s-boxes ليعاد ترتيبها وفقا لتبديل ثابت يسمى ال p_box

كيفية توليد ال subKey: نبدأ من مفتاح طرله 56 بت يتم اختياره من permuted choice1 (pc-1) والتي تكون 64 بت حيث أن ال 8 بت الباقية إما يتم تجاهلها أو تستخدم ك paritybit , ال 56 بت بعد ذلك تقسم إلى قسمين متساويين 28 بت لكل قسم وكل من القسمين بعد ذلك يتم معالجته بشكل منفصل بطريقة مختلفة كل منهما يتم عمل دوران يساري left Rotate بمقدار واحد أو 2 بت (يتم تحديدها لكل مرحلة) ثم 48 بت ال sub Key نختاره من pc-2 (24 بت من القسم اليساري و 24 بت من القسم اليميني وهذا يعني ) إن صف المفاتيح من أجل فك التشفير مشابه ولكن يكون بترتيب معاكس لترتيبها عند التشفير

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


جاء التشفير اللامتناظر حلاً لمشكلة التوزيع غير الآمن للمفاتيح في التشفير المتماثل، فعوضاً عن استخدام مفتاح واحد، يستخدِم التشفير اللامتناظر مفتاحين اثنين تربط بينهما علاقة. ويُدعى هذان المفتاحان بالمفتاح العام (public key)، والمفتاح الخاص (private key). ويكون المفتاح الخاص معروفاً لدى جهة واحدة فقط أو شخص واحد فقط؛ وهو المرسِل، ويُستخدَم لتشفير الرسالة وفك شيفرتها. أما المفتاح العام فيكون معروفاً لدى أكثر من شخص أو جهة، ويستطيع المفتاح العام فك شيفرة الرسالة التي شفَّرها المفتاح الخاص، ويمكن استخدامه أيضاً لتشفير رسائل مالك المفتاح الخاص، ولكن ليس بإمكان أحد استخدام المفتاح العام لفك شيفرة رسالة شفَّرها هذا المفتاح العام، إذ إن مالك المفتاح الخاص هو الوحيد الذي يستطيع فك شيفرة الرسائل التي شفرها المفتاح العام.

يتطلب التشفير بالمفتاح العام عمليات أكثر من العمليات التي يتطلبها التشفير بالمفتاح المتناظر لذلك لا تعتبر طريقة المفتاح العام مناسبة عند وجود كمية كبيرة من المعلومات

يستطيع أي شخص فك شيفرة رسالة مشفرة بالمفتاح الخاص لكيان ما وذلك باستخدام المفتاح العام المرتبط به والمنشور أساساً لكل من يريده وبالتالي لا تصلح الطريقة العكسية لإرسال معلومات سرية، إذاً ما هي الفائدة من مثل هذا الإرسال؟.

في الحقيقة أن أهمية هذا النوع من التشفير يكمن في إمكانية قيام المرسل بإرسال توقيعه الرقمي مشفراً بواسطة المفتاح الخاص ويقوم المستقبل بفك الشيفرة باستخدام المفتاح العام فإذا وجد أن التوقيع صحيح فهذا يعني أن المرسل هو الطرف الصحيح المتوقع وإلا عند عدم صلاحية التوقيع فهذا يعني أنه ربما يكون هناك من ينتحل شخصية المرسل الحقيقي. ويُدعى نظام التشفير الذي يستخدم المفاتيح العامة بنظامRSA ورغم أنه أفضل وأكثر أمناً من نظام DES إلا إنه أبطأ ؛ إذ إن جلسة التشفير وجلسة فك التشفير يجب أن تكونا متزامنتين تقريباً.

خوارزمية RSA ( التشفير غير المتناظر) : وضعت خوارزمية التشفير هذه في عام 1977 من قبل العلماء Ron Rivest و Adi Shamir و Len Adleman في معهد ماسشيوتس للتكنولوجيا في الولايات المتحدة الأمريكية MITوسميت اختصارا ً لأسمائهم RSA. لم تنشر الخوارزمية حتى عام 1997 بسبب سريتها. تحتوي هذه الطريقة على مفتاحين عام وخاص, العام يكون معروفا ً من قبل أي شخص ويستعمل لتشفير الرسائل, بينما يكون الخاص سريا ً ويستخدم لفك تشفير الرسائل. تعتمد هذه الخوارزمية في التشفير على مبدأ المفاتيح الغير متناظرة ,حيث تقوم بالتشفير باستخدام المفتاح العام المكون من الثنائية (N,E) باستخدام علاقة رياضية, وعند فك التشفير تستخدم المفتاح الخاص المكون من الثنائية (N,D) باستخدام علاقة رياضية مناظرة لعلاقة التشفير الطول المستخدم عادة لمفتاح التشفير يكون ممثل على 1024 بت

الشرح التفصيلي لخوارزمية الRSA :

  • أولاً توليد المفتاح العام(N,E)  :

توليد عددين أوليين كبيرين P,Q N=P*Q M=(P-1)*(Q-1) توليد عدد صغير E بحيث يحقق الشروط التالية: أكبر من 1 وأصغر من N (1<E<N) أن يكون E وM أوليان فيما بينهما أي القاسم المشترك الأكبر لهما 1

  • ثانياً توليد المفتاح الخاص(N,D)  :
   نولد العدد D بحيث :

D = (1+F * M) / E 1+F*M) mod E=0) D < >E

  • ثالثاً تابع التشفير:
       T عدد صحيح موجب يمثل العدد المدخل 
       C عدد صحيح موجب يمثل تشفير العدد T وفق العلاقة:
                 Mod N T^E =c 
  • رابعاً تابع فك التشفير:
                 Mod N C^D =T

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

طول المفتاح وقوة التشفير

تتعلق قوة التشفير بشكل عام بصعوبة اكتشاف المفتاح والذي بدوره يتوقف على خوارزمية التشفير المستخدمة وطول المفتاح، فعلى سبيل المثال: ترجع صعوبة اكتشاف المفتاح في خوارزمية RSA المستخدمة بشكل واسع في طريقة التشفير بالمفتاح العام إلى الصعوبة في تحليل أرقام كبيرة إلى عواملها. يتم عادة الربط بين قوة التشفير وطول المفتاح حيث أنه من الممكن اعتبار أن كلما زاد طول المفتاح أدى ذلك إلى قوة تشفير أكبر ولكن كما ذكرنا في البداية فإن قوة التشفير تعتمد على الخوارزمية المستخدمة في التشفير أيضاً و بالتالي فإنه لتحقيق درجة محددة لقوة التشفير يلزمنا استخدام أطوال مفاتيح مختلفة حسب الخوارزمية، فعلى سبيل المثال استخدامنا لخوارزمية تشفير بالمفتاح المتناظر مع مفتاح طوله 128 بت يعطينا قوة تشفير أكبر من استخدام RSA مع مفتاح له نفس الطول وذلك عائد إلى أنه في RSA نستطيع استخدام مجموعة جزئية فقط من القيم الممكنة لطول مفتاح محدد وذلك تابع إلى المسألة الرياضية المستخدمة، بينما نجد أننا نستطيع استخدام جميع التباديل الممكنة لطول محدد في خوارزميات التشفير بالمفتاح المتناظر، لذا فإن خوارزمية RSA تحتاج لمفتاح أطول للحصول على قوة أكبر في التشفير, مما تحتاجه خوارزميات التشفير المتناظرة

  • كما أن القدرة على فك تشفير المعلومات يعطي مصدر قوة عسكرية لذلك وضعت حكومة الولايات المتحدة قيود على تصدير برامج التشفير بما في ذلك البرامج التي تعطي الإمكانية لاستخدام الخوارزميات المتناظرة مع مفتاح أطول من 40 بت. *


انظر أيضا

الهوامش

المصادر

  • Helen Fouché Gaines, “Cryptanalysis”, 1939, Dover. ISBN 0-486-20097-3
  • David Kahn, The Codebreakers - The Story of Secret Writing (ISBN 0-684-83130-9) (1967)
  • Abraham Sinkov, Elementary Cryptanalysis: A Mathematical Approach, Mathematical Association of America, 1966. ISBN 0-88385-622-0

وصلات خارجية

الكلمات الدالة: