Πώς λειτουργεί το RSA:
1. Γενιά κλειδιών:
*Επιλέξτε δύο ξεχωριστούς πρώτους αριθμούς, *P *και *Q *. Όσο μεγαλύτερα είναι αυτά, τόσο πιο ασφαλής είναι η κρυπτογράφηση.
* Υπολογίστε * n =p * q *. * n* είναι το μέτρο.
* Υπολογίστε φ (n) =(p-1) (q-1). Αυτή είναι η ολική λειτουργία του Euler, που αντιπροσωπεύει τον αριθμό των ακεραίων λιγότερο από το *N *που είναι σχετικά πρωταρχικοί στο *n *.
* Επιλέξτε έναν ακέραιο * e * (δημόσιο εκθέτη) έτσι ώστε να είναι COPRIME). Μια κοινή επιλογή είναι 65537 (2
* Υπολογίστε * d * (ιδιωτικός εκθέτης) έτσι ώστε * d * * e ≡ 1 (mod φ (n)). Αυτό σημαίνει * d * * * e * αφήνει ένα υπόλοιπο 1 όταν διαιρείται με φ (n). Αυτό γίνεται συνήθως χρησιμοποιώντας τον εκτεταμένο αλγόριθμο ευκλείδειος.
2. Δημόσιο κλειδί: Το δημόσιο κλειδί είναι το ζευγάρι (*n*,*e*). Αυτό μοιράζεται δημοσίως.
3. Ιδιωτικό κλειδί: Το ιδιωτικό κλειδί είναι το ζευγάρι (*n*,*d*). Αυτό πρέπει να παραμείνει μυστικό.
4. Κρυπτογράφηση: Για να κρυπτογραφήσετε ένα μήνυμα *m *(αντιπροσωπεύεται ως αριθμός μικρότερος από *n *):
* Ciphertext * c * =* m
5. Αποκρυπτογράφηση: Για να αποκρυπτογραφήσετε το κρυπτογράφημα *C *:
* Plaintext * m * =* c
Γιατί λειτουργεί: Το θεώρημα του Euler δηλώνει ότι εάν *a *και *n *είναι coprime, τότε *a
Επίλυση αριθμητικών RSA:
Η δυσκολία επίλυσης των αριθμητικών προβλημάτων RSA εξαρτάται από τις πληροφορίες που δίνονται. Ακολουθούν παραδείγματα τυπικών προβλημάτων και πώς να τα λύσετε:
Παράδειγμα 1:κρυπτογράφηση
* Πρόβλημα: Δεδομένου ότι * p * =11, * q * =13, * e * =7 και μήνυμα * m * =5, κρυπτογραφήστε το μήνυμα.
* Λύση:
1. Υπολογίστε * n * =* p * * * q * =11 * 13 =143
2. Υπολογίστε φ (n) =(11-1) (13-1) =120
3. Βεβαιωθείτε ότι το GCD (7, 120) =1 (είναι coprime)
4. Encrypt:*c *=*m
* 5
* 78125 ÷ 143 ≈ 546 με υπόλοιπο 67
* Επομένως, * C * =67
Παράδειγμα 2:αποκρυπτογράφηση
* Πρόβλημα: Δεδομένου ότι * p * =11, * q * =3, * e * =7 και ciphertext * c * =10, αποκρυπτογραφήστε το κρυπτογράφημα.
* Λύση:
1. Υπολογίστε * n * =* p * * * q * =11 * 3 =33
2. Υπολογίστε φ (n) =(11-1) (3-1) =20
3. Βρείτε * d * έτσι ώστε * d * * * e * ≡ 1 (mod φ (n)) Αυτό σημαίνει 7 * * d * ≡ 1 (mod 20). Μπορείτε να το λύσετε χρησιμοποιώντας τον εκτεταμένο αλγόριθμο της Ευκλείουσας ή με δοκιμή και σφάλμα. * d * =3 λειτουργεί επειδή (7 * 3) =21 ≡ 1 (mod 20).
4. Αποκλεισμός:*m *=*c
* 10
* 1000 ÷ 33 ≈ 30 με ένα υπόλοιπο των 10
* Επομένως, * m * =10
Παράδειγμα 3:εύρεση d (ιδιωτικός εκθέτης)
Η εύρεση του «D» απαιτεί συχνά τον εκτεταμένο αλγόριθμο της Ευκλείδευσης, ο οποίος είναι πέρα από το πεδίο εφαρμογής μιας απλής εξήγησης εδώ. Ωστόσο, για μικρότερους αριθμούς, η δοκιμή και το σφάλμα μπορεί να λειτουργούν. Ψάχνετε για έναν αριθμό «D» που ικανοποιεί την συμμόρφωση * d * * e ≡ 1 (mod φ (n)).
Σημαντικές εκτιμήσεις:
* Μεγάλοι αριθμοί: Το πραγματικό RSA χρησιμοποιεί εξαιρετικά μεγάλους πρώτους αριθμούς (εκατοντάδες ή χιλιάδες bits). Οι χειροκίνητοι υπολογισμοί είναι αδύνατοι. Απαιτείται εξειδικευμένο λογισμικό.
* αρθρωτή αριθμητική: Η κατανόηση της αρθρωτής αριθμητικής είναι ζωτικής σημασίας για τη συνεργασία με την RSA. Πολλές αριθμομηχανές και γλώσσες προγραμματισμού έχουν ενσωματωμένες λειτουργίες για αρθρωτή εκτίμηση.
* Ασφάλεια: Η ασφάλεια του RSA εξαρτάται εξ ολοκλήρου από τη δυσκολία να παραγοντώσει μεγάλους αριθμούς. Καθώς αυξάνεται η υπολογιστική ισχύς, το μέγεθος των αρχικών που χρησιμοποιούνται πρέπει επίσης να αυξηθεί για να διατηρηθεί η ασφάλεια.
Αυτά τα παραδείγματα απεικονίζουν τις βασικές αρχές. Για πιο προηγμένα προβλήματα, πιθανότατα θα χρειαστεί να χρησιμοποιήσετε υπολογιστικά εργαλεία και μια βαθύτερη κατανόηση της θεωρίας των αριθμών.
Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα