ΓΦ επιστήµη και η µελέτη της τήρησης µυστικών ρυπτογράφηση: µέθοδος µετασχηµατισµού απλούµη κρυπτογραφηµένου κειµένου (plaintext) σε κρυπτογραφηµένο κείµενο (cipher text) µετασχηµατισµός ορίζεται µέσω ενός κλειδιού υστήµατα κρυπτογραφίας νός κλειδιού ύο κλειδιών ηµόσιου κλειδιού Ψηφιακές υπογραφές υστατικά χώρος µη κρυπτογραφηµένων µηνυµάτων χώρος κρυπτογραφηµένων µηνυµάτων C χώρος κλειδιών K ία οικογένεια µετασχηµατισµών κρυπτογράφησης Ek: M C ία οικογένεια µετασχηµατισµών αποκρυπτογράφησης Dk: C M τόχοι κρυπτογραφίας χεµύθεια ρέπει να είναι ανέφικτο να υπολογιστεί το Dk από το c, ακόµη και αν είναι γνωστό το m ρέπει να είναι ανέφικτος ο υπολογισµός του m από ένα c υθεντικότητα ρέπει να είναι υπολογιστικά ανέφικτο να προσδιοριστεί το Ek από το c, ακόµη και αν είναι γνωστό το m ρέπει να είναι υπολογιστικά ανέφικτο να βρεθεί ένα c, τέτοιο ώστε το Dk(c ) να είναι παραδεκτό µη κρυπτογραφηµένο µήνυµα του συνόλου M πιθυµητές ιδιότητες συστηµάτων κρυπτογραφίας ρέπει να υπάρχουν αποδοτικοί αλγόριθµοι για τις λειτουργίες της κωδικοποίησης και της αποκωδικοποίησης ύχρηστο σύστηµα προστασία που παρέχει το σύστηµα πρέπει να προϋποθέτει µόνο τη µυστικότητα των κλειδιών, όχι του αλγόριθµου Βασική ιδέα: αλλαγή της θέσης bits ή bytes εντός του µηνύµατος Χαρακτηριστικοί εκπρόσωποι: πλή µετάθεση «υρµατόπλεγµα» ετάθεση κατά στήλες πλή µετάθεση ο µήνυµα m κατατµείται σε µπλοκ και κάθε µπλοκ αναδιατάσσεται βάσει κάποιου σχήµατος αράδειγµα» λειδί = (54) m c
«υρµατόπλεγµα» αράµετροι: (ύψος, µετατόπιση αρχής) () () () ετάθεση κατά στήλες λειδί: µία λέξη, της οποίας τα γράµµατα αντιστοιχίζονται σε αριθµούς, ανάλογα µε τη σειρά εµφάνισής τους στο αλφάβητο 6 5 Λ 9 4 ο µη κρυπτογραφηµένο κείµενο γράφεται σε έναν πίνακα που έχει τόσες στήλες όσες τα γράµµατα του κλειδιού 7 8 συνέχεια >> ετάθεση κατά στήλες ΞΞ 6 5 Λ 9 Ξ 4 Ξ 7 8 ο κρυπτογραφηµένο κείµενο παράγεται µε ανάγνωση του πίνακα κατά στήλες, µε τη σειρά που ορίζεται από την απεικόνιση του κλειδιού Ξ... Βασική ιδέα: άθε χαρακτήρας του µη κρυπτογραφηµένου κειµένου αντικαθίσταται από έναν διαφορετικό χαρακτήρα στο κρυπτογραφηµένο κείµενο πλή αντικατάσταση ολυαλφαβητική αντικατάσταση ντικατάσταση τρέχοντος κλειδιού έθοδος Vernam πλή αντικατάσταση Για κάθε γράµµα του αλφάβητου των µηνυµάτων ορίζουµε την απεικόνισή του. Β Γ Ζ Θ Λ Ξ Φ Χ Λ Ω Φ Ζ Β Χ Θ Ψ Γ ΞΞ ΘΒΧΩ ΒΧ ΘΒΧΩ διαίτερα ευάλωτη προσέγγιση σε στατιστικές αναλύσεις εµφάνισης µεµονωµένων χαρακτήρων, ζευγών, τριάδων, κ.λπ. Ψ Ω Ξ ολυαλφαβητική αντικατάσταση παιτείται ένα Χρησιµοποιούµε έναν δισδιάστατο πίνακα απεικόνισης, οι γραµµές του οποίου αντιστοιχούν σε χαρακτήρες του κλειδιού και οι στήλες σε χαρακτήρες του µηνύµατος ν ι είναι ο υπ αριθµόν ι χαρακτήρας του µη κρυπτογραφηµένου µηνύµατος και ι ο υπ αριθµόν ι χαρακτήρας του κλειδιού, ο υπ αριθµόν ι χαρακτήρας του κρυπτογραφηµένου µηνύµατος είναι η καταχώρηση στη θέση ( ι, ι ) του πίνακα
Β ολυαλφαβητική αντικατάσταση παράδειγµα Β Γ Ζ Θ Λ Ξ Φ Χ Ψ Ω Λ Ω Φ Ζ Β Χ Θ Ψ Γ Ξ Λ Θ Ξ Φ Γ Ψ Χ Β Ω Ζ λειδί κρυπτογράφησης: ΒΒ ΞΞ Plaintext ΒΒ ΒΒΒ ΒΒΒΒ λειδί ΒΧΧΩ Χ Χ ΘΒΒΧ Ciphertext ολυαλφαβητική αντικατάσταση επιλογές ν το τελειώσει τότε:» Ξαναχρησιµοποιείται εξ αρχής ΒΒ ΒΒΒΒΒΒΒΒ» Ξαναχρησιµοποιείται µετασχηµατισµένο HAL HALIBMJCN» Χρησιµοποιούµε ως το ίδιο το µήνυµα ABBA ABBAΞΞ ν ο κακός µπορεί να µαντέψει µέρος του µηνύµατος, βρίσκει και το ρυπτογράφηση τρέχοντος κλειδιού Όµοια µε την πολυαλφαβητική αντικατάσταση αλλά το απλά δεν τελειώνει ποτέ» είµενο βιβλίου» τυχαία δεδοµένα που δηµιουργούνται αλγοριθµικά (π.χ. περιστροφικές µηχανές)» ροτιµάται η χρήση τυχαίων δεδοµένων καθώς δεν είναι ευάλωτη σε στατιστικές αναλύσεις Χρησιµοποιήθηκε από τους Γερµανούς στον Β αγκόσµιο όλεµο, ο κώδικας έσπασε από την οµάδα του Alan Turing έθοδος Vernam ξαιρετικά ασφαλής ήνυµα και θεωρούνται ακολουθίες bits λειδί ήνυµα α κλειδιά ανταλλάσσονται εκ των προτέρων εξωσυστηµικά ο χρησιµοποιείται µόνο µία φορά ο έχει µήκος τουλάχιστον ίσο µε το µήκος του µηνύµατος ίδη κρυπτοσυστηµάτων υµβατικά (ή συµµετρικά) Ένα ρυπτογράφηση και αποκρυπτογράφηση µε τον ίδιο τρόπο σύµµετρα κρυπτοσυστήµατα ύο διαφορετικά κλειδιά ιαφορετικοί τρόποι κρυπτογράφησης και αποκρυπτογράφησης πολογιστικά ανέφικτος ο συµπερασµός του ενός κλειδιού από το άλλο σύµµετρα κρυπτοσυστήµατα τόχοι: χεµύθεια και αυθεντικότητα ύο κλειδιά, δηµόσιο (public) και ιδιωτικό (private) ο ιδιωτικό είναι διαθέσιµο µόνο στον κάτοχο, το δηµόσιο σε όλους τους χρήστες νέφικτο να υπολογιστεί το ένα από το άλλο Χρησιµοποιούνται αλγόριθµοι κρυπτογράφησηςαποκρυπτογράφησης (E, D) τέτοιοι ώστε: D(E(M, Pub), Priv) = M D(E(M, Priv), Pub) = M Για να επικοινωνήσουν δύο µέρη, αρκεί ο ένας να γνωρίζει το δηµόσιο του άλλου
σύµµετρα κρυπτοσυστήµατα χεµύθεια: ρυπτογραφούµε µε δηµόσιο, αποκρυπτογραφούµε µε το ιδιωτικό ήνυµα ρυπτογράφηση ηµόσιο ρυπτογραφηµένο µήνυµα ποκρυπτογράφηση διωτικό ήνυµα σύµµετρα κρυπτοσυστήµατα υθεντικότητα: Ψηφιακές υπογραφές ίναι ένα σύνολο από bits που προσθέτει ο αποστολέας ενός εγγράφου σ αυτό και έχουν τις ακόλουθες ιδιότητες: παραλήπτης µπορεί να επαληθεύσει ότι η υπογραφή είναι του αποστολέα Θα πρέπει να είναι αδύνατο για οποιονδήποτε, συµπεριλαµβανοµένου του παραλήπτη, να πλαστογραφήσει την υπογραφή του Θα πρέπει να είναι δυνατόν για κάποιον τρίτο (π.χ. δικαστική αρχή) να διευθετήσει κάποια διαφωνία µεταξύ αποστολέα και παραλήπτη Ψηφιακές υπογραφές ποστολή ήνυµα ρυπτογράφηση + Ψηφιακά υπογεγραµµένο µήνυµα Ψηφιακές υπογραφές αραλαβή Ψηφιακά υπογεγραµµένο µήνυµα ήνυµα Ψηφιακή υπογραφή υνάρτηση κερµατισµού ποκρυπτογράφηση Digest =; αι, ντάξει Όχι, πρόβληµα υνάρτηση κερµατισµού Digest Ψηφιακή υπογραφή Digest διωτικό ηµόσιο χεµύθεια + υθεντικότητα ροσπάθειες ξαπάτησης D φροξυλάνδη Β Β Βερύκιος =; ταβέλης δηµιουργεί ένα ζεύγος κλειδιών µε το όνοµα της φροξυλάνδης, υπογράφει ψηφιακά ένα έγγραφο µε τα κλειδιά αυτά και το στέλνει στον Βερύκιο ν ο Βερύκιος δεν έχει ήδη το δηµόσιο της φροξυλάνδης µπορεί να εξαπατηθεί Λύση: εισαγωγή µιας τρίτης οντότητας, της ρχής ιαχείρισης ιστοποιητικών (certificate authority center) 4
ρχή ιαχείρισης ιστοποιητικών κδίδει ψηφιακώς υπογεγραµµένα πιστοποιητικά, αφού διαπιστώσει εξωσυστηµικά την ταυτότητα του υποκειµένου. ο πιστοποιητικό είναι ένα έγγραφο που περιέχει: Έκδοση και αριθµό σειράς ο όνοµα του εκδότη ο όνοµα του υποκειµένου και άλλες τυχόν επεκτάσεις (διεύθυνση οικίας, εργασίας, αριθµό ταυτότητας κ.λπ.) ο σκοπό του πιστοποιητικού (αν το υποκείµενο δρα και ως αρχή πιστοποίησης) ο δηµόσιο του υποκειµένου ην περίοδο εγκυρότητας του πιστοποιητικού ην υπογραφή της αρχής διαχείρισης πιστοποιητικών Ψηφιακό πιστοποιητικό ποκείµενο: φροξυλάνδη Ψαξεβρέστου ληροφορίες πιστοποιητικού: Έγκυρο κατά: [/, 5/] ριθµός σειράς: Β54ΧΧ ηµόσιο : ρχή πιστοποίησης: CLOPYSOFT SA CLOPYSOFT Ψηφιακό πιστοποιητικό παράδειγµα Version: (x) Serial Number: 4:6::: Signature Algorithm: mdwithrsaencryption Issuer: C=US, O=CREN/Corp for Research and Educational Networking, OU=Education and Research Client CA Validity Not Before: Nov 7 :: 999 GM Not After : Nov 7 :: GMT Subject: C=US, O=CREN/Corp for Research and Educational Networking, OU=Education and Research Client CA Subject Public Key Info: Public Key Algorithm: rsaencryption RSA Public Key: (48 bit) Modulus (48 bit): (πολλά δυαδικά δεδοµένα) Signature Algorithm: mdwithrsaencryption (και άλλα δυαδικά δεδοµένα) Certificate: (ακόµη περισσότερα δυαδικά δεδοµένα) αλγόριθµος RSA Για την παραγωγή κλειδιών χρησιµοποιείται ο πολλαπλασιασµός πρώτων αριθµών εχεµύθεια βασίζεται στη δυσκολία παραγοντοποίησης µεγάλων ακεραίων αλγόριθµος RSA πιλογή κλειδιών πιλέγουµε δύο µεγάλους πρώτους αριθµούς p και q πολογίζουµε το n = p * q πολογίζουµε το φ(n) = (p ) * (q ) πιλέγουµε έναν ακέραιο eµε e φ(n) τέτοιο ώστε να µην έχει κοινό παράγοντα µε τοφ(n) πιλέγουµε έναν ακέραιο d τέτοιο ώστε d * e mod φ(n) = α e, n δηµοσιοποιούνται α p, q, d, φ(n) φυλάσσονται µυστικά λγόριθµος RSA ρυπτογράφηση: C = M e mod n ποκρυπτογράφηση: = C d mod n αράδειγµα: p = 5, q = 6 n = p * q =, φ(n) = e = 7, d = 79 5
ρυπτογράφηση κατά µπλοκ ο µήνυµα διασπάται σε διαδοχικά µπλοκ,,... ο κάθε µπλοκ κρυπτογραφείται µε το ίδιο ελικό µήνυµα: E k (M)E k (M) λεονεκτήµατα: όνο µία εκτέλεση του κρυπταλγόριθµου ανά µπλοκ φάλµατα στο ένα µπλοκ δεν επηρεάζουν τα άλλα ειονεκτήµατα ιο ευάλωτα σε αναλύσεις κρυπτογραφίας Όµοια τµήµατα plaintext γεννούν το ίδιο ciphertext λυσιδωτά µπλοκ ο κάθε µπλοκ δεν είναι αυτόνοµο, αλλά περιλαµβάνει bits από τα προηγούµενα (κρυπτογραφηµένα ή µη) ειώνονται οι διαθέσιµες θέσεις πληροφορίας σε κάθε µπλοκ ναιρείται το πλεονέκτηµα της ανοχής σε σφάλµατα υξάνεται όµως η ασφάλεια αράδειγµα: C i = E k (M i XOR C i ) ο C i πρακτικά εξαρτάται από όλα τα C k µε i < k διαίτερα χρήσιµο για ψηφιακές υπογραφές λγόριθµος DES κρυπτογράφηση γίνεται σε µπλοκ των 64 bit ο είναι µήκους 56 bits κτελούνται 9 επαναλήψεις του υπολογισµού:»l i = R i and R i = L i AND f(r i, K i ) όπου» το K i υπολογίζεται χωρίζοντας το των 56 bit σε δύο τµήµατα των 8 και ολισθαίνοντας προς τα αριστερά το κάθε τµήµα ένα πλήθος θέσεων, ανάλογα µε το i» το f(r i, K i ) υπολογίζεται ως ακολούθως: ο R i επεκτείνεται στα 48 bits και καλείται E TMP = E XOR K i CHUNKS[..8] = Split(TMP, 6) SUBSTCHUNKS[..8] = MAP(CHUNKS[..8]) α τελικά τµήµατα των 4 bits αναδιατάσσονται ιπλός DES τη βασική του διαµόρφωση ο DES είναι ανασφαλής σε διαγωνισµό του 98 ο κώδικας έσπασε σε 56 ώρες από µηχανή που κόστισε λιγότερο από. ιπλός DES: ((, ), ) ίναι όµως καλύτερος;» πάρχουν τέσσερα ασθενή κλειδιά, τέτοια ώστε ((, ), ) =» πάρχουν τέσσερα ηµιασθενή ζεύγη κλειδιών, τέτοια ώστε E (E(, ), ) =» κόµη χειρότερα... ίναι ευάλωτος σε επιθέσεις τύπου «συνάντησης στο µέσον», όπου η πολυπλοκότητα του αλγορίθµου της αποκρυπτογράφησης είναι ίση µε αυτή του απλού αλγόριθµου ριπλός DES C = E(D(E(M, K ), K ), K ) (DESEDE) ή C = E((E(M, K ), K ), K ) (DESEE) ρυπτογραφήσεις λειδιά πολογισµός 56 8 56 56 t 56 ποθήκευση 8 56 56 56 t 56 56 ίδος επίθεσης Advanced Encryption Standard έντε υποψήφιοι MARS» ολύπλοκος, όχι εύκολος να αναλυθεί, αργός RC6» αχύς σε λογισµικό, απαιτεί πολύ µνήµη, µέτριες επιδόσεις σε υλικό Serpent» διαίτερα ασφαλής, πολύ αργός σε λογισµικό, πολύ καλός σε υλικό Twofish» ρωτοποριακός, καθώς το µισό καθορίζει τον τρόπο λειτουργίας, δύσκολο να αναλυθεί, µέτρια ταχύτητα Rijndael» αχύς, απλός και συµπαγής, µε ελαφρώς µικρότερη ασφάλεια από τους συνυποψήφιους, εξαιρετικός για έξυπνες κάρτες και υλοποίηση σε επίπεδο υλικού, αρκετή εγγενής παραλληλία 6
Advanced Encryption Standard ελικός νικητής Rijndael λειδιά µεγέθους 8, 9 και 56 bits πλοκ δεδοµένων µεγέθους 8, 9 και 56 bits υνατός ο συνδυασµός όλων των µεγεθών κλειδιών και µπλοκ δεδοµένων ε εξειδικευµένες µηχανές που δοκιµάζουν 55 κλειδιά ανά δευτερόλεπτο απαιτούνται 49 τρισεκατοµµύρια έτη για να σπάσει ένα των 8 bits κτιµάται ότι θα «κρατήσει» για χρόνια ε ποιο σηµείο κρυπτογραφούµε; ρυπτογράφηση από άκρο σε άκρο παραίτητο για κάθε επικοινωνιακό εταίρο ιθανή επίθεση µε ανάλυση κυκλοφορίας ρυπτογράφηση σε επικοινωνιακό κανάλι άθε κόµβος ξέρει µόνο τους γείτονές του πληροφορία είναι εκτεθειµένη σε κάθε ενδιάµεσο επικοινωνιακό κόµβο παιτείται πρόσβαση σε όλα τα ενδιάµεσα κανάλια υνδυασµός των δύο κρυπτογραφήσεων 7