بقلم : أنتوان نكتو Antoine Nectoux
ترجمة : أسماء تراوش

المؤلفون الأصليون : غريم. ل. كوهن Graeme L. Cohen (جامعة التكنولوجيا، سيدني Sydney)، ستيفن غالبريث Steven Galbraith (جامعة أوكلاندا Auckland)، إدواردو برسيشتي Edoardo Persichetti (جامعة أوكلاندا).
كيف نستطيع إرسال تفاصيل بطاقتنا الائتمانية عبر الانترنت، أو باستعمال الهاتف النقال، في الوقت الذي يستطيع فيه آخرون اعتراض رسائلنا؟ كيف نستطيع أن نثق في برامجيات التحديث، ونحن على علم بانتشار الفيروسات الحاسوبية؟ التشفير، أو التعمية Cryptography (دراسة تقنيات التواصل الآمن في حال وجود خصوم وأعداء) يزودنا بأجوبة عن هذه الأسئلة، والرياضيات تمدّنا بأساسياته.
لمحة تاريخية
منذ آلاف السنين كان التواصل بطريقة آمنة وسرية محل اهتمام : هناك ما يدل على أن يوليوس قيصر Julius Caesar استعمل طريقة تشفير بسيطة للتواصل مع قادة جيوشه. وتُعرف هذه الخطة باسم “شفرة قيصر” التي تقوم على إجراء نفس الإزاحة لكل حرف بعدد معين من المرات ليشغل موضعا جديدا في الرسالة. وبذلك نحصل على وثيقة تدعى بـ”النص المشفر” ciphertext. يمكن للطرف الثاني (مستقبل البرقية) استعادة النص الأصلي للرسالة عند إجراء العملية العكسية، أي بجعل الحروف في النص تنزاح في الاتجاه الآخر بنفس عدد المرات التي تبناها المشفّر.
جوهر الفكرة يتمثّل في كون كلّ من المرسل والمستقبل ينبغي أن يكونا على علم بقيمة سرية (في هذه الحالة، القيمة السرية هي عدد الوضعيات) التي من المفترض أن تكون غير معروفة لدى الأطراف الأخرى الساعية إلى الاطلاع على فحوى البرقية. تدعى القيمة السرية بالمفتاح (key). في حالة شفرة قيصر فإن المفتاح
هو عدد محصور بين 0 و 26. تأخذ خوارزمية التشفير
كمدخل رسالة
(Message) ومفتاح
. مثال ذلك :
. أما عملية فك الشفرة
فتتخذ كمدخل لها النص المشفرة
ونفس المفتاح
. مثال ذلك :
.
تدعى أنظمة التشفير التي تستعمل فيها نفس المفتاح لوضع شفرة وفكها أنظمة المفتاح التناظري.
تعتبر شفرة قيصر بسيطة جدا ولذا لا يمكنها أن تكون آمنة في عصرنا الحالي. غير أنه توجد شفرات بمفاتيح تناظرية ذات استعمال واسع في كثير من الوضعيات؛ كمثال على ذلك هناك الشفرة الشهيرة AES، وهي أحد معايير نقل المعلومات لدى الحكومة الأمريكية. ورغم فعالية وأمان هذه الأنظمة فإنها تطرح مشكلا : على كل من المرسل والمستقبل أن يتقاسما مسبقا سرّا معينًا. فكيف لنا إذن أن نتواصل عبر الإنترنت بطريقة آمنة مع أناس لم نلتق بهم أبدا؟
فكان الحل لهذا المشكل في ظهور مفهوم مذهل عرف باسم “مفتاح الشفرة العمومي” الذي صدر لأول مرة سنة 1976 ضمن بحث بعنوان “اتجاهات جديدة في الشفرة” (New directions in cryptography) بقلم وايتفيلد ديفي Whitefield Diffie ومارتن هلمن Martin Hellman.
في هذه الحالة، عوضًا عن استعمال مفتاح واحد لوضع شفرة وفكها، نستعمل مفتاحا عموميا متاحا لجميع المستعملين، ومفتاحا خاصا يظل سريًا لمستعمل معيّن. بعبارة أخرى فالكل يستطيع أن يبعث برسالة، لكن هناك شخصا واحدا فقط يمكن تلقيها : كلُّ منا يستطيع وضع رسالة عبر شق صندوق بريد، غير أنه لا يوجد سوى شخص واحد يمكنه الحصول عليها، وهو الشخص الذي يمتلك مفتاح صندوق البريد. للتواصل بأمان مع أليس Alice يقوم أحدهم بالبحث عن مفتاحها السري ويستعمله لإنشاء نص مشفر لا يستطيع فكه إلا أليس لأنها الوحيدة التي تعرف المفتاح الخاص السري.
ينبغي على أنظمة التشفير أن تقوم على المسائل الحسابية المتميزة بصعوبة الحل. تزودنا الرياضيات بمثل تلك المسائل. نشير كمثال على ذلك إلى نظام RSA القائم على صعوبة التوصل إلى العوامل الأولية لعدد صحيح كبير جدا.
نبذة عن نظرية الأعداد
قبل وصف مفتاح الشفرة العمومي RSA الذائعة الصيت نحتاج إلى بعض نتائج نظرية الأعداد. وهذا ما يتطلب الإلمام بمبرهنة ثنائي الحد وبالحساب الترديدي (أو المقاسي) modular arithmetics إلماما متواضعا.
في الحساب الترديدي نجمّع الأعداد الصحيحة في صفوف حسب باقي قسمتها على عدد معين
، يدعى ترديد modulus. فعلى سبيل المثال، إذا كان
فإن لدينا 9 في صف 2. كما أن 5، 12، 19 أعداد تنتمي إلى نفس الصف. ونكتب
و
. من السهل ملاحظة أنه توجد فقط سبعة صفوف ممكنة، ممثلة بالمجموعة
عندما نعمل بترديد 7. إنه بالإمكان إجراء عمليتي الجمع والضرب بترديد 7 وهذا يتم ببساطة عند القيام بطرح مضاعف الترديد إثر القيام بالعملية وفق القواعد المعتادة. وهكذا :
و
. لاحظ أنه إذا كان
فإن
سيكون مضاعفا لـ
.
ليكن
و
أوليين حيث
، وليكن
عددا صحيحا ليس مضاعفا لـ
أو
. سنبين الآن أن العلاقة
قائمة. تمثل هذه العلاقة حالة خاصة من مبرهنة فيرما-أولر Fermat-Euler.
البرهان يبدأ بصيغة ثنائي الحد:
![]()
حيث
عدد طبيعي
. ينتج من
![]()
أنه على
أن يكون قاسما لـ
، ذلك لأن
يقسم الطرف الأيسر ولا يقسم
.
ومن ثمّ، فمن أجل كل عددين صحيحين
و
، وبمراعاة مبرهنة ثنائي الحد، نحصل على :
![]()
وباعتبار عدد طبيعي آخر
يأتي :
![]()
بهذه الكيفية نحصل من أجل كل أعداد صحيحة
،
، …،
على :
![]()
والآن بوضع
يتضح أن
![]()
بما أن
فالمعادلة السابقة تعني أن العدد
مضاعف لـ
.
نعلم (فرضا) أن
ليس مضاعفا لـ
. في هذه الحالة لما كان
أوليا فإن :
![]()
والآن، برفع كلٍ من طرفي الموافقة إلى القوة
يتضح أن :
![]()
وبتكرار نفس العملية بعد استبدال
بـ
نحصل على :
![]()
هذا معناه أنه يوجد عددان طبيعيان
و
يحققان على الترتيب :
و
. ولذلك فإن :
.
ومنه
يقسم
(لأن
و
عددان أوليان مختلفان). وبالتالي
حيث
عدد طبيعي. وهكذا نصل إلى العلاقة
، أي
. وهذا ما ينهي البرهان ![]()
نظام التشفير RSA
RSA هو الحروف الأولى لأسماء الأعلام الثلاثة : ريفست Rivest، شمير Shamir، أدلمان Adleman الذين كانوا أول من اقترحوا هذا النظام عام 1977. يعمل هذا النظام كالتالي.
أولا، اختر عددين أوليين مختلفين
و
، ثم احسب
و
. ثم اختر عددا طبيعيا كيفيا
محصورا بين 3 و
بحيث لا يكون لـ
و
عوامل أولية مشتركة بينهما. المفتاح العمومي عندئذ هو الثنائية
. أما المفتاح الخاص
الذي سيبقيه المرسل سرًا، فينبغي أن يحقق العلاقة
. ومن ثم
(نحصل على هذه نتيجة بسهولة باستعمال خوارزمية إقليدس). فعلى سبيل المثال، بأخذ
يكون
، وباختيار
يكون
(تلك هي أصغر قيمة يأخذها
).
إن الرسائل في نظام RSA أعداد طبيعية
بحيث
. في البداية قد لا تكون عملية تشفير نصوص الرسائل بواسطة مخطط يستعمل الأعداد الطبيعية عملية واضحة. ومع ذلك فإن أنظمة التشفير المطبقة في أجهزة الحاسوب وفي جميع الملفات ممثلة كلها في معطيات كتبت بنظام ثنائي، يمكن تشفيرها بواسطة الأعداد الطبيعية.
عملية التشفير هي الآتية. نفرض أن بوب يريد أن يبعث برسالة
إلى أليس. من أجل ذلك يبحث عن مفتاحها العمومي
. ثم يحسب
، ويرسل بعد ذلك
إلى أليس. لفك رموز النص المشفر
، تستعمل أليس المفتاح الخاص
، عن طريق حساب
. من المهم الإشارة إلى أنه رغم كبر الأعداد
،
،
فإننا نستطيع أن نقوم بالحسابات بسلاسة، فمثلا لحساب
نستعمل تقنية تسمى الأسّية الترديدية Modular exponentiation.
نستطيع القيام بعملية فك الشفرة مادام
، من أجل عدد صحيح
، علما أن (كما بينا أعلاه):
![]()
(في الواقع يمكننا تجاهل الحالة التي يكون فيها
مضاعفا لـ
أو
)، ولذا فإن :
![]()
الملاحظ أن المستعمل الدخيل الذي لا يعرف المفتاح الخاص
، ينبغي عليه تفكيك
إلى جداء عوامل أولية لاكتشاف العددين
و
. وهذه العملية تتجاوز طاقة الحواسيب المتداولة إذا ما كانت الأعداد الأولية المطلوبة كبيرة بكفاية، يفوق عدد أرقام كل منهما 200 رقم مثلا (الأرقام القياسية العالمية في موضوع التفكيك إلى عوامل أولية تشير إلى أنه يمكن تحليل
عندما يتكون كل من العاملين من نحو 100 رقم لا أكثر).
وهذا في الحقيقة ما يحدد مستوى الحماية للنظام. فالفكرة المحورية لمفتاح الشفرة العمومي هي أنه، طالما تبوء محاولات المصادر الهجومية لاختراق الحواسيب بالفشل فهذا يدل على أن نظام التشفير في أمان. هذا الأمر يحدد مسبقا (عادة ما يكون
أو
عملية أنمولية)، كما أن هذا الموضوع مرتبط بسياق وهدف الاتصال. فمن الواضح أن رسالة سرية لوكالة الاستخبارات المركزية الأمريكية وبريد إلكتروني بين مستخدميْن لشبكة الانترنت لا نتوقع أنهما يتمتعان بنفس معايير للحماية !!!
التوقيعات
يمكننا الآن الرجوع إلى مشكل تحديث البرامج، أي مشكل التوثيق. فكما أسلفنا، لدينا مفتاح عمومي ومفتاح خاص. تستعمل أليس مفتاحها الخاص لإنشاء توقيع رقمي ليرسل مع وثيقة حتى يثبت موثوقيتها (التوقيع مرتبط بالوثيقة ولا يمكن قصه وإلصاقه في وثيقة أخرى). عندئذ يقوم المستقبِل بالتحقق من هذا التوقيع مستعملا المفتاح العمومي.
لنفرض مثلا، أن حاسوبك أظهر لك أنه وجد برنامج تحديث لـ”أدوب” Adobe. فكيف له أن يعرف أن هذا برنامج تحديث وليس فيروسا في هيئة برنامج؟ الحل يكمن في أن يمتلك برنامج التحديث توقيعا رقميا بالنسبة للمفتاح العمومي لـ”أدوب”. فذلك المفتاح مثبت قبل اليوم على حاسوبك في برنامج “أدوب”. ومن ثمّ يمكن للحاسوب أن يتحقق من التوقيع قبل القيام بتثبيت المستجدات. وهكذا فنجاح عملية التحقق يؤكد لنا أن مصدر البرنامج هو “أدوب” وليس مصدرا آخر.
دعنا نوضح الآن كيف ننشئ توقيعا رقميا باستعمال RSA.
الملاحظ أن كلاً من المفتاحين العمومي والخاص يتعلق بعملية التشفير. عندما تريد أليس التحقق من وثيقة (مثال: برنامج تحديث) فما عليها سوى تحويلها إلى عدد طبيعي
حيث
، ثم حساب
، وبعدها ترفق التوقيع
بالملف. أما بوب فيقوم بالتحقق من التوقيع بحساب
، ثم التأكد من المساواة
. من الجلي، كما هو الحال في نظام التشفير RSA، أنه إذا حاول دخيل إنشاء توقيع مُجْدٍ (مثلا: قرصان يريد تصميم فيروس) فسيحتاج إلى معرفة الأس
، الأمر الذي يتطلب البحث عن تفكيك
إلى عوامل أولية.
البحوث الحالية
لقد عرّفنا بنظام تشفير RSA وأنظمة التوقيع الرقمي للبرامج، غير أن هناك عدة أنظمة أخرى قائمة على مواضيع مختلفة في الرياضيات، مثل: الحقول المنتهية، والمنحنيات الناقصية، وجملة المعادلات غير الخطية المتعددة المتغيرات، رموز تصحيح الخطأ وغيرها.
إن مفتاح الشفرة العمومي مجال بحث جد نشط، ولا زالت هناك أسئلة مفتوحة قيد الدراسة.
سيناريو ما بعد الكمي
هل كل مشاكلنا تحل بـ RSA؟ لسوء الحظ فالإجابة هي بالنفي. ذلك أن أمان هذا النظام كغيره من المخططات القائمة على نظرية الأعداد مهدد بصفة جدية من جراء التطور الهائل الذي تسجله الحواسيب الكمومية. فخوارزمية شور Shor –التي ظهرت سنة 1994 تحت العنوان الواعد “Polynomial time algorithms for discrete logarithms and factoring on a quantum computer” قادرة على التفوق على نظام تشفير RSA إذا ما تواصلت صناعة الحواسيب الكمومية على نطاق واسع. هناك حواسيب كمومية صغيرة الحجم أصبحت متوفرة الآن ومن المنتظر أن تعرف تحسينات في المستقبل القريب.
لذلك فمن المهم دعم الأنظمة البديلة القادرة على مقاومة آثار هذا السيناريو إذا ما أصبح حقيقة. والملاحظ أن المعنيين بالتشفير نشطون جدا في هذا الاتجاه، وهناك بحوث جارية تركز على تطوير أنظمة تشفير جديدة مبنية على فروع مختلفة من الرياضيات. وهذه الأنظمة قائمة على مسائل حسابية نأمل أنها لن تعاني من نفس نقاط الضعف أمام الخوارزميات الكمومية.
المراجع
[1] Simon Singh, The Code Book : The Science of Secrecy from Ancient Egypt to Quantum Cryptography (2000), Anchor.