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