Upload
others
View
0
Download
0
Embed Size (px)
Citation preview
ΤΕΙ Κρητης Τµηµα Εφαρµοσµενης Πληροφορικης Και Πολυµεσων
ΤΕΙ Κρήτης – ΕΠΠ
Εργαστήριο Ασφάλεια Πληροφοριακών
Συστηµάτων
Fysarakis Konstantinos, [email protected]
ΑΣΥΜΜΕΤΡΗΚΡΥΠΤΟΓΡΑΦΙΑ
Εισαγωγή
• Η Aσύµµετρη Kρυπτογραφία ή ΚρυπτογραφίαΔηµοσίου Κλειδιού χρησιµοποιεί δύοδιαφορετικά κλειδιά για την κρυπτογράφησηκαι αποκρυπτογράφηση.
• Eπινοήθηκε στο τέλος της δεκαετίας του 1970από τους Whitfield Diffie και Martin Hellmanκαι παρέχει έναν εντελώς διαφορετικό µοντέλοδιαχείρισης των κλειδιών κρυπτογράφησης.
Εισαγωγή
• Κάθε χρήστης έχει στην κατοχή του ένα ζεύγοςκλειδιών, το ένα καλείται δηµόσια κλείδα και τοάλλο καλείται ιδιωτική κλείδα.
• Η δηµόσια κλείδα δηµοσιοποιείται, ενώ ηιδιωτική κλείδα κρατείται µυστική. Η ιδιωτικήκλείδα δεν µεταδίδεται ποτέ στο δίκτυο και όλεςοι επικοινωνίες βασίζονται στην δηµόσιακλείδα.
Εισαγωγή
• Η ανάγκη ο αποστολέας και ο παραλήπτης ναµοιράζονται το ίδιο κλειδί εξαφανίζεται και µαζί καιπολλά προβλήµατα που θα δούµε παρακάτω.
• Η µόνη απαίτηση της ασύµµετρης κρυπτογραφίας είναιη εµπιστεύσιµη και επιβεβαιωµένη συσχέτιση τωνδηµόσιων κλείδων µε τους κατόχους τους ώστε να µηνείναι δυνατή η σκόπιµη ή µη πλαστοπροσωπία.
• Η ασύµµετρη κρυπτογράφηση µπορεί ναχρησιµοποιηθεί όχι µόνο για κρυπτογράφηση, αλλά καιγια παραγωγή ψηφιακών υπογραφών.
Εισαγωγή
• Η ιδιωτική κλείδα είναι µαθηµατικάσυνδεδεµένη µε την δηµόσια κλείδα. Τυπικά,λοιπόν, είναι δυνατόν να νικηθεί ένα τέτοιοκρυπτοσύστηµα ανακτώντας την ιδιωτικήκλείδα από την δηµόσια.
• Η επίλυση αυτού του προβλήµατος είναι πολύδύσκολη και συνήθως απαιτεί τηνπαραγοντοποίηση ενός µεγάλου αριθµού.
Εισαγωγή
• Η κρυπτογράφηση µε χρήση της ασύµµετρηςκρυπτογραφίας γίνεται ως εξής:▫ όταν ο χρήστης Α θέλει να στείλει ένα µυστικό
µήνυµα στον χρήστη Β, χρησιµοποιεί την δηµόσιακλείδα του Β για να κρυπτογραφήσει το µήνυµα καιέπειτα το στέλνει στον Β.▫ Ο χρήστης Β, αφού παραλάβει το µήνυµα, κάνειχρήση της ιδιωτικής του κλείδας για να τοαποκρυπτογραφήσει.
Εισαγωγή
• Κανένας που "ακούει" την σύνδεση δεν µπορείνα αποκρυπτογραφήσει το µήνυµα.
• Οποιοσδήποτε έχει την δηµόσια κλείδα του Βµπορεί να του στείλει µήνυµα και µόνο αυτόςµπορεί να το διαβάσει γιατί είναι ο µόνο πουγνωρίζει την ιδιωτική κλείδα.
Εισαγωγή
• Πλεονεκτήµατα▫ Λύση στο πρόβληµα µεταφοράς-διαχείρισης τουιδιωτικού κλειδιού των συµµετρικών αλγορίθµων▫ Μόνο το µυστικό κλειδί πρέπει να κρατηθεί κρυφό▫ Εύκολη διαχείριση κλειδιών µε τη βοήθεια µιας τρίτηςεµπιστευτικής οντότητας▫ Είναι πιο αποτελεσµατικοί σε ψηφιακές υπογραφέςλόγω της διαχείρισης των κλειδιών και λόγω τουµεγέθους του κλειδιού επιβεβαίωσης της υπογραφής.
• Μειονεκτήµατα▫ Είναι χαρακτηριστικά πιο αργά σε σχέση µε τασυµµετρικά κρυπτοσυστήµατα.▫ Το µέγεθος των κλειδιών.
Αλγόριθµοι Ασύµµετρης Κρυπτογραφίας
RSA
• Το σύστηµα RSA είναι ένα σύστηµαασύµµετρης κρυπτογραφίας που προσφέρεικρυπτογράφηση και ψηφιακές υπογραφές.
• Αναπτύχθηκε το 1977 από τους Ron Rivest, AdiShamir και Leonard Adleman. Από τα αρχικάτων επιθέτων τους προέρχεται το ακρωνύµιοRSA.
• Κλειδιά µεγέθους 1024 - 2048 bits, συνήθως.
Shamir, Rivest, Adleman
Modulo Arithmetic
• Eίναι ένα αριθµητικό σύστηµα για ακεραίουςστο οποίο το αποτέλεσµα µίας πράξης δεν είναιδυνατό να είναι µεγαλύτερο από µια δεδοµένητιµή.▫ Γνωστό παράδειγµα είναι η χρήση του
24ωρου ρολογιού, (αριθµητική modulo), οιώρες αρχίζουν να ξαναµετράνε από την αρχήόταν φτάσουν στο 24
RSA
• Το RSA λειτουργεί ως εξής:▫ Παίρνουµε δύο µεγάλους πρώτους αριθµούς p,q.
� Στα µαθηµατικά, πρώτος αριθµός είναι ένας φυσικός αριθµόςπου έχει ακριβώς 2 διαφορετικούς φυσικούς διαιρέτες: το 1και τον εαυτό του
▫ Υπολογίζουµε το γινόµενο τους n = pq. Το n καλείταισυντελεστής συστήµατος.▫ Διαλέγουµε ένα αριθµό e µικρότερο του n και τέτοιο,ώστε e και (p-1)(q-1) να µην έχουν κοινούς διαιρέτεςεκτός του 1.▫ Βρίσκουµε έναν άλλο αριθµό d, ώστε (ed-1) ναδιαιρείται από το (p-1)(q-1). Το d είναι το αντίστροφοτου e mod(p-1)(q-1)
RSA
• Τα ζευγάρια (n,e) και (n,d) καλούνται δηµόσιακλείδα και ιδιωτική κλείδα, αντίστοιχα.
• Όλα τα µέρη του ιδιωτικού κλειδιού πρέπει νακρατηθούν µυστικά
• Τα p και q είναι ευαίσθητα καθώς από αυτάπαράγεται το n και επιτρέπουν τον υπολογισµότου d δεδοµένου του e
RSA
• Είναι δύσκολο να βρεθεί η ιδιωτική κλείδα d από τηνδηµόσια κλείδα e. Αυτό θα απαιτούσε την εύρεση τωνδιαιρετέων του αριθµού n, δηλαδή των αριθµών p και q.Ο n είναι πολύ µεγάλος και επειδή είναι πρώτος, θα έχειµόνο δύο πρώτους διαιρέτες. Άρα η εύρεση τωνδιαιρετέων είναι πολύ δύσκολη έως και αδύνατη.
• Στο δυσεπίλυτο αυτό πρόβληµα βασίζεται το σύστηµαRSA.
• Η ανακάλυψη µιας εύκολης µεθόδου επίλυσης τουπροβλήµατος θα αχρήστευε το RSA
RSA
• Με το RSA η κρυπτογράφηση και η πιστοποίησηταυτότητας πραγµατοποιούνται χωρίς των κοινή χρήσηιδιωτικών κλείδων.
• Ο καθένας χρησιµοποιεί µόνο την δικιά του ιδιωτικήκλείδα ή την δηµόσια κλείδα οποιουδήποτε άλλου.
• Όλοι µπορούν να στείλουν ένα κρυπτογραφηµένοµήνυµα ή να επαληθεύσουν µια υπογραφή, αλλά µόνο οκάτοχος της σωστής ιδιωτικής κλείδας µπορεί νααποκρυπτογραφήσει ή να υπογράψει ένα µήνυµα.
Κρυπτογράφηση µε τον RSA
• Έστω ο χρήστης Α που θέλει να στείλεικρυπτογραφηµένο στον χρήστη Β ένα έγγραφο:▫ Ο Α κρυπτογραφεί το έγγραφο µε την εξής εξίσωση:� c = me mod n, όπου (n,e) είναι η δηµόσια κλείδα τουΒ.
▫ Ο Β, όταν παραλάβει το µήνυµα θα εφαρµόσει τηνεξής εξίσωση:� m = cd mod n, όπου (n,d) η ιδιωτική κλείδα του Β.▫ Η µαθηµατική σχέση που συνδέει το e και το dεξασφαλίζει το γεγονός ότι ο Β αποκρυπτογραφεί τοµήνυµα. Αφού µόνο ο Β ξέρει το d, µόνο αυτός µπορείνα αποκρυπτογραφήσει το µήνυµα.
Παράδειγµα RSA
• Παραγωγή κλειδιού:▫ Επιλογή πρώτων αριθµών: p=17 & q=11▫ Υπολογισµός του n = pq =17×11=187▫ Υπολογισµός του (p–1)(q-1)=16×10=160▫ Επιλογή του e τέτοιου ώστε Μ.Κ.Δ.(e,160)=1� Επιλογή e=7▫ Προσδιορισµός του d τέτοιου ώστε de=1 mod 160 και d <
160� Η τιµή είναι d=23 µιας και 23×7=161= 1×160+1▫ Δηµόσιο κλειδί = {187, 7}▫ Ιδιωτικό κλειδί = {187,23}
Παράδειγµα RSA
• Κρυπτογράφηση/Αποκρυπτογρά-φησηΜηνύµατος▫ Δεδοµένου µηνύµατοςM = 88 (88<187)▫ Κρυπτογράφηση:� C = 887 mod 187 = 11▫ Αποκρυπτογράφηση:� M = 1123 mod 187 = 88
Ψηφιακές Υπογραφές µε τον RSA
• Ας υποθέσουµε, τώρα, ότι ο Α θέλει να στείλειµήνυµα στον Β µε τέτοιον τρόπο ώστε ο Β ναείναι σίγουρος ότι το µήνυµα είναι αυθεντικόκαι δεν έχει µεταβληθεί.▫ Ο Α υπογράφει το έγγραφο µε ως εξής: s = md mod n,όπου d και n είναι η ιδιωτική κλείδα του Α.▫ Για να επαληθεύσει την υπογραφή ο Β εκτελεί τηνπράξη: m = se mod n, όπου e και n η δηµόσια κλείδατου Α.
Παράδειγµα RSA #2
• Για τον RSA επιλέγουµε p=3, q=5 έτσι ώστε n=15. Έπειτα επιλέγουµε e=3.
• Θέλουµε να κρυπτογραφήσουµε τη λέξη CAT.
• Χρησιµοποιούµε ASCII για να γράψουµε τη λέξη CAT σαν σειρά από 21 bits. ▫ CAT à 100001110000011010100� C à 1000011� A à 1000001 � T à 1010100
Παράδειγµα RSA #2
• Χωρίζουµε τη σειρά που προκύπτει: ▫ 100001110000011010100
• ...σε 7 µπλοκ των 3 bits:▫ 100 001 110 000 011 010 100
• ...και γράφουµε το καθένα από αυτά ως ακέραιο από το 0 εώς το 7:▫ 100 001 110 000 011 010 100▫ 4 1 6 0 3 2 4
Παράδειγµα RSA #2
• Έχουµε: ▫ Δηµόσιο κλειδί: (15, 3)▫ Ιδιωτικό κλειδί: (15, 9)
• Κρυπτογράφηση:▫ C = me (mod n)
• Άρα:▫ C = me (mod n) = 43 (mod 15) = 4▫ 13 (mod 15) = 1▫ 63 (mod 15) = 6▫ 03 (mod 15) = 0▫ 33 (mod 15) = 12▫ 23 (mod 15) = 2▫ 43 (mod 15) = 4
Παράδειγµα RSA #2
• Τελικά...▫ Αρχικό: � 4 1 6 0 3 2 4▫ Κρυπτογραφηµένο:� 4 1 6 0 12 2 4
Εργαστηριακές Ασκήσεις•Με τη χρήση του εργαλείου CryptTool να εκτελεστούν οι ακόλουθες ασκήσεις▫ Δηµιουργία ενός ασύµµετρου ζεύγους κλειδιών▫ Κρυπτογράφηση του κειµένου που δηµιουργήθηκε µε τη χρήση του ασύµµετρου αλγορίθµου RSA. ▫ Αποκρυπτογράφηση του κρυπτογραφήµατος που προέκυψε.
• RSA Demonstration• Factorization of number• Attack on small secret keys
4η Εργαστηριακή Άσκηση
Για τον RSA επιλέγουμε p=3, q=5 έτσι ώστε n=15. Έπειτα επιλέγουμε e=3.
a) Χρησιμοποιήστε ASCII-to-Binary για να γράψετε τη λέξη DOG σανσειρά από 21 bits.
b) Διαιρέστε τη σειρά που προκύπτει σε 7 μπλοκ των 3 bits και γράψτεκαθένα από αυτά ως ακέραιο από το 0 εώς το 7.
c) Κρυπτογραφήστε καθένα από τα μπλοκ με χρήση του RSA (με n=15και e=3) και αναφέρετε το αποτέλεσμα.
Η απάντηση πρέπει να είναι 7 ακέραιοι αριθμοί από το 0 εώς το 14.
DEADLINE: 7 Δεκεμβρίου 2017