تبادل مفاتيح Diffie-Hellman.
Alice وBob يستخدمان تبادل مفاتيح Diffie-Hellman لمشاركة الأسرار. يبدآن بأعداد أولية، ويختاران مفاتيح خاصة، ويولّدان مفاتيح عامة ويتبادلانها، ثم يولّدان مفتاحًا سريًا مشتركًا.
يزوّد برنامج الاختبار بعددين أوليين p وg.
تختار Alice مفتاحًا خاصًا a أكبر من 1 وأقل من p.
ويختار Bob بالمثل مفتاحًا خاصًا b.
تحسب Alice مفتاحًا عامًا A.
A = gᵃ mod p
وباستخدام نفس p وg، يحسب Bob بالمثل مفتاحًا عامًا B من مفتاحه الخاص b.
Alice وBob يتبادلان المفاتيح العامة.
تحسب Alice المفتاح السري s.
s = Bᵃ mod p
ويحسب Bob
s = Aᵇ mod p
الحسابات تُنتج النتيجة نفسها!
Alice وBob يتشاركان الآن السر s.
أحد الحلول الممكنة لهذا التمرين هو أن تنفّذ بنفسك دالة الرفع إلى أس معياري. لمعرفة المزيد عنها، راجع الصفحة التالية.
كثير من التنفيذات لا تعمل مع كامل نطاق المدخلات. وهناك اختبارات إضافية اختيارية معرّفة تساعد في التأكد من أن كل المدخلات الصحيحة تُنتج نتائج صحيحة.
لتشغيل اختبارات النقاط الإضافية، أزل العلامة #[ignore] ونفّذ الاختبارات مع الميزة big-primes، هكذا:
$ cargo test --features big-primes
سجّل في Exercism لتتعلّم وتتقن Rust عبر 99 تمرينًا، وإرشاد بشري حقيقي، وكل ذلك مجانًا.