ΚΡΤΠΣΟΓΡΑΦΙΑ ΚΑΙ ΑΦΑΛΕΙΑ ΤΠΟΛΟΓΙΣΩΝ Δ Εξάμηνο Αςφμμετρη Κρυπτογράφηςη (Κρυπτογραφία Δημόςιου Κλειδιοφ)
ΔΙΑΡΘΡΩ Η ΕΝΟΣΗΣΑ Αρχζσ Κρυπτογράφθςθσ Δθμοςίου Κλειδιοφ Κρυπτογραφία Δθμοςίου Κλειδιοφ Θεωρία Αρικμών (θ ςυνάρτθςθ φ(n) του Euler) Ο Αλγόρικμοσ RSA O Αλγόρικμοσ DIFFIE-HELLMAN 2
ΕΝΑΡΙΟ ΔΗΜΟ ΙΟΤ ΚΛΕΙΔΙΟΤ: ΜΤ ΣΙΚΟΣΗΣΑ 3
ΕΦΑΡΜΟΓΕ ΚΡΤΠΣΟ Τ ΣΗΜΑΣΩΝ ΔΗΜΟ ΙΟΤ ΚΛΕΙΔΙΟΤ Χριςεισ / Εφαρμογζσ: Encryption/decryption: Ο αποςτολζασ κρυπτογραφεί το μινυμα με το δθμόςιο κλειδί του παραλιπτθ. Ο παραλιπτθσ αποκρυπτογραφεί το μινυμα με το μυςτικό κλειδί του Digital Signature: Ο αποςτολζασ υπογράφει ζνα μινυμα με το προςωπικό του μυςτικό κλειδί. Ο παραλιπτθσ πιςτοποιεί το μινυμα με το δθμόςιο κλειδί του αποςτολζα Key Exchange: Οι δφο πλευρζσ ςυνεργάηονται για να ανταλλάξουν το κλειδί ςυνοδοφ (session key) 4
ΚΡΤΠΣΟΓΡΑΦΗΗ ΔΗΜΟΙΟΤ ΚΛΕΙΔΙΟΤ 5
ΠΙΣΟΠΟΙΗΗ ΜΕ ΧΡΗΗ ΔΗΜΟΙΟΤ ΚΛΕΙΔΙΟΤ 6
ΑΠΑΙΣΗ ΕΙ ΚΡΤΠΣΟΓΡΑΦΙΑ ΔΗΜΟ ΙΟΤ ΚΛΕΙΔΙΟΤ (1/2) Είναι υπολογιςτικά εφικτό για μια οντότθτα Β να δθμιουργιςει ζνα ηεφγοσ κλειδιών: Public key KUb, Private key KRb : {KUb, KRb} Είναι εφκολο για τον αποςτολζα να δθμιουργιςει το κρυπτογράφθμα C EKUb (M ) Είναι εφκολο για το δζκτθ να αποκρυπτογραφιςει το μινυμα M DKRb (C ) DKRb [ EKUb (M )] 7
ΑΠΑΙΣΗ ΕΙ ΚΡΤΠΣΟΓΡΑΦΙΑ ΔΗΜΟ ΙΟΤ ΚΛΕΙΔΙΟΤ (2/2) Είναι υπολογιςτικά αδφνατο να δθμιουργθκεί το private key (KRb) γνωρίηοντασ το public key (KUb) Είναι υπολογιςτικά αδφνατο να ανακτθκεί ζνα μινυμα M, γνωρίηοντασ το Public key KUb και το κρυπτογραφθμζνο κείμενο C Ζνα από τα δφο κλειδιά μποροφν να χρθςιμοποιθκοφν για τθν κρυπτογράφθςθ ενώ το άλλο μπορεί να χρθςιμοποιθκεί για τθν αποκρυπτογράφθςθ M DKRb [ EKUb (M )] DKUb [ EKRb ( M )] 8
ΑΛΓΟΡΙΘΜΟΙ ΚΡΤΠΣΟΓΡΑΦΙΑ ΔΗΜΟ ΙΟΤ ΚΛΕΙΔΙΟΤ (1/2) RSA, Diffie-Hellman, DSS, Elliptic Curve RSA : Ron Rivest, Adi Shamir & Len Adleman, MIT 1977 Ιδιαίτερα γνωςτόσ και χρθςιμοποιοφμενοσ αλγόρικμοσ Diffie-Hellman : Επιτρζπει τθν αςφαλι ανταλλαγι κλειδιοφ Οι υπολογιςμοί ςτθρίηονται ςτθν κατθγορία των discrete logarithms 9
ΑΛΓΟΡΙΘΜΟΙ ΚΡΤΠΣΟΓΡΑΦΙΑ ΔΗΜΟ ΙΟΤ ΚΛΕΙΔΙΟΤ (2/2) Digital Signature Standard (DSS) Επιπλζον χρθςιμοποιεί τθν Hash Function SHA-1 Δεν χρθςιμοποιείται για ςκοποφσ κρυπτογράφθςθσ ι για ςκοποφσ ανταλλαγισ κλειδιών, αλλά μόνο για πιστοποίηση Elliptic-Curve Cryptography (ECC) Καλι προςζγγιςθ για μικρά μεγζκθ δεδομζνων Ιδιαίτερα πολφπλοκοσ μθχανιςμόσ 10
ΕΦΑΡΜΟΓΕ ΑΡΓΟΡΙΘΜΩΝ ΔΗΜΟ ΙΟΤ ΚΛΕΙΔΙΟΤ Encryption/ Decryption Digital Signature Key Exchange RSA Yes Yes Yes Diffie-Hellman No No Yes DSS No Yes No Elliptic Curve Yes Yes Yes 11
Η ΤΝΑΡΣΗ Η φ(n) ΣΟΤ EULER Αν ζνασ ακζραιοσ p είναι πρώτοσ ιςχφει: φ(p) = p - 1 Επίςθσ αν υποκζςουμε ότι ζχουμε δφο πρώτουσ αρικμοφσ p και q με p q. Το γινόμενό τουσ είναι n=p*q Και τότε ιςχφει: φ(n) = φ(p*q) = φ(p)*φ(q) = (p 1)*(q - 1) Π.χ. φ(11) = 11-1=10 και φ(33)=φ(3*11)=(3-1)*(11-1)=20 12
Ο ΑΛΓΟΡΙΘΜΟ RSA Ο RSA δζχεται απλό κείμενο μεγζκουσ από 0 ζωσ n - 1 bits Ο RSA εξάγει κρυπτογράφθμα από 0 ζωσ n - 1 bits Τυπικζσ τιμζσ του n είναι 512-, 1024- ι 2048-bit Το απλό κείμενο ςυμβολίηεται με Μ Το κρυπτογράφθμα ςυμβολίηεται με C 13
ΔΙΑΔΙΚΑ ΙΑ ΕΠΙΛΟΓΗ ΚΛΕΙΔΙΩΝ ΣΟΝ RSA 1. 2. 3. 4. 5. Επιλογι με τυχαίο τρόπο δφο πρώτων μεγάλων αρικμών: p, q Υπολογιςμόσ του γινομζνου: n = p*q Επιλογι ενόσ περιττοφ ακζραιου αρικμοφ e, ο οποίοσ είναι πρώτοσ ςε ςχζςθ με τθ ςυνάρτθςθ φ(n). Θα πρζπει να ιςχφει 1<e<φ(n). Υπολογιςμόσ d=e-1 mod { (p-1)*(q-1) } Δθμόςιο Κλειδί: PB = (e, n), Μυςτικό Κλειδί: SB = (d, n) Κρυπτογράφηςη m (message): Cipher = Me mod (n) Αποκρυπτογράφηςη Cipher : M = Cipher d mod (n) 14
ΑΝΑΛΤ Η ΣΟΤ RSA Δεν υπάρχει αλγόρικμοσ ο οποίοσ να εντοπίηει τουσ πρώτουσ παράγοντεσ ενόσ ςφνκετου ακεραίου Οι πρώτοι αρικμοί p, q κα πρζπει να είναι αρκετά μεγάλοι ώςτε ο καλφτεροσ γνωςτόσ αλγόρικμοσ παραγοντοποίθςθσ να απαιτεί μεγαλφτερο χρόνο από αυτόν με τον οποίο πρζπει να προςτατευτοφν τα δεδομζνα p, q n τρόνος προζηαζίας 256 bits 512 bits Μερικές εβδομάδες 512 bits 1024 bits 50-100 τρόνια 1024 bits 2048 bits > 100 τρόνια 2048 bits 4096 bits Περίποσ ηην ηλικία ηοσ ζύμπανηος
ΑΝΑΛΤ Η ΣΟΤ RSA Ο υπολογιςμόσ μεγάλθσ δφναμθσ ενόσ αρικμοφ ςε modular αρικμθτικι μπορεί να γίνει ςε επιτρεπτό χρόνο Οι αλγόρικμοι εκκετοποίθςθσ παρουςιάηουν πολυπλοκότθτα που είναι γραμμικώσ ανάλογθ με το μζγεκοσ των ακεραίων που λαμβάνουν μζροσ ςτθν εκκετικι πράξθ
ΠΑΡΑΔΕΙΓΜΑ RSA: ΕΠΙΛΟΓΗ ΚΑΙ ΔΗΜΙΟΤΡΓΙΑ ΚΛΕΙΔΙΩΝ ΔΗΜΟΣΙΟ 3, 33 p = 11, q = 3 τυχαία επιλογι ΙΔΙΩΤΙΚΟ 7, 33 n = pq=33 φ(n) = (p - 1)(q - 1) = 20 Επιλογι του e ζτςι ώςτε να είναι αμοιβαία πρώτοσ του φ(n) = 20, e = 3 επιλογι Υπολογιςμόσ d ζτςι ώςτε de 1 mod 20, d < 20, d = 7, αφοφ 3 7 = 21 και 21 1 mod 20 υπολογιςμόσ 17
ΠΑΡΑΔΕΙΓΜΑ RSA: ΚΡΤΠΣΟΓΡΑΦΗ Η/ΑΠΟΚΡΤΠΣΟΓΡΑΦΗ Η Κρυπτογράφθςθ του μθνφματοσ Μ = 7: C = 73 mod 33 = 13. Αποκρυπτογράφθςθ του κρυπτογραφιματοσ C = 13: M = 137 mod 33 = (133 133 13) mod 33 = (19 19 13) mod 33 = 7. 18
ΛΤ Η ΣΗ de 1 mod φ(n) (1/2) Επίλυςθ με χριςθ τθσ ανεπτυγμζνθσ μορφισ του αλγορίκμου του Ευκλείδθ 19
ΛΤ Η ΣΗ de 1 mod φ(n) (2/2) Απλοϊκή λφςη: Υπολογιςμόσ του d ζτςι ώςτε να ιςχφει ed 1 (mod φ(n)) ι d=3-1(mod 20) ι υπολογιςμόσ του d ζτςι ώςτε θ φ(n)=20 να διαιρεί τθ παράςταςθ ed=3d και να ζχει υπόλοιπο 1 *ed 1 (mod φ(n)) ι ed (mod φ(n))=1 (mod φ(n))=>ed (mod φ(n))=1] Δοκιμζσ για d=2,3,4, Υπολογίηεται ότι d=7 20
ΕΠΙΘΕ ΕΙ ΣΟΝ RSA Υπάρχουν 3 ςυνολικά τρόποι επίκεςθσ ςτον RSA Επίκεςθ βίαιθσ δφναμθσ. Εξαντλθτικι δοκιμι όλων των πικανών κλειδιών Μακθματικζσ επικζςεισ Παραγοντοποίθςθ του γινομζνου δφο πρώτων αρικμών Χρονικζσ επικζςεισ Καταμζτρθςθ του χρόνου αποκρυπτογράφθςθσ 21
Ο ΑΛΓΟΡΙΘΜΟ DIFFIE-HELLMAN: ΕΙ ΑΓΩΓΙΚΑ ΣΟΙΧΕΙΑ Ο πρώτοσ αλγόρικμοσ δθμόςιου κλειδιοφ που εφευρζκθκε το 1976 είναι ο Diffie-Hellman Το πρωτόκολλο Diffie-Hellman αναφζρεται ςτθν κρυπτογραφία δθμόςιου κλειδιοφ αλλά χρθςιμοποιείται κατά βάςθ ςαν πρωτόκολλο ανταλλαγισ (κρυφοφ ιδιωτικοφ) κλειδιοφ Στόχοσ είναι θ ανταλλαγι (εγκατάςταςθ) ενόσ μυςτικοφ ιδιωτικοφ κλειδιοφ μεταξφ δφο (άγνωςτων) χρθςτών μζςω ενόσ μθ αςφαλοφσ καναλιοφ επικοινωνίασ 22
Ο ΑΛΓΟΡΙΘΜΟ DIFFIE-HELLMAN (1/3) Θεωροφμε τθν Αλίκθ (Alice) και τον Βφρωνα (Bob) που κζλουν να επικοινωνιςουν μζςω του πρωτοκόλλου Diffie-Hellman Αρχικά τα δφο πρόςωπα ςυμφωνοφν ςε δφο (δθμόςιουσ) μεγάλουσ πρώτουσ αρικμοφσ τον g και τον p Η επιλογι των αρικμών γίνεται με τζτοιο τρόπο ώςτε ο g να είναι πρωτογενισ ρίηα του p 23
Ο ΑΛΓΟΡΙΘΜΟ DIFFIE-HELLMAN (2/3) Πρωτογενισ ρίηα (primitive root) ονομάηουμε τον ακζραιο αρικμό g, του οποίου οι δυνάμεισ παράγουν όλουσ τουσ αρικμοφσ από το 1 ζωσ το p-1. Αυτό ςθμαίνει ότι, αν g είναι πρωτογενισ ρίηα του πρώτου αρικμοφ p, τότε οι αρικμοί g mod p, g2 mod p,, gp-1 mod p είναι διαφορετικοί και αποτελοφν τουσ ακεραίουσ από το 1 μζχρι το p-1. Π.χ. n = 14. Ο αρικμόσ 14 είναι αμοιβαία πρώτοσ με τουσ 1, 3, 4, 9, 11 και 13. Ο αρικμόσ 3 είναι πρωτογενισ ρίηα του αρικμοφ 14 αφοφ: 3 mod 14 = 3, 32 mod 14 = 9, 33 mod 14 = 13, 34 mod 14 = 11, 35 mod 14 = 5 24
Ο ΑΛΓΟΡΙΘΜΟ DIFFIE-HELLMAN (3/3) Στθ ςυνζχεια θ Αλίκθ επιλζγει ζναν (μυςτικό) τυχαίο αρικμό a και ςτζλνει το αποτζλεςμα τθσ παράςταςθσ ga mod p ςτον Βφρωνα Ταυτόχρονα ο Βφρωνασ επιλζγει ζναν (μυςτικό) τυχαίο αρικμό b και ςτζλνει το αποτζλεςμα τθσ παράςταςθσ gb mod p ςτθν Αλίκθ Από τθν πλευρά τθσ θ Αλίκθ υπολογίηει τθν παράςταςθ (gb mod p)a mod p = gba mod p Από τθν πλευρά του ο Βφρωνασ υπολογίηει τθν παράςταςθ (ga mod p)b mod p = gab mod p Με αυτό τον τρόπο οι δφο πλευρζσ ανταλλάςουν ζνα κοινό ιδιωτικό κλειδί, το gab mod p 25
ΣΑ ΚΛΕΙΔΙΑ ΣΟΤ DIFFIE-HELLMAN Βύρωνας Αλίκη p, g Δημόζια p, g a Ιδιωηικό b ga mod p Αποζηολή gb mod p (gb mod p)a mod p Υπολογιζμός (ga mod p)b mod p 26
ΧΗΜΑΣΙΚΟ ΠΑΡΑΔΕΙΓΜΑ ΑΛΓΟΡΙΘΜΟΤ DIFFIE-HELLMAN 27
ΠΑΡΑΔΕΙΓΜΑ DIFFIE-HELLMAN: ΕΠΙΛΟΓΗ ΚΑΙ ΔΗΜΙΟΤΡΓΙΑ ΚΛΕΙΔΙΩΝ Η Αλίκθ και ο Βφρωνασ ςυμφωνοφν ςε δφο πρώτουσ αρικμοφσ p = 23 και g = 5. Ο αρικμόσ 5 είναι πρωτογενισ ρίηα του 23 Η Αλίκθ επιλζγει ζναν (μυςτικό) τυχαίο αρικμό a = 6 και ςτζλνει ςτο Βφρωνα το αποτζλεςμα τθσ παράςταςθσ ga mod p 56 mod 23 = 8 Ο Βφρωνασ επιλζγει ζναν (μυςτικό) τυχαίο αρικμό b = 15 και ςτζλνει ςτθν Αλίκθ το αποτζλεςμα τθσ παράςταςθσ gb mod p 515 mod 23 = 19 Η Αλίκθ υπολογίηει το κοινό μυςτικό κλειδί (gb mod p) mod p = 196 mod 23 = 2 Ο Βφρωνασ υπολογίηει το κοινό μυςτικό κλειδί (ga mod p) mod p = 815 mod 23 = 2 28
Απορίεσ??? 29