لإيجاد مفتاحين خاص وعام نقوم بعمل الخطوات التالية :
1- نختار عددين أوليين P,Q
2- نوجد العدد n بحيث :
3- نوجد العدد theta بحيث :
4- نوجد العدد e وهو عبارة عن ال Public Key بحيث يكون القاسم المشترك الأكبر بينه وبين العدد theta هو واحد , أي لايوجد قاسم مشترك بينهما غير الواحد .
5- نوجد الآن أخيرا المفتاح الخاص بحيث :
حيث يكون العدد d عتدد صحيح , وهنا المشكلة حيث يجب أن نعرف X بحيث تحقق العلاقة ليكون العدد d عدد صحيح .
فهل توجد طريقة رياضية سريعة لإيجاد العدد d "وهو المفتاح الخاص" بطريقة سريعة وسلسة بدون التجربة السريعة للعدد X والتحقق كل مرة ؟
مثلا أصغر وأسهل عددين :
بالتالي المفتاح العام e=7 والمفتاح الخاص d=23
الطريقة كما ذكرت :
http://world.std.com/~franl/crypto/rsa-guts.html
ومثال للتشفير :
http://world.std.com/~franl/crypto/rsa-example.html
الآن ..
للتشفير بالمفتاح العام :
لفك التشفير بالمفتاح الخاص :
طبعا لعمل التشفير كالتالي لنفرض أننا نريد تشفير العدد 88 والمفتاح العام e=7 والمفتاح الخاص d=23 وال n=187 كما إستنتجنا في الأعلى :
للتشفير بالمفتاح العام 7
ولفك التشفير بالمفتاح الخاص 23 :
-------
طبعا هذا للتوضيح فقط , لكن ماأردت معرفته بالضبط هل توجد طريقة رياضية لإيجاد المفتاح الخاص بشكل سريع بدون التجربة والخطأ ؟
