Εργαστήριο Ασφάλεια Πληροφοριακών Συστημάτων Θεοδωρακοπούλου Ανδριάνα atheodorak@outlook.com
Βαθμολόγηση Ασκήσεις Εργαστηρίου: 40% Τελική Εξέταση: 60% Ρήτρα: Βαθμός τελικής εξέτασης > 3.5 ΠΡΟΣΟΧΗ στις απουσίες...
eclass Εγγραφή στο «Ασφάλεια Πληροφοριακών Συστημάτων» και στην σχετική «Ομάδα Χρηστών». Ασκήσεις Ομάδες έως 2 ατόμων Το 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 όπου έχουμε ολίσθηση των γραμμάτων του αλφαβήτου κατά 3 γράμματα: plaintext: abcdefghijklmnopqrstuvwxyz ciphertext: defghijklmnopqrstuvwxyzabc Μία γενίκευση του Caesar cipher θέλει την ολίσθηση των γραμμάτων του αλφαβήτου Α κατά k γράμματα. Το k αποτελεί σε αυτήν την περίπτωση το κλειδί του αλγορίθμου αντικατάστασης
Ο 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.
Ο πλέον γνωστός και ένας από τους πιο απλούς πολυαλφαβητικούς αλγορίθμους. Αποδίδεται εσφαλμένα στον Γάλλο Blaise de Vigenère (1523-1596) από τον οποίο πήρε και όνομα. Η πραγματικότητα είναι ότι αρχικά είχε παρουσιαστεί από τον Leon Battista Alberti σε βιβλίο του, το 1553. Στον ίδιο ανήκει η πρώτη γνωστή αναφορά σε πολυαλφαβητικό αλγόριθμο ήδη από το 1467. Ο κώδικας χρησιμοποιεί 26 διαφορετικές μονοαλφαβητικές αντικαταστάσεις (τους 26 δυνατούς κώδικες του Caesar). Συνήθως το κλειδί είναι μία επαναλαμβανόμενη λέξη (μυστικός κωδικός).
Ο κώδικας σε κάθε γράμμα από το plaintext προσθέτει ένα γράμμα από το κλειδί και το αποτέλεσμα προκύπτει από τη σχέση Kρυπτογράφηση: C = P + K mod 26 Αποκρυπτογράφηση: P= C- K (mod 26) Προκειμένου αυτή η πράξη να γίνεται γρήγορα παρουσιάστηκαν διάφορες μέθοδοι, όπως ο πίνακας Vigenère
Κείμενο Κλειδί
Εάν το γράμμα του κλειδιού είναι x και το γράμμα του plaintext y, το αντίστοιχο ciphertext γράμμα είναι αυτό που βρίσκεται στην τομή της γραμμής που ξεκινάει με το x και της στήλης με επικεφαλίδα y. Επειδή το κλειδί πρέπει να είναι τόσο μεγάλο όσο και το plaintext, αυτή η μυστική λέξη συνεχώς επαναλαμβάνεται key: deceptivedeceptivedeceptive plaintext: wearediscoveredsaveyourself ciphertext: ZICVTWQNGRZGVTWAVZHCQYGLMGJ
Η αποκρυπτογράφηση είναι η αντίστροφη πράξη. ciphertext: ZICVTWQNGRZGVTWAVZHCQYGLMGJ key: deceptivedeceptivedeceptive plaintext: wearediscoveredsaveyourself
Σε αυτή την κατηγορία αλγορίθμων γίνετε απλή αναδιάταξη των γραμμάτων ενός κειμένου. Για έναν απλό αλγόριθμο αντιμετάθεσης με περίοδο t, η κρυπτογράφηση περιλαμβάνει την ομαδοποίηση του κειμένου σε blocks των t χαρακτήρων το καθένα, και εφαρμογή σε κάθε ένα από αυτά τα blocks μιας απλής αντικατάστασης e πάνω στους αριθμούς 1 ως t. Ένας αλγόριθμος αντιμετάθεσης διατηρεί τον αριθμό των συμβόλων μέσα σε ένα μπλοκ και επομένως μπορεί εύκολα να κρυπταναλυθεί.
Παράδειγμα: Υποθέστε ένα απλό αλγόριθμο αντιμετάθεσης με περίοδο t = 6 και e = (641352). Το μήνυμα ΚΡΥΠΤΟΓΡΑΦΙΑ θα δώσει το κρυπτογράφημα ΟΠΚΥΤΡΑΦΓΑΙΑ. Το κλειδί αποκρυπτογράφησης είναι d = (364251).
Στην επόμενη διαφάνεια φαίνεται ένας συνήθης κώδικας αντιμετάθεσης. Ο κώδικας έχει για κλειδί μια λέξη ή φράση που δεν περιέχει επαναλαμβανόμενα γράμματα. Στο παράδειγμα αυτό το κλειδί είναι το MEGABUCK. Ο σκοπός του κλειδιού είναι να αριθμήσει τις στήλες, με τη στήλη 1 να βρίσκεται κάτω από το γράμμα του κλειδιού που βρίσκεται περισσότερο κοντά στην αρχή τον αλφάβητου, κ.ο.κ. Το κείμενο γράφεται οριζόντια, σε σειρές. Το κρυπτογράφημα διαβάζεται ανά στήλη, με πρώτη τη στήλη της οποίας το γράμμα-κλειδί είναι το μικρότερο.
Κείμενο: pleasetransferonemilliondollarstomyswissbankaccount sixtwotwo Κρυπτογράφημα: AFLLSKSOSELAWAIATOOSSCTCLNMOMANTESILYNT WRNNTSOWDPAEDOBUOERIRICXB
Οι κώδικες αντικατάστασης διατηρούν τη σειρά των συμβόλων του κειμένου αλλά τα μεταμφιέζουν. Οι κώδικες αντιμετάθεσης (transposition ciphers) αντίθετα, αναδιατάσσουν τα σύμβολα αλλά δεν τα μεταμφιέζουν.
Το CrypTool είναι ένα πρόγραμμα ανοικτού λογισμικού μέσα από το οποίο παρουσιάζονται οι έννοιες της κρυπτογραφίας. Είναι ένα ευρέως διαδεδομένο λογισμικό ηλεκτρονικής μάθησης στον τομέα της κρυπτογραφίας. Μέσα σε αυτό ένας μεγάλος αριθμός εργαλείων ανάλυσης και αλγόριθμοι έχουν υλοποιηθεί αποτελεσματικά. Η γραφική διεπαφή και η πλούσια ηλεκτρονική τεκμηρίωση δίνει στο χρήστη τη δυνατότητα, να γνωρίσει τη κρυπτογραφία. Το CrypTool έχει αναπτυχθεί από γερμανικές εταιρείες και πανεπιστήμια. Αρχικά ήταν σχεδιασμένο όχι ως εργαλείο ηλεκτρονικής μάθησης, αλλά σαν πρόγραμμα που θα χρησιμοποιηθεί παραγωγικά.
Με τη χρήση του Cryptool να εκτελεστούν οι ακόλουθες ασκήσεις: 1. Δημιουργία ενός τυχαίου αρχείου. 2. Κρυπτογράφηση του κειμένου που δημιουργήθηκε με τη χρήση του κλασσικού αλγορίθμου Caesar. 3. Αποκρυπτογράφηση του κρυπτογραφήματος που προέκυψε. 4. Κρυπτογράφηση του κλασσικού κειμένου με τη χρήση του αλγορίθμου XOR. 5. Αποκρυπτογράφηση του κρυπτογραφήματος που προέκυψε. 6. Κρυπτογράφηση του κλασσικού κειμένου με τη χρήση του αλγορίθμου Vigenere. 7. Αποκρυπτογράφηση του κρυπτογραφήματος που προέκυψε.
Δίνεται αρχικό μήνυμα (plaintext): THE QUICK BROWN FOX JUMPS OVER THE GATE Mε χρήση κάποιου αλγορίθμου μονοαλφαβητικής αντικατάστασης (simple substitution cipher) κρυπτογραφούμε το παραπάνω μήνυμα και προκύπτει το κωδικοποιημένο μήνυμα (ciphertext): MBR OJFGA SWNTE CNK QJDIL NURW MBR XHMR a) Γνωρίζοντας το παραπάνω ζεύγος plaintext/ciphertext, τι μέρος του κλειδιου μπορούμε να μαντέψουμε; b) Πόσα είναι τα διαφορετικά κλειδιά τα οποία θα μπορούσαν να είχαν χρησιμοποιηθεί ώστε να έχουμε τη συγκεκριμένη κωδικοποίηση του αρχικού μηνύματος; c) Έχουμε το παρακάτω ciphertext: MBR TRHLRP WHE HTHV CWND PNEYNE ZNN Γνωρίζοντας ότι το ciphertext αυτό έχει προκύψει από τον ίδιο αλγόριθμο και με το ίδιο κλειδί που μελετήσαμε παραπάνω, βρείτε το αρχικό μήνυμα.
Παραδοτέα: Αναφορά (σε word) με τα στοιχεία που ζητούνται. Εξώφυλλο και διαδικασία σύμφωνα με τις οδηγίες που υπάρχουν στο eclass. Deadline: Σε δύο (2) εβδομάδες. Απορίες- ερωτήσεις: atheodorak@outlook.com