Εισαγωγή στην Κρυπτογραφία και τις Ψηφιακές Υπογραφές Βαγγέλης Φλώρος, BSc, MSc Τµήµα Πληροφορικής και Τηλεπικοινωνιών Εθνικό και Καποδιστριακό Πανεπιστήµιο Αθηνών
Εν αρχή είναι... Η Πληροφορία - Αρχείο δεδοµένων, κείµενο, εικόνα, σελίδα web, ροή bit που µεταδίδεται από ένα επικοινωνιακό µέσο, ήχος, video, κωδικοί πρόσβασης, αριθµός τραπεζικού λογαριασµού, επιχειρησιακά σχέδια, ταυτότητες... 2
Ασφάλεια Πληροφορίας Μέχρι τη δεκαετία του 60 απασχολούσε κυβερνητικές και στρατιωτικές υπηρεσίες Σήµερα µε την επέκταση του ιαδικτύου και την αύξηση των κρίσιµων δυκτιακών εφαρµογών αποτελεί καθηµερινή απαίτηση από τους χρήστες και τους παρόχους των εφαρµογών Απαραίτητη προϋπόθεση για : Ηλεκτρονική ιακυβέρνηση, Ηλεκτρονικό Εµπόριο, Τραπεζικές συναλλαγές µέσω ιαδικτύου κ.ο.κ. 3
Απαιτήσεις Ασφάλειας Πιστοποίηση (Authentication) Εµπιστευτικότητα (Confidentiality) Ακεραιότητα εδοµένων (Data Integrity) Μη-άρνηση (Non-repudiation) 4
Τι είναι κρυπτογραφία; Γενικά: Η επιστήµη που µελετά µεθόδους και τεχνικές για την παροχή καναλιών επικοινωνίας µε ιδιότητες µυστικότητας (secrecy) και πιστοποίησης (authentication) Κανάλι επικοινωνίας: ίκτυα Υπολογιστών, Τηλεφώνου και Τηλεόρασης, Βάσεις εδοµένων, ισκέτες κλπ. 5
Κρυπτανάλυση Αποτελεί συµπληρωµατική της κρυπτογραφίας Μελετά την ορθότητα και ασφάλεια των αλγορίθµων Εντοπίζει αδυναµίες Απαραίτητο εργαλείο για την ανάπτυξη ενός πλήρους και ασφαλούς κρυπτοσυστήµατος 6
Κρυπτογράφηση Ηδιαδικασίαµετατροπής της πληροφορίας σε µια µορφή που είναι αδύνατον να αναγνωριστεί χωρίς την χρήση ενός κλειδιού Κλειδί: Μια παράµετρος της συνάρτησης (αλγόριθµου) κρυπτογράφησης (cipher) Ek(M)=C E: Dk(C)=M E: Αλγόριθµος κρυπτογράφησης D: Αλγόριθµος αποκρυπτογράφησης k: Κλειδί M: Αρχικό µήνυµα (plaintext) C: Κρυπτογραφηµένο µήνυµα (ciphertext) 7
Απλά Παραδείγµατα Αλγόριθµος του Καίσαρα. Απλός αλγόριθµος αντικατάστασης των γραµµάτων. Κλειδί : Απόσταση αντικατάστασης A D, B E,, X A XOR: Εφαρµογή πράξης XOR µεταξύ του µηνύµατος και ενός κλειδιού. Επαναφορά του αρχικού µηνύµατος χρησιµοποιώντας πάλι XOR µε το κλειδί. One time pad. Τυχαίο κλειδί (pad) ίδιου µεγέθους µε τοµήνυµα. C i = M i + K i mod 26 όπου το i διατρέχει το µήκος του µηνύµατος. 8
Το Κλειδί Γενικά το µέγεθός του καθορίζει (σε bit) και το επίπεδο ασφάλειας που προσφέρεται Αρχή του Kerchoff (1835-1903): Να θεωρείς ότι τα πάντα είναι γνωστά εκτός από το κλειδί. Ασφάλεια επαφίεται στην ισχύ του αλγορίθµου, στο µέγεθος και την τυχαιότητα των κλειδιών Ανοιχτά συστήµατα έναντι Κλειστών Συστηµάτων 9
Κατηγορίες Κρυπτογραφικών Αλγορίθµων Συµµετρικοί Αλγόριθµοι Ένα κλειδί χρησιµοποιείται για την κρυπτογράφηση και την αποκρυπτογράφηση των δεδοµένων Το κλειδί παραµένει µυστικό ανάµεσα στα µέρη που επικοινωνούν Ασύµµετροι Αλγόριθµοι ύο διαφορετικά κλειδιά χρησιµοποιούνται. Το ένα (ιδιωτικό) παραµένει κρυφό ενώ το δεύτερο (δηµόσιο) διανέµεται ελεύθερα Τα δύο κλειδιά έχουν ισχυρό µαθηµατικό δεσµό Η γνώση ενός κλειδιού δεν αρκεί για να υπολογιστεί το άλλο κλειδί Diffie Helman(New Directions in Cryptography 1976) 10
Συµµετρική Κρυπτογραφία Η κρυπτογράφηση και αποκρυπτογράφηση της πληροφορίας γίνεται βάσει ενός µοναδικού κλειδιού Αλγόριθµοι: DES, 3DES, IDEA, RC2, RC4 plaintext Encryption ciphertext Decryption Original Plaintext 11
Digital Encryption Standard (DES) Το Αµερικάνικο πρότυπο για ασύµµετρη κρυπτογράφηση δεδοµένων (1981) Μέγεθος κλειδιού : 56 bits Κρυπτογραφεί το µήνυµα σεκοµµάτια των 64bit (block cipher) εν έχει ανακαλυφθεί κάποια εύκολη επίθεση στον αλγόριθµο, αλλά... Το µικρό µέγεθος κλειδιού τον καθιστά ευπρόσβλητο σε brute force επιθέσεις Αντικαθίσταται από τον AES 12
3DES Βελτίωση του DES Χρησιµοποιεί τριπλάσιο µέγεθος κλειδιού (168 bit) Ασφαλής για κρίσιµες εφαρµογές 13
RC2 Σχεδιασµένος από τον Ron Rivest (RC=Ron s Code) για την RSA Data Security. Χρησιµοποιεί µεταβλητού µεγέθους κλειδιά (40bits, 64bits, 128bits) Προσφέρει υψηλή ασφάλεια µόνο µε χρήσηµεγάλου µεγέθους κλειδιών Παραλλαγές RC4, RC6 14
IDEA Θεωρείται από τους ασφαλέστερες αλγόριθµους Block-cipher που εφαρµόζεται σε τµήµατα µεγέθους 64-bit Μέγεθος κλειδιού 128 bit Χρησιµοποιείται εκτενώς από το σύστηµα PGP 15
Ασύµµετρη Κρυπτογραφία Χρησιµοποιούνται διαφορετικά κλειδιά για την κρυπτογράφηση και αποκρυπτογράφηση των δεδοµένων Είναι πρακτικά αδύνατος ο υπολογισµός ενός κλειδιού από το άλλο Αλγόριθµοι: RSA, DSA, Diffie-Helman, ECDSA plaintext Encryption ciphertext Decryption Original Plaintext 16
Ασύµµετρη Κρυπτογραφία ΙΙ 17
RSA Είναι ένα κρυπτοσύστηµα δηµοσίου κλειδιού που χρησιµοποιείται τόσο για κρυπτογράφηση όσο και για ψηφιακές υπογραφές Αναπτύχθηκε από τους Rivest Shamir Adlman για την RSA (1977) Βασίζεται στο µαθηµατικά δύσκολο πρόβληµα της παραγοντοποίησης πολύ µεγάλων ακεραίων Η ανακάλυψη µιας υπολογιστικά αποτελεσµατικής µεθόδου παραγοντοποίησης θα καθιστούσε αδύναµο τον αλγόριθµο Υποστηρίζει πολλαπλά µεγέθη κλειδιών (τυπικά 1024 ή 2048 bits) 18
Digital Signature Algorithm (DSA) Πρότυπο από το NIST Ανεπτυγµένο από την NSA (υποψίες για «πίσω» πόρτες!) Χρησιµοποιείται µόνο για εφαρµογές ψηφιακών υπογραφών Βασίζεται στο µαθηµατικό πρόβληµα τον διακριτών λογαρίθµων Ποιο αργός από τον RSA για αυτό ο τελευταίος έχει γίνει de-facto πρότυπο 19
ECDSA Elliptic Curve Digital Signature Algorithm (ECDSA) Βασίζεται στη µαθηµατική θεωρία των ελλειπτικών καµπυλών. Πρότυπο ANSI 1999 Υποστηρίζει µεταβλητά µεγέθη κλειδιών (τυπικά 160 bit) 20
Συναρτήσεις Κατακερµατισµού (Hash Functions) Απεικονίζουν ένα µήνυµα αυθαίρετουµήκους σε ένα σταθερό αριθµό bits To αποτέλεσµα της διαδικασίας ονοµάζεται hash value, message digest ή fingerprint Αλγόριθµοι: MD5, SHA-1, RIPEMD 1010101100101 1010010011001. 1100100100001 pre-image Hash Function Function 0110011010111101 hash value 21
Ιδιότητες Συναρτήσεων Κατακερµατισµού Μονόδροµες (One Way) - Γνωρίζοντας την hash value δεν µπορούµε να υπολογίσουµε το αρχικό pre-image Ελεύθερες Συγκρούσεων (Collision-free) - εν υπάρχουν δύο διαφορετικά pre-images που να δηµιουργούν το ίδιο hash value 22
Αλγόριθµοι Κατακερµατισµού Secure Hash Algorithm 1 (SHA-1) - Ανεπτυγµένος από τον NIST (1994) - έχεται ως είσοδο ένα µήνυµα µεγέθους έως 2 64 bit και παράγει ένα message digest 160-bit MD5 - Ανεπτυγµένος από τον Rivest (1991) - Ανήκει στη γενικότερη οικογένεια των αλγορίθµων MD* - έχεται ως είσοδο ένα µήνυµα αυθαιρέτου µήκους και παράγει ένα message digest 128-bit - Πιο αργός από τον SHA-1 και µε ασφάλεια που αµφισβητείται έντονα RIPEMD-160 - Αναπτύχθηκε στα πλαίσια του RIPE - Message digest 160-bit - Ασφαλέστερος από τον MD5 23
Ψηφιακές Υπογραφές Η κρυπτογράφηση ενός µηνύµατος µε το ιδιωτικό κλειδί «υπογράφει» ψηφιακά το µήνυµα Οι ασύµµετροι αλγόριθµοι όµως είναι αρκετά χρονοβόροι Καλύτερη λύση: Κρυπτογράφηση του message digest 24
Ψηφιακές Υπογραφές - Υπογραφή Αρχικό Μήνυµα Ιδιωτικό κλειδί αποστολέα Υπογεγραµµένο SHA-1 Message Digest RSA Υπογραφή Μήνυµα 25
Ψηφιακές Υπογραφές Έλεγχος Αυθεντικότητας Υπογεγραµµένο Υπογραφή RSA ηµόσιο κλειδί αποστολέα Message Digest =? SHA-1 Μήνυµα Αρχικό Μήνυµα? 26
Υβριδική Κρυπτογράφηση Στην πράξη τα κρυπτοσυστήµατα χρησιµοποιούν συνδυασµένα συµµετρική µε ασύµµετρη κρυπτογραφία Ηκρυπτογραφίαδηµοσίου κλειδιού χρησιµοποιείται για την ανταλλαγή ενός συµµετρικού κλειδιού συνεδρίας (session key) Το συµµετρικό κλειδί κρυπτογραφεί το µήνυµα που ανταλλάσσεται Αυτό γίνεται γιατί η ασύµµετρη κρυπτογράφηση είναι χρονοβόρα για µεγάλα µεγέθη µηνυµάτων. 27
Υπογραφή και Κρυπτογράφηση Συµµετρικό Κλειδί ηµόσιο Κλειδί Παραλήπτη Κρυπτογραφηµένο Μήνυµα 3DES RSA Αρχικό Μήνυµα SHA-1 RSA Κρυπτογραφηµένο Συµµετρικό Κλειδί Ιδιωτικό Κλειδί Αποστολέα Message Digest 28
υναµική Αλγορίθµων και Κλειδιών Η ισχύς των περισσότερων αλγορίθµων βασίζεται σε υπολογιστικά δύσκολα µαθηµατικά προβλήµατα (π.χ. Παραγοντοποίηση µεγάλων ακεραίων) Πρόοδος του υλικού και των µαθηµατικών µπορεί να καταστήσει έναν αλγόριθµο ευπαθή γενικά ή για κάποια µεγέθη κλειδιών συγκεκριµένα Οι αλγόριθµοι και τα µεγέθη κλειδιών έχουν ένα χρονικό ορίζοντα εµπιστοσύνης Περιοδική αξιολόγηση!! 29
Ασφαλή Μεγέθη Κλειδιών Συµµετρικοί Αλγόριθµοι > 128 bit Ασύµµετροί Αλγόριθµοι > 1024 bit Σε ένα υβριδικό κρυπτοσύστηµα ταµεγέθη κλειδιών και για τις δύο κατηγορίες αλγορίθµων πρέπει να προσφέρουν το ανάλογο επίπεδο ασφάλειας Protection Lifetime of Data Present 2010 Present 2030 Present 2031 and Beyond Minimum symmetric security level Minimum RSA key size 80 bits 112 bits 128 bits 1024 bits 2048 bits 3072 bits Recommended minimum symmetric security levels and RSA key sizes based on protection lifetime. (πηγή: RSA) 30
Πιθανές επιθέσεις Για ασύµµετρους αλγόριθµους : παραγοντοποίηση Για συµµετρικούς : brute force, γραµµική και διαφορική κρυπτανάλυση Κατακερµατισµού : Επιθέσεις γενεθλίων (birthday attacks) Τα µεγάλα µεγέθη κλειδιών και hash values αποθαρρύνουν επιθέσεις της παραπάνω µορφής αλλά υπάρχουν πάντα πιο έξυπνες προσεγγίσεις. 31
Γεννήτριες Τυχαίων Αριθµών Μια γεννήτρια τυχαίων αριθµών είναι µια συνάρτηση η οποία παράγει ακολουθίες από 0 και 1 µε τέτοιο τρόπο ώστε το επόµενο ψηφίο να µην µπορεί κάθε φορά να προβλεφθεί βάσει τον προηγούµενων Σηµαντικό συστατικό των κρυπτοσυστηµάτων για την παραγωγή τυχαίων κλειδιών Τυχαίες και Ψευδο-τυχαίες γεννήτριες Πιθανό σηµείο επίθεσης (π.χ. SSLv1) 32
ιαχείριση Κλειδιών Αναφέρεται στην ασφαλή παραγωγή, διανοµή και αποθήκευση κρυπτογραφικών κλειδιών Ασφαλείς µέθοδοι για διαχείριση κλειδιών είναι εξαιρετικά σηµαντικοί Πιθανό σηµείο επίθεσης σε κρυπτοσυστήµατα 33
Τελικά... Ανάγκες που ικανοποιούνται Πιστοποίηση - Αλλά πως ξέρω ότι το δηµόσιο κλειδί ανήκει όντως σε αυτόν που το διατείνεται; Εµπιστευτικότητα - Αρκεί η επικοινωνία να γίνεται µε τοσωστόµέρος! Ακεραιότητα Εντοπισµός Αλλοιώσεων µε σύγκριση των message digests Μη-άρνηση - Αρκεί κάποιος άλλος να µην έχει χρησιµοποιήσει το κλειδί µου. Υπάρχει όµως και το θέµα του χρόνου 34
Ανακεφαλαίωση Ασφάλεια Κρυπτογραφία Κλειδί Συµµετρικοί Κρυπτογραφία Ασύµµετρη Κρυπτογραφία Συναρτήσεις Κατακερµατισµού Ψηφιακές Υπογραφές 35
Πηγές «Applied Cryptography: Protocols, Algorithms and Source Code in C» 2 nd Edition, Bruce Schneier, Wiley «Handbook of Applied Cryptography», A. Menezes, P. van Oorschot, and S. Vanstone, CRC Press ιαθέσιµο on-line http://www.cacr.math.uwaterloo.ca/hac/ «Frequently Asked Questions About Today's Cryptography, Version 4.1», RSA Laboratories ιαθέσιµο on-line http://www.rsasecurity.com/rsalabs/faq/index.html 36