Εισαγωγή στους Αλγόριθμους

Σχετικά έγγραφα
Κρυπτογράφηση με χρήση Δημοσίου Κλειδιού (Public Key Cryptography PKC)

Κρυπτογράφηση με χρήση Δημοσίου Κλειδιού (Public Key Cryptography PKC) στέλνοντας μυστικά σε μία κάρτ ποστάλ

Εισαγωγή στους Αλγόριθμους

Εισαγωγή στους Αλγόριθμους

Ασφάλεια Πληροφοριακών Συστημάτων

Θέματα υπολογισμού στον πολιτισμό

ΑΣΦΑΛΕΙΑ & ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ(Θ)

Ασφάλεια Πληροφοριακών Συστημάτων

Κβαντική Επεξεργασία Πληροφορίας

Θέματα υπολογισμού στον πολιτισμό

Κβαντική Επεξεργασία Πληροφορίας

Εισαγωγή στους Αλγόριθμους

Εισαγωγή στην Πληροφορική

Θέματα υπολογισμού στον πολιτισμό

ΑΣΥΜΜΕΤΡΗ ΚΡΥΠΤΟΓΡΑΦΙΑ Lab 3

Διακριτά Μαθηματικά. Ενότητα 5: Απαρίθμηση: Διωνυμικοί συντελεστές

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 8: Συστήματα αρίθμησης

Εισαγωγή στους Αλγορίθμους

Εισαγωγή στους Η/Υ. Ενότητα 2β: Αντίστροφο Πρόβλημα. Δημήτρης Σαραβάνος, Καθηγητής Πολυτεχνική Σχολή Τμήμα Μηχανολόγων & Αεροναυπηγών Μηχανικών

Μαθηματικά Διοικητικών & Οικονομικών Επιστημών

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας. Βιοστατιστική (Ε) Ενότητα 3: Έλεγχοι στατιστικών υποθέσεων

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας. Βιοστατιστική (Ε) Ενότητα 2: Περιγραφική στατιστική

Εισαγωγή στους Αλγορίθμους

Βέλτιστος Έλεγχος Συστημάτων

Διοικητική Λογιστική

Διαχείριση Ασφάλειας και Εμπιστοσύνης σε Πολιτισμικά Περιβάλλοντα

Ενδεικτικές λύσεις ασκήσεων διαχείρισης έργου υπό συνθήκες αβεβαιότητας

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας. Βιοστατιστική (Ε) Ενότητα 1: Καταχώρηση δεδομένων

Εισαγωγή στους Αλγόριθμους

Πρακτική Άσκηση σε σχολεία της δευτεροβάθμιας εκπαίδευσης

Μαθηματικά Διοικητικών & Οικονομικών Επιστημών

Προγραμματισμός Η/Υ. 8 η ενότητα: Περιβαλλοντικά και μαθηματικά προβλήματα. Τμήμα. Τεχνολόγων Περιβάλλοντος. ΤΕΙ Ιονίων Νήσων

Διακριτά Μαθηματικά. Ενότητα 1: Εισαγωγή

Θερμοδυναμική. Ανοικτά Ακαδημαϊκά Μαθήματα. Πίνακες Νερού σε κατάσταση Κορεσμού. Γεώργιος Κ. Χατζηκωνσταντής Επίκουρος Καθηγητής

Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 5: ΚΑΤΗΓΟΡΙΕΣ ΑΛΓΟΡΙΘΜΙΚΩΝ ΠΡΟΒΛΗΜΑΤΩΝ-ΑΝΑΓΩΓΗ

Αριθμητική Ανάλυση. Ενότητα 1: Εισαγωγή Βασικές Έννοιες. Φραγκίσκος Κουτελιέρης Πολυτεχνική Σχολή Τμήμα Χημικών Μηχανικών

Μαθηματικά Διοικητικών & Οικονομικών Επιστημών

Θέματα υπολογισμού στον πολιτισμό

1 η Διάλεξη. Ενδεικτικές λύσεις ασκήσεων

Εφαρμογές των Τεχνολογιών της Πληροφορίας και των Επικοινωνιών στη διδασκαλία και τη μάθηση

Λογιστική Κόστους Ενότητα 12: Λογισμός Κόστους (2)

Εισαγωγή στη Δικτύωση Υπολογιστών

ΟΙΚΟΝΟΜΙΚΑ ΜΑΘΗΜΑΤΙΚΑ

Ψηφιακή Λογική Σχεδίαση

Μαθηματικά Διοικητικών & Οικονομικών Επιστημών

Έννοιες Φυσικών Επιστημών Ι

Διακριτά Μαθηματικά. Ενότητα 7: Προχωρημένες μέθοδοι απαρίθμησης: Εγκλεισμός Αποκλεισμός

ΚΡΥΠΤΟΓΡΑΦΙΑ ΚΑΙ ΑΣΦΑΛΕΙΑ ΥΠΟΛΟΓΙΣΤΩΝ. Δ Εξάμηνο

Διδακτική της Πληροφορικής

Υπολογιστική άλγεβρα Ενότητα 1: Πολυωνυμικές σχέσεις και ταυτότητες, μέρος Ι

Έλεγχος και Διασφάλιση Ποιότητας Ενότητα 4: Μελέτη ISO Κουππάρης Μιχαήλ Τμήμα Χημείας Εργαστήριο Αναλυτικής Χημείας

Υπολογιστική άλγεβρα Ενότητα 10: Βάσεις Groebner ενός ιδεώδους ΙΙΙ

Εισαγωγή στους Υπολογιστές

Ψηφιακή Επεξεργασία Εικόνων

Διεθνείς Οικονομικές Σχέσεις και Ανάπτυξη

Υπολογιστική άλγεβρα Ενότητα 3: Πολυώνυμα τρίτου βαθμού

Εισαγωγή στους Αλγορίθμους

Εισαγωγή στη Δικτύωση Υπολογιστών

Διαχείριση Ασφάλειας και Εμπιστοσύνης σε Πολιτισμικά Περιβάλλοντα

Εφαρμογές των Τεχνολογιών της Πληροφορίας και των Επικοινωνιών στη διδασκαλία και τη μάθηση

Κεφάλαιο 21. Κρυπτογραφία δημόσιου κλειδιού και πιστοποίηση ταυτότητας μηνυμάτων

Εισαγωγή στους Αλγορίθμους Ενότητα 10η Άσκηση Αλγόριθμος Dijkstra

Κβαντική Επεξεργασία Πληροφορίας

Μαθηματικά Διοικητικών & Οικονομικών Επιστημών

Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 3: ΑΝΑΠΑΡΑΣΤΑΣΗ ΔΕΔΟΜΕΝΩΝ - ΓΡΑΦΗΜΑΤΑ

ΛΟΓΙΚΟ-ΜΑΘΗΜΑΤΙΚΕΣ ΣΧΕΣΕΙΣ & ΑΡΙΘΜΗΤΙΚΕΣ ΕΝΝΟΙΕΣ ΣΤΗΝ ΠΡΟΣΧΟΛΙΚΗ ΕΚΠΑΙΔΕΥΣΗ

Εισαγωγή στους Υπολογιστές

Κρυπτογραφία Δημόσιου Κλειδιού II Αλγόριθμος RSA

Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 4: ΑΝΑΠΑΡΑΣΤΑΣΗ ΔΕΔΟΜΕΝΩΝ - ΔΕΝΤΡΑ

Αερισμός. Ενότητα 1: Αερισμός και αιμάτωση. Κωνσταντίνος Σπυρόπουλος, Καθηγητής Σχολή Επιστημών Υγείας Τμήμα Ιατρικής

ΟΙΚΟΝΟΜΙΚΑ ΜΑΘΗΜΑΤΙΚΑ

Το Εικονογραφημένο Βιβλίο στην Προσχολική Εκπαίδευση

Κβαντική Φυσική Ι. Ενότητα 16: Αναπαράσταση τελεστών με μήτρες. Ανδρέας Τερζής Σχολή Θετικών Επιστημών Τμήμα Φυσικής

Κβαντική Φυσική Ι. Ενότητα 19: Εισαγωγή στα τετραγωνικά δυναμικά. Ανδρέας Τερζής Σχολή Θετικών Επιστημών Τμήμα Φυσικής

Κβαντική Επεξεργασία Πληροφορίας

Εισαγωγή στη Δικτύωση Υπολογιστών

Μαθηματικά Διοικητικών & Οικονομικών Επιστημών

Τίτλος Μαθήματος: Μαθηματική Ανάλυση Ενότητα Γ. Ολοκληρωτικός Λογισμός

Γραμμική Άλγεβρα και Μαθηματικός Λογισμός για Οικονομικά και Επιχειρησιακά Προβλήματα

ΛΟΓΙΚΟ-ΜΑΘΗΜΑΤΙΚΕΣ ΣΧΕΣΕΙΣ & ΑΡΙΘΜΗΤΙΚΕΣ ΕΝΝΟΙΕΣ ΣΤΗΝ ΠΡΟΣΧΟΛΙΚΗ ΕΚΠΑΙΔΕΥΣΗ

Ασφάλεια Πληροφοριακών Συστημάτων

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Πληροφορική Ι. Ενότητα 10 : Ασφάλεια. Δρ. Γκόγκος Χρήστος

Το Εικονογραφημένο Βιβλίο στην Προσχολική Εκπαίδευση

Μαθηματικά Διοικητικών & Οικονομικών Επιστημών

Οργάνωση Υπολογιστών

ΟΙΚΟΝΟΜΙΚΑ ΜΑΘΗΜΑΤΙΚΑ

Μαθηματικά στην Πολιτική Επιστήμη:

Λογικός Προγραμματισμός Ασκήσεις

Εισαγωγή στους Αλγορίθμους Ενότητα 9η Άσκηση - Αλγόριθμος Prim

8.3.4 Τεχνικές Ασφάλειας Συμμετρική Κρυπτογράφηση Ασυμμετρική Κρυπτογράφηση Ψηφιακές Υπογραφές

ΛΟΓΙΚΟ-ΜΑΘΗΜΑΤΙΚΕΣ ΣΧΕΣΕΙΣ & ΑΡΙΘΜΗΤΙΚΕΣ ΕΝΝΟΙΕΣ ΣΤΗΝ ΠΡΟΣΧΟΛΙΚΗ ΕΚΠΑΙΔΕΥΣΗ

Πρακτική Άσκηση σε σχολεία της δευτεροβάθμιας εκπαίδευσης

Βέλτιστος Έλεγχος Συστημάτων

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ

Μεθοδολογία των Επιστημών του Ανθρώπου: Στατιστική

Διοικητική Λογιστική

Εισαγωγή στην Διοίκηση Επιχειρήσεων

ΑΣΥΜΜΕΤΡΗ ΚΡΥΠΤΟΓΡΑΦΙΑ

Transcript:

Εισαγωγή στους Αλγόριθμους Εύη Παπαϊωάννου Σχολή Οργάνωσης και Διοίκησης Επιχειρήσεων Τμήμα Διαχείρισης Πολιτισμικού Περιβάλλοντος και Νέων Τεχνολογιών

Σκοποί ενότητας Παρουσίαση και μελέτη κρυπτογράφησης με χρήση Δημοσίου Κλειδιού Τίτλος Ενότητας 2

Περιεχόμενα ενότητας Παρουσίαση και μελέτη κρυπτογράφησης με χρήση Δημοσίου Κλειδιού Τίτλος Ενότητας 3

Εισαγωγή στους Αλγόριθμους Κρυπτογράφηση με χρήση Δημοσίου Κλειδιού (Public Key Cryptography PKC)

Κρυπτογράφηση με χρήση Δημοσίου Κλειδιού (Public Key Cryptography PKC) στέλνοντας μυστικά σε μία κάρτ ποστάλ 5

Σύνοψη Πρόβλημα: θέλω να στείλω μήνυμα σε κάποιον δημόσια χωρίς να μπορούν να το καταλάβουν οι άλλοι Λύση: το κωδικοποιώ Γνωρίζω τον παραλήπτη: συμφωνώ από πριν μαζί του στη χρήση κάποιου μυστικού κλειδιού γνωστού και στους δυο μας όχι ασφαλές Δε γνωρίζω τον παραλήπτη: κωδικοποιώ το μήνυμα ώστε να μην το καταλαβαίνουν οι άλλοι αλλά τότε δεν το καταλαβαίνει ούτε ο παραλήπτης 6

Σύνοψη Πρόβλημα: θέλω να στείλω μήνυμα σε κάποιον δημόσια χωρίς να μπορούν να το καταλάβουν οι άλλοι Γενικά: δε γνωρίζω τον παραλήπτη και θέλω να συμφωνήσω μαζί του με δημόσια επικοινωνία σε μυστικό κωδικό που να τον ξέρουμε μόνο οι δυο μας Ανάμειξη χρωμάτων: ο αντίπαλος «δεν μπορεί» να κάνει ξε-ανακάτεμα χρωμάτων Πολλαπλασιασμός: ο αντίπαλος «δεν μπορεί» να κάνει διαίρεση (μη ρεαλιστικό) Ύψωση σε δύναμη: ο αντίπαλος «δεν μπορεί» να κάνει παραγοντοποίηση (ρεαλιστικό με την τρέχουσα τεχνολογία) 7

Το πρόβλημα Μάς αρέσει να κουτσομπολεύουμε και να μοιραζόμαστε μυστικά και επειδή στόχος της κρυπτογράφησης είναι η επικοινωνία μυστικών, είμαστε από τη φύση μας σε θέση να κρυπτογραφούμε Δε συμβαίνει το ίδιο με τους υπολογιστές Μεταφέρουμε ένα μυστικό σε έναν φίλο με το να του το ψιθυρίσουμε στο αυτί του... Ένας υπολογιστής δεν μπορεί να ψιθυρίσει έναν αριθμό πιστωτικής κάρτας σε έναν άλλο υπολογιστή Ειδικά αν είναι συνδεδεμένοι στο internet, δεν μπορούν να ελέγξουν από πού περνάει ο αριθμός της πιστωτικής κάρτας ούτε ποιοι άλλοι υπολογιστές μπορούν να τον μάθουν/υποκλέψουν Στη συνέχεια, θα δούμε πώς λύνεται το πρόβλημα αυτό για τους υπολογιστές με χρήση μιας από τις πιο εντυπωσιακές ιδέες της επιστήμης των υπολογιστών: της κρυπτογράφησης με χρήση δημοσίου κλειδιού (public key cryptography) 8

Το πρόβλημα 9

στέλνοντας μυστικά σε μία καρτ ποστάλ Το φανταζόμαστε σαν αναλογία για να κατανοήσουμε τη δύναμη της κρυπτογράφησης με χρήση δημοσίου κλειδιού Στα αλήθεια, αν θέλαμε να στείλουμε σε κάποιον ένα εμπιστευτικό έγγραφο, θα το βάζαμε σε έναν φάκελο και θα τον κλείναμε καλά πριν τον στείλουμε Αυτό δεν εγγυάται σώνει και καλά διατήρηση του απορρήτου, αλλά είναι μια λογική προσέγγιση Αν επιλέξουμε να γράψουμε το εμπιστευτικό μήνυμα σε μια καρτ ποστάλ, προφανώς το απόρρητο παραβιάζεται: οποιοσδήποτε πιάνει την καρτ ποστάλ (π.χ., ταχυδρόμος) μπορεί να διαβάσει το μήνυμα: αυτό είναι το πρόβλημα που αντιμετωπίζει ένας υπολογιστής όταν προσπαθεί να επικοινωνήσει εμπιστευτικά με κάποιον άλλον υπολογιστή στο internet Επειδή κάθε μήνυμα στο internet ταξιδεύει μέσα από πολλούς υπολογιστές που λέγονται δρομολογητές (routers), οποιοσδήποτε έχει πρόσβαση σε αυτούς τους δρομολογητές (συμπεριλαμβανομένων κακόβουλων υποκλοπέων) μπορεί να δει το περιεχόμενο του μηνύματος Επομένως, κάθε κομματάκι πληροφορίας που φεύγει από τον υπολογιστή και διοχετεύεται στο internet πρέπει να αντιμετωπίζεται σαν να είναι γραμμένο σε μία καρτ ποστάλ! 10

στέλνοντας μυστικά σε μία καρτ ποστάλ 11

στέλνοντας μυστικά σε μία κάρτ ποστάλ 12

Λύση;;; Γιατί να μην χρησιμοποιήσουμε έναν μυστικό κωδικό για να κρυπτογραφήσουμε το κάθε μήνυμα πριν το γράψουμε στην καρτ ποστάλ; Αυτό θα δούλευε αν ήδη γνωρίζουμε τον παραλήπτη της καρτ ποστάλ αφού θα μπορούσαμε να έχουμε συμφωνήσει (στο παρελθόν) να χρησιμοποιούμε κάποιον μυστικό κωδικό που θα γνωρίζαμε και οι δύο Και πάλι δεν είναι εγγυημένο το αδιάβλητο της επικοινωνίας (γιατί;) Το πραγματικό πρόβλημα προκύπτει όταν στέλνουμε την καρτ ποστάλ σε παραλήπτη που δε γνωρίζουμε: αν χρησιμοποιήσουμε μυστικό κωδικό για να κρυπτογραφήσουμε το μήνυμα στην καρτ ποστάλ, οι ταχυδρόμοι δε θα μπορούν να διαβάσουν το μήνυμα, αλλά δε θα μπορεί ούτε ο παραλήπτης να το διαβάσει! 13

Κώδικας του (Ιουλίου) Καίσαρα Κάθε γράμμα του κειμένου αντικαθίσταται από ένα άλλο που βρίσκεται σε σταθερή απόσταση στο αλφάβητο Στον κώδικα του Καίσαρα χρησιμοποιείται μετατόπιση τριών θέσεων: B στο πρωτότυπο κείμενο γίνεται E στο κρυπτογραφημένο κείμενο ΣΗΜΕΡΑ ΕΙΝΑΙ ΩΡΑΙΑ ΜΕΡΑ ΦΚΟΘΥΔ ΘΜΠΔΜ ΓΥΔΜΔ ΟΘΥΔ Α Β Γ Δ Ε Ζ Η Θ Ι Κ Λ Μ Ν Ξ Ο Π Ρ Σ Τ Υ Φ Χ Ψ Ω Δ Ε Ζ Η Θ Ι Κ Λ Μ Ν Ξ Ο Π Ρ Σ Τ Υ Φ Χ Ψ Ω Α Β Γ 14

Κώδικας του (Ιουλίου) Καίσαρα Ο κώδικας αυτός «σπάει» εύκολα (Α) Πόσες πιθανές μετατοπίσεις υπάρχουν; 24 (ελληνικά), 26 (αγγλικά) Μπορώ γρήγορα να τις δοκιμάσω όλες και να αποκρυπτογραφήσω το μήνυμα 15

Κώδικας του (Ιουλίου) Καίσαρα Ο κώδικας αυτός «σπάει» εύκολα (Β) Ανάλυση συχνότητας: εντοπίζω τα συχνότερα χρησιμοποιούμενα γράμματα και στα δύο κείμενα και υπολογίζω τη μετατόπιση που χρησιμοποιείται Υπάρχουν πίνακες με τις συχνότητες εμφάνισης των γραμμάτων κάθε γλώσσας: έστω στα ελληνικά το Α είναι το πιο συχνά χρησιμοποιούμενο γράμμα Παρατηρώ ότι στο κρυπτογραφημένο (κόκκινο) κείμενο το πιο συχνά εμφανιζόμενο γράμμα είναι το Δ (μπλε) Συμπεραίνω ότι το Δ κρυπτογραφεί το Α χρησιμοποιείται μετατόπιση = 3 ΣΗΜΕΡΑ ΕΙΝΑΙ ΩΡΑΙΑ ΜΕΡΑ ΦΚΟΘΥΔ ΘΜΠΔΜ ΓΥΔΜΔ ΟΘΥΔ Εφαρμόζω μετατόπιση 3 σε όλο το κρυπτογραφημένο κείμενο και λαμβάνω το αρχικό 16

Λύση;;; 17

Λύση;;; Η δύναμη της κρυπτογράφησης με χρήση δημοσίου κλειδιού συνίσταται στο ότι επιτρέπει τη δημιουργία μυστικών κωδικών που μόνο ο παραλήπτης μπορεί να αποκρυπτογραφήσει παρά το ότι δεν μπορούμε να συμφωνήσουμε από πριν με τον παραλήπτη για το ποιος είναι ο μυστικός κωδικός Οι υπολογιστές αντιμετωπίζουν το ίδιο πρόβλημα όταν επικοινωνούν με παραλήπτες που δε γνωρίζουν Όταν αγοράζουμε για πρώτη φορά από το Amazon.com χρησιμοποιώντας την πιστωτική μας κάρτα, ο υπολογιστής μας πρέπει να τον μεταδώσει στον εξυπηρετητή της Amazon Αλλά οι δύο υπολογιστές δεν έχουν επικοινωνήσει ξανά στο παρελθόν οπότε αποκλείεται να έχουν συμφωνήσει στη χρήση κάποιου μυστικού κωδικού Και κάθε συμφωνία που θα προσπαθήσουν να κάνουν είναι φανερή σε όλους τους δρομολογητές που μεσολαβούν μεταξύ αυτών των δύο υπολογιστών 18

Ανάγκη για κρυπτογράφηση Η εκπληκτική ανάπτυξη του εμπορίου στο web κατέστη δυνατή λόγω της δυνατότητας αποστολής απόρρητων πληροφοριών (όπως π.χ., αριθμοί πιστωτικών καρτών) χωρίς να αποκαλύπτονται και με ασφάλεια στο Διαδίκτυο Το γεγονός ότι μπορεί να εγκαθιδρυθεί ασφαλής επικοινωνία πάνω από κανάλια «ανοιχτής πρόσβασης» θεωρούταν για δεκαετίες μη επιλύσιμο πρόβλημα Όταν βρέθηκε η λύση, αποδείχθηκε ότι ήταν εξαιρετικά κομψή 19

Κρυπτογράφηση με διαμοιραζόμενο μυστικό Υποθέστε ότι επιτρέπεται η προφορική επικοινωνία σε ένα δωμάτιο όπου είμαστε με το φίλο μας Arnold και με την κακιά Eve και επιθυμούμε να πούμε κάτι στον Arnold π.χ., έναν αριθμό μεταξύ του 1 και του 9, ας πούμε τον 7 - χωρίς η Eve να μπορεί να το καταλάβει δεδομένου ότι μπορούμε να μιλάμε στον Arnold μόνο δυνατά ώστε η Eve να μπορεί να ακούει (δεν επιτρέπονται ψιθυρίσματα ούτε σημειωματάκια) Σκεφτόμαστε κάποιον αριθμό που γνωρίζει ο Arnold και δε γνωρίζει η Eve: ας πούμε ότι όταν ήμασταν μικροί παίζαμε με τον Arnold έξω από ένα σπίτι στην οδό Πανεπιστημίου 322 (υποθέτουμε ότι η Eve δεν μάς ήξερε όταν ήμασταν μικροί) Λέμε δυνατά στον Arnold: Θυμάσαι την οδό του σπιτιού που παίζαμε όταν ήμασταν μικροί; Αν πάρεις αυτόν τον αριθμό και του προσθέσεις αυτόν που θέλω να σου πω θα προκύψει ο αριθμός 329 Υποθέτοντας ότι ο Arnold θυμάται σωστά την οδό που παίζαμε, θα καταλάβει τον αριθμό που σκεφτήκαμε αν από το 329 αφαιρέσει τον αριθμό της οδού, δηλ., τον 322: 329-322=7 Εν τω μεταξύ, η Eve δεν μπορεί να καταλάβει τον αριθμό παρά το ότι άκουσε τη φράση που δυνατά είπαμε στον Arnold 20

Κρυπτογράφηση με διαμοιραζόμενο μυστικό Θέλω να μεταφέρω τον αριθμό 7 στον Arnold χωρίς να το καταλάβει η κακιά Eve Κάθε επικοινωνία πρέπει να είναι δημόσια Αν στον αριθμό της οδού που ήταν το bar που πήγαμε χτες προσθέσεις τον αριθμό που θέλω να σου πω θα προκύψει ο αριθμός 329 Η Eve δεν ξέρει που πήγαμε χτες Ο Arnold υπολογίζει 329-322=7 322: διαμοιραζόμενο μυστικό 329: κρυπτογραφημένο μήνυμα μέσω πρόσθεσης 21

Κρυπτογράφηση με διαμοιραζόμενο μυστικό Πώς είναι δυνατόν να δημιουργήσουμε και να διακινήσουμε δημόσια ένα μυστικό που να γνωρίζουμε μόνο εμείς και κάποιος άλλος; Η ιδέα με την πρόσθεση: Κρυπτογραφούμε το μήνυμα 7 προσθέτοντάς του το διαμοιραζόμενο μυστικό, 322. Ο Arnold μπορεί να το αποκρυπτογραφήσει αφαιρώντας το διαμοιραζόμενο μυστικό, αλλά η Eve δεν μπορεί 22

Κρυπτογράφηση με διαμοιραζόμενο μυστικό Γιατί δουλεύει η μέθοδος αυτή; Εμείς και ο Arnold διαθέτουμε ένα διαμοιραζόμενο μυστικό: τον αριθμό 322. Επειδή και οι δύο γνωρίζουμε τον αριθμό αυτόν αλλά δεν τον γνωρίζει η Eve, μπορούμε να χρησιμοποιούμε αυτό το διαμοιραζόμενο μυστικό για να μεταδίδουμε μεταξύ μας οποιοδήποτε αριθμό θέλουμε: τον προσθέτουμε στο διαμοιραζόμενο μυστικό, ανακοινώνουμε δημόσια το άθροισμα ο παραλήπτης αφαιρεί το διαμοιραζόμενο μυστικό και καταλαβαίνει τον αριθμό που διαλέξαμε ενώ η Eve παρά το ότι ακούει το άθροισμα δεν μπορεί να τον καταλάβει αφού δε γνωρίζει ποιον αριθμό πρέπει να αφαιρέσει Σε αυτή την απλή ιδέα με την πρόσθεση ενός διαμοιραζόμενου μυστικού σε ένα ιδιωτικό μήνυμα βασίζεται εν πολλοίς η λειτουργία της κρυπτογράφησης στο internet: οι υπολογιστές χρησιμοποιούν συνεχώς το κόλπο αυτό εμπλουτισμένο με κάποιες επιπλέον λεπτομέρειες ώστε η επικοινωνία να είναι πραγματικά ασφαλής 23

Κρυπτογράφηση με διαμοιραζόμενο μυστικό: στην πράξη; Οι διαμοιραζόμενοι κωδικοί που χρησιμοποιούν οι υπολογιστές είναι πολύ μεγαλύτεροι από τον αριθμό 322 της οδού που αναφέραμε: αν οι κωδικοί είναι πολύ μικροί, οποιοσδήποτε υποκλέπτει τη «συζήτηση» μπορεί εύκολα να δοκιμάσει όλες τις πιθανές εκδοχές Υποθέστε ότι χρησιμοποιούμε έναν τριψήφιο αριθμό οδού για να κρυπτογραφήσουμε έναν πραγματικό 16-ψήφιο αριθμό πιστωτικής κάρτας χρησιμοποιώντας την ιδέα με την πρόσθεση που περιγράψαμε Υπάρχουν 999 πιθανοί τριψήφιοι αριθμοί οδών, οπότε η κακιά Eve που ακούει τη συζήτησή μας μπορεί να φτιάξει μια λίστα με 999 πιθανούς αριθμούς, ένας από τους οποίους θα είναι και ο αριθμός της πιστωτικής μας κάρτας (με έναν υπολογιστή μπορούμε σε κλάσματα του δευτερολέπτου να δοκιμάσουμε τους 999 αριθμούς πιστωτικών καρτών, οπότε τριψήφιοι κωδικοί δεν επαρκούν για να δώσουν χρήσιμα διαμοιραζόμενα μυστικά ) 24

Κρυπτογράφηση με διαμοιραζόμενο μυστικό: στην πράξη; Αν ακούσετε ότι η κρυπτογράφηση χρησιμοποιεί συγκεκριμένο αριθμό bits, όπως π.χ., 128-bit encryption, αυτό δηλώνει το πόσα ψηφία έχει το διαμοιραζόμενο μυστικό το οποίο καλείται κλειδί - key επειδή χρησιμοποιείται για να ξεκλειδώσει ή αλλιώς να αποκρυπτογραφήσει ένα μήνυμα Το 30% του αριθμού των ψηφίων του κλειδιού δείχνει κατά προσέγγιση τον αριθμό των ψηφίων στο κλειδί: 30% του 128 είναι περίπου 38, οπότε ξέρουμε ότι η 128-bit κρυπτογράφηση χρησιμοποιεί κλειδί που είναι ένας αριθμός με 38 ψηφία ένας αριθμός με 38 ψηφία είναι μεγαλύτερος από έναν δις δις δις δις και επειδή ένας υπολογιστής χρειάζεται δισεκατομμύρια χρόνια για να δοκιμάσει τόσες πολλές εκδοχές ένα διαμοιραζόμενο μυστικό με 38 ψηφία θεωρείται πολύ ασφαλές 25

Κρυπτογράφηση με διαμοιραζόμενο μυστικό: στην πράξη; Αν ακούσετε ότι η κρυπτογράφηση χρησιμοποιεί συγκεκριμένο αριθμό bits, όπως π.χ., 128-bit encryption, αυτό δηλώνει τοαναφερόμαστε πόσα ψηφίασεέχει δεκαδικά το διαμοιραζόμενο ψηφία όχι μυστικό το οποίοσεκαλείται δυαδικά (bits). κλειδί Το ποσοστό - key 30% επειδή για χρησιμοποιείταιμετατροπή για να ξεκλειδώσει από bits δεκαδικά ή αλλιώς ψηφία να αποκρυπτογραφήσει (δίνεται ένα δυαδικός μήνυμα αριθμός: πόσα ψηφία Το 30% του αριθμού χρειάζονται των ψηφίων για να γραφτεί τουστο κλειδιού δείχνει κατά προσέγγιση τον αριθμό δεκαδικό σύστημα) των ψηφίων προέρχεται στοαπό κλειδί: το 30% του 128 είναι περίπου 38, ότι: log10 οπότε2 ξέρουμε 0.3. ότι η 128-bit κρυπτογράφηση χρησιμοποιεί κλειδί που είναι ένας αριθμός με 38 ψηφία ένας αριθμός με 38 ψηφία είναι μεγαλύτερος από έναν δις δις δις δις και επειδή ένας υπολογιστής χρειάζεται δισεκατομμύρια χρόνια για να δοκιμάσει τόσες πολλές εκδοχές, ένα διαμοιραζόμενο μυστικό με 38 ψηφία θεωρείται πολύ ασφαλές 26

Παράδειγμα 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 27

Κρυπτογράφηση με διαμοιραζόμενο μυστικό: στην πράξη; Επειδή τα αποτελέσματα που παράγει η πρόσθεση μπορούν να αναλυθούν στατιστικά με παρατήρηση μεγάλου πλήθους κρυπτογραφημένων μηνυμάτων, σύγχρονες μέθοδοι κρυπτογράφησης που καλούνται block ciphers χρησιμοποιούν μια παραλλαγή της ιδέας της πρόσθεσης: Μεγάλα μηνύματα κόβονται σε μικρά blocks συγκεκριμένου μεγέθους (συνήθως 10-15 χαρακτήρων). Μετά, αντί μόνο να προσθέσουμε κάθε block του μηνύματος με το κλειδί, κάθε block μετατρέπεται πολλές φορές με συγκεκριμένες πράξεις όπως η πρόσθεση έτσι ώστε το μήνυμα και το κλειδί να αναμειχθούν πολύ καλά Π.χ., ένας κανόνας μπορεί να είναι: πρόσθεσε το πρώτο μισό του κλειδιού στο δεύτερο μισό του block, ανάστρεψε το αποτέλεσμα και πρόσθεσε το δεύτερο μισό του κλειδιού στο δεύτερο μισό του block Στην πραγματικότητα τέτοιοι κανόνες είναι εξαιρετικά πολύπλοκοι: σύγχρονες τεχνικές με block ciphers χρησιμοποιούν 10 ή παραπάνω γύρους μετατροπών ώστε το μήνυμα αναμειγμένο με το κλειδί να είναι εξαιρετικά δύσκολο να αναλυθεί με στατιστικούς ελέγχους και να αποκρυτπογραφηθεί Η πιο δημοφιλής τεχνική block cipher είναι η Advanced Encryption Standard (AES): στην πιο τυπική της έκδοση χρησιμοποιεί blocks των 16 χαρακτήρων, κλειδιά των 128 bit και 10 γύρους λειτουργιών ανάμειξης 28

Πώς δημιουργείται δημόσια ένα διαμοιραζόμενο κλειδί; Η κρυπτογράφηση στο internet βασίζεται στη κατάτμηση του μηνύματος σε blocks και σε χρήση παραλλαγής της ιδέας της πρόσθεσης για κρυπτογράφηση κάθε block Αλλά πώς δημιουργείται το διαμοιραζόμενο μυστικό; Στο παράδειγμα υποθέσαμε ότι ήμασταν φίλοι με τον Arnold και η Eve δεν μάς ήξερε Τι γίνεται αν είμαστε εντελώς ξένοι με τον Arnold και την Eve και παίζαμε το ίδιο παιχνίδι; Μπορούμε να δημιουργήσουμε ένα διαμοιραζόμενο μυστικό; Αν και εκ πρώτης όψεως φαίνεται αδύνατο, αποδεικνύεται ότι υπάρχει ένας πολύ έξυπνος τρόπος που λύνει το πρόβλημα: η λύση αποκαλείται ανταλλαγή κλειδιού Diffie-Hellman εμείς θα την αναφέρουμε σαν ιδέα ανάμειξης χρωμάτων 29

Η ιδέα της ανάμειξης χρωμάτων Βήμα 1: Διαλέγουμε ο καθένας ένα ιδιωτικό χρώμα 30

Η ιδέα της ανάμειξης χρωμάτων Βήμα 2: Ένας από εμάς ανακοινώνει δημόσια τα συστατικά ενός νέου, διαφορετικού χρώματος που καλείται δημόσιο χρώμα 31

Η ιδέα της ανάμειξης χρωμάτων Δημιουργούμε και δημοσιοποιούμε ο καθένας μια μίξη συνδυάζοντας ένα ποτήρι του δημόσιου χρώματος με ένα ποτήρι του ιδιωτικού μας χρώματος παράγοντας ένα δημόσιο-ιδιωτικό μείγμα + = + = 32

Η ιδέα της ανάμειξης χρωμάτων Βήμα 4: Λαμβάνουμε μια ποσότητα από το δημόσιο-ιδιωτικό χρώμα του Arnold, τη μεταφέρουμε στο μέρος μας και προσθέτουμε ένα ποτήρι του δικού μας ιδιωτικού χρώματος (το ίδιο κάνει και ο Arnold: λαμβάνει μια ποσότητα από το δημόσιο-ιδιωτικό χρώμα μας, τη μεταφέρει στο μέρος του και προσθέτει ένα ποτήρι του δικού του ιδιωτικού χρώματος) + = + = 33

Η ιδέα της ανάμειξης χρωμάτων Βήμα 4: Λαμβάνουμε μια ποσότητα από το δημόσιο-ιδιωτικό χρώμα του Arnold, τη μεταφέρουμε στο μέρος μας και προσθέτουμε ένα ποτήρι του δικού μας ιδιωτικού χρώματος (το ίδιο κάνει και ο Arnold: λαμβάνει μια ποσότητα από το δημόσιο-ιδιωτικό χρώμα μας, τη μεταφέρει στο μέρος του και προσθέτει ένα ποτήρι του δικού του ιδιωτικού χρώματος) + =????? + = 34

Η ιδέα της ανάμειξης χρωμάτων 35

Ανάμειξη χρωμάτων με αριθμούς Βήμα 1: Αντί να διαλέξετε ένα ιδιωτικό χρώμα εσύ και ο Arnold διαλέγετε ο καθένας έναν ιδιωτικό αριθμό (π.χ., 6 και 4, αντίστοιχα) Βήμα 2: Ένας από εσάς ανακοινώνει έναν δημόσιο αριθμό αντί για ένα δημόσιο χρώμα που είπαμε πριν (π.χ., 7) Βήμα 3: Πολλαπλασίασε τον ιδιωτικό σου αριθμό (π.χ., 6) με το δημόσιο αριθμό (π.χ., 7) για να προκύψει ο δημόσιοςιδιωτικός αριθμός σου, δηλ., ο 42 Βήμα 4: Λαμβάνεις το δημόσιο-ιδιωτικό αριθμό του Arnold, που είναι ο 28, και τον πολλαπλασιάζεις με το δικό σου ιδιωτικό αριθμό, δηλ., τον 6, για να προκύψει ο κοινός (δημόσια διαμοιραζόμενος) μυστικός αριθμός, δηλ., ο 168 36

Η ιδέα της ανάμειξης χρωμάτων με αριθμούς Βήμα 1: Διαλέγουμε ο καθένας έναν ιδιωτικό αριθμό 4 6 37

Η ιδέα της ανάμειξης χρωμάτων με αριθμούς Βήμα 2: Ένας από εμάς ανακοινώνει δημόσια έναν δημόσιο αριθμό 4 6 7 38

Η ιδέα της ανάμειξης χρωμάτων με αριθμούς Βήμα 3: Πολλαπλασιάζουμε ο καθένας το δημόσιο αριθμό με τον ιδιωτικό μας αριθμό παράγοντας ένα δημόσιο-ιδιωτικό αριθμό 4x7=28 28 6x7=42 42 7 39

Η ιδέα της ανάμειξης χρωμάτων με αριθμούς Βήμα 4: Λαμβάνουμε το δημόσιο-ιδιωτικό αριθμό του Arnold, που είναι ο 42, και τον πολλαπλασιάζουμε με το δικό μας ιδιωτικό αριθμό, δηλ., τον 4, για να προκύψει ο κοινός (δημόσια διαμοιραζόμενος) μυστικός αριθμός, δηλ., ο 168 4x7=28 4x42=168 4x7x6=168 28 42 7 6x7=42 6x28=168 4x7x6=168 40

Η ιδέα της ανάμειξης χρωμάτων με αριθμούς Βήμα 4: Λαμβάνουμε το δημόσιο-ιδιωτικό αριθμό του Arnold, που είναι ο 42, και τον πολλαπλασιάζουμε με το δικό μας ιδιωτικό αριθμό, δηλ., τον 4, για να προκύψει ο κοινός (δημόσια διαμοιραζόμενος) μυστικός αριθμός, δηλ., ο 168 4x7=28 4x42=168 4x7x6=168 28 42 168??? 7 6x7=42 6x28=168 4x7x6=168 41

Ανάμειξη χρωμάτων με αριθμούς 42

Η ανάμειξη χρωμάτων στην πραγματικότητα Δεν μπορώ να «ξε-ανακατέψω χρώματα» = δεν μπορώ να κάνω διαίρεση Απλή λειτουργία που είναι εύκολο να υλοποιηθεί (όπως το ανακάτεμα χρωμάτων) αλλά δύσκολο να αναιρεθεί (όπως το ξε-ανακάτεμα χρωμάτων): ανακάτεμα χρωμάτων: ύψωση σε ακέραια δύναμη (discrete exponentiation) ξε-ανακάτεμα χρωμάτων: λογαρίθμηση με ακέραια βάση (discrete logarithm) Δεν υπάρχει γνωστή μέθοδος που να επιτρέπει σε έναν υπολογιστή να υπολογίσει διακριτούς λογαρίθμους αποδοτικά Αριθμητική με χρήση ρολογιού (clock arithmetic): κάθε αριθμός απεικονίζεται στο υπόλοιπο που αφήνει η διαίρεσή του με το μέγεθος του ρολογιού Χρήση ύψωσης σε δύναμη: 6 6 6 6 = 6 4 PPN = βάση ιδιωτικός αριθμός (μέγεθος ρολογιού) 43

Σκεφτείτε τα εξής ΠΑΡΑΤΗΡΗΣΗ 1: Αν σας πω ότι το υπόλοιπο της διαίρεσης ενός αριθμού Χ με το 3 είναι 2, μπορείτε να μου πείτε ποιος είναι ο Χ;;;; ΠΑΡΑΤΗΡΗΣΗ 2: Αν σας πω ότι κρατάω τα πιθανά υπόλοιπα της διαίρεσης ενός αριθμού με το 3, πόσες τιμές κρατάω; Αν κρατάω τα πιθανά υπόλοιπα της διαίρεσης ενός αριθμού με το 1023, πόσες τιμές κρατάω;;;;;; 44

Σκεφτείτε τα εξής ΠΑΡΑΤΗΡΗΣΗ 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 45

Αριθμητική με χρήση ρολογιού Με χρήση ρολογιού μεγέθους 7, ο αριθμός 12 απλοποιείται στον αριθμό 5: ξεκινάμε από το 0 και μετράμε 12 μονάδες κατά τη φορά του ρολογιού Με χρήση ρολογιού μεγέθους 7, βρίσκουμε ότι 12 + 6 = 4: ξεκινάμε από το 5 (που τελείωσε ο αριθμός 12) και προσθέτουμε άλλες 6 μονάδες κατά τη φορά του ρολογιού 46

Αριθμητική με χρήση ρολογιού Οι πρώτες δέκα δυνάμεις του 2, 3 και 6 με χρήση ρολογιού μεγέθους 11. Κάθε απάντηση υπολογίζεται από την προηγούμενή της με απλή αριθμητική 47

Αριθμητική με χρήση ρολογιού Οι πρώτες δέκα δυνάμεις του 2, 3 και 6 με χρήση ρολογιού μεγέθους 11. Κάθε απάντηση υπολογίζεται από την προηγούμενή της με απλή αριθμητική ΕΝΔΙΑΦΕΡΟΥΣΑ ΠΑΡΑΤΗΡΗΣΗ: έξυπνος συνδυασμός βάσης μεγέθους ρολογιού δίνει τη δυνατότητα δημιουργίας περισσότερων χρήσιμων αποτελεσμάτων, δηλ., «μηνυμάτων» 48

Η ανάμειξη χρωμάτων στην πραγματικότητα Βήμα 1: Εσύ και ο Arnold διαλέγετε ο καθένας έναν ιδιωτικό αριθμό (μικρότερο από το μέγεθος του ρολογιού) Βήμα 2: Εσύ και ο Arnold συμφωνείτε δημόσια σε δύο δημόσιους αριθμούς: ένα μέγεθος ρολογιού (χρησιμοποιούμε το 11 στο παράδειγμα) και έναν άλλο αριθμό που καλείται βάση (χρησιμοποιούμε σα βάση το 2) Βήμα 3: Εσύ και ο Arnold ο καθένας χωριστά δημιουργείτε έναν δημόσιο-ιδιωτικό αριθμό (PPN) αναμειγνύοντας τον ιδιωτικό σας αριθμό με τους δημόσιους, με χρήση δυνάμεων και αριθμητικής με χρήση ρολογιού Βήμα 4: Εσύ και ο Arnold ο καθένας χωριστά λαμβάνετε ο ένας το δημόσιο-ιδιωτικό αριθμό του άλλου και τον αναμειγνύετε με το δικό σας ιδιωτικό αριθμό 49

Πώς δημιουργούμε μια δημόσια κλειδαριά με αριθμούς; 8 9 11,2 50

Πώς δημιουργούμε μια δημόσια κλειδαριά με αριθμούς; 8 9 2 8 mod11=3 3 2 9 mod11=6 6 11,2 51

Πώς δημιουργούμε μια δημόσια κλειδαριά με αριθμούς; 8 9 2 8 mod11=3 3 2 9 mod11=6 6 6 8 mod11= 4 3 9 mod11= 4 11,2 52

Πώς δημιουργούμε μια δημόσια κλειδαριά με αριθμούς; 8 9 2 8 mod11=3 3 2 9 mod11=6 6 6 8 mod11= 4 3 9 mod11= 4 11,2?????? 53

Κρυπτογράφηση Δημοσίου Κλειδιού (Public Key Cryptography-PKC) στην πράξη 54

Κρυπτογράφηση Δημοσίου Κλειδιού (Public Key Cryptography-PKC) στην πράξη Ανάμειξη αριθμών στην πραγματικότητα, Βήμα 4: Μόνο εσύ και ο Arnold μπορείτε να βρείτε το μυστικό αριθμό, συνδυάζοντας τα στοιχεία που δείχνονται με βέλη, με χρήση δυνάμεων και αριθμητικής με χρήση ρολογιού 55

Πώς δημιουργείται δημόσια κοινό μυστικό κλειδί για επικοινωνία; g, p 56

Πώς δημιουργείται δημόσια κοινό μυστικό κλειδί για επικοινωνία; g, p Επιλέγει μυστικό a Και υπολογίζει το a*=g a mod p Επιλέγει μυστικό b Και υπολογίζει το b*=g b mod p 57

Πώς δημιουργείται δημόσια κοινό μυστικό κλειδί για επικοινωνία; a*, b* g, p Επιλέγει μυστικό a Και υπολογίζει το a*=g a mod p Επιλέγει μυστικό b Και υπολογίζει το b*=g b mod p 58

Πώς δημιουργείται δημόσια κοινό μυστικό κλειδί για επικοινωνία; a*, b* g, p Επιλέγει μυστικό a Και υπολογίζει το a*=g a mod p Υπολογίζει το Κ=b* a mod p Επιλέγει μυστικό b Και υπολογίζει το b*=g b mod p Υπολογίζει το Κ=a* b mod p 59

Πώς δημιουργείται δημόσια κοινό μυστικό κλειδί για επικοινωνία; a*, b* g, p Επιλέγει μυστικό a Και υπολογίζει το a*=g a mod p Υπολογίζει το Κ=b* a mod p=g ba mod p Μπορεί να υπολογίσει μόνο το a*xb*=g a+b mod p που δεν είναι χρήσιμο για τον υπολογισμό του Κ Επιλέγει μυστικό b Και υπολογίζει το b*=g b mod p Υπολογίζει το Κ=a* b mod p=g ba mod p 60

Πώς δημιουργείται δημόσια κοινό μυστικό κλειδί για επικοινωνία; a*, b* g, p Επιλέγει μυστικό a Και υπολογίζει το a*=g a mod p Υπολογίζει το Κ=b* a mod p=g ba mod p Για να υπολογίσει το a (ή το b) από το a*=g a mod p πρέπει να δοκιμάσει όλες τις τιμές a από 1 έως p-1 Επιλέγει μυστικό b Και υπολογίζει το b*=g b mod p Υπολογίζει το Κ=a* b mod p=g ba mod p 61

Κρυπτογράφηση Δημοσίου Κλειδιού (Public Key Cryptography-PKC) στην πράξη Η τελική έκδοση της ιδέας με την ανάμειξη χρωμάτων, δηλ., η ανάμειξη αριθμών μέσω δυνάμεων και αριθμητικής με χρήση ρολογιού, είναι ένας από τους τρόπους που οι υπολογιστές εγκαθιδρύουν στην πράξη διαμοιραζόμενα μυστικά στο internet Η συγκεκριμένη μέθοδος που περιγράψαμε λέγεται αλγόριθμος ανταλλαγής κλειδιού Diffie-Hellman, και πήρε το όνομά του από τους Whitfield Diffie και Martin Hellman, που πρώτοι δημοσίευσαν τον αλγόριθμο το 1976 62

Κρυπτογράφηση Δημοσίου Κλειδιού (Public Key Cryptography-PKC) στην πράξη Οποτεδήποτε επισκέπτεστε ένα ασφαλές website (κάποιο που ξεκινάει με https: αντί για http: ), ο δικός σας υπολογιστής και ο web εξυπηρετητής με τον οποίο επικοινωνεί δημιουργούν ένα διαμοιραζόμενο μυστικό, χρησιμοποιώντας το πρωτόκολλο Diffie- Hellman ή κάποια παραλλαγή του Αφότου δημιουργηθεί αυτό το διαμοιραζόμενο μυστικό, οι δύο υπολογιστές μπορούν να κρυπτογραφήσουν όλη την επικοινωνία τους χρησιμοποιώντας μια παραλλαγή της ιδέας με την πρόσθεση που περιγράψαμε 63

Ο αλγόριθμος (πρωτόκολλο) Diffie- Hellman για ανταλλαγή κλειδιού Όταν το πρωτόκολλο Diffie-Hellman χρησιμοποιείται στην πράξη, οι αριθμοί είναι πολύ μεγαλύτεροι από τα παραδείγματα που είδαμε εδώ Χρησιμοποιήσαμε πολύ μικρό μέγεθος ρολογιού (11) για να γίνονται εύκολα οι πράξεις Αλλά μικρό (δημόσιο) μέγεθος ρολογιού σημαίνει μικρό πλήθος πιθανών ιδιωτικών αριθμών (αφού μπορούμε να χρησιμοποιήσουμε μόνο ιδιωτικούς αριθμούς που είναι μικρότεροι από το μέγεθος ρολογιού) που σημαίνει ότι κάποιος μπορεί με έναν υπολογιστή να δοκιμάσει όλους τους πιθανούς ιδιωτικούς αριθμούς μέχρι να εντοπίσει κάποιον που παράγει το δικό μας δημόσιο-ιδιωτικό αριθμό Στο παράδειγμα: υπάρχουν μόνο 11 πιθανοί ιδιωτικοί αριθμοί, οπότε θα ήταν εξαιρετικά εύκολο να «σπάσει» κανείς το σύστημα Αντίθετα, πραγματικές υλοποιήσεις του πρωτοκόλλου Diffie-Hellman χρησιμοποιούν μέγεθος ρολογιού με μερικές εκατοντάδες ψηφία, που δίνει τη δυνατότητα παραγωγής εξαιρετικά μεγάλου πλήθους ιδιωτικών αριθμών (παραπάνω από τρισεκατομμύρια τρισεκατομμυρίων ) Ακόμα και τότε, οι δημόσιοι αριθμοί πρέπει να επιλέγονται με προσοχή, ώστε να έχουν τις σωστές μαθηματικές ιδιότητες 64

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???? 65

Όταν επιλέγεται μέγεθος ρολογιού και βάση για το πρωτόκολλο Diffie- Hellman, πρέπει να πληρούνται συγκεκριμένες μαθηματικές ιδιότητες Ιδιότητα 1 (πολύ σημαντική): το μέγεθος του ρολογιού πρέπει να είναι πρώτος αριθμός ώστε να μην έχει άλλους διαιρέτες εκτός από τον εαυτό του και το 1 (για να υπάρχει μεγάλος χώρος διαθέσιμων μηνυμάτων) Ιδιότητα 2: η βάση πρέπει να είναι πρωτοβάθμια ρίζα (primitive root) του μεγέθους του ρολογιού, δηλ., οι δυνάμεις της βάσης πρέπει τελικά να λαμβάνουν όλες τις δυνατές τιμές για κάθε πιθανό μέγεθος ρολογιού (για να μπορεί να αξιοποιηθεί ο μεγάλος χώρος διαθέσιμων μηνυμάτων) 66

Όταν επιλέγεται μέγεθος ρολογιού και βάση για το πρωτόκολλο Diffie- Hellman, πρέπει να πληρούνται συγκεκριμένες μαθηματικές ιδιότητες Οι 2 και 6 είναι και οι δύο πρωτοβάθμιες ρίζες του 11, αλλά ο 3 δεν είναι οι δυνάμεις του 3 κάνουν κύκλους στις τιμές 3,9,5,4,1 αλλά χάνουν τις τιμές 2,6,7,8 και 10 67

Πώς βρίσκω πρωτοβάθμιες ρίζες του μεγέθους του ρολογιού; Γενικά είναι δύσκολο πρόβλημα το καλύτερο που μπορώ να κάνω είναι εξαντλητική αναζήτηση Για να κάνω αναζήτηση σε λιγότερα στοιχεία κάνω το εξής: Έστω μέγεθος ρολογιού = 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, 68

Όταν επιλέγεται μέγεθος ρολογιού και βάση για το πρωτόκολλο Diffie- Hellman, πρέπει να πληρούνται συγκεκριμένες μαθηματικές ιδιότητες Πρώτος αριθμός αριθμός που μπορεί να γραφτεί σα γινόμενο μόνο του εαυτού του και της μονάδας - ή εναλλακτικά αριθμός που έχει μοναδικούς διαιρέτες τον εαυτό του και τη μονάδα Π.χ., 2=1x2, 3=1x3, 5=1x5, 7=1x7, κοκ Αριθμοί που δεν είναι πρώτοι καλούνται σύνθετοι Π.χ., 4=2x2, 6=2x3, 8=2x4, 9=3x3, κοκ 69

f(x)=3 x mod8 ΠΡΟΒΛΗΜΑ: Μπορώ να στείλω μόνο 2 κρυπτογραφημένα μηνύματα τα 1 και 3 και κατά συνέπεια μόνο 2 μηνύματα τα 1 και 2 (όλα τα άλλα στέλνονται με την ίδια κωδικοποίηση ) Αποστολέας 3 1 Παραλήπτης 70

Μονόδρομες (ή μη αντιστρέψιμες) συναρτήσεις Δεδομένου του x είναι εύκολο να υπολογιστεί το f(x) αλλά δεδομένου του f(x) είναι δύσκολο να υπολογιστεί το x (κατ αναλογία με την ανάμειξη χρωμάτων) Π.χ., διακριτός λογάριθμος: το να βρω για ποιο x ισχύει f(x)=α x modβ (ύψωση σε δύναμη) Υποθέστε ότι α=2 και β=7 Δεδομένο: x=2, εύκολα υπολογίζουμε την f(x)=2 2 mod7=4 Δεδομένο: f(x)=4, είναι δύσκολο να υπολογιστεί το x (αν είναι 1, 2, 3, 4, 5, 6) Δεν υπάρχει απόδειξη ότι το πρόβλημα είναι NP-complete πρόβλημα αλλά δεν έχει προταθεί ακόμα πολυωνυμικός αλγόριθμος για το πρόβλημα x α x modβ f(x) 2 4 2 x mod7 x=??? α x modβ f(x) 2 x mod7 4 ΕΥΚΟΛΟ (ύψωση σε δύναμη) ΔΥΣΚΟΛΟ (διακριτός λογάριθμος) 71

Μονόδρομες (ή μη αντιστρέψιμες) συναρτήσεις Δεδομένου του 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 πρόβλημα αλλά δεν έχει προταθεί ακόμα πολυωνυμικός αλγόριθμος για το πρόβλημα p,q p*q f(p,q) 11,13 143 11*13 ΕΥΚΟΛΟ (γινόμενο ακεραίων) x=??? f(p,q) p,q=??? 143 factorize(p*q) factorize(143) ΔΥΣΚΟΛΟ (παραγοντοποίηση) 72

Η Eve έστω κι αν γνωρίζει τα Α=g b mod p, Β=g a mod p, p, g δεν μπορεί να υπολογίσει γρήγορα τα a και b (διακριτός λογάριθμος) ώστε να πάρει το s γιατί ο μόνος τρόπος να το κάνει απαιτεί να ψάξει «όλους» τους πιθανούς εκθέτες a ή b (που είναι οι τιμές από 1 έως p-1 λόγω του mod) 73

Ο αλγόριθμος (πρωτόκολλο) Diffie- Hellman για ανταλλαγή κλειδιού Η προσέγγιση του πρωτοκόλλου Diffie-Hellman είναι μία από τις πολλές τεχνικές για επικοινωνία μέσω (ηλεκτρονικών) κάρτ ποστάλ Το πρωτόκολλο Diffie- Hellman είναι ένας αλγόριθμος ανταλλαγής κλειδιού Άλλοι αλγόριθμοι που χρησιμοποιούν δημόσιο κλειδί δουλεύουν διαφορετικά και επιτρέπουν την απευθείας κρυπτογράφηση μηνυμάτων προς συγκεκριμένο παραλήπτη, με χρήση δημόσιας πληροφορίας που ανακοινώνει ο παραλήπτης Αντίθετα, ένας αλγόριθμος ανταλλαγής κλειδιού μάς επιτρέπει τη δημιουργία ενός διαμοιραζόμενου μυστικού με χρήση δημόσιας πληροφορίας από τον παραλήπτη, αλλά η ίδια η κρυπτογράφηση γίνεται μέσω της ιδέας της πρόσθεσης Στο μεγαλύτερο μέρος για επικοινωνία στο internet χρησιμοποιείται η τεχνική που περιγράψαμε επειδή απαιτεί λιγότερο επικοινωνιακό κόστος Υπάρχουν εφαρμογές που απαιτούν πλήρη κρυπτογράφηση με χρήση δημοσίου κλειδιού Από τις πιο ενδιαφέρουσες τέτοιες εφαρμογές είναι οι ψηφιακές υπογραφές όπου μυστική πληροφορία αναμειγνύεται δημόσια με μαθηματικά, με μη αναστρέψιμο τρόπο, όπως μη αναστρέψιμα αναμειγνύονται και τα χρώματα 74

Ο αλγόριθμος RSA για κρυπτογράφηση με χρήση δημοσίου κλειδιού Το πιο γνωστό σύστημα κρυπτογράφησης με χρήση δημοσίου κλειδιού είναι το RSA, που ονομάστηκε έτσι από τα αρχικά των επωνύμων των δημιουργών του: Ronald Rivest, Adi Shamir, και Leonard Adleman Ο RSA είναι βασικό συστατικό των ψηφιακών υπογραφών 75

Ο αλγόριθμος RSA για κρυπτογράφηση με χρήση δημοσίου κλειδιού Το πιο γνωστό σύστημα κρυπτογράφησης με χρήση δημοσίου κλειδιού είναι το RSA, που ονομάστηκε έτσι από τα αρχικά των επωνύμων των δημιουργών του: Ronald Rivest, Adi Shamir, και Leonard Adleman Ο RSA είναι βασικό συστατικό των ψηφιακών υπογραφών 76

Αλγόριθμοι Diffie-Hellman και RSA Ο αλγόριθμος Diffie-Hellman: αλγόριθμος ανταλλαγής κλειδιού (key-exchange algorithm) βασίζεται στη δυσκολία του προβλήματος διακριτού λογαρίθμου Να βρεθεί x για το οποίο ισχύει f(x)=a x modb χρησιμοποιείται για τη δημιουργία διαμοιραζόμενου μυστικού δημόσια Το διαμοιραζόμενο μυστικό (private key) θα χρησιμοποιηθεί αργότερα για κρυπτογράφηση (symmetric encryption) Ομάδα χρηστών συμφωνούν δημόσια σε ένα κοινό μυστικό κλειδί και με αυτό κρυπτογραφούν όλη την επικοινωνία τους μετέπειτα RSA: αλγόριθμος κρυπτογράφησης (asymmetric encryption algorithm) και αλγόριθμος για παραγωγή ψηφιακών υπογραφών βασίζεται στη δυσκολία του προβλήματος παραγοντοποίησης ακεραίων Να βρεθούν p, q για τα οποία ισχύει f(p,q)=p*q χρησιμοποιείται για τη δημιουργία ζεύγους δημόσιου/ιδιωτικού κλειδιού Το δημόσιο κλειδί (public key) χρησιμοποιείται για κρυπτογράφηση (asymmetric encryption) Ο αποστολέας κρυπτογραφεί το μήνυμά του (με το δημόσιο κλειδί του παραλήπτη) Μόνο ο παραλήπτης μπορεί να αποκρυπτογραφήσει το κρυπτογραφημένο μήνυμα (με το ιδιωτικό του κλειδί) 77

Αλγόριθμοι Diffie-Hellman και RSA Asymmetric encryption ανταλλαγή κλειδιού Κάνοντας asymmetric encryption κάνω ανταλλαγή κλειδιού Παράγω τυχαίο συμμετρικό κλειδί και το κρυπτογραφώ με το δημόσιο κλειδί του παραλήπτη Με ανταλλαγή κλειδιού μπορώ να κάνω asymmetric encryption Χρησιμοποιώ το κλειδί που προκύπτει από την ανταλλαγή για να κρυπτογραφήσω δεδομένα μέσω ενός συμμετρικού αλγορίθμου, π.χ., AES Ο αλγόριθμος Diffie-Hellman χρησιμοποιείται για ανταλλαγή κλειδιού σε έναν κύκλο επικοινωνίας 78

Αλγόριθμοι Diffie-Hellman και RSA Χρησιμοποιούμε τον αλγόριθμο RSA για να κρυπτογραφήσουμε τα κλειδιά Χρησιμοποιούμε τον αλγόριθμο Diffie Hellman για να ανταλλάξουμε τα κρυπτογραφημένα κλειδιά με ασφάλεια http://www.mat-d.com/site/rsa-diffie-hellmanexplained-in-3-minutes/ http://www.cs.miami.edu/home/burt/learning/p ol599-cryptotalk/cryptotalk.html 79

Αλγόριθμοι Diffie-Hellman και RSA Αλγόριθμος Diffie-Hellman RSA 80

Ο αλγόριθμος RSA για κρυπτογράφηση με χρήση δημοσίου κλειδιού Η ιστορία του παρασκηνίου της δημιουργίας αυτών των αλγορίθμων κρυπτογράφησης με χρήση δημοσίου κλειδιού είναι εντυπωσιακή και περίπλοκη Οι Diffie και Hellman ήταν πράγματι οι πρώτοι που δημοσίευσαν τη μέθοδο Diffie- Hellman το 1976 Οι Rivest, Shamir, και Adleman ήταν πράγματι οι πρώτοι που δημοσίευσαν τον αλγόριθμο RSA το 1978 Αλλά η ιστορία δε σταματάει εδώ: Ανακαλύφθηκε εκ των υστέρων ότι η Βρετανική κυβέρνηση γνώριζε ήδη για πολλά χρόνια παραπλήσια συστήματα αλλά δυστυχώς - οι δημιουργοί αυτών των ιδεώνπρογόνων της τεχνικής Diffie-Hellman και του RSA ήταν μαθηματικοί που δούλευαν για τη Βρετανική κυβέρνηση (εργαστήρια επικοινωνιών GCHQ) και τα αποτελέσματα της δουλειάς τους είχαν καταγραφεί σε απόρρητα έγγραφα που δημοσιοποιήθηκαν το 1997 81

Ο αλγόριθμος RSA για κρυπτογράφηση με χρήση δημοσίου κλειδιού Οι αλγόριθμοι RSA, Diffie-Hellman και άλλοι αλγόριθμοι κρυπτογράφησης που κάνουν χρήση δημοσίου κλειδιού δεν είναι μόνο εκπληκτικές ιδέες αλλά έχουν εξελιχθεί σε εμπορικές τεχνολογίες και πρότυπα στο internet με εξαιρετική σημασία για επιχειρήσεις και πρόσωπα Η συντριπτική πλειοψηφία των online συναλλαγών που πραγματοποιούμε καθημερινά δε θα μπορούσαν να ολοκληρωθούν με ασφάλεια χωρίς κρυπτογράφηση δημοσίου κλειδιού Οι δημιουργεί του RSA έκαναν το σύστημά τους πατέντα τη δεκαετία του 1970 η οποία δημοσιοποιήθηκε το 2000 οπότε και πραγματοποιήθηκε δεξίωση στο Great American Music Hall στο San Francisco (τη βραδιά που έληξε η πατέντα) 82

Σύνοψη Για αιώνες η Κρυπτογραφία βασιζόταν σε πρωτόκολλα που έκαναν χρήση ιδιωτικού κλειδιού (private-key protocols): Η Alice και ο Bob συναντιούνταν από πριν και διάλεγαν μαζί έναν μυστικό κωδικό με χρήση του οποίου κρυπτογραφούσαν κάθε μελλοντική τους επικοινωνία Η μόνη ελπίδα για την κακιά υποκλοπέα Eve ήταν να συλλέξει κωδικοποιημένα μηνύματα και να τα χρησιμοποιήσει για να εντοπίσει αναλύοντάς τα τουλάχιστον μερικώς το μυστικό κωδικό Τεχνικές κρυπτογράφησης με χρήση δημόσιου κλειδιού (public-key schemes) όπως ο αλγόριθμος RSA είναι σαφώς εξυπνότερες: επιτρέπουν στην Alice να στείλει στο Bob ένα μήνυμα χωρίς να απαιτείται να γνωρίζονται από πριν και η κακιά υποκλοπέας Eve να μη μπορεί να καταλάβει το μήνυμα Η κεντρική ιδέα του συστήματος κρυπτογράφησης RSA βασίζεται στη σημαντική αντίθεση μεταξύ της ευκολίας εύρεσης μεγάλων πρώτων αριθμών και της δυσκολίας παραγοντοποίησης (factoring) του γινομένου δύο μεγάλων πρώτων αριθμών Ο Bob μπορεί να φτιάξει μια ψηφιακή «κλειδαριά» για την οποία να έχει μόνο αυτός το κλειδί, να την ανακοινώσει δημόσια και να δώσει έτσι στην Alice έναν τρόπο να του στέλνει με ασφάλεια μηνύματα που μόνος αυτός θα μπορεί να ξεκλειδώσει Αυτό ακριβώς συμβαίνει όταν για παράδειγμα - κάνουμε αγορές στο Internet, και θέλουμε να στείλουμε τον αριθμό της πιστωτικής μας κάρτας σε κάποια εταιρεία Με βάση τον αλγόριθμο RSA, ο Bob πρέπει να κάνει πολύ απλές πράξεις όπως πολλαπλασιασμό για να υλοποιήσει την ψηφιακή κλειδαριά και, επίσης, και η Alice και ο Bob πρέπει να κάνουν πολύ απλές πράξεις για να κλειδώσουν και να ξεκλειδώσουν (αντίστοιχα) τα μηνύματα Αντίθετα, για να ξεκλειδώσει η Eve ένα κλειδωμένο μήνυμα ΧΩΡΙΣ ΝΑ ΕΧΕΙ ΤΟ ΚΛΕΙΔΙ πρέπει να κάνει πολύ δύσκολες υπολογιστικά πράξεις όπως η ανάλυση μεγάλων αριθμών σε γινόμενα πρώτων παραγόντων οι οποίες απαιτούν υπολογιστική ισχύ μεγαλύτερη από αυτή του ισχυρότερου υπαρκτού υπολογιστή 83

Τέλος Ενότητας

Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στo πλαίσιo του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα στο Πανεπιστήμιο Αθηνών» έχει χρηματοδοτήσει μόνο την αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους.

Σημειώματα

Σημείωμα Ιστορικού Εκδόσεων Έργου Το παρόν έργο αποτελεί την έκδοση 1.00. Έχουν προηγηθεί οι κάτωθι εκδόσεις:

Σημείωμα Αναφοράς Copyright Πανεπιτήμιο Πατρών, Εύη Παπαϊωάννου. «Εισαγωγή στους Αλγόριθμους. O αλγόριθμος Diffie-Hellman». Έκδοση: 1.0. Πάτρα 2015. Διαθέσιμο από τη δικτυακή διεύθυνση: https://eclass.upatras.gr/courses/culture158/index.php

Σημείωμα Αδειοδότησης Το παρόν υλικό διατίθεται με τους όρους της άδειας χρήσης Creative Commons Αναφορά, Μη Εμπορική Χρήση Παρόμοια Διανομή 4.0 [1] ή μεταγενέστερη, Διεθνής Έκδοση. Εξαιρούνται τα αυτοτελή έργα τρίτων π.χ. φωτογραφίες, διαγράμματα κ.λ.π., τα οποία εμπεριέχονται σε αυτό και τα οποία αναφέρονται μαζί με τους όρους χρήσης τους στο «Σημείωμα Χρήσης Έργων Τρίτων». [1] http://creativecommons.org/licenses/by-nc-sa/4.0/ Ως Μη Εμπορική ορίζεται η χρήση: που δεν περιλαμβάνει άμεσο ή έμμεσο οικονομικό όφελος από την χρήση του έργου, για το διανομέα του έργου και αδειοδόχο που δεν περιλαμβάνει οικονομική συναλλαγή ως προϋπόθεση για τη χρήση ή πρόσβαση στο έργο που δεν προσπορίζει στο διανομέα του έργου και αδειοδόχο έμμεσο οικονομικό όφελος (π.χ. διαφημίσεις) από την προβολή του έργου σε διαδικτυακό τόπο Ο δικαιούχος μπορεί να παρέχει στον αδειοδόχο ξεχωριστή άδεια να χρησιμοποιεί το έργο για εμπορική χρήση, εφόσον αυτό του ζητηθεί.

Διατήρηση Σημειωμάτων Οποιαδήποτε αναπαραγωγή ή διασκευή του υλικού θα πρέπει να συμπεριλαμβάνει: το Σημείωμα Αναφοράς το Σημείωμα Αδειοδότησης τη δήλωση Διατήρησης Σημειωμάτων το Σημείωμα Χρήσης Έργων Τρίτων (εφόσον υπάρχει) μαζί με τους συνοδευόμενους υπερσυνδέσμους.

Σημείωμα Χρήσης Έργων Τρίτων Το Έργο αυτό κάνει χρήση των ακόλουθων έργων: Εικόνες/Σχήματα/Διαγράμματα/Φωτογραφίες 9 Αλγόριθμοι που άλλαξαν το μέλλον. John MacCormick. Επιστημονική επιμέλεια Ελληνικής έκδοσης: Εύη Παπαϊωάννου. Πανεπιστημιακές Εκδόσεις Κρήτης, 2015 (υπό έκδοση). ISBN 978-960-524-444-6. Κωδικός Βιβλίου στον Εύδοξο: 50657158. http://www.wikipedia.org