Εργαστήριο Ασφάλεια Πληροφοριακών Συστημάτων Lab 1 Κλασική Κρυπτογραφία ΤΕΙ ΚΡΗΤΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Fysarakis Konstantinos, PhD kfysarakis@staff.teicrete.gr
Γενικές Πληροφορίες Βαθμολόγηση Ασκήσεις Εργαστηρίου: 50% Τελική Εξέταση:50% Ρήτρα: Βαθμός τελικής εξέτασης > 3.0 ΠΡΟΣΟΧΗ στις απουσίες...
Γενικές Πληροφορίες eclass Εγγραφή στο «Ασφάλεια Πληροφοριακών Συστημάτων» Ασκήσεις Ομάδες των 2 ατόμων (και 1 άτομο είναι ΟΚ) Το deadline παράδοσης είναι 2 εβδομάδες μετά το εργαστήριο. Στο eclass θα υπάρχει η εκφώνηση και η φόρμα υποβολής των ασκήσεων. Δεν υπάρχει η δυνατότητα υποβολής εκπρόθεσμων εργασιών!
Υλη Εργαστηρίων Κλασική κρυπτογραφία Στεγανογραφία Συμμετρική κρυπτογραφία Κρυπτογραφία δημόσιου κλειδιού Συναρτήσεις κατακερματισμού Ηλεκτρονικά Πιστοποιητικά...και άλλα!
Εισαγωγή Η λέξη κρυπτογραφία προέρχεται από τα συνθετικά "κρυπτός" + "γράφω" και είναι ένας επιστημονικός κλάδος που ασχολείται με την μελέτη, την ανάπτυξη και την χρήση τεχνικών κρυπτογράφησης και αποκρυπτογράφησης με σκοπό την απόκρυψη του περιεχομένου των μηνυμάτων.
Εισαγωγή Η κρυπτογραφία είναι ένας κλάδος της επιστήμης της κρυπτολογίας, η οποία ασχολείται με την μελέτη της ασφαλούς επικοινωνίας. Ο κύριος στόχος της είναι να παρέχει μηχανισμούς για 2 ή περισσότερα μέλη να επικοινωνήσουν χωρίς κάποιος άλλος να είναι ικανός να διαβάζει την πληροφορία εκτός από τα μέλη. Η λέξη κρυπτολογία αποτελείται από την ελληνική λέξη "κρυπτός" και την λέξη "λόγος" και χωρίζεται σε δύο κλάδους: την Κρυπτογραφία και την Κρυπτανάλυση
Ιστορική Αναδρομή Οι πρώτες αναφορές στην κρυπτογραφίας χρονολογούνται πριν τουλάχιστον 4000 χρόνια. Οι αρχαίοι Αιγύπτιοι διακοσμούσαν με ιερογλυφικά στους τάφους τους για να περιγράψουν τη ζωή του αποθανόντος. Επίσης ο Ηρόδοτος κάνει αναφορές για κρυπτογραφημένα μηνύματα που μετέφεραν οι αγγελιοφόροι. To 400 π.χ. οι Σπαρτιάτες χρησιμοποιούσαν ένα σύστημα κρυπτογράφησης μηνυμάτων για να μεταφέρουν με ασφάλεια μηνύματα στους στρατιώτες τους. Πριν 2000 χρόνια ο Ιούλιος Καίσαρας χρησιμοποίησε έναν αλγόριθμο κρυπτογράφησης γνωστό ως Caesar cipher. Η πιο εκτεταμένη αναφορά σε αλγόριθμους κρυπτογράφησης στη σύγχρονη ιστορία έγινε στο Δεύτερο Παγκόσμιο Πόλεμο με τη χρήση της μηχανής Enigma.
Ιστορική Αναδρομή Σκυτάλη (Αρχαία Σπάρτη) Χρησιμοποιώντας ράβδους διαφορετικής διαμέτρου εμφανίζεται διαφορετικό μήνυμα. Το «κλειδί» είναι η διάμετρος της ράβδου.
Ιστορική Αναδρομή Δίσκος Jefferson (1790) O καθένας από τους 36 δίσκους φέρει τυπωμένα τα 26 γράμματα του αλφαβήτου με διαφορετική σειρά. Η σειρά με την οποία τοποθετούνται οι δίσκοι είναι το κλειδί.
Ιστορική Αναδρομή Enigma Machine (1918) Σύνθετη μηχανή με γρανάζια που χρησιμοποιήθηκε συστηματικά από τη Γερμανία τον 2 ο Παγκόσμιο Πόλεμο.
Βασικές Έννοιες Εμπιστευτικότητα: Η πληροφορία προς μετάδοση είναι προσβάσιμη μόνο στα εξουσιοδοτημένα μέλη. Η πληροφορία είναι ακατανόητη σε κάποιον τρίτο. Ακεραιότητα: Η πληροφορία μπορεί να αλλοιωθεί μόνο από τα εξουσιοδοτημένα μέλη και δεν μπορεί να αλλοιώνεται χωρίς την ανίχνευση της αλλοίωσης. Μη αποποίηση: Ο αποστολέας ή ο παραλήπτης της πληροφορίας δεν μπορεί να αρνηθεί την αυθεντικότητα της μετάδοσης ή τη δημιουργίας της. Πιστοποίηση: Οι αποστολέας και παραλήπτης μπορούν να εξακριβώνουν τις ταυτότητές τους καθώς και την πηγή και τον προορισμό της πληροφορίας με διαβεβαίωση ότι οι ταυτότητές τους δεν είναι πλαστές.
Βασικές Έννοιες Αλγόριθμος: Σύνολο μαθηματικών κανόνων που χρησιμοποιούνται στην κρυπτογράφηση και αποκρυπτογράφηση. Κρυπτοσύστημα: κρυπτογράφησης. Η υλοποίηση ενός αλγορίθμου Κρυπτανάλυση: Η μελέτη των μαθηματικών τεχνικών που αποσκοπούν στην αποκρυπτογράφηση δεδομένων χωρίς τη χρήση κλειδιών. Κρυπτογράφηση: Η μετατροπή δεδομένων σε μη αναγνώσιμη μορφή. Αποκρυπτογράφηση: Η μετατροπή δεδομένων σε αναγνώσιμη μορφή. Plaintext: Το αρχικό μήνυμα. Ciphertext: Το κρυπτογραφημένο μήνυμα.
Βασική Αναπαράσταση
Κλασική Κρυπτογραφία Η κλασική κρυπτογραφία ασχολείται με την μελέτη κρυπτογραφικών αλγόριθμων που έχουν παρουσιαστεί στο παρελθόν αλλά όμως δεν βρίσκουν εφαρμογή σήμερα. Γενικά οι κρυπτογραφικοί αλγόριθμοι βασίζονται στο αλφάβητό και υλοποιούνται με το χέρι ή με απλές μηχανικές συσκευές. Αντιθέτως τα μοντέρνα σχήματα αλγορίθμων χρησιμοποιούν τους υπολογιστές ή κάποια άλλη ψηφιακή τεχνολογία και βασίζονται σε ακολουθίες bits και bytes.
Κλασική Κρυπτογραφία Οι αλγόριθμοι της κλασσικής κρυπτογραφίας είναι συχνά ευαίσθητοι σε επιθέσεις κρυπτογράμματος μόνο, οι οποίες μερικές φορές γίνονται χωρίς καν τη γνώση του ίδιου του συστήματος και βασίζονται σε εργαλεία όπως η ανάλυση συχνότητας. Ο επιτιθέμενος (κρυπταναλυτής) προσπαθεί να ανακαλύψει το κλειδί ή το αρχικό κείμενο παρατηρώντας μόνο το κρυπτογράφημα. Κάθε κρυπτοσύστημα που είναι ευπαθές σε αυτό το είδος της επίθεσης είναι τελείως ανασφαλές.
Κλασική Κρυπτογραφία Οι αλγόριθμοι της κλασικής κρυπτογραφίας χωρίζονται σε δύο σημαντικές κατηγορίες: Αλγόριθμοι αντικατάστασης (substitution) Κάθε γράμμα (ή ομάδα γραμμάτων) αντικαθίσταται από ένα άλλο γράμμα (ή ομάδα γραμμάτων). Δύο υποκατηγορίες, ανάλογα με το αν δουλεύουμε με γράμματα ή με ομάδες γραμμάτων: Μονοαλφαβητική Αντικατάσταση Πολυαλφαβητική Αντικατάσταση Αλγόριθμοι αντιμετάθεσης (transposition) Σε αυτή τη κατηγορία των αλγορίθμων γίνετε απλή αναδιάταξη των γραμμάτων ενός κειμένου.
Αλγόριθμοι Αντικατάστασης Μονοαλφαβητική αντικατάσταση Κάθε γράμμα αντικαθίσταται με κάποιο άλλο, τυχαίο, γράμμα. Παρόλο που ο αριθμός των πιθανών κλειδιών είναι πολύ μεγάλος (26!=4x10^26) για να δοκιμάσει κάποιος όλα τα πιθανά κλειδιά, μπορεί κάποιος να χρησιμοποιήσει στατιστικές μεθόδους για να βρει ποιο γράμμα αντιστοιχεί σε ποιο. Για αυτό το σκοπό χρησιμοποιεί τις πιθανότητες εμφάνισης των γραμμάτων σε ένα κείμενο. Κατόπιν εξετάζει τις πιθανότητες εμφάνισης διγραμμάτων και τριγραμμάτων
Μονοαλφαβητική Αντικατάσταση Caesar Cipher Χαρακτηριστικό παράδειγμα Μονοαλφαβητικού αλγορίθμου αντικατάστασης είναι ο Caesar cipher όπου έχουμε ολίσθηση των γραμμάτων του αλφαβήτου κατά 3 γράμματα: plaintext: abcdefghijklmnopqrstuvwxyz ciphertext: defghijklmnopqrstuvwxyzabc Μία γενίκευση του Caesar cipher θέλει την ολίσθηση των γραμμάτων του αλφαβήτου Α κατά k γράμματα. Το k αποτελεί σε αυτήν την περίπτωση το κλειδί του αλγορίθμου αντικατάστασης
Μονοαλφαβητική Αντικατάσταση Atbash cipher Ο Atbash είναι ένας απλός αλγοριθμός κρυπτογράφησης αντικατάστασης για το εβραϊκό αλφάβητο. Λειτουργεί αντικαθιστώντας το πρώτο γράμμα Άλεφ με το τελευταίο, το δεύτερο Beth με το Shin το προτελευταίο και ούτω καθεξής, αντιστρέφοντας έτσι το αλφάβητο. Μια Atbash κρυπτογράφηση για το λατινικό αλφάβητο θα έχει ως εξής: Plain: abcdefghijklmnopqrstuvwxyz Cipher: ZYXWVUTSRQPONMLKJIHGFEDCBA Για παράδειγμα στο Atbash, τα γράμματα "nlmvb" αναφέρονται στη λέξη "money"
Αλγόριθμοι Αντικατάστασης Πολυαλφαβητική αντικατάσταση Έχουμε ένα κλειδί χαρακτήρων μεγέθους t: k 1 k 2 k t. Η μετατροπή του κειμένου m=m 1 m 2 m 3 σε κρυπτογραφημένο μήνυμα c=c 1 c 2 c 3 γίνεται ως: c 1 = m 1 + k t mod s όπου s είναι το μέγεθος του αλφαβήτου μας. Ο αλγόριθμος λέμε ότι έχει περίοδο t.
Πολυαλφαβητική Αντικατάσταση - Vigenère cipher Ο πλέον γνωστός και ένας από τους πιο απλούς πολυαλφαβητικούς αλγορίθμους. Αποδίδεται εσφαλμένα στον Γάλλο Blaise de Vigenère (1523-1596) από τον οποίο πήρε και όνομα. Η πραγματικότητα είναι ότι αρχικά είχε παρουσιαστεί από τον Leon Battista Alberti σε βιβλίο του, το 1553. Στον ίδιο ανήκει η πρώτη γνωστή αναφορά σε πολυαλφαβητικό αλγόριθμο ήδη από το 1467. Ο κώδικας χρησιμοποιεί 26 διαφορετικές μονοαλφαβητικές αντικαταστάσεις (τους 26 δυνατούς κώδικες του Caesar). Συνήθως το κλειδί είναι μία επαναλαμβανόμενη λέξη (μυστικός κωδικός).
Πολυαλφαβητική Αντικατάσταση - Vigenère cipher Ο κώδικας σε κάθε γράμμα από το plaintext προσθέτει ένα γράμμα από το κλειδί και το αποτέλεσμα προκύπτει από τη σχέση Kρυπτογράφηση: C = P + K mod 26 Αποκρυπτογράφηση: P= C- K (mod 26) Προκειμένου αυτή η πράξη να γίνεται γρήγορα παρουσιάστηκαν διάφορες μέθοδοι, όπως ο πίνακας Vigenère
Κλειδί Πολυαλφαβητική Αντικατάσταση - Vigenère table Κείμενο
Πολυαλφαβητική Αντικατάσταση - Vigenère cipher Εάν το γράμμα του κλειδιού είναι x και το γράμμα του plaintext y, το αντίστοιχο ciphertext γράμμα είναι αυτό που βρίσκεται στην τομή της γραμμής που ξεκινάει με το x και της στήλης με επικεφαλίδα y. Επειδή το κλειδί πρέπει να είναι τόσο μεγάλο όσο και το plaintext, αυτή η μυστική λέξη συνεχώς επαναλαμβάνεται key: deceptivedeceptivedeceptive plaintext: wearediscoveredsaveyourself ciphertext: ZICVTWQNGRZGVTWAVZHCQYGLMGJ
Πολυαλφαβητική Αντικατάσταση - Vigenère cipher Η αποκρυπτογράφηση είναι η αντίστροφη πράξη. ciphertext: ZICVTWQNGRZGVTWAVZHCQYGLMGJ key: deceptivedeceptivedeceptive plaintext: wearediscoveredsaveyourself
Πολυαλφαβητική Αντικατάσταση - Playfair cipher Παρουσιάστηκε το 1854 από τον Charles Wheatstone, αλλά φέρει το όνομα του Lord Playfair που προώθησε τη χρήση του. O πρώτος αλγόριθμος αντικατάστασης που δουλεύει με διγράμματα. Σημαντικά πιο δύσκολο να κάνεις frequency analysis σε σχέση με τους αλγορίθμους αντικατάστασης που δουλεύουν με ένα χαρακτήρα (600 πιθανά διγράμματα, έναντι 26 πιθανών γραμμάτων).
Πολυαλφαβητική Αντικατάσταση - Playfair cipher Ο Playfair χρησιμοποιεί ένα 5x5 πίνακα με το κλειδί/φράση. Συμπληρώνουμε τον πίνακα με τα γράμματα της λέξης-κλειδιού (αφαιρώντας τυχόν διπλά γράμματα) και στη συνέχεια να γεμίζουμε τα υπόλοιπα κενά με τα υπόλοιπα γράμματα του αλφαβήτου
Πολυαλφαβητική Αντικατάσταση - Playfair cipher Χωρίζουμε το plaintext σε διγράμματα. Η κρυπτογράφηση και αποκρυπτογράφηση γίνεται ακολουθώντας 4 κανόνες: Εάν και τα δύο γράμματα είναι τα ίδια (ή έχει απομείνει μόνο ένα γράμμα), προσθέστε ένα "X" μετά το πρώτο γράμμα. Κρυπτογραφήστε το νέο ζεύγος και συνεχίστε. Εάν τα γράμματα εμφανίζονται στην ίδια γραμμή του πίνακα, αντικαταστήστε τα με τα γράμματα αμέσως δεξιά τους (τυλίγοντας γύρω από την αριστερή πλευρά της σειράς, αν ένα γράμμα στο αρχικό ζευγάρι ήταν στη δεξιά πλευρά της σειράς). Εάν τα γράμματα εμφανίζονται στην ίδια στήλη του πίνακα, αντικαταστήστε τα με τα γράμματα αμέσως κάτω (συνεχίζοντας στην πάνω πλευρά της στήλης, αν ένα γράμμα στο αρχικό ζευγάρι ήταν στην κάτω πλευρά της στήλης). Εάν τα γράμματα δεν είναι στην ίδια σειρά ή στήλη, αντικαταστήστε τα με τα γράμματα στην ίδια σειρά, αλλά στο άλλο ζεύγος γωνιών του ορθογωνίου που ορίζεται από το αρχικό ζευγάρι. Η σειρά είναι σημαντική - το πρώτο γράμμα του κρυπτογραφημένου ζεύγους είναι αυτό που βρίσκεται στην ίδια σειρά με το πρώτο γράμμα του ζευγαριού απλού κειμένου.
Αλγόριθμοι Aντιμετάθεσης Σε αυτή την κατηγορία αλγορίθμων γίνετε απλή αναδιάταξη των γραμμάτων ενός κειμένου. Για έναν απλό αλγόριθμο αντιμετάθεσης με περίοδο t, η κρυπτογράφηση περιλαμβάνει την ομαδοποίηση του κειμένου σε blocks των t χαρακτήρων το καθένα, και εφαρμογή σε κάθε ένα από αυτά τα blocks μιας απλής αντικατάστασης e πάνω στους αριθμούς 1 ως t. Ένας αλγόριθμος αντιμετάθεσης διατηρεί τον αριθμό των συμβόλων μέσα σε ένα μπλοκ και επομένως μπορεί εύκολα να κρυπταναλυθεί.
Αλγόριθμοι Aντιμετάθεσης Παράδειγμα: Υποθέστε ένα απλό αλγόριθμο αντιμετάθεσης με περίοδο t = 6 και e = (641352). Το μήνυμα ΚΡΥΠΤΟΓΡΑΦΙΑ θα δώσει το κρυπτογράφημα ΟΠΚΥΤΡΑΦΓΑΙΑ. Το κλειδί αποκρυπτογράφησης είναι d = (364251).
Αλγόριθμοι Aντιμετάθεσης Στην επόμενη διαφάνεια φαίνεται ένας συνήθης κώδικας αντιμετάθεσης. Ο κώδικας έχει για κλειδί μια λέξη ή φράση που δεν περιέχει επαναλαμβανόμενα γράμματα. Στο παράδειγμα αυτό το κλειδί είναι το MEGABUCK. Ο σκοπός του κλειδιού είναι να αριθμήσει τις στήλες, με τη στήλη 1 να βρίσκεται κάτω από το γράμμα του κλειδιού που βρίσκεται περισσότερο κοντά στην αρχή τον αλφάβητου, κ.ο.κ. Το κείμενο γράφεται οριζόντια, σε σειρές. Το κρυπτογράφημα διαβάζεται ανά στήλη, με πρώτη τη στήλη της οποίας το γράμμα-κλειδί είναι το μικρότερο.
Αλγόριθμοι Aντιμετάθεσης Κείμενο: pleasetransferonemilliondollarstomyswissbankaccountsixtwotwo Κρυπτογράφημα: AFLLSKSOSELAWAIATOOSSCTCLNMOMANTESILYNTWRNNTS OWDPAEDOBUOERIRICXB
Αλγόριθμοι Aντιμετάθεσης Οι κώδικες αντικατάστασης διατηρούν τη σειρά των συμβόλων του κειμένου αλλά τα μεταμφιέζουν. Οι κώδικες αντιμετάθεσης (transposition ciphers) αντίθετα, αναδιατάσσουν τα σύμβολα αλλά δεν τα μεταμφιέζουν.
CrypTool Το CrypTool είναι ένα πρόγραμμα ανοικτού λογισμικού μέσα από το οποίο παρουσιάζονται οι έννοιες της κρυπτογραφίας. Είναι ένα ευρέως διαδεδομένο λογισμικό ηλεκτρονικής μάθησης στον τομέα της κρυπτογραφίας. Μέσα σε αυτό ένας μεγάλος αριθμός εργαλείων ανάλυσης και αλγόριθμοι έχουν υλοποιηθεί αποτελεσματικά. Η γραφική διεπαφή και η πλούσια ηλεκτρονική τεκμηρίωση δίνει στο χρήστη τη δυνατότητα, να γνωρίσει τη κρυπτογραφία. Το CrypTool έχει αναπτυχθεί από γερμανικές εταιρείες και πανεπιστήμια. Αρχικά ήταν σχεδιασμένο όχι ως εργαλείο ηλεκτρονικής μάθησης, αλλά σαν πρόγραμμα που θα χρησιμοποιηθεί παραγωγικά.
Εργαστηριακές Ασκήσεις Με τη χρήση του Cryptool να εκτελεστούν οι ακόλουθες ασκήσεις: 1. Δημιουργία ενός τυχαίου αρχείου. 2. Κρυπτογράφηση του κειμένου που δημιουργήθηκε με τη χρήση του κλασσικού αλγορίθμου Caesar. 3. Αποκρυπτογράφηση του κρυπτογραφήματος που προέκυψε. 4. Κρυπτογράφηση του κλασσικού κειμένου με τη χρήση του αλγορίθμου XOR. 5. Αποκρυπτογράφηση του κρυπτογραφήματος που προέκυψε. 6. Κρυπτογράφηση του κλασσικού κειμένου με τη χρήση του αλγορίθμου Vigenere. 7. Αποκρυπτογράφηση του κρυπτογραφήματος που προέκυψε.
1 η Εργαστηριακή Άσκηση Δίνεται αρχικό μήνυμα (plaintext): THE QUICK BROWN FOX JUMPS OVER THE GATE Mε χρήση κάποιου αλγορίθμου μονοαλφαβητικής αντικατάστασης (simple substitution cipher) κρυπτογραφούμε το παραπάνω μήνυμα και προκύπτει το κωδικοποιημένο μήνυμα (ciphertext): MBR OJFGA SWNKE CNT QJDIL NURW MBR XHMR a) Γνωρίζοντας το παραπάνω ζεύγος plaintext/ciphertext, τι μέρος του κλειδιου μπορούμε να μαντέψουμε; b) Πόσα είναι τα διαφορετικά κλειδιά τα οποία θα μπορούσαν να είχαν χρησιμοποιηθεί ώστε να έχουμε τη συγκεκριμένη κωδικοποίηση του αρχικού μηνύματος; c) Έχουμε το παρακάτω ciphertext: MBR KRHLRP WHE HKHV CWND IHWFL ZNN Γνωρίζοντας ότι το ciphertext αυτό έχει προκύψει από τον ίδιο αλγόριθμο και με το ίδιο κλειδί που μελετήσαμε παραπάνω, βρείτε το αρχικό μήνυμα.
1 η Εργαστηριακή Άσκηση Παραδοτέα: Αναφορά (σε word) με τα στοιχεία που ζητούνται. Εξώφυλλο και διαδικασία σύμφωνα με τις οδηγίες που υπάρχουν στο eclass. Deadline: Σε δύο (2) εβδομάδες. Απορίες- ερωτήσεις: kfysarakis@staff.teicrete.gr