Data Encryption Standard DES

موضوعنا اليوم لن أقول عنه جديد لكني سأقول أني أكاد أجزم أنه لأول مره يتم عرضه بهذه الطريقة بين الصفحات العربية .. هنا لن أعرف معنى كلمة تشقير لأن المقدمة الواجب وضعها قد وضعها إخواني في المنتديات و جزاهم الله عنا خير الجزاء. لكني سأضع أمامكم ماده علمية عملية قويه جدا تشرح واحد من أقدم خوارزميات التشفير و أقواها  – قد يعترض أكثركم على كلمة أقواها لكن عندما تم عمل هذا لاخواريزم و إعتماده كمعيار رسمي للتشفير كان من أقوى أنواع التشفير في وقته و قد تم تحيدثه إكثر من مرة و أصبح هناك ال Double DES و Treble DES و  Advanced DES  (AES) new – وللعلم لو تم فهم موضوعنا هذا فستعرف بحق معنى كلمة تشفير و كيف يتطور علم التشفير بالنسبه للتشفير المتماثل أو الـ Symmetric Encryption وما سيأتي في المستقبل لن يكون غريب عليك أبدا بعد ذلك سأضع الخوارزميات ثم أشرحها … لندخل في الموضوع

Data Encryption Standard  DES

تم إختياره في عام 1977م من قِبل المعهد الدولي للمعايير التكنولوجية أو National Institute Standard NIST على أنه معيار للتشفير دوليا و يتم التطوير على أساسه في أنواع التشفير اللتي هي من فأته أي ال  Symmitric Encryption  وقد كان لــ IBM  باعا في وضع بذرة هذا التشفير .

ملاحظة : هذا العلم درسته في آخر سنه في هندسة حاسب آلي و طرحه يجبرني على الإعتماد أن قارئ الموضوع يعرف أساسيات التعامل مع ال B!n@ry و مع الـLogic Operations  و قد نوهنا أن أساسيات التشفير و المقدمة المطلوبه قد كتبها إخواني من قبل و Google خير شاهد على كلامي هيا بنا

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

أنصح بأن تعرض الصورة في صفحة مستقلة لتتضح التفاصيل اللتي أريدك أن تراها

وهذا خوارزم التشفير و فك التشفير تمعن في الصور جيدا

أنصح بأن تعرض الصورة في صفحة مستقلة لتتضح التفاصيل اللتي أريدك أن تراها

طبعا يا إخواني لم يفهم أحد هذه الرسومات أو معناها بشكل دقيق … و لا أنا  😀 لكن بإذن الله سنعلم ماذا هناك و بإذن الله ربنا يخرج من بيننا من يخرع نظام تشفير جديد يقهر به خوارزمياتهم.

سنتعرف على الأشياء بمعناها العلمي أن تعرفها بوظيفتها لنبتعد عن الكلام النظري البحت و نبتعد عن أخطاء الترجمة النصية و يجب أن نضع دوما في الحسبان أن تعاملنا من الـ data  على شكل Binary و في بعض الأجزاء سنستخدم النظام الـ Decimal  أيضا … لنبدأ على بركه الله .

تعاريف

Initial Permutation (IP) : بالبلدي معناها اللخبطة أو التبديل المبدئي و وظيفتها أن ندخل لها 8-bits فنقوم بتغيير أماكنهم بشكل غير منتظم بناء على أرقام تم تحديدها بطلبنا و تكون طلبات التبديل عبارة عن أرقام من 1  إلى 8 ولكن تلك الأرقام طبعا غير مرتبة (لم تفهمو شئ!) سأريكم مثالا ..عندي 8-bits و هم من اليسار إلى اليمين كالتالي: 10011101 فإن ترتيب أول bit  و اللذي هو 0 سيكون 1 و الثاني الذي هو 1 سيكون 2 إلخ .. وهذا هو الترتيب الطبيعي للأرقام إلى هنا جميل ؟ , الأن أريد أن ألخبطهم باستخدام  Initial Permutatin و المطلوب أن تكون اللخبطه بهذا الترتيب IP = 26314857 و تقرأء من اليسار إلى اليمين فكيف إذن تتم اللخبطه ؟

هو يريد أن يأخذ الـ Bit رقم 1 في الترتيب الطبيعي و  يجعله ال ثاني و ترتيب ال Bit رقم 2 في الترتيب الطبيعي يجعله السادس أي أن شكل ال Stream  السابقى  ( 10011101 ) سيصبح بعدل التبديل هكذا ( 01011110 ) هذ إستوعبت الفكرة ؟!

مثال آخر: IP= [26314857 ] , Data = [10011101] إذن شكل الData (ip)  = 11010110

Inverse Initial Permutation (IP) : لن أشرح بنفس طريقه ال Initial Permutation  فلقد فهمنا الأساس لكني سأضع طريقة الحل مباشرة اللتي تمكننا من إيجاد الIInverse Initial Permutation من ال  Initial Permutation وإيجاد ناتج التبديل

* تضع أرقام الـ Initial Permutation   *ننظر إلى أرقام التريب الطبيعي للـ bit ثم نجعل ترتيبها في المكان الذي يساوي الرقم المقابل له في الـ Initial Permutation بهذا نكون أخرجنا قيمة الــ Inverse Initial Permutation ثم نجول الData  كما تعلمنا في سابقتها

Expansion Permutation (E/P): وهي عملية لخبطة أيضا كما عهدناها لكنها ستتسبب في زيادة عدد ال bits لذلك سمية  Expantion

S-Box : وهي عملية permutation  لكنها مختلفة تماما عن سابقاتها و ستتسبب في تليص عدد ال bits إلى 2-bits و نستخدم المصفوفات في عمليه التبديل لإيجاد قيمتها الحقيقية و في المسائل العلمية فإنك تعطي المصفوفة و قيمتها و تستخرج قيمه ال S  من تقاطع الصف مع العمود, هكذا …

Switch (SW) : من الإسم فإن العملية واضحة و أي أنه سيقوم بعكس مسار الـ bit  في الخوارزم و أظنها واااضحه من الرسمة ..

Key Generation : و هو مولد المفاتيح اللتي ستضاف على ال Data  لتزداد عملية اللخبطه أو تعقيد التمويه و التبديل و نستطيع أن أكثر من sub kye في ال DES … لا تخف التفاصيل قادمة …

Left Shift  LS-x : يعني الترحيل أو الإزاحة عدد محدد تزيح الـ bit  من اليسار إلى اليمين و يرمز لها أيضا بالعلامة  ” >>>  ” ستفهم بمثال خفيف…

k1 k2 k3 k4 k5  و نريد أن نعمل له ترحيل بمقدار 2 فسيكون الناتج هكذا …  k3 k4 k5 k1 k2 طبعا ال k هو البت الواحد

XOR : بصراحه المفروض ما أتكلم عنها لكن بإجاز هي عملية منطقيه يكون ناتج جمع المتشابهات بـ 0 و المختلفات بـ   1 , مثال …

—————————————————————————-

حسنا .. الأن سنتكلم مرة أخرى عن الأجزاء اللتي عرفناها في التعاريف لكن سنتكلم عنها من ناحية عملها و مهمتها في هذا النظام من التشفير فهذه الأجزاء ليست حصرية لهذا التشفير و لكن يختلف تشفير عن أخر في و خطة الخواريزميات و في ال  Block Size of Data  و في عدد تكرار العمليات و طريقه ترابط أجزاء ال  data  المقسمة … كل هذا كلام عام .. لنبدأ وستعرف معنى كلماتي هذه عندنا نشرح أكثر من نوع تشقير إن شاء الله .

1/ حجم البيانات المراد تشفيرها Plaintext blick size :

وجد أن أنسب حجم للبيانات المراد تشفيرها بالنسبه للـ DES  هو   64-bit و إن زادت حجم البيانات عن ذلك فإنها تقسم كما يحصل في الهارد ديسك , لكن! … لوكان حجم البيانات المراد تقسيمها لا يقبل القسمه على 64 لكي نقسّمها … الحل أني سأبحث عن آخر bit ثم نقوم بعمليه الـ  Padding 🙁 حسنا لن أشرح نظري لكن سأوضح الأمر بشكل ودي 😀

لنفرض أن حجم الداتا المراد تشفيرها هي 660 بت وهي الرساله لأصليه و عندما نقسما على 64 لكي نوجد عدد ال data blocks فسنجد أن الناتج 10.3 ولا يمكن حجز جزء من الل Block و نترك الباقي فارغا و لو ملأناه أصفارا لتغيرت قيمه الداتا الأصليه قبل أن أغيير شئ بيدي و الحل بدون تفصيل هو أن نجد أقرب رقم أكبر من 10 يعطينا ناتجا صحيحا ليس فيه كسور عشرية و هذا ما يسمى الـ Padding

2/ المفتاح السري Secrit Key Size :

تماااااااااما مثل مفتاح المنزل به تشفر البيانات و به تفك تشفيرها وتجده على شكل باسوورد في البرامج وحجمه في ال DES يصل إلى 65-bit وهذا قليل الأن

3/ عدد اللفات Number Of Rounds :

عدد اللفات في الـ DES = عدد الـ 16-Sub key و كل Sub key  حجمه  64-bit

4/ توليد المفاتيح Key Generation :

فإن مولد المفاتيح هو اللذي يخرج الـ Sub key  و أكبر عدد يتحمله الـ DES  من ال Sub key  هو 16

حسنا .. عتقد أن الموضوع يحتاج إلى تركيز و يظهر جيدا أنني مختصر في أشياء ولكن لو تمعنت ستجد ما إختصرته قد وصعته في الرسم لكي أقلل جهد القرءة عليكم و سأضع مسألة لكسر تشفير الDES  بطريقة الإحتمالات أو الBrute Force  و صنعت جدولا لأهم خصائص الـ DES أرجو أين يوضح الأمور أمام عينيك.

ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

المرجع: كتاب Cryptography and Network Security  الإصدار الرابع لمؤلفه William Stalling

أنتظر أسئلتكم

51 رأي على “Data Encryption Standard DES

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *