Diffie-Hellman

Diffie-Hellman

آسان

دستورالعمل‌ها

تبادل کلید Diffie-Hellman.

آلیس و باب از تبادل کلید Diffie-Hellman برای به اشتراک گذاشتن رازها استفاده می‌کنند. آن‌ها با اعداد اول شروع می‌کنند، کلیدهای خصوصی انتخاب می‌کنند، کلیدهای عمومی می‌سازند و با هم مبادله می‌کنند و سپس یک کلید مخفی مشترک تولید می‌کنند.

گام ۰

برنامه‌ی آزمون اعداد اول p و g را در اختیار می‌گذارد.

گام ۱

آلیس یک کلید خصوصی a انتخاب می‌کند که بزرگ‌تر از ۱ و کوچک‌تر از p است. باب هم به همین شکل یک کلید خصوصی b انتخاب می‌کند.

گام ۲

آلیس کلید عمومی A را محاسبه می‌کند.

A = gᵃ mod p

باب هم با استفاده از همان p و g، به همین ترتیب کلید عمومی B را از کلید خصوصی b خود محاسبه می‌کند.

گام ۳

آلیس و باب کلیدهای عمومی را با هم مبادله می‌کنند. آلیس کلید مخفی s را محاسبه می‌کند.

s = Bᵃ mod p

باب محاسبه می‌کند

s = Aᵇ mod p

این محاسبات به یک نتیجه‌ی یکسان می‌رسند! اکنون آلیس و باب راز مشترک s را در اختیار دارند.

یکی از راه‌حل‌های ممکن برای این تمرین این است که تابع توان‌رسانی پیمانه‌ای خودتان را پیاده‌سازی کنید. برای اطلاعات بیشتر به صفحه‌ی زیر مراجعه کنید.

برای کسب امتیاز

بسیاری از پیاده‌سازی‌ها برای همه‌ی دامنه‌ی ورودی‌ها درست کار نمی‌کنند. آزمون‌های اختیاری دیگری هم تعریف شده‌اند که کمک می‌کنند مطمئن شوید همه‌ی ورودی‌های معتبر، نتایج معتبر تولید می‌کنند.

برای اجرای آزمون‌های امتیاز، پرچم #[ignore] را بردارید و آزمون‌ها را با ویژگی big-primes اجرا کنید، به این شکل:

$ cargo test --features big-primes
ویرایش از طریق GitHub این لینک در پنجره یا زبانه‌ی جدیدی باز می‌شود
Rust Exercism

آماده‌اید Diffie-Hellman را شروع کنید؟

در Exercism ثبت‌نام کنید تا Rust را همراه با 99 تمرین و مربی‌گری انسانی واقعی یاد بگیرید و در آن استاد شوید، همه‌ی این‌ها رایگان.