يُعرَّف بأنه عملية تحويل المعلومات إلى شيفرات غير مفهومة (تبدو غير ذات معنى) لمنع الأشخاص غير المُرخَّص لهم من الاطلاع على المعلومات أو فهمها،
ولهذا تنطوي عملية التشفير على تحويل النصوص العادية إلى نصوص مُشفَّرَة.
ومن المعلوم أن الإنترنت تشكِّل في هذه الأيام الوسطَ الأضخم لنقل المعلومات. ولا بد من نقل المعلومات الحساسة بصيغة مشفَّرة إن أُريدَ الحفاظ على سلامتها وتأمينها من عبث المتطفلين والمخربين واللصوص.
أولاً: خوارزمية (Caesar Cipher):
في التشفير,شيفرة Caesar هي واحدة من أبسط تقنيات التشفير و أكثرها انتشاراً.
و هي نوع من أنواع خوارزميات التبديل التي يتم فيها تبديل كل حرف من النص الأصلي بالحرف الثالث بعده في الأبجدية فمثلاً نستبدل الحرف A بالحرف D و الحرف B بالحرف E و هكذا بالنسبة لباقي الأحرف.
فعلى سبيل المثال إذا أردنا تشفير ait pedia باستخدام خوارزمية الــ Caesar تصبح بالشكل : shgld dlw
* من عيوب هذه الطريقة:
لو نظرنا إلى ھذه الطريقة من جانب أمني لرأينا أنھا سھلة الكسر لدينا 26 احتمالية (عدد الحروف الانجليزية) أو بالأصح 52 احتمالية لأن الحرف لا يساوي نفسه وتوقع هذه الأحرف سهل جداً باستخدام الحلقات.
فإذا أردنا كسر تشفير حرف ما فإننا نجرب جميع الحروف ما عدا الحرف نفسه و هذه من الطرق المعروفة لكسر التشفير و تسمى البحث الشامل Brute Force Search.
و بالتالي بقليل من التركيز نلاحظ أن الخوارزمية التالية هي خوارزمية التشفير:
وبما أن:
a-a=0
b-a=1
c-a=2
و بالتالي:
(char)('a' + 0) = 'a'
(char)('a' + 1) = 'b'
(char)('a' + 2) = 'c'
و يتم تنفيذها بلغة السي كما يلي:
(char)('a' + (ch -'a'+ 3) % 26)
اما خوارزمية فك التشفير فهي نفس الخوارزمية السابقة و لكن نضيف مكمل المفتاح إلى الـ 26؛ حيث 3 تدعى في هذه الحالة مفتاح : و يعرف المفتاح بأنه قيمة تعتمد تتفق عليها كل من خوارزمية التشفير و فك التشفير للوصول إلى النص الصريح.
و بالتالي متمم الـ 2 هو 23
و لو استخدمنا مفتاح كـ 6 يكون المتمم 20 أما في حالتنا السابقة فخوارزمية فك التشفير هي
(char)('a' + (c - 'a' + 23) % 26)
c=(c+3)mod26 حيث يتم الالتفاف بعد أخرحرف .
وهنا مثال بسيط للبرنامج حيث قمت ببرمجته على لغة الجافا
وبإذن الله سوف أضع لكم بعض بعض الأمثلة لنفس الخوارزمية حيث قمت ببرمجتها على لغات أخرى كالفيجوال بيسك والسي شارب
وهنا كود دالة التشفير , وهو شبيه جداً بكود فك التشفير والذي يختلف فقط بأن العملية عملية عكسية (بدل جمع قيمة المفتاح إلى الاسكي كود يتم طرحه )
لتجربة المثال قوموا بتحميل المثال من المرفقات وهو عبارة عن ملف jar حيث يمكنكم فك ضغطه عن طريق برنامج winrar لمشاهدة كود المصدر
قريباً ان شاء الله سوف أقوم بطرح باقي البرامج المطلوب برمجتها في مساق أمن البيانات
ومن لديه أي استفسار عن اي خوارزمية أو اي شيء في الكود فليكتبه في مشاركة
بتمنى الجميع يستفيد من هالبرامج وان شاء الله بتعملوا أحسن منها لانه هذا ابسطها وأسهلها بالاضافة الى اني ما اهتميت كتير في هالخوارزمية لاني برمجتها على اكثر من لغة لكن ان شاء الله راح تشوفوا التغير في الاسلوب وفي الطريقة في باقي البرامج
الأول على السي شارب باستخدام واجهة الكنسول
الثاني على لغة الفيجوال بيسك 6
اذا بدكم اي مساعدة في اي واحد منهم أنا جاهز , ولو بدكم اي مساعدة لتحويل كود السي شارب من الكنسول الى واجهة Gui انا جاهز
ملاحظة الاستاذ عماد كتييييييييير بفضل تطبيقات الويب .. واللي بده اي مساعدة في برمجة البرنامج على اي لغة من لغات برمجة الويب زي Asp.net أو Php انا جاهز للمساعدة
ممكن طلب
معايا اسايمنت لتشفير
ceaser
hill cipher
polahaptic
one time pad'
لو ممكن بالسي بلس بلس او بالسي شار ب كنسول
شكراً جزيلاً اخي الكريم بركات .. وياليت تقوم بشرح جميع الخوارزميات المطلوبة مثل polyalphabetic , monoalphabetic ,one time pad وغيرها من الخوارزميات التي تستخدم
في التشفير مثل الشهادات الرقمية وتشفير كلمات المرور وحبذا لو تكون مدعمة بأكواد
حتى نفهم كيف تعمل هذه الخوارزميات.
موضوع جميل ومفيد يا بركات
بس انا نزلت ملف الجافا لانى محتاجة الكود بلغة الجافا لكن فتح تطبيق البرنامج مباشرة وما بانش الكود ارجو التوضيح انا عاوزة الكود نفسه
وشكرا كتير
شكرا لردك اخ ابراهيم بس والله جربت افتح الملف اكتر من مرة وفعلا فكيته بال winrar بس نفس الشئ بيفتح الملف التنفيذي وبيطبق البرنامج مباشرة ومش بشوف الكود ولا الكلاسات انا محتاجة كتير الكود ياريت حد يهتم بموضوعي او ترفقوا ملف تانى فيه الكود
التعديل الأخير تم بواسطة ranona_2010 ; 16-10-2010 الساعة 10:52 PM