الرئيسيةعريقبحث

خوارزمية آر إس إيه


☰ جدول المحتويات


في علم التشفير، آر إس إيه (RSA)‏ هي خوارزمية للتشفير بواسطة مفتاح عام.[1][2][3] ولعلها الأولى المعروفةً على هذا الصعيد، وهي مناسبة للتّوقيع بالإضافة إلى التشفير، وكانت أحد التقدّمات العظيمة الأولى في التشفير بواسطة مفتاح عامّ. آر إس إيه مستخدم في بروتوكولات التّجارة الإلكترونيّة على نطاق واسع، وهي آمنة طالما كان طول المفتاح طويلا جدا مثل: 1024 بت، وهي تعتمد بشكل كبير على أنَّه لا يوجد خوارزمية لتحليل عدد لعوامل بسرعة عالية.

تاريخ الخوارزمية

وُصِفَتْ الخوارزمية علناً في عام 1977 من قبل ليونارد أدليمان وآدي شامير ورونالد ريفست في معهد ماساتشوستس للتقنية، الأحرف آر إس إيه هي الحروف الأولى من اسمائهم. وَصفَ كليفورد كوكس، عالم رياضيّات بريطانيّ يعمل مع جي سي إتش كيو(GCHQ) وكالة مخابرات المملكة المتّحدة، نظاماً مكافئاً في وثيقةِ داخليةِ في عام 1973. لكنّه نظرا لغلاء الحواسيب نسبيا الضرورية لتنفيذ هذا النظام في ذاك الوقت، تم اعتبار هذا النظام وكأنه فضول فقط، فلهذا لم يُنْشَر أبدًا. لكنّ اكتشافه لم يُكْشَف حتّى 1997 بسبب تصنيفه السّرّيّ للغاية، وريفيست وشامير وأدليمان ورثوا أو أكملوا آر إس إيه (RSA) عن شغل كليفورد كوكس.

مُنِحَ معهد مساشوستس للتكنولوجيا براءة اختراع ل"نظام وطريقة اتصالاتِ مشفّرةِ" الذي استعملت الخوارزميةَ في عام 1983. انتهت صلاحية براءة الاختراع في 21 سبتمبر 2000. ولأنه تم نشر ورقة تصف الخوارزميةَ في أغسطس 1977، قبل ديسمبر 1977 (وهو تاريخ تقديم الطلب لبرائة الاختراع)، أعاقت القوانين في مُعظم بقيّة العالمِ براءاتَ الاختراع في مكان آخر وبراءة الاختراع الأمريكيّة فقط هي التي كانت تمنح.

إنتاج المفاتيح

خوارزمية آر إس إيه تَتضمّنُ مفتاحا عامّا ومفتاحا خاصّا. المفتاح العامّ هو مفتاح التشفير فقط ويجب أن يكون معلوما لكل من يحاول الاتصال بمالك المفتاح. يمكن أن تُفَكّ الرسائل المشفّرة بالمفتاح العامّ فقط باستخدام المفتاح الخاصّ. المفاتيح لقاعدة آر إس إيه تُولد بالطريقة التالية:

  1. اختيار عددين أوَلييّن عشوائييّن كبيرين مختلفين و .
  2. حساب . يُسْتَخْدَم معاملا لكلا المفتاحين الخاصّة والعامّة.
  3. حساب .حيث أنَّ الدالة تعطي عدد الأعداد التي بين 2 و n والتي هي أولية مع n أي أنه حيث .
  4. اختيار عدد صحيح بشكل عشوائي حيث و (أَي أَنَّ العددين و- (يعني أنَّ ) أوليين فيما بينهما ) . هذا العدد سوف يكون الأُس العمومي.
  5. ايجاد قيمة d أو المفتاح الخصوصي، بحيث أنَّه يُحقق التالي: , ويمكن حساب المعادلة الاخيرة بواسطة خوارزمية اقليدس المُوسعة. d سوف يكون الأُس الخصوصي.

المفتاح العمومي يتكوّن من المعامل n والأُس العمومي encryption) e)

المفتاح الخصوصي يتكوّن من المعامل n والأُس الخصوصي decryption) d), والذي يجب أن يكون سريا للحفاظ على امان الخوارزمية.

تَشْفيرُ الرسائلِ

لنفرض أن A و- B يريدان أن يتواصلا فيما بينهما. لنفرض أَنَّ مفتاح A العمومي هو أما المفتاح الخصوصي هو ومفتاح B العمومي هو والمفتاح الخصوصي .

لنفرض أنَّ A يريد أن يرسل رسالة إلى B , لذا عليه فعل التالي:

  1. يحصل على المفتاح العام للمستقبل B والذي هو .
  2. وجد ناتج التشفير لهذا الرقم عن طريق المعادلة
  3. يُرسِل c إلى B.
ملاحظة:
  • إذا كانت الرسالة مكتوبة بالحروف حينها يجب أولا تحويلها لشكل مناسب حيث يتوافق مع العمليات الحسابية ويمكن أن يتم هذا بتحويل الرسالة إلى نظام أسكي.

فك تَشْفير الرسائلِ

ليحصل B على الرسالة يفعل التالي:

يستخدم مفتاحه الخاص ويحسب . حينها m هي الرسالة التي بعث بها A

صحة الخوارزمية

في كل نظام تشفير أهم خصلة يجب ان تتوفر فيه أنَّه يحقق الصفة التالية: اي أنَّه إذا شفرنا رسالة ثم فككنا التشفير نحصل على نفس الرسالة. وهذا أيضا صحيح ل-RSA : وفك التشفير هو:

مثال

  1. اختيار اثنين من الاعداد الأولية:
  2. حساب اي نفذ التالي
  3. حساب حيث أنَّ هو مؤشر أويلر. .
  4. اختيار الذي ليس له اي عامل مشترك مع , مثل .
  5. نختار d بحيث: , مثلا نختار: d = 2753 وهو ملائم لانه:

المفتاح العمومي هو (n= 3233, e= 17). لذا فإنَّ التشفير كالتالي:

المفتاح الخصوصي هو (n=3233, d=2753)، لذا فإنَّ فك التشفير كالتالي:

لنفرض انَّه يُراد تشفير m = 123، وهذا يكون كالتالي:

وفك تشفير c = 855، يكون ب- .

خوارزميات مُساعدة

الرفع بواسطة التربيع المتكرر

فليكن a,k,n اعداد صحيحة عندها يمكن حساب والتعقيد الحسابي للخوارزمية هو: والخوارزمية كالتالي:

int exp_mod(a,k,n) { int d=1; int aa=a; while(k>0) { if(k%2==1) { d=(d*a)%n; } k=(k-k%2)/2; aa=(aa*aa) %n; } }

صحة هذه الخوارزمية تعتمد على أنّه يمكن كتابة كل عدد k بواسطة النظام الثنائي اي أنَّه: حينها كل ما علينا هو حساب

مثال: نريد أن نحسب:

  1. نحسب 134 بالنظام الثنائي: وهو
  2. نحسب لكل بطريقة التربيع المتكرر اي:

3. حينها y يكون حاصل ضرب كالتالي:

حساب مقلوب عدد

في خوارزمية RSA أردنا أن نجد بحيث يتحقق: لذا فإنه علينا أن نجد: لذا سوف نستخدم خوارزمية اقليدس المُوسعة والسبب هو: بما أنَّ حينها يمكن ايجاد عددين صحيحين a,b بحيث , لذا فان العدد a سوف يكون d . الخوارزمية تعقيدها: .

امان الخوارزمية

  • أيسر الوسائل لخرق امان الخوارزمية هي ايجاد عوامل العدد n , لنقل انه يمكن ايجاد عوامل n بالإضافة لنفرض أنَّ حينها وبما أنَّ المفتاح العمومي موجود ولنفرض أنّه لنجد المفتاح الخصوصي d :

1- نجد مؤشر أويلر للعدد n :

2- نحل المعادلة

لذا فانه من السهل خرق الامان في الخوارزمية إذا ما توجد خوارزمية تحليل لعوامل بسرعة. ولكن لا يوجد خوارزمية سريعة لفعل هذا ! لذا يمكن اعتبار هذا الخرق غير مُعتبر.

ملاحظة: بيتر شور، في عام 1997 قدم خوارزمية سريعة لايجاد العوامل ولكن ذلك كان بمساعدة ادوات فيزيائية بالتحديد بواسطة الحسابات الكمومية. وهذه الخوارزمية لا تُعتبر قابلة للبرمجة لانها تحتاج حاسوب كمومي وهو غير موجود للآن (اي عام 2013) ولكن هناك بصيص من الامل لامكانية اختراع مثل هذه الحواسيب.

  • p و- q لا يجب أن يكون قريبين جدا خشية ان التحليل إلى العوامل على طريقة "فيرمات" ل n ان تكون ناجحة، إذا p و q على سبيل المثال هم اقل من سوف يكون الحل ل p و q سهل. بالإضافة إلى ذلك إذا كانت اي من p -1 أو q-1 لهم عوامل اولية صغيرة فقط، ممكن ان تحلل n إلى عواملها يشكل سريع عن طريق "خوارزمية بولارد" وهذه القيم ل p و q يجب أن تهمل.
  • من المهم ان يكون المفتاح السري كبير كفاية، حيث اثبت السيد michel wiener في عام 1990 انه إذا و فان d يمكن حسابها على نحو كاف من قيم n و e. لا يوجد هجوم معروف ضد الاسس الصغيرة العامة مثل e=3 باشتراط استخدام تبطين مناسب، على كل حال في حين عدم استخدام تبطين أو عمله بشكل خاطيء فان الاسس الصغيرة العامة لها مخاطرة أكبر تؤدي إلى هجوم، كما هو الحال في ضعف النص الصريح غير المبطن. 65537 هو قيمة تستخدم في غالب الأحيان ل e. هذه القيمة من الممكن ان تعتبر انها حل وسط بين تجنب الهجومات الاسية الصغيرة المحتملة ومع ذلك تسمح بالتشفيرات الفعالة.

ايجاد أعداد أولية

لايجاد أعداد أولية و نختار بشكل عشوائي أعدادا ويتم فحصها. لذا كل ما يُحتاج إليه هو وسيلة لفحص الأولية بطريقة سريعة. هناك عدة خوارزميات منها خوارزميات احتمالية مثل اختبار ميلر-رابن لأولية عدد ما وأخرى حتمية مثل اختبار أ.ك.أس.

السرعة

RSA أبطا بكثير من ال DES ونظم التشفير المتناسقة. مع التجربة على سبيل المثال أحمد يقوم بتشفير رسالة سرية بواسطة خوارزمية متناسقة، يشفر المفتاح التناسق بواسطة ال RSA ومن ثم يبعث المفتاح المتناسق المشفر بواسطة الRSA والرسالة المشفرة تشفيرا تناسقيا إلى سهيلة. هذا الاجراء يرفع المزيد من الاحتياطات الأمنية. فعلى سبيل المثال: المهمة الكبرى هي استخدام مولد ارقام عشوائية قوي للمفتاح المتناسق لان توفيق (مختلس السمع يريد ان يرى ما تم بعثة) يمكن ان يجتاز الRSA فقط بتخمين المفتاح المتناسق.

توزيع المفاتيح

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

مقالات ذات صلة

المراجع

  1. Calderbank, Michael (2007-08-20). "The RSA Cryptosystem: History, Algorithm, Primes" ( كتاب إلكتروني PDF ). مؤرشف من الأصل ( كتاب إلكتروني PDF ) في 13 ديسمبر 2016.
  2. Probabilistic encryption & how to play mental poker keeping secret all partial information, Annual ACM Symposium on Theory of Computing, 1982. نسخة محفوظة 31 مارس 2020 على موقع واي باك مشين.
  3. Coppersmith, Don (1997). "Small Solutions to Polynomial Equations, and Low Exponent RSA Vulnerabilities" ( كتاب إلكتروني PDF ). Journal of Cryptology. 10 (4): 233–260. doi:10.1007/s001459900030. مؤرشف من الأصل ( كتاب إلكتروني PDF ) في 22 سبتمبر 2017.

موسوعات ذات صلة :