Αριθµοθεωρητικοί Αλγόριθµοι και το Κρυπτοσύστηµα RSA Στην ενότητα αυτή θα µελετηθούν τα εξής θέµατα: Υπολογισµός Μέγιστου Κοινού ιαιρέτη Αλγόριθµος του Ευκλείδη Κλάσεις Ισοδυναµίας και Αριθµητική modulo n Γραµµικές Εξισώσεις modulo n To Κινέζικο θεώρηµα υπολοίπων To Κρυπτοσύστηµα RSA ΕΠΛ Αλγόριθµοι και Πολυπλοκότητα -
Κρυπτοσυστήµατα Ένα κρυπτοσύστηµα µε δηµόσια κλειδιά (public-key cryptosystem) επιτρέπει:. την κωδικοποίηση µηνυµάτων έτσι ώστε, κάθε φορά που κάποιο µήνυµα m στέλνεται από τον Α στον Β, αν ο Γ κρυφακούσει τη συνοµιλία να µην µπορεί να αποκωδικοποιήσει το m.. την απλαστογράφητη ψηφιακή υπογραφή µηνυµάτων (digital signatures). To κρυπτοσύστηµα RSA βασίζεται στη σηµαντική διαφορά µεταξύ: της ευκολίας µε την οποία µπορούµε να βρούµε µεγάλους πρώτους αριθµούς και της δυσκολίας της παραγοντοποίησης του γινοµένου δύο µεγάλων πρώτων αριθµών. Κάθε συµµετάσχων A σε ένα κρυπτοσύστηµα κατέχει. ένα δηµόσιο (κοινώς γνωστό) κλειδί P Α, και. ένα µυστικό κλειδί S Α. τα οποία δηµιουργεί ο ίδιος. ΕΠΛ Αλγόριθµοι και Πολυπλοκότητα -
Κρυπτοσυστήµατα Τα κλειδιά P Α και S Α χρησιµοποιούνται για κωδικοποίηση και αποκωδικοποίηση µηνυµάτων. ηλαδή, αν D είναι το σύνολο όλων των µηνυµάτων, το P Α και το S Α αποτελούν - συναρτήσεις από το D στον εαυτό του και επίσης, για κάθε m D πρέπει να ισχύει: S Α (P Α (m)) = m P Α (S Α (m)) = m Βασική υπόθεση: Μόνο ο Aµπορεί να υπολογίσει τη συνάρτηση S Α σε πρακτικά σύντοµο χρόνο. ΕΠΛ Αλγόριθµοι και Πολυπλοκότητα -
Κωδικοποίηση Έστω ότι ο Βob θέλει να στείλει στην Alice το µήνυµα mµε τέτοιο τρόπο ώστε το m να είναι ακατανόητο σε οποιοδήποτε τρίτο. Τότε. ο Bob βρίσκει το δηµόσιο κλειδί της Alice, P Α.. υπολογίζει το µήνυµα m =P Α (m), και το στέλνει στην Alice.. όταν η Alice λάβει το µήνυµα m, χρησιµοποιεί το µυστικό της κλειδί S Α για την αποκωδικοποίηση του, m =S Α (m ). Προφανώς. m =m, και. οποιοσδήποτε τρίτος κρυφακούσει το m, µη κατέχοντας το S Α, δεν µπορεί να το αποκωδικοποιήσει. ΕΠΛ Αλγόριθµοι και Πολυπλοκότητα -
Digital Signatures Έστω ότι η Alice θέλει να υπογράψει ένα µήνυµα m προς τον Βob. Τότε. Η Alice δηµιουργεί την υπογραφή της ως σ=s Α (m), και. στέλλει στον Bob το ζεύγος (m,σ).. Ο Bob λαµβάνοντας το ζεύγος (m,σ), χρησιµοποιεί το δηµόσιο κλειδί της Alice, P Α, και υπολογίζει το m =P Α (σ).. Αν m=m τότε συµπεραίνει πως το µήνυµα πράγµατι στάλθηκε από την Alice. Ορθότητα; Οι δύο τεχνικές µπορούν να χρησιµοποιηθούν ταυτόχρονα για να σταλούν κωδικοποιηµένα και υπογραµµένα µηνύµατα; Πρόκληση: πως µπορούµε να διαλέξουµε κατάλληλα συναρτήσεις (κλειδιά) S Α, P Α που να ικανοποιούν τις προδιαγραφές; ΕΠΛ Αλγόριθµοι και Πολυπλοκότητα -5
Βασικές Έννοιες Z= {,-,-,,,, } σύνολο ακεραίων αριθµών Ν = {,,, } σύνολο φυσικών αριθµών d a : d a: ο ακέραιος d διαιρεί τον ακέραιο α, δηλ. ακέραιος k τέτοιος ώστε a= d k. O a είναι πολλαπλάσιο του d. o d δεν διαιρεί τον a Αν a > και d a, τότε d a. Αν d και d a, τότε λέµε ότι ο d είναι διαιρέτης του a. Κάθε ακέραιος a έχει τους τετριµµένους διαιρέτες a και. Οι µητετριµµένοι διαιρέτες του a λέγονται οι παράγοντες του a. Ένας ακέραιος a> του οποίου οι µόνοι διαιρέτες είναι οι τετριµµένοι διαιρέτες και a λέγεται πρώτος αριθµός. Ένας ακέραιος a> είναι σύνθετος αριθµός αν δεν είναι πρώτος. ΕΠΛ Αλγόριθµοι και Πολυπλοκότητα -6
Βασικές Έννοιες Πρώτοι αριθµοί :,,5,7,,,7,9,,9, Ο ακέραιος 9 είναι σύνθετος, αφού 9. ΘΕΩΡΗΜΑ ΤΗΣ ΙΑΙΡΕΣΗΣ Για κάθε ακέραιο a και θετικό ακέραιο n, υπάρχουν µοναδικοί ακέραιοι q και r τέτοιοι ώστε r< nκαι a= qn+ r. q : πηλίκο της διαίρεσης του a δια n r = a modn : υπόλοιπο της διαίρεσης του a δια n n a a mod n = ΟΡΙΣΜΟΣ Αν a mod n = b mod n, γράφουµε a b(modn) ο a είναι ισοδύναµος µε τον b modulo n. ΕΠΛ Αλγόριθµοι και Πολυπλοκότητα -7
Βασικές έννοιες Έχουµε a b (mod n) n a-b Παραδείγµατα. 6 6(mod ), αφού 6=5 +6 και 6 = + 6. - (mod 5), αφού - = (-) 5 + και = 5 + ΕΠΛ Αλγόριθµοι και Πολυπλοκότητα -8
Μέγιστος Κοινός ιαιρέτης Αν ο d είναι διαιρέτης του a και επίσης διαιρέτης του b, τότε ο d είναι κοινός διαιρέτης των a και b. Αν d a και d b τότε d (a+b) και d (a-b). Απόδειξη: d a a = kd a+b= (k+m)d, a-b=(k-m)d d b b = md Πιο γενικά: Aν d aκαι d bτότε d (ax+by) για οποιουσδήποτε ακεραίους x και y. Έστω ακέραιοι a και b, a ή b. Ο µέγιστος κοινός διαιρέτης ΜΚ (a,b) των a και b είναι ο µεγαλύτερος από τους κοινούς διαιρέτες των a και b. ΕΠΛ Αλγόριθµοι και Πολυπλοκότητα -9
Μέγιστος Κοινός ιαιρέτης Παραδείγµατα MK (,)=6 ΜΚ (5,7)= ΜΚ (,9)=9 Αν a ή b, τότε ΜΚ (a,b) min{ a, b } Ιδιότητες του µέγιστου κοινού διαιρέτη. ΜΚ (a,b) = ΜΚ (b,a). ΜΚ (a,b) = ΜΚ (-a,b). ΜΚ (a,b) = ΜΚ ( a, b ). ΜΚ (a,) = a 5. ΜΚ (a,ka) = a για κάθε k Ζ ύο ακέραιοι a και b λέγονται σχετικά πρώτοι αν ΜΚ (a,b)=. ΕΠΛ Αλγόριθµοι και Πολυπλοκότητα -
Μέγιστος Κοινός ιαιρέτης ΘΕΩΡΗΜΑ Έστω ακέραιοι a και b, a ή b. Τότε ο ΜΚ (a,b) είναι το ελάχιστο θετικό στοιχείο του συνόλου {ax + by x,y Z} των γραµµικών, ακεραίων συνδυασµών των a και b. ΠΟΡΙΣΜΑ Για κάθε ακέραιους a και b αν d a και d b, τότε d ΜΚ (a,b). ΠΟΡΙΣΜΑ ΜΚ (na,nb) = n ΜΚ (a,b) για κάθε ακεραίους a και b και µη αρνητικό ακέραιο n. ΠΟΡΙΣΜΑ Γιακάθεθετικούςακέραιουςn, a, και b αν n ab και ΜΚ (a,n)=, τότε n b. ΕΠΛ Αλγόριθµοι και Πολυπλοκότητα -
Έστω Υπολογισµός µέγιστου κοινού διαιρέτη e e e f f a = p p... pr, b = p p... r f r οι παραγοντοποιήσεις σε πρώτους ακεραίους των a και b. Τότε: MK ( a, b) = p p min( e, f ) min( e, f ) p... r p min( e r, f r r ) Ο παραπάνω τύπος δείχνει ότι για να υπολογίσουµε τον µέγιστο κοινό διαιρέτη δύο ακεραίων αρκεί να τους παραγοντοποιήσουµε. Οι καλύτεροι αλγόριθµοι παραγοντοποίησης που είναι γνωστοί σήµερα δεν τρέχουν σε πολυωνυµικό χρόνο. Έτσι ο αλγόριθµος υπολογισµού του µέγιστου κοινού διαιρέτη µέσω της αναγωγής σε παραγοντοποίηση δεν θεωρείται πιθανό να δώσει ταχύ (πολυωνυµικό) αλγόριθµο. ΕΠΛ Αλγόριθµοι και Πολυπλοκότητα -
ΘΕΩΡΗΜΑ Υπολογισµός ΜΚ (Θεώρηµα αναδροµής µέγιστου κοινού διαιρέτη). Για κάθε µη αρνητικό ακέραιο a και θετικό ακέραιο b, ΜΚ (a,b) = ΜΚ (a mod b, b) ΑΠΟ ΕΙΞΗ ΛΗΜΜΑ ΜΚ (a,b) ΜΚ (a mod b, b). ΑΠΟ ΕΙΞΗ Έστω d=μκ (a,b). Τότε d a και d b. Αφού amodb= a- a/b b, ο ακέραιος amodbείναι γραµµικός ακέραιος συνδυασµός των a και b, έπεται ότι d a modb. Αφού d b και d a modb, έπεται από το Πόρισµα, ότι d = ΜΚ (a,b) ΜΚ (b, a mod b). ΕΠΛ Αλγόριθµοι και Πολυπλοκότητα -
Υπολογισµός ΜΚ ΛΗΜΜΑ ΜΚ (a mod b, b) ΜΚ (a,b). ΑΠΟ ΕΙΞΗ Έστω d= ΜΚ (a mod b,b). Τότε d amodbκαι d b. Αφού a = a/b b + (a mod b), o a είναι γραµµικός ακέραιος συνδυασµός των b και amodb. Αφού d amodbκαι d b, έπεται ότι d a. Συνεπώς d = ΜΚ (a mod b, b) ΜΚ (a,b). Από τα Λήµµατα και, έχουµε ΜΚ (a mod b, b) = MK (a,b). Ο αλγόριθµος του Ευκλείδη είναι άµεση συνέπεια του Θεωρήµατος. ΕΠΛ Αλγόριθµοι και Πολυπλοκότητα -
Αλγόριθµος του Ευκλείδη int GCD (int a, int b) if b == return a else return GCD(b,a mod b); ΠΑΡΑ ΕΙΓΜΑ ΜΚ (,) = ΜΚ (,9)= ΜΚ (9,)= ΜΚ (,)= ΟΡΘΟΤΗΤΑ Έπεται από το Θεώρηµα και το γεγονός ότι ΜΚ (a,) = a. ΤΕΡΜΑΤΙΣΜΟΣ Έπεται από το ότι a> b amodb< a. Έτσι αφού ο ένας ακέραιος µειώνεται αυστηρά σε κάθε δεύτερη αναδροµή, η αναδροµή τελικά θα τερµατίσει. ΕΠΛ Αλγόριθµοι και Πολυπλοκότητα -5
Ανάλυση χρονικής πολυπλοκότητας Υποθέτουµε, χωρίς βλάβη της γενικότητας, ότι a> b. Ο συνολικός χρόνος που παίρνει ο αλγόριθµος του Ευκλείδη για να τερµατίσει είναι ανάλογος του αριθµού των αναδροµών που εκτελούνται. Υπενθύµιση: Οι αριθµοί Fibonacci ορίζονται ως εξής: F[] = F[] = F[i] = F[i-] + F[i-], i ΛΗΜΜΑ Αν a > b και εκτελεσθούν k αναδροµές κατά την εκτέλεση του αλγορίθµου του Ευκλείδη πάνω στα a και b, τότε a F[k+] και b F[k+]. ΘΕΩΡΗΜΑ (ΘεώρηµατουLame) Για κάθε ακέραιο k, αν a>b και b<f[k+], τότε ο αλγόριθµος του Ευκλείδη κάνει λιγότερες από k αναδροµικές κλήσεις πάνω στα a και b. ΕΠΛ Αλγόριθµοι και Πολυπλοκότητα -6
Ανάλυση χρονικής πολυπλοκότητας Είναι πολυωνυµικός ο αλγόριθµος του Ευκλείδη; Αφού, b < F[ k + ] φ 5 k +, οπου φ = + 5 lg b ( k + ) lgφ lg 5, k O(lg b), και ο αριθµός των επαναλήψεων είναι γραµµικός στο µήκος εισόδου. Πάνω σε δυο αριθµούς µε β bits ο καθένας, ο αλγόριθµος του Ευκλείδη θα στοιχίσει Ο(β) αριθµητικές πράξεις και Ο(β³) πράξεις πάνω σε bits, υποθέτοντας ότι ο πολλαπλασιασµός και η διαίρεση αριθµών µε β bits o καθένας παίρνουν Ο(β²) δυαδικές πράξεις. ΕΠΛ Αλγόριθµοι και Πολυπλοκότητα -7
Γενικευµένος Αλγόριθµος του Ευκλείδη Μπορούµε να γενικεύσουµε τον αλγόριθµο του Ευκλείδη έτσι ώστε να υπολογίζει, όχι µόνο τον d=mk (a,b), αλλά και τις τιµές x, y για τις οποίες d=ax+by. int Extended_GCD(int a, int b) if b == return (a,,) else (d,x,y )=Extended_GCD(b,a mod b); (d,x,y)=(d,y,x - a/b y ); return (d,x,y) Ορθότητα; Χρονική Πολυπλοκότητα; ΕΠΛ Αλγόριθµοι και Πολυπλοκότητα -8
Κλάσεις Ισοδυναµίας modulo n Για κάθε ακέραιο n>, το σύνολο των ακεραίων µπορεί να διαιρεθεί σε n κλάσεις ισοδυναµίας ανάλογα µε το υπόλοιπο της διαίρεσης τους δια n. H κλάση της ισοδυναµίας modulo n που περιέχει ένα ακέραιο a είναι το σύνολο [ ] = { a + kn k Z } Το σύνολο όλων των κλάσεων ισοδυναµίας modulo n συµβολίζεται σαν Κάθε κλάση Z αντιπροσωπεύεται από το ελάχιστο µη αρνητικό της στοιχείο,,, n-. Έτσι γράφουµε a n n = {[ a] a n } n [ ] n,[] n,..., [ n ] n Z n = {,,..., n } ΕΠΛ Αλγόριθµοι και Πολυπλοκότητα -9
Αριθµητική modulo n Μια οµάδα (S, ) είναι ένα σύνολο Sµαζί µε µια δυαδική πράξη τα οποία ικανοποιούν τις πιο κάτω ιδιότητες:. για κάθε a,b S, a b S. υπάρχει e S τέτοιο ώστε a e=e a=a. για κάθε a,b,c S, (a b) c = a (b c). για κάθε a S, υπάρχει b S τέτοιο ώστε a b=b a=e Μια οµάδα ονοµάζεται Abelian οµάδα αν για κάθε a,b S, a b=b a. Παραδείγµατα:. Το ζεύγος (Ζ,+) είναι Abelian οµάδα.. Το ζεύγος ({A Α Χ}, ); Παρατήρηση: Αν a a (mod n) και b b ( mod n), τότε a+b a +b (mod n) και a b a b (mod n) ΕΠΛ Αλγόριθµοι και Πολυπλοκότητα -
ΕΠΛ Αλγόριθµοι και Πολυπλοκότητα - Αριθµητική modulo n Ορίζουµε τις πράξεις + n (πρόσθεση modulo n) και n (πολλαπλασιασµός modulo n) πάνω στο σύνολο ως εξής: [a] n + n [b] n = [a+b] n [a] n n [b] n = [a b] n ΘΕΩΡΗΜΑ Τo ζεύγος (Ζ n, + n ) είναι Abelian οµάδα. 5 5 5 5 + 6 5 5 5 5 5 6 5 5 5
* Z n Αριθµητική modulo n Ορίζουµε ως το υποσύνολο του που περιέχει τα στοιχεία του Z n που είναι σχετικά πρώτα µε το n: * Z n = {[a] Z n MK (a,n) = } * Z 5 Για παράδειγµα: = {,,,7,8,,,} 5 7 8 7 8 7 8 7 8 8 7 8 7 8 7 7 8 7 8 ΕΠΛ Αλγόριθµοι και Πολυπλοκότητα - 8 7
Αριθµητική modulo n Z n * ΘΕΩΡΗΜΑ 5 Το ζεύγος (, n ) είναι µια Abelian οµάδα. * Z n Ονοµάζουµε την οµάδα (, n) πολλαπλασιαστική οµάδα modulo n. Z n * * To µέγεθος του συνόλου, δίνεται από τη συνάρτηση φ του Euler: όπου ο p παίρνει τιµές από τους περιττούς παράγοντες του n. Παράδειγµα: φ(5)=5(-/)(-/5)= =8 Αν ο p είναι πρώτος αριθµός τότε φ(p) = Z n φ( n ) = n ( ) p p n ΕΠΛ Αλγόριθµοι και Πολυπλοκότητα -
Γραµµικές Εξισώσεις modulo n Πρόβληµα: Με δεδοµένα τιµές a, b, n, πως µπορούµε να βρούµε όλες τις τιµές x για τις οποίες ax b (mod n); ΘΕΩΡΗΜΑ 6 Έστω d=μκ (a,n) και d=ax'+ny'. Η εξίσωση ax b(modn) έχει λύση µόνο όταν o d b και οι λύσεις της εξίσωσης είναι ακριβώς οι: x = x (b/d) mod n x i = (x + i (n/d)) mod n, i d- Αν b=, δηλαδή αν ax (mod n), τότε ονοµάζουµε το x πολλαπλασιαστικό αντίστροφο του a modulo n. ΠΟΡΙΣΜΑ Για κάθε n>, αν ΜΚ (a,n)=, τότε η εξίσωση ax (mod n) έχει ακριβώς µια λύση modulo n. ιαφορετικά δεν έχει καµιά λύση. ΕΠΛ Αλγόριθµοι και Πολυπλοκότητα -
ΑΛΓΟΡΙΘΜΟΣ Γραµµικές Εξισώσεις modulo n LE_Solver(a,b,n){ (d,x,y )=Extended_GCD(a,n); if (d b) x[] = x (b/d) mod n; for (i=; i<d; i++) x[i] = (x[]+i(n/d))mod n else no solutions Χρονική Πολυπλοκότητα: Ο(lg n + MK (a,n)) ΕΠΛ Αλγόριθµοι και Πολυπλοκότητα -5
Μας επιτρέπει To Κινέζικο θεώρηµα υπολοίπων Αν n=n n n k να περιγράψουµε µια - ισοδυναµία µεταξύ των δοµών Ζ n και Ζ Ζ n n Ζ nk. ηλαδή, πράξεις στην πρώτη οµάδα µπορούν να επιτευχθούν ως πράξεις στη δεύτερη οµάδα. Σαν αποτέλεσµα, µπορούµε να σχεδιάσουµε αποδοτικότερους αλγόριθµους για πράξεις modulo n, δουλεύοντας modulo n i <n. ΘΕΩΡΗΜΑ Έστω n=n n n k, όπου οι n i είναι µεταξύ τους σχετικά πρώτοι, τότε, για κάθε ακέραιο x και a, x a (mod n i ) για i k x a (mod n). ΕΠΛ Αλγόριθµοι και Πολυπλοκότητα -6
Υπολογισµός δυνάµεων στην Z n Σε πολλές περιπτώσεις είναι χρήσιµο να υπολογίσουµε την ακολουθία δυνάµεων ενός ακέραιου modulo n: π.χ. a *, a, a, a,... a Z n i 5 6 7 i mod 7 6 5 Θεώρηµα του Euler Για κάθε n> a φ ( n ) * (mod n), a Z n Θεώρηµα του Fermat Αν ο p είναι πρώτος αριθµός, τότε a p * (mod p), a Z p Οπιοκάτωαλγόριθµος υπολογίζει την τιµή a b mod n ΕΠΛ Αλγόριθµοι και Πολυπλοκότητα -7
Υπολογισµός δυνάµεων στην * Z n Modular_Exponentiation(a,b,n) c=; d=; <b[k],,b[],b[]> = η τιµή του b στο δυαδικό σύστηµα for (i=k, i, i--){ c = c; d = d d mod n if b[i]== c = c+; d = d a mod n return d Ορθότητα Ανά πάσα στιγµή η τιµή του d είναι ίση µε a c mod n Στο τέλος της διαδικασίας c= b.άρα το ζητούµενο έπεται. Χρονική Πολυπλοκότητα Αν οι a, b, n έχουν β bits o καθένας, τότε η διαδικασία απαιτεί Ο(β³) βήµατα. ΕΠΛ Αλγόριθµοι και Πολυπλοκότητα -8
To Κρυπτοσύστηµα RSA Στo κρυπτοσύστηµα RSA, κάθε συµµετάσχων δηµιουργεί τα κλειδιά του ως εξής:. ιάλεξε δύο µεγάλους πρώτους αριθµούς p και q (µε ψηφία ο καθένας).. Υπολόγισε τον n=pq.. ιάλεξε ένα µικρό περιττό ακέραιο, e, ο οποίος είναι σχετικά πρώτος µε τον φ(n) = (p-)(q-).. Υπολόγισε το πολλαπλασιαστικό αντίστροφο modulo φ(n) του e, και ονόµασε το d. 5. Γνωστοποίησε το ζεύγος (e,n) ως το δηµόσιο σου κλειδί. 6. Κράτα το ζεύγος (d,n) ως το µυστικό σου κλειδί. ΕΠΛ Αλγόριθµοι και Πολυπλοκότητα -9
To Κρυπτοσύστηµα RSA Θεωρούµε ότι D=Z n Η συνάρτηση P=(e,n) ορίζεται ως: P(M) = Μ e mod n H συνάρτηση S=(d,n) ορίζεται ως: S(C) = C d mod n Οι συναρτήσεις P και S ικανοποιούν τις απαιτούµενες προδιαγραφές; Θέλουµε:. P(S(M)) = M, S(P(M)) = M. H τιµή του S(δηλαδή του d) να µην είναι υπολογίσιµη σε πολυωνυµικό χρόνο. ΘΕΩΡΗΜΑ P(S(M)) = M, S(P(M)) = M ΕΠΛ Αλγόριθµοι και Πολυπλοκότητα -
To Κρυπτοσύστηµα RSA ΑΠΟ ΕΙΞΗ Από τους ορισµούς των P και S, έχουµε P(S(M)) = S(P(M)) = Μ ed mod n Αφού οι e και d είναι πολλαπλασιαστικά αντίστροφοι modulo φ(n), τότε ed = + k(p-)(q-) για κάποιο ακέραιο k. Υπάρχουν δύο περιπτώσεις:. Αν Μ (mod p), τότε Μ (mod p).. ιαφορετικά από το Θεώρηµα του Fermat, M ed (Μ(M) p- ) k(q-) (mod p) M () k(q-) (mod p) M (mod p) Παρόµοια µπορεί να δειχθεί ότι M ed Μ (mod q). Από το Πόρισµα του Κινέζικου Θεωρήµατος Υπολοίπου, M ed Μ (mod n) όπως χρειάζεται. ΕΠΛ Αλγόριθµοι και Πολυπλοκότητα -
To Κρυπτοσύστηµα RSA ΟΡΘΟΤΗΤΑ Προφανώς, αν η παραγοντοποίηση µεγάλων αριθµών ήταν πρακτικά δυνατή, τότε κάποιος θα µπορούσε να σπάσει το κρυπτοσύστηµα (παραγοντοποιώντας τον n και βρίσκοντας αρχικά τον φ(n) και στη συνέχεια τον d από τους e και φ(n)). Μέχρι σήµερα η θεωρία και η τεχνολογία δεν επιτρέπουν γρήγορη παραγοντοποίηση. Επίσης, µέχρι σήµερα δεν έχει βρεθεί άλλος τρόπος για αποκωδικοποίηση µηνυµάτων που δεν περιέχει εύρεση των παραγόντων p και q. ΠΟΛΥΠΛΟΚΟΤΗΤΑ Παράγοντες που επηρεάζουν τη χρονική πολυπλοκότητα της µεθόδου είναι Για δηµιουργία κλειδιών πολυπλοκότητα εύρεσης µεγάλων πρώτων αριθµών πολυπλοκότητα λύσης γραµµικής εξίσωσης Για (απο)κωδικοποίηση µηνυµάτων Υπολογισµός δυνάµεων, ο οποίος εξαρτάται από το µέγεθος του µηνύµατος και τον n. ΕΠΛ Αλγόριθµοι και Πολυπλοκότητα -