Diffie-Hellman

Diffie-Hellman

سهل

التعليمات

تبادل مفاتيح Diffie-Hellman.

Alice وBob يستخدمان تبادل مفاتيح Diffie-Hellman لمشاركة الأسرار. يبدآن بأعداد أولية، ويختاران مفاتيح خاصة، ويولّدان مفاتيح عامة ويتبادلانها، ثم يولّدان مفتاحًا سريًا مشتركًا.

الخطوة 0

يزوّد برنامج الاختبار بعددين أوليين p وg.

الخطوة 1

تختار Alice مفتاحًا خاصًا a أكبر من 1 وأقل من p. ويختار Bob بالمثل مفتاحًا خاصًا b.

الخطوة 2

تحسب Alice مفتاحًا عامًا A.

A = gᵃ mod p

وباستخدام نفس p وg، يحسب Bob بالمثل مفتاحًا عامًا B من مفتاحه الخاص b.

الخطوة 3

Alice وBob يتبادلان المفاتيح العامة. تحسب Alice المفتاح السري s.

s = Bᵃ mod p

ويحسب Bob

s = Aᵇ mod p

الحسابات تُنتج النتيجة نفسها! Alice وBob يتشاركان الآن السر s.

أحد الحلول الممكنة لهذا التمرين هو أن تنفّذ بنفسك دالة الرفع إلى أس معياري. لمعرفة المزيد عنها، راجع الصفحة التالية.

لنيل نقاط إضافية

كثير من التنفيذات لا تعمل مع كامل نطاق المدخلات. وهناك اختبارات إضافية اختيارية معرّفة تساعد في التأكد من أن كل المدخلات الصحيحة تُنتج نتائج صحيحة.

لتشغيل اختبارات النقاط الإضافية، أزل العلامة #[ignore] ونفّذ الاختبارات مع الميزة big-primes، هكذا:

$ cargo test --features big-primes
تعديل عبر GitHub يفتح الرابط في نافذة أو علامة تبويب جديدة
Rust Exercism

مستعد لبدء Diffie-Hellman؟

سجّل في Exercism لتتعلّم وتتقن Rust عبر 99 تمرينًا، وإرشاد بشري حقيقي، وكل ذلك مجانًا.