Κρυπτογραφία Διάλεξη στις Δρ. Χρήστος Αναγνωστόπουλος
Εφαρμογή της Κρυπτογραφίας Αυθεντικοποίηση (Authentication) Επιβεβαίωση ταυτοτήτων των δυνατοτήτων Εμπιστευτικότητα (Confidentiality) Πρόσβαση πληροφορίας μόνο από εξουσιοδοτημένους χρήστες Μυστικότητα και Ιδιωτικότητα Ακεραιότητα (Integrity) Διασφάλιση ακεραιότητας και πληρότητας Αποφυγή μη εξουσιοδοτημένης τροποποίησης Αποφυγή ατελούς τροποποίησης εξουσιοδοτημένης πρόσβασης - αυθεντικότητα
Εισαγωγικά περί Κρυπτογραφίας Οντότητες που εμπλέκονται για την μετάδοση ενός μηνύματος (μ): Αποστολέας (α) Παραλήπτης (π) Κακόβουλη οντότητα (κ) Απειλές στην μετάδοσης μηνύματος (μ) Η οντότητα (κ) προσπαθεί να εμποδίσει να φτάσει στον (π) το μήνυμα (μ) διακόπτοντας τη μετάδοσή του. Η οντότητα (κ) να παρεμβληθεί στην πορεία του μηνύματος (μ) προκειμένου να το «διαβάσει» καταργώντας την μυστικότητα του. Η οντότητα (κ) να τροποποιήσει το μήνυμα (μ) και να το επανα-μεταδώσει τροποποιημένο. Η οντότητα (κ) να κατασκευάσει ένα νέο μήνυμα (μ’) το οποίο μοιάζει με το μήνυμα (μ) παραπλανώντας τον παραλήπτη (π). Δημοσίευση: W. Diffie, M. E. Hellman, "Privacy and Authentication: An Introduction to Cryptography", in Proc. IEEE, Vol 67(3) Mar 1979, pp
Εισαγωγικά περί Κρυπτογραφίας Κρυπτογράφηση (encipher) είναι η μαθηματική διαδικασία σύνταξης ενός μηνύματος (μ) σε συνθηματική μορφή – κρυπτογραφημένο μήνυμα, η οποία δύσκολα (υπολογιστικά ή ρητά μη υπολογίσιμη) αναγνωρίζεται από ένα μη εξουσιοδοτημένο άτομο. Αποκρυπτογράφηση (decipher) είναι η αντίστροφη διαδικασία, δηλαδή η μετατροπή του κρυπτογραφημένου μηνύματος στην αρχική του μορφή. Ένα σύστημα που υποστηρίζει και τις δύο διαδικασίες καλείται κρυπτοσύστημα. Το αρχικό μήνυμα – κείμενο- καλείται plain text. Το κρυπτογραφημένο μήνυμα καλείται cipher text. Ο αλγόριθμος κρυπτογράφησης που μετατρέπει ένα μήνυμα plaintext σε cipher text για το οποίο είναι αναγνωρίσιμη μια αλλαγή του ή αντικατάσταση κάποιου συμβόλου του, καλείται cipher. Κλειδί –key- κρυπτογράφησης είναι η ποσότητα πληροφορίας που μπορεί είτε να αποκαλύψει ένα cipher text ή να κρυπτογραφήσει ένα plaintext σε μοναδικό cipher text. Είναι γνωστό και κοινό μόνον για τον αποστολέα (α) και παραλήπτη (π) που πρόκειται να μεταδώσουν το μήνυμα (μ). Κρυπτανάλυση (cryptanalysis) είναι η διαδικασία εύρεσης του plaintext από το cipher text χωρίς τη γνώση του cipher ή της αποκάλυψης του cipher έχοντας τα ζευγάρια (plaintext, cipher text) ή την αποκάλυψη του cipher μόνο με τα cipher texts. Κρυπτολογία (cryptology) Η κρυπτανάλυση και κρυπτογραφία μαζί
Εισαγωγικά περί Κρυπτογραφίας Έστω το αρχικό μήνυμα (μ) ότι αποτελείται από μια σειρά από χαρακτήρες: (μ) = [μ1, μ2, …, μΝ]. Τότε το κρυπτογραφημένο μήνυμα (ψ) είναι από μια σειρά χαρακτήρων: (ψ) = [ψ1, ψ2, …, ψΝ]. Εάν f είναι ο αλγόριθμος κρυπτογράφησης του (μ) σε (ψ) τότε (ψ) = f((μ)). Ο αλγόριθμος αποκρυπτογράφησης g του (ψ) σε (μ) είναι g((ψ)) = (μ). Εστιάζουμε σε κρυπτοσυστήματα όπου: g = f –1, δηλαδή (μ) = g(f((μ))). Οι αλγόριθμοι κρυπτογράφησης χρησιμοποιούν ένα κλειδί (δ) ώστε το (ψ) να εξαρτάται τόσο από το (μ) όσο και από το (δ), δηλαδή, (ψ) = f((μ),(δ)) Το κλειδί για την κρυπτογράφηση είναι το ίδιο και για την αποκρυπτογράφηση, δηλαδή, (μ) = g((δ),f((μ),(δ)))
Κρυπτοσυστήματα Με βάση τον τύπο του κλειδιού (δ) τα κρυπτοσυστήματα διακρίνονται σε: Κρυπτοσυστήματα ενός ιδιωτικού –μυστικού- κλειδιού: Συμμετρικά. Κρυπτοσυστήματα πολλών δημοσίων γνωστών κλειδιών: Ασύμμετρα. Συμμετρικά Κρυπτοσυστήματα: Απαιτείται διαφύλαξη της μυστικότητας του κοινού ιδιωτικού κλειδιού. Το κλειδί είναι γνωστό μόνον σε αυτόν που κρυπτογραφεί και αποκρυπτογραφεί! Ασύμμετρα Κρυπτοσυστήματα: Σημαντικό ρόλο παίζει η τεχνική της διαδικασίας κρυπτογράφησης. Ένα κλειδί είναι γνωστό (δημόσιο κλειδί) ενώ ένα άλλο κλειδί παραμένει ιδιωτικό (μυστικό
Κρυπτοσυστήματα Συμμετρικά Κρυπτοσυστήματα: Οι αλγόριθμοι κρυπτογράφησης καθορίζουν: Κρυπτοσύστημα Αντικατάστασης Κρυπτοσύστημα Μετάθεσης Μικτό Κρυπτοσύστημα Ασύμμετρα Κρυπτοσυστήματα: Αλγόριθμος Knapsak Αλγόριθμος RSA (Rivesr, Shamir, Adleman) Στο Β’ΠΠ η αποκάλυψη των κρυπτογραφημένων μηνυμάτων γίνεται σε μερικές ώρες…τώρα… Unconditional Security: Ανεξάρτητα από την υπολογιστική ισχύ, ο αλγόριθμος μπορεί να «σπάσει» Computational Security: Για συγκεκριμένους υπολογιστικού πόρους, ο αλγόριθμος δεν μπορεί να σπάσει (π.χ., απαιτούμενος χρόνος μεγαλύτερος από 100 χρόνια).
Συμμετρική Κρυπτογραφία (μ) ψ= f(μ,δ1)μ= g(ψ,δ2) Παραγωγή κλειδιών δ1, δ2 «για εμάς: δ1 = δ2» (μ) (κ) (α) (π)
Αρχαία Συμμετρική Κρυπτογραφία Αρχαία Αίγυπτος: Ιερογλυφικά κρυπτογραφούσαν μηνύματα 2000 χρόνια πριν, Ιούλιο Καίσαρας 1200 μ.Χ. Roger Bacon 1460 μ.Χ. Leon Alberti 1585 μ.Χ. Blaise de Vigenère 1790, Jefferson κύλινδρος 1817, ο δίσκος του Wadsworth Β’ΠΠ η κρυποτσυσκευή Enigma Rotor!
Τεχνικές Συμμετρικής Κρυπτογραφίας Αλγόριθμοι Αντικατάστασης: Κάθε σύμβολο του μηνύματος (μ) αντικαθίσταται από ένα ή περισσότερα σύμβολα με βάση έναν αλγόριθμο που είναι υποχρεωτικά γνωστός στον (α) και στον (π). Μονοαλφαβητικές μέθοδοι Πολυαλφαβητικές μέθοδοι Αλγόριθμοι Μετάθεσης: Τα σύμβολα του μηνύματος μετατίθενται σε διαφορετικές διατάξεις γνωστές τόσο στον (α) όσο και στον (π). Μικτοί Αλγόριθμοι: Αντικατάσταση συμβόλων και Μετάθεση συμβόλων.
Τεχνική Ιουλίου Καίσαρα Απλός αλγόριθμος μονοαλφαβητικής αντικατάστασης: Αντικατάστησε κάθε σύμβολο από το (μ) με το τρίτο αλφαβητικά του (αρχίζοντας από το Α) και κυκλικά Παράδειγμα: (ψ) = L FDPH L VDZ L FRQTXHUHG (μ) = I CAME I SAW I CONQUERED Η συνάρτηση συσχέτισης – αντικατάστασης f είναι: f: [ABCDEFGHIJKLMNOPQRSTUVWXYZ] [DEFGHIJKLMNOPQRSTUVWXYZABC] Δηλαδή: ψ = f(μ,δ) = μ i + δ mod 26, i=1,…,|μ|, με κλειδί δ = 3 g(ψ,δ) = ψ i - δ mod 26, i=1,…,|ψ|, με κλειδί δ = 3
Κρυπτανάλυση της Τεχνικής Ιουλίου Καίσαρα Μειονέκτημα: Απλός αλγόριθμος. Υπάρχουν 26 κλειδιά, άρα με μια εξαντλητική αναζήτηση «σπάει» Εξαρτάται από την συχνότητα εμφάνισης του κάθε συμβόλου στην αλφάβητο. Τα σύμβολα δεν έχουν όλα την ίδια συχνότητα εμφάνισης Στην αγγλική γλώσσα το γράμμα e εμφανίζεται, στατιστικά, 12,75% ενώ το z 0.25%
Κρυπτανάλυση της Τεχνικής Ιουλίου Καίσαρα Κρυπτανάλυση: Έστω ψ = IJKYAU QI DEED από ένα μεγάλο κρυπτογραφημένο κείμενο Έστω ψ = f(δ,μ) = μ + δ mod 26. (άγνωστο το κλειδί δ. Παίρνει τιμές από 2 έως 26) Από τη συχνότητα εμφάνισης του κρυπτογραφημένου συμβόλου παρατηρούμε ότι το U εμφανίζεται τις περισσότερες φοράς, άρα πιθανολογείται να αντιστοιχεί στο γράμμα E. Άρα, το U είναι το 20ο γράμμα και το Ε το 4ο γράμμα, έτσι: 20 = 4 + δ mod 26. Από λύση δίνει ότι δ = 16! Το κρυπτογραφημένο κείμενο δίνει διαδοχικά: ψ = := = STRIKE AT NOON = μ
Ιδέα!; Για κάθε γράμμα από το (μ) να το αντικαταστήσουμε τυχαία με ένα γράμμα στο κρυπτογραφημένο (ψ), και όχι με το σταθερό (δ) Τότε θα έχουμε κλειδί (δ’) με μήκος 26 γραμμάτων! Λάθος: Το (ψ) μήνυμα περιέχει από «τη φύση» του στατιστική πληροφορία! Το πρόβλημα δεν είναι το πλήθος των συμβόλων του δ’. Το πρόβλημα είναι οι συχνότητες εμφάνισης τόσο των γραμμάτων, όσο των δι-γραμμάτων, τρι- γραμμάτων, κ.α.
Πολυαφλαβητικές Τεχνικές Αντικατάστασης Είναι η χρήση πολλών μονοαλφαβητικών αντικαταστάσεων σε όλο το μήνυμα (μ) Χρήση διαφορετικών αλφάβητων (από 2 και πάνω) για την δημιουργία μιας σύνθετης κατανομής συχνότητας των συμβόλων έτσι ώστε: δύο ή περισσότερα συνεχόμενα γράμματα να εμφανίζονται διαφορετικά, όπως, και, το ίδιο γράμμα να αντιστοιχεί σε δύο ή περισσότερα διαφορετικά γράμματα. Έστω (ζ) το πλήθος των διαφορετικών αλφαβήτων κρυπτογράφησης από τα αλφάβητα: Ζ1, Ζ2, …, Ζ(ζ). Τότε η συνάρτηση κρυπτογράφησης έχει τη μορφή: f(i): (μ) ψ(i), δηλαδή για κάθε σύμβολο από το (μ) υπάρχει αντιστοίχιση στο μήνυμα (ψ) μέσω του i-στού αλφαβήτου Ζ(i)
Πολυαφλαβητικές Τεχνικές Αντικατάστασης Τα μήνυμα (μ) γράφεται ως ένα «περιοδικό» κείμενο με μήκος κλειδιού (ζ) ως εξής: (μ) = μ1μ2…μ(ζ)μ(ζ+1)μ(ζ+2)…μ(2ζ)μ(2ζ+1)μ(2ζ+2)…μ(3ζ) μ(3ζ+1)μ(3ζ+2)…μ(4ζ)… Τα μήνυμα (ψ) γράφεται ως ένα «περιοδικό» κείμενο με μήκος κλειδιού (ζ) ως εξής: (ψ) = f 1 (μ1)f 2 (μ2)…f ζ (μ(ζ)) f 1 (μ(ζ+1))f 2 (μ(ζ+2))…f ζ (μ(2ζ)) f 1 (μ(2ζ+1))f 2 (μ(2ζ+2))…f ζ (μ(3ζ)) f 1 (μ(3ζ+1))f 2 (μ(3ζ+2))…f ζ (μ(4ζ))… Αν ζ = 1 τότε έχουμε μονοαλφαβητική μέθοδο!
Πολυαφλαβητική Τεχνική: Vigenère Το κλειδί δ είναι μια ακολουθία από (ζ) γράμματα: δ = δ1δ2δ3…δ(ζ) όπου το δ(i) είναι ο αριθμός που δείχνει τις θέσεις μετατόπισης στο i αλφάβητο. Έτσι έχουμε: f(i,μ) = (μ) + δ(i) mod Ν (Ν είναι το πλήθος των συμβόλων του αλφάβητου i). Για να κρυπτογραφηθεί το μήνυμα θεωρούμε ότι τα γράμματα που το αποτελούν βρίσκονται στην πρώτη γραμμή του πίνακα Vigenere ενώ τα γράμματα που αντιστοιχούν στο κλειδί βρίσκονται στην πρώτη από αριστερά στήλη. Κάτω από το μήνυμα (μ) γράφουμε το κλειδί (δ). Εάν το κλειδί (δ) περιέχει λιγότερα γράμματα από το (μ) τότε περιοδικά επαναλαμβάνεται μέχρι να καλύψει όλο το μήκος του μηνύματος. Τα κρυπτογραφημένα γράμματα βρίσκονται στην τομή της γραμμής και της στήλης που ορίζει το γράμμα του κειμένου που κρυπτογραφείται και το αντίστοιχο γράμμα του κλειδιού.
Πολυαφλαβητική Τεχνική: Vigenère μ = codebreaking δ = radio radio ra … ψ = togmpiedsweg H αποκρυπτογράφηση γίνεται ανάποδα! Προσπάθεια… Άσκηση: μ = THISPROCESSCANALSOBEEXPRESSED δ = CIPHER ψ = ;
Πολυαφλαβητική Τεχνική: Beauford Μπορούμε να αντικαταστήσουμε κάθε γραμμή του πίνακα Vigenere με μια νέα αντικατάσταση όπου έχει γίνει πρώτα αντιστροφή της αλφαβήτου και μετά έγινε μετατόπιση. Η συνάρτηση f είναι όμοια τώρα: f(i,μ) = (δ(i) – μ) mod Ν (Ν είναι το πλήθος των συμβόλων του αλφάβητου i). Μια ακόμη παραλλαγή είναι η συνάρτηση: f(i,μ) = (μ - δ(i)) mod Ν (Ν είναι το πλήθος των συμβόλων του αλφάβητου i). Ποια είναι αυτή;
Κρυπτανάλυση Πολυαφλαβητικών Τεχνικών Πρέπει να προσδιορίσουμε τον αριθμό των αλφαβήτων που χρησιμοποιούνται Πρέπει να χωρίσουμε το κρυπτογραφημένο μήνυμα (ψ) σε ομάδες που κρυπτογραφήθηκαν με το ίδιο αλφάβητο και στη συνέχεια να αποκρυπτογραφηθεί κάθε ομάδα. Δύο μέθοδοι χρησιμοποιούνται: Μέθοδος Kasiski για τον προσδιορισμό του μήκους –περιόδου- του κλειδιού. Δείκτης συμπτώσεων για τον εντοπισμό του πιθανού αριθμού των αλφαβήτων που χρησιμοποιήθηκαν.
Μέθοδος Kasiski O Kasiski ήταν αξιωματικός του Πρωσικού Στρατού που το 1863 σκέφτηκε το εξής: Αν ένα κείμενο έχει κρυπτογραφηθεί με τη βοήθεια (ζ) αλφαβήτων σε κυκλική σειρά και Αν μια συγκεκριμένη λέξη ή ομάδα γραμμάτων εμφανίζεται k φορές στο αρχικό κείμενο, Τότε θα πρέπει να κρυπτογραφείται k/ζ φορές με τη βοήθεια του ίδιου αλφάβητου. Δηλαδή: Αν το κλειδί δ είναι μια λέξη με 3 γράμματα, υπάρχουν μόνον 3 διαφορετικοί τρόποι τοποθέτησης της λέξης κλειδί πάνω σε μια λέξη του αρχικού κειμένου. Λέξη ή ομάδα γραμμάτων του αρχικού κειμένου η οποία εμφανίζεται περισσότερο από 3 φορές θα πρέπει να έχει κρυπτογραφηθεί τουλάχιστον δύο φορές με την ίδια αντιστοίχιση. Οπότε όλες αυτές οι εμφανίσεις θα δώσουν το ίδιο κρυπτογραφημένο όμιλο γραμμάτων!
Μέθοδος Kasiski: Παράδειγμα Αρχικό μήνυμα (μ) = tobeornottobethatisthe… Κλειδί (δ) = runrunrunrunrunrunrun… Κρυπτογραφημένο (ψ) = kiovieeigkiovnurnvjnuv… Αλγόριθμος Kasiski Βήμα 1: Προσδιόρισε όλες τις επαναλήψεις της ίδιας ομάδας από τρία γράμματα και πάνω (για να έχουμε επανάληψη μιας ομάδας 4 γραμμάτων η οποία να μην αντιστοιχεί στα ίδια γράμματα στο αρχικό κείμενο είναι 1/(26^4) = ). Βήμα 2: Για κάθε επανάληψη υπολογίζουμε τις θέσεις έναρξής της (θέση 1, 10, …) Βήμα 3: Υπολογίζουμε τη διαφορά μεταξύ δύο διαδοχικών επαναλήψεων π.χ., 9 = Βήμα 4: Υπολογίζουμε όλους του παράγοντες της κάθε διαφοράς (π.χ., 3 και 9). Βήμα 5: Εάν υπάρχει κάποια πολυαλφαβητική μέθοδος αντικατάστασης, τότε το μήκος του κλειδιού είναι ίσο με ένα από τους παράγοντες που προσδιορίζονται από το Βήμα 4.
Κρυπτοσύστημα Μετάθεσης Αρχαία Ελλάδα: Μέθοδος σκυτάλης Σε κομμάτι κορδέλας μήκους (ξ) τυλιγμένο σε σκυτάλη διαμέτρου (δ) αναγράφεται το μήνυμα. Με το ξετύλιγμα της κορδέλας, υπάρχει ένα σύνολο από μεταθεμένα γράμματα. Παράμετροι: ξ,δ Αντίστροφη γραφή: (μ) = I CAME I SAW I CONQUERED, (ψ) = DEREU QNOCI WASIE MACI Γεωμετρική γραφή:
Μετάθεση κατά Γραμμή Γραφή του μηνύματος κατά γραμμή και ανάγνωση με βάση ενός κλειδιού που αναφέρει τον αριθμό της μετάθεσης – διάταξη των γραμμάτων κατά αλφαβητική σειρά. ciphering deciphering
Μετάθεση κατά Στήλη Γραφή του μηνύματος κατά γραμμή και ανάγνωση με βάση ενός κλειδιού που αναφέρει τον αριθμό της στήλης όπου θα γίνει η μετάθεση – διάταξη των γραμμάτων κατά αλφαβητική σειρά. Μήνυμα (μ) = laser beams can be modulated to carry more intelligence than radio waves κλειδί (δ)
Μετάθεση «Μηδενιστών» Συνδυασμός μετάθεσης κατά γραμμή και στήλη έτσι ώστε: γράφω κατά γραμμή βάσει ενός «οριζόντιου» κλειδιού και διαβάζω κατά στήλη βάσει ενός «κάθετου» κλειδιού. Από Ρώσους Nihilists (μηδενιστές-νιχιλιστές*) τρομοκράτες το *Φιλόσοφος Friedrich Heinrich Jacobi, 1817, Γερμανία
Μικτή Συμμετρική Κρυπτογράφηση Συνδυασμός πρώτα αντικατάστασης και μετά μετάθεσης γραμμάτων. Βασικός αλγόριθμος ο 'ADFGVX' που χρησιμοποιήθηκε στον Α’ΠΠ (πρόσφατα…) Lucifer και DES Lucifer από ΙΒΜ DES, 23 Nov. 1976: Πολύπλοκος συνδυασμός 16 διαδοχικών μεταθέσεων και αντικαταστάσεων.
Data Encryption Standard (DES) Μήκος Κλειδιού ζ = 64 bits. Με τη τρέχουσα τεχνολογία «σπάει» με χρήση της εξαντλητικής μεθόδου. 1998 η Electronic Frontier Foundation κέρδισε το βραβείο RSA DES Challenge II-2 με το «σπάσιμο» του DES σε λιγότερο από 3 μέρες - 88 δις κλειδιά ανά δευτερόλεπτο. 1999 το Distributed. Net κέρδισε το RSA DES Challenge III με το «σπάσιμο» μέσα σε 22 ώρες και 15 λεπτά δις κλειδιά ανά δευτερόλεπτο. Απαιτείται, ως στιγμής, κόστος ενός one million dollars για να κατασκευαστεί μηχάνημα που να «σπάσει» τον DES σε περίπου 3.5 ώρες. … 15 Μαρτίου 2007: Η παράλληλη FPGA μηχανή COPACOBANA του Πανεπιστημίου Bochum και Kiel, Γερμανία, «έσπασε» τον DES σε 6.4 μέρες με κόστος $10,000 σε hardware. COPACOBANA: Cost-Optimized Parallel COde Breaker DES Cracker
Data Encryption Standard (DES) Τεχνικά χαρακτηριστικά: DES κρυπτογραφεί και αποκρυπτογραφεί δεδομένα χωρισμένα σε μπλοκ των 64-bit. Χρησιμοποιεί ένα κλειδί των 64-bit key. Τα «ενεργά» τμήματα του κλειδιού είναι μόνον 56 bits γιατί τα υπόλοια είναι parity bits. Είσοδος είναι ένα μπλοκ 64-bit του plaintext (μ) και έξοδος πάλι ένα 64-bit μπλοκ του cipher text (ψ). Χρησιμοποιεί μεταθέσεις και αντικαταστάσεις, άρα ο DES είναι ταυτόχρονα block cipher και μικτός cipher. Ο αλγόριθμος DES έχει 16 κύκλους λειτουργίας που σημαίνει ότι το κυρίως πρόγραμμα (main) επαναλαμβάνεται 16 φορές για να παράγει το cipher text. Έχει αποδειχθεί ότι ο αριθμός των κύκλων αυξάνει εκθετικά το ποσοστό του χρόνοτ για να μπορεί να βρεθεί το κλειδί με τη μέθοδο εξατλητικής δοκιμής κλειδιού. Η ασφάλεια του DES αυξάνει εκθετικά.
Data Encryption Standard (DES) Βασικές Διεργασίες Γέννηση κλειδιών σε κάθε έναν από τους 16 κύκλους. Αρχική αντιμετάθεση του plaintext Αντιμετάθεση και αντικατάσταση του plaintext σε κάθε κύκλο Αντικατάσταση του ενδιάμεσου cipher text σε κάθε κύκλο Αντιμετάθεση του τελικού cipher text