Ανταλλαγή κλειδιών 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.
Μια πιθανή λύση γι' αυτή την άσκηση είναι να υλοποιήσεις τη δική σου συνάρτηση ύψωσης σε δύναμη με μέτρο. Για να μάθεις περισσότερα γι' αυτό, ανατρέξε στην παρακάτω σελίδα.
Πολλές υλοποιήσεις δεν λειτουργούν για όλες τις δυνατές εισόδους. Έχουν οριστεί επιπλέον προαιρετικά tests που βοηθούν να διασφαλιστεί ότι όλες οι έγκυρες είσοδοι παράγουν έγκυρα αποτελέσματα.
Για να τρέξεις τα tests μπόνους, αφαίρεσε τη σημαία #[ignore] και εκτέλεσε τα tests με το feature big-primes, ως εξής:
$ cargo test --features big-primes
Γράψου στο Exercism για να μάθεις και να κατακτήσεις Rust με 99 ασκήσεις και πραγματική καθοδήγηση από ανθρώπους, όλα δωρεάν.