شرح أهم خوارزميات التشفير وفك التشفير 2017 |Encrypt And Decrypt Algorithms| - عراق كودرز | iraq coders

اكبر تجمع لطلبة الحاسبات في العراق

الجمعة، 7 يوليو 2017

شرح أهم خوارزميات التشفير وفك التشفير 2017 |Encrypt And Decrypt Algorithms|

السلام عليكم ورحمه الله وبركاته 

سنتناول اليوم موضوع مهم خاصة للباحثين عن المواضيع التي تخص تشفير البيانات والمعلومات بأستخدام الخوارزميات الامنية الرئيسية والاكثر استخداماً. 



نبداً مباشرة وبدون أطاله وبدون مقدمات بشرح خوارزميات التشفير 

 

 أولاً : Triple DES

هي احد انواع خوارزميات التشفير وتعتبر من انواع خوارزميات تشفير الكتل ( BLOCK )  وتعتبر بديل محسن لخوارزمية الـ DES التي كانت معروفه بأمانها, ولكن بعدما تم اختراقها وكشف كيفيه اختراقها أصبحت الحاجة لبديل مهمه جداً "ولعل العيب الأساسي في DES هو ان طول مفتاح التشفير قصير جدا إذ كان طوله 56 بت" , واحد الاقتراحات لسد هذه الثغرة هو اطالة المفتاح ولكن الخوارزمية الاصلية قد لا تكون ذات نفع مع مفتاح طويل لذا تضمن الاقتراح أيضا ان تشفر الرسالة ثلاث مرات بواسطة مفاتيح مختلفة , هذا طبعا سد أحد الثغرات ولكن ثغرات أخرى ظلت دونما تغيير وقد اضعفت هذه الثغرات 3DES وبالرغم من هذا فانه ما زال امنا . هذا التشفير طُور عام 1998 وقد حل مكان DES حتى كُشف النقاب عن معيار تشفير آخر وهو AES هذا المعيار كان بديلا لهما واكثر امانا . تطوير هذا التشفير كان لكي يوفروا الوقت بدل أن يبدأوا بتطوير وسائل جديدة قرروا استخدام ما كان موجودا والبناء عليه لذا فهو شائع الاستخدام ليومنا هذا . ويعني الـ 3DES المستخدم في Triple DES حل لأحد مشاكل الثغرة وهي طول المفتاح القصير , حيث أن الـ 3DES تعني ضرب المفتاح الاصلي ( 56 بت * 3 ) وبالتالي فأن طول المفتاح في Triple Des = 56 * 3 = 168 . واني اهم الايجابيات التي تتميز بها هذهِ الخوارزمية عن خوارزمية  الـ Des هي اكثر أماناً وتتفوق خوارزمية Des على خوارزمية Triple من ناحية السرعة حيث أن الـ Triple بطيئه المعالجة.

كيف تتم عملية تشفير النص الواضح في Triple Des؟ 

1- تشفير كتل النص الواضح بأستخدام ( Single Des Block With key 56 bit (k1) )
2- تشفير مخرج (Output) العملية الاولى من جديد بأستخدام ( Single Des Block With key 56 bit (k2) )
3- تشفير مخرج العملية الثانية من جديد بأستخدام ( Single Des Block With key 56 bit (k3) )
4- المخرج النهائي هو النص المشفر ( Ciphertext ) 

كيف تتم عملية فك تشفير النص المشفر في Triple Des؟ 

تتم عملية فك التشفير كما تتم عملية التشفير والفرق الوحيد هو ان العملية فك التشفير ستجري عكس عملية التشفير حيث يبداً المستخدم بفك تشفير K3 ومن ثم يفك تشفير K2 ومن ثم K1 والنتيجة النهائيه هي النص الواضح 


Encryption Scheme



ثانياً : Blowfish

وهي عباره عن خوارزمية تشفير كتل (Blocks) متماثل (Symmetric). والتي يمكن أستخدامها بدلاً من خوارزمية الـ Des في تشفير البيانات.حيث أن هذهِ الخوارزمية تأخذ لمفتاحها اطوال مختلفه (من 32 بت الى 448 بت) حيث يتراوح الـ length key بين هاذين الرقمين المذكورين. وهذا ما يجعلها مثاليه وتمتاز بسرعه عالية مقارنة بخوارزمية الـ Des.


كيف تعمل خوارزمية Blowfish ؟

تقسم هذهِ الخوارزمية من حيث العمل الى جزئين 

الجزء الاول : توسيع المفتاح  ( Key-expansion
الجزء الثاني : تشفير البيانات (Data Encryption)


الجزء الاول : Key-Expansion

يتم توسيع المفتاح المتكون من 448 بت الى مفاتيح فرعيه مجموعها 4168 بايت . ويتم توليد هذهِ المفاتيح قبل عملية التشفير وفك التشفير بقليل. حيث يحتوي الـ P على 18 مصفوفه , كل مصفوفه تمتلك 32 بت.


P1,P2,………….,P18

* هنالك اربعه من (بت S-boxes 32 )  تتكون من 256 بت لكل ادخالات منها : 

S1,0, S1,1,………. S1,255
S2,0, S2,1,……….. S2,255
S3,0, S3,1,……….. S3,255
S4,0, S4,1,..............S4,255


 كيف يتم حساب المفاتيح الفرعيه بأستخدام خوارزمية (Blowfish)؟

 1- تهيئة المصفوفة ( P-array) ومن ثم تهيئة الـ ( Four S-Boxes ) بالترتيب مع سلسلة ثابته, تتكون هذهِ السلسلة من ارقام الست عشرية (hexadecimal digits) للـ Pi

 2- تطبيق عملية XOR على P1 مع الـ 32 بت الاولى , ومن ثم تطبيق عملية الـ XOR على P2 مع الـ 32 بت الثانية , ونكرر هذهِ العملية مراراً وتكراراً على الـ Pi المتبقية مع نفس المفتاح ( 32 بت ) 

3- تشفير سلسلة الاصفار مع خوارزمية ( BlowFish ) وذلك بأستخدام المفاتيح الفرعيه التي تحدثنا عنها اعلاه . 

4- استبدال P1 و P2 بمخرج ( Output ) الخطوة ( 3 ) 

5- تشفير المخرج من الخطوة رقم ( 3 ) بأستخدام المفاتيح الفرعيه 

6- استبدال P3 و P4 بمخرج ( Output ) الخطوة 5 

7- الاستمرار بالتشفير بتكرير الخطوات الثلاثه اعلاه على كل الـ P-arrays 

* في المجموعه يجب الحصول على 521 تكرار لتوليد كافة المفاتيح الفرعيه المطلوبة 



 

الجزء الثاني : Data Encryption 




 خوارزمية التشفير البيانات للـ Blowfish


في البداية يتم التشفير  بتقسم (64bit) X الى جزئين كل جزء يمتلك 32 بت : XR,XL
ثم :-                          
                              For i = 1to 16:
                             
                                        xL = XL XOR Pi
                             
                                        xR = F(XL) XOR xR
                             
                                        Swap XL and xR
                             
                                        Swap XL and xR (Undo the last swap.)
                             
                                        xR = xR XOR P17
                           
                             xL = xL XOR P18
Recombine xL and xR       
                           

  ثالثاً :Honey Encryption 

هي اداة أمنية حديثة ومهمه في تحقيق الامان وتشفير البيانات, حيث تعُقد هذهِ الاداة الهجمات التي تعتمد على تخمين مفتاح التشفير او تخمين كلمة السر . عادة يعرف الشخص المخمن أنه قام بتخمين اشياء خاطئة لان نتيجه فك التشفير التي يحصل عليها خاطئة ايضاً أي ( غير مفهومه ) . لذا سيحاول مراراً وتكراراً الى أن يصل الى نتيجه مفهومه, ولكن مبدأ عمل خوارزمية Honey يكمن في اعطاء نتائج مفهومه ومنطقيه لعمليات التخمين الخاطئة مما يوهم المخمن بأن كل تخمين هو تخمين صحيح !. وهكذا يصعب على المخمن أن يعرف ما هو التخمين الصحيح , لان بشكل ما  فأن كل التخمينات  التي سيحصل عليها من فك التشفير هي تخمينات معقوله ومفهومه . وسميت بهذا الاسم  Honey (عسل) لآنها ستغري المخمن بالكثير من الاحتمالات الصحيحه في كل مره يخمن بها بشكل خاطئ !. 

 

 


هناك 4 تعليقات:

  1. تشفير النصؤص هو نفسه تشفير الكلمات

    ردحذف
  2. السلام عليكم ورحمه الله اريد شرحا وافيا لخوارزميه الtwofish

    ردحذف
  3. السلام عليكم اسال من \ال twofish

    ردحذف