أخضعَ بروتوكول RSA (ريفسط- شمير- أدلمن) شبكة الاتّصال الآمن بين الحواسيب للعمل في خطوط رياضيّةٍ آمنة. أسرار التّشفير: المقال السابع في السّلسلة
هذا هو المقال السّابع في سلسلة المقالات الّتي تتناول عالم التّشفير. وإن كان كلٌّ منها قائمًا بحدّ ذاته، لكن يوصَى بقراءة المقال الّذي يتناول بروتوكول مشاركة المفتاح. المقالات السّابقة حسب الترتيب: شِفرة قيصر، تحليل التردّدات، شِفرة فيجينر، طريقة كاسيسكي، آلة إِنِجما.
أوجد التّطوّر المبكّر لِشَبكات الحاسوب العامّة في سبعينيّات القرن الماضي مشكلةً كبيرة: كيف من الممكن منع تسرّب معلومات خاصّة أو سريّة إلى جميع مستخدمي الشّبكة الآخرين بشكل غير آمن؟ هنالك العديد من الأشخاص الّذين قد يستغلّون سلبًا إمكانيّة الدّخول المفتوح إلى المعلومات الخاصّة، أو التجاريّة أو العسكريّة. وحتّى لو كان جميع المستخدمين صادقين وأمناء، فهنالك دائمًا من الأسرار ما لا يريد النّاس الكشف عنها للعلن.
كان الحلّ الأوّل الّذي تمّ العثور عليه هو بروتوكول ديفي- هيلمان- ماركل (رابط المقال السادس) في سنة 1976م، والّذي استخدم مفتاحًا عامًّا مكشوفًا لنقل المعلومات المشفّرة بواسطة المفاتيح الخاصّة المعروفة فقط للمستقبِل والمرسِل. قام ثلاثة خبراء في التّشفير وعلوم الحاسوب- رون ريفسط (Rivest) من معهد ماساتشوستس للتكنولوجيا (MIT)، وعدي شمير من معهد وايزمان للعلوم وليونارد أدلمان من جامعة جنوب كاليفورنيا- بتطوير مبادئ الطّريقة في العام التّالي، وطبّقوها في معادلاتٍ رياضيّة أكثر ثباتًا.
لا يزال البروتوكول الّذي طوّروه، والمسمّى RSA استنادًا إلى الحروف الأولى من أسماء عائلاتهم، قيد الاستعمال حتّى هذا اليوم، على الرّغم من وجود بروتوكولات أسرع وملائِمة أكثر من غيرها لنقل كميّات كبيرة من البيانات. فاز الثلاثة بجائزة تورينج في سنة 2002م لتطويرهم هذا البروتوكول، وهي تعتبر أهمّ جائزة في مجال علوم الحاسوب. هناك من يدّعي أنّ المهندس البريطانيّ وعالِم التّشفير جورج آليس (Ellis)، قد سبقهم في تطوير طريقة التّشفير هذه، أثناء عمله في الخدمة الحكوميّة في المملكة المتّحدة.
ثلاثة خبراء في التّشفير وعلوم الحاسوب طوّروا مبادئ الطّريقة. من اليمين: ليونارد أدلمان، عدي شمير ورون ريفسط | ويكيبيديا، Ronald L. Rivest, Duncan.Hull, len adlmen
القليل من الرّياضيّات
تعتمد قوّة بروتوكول RSA على عدّة حقائق رياضيّة ترجع إلى نظريّة الأعداد، وأُولاها لها تتعلّق بالأعداد الأوّليّة. تنصّ النّظريّة الأساسيّة في الحساب على أنّ كلّ عدد طبيعيّ أكبر من 1 يمكن عرضه بطريقة واحدة ووحيدة كحاصل ضرب للأعداد الأوّليّة، ما يعني أنّه لا يوجد حاصل ضرب آخر للأعداد الأوّليّة الّتي ستنتج نفس العدد. على سبيل المثال، العدد 52 هو حاصل ضرب الأعداد الأوّليّة 2،2، و 13 وهو فقط ناتج حاصل ضربها. يُدعى عرض العدد كحاصل ضرب الأعداد الأوّليّة بالتّحليل للعوامل الأوّليّة. حقيقة مهمّة أخرى هي أنّه من الصّعب للغاية، ولا سيّما أنّه يستغرق وقتًا طويلًا من أجل تحليل أعداد كبيرة جدًّا إلى عواملها الأوّليّة. لذلك؛ فالوقت الّذي تستغرقه خوارزميّات الحاسوب المعروفة لتحليل مثل هذا العدد، على سبيل المثال ترتيب 1024 بت، إلى عوامله الأوّليّة يجعل هذه المهمّة تحدّيًا مستحيلًا من النّاحية العمليّة.
مصطلحٌ رياضيٌّ آخر يجب أن نكون على علمٍ بهِ هو "مجموعات أوّليّة نسبيّة": يتمّ اعتبار عددين أوّليّين نسبيّين إذا لم يكن لهما قاسم مشترك. أي أنّه لا يوجد عدد باستثناء العدد 1 الّذي يقسم كلاهما بدون باقي. مثلًا، الأعداد الأوّليّة النسبيّة (Coprime integers) للعدد 5 وأصغر منه هي 1، 2، 3، و4. بناءً على هذا المفهوم، فإنّ دالّة أويلر المشار إليها بـ(ϕ(n، هي الدّالة الّتي تعطي عدد الأعداد الأصغر من n والغريبة عنه (أي الأوّليّة نسبيًّا بالنسبة له). على سبيل المثال، قيمة دالّة أويلر للعدد 5 هي 4، لأنّ هناك أربعة أعداد طبيعيّة غريبة عنه (أوّليّة نسبيّة) وأصغر منه.
لدالّة أويلر صفتان عمليّتان تخصّنا. الأولى هي أنّ قيمة دالّة أويلر لعدد أوّليّ هي العدد نفسه ناقص 1. مثلًا، قيمة الدّالة للعدد 19 هي 18. وذلك لأنّ العدد الأوّليّ هو العدد الّذي قواسمه الوحيدة هي 1 والعدد نفسه. الصّفة الثانية هي أنّ قيمة دالّة أويلر لحاصل ضرب عددين أوّليّين نسبيّين هي حاصل ضرب قيمة الدّالّة للعددين بشكل منفصل، أي بصيغة رياضيّة ( ϕ(n⋅m)=ϕ(n)⋅ϕ(m. مثلًا، بدلًا من حساب قيمة الدّالة للعدد 15 (3 ضرب 5)، يمكن حساب قيمتها للعدد 3 وضربها بقيمة الدّالّة للعدد 5. نظرًا لكون العددين أوّليّين، يبقى طرح 1 من كليهما والحصول على قيمة دالّة أويلر للعدد 15 هي 2X4، أي 8.
تقدّم دالّة أويلر مجموعة الأعداد الأصغر من n والغريبة عنه (الأوّليّة نسبيًّا معه). ليونارد أويلر، عالم رياضيّات سويسريّ من القرن الثامن عشر الميلاديّ | New York Public Library, Science Photo Library
ترتبط الصّفتان المذكورتان أيضًا ببروتوكول ديفي- هيلمان- ماركل، الّذي ناقشناهُ في المقال السابق. الأوّل هو "الدّالّة أحاديّة الاتّجاه"، وهي الدّالّة الّتي يصعب استرجاع العدد الأصليّ الّذي أدخلناه فيها "المُدخَلات" بناءً على نتيجتها "المُخرجات"؛ أمّا الثّانية فهي دالّة أحاديّة الاتّجاه تُدعى المودولو، والّتي تعطي باقي حاصل قسمة عددين. على سبيل المثال، في المعادلة 1، 5mod2=1 هو حاصل قسمة 5 على 2.
البروتوكول
يعتمد RSA على غرار بروتوكول ديفي- هيلمان- ماركل على دوالّ أحاديّة الاتّجاه. وهو أيضًا بروتوكول غير متماثل، أي أنّه يلزم وجود مفتاح خاصّ (سريّ) سيتمّ استخدامه لفكّ التّشفير ومفتاح عامّ يستخدم للتّشفير. إذا أرادت فاطمة إرسال رسالة إلى أخيها فادي، فستقوم بتشفيرها بواسطة المفتاح العامّ، لكنّ الطّريقة الوحيدة لفكّ تشفير الرّسالة هي استخدام مفتاح فادي الخاصّ. حتّى أنّ فاطمة، كاتبة الرّسالة لن تتمكّن من فكّها. هذا يختلف عن التّشفيرات المتماثلة حيث يتمّ استخدام مفتاح التّشفير أيضًا لفكّ الشّفرة، كما هو الحال في التّشفير التّبادليّ مثل طريقة كسيسكي (رابط المقال الرابع).
يتكوّن البروتوكول حسب الترتيب التالي:
مثال:
توقيع إلكترونيّ
كما رأينا، يمكن لأيّ شخص استخدام مفتاح فاطمة العامّ لإرسال رسالة لها، لكنّها الوحيدة الّتي يمكنها فكّ شِفرتها بواسطة مفتاحها الخاصّ. ميزة أخرى لبروتوكول RSA هي مقدرة فاطمة على التّشفير باستخدام مفتاحها الخاصّ، والّتي يمكن لأيّ شخص فكّ شِفرتها باستخدام مفتاحها الخاصّ.
عندما تريد فاطمة إرسال رسالة مشفّرة إلى فادي، فإنّها سترسل الرّسالة مرّة واحدة عن طريق مفتاح فادي العامّ، ومرّة واحدة عن طريق مفتاحها الخاصّ. عندما يستقبل فادي الرّسائل، سيفكّ شِفرة الأولى بمفتاحه الخاصّ والثانية بمفتاح فاطمة العامّ. إذا تمّ استلام نفس الرّسالة، فحينها سيعلم أنّ الرّسالة أُرسلت من قِبَل فاطمة.
إنّ هذا المبدأ ساري المفعول أيضًا على التوقيعات الإلكترونيّة، على الرّغم من وجود عمليّة أخرى يجب أن تمرّ بها الرّسالة قبل التّشفير.
نقاط الضّعف
على غرار كلّ أنواع التّشفير، فإنّ RSA لديها أيضًا نقاط ضعف تتيح مهاجمتها جرّاء ذلك. تتمثّل إحدى الطّرق في تتبّع أوقات العمليّات الحسابيّة الّتي يقوم بها حاسوب فادي أثناء قيامه بفكّ تشفير الرّسائل المعروفة للمهاجم. يمكن لهذه الأوقات الإشارة إلى البيانات الأوّليّة للتّشفير. من الممكن طبعًا تفادي مثل هذا الهجوم إذا تمّ تغيير أوقات العمليّات الحسابيّة بطريقة صناعيّة.