0Pricing
Cryptology Academy · درس

ECDH: المنحنيات الإهليلجية لتبادل المفاتيح

طبّق ضرب العدد القياسي للمنحنيات الإهليلجية على اتفاق مفاتيح ECDH

ECDH: المنحنيات الإهليلجية لتبادل المفاتيح درس مجاني في Cryptology Academy على CoddyKit. هذا هو الدرس 3 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Cryptology Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Cryptology Academy 4 دروس في المجموع.

مرحبًا

يستبدل ECDH مجموعة DH الضربية بمجموعة منحنى إهليلجي. والنتيجة: مستوى أمان مكافئ مع مفاتيح أصغر بعشر مرات وعمليات أسرع بعشر مرات.

عمليات مجموعة EC

في ECDH، تعني «الضرب» عملية الضرب القياسي على المنحنى الإهليلجي: ضرب النقطة P في العدد القياسي k يعني جمع P مع نفسها k مرة: k×P. وهذا هو النظير على المنحنيات الإهليلجية للعملية g^k mod p.

بروتوكول ECDH

الاتفاق على المنحنى E والنقطة الأساسية G (وهما معلنان). Alice: المفتاح الخاص a، والمفتاح العام A = a×G Bob: المفتاح الخاص b، والمفتاح العام B = b×G Alice: ‏S = a×B = a×b×G Bob: ‏S = b×A = b×a×G يستخلص كلاهما النقطة S نفسها.

ECDLP

بالنظر إلى A = a×G على منحنى إهليلجي، أوجد a. تُعرف هذه بمشكلة اللوغاريتم المتقطع على المنحنى الإهليلجي. ولا توجد خوارزمية شبه أُسّية معروفة للمنحنيات العامة، مما يجعل ECDLP أصعب من DLP عند تساوي أحجام المفاتيح.

Curve25519

صمّمه Bernstein عام 2005. وهو بصيغة Montgomery:‏ y²=x³+486662x²+x فوق العدد الأولي 2^255-19. صُمم ليكون سريعًا ومقاومًا لأخطاء التنفيذ. ويُستخدم في WireGuard وSignal وSSH.

تبادل مفاتيح X25519

X25519 هي دالة ECDH التي تستخدم Curve25519. ويُستخدم إحداثي x فقط من النقطة المشتركة، بينما يتولى ضرب المعامل المشترك معالجة الحالات الطرفية. وقد وحّد RFC 7748‏ X25519 وX448 قياسيًا.

ECDH في Python

from cryptography.hazmat.primitives.asymmetric.x25519 import X25519PrivateKey alice_priv = X25519PrivateKey.generate() bob_priv = X25519PrivateKey.generate() alice_pub = alice_priv.public_key() bob_pub = bob_priv.public_key() shared_alice = alice_priv.exchange(bob_pub) shared_bob = bob_priv.exchange(alice_pub) assert shared_alice == shared_bob

من النقطة المشتركة إلى مفتاح متماثل

لا تُستخدم النقطة المشتركة الخام مباشرةً كمفتاح، لأنها لا تتوزع توزيعًا منتظمًا. استخدم HKDF لاشتقاق مفتاح متماثل صحيح: from cryptography.hazmat.primitives.kdf.hkdf import HKDF key = HKDF(SHA256, 32, salt, info).derive(shared_secret)

أحجام مفاتيح ECDH وDH

مستوى أمان قدره 128 بت: - DH: عدد أولي بطول 3072 بت - ECDH: منحنى بطول 256 بت نسبة حجم المفتاح: نحو 12:1. المفتاح العام لـ ECDH:‏ 32 بايتًا (Curve25519). المفتاح العام لـ DH:‏ 384 بايتًا. وتكون عمليات المفتاح الخاص في ECDH أسرع بنحو 50 مرة.

هجوم المعامل المشترك على المنحنيات الضعيفة

تستغل هجمات المجموعات الفرعية الصغيرة المنحنيات ذات المعاملات المشتركة غير البسيطة. يحتوي Curve25519 على معامل مشترك يساوي 8، لكن X25519 يعالج ذلك بشكل صحيح. أما منحنيات NIST‏ P فلها معامل مشترك يساوي 1. استخدم دائمًا تطبيقات موحّدة قياسيًا.

ECDH في TLS 1.3

يدعم TLS 1.3 ما يلي: X25519 وX448 وP-256 وP-384 وP-521 لتبادل المفاتيح. ويُعد X25519 الأكثر شيوعًا — سريعًا وآمنًا وثابت الزمن. يولّد كلا الطرفين مفاتيح مؤقتة لكل جلسة.

تحقق سريع

ما الميزة الأساسية لـ ECDH مقارنةً بـ Diffie-Hellman التقليدي؟

مراجعة

لقد أتقنت ECDH! بعد ذلك سنفهم السرية التامة للأمام، وسبب أهمية تبادل المفاتيح المؤقتة في TLS.

الأسئلة الشائعة

هل درس «ECDH: المنحنيات الإهليلجية لتبادل المفاتيح» مجاني؟

نعم — نص درس «ECDH: المنحنيات الإهليلجية لتبادل المفاتيح» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Cryptology Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Cryptology Academy 4 دروس في المجموع.

ماذا ستتعلم في «ECDH: المنحنيات الإهليلجية لتبادل المفاتيح»؟

طبّق ضرب العدد القياسي للمنحنيات الإهليلجية على اتفاق مفاتيح ECDH تتمرن على Cryptology Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Cryptology Academy؟

لا تُشترط خبرة سابقة. Cryptology Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 3 من أصل 4.

كم من الوقت يستغرق درس «ECDH: المنحنيات الإهليلجية لتبادل المفاتيح»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Cryptology Academy هذا؟

نعم. كل درس في Cryptology Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. مشكلة توزيع المفاتيح
  2. رياضيات تبادل مفاتيح Diffie-Hellman
  3. ECDH: المنحنيات الإهليلجية لتبادل المفاتيح
  4. السرية الأمامية وتبادل المفاتيح المؤقتة
← العودة إلى Cryptology Academy