فهم خوارزميات التشفير: دليلك الشامل مع أمثلة تطبيقية
في عصرنا الرقمي، أصبحت حماية المعلومات أمراً بالغ الأهمية. التشفير هو حجر الزاوية في الأمن السيبراني، فهو يضمن سرية وسلامة البيانات أثناء نقلها وتخزينها. ببساطة، التشفير هو عملية تحويل المعلومات (النص الواضح) إلى صيغة مشفرة (النص المشفر) لا يمكن فهمها إلا من قبل الأطراف المصرح لها. هذه العملية ثنائية الاتجاه، حيث يجب أن تكون هناك آلية لفك التشفير وإعادة النص إلى صورته الأصلية.
يهدف هذا المقال إلى الغوص في اثنتين من أكثر خوارزميات التشفير شيوعًا واستخدامًا: Diffie-Hellman و RSA. سنستعرض آليات عملهما، أمثلة تطبيقية، وأهميتهما في بناء اتصالات آمنة.
خوارزمية ديفي-هيلمان (Diffie-Hellman): تبادل المفاتيح الآمن
عندما ظهرت خوارزميات التشفير المتماثل لأول مرة، واجهت مشكلة رئيسية: كيف يمكن لطرفين تبادل مفتاح سري مشترك بأمان دون أن يتم اعتراضه من قبل طرف ثالث؟ إذا تمكن المهاجم من الحصول على المفتاح، فسيصبح كسر التشفير أمرًا سهلاً، مما يقوض الغرض من الاتصال الآمن.
جاءت خوارزمية Diffie-Hellman لتحل هذه المشكلة من خلال السماح لأطراف لا تعرف بعضها البعض مسبقًا بإنشاء مفتاح سري مشترك عبر قناة اتصال عامة وغير آمنة. هذا المفتاح المشترك يصعب للغاية اختراقه، حتى لو تم مراقبة جميع الاتصالات.
كيف تعمل خوارزمية ديفي-هيلمان؟
تُعرف Diffie-Hellman بكونها بروتوكول تبادل مفاتيح. على الرغم من إمكانية استخدامها للتشفير المباشر، إلا أن استخدامها الأساسي والأكثر كفاءة هو لتبادل المفاتيح، ثم الانتقال إلى خوارزمية تشفير متماثل (أسرع بكثير) لنقل البيانات الفعلية. يمكن تشبيه العملية بمثال الألوان:

المصدر: ويكيبيديا
في هذا التشبيه، يتفق الطرفان (أليس وبوب) على لون بداية مشترك (عام). كل منهما يختار لونًا سريًا خاصًا به. ثم يمزج كل طرف اللون العام مع لونه السري، وينتج عن ذلك لونان مختلفان. يتبادل الطرفان هذين اللونين المختلطين، ثم يمزج كل طرف اللون المستلم مع لونه السري الخاص به. والنتيجة المذهلة هي أن كلا الطرفين ينتهيان بنفس اللون السري النهائي المشترك. تعتمد هذه الفكرة على سهولة مزج الألوان وصعوبة فصلها لاستعادة اللون الأصلي السري.
مثال رياضي لخوارزمية ديفي-هيلمان
في الممارسة العملية، يتم تطبيق Diffie-Hellman باستخدام العمليات الرياضية. لنفترض أن بوب وأليس اتفقا على عددين:
- عدد أولي كبير،
p = 29 - أساس
g = 5
الآن، يقوم كل منهما بالخطوات التالية:
// بوب يختار رقمًا سريًا x (مثلاً x = 4)
X = g^x % p
X = 5^4 % 29 = 625 % 29 = 16
// أليس تختار رقمًا سريًا y (مثلاً y = 8)
Y = g^y % p
Y = 5^8 % 29 = 390,625 % 29 = 24
// بوب يرسل X إلى أليس، وأليس ترسل Y إلى بوب
// بوب يحسب المفتاح المشترك K
K = Y^x % p
K = 24^4 % 29 = 331,776 % 29 = 16
// أليس تحسب المفتاح المشترك K
K = X^y % p
K = 16^8 % 29 = 4,294,967,296 % 29 = 16
كما نرى، حصل كل من بوب وأليس على نفس الرقم K، وهو المفتاح السري المشترك الذي يمكنهما الآن استخدامه للتواصل بأمان، لأنه لا يوجد طرف آخر يعرف K.
أمان بروتوكول ديفي-هيلمان
يعتمد أمان هذا البروتوكول على عدة حقائق وافتراضات:
- حقيقة: من السهل نسبيًا توليد أعداد أولية كبيرة (مثل
p). - حقيقة: الأسس المعيارية سهلة الحساب (مثل
X = g^x % p). - افتراض (بناءً على قوة الحوسبة الحالية والرياضيات): استخراج الجذر المعياري بدون العوامل الأولية صعب للغاية. بمعنى آخر، من الصعب جدًا العثور على
Kدون معرفةxوy، حتى لو تم اعتراض حركة المرور ورؤيةpوgوXوY.
هذا يعني أنه من السهل إجراء العمليات الحسابية المطلوبة لإنشاء المفتاح، ولكن من الصعب للغاية ويستغرق وقتًا طويلاً محاولة كسر المفتاح بالقوة الغاشمة (brute force).
السرية الأمامية التامة (Perfect Forward Secrecy – PFS)
تسمح Diffie-Hellman بتحقيق ما يسمى بالسرية الأمامية التامة. هذا المفهوم يعني أنه إذا تم اختراق تشفير يستخدمه الخادم حاليًا، فإن ذلك لا يعني أن جميع الاتصالات السابقة التي أجراها الخادم يمكن قراءتها. بعبارة أخرى، يسمح الاختراق برؤية الاتصالات الجارية فقط (باستخدام المفتاح السري الحالي). نظرًا لأن كل مجموعة من الاتصالات لها مفتاح سري مختلف، فسيتعين على المهاجم اختراق كل مفتاح بشكل منفصل.
تُعرف هذه الخاصية بـ Ephemeral Diffie Hellman (EDH أو DHE) عندما تستخدم Diffie-Hellman قيمًا عشوائية جديدة لكل جلسة، وبالتالي تولد مفاتيح جديدة لكل جلسة. تستخدم العديد من مجموعات التشفير هذه الميزة لتحقيق السرية الأمامية التامة.
قيود ديفي-هيلمان
أكبر قيود Diffie-Hellman هو أنها لا تتحقق من الهوية. يمكن لأي شخص أن يدعي أنه أليس أو بوب، ولا توجد آلية مدمجة للتحقق من صحة هذا الادعاء. بالإضافة إلى ذلك، إذا لم يتم تنفيذ الخوارزمية بطريقة آمنة، فقد يتم اختراقها بموارد مخصصة كافية (وهو أمر غير مرجح لمعظم الأفراد، ولكنه ممكن للفرق الأكاديمية أو الجهات الحكومية).
على سبيل المثال، قد يحدث هذا إذا لم يتم تزويد مولد الأرقام العشوائية بإنتروبيا كافية لدعم القوة المطلوبة. كما أظهر هجوم في عام 2015 أنه عندما تستخدم العديد من الخوادم نفس الأعداد الأولية كنقطة بداية لتبادل المفاتيح، فإن الأمان العام لـ Diffie-Hellman ينخفض. ومع ذلك، فإن هذا النوع من الهجمات لا يزال يتطلب موارد على مستوى أكاديمي أو حكومي ومن غير المرجح أن يؤثر على الغالبية العظمى من المستخدمين.
لحسن الحظ، بالنسبة لأولئك الذين يقلقون بشأن المهاجمين على مستوى الدولة، هناك طريقة أخرى لتحقيق تبادل مفاتيح DH باستخدام تشفير المنحنى البيضاوي (ECDHE)، والذي يوفر مستوى أعلى من الأمان.
خوارزمية RSA: التشفير غير المتماثل والتوقيعات الرقمية
سميت خوارزمية RSA على اسم مبتكريها – Rivest و Shamir و Adleman – وهي طريقة لتوليد مفاتيح عامة وخاصة. يغطي هذا المقال خوارزمية التشفير غير المتماثل لـ RSA، والتي تسمح بتبادل المفاتيح. في هذه الطريقة، يتم تعيين مفاتيح عامة وخاصة لكل طرف في المعاملة، ثم يتم إنشاء مفتاح متماثل، وأخيرًا، يتم استخدام أزواج المفاتيح العامة/الخاصة لتوصيل المفتاح المتماثل المشترك بأمان. نظرًا لأن التشفير غير المتماثل أبطأ عمومًا من التشفير المتماثل ولا يتوسع بنفس الكفاءة، فإن استخدام التشفير غير المتماثل لتبادل المفاتيح المتماثلة بأمان أمر شائع جدًا.
كيف تعمل خوارزمية RSA؟
تعتمد RSA على اختيار عددين أوليين كبيرين جدًا (على الأقل 512 بت، أو 155 رقمًا عشريًا لكل منهما)، x و y. يجب أن تكون هذه الأرقام سرية ويتم اختيارها عشوائيًا.
- حساب المعامل
z: يتم ضرب العددين الأوليين:z = x * y. - اختيار الأس العام
e: يتم اختيار عدد صحيح فرديeبين 3 وn - 1، بحيث لا يكون له عوامل مشتركة (باستثناء 1) مع(x-1)(y-1)(أي أنه أولي نسبيًا لـx-1وy-1). - حساب الأس الخاص
d: يتم حساب الأس الخاصdمنxوyوeباستخدام العلاقة:de = 1 % L، حيثLهو المضاعف المشترك الأصغر لـx-1وy-1.dهو معكوسe % L. - توليد المفاتيح: يتم إخراج
(z, e)كمفتاح عام و(z, d)كمفتاح خاص.
الآن، إذا أراد بوب إرسال رسالة إلى أليس، فإنه يقوم بإنشاء النص المشفر (C) من النص الواضح (P) باستخدام هذه الصيغة:
C = P^e % z
لفك تشفير هذه الرسالة، تقوم أليس بحساب ما يلي:
P = C^d % z
تضمن العلاقة بين d و e أن وظيفتي التشفير وفك التشفير متعاكستان. هذا يعني أن وظيفة فك التشفير قادرة على استعادة الرسالة الأصلية بنجاح، وأنه من الصعب جدًا استعادة الرسالة الأصلية بدون المفتاح الخاص (z, d) أو العوامل الأولية x و y. وهذا يعني أيضًا أنه يمكن جعل z و e عامين دون المساس بأمان النظام، مما يسهل التواصل مع الآخرين الذين لا يوجد لديك مفتاح سري مشترك معهم بالفعل.
التوقيعات الرقمية باستخدام RSA
يمكن أيضًا استخدام عمليات RSA بشكل عكسي للحصول على توقيع رقمي للرسالة. أولاً، يتم استخدام عملية فك التشفير على النص الواضح. على سبيل المثال، s = SIGNATURE(p) = p^d % z. ثم، يمكن للمستلم التحقق من التوقيع الرقمي بتطبيق وظيفة التشفير ومقارنة النتيجة بالرسالة. على سبيل المثال، m = VERIFY(s) = S^e % z. غالبًا ما يكون النص الواضح في هذه الحالة هو تجزئة (hash) للرسالة، مما يعني أنه يمكن توقيع الرسالة (بغض النظر عن طولها) بعملية أس واحدة فقط.

المصدر: xkcd.com/538/
أمان نظام RSA
يعتمد أمان نظام RSA على عدة عوامل:
- حقيقة: من السهل نسبيًا توليد أعداد أولية كبيرة (مثل
xوy). - حقيقة: عملية الضرب سهلة جدًا (إيجاد
z). - افتراض (بناءً على الرياضيات الحالية): التحليل إلى عوامل صعب. بالنظر إلى
z، من الصعب نسبيًا استعادةxوy. إنه ممكن، ولكنه يستغرق وقتًا طويلاً ومكلفًا. تشير إحدى التقديرات إلى أن استعادة العوامل الأولية لعدد1024-بتقد يستغرق عامًا على جهاز بتكلفة 10 ملايين دولار. مضاعفة الحجم ستزيد العمل المطلوب بشكل كبير (عدة مليارات مرة). - حقيقة: الأسس المعيارية سهلة الحساب (مثل
C = P^e % z). - حقيقة: استخراج الجذر المعياري (عكس العملية أعلاه) سهل إذا كانت العوامل الأولية معروفة (إذا كان لديك
zوCوeوالعوامل الأوليةxوy، فمن السهل إيجادP). - افتراض (بناءً على قوة الحوسبة الحالية والرياضيات): استخراج الجذر المعياري بدون العوامل الأولية صعب للغاية (إذا كان لديك
zوCوe، ولكن ليسxوy، فمن الصعب نسبيًا إيجادP، خاصة إذا كانPكبيرًا بما فيه الكفاية).
ديفي-هيلمان مقابل RSA: أيهما أفضل؟
يعتمد اختيار الخوارزمية الأفضل على حالة الاستخدام المحددة. هناك بعض الاختلافات الرئيسية بين الخوارزميتين:
- السرية الأمامية التامة (
PFS): بينما يمكن نظريًا توليد أزواج مفاتيحRSAمؤقتة وتوفيرPFSباستخدامRSA، فإن التكلفة الحسابية أعلى بكثير منDiffie-Hellman. هذا يجعلDiffie-Hellmanخيارًا أفضل لتطبيقاتSSL/TLSحيث تكون السرية الأمامية التامة مطلوبة. - الأداء: على الرغم من وجود بعض الاختلافات في الأداء بين الخوارزميتين (من حيث العمل المطلوب من الخادم)، إلا أن هذه الاختلافات ليست كبيرة بما يكفي عادةً لإحداث فرق حاسم عند الاختيار بينهما.
- الدعم والاعتماد الصناعي: غالبًا ما يكون الاعتبار الأساسي هو مدى دعم الخوارزمية لحالة الاستخدام الخاصة بك أو مدى شعبيتها وقبولها كمعيار في الصناعة. على سبيل المثال، بينما كانت
Diffie-Hellmanمعتمدة من قبل الحكومة الأمريكية ومدعومة من قبل هيئة مؤسسية، لم يتم إصدار معيار عام لها. في المقابل، قدمتRSA(الموحدة من قبل منظمة خاصة) معيارًا مجانيًا، مما جعلها تحظى بشعبية كبيرة بين المنظمات الخاصة.
بشكل عام، تُفضل Diffie-Hellman لتبادل المفاتيح في سياقات تتطلب PFS مثل اتصالات الويب الآمنة (HTTPS)، بينما تُستخدم RSA على نطاق واسع للتوقيعات الرقمية وتبادل المفاتيح في سيناريوهات أخرى حيث قد لا تكون PFS هي الأولوية القصوى أو حيث تكون البنية التحتية قائمة على RSA.
الخلاصة التقنية
تُعد خوارزميات التشفير Diffie-Hellman و RSA من الركائز الأساسية للأمن الرقمي الحديث، حيث تقدم كل منهما حلولاً فريدة لتحديات الاتصال الآمن. تُبرع Diffie-Hellman في تبادل المفاتيح السرية عبر قنوات غير آمنة، وتُعتبر مثالية لتحقيق السرية الأمامية التامة في بروتوكولات مثل TLS، مما يضمن أن اختراق مفتاح جلسة واحدة لا يعرض الاتصالات السابقة أو المستقبلية للخطر. في المقابل، توفر RSA نظامًا قويًا للتشفير غير المتماثل والتوقيعات الرقمية، معتمدة على صعوبة تحليل الأعداد الكبيرة إلى عواملها الأولية، مما يجعلها حلاً فعالاً لتأمين البيانات والتأكد من هويتها.
فهم هذه الخوارزميات ليس مجرد معرفة نظرية، بل هو ضرورة عملية للمطورين والمهندسين الأمنيين لإنشاء أنظمة قوية وموثوقة. إن الاختيار بينهما غالبًا ما يعتمد على متطلبات الأمان المحددة، كفاءة الأداء، ودرجة السرية المطلوبة، مع الأخذ في الاعتبار أن التطورات في الحوسبة الكمومية قد تتطلب إعادة تقييم لأسس أمان هذه الخوارزميات في المستقبل.