Θεμελιώσεις και εφαρμογές της σύγχρονης κρυπτογραφίας Πανεπιστήμιο Πάτρας Τμήμα Μηχανικών Ηλεκτρονικών Υπολογιστών και Πληροφορικής Θεμελιώσεις και εφαρμογές της σύγχρονης κρυπτογραφίας Παύλος Σπυράκης και Γιάννης Σταματίου Αθήνα, Σεπτέμβριος 2004
Τι θα εξετάσουμε Τις βάσεις της σύγχρονης κρυπτογραφίας στην υπολογιστική πολυπλοκότητα Τα καινούρια πεδία εφαρμογής των κρυπτογραφικών μεθόδων στη μοντέρνα κοινωνία Τις πιθανές απειλές για την κρυπτογραφία που προέρχονται από (καμιά φορά <<εξωτικούς>>) τρόπους επίθεσης, ικανών να παρακάμψουν τις εγγυήσεις
Θεωρία Πολυπλοκότητας: η βάση της σύγχρονης κρυπτογραφίας Σήμερα είναι γνωστά χιλιάδες προβλήματα που πιστεύεται (με βάση ισχυρές μαθηματικές ενδείξεις) ότι δεν μπορούν να επιλυθούν γρήγορα από υπολογιστές που ακολουθούν τον τρόπο υπολογισμού της Μηχανής Turing Η Θεωρία Πολυπλοκότητας, διαντίδραση μεταξύ Επιστήμης Υπολογιστών και Μαθηματικών, είναι το στέρεο υπόβαθρο της Επιστήμης της Κρυπτογραφίας
Η μηχανή Turing: το μαθηματικό μοντέλο του Η/Υ! # 1 1 ALAN TURING q0 q1 qn (q1,0) (q2,1,) Μία άπειρα εκτεινόμενη ταινία χωρισμένη σε κελιά Κάθε κελί αποθηκεύει ένα σύμβολο, συνήθως δυαδικό ψηφίο (0 ή 1) ή το κενό (#) Μία κεφαλή που διαβάζει το περιεχόμενο ενός κελιού – κίνηση δεξιά/αριστερά Μηχανισμός «λήψης αποφάσεων»
Υπολογίζοντας με μία μηχανή Turing! Το παρακάτω «πρόγραμμα» υπολογίζει τη διαφορά μεταξύ δύο θετικών ακεραίων m και n (μόνο εάν m > n, αλλιώς επιστρέφει το 0) που δίνονται στην μορφή 0m10n στην ταινία της μηχανής Turing (μήπως το «πρόγραμμα» σας θυμίζει λίγο Assembly;): q0 q1 q2 q3 q4 q5 q6 (q1,#,Δ) (q1,0,Δ) (q3,1,Α) (q3,0,Α) (q4,0,Α) (q5,#,Δ) - (σταματά) 1 (q2,1,Δ) (q4,#,Α) # (κρεμά) (q0,#,Δ) (q6,0,Δ) (q6,#,Δ)
Υπολογιστικοί πόροι μιας μηχανής Turing Μνήμη (αριθμός κελιών) Χρόνος (αριθμός κινήσεων της κεφαλής) Συναρτήσεις πολυπλοκότητας χώρου και χρόνου με βάση το μέγεθος, n, της εισόδου: Θέλουμε να μην υπάρχει εκρηκτική αύξηση του χώρου ή του χρόνου καθώς δίνουμε όλο και μεγαλύτερα στιγμιότυπα στη μηχανή Turing Οι συναρτήσεις που αποφεύγουν την εκρηκτική αύξηση είναι οι πολυωνυμικές t(n) s(n)
Προσέξτε πώς οι συναρτήσεις πολυπλοκότητας που φράσσονται από κάποιο πολυώνυμο παρουσιάζουν μικρό ρυθμό αύξησης όσο το μέγεθος των στιγμιοτύπων αυξάνει!
Δύο σημαντικές κλάσεις πολυπλοκότητας P: Προβλήματα για τα οποία υπάρχει μηχανή Turing πολυωνυμικής συνάρτησης χρόνου που τα επιλύει NP: Προβλήματα για τα οποία δεν έχει βρεθεί ακόμη μηχανή Turing πολυωνυμικής συνάρτησης χρόνου (και πιθανότατα δεν θα βρεθεί!) αλλά υπάρχει τέτοια μηχανή που τουλάχιστον επαληθεύει μια λύση εάν αυτή δοθεί (δείτε και πιο κάτω!) Και τα NP-πλήρη προβλήματά είναι οι «εκπρόσωποι» της κλάσης NP
Ένα δύσκολο πρόβλημα: το Πρόβλημα του Περιπλανώμενου Πωλητή Β Πόλη Α Δρόμος
... και η λύση! Β Πόλη Α Δρόμος
Εφαρμογές Κάθε εφαρμογή έχει ως δομικό λίθο ένα δύσκολο υπολογιστικά πρόβλημα (που εικάζεται, όμως, ότι περιέχει πληθώρα δύσκολων στιγμιοτύπων – όχι,γενικά, ένα τυπικό NP-πλήρες πρόβλημα!): δυσκολία παραγοντοποίησης μεγάλων ακεραίων αριθμών εύρεση διακριτού λογάριθμου πρόβλημα τετραγωνικών υπολοίπων Όμως: η σύνδεση των δομικών λίθων πρέπει να γίνεται με μεθοδικότητα και προσοχή (ασφαλές πρωτόκολλο)
Ηλεκτρονικές υπογραφές Αναγκαιότητα πιστοποίησης της ταυτότητας του αποστολέα ηλεκτρονικού εγγράφου, εφόσον οι διαπροσωπικές συναλλαγές φθίνουν Μέθοδος (βάση στην κρυπτογραφία δημόσιου κλειδιού): 1. Ο αποστολέας κρυπτογραφεί το έγγραφο με το μυστικό του κλειδί και το αποτέλεσμα το αποστέλλει μαζί με το έγγραφο ως υπογραφή 2. Ο παραλήπτης χρησιμοποιεί το δημόσιο κλειδί του αποστολέα για να αποκωδικοποιήσει την <<υπογραφή>> 3. Εάν πάρει πίσω το μήνυμα που του στάλθηκε τότε ο αποστολέας είναι αυτός που ισχυρίζεται ότι είναι
Κατανεμημένη κρυπτογραφία Διαμοίραση ενός μυστικού σε έναν αριθμό ατόμων/κόμβων δικτύου, έτσι ώστε να πρέπει να βρεθούν μαζί ένας προκαθορισμένος αριθμός ατόμων (κατώφλι) για να είναι το μυστικό αναγνωρίσιμο Μέθοδος: (κατωφλικό σχήμα) 1. Το μυστικό αντιστοιχίζεται σε έναν ακέραιο αριθμό 2. Με βάση τον αριθμό, κατασκευάζεται ένα πολυώνυμο βαθμού όσο και το κατώφλι των ατόμων 3. Κάθε ατομο παίρνει ένα ζεύγος τιμών που επαληθεύουν το πολυώνυμο 4. Πλήρης καθορισμός πολυωνύμου: συνεισφορά ζευγών τιμών τουλάχιστον τόσων ατόμων όσο ο βαθμός του πολυωνύμου (θεωρία αριθμών!)
Προληπτική κρυπτογραφία Δεν πρέπει να φθάσουμε σε παραβίαση της ασφάλειας για να λάβουμε μέτρα Παράδειγμα: Το κατωφλικό σχήμα Μέθοδος: Ανά τακτά διαστήματα ανανέωση των ζευγών τιμών των ατόμων 1. Στο αρχικό πολυώνυμο προστίθεται ένα τυχαίο πολυώνυμο ίδιου βαθμού ώστε στο σημείο 0 να παίρνει την τιμή 0 3. Διαμοίραση, πάλι, ζευγών τιμών 2. Το μυστικό παραμένει το ίδιο, τα ζεύγη τιμών αλλάζουν
Κατηγορηματική ασφάλεια Θα πρέπει να μην είναι δυνατόν να αποκαλύπτεται κάτι για το αρχικό μήνυμα (semantics), δοθείσας της κωδικοποίησής του: δεν θα πρέπει να μεταφέρεται κάτι από το <<περιεχόμενο>> του αρχικού κειμένου Μοντέλο μαθηματικό: υπολογισμός συνάρτησης το αρχικό μήνυμα με βάση την κωδικοποίησή του Ένα απλό παράδειγμα: συνάρτηση XOR, μήνυμα που αποτελείται από τα φωνήεντα a, e, i, o, u. Συχνότητα 1/5 και <<μάντεμα >> ως τιμή του XOR η τιμή 1 3 στις 5 φορές επιτυχία! Μέθοδος: ασφάλεια σε επίπεδο bit, πιθανοκρατική κρυπτογραφία (η κωδικοποίηση κάθε bit εξαρτάται και από ρίψεις τίμιου νομίσματος), πρόβλημα τετραγωνικών υπολοίπων
Γεννήτριες ψευδοτυχαίων αριθμών Παραγωγή τυχαίων αριθμών με υπολογιστή; <<Αμαρτωλή σκέψη>> κατά το μεγάλο μαθηματικό του αιώνα μας John Von Neumann! Υπολογιστής σημαίνει αλγόριθμος-μέθοδος υπολογισμού και μία μέθοδος δεν εμπεριέχει καμιά τυχαιότητα Όμως: Το αμέσως επόμενο καλύτερο πράγμα στην πλήρη αδυναμία πρόβλεψης είναι η δυσκολία πρόβλεψης
Ιδέα: παραγωγή αριθμών με μία μέθοδο έτσι ώστε να είναι υπολογιστικά δύσκολο να μπορέσει κάποιος να μαντέψει τον επόμενο αριθμό που θα παραχθεί, δοθέντων των προηγούμενων αριθμών Εκμεταλλευόμαστε τη δυσκολία επίλυσης μερικών αριθμοθεωρητικών προβλημάτων (π.χ. παραγοντοποίηση μεγάλων ακεραίων, το πρόβλημα των τετραγωνικών υπολοίπων) Γεννήτριες RSA, BBS Σημαντικό: Οι γεννήτριες αυτές είναι κρυπτογραφικά ασφαλείς Εφαρμογές: Τυχερά παιγνίδια, ένθεση υδατογραφημάτων σε εικόνες κλπ.
Διαντιδραστικές αποδείξεις μηδενικής γνώσης Πώς πείθουμε κάποιον ότι γνωρίζουμε κάτι, που με τόσο κόπο μάθαμε ή ανακαλύψαμε; Παράδειγμα: Πώς μπορούμε να αποδείξουμε σε κάποιον ότι γνωρίζουμε μία διαδρομή για τον περιπλανώμενο πωλητή χωρίς να την αποκαλύψουμε Διαντιδραστικές αποδείξεις, μετάδοσης μηδενικής γνώσης: πρωτόκολλα ανταλλαγής μηνυμάτων μεταξύ του έχοντα τη γνώση και αυτού που πρέπει να πειστεί, χωρίς να μάθει το μυστικό μας
Hyperencryption [Maurer 92, Ding & Rabin 02] n Random bits n/2 Adversary bits Alice Bob Key
Εφαρμογή: A Hyperencryption P2P Network [Rabin 03] Η Αλίκη και ο Μπόμπος χρησιμοποιούν το μυστικό τους κλειδί για να επιλέξουν peers που παράγουν random σελίδες Δεν μπορεί ο adversary να αποθηκεύσει όλες τις σελίδες του δικτύου
Κβαντική κρυπτογραφία [Θεώρημα του Werner Heisenberg, 1927] Είναι αδύνατο να καθοριστούν με ακρίβεια ταυτόχρονα η ταχύτητα και η θέση ενός κβαντικού συστήματος (π.χ.ηλεκτρονίου η φωτονίου) Ιδέα: Κωδικοποιούμε το ψηφίο 0 με μία κάποιες από τις δυνατές προεπιλεγμένες καταστάσεις μίας ιδιότητας ενός π.χ. φωτονίου και το ψηφίο 1 με τις υπόλοιπες Ιδιότητα: Πόλωση (γωνία διάδοσης φωτός - ηλεκτρομαγνητικού κύματος) σε σχέση με ένα επίπεδο αναφοράς
Οι εμπλεκόμενοι σε μία επικοινωνία μπορούν να χρησιμοποιήσουν πολωμένα φωτόνια για να κωδικοποιήσουν ψηφία 0 και 1 - κάποια από αυτά θα αποτελέσουν το κλείδί Ανταλλάσσουν τα κατάλληλα πολωμένα φωτόνια Ένας επίδοξος ωτακουστής προσπαθώντας να μετρήσει την πόλωση, παρεμβαίνει καταστρεπτικά (κβαντικός νόμος!) Ο παραλήπτης των φωτονίων θα δεί μία ανακολουθία ανάμεσα σε αυτά που περίμενε και σε αυτά που έλαβε - άρα υπάρχει ωτακουστής! Σε κλασικά κανάλια επικοινωνίας (π.χ. καλώδια, ραδιοκύματα) αυτό δεν είναι εφικτό!
Πόσο ασφαλής είναι η κρυπτογραφία σήμερα; Τα νέα επιστημονικά δεδομένα καθιστούν τις αναλύσεις ασφάλειας που έχουν γίνει στα κλασικά μαθηματικά μοντέλα υπολογισμού (π.χ. μηχανή Turing) ανεπαρκείς <<Εξωτικοί>> τρόποι υπολογισμού που δεν υπακούουν στους περιορισμούς των μαθηματικών μοντέλων Επανεξέταση μοντέλων - προσαρμογή αποδείξεων ασφάλειας σε νεα μοντέλα Προσοχή στο κλειδί (μήκος και ποιότητα)!
Παράλληλοι υπολογιστές Σήμερα είναι εύκολο να κατασκευαστούν υπολογιστές με χιλιάδες γρήγορα επεξεργαστικά στοιχεία που λειτουργούν παράλληλα Αναθέτουμε σε κάθε ένα σύνολο στοιχείων ένα σύνολο πιθανών κλειδιών προς έλεγχο Εάν το μέγεθος του κλειδιού είναι μικρό, θα βρεθεί σχετικά γρήγορα το κλειδί Το <<σωστό>> μήκος κλειδιού υπαγορεύεται από τά τεχνολογικά και οικονομικά δεδομένα FPGAs
Α Β TATCGGATCG GTATATCCGA GCTATTCGAG CTTAAAGCTA GGCTAGGTAC CAGCATGCTT Υπολογισμοί με DNA Εκμεταλλευόμαστε τις ιδιότητες διασύνδεσης μεταξύ μερών αλυσίδας DNA ώστε να συντεθούν παράλληλα και γρήγορα οι πιθανές λύσεις του προβλήματος και να διαχωριστούν αυτές που πραγματικά είναι λύσεις Στην ουσία προσέγγιση <<ωμής βίας>> αλλά εξαιρετικά γρήγορη (πρόβλημα πλανόδιου πωλητή) Μη ρεαλιστική απειλή (προς το παρόν!) για τα περισσότερα κρυπτογραφικά συστήματα Είναι σχετικά εύκολο να <<σπάσει>> το κρυπτογραφικό σύστημα DES με μήκος κλειδιού 56 bits με μερικούς δοκιμαστικούς σωλήνες DNA!
Κβαντικοί υπολογιστές Θεωρία πολυπλοκότητας: Το πρόβλημα εύρεσης πρώτων παραγόντων ενός ακεραίου θεωρείται δύσκολο υπολογιστικά πρόβλημα Peter Shor, 1994: Υπάρχει γρήγορος <<αλγόριθμος>> που επιλύει το παραπάνω πρόβλημα γρήγορα! Η λύση του παράδοξου: Ο <<αλγόριθμος>> είναι σχεδιασμένος για κβαντικούς υπολογιστές [όραμα του μεγάλου φυσικού του αιώνα μας, Richard Feynmann, το 1982] Ένα Qubit Κβαντικός καταχωρητής 3 Qubits
Συμπεράσματα - το μέλλον της κρυπτογραφίας Η κρυπτογραφία σήμερα: μία Επιστήμη με ικανότητα να παρέχει ισχυρές ενδείξεις για την ασφάλεια των όσων προτείνει Διαντίδραση με επιστημονικά πεδία: Θεωρία Αριθμών, Πιθανοθεωρία, Θεωρία Πολυπλοκότητας Διαντίδραση με άλλες Επιστήμες (κίνδυνοι αλλά και όφελος - Κβαντική Φυσική): Κβαντική Φυσική, Βιολογία, Τεχνολογία της Υψηλής Ολοκλήρωσης Μάλλον είμαστε ασφαλείς για αρκετά (;) χρόνια ακόμη! (προσοχή στο μέγεθος των παραμέτρων ασφαλείας - συνάρτηση οικονομικοτεχνικών δεδομένων)
ΣΑΣ ΕΥΧΑΡΙΣΤΩ!