Παύλος Εφραιμίδης Βασικές Έννοιες Κρυπτογραφίας Ασφ Υπολ Συστ 1
Βασικές υπηρεσίες/εφαρμογές κρυπτογραφίες: Confidentiality, Authentication, Integrity, Non- Repudiation Βασικές έννοιες κρυπτογραφίας 2
3
Έστω ένα γράμμα Μ το οποίο είναι απόρρητο Θέλουμε να φυλάξουμε το γράμμα έτσι ώστε κάποιος επίδοξος εισβολέας που γνωρίζει για την ύπαρξη του γράμματος να μην μπορεί να δει το περιεχόμενό ό του Θα διακρίνουμε 2 διαφορετικά σενάρια. 4
Πρώτο Σενάριο: Κλειδώνουμε το Μ σε ένα χρηματοκιβώτιο και τοποθετούμε το χρηματοκιβώτιο σε κάποιο μυστικό μέρος στην Ξάνθη. Στη συνέχεια λέμε στον επίδοξο εισβολέα να βρει το γράμμα. 5
Δεύτερο Σενάριο: Κλειδώνουμε το Μ σε ένα χρηματοκιβώτιο, Παραδίδουμε το χρηματοκιβώτιο στον επίδοξο εισβολέα μαζί με πλήρη περιγραφή του χρηματοκιβωτίου, πλήθος από όμοια χρηματοκιβώτια για να πειραματιστεί, και κάθε είδους πληροφορία, εκτός από ένα πράγμα: Το κλειδί του συγκεκριμένου χρηματοκιβωτίου που περιέχει το γράμμα. Στη συνέχεια λέμε στον επίδοξο εισβολέα να βρει το γράμμα. 6
Το πρώτο σενάριο είναι Obscurity Το δεύτερο σενάριο είναι Security Στο μάθημα θα ασχοληθούμε με security! 7
8
Αποστολέας, Παραλήπτης Πρωταγωνιστές: Αλίκη (Alice), Μπάμπης (Bob), Εύη (Eve) Μήνυμα, Κρυπτογράφηση, Κρυπτογραφημένο Μήνυμα, Αποκρυπτογράφηση Αλγόριθμος Κρυπτογράφησης, Κλειδί 9
10
Προστασία Απορρήτου Εμπιστευτικότητα (Confidentiality) Ταυτοποίηση Αυθεντικοποίηση (Authentication) Ακεραιότητα (Integrity) Μη-Αποποίηση (Non-repudiation) 11
βασικές έννοιες κρυπτογραφίας: Προστασία από τη μη εξουσιοδοτημένη αποκάλυψη της πληροφορίας θα πρέπει να είναι αδύνατη η αποκάλυψη της πληροφορίας, ορισμένες φορές, η αποκάλυψη της ύπαρξης της πληροφορίας Παραδείγματα: Enigma: Συσκευή κρυπτογράφησης στο Β παγκόσμιο πόλεμο Παραγγελίες πίτσας: Στην κρίση του Περσικού κόλπου οι αυξημένες παραγγελίες πίτσας από πιτσαρία γειτονική του Πενταγώνου υποδήλωνε ότι κάτι προετοιμάζει το Πεντάγωνο. 12
αυθεντικοποίηση (authentication): Η εξασφάλιση ότι γνωρίζουμε το χρήστη ή γενικότερα την οντότητα με την οποία επικοινωνούμε 13
ακεραιότητα (integrity): Η προστασία πό μη-εξουσιοδοτημένη τροποποίηση των δεδομένων 14
μη-αποποίηση (non-repudiation): Η υπηρεσία κατά την οποία ο παραλήπτης δεν μπορεί να απαρνηθεί ότι έλαβε το μήνυμα ή ο αποστολέας δεν μπορεί να απαρνηθεί ότι έστειλε το μήνυμα 15
Αλγόριθμος Κρυπτογράφησης (cipher): Μαθηματική Συνάρτηση Που θα πρέπει να βασίζεται η ασφάλεια ενός αλγορίθμου κρυπτογράφησης; Στον ίδιο τον αλγόριθμο που τον κρατάμε μυστικό: ΠΟΛΥ ΑΔΥΝΑΜΗ ΛΥΣΗ!! (security by obscurity) Σε κλειδί ενός ο ίδιος ο αλγόριθμος είναι δημόσια γωνστός: ΑΠΟΔΕΙΚΝΥΕΤΑΙ ΩΣ Η ΠΙΟ ΑΞΙΟΠΙΣΤΗ ΛΥΣΗ!! 16
Κρυπτογραφία: Αδύνατη (ή τουλάχιστον πολύ δύσκολη) η εύρεση του αρχικού μηνύματος χωρίς τη χρήση του κλειδιού. Η κρυπτανάλυση ασχολείται ακριβώς με την εξαγωγή γή του αρχικού μηνύματος μ χωρίς τη χρήση του κλειδιού. Βασική υπόθεση: Η ασφάλεια βασίζεται εξ ολοκλήρου στο κλειδί (Πχ. στο στρατό η διαδικασία αναγνώρισης με το καθημερινό σύνθημα). ) 17
1. Με βάση μόνο το κρυπτογραφημένο μήνυμα. 2. Με βάση δείγμα μηνύματος και την κρυπτογραφημένης μορφής του. 3. Με βάση δυνατότητα επιλεγμένου δείγματος μηνύματος και της κρυπτογραφημένης μορφής του. 4. Επαναλαμβανόμενη μ επιλογή μηνύματος μ για το (3). Ενδεικτικά άλλες 2 περιπτώσεις 5. Επιλεγμένο κρυπτογραφημένο μήνυμα και τα αντίστοιχα αποκρυπτογραφημένα μηνύματα. 6. Με διαφορετικό τρόπο: Δωροδοκία, εκβιασμό, βασανιστήρια, κλοπή, κτλ. 18
Ολοκληρωτική: Εύρεση του κλειδιού Εύρεση εναλλακτικού αλγορίθμου αποκρυπτογράφησης Εύρεση του μηνύματοςμ μόνο. Εύρεση μερικής πληροφορίας, πχ. μέρος του κλειδιού ή του μηνύματος Διαδικασία Σπασίματος Με έξυπνο" τρόπο Δοκιμάζοντας όλες τις πιθανές λύσεις (brute force) 19
20
Τα υπολογιστικά προβλήματα που είναι υπολογίσιμα (decidable) μπορούν χονδρικά να διακριθούν σε δύο μεγάλες κατηγορίες Πολυωνυμικού Χρόνου Τα υπόλοιπα, για τα οποία δε γνωρίζουμε κάποιον πολυωνυμικό αλγόριθμο Παράδειγμα: Το πρόβλημα του περιοδεύοντος πωλητή (Traveling Salesman Problem) 21
Αλγόριθμοι Πολυωνυμικού Χρόνου: Θεωρείται ότι είναι εφικτή η λύση τους. Πχ. ταξινόμηση αριθμών: Παράδειγμα Quicksort Αλγόριθμοι Εκθετικού Χρόνου: Θεωρούνται μη επιλύσιμοι από ένα μέγεθος και επάνω. Πχ περιοδεύων πωλητής NP-hard προβλήματα 22
Θεωρία Αριθμών:Μέχρι πρόσφατα ένας όμορφος κλάδος των Μαθηματικών χωρίς πρακτική χρησιμότητα Αλγόριθμοι από τη θεωρία αριθμών απέκτησαν μεγάλη πρακτική σημασία χάρη στην ανάπτυξη κρυπτογραφικών συστημάτων που βασίζονται σε μεγάλους πρώτους αριθμούς Με λίγα λόγια, τέτοια συστήματα είναι εφικτά διότι Υπάρχουν πολλοί μεγάλοι πρώτοι αριθμοί και είναι σχετικά εύκολο να βρίσκουμε τυχαίους τέτοιους αριθμούς Η προστασία που παρέχουν οφείλεται στη (καθορίζεται από τη) δυσκολία παραγοντοποίησης του γινομένου μεγάλων πρώτων αριθμών 23
Ένας ενδιαφέρον κλάδος των Μαθηματικών Απέκτησε μεγάλη πρακτική αξία χάρη στη Σύγχρονη Κρυπτογραφία Η βάση για τη Σύγχρονη Κρυπτογραφία είναι η θεωρία Πολυπλοκότητας και εφαρμογές από τη θεωρία Αριθμών 24
25
Συμμετρικοί Αλγόριθμοι (κρυφού κλειδιού) DES, IDEA, AES, Ασύμμετροι Αλγόριθμοι (δημοσίου κλειδιού) RSA, ElGamal, Elliptic Curve Cryptography,.. 26
27
Δημοφιλείς συμμετρικοί αλγόριθμοι κρυπτογράφησης: DES (θεωρείται ξεπερασμένος) 3DES AES IDEA... 28
Ιδανική Κρυπτογράφηση με χρήση κρυφού κλειδιού (συμμετρική κλειδί) Τυχαίο Κλειδί XOR Κάτω από αρκετά γενικές προϋποθέσεις δεν σπάει κλειδί μιας χρήσης τυχαίο κλειδί Προβλήματα Μεγάλο μέγεθος κλειδιού Πως να παράγουμε το κλειδί 29
30
Συμφωνούμε όλοι στους αριθμούς: p και g Ο n είναι ένας μεγάλος πρώτος αριθμός και ο g είναι ένας κατάλληλος αριθμός 2 g p-2 (Στη θεωρία αριθμών ο g ονομάζεται generator του συνόλου Η Αλίκη επιλέγει x και υπολογίζει Χ = g^x * mod p n Ο Μπάμπης επιλέγει y και Y=g^y mod p Ανταλλάσσουν τα X και Y μέσω ενός απροστάτευτου καναλιού επικοινωνίας: Η Αλίκη υπολογίζει k1 = Y^x mod p και ο Μπάμπης k2=x^y mod p. Ισχύει k1 = k2 = k Όσοι άκουσαν τα X και Y δεν μπορούν να βρουν το k από αυτά!! Επεκτείνεται και σε 3 ή περισσότερα άτομα Ασφ Υπολ Συστ Βασικές Έννοιες Κρυπτογραφίας 31
Η ασφάλεια του αλγορίθμου των Diffie- Hellman προσδιορίζεται από τη δυσκολία επίλυσης του προβλήματος ος του διακριτού λογαρίθμου: Δίνονται Χ,, g και p σύμφωνα με τις προδιαγραφές των Diffie-Hellman και ζητείται να βρεθεί x τέτοιο ώστε: Χ = g^x mod p Δεν έχει βρεθεί μέχρι στιγμής αλγόριθμος πολυωνυμικού χρόνου για το πρόβλημα αυτό. 32
Έστω p = 71 και g = 7 Η Αλίκη επιλέγει X A =5 και ο Μπάμπης X Β =12 Η Αλίκη υπολογίζει: Y A =7 5 mod 71 = 51 mod 71 Ο Μπάμπης υπολογίζει: Y B =7 12 mod d71 = 4 mod d71 Ανταλλάσσουν (δημοσίως) τα Y A και Y B H Αλίκη υπολογίζει: K A =(Y B )^(Χ Α ) mod 71 = 30 mod 71 Ο Μπάμπης υπολογίζει: K B =(Y A )^(Χ Β ) mod d71 = 30 mod d71 Το K = K A = K B είναι το κοινό κλειδί 33
Επιλέγουμε p, q τυχαίους μεγάλους πρώτους αριθμούς Υπολογίζουμε γζ n= p*q pq Υπολογίζουμε φ = (p-1)*(q-1) e τυχαίος αριθμός που δεν έχει κοινό διαιρέτη με τον αριθμό (p-1)*(q-1) e : δημόσιο κλειδί κρυπτογράφησης d : το αντίστοιχο κρυφό κλειδί κρυπτογράφησης Το d υπολογίζεται έτσι ώστε: e*d = 1 mod ((p-1)*(q-1)) 34
τα κλειδιά του RSA είναι: δημόσιο κλειδί: (e, n) ιδιωτικό κλειδί: (d, n) 35
Μήνυμα m Κρυπτογράφηση: c = m e mod n Αποκρυπτογράφηση: m = c d mod n 36
Φάση Δημιουργίας Κλειδιών: 1. p,q 2. n = p*q 3. e σχετικά πρώτος με το φ(n) = (p-1)(q-1) 4. d = e^(-1) mod φ(n) 5. P = (e,n) PUBLIC KEY 6. S = (d,n) SECRET KEY Φάση Εφαρμογής του RSA: ENCRYPT: C = P(M) = M^e (mod n) DECRYPT: M = S(C) = C^d (mod n) 37
p=47, q=71 n=p*q=3337 φ=(p-1)*(q-1)=46*70=3220( Έστω τυχαίο e=79 (δεν έχει κοινό διαιρέτη με το 3220) Υπολογίζουμε d = 79^(-1) mod 3220 = 1019 Δημοσιοποιούμε τα e, n και φυλάμε το d. Τα p, q διαγράφονται! 38
Έστω μήνυμα 688-232-687 Θεωρούμε m1=688, m2=232, m3=687 c1=688^79 mod 3337 = 1570 Όμοια c2=2756, c2=2091 Αποκρυπτογράφηση: Η ίδια διαδικασία δ με το κλειδί d=1019 39
Αλγόριθμος ElGamal μπορεί να χρησιμοποιηθεί αντί του RSA Πιθανόν ασφαλέστερος Βασίζεται στο πρόβλημα του διακριτού λογάριθμου (discrete logarithm) 40
Κρυπτογραφία Ελλειπτικής Καμπύλης (Elliptic Curve Cryptography): Πήρε το όνομά της από το μαθηματικό μοντέλο της ελλειπτικής καμπύλης στο οποίο βασίζεται Μπορεί και επιτυγχάνει το ίδιο επίπεδο ασφάλειας με τον RSA χρησιμοποιώντας πολύ μικρότερα κλειδιά: Το αποτέλεσμα είναι ότι έχει σημαντικά μειωμένες υπολογιστικές απαιτήσεις σε σχέση με τον RSA 41
42
Η χρήση κρυπτογραφίας δημοσίου κλειδιού στοιχίζει υπολογιστικά πολύ περισσότερο από τη χρήση συμμετρικής κρυπτογραφίας Υβριδικό σχήμα: Μπορούμε να περιορίσουμε τον όγκο των δεδομένων που κρυπτογραφείται με κρυπτογραφία δημοσίου κλειδιού χρησιμοποιώντας ένα υβριδικό σχήμα: Δημιουργούμε/ανταλλάσσουμε κλειδί (session key) στην αρχή της επικοινωνίας χρησιμοποιώντας κρυπτογραφία δημοσίου κλειδιού Μετά χρησιμοποιούμε συμμετρική κρυπτογραφία με βάση το session key Τι επιτυγχάνουμε με αυτό το σχήμα; 43
44
Applied Cryptography, p y, Bruce Schneier, Second Edition, Wiley, 1996 Κεφάλαιο 2, ββ βιβλίο Μαθήματος Κεφάλαιο 31 Number-Theoretic Algorithms από το βιβλίο ββ Introduction to Algorithms, T. Cormen, C. Leiserson, R. Rivest, C. Stein, Second Edition, MIT Press, 2001 Diffie-Hellman: Ενότητα2.3.4.2 βιβλίο μαθήματος Τεχνικές Κρυπτογραφίας και Κρυπτανάλυσης, Β. Κάτος και Γ.Χ. Στεφανίδης, Εκδ. Ζυγός, 2003. Κεφάλαιο 1: Εισαγωγή 45