Βασικές Έννοιες Κρυπτογραφίας Παύλος Εφραιμίδης Κρυπτογραφία Βασικές Έννοιες 1
Τι θα μάθουμε Obscurity vs. Security Βασικές υπηρεσίες κρυπτογραφίας: Confidentiality, Authentication, Integrity, Non- Repudiation Βασικές έννοιες κρυπτογραφίας Κρυπτοσυστήματα Συμμετρικά Δημοσίου κλειδιού Παραδείγματα Κρυπτογραφία Βασικές Έννοιες 2
Obscurity vs. Security Κρυπτογραφία Βασικές Έννοιες 3
Obscurity vs. Security Έστω ένα μήνυμα Μ το οποίο είναι απόρρητο. Θέλουμε να φυλάξουμε το γράμμα έτσι ώστε κάποιος επίδοξος εισβολέας που γνωρίζει για την ύπαρξη του γράμματος να μην μπορεί να δει το περιεχόμενό του. Θα διακρίνουμε 2 διαφορετικά σενάρια. Κρυπτογραφία Βασικές Έννοιες 4
Πρώτο Σενάριο Πρώτο Σενάριο: Κλειδώνουμε το Μ σε ένα χρηματοκιβώτιο. Τοποθετούμε το χρηματοκιβώτιο σε κάποιο μυστικό μέρος στην Ξάνθη. Στη συνέχεια λέμε στον επίδοξο εισβολέα να βρει το γράμμα. Κρυπτογραφία Βασικές Έννοιες 5
Δεύτερο Σενάριο Δεύτερο Σενάριο: Κλειδώνουμε το Μ σε ένα χρηματοκιβώτιο. Παραδίδουμε το χρηματοκιβώτιο στον επίδοξο εισβολέα μαζί με πλήρη περιγραφή του χρηματοκιβωτίου, πλήθος από όμοια χρηματοκιβώτια για να πειραματιστεί, και κάθε είδους σχετική πληροφορία, εκτός από ένα πράγμα: Το κλειδί του συγκεκριμένου χρηματοκιβωτίου που περιέχει το γράμμα. Στη συνέχεια λέμε στον επίδοξο εισβολέα να βρει το γράμμα. Κρυπτογραφία Βασικές Έννοιες 6
Obscurity ή Security Το πρώτο σενάριο είναι Obscurity Το δεύτερο σενάριο είναι Security Στο μάθημα θα ασχοληθούμε με security! Κρυπτογραφία Βασικές Έννοιες 7
Παραδείγματα Κρυπτογραφία Βασικές Έννοιες 8
Παραδείγματα Παραδείγματα (Cryptool) Caesar s cipher AES RSA Hash Digital Signature Κρυπτογραφία Βασικές Έννοιες 9
Παράδειγμα από το Β παγκόσμιο πόλεμο Μάιος 1942: Οι κρυπταναλυτές του ναυτικού των ΗΠΑ ανακαλύπτουν ότι η Ιαπωνία ετοιμάζεται να επιτεθεί σε νησί του Ειρηνικού ωκεανού. Τι σήμαινε το AF ; Μέσα στο κρυπτοκείμενο βρέθηκε η λέξη AF που πίστευαν ότι εννοούσε το νησί Midway. Οι αρχηγοί στην Washington δεν το πίστευαν Τι έκαναν: Κανονίστηκε να σταλεί από το νησί Midway το μήνυμα Τελειώνει το πόσιμο νερό στο νησί Midway Στη συνέχεια όταν υπέκλεψαν κρυπτογραφημένα μηνύματα του Ιαπωνικού στρατού βρήκαν: «Στο νησί AF τελειώνει το πόσιμο νερό» ( AF Is Short of Water ) Επιβεβαιώθηκε έτσι ότι το κρυπτοκείμενο AF αντιστοιχούσε στο Midway Συμπέρασμα: Η παραπάνω επιτυχής επίθεση ήταν ουσιαστικά ένα είδος Chosen-Plaintext Attack. 10
Δημοφιλείς Αλγόριθμοι στην Κρυπτογραφία Κρυπτογραφία Βασικές Έννοιες 11
Δημοφιλείς Αλγόριθμοι Συμμετρική Κρυπτογράφηση AES DES Κρυπτογράφηση Δημοσίου Κλειδιού RSA ElGamal Pallier Hash SHA MD5 Κρυπτογραφία Βασικές Έννοιες 12
Ορολογία Κρυπτογραφία Βασικές Έννοιες 13
Ορολογία Αποστολέας, Παραλήπτης Πρωταγωνιστές: Αλίκη (Alice), Μπάμπης ή Βύρωνας (Bob), Εύη (Eve) Μήνυμα (message, plaintext), Κρυπτογράφηση, Κρυπτοκείμενο (ciphertext), Αποκρυπτογράφηση Αλγόριθμος Κρυπτογράφησης, Κλειδί Κρυπτογραφία Βασικές Έννοιες 14
Βασικές Υπηρεσίες Κρυπτογραφία Βασικές Έννοιες 15
Βασικές Υπηρεσίες Προστασία Απορρήτου Εμπιστευτικότητα (Confidentiality) Ταυτοποίηση Αυθεντικοποίηση (Authentication) Ακεραιότητα (Integrity) Μη-Αποποίηση (Non-repudiation) Κρυπτογραφία Βασικές Έννοιες 16
εμπιστευτικότητα βασικές έννοιες κρυπτογραφίας: Προστασία από τη μη εξουσιοδοτημένη αποκάλυψη της πληροφορίας θα πρέπει να είναι αδύνατη η αποκάλυψη της πληροφορίας, ορισμένες φορές, η αποκάλυψη της ύπαρξης της πληροφορίας Παραδείγματα: Enigma: Συσκευή κρυπτογράφησης στο Β παγκόσμιο πόλεμο Παραγγελίες πίτσας: Στην κρίση του Περσικού κόλπου οι αυξημένες παραγγελίες πίτσας από πιτσαρία γειτονική του Πενταγώνου υποδήλωνε ότι κάτι προετοιμάζει το Πεντάγωνο. Κρυπτογραφία Βασικές Έννοιες 17
αυθεντικοποίηση αυθεντικοποίηση (authentication): Η εξασφάλιση ότι γνωρίζουμε το χρήστη ή γενικότερα την οντότητα με την οποία επικοινωνούμε Κρυπτογραφία Βασικές Έννοιες 18
ακεραιότητα ακεραιότητα (integrity): Η προστασία από μη-εξουσιοδοτημένη τροποποίηση των δεδομένων Κρυπτογραφία Βασικές Έννοιες 19
μη αποποίηση μη-αποποίηση (non-repudiation): Η υπηρεσία κατά την οποία ο παραλήπτης δεν μπορεί να απαρνηθεί ότι έλαβε το μήνυμα ή ο αποστολέας δεν μπορεί να απαρνηθεί ότι έστειλε το μήνυμα Κρυπτογραφία Βασικές Έννοιες 20
αλγόριθμοι και κλειδιά Αλγόριθμος Κρυπτογράφησης (cipher): Αλγόριθμος που υλοποιεί μια Μαθηματική Συνάρτηση Που θα πρέπει να βασίζεται η ασφάλεια ενός αλγορίθμου κρυπτογράφησης; Στον ίδιο τον αλγόριθμο που τον κρατάμε μυστικό: ΠΟΛΥ ΑΔΥΝΑΜΗ ΛΥΣΗ!! (security by obscurity) Σε κλειδί ενός ο ίδιος ο αλγόριθμος είναι δημόσια γνωστός: ΑΠΟΔΕΙΚΝΥΕΤΑΙ ΩΣ Η ΠΙΟ ΑΞΙΟΠΙΣΤΗ ΛΥΣΗ!! Κρυπτογραφία Βασικές Έννοιες 21
Κρυπτανάλυση Κρυπτογραφία: Αδύνατη (ή τουλάχιστον πολύ δύσκολη) η εύρεση του αρχικού μηνύματος χωρίς τη χρήση του κλειδιού. Η κρυπτανάλυση ασχολείται ακριβώς με την εξαγωγή του αρχικού μηνύματος χωρίς τη χρήση του κλειδιού. Βασική υπόθεση: Η ασφάλεια βασίζεται εξ ολοκλήρου στο κλειδί (Πχ. στο στρατό η διαδικασία αναγνώρισης με το καθημερινό σύνθημα). Ασφ Υπολ Συστ Βασικές Έννοιες Κρυπτογραφίας 22
Είδη Κρυπτοσυστημάτων Κρυπτογραφία Βασικές Έννοιες 23
Τα Βασικά Είδη Κρυπτοσυστημάτων Συμμετρικοί Κρυπτοσυστήματα (κρυφού κλειδιού) DES, IDEA, AES, Κρυπτοσυστήματα Δημοσίου Κλειδιού RSA, ElGamal, Elliptic Curve Cryptography,.. Κρυπτογραφία Βασικές Έννοιες 24
Συμμετρικά Κρυπτοσυστήματα Κρυπτογραφία Βασικές Έννοιες 25
Συμμετρικά Κρυπτοσυστήματα Δημοφιλείς συμμετρικοί αλγόριθμοι κρυπτογράφησης: DES (θεωρείται ξεπερασμένος) 3DES AES IDEA... Κρυπτογραφία Βασικές Έννοιες 26
Κρυπτοσυστήματα Δημοσίου Κλειδιού Κρυπτογραφία Βασικές Έννοιες 27
Αλγόριθμος Diffie-Hellman Συμφωνούμε όλοι στους αριθμούς: p και g Ο n είναι ένας μεγάλος πρώτος αριθμός και ο g είναι ένας κατάλληλος αριθμός 2 g p-2. Η Αλίκη επιλέγει x και υπολογίζει Χ = g^x mod p Ο Μπάμπης επιλέγει 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 ή περισσότερα άτομα Κρυπτογραφία Βασικές Έννοιες 28
Το πρόβλημα του διακριτού λογαρίθμου Η ασφάλεια του αλγορίθμου των Diffie-Hellman προσδιορίζεται από τη δυσκολία επίλυσης του προβλήματος του διακριτού λογαρίθμου: Δίνονται Χ, g και p σύμφωνα με τις προδιαγραφές των Diffie-Hellman και ζητείται να βρεθεί x τέτοιο ώστε: Χ = g^x mod p Δεν έχει βρεθεί μέχρι στιγμής αλγόριθμος πολυωνυμικού χρόνου για το πρόβλημα αυτό. Κρυπτογραφία Βασικές Έννοιες 29
Παράδειγμα Diffie-Hellman Έστω p = 71 και g = 7 Η Αλίκη επιλέγει X A =5 και ο Μπάμπης X Β =12 Η Αλίκη υπολογίζει: Y A =7 5 mod 71 = 51 mod 71 Ο Μπάμπης υπολογίζει: Y B =7 12 mod 71 = 4 mod 71 Ανταλλάσσουν (δημοσίως) τα Y A και Y B H Αλίκη υπολογίζει: K A =(Y B )^(Χ Α ) mod 71 = 30 mod 71 Ο Μπάμπης υπολογίζει: K B =(Y A )^(Χ Β ) mod 71 = 30 mod 71 Το K = K A = K B είναι το κοινό κλειδί Κρυπτογραφία Βασικές Έννοιες 30
ElGamal Αλγόριθμος ElGamal μπορεί να χρησιμοποιηθεί αντί του RSA Βασίζεται στο πρόβλημα του διακριτού λογάριθμου (discrete logarithm) Έχει ορισμένα πλεονεκτήματα έναντι του RSA Κρυπτογραφία Βασικές Έννοιες 31
Κρυπτογραφία Ελλειπτικής Καμπύλης Κρυπτογραφία Ελλειπτικής Καμπύλης (Elliptic Curve Cryptography): Πήρε το όνομά της από το μαθηματικό μοντέλο της ελλειπτικής καμπύλης στο οποίο βασίζεται Μπορεί και επιτυγχάνει το ίδιο επίπεδο ασφάλειας με τον RSA χρησιμοποιώντας πολύ μικρότερα κλειδιά: Το αποτέλεσμα είναι ότι έχει σημαντικά μειωμένες υπολογιστικές απαιτήσεις σε σχέση με τον RSA Κρυπτογραφία Βασικές Έννοιες 32
Συνδυασμός Συμμετρικής Κρυπτογραφίας και Κρυπτογραφίας Δημοσίου Κλειδιού Κρυπτογραφία Βασικές Έννοιες 33
Συνδυασμός Δημόσιας και Συμμετρικής Κρυπτογραφίας Η χρήση κρυπτογραφίας δημοσίου κλειδιού στοιχίζει υπολογιστικά πολύ περισσότερο από τη χρήση συμμετρικής κρυπτογραφίας Υβριδικό σχήμα: Μπορούμε να περιορίσουμε τον όγκο των δεδομένων που κρυπτογραφείται με κρυπτογραφία δημοσίου κλειδιού χρησιμοποιώντας ένα υβριδικό σχήμα: Δημιουργούμε/ανταλλάσσουμε κλειδί (session key) στην αρχή της επικοινωνίας χρησιμοποιώντας κρυπτογραφία δημοσίου κλειδιού Μετά χρησιμοποιούμε συμμετρική κρυπτογραφία με βάση το session key Τι επιτυγχάνουμε με αυτό το σχήμα; Κρυπτογραφία Βασικές Έννοιες 34
παράδειγμα (από το CrypTool) Κρυπτογραφία Βασικές Έννοιες 35
Ψηφιακές Υπογραφές Κρυπτογραφία Βασικές Έννοιες 36
(Ψηφιακές) Υπογραφές Συμβατική Υπογραφή Γνησιότητα Εγγράφου: Ο υπογράφων δεν μπορεί να το αρνηθεί Ψηφιακή Υπογραφή Εξασφαλίζει για το έγγραφο: Αυθεντικοποίηση Ακεραιότητα Μη-Αποποίηση Κρυπτογραφία Βασικές Έννοιες 37
Ψηφιακή υπογραφή Η ψηφιακή υπογραφή είναι μια σειρά από bits και επομένως αναπαράγεται/αντιγράφεται εύκολα Άρα πρέπει να συνδέεται με το έγγραφο που συνοδεύει Έτσι εξασφαλίζει ταυτόχρονα και την ακεραιότητα του εγγράφου Κρυπτογραφία Βασικές Έννοιες 38
Επιθυμητές Ιδιότητες της Υπογραφής Να δημιουργείται εύκολα Να αναγνωρίζεται και να επαληθεύεται εύκολα Να πλαστογραφείται πολύ δύσκολα Κρυπτογραφία Βασικές Έννοιες 39
Αλγόριθμοι Ψηφιακών Υπογραφών Αλγόριθμοι Δημοσίου Κλειδιού, πχ. RSA Αλγόριθμοι ειδικοί για ψηφιακές υπογραφές (χωρίς κρυπτογράφηση), πχ. DSA Νεότεροι αλγόριθμοι: Capstone, Clipper Chip Κρυπτογραφία Βασικές Έννοιες 40
Υπογραφές με χρήση του RSA Κρυπτογράφηση με το κρυφό (ιδιωτικό) κλειδί Επιβεβαιώνεται με το δημόσιο κλειδί Αν τροποποιηθεί έστω και ένα δυαδικό ψηφίο το κρυπτογραφημένο μήνυμα θα είναι άκυρο Μόνο ο κάτοχος του κρυφού κλειδιού μπορεί να το υπογράψει Κρυπτογραφία Βασικές Έννοιες 41
παράδειγμα (από το CrypTool) Κρυπτογραφία Βασικές Έννοιες 42
Συναρτήσεις Hash Κρυπτογραφία Βασικές Έννοιες 43
Συναρτήσεις Hash hash: μπέρδεμα, ανακάτεμα, κατακερματισμός Συνάρτηση Hash (Hash Function): Παίρνει ως είσοδο μια τιμή οποιουδήποτε μεγέθους και υπολογίζει ως έξοδο μια τιμή συγκεκριμένου μεγέθους, πχ. 128 bit. Δεν μπορεί να είναι 1-1 (Προκύπτει εύκολα από την αρχή του περιστερώνα). Οι συναρτήσεις hash έχουν σημαντικές εφαρμογές σε διάφορα πεδία όπως είναι οι δομές δεδομένων και οι αλγόριθμοι Στην κρυπτογραφία μας ενδιαφέρει μια ειδική κατηγορία συναρτήσεων hash, οι κρυπτογραφικές συναρτήσεις hash Κρυπτογραφία Βασικές Έννοιες 44
Κρυπτογραφικές Συναρτήσεις Hash Συνάρτηση hash μιας κατεύθυνσης: Συνάρτηση hash για την οποία είναι εύκολος ο υπολογισμός του hash, και δύσκολη η εύρεση έστω και μίας μόνο τιμής που να δίνει αυτό το hash. Οι συναρτήσεις hash μιας κατεύθυνσης ανήκουν στις συναρτήσεις μιας κατεύθυνσης, για τις οποίες ισχύει: Η συνάρτηση μιας κατεύθυνσης είναι δημόσια γνωστή. Όμως παρόλα αυτά (μέχρι σήμερα) δεν είναι δυνατό να αντιστραφεί, παρά μόνο δοκιμάζοντας με brute-force πολλές πιθανές εισόδους. Κρυπτογραφία Βασικές Έννοιες 45
Κρυπτογραφικές Συναρτήσεις Hash Δημοφιλείς κρυπτογραφικές συναρτήσεις hash (cryptographic hash functions): SHA (αρκετές παραλλαγές) MD4 MD5 Κρυπτογραφία Βασικές Έννοιες 46
SHA Αλγόριθμοι SHA Αλγόριθμοι όπως περιγράφονται στο FIPS 180-2 (FIPS PUBS: Federal Information Processing Standards Publications) Κρυπτογραφία Βασικές Έννοιες 47
παράδειγμα χρήσης hash συνάρτησης σε ψηφιακή υπογραφή Βήματα: 1. Μήνυμα Μ 2. Υπολογίζεται τιμή hash πχ. με MD5 ή SHA 3. Υπογράφεται το hash με ElGamal ή RSA 4. Στέλνουμε το μήνυμα και το υπογεγραμμένο hash Τι αποδεικνύει η ψηφιακή υπογραφή στον παραλήπτη για το έγγραφο; Κρυπτογραφία Βασικές Έννοιες 48
The Dining Cryptographers Κρυπτογραφία Βασικές Έννοιες 49
The Dining Cryptographers Τρεις κρυπτογράφοι δειπνούνε Στο τέλος του γεύματος ο σερβιτόρος τους ενημερώνει ότι το γεύμα είναι πληρωμένο από κάποιον που δεν θέλει να αποκαλυφθεί Πληρώθηκε 1) είτε από έναν από τους κρυπτογράφους 2) είτε από την ΕΥΠ Θέλουν να μάθουν εάν ισχύει η περίπτωση 1) χωρίς όμως να αποκαλυφθεί το όνομα του κρυπτογράφου, είτε η περίπτωση 2). Σημείωση: Υπάρχει και το πρόβλημα των dining philosophers στο συγχρονισμό. Δεν σχετίζονται. Κρυπτογραφία Βασικές Έννοιες 50
The Dining Cryptographers Λύση: Κάθε ζευγάρι κρυπτογράφων ρίχνει κρυφά από ένα κέρμα Κάθε κρυπτογράφος ανακοινώνει το XOR των δύο ρίψεων, εάν ο ίδιος δεν πλήρωσε το αντίστροφο του XOR των δύο ρίψεων, εάν ο ίδιος πλήρωσε Υπολογίζεται το XOR των τριών αριθμών που θα ανακοινωθούν εάν είναι 0, έχει πληρώσει η ΕΥΠ εάν είναι 1, έχει πληρώσει κάποιος κρυπτογράφος Κρυπτογραφία https://en.wikipedia.org/wiki/file:dining_cryptographers.svg Βασικές Έννοιες 51
The Dining Cryptographers Εάν έχει πληρώσει κρυπτογράφος, δεν μπορεί να βρεθεί ποιος από τους τρεις είναι. Λύνει αποτελεσματικά το πρόβλημα. Στην πράξη όμως μπορεί να υπάρχουν και επιπλέον απαιτήσεις: Τι γίνεται εάν δύο κρυπτογράφοι έχουν πληρώσει; Τι γίνεται εάν συνεννοηθούν δύο κρυπτογράφοι; Υπάρχουν επεκτάσεις που προσπαθούν να χειριστούν και τις επιπλέον απαιτήσεις. Κρυπτογραφία https://en.wikipedia.org/wiki/file:dining_cryptographers.svg Βασικές Έννοιες 52
Πρακτικές ΕΦαρμογές Κρυπτογραφία Βασικές Έννοιες 53
Πρακτικές Εφαρμογές Ενδεικτικές πρακτικές Εφαρμογές Ψηφιακά Πιστοποιητικά https, ssh hash ψηφιακή υπογραφή anonymous communication (Tor, ) digital cash (Bitcoin, ) elections Κρυπτογραφία Βασικές Έννοιες 54
Πηγές/Αναφορές Applied Cryptography, Bruce Schneier, Second Edition, Wiley, 1996 https://en.wikipedia.org/wiki/dining_cryptographers_problem Introduction to Algorithms, T. Cormen, C. Leiserson, R. Rivest, C. Stein, Second Edition, MIT Press, 2001 Τεχνικές Κρυπτογραφίας και Κρυπτανάλυσης, Β. Κάτος και Γ.Χ. Στεφανίδης, Εκδ. Ζυγός, 2003. CrypTool: Open source program for cryptography https://www.cryptool.org/ Κρυπτογραφία Βασικές Έννοιες 55