Αριθµοθεωρητικοί Αλγόριθµοι και το. To Κρυπτοσύστηµα RSA



Σχετικά έγγραφα
Αριθμοθεωρητικοί Αλγόριθμοι

Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων. Κρυπτογραφία. Θεωρία αριθμών Αλγεβρικές δομές. Χρήστος Ξενάκης

KΕΦΑΛΑΙΟ 1 ΧΡΗΣΙΜΕΣ ΜΑΘΗΜΑΤΙΚΕΣ ΕΝΝΟΙΕΣ. { 1,2,3,..., n,...

Πρόβληµα 2 (12 µονάδες)

ιαιρετότητα Στοιχεία Θεωρίας Αριθµών «Ο Αλγόριθµος της ιαίρεσης» Αριθµητική Υπολοίπων 0 r < d και a = d q +r

Πρόβληµα 2 (15 µονάδες)

(CLR, κεφάλαιο 32) Στην ενότητα αυτή θα µελετηθούν τα εξής θέµατα: Παραστάσεις πολυωνύµων Πολυωνυµική Παρεµβολή ιακριτός Μετασχηµατισµός Fourier

ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ Λυσεις Ασκησεων - Φυλλαδιο 1

Εφαρμοσμένη Κρυπτογραφία Ι

Υπολογιστικά & Διακριτά Μαθηματικά

Υπολογιστικά & Διακριτά Μαθηματικά

Εφαρμοσμένη Κρυπτογραφία Ι

Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά

* * * ( ) mod p = (a p 1. 2 ) mod p.

Αλγεβρικες οµες Ι Ασκησεις - Φυλλαδιο 5

Κρυπτογραφία. Κωνσταντίνου Ελισάβετ

ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ. Λυσεις Ασκησεων - Φυλλαδιο 7

2.1 Διαιρετότητα, ισοϋπόλοιποι αριθμοί. q Z, a = b q + r.

2 ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ ΑΛΓΕΒΡΙΚΕΣ ΔΟΜΕΣ

ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ. Λυσεις Ασκησεων - Φυλλαδιο 2

ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ Ασκησεις - Φυλλαδιο 3

ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ Ασκησεις - Φυλλαδιο 7

Θέµατα ( ικαιολογείστε πλήρως όλες τις απαντήσεις σας)

ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ. Λυσεις Ασκησεων - Φυλλαδιο 3

Κεφάλαιο 2. Παραγοντοποίηση σε Ακέραιες Περιοχές

ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ Ασκησεις Επαναληψης

Κρυπτογραφία. Κεφάλαιο 4 Αλγόριθμοι Δημοσίου Κλειδιού (ή ασύμμετροι αλγόριθμοι)

Κρυπτογραφία ηµόσιου Κλειδιού Η µέθοδος RSA. Κασαπίδης Γεώργιος -Μαθηµατικός

ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ Ασκησεις - Φυλλαδιο 3

ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ. Ασκησεις Επαναληψης. ιδασκων: Α. Μπεληγιάννης Ιστοσελιδα Μαθηµατος :

ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ. Ασκησεις - Επανάληψης. ιδασκων: Α. Μπεληγιάννης Ιστοσελιδα Μαθηµατος :

Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά

3 o Καλοκαιρινό Μαθηµατικό σχολείο Ε.Μ.Ε. Λεπτοκαρυά Πιερίας 2009

Υπολογιστικά & Διακριτά Μαθηματικά

Κρυπτογραφία. Έλεγχος πρώτων αριθών-παραγοντοποίηση. Διαφάνειες: Άρης Παγουρτζής Πέτρος Ποτίκας

Υπολογιστικά & Διακριτά Μαθηματικά

ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ Ασκησεις - Φυλλαδιο 2

Στοιχεία Θεωρίας Αριθμών

a = a a Z n. a = a mod n.

Υπολογισμός της δύναμης z=x b modn

KΕΦΑΛΑΙΟ 3 ΑΣΥΜΜΕΤΡΗ ΚΡΥΠΤΟΓΡΑΦΙΑ

ΕΠΛ 232 Αλγόριθµοι και Πολυπλοκότητα 2-1

ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ. Λυσεις Ασκησεων - Φυλλαδιο 1

2 o Καλοκαιρινό σχολείο Μαθηµατικών Νάουσα 2008

Θέµατα ( ικαιολογείστε πλήρως όλες τις απαντήσεις σας)

Εφαρμοσμένη Κρυπτογραφία Ι

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ

ΑΛΓΕΒΡΙΚΕΣ ΟΜΕΣ Ι. Ασκησεις - Φυλλαδιο 4

Ορισµός. Εστω συναρτήσεις: f : N R και g : N R. η f(n) είναι fi( g(n) ) αν υπάρχουν σταθερές C 1, C 2 και n 0, τέτοιες ώστε:

F 5 = (F n, F n+1 ) = 1.

ΕΥΡΕΣΗ ΜΕΓΙΣΤΟΥ ΚΟΙΝΟΥ ΔΙΑΙΡΕΤΗ

ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ. Λυσεις Ασκησεων - Φυλλαδιο 1

Κρυπτοσύστημα RSA (Rivest, Shamir, Adlemann, 1977) Υπολογιστική Θεωρία Αριθμών και Κρυπτογραφία

Εισαγωγή στη Θεωρία Αριθµών για το Λύκειο. Ασκήσεις

Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων. Κρυπτογραφία. Ασύμμετρη Κρυπτογραφία. Χρήστος Ξενάκης

Εφαρμοσμένη Κρυπτογραφία Ι

Όνοµα: Λιβαθινός Νικόλαος 2291

Κατ οίκον Εργασία 1 Σκελετοί Λύσεων

Οικονομικό Πανεπιστήμιο Αθηνών Τμήμα Πληροφορικής ΠΜΣ στα Πληροφοριακά Συστήματα Κρυπτογραφία και Εφαρμογές Διαλέξεις Ακ.

ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ Ασκησεις - Φυλλαδιο 8

Οικονομικό Πανεπιστήμιο Αθηνών Τμήμα Πληροφορικής ΠΜΣ στα Πληροφοριακά Συστήματα Κρυπτογραφία και Εφαρμογές Διαλέξεις Ακ.

ΑΛΓΟΡΙΘΜΟΙ ΚΑΙ ΠΟΛΥΠΛΟΚΟΤΗΤΑ 2 ΕΠΙΜΕΛΕΙΑ :ΣΤΟΥΚΑ ΑΙΚΑΤΕΡΙΝΗ-ΠΑΝΑΓΙΩΤΑ ΜΕΤΑΠΤΥΧΙΑΚΟ:ΜΠΛΑ

Αλγεβρικές Δομές και Αριθμοθεωρία

Εισαγωγή στους Αλγόριθµους. Αλγόριθµοι. Ιστορικά Στοιχεία. Ο πρώτος Αλγόριθµος. Παραδείγµατα Αλγορίθµων. Τι είναι Αλγόριθµος

Στοιχεία Θεωρίας Αριθμών & Εφαρμογές στην Κρυπτογραφία

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΚΡΥΠΤΟΛΟΓΙΑ ΣΗΜΕΙΩΣΕΙΣ #6 ΘΕΟ ΟΥΛΟΣ ΓΑΡΕΦΑΛΑΚΗΣ

Κατ οίκον Εργασία 1 Σκελετοί Λύσεων

KΕΦΑΛΑΙΟ 5 ΨΗΦΙΑΚΕΣ ΥΠΟΓΡΑΦΕΣ

Διδάσκων: Καθηγητής Νικόλαος Μαρμαρίδης, Καθηγητής Ιωάννης Μπεληγιάννης

Α Δ Ι. Παρασκευή 15 Νοεμβρίου Ασκηση 1. Να ευρεθεί η τάξη τού στοιχείου a τής ομάδας (G, ), όπου. (4) a = ( 1 + i 3)/2, (G, ) = (C, ),

Στοιχεία Θεωρίας Αριθμών & Εφαρμογές στην Κρυπτογραφία

ΚΡΥΠΤΟΓΡΑΦΙΑ ΚΑΙ ΑΣΦΑΛΕΙΑ ΥΠΟΛΟΓΙΣΤΩΝ. Δ Εξάμηνο

Κεφάλαιο 0. Μεταθετικοί ακτύλιοι, Ιδεώδη

Οικονομικό Πανεπιστήμιο Αθηνών Τμήμα Πληροφορικής ΠΜΣ στα Πληροφοριακά Συστήματα Κρυπτογραφία και Εφαρμογές Διαλέξεις Ακ.

ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ Ασκησεις - Φυλλαδιο 6

ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ Ασκησεις - Φυλλαδιο 9

Αλγεβρικες οµες Ι Ασκησεις - Φυλλαδιο 2

Θεωρια Αριθµων Προβληµατα

ιδασκοντες: x R y x y Q x y Q = x z Q = x z y z Q := x + Q Τετάρτη 10 Οκτωβρίου 2012

Σημειωματάριο μαθήματος 1ης Νοε. 2017

Κρυπτογραφία. Θεωρία Αριθμών 2/4/2014. Θεωρία Αριθμών

Στοιχεία Θεωρίας Αριθμών & Εφαρμογές στην Κρυπτογραφία

Αλγεβρικες οµες Ι Ασκησεις - Φυλλαδιο 4 1 2

ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ. Λυσεις Ασκησεων - Φυλλαδιο 9

(x) = δ(x) π(x) + υ(x)

ΑΣΥΜΜΕΤΡΗ ΚΡΥΠΤΟΓΡΑΦΙΑ

ΚΡΥΠΤΟΓΡΑΦΙΑ ΚΑΙ ΠΟΛΥΠΛΟΚΟΤΗΤΑ PRIMES P. Από τα αριστερά προς τα δεξία Saxena, Kayal και Agrawal. Επιµέλεια : Γεωργίου Κωνσταντίνος.

ΠΛΕ075: Προηγμένη Σχεδίαση Αλγορίθμων και Δομών Δεδομένων. Λουκάς Γεωργιάδης

2 o Καλοκαιρινό σχολείο Μαθηµατικών Νάουσα 2008

Στοιχεία Θεωρίας Αριθμών & Εφαρμογές στην Κρυπτογραφία

Κρυπτογραφία Δημοσίου Κλειδιού

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΘΕΩΡΗΤΙΚΗ ΑΣΚΗΣΗ 1 ΛΥΣΕΙΣ Ανάλυση Πολυπλοκότητας

Αλγεβρικες οµες Ι Ασκησεις - Φυλλαδιο 3

Διδάσκων: Καθηγητής Νικόλαος Μαρμαρίδης, Καθηγητής Ιωάννης Μπεληγιάννης

ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ. Προτεινοµενες Ασκησεις - Φυλλαδιο 9

Πολυώνυµα - Πολυωνυµικές εξισώσεις

ΑΛΓΕΒΡΙΚΕΣ ΟΜΕΣ Ι. Ασκησεις - Φυλλαδιο 2

ΑΣΥΜΜΕΤΡΗ ΚΡΥΠΤΟΓΡΑΦΙΑ Lab 3

ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ. Λυσεις Ασκησεων - Φυλλαδιο 5

Transcript:

Αριθµοθεωρητικοί Αλγόριθµοι και το Κρυπτοσύστηµα 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. ΕΠΛ Αλγόριθµοι και Πολυπλοκότητα -