Κρυπτογράφηση με χρήση Δημοσίου Κλειδιού (Public Key Cryptography PKC)
Σύνοψη Πρόβλημα: θέλωναστείλωμήνυμασεκάποιον δημόσια χωρίς να μπορούν να το καταλάβουν οι άλλοι Λύση: το κωδικοποιώ Γνωρίζω τον παραλήπτη: συμφωνώ από πριν μαζί του στη χρήση κάποιου μυστικού κλειδιού γνωστού και στους δυο μας όχι ασφαλές Δε γνωρίζω τον παραλήπτη: κωδικοποιώ το μήνυμα ώστε να μην το καταλαβαίνουν οι άλλοι αλλά τότε δεν το καταλαβαίνει ούτε ο παραλήπτης 2
Σύνοψη Πρόβλημα: θέλωναστείλωμήνυμασεκάποιον δημόσια χωρίς να μπορούν να το καταλάβουν οι άλλοι Γενικά: δε γνωρίζω τον παραλήπτη και θέλω να συμφωνήσω μαζί του με δημόσια επικοινωνία σε μυστικό κωδικό που να τον ξέρουμε μόνο οι δυο μας Ανάμειξη χρωμάτων: ο αντίπαλος «δεν μπορεί» να κάνει ξε ανακάτεμα χρωμάτων Πολλαπλασιασμός: ο αντίπαλος «δεν μπορεί» να κάνει διαίρεση (μη ρεαλιστικό) Ύψωση σε δύναμη: ο αντίπαλος «δεν μπορεί» να κάνει παραγοντοποίηση (ρεαλιστικό με την τρέχουσα τεχνολογία) 3
Το πρόβλημα Μάς αρέσει να κουτσομπολεύουμε και να μοιραζόμαστε μυστικά και επειδή στόχος της κρυπτογράφησης είναι η επικοινωνία μυστικών, είμαστε από τη φύση μας σε θέση να κρυπτογραφούμε Δεν συμβαίνει το ίδιο με τους υπολογιστές Μεταφέρουμε ένα μυστικό σε έναν φίλο με το να του το ψιθυρίσουμε στο αυτί του... Ένας υπολογιστής δεν μπορεί να ψιθυρίσει έναν αριθμό πιστωτικής κάρτας σε έναν άλλο υπολογιστή Ειδικά αν είναι συνδεδεμένοι στο internet, δεν μπορούν να ελέγξουν από πού περνάει ο αριθμός της πιστωτικής κάρτας ούτε ποιοι άλλοι υπολογιστές μπορούν να τον μάθουν/υποκλέψουν Στη συνέχεια, θα δούμε πώς λύνεται το πρόβλημα αυτό για τους υπολογιστές με χρήση μιας από τις πιο εντυπωσιακές ιδέες της επιστήμης των υπολογιστών: της κρυπτογράφησης με χρήση δημοσίου κλειδιού (public key cryptography) 4
Το πρόβλημα 5
στέλνοντας μυστικά σε μία κάρτ ποστάλ Το φανταζόμαστε σαν αναλογία για να κατανοήσουμε τη δύναμη της κρυπτογράφησης με χρήση δημοσίου κλειδιού Στα αλήθεια, αν θέλαμε να στείλουμε σε κάποιον ένα εμπιστευτικό έγγραφο, θα το βάζαμε σε έναν φάκελο και θα τον κλείναμε καλά πριν τον στείλουμε Αυτό δεν εγγυάται σώνει και καλά διατήρηση του απορρήτου, αλλά είναι μια λογική προσέγγιση Αν επιλέξουμε να γράψουμε το εμπιστευτικό μήνυμα σε μια καρτ ποστάλ, προφανώς το απόρρητο παραβιάζεται: οποιοσδήποτε πιάνει την καρτ ποστάλ (π.χ., ταχυδρόμος) μπορεί να διαβάσει το μήνυμα: αυτό είναι το πρόβλημα που αντιμετωπίζει ένας υπολογιστής όταν προσπαθεί να επικοινωνήσει εμπιστευτικά με κάποιον άλλον υπολογιστή στο internet Επειδή κάθε μήνυμα στο internet ταξιδεύει μέσα από πολλούς υπολογιστές που λέγονται δρομολογητές (routers), οποιοσδήποτε έχει πρόσβαση σε αυτούς τους δρομολογητές (συμπεριλαμβανομένων κακόβουλων υποκλοπέων) μπορεί να δει το περιεχόμενο του μηνύματος Επομένως, κάθε κομματάκι πληροφορίας που φεύγει από τον υπολογιστή και διοχετεύεται στο internet πρέπει να αντιμετωπίζεται σαν να είναι γραμμένο σε μία καρτ ποστάλ! 6
στέλνοντας μυστικά σε μία κάρτ ποστάλ 7
στέλνοντας μυστικά σε μία κάρτ ποστάλ 8
Λύση;;; Γιατί να μην χρησιμοποιήσουμε έναν μυστικό κωδικό για να κρυπτογραφήσουμε το κάθε μήνυμα πριν το γράψουμε στην καρτ ποστάλ; Αυτό θα δούλευε αν ήδη γνωρίζουμε τον παραλήπτη της καρτ ποστάλ αφού θα μπορούσαμε να έχουμε συμφωνήσει (στο παρελθόν) να χρησιμοποιούμε κάποιον μυστικό κωδικό που θα γνωρίζαμε και οι δύο Και πάλι δεν είναι εγγυημένο το αδιάβλητο της επικοινωνίας (γιατί;) Το πραγματικό πρόβλημα προκύπτει όταν στέλνουμε την καρτ ποστάλ σε παραλήπτη που δεν γνωρίζουμε: αν χρησιμοποιήσουμε μυστικό κωδικό για να κρυπτογραφήσουμε το μήνυμα στην καρτ ποστάλ, οι ταχυδρόμοι δεν θα μπορούν να διαβάσουν το μήνυμα, αλλά δεν θα μπορεί να το διαβάσει ούτε ο παραλήπτης! 9
Κώδικας του (Ιουλίου) Καίσαρα Κάθε γράμμα του κειμένου αντικαθίσταται από ένα άλλο που βρίσκεται σε σταθερή απόσταση στο αλφάβητο Στον κώδικα του Καίσαρα χρησιμοποιείται μετατόπιση τριών θέσεων: B στο πρωτότυπο κείμενο γίνεται E στο κρυπτογραφημένο κείμενο ΣΗΜΕΡΑ ΕΙΝΑΙ ΩΡΑΙΑ ΜΕΡΑ ΦΚΟΘΥΔ ΘΜΠΔΜ ΓΥΔΜΔ ΟΘΥΔ Α Δ Β Ε Γ Ζ Δ Η Ε Θ Ζ Ι Η Κ Θ Λ Ι Μ Κ Ν Λ Ξ Μ Ο Ν Π Ξ Ρ Ο Σ Π Τ Ρ Υ Σ Φ Τ Χ Υ Ψ Φ Ω Χ Α Ψ Β Ω Γ 10
Κώδικας του (Ιουλίου) Καίσαρα Ο κώδικας αυτός «σπάει» εύκολα (Α) Πόσες πιθανές μετατοπίσεις υπάρχουν; 24 (ελληνικά), 26 (αγγλικά) Μπορώ γρήγορα να τις δοκιμάσω όλες και να αποκρυπτογραφήσω το μήνυμα 11
Κώδικας του (Ιουλίου) Καίσαρα Ο κώδικας αυτός «σπάει» εύκολα (Β) Ανάλυση συχνότητας: εντοπίζω τα συχνότερα χρησιμοποιούμενα γράμματα και στα δύο κείμενα και υπολογίζω τη μετατόπιση που χρησιμοποιείται Υπάρχουν πίνακες με τις συχνότητες εμφάνισης των γραμμάτων κάθε γλώσσας: έστω στα ελληνικά το Α είναι το πιο συχνά χρησιμοποιούμενο γράμμα Παρατηρώ ότι στο κρυπτογραφημένο (κόκκινο) κείμενο το πιο συχνά εμφανιζόμενο γράμμα είναι το Δ (μπλε) Συμπεραίνω ότι το Δ κρυπτογραφεί το Α χρησιμοποιείται μετατόπιση = 3 ΣΗΜΕΡΑ ΕΙΝΑΙ ΩΡΑΙΑ ΜΕΡΑ ΦΚΟΘΥΔ ΘΜΠΔΜ ΓΥΔΜΔ ΟΘΥΔ Εφαρμόζω μετατόπιση 3 σεόλοτοκρυπτογραφημένοκείμενοκαι λαμβάνω το αρχικό 12
Λύση;;; 13
Λύση;;; Η δύναμη της κρυπτογράφησης με χρήση δημοσίου κλειδιού συνίσταται στο ότι επιτρέπει τη δημιουργία μυστικών κωδικών που μόνο ο παραλήπτης μπορεί να αποκρυπτογραφήσει παρά το ότι δεν μπορούμε να συμφωνήσουμε από πριν με τον παραλήπτη για το ποιος είναι ο μυστικός κωδικός Οι υπολογιστές αντιμετωπίζουν το ίδιο πρόβλημα όταν επικοινωνούν με παραλήπτες που δεν γνωρίζουν Όταν αγοράζουμε για πρώτη φορά από το Amazon.com χρησιμοποιώντας την πιστωτική μας κάρτα, ο υπολογιστής μας πρέπει να τον μεταδώσει στον εξυπηρετητή της Amazon Αλλά οι δύο υπολογιστές δεν έχουν επικοινωνήσει ξανά στο παρελθόν οπότε αποκλείεται να έχουν συμφωνήσει στη χρήση κάποιου μυστικού κωδικού Και κάθε συμφωνία που θα προσπαθήσουν να κάνουν είναι φανερή σε όλους τους δρομολογητές που μεσολαβούν μεταξύ αυτών των δύο υπολογιστών 14
Ανάγκη για κρυπτογράφηση Η εκπληκτική ανάπτυξη του εμπορίου στο web κατέστη δυνατή λόγω της δυνατότητας αποστολής απόρρητων πληροφοριών (όπως π.χ., αριθμοί πιστωτικών καρτών) χωρίς να αποκαλύπτονται και με ασφάλεια στο Διαδίκτυο Το γεγονός ότι μπορεί να εγκαθιδρυθεί ασφαλής επικοινωνία πάνω από κανάλια «ανοιχτής πρόσβασης» θεωρούταν για δεκαετίες μη επιλύσιμο πρόβλημα Όταν βρέθηκε η λύση, αποδείχθηκε ότι ήταν εξαιρετικά κομψή 15
Κρυπτογράφηση με διαμοιραζόμενο μυστικό Υποθέστε ότι επιτρέπεται η προφορική επικοινωνία σε ένα δωμάτιο όπου είμαστεμετοφίλομαςarnold και με την κακιά Eve και επιθυμούμε να πούμε κάτι στον Arnold π.χ., έναν αριθμό μεταξύ του 1 και του 9, ας πούμε τον 7 χωρίς η Eve να μπορεί να το καταλάβει δεδομένου ότι μπορούμε να μιλάμε στον Arnold μόνο δυνατά ώστε η Eve να μπορεί να ακούει (δεν επιτρέπονται ψιθυρίσματα ούτε σημειωματάκια) Σκεφτόμαστε κάποιον αριθμό που γνωρίζει ο Arnold και δε γνωρίζει η Eve: ας πούμε ότι όταν ήμασταν μικροί παίζαμε με τον Arnold έξω από ένα σπίτι στην οδό Πανεπιστημίου 322 (υποθέτουμε ότι η Eve δε μάς ήξερε όταν ήμασταν μικροί) Λέμε δυνατά στον Arnold: Θυμάσαι την οδό του σπιτιού που παίζαμε όταν ήμασταν μικροί; Ανπάρειςαυτόντοναριθμόκαιτουπροσθέσεις αυτόν που θέλω να σου πω θα προκύψει ο αριθμός 329 Υποθέτοντας ότι ο Arnold θυμάται σωστά την οδό που παίζαμε, θα καταλάβει τον αριθμό που σκεφτήκαμε αν από το 329 αφαιρέσει τον αριθμό της οδού, δηλ., τον 322: 329 322=7 Εν τω μεταξύ, η Eve δεν μπορεί να καταλάβει τον αριθμό παρά το ότι άκουσε τη φράση που δυνατά είπαμε στον Arnold 16
Κρυπτογράφηση με διαμοιραζόμενο μυστικό Θέλω να μεταφέρω τον αριθμό 7 στον Arnold χωρίς να το καταλάβει η κακιά Eve Κάθε επικοινωνία πρέπει να είναι δημόσια Αν στον αριθμό της οδού που ήταν το bar που πήγαμε χτες προσθέσεις τον αριθμό που θέλω να σου πω θα προκύψει ο αριθμός 329 Η Eve δεν ξέρει που πήγαμε χτες Ο Arnold υπολογίζει 329 322=7 322: διαμοιραζόμενο μυστικό 329: κρυπτογραφημένο μήνυμα μέσω πρόσθεσης 17
Κρυπτογράφηση με διαμοιραζόμενο μυστικό Πώς είναι δυνατόν να δημιουργήσουμε και να διακινήσουμε δημόσια ένα μυστικό που να γνωρίζουμε μόνο εμείς και κάποιος άλλος; Η ιδέα με την πρόσθεση: Κρυπτογραφούμε το μήνυμα 7 προσθέτοντάς του το διαμοιραζόμενο μυστικό, 322. Ο Arnold μπορεί να το αποκρυπτογραφήσει αφαιρώντας το διαμοιραζόμενο μυστικό, αλλά η Eve δεν μπορεί 18
Κρυπτογράφηση με διαμοιραζόμενο μυστικό Γιατί δουλεύει η μέθοδος αυτή; Εμείς και ο Arnold διαθέτουμε ένα διαμοιραζόμενο μυστικό: τον αριθμό 322. Επειδή και οι δύο γνωρίζουμε τον αριθμό αυτόν αλλά δεν τον γνωρίζει η Eve, μπορούμε να χρησιμοποιούμε αυτό το διαμοιραζόμενο μυστικό για να μεταδίδουμε μεταξύ μας οποιοδήποτε αριθμό θέλουμε: τον προσθέτουμε στο διαμοιραζόμενο μυστικό, ανακοινώνουμε δημόσια το άθροισμα ο παραλήπτης αφαιρεί το διαμοιραζόμενο μυστικό και καταλαβαίνει τον αριθμό που διαλέξαμε ενώ η Eve παρά το ότι ακούει το άθροισμα δεν μπορεί να τον καταλάβει αφού δε γνωρίζει ποιον αριθμό πρέπει να αφαιρέσει Σε αυτή την απλή ιδέα με την πρόσθεση ενός διαμοιραζόμενου μυστικού σε ένα ιδιωτικό μήνυμα βασίζεται εν πολλοίς η λειτουργία της κρυπτογράφησης στο internet: οι υπολογιστές χρησιμοποιούν συνεχώς το κόλπο αυτό εμπλουτισμένο με κάποιες επιπλέον λεπτομέρειες ώστε η επικοινωνία να είναι πραγματικά ασφαλής 19
Κρυπτογράφηση με διαμοιραζόμενο μυστικό: στην πράξη; Οι διαμοιραζόμενοι κωδικοί που χρησιμοποιούν οι υπολογιστές είναι πολύ μεγαλύτεροι από τον αριθμό 322 της οδού που αναφέραμε: αν οι κωδικοί είναι πολύ μικροί, οποιοσδήποτε υποκλέπτει τη «συζήτηση» μπορεί εύκολα να δοκιμάσει όλες τις πιθανές εκδοχές Υποθέστε ότι χρησιμοποιούμε έναν 3 ψήφιο αριθμό οδού για να κρυπτογραφήσουμε έναν πραγματικό 16 ψήφιο αριθμό πιστωτικής κάρτας χρησιμοποιώντας την ιδέα με την πρόσθεση που περιγράψαμε Υπάρχουν 999 πιθανοί τριψήφιοι αριθμοί οδών, οπότε η κακιά Eve που ακούει τη συζήτησή μας μπορεί να φτιάξει μια λίστα με 999 πιθανούς αριθμούς, ένας από τους οποίους θα είναι και ο αριθμός της πιστωτικής μας κάρτας (με έναν υπολογιστή μπορούμε σε κλάσματα του δευτερολέπτου να δοκιμάσουμε τους 999 αριθμούς πιστωτικών καρτών, οπότε τριψήφιοι κωδικοί δεν επαρκούν για να δώσουν χρήσιμα διαμοιραζόμενα μυστικά ) 20
Κρυπτογράφηση με διαμοιραζόμενο μυστικό: στην πράξη; Αν ακούσετε ότι η κρυπτογράφηση χρησιμοποιεί συγκεκριμένο αριθμό bits, όπως π.χ., 128 bit encryption, αυτό δηλώνει το πόσα ψηφία έχει το διαμοιραζόμενο μυστικότοοποίοκαλείται κλειδί key επειδή χρησιμοποιείται για να ξεκλειδώσει ή αλλιώς να αποκρυπτογραφήσει ένα μήνυμα Το 30% του αριθμού των ψηφίων του κλειδιού δείχνει κατά προσέγγιση τον αριθμό των ψηφίων στο κλειδί: 30% του 128 είναι περίπου 38, οπότε ξέρουμε ότι η 128 bit κρυπτογράφηση χρησιμοποιεί κλειδί που είναι ένας αριθμός με 38 ψηφία ένας αριθμός με 38 ψηφία είναι μεγαλύτερος από έναν δις δις δις δις και επειδή ένας υπολογιστής χρειάζεται δισεκατομμύρια χρόνια για να δοκιμάσει τόσες πολλές εκδοχές ένα διαμοιραζόμενο μυστικό με 38 ψηφία θεωρείται πολύ ασφαλές 21
Κρυπτογράφηση με διαμοιραζόμενο μυστικό: στην πράξη; Αν ακούσετε ότι η κρυπτογράφηση χρησιμοποιεί συγκεκριμένο αριθμό bits, όπως π.χ., 128 bit encryption, αυτό δηλώνει τοαναφερόμαστε πόσα ψηφίασεέχει δεκαδικά το διαμοιραζόμενο ψηφία όχι μυστικότοοποίοκαλείται κλειδί σε δυαδικά (bits). Το ποσοστό key 30% επειδή για χρησιμοποιείταιμετατροπή για να ξεκλειδώσει από bits δεκαδικά ή αλλιώς ψηφία να αποκρυπτογραφήσει (δίνεται ένα δυαδικός μήνυμα αριθμός: πόσα ψηφία Το 30% του αριθμού χρειάζονται των ψηφίων για να γραφτεί τουστο κλειδιού δείχνει κατά προσέγγιση τον αριθμό δεκαδικό σύστημα) των ψηφίων προέρχεται στοαπό κλειδί: το 30% του 128 είναι περίπου 38, ότι: log10 οπότε2 ξέρουμε 0.3. ότι η 128 bit κρυπτογράφηση χρησιμοποιεί κλειδί που είναι ένας αριθμός με 38 ψηφία ένας αριθμός με 38 ψηφία είναι μεγαλύτερος από έναν δις δις δις δις και επειδή ένας υπολογιστής χρειάζεται δισεκατομμύρια χρόνια για να δοκιμάσει τόσες πολλές εκδοχές, ένα διαμοιραζόμενο μυστικό με 38 ψηφία θεωρείται πολύ ασφαλές 22
Παράδειγμα 10011001 = 1+2 3 +2 4 +2 7 =1+8+16+128=153 Ο 10011001 έχει μήκος 8 ψηφίων και είναι στο δυαδικό Ο 153 έχει μήκος 3 ψηφίων και είναι στο δεκαδικό σύστημα Για να αναπαραστήσω ένα δυαδικό αριθμό με 8 ψηφία στο δεκαδικό σύστημα χρειάστηκα: log102*8 0,3*8=2,4 3 ψηφία 11110011001 = 1+2 3 +2 4 +2 7 +2 8 +2 9 +2 10 =1+8+16+128+256+512+1024=1945 Ο 10011001 έχει μήκος 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 23
Κρυπτογράφηση με διαμοιραζόμενο μυστικό: στην πράξη; Επειδή τα αποτελέσματα που παράγει η πρόσθεση μπορούν να αναλυθούν στατιστικά με παρατήρηση μεγάλου πλήθους κρυπτογραφημένων μηνυμάτων, σύγχρονες μέθοδοι κρυπτογράφησης που καλούνται block ciphers χρησιμοποιούν μια παραλλαγή της ιδέας της πρόσθεσης: Μεγάλα μηνύματα κόβονται σε μικρά blocks συγκεκριμένου μεγέθους (συνήθως 10 15 χαρακτήρων). Μετά, αντί μόνο να προσθέσουμε κάθε block του μηνύματος με το κλειδί, κάθε block μετατρέπεται πολλές φορές με συγκεκριμένες πράξεις όπως η πρόσθεση έτσι ώστε το μήνυμα και το κλειδί να αναμειχθούν πολύ καλά Π.χ., ένας κανόνας μπορεί να είναι: πρόσθεσε το πρώτο μισό του κλειδιού στο δεύτερο μισό του block, ανάστρεψε το αποτέλεσμα και πρόσθεσε το δεύτερο μισό του κλειδιού στο δεύτερομισότουblock Στην πραγματικότητα τέτοιοι κανόνες είναι εξαιρετικά πολύπλοκοι: σύγχρονες τεχνικές με block ciphers χρησιμοποιούν 10 ή παραπάνω γύρους μετατροπών ώστε το μήνυμα αναμειγμένο με το κλειδί να είναι εξαιρετικά δύσκολο να αναλυθεί με στατιστικούς ελέγχους και να αποκρυτπογραφηθεί Η πιο δημοφιλής τεχνική block cipher είναι η Advanced Encryption Standard (AES): στην πιο τυπική της έκδοση χρησιμοποιεί blocks των16 χαρακτήρων, κλειδιά των 128 bit και 10 γύρους λειτουργιών ανάμειξης 24
Πώς δημιουργείται δημόσια ένα διαμοιραζόμενο κλειδί; Η κρυπτογράφηση στο internet βασίζεται στη κατάτμηση του μηνύματος σε blocks και σε χρήση παραλλαγής της ιδέας της πρόσθεσης για κρυπτογράφηση κάθε block Αλλά πώς δημιουργείται το διαμοιραζόμενο μυστικό; Στο παράδειγμα υποθέσαμε ότι ήμασταν φίλοι με τον Arnold και η Eve δεν μάς γνώριζε Τι γίνεται αν είμαστε εντελώς ξένοι με τον Arnold και την Eve και παίζαμε το ίδιο παιχνίδι; Μπορούμε να δημιουργήσουμε ένα διαμοιραζόμενο μυστικό; Αν και εκ πρώτης όψεως φαίνεται αδύνατο, αποδεικνύεται ότι υπάρχει ένας πολύ έξυπνος τρόπος που λύνει το πρόβλημα: η λύση αποκαλείται ανταλλαγή κλειδιού Diffie Hellman εμείς θα την αναφέρουμε σαν ιδέα ανάμειξης χρωμάτων 25
Η ιδέα της ανάμειξης χρωμάτων Βήμα 1: Διαλέγουμε ο καθένας ένα ιδιωτικό χρώμα 26
Η ιδέα της ανάμειξης χρωμάτων Βήμα 2: Ένας από εμάς ανακοινώνει δημόσια τα συστατικά ενός νέου, διαφορετικού χρώματος που καλείται δημόσιο χρώμα 27
Η ιδέα της ανάμειξης χρωμάτων Δημιουργούμε και δημοσιοποιούμε ο καθένας μια μίξη συνδυάζοντας ένα ποτήρι του δημόσιου χρώματος με ένα ποτήρι του ιδιωτικού μας χρώματος παράγοντας ένα δημόσιο ιδιωτικό μείγμα + = + = 28
Η ιδέα της ανάμειξης χρωμάτων Βήμα 4: Λαμβάνουμε μια ποσότητα από το δημόσιο ιδιωτικό χρώμα του Arnold, τη μεταφέρουμε στο μέρος μας και προσθέτουμε ένα ποτήρι του δικού μας ιδιωτικού χρώματος (το ίδιο κάνει και ο Arnold: λαμβάνει μια ποσότητα από το δημόσιο ιδιωτικό χρώμα μας, τη μεταφέρει στο μέρος του και προσθέτει ένα ποτήρι του δικού του ιδιωτικού χρώματος) + = + = 29
Η ιδέα της ανάμειξης χρωμάτων Βήμα 4: Λαμβάνουμε μια ποσότητα από το δημόσιο ιδιωτικό χρώμα του Arnold, τη μεταφέρουμε στο μέρος μας και προσθέτουμε ένα ποτήρι του δικού μας ιδιωτικού χρώματος (το ίδιο κάνει και ο Arnold: λαμβάνει μια ποσότητα από το δημόσιο ιδιωτικό χρώμα μας, τη μεταφέρει στο μέρος του και προσθέτει ένα ποτήρι του δικού του ιδιωτικού χρώματος) + =????? + = 30
Η ιδέα της ανάμειξης χρωμάτων 31
Ανάμειξη χρωμάτων με αριθμούς Βήμα 1: Αντί να διαλέξετε ένα ιδιωτικό χρώμα εσύ και ο Arnold διαλέγετε ο καθένας έναν ιδιωτικό αριθμό (π.χ., 6 και 4, αντίστοιχα) Βήμα 2: Ένας από εσάς ανακοινώνει έναν δημόσιο αριθμό αντί για ένα δημόσιο χρώμα που είπαμε πριν (π.χ., 7) Βήμα 3: Πολλαπλασίασε τον ιδιωτικό σου αριθμό (π.χ., 6) με το δημόσιο αριθμό (π.χ., 7) για να προκύψει ο δημόσιοςιδιωτικός αριθμός σου, δηλ., ο 42 Βήμα 4: Λαμβάνεις το δημόσιο ιδιωτικό αριθμό του Arnold, που είναι ο 28, και τον πολλαπλασιάζεις με το δικό σου ιδιωτικό αριθμό, δηλ., τον 6, για να προκύψει ο κοινός (δημόσια διαμοιραζόμενος) μυστικός αριθμός, δηλ., ο 168 32
Η ιδέα της ανάμειξης χρωμάτων με αριθμούς Βήμα 1: Διαλέγουμε ο καθένας έναν ιδιωτικό αριθμό 4 6 33
Η ιδέα της ανάμειξης χρωμάτων με αριθμούς Βήμα 2: Ένας από εμάς ανακοινώνει δημόσια έναν δημόσιο αριθμό 4 6 7 34
Η ιδέα της ανάμειξης χρωμάτων με αριθμούς Βήμα 3: Πολλαπλασιάζουμε ο καθένας το δημόσιο αριθμό με τον ιδιωτικό μας αριθμό παράγοντας ένα δημόσιο ιδιωτικό αριθμό 4x7=28 28 6x7=42 42 7 35
Η ιδέα της ανάμειξης χρωμάτων με αριθμούς Βήμα 4: Λαμβάνουμε το δημόσιο ιδιωτικό αριθμό του Arnold, που είναι ο 42, και τον πολλαπλασιάζουμε με το δικό μας ιδιωτικό αριθμό, δηλ., τον 4, για να προκύψει ο κοινός (δημόσια διαμοιραζόμενος) μυστικός αριθμός, δηλ., ο 168 4x7=28 4x42=168 4x7x6=168 28 42 7 6x7=42 6x28=168 4x7x6=168 36
Η ιδέα της ανάμειξης χρωμάτων με αριθμούς Βήμα 4: Λαμβάνουμε το δημόσιο ιδιωτικό αριθμό του Arnold, που είναι ο 42, και τον πολλαπλασιάζουμε με το δικό μας ιδιωτικό αριθμό, δηλ., τον 4, για να προκύψει ο κοινός (δημόσια διαμοιραζόμενος) μυστικός αριθμός, δηλ., ο 168 4x7=28 4x42=168 4x7x6=168 28 42 168??? 7 6x7=42 6x28=168 4x7x6=168 37
Ανάμειξη χρωμάτων με αριθμούς 38
Η ανάμειξη χρωμάτων στην πραγματικότητα Δεν μπορώ να «ξε ανακατέψω χρώματα»= δεν μπορώ να κάνω διαίρεση Απλή λειτουργία που είναι εύκολο να υλοποιηθεί (όπως το ανακάτεμα χρωμάτων) αλλά δύσκολο να αναιρεθεί (όπως το ξε ανακάτεμα χρωμάτων): ανακάτεμα χρωμάτων: ύψωση σε ακέραια δύναμη (discrete exponentiation) ξε ανακάτεμα χρωμάτων: λογαρίθμηση με ακέραια βάση (discrete logarithm) Δεν υπάρχει γνωστή μέθοδος που να επιτρέπει σε έναν υπολογιστή να υπολογίσει διακριτούς λογαρίθμους αποδοτικά Αριθμητική με χρήση ρολογιού (clock arithmetic): κάθε αριθμός απεικονίζεται στο υπόλοιπο που αφήνει η διαίρεσή του με το μέγεθος του ρολογιού Χρήση ύψωσης σε δύναμη: 6 6 6 6 = 6 4 PPN = βάση ιδιωτικός αριθμός (μέγεθος ρολογιού) 39
Σκεφτείτε τα εξής ΠΑΡΑΤΗΡΗΣΗ 1: Αν σας πω ότι το υπόλοιπο της διαίρεσης ενός αριθμού Χ με το 3 είναι 2, μπορείτε να μου πείτε ποιος είναι ο Χ;;;; ΠΑΡΑΤΗΡΗΣΗ 2: Αν σας πω ότι κρατάω (Λίστα 1) τα πιθανά υπόλοιπα της διαίρεσης ενός αριθμού με το 3, πόσες τιμές κρατάω; Αν κρατάω (Λίστα 2) τα πιθανά υπόλοιπα της διαίρεσης ενός αριθμού με το 1023, πόσες τιμές κρατάω;;;;;; 40
Σκεφτείτε τα εξής ΠΑΡΑΤΗΡΗΣΗ 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,3333333 Η δεύτερη λίστα περιέχει τους αριθμούς 0, 1 1022 Διαλέγω το 0 (ή το1 ή ήτο1022) με πιθανότητα 1/1023 Διαλέγετε το 0 (ή το1 ή ήτο1022) με πιθανότητα 1/1023 Διαλέγουμε και οι δύο το 0 (ή το1 ή ήτο1022) με πιθανότητα 1/1023 * 1/1023 = 1/1.046.529 Διαλέγουμε και οι δύο το ίδιο νούμερο (ή το1 ή ήτο1022) με πιθανότητα 1023*1/1.046.529 = 1/1023=0,000977517 41
Αριθμητική με χρήση ρολογιού Με χρήση ρολογιού μεγέθους 7, ο αριθμός 12 απλοποιείται στον αριθμό 5: ξεκινάμε από το 0 και μετράμε 12 μονάδες κατά τη φορά του ρολογιού Με χρήση ρολογιού μεγέθους 7, βρίσκουμε ότι 12 + 6 = 4: ξεκινάμε από το 5 (που τελείωσε ο αριθμός 12) και προσθέτουμε άλλες 6 μονάδες κατά τη φορά του ρολογιού 42
Αριθμητική με χρήση ρολογιού Οι πρώτες δέκα δυνάμεις του 2, 3 και 6 με χρήση ρολογιού μεγέθους 11. Κάθε απάντηση υπολογίζεται από την προηγούμενή της με απλή αριθμητική 43
Αριθμητική με χρήση ρολογιού Οι πρώτες δέκα δυνάμεις του 2, 3 και 6 με χρήση ρολογιού μεγέθους 11. Κάθε απάντηση υπολογίζεται από την προηγούμενή της με απλή αριθμητική ΕΝΔΙΑΦΕΡΟΥΣΑ ΠΑΡΑΤΗΡΗΣΗ: έξυπνος συνδυασμός βάσης μεγέθους ρολογιού δίνει τη δυνατότητα δημιουργίας περισσότερων χρήσιμων αποτελεσμάτων, δηλ., «μηνυμάτων» 44
Η ανάμειξη χρωμάτων στην πραγματικότητα Βήμα 1: Εσύ και ο Arnold διαλέγετε ο καθένας έναν ιδιωτικό αριθμό (μικρότερο από το μέγεθος του ρολογιού) Βήμα 2: Εσύ και ο Arnold συμφωνείτε δημόσια σε δύο δημόσιους αριθμούς: ένα μέγεθος ρολογιού (χρησιμοποιούμε το 11 στο παράδειγμα) και έναν άλλο αριθμό που καλείται βάση (χρησιμοποιούμε σα βάση το 2) Βήμα 3: Εσύ και ο Arnold ο καθένας χωριστά δημιουργείτε έναν δημόσιο ιδιωτικό αριθμό (PPN) αναμειγνύοντας τον ιδιωτικό σας αριθμό με τους δημόσιους, με χρήση δυνάμεων και αριθμητικής με χρήση ρολογιού Βήμα 4: Εσύ και ο Arnold ο καθένας χωριστά λαμβάνετε ο ένας το δημόσιο ιδιωτικό αριθμό του άλλου και τον αναμειγνύετε με το δικό σας ιδιωτικό αριθμό 45
Πώς δημιουργούμε μια δημόσια κλειδαριά με αριθμούς; 8 9 11,2 46
Πώς δημιουργούμε μια δημόσια κλειδαριά με αριθμούς; 8 9 2 8 mod11=3 3 2 9 mod11=6 6 11,2 47
Πώς δημιουργούμε μια δημόσια κλειδαριά με αριθμούς; 8 9 2 8 mod11=3 3 2 9 mod11=6 6 6 8 mod11= 4 3 9 mod11= 4 11,2 48
Πώς δημιουργούμε μια δημόσια κλειδαριά με αριθμούς; 8 9 2 8 mod11=3 3 2 9 mod11=6 6 6 8 mod11= 4 3 9 mod11= 4 11,2?????? 49
Κρυπτογράφηση Δημοσίου Κλειδιού (Public Key Cryptography PKC) στην πράξη 50
Κρυπτογράφηση Δημοσίου Κλειδιού (Public Key Cryptography PKC) στην πράξη Ανάμειξη αριθμών στην πραγματικότητα, Βήμα 4: Μόνο εσύ και ο Arnold μπορείτε να βρείτε το μυστικό αριθμό, συνδυάζοντας τα στοιχεία που δείχνονται με βέλη, με χρήση δυνάμεων και αριθμητικής με χρήση ρολογιού 51
Κρυπτογράφηση Δημοσίου Κλειδιού (Public Key Cryptography PKC) στην πράξη Η τελική έκδοση της ιδέας με την ανάμειξη χρωμάτων, δηλ., η ανάμειξη αριθμών μέσω δυνάμεων και αριθμητικής με χρήση ρολογιού, είναι ένας από τους τρόπους που οι υπολογιστές εγκαθιδρύουν στην πράξη διαμοιραζόμενα μυστικά στο internet Η συγκεκριμένη μέθοδος που περιγράψαμε λέγεται αλγόριθμος ανταλλαγής κλειδιού Diffie Hellman, και πήρε το όνομά του από τους Whitfield Diffie και Martin Hellman, που πρώτοι δημοσίευσαν τον αλγόριθμο το 1976 52
Κρυπτογράφηση Δημοσίου Κλειδιού (Public Key Cryptography PKC) στην πράξη Οποτεδήποτε επισκέπτεστε ένα ασφαλές website (κάποιο που ξεκινάει με https: αντί για http: ), ο δικός σας υπολογιστής και ο web εξυπηρετητής με τον οποίο επικοινωνεί δημιουργούν ένα διαμοιραζόμενο μυστικό, χρησιμοποιώντας το πρωτόκολλο Diffie Hellman ή κάποια παραλλαγή του Αφότου δημιουργηθεί αυτό το διαμοιραζόμενο μυστικό, οι δύο υπολογιστές μπορούν να κρυπτογραφήσουν όλη την επικοινωνία τους χρησιμοποιώντας μια παραλλαγή της ιδέας με την πρόσθεση που περιγράψαμε 53
Ο αλγόριθμος (πρωτόκολλο) Diffie Hellman για ανταλλαγή κλειδιού Όταν το πρωτόκολλο Diffie Hellman χρησιμοποιείται στην πράξη, οι αριθμοί είναι πολύ μεγαλύτεροι από τα παραδείγματα που είδαμε εδώ Χρησιμοποιήσαμε πολύ μικρό μέγεθος ρολογιού (11) για να γίνονται εύκολα οι πράξεις Αλλά μικρό (δημόσιο) μέγεθος ρολογιού σημαίνει μικρό πλήθος πιθανών ιδιωτικών αριθμών (αφού μπορούμε να χρησιμοποιήσουμε μόνο ιδιωτικούς αριθμούς που είναι μικρότεροι από το μέγεθος ρολογιού) που σημαίνει ότι κάποιος μπορεί με έναν υπολογιστή να δοκιμάσει όλους τους πιθανούς ιδιωτικούς αριθμούς μέχρι να εντοπίσει κάποιον που παράγει το δικό μας δημόσιο ιδιωτικό αριθμό Στο παράδειγμα: υπάρχουν μόνο 11 πιθανοί ιδιωτικοί αριθμοί, οπότε θα ήταν εξαιρετικά εύκολο να «σπάσει» κανείς το σύστημα Αντίθετα, πραγματικές υλοποιήσεις του πρωτοκόλλου Diffie Hellman χρησιμοποιούν μέγεθος ρολογιού με μερικές εκατοντάδες ψηφία, που δίνει τη δυνατότητα παραγωγής εξαιρετικά μεγάλου πλήθους ιδιωτικών αριθμών (παραπάνω από τρισεκατομμύρια τρισεκατομμυρίων ) Ακόμα και τότε, οι δημόσιοι αριθμοί πρέπει να επιλέγονται με προσοχή, ώστε να έχουν τις σωστές μαθηματικές ιδιότητες 54
8 9 2 8 mod11=3 3 6 2 9 mod11=6 6 8 mod11= 4 3 9 mod11= 4 11,2 Στόχος τους είναι να βρουν το 4 Γιανατοκάνουναυτόχρειάζονταιναβρουντο9 Πρέπει να λύσουν την εξίσωση: 2 Χ mod11=6 Σε λίγα λεπτά με χρήση EXCEL έφτιαξα το διπλανό πίνακακαιπροσδιόρισαότιτοζητούμενοχείναιτο9 Αν αντί για 11 χρησιμοποιούσα π.χ., το 47???? 55
Όταν επιλέγεται μέγεθος ρολογιού και βάση για το πρωτόκολλο Diffie Hellman, πρέπει να πληρούνται συγκεκριμένες μαθηματικές ιδιότητες Ιδιότητα 1 (πολύ σημαντική): το μέγεθος του ρολογιού πρέπει να είναι πρώτος αριθμός ώστε να μην έχει άλλους διαιρέτες εκτός από τον εαυτό του και το 1 (για να υπάρχει μεγάλος χώρος διαθέσιμων μηνυμάτων) Ιδιότητα 2: η βάση πρέπει να είναι πρωτοβάθμια ρίζα (primitive root) του μεγέθους του ρολογιού, δηλ., οιδυνάμειςτηςβάσηςπρέπειτελικάνα λαμβάνουνόλεςτιςδυνατέςτιμέςγιακάθεπιθανό μέγεθος ρολογιού (γιαναμπορείνααξιοποιηθείο μεγάλος χώρος διαθέσιμων μηνυμάτων) 56
Όταν επιλέγεται μέγεθος ρολογιού και βάση για το πρωτόκολλο Diffie Hellman, πρέπει να πληρούνται συγκεκριμένες μαθηματικές ιδιότητες Οι 2 και 6 είναι και οι δύο πρωτοβάθμιες ρίζες του 11, αλλά ο 3 δεν είναι οι δυνάμεις του 3 κάνουν κύκλους στις τιμές 3,9,5,4,1 αλλά χάνουν τις τιμές 2,6,7,8 και 10 57
Πώς βρίσκω πρωτοβάθμιες ρίζες του μεγέθους του ρολογιού; Γενικά είναι δύσκολο πρόβλημα το καλύτερο που μπορώ να κάνω είναι εξαντλητική αναζήτηση Για να κάνω αναζήτηση σε λιγότερα στοιχεία κάνω το εξής: Έστω μέγεθος ρολογιού = 11 Υπολογίζω το 11-1=10 Παραγοντοποιώ το 10=2*5 Υπολογίζω τα πηλίκα: 10/2=5, 10/5=2 Γιαναείναιέναςαριθμόςαείναι πρωτοβάθμια ρίζα του 11, θα πρέπει: α 5 mod11 1 και α 2 mod11 1 Οπότε δοκιμάζω α=1,2,3,4,5,6, 58
Όταν επιλέγεται μέγεθος ρολογιού και βάση για το πρωτόκολλο Diffie Hellman, πρέπει να πληρούνται συγκεκριμένες μαθηματικές ιδιότητες Πρώτος αριθμός αριθμός που μπορεί να γραφτεί σα γινόμενο μόνο του εαυτού του και της μονάδας ή εναλλακτικά αριθμός που έχει μοναδικούς διαιρέτες τον εαυτό του και τη μονάδα Π.χ., 2=1x2, 3=1x3, 5=1x5, 7=1x7, κοκ Αριθμοί που δεν είναι πρώτοι καλούνται σύνθετοι Π.χ., 4=2x2, 6=2x3, 8=2x4, 9=3x3, κοκ 59
Ο αλγόριθμος (πρωτόκολλο) Diffie Hellman για ανταλλαγή κλειδιού Η προσέγγιση του πρωτοκόλλου Diffie Hellman είναι μία από τις πολλές τεχνικές για επικοινωνία μέσω (ηλεκτρονικών) κάρτ ποστάλ Το πρωτόκολλο Diffie Hellman είναι ένας αλγόριθμος ανταλλαγής κλειδιού Άλλοι αλγόριθμοι που χρησιμοποιούν δημόσιο κλειδί δουλεύουν διαφορετικά και επιτρέπουν την απευθείας κρυπτογράφηση μηνυμάτων προς συγκεκριμένο παραλήπτη, με χρήση δημόσιας πληροφορίας που ανακοινώνει ο παραλήπτης Αντίθετα, ένας αλγόριθμος ανταλλαγής κλειδιού μάς επιτρέπει τη δημιουργία ενός διαμοιραζόμενου μυστικού με χρήση δημόσιας πληροφορίας από τον παραλήπτη, αλλά η ίδια η κρυπτογράφηση γίνεται μέσω της ιδέας της πρόσθεσης Στο μεγαλύτερο μέρος για επικοινωνία στο internet χρησιμοποιείται η τεχνική που περιγράψαμε επειδή απαιτεί λιγότερο επικοινωνιακό κόστος Υπάρχουν εφαρμογές που απαιτούν πλήρη κρυπτογράφηση με χρήση δημοσίου κλειδιού Από τις πιο ενδιαφέρουσες τέτοιες εφαρμογές είναι οι ψηφιακές υπογραφές όπου μυστική πληροφορία αναμειγνύεται δημόσια με μαθηματικά, με μη αναστρέψιμο τρόπο, όπως μη αναστρέψιμα αναμειγνύονται και τα χρώματα 60
ΟαλγόριθμοςRSA για κρυπτογράφηση με χρήση δημοσίου κλειδιού Το πιο γνωστό σύστημα κρυπτογράφησης με χρήση δημοσίου κλειδιού είναι το RSA, που ονομάστηκε έτσι από τα αρχικά των επωνύμων των δημιουργών του: Ronald Rivest, AdiShamir, και Leonard Adleman Ο RSA είναι βασικό συστατικό των ψηφιακών υπογραφών 61
ΟαλγόριθμοςRSA για κρυπτογράφηση με χρήση δημοσίου κλειδιού Το πιο γνωστό σύστημα κρυπτογράφησης με χρήση δημοσίου κλειδιού είναι το RSA, που ονομάστηκε έτσι από τα αρχικά των επωνύμων των δημιουργών του: Ronald Rivest, AdiShamir, και Leonard Adleman Ο RSA είναι βασικό συστατικό των ψηφιακών υπογραφών 62
ΟαλγόριθμοςRSA για κρυπτογράφηση με χρήση δημοσίου κλειδιού Η ιστορία του παρασκηνίου της δημιουργίας αυτών των αλγορίθμων κρυπτογράφησης με χρήση δημοσίου κλειδιού είναι εντυπωσιακή και περίπλοκη Οι Diffie και Hellman ήταν πράγματι οι πρώτοι που δημοσίευσαν τη μέθοδο Diffie Hellman το 1976 Οι Rivest, Shamir, Adleman ήταν πράγματι οι πρώτοι που δημοσίευσαν τον αλγόριθμο RSA το 1978 Αλλά η ιστορία δεν σταματάει εδώ: ανακαλύφθηκε εκ των υστέρων ότι η Βρετανική κυβέρνηση γνώριζε ήδη για πολλά χρόνια παραπλήσια συστήματα αλλά δυστυχώς οιδημιουργοίαυτώντων ιδεών προγόνων της τεχνικής Diffie Hellman και του RSA ήταν μαθηματικοί που δούλευαν για τη Βρετανική κυβέρνηση (εργαστήρια επικοινωνιών GCHQ) και τα αποτελέσματα της δουλειάς τους είχαν καταγραφεί σε απόρρητα έγγραφα που δημοσιοποιήθηκαν το 1997 63
ΟαλγόριθμοςRSA για κρυπτογράφηση με χρήση δημοσίου κλειδιού Οι αλγόριθμοι RSA, Diffie Hellman καιάλλοιαλγόριθμοικρυπτογράφησης που κάνουν χρήση δημοσίου κλειδιού δεν είναι μόνο εκπληκτικές ιδέες αλλά έχουν εξελιχθεί σε εμπορικές τεχνολογίες και πρότυπα στο internet με εξαιρετική σημασία για επιχειρήσεις και πρόσωπα Η συντριπτική πλειοψηφία των online συναλλαγών που πραγματοποιούμε καθημερινά δεν θα μπορούσαν να ολοκληρωθούν με ασφάλεια χωρίς κρυπτογράφηση δημοσίου κλειδιού Οι δημιουργεί του RSA έκαναν το σύστημά τους πατέντα τη δεκαετία του 1970 η οποία δημοσιοποιήθηκε το 2000 οπότε και πραγματοποιήθηκε δεξίωση στο Great American Music Hall στο San Francisco (τη βραδιά που έληξε η πατέντα) 64
Σύνοψη Για αιώνες η Κρυπτογραφία βασιζόταν σε πρωτόκολλα που έκαναν χρήση ιδιωτικού κλειδιού (private key protocols): Η Alice και ο Bob συναντιούνταν από πριν και διάλεγαν μαζί έναν μυστικό κωδικό με χρήση του οποίου κρυπτογραφούσαν κάθε μελλοντική τους επικοινωνία Η μόνη ελπίδα για την κακιά υποκλοπέα Eve ήταν να συλλέξει κωδικοποιημένα μηνύματα και να τα χρησιμοποιήσει για να εντοπίσει αναλύοντάς τα τουλάχιστον μερικώς το μυστικό κωδικό Τεχνικές κρυπτογράφησης με χρήση δημόσιου κλειδιού (public key schemes) όπως ο αλγόριθμος RSA είναι σαφώς εξυπνότερες: επιτρέπουν στην Alice να στείλει στο Bob ένα μήνυμα χωρίς να απαιτείται να γνωρίζονται από πριν και η κακιά υποκλοπέας Eve να μη μπορεί να καταλάβει το μήνυμα Η κεντρική ιδέα του συστήματος κρυπτογράφησης RSA βασίζεται στη σημαντική αντίθεση μεταξύ της ευκολίας εύρεσης μεγάλων πρώτων αριθμών και της δυσκολίας παραγοντοποίησης (factoring) του γινομένου δύο μεγάλων πρώτων αριθμών Ο Bob μπορεί να φτιάξει μια ψηφιακή «κλειδαριά» για την οποία να έχει μόνο αυτός το κλειδί, να την ανακοινώσει δημόσια και να δώσει έτσι στην Alice έναν τρόπο να του στέλνει με ασφάλεια μηνύματα που μόνος αυτός θα μπορεί να ξεκλειδώσει Αυτό ακριβώς συμβαίνει όταν γιαπαράδειγμα κάνουμεαγορέςστοinternet, και θέλουμε να στείλουμε τον αριθμό της πιστωτικής μας κάρτας σε κάποια εταιρεία Με βάση τον αλγόριθμο RSA, ο Bob πρέπει να κάνει πολύ απλές πράξεις όπως πολλαπλασιασμό για να υλοποιήσει την ψηφιακή κλειδαριά και, επίσης, και η Alice και ο Bob πρέπει να κάνουν πολύ απλές πράξεις για να κλειδώσουν και να ξεκλειδώσουν (αντίστοιχα) τα μηνύματα Αντίθετα, για να ξεκλειδώσει η Eve ένα κλειδωμένο μήνυμα ΧΩΡΙΣ ΝΑ ΕΧΕΙ ΤΟ ΚΛΕΙΔΙ πρέπει να κάνει πολύ δύσκολες υπολογιστικά πράξεις όπως η ανάλυση μεγάλων αριθμών σε γινόμενα πρώτων παραγόντων οι οποίες απαιτούν υπολογιστική ισχύ μεγαλύτερη από αυτή του ισχυρότερου υπαρκτού υπολογιστή 65