Κρυπτογραφία Δημόσιου Κλειδιού II Αλγόριθμος RSA Τμήμα Μηχ. Πληροφορικής ΤΕΙ Κρήτης Κρυπτογραφία Δημόσιου Κλειδιού -RSA 1
Κρυπτογραφία Δημόσιου Κλειδιού - Ιστορία Ηνωμένες Πολιτείες 1975: Ο Diffie οραματίζεται τις αρχές της ασύμμετρης κρυπτογραφίας 1976: Η ανταλλαγή κλειδιού από τους Diffie-Hellman Η πρώτη δημοσίευση πρακτικής μεθόδου για δημιουργία ενός κοινού μυστικού κλειδιού πάνω από ένα μη προστατευμένο κανάλι επικοινωνίας χωρίς να χρησιμοποιηθεί γνωστό από προηγούμενα κοινό κλειδί 1977, Απρίλιος: RSA (Rivest, Shamir, Adelman, όλοι έπειτα στο MIT) Μία άλλη πρακτική εφαρμογή των αρχών της ασύμμετρης κρυπτογραφίας Η ασφάλεια του αλγόριθμου RSA είναι συνδεδεμένη με τη θεωρούμενη δυσκολία παραγοντοποίησης μεγάλων ακεραίων, ένα πρόβλημα για το οποίο δεν υπάρχει σήμερα καμία αποδοτική (πρακτικά γρήγορη) μέθοδος Κρυπτογραφία Δημόσιου Κλειδιού -RSA 2
Κρυπτογραφία Δημόσιου Κλειδιού - Ιστορία Κρυπτογραφία Δημόσιου Κλειδιού -RSA 3
Κρυπτογραφία Δημόσιου Κλειδιού - Ιστορία Ηνωμένο Βασίλειο 1969: Το GCHQ ζητά από το James Ellis να εξετάσει το βασικό πρόβλημα διανομής κλειδιών Ο Ellis υπενθυμίζει μια έκθεση των Bell Labs σχετικά με την προσθήκη θορύβου σε ένα σήμα (για να προστατεύσει την επικοινωνία), το οποίο μεταδίδεται και έπειτα αφαιρείται ο θόρυβος Βρήκε μία ιδέα που αποκάλεσε "μη-μυστική κρυπτογράφηση" Δεν κατάφερε να επινοήσει ένα τρόπο να την υλοποιήσει 1973: Clifford Cocks (Cambridge Math Ph.D) συμμετέχει στη GCHQ Μαθαίνει για την ιδέα του Ellis, ψάχνει για μια κατάλληλη υλοποίηση και σκέφτεται κάτι παρόμοιο με τον αλγόριθμο RSA Από το 2003, Clifford Cocks κατέχει τη θέση του Chief Mathematician στο GCHQ 1974, Ιανουάριος: Ο Malcolm Williamson, σεμίαπροσπάθειαναβρει αδυναμίες στη εργασία του Cocks, ανακαλύπτει τον αλγ οριθμο Diffie- Hellman Κρυπτογραφία Δημόσιου Κλειδιού -RSA 4
Αλγόριθμοι Δημόσιου Κλειδιού Κρυπτογραφία Δημόσιου Κλειδιού -RSA 5
RSA Από τους Rivest, Shamir & Adleman του MIT το 1977 Ψηφιακή υπογραφή & κρυπτογράφηση Η πατέντα έληξε το Σεπτέμβριο του 2000 Πιο γνωστός & ευρέως διαδεδομένος αλγόριθμος δημόσιου κλειδιού Χρησιμοποιεί μεγάλους ακέραιους (π.χ. 1024 bits) Ασφάλεια λόγω υπολογιστικού κόστους παραγοντοποίησης μεγάλων αριθμών Οι λειτουργίες του δημόσιου κλειδιού γίνονται πολύ γρήγορα, αλλά οι λειτουργίες του ιδιωτικού κλειδιού είναι αργές Κρυπτογραφία Δημόσιου Κλειδιού -RSA 6
RSA Παραγωγή ζεύγους δημόσιου/ιδιωτικού κλειδιού 1. Τυχαία επιλογή 2 μεγάλωνπρώτωναριθμών: p, q Στα μαθηματικά, πρώτος αριθμός είναι ένας φυσικός αριθμός που έχει ακριβώς 2 διαφορετικούς φυσικούς διαιρέτες: το 1 και τον εαυτό του 2. Υπολογισμός του συντελεστή συστήματος n = p q Modulo arithmetic: είναι ένα αριθμητικό σύστημα για ακεραίους στο οποίο το αποτέλεσμα μίας πράξης δεν είναι δυνατό να είναι μεγαλύτερο από μια δεδομένη τιμή. Γνωστό παράδειγμα είναι η χρήση του 24ωρου ρολογιού, (αριθμητική modulo), οι ώρες αρχίζουν να ξαναμετράνε από την αρχή όταν φτάσουν στο 24. Κρυπτογραφία Δημόσιου Κλειδιού -RSA 7
RSA Παραγωγή ζεύγους δημόσιου/ιδιωτικού κλειδιού 3. Υπολογισμός του totient φ(n)=(p-1)(q-1) Στη θεωρία αριθμών, το totient ενός θετικού ακεραίου n ορίζεται ως ο αριθμός θετικών ακεραίων μικρότερων του n και σχετικά πρώτοι με αυτόν π.χ. φ(9)=(6) αφού έξι αριθμοί 1, 2, 4, 5, 7 και 8 είναι πρώτοι με το 9 Οι ακέραιοι a και b λέγονται πρώτοι μεταξύ τους, αν δεν έχουν κοινό διαιρέτη άλλο εκτός του 1 και -1, ή αλλιώς αν ο μέγιστος κοινός διαιρέτης του είναι το 1 Ο μέγιστος κοινός διαιρέτης δύο μη μηδενικών αριθμών είναι το μεγαλύτερος θετικός ακέραιος που διαιρεί ακριβώς και τους δύο Για παράδειγμα, το 6 και το 35 είναι μεταξύ τους πρώτοι, αλλά το 6 και το 27 δεν είναι γιατί και οι δύο διαιρούνται με το 3 Κρυπτογραφία Δημόσιου Κλειδιού -RSA 8
RSA Παραγωγή ζεύγους δημόσιου/ιδιωτικού κλειδιού 4. Επιλογή ενός ακεραίου e Όπου 1<e<φ(n), Μ.Κ.Δ.(e,φ(n))=1 (πρώτοι μεταξύ τους) Το e είναι ο εκθέτης του δημόσιου κλειδιού 5. Επίλυση της παρακάτω εξίσωσης για να βρεθεί το d : e d=1 mod φ(n) και 0 d n Αφήνει υπόλοιπο 1 όταν διαιρείται με το φ(n) Το d είναι το αντίστροφο του e mod (p-1)(q-1) Το d φυλάσσεται ως ο εκθέτης του ιδιωτικού κλειδιού Κρυπτογραφία Δημόσιου Κλειδιού -RSA 9
RSA Παραγωγή ζεύγους δημόσιου/ιδιωτικού κλειδιού 6. Κρυπτογραφηση με δημόσιο κλειδί: KU={e, n} 7. Κρυπτογραφηση με ιδιωτικό κλειδί : KR={d, p, q} Σημείωση Όλα τα μέρη του ιδιωτικού κλειδιού πρέπει να κρατηθούν μυστικά Τα p και q είναι ευαίσθητα καθώς από αυτά παράγεται το n και επιτρέπουν τον υπολογισμό του d δεδομένου του e Κρυπτογραφία Δημόσιου Κλειδιού -RSA 10
RSA Παραγωγή ζεύγους δημόσιου/ιδιωτικού κλειδιού Σημείωση Μία δημοφιλής επιλογή για τους δημόσιους εκθέτες είναι το e = 2 16 + 1 = 65537 Μερικές εφαρμογές διαλέγουν μικρότερες τιμές όπως e = 3, 5, ή 35 Το μήνυμα M πρέπει να είναι μικρότερο από το συντελεστή n Κρυπτογραφία Δημόσιου Κλειδιού -RSA 11
RSA 1. Διάλεξε p, q p και q είναι πρώτοι αριθμοί 2. Υπολόγισε το n = p x q 3. Υπολόγισε το Φ(n) = (p -1)(q -1) 4. Διάλεξε ακέραιο e ώστε gcd(φ(n), e)=1; 1<e<Φ(n) 5. Υπολόγισε το d όπου d = e -1 mod Φ(n) 6. Δημόσιο κλειδί KU = {e,n} 7. Ιδιωτικό κλειδί KR = {d,n} Κρυπτογραφία Δημόσιου Κλειδιού -RSA 12
Χρήση του RSA Για να κρυπτογραφήσει ένα μήνυμα M ο αποστολέας Λαμβάνει το δημόσιο κλειδί του παραλήπτη KU={e,n} Αρχικά μετατρέπει το M σε ένα αριθμό M < n χρησιμοποιώντας ένα προσυμφωνημένο πρωτόκολλο γνωστό σαν padding scheme Το μήνυμα M πρέπει να είναι μικρότερο από το συντελεστή n Υπολογίζει: C=M e mod n, όπου 0 M<n Για να αποκρυπτογραφήσει το ciphertext C ο παραλήπτης Χρησιμοποιεί το ιδιωτικό κλειδί KR={d,p,q} Υπολογίζει το: M=C d mod n M=C d = M e^d = M ed = M 1 =M Κρυπτογραφία Δημόσιου Κλειδιού -RSA 13
ΗΑσφάλειατουRSA Το RSA είναι ασφαλής όσο το n δεν μπορεί να παραγοντοποιηθεί εύκολα Ο επιτιθέμενος ξέρει το n επειδή δημοσιεύεται ως μέρος του δημόσιου κλειδιού Το n έχει μόνο δύο παράγοντες, το p και το q Τα p και q είναιπρώτοιμεταξύτους Αν ένας επιτιθέμενος μπορεί να ανακτήσει τα p και q τότε μπορεί να ανακτήσει και το (p 1)(q 1) Γνωρίζοντας το e και το (p 1)(q 1) δίνεται η δυνατότητα στον επιτιθέμενο να υπολογίσει εύκολα το d αφού: e d = 1 mod (p 1)(q 1) Κρυπτογραφία Δημόσιου Κλειδιού -RSA 14
Παράδειγμα RSA Παραγωγή κλειδιού: 1. Επιλογή πρώτων αριθμών: p=17 & q=11 2. Υπολογισμός του n = pq =17 11=187 3. Υπολογισμός του φ(n)=(p 1)(q-1)=16 10=160 4. Επιλογή του e : Μ.Κ.Δ.(e,160)=1; επιλογή e=7 5. Προσδιορισμός του d: de=1 mod 160 και d < 160 Ητιμήείναιd=23 μιας και 23 7=161= 10 160+1 6. Δημόσιο κλειδί KU={7,187} 7. Ιδιωτικό κλειδί KR={23,17,11} Κρυπτογραφία Δημόσιου Κλειδιού -RSA 15
Παράδειγμα RSA Κρυπτογράφηση/Αποκρυπτογράφηση Μηνύματος Δεδομένου μηνύματος M = 88 (88<187) Κρυπτογράφηση: C = 88 7 mod 187 = 11 Αποκρυπτογράφηση: M = 11 23 mod 187 = 88 Κρυπτογραφία Δημόσιου Κλειδιού -RSA 16
Παράδειγμα RSA Κρυπτογραφία Δημόσιου Κλειδιού -RSA 17
Αριθμητική Modulo Κρυπτογραφία Δημόσιου Κλειδιού -RSA 18
Αριθμητική Modulo Κρυπτογραφία Δημόσιου Κλειδιού -RSA 19
Αριθμητική Modulo Κρυπτογραφία Δημόσιου Κλειδιού -RSA 20
Αριθμητική Modulo Κρυπτογραφία Δημόσιου Κλειδιού -RSA 21
Αριθμητική Modulo (Παράδειγμα RSA) Κρυπτογραφία Δημόσιου Κλειδιού -RSA 22
Αριθμητική Modulo (Παράδειγμα RSA) Κρυπτογραφία Δημόσιου Κλειδιού -RSA 23
Αριθμητική Modulo (Παράδειγμα RSA) Κρυπτογραφία Δημόσιου Κλειδιού -RSA 24
Αριθμητική Modulo (Παράδειγμα RSA) Κρυπτογραφία Δημόσιου Κλειδιού -RSA 25
Αριθμητική Modulo (Παράδειγμα RSA) Κρυπτογραφία Δημόσιου Κλειδιού -RSA 26
Ασφάλεια του RSA Προσεγγίσεις για επίθεση στον RSA Brute force αναζήτηση κλειδιού Επίθεση κατασκευής μηνυμάτων Μαθηματικές επιθέσεις Επιθέσεις στον τρόπο υλοποίησης Κρυπτογραφία Δημόσιου Κλειδιού -RSA 27
Ασφάλεια της Τεχνολογίας Όπως και στη συμβατική κρυπτογραφία, μία επίθεση brute force είναι δυνατή Αλλά τα κλειδιά που χρησιμοποιούνται είναι πολύ μεγάλα (>768 bits) με ελάχιστο προτεινόμενο μέγεθος σήμερα τα 1024 bits Αυτό όμως είναι και μία από τις αιτίες που η ασύμμετρη κρυπτογραφία είναι πιο αργή από την συμβατική μέθοδο Κρυπτογραφία Δημόσιου Κλειδιού -RSA 28
Ασφάλεια της Τεχνολογίας Κρυπτογραφία Δημόσιου Κλειδιού -RSA 29
Speed Benchmarks CPU: Intel Core 2 6600 @ 2.4GHz, 4MB Cache RAM: 2GB DDR2 Κρυπτογραφία Δημόσιου Κλειδιού -RSA 30