عرض مشاركة واحدة
  #12  
قديم 04-26-2010, 05:33 PM
Hossam Hegazy Hossam Hegazy غير متواجد حالياً
عضو فلماوى جديد
 
تاريخ التسجيل: Apr 2010
المشاركات: 50
افتراضي


الفصل السادس : خوارزميات RSA



مقدمه

لنبدأ اولا بتحديد بعض النقاط و المفاهيم التى ستنستخدمها فى الخوارزميات القادمه:-

طبعا مرينا على نظريه الاعداد العشوائيه سابقا و عرفنا ماهيتها وان على المفاتيح لكى تكون آمنه ان يتوافر فيها شرطان مهمان و هما العشوائيه و عدم القابليه للتنبؤ بها
و يجب توافر الشرطان معا فى آن واحد , فتخلف احدى الشروط يعنى عدم صمود الخوارميه امام المخترقين

ولكن كيف تتوليد هذه الاعداد العشوائيه ؟ الاعداد العشوائيه قد تكون حقيقيه True Random او كاذبه (مزيفه) Pseudo-Random
و نستخلص الارقام العشوائيه عن طريق ادخال ارقام متغيره غير ثابته (و يسمى بالبذره Seed ) فى اجهزه خاصه لتوليد الاعداد و الرموز True Random Number Generator بالاضافه الى استعمال message digests الذى درسناها سابقا و يكون الناتج دائما متغير ايضا و لا يتكرر

اما اذا حدث و تكرر الناتج ففى هذه الحاله قد حصلنا على اعداد عشوائيه مزيفه (او شبه عشوائيه) Pseudo Random و مشكله هذه الاعداد سهولة التوصل للمفاتيح (المخرج) عن طريق brute-force attack على المدخل بالتوصل الى البذره التى قام التوليد عليها


Pseudo-Random Number Generator :-
(PRNG)

و من برامج انتاج المفاتيح (Pretty Good Privacy (PGP حيث ينتج اعداد عشوائيه مزيفه فى خلال ثوانى مستخدما مفاتيح ELG التى سنتكلم عنها بعد قليل
يستخدم هذا البرنامج المفاتيح المتناظره و الغير متناظره فى آن واحد حيث يقوم الراسل بتشفير الرساله مستخدما" المفتاح العام و هو مفتاح متناظر ثم يقوم بتشفير Session Key مفتاح الجلسه و عند تلقى المرسل له الرساله المشفره يقوم بفك تشفير مفتاح الجلسه مستخدما المفتاح الخاص ثم يفك تشفير الرساله نفسها الان بالاستعانه بمفتاح الجلسه و هذه الفكره مبنيه على نظريه the message integrity property و التى تعتمد على digital signature

و يعيب هذا البرنامج احتفاظ الشركه المصنعه له بنسخه من المفتاح الخاص PK و القيام بفك تشفير الرساله فى اى وقت او دون ادخال المفتاح الخاص و كطلب فك تشفير الرسائل او محتوى الاقراص الصلبه و هذا يعد اختراق للحمايه و السريه الخاصه بالمستعمل لهذا البرنامج مما يجعل من المستحيل استعماله فى الحكومات و الجهات الرسميه


***

لا يجب ان ننسى مفاتيح ELG للمخترع الدكتور طاهر الجمل بأستخدام الخوارزميات المتقطعه Discretre Logorithm و اثبتت هذه النظريه ضعفها ولكنها كانت بدايه لتواجد العرب فى عالم نظم التشفير





يعتمد نظام ار اس ايه RSA على اشهر الخوارزميات والتقنيات المستخدمة فى تشفير المفاتيح الغير متناظره Asymmetric Cryptography التى اعتمدها الثلاثه مخترعين رون رايفست و آلدى شامير و ليونارد آلديمان
Ron Rivest, Adi Shamir and Leonard Adleman
و من هنا تم آخذ الحرف الاول من الاسم الثانى من كل هؤلاء المكتشفين الثلاثه ليكونوا اسم RSA
و يعتمد اكتشافهم فى عام 1977 على المعالجه الغير لمتناظره و التى انبثق عنها قوانين رئيسيه مهمه منها تشفير المفتاح العام
و كان الثلاثه مفكرين الزملاء فى معمل واحد يعملون على الفكره لمده عام كامل متحدين بعضهم البعض مواجهين التناقض و العيوب فى نظريتهم حتى توصل رايفست Rivest فى ليله لنظريه معروفه و هى ان حاصل ضرب الارقام الاوليه يتم خلال فتره قصيره ولكن اذا كان لدينا النتيجه و نريد الوصول الى عمليه القسمه الاساسيه سيأخذ ذلك وقت اطول قليلا و لقياس ذلك نقوم بعمليه ضرب لارقام اوليه اكثر فى كل مره و تطول عمليه الوصول للنتيجه فى كل مره

و كانت تلك الفكريه البدائيه نواه لما توصل اليه رايفست و تمت ولادة اول الخوارزميات للمفتاح العام
و بالرجوع الى مبادىء العمليات الحسابيه نلاحظ ان الرقم الفردى الاولى مثل 3 لا يمكن قسمته الا على نفسه (3) او على 1 على عكس الارقام الذوجيه مثل 8 التى يمكن قسمتها على عده ارقام اخرى مثل 4 و 2

اذن يعتمد النظام على مبدأن هامان
modular Arithmetic
و هى رياضيات بواقى القسمه
و النظرية الرياضية Euler totient



Modular Arithmetic
يعتمد على فكره:-
ان مثلا الساعه عند وصولها للثانيه عشر 12 تبدأ العد مره اخرى من 1
و اذا اضفنا 8 ساعات الى 9 تصبح الساعه 5 كذلك
و هذا الفرق ( الواحد و الخامسه فى المثالين) السابقان يسمى مود
MOD

نختار رقمان اوليان كبيران عشوائيان
و ليكونوا p و q
و الان حاصل ضرب الرقمان p و q و نعطيهم اسم المتغير n
(N = (P*Q


n) phi ) =
(q-1)*(p-1)




و الان لنأخذ متغيران آخران للمفتاح العام و المفتاح الخاص
و ليكونوا E و D
حيث E هو هو المفتاح العام
و D هو المفتاح الخاص الذى سيظل مجهول لدينا!
و بالعوده الى e




D





و كلما ذادت قيمه (او طول المفتاح) للمتغير N كلما ذاد الامان فى النظام و صعوبه اختراقه
كما من المهم استخدام مفاتيح متناظره عشوائيه Symmetric Keys
random number generator


و الان لنفرض ان Mr.Egypt يريد ارسال نص لصديقه Son Of Alex
و المفتاح العام هو N و E
Mr.Egypt يحول الرساله m الى رقم حيث m<n باستخدام العمليه الحسابيه Padding التى تكلمنا عنها سابقا محولا بذلك النص المرسل الى نص مشفر (و لنسميه الان C )


و يستطيع Son Of Alex استعادة النص الاصلى للرساله غير مشفرا" عن طريق المفتاح الخاص D
حيث ان

و لا ننسى استخدام التوقيع Signing messages حيث يستطيع اى فرد ارسال رساله مشفره الى Mr.Egypt منتحلا شخصيه Son Of Alex مستخدما المفتاح العام المعروف لدى الجميع ولذلك كانت الحاجه الى تشفير الرساله بتوقيع hash value (الذى تكلمنا عنه سابقا) معروف لدى الطرفان فقط و يستطيع Mr.Egypt مقارنه جدول Hash بالقيمه المتفق عليه سابقا


من الممكن ان يقوم الهاكر بمحاولات اختراق الرسائل عن طريق عده اساليب منها هجوم القاموس dictionary Attack و قد ينجح فى كسر النظام بالفعل ولكن هنا يأتى دور ال padding و اضافه بتات الى الرساله
و لذلك نجد ان محاولات الهاكر غالبا تنتهى بالفشل حيث تم تطوير نظام RSA بأضافه افكار جديده مثل Probabilistic Signature Scheme for RSA (RSA-PSS)

يستخدم نظام RSA مفاتيح مكونه من بتات و النظام المعتاد للمفتاح العام و الخاص كما سلفنا الذكر
و قد تم انشاء خوارزميه مكونه من 663 بت فى عام 2005
و يعتقد العلماء امكانيه اختراق حتى الخوارزميات الحديثه المكونه من مفاتيح 1024 - 2048 بت

يعانى هذا النظام من بعض البطىء , فهو ابطأ من نظام DES و AES

و الان لنعطى لكل حرف ابجدى او رمز رقم يمثله
A= 1
B=3
C=5
D=6
E=7
الخ الخ

و اذا توصلنا بالعمليات الحسابيه ان المود X هو الرقم 8
و المود Z هو الرقم 18
فأنه يمكن تشفير هذه الرساله

E : 7 ^ 8 (mod 55) = 823543 (mod 55) = 27
و لنبحث عن الرقم 27 ماذا يساوى فى الجدول السابق
و لضيق الوقت لنفترض مثلا انه يساوى الحرف R

و الان لارجاع الكلمه لاصلها (بدون تشفير) نستخدم المود Z فنقوم بعكس العمليه

R: 27^18 (mod 55) = 2718286872928913253569753243138237

mod 55) = 7)

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