Παύλος Εφραιμίδης Βασικές Έννοιες Κρυπτογραφίας Ασφ Υπολ Συστ 1
θα εξετάσουμε τα ακόλουθα εργαλεία κρυπτογραφίας: ψηφιακές υπογραφές κατακερματισμός (hashing) συνόψεις μηνυμάτων μ (message digests) ψευδοτυχαίοι αριθμοί (pseudorandom numbers) 2
3
Συμβατική Υπογραφή: Γνησιότητα Εγγράφου: Ο υπογράφων δεν μπορεί να το αρνηθεί Ψηφιακή Υπογραφή: Παρέχει για το έγγραφο: Αυθεντικοποίηση Ακεραιότητα Μη-Αποποίηση 4
Η ψηφιακή υπογραφή είναι μια σειρά από bits και επομένως αναπαράγεται/αντιγράφεται εύκολα Άρα πρέπει να συνδέεται με το έγγραφο που συνοδεύει Έτσι εξασφαλίζει ταυτόχρονα και την ακεραιότητα του εγγράφου 5
Να δημιουργείται εύκολα Να αναγνωρίζεται και να επαληθεύεται εύκολα Να πλαστογραφείται πολύ δύσκολα 6
Αλγόριθμοι Δημοσίου Κλειδιού, πχ. RSA Ιδιάζοντες αλγόριθμοι υπογραφής χωρίς κρυπτογράφηση, πχ. DSA Νεότεροι αλγόριθμοι: Capstone, Clipper Chip 7
Κρυπτογράφηση με το κρυφό (ιδιωτικό) κλειδί Επιβεβαιώνεται με το δημόσιο κλειδί Αν τροποποιηθεί έστω και ένα δυαδικό ψηφίο το κρυπτογραφημένο μήνυμα θα είναι άκυρο Μόνο ο κάτοχος του κρυφού κλειδιού μπορεί να το υπογράψει 8
9
10
hash: μπέρδεμα, ανακάτεμα, κατακερματισμός Συνάρτηση Hash (Hash Function): Παίρνει ως είσοδο μια τιμή οποιουδήποτε μεγέθους και υπολογίζει ως έξοδο μια τιμή συγκεκριμένου μεγέθους, πχ. 128 bit. Δεν μπορεί να είναι 1-1 (Προκύπτει εύκολα από την αρχή του περιστερώνα). Οι συναρτήσεις hash έχουν σημαντικές εφαρμογές σε διάφορα πεδία όπως είναι οι δομές δεδομένων και οι αλγόριθμοι λό Στην κρυπτογραφία μας ενδιαφέρει μια ειδική κατηγορία συναρτήσεων hash, οι κρυπτογραφικές συναρτήσεις hash 11
Συνάρτηση hash μιας κατεύθυνσης: Συνάρτηση hash για την οποία είναι εύκολος ο υπολογισμός του hash, και δύσκολη η εύρεση έστω και μίας μόνο τιμής που να δίνει αυτό το hash. Οι συναρτήσεις hash μιας κατεύθυνσης ανήκουν στις συναρτήσεις ρή ςμιας κατεύθυνσης, για τις οποίες ισχύει: Η συνάρτηση μιας κατεύθυνσης είναι δημόσια γνωστή. Όμως παρόλα αυτά (μέχρι σήμερα) δεν είναι δυνατό να αντιστραφεί, παρά μόνο δοκιμάζοντας με brute-force πολλές πιθανές εισόδους. 12
Μια συνάρτηση λέμε ότι είναι μιας κατεύθυνσης (one-way function) όταν που είναι εύκολο να υπολογιστεί οποιαδήποτε τιμή της, αλλά πολύ δύσκολο να αντιστραφεί για οποιαδήποτε τιμή της. Δηλαδή δεδομένου x: x -> f(x) Εύκολο f(x) -> x Δύσκολο Πρακτικά Παραδείγματα: Σπάμε (κάνουμε θρύψαλα) ένα πιάτο -> Εύκολο. Το ανάποδο -> Δύσκολο Διάλυση του μηχανισμού ενός ρολογιού (με και χωρίς τα σχέδια του μηχανισμού του) 13
Συνάρτηση μιας κατεύθυνσης (one-way function): Συνάρτηση f από σύνολο X σε σύνολο Y τέτοια ώστε είναι υπολογιστικά εφικτό να υπολογιστεί το y=f(x) για x, όμως υπολογιστικά ανέφικτο δεδομένου (σχεδόν) οποιουδήποτε y να υπολογιστεί κατάλληλο x ώστε f(x)=y. 14
Παράδειγμα: Πολλαπλασιασμός μεγάλων πρώτων αριθμών p και q. Από pq p,q n=p q: Υπολογιστικά εφικτό Από n = p q p, q: Υπολογιστικά ανέφικτο μέχρι σήμερα. (Εξαίρεση: Ο αλγόριθμος του Shor για κβαντικούς υπολογιστές) 15
Θεωρητικά δεν έχει αποδειχθεί ότι είναι πράγματι μιας-κατεύθυνσης. Υπάρχουν ισχυρές θεωρητικές ενδείξεις (και πρακτικές). Πως εφαρμόζονται στην κρυπτογραφία; Για κρυπτογράφηση δεδομένων; ΟΧΙ, αφού δεν μπορούμε να πάρουμε το αρχικό μήνυμα Χρησιμοποιούνται για την επιβεβαίωση β της ακεραιότητας ενός μηνύματος 16
Συνάρτηση Μιας Κατεύθυνσης με καταπακτή (Trap-door One Way Function): x -> f(x): Εύκολο f(x) -> x: Δύσκολο Υπάρχει όμως κάποιο z ώστε f(x), z -> xνα είναι εύκολο 17
Συνάρτηση μιας κατεύθυνσης με καταπακτή (Trapdoor one-way function): Είναι μια συνάρτηση μιας κατεύθυνσης με την επιπλέον ιδιότητα ότι με τη χρήση κάποιας επιπλέον πληροφορίας z (trapdoor information) είναι υπολογιστικά εφικτό για κάθε y, να βρεθεί x τέτοιο ώστε f(x) = y Πρακτικό Παράδειγμα: Μπαίνουμε σε λαβύρινθο με και χωρίς νήμα για να μας οδηγήσει στην έξοδο. Το νήμα σε αυτή την περίπτωση είναι η επιπλέον πληροφορία trapdoor information. 18
Δημοφιλείς κρυπτογραφικές συναρτήσεις hash (cryptographic hash functions): SHA (αρκετές παραλλαγές) MD4 MD5 19
SHA Αλγόριθμοι όπως περιγράφονται στο FIPS 180-2 (FIPS PUBS: Federal Information Processing Standards Publications) 20
Βήματα: 1. Μήνυμα Μ 2. Υπολογίζεται τιμή hash h πχ. με MD5 ή SHA 3. Υπογράφεται το hash με ElGamal ή RSA 4. Στέλνουμε το μήνυμα και το υπογεγραμμένο hash Τι αποδεικνύει η ψηφιακή υπογραφή στον παραλήπτη για το έγγραφο; 21
22
MAC (Message Authentication Code): Επιτρέπει την ψηφιακή υπογραφή ενός μηνύματος Βασίζεται σε συμμετρική κρυπτογραφία και επομένως ο αποστολέας και ο παραλήπτης της επικοινωνίας θα πρέπει να έχουν ένα μυστικό κλειδί 23
24
Στην κρυπτογραφία είναι απαραίτητο συχνά να χρησιμοποιούμε τυχαίους αριθμούς, όπως για παράδειγμα κατά τη δημιουργία νέων κλειδιών. Ερώτημα: Μπορούμε να δημιουργήσουμε πραγματικά τυχαίους αριθμούς χρησιμοποιώντας μόνο ντετερμινιστικές (υπολογιστικές) μεθόδους; Θα μπορούσαμε βέβαια νωρίτερα να θέσουμε γενικότερα ερωτήματα, όπως: Τι είναι ένα τυχαίος αριθμός; 25
Ακολουθία Τυχαίων Δυαδικών Ψηφίων: Μια ακολουθία τυχαίων δυαδικών ψηφίων τέτοια ώστε τα δυαδικά ψηφία της είναι στατιστικά ανεξάρτητα μεταξύ τους, και κάθε δυαδικό ψηφίο της παίρνει με την ίδια πιθανότητα p=1/2 την τιμή 0 και την τιμή 1 Τυχαίος αριθμός: Μπορεί να σχηματιστεί από το κατάλληλο πλήθος τυχαίων δυαδικών ψηφίων κατάλληλο πλήθος τυχαίων δυαδικών ψηφίων 26
Μπορούμε όταν απαιτούνται τυχαίοι αριθμοί να χρησιμοποιήσουμε ψευδο-τυχαίους αριθμούς τυχαίους αριθμούς που παράγονται με υποστήριξη hardware Ειδικά σε εφαρμογές κρυπτογραφίας είναι σημαντικό να χρησιμοποιούνται τυχαίοι αριθμοί υψηλής ποιότητας ώστε να μην μπορούν εύκολα να βρεθούν οι αριθμοί αυτοί από κάποιον κρυπταναλυτή/εισβολέα. 27
Hardware-based: Χρησιμοποιούν την τυχαιότητα που εμφανίζεται σε επιλεγμένα φυσικά φαινόμενα χρόνος μεταξύ εκπομπών σωματιδίων ραδιενεργού υλικού θερμικός θόρυβος μιας διόδου ή μιας αντίστασης ήχος από ένα μικρόφωνο ή video από μία κάμερα Software-based: το ρολόι του υπολογιστικού συστήματος χρόνος μεταξύ κινήσεων του ποντικιού ή πατήματος πλήκτρων δείκτες του λειτουργικού συστήματος όπως ο φόρτος του συστήματος (system load) ή στατιστικά του δικτύου (network statistics) είσοδος από το χρήστη De-skewing: Έστω ότι έχουμε μια ακολουθία στατιστικά ανεξάρτητων δυαδικών ψηφίων τέτοια ώστε κάθε ψηφίο να έχει την τιμή 1, με πιθανότητα p την τιμή 0, με πιθανότητα 1-p 28
De-skewing: Έστω ότι έχουμε μια ακολουθία στατιστικά ανεξάρτητων δυαδικών δ ψηφίων τέτοια ώστε κάθε ψηφίο να έχει την τιμή 1, με πιθανότητα p την τιμή 0, με πιθανότητα 1-p Μπορούμε να εξαλείψουμε το γεγονός ότι p 1/2 ; Χωρίζουμε την ακολουθία σε ζεύγη δυαδικών ψηφίων και θεωρούμε ότι το 10 αντιστοιχεί στο 1, το 01 αντιστοιχεί στο 0, και απορρίπτουμε τα ζεύγη 00 και 11. Η ακολουθία που προκύπτει είναι μια ακολουθία τυχαίων δυαδικών ψηφίων; 29
Έστω η παρακάτω συνάρτηση x n =a x n-1 +b mod m, n 1; όπου a,b και m είναι ακέραιοι παράμετροι της συνάρτησης και x0 είναι το (μυστικό) seed Η παραπάνω συνάρτηση είναι ένας linear congruential generator και παράγει μια ακολουθία ψευδο-τυχαίων αριθμών x 1,x 2,x 3,... Η ακολουθία των ψευδο-τυχαίων αριθμών έχει ικανοποιητικές ιδιότητες σε ότι αφορά την τυχαιότητα (επιτυγχάνει σε σχετικές στατιστικές δοκιμές) όμως δεν είναι κρυπτογραφικά ασφαλής: Εάν δοθεί ένα μέρος της ακολουθίας μπορούμε να προβλέψουμε τους υπόλοιπους αριθούς 30
linear congruential generator: Δεν είναι ασφαλής κρυπτογραφικές εφαρμογές Συνάρτηση η μιας κατεύθυνσης f(): Δίνει την ακολουθία f(s), f(s+1), f(s+2),...όπου s είναι το μυστικό seed Για παράδειγμα μια κρυπτογραφική συνάρτηση hash όπως είναι η SHA-1 Ο αλγόριθμος DES με κάποιο κρυφό κλειδί 31
υπάρχουν έλεγχοι (tests) για την ποιότητα μιας γεννήτριας τυχαίων bit εάν και δεν είναι εφικτό να αποδείξουμε μαθηματικά ότι μια γεννήτρια είναι πράγματι μια γεννήτρια τυχαίων bit, μπορούμε όμως να κάνουμε ελέγχους για να εντοπίσουμε ορισμένες πιθανές αδυναμίες Ενδεικτικά: Frequency test: Πλήθος 0 και 1 Serial test: Πλήθος 00, 01, 10 και 11 Poker test, Runs test, Autocorrelation test 32
Applied Cryptography, Bruce Schneier, Second Edition, Wiley, 1996 Κεφάλαιο 2, βιβλίο Μαθήματος Κεφάλαιο 31 Number-Theoretic Algorithms από το βιβλίο IntroductiontoAlgorithms to Algorithms, T. Cormen, C. Leiserson, R. Rivest, C. Stein, Second Edition, MIT Press, 2001 Diffie-Hellman: Ενότητα 2.3.4.2 βιβλίο μαθήματος RlfO Rolf Oppliger, Contemporary Cryptography, At Artech House, 2005 33
Ακολουθίες Ψευδο-Τυχαίων Bit: Κεφάλαιο 5, Handbook of Applied Cryptography, Menezes, van Oorschot, Vanstone, CRC Press, 1997 34