أساسيات تشفير المفتاح العام: كيف يعمل المشاركة الآمنة
تعلم أساسيات تشفير المفتاح العام وكيف يتيح المشاركة الآمنة بين الغرباء. شرح RSA وDiffie-Hellman.
تشفير المفتاح العام — المعروف أيضاً بالتشفير غير المتماثل — يستخدم مفتاحين مترابطَين رياضياً: مفتاحاً عاماً يمكنك توزيعه بحرية ومفتاحاً خاصاً تحرسه. شفّر شيئاً بمفتاحي العام ولا يستطيع فكّ تشفيره إلا مفتاحي الخاص. هذا يحلّ أقدم مشكلة في التشفير: كيف يتمكّن غريبان لم يلتقيا من تبادل سر عبر قناة مفتوحة. اخترعه Diffie وHellman عام 1976 وجعله عملياً RSA بعد عام واحد، وهو الآن أساس TLS 1.3 وSignal وSSH وتوقيع Ed25519 وكل خدمة نقل ملفات تُثبت هوية المستخدمين. إليك كيف يعمل فعلياً.
المصيدة الرياضية
يعتمد كل تشفير بمفتاح عام على دوال "المصيدة" — عمليات حسابية سهلة إجراؤها للأمام لكن يستحيل فعلياً عكسها بدون معلومات إضافية. عائلتان تهيمنان:
- تحليل الأعداد الصحيحة (RSA): ضرب عددَين أوّليَّين كبيرَين سهل؛ تحليل حاصل ضربهما إلى عوامله الأولية صعب بصورة أسية. مفتاح RSA-2048 يستخدم عددَين أوّليَّين بطول 1024 بتاً تقريباً. أفضل هجوم معروف — المصفوفة العامة لحقل الأعداد — يتطلب ما يقارب 2^112 عملية.
- اللوغاريتمات المنفصلة على المنحنيات الإهليجية (ECDH وECDSA وEd25519): حساب ضرب النقطة على المنحنى سريع؛ عكسه لإيجاد الضارب صعب. المنحنيات ذات 256 بتاً كـ Curve25519 تعطي أماناً مكافئاً لـ RSA-3072.
كلتا المشكلتين سهلتان على الحواسيب الكمومية باستخدام خوارزمية Shor، ولهذا وحّد NIST بدائل ما بعد الكم (ML-KEM وML-DSA) في FIPS 203-205 عام 2024.
RSA في التطبيق العملي
نشر Ron Rivest وAdi Shamir وLeonard Adleman RSA عام 1977. المخطط أنيق:
- اختر عددَين أوّليَّين كبيرَين
pوq. - احسب
n = p × q(المعامل) وφ(n) = (p-1)(q-1). - اختر
eأوّلياً بالنسبة لـφ(n)، عادةً 65537. - احسب
dبحيثe × d ≡ 1 (mod φ(n)). - المفتاح العام:
(n, e). المفتاح الخاص:(n, d).
التشفير: ciphertext = message^e mod n. فكّ التشفير: message = ciphertext^d mod n. الرياضيات تعمل بفضل نظرية أويلر.
يستخدم RSA الواقعي حشو OAEP (RFC 8017) لمنع هجمات النص المشفّر المختار. RSA المدرسي غير آمن بصورة كارثية. RSA-2048 هو الحدّ الأدنى الحالي للأنظمة الجديدة؛ وRSA-3072 أو 4096 لأي شيء طويل الأمد.
Diffie-Hellman: أسرار مشتركة بدون إرسال المفاتيح
RSA يتيح لك التشفير لمستلم معروف. Diffie-Hellman يفعل شيئاً مختلفاً بدقة: يتيح لطرفَين اشتقاق سر مشترك عبر قناة عامة، دون أن يُرسل أيٌّ منهما السرّ.
النسخة الكلاسيكية (DH على الأعداد الصحيحة مقياساً لعدد أوّلي كبير):
- يتفق الطرفان على عدد أوّلي كبير
pومولّدg. - تختار Alice سراً
a، وترسلA = g^a mod p. - يختار Bob سراً
b، ويرسلB = g^b mod p. - تحسب Alice
B^a mod p = g^(ab) mod p. - يحسب Bob
A^b mod p = g^(ab) mod p.
يصل كلاهما إلى g^ab mod p دون أن يُرسل أي منهما a أو b. يرى المتنصّت g وp وA وB لكن حساب g^ab من A وB يستلزم حلّ مسألة اللوغاريتم المنفصل.
تستخدم DH الحديثة المنحنيات الإهليجية (ECDH). X25519 هو الاختيار المعياري: مفاتيح 32 بايت وأسرار مشتركة 32 بايت، تطبيق محصّن ضد هجمات التوقيت.
المنحنيات الإهليجية ولماذا هي المفضّلة
RSA يبدو قديماً لأنه في الغالب كذلك. حلّت تشفيرية المنحنيات الإهليجية محلّه لثلاثة أسباب عملية:
- مفاتيح أصغر. مفتاح EC بـ 256 بتاً يعطي أمان مفتاح RSA بـ 3072 بتاً. هذا 32 بايت مقابل 384 بايت.
- عمليات أسرع. ECDH على Curve25519 يستغرق حوالي 70 ميكرو ثانية على معالج حديث. توليد مفتاح RSA-3072 يستغرق ثوانٍ.
- مقاومة أفضل لضعف العشوائية. Ed25519 حتمي — التوقيعات لا تحتاج إلى قيمة عشوائية لكل رسالة، ما يتجنّب كارثة Sony PS3 ECDSA عام 2010 حيث أدى ثبات القيمة العشوائية إلى تسريب المفتاح الرئيسي.
منحنيات NIST (P-256 وP-384 وP-521) مدعومة على نطاق واسع لكن تاريخياً يرتاب فيها بعض المشفّرين بسبب ثوابت غير موضّحة. Curve25519 وEd25519 اللذان صمّمهما Daniel Bernstein هما المعيار الحديث المستخدَم في TLS 1.3 وWireGuard وSignal وSSH.
التوقيعات: إثبات من أرسل ماذا
يقوم تشفير المفتاح العام بشيء لا يستطيعه المتماثل: إثبات التأليف. يعكس التوقيع أدوار التشفير — "تُشفّر" بمفتاحك الخاص ويستطيع أي شخص يملك مفتاحك العام "فكّ التشفير" والتحقّق. إن نجح التحقّق، فلا بدّ أنك كنت تملك المفتاح الخاص.
التوقيعات الحقيقية تستخدم دوال التجزئة للتعامل مع الرسائل ذات الحجم الاعتباطي:
- احسب
h = SHA-256(message). - وقّع
hبالمفتاح الخاص (RSA-PSS أو ECDSA أو Ed25519). - يُجزّئ المتحقّق الرسالة المستلمة ويقارنها بالتوقيع باستخدام المفتاح العام.
التطبيقات: شهادات TLS (تُوقّع CA على المفتاح العام للموقع)، وتوقيع الرمز (توثيق Apple وMicrosoft Authenticode)، وتوقيع commit في Git، ومديري حزم البرامج (apt وHomebrew ونظيراتها).
أين يستخدم نقل الملفات تشفير المفتاح العام
للنقل القائم على روابط مجهولة الهوية (SwissTransfer وHexaTransfer)، لا يظهر تشفير المفتاح العام مباشرةً في الغالب — مفتاح AES عشوائي في جزء URL يتولى كل شيء. لكن للخدمات القائمة على الحسابات، تهمّ المفاتيح العامة:
- مصادقة خادم TLS 1.3. كل اتصال HTTPS يبدأ بشهادة الخادم المتحقَّق منها عبر سلسلة CA. يشتقّ تبادل مفاتيح ECDHE المؤقت حينئذٍ مفتاح الجلسة.
- التشفير من حساب إلى حساب. تمنح Tresorit وProton Drive وMega كل مستخدم زوج مفاتيح عند التسجيل. الملفات المشتركة بين الحسابات تُغلَّف بالمفتاح العام للمستلم.
- توقيع العملاء والتحديثات. تطبيقات سطح المكتب تتحقّق من التحديثات بتوقيعات Ed25519 أو RSA لمنع هجمات سلسلة الإمداد.
- المصادقة بدون كلمة مرور. WebAuthn والمفاتيح التمريرية (Passkeys) تستخدم مفاتيح EC مخزّنة في معالجات آمنة (Touch ID وWindows Hello وYubiKey).
توزيع المفاتيح: المشكلة الصعبة المتبقية
يحلّ تشفير المفتاح العام مشكلة توزيع مفاتيح واحدة لكنه يخلق أخرى: كيف تعرف أن المفتاح العام ينتمي فعلاً لمن يدّعي ذلك؟ أربعة نماذج:
- PKI (البنية التحتية للمفاتيح العامة). تُوقّع هيئات الشهادات على المفاتيح العامة. يستخدمها TLS مع جذور في Chrome وFirefox وSafari.
- شبكة الثقة. نهج PGP — يوقّع المستخدمون على مفاتيح بعضهم. مرن لكن مشكلات التوسّع حدّت من انتشاره.
- الثقة عند الاستخدام الأول (TOFU). نهج SSH — قبول المفتاح في المرة الأولى والتحذير إن تغيّر. بسيط لكن عرضة للاعتراض الأوّلي.
- شفافية المفاتيح. سجلّات شجرة Merkle حيث تكون جميع المفاتيح العامة قابلة للتدقيق علناً. يستخدمها WhatsApp وiMessage Contact Key Verification وأنظمة Passkey الحديثة.
للنقل لمستلمين مجهولي الهوية، تتجاوز مشاركة جزء URL هذا كلياً — يُسلّم المُرسِل المستلمَ المفتاحَ مباشرةً عبر الرابط، والمصداقية تعتمد على القناة المستخدمة لمشاركة الرابط.
ما تغيّره الحوسبة الكمومية
حاسوب كمومي واسع النطاق يُشغّل خوارزمية Shor يكسر كلاً من RSA وتشفير المنحنيات الإهليجية. التقديرات الحالية تضع الجدول الزمني في 10-20 عاماً، لكن الخطر آنيّ للبيانات ذات الأمد الطويل: هجمات "اجمع الآن وافكّ التشفير لاحقاً" تُسجّل حركة المرور المشفّرة اليوم لفكّ تشفيرها مستقبلاً.
معايير NIST لما بعد الكم لعام 2024:
- FIPS 203 (ML-KEM) — يحلّ محلّ Diffie-Hellman وECDH لتبادل المفاتيح. مبني على مسائل الشبكات.
- FIPS 204 (ML-DSA) — يحلّ محلّ RSA وECDSA للتوقيعات.
- FIPS 205 (SLH-DSA) — توقيع احتياطي قائم على التجزئة.
تدعم Cloudflare وGoogle الآن ML-KEM في تبادل مفاتيح TLS 1.3. ستتبعهما خدمات نقل الملفات خلال السنوات القادمة. يظلّ التشفير المتماثل (AES-256-GCM) بمنأى عن هذا إلى حدٍّ بعيد — خوارزمية Grover لا تُخفّض فعاليّته إلا إلى النصف.
تطبيق ذلك عملياً
للمشاركة الحساسة اليوم: TLS 1.3 مع تبادل مفاتيح X25519 يحمي الاتصال، وAES-256-GCM يتولى التشفير بالجملة، وللخدمات القائمة على الحسابات يُغلّف ECDH مع Curve25519 مفاتيح كل ملف. تتخطّى الخدمات القائمة على الروابط طبقة الحساب لكنها تكسب البساطة. كلا النموذجَين يوفّران أماناً قوياً عند التطبيق الصحيح.
جرّبها على hexatransfer.com — مجاني، بدون حساب، حتى 10 جيجابايت.
أرسل ملفات كبيرة بأمان مع تشفير من طرف إلى طرف
انقل ملفات حتى 10 جيجابايت مجاناً مع تشفير من طرف إلى طرف. لا حاجة لحساب. يتم تشفير ملفاتك في متصفحك قبل الرفع — لا أحد آخر يستطيع قراءتها.
إرسال ملف