Κατέβασμα παρουσίασης
Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε
1
Εισαγωγή στους Αλγόριθμους
Ενότητα 4: Ο αλγόριθμος Diffie-Hellman Εύη Παπαϊωάννου Σχολή Οργάνωσης και Διοίκησης Επιχειρήσεων Τμήμα Διαχείρισης Πολιτισμικού Περιβάλλοντος και Νέων Τεχνολογιών 1
2
Σκοποί ενότητας Παρουσίαση και μελέτη κρυπτογράφησης με χρήση Δημοσίου Κλειδιού
3
Περιεχόμενα ενότητας Παρουσίαση και μελέτη κρυπτογράφησης με χρήση Δημοσίου Κλειδιού
4
Εισαγωγή στους Αλγόριθμους
Κρυπτογράφηση με χρήση Δημοσίου Κλειδιού (Public Key Cryptography – PKC)
5
… στέλνοντας μυστικά σε μία κάρτ ποστάλ…
Κρυπτογράφηση με χρήση Δημοσίου Κλειδιού (Public Key Cryptography – PKC) … στέλνοντας μυστικά σε μία κάρτ ποστάλ… Ενότητα 4: Ο αλγόριθμος Diffie-Hellman 5
6
Σύνοψη Πρόβλημα: θέλω να στείλω μήνυμα σε κάποιον δημόσια χωρίς να μπορούν να το καταλάβουν οι άλλοι Λύση: το κωδικοποιώ Γνωρίζω τον παραλήπτη: συμφωνώ από πριν μαζί του στη χρήση κάποιου μυστικού κλειδιού γνωστού και στους δυο μας – όχι ασφαλές Δε γνωρίζω τον παραλήπτη: κωδικοποιώ το μήνυμα ώστε να μην το καταλαβαίνουν οι άλλοι αλλά τότε δεν το καταλαβαίνει ούτε ο παραλήπτης… Ενότητα 4: Ο αλγόριθμος Diffie-Hellman 6
7
Σύνοψη Πρόβλημα: θέλω να στείλω μήνυμα σε κάποιον δημόσια χωρίς να μπορούν να το καταλάβουν οι άλλοι Γενικά: δε γνωρίζω τον παραλήπτη και θέλω να συμφωνήσω μαζί του με δημόσια επικοινωνία σε μυστικό κωδικό που να τον ξέρουμε μόνο οι δυο μας Ανάμειξη χρωμάτων: ο αντίπαλος «δεν μπορεί» να κάνει ξε-ανακάτεμα χρωμάτων Πολλαπλασιασμός: ο αντίπαλος «δεν μπορεί» να κάνει διαίρεση (μη ρεαλιστικό) Ύψωση σε δύναμη: ο αντίπαλος «δεν μπορεί» να κάνει παραγοντοποίηση (ρεαλιστικό με την τρέχουσα τεχνολογία) Ενότητα 4: Ο αλγόριθμος Diffie-Hellman 7
8
Το πρόβλημα… Μάς αρέσει να κουτσομπολεύουμε και να μοιραζόμαστε μυστικά… και επειδή στόχος της κρυπτογράφησης είναι η επικοινωνία μυστικών, είμαστε από τη φύση μας σε θέση να κρυπτογραφούμε Δε συμβαίνει το ίδιο με τους υπολογιστές… Μεταφέρουμε ένα μυστικό σε έναν φίλο με το να του το ψιθυρίσουμε στο αυτί του... Ένας υπολογιστής δεν μπορεί να ψιθυρίσει έναν αριθμό πιστωτικής κάρτας σε έναν άλλο υπολογιστή… Ειδικά αν είναι συνδεδεμένοι στο internet, δεν μπορούν να ελέγξουν από πού περνάει ο αριθμός της πιστωτικής κάρτας ούτε ποιοι άλλοι υπολογιστές μπορούν να τον μάθουν/υποκλέψουν… Στη συνέχεια, θα δούμε πώς λύνεται το πρόβλημα αυτό για τους υπολογιστές με χρήση μιας από τις πιο εντυπωσιακές ιδέες της επιστήμης των υπολογιστών: της κρυπτογράφησης με χρήση δημοσίου κλειδιού (public key cryptography) Ενότητα 4: Ο αλγόριθμος Diffie-Hellman 8
9
Το πρόβλημα… Ενότητα 4: Ο αλγόριθμος Diffie-Hellman 9
10
… στέλνοντας μυστικά σε μία καρτ ποστάλ…
Το φανταζόμαστε σαν αναλογία για να κατανοήσουμε τη δύναμη της κρυπτογράφησης με χρήση δημοσίου κλειδιού Στα αλήθεια, αν θέλαμε να στείλουμε σε κάποιον ένα εμπιστευτικό έγγραφο, θα το βάζαμε σε έναν φάκελο και θα τον κλείναμε καλά πριν τον στείλουμε Αυτό δεν εγγυάται σώνει και καλά διατήρηση του απορρήτου, αλλά είναι μια λογική προσέγγιση Αν επιλέξουμε να γράψουμε το εμπιστευτικό μήνυμα σε μια καρτ ποστάλ, προφανώς το απόρρητο παραβιάζεται: οποιοσδήποτε πιάνει την καρτ ποστάλ (π.χ., ταχυδρόμος) μπορεί να διαβάσει το μήνυμα: αυτό είναι το πρόβλημα που αντιμετωπίζει ένας υπολογιστής όταν προσπαθεί να επικοινωνήσει εμπιστευτικά με κάποιον άλλον υπολογιστή στο internet Επειδή κάθε μήνυμα στο internet ταξιδεύει μέσα από πολλούς υπολογιστές που λέγονται δρομολογητές (routers), οποιοσδήποτε έχει πρόσβαση σε αυτούς τους δρομολογητές (συμπεριλαμβανομένων κακόβουλων υποκλοπέων) μπορεί να δει το περιεχόμενο του μηνύματος Επομένως, κάθε κομματάκι πληροφορίας που φεύγει από τον υπολογιστή και διοχετεύεται στο internet πρέπει να αντιμετωπίζεται σαν να είναι γραμμένο σε μία καρτ ποστάλ! Ενότητα 4: Ο αλγόριθμος Diffie-Hellman 10
11
… στέλνοντας μυστικά σε μία καρτ ποστάλ…
Ενότητα 4: Ο αλγόριθμος Diffie-Hellman 11
12
… στέλνοντας μυστικά σε μία κάρτ ποστάλ…
Ενότητα 4: Ο αλγόριθμος Diffie-Hellman 12
13
Λύση;;; Γιατί να μην χρησιμοποιήσουμε έναν μυστικό κωδικό για να κρυπτογραφήσουμε το κάθε μήνυμα πριν το γράψουμε στην καρτ ποστάλ; Αυτό θα δούλευε αν ήδη γνωρίζουμε τον παραλήπτη της καρτ ποστάλ αφού θα μπορούσαμε να έχουμε συμφωνήσει (στο παρελθόν) να χρησιμοποιούμε κάποιον μυστικό κωδικό που θα γνωρίζαμε και οι δύο Και πάλι δεν είναι εγγυημένο το αδιάβλητο της επικοινωνίας… (γιατί;) Το πραγματικό πρόβλημα προκύπτει όταν στέλνουμε την καρτ ποστάλ σε παραλήπτη που δε γνωρίζουμε: αν χρησιμοποιήσουμε μυστικό κωδικό για να κρυπτογραφήσουμε το μήνυμα στην καρτ ποστάλ, οι ταχυδρόμοι δε θα μπορούν να διαβάσουν το μήνυμα, αλλά δε θα μπορεί ούτε ο παραλήπτης να το διαβάσει! Ενότητα 4: Ο αλγόριθμος Diffie-Hellman 13
14
Κώδικας του (Ιουλίου) Καίσαρα
Κάθε γράμμα του κειμένου αντικαθίσταται από ένα άλλο που βρίσκεται σε σταθερή απόσταση στο αλφάβητο Στον κώδικα του Καίσαρα χρησιμοποιείται μετατόπιση τριών θέσεων: B στο πρωτότυπο κείμενο γίνεται E στο κρυπτογραφημένο κείμενο ΣΗΜΕΡΑ ΕΙΝΑΙ ΩΡΑΙΑ ΜΕΡΑ ΦΚΟΘΥΔ ΘΜΠΔΜ ΓΥΔΜΔ ΟΘΥΔ Α Β Γ Δ Ε Ζ Η Θ Ι Κ Λ Μ Ν Ξ Ο Π Ρ Σ Τ Υ Φ Χ Ψ Ω Ενότητα 4: Ο αλγόριθμος Diffie-Hellman 14
15
Κώδικας του (Ιουλίου) Καίσαρα
Ο κώδικας αυτός «σπάει» εύκολα (Α) Πόσες πιθανές μετατοπίσεις υπάρχουν; 24 (ελληνικά), 26 (αγγλικά) Μπορώ γρήγορα να τις δοκιμάσω όλες και να αποκρυπτογραφήσω το μήνυμα Ενότητα 4: Ο αλγόριθμος Diffie-Hellman 15
16
Κώδικας του (Ιουλίου) Καίσαρα
Ο κώδικας αυτός «σπάει» εύκολα (Β) Ανάλυση συχνότητας: εντοπίζω τα συχνότερα χρησιμοποιούμενα γράμματα στο κείμενο και υπολογίζω τη μετατόπιση που χρησιμοποιείται Υπάρχουν πίνακες με τις συχνότητες εμφάνισης των γραμμάτων κάθε γλώσσας: έστω – στα ελληνικά – το Α είναι το πιο συχνά χρησιμοποιούμενο γράμμα Παρατηρώ ότι στο κρυπτογραφημένο (κόκκινο) κείμενο το πιο συχνά εμφανιζόμενο γράμμα είναι το Δ (μπλε) Συμπεραίνω ότι το Δ κρυπτογραφεί το Α χρησιμοποιείται μετατόπιση = 3 Εφαρμόζω μετατόπιση 3 σε όλο το κρυπτογραφημένο κείμενο και λαμβάνω το αρχικό… ΣΗΜΕΡΑ ΕΙΝΑΙ ΩΡΑΙΑ ΜΕΡΑ ΦΚΟΘΥΔ ΘΜΠΔΜ ΓΥΔΜΔ ΟΘΥΔ Ενότητα 4: Ο αλγόριθμος Diffie-Hellman 16
17
Λύση;;; Ενότητα 4: Ο αλγόριθμος Diffie-Hellman 17
18
Λύση;;; Η δύναμη της κρυπτογράφησης με χρήση δημοσίου κλειδιού συνίσταται στο ότι επιτρέπει τη δημιουργία μυστικών κωδικών που μόνο ο παραλήπτης μπορεί να αποκρυπτογραφήσει παρά το ότι δεν μπορούμε να συμφωνήσουμε από πριν με τον παραλήπτη για το ποιος είναι ο μυστικός κωδικός Οι υπολογιστές αντιμετωπίζουν το ίδιο πρόβλημα όταν επικοινωνούν με παραλήπτες που δε “γνωρίζουν” Όταν αγοράζουμε για πρώτη φορά από το Amazon.com χρησιμοποιώντας την πιστωτική μας κάρτα, ο υπολογιστής μας πρέπει να τον μεταδώσει στον εξυπηρετητή της Amazon Αλλά οι δύο υπολογιστές δεν έχουν επικοινωνήσει ξανά στο παρελθόν οπότε αποκλείεται να έχουν συμφωνήσει στη χρήση κάποιου μυστικού κωδικού Και κάθε συμφωνία που θα προσπαθήσουν να κάνουν είναι φανερή σε όλους τους δρομολογητές που μεσολαβούν μεταξύ αυτών των δύο υπολογιστών Ενότητα 4: Ο αλγόριθμος Diffie-Hellman 18
19
Ανάγκη για κρυπτογράφηση…
Η εκπληκτική ανάπτυξη του εμπορίου στο web κατέστη δυνατή λόγω της δυνατότητας αποστολής απόρρητων πληροφοριών (όπως π.χ., αριθμοί πιστωτικών καρτών) χωρίς να αποκαλύπτονται και με ασφάλεια στο Διαδίκτυο Το γεγονός ότι μπορεί να εγκαθιδρυθεί ασφαλής επικοινωνία πάνω από κανάλια «ανοιχτής πρόσβασης» θεωρούταν για δεκαετίες μη επιλύσιμο πρόβλημα Όταν βρέθηκε η λύση, αποδείχθηκε ότι ήταν εξαιρετικά κομψή… Ενότητα 4: Ο αλγόριθμος Diffie-Hellman 19
20
Κρυπτογράφηση με διαμοιραζόμενο μυστικό
Υποθέστε ότι επιτρέπεται η προφορική επικοινωνία σε ένα δωμάτιο όπου είμαστε με το φίλο μας Arnold και με την κακιά Eve και επιθυμούμε να πούμε κάτι στον Arnold – π.χ., έναν αριθμό μεταξύ του 1 και του 9, ας πούμε τον 7 - χωρίς η Eve να μπορεί να το καταλάβει δεδομένου ότι μπορούμε να μιλάμε στον Arnold μόνο δυνατά ώστε η Eve να μπορεί να ακούει (δεν επιτρέπονται ψιθυρίσματα ούτε σημειωματάκια) Σκεφτόμαστε κάποιον αριθμό που γνωρίζει ο Arnold και δε γνωρίζει η Eve: ας πούμε ότι όταν ήμασταν μικροί παίζαμε με τον Arnold έξω από ένα σπίτι στην οδό Πανεπιστημίου 322 (υποθέτουμε ότι η Eve δεν μάς ήξερε όταν ήμασταν μικροί) Λέμε δυνατά στον Arnold: “Θυμάσαι την οδό του σπιτιού που παίζαμε όταν ήμασταν μικροί; Αν πάρεις αυτόν τον αριθμό και του προσθέσεις αυτόν που θέλω να σου πω θα προκύψει ο αριθμός 329” Υποθέτοντας ότι ο Arnold θυμάται σωστά την οδό που παίζαμε, θα καταλάβει τον αριθμό που σκεφτήκαμε αν από το 329 αφαιρέσει τον αριθμό της οδού, δηλ., τον 322: =7 Εν τω μεταξύ, η Eve δεν μπορεί να καταλάβει τον αριθμό παρά το ότι άκουσε τη φράση που δυνατά είπαμε στον Arnold Ενότητα 4: Ο αλγόριθμος Diffie-Hellman 20
21
Κρυπτογράφηση με διαμοιραζόμενο μυστικό
Θέλω να μεταφέρω τον αριθμό 7 στον Arnold χωρίς να το καταλάβει η κακιά Eve Κάθε επικοινωνία πρέπει να είναι δημόσια “Αν στον αριθμό της οδού που ήταν το bar που πήγαμε χτες προσθέσεις τον αριθμό που θέλω να σου πω θα προκύψει ο αριθμός 329” Η Eve δεν ξέρει που πήγαμε χτες… Ο Arnold υπολογίζει =7 322: διαμοιραζόμενο μυστικό 329: κρυπτογραφημένο μήνυμα μέσω πρόσθεσης Ενότητα 4: Ο αλγόριθμος Diffie-Hellman 21
22
Κρυπτογράφηση με διαμοιραζόμενο μυστικό
Πώς είναι δυνατόν να δημιουργήσουμε και να διακινήσουμε δημόσια ένα μυστικό που να γνωρίζουμε μόνο εμείς και κάποιος άλλος; Η ιδέα με την πρόσθεση: Κρυπτογραφούμε το μήνυμα 7 προσθέτοντάς του το διαμοιραζόμενο μυστικό, Ο Arnold μπορεί να το αποκρυπτογραφήσει αφαιρώντας το διαμοιραζόμενο μυστικό, αλλά η Eve δεν μπορεί… Ενότητα 4: Ο αλγόριθμος Diffie-Hellman 22
23
Κρυπτογράφηση με διαμοιραζόμενο μυστικό
Γιατί δουλεύει η μέθοδος αυτή; Εμείς και ο Arnold διαθέτουμε ένα διαμοιραζόμενο μυστικό: τον αριθμό 322. Επειδή και οι δύο γνωρίζουμε τον αριθμό αυτόν αλλά δεν τον γνωρίζει η Eve, μπορούμε να χρησιμοποιούμε αυτό το διαμοιραζόμενο μυστικό για να μεταδίδουμε μεταξύ μας οποιοδήποτε αριθμό θέλουμε: τον προσθέτουμε στο διαμοιραζόμενο μυστικό, ανακοινώνουμε δημόσια το άθροισμα – ο παραλήπτης αφαιρεί το διαμοιραζόμενο μυστικό και καταλαβαίνει τον αριθμό που διαλέξαμε ενώ η Eve παρά το ότι ακούει το άθροισμα δεν μπορεί να τον καταλάβει αφού δε γνωρίζει ποιον αριθμό πρέπει να αφαιρέσει… Σε αυτή την απλή ιδέα με την πρόσθεση ενός διαμοιραζόμενου μυστικού σε ένα ιδιωτικό μήνυμα βασίζεται εν πολλοίς η λειτουργία της κρυπτογράφησης στο internet: οι υπολογιστές χρησιμοποιούν συνεχώς το κόλπο αυτό εμπλουτισμένο με κάποιες επιπλέον λεπτομέρειες ώστε η επικοινωνία να είναι πραγματικά ασφαλής… Ενότητα 4: Ο αλγόριθμος Diffie-Hellman 23
24
Κρυπτογράφηση με διαμοιραζόμενο μυστικό: στην πράξη;
Οι διαμοιραζόμενοι κωδικοί που χρησιμοποιούν οι υπολογιστές είναι πολύ μεγαλύτεροι από τον αριθμό 322 της οδού που αναφέραμε: αν οι κωδικοί είναι πολύ μικροί, οποιοσδήποτε υποκλέπτει τη «συζήτηση» μπορεί εύκολα να δοκιμάσει όλες τις πιθανές εκδοχές Υποθέστε ότι χρησιμοποιούμε έναν τριψήφιο αριθμό οδού για να κρυπτογραφήσουμε έναν πραγματικό 16-ψήφιο αριθμό πιστωτικής κάρτας χρησιμοποιώντας την ιδέα με την πρόσθεση που περιγράψαμε Υπάρχουν 999 πιθανοί τριψήφιοι αριθμοί οδών, οπότε η κακιά Eve που ακούει τη συζήτησή μας μπορεί να φτιάξει μια λίστα με 999 πιθανούς αριθμούς, ένας από τους οποίους θα είναι και ο αριθμός της πιστωτικής μας κάρτας (με έναν υπολογιστή μπορούμε σε κλάσματα του δευτερολέπτου να δοκιμάσουμε τους 999 αριθμούς πιστωτικών καρτών, οπότε τριψήφιοι κωδικοί δεν επαρκούν για να δώσουν χρήσιμα διαμοιραζόμενα μυστικά…) Ενότητα 4: Ο αλγόριθμος Diffie-Hellman 24
25
Κρυπτογράφηση με διαμοιραζόμενο μυστικό: στην πράξη;
Αν ακούσετε ότι η κρυπτογράφηση χρησιμοποιεί συγκεκριμένο αριθμό bits, όπως π.χ., “128-bit encryption”, αυτό δηλώνει το πόσα ψηφία έχει το διαμοιραζόμενο μυστικό το οποίο καλείται “κλειδί - key” επειδή χρησιμοποιείται για να “ξεκλειδώσει” ή αλλιώς να αποκρυπτογραφήσει ένα μήνυμα Το 30% του αριθμού των ψηφίων του κλειδιού δείχνει κατά προσέγγιση τον αριθμό των ψηφίων στο κλειδί: 30% του 128 είναι περίπου 38, οπότε ξέρουμε ότι η 128-bit κρυπτογράφηση χρησιμοποιεί κλειδί που είναι ένας αριθμός με 38 ψηφία ένας αριθμός με 38 ψηφία είναι μεγαλύτερος από έναν δις δις δις δις και επειδή ένας υπολογιστής χρειάζεται δισεκατομμύρια χρόνια για να δοκιμάσει τόσες πολλές εκδοχές ένα διαμοιραζόμενο μυστικό με 38 ψηφία θεωρείται πολύ ασφαλές Ενότητα 4: Ο αλγόριθμος Diffie-Hellman 25
26
Κρυπτογράφηση με διαμοιραζόμενο μυστικό: στην πράξη;
Αν ακούσετε ότι η κρυπτογράφηση χρησιμοποιεί συγκεκριμένο αριθμό bits, όπως π.χ., “128-bit encryption”, αυτό δηλώνει το πόσα ψηφία έχει το διαμοιραζόμενο μυστικό το οποίο καλείται “κλειδί - key” επειδή χρησιμοποιείται για να “ξεκλειδώσει” ή αλλιώς να αποκρυπτογραφήσει ένα μήνυμα Το 30% του αριθμού των ψηφίων του κλειδιού δείχνει κατά προσέγγιση τον αριθμό των ψηφίων στο κλειδί: 30% του 128 είναι περίπου 38, οπότε ξέρουμε ότι η 128-bit κρυπτογράφηση χρησιμοποιεί κλειδί που είναι ένας αριθμός με 38 ψηφία ένας αριθμός με 38 ψηφία είναι μεγαλύτερος από έναν δις δις δις δις και επειδή ένας υπολογιστής χρειάζεται δισεκατομμύρια χρόνια για να δοκιμάσει τόσες πολλές εκδοχές, ένα διαμοιραζόμενο μυστικό με 38 ψηφία θεωρείται πολύ ασφαλές Αναφερόμαστε σε δεκαδικά ψηφία όχι σε δυαδικά (bits). Το ποσοστό 30% για μετατροπή από bits σε δεκαδικά ψηφία (δίνεται δυαδικός αριθμός: πόσα ψηφία χρειάζονται για να γραφτεί στο δεκαδικό σύστημα) προέρχεται από το ότι: log10 2 ≈ 0.3. Ενότητα 4: Ο αλγόριθμος Diffie-Hellman 26
27
Παράδειγμα = = =153 Ο έχει μήκος 8 ψηφίων και είναι στο δυαδικό Ο 153 έχει μήκος 3 ψηφίων και είναι στο δεκαδικό σύστημα Για να αναπαραστήσω ένα δυαδικό αριθμό με 8 ψηφία στο δεκαδικό σύστημα χρειάστηκα: log102*8 ≈ 0,3*8=2,4 ≈3 ψηφία = = =1945 Ο έχει μήκος 11 ψηφίων και είναι στο δυαδικό Ο 1945 έχει μήκος 4 ψηφίων και είναι στο δεκαδικό σύστημα Για να αναπαραστήσω ένα δυαδικό αριθμό με 11 ψηφία στο δεκαδικό σύστημα χρειάστηκα: log102*11 ≈ 0,3*11=3,3 ≈4 ψηφία 10κάτι=2: με χρήση 10 ψηφίων, τι μήκος λέξης θέλω για να πετύχω 2 διαφορετικές λέξεις (δηλ., τα ψηφία 0 και 1); log102 ≈ 0,3 2κάτι=16: με χρήση 2 ψηφίων, τι μήκος λέξης θέλω για να πετύχω 16 διαφορετικές λέξεις; log216=4 Ενότητα 4: Ο αλγόριθμος Diffie-Hellman 27
28
Κρυπτογράφηση με διαμοιραζόμενο μυστικό: στην πράξη;
Επειδή τα αποτελέσματα που παράγει η πρόσθεση μπορούν να αναλυθούν στατιστικά με παρατήρηση μεγάλου πλήθους κρυπτογραφημένων μηνυμάτων, σύγχρονες μέθοδοι κρυπτογράφησης που καλούνται “block ciphers” χρησιμοποιούν μια παραλλαγή της ιδέας της πρόσθεσης: Μεγάλα μηνύματα κόβονται σε μικρά “blocks” συγκεκριμένου μεγέθους (συνήθως χαρακτήρων). Μετά, αντί μόνο να προσθέσουμε κάθε block του μηνύματος με το κλειδί, κάθε block μετατρέπεται πολλές φορές με συγκεκριμένες πράξεις όπως η πρόσθεση έτσι ώστε το μήνυμα και το κλειδί να αναμειχθούν πολύ καλά Π.χ., ένας κανόνας μπορεί να είναι: πρόσθεσε το πρώτο μισό του κλειδιού στο δεύτερο μισό του block, ανάστρεψε το αποτέλεσμα και πρόσθεσε το δεύτερο μισό του κλειδιού στο δεύτερο μισό του block Στην πραγματικότητα τέτοιοι κανόνες είναι εξαιρετικά πολύπλοκοι: σύγχρονες τεχνικές με block ciphers χρησιμοποιούν 10 ή παραπάνω “γύρους” μετατροπών ώστε το μήνυμα αναμειγμένο με το κλειδί να είναι εξαιρετικά δύσκολο να αναλυθεί με στατιστικούς ελέγχους και να αποκρυτπογραφηθεί Η πιο δημοφιλής τεχνική block cipher είναι η Advanced Encryption Standard (AES): στην πιο τυπική της έκδοση χρησιμοποιεί blocks των 16 χαρακτήρων, κλειδιά των 128 bit και 10 γύρους λειτουργιών ανάμειξης Ενότητα 4: Ο αλγόριθμος Diffie-Hellman 28
29
Πώς δημιουργείται δημόσια ένα διαμοιραζόμενο κλειδί;
Πώς δημιουργείται δημόσια ένα διαμοιραζόμενο κλειδί; Η κρυπτογράφηση στο internet βασίζεται στη κατάτμηση του μηνύματος σε blocks και σε χρήση παραλλαγής της ιδέας της πρόσθεσης για κρυπτογράφηση κάθε block Αλλά πώς δημιουργείται το διαμοιραζόμενο μυστικό; Στο παράδειγμα υποθέσαμε ότι ήμασταν φίλοι με τον Arnold και η Eve δεν μάς ήξερε… Τι γίνεται αν είμαστε εντελώς ξένοι με τον Arnold και την Eve και παίζαμε το ίδιο παιχνίδι; Μπορούμε να δημιουργήσουμε ένα διαμοιραζόμενο μυστικό; Αν και εκ πρώτης όψεως φαίνεται αδύνατο, αποδεικνύεται ότι υπάρχει ένας πολύ έξυπνος τρόπος που λύνει το πρόβλημα: η λύση αποκαλείται ανταλλαγή κλειδιού Diffie-Hellman – εμείς θα την αναφέρουμε σαν ιδέα ανάμειξης χρωμάτων… Ενότητα 4: Ο αλγόριθμος Diffie-Hellman 29
30
Η ιδέα της ανάμειξης χρωμάτων
Βήμα 1: Διαλέγουμε ο καθένας ένα “ιδιωτικό χρώμα” Ενότητα 4: Ο αλγόριθμος Diffie-Hellman 30
31
Η ιδέα της ανάμειξης χρωμάτων
Βήμα 2: Ένας από εμάς ανακοινώνει δημόσια τα συστατικά ενός νέου, διαφορετικού χρώματος που καλείται “δημόσιο χρώμα” Ενότητα 4: Ο αλγόριθμος Diffie-Hellman 31
32
Η ιδέα της ανάμειξης χρωμάτων
Δημιουργούμε και δημοσιοποιούμε ο καθένας μια μίξη συνδυάζοντας ένα ποτήρι του δημόσιου χρώματος με ένα ποτήρι του ιδιωτικού μας χρώματος παράγοντας ένα “δημόσιο-ιδιωτικό μείγμα” + = + = Ενότητα 4: Ο αλγόριθμος Diffie-Hellman 32
33
Η ιδέα της ανάμειξης χρωμάτων
Βήμα 4: Λαμβάνουμε μια ποσότητα από το “δημόσιο-ιδιωτικό χρώμα” του Arnold, τη μεταφέρουμε στο μέρος μας και προσθέτουμε ένα ποτήρι του δικού μας ιδιωτικού χρώματος (το ίδιο κάνει και ο Arnold: λαμβάνει μια ποσότητα από το “δημόσιο-ιδιωτικό χρώμα” μας, τη μεταφέρει στο μέρος του και προσθέτει ένα ποτήρι του δικού του ιδιωτικού χρώματος) + = + = Ενότητα 4: Ο αλγόριθμος Diffie-Hellman 33
34
Η ιδέα της ανάμειξης χρωμάτων
Βήμα 4: Λαμβάνουμε μια ποσότητα από το “δημόσιο-ιδιωτικό χρώμα” του Arnold, τη μεταφέρουμε στο μέρος μας και προσθέτουμε ένα ποτήρι του δικού μας ιδιωτικού χρώματος (το ίδιο κάνει και ο Arnold: λαμβάνει μια ποσότητα από το “δημόσιο-ιδιωτικό χρώμα” μας, τη μεταφέρει στο μέρος του και προσθέτει ένα ποτήρι του δικού του ιδιωτικού χρώματος) + = + = ????? Ενότητα 4: Ο αλγόριθμος Diffie-Hellman 34
35
Η ιδέα της ανάμειξης χρωμάτων
Ενότητα 4: Ο αλγόριθμος Diffie-Hellman 35
36
Ανάμειξη χρωμάτων με αριθμούς
Βήμα 1: Αντί να διαλέξετε ένα “ιδιωτικό χρώμα” εσύ και ο Arnold διαλέγετε ο καθένας έναν “ιδιωτικό αριθμό” (π.χ., 6 και 4, αντίστοιχα) Βήμα 2: Ένας από εσάς ανακοινώνει έναν “δημόσιο αριθμό” αντί για ένα δημόσιο χρώμα που είπαμε πριν (π.χ., 7) Βήμα 3: Πολλαπλασίασε τον ιδιωτικό σου αριθμό (π.χ., 6) με το δημόσιο αριθμό (π.χ., 7) για να προκύψει ο “δημόσιος-ιδιωτικός αριθμός” σου, δηλ., ο 42 Βήμα 4: Λαμβάνεις το δημόσιο-ιδιωτικό αριθμό του Arnold, που είναι ο 28, και τον πολλαπλασιάζεις με το δικό σου ιδιωτικό αριθμό, δηλ., τον 6, για να προκύψει ο κοινός (δημόσια διαμοιραζόμενος) μυστικός αριθμός, δηλ., ο 168 Ενότητα 4: Ο αλγόριθμος Diffie-Hellman 36
37
Η ιδέα της ανάμειξης χρωμάτων με αριθμούς
Βήμα 1: Διαλέγουμε ο καθένας έναν “ιδιωτικό αριθμό” 4 6 Ενότητα 4: Ο αλγόριθμος Diffie-Hellman 37
38
Η ιδέα της ανάμειξης χρωμάτων με αριθμούς
Βήμα 2: Ένας από εμάς ανακοινώνει δημόσια έναν “δημόσιο αριθμό” 4 6 7 Ενότητα 4: Ο αλγόριθμος Diffie-Hellman 38
39
Η ιδέα της ανάμειξης χρωμάτων με αριθμούς
Βήμα 3: Πολλαπλασιάζουμε ο καθένας το δημόσιο αριθμό με τον ιδιωτικό μας αριθμό παράγοντας ένα “δημόσιο-ιδιωτικό αριθμό” 4x7=28 6x7=42 28 42 7 Ενότητα 4: Ο αλγόριθμος Diffie-Hellman 39
40
Η ιδέα της ανάμειξης χρωμάτων με αριθμούς
Βήμα 4: Λαμβάνουμε το δημόσιο-ιδιωτικό αριθμό του Arnold, που είναι ο 42, και τον πολλαπλασιάζουμε με το δικό μας ιδιωτικό αριθμό, δηλ., τον 4, για να προκύψει ο κοινός (δημόσια διαμοιραζόμενος) μυστικός αριθμός, δηλ., ο 168 4x7=28 4x42=168 4x7x6=168 6x7=42 6x28=168 4x7x6=168 28 42 7 Ενότητα 4: Ο αλγόριθμος Diffie-Hellman 40
41
Η ιδέα της ανάμειξης χρωμάτων με αριθμούς
Βήμα 4: Λαμβάνουμε το δημόσιο-ιδιωτικό αριθμό του Arnold, που είναι ο 42, και τον πολλαπλασιάζουμε με το δικό μας ιδιωτικό αριθμό, δηλ., τον 4, για να προκύψει ο κοινός (δημόσια διαμοιραζόμενος) μυστικός αριθμός, δηλ., ο 168 28 42 168 ??? 4x7=28 4x42=168 4x7x6=168 6x7=42 6x28=168 4x7x6=168 7 Ενότητα 4: Ο αλγόριθμος Diffie-Hellman 41
42
Ανάμειξη χρωμάτων με αριθμούς
Ενότητα 4: Ο αλγόριθμος Diffie-Hellman 42
43
Η ανάμειξη χρωμάτων στην πραγματικότητα…
Δεν μπορώ να «ξε-ανακατέψω χρώματα» = δεν μπορώ να κάνω διαίρεση Απλή λειτουργία που είναι εύκολο να υλοποιηθεί (όπως το ανακάτεμα χρωμάτων) αλλά δύσκολο να αναιρεθεί (όπως το ξε-ανακάτεμα χρωμάτων): ανακάτεμα χρωμάτων: ύψωση σε ακέραια δύναμη (discrete exponentiation) ξε-ανακάτεμα χρωμάτων: λογαρίθμηση με ακέραια βάση (discrete logarithm) Δεν υπάρχει γνωστή μέθοδος που να επιτρέπει σε έναν υπολογιστή να υπολογίσει διακριτούς λογαρίθμους αποδοτικά Αριθμητική με χρήση ρολογιού (clock arithmetic): κάθε αριθμός απεικονίζεται στο υπόλοιπο που αφήνει η διαίρεσή του με το μέγεθος του ρολογιού… Χρήση ύψωσης σε δύναμη: 6 × 6 × 6 × 6 = 64 PPN = βάσηιδιωτικός αριθμός (μέγεθος ρολογιού) Ενότητα 4: Ο αλγόριθμος Diffie-Hellman 43
44
Σκεφτείτε τα εξής… ΠΑΡΑΤΗΡΗΣΗ 1: Αν σας πω ότι το υπόλοιπο της διαίρεσης ενός αριθμού Χ με το 3 είναι 2, μπορείτε να μου πείτε ποιος είναι ο Χ;;;; ΠΑΡΑΤΗΡΗΣΗ 2: Αν σας πω ότι κρατάω τα πιθανά υπόλοιπα της διαίρεσης ενός αριθμού με το 3, πόσες τιμές κρατάω; Αν κρατάω τα πιθανά υπόλοιπα της διαίρεσης ενός αριθμού με το 1023, πόσες τιμές κρατάω;;;;;; Ενότητα 4: Ο αλγόριθμος Diffie-Hellman 44
45
Σκεφτείτε τα εξής… ΠΑΡΑΤΗΡΗΣΗ 3: Αν σας ζητήσω να μαντέψετε ποιον αριθμό από κάθε λίστα διάλεξα τυχαία, πόσο πιθανό είναι να μαντέψετε σωστά; Η πρώτη λίστα περιέχει τους αριθμούς 0, 1 και 2 Διαλέγω το 0 (ή το 1 ή το 2) με πιθανότητα 1/3 Διαλέγετε το 0 (ή το 1 ή το 2) με πιθανότητα 1/3 Διαλέγουμε και οι δύο το 0 (ή το 1 ή το 2) με πιθανότητα 1/3 * 1/3 = 1/9 Διαλέγουμε και οι δύο το ίδιο νούμερο (ή το 0 ή το 1 ή το 2) με πιθανότητα 1/9+1/9+1/9=3/9=1/3=0, Η πρώτη δεύτερη λίστα περιέχει τους αριθμούς 0, 1 …1022 Διαλέγω το 0 (ή το 1 ή … ή το 1022) με πιθανότητα 1/1023 Διαλέγετε το 0 (ή το 1 ή … ή το 1022) με πιθανότητα 1/1023 Διαλέγουμε και οι δύο το 0 (ή το 1 ή … ή το 1022) με πιθανότητα 1/1023 * 1/1023 = 1/ Διαλέγουμε και οι δύο το ίδιο νούμερο (ή το 1 ή … ή το 1022) με πιθανότητα 1023*1/ = 1/1023=0, Ενότητα 4: Ο αλγόριθμος Diffie-Hellman 45
46
Αριθμητική με χρήση ρολογιού…
Με χρήση ρολογιού μεγέθους 7, ο αριθμός 12 απλοποιείται στον αριθμό 5: ξεκινάμε από το 0 και μετράμε 12 μονάδες κατά τη φορά του ρολογιού Με χρήση ρολογιού μεγέθους 7, βρίσκουμε ότι = 4: ξεκινάμε από το 5 (που τελείωσε ο αριθμός 12) και προσθέτουμε άλλες 6 μονάδες κατά τη φορά του ρολογιού Ενότητα 4: Ο αλγόριθμος Diffie-Hellman 46
47
Αριθμητική με χρήση ρολογιού…
Οι πρώτες δέκα δυνάμεις του 2, 3 και 6 με χρήση ρολογιού μεγέθους 11. Κάθε απάντηση υπολογίζεται από την προηγούμενή της με απλή αριθμητική Ενότητα 4: Ο αλγόριθμος Diffie-Hellman 47
48
Αριθμητική με χρήση ρολογιού…
Οι πρώτες δέκα δυνάμεις του 2, 3 και 6 με χρήση ρολογιού μεγέθους 11. Κάθε απάντηση υπολογίζεται από την προηγούμενή της με απλή αριθμητική ΕΝΔΙΑΦΕΡΟΥΣΑ ΠΑΡΑΤΗΡΗΣΗ: έξυπνος συνδυασμός βάσης – μεγέθους ρολογιού δίνει τη δυνατότητα δημιουργίας περισσότερων χρήσιμων αποτελεσμάτων, δηλ., «μηνυμάτων» Ενότητα 4: Ο αλγόριθμος Diffie-Hellman 48
49
Η ανάμειξη χρωμάτων στην πραγματικότητα…
Βήμα 1: Εσύ και ο Arnold διαλέγετε ο καθένας έναν ιδιωτικό αριθμό (μικρότερο από το μέγεθος του ρολογιού) Βήμα 2: Εσύ και ο Arnold συμφωνείτε δημόσια σε δύο δημόσιους αριθμούς: ένα μέγεθος ρολογιού (χρησιμοποιούμε το 11 στο παράδειγμα) και έναν άλλο αριθμό που καλείται βάση (χρησιμοποιούμε σα βάση το 2) Βήμα 3: Εσύ και ο Arnold ο καθένας χωριστά δημιουργείτε έναν δημόσιο-ιδιωτικό αριθμό (PPN) αναμειγνύοντας τον ιδιωτικό σας αριθμό με τους δημόσιους, με χρήση δυνάμεων και αριθμητικής με χρήση ρολογιού Βήμα 4: Εσύ και ο Arnold ο καθένας χωριστά λαμβάνετε ο ένας το δημόσιο-ιδιωτικό αριθμό του άλλου και τον αναμειγνύετε με το δικό σας ιδιωτικό αριθμό Ενότητα 4: Ο αλγόριθμος Diffie-Hellman 49
50
Πώς δημιουργούμε μια δημόσια κλειδαριά …με αριθμούς;
8 9 11,2 Ενότητα 4: Ο αλγόριθμος Diffie-Hellman 50
51
Πώς δημιουργούμε μια δημόσια κλειδαριά …με αριθμούς;
8 9 28mod11=3 29mod11=6 11,2 3 6 Ενότητα 4: Ο αλγόριθμος Diffie-Hellman 51
52
Πώς δημιουργούμε μια δημόσια κλειδαριά …με αριθμούς;
8 9 28mod11=3 29mod11=6 11,2 3 6 68mod11= 4 39mod11= 4 Ενότητα 4: Ο αλγόριθμος Diffie-Hellman 52
53
Πώς δημιουργούμε μια δημόσια κλειδαριά …με αριθμούς;
8 9 28mod11=3 29mod11=6 11,2 3 6 68mod11= 4 39mod11= 4 ?????? Ενότητα 4: Ο αλγόριθμος Diffie-Hellman 53
54
Κρυπτογράφηση Δημοσίου Κλειδιού (Public Key Cryptography-PKC) στην πράξη…
Ενότητα 4: Ο αλγόριθμος Diffie-Hellman 54
55
Κρυπτογράφηση Δημοσίου Κλειδιού (Public Key Cryptography-PKC) στην πράξη…
Ανάμειξη αριθμών στην πραγματικότητα, Βήμα 4: Μόνο εσύ και ο Arnold μπορείτε να βρείτε το μυστικό αριθμό, συνδυάζοντας τα στοιχεία που δείχνονται με βέλη, με χρήση δυνάμεων και αριθμητικής με χρήση ρολογιού… Ενότητα 4: Ο αλγόριθμος Diffie-Hellman 55
56
Πώς δημιουργείται δημόσια κοινό μυστικό κλειδί για επικοινωνία;
g, p Ενότητα 4: Ο αλγόριθμος Diffie-Hellman 56
57
Πώς δημιουργείται δημόσια κοινό μυστικό κλειδί για επικοινωνία;
g, p Επιλέγει μυστικό a Και υπολογίζει το a*=ga mod p Επιλέγει μυστικό b Και υπολογίζει το b*=gb mod p Ενότητα 4: Ο αλγόριθμος Diffie-Hellman 57
58
Πώς δημιουργείται δημόσια κοινό μυστικό κλειδί για επικοινωνία;
a*, b* g, p Επιλέγει μυστικό a Και υπολογίζει το a*=ga mod p Επιλέγει μυστικό b Και υπολογίζει το b*=gb mod p Ενότητα 4: Ο αλγόριθμος Diffie-Hellman 58
59
Πώς δημιουργείται δημόσια κοινό μυστικό κλειδί για επικοινωνία;
a*, b* g, p Επιλέγει μυστικό a Και υπολογίζει το a*=ga mod p Υπολογίζει το Κ=b*a mod p Επιλέγει μυστικό b Και υπολογίζει το b*=gb mod p Υπολογίζει το Κ=a*b mod p Ενότητα 4: Ο αλγόριθμος Diffie-Hellman 59
60
Πώς δημιουργείται δημόσια κοινό μυστικό κλειδί για επικοινωνία;
a*, b* g, p Μπορεί να υπολογίσει μόνο το a*xb*=ga+b mod p που δεν είναι χρήσιμο για τον υπολογισμό του Κ Επιλέγει μυστικό a Και υπολογίζει το a*=ga mod p Υπολογίζει το Κ=b*a mod p=gba mod p Επιλέγει μυστικό b Και υπολογίζει το b*=gb mod p Υπολογίζει το Κ=a*b mod p=gba mod p Ενότητα 4: Ο αλγόριθμος Diffie-Hellman 60
61
Πώς δημιουργείται δημόσια κοινό μυστικό κλειδί για επικοινωνία;
a*, b* g, p Για να υπολογίσει το a (ή το b) από το a*=ga mod p πρέπει να δοκιμάσει όλες τις τιμές a από 1 έως p-1 Επιλέγει μυστικό a Και υπολογίζει το a*=ga mod p Υπολογίζει το Κ=b*a mod p=gba mod p Επιλέγει μυστικό b Και υπολογίζει το b*=gb mod p Υπολογίζει το Κ=a*b mod p=gba mod p Ενότητα 4: Ο αλγόριθμος Diffie-Hellman 61
62
Κρυπτογράφηση Δημοσίου Κλειδιού (Public Key Cryptography-PKC) στην πράξη…
Η τελική έκδοση της ιδέας με την ανάμειξη χρωμάτων, δηλ., η ανάμειξη αριθμών μέσω δυνάμεων και αριθμητικής με χρήση ρολογιού, είναι ένας από τους τρόπους που οι υπολογιστές εγκαθιδρύουν στην πράξη διαμοιραζόμενα μυστικά στο internet Η συγκεκριμένη μέθοδος που περιγράψαμε λέγεται αλγόριθμος ανταλλαγής κλειδιού Diffie-Hellman, και πήρε το όνομά του από τους Whitfield Diffie και Martin Hellman, που πρώτοι δημοσίευσαν τον αλγόριθμο το 1976 Ενότητα 4: Ο αλγόριθμος Diffie-Hellman 62
63
Κρυπτογράφηση Δημοσίου Κλειδιού (Public Key Cryptography-PKC) στην πράξη…
Οποτεδήποτε επισκέπτεστε ένα ασφαλές website (κάποιο που ξεκινάει με “ αντί για “ ο δικός σας υπολογιστής και ο web εξυπηρετητής με τον οποίο επικοινωνεί δημιουργούν ένα διαμοιραζόμενο μυστικό, χρησιμοποιώντας το πρωτόκολλο Diffie-Hellman ή κάποια παραλλαγή του Αφότου δημιουργηθεί αυτό το διαμοιραζόμενο μυστικό, οι δύο υπολογιστές μπορούν να κρυπτογραφήσουν όλη την επικοινωνία τους χρησιμοποιώντας μια παραλλαγή της ιδέας με την πρόσθεση που περιγράψαμε Ενότητα 4: Ο αλγόριθμος Diffie-Hellman 63
64
Ο αλγόριθμος (πρωτόκολλο) Diffie-Hellman για ανταλλαγή κλειδιού
Χρησιμοποιήσαμε πολύ μικρό μέγεθος ρολογιού (11) για να γίνονται εύκολα οι πράξεις Αλλά μικρό (δημόσιο) μέγεθος ρολογιού σημαίνει μικρό πλήθος πιθανών ιδιωτικών αριθμών (αφού μπορούμε να χρησιμοποιήσουμε μόνο ιδιωτικούς αριθμούς που είναι μικρότεροι από το μέγεθος ρολογιού) που σημαίνει ότι κάποιος μπορεί με έναν υπολογιστή να δοκιμάσει όλους τους πιθανούς ιδιωτικούς αριθμούς μέχρι να εντοπίσει κάποιον που παράγει το δικό μας δημόσιο-ιδιωτικό αριθμό Στο παράδειγμα: υπάρχουν μόνο 11 πιθανοί ιδιωτικοί αριθμοί, οπότε θα ήταν εξαιρετικά εύκολο να «σπάσει» κανείς το σύστημα Αντίθετα, πραγματικές υλοποιήσεις του πρωτοκόλλου Diffie-Hellman χρησιμοποιούν μέγεθος ρολογιού με μερικές εκατοντάδες ψηφία, που δίνει τη δυνατότητα παραγωγής εξαιρετικά μεγάλου πλήθους ιδιωτικών αριθμών (παραπάνω από τρισεκατομμύρια τρισεκατομμυρίων…) Ακόμα και τότε, οι δημόσιοι αριθμοί πρέπει να επιλέγονται με προσοχή, ώστε να έχουν τις σωστές μαθηματικές ιδιότητες … Ενότητα 4: Ο αλγόριθμος Diffie-Hellman 64
65
Στόχος τους είναι να βρουν το 4…
8 9 28mod11=3 3 6 29mod11=6 68mod11= 4 39mod11= 4 11,2 Στόχος τους είναι να βρουν το 4… Για να το κάνουν αυτό χρειάζονται να βρουν το 9… Πρέπει να λύσουν την εξίσωση: 2Χmod11=6 Σε λίγα λεπτά με χρήση EXCEL έφτιαξα το διπλανό πίνακα και προσδιόρισα ότι το ζητούμενο Χ είναι το 9… Αν αντί για 11 χρησιμοποιούσα π.χ., το 47???? Ενότητα 4: Ο αλγόριθμος Diffie-Hellman 65
66
Όταν επιλέγεται μέγεθος ρολογιού και βάση για το πρωτόκολλο Diffie-Hellman, πρέπει να πληρούνται συγκεκριμένες μαθηματικές ιδιότητες… Ιδιότητα 1 (πολύ σημαντική): το μέγεθος του ρολογιού πρέπει να είναι πρώτος αριθμός – ώστε να μην έχει άλλους διαιρέτες εκτός από τον εαυτό του και το 1 (για να υπάρχει μεγάλος χώρος διαθέσιμων μηνυμάτων) Ιδιότητα 2: η βάση πρέπει να είναι πρωτοβάθμια ρίζα (primitive root) του μεγέθους του ρολογιού, δηλ., οι δυνάμεις της βάσης πρέπει τελικά να λαμβάνουν όλες τις δυνατές τιμές για κάθε πιθανό μέγεθος ρολογιού (για να μπορεί να αξιοποιηθεί ο μεγάλος χώρος διαθέσιμων μηνυμάτων) Ενότητα 4: Ο αλγόριθμος Diffie-Hellman 66
67
Όταν επιλέγεται μέγεθος ρολογιού και βάση για το πρωτόκολλο Diffie-Hellman, πρέπει να πληρούνται συγκεκριμένες μαθηματικές ιδιότητες… Οι 2 και 6 είναι και οι δύο πρωτοβάθμιες ρίζες του 11, αλλά ο 3 δεν είναι – οι δυνάμεις του 3 κάνουν κύκλους στις τιμές 3,9,5,4,1 αλλά χάνουν τις τιμές 2,6,7,8 και 10 Ενότητα 4: Ο αλγόριθμος Diffie-Hellman 67
68
Πώς βρίσκω πρωτοβάθμιες ρίζες του μεγέθους του ρολογιού;
Γενικά είναι δύσκολο πρόβλημα το καλύτερο που μπορώ να κάνω είναι εξαντλητική αναζήτηση Για να κάνω αναζήτηση σε λιγότερα στοιχεία κάνω το εξής: Έστω μέγεθος ρολογιού = 11 Υπολογίζω το 11-1=10 Παραγοντοποιώ το 10=2*5 Υπολογίζω τα πηλίκα: 10/2=5, 10/5=2 Για να είναι ένας αριθμός α είναι πρωτοβάθμια ρίζα του 11, θα πρέπει: α5mod111 και α2mod111 Οπότε δοκιμάζω α=1,2,3,4,5,6,… Ενότητα 4: Ο αλγόριθμος Diffie-Hellman 68
69
αριθμός που έχει μοναδικούς διαιρέτες τον εαυτό του και τη μονάδα
Όταν επιλέγεται μέγεθος ρολογιού και βάση για το πρωτόκολλο Diffie-Hellman, πρέπει να πληρούνται συγκεκριμένες μαθηματικές ιδιότητες… Πρώτος αριθμός αριθμός που μπορεί να γραφτεί σα γινόμενο μόνο του εαυτού του και της μονάδας - ή εναλλακτικά – αριθμός που έχει μοναδικούς διαιρέτες τον εαυτό του και τη μονάδα Π.χ., 2=1x2, 3=1x3, 5=1x5, 7=1x7, κοκ Αριθμοί που δεν είναι πρώτοι καλούνται σύνθετοι Π.χ., 4=2x2, 6=2x3, 8=2x4, 9=3x3, κοκ Ενότητα 4: Ο αλγόριθμος Diffie-Hellman 69
70
Μπορώ να στείλω μόνο 2 κρυπτογραφημένα
ΠΡΟΒΛΗΜΑ: Μπορώ να στείλω μόνο 2 κρυπτογραφημένα μηνύματα τα 1 και 3…και κατά συνέπεια μόνο 2 μηνύματα τα 1 και 2 (όλα τα άλλα στέλνονται με την ίδια κωδικοποίηση…) f(x)=3xmod8 Αποστολέας Παραλήπτης 3 1 Ενότητα 4: Ο αλγόριθμος Diffie-Hellman 70
71
Μονόδρομες (ή μη αντιστρέψιμες) συναρτήσεις
Δεδομένου του x είναι εύκολο να υπολογιστεί το f(x) αλλά δεδομένου του f(x) είναι δύσκολο να υπολογιστεί το x (κατ’ αναλογία με την ανάμειξη χρωμάτων) Π.χ., διακριτός λογάριθμος: το να βρω για ποιο x ισχύει f(x)=αxmodβ (ύψωση σε δύναμη) Υποθέστε ότι α=2 και β=7 Δεδομένο: x=2, εύκολα υπολογίζουμε την f(x)=22mod7=4 Δεδομένο: f(x)=4, είναι δύσκολο να υπολογιστεί το x (αν είναι 1, 2, 3, 4, 5, 6) Δεν υπάρχει απόδειξη ότι το πρόβλημα είναι NP-complete πρόβλημα αλλά δεν έχει προταθεί ακόμα πολυωνυμικός αλγόριθμος για το πρόβλημα x=??? f(x) 4 f(x) 4 x 2 αxmodβ 2xmod7 αxmodβ 2xmod7 ΕΥΚΟΛΟ (ύψωση σε δύναμη) ΔΥΣΚΟΛΟ (διακριτός λογάριθμος) Ενότητα 4: Ο αλγόριθμος Diffie-Hellman 71
72
Μονόδρομες (ή μη αντιστρέψιμες) συναρτήσεις
Δεδομένου του x είναι εύκολο να υπολογιστεί το f(x) αλλά δεδομένου του f(x) είναι δύσκολο να υπολογιστεί το x (κατ’ αναλογία με την ανάμειξη χρωμάτων) Π.χ., παραγοντοποίηση: να βρω ποιοι πρώτοι αριθμοί p και q δίνουν το f(p,q)=p*q (πολλαπλασιασμός) Δεδομένο: p=11 και q=13, εύκολα υπολογίζουμε την f(x)=11*13=143 Δεδομένο: f(p,q)=143, είναι δύσκολο να αναλύσουμε το 143 σε γινόμενο πρώτων παραγόντων (11*13)… Ο μόνος διαθέσιμος τρόπος είναι με δοκιμές σε μεγάλο πλήθος υποψήφιων παραγόντων Δεν υπάρχει απόδειξη ότι το πρόβλημα είναι NP-complete πρόβλημα αλλά δεν έχει προταθεί ακόμα πολυωνυμικός αλγόριθμος για το πρόβλημα x=??? f(p,q) p,q=??? 143 p,q f(p,q) 11,13 143 p*q 11*13 factorize(p*q) factorize(143) ΕΥΚΟΛΟ (γινόμενο ακεραίων) ΔΥΣΚΟΛΟ (παραγοντοποίηση) Ενότητα 4: Ο αλγόριθμος Diffie-Hellman 72
73
Η Eve έστω κι αν γνωρίζει τα Α=gb mod p, Β=ga mod p, p, g
δεν μπορεί να υπολογίσει γρήγορα τα a και b (διακριτός λογάριθμος) ώστε να πάρει το s γιατί ο μόνος τρόπος να το κάνει απαιτεί να ψάξει «όλους» τους πιθανούς εκθέτες a ή b… (που είναι οι τιμές από 1 έως p-1 λόγω του mod) Ενότητα 4: Ο αλγόριθμος Diffie-Hellman 73
74
Ο αλγόριθμος (πρωτόκολλο) Diffie-Hellman για ανταλλαγή κλειδιού
Άλλοι αλγόριθμοι που χρησιμοποιούν δημόσιο κλειδί δουλεύουν διαφορετικά και επιτρέπουν την απευθείας κρυπτογράφηση μηνυμάτων προς συγκεκριμένο παραλήπτη, με χρήση δημόσιας πληροφορίας που ανακοινώνει ο παραλήπτης Αντίθετα, ένας αλγόριθμος ανταλλαγής κλειδιού μάς επιτρέπει τη δημιουργία ενός διαμοιραζόμενου μυστικού με χρήση δημόσιας πληροφορίας από τον παραλήπτη, αλλά η ίδια η κρυπτογράφηση γίνεται μέσω της ιδέας της πρόσθεσης Στο μεγαλύτερο μέρος για επικοινωνία στο internet χρησιμοποιείται η τεχνική που περιγράψαμε επειδή απαιτεί λιγότερο επικοινωνιακό κόστος Υπάρχουν εφαρμογές που απαιτούν πλήρη κρυπτογράφηση με χρήση δημοσίου κλειδιού Από τις πιο ενδιαφέρουσες τέτοιες εφαρμογές είναι οι ψηφιακές υπογραφές όπου μυστική πληροφορία “αναμειγνύεται” δημόσια με μαθηματικά, με μη αναστρέψιμο τρόπο, όπως μη αναστρέψιμα αναμειγνύονται και τα χρώματα… Ενότητα 4: Ο αλγόριθμος Diffie-Hellman 74
75
Ο αλγόριθμος RSA για κρυπτογράφηση με χρήση δημοσίου κλειδιού
Το πιο γνωστό σύστημα κρυπτογράφησης με χρήση δημοσίου κλειδιού είναι το RSA, που ονομάστηκε έτσι από τα αρχικά των επωνύμων των δημιουργών του: Ronald Rivest, Adi Shamir, και Leonard Adleman Ο RSA είναι βασικό συστατικό των ψηφιακών υπογραφών Ενότητα 4: Ο αλγόριθμος Diffie-Hellman 75
76
Ο αλγόριθμος RSA για κρυπτογράφηση με χρήση δημοσίου κλειδιού
Το πιο γνωστό σύστημα κρυπτογράφησης με χρήση δημοσίου κλειδιού είναι το RSA, που ονομάστηκε έτσι από τα αρχικά των επωνύμων των δημιουργών του: Ronald Rivest, Adi Shamir, και Leonard Adleman Ο RSA είναι βασικό συστατικό των ψηφιακών υπογραφών Ενότητα 4: Ο αλγόριθμος Diffie-Hellman 76
77
Αλγόριθμοι Diffie-Hellman και RSA
Ο αλγόριθμος Diffie-Hellman: αλγόριθμος ανταλλαγής κλειδιού (key-exchange algorithm) βασίζεται στη δυσκολία του προβλήματος διακριτού λογαρίθμου Να βρεθεί x για το οποίο ισχύει f(x)=axmodb χρησιμοποιείται για τη δημιουργία διαμοιραζόμενου μυστικού δημόσια Το διαμοιραζόμενο μυστικό (private key) θα χρησιμοποιηθεί αργότερα για κρυπτογράφηση (symmetric encryption) Ομάδα χρηστών συμφωνούν δημόσια σε ένα κοινό μυστικό κλειδί και με αυτό κρυπτογραφούν όλη την επικοινωνία τους μετέπειτα RSA: αλγόριθμος κρυπτογράφησης (asymmetric encryption algorithm) και αλγόριθμος για παραγωγή ψηφιακών υπογραφών βασίζεται στη δυσκολία του προβλήματος παραγοντοποίησης ακεραίων Να βρεθούν p, q για τα οποία ισχύει f(p,q)=p*q χρησιμοποιείται για τη δημιουργία ζεύγους δημόσιου/ιδιωτικού κλειδιού Το δημόσιο κλειδί (public key) χρησιμοποιείται για κρυπτογράφηση (asymmetric encryption) Ο αποστολέας κρυπτογραφεί το μήνυμά του (με το δημόσιο κλειδί του παραλήπτη) Μόνο ο παραλήπτης μπορεί να αποκρυπτογραφήσει το κρυπτογραφημένο μήνυμα (με το ιδιωτικό του κλειδί) Ενότητα 4: Ο αλγόριθμος Diffie-Hellman 77
78
Αλγόριθμοι Diffie-Hellman και RSA
Asymmetric encryption ανταλλαγή κλειδιού Κάνοντας asymmetric encryption κάνω ανταλλαγή κλειδιού Παράγω τυχαίο συμμετρικό κλειδί και το κρυπτογραφώ με το δημόσιο κλειδί του παραλήπτη Με ανταλλαγή κλειδιού μπορώ να κάνω asymmetric encryption Χρησιμοποιώ το κλειδί που προκύπτει από την ανταλλαγή για να κρυπτογραφήσω δεδομένα μέσω ενός συμμετρικού αλγορίθμου, π.χ., AES Ο αλγόριθμος Diffie-Hellman χρησιμοποιείται για ανταλλαγή κλειδιού σε έναν κύκλο επικοινωνίας Ενότητα 4: Ο αλγόριθμος Diffie-Hellman 78
79
Αλγόριθμοι Diffie-Hellman και RSA
Ενότητα 4: Ο αλγόριθμος Diffie-Hellman 79
80
Αλγόριθμοι Diffie-Hellman και RSA
80
81
Ο αλγόριθμος RSA για κρυπτογράφηση με χρήση δημοσίου κλειδιού
Η ιστορία του παρασκηνίου της δημιουργίας αυτών των αλγορίθμων κρυπτογράφησης με χρήση δημοσίου κλειδιού είναι εντυπωσιακή και περίπλοκη Οι Diffie και Hellman ήταν πράγματι οι πρώτοι που δημοσίευσαν τη μέθοδο Diffie- Hellman το 1976 Οι Rivest, Shamir, και Adleman ήταν πράγματι οι πρώτοι που δημοσίευσαν τον αλγόριθμο RSA το 1978 Αλλά η ιστορία δε σταματάει εδώ: Ανακαλύφθηκε εκ των υστέρων ότι η Βρετανική κυβέρνηση γνώριζε ήδη για πολλά χρόνια παραπλήσια συστήματα αλλά – δυστυχώς - οι δημιουργοί αυτών των ιδεών-προγόνων της τεχνικής Diffie-Hellman και του RSA ήταν μαθηματικοί που δούλευαν για τη Βρετανική κυβέρνηση (εργαστήρια επικοινωνιών GCHQ) και τα αποτελέσματα της δουλειάς τους είχαν καταγραφεί σε απόρρητα έγγραφα που δημοσιοποιήθηκαν το 1997… Ενότητα 4: Ο αλγόριθμος Diffie-Hellman 81
82
Ο αλγόριθμος RSA για κρυπτογράφηση με χρήση δημοσίου κλειδιού
Οι αλγόριθμοι RSA, Diffie-Hellman και άλλοι αλγόριθμοι κρυπτογράφησης που κάνουν χρήση δημοσίου κλειδιού δεν είναι μόνο εκπληκτικές ιδέες αλλά έχουν εξελιχθεί σε εμπορικές τεχνολογίες και πρότυπα στο internet με εξαιρετική σημασία για επιχειρήσεις και πρόσωπα Η συντριπτική πλειοψηφία των online συναλλαγών που πραγματοποιούμε καθημερινά δε θα μπορούσαν να ολοκληρωθούν με ασφάλεια χωρίς κρυπτογράφηση δημοσίου κλειδιού Οι δημιουργοί του RSA έκαναν το σύστημά τους πατέντα τη δεκαετία του 1970 η οποία δημοσιοποιήθηκε το 2000 οπότε και πραγματοποιήθηκε δεξίωση στο Great American Music Hall στο San Francisco (τη βραδιά που έληξε η πατέντα)… Ενότητα 4: Ο αλγόριθμος Diffie-Hellman 82
83
Σύνοψη Για αιώνες η Κρυπτογραφία βασιζόταν σε πρωτόκολλα που έκαναν χρήση ιδιωτικού κλειδιού (private-key protocols): Η Alice και ο Bob συναντιούνταν από πριν και διάλεγαν μαζί έναν μυστικό κωδικό με χρήση του οποίου κρυπτογραφούσαν κάθε μελλοντική τους επικοινωνία Η μόνη ελπίδα για την κακιά υποκλοπέα Eve ήταν να συλλέξει κωδικοποιημένα μηνύματα και να τα χρησιμοποιήσει για να εντοπίσει αναλύοντάς τα – τουλάχιστον μερικώς – το μυστικό κωδικό Τεχνικές κρυπτογράφησης με χρήση δημόσιου κλειδιού (public-key schemes) όπως ο αλγόριθμος RSA είναι σαφώς εξυπνότερες: επιτρέπουν στην Alice να στείλει στο Bob ένα μήνυμα χωρίς να απαιτείται να γνωρίζονται από πριν… και η κακιά υποκλοπέας Eve να μη μπορεί να καταλάβει το μήνυμα… Η κεντρική ιδέα του συστήματος κρυπτογράφησης RSA βασίζεται στη σημαντική αντίθεση μεταξύ της ευκολίας εύρεσης μεγάλων πρώτων αριθμών και της δυσκολίας παραγοντοποίησης (factoring) του γινομένου δύο μεγάλων πρώτων αριθμών Ο Bob μπορεί να φτιάξει μια ψηφιακή «κλειδαριά» για την οποία να έχει μόνο αυτός το κλειδί, να την ανακοινώσει δημόσια και να δώσει έτσι στην Alice έναν τρόπο να του στέλνει με ασφάλεια μηνύματα που μόνος αυτός θα μπορεί να ξεκλειδώσει Αυτό ακριβώς συμβαίνει όταν – για παράδειγμα - κάνουμε αγορές στο Internet, και θέλουμε να στείλουμε τον αριθμό της πιστωτικής μας κάρτας σε κάποια εταιρεία Με βάση τον αλγόριθμο RSA, ο Bob πρέπει να κάνει πολύ απλές πράξεις όπως πολλαπλασιασμό για να υλοποιήσει την ψηφιακή κλειδαριά και, επίσης, και η Alice και ο Bob πρέπει να κάνουν πολύ απλές πράξεις για να κλειδώσουν και να ξεκλειδώσουν (αντίστοιχα) τα μηνύματα Αντίθετα, για να ξεκλειδώσει η Eve ένα κλειδωμένο μήνυμα ΧΩΡΙΣ ΝΑ ΕΧΕΙ ΤΟ ΚΛΕΙΔΙ πρέπει να κάνει πολύ δύσκολες υπολογιστικά πράξεις όπως η ανάλυση μεγάλων αριθμών σε γινόμενα πρώτων παραγόντων οι οποίες απαιτούν υπολογιστική ισχύ μεγαλύτερη από αυτή του ισχυρότερου υπαρκτού υπολογιστή… Ενότητα 4: Ο αλγόριθμος Diffie-Hellman 83
84
Τέλος Ενότητας
85
Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στo πλαίσιo του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα στο Πανεπιστήμιο Αθηνών» έχει χρηματοδοτήσει μόνο την αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους. 85
86
Σημειώματα 86
87
Σημείωμα Ιστορικού Εκδόσεων Έργου
Το παρόν έργο αποτελεί την έκδοση Έχουν προηγηθεί οι κάτωθι εκδόσεις: 87
88
Σημείωμα Αναφοράς Copyright Πανεπιτήμιο Πατρών, Εύη Παπαϊωάννου. «Εισαγωγή στους Αλγόριθμους. O αλγόριθμος Diffie-Hellman». Έκδοση: 1.0. Πάτρα Διαθέσιμο από τη δικτυακή διεύθυνση: 88
89
Σημείωμα Αδειοδότησης
Το παρόν υλικό διατίθεται με τους όρους της άδειας χρήσης Creative Commons Αναφορά, Μη Εμπορική Χρήση Παρόμοια Διανομή 4.0 [1] ή μεταγενέστερη, Διεθνής Έκδοση. Εξαιρούνται τα αυτοτελή έργα τρίτων π.χ. φωτογραφίες, διαγράμματα κ.λ.π., τα οποία εμπεριέχονται σε αυτό και τα οποία αναφέρονται μαζί με τους όρους χρήσης τους στο «Σημείωμα Χρήσης Έργων Τρίτων». [1] Ως Μη Εμπορική ορίζεται η χρήση: που δεν περιλαμβάνει άμεσο ή έμμεσο οικονομικό όφελος από την χρήση του έργου, για το διανομέα του έργου και αδειοδόχο που δεν περιλαμβάνει οικονομική συναλλαγή ως προϋπόθεση για τη χρήση ή πρόσβαση στο έργο που δεν προσπορίζει στο διανομέα του έργου και αδειοδόχο έμμεσο οικονομικό όφελος (π.χ. διαφημίσεις) από την προβολή του έργου σε διαδικτυακό τόπο Ο δικαιούχος μπορεί να παρέχει στον αδειοδόχο ξεχωριστή άδεια να χρησιμοποιεί το έργο για εμπορική χρήση, εφόσον αυτό του ζητηθεί. 89
90
Διατήρηση Σημειωμάτων
Οποιαδήποτε αναπαραγωγή ή διασκευή του υλικού θα πρέπει να συμπεριλαμβάνει: το Σημείωμα Αναφοράς το Σημείωμα Αδειοδότησης τη δήλωση Διατήρησης Σημειωμάτων το Σημείωμα Χρήσης Έργων Τρίτων (εφόσον υπάρχει) μαζί με τους συνοδευόμενους υπερσυνδέσμους. 90
91
Σημείωμα Χρήσης Έργων Τρίτων
Το Έργο αυτό κάνει χρήση των ακόλουθων έργων: Εικόνες/Σχήματα/Διαγράμματα/Φωτογραφίες 9 Αλγόριθμοι που άλλαξαν το μέλλον. John MacCormick. Επιστημονική επιμέλεια Ελληνικής έκδοσης: Εύη Παπαϊωάννου. Πανεπιστημιακές Εκδόσεις Κρήτης, 2015 (υπό έκδοση). ISBN Κωδικός Βιβλίου στον Εύδοξο: 91
Παρόμοιες παρουσιάσεις
© 2024 SlidePlayer.gr Inc.
All rights reserved.