Κρυπτογραφία και Ασφάλεια Υπολογιστών

Save this PDF as:
 WORD  PNG  TXT  JPG

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "Κρυπτογραφία και Ασφάλεια Υπολογιστών"

Transcript

1 Κρυπτογραφία και Ασφάλεια Υπολογιστών Εργαστηριακές Ασκήσεις 0 Σ ε λ ί δ α Απόστολος Φούρναρης, Πάρης Κίτσος και Νικόλαος Σκλάβος 4/29/15 Κρυπτογραφία και Ασφάλεια Υπολογιστών

2 1 Σ ε λ ί δ α

3 ΠΕΡΙΕΧΟΜΕΝΑ 1 Εργαστήριο 1: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΚΡΥΠΤΟΓΡΑΦΙΑ ΚΑΙ ΣΤΟ ΕΡΓΑΛΕΙΟ CRYPTOOL Εισαγωγή Βασικές Έννοιες Στόχοι ΑΣΦΑΛΕΙΑΣ Ασφάλεια κρυπτογραφικού συστήματος Το Εργαλείο CRYPTOOL Χαρακτηριστικά Εργαστήριο 2: :Μελέτη Συστημάτων Κλασσικής Κρυπτογραφίας Η ΚΩΔΙΚΟΠΟΙΗΣΗ ΤΟΥ ΚΑΙΣΑΡΑ ΕΡΩΤΗΜΑ ΕΡΩΤΗΜΑ ΤΟ ΚΡΥΠΤΟΓΡΑΦΙΚΟ ΣΥΣΤΗΜΑ ΠΟΛΥΑΛΦΑΒΗΤΙΚΗΣ ΑΝΤΙΚΑΤΑΣΤΑΣΗΣ (ΑΛΓΟΡΙΘΜΟΣ ΤΟΥ VIGENERE) ΕΡΩΤΗΜΑΤΑ Εργαστήριο 3: Μοντέρνα Κρυπτογραφία Συμμετρικού Κλειδιού (ΜΕΡΟΣ Α) Βασικές Αρχές Κρυπτογράφησης Αποκρυπτογράφησης Συμμετρική Κρυπτογραφία Κρυπτογραφία Συμμετρικού Κλειδιού Το κρυπτογραφικό Σύστημα DES Ο αλγόριθμος DES Η συνάρτηση F Ανάλυση S-box Πρόγραμμα κλειδιού του DES Η Μέθοδος Λειτουργίας Electronic Codebook Mode (ECB) Προβλήματα ECB Άσκηση: Χρήση του εργαλείου cryptool για την κρυπτογράφηση/αποκρυπτογράφηση κείμενο με τον αλγόριθμο DES Κρυπταναλύοντας τον DES Ο 3DES Εργαστήριο 4ο: Μοντέρνα Κρυπτογραφία Συμμετρικού Κλειδιού (Μέρος Β) Το κρυπτογραφικό Σύστημα AES ΕΡΩΤΗΜΑ Εργαστήριο 5ο: Συναρτήσεις Κατακερματισμού και HMAC Κατασκευή Συναρτήσεων Κατακερματισμού μίας κατεύθυνσης H Συνάρτηση κατακερματισμού SHA Κρυπτανάλυση των Συναρτήσεων Κατακερματισμού Σ ε λ ί δ α

4 5.3.1 Το Παράδοξο των «Γενεθλιών» Ακεραιότητα και Αυθεντικότητα με Συναρτήσεις κατακερματισμού (ΗΜΑC) Ασκηση (Ερώτηματα 5.1): Παραγωγή Hash και ευαισθησία των συναρτήσεων κατακερματισμού σε αλλαγές του αρχικού μηνύματος Εργαστήριο 6. Θεωρία Αριθμών Για Κρυπτογραφία Δραστηριότητες Άσκησης Πρώτοι αριθμοί-θεώρημα του Fermat Κινέζικο Θεώρημα Υπολοίπων Εργαστήριο 7ο: Κρυπτογραφία Δημοσίου Κλειδιού Το Κρυπτογραφικό Σύστημα RSA Παραγωγή Ζεύγους Κλειδιών RSA Κρυπτογράφηση-Αποκρυπτογράφηση RSA Παράδειγμα χρήσης του RSA με το Cryptool Παρουσίαση και ανάλυση χρήσης του RSA μέσω του εργαλείου Cryptool Κρυπτογράφηση και αποκρυπτογράφηση μηνύματος με RSA κλειδιά Επιθέσεις στον αλγόριθμο RSA Εργαστήριο 8ο: Ψηφιακές Υπογραφές και Ψηφιακά Πιστοποιητικά Αρχές Ψηφιακών Υπογραφών Ψηφιακές Υπογραφές με Συναρτήσεις Κατακερματισμού (Hash Functions) Σύστημα RSA για Ψηφιακή Υπογραφή Ψηφιακά Πιστοποιητικά Δημιουργία Πιστοποιημένου με το Cryptool Ψηφιακή Υπογραφή κειμένου με την χρήση του εργαλείου Cryptool Εργαστήριο 9ο : Αυθεντικοποίηση χρήστη Άλλες τεχνικές αυθεντικοποίησης Ανάλυση και αναλυτές συνθηματικών Ανάλυση συνθηματικών με το εργαλείο Cryptool Ερώτημα Ερώτημα Εργαστήριο 10 ο : Αυθεντικοποίηση και Ασφάλεια σε Δικτυακό περιβάλλον Πιθανές Δυνατότητες Εισβολής Σε Ένα Εκτεταμένο Κατανεμημένο Σύστημα Δύο Δημοφιλείς επιθέσεις: Σενάρια Αυθεντικοποίησης βασισμένα σε πρωτόκολλα Αίτησης Απόκρισης. Ασκήσεις με το Cryptool Υβριδική Κρυπτογραφία 11ο. το Σύστημα Pretty Good Privacy (PGP) Το Συστημα PGP (Pretty Good Privacy) Χρησιμοποιώντας το εργαλείο Cryptool για επίδειξη υβριδικής κρυπτογραφίας Σ ε λ ί δ α

5 11.3 Χρησιμοποιώντας το εργαλείο GPG για ασφάλεια Αρχειων με PGP Δημιουργία Κλειδιών και πιστοποιητικών Εργαστηριο 12 ο Επιθέσεις Πλάγιου Μονοπατιού Σε Υλικό Επιθέσεις πλάγιου μονοπατιού βασισμένες στην κατανάλωση ισχύος ενός κρυπτογραφικού συστήματος Συλλέγοντας δεδομένα κατανάλωσης ισχύος Επιθέσεις απλής ανάλυσης ισχύος Επιθέσεις διαφορικής ανάλυσης ισχύος Πραγματοποιώντας Διαφορική ανάλυση ισχύος στον AES Ασκηση Εργαστήριο 13 ο Ασφαλίζοντας το διαδίκτυο: Το πρωτόκολλο ασφαλείας SSL/TLS. Η πλατφόρμα openssl Γενικά Τρόπος λειτουργίας Επιβάρυνση από το SSL Το Πρόγραμμα OpenSSL μυστικό κλειδί αλγόριθμους κρυπτογράφησης κρυπτογραφία δημόσιου κλειδιού Γέννηση κλειδιών Κρυπτογράφηση Οι ψηφιακές υπογραφές Υποδομή Δημοσίου Κλειδιού (ΥΔΚ) Τι είναι ένα PKI; (Σε συντομία) PKI με OpenSSL Εργαστήριο 14 ο Ασφάλεια Δικτύων Πιθανές Δυνατότητες Εισβολής Σε Ένα Εκτεταμένο Κατανεμημένο Σύστημα Είδη επιθέσεων στο διαδίκτυο Βιβλιογραφία Σ ε λ ί δ α

6 1 ΕΡΓΑΣΤΗΡΙΟ 1: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΚΡΥΠΤΟΓΡΑΦΙΑ ΚΑΙ ΣΤΟ ΕΡΓΑΛΕΙΟ CRYPTOOL 1.1 ΕΙΣΑΓΩΓΗ Η προσπάθεια ανάπτυξης μεθόδου ώστε να εγγυάται την μη διαρροή μηνυμάτων δεν είναι κάτι νέο. Οι αρχαίοι Έλληνες χρησιμοποίησαν κρυπτογραφημένα μηνύματα για να στείλουν οδηγίες στους στρατούς τους στο πεδίο της μάχης. Οι Αλγόριθμοι (Ciphers) όμως, τέθηκαν σε πραγματική λειτουργία και οι δυνατότητές του μελετήθηκαν διεξοδικά κατά τη διάρκεια των δύο παγκοσμίων πολέμων καθώς εκτός από την αποστολή των κρυπτογραφημένων μηνυμάτων, έπρεπε επίσης να αποκρυπτογραφηθούν τα μηνύματα του εχθρού. Η εξάπλωση των υπολογιστών και των συστημάτων επικοινωνίας τη δεκαετία του 60 έφερε μαζί της την απαίτηση από τον ιδιωτικό τομέα για την ύπαρξη μέσων προστασίας των πληροφοριών σε ψηφιακή μορφή και για την παροχή υπηρεσιών ασφάλειας. 1.2 ΒΑΣΙΚΕΣ ΈΝΝΟΙΕΣ Η λέξη κρυπτογραφία προέρχεται από τα συνθετικά "κρυπτός" + "γράφω" και είναι ο επιστημονικός κλάδος, ο οποίος ασχολείται με την μελέτη, την ανάπτυξη και την χρήση τεχνικών προκειμένου να επιτευχθεί η κωδικοποίηση και αποκωδικοποίηση ενός μηνύματος πληροφορίας, ούτως ώστε να υπάρξει ασφαλή διακίνησή τους μεταξύ εξουσιοδοτημένων προσώπων και μόνο. Κρυπτογράφηση (encryption) ονομάζεται η διαδικασία με την οποία επιτυγχάνεται η παραπάνω μετατροπή του μηνύματος με τέτοιο τρόπο ώστε το περιεχόμενο του να παραμένει μυστικό. Η αντίστροφη διαδικασία όπου από το μετασχηματισμένο μήνυμα παράγεται πάλι το αρχικό ονομάζεται αποκρυπτογράφηση (decryption). Η αρχική πληροφορία αποτελεί το αρχικό κείμενο (plaintext) ή ακρυπτογράφητο κείμενο, ενώ το αποτέλεσμα της κρυπτογράφησης ονομάζεται κρυπτογραφημένο κείμενο (ciphertext) ή κρυπτοκείμενο. Μια τεχνική ή ένας αλγόριθμος κρυπτογράφησης, ενός μηνύματος, λέγεται κρυπτοσύστημα ή κρυπτογραφικό σύστημα. Κρυπτογραφικός αλγόριθμος είναι η μέθοδος που χρησιμοποιείται για τον μετασχηματισμό των δεδομένων σε τέτοια μορφή που να μην επιτρέπει την αποκάλυψη των περιεχομένων τους σε μη εξουσιοδοτημένα μέρη. Κατά κανόνα ο κρυπτογραφικός αλγόριθμος είναι μία πολύπλοκη μαθηματική ή λογική συνάρτηση. Κλειδί είναι μία σειρά ψηφίων που χρησιμοποιείται ως είσοδος στην συνάρτηση κρυπτογράφησης και διαδραματίζει καθοριστικό ρόλο στην όλη διαδικασία. Καθορίζει τις ακριβείς αντικαταστάσεις και τα αποτελέσματα των μετασχηματισμών που εκτελούνται από τον αλγόριθμο κρυπτογράφησης. Επομένως, διαφορετικά κλειδιά παράγουν διαφορετικά κρυπτοκείμενα. Η κρυπτογράφηση και αποκρυπτογράφηση ενός μηνύματος γίνεται με τη βοήθεια του αλγόριθμου κρυπτογράφησης και του κλειδιού κρυπτογράφησης. Συνήθως ο αλγόριθμος κρυπτογράφησης είναι γνωστός, οπότε η ασφάλεια του περιεχομένου του κρυπτογραφημένου μηνύματος που μεταδίδεται βασίζεται ως επί το πλείστον στην μυστικότητα του κλειδιού κρυπτογράφησης. Το κλειδί έχει συγκεκριμένο μήκος και το μέγεθός του καθορίζεται από τον αριθμό των ψηφίων από τα οποία αποτελείται. Γενικά ισχύει ότι όσο μεγαλύτερο είναι το κλειδί κρυπτογράφησης, τόσο δυσκολότερα μπορεί να αποκρυπτογραφηθεί το κρυπτογραφημένο μήνυμα από μη εξουσιοδοτημένα άτομα. 5 Σ ε λ ί δ α

7 Διαφορετικοί αλγόριθμοι κρυπτογράφησης απαιτούν διαφορετικά μήκη κλειδιών για να πετύχουν το ίδιο επίπεδο ανθεκτικότητας κρυπτογράφησης. Ο αλγόριθμος είναι συνήθως δημοσιοποιημένος, ενώ το κλειδί παραμένει μυστικό. Είναι γνωστό μόνο στον αποστολέα και στους αποδέκτες του κρυπτοκείμενο, ώστε να είναι σε θέση να το μετατρέψουν σε μη κρυπτογραφημένο κείμενο. Κρυπτανάλυση είναι ο κλάδος της επιστήμης που ασχολείται με την μελέτη και την επινόηση μεθόδων που εξασφαλίζουν την κατανόηση του νοήματος της κρυπτογραφημένης πληροφορίας, έχοντας ως άγνωστες ποσότητες τον κρυφό μετασχηματισμό, το κλειδί με βάση το οποίο αυτός πραγματοποιήθηκε και το κρυπτογραφημένο μήνυμα. Η Κρυπτανάλυση και η κρυπτογραφία απαρτίζουν την επιστήμη της κρυπτολογίας. 1.3 ΣΤΟΧΟΙ ΑΣΦΑΛΕΙΑΣ Η ασφάλεια των υπολογιστικών και επικοινωνιακών συστημάτων και γενικότερα της πληροφορίας χρησιμοποιεί τα διάφορα κρυπτογραφικά συστήματα ώστε να εξασφαλίσει τους παρακάτω στόχους: Εμπιστευτικότητα (Confidentiality) Εμπιστευτικότητα είναι η ιδιότητα που θα πρέπει να έχουν τα δεδομένα του μηνύματος ώστε να είναι αναγνώσιμα μόνο από εξουσιοδοτημένα άτομα. Η εμπιστευτικότητα καλείται επίσης δηκτικότητα, μυστικότητα, προστασία του απορρήτου και εχεμύθεια. Ακεραιότητα (Integrity) Η ακεραιότητα είναι η υπηρεσία που απαγορεύει τη μη εξουσιοδοτημένη τροποποίηση των δεδομένων. Για τη διασφάλιση της πληρότητας και της ορθότητας των δεδομένων, ενέργειες όπως η εισαγωγή, η διαγραφή, η αντικατάσταση πληροφοριών και κάθε άλλου είδους τροποποίησή τους πρέπει να μην είναι διαθέσιμες από μη εξουσιοδοτημένα άτομα. Πιστοποίηση αυθεντικότητας (Authentication) Η πιστοποίηση αυθεντικότητας σχετίζεται τόσο με την επιβεβαίωση της ταυτότητας των δύο οντοτήτων που επιθυμούν να επικοινωνήσουν, όσο και της πληροφορίας που καλείται να μεταδοθεί. Συγκεκριμένα τα δεδομένα ελέγχονται ως προς την πηγή προέλευσης, την ημερομηνία προέλευσης, το περιεχόμενο, την ώρα αποστολής, κτλ. Επομένως, η πιστοποίηση αυθεντικότητας υποδιαιρείται σε δύο κύριες διεργασίες: την πιστοποίηση αυθεντικότητας της οντότητας και την πιστοποίηση αυθεντικότητας των δεδομένων Η πιστοποίηση αυθεντικότητας των δεδομένων έμμεσα προϋποθέτει την ακεραιότητα των δεδομένων. Μη αποποίηση (Νon repudiation) Η υπηρεσία αυτή αποτρέπει μία οντότητα να αποποιηθεί την ύπαρξη προηγούμενων δεσμεύσεων ή ενεργειών που έχουν πραγματοποιηθεί. 6 Σ ε λ ί δ α

8 1.4 ΑΣΦΑΛΕΙΑ ΚΡΥΠΤΟΓΡΑΦΙΚΟΥ ΣΥΣΤΗΜΑΤΟΣ Η ανθεκτικότητά ενός κρυπτογραφικού συστήματος, αποτελεί ένα από τα πιο βασικά ζητήματα που πρέπει να πιστοποιηθεί πριν τη χρησιμοποίησή του σε πρακτικές εφαρμογές. Τα κρυπτογραφικά συστήματα εμφανίζουν διάφορα επίπεδα ασφαλείας, ανάλογα με το πόσο δύσκολα παραβιάζονται. Για να θεωρηθεί ασφαλής ένας αλγόριθμος πρέπει να μην μπορεί να παραβιαστεί, δηλαδή κάποιος που δεν έχει εξουσιοδότηση να μπορεί να αποκαλύψει το κλειδί. Ένας αλγόριθμος είναι απόλυτα ασφαλής αν δεν υπάρχει δυνατότητα να παραβιαστεί ανεξαρτήτως του μεγέθους του κρυπτογραφημένου μηνύματος, των υπολογιστικών πόρων και του χρόνου που μπορεί να διαθέτει ο κρυπταναλυτής. Ένας αλγόριθμος ονομάζεται υπολογιστικά ασφαλής αν είναι αδύνατη η παραβίασή του με τους διαθέσιμους τωρινούς ή ά μ ε σ α μελλοντικούς πόρους. 1.5 ΤΟ ΕΡΓΑΛΕΙΟ CRYPTOOL Το CrypTool είναι ένα ανοικτού κώδικα εργαλείο ηλεκτρονικής μάθησης για την επεξήγηση κρυπτογραφικών εννοιών. 1.6 ΧΑΡΑΚΤΗΡΙΣΤΙΚΑ Η εισαγωγή των χρηστών στο πεδίο της κρυπτογραφίας γίνεται με την αξιοποίηση γραφικών διεπιφανειών, άμεσα διαθέσιμης ηλεκτρονικής τεκμηρίωσης, αναλυτικών εργαλείων και των αλγορίθμων του CrypTool. Είναι διαθέσιμα διάφορα κλασικά κρυπτογραφήματα, καθώς και ασύμμετρα κρυπτογραφήματα όπως τα RSA, κρυπτογραφία ελλειπτικών καμπυλών, ψηφιακές υπογραφές και ανταλλαγή κλειδιών Diffie-Hellman, πολλά από τα οποία οπτικοποιούνται με κινούμενες αναπαραστάσεις. Ακόμη περιέχει έναν εισαγωγικό οδηγό με κινούμενες αναπαραστάσεις για τους πρώτους αριθμούς και τη στοιχειώδη θεωρία αριθμών. 7 Σ ε λ ί δ α

9 2 ΕΡΓΑΣΤΗΡΙΟ 2: :ΜΕΛΕΤΗ ΣΥΣΤΗΜΑΤΩΝ ΚΛΑΣΣΙΚΗΣ ΚΡΥΠΤΟΓΡΑΦΙΑΣ Ανά τους αιώνες, η κρυπτογραφία αποτέλεσε ένα πολύ βασικό εργαλείο στην μυστική συνεννόηση μεταξύ πολιτικών, στρατηγών, Βασιλιάδων αλλά και επαναστατών. Τέτοια κρυπτογραφικά συστήματα υπάρχουν από την αρχαιότητα (αρχαία Σπάρτη) και φτάνουν μέχρι τον Β παγκόσμιο πόλεμο (Μηχανή ENIGMA). Μια διαφορά αυτών των κλασσικών συστημάτων σε σχέσης με την σύγχρονη κρυπτογραφία που χρησιμοποιείται σήμερα σε όλες τις συνδιαλλαγές που είναι επιθυμητή η ασφάλεια, είναι ότι σε πολλούς τέτοιους «αλγορίθμους» κρυπτογράφησης/αποκρυπτογράφησης ο ίδιος ο αλγόριθμος παραμένει κρυφός. Συνήθως αν κάποιος γνωρίζει τον χρησιμοποιούμενο αλγόριθμο τότε μπορεί να σπάσει το κρυπτογράφημα. Υπάρχουν βέβαια και περιπτώσεις που κάτι τέτοιο δεν ισχύει. 2.1 Η ΚΩΔΙΚΟΠΟΙΗΣΗ ΤΟΥ ΚΑΙΣΑΡΑ Ένας από τους αρχαιότερους τρόπους προστασίας πληροφοριών είναι η κρυπτογράφηση μονοαλφαβητικής αντικατάστασης (monoalphabetic cipher) ή κωδικοποίηση του Καίσαρα (Caesar s Cipher). Ονομάστηκε έτσι γιατί λέγεται ότι πρώτος την χρησιμοποίησε ο Ιούλιος Καίσαρας για την κωδικοποίηση γραπτών μηνυμάτων προς τους στρατηγούς του. Η λειτουργία της μεθόδου αυτής είναι απλή και στηρίζεται στην μετακύλιση του αλφαβήτου κατά ένα σταθερό βήμα. Ο παραλήπτης που γνωρίζει τον ρυθμό μετακύλισης μπορεί εύκολα να αποκρυπτογραφήσει το μήνυμα. Αυτή η γνώση, αποτελεί και το κλειδί του κρυπτογραφικού συστήματος. Η μέθοδος βασίζεται σε μία μαθηματική συνάρτηση Ε που αντιστοιχίζει κάθε μη κρυπτογραφημένο γράμμα (plaintext) p i σε κάποιο άλλο κρυπτογραφημένο (ciphertext) c i, κατά το σχήμα c i = Ε(p i) = p i + k, με k ακέραια σταθερά. Προφανώς για k = 0 δεν έχουμε κρυπτογράφηση. Λέγεται ότι ο Ιούλιος Καίσαρας χρησιμοποιούσε k =3. Παράδειγμα με k=3: ciphertext 8 Σ ε λ ί δ α

10 2.1.1 ΕΡΩΤΗΜΑ 2.1 Στα πλαίσια του εργαστηρίου πρόκειται να κρυπτογραφηθεί και αποκρυπτογραφηθεί ένα κείμενο με τον αλγόριθμο του Καίσαρα. Βήματα Εκτελέστε το πρόγραμμα Cryptool και ανοίξετε το αρχείο CrypTool-en.txt στο directory CrypTool\examples μέσω του μενού File \ Open Επιλεγουμε από το menu Encrypt/Decrypt \ Symmetric (classic) \ Caesar/Rot-13. Επιλέξτε να ξεκινάει το αλφάβητο από το 0 (ο πρώτος χαρακτήρας δηλ. το Α να αντιστοιχεί στο 0) και βάλτε σαν κλειδί το πρώτο γράμμα του ονόματός σας. Α. Παρατηρήστε την αντιστοίχηση (Mapping) που παρουσιάζει το εργαλείο. Ποια είναι αυτή; Β. Πατώντας το κουμπί encrypt, παρατηρήστε το κρυπτογραφημένο κείμενο που προκύπτει. Γ. Αποκρυπτογραφήστε το κρυπτογραφημένο κείμενο χρησιμοποιώντας το ίδιο κλειδί. Παρατήρηση: Μπορείτε να αποβάλετε τα κενά αλλά και τα πεζά γράμματα από το αρχικό κείμενο ώστε να γίνει πιο ομαλό προς κρυπτογράφηση από το menu options/text Options και απενεργοποιώντας το Keep characters not present in the alphabet unchanged και Distinguish between uppercase and lowercase. 9 Σελίδα

11 2.1.2 ΕΡΩΤΗΜΑ 2.2 Το κρυπτογράφημα του Καίσαρα είναι πολύ εύκολο να «σπάσει». Το κλειδί του έχει πολύ μικρό μέγεθος και μπορεί να πάρει πολύ λίγες διαφορετικές τιμές (26 τιμές για το αγγλικό αλφάβητο). Μπορεί κάποιος να δοκιμάσει όλα τα κλειδιά σε σύντομο χρονικό διάστημα και να βρει το αρχικό κείμενο από το κρυπτογραφημένο χωρίς να γνωρίζει το κλειδί. Αυτή η προσέγγιση ονομάζεται BruteForce επίθεση και μπορεί να εφαρμοστεί σε όλους τους αλγορίθμους κρυπτογραφίας αλλά σπάνια είναι αποδοτική Εντροπία και Κατανομή συχνότητας χαρακτήρων Μπορούμε να δούμε την εντροπία του αρχικού και κρυπτογραφημένου μηνύματος με το cryptool, επιλέγοντας το αντίστοιχο κείμενο και στη συνέχεια στο μενού Analysis \ General \ Entropy. Επίσης μπορούμε να δούμε και την συχνότητα εμφάνισης κάθε χαρακτήρα (πχ. γράμματα) μέσα στο αρχικό και κρυπτογραφημένο κείμενο, δηλαδή την κατανομή συχνότητας χαρακτήρων, επιλέγοντας το αντίστοιχο κείμενο και στη συνέχεια στο μενού Analysis \ General \ Histogram. Α. Βρείτε ποια είναι η εντροπία για το αρχικό και κρυπτογραφημένο κείμενο. Τι παρατηρείτε για τις δύο τιμές εντροπίας; B. Βρείτε την κατανομή συχνότητας χαρακτήρων στο αρχικό και κρυπτογραφημένο κείμενο. Τι παρατηρείτε για τα δύο ιστογράμματα; Επίθεση «μόνο κρυπτογραφημένου μηνύματος» Ένας πιο γρήγορος τρόπος για κρυπτανάλυση του αλγορίθμου του Καίσαρα από την bruteforce επίθεση, είναι με την επίθεση «μόνο κρυπτογραφημένου μηνύματος» (ciphertext-only attack). Σε αυτή την επίθεσης χρησιμοποιούμε μόνο το κρυπτογραφημένο κείμενο και αναλύοντάς το καταλήγουμε στο αρχικό και ανακτάμε το κλειδι (που σημαίνει ότι αν η επίθεση μας είναι επιτυχής, το κρυπτογραφημένο κείμενο δεν είναι ασφαλές). Γ. Χρησιμοποιώντας το εργαλείο cryptool, αφού επιλέξουμε το κρυπτογραφημένο κείμενο της άσκησης 2.1 και στη συνέχεια από το μενού Analysis \ Ciphertext-only \ Caesar, κάνετε μια επίθεση «μόνο κρυπτογραφημένου μηνύματος». Παρατηρήστε ότι εμφανίζεται το ιστόγραμμα με την κατανομή συχνοτήτων χαρακτήρων. Παρατήρηση: Πως πετυχαίνει η επίθεση; Στο κρυπτογραφημένο κείμενο του αλγορίθμου του Kαίσαρα η κατανομή των χαρακτήρων παραμένει ίδια απλά μετατοπισμένη σε σχέση με το αρχικό κείμενο κατά τόσες θέσεις όσες το ορίζονται από το κλειδί. Το κάθε αλφάβητο (ελληνικό, αγγλικό) έχει γνωστή συχνότητα εμφάνισης (κατά μέσο όρο) κάθε χαρακτήρα. Αντιπαραβάλλοντας την κατανομή συχνότητας χαρακτήρων του κρυπτογραφημένου κείμενου με την γνωστή κατανομή συχνότητας χαρακτήρων του χρησιμοποιούμενου αλφαβήτου (στην προκειμένη περίπτωση του αγγλικού αλφαβήτου) μπορούμε να ξεχωρίσουμε συγκεκριμένα γράμματα και από αυτά, το κλειδί. 10 Σ ε λ ί δ α

12 Για παράδειγμα, το γράμμα e στο αγγλικό αλφάβητο έχει την μεγαλύτερη συχνότητα εμφάνιση σε ένα κείμενο. Αν βρούμε το γράμμα με την μεγαλύτερη συχνότητα εμφάνισης στο κρυπτογραφημένο κείμενο, τότε με μεγάλη πιθανότητα αυτό το γράμμα στο αρχικό κείμενο θα είναι το e. 2.2 ΤΟ ΚΡΥΠΤΟΓΡΑΦΙΚΟ ΣΥΣΤΗΜΑ ΠΟΛΥΑΛΦΑΒΗΤΙΚΗΣ ΑΝΤΙΚΑΤΑΣΤΑΣΗΣ (ΑΛΓΟΡΙΘΜΟΣ ΤΟΥ VIGENERE) Το Κρυπτογραφικο Συστημα Πολυαλφαβητικης Αντικαταστασης Vigenere αποτελεί μια γενίκευση του συστήματος του Καίσαρα, όπου το κλειδί δεν είναι μόνο ένα γράμμα αλλά μπορεί να είναι μια ολόκληρη λέξη. Κάθε χαρακτήρας του αρχικού κειμένου μπορεί να αντικατασταθεί με διαφορετικό χαρακτήρα του κρυπτογραφημένου κειμένου ανάλογα με το γράμμα του κλειδιού. Η μέθοδος βασίζεται στη μαθηματική συνάρτηση Ε V που αντιστοιχίζει κάθε μη κρυπτογραφημένο γράμμα (plaintext) p i σε κάποιο άλλο κρυπτογραφημένο (ciphertext) c i, κατά το σχήμα c i = Ε(p i) = p i + k (i mod m), όπου k i είναι η τιμή του χαρακτήρα στη θέση i στο κλειδί k που έχει μέγεθος m. Το κλειδί αντιστοιχίζεται επαναλαμβανόμενα σε όλο το αρχικό κείμενο όπως φαίνεται στο παρακάτω παράδειγμα: Α. Να κάνετε κρυπτογράφηση και αποκρυπτογράφηση του αρχείου CrypTool-en.txt χρησιμοποιώντας τον αλγόριθμο του Vigenère μέσω του μενού Encrypt/Decrypt \ Classical \ Vigenère. Επιλέξτε ένα κλειδί 8 χαρακτήρων. 11 Σ ε λ ί δ α

13 Επίθεση «μόνο κρυπτογραφημένου μηνύματος» Vigenere Έστω ότι υποκλέπτουμε το κρυπτογραφημένο κείμενο του προηγούμενου παραδείγματος αλλα δεν γνωρίζουμε το κλειδί που χρησιμοποιήθηκε ούτε το αρχικό κείμενο. Μπορούμε με το εργαλείο cryptool να βρούμε το κλειδί και να «σπάσουμε» το κρυπτογράφημα. Επιλέγουμε Analysis \ ciphertext only \ Vigenère. Θα εμφανιστεί ένα νέο παράθυρο που ονομάζεται autocorrelation. Παρατηρήστε τα σημεία στα οποία έχουμε κορυφές στην κυματομορφή. Τα σημεία αυτά έχουν μια περιοδικότητα που μας δείχνει κάθε πόσους χαρακτήρες επαναλαμβάνεται το κλειδί. Με αυτήν την πληροφορία μπορούμε να εκτιμήσουμε το μέγεθος του χρησιμοποιούμενου κλειδιού. Πατώντας το πλήκτρο Continue, ένα νέο παράθυρο διαλόγου εμφανίζεται που μας εμφανίζει το κλειδί που χρησιμοποιήθηκε. Με το πλήκτρο Decrypt μπορούμε πλέον να αποκρυπτογραφήσουμε το κρυπτογραφημένο κείμενο. 2.3 ΕΡΩΤΗΜΑΤΑ Ερώτημα 1. Χρησιμοποιήστε το κρυπτογραφικό σύστημα Vigenere για να κρυπτογραφήσετε το παρακάτω κείμενο: ΤΟ ΕΡΓΑΣΤΗΡΙΟ ΑΣΦΑΛΕΙΑΣ ΥΠΟΛΟΓΙΣΤΩΝ ΚΑΙ ΔΙΚΤΥΩΝ ΕΙΝΑΙ ΕΥΚΟΛΟ Αγνοήστε τα κενά και επιλέξτε ένα κλειδί 6 γραμμάτων. Το αλφάβητο που χρησιμοποιούμε είναι το Ελληνικό. Ερώτημα 2. Δίνεται το παρακάτω κρυπτογραφημένο κείμενο: pcgtjqrslkceickviipocbceeczndmwaducwymulf cwfcnbqsktnpbnbmktlnym RcOPYSRf Να χρησιμοποιήσετε τα εργαλεία του cryptool ώστε να βρείτε ποιο είναι το κλειδί και ποιο το αρχικό κείμενο. Ερώτημα 3. Να φτιάξετε ένα απλό πρόγραμμα που να πραγματοποιεί μια κρυπτογράφηση με τον αλγόριθμο του Καίσαρα. Χρησιμοποιείστε οποιαδήποτε γλώσσα προγραμματισμού είναι περισσότερο εύκολη για εσάς ή ψευδοκώδικα. 12 Σ ε λ ί δ α

14 3 ΕΡΓΑΣΤΗΡΙΟ 3: ΜΟΝΤΕΡΝΑ ΚΡΥΠΤΟΓΡΑΦΙΑ ΣΥΜΜΕΤΡΙΚΟΥ ΚΛΕΙΔΙΟΥ (ΜΕΡΟΣ Α). 3.1 ΒΑΣΙΚΕΣ ΑΡΧΕΣ ΚΡΥΠΤΟΓΡΑΦΗΣΗΣ ΑΠΟΚΡΥΠΤΟΓΡΑΦΗΣΗΣ Δεδομένα τα οποία μπορούν να διαβαστούν χωρίς να χρειάζεται να εφαρμοστεί σε αυτά κάποιο ιδιαίτερο μέτρο, ονομάζονται απλό κείμενο ή καθαρό κείμενο. Η μεθοδολογία της απόκρυψης της ουσίας ενός απλού κειμένου ονομάζεται κρυπτογράφηση. Το κρυπτογραφημένο απλό κείμενο είναι ένα σύνολο από μη αναγνώσιμα στοιχεία τα οποία εμφανίζονται να μην έχουν κάποιο νόημα και ονομάζεται κρυπτογραφημένο κείμενο ή κρυπτοκείμενο. Η διαδικασία της μετατροπής ενός κρυπτογραφημένου κειμένου σε απλό κείμενο ονομάζεται αποκρυπτογράφηση. απλό κείμενο κρυπτογράφηση κρυπτοκείμενο αποκρυπτογράφηση απλό κείμενο Η κρυπτογραφία είναι η επιστήμη η οποία με τη χρήση μαθηματικών οδηγεί σε κρυπτογράφηση και αποκρυπτογράφηση δεδομένων. Μέσω της κρυπτογραφίας επιτυγχάνεται η αποθήκευση και/ή η μετάδοση πληροφορίας σε μη ασφαλές μέσο ή δίκτυο (όπως το διαδίκτυο) έτσι ώστε να μην μπορεί να αναγνωστεί από κανέναν εκτός από τον νόμιμο αποδέκτη της. Ενώ η κρυπτογραφία είναι η επιστήμη της ασφάλισης δεδομένων, η κρυπτανάλυση είναι η επιστήμη της ανάλυσης και του σπασίματος κρυπτογραφημένων δεδομένων. Στην κλασσική κρυπτανάλυση χρειάζονται ένας συνδυασμός από μαθηματικά εργαλεία, αναλυτική λογική, ανεύρεση συγκεκριμένων patterns μέσα σε ένα κρυπτογραφημένο κείμενο αλλά και αρκετή αφοσίωση και τύχη. Υπάρχει δυνατή κρυπτογραφία και ασθενής κρυπτογραφία. Η κρυπτογραφική δύναμη μετριέται από το χρόνο και τους πόρους που απαιτούνται έτσι ώστε να μπορέσουμε να ανακτήσουμε το απλό από το κρυπτογραφημένο κείμενο με μεθόδους κρυπτανάλυσης. Το αποτέλεσμα της δυνατής κρυπτογραφίας είναι ένα κρυπτογραφημένο κείμενο που είναι πάρα πολύ δύσκολο να αποκρυπτογραφηθεί (να σπάσει) χωρίς την γνώση του κατάλληλου τρόπου ή κλειδιού με το οποίο κρυπτογραφήθηκε. Η δυσκολία αυτή μετριέται σε απαιτούμενη υπολογιστική ισχύ και απαιτούμενο χρόνο, π.χ. ένα δισεκατομμύριο υπολογιστές που πραγματοποιούν ένα δισεκατομμύριο υπολογισμού ανά δευτερόλεπτο να μην μπορούν να σπάσουν το κρυπτογραφημένο κείμενο δυνατής κρυπτογραφίας σε λιγότερο από ένα δισεκατομμύριο χρόνια. Ένας αλγόριθμος κρυπτογραφίας είναι μια μαθηματική συνάρτηση που χρησιμοποιείται για την κρυπτογράφηση και αποκρυπτογράφηση. Ο αλγόριθμος αυτός λειτουργεί πάντα σε συνεργασία με ένα κλειδί, δηλαδή μια κρυφή λέξη, αριθμό ή φράση. Το ίδιο απλό κείμενο κρυπτογραφείται σε διαφορετικά κρυπτογραφημένα κείμενα αν εφαρμοστεί ο κρυπτογραφικός αλγόριθμος με διαφορετικό κλειδί κάθε φορά. Η ασφάλεια των κρυπτογραφημένων δεδομένων βασίζεται 13 Σ ε λ ί δ α

15 αποκλειστικά σε δυο παράγοντες: την δύναμη του αλγορίθμου κρυπτογραφίας και την μυστικότητα του κλειδιού. Ένας κρυπτογραφικός αλγόριθμος μαζί με όλα τα πιθανά κλειδιά και όλα τα πρωτοκολλά που τον συνοδεύουν ονομάζεται κρυπτογραφικό σύστημα ή κρυπτογραφικό σχήμα. Δύο είδη κρυπτογραφίας και αντιστοίχων κρυπτογραφικών αλγορίθμων έχουν αναπτυχθεί. Η Συμμετρική κρυπτογραφία ή κρυπτογραφία ιδιωτικού κλειδιού και η Ασύμμετρη κρυπτογραφία ή κρυπτογραφία δημοσίου κλειδιού. 3.2 ΣΥΜΜΕΤΡΙΚΗ ΚΡΥΠΤΟΓΡΑΦΙΑ ΚΡΥΠΤΟΓΡΑΦΙΑ ΣΥΜΜΕΤΡΙΚΟΥ ΚΛΕΙΔΙΟΥ Οι αλγόριθμοι Συμμετρικής κρυπτογραφίας ονομάζονται και συμβατικοί αλγόριθμοι κρυπτογραφίας και είναι αλγόριθμοι όπου το κλειδί κρυπτογράφησης μπορεί να υπολογιστεί από το κλειδί αποκρυπτογράφησης και αντίστροφα. Στους περισσοτέρους τέτοιους αλγορίθμους, το κλειδί κρυπτογράφησης και αποκρυπτογράφησης είναι το ίδιο. Σε αυτούς τους αλγορίθμους απαιτείται από τον αποστολέα και παραλήπτη ενός κρυπτογραφημένου μηνύματος να έχουν συμφωνήσει σε ένα κλειδί πριν ξεκινήσουν να επικοινωνούν με ασφάλεια. Η ασφάλεια του αλγορίθμου συμμετρικής κρυπτογραφίας βρίσκεται στην μυστικότητα του κλειδιού. Αν το κλειδί γίνει γνωστό με κάποιο τρόπο τότε ο οποιοσδήποτε μπορεί να κρυπτογραφεί και να αποκρυπτογραφεί μηνύματα και όχι μόνο ο αποστολέας και ο παραλήπτης. Έτσι όσο η επικοινωνία μεταξύ των δύο αυτών οντοτήτων παραμένει κρυφή, το κλειδί μπορεί να διατηρήσει τη μυστικότητά του. Οι αλγόριθμοι Συμμετρικής κρυπτογραφίας μπορούν να χωριστούν σε δύο κατηγορίες. Κάποιοι επεξεργάζονται το απλό κείμενο ανά bit ή byte πληροφορίας και ονομάζονται κρυπτογραφικοί αλγόριθμοι ροής (stream ciphers) ενώ κάποιο άλλοι επεξεργάζονται το απλό κείμενο ανά ομάδες bit ή byte (8, 32, 64 ή 128 bit) και ονομάζονται κρυπτογραφικοί αλγόριθμοι μπλόκ (block ciphers). Κοινό κλειδί απλό κείμενο κρυπτογράφηση κρυπτοκείμενο αποκρυπτογράφηση απλό κείμενο 14 Σ ε λ ί δ α

16 3.3 ΤΟ ΚΡΥΠΤΟΓΡΑΦΙΚΟ ΣΥΣΤΗΜΑ DES Ο αλγόριθμος DES Ο DES αποτελεί έναν από τους πιο ευρέως χρησιμοποιούμενους αλγορίθμους κρυπτογράφησης συμμετρικού κλειδιού μέχρι το Έχει μελετηθεί εκτενώς για την ασφάλειά του και πολλές από τις αρχές που διέπουν τους αλγορίθμους τμήματος έχουν διαμορφωθεί με βάση αυτόν τον αλγόριθμο. Σήμερα, λόγω και του μικρού κλειδιού του (64 bits-58 bits) καθώς και λόγω αρκετών κενών ασφαλείας του έχει παροπλιστεί και δεν χρησιμοποιείται. Ο αλγόριθμος DES έχει σχεδιαστεί με σκοπό να κρυπτογραφεί και να αποκρυπτογραφεί σύνολα δεδομένων που αποτελούνται από 64-bits με την βοήθεια ενός 64-bits κλειδιού. Η αποκρυπτογράφηση θα πρέπει να επιτυγχάνεται με την χρησιμοποίηση του ίδιου κλειδιού που χρησιμοποιήθηκε για την κρυπτογράφηση, αλλά με αλλαγμένο το τρόπο εφαρμογής των κλειδιών έτσι ώστε η διαδικασία αποκρυπτογράφησης να είναι η αντιστροφή της διαδικασίας κρυπτογράφησης. Απότ ο αρχικό κλειδί του DES προκύπτουν σύνολα από υποκλειδία (ένα για κάθε γύρο του αλγορίθμου) τα π.χ. {k1,k2,.,k16} τα οποία κατά την αποκρυπτογράφηση εφαρμόζονται με την αντίστροφη φορά π.χ. {k16,k15,.,k1}. ΙΡ Σύνθετος Υπολογισμός ΙΡ -1 Σχήμα 1 Ο αλγόριθμος DES 15 Σ ε λ ί δ α

17 Το προς κρυπτογράφηση 64 bit απλό κείμενο αρχικά υποβάλλεται σε μια μετάθεση σύμφωνα με τον πίνακα 1, κατόπιν σε έναν σύνθετο υπολογισμό ο οποίος βασίζεται και εξαρτάται από το κλειδί και τελικά σε μια μετάθεση IP -1 η οποία είναι το αντίστροφο της αρχικής μετάθεσης IP (πίνακας 2) Πίνακας 1: IP Πίνακας 2: IP Στόχος των δύο μεταθέσεων είναι η χρήση της ίδιας διαδικασίας του σχήματος 1 τόσο για κρυπτογράφηση όσο και αποκρυπτογράφηση. Η μετάθεση δεν προσφέρει επιπλέον ασφάλεια αφού δεν περιλαμβάνει το κλειδί Επίσης με την μετάθεση δημιουργούνται ομαδοποιήσεις. Τα bits που βρίσκονται σε θέση πολλαπλάσια του 8 δημιουργούν δυαδικές λέξεις, έτσι όταν το απλό κείμενο αποτελείται από χαρακτήρες ASCII διαχωρίζεται η πληροφορία του χαρακτήρα από το όγδοο bit αρτιότητας (parity bit). Η καρδία της ασφάλειας του DES που βασίζεται και εξαρτάται από το κλειδί βρίσκεται στους υπολογισμούς που γίνονται σε κάθε γύρο του αλγορίθμους (σχήμα 2). Περιγράφεται από μια συνάρτηση f, την συνάρτηση κρυπτογράφησης, και μία αντίστοιχη συνάρτηση για την επέκταση του κλειδιού. Σχήμα 2. Ένας γύρος του αλγορίθμους DES 16 Σ ε λ ί δ α

18 3.3.2 Η συνάρτηση F Μετά την αρχική μετάθεση IP τα 64-bit κειμένου χωρίζονται σε δύο κείμενα των 32-bits τα οποία οδηγούνται σε δύο καταχωρητές L και R, (Left (Αριστερά) και Right (Δεξιά)). Από τον καταχωρητή R τα 32 bits προχωρούν στην συνάρτηση επέκτασης Ε, η οποία περιλαμβάνει μία μετάθεση κατά την οποία ορισμένα bits της εισόδου εμφανίζονται περισσότερες φορές από μία έτσι ώστε η έξοδος τελικά να αποτελείται από 48 bits. Έτσι τα 32 bits του R επεκτείνονται σε 48 bits. Τα bit εισόδου που εμφανίζονται διπλά είναι τα 4,5,8,9,12,13,28,29 όπως φαίνεται στον πίνακα Πίνακας 3 Συνάρτηση Επέκτασης Ε Πίνακας 4 Η Μετάθεση Ρ Η έξοδος των 48-bits από την συνάρτηση επέκτασης Ε γίνεται μια λογική πράξη XOR αντίστοιχο υποκλειδί κλειδί κρυπτογράφησης του συγκεκριμένου γύρου. Στην συνέχεια τα 48 αυτά bit από την έξοδο της XOR χωρίζονται σε οκτώ εξάδες και σε κάθε μία από αυτές πραγματοποιείται μια αντικατάσταση. Αυτή η αντικατάσταση γίνεται με την χρήση οκτώ κουτιών αντικατάστασης (S- Βoxes), τα οποία έχουν είσοδο 6-bit αλλά παράγουν μόνο 4-bit στην έξοδο τους Οι έξοδοι των 4-bit από όλα τα κουτιά αντικατάστασης (δηλαδή συνολικά 32 bit) συγκεντρώνονται και μπαίνουν σαν είσοδο στην μετάθεση P που φαίνεται στον πίνακα 4 και διαφέρει από τις αντίστοιχες μεταθέσεις ΙΡ, Ε. Αυτή η μετάθεση ούτε αφαιρεί αλλά ούτε και αντιγράφει bit σε περισσότερες από μία θέσεις άρα και η έξοδος της θα είναι πάλι 32-bit. Ο τρόπος με τον οποίο γίνεται η μετάθεση αυτή φαίνεται στον πίνακα 4. Μετά την ολοκλήρωση της συνάρτησης f, 32 αυτά bit, από την έξοδο της μετάθεσης Ρ τα οποία είναι και η τελική έξοδος της συνάρτησης, γίνονται ΧΟR με αυτά του καταχωρητή L. Η παραπάνω διαδικασία του γύρου επαναλαμβάνεται 16 φορές και στο τέλος τα περιεχόμενα των καταχωρητών L και R θα συγκεντρωθούν σε ένα σύνολο 64-bit, θα υποβληθούν στην τελική μετάθεση ΙΡ -1 και στην συνέχεια το αποτέλεσμα που θα προκύψει θα είναι η το τελικό κρυπτογραφημένο κείμενο του DES Ανάλυση S-box Τα οκτώ κουτιά αντικατάστασης είναι το πιο σημαντικό κομμάτι του DES. Μέχρι το 1994 δεν είχε κοινοποιηθεί τίποτα για τα κριτήρια σχεδιασμού τους. Αυτό και μόνο το γεγονός δείχνει ότι η κρυπτογραφική δύναμη του αλγορίθμου ήταν άρρηκτα συνδεδεμένη με αυτά. Τα κουτιά αυτά επίσης προσδίδουν μη-γραμμικότητα στον τρόπο κατασκευής του κρυπταλγόριθμου. 17 Σ ε λ ί δ α

19 Ο DES περιλαμβάνει οκτώ S-boxes που χαρτογραφούν 6 σε 4 bits. Το κάθε Sbox αποτελεί ένα πίνακα με 4 γραμμές και 16 στήλες. Η 48 bit είσοδος της Sbox Αντικατάστασης χωρίζεται 8 ομάδες των 6 bits. Σε κάθε ομάδα, τα εξωτερικά bits 1 & 6 επιλέγουν μια γραμμή από κάθε Sbox (η πρώτη ομάδα αναφέρεται στο πρώτο Sbox, η δεύτερη ομάδα στο δεύτερο Sbox κ.τ.λ.). Τα εσωτερικά bits 2-5 της ομάδας επιλέγουν μια στήλη του αντίστοιχου SBox και αντικαθίστανται από τα περιεχόμενα του συγκεκριμένου κελιού του Sbox. Το αποτέλεσμα είναι 8 ομάδες από 4 bits,δηλ. 32 bits Νέα τιμή Β[1] Σχήμα 3 Παράδειγμα Λειτουργίας Sbox (για το Sbox 1). 18 Σ ε λ ί δ α

20 Tα Sboxes S1 έως S8 και οι τιμές που δόθηκαν σε κάθε κουτί φαίνονται στους παρακάτω πίνακες. Κουτί Αντικατάστασης S Κουτί Αντικατάστασης S Κουτί Αντικατάστασης S Κουτί Αντικατάστασης S Κουτί Αντικατάστασης S Κουτί Αντικατάστασης S Κουτί Αντικατάστασης S Κουτί Αντικατάστασης S Σ ε λ ί δ α

21 3.4 ΠΡΟΓΡΑΜΜΑ ΚΛΕΙΔΙΟΥ ΤΟΥ DES Όπως προαναφέραμε η είσοδος κάθε γύρου εκτός από τα 32 bits δεδομένων απαιτεί και 48bits του κλειδιού. Το κλειδί κάθε γύρου είναι διαφορετικό και προκύπτει από ένα συγκεκριμένο πρόγραμμα επέκτασης κλειδιού το οποίο φαίνεται στο σχήμα 4. Σχήμα 4. Η διαδικασία Επέκτασης Κλειδιού του DES Το πρόγραμμα του κλειδιού αποτελείται από δύο συναρτήσεις μετάθεσης επιλογής. Ως μετάθεση επιλογής ορίζεται η μετάθεση κατά την οποία ορισμένα bits της εισόδου αγνοούνται και δεν εμφανίζονται στην έξοδο. Οι δύο συναρτήσεις επιλογής είναι οι ακόλουθες: PC-1: {0,1} 64 {0,1} 56 και PC-2: {0,1} 56 {0,1} 48 Η PC-1 ξεχωρίζει όλα τα bits του αρχικού κλειδιού που θα συμμετάσχουν στο πρόγραμμα του κλειδιού για την δημιουργία των επιμέρους κλειδιών. Έτσι το κάθε όγδοο bit του αρχικού κλειδιού αγνοείται με αποτέλεσμα να διατίθενται για την κρυπτογράφηση 64-8 = 56bits. Οι μεταθέσεις PC-1 και PC-2 παρουσιάζονται στους παρακάτω πίνακες Πίνακας 5: PC-1 Πίνακας 6: PC-2 Στην συνέχεια τα 56bits χωρίζονται σε δύο λέξεις των 28bits και οδηγούνται σε καταχωρητές ολίσθησης. Στην συνέχεια ανάλογα με τον γύρο πραγματοποιείται μια 20 Σ ε λ ί δ α

22 ολίσθηση n προκαθορισμένων θέσεων όπως φαίνονται στο παρακάτω σχήμα. Γύρος Αρ.Ολισθήσεων Πίνακας 7: Ολισθήσεις Κλειδιού Κατά την διαδικασία της κρυπτογράφησης η ολίσθηση εκτελείται κατά την αριστερή φορά ενώ κατά την αποκρυπτογράφηση προς την δεξιά φορά. Ο αριθμός των ολισθήσεων έχει ως αποτέλεσμα το κλειδί να επανέλθει στην αρχική του θέση. Έτσι κατά την αποκρυπτογράφηση εκτελούνται οι αντίστροφες ολισθήσεις με την διαφορά ότι η αρχική ολίσθηση είναι μηδενική. Δηλαδή : 0,1,2,2..,1. Μετά την ολοκλήρωση κάθε ολίσθησης επιλέγονται τα 48 από τα 56 bits που βρίσκονται στον καταχωρητή ολίσθησης σύμφωνα με την μετάθεση επιλογής PC Η Μέθοδος Λειτουργίας Electronic Codebook Mode (ECB) Η Electronic Codebook (ECB) μέθοδος είναι η πιο απλή και εύκολη μέθοδος που μπορεί να χρησιμοποιηθεί για έναν αλγόριθμο κρυπτογράφησης τμήματος. Το απλό κείμενο που επιθυμούμε να κρυπτογραφήσουμε χωρίζεται σε τμήματα (blocks) ανάλογα με τον αλγόριθμο κρυπτογράφησης που χρησιμοποιείται. Αν ο αλγόριθμος αυτός είναι ο DES τότε το κάθε τμήμα έχει μέγεθος 64 bits. Κάθε τμήμα του καθαρού μηνύματος κρυπτογραφείται στο αντίστοιχο τμήμα του κρυπτογραφημένου μηνύματος, αλλά και το αντίστροφο. Η Electronic Codebook μέθοδος λειτουργίας καθορίζεται μαθηματικά ως εξής: Έστω ένα μήνυμα P μεγέθους m bits. Τότε το μήνυμα αυτό χωρίζεται σε n = m b όπου b είναι το μέγεθος τμήματος του αλγορίθμου κρυπτογραφίας (πχ. DES b=64). Έστω επίσης ότι Κ είναι το κλειδί. ECB Κρυπτογράφηση : ECB Αποκρυπτογράφηση : Cj = CIPH K (Pj), Pj = CIPH -1 K (Cj), για κάθε j = 1,,n. για κάθε j = 1,,n. Η μέθοδος αυτή φαίνεται στο παρακάτω Σχήμα Σ ε λ ί δ α

23 CIPH K CIPH K CIPH K CIPH -1 K CIPH -1 K CIPH -1 K Σχήμα 5 : Μέθοδος λειτουργίας Electronic Codebook (ECB) Εφόσον το κάθε τμήμα του καθαρού μηνύματος κρυπτογραφείται πάντα στο ίδιο τμήμα του κρυπτογραφημένου μηνύματος, τότε θεωρητικά μπορεί να δημιουργηθεί ένα βιβλίο κώδικα (Code Book) όλων των καθαρών μηνυμάτων και των αντίστοιχων τους κρυπτογραφημένων μηνυμάτων. Εάν το μέγεθος του τμήματος είναι 64-bit, τότε το βιβλίο κώδικα θα έχει 264 καταχωρήσεις. Ο αριθμός αυτός είναι αρκετά μεγάλος ώστε να προϋπολογιστούν και να αποθηκευτούν όλες οι δυνατές περιπτώσεις. Αυτό οφείλεται στο γεγονός ότι για κάθε χρησιμοποιούμενο κλειδί απαιτείται ένα διαφορετικό βιβλίο κώδικα. Σύμφωνα με τη μέθοδο αυτή, κάθε τμήμα του καθαρού μηνύματος κρυπτογραφείται ανεξάρτητα. εν χρειάζεται να κρυπτογραφηθεί γραμμικά ένα αρχείο. Αντίθετα μπορούν να κρυπτογραφηθούν για παράδειγμα πρώτα τα 5 μεσαία τμήματα, μετά τα 5 τελευταία τμήματα και τέλος τα τμήματα της αρχής του αρχείου. Αυτή η ιδιότητα είναι σημαντική για αρχεία τα οποία προσπελαύνονται με τυχαίο τρόπο, όπως 22 Σ ε λ ί δ α

24 συμβαίνει σε μια βάση δεδομένων. Αν μια βάση κρυπτογραφείται με την ECB μέθοδο, τότε κάθε αρχείο μπορεί να καταχωρηθεί,να διαγραφεί, να κρυπτογραφηθεί ή να αποκρυπτογραφηθεί ανεξάρτητα από κάθε άλλο αρχείο. Επιπλέον η επεξεργασία είναι παράλληλη Προβλήματα ECB Το πρόβλημα με την ECB μέθοδο είναι ότι εάν ένας κρυπταναλυτής διαθέτει το αρχικό και το αντίστοιχο κρυπτογραφημένο κείμενο αρκετών μηνυμάτων, τότε μπορεί να αρχίσει να συνθέτει ένα βιβλίο κώδικα χωρίς να γνωρίζει το κλειδί. Μπορεί να κάνει δηλαδή μια επίθεση γνωστού αρχικού μηνύματος. Στην πραγματικότητα, τις περισσότερες φορές, ο τεμαχισμός των κειμένων σε μηνύματα τείνει να επαναληφθεί. Διαφορετικά μηνύματα μπορεί να έχουν κοινές ακολουθίες από ψηφία. Ο υπολογιστής παράγει μηνύματα τα οποία έχουν συμμετρικές δομές. Τα μηνύματα μπορεί να είναι αρκετά πλεονασματικά ή να διαθέτουν μεγάλες ακολουθίες από μηδενικά ή κενά. Αν τα κρυπτογραφημένα μηνύματα έχουν αρκετά πλεονασματικά στοιχεία και εκείνα τείνουν να εμφανίζονται στα ίδια μέρη στα διαφορετικά μηνύματα τότε να ο κρυπταναλυτής μπορεί να εξάγει αρκετές πληροφορίες. Μπορεί να οργανώσει στατιστικές επιθέσεις στο θεμελιώδες καθαρό μήνυμα, αγνοώντας την σταθερότητα και την ισχύ του αλγόριθμου κρυπτογράφησης. Η αδυναμία αυτή είναι μεγαλύτερη στην αρχή και στο τέλος των μηνυμάτων όπου καλά προσδιορισμένες επικεφαλίδες περιέχουν πληροφορίες για τον αποστολέα, τον παραλήπτη, την ημερομηνία κλπ. Το πρόβλημα αυτό συνήθως καλείται ως επαναλαμβανόμενα στερεότυπα αρχής (stereotyped beginnings) και επαναλαμβανόμενα στερεότυπα τέλους (stereotyped endings). Θα πρέπει να σημειωθεί ότι δεν υπάρχει κίνδυνος για την ασφάλεια κατά την κρυπτογράφηση πολλαπλών μηνυμάτων με το ίδιο κλειδί. Στην πραγματικότητα, κάθε τμήμα θεωρείται ως ένα ξεχωριστό κρυπτογραφημένο μήνυμα με το ίδιο κλειδί. Λάθη σε ψηφία του κρυπτογραφημένου μηνύματος, θα προκαλέσουν προβλήματα κατά τη διάρκεια της αποκρυπτογράφησης σε ολόκληρο το αρχικό κείμενο. Ωστόσο δεν θα επηρεάσουν άλλα τμήματα κρυπτογραφημένων μηνυμάτων. Ωστόσο αν ένα ψηφίο του κρυπτογραφημένου μηνύματος χαθεί ή προστεθεί, όλα τα τμήματα του κρυπτογραφημένου κειμένου θα αποκρυπτογραφηθούν λανθασμένα, εκτός αν υπάρχει κάποιου είδους μορφοποίησης, η οποία να οργανώνει ξανά τα όρια των τμημάτων. 3.5 ΆΣΚΗΣΗ: ΧΡΗΣΗ ΤΟΥ ΕΡΓΑΛΕΙΟΥ CRYPTOOL ΓΙΑ ΤΗΝ ΚΡΥΠΤΟΓΡΑΦΗΣΗ/ΑΠΟΚΡΥΠΤΟΓΡΑΦΗΣΗ ΚΕΙΜΕΝΟ ΜΕ ΤΟΝ ΑΛΓΟΡΙΘΜΟ DES. Το εργαλείο Cryptool μας δίνει την δυνατότητα να δούμε μια αναπαράσταση της λειτουργίας του αλγορίθμου DES επιλέγοντας Indiv. Procedures/Visualization of Algorithms/DES.. Επίσης, μέσω του cryptool μπορούμε να κάνουμε μια κρυπτογράφηση ενός αρχικού 23 Σ ε λ ί δ α

25 μηνύματος με DES σε ECB λειτουργία επιλέγοντας Encrypt/Decrypt /Symmetric (Modern)/DES(ECB) Ερώτημα 3.1 Δοκιμάστε να κρυπτογραφήσετε το παρακάτω κείμενο: TESTINGS OF DES ALGORITHM THESE TESTINGS ARE FUN Παρατηρείστε το κρυπτογραφημένο κείμενο. Υπάρχουν επαναλήψεις ακολουθιών αριθμών; Να καταγράψετε στο φύλλο μετρήσεών σας το κομμάτι του κρυπτογραφημένου μηνύματος που επαναλαμβάνεται, τις θέσεις μέσα στο κρυπτογραφημένο κείμενο που εμφανίζονται οι επαναλήψεις και σε ποιο αρχικό μήνυμα αντιστοιχούν οι επαναλήψεις αυτές. Με βάση αυτήν την πληροφορία μπορώ να κάνω μια επίθεση γνωστού αρχικού κειμένου αντιστοιχίζοντας κομμάτια του αρχικού κειμένου με κομμάτια του κρυπτογραφημένου φτιάχνοντας έτσι ένα βιβλίο κώδικα Κρυπταναλύοντας τον DES Ανοίξτε το αρχείο CrypTool-en.txt στο directory CrypTool\examples μέσω του μενού File \ Open Δοκιμάστε να κάνετε μια αναλυση συχνότητας στο αρχικό κείμενο επιλέγοντας Analysis \ tools for analysis\frequency analysis. Προκύπτει μια γνώριμη ανάλυση εμφανιζόμενων χαρακτήρων που ταιριάζει στο αναμενόμενο αποτέλεσμα για την Αγγλική Γλώσσα (π.χ. το γράμμα Ε έχει μεγαλύτερη πιθανότητα κ.τ.λ.) Ερώτημα 3.2 Στη συνέχει κρυπτογραφούμε το αρχικό κείμενο με το DES ECB με κλειδί το AB CD Παρατηρήστε το κρυπτογραφημένο αποτέλεσμα και προσπαθήστε να βρείτε το μέγεθος του κλειδιού κάνοντας μια autocorrelation ανάλυση επιλέγοντας Analysis \ tools for analysis\autocorrelation. 24 Σ ε λ ί δ α

26 Παρατηρήστε ότι δεν υπάρχει περιοδικότητα στο αποτέλεσμα και κατά συνέπεια δεν μπορούμε να βγάλουμε κάποια χρήσιμα συμπεράσματα π.χ. για το μέγεθος του κλειδιού. Τώρα ας υποθέσουμε ότι γνωρίζουμε ένα μέρος του κλειδιού αλλά όχι ολόκληρο. Έστω ότι γνωρίζουμε το ** ** *B CD (με * τα άγνωστα ψηφία του κλειδιού) Επιλέγουμε Analysis \ Symmetric Encryption (Modern)\DES (ECB) και ξεκινάμε μια επίθεση εξαντλητικής αναζήτησης (brute force attack) αφού βάλουμε το κομμάτι του κλειδιού που γνωρίζουμε. Ερώτημα 3.3 Παρατηρήστε τα αποτελέσματα που προκύπτουν. Το αποτέλεσμα με την μικρότερη εντροπία είναι το συνήθως σωστό. Καταγράψτε ποια είναι η τιμή της εντροπίας του σωστά κρυπταναλυμένου μηνύματος και ποια είναι η διαφορά της από τις υπόλοιπες προσπάθειες κρυπτανάλυσης του cryptool. Ξαναδοκιμάστε να κάνετε την επίθεση με διαφορετικού μεγέθους γνωστά κομμάτια του κλειδιού και παρατηρήστε το χρόνο που χρειάζεται το πρόγραμμα μέχρι να βγάλει αποτελέσματα. Καταγράψτε τα αποτελέσματα που βρήκατε. Ερώτημα 3.4 Έστω ότι η είσοδος στη συνάρτηση αντικατάστασης του DES είναι τα παρακάτω 48 bits. Χρησιμοποιώντας τα Sbox της σελίδας 19 να βρείτε ποια είναι η 32 bit έξοδος Είσοδος (48 bits): Έξοδος (32 bits): 3.6 Ο 3DES O Triple DES ή 3DES είναι μια παραλλαγή του DES. Χρησιμοποιεί 3 DES κλειδιά των 64-bit ώστε να δημιουργήσει ένα πλήρες 3DES κλειδί των 192 bits. Συνήθως, δεν δίνονται λοιπόν 3 κλειδιά για τον 3DES αλλά ένα κλειδί μεγέθους 192 bit το οποίο πλέον εσωτερικά ο αλγόριθμος πρέπει να τεμαχίσει σε 3 μέρη. Η διαδικασία κρυπτογράφησης ή από κρυπτογράφησης με τον 3DES είναι παρόμοια με αυτή του DES μόνο που επαναλαμβάνετε 3 φορές εξ ου και το όνομα Triple DES. Έτσι, αρχικά τα δεδομένα 25 Σ ε λ ί δ α

27 εισόδου (το αρχικό κείμενο) κρυπτογραφείται με το πρώτο μέρος του 3DES κλειδιού, στην συνέχεια αποκρυπτογραφείται με το δεύτερο μέρος του κλειδιού και τέλος κρυπτογραφείται με το τρίτο μέρος του 3DES κλειδιού. Πιο συγκεκριμένα, έστω ότι το 3DES κλειδί αποτελείται από τα K 1, K 2 και K 3, DES υποκλειδιά, τα οποία έχουν μέγεθος 64 bits (στην πραγματικότητα σύμφωνα με τον αλγόριθμο DES το καθαρό κλειδί είναι 56 bits αφού τα τελευταία 8 bits είναι για έλεγχο ισοτιμίας) και ότι ΕΚ είναι συνάρτηση κρυπτογράφησης με κλειδί Κ και D η συνάρτηση αποκρυπτογράφησης με κλειδί Κ του DES. Τότε μια κρυπτογράφηση ενός αρχικού κειμένου plaintext σε ένα κρυπτογραφημένο κείμενο ciphertext με τον 3DES γίνεται ως εξής: ciphertext = E K3(D K2(E K1(plaintext))) ενώ σε μια αποκρυπτογράφηση γίνονται οι αντίστροφες διαδικασίες με τα ίδια κλειδιά (δηλ. αποκρυπτογράφηση με το κλειδί Κ1, κρυπτογράφηση με το κλειδί Κ2 και μετά αποκρυπτογράφησή με το κλειδί Κ3) plaintext = D K1(E K2(D K3(ciphertext))) Η είσοδος και έξοδος του 3DES έχει το ίδιο μέγεθος bit όπως ο DES (δηλ. 64 bits) αλλά λόγω του γεγονότος ότι ο αλγόριθμος DES εκτελείται 3 φορές ο 3DES είναι αρκετά πιο αργός από τον DES. Αυτό που χάνεται όμως σε ταχύτητα κερδίζεται σε ασφάλεια. Ενώ ο DES έχει αποδεδειγμένες αδυναμίες ασφαλείας και πολύ μικρό μήκος κλειδιού, ο 3DES παραμένει αρκετά ασφαλής ώστε να μπορεί να χρησιμοποιηθεί στην πράξη. Το κλειδί του DES το χωρίζουμε συνήθως σε «λέξεις» των 8 bits δηλαδή σε bytes. Επισημαίνουμε ότι τα πραγματικό μέγεθος των κλειδιών του DES δεν είναι 64 bits αλλά 56 bits. Το λιγότερο σημαντικό bit σε κάθε byte (το δεξιότερο) είναι bit ισοτιμίας και πρέπει να έχει τέτοια τιμή ώστε το byte να έχει μονό αριθμό από 1. Αυτά τα bit ισοτιμίας (ένα bit για κάθε byte του κλειδιού) πρέπει να απορριφθούν (αφού γίνει ο απαιτούμενος έλεγχος ισοτιμίας) για να προκύψει το καθαρό 56 bit κλειδί ). Έτσι, στην πραγματικότητα έχω μόνο 7 χρήσιμα bits σε κάθε byte του κλειδιού. Προφανώς, αφού ο 3DES αποτελεί παραλλαγή του DES και σε αυτόν τον αλγόριθμο σε κάθε κομμάτι του κλειδιού του (K1, K2, ή Κ3) πρέπει να απορριφθούν τα bits ισοτιμίας. Αυτό σημαίνει ότι το καθαρό κλειδί του 3DES είναι στην πραγματικότητα 168 bits. Το πρότυπο του 3DES ορίζει 3 επιλογές διαχείρισης των κλειδιών. Επιλογή Α : Τα 3 κλειδιά είναι εντελώς ανεξάρτητα μεταξύ τους. Αυτή η επιλογή δίνει την μεγαλύτερη ασφάλεια αφού το συνολικό κλειδί που χρησιμοποιείται έχει μέγεθος 3 56 = 168 bits. Επιλογή Β: Τα K 1 και K 2 είναι ανεξάρτητα μεταξύ τους αλλά K 3 = K 1. Αυτή η επιλογή παρέχει λιγότερη ασφάλεια από την Α αλλά περισσότερη από ένα απλό DES. Το μέγεθος του κλειδιού είναι 2 56 = 112 bits Επιλογή Γ: Τα 3 κλειδιά είναι ίδια μεταξύ τους K 1 = K 2 = K 3. Η ασφάλεια σε αυτή την επιλογή είναι ίδια με αυτή του DES. Αυτή η επιλογή θα πρέπει να αποφεύγεται. 26 Σ ε λ ί δ α

28 Ερώτημα 3.5 Να κρυπτογραφήσετε με 3DES το παρακάτω κείμενο TESTINGS με το εργαλείο Cryptool πραγματοποιώντας 3 φορές τον αλγόριθμο DES (ακολουθείστε την επιλογή DES(ECB)) χρησιμοποιώντας τα εξής κλειδιά: Κ1: ABCDEF0 Κ2: 0E329232EA6D0D73 Κ3: 0FEDCBA Καταγράψτε ποιο είναι το κρυπτογραφημένο αποτέλεσμα. Επιβεβαιώστε ότι η διαδικασία κρυπτογράφησης έχει γίνει σωστά αποκρυπτογραφώντας κατάλληλα το τελικό κρυπτογραφημένο κείμενο. Είναι το αποκρυπτογραφημένο κείμενο που προκύπτει ίδιο με το αρχικό που δόθηκε; Το cryptool δίνει την δυνατότητα να πραγματοποιηθεί αυτόματα η διαδικασία του 3DES ακολουθώντας την επιλογή Encrypt/Decrypt /Symmetric (Modern)/Triple DES(ECB). Πραγματοποιώντας αυτή τη διαδικασία και δίνοντας το ίδιο αρχικό κείμενο και τα ίδια κλειδιά προκύπτει το ίδιο κρυπτογραφημένο κείμενο με αυτό που βρήκατε αρχικά; 27 Σ ε λ ί δ α

29 4 ΕΡΓΑΣΤΗΡΙΟ 4Ο: ΜΟΝΤΕΡΝΑ ΚΡΥΠΤΟΓΡΑΦΙΑ ΣΥΜΜΕΤΡΙΚΟΥ ΚΛΕΙΔΙΟΥ (ΜΕΡΟΣ Β). 4.1 ΤΟ ΚΡΥΠΤΟΓΡΑΦΙΚΟ ΣΥΣΤΗΜΑ AES Σχηματικά Η κρυπτογράφηση και αποκρυπτογράφηση με τον αλγόριθμο AES. 28 Σ ε λ ί δ α

30 Σχηματικά ένας γύρος του AES. Επιλέξετε από το εργαλείο cryptool να εμφανιστεί το animation με τον τρόπο λειτουργίας του AES ως εξής: Indiv. Procedures/Visualization of Algorithms/AES/Rijndael Animation. Παρατηρείστε την λειτουργία του AES. Μπορείτε να χρησιμοποιήσετε το cryptool ώστε να υπολογίσετε τα αποτελέσματα που προκύπτουν σε κάθε γύρο του AES ως εξής: Indiv. Procedures/Visualization of Algorithms/AES/Rijndael Inspector. Επίσης, μέσω του cryptool μπορούμε να κάνουμε μια κρυπτογράφηση ενός αρχικού μηνύματος με AES σε CBC λειτουργία επιλέγοντας Encrypt/Decrypt /Symmetric (Modern)/DES(CBC) 29 Σ ε λ ί δ α

31 Ερώτημα 4.1 Να κρυπτογραφήσετε το παρακάτω κείμενο: TESTINGS OF AES ALGORITHM THESE TESTINGS OF AES ARE DIFFICULT Παρατηρείστε το κρυπτογραφημένο κείμενο. Υπάρχουν επαναλήψεις ακολουθιών αριθμών; 4.2 ΕΡΩΤΗΜΑ 4.2 Έστω ότι έχω το παρακάτω τμήμα προς κρυπτογράφηση με τον AES: Αρχικό κείμενο: 12 3a e a f d2 c2 a Με Κλειδί 128 bit : ab cd ef 1a 2b 3c 4δ 5e 6f Υπολογίστε ποιο θα είναι το αποτέλεσμα στο τέλος του πρώτου γύρου. 2. Επιβεβαιώστε ότι το αποτέλεσμα που βγάλατε είναι σωστό με το cryptool. Δίνονται το S- box της διαδικασίας byte substitute, και σχηματικά οι διαδικασίες shift Rows και Mix Column Κατάσταση (State) Κλειδί AES Κλειδί Γύρου 1 AES Το S-box της διαδικασίας byte substitute του AES. 30 Σ ε λ ί δ α

32 Η διαδικασία shift Rows του AES Όπου c: 0,1,2,3 Η διαδικασία Mix Column του AES Το σύμβολο αναφέρεται στην λογική πράξη XOR Το σύμβολο αναφέρεται στον πολλαπλασιασμό σε πεπερασμένα σώματα (στα πλαίσια της άσκηση θεωρήστε ότι είναι μια λογική πράξη AND) 31 Σ ε λ ί δ α

33 5 ΕΡΓΑΣΤΗΡΙΟ 5Ο: ΣΥΝΑΡΤΗΣΕΙΣ ΚΑΤΑΚΕΡΜΑΤΙΣΜΟΥ ΚΑΙ HMAC. Από Βικιπαίδεια: Η κρυπτογραφική συνάρτηση κατατεμαχισμού (cryptographic hash function) είναι μια συνάρτηση κατατεμαχισμού (hash function) η οποία είναι σχεδιασμένη για να χρησιμοποιείται στην κρυπτογραφία. Γενικά η συνάρτηση κατατεμαχισμού είναι μια μαθηματική συνάρτηση που έχοντας ως είσοδο μια αυθαίρετου μεγέθους ομάδα δεδομένων δίνει έξοδο μια καθορισμένου μεγέθους στοιχειοσειρά (string) (η συμβολοσειρά είναι συνήθως μικρότερη σε μέγεθος από την αρχική είσοδο). Η έξοδος δεν μπορεί με αντιστροφή (με κανένα τρόπο) να μας παράγει την αρχική είσοδο. Η έξοδος αποκαλείται συνήθως "σύνοψη" (digest). Μια ιδεατή κρυπτογραφική συνάρτηση κατατεμαχισμού έχει τις παρακάτω ιδιότητες: Είναι εύκολο να υπολογιστεί η σύνοψη για οποιαδήποτε είσοδο. Δεν είναι εφικτό να βρεις την είσοδο από την σύνοψη. Δεν είναι εφικτό να τροποποιήσεις την είσοδο χωρίς να τροποποιηθεί η σύνοψη. Δεν είναι εφικτό να βρεθούν δύο διαφορετικές είσοδοι που δίνουν την ίδια σύνοψη. Οι συναρτήσεις κατατεμαχισμού βρίσκουν εφαρμογή στις εφαρμογές ασφάλειας πληροφοριών, ενδεικτικά στις ψηφιακές υπογραφές, Message authentication codes (MACs) και άλλες μορφές πιστοποίησης αυθεντικότητας των δεδομένων. Παράδειγμα σύνοψης με την κρυπτογραφική συνάρτηση κατατεμαχισμού SHA-1: Αλλαγές σε μια λέξη ή γράμμα ή ακόμη και bit δημιουργούν εντελώς διαφορετικές (μεταξύ τους) συνόψεις. Εδώ φαίνονται μόνο τα 4 πρώτα bytes (4*8=32bits) σε δεκαεξαδική μορφή της συνάρτησης SHA-1 (η έξοδος της SHA-1 είναι 160bits ή 20bytes). 32 Σ ε λ ί δ α

34 5.1 ΚΑΤΑΣΚΕΥΗ ΣΥΝΑΡΤΗΣΕΩΝ ΚΑΤΑΚΕΡΜΑΤΙΣΜΟΥ ΜΙΑΣ ΚΑΤΕΥΘΥΝΣΗΣ Συνήθως κατασκευάζονται από συναρτήσεις των οποίων το πλήθος εξόδων είναι μικρότερο από το πλήθος εισόδων (συμπίεση) Η δομή αυτή είναι ανάλογη με ένα αλυσιδωτό block cipher (Chained Block Cipher - CBC) Παράγει μία τιμή κατακερματισμού για κάθε μπλοκ σταθερού μήκους, με βάση το περιεχόμενό του αλλά και την τιμή κατακερματιμού του προηγούμενου μπλοκ M 1 M 2 M n IV f h 1 f h 2 h n-1 f h 5.2 H ΣΥΝΑΡΤΗΣΗ ΚΑΤΑΚΕΡΜΑΤΙΣΜΟΥ SHA 1 Χώρισε το μήνυμα σε 512-bit blocks 160-bit buffer (5 registers) Με αρχικές τιμές Συνάρτηση συμπίεσης Εφαρμόζεται σε κάθε 512-bit block και την τρέχουσα 160-bit buffer Είναι η καρδιά του SHA ΚΡΥΠΤΑΝΑΛΥΣΗ ΤΩΝ ΣΥΝΑΡΤΗΣΕΩΝ ΚΑΤΑΚΕΡΜΑΤΙΣΜΟΥ. Για να είναι μια συνάρτηση Κατακερματισμού Ασφαλής πρέπει να πληρούνται 3 ιδιότητες: Η συνάρτηση δεν είναι αντιστρεπτή (είναι δηλαδή μίας κατεύθυνσης) για οποιοδήποτε y, δεν μπορεί να βρεθεί x ώστε h(x)=y. (αντίσταση προαπεικόνισης, preimage resistance) 33 Σ ε λ ί δ α

35 Δεν μπορεί να υπολογιστεί εναλλακτική είσοδος για να παραχθεί η ίδια έξοδος που δίνει μία άλλη δεδομένη είσοδος με άλλα λόγια, για οποιοδήποτε δοθέν Μ, είναι υπολογιστικά δύσκολη η εύρεση M ' με την ιδιότητα h(m) = h(m ' ) (αντίσταση 2 ης προαπεικόνισης, 2 nd - preimage resistance) Δεν μπορούν να υπολογιστούν δύο διαφορετικές είσοδοι M, M που να δίνουν την ίδια έξοδο, δηλαδή h(m)=h(m ) (αντίσταση συγκρούσεων, collision resistance) Το Παράδοξο των «Γενεθλιών» Μαθηματικό «παράδοξο των γενεθλίων». Σύμφωνα με αυτό αν μια συνάρτηση παράγει μία τιμή μεταξύ n διαφορετικών τιμών με την ίδια πιθανότητα και το n είναι αρκετά μεγάλο,τότε υπολογίζοντας την συνάρτηση για ένα πλήθος περίπου 1,2 n διαφορετικών εισόδων περιμένουμε να βρούμε ένα ζεύγος εισόδων x1 και x2 τέτοια ώστε f(x1)=f(x2). Παράδειγμα για «παράδοξο των γενεθλίων». Αν έχω σε ένα δωμάτιο 23 ανθρώπους τότε υπάρχει μεγάλη πιθανότητα δύο από αυτούς να έχουν γενέθλια την ίδια μέρα. Συγκεκριμένα αποδεικνύεται ότι η πιθανότητα αυτή (δεχόμενοι ότι έχουμε 365 διαφορετικές επιλογές ) είναι 0,507. Αν είχα 22 ανθρώπους στο δωμάτιο η αντίστοιχη πιθανότητα θα ήταν 0,059. Η πιθανότητα αυτή αυξάνει ραγδαία με το n, π.χ., για n=30 η πιθανότητα είναι 0,706. Γενικά P(m,n)=1-(m(m-1) (m-n+1)/m n ). Εφαρμογή του παράδοξου στην κρυπτογραφία Το παραπάνω εφαρμόζεται στην γενική του μορφή στις συναρτήσεις κατακερματισμού όπου ο αριθμός n των κατακερματισμών που μπορείς να κάνεις πριν πέσεις σε σύγκρουση είναι 2 (n/2) και όχι 2 n 34 Σ ε λ ί δ α

36 5.4 ΑΚΕΡΑΙΟΤΗΤΑ ΚΑΙ ΑΥΘΕΝΤΙΚΟΤΗΤΑ ΜΕ ΣΥΝΑΡΤΗΣΕΙΣ ΚΑΤΑΚΕΡΜΑΤΙΣΜΟΥ (ΗΜΑC) k ipad m[0] m[1] m[2] ll PB IV (fixed) > h > h > h > h k opad IV (fixed) > h > h tag Σαν h μπορώ να χρησιμοποιήσω μια οποιαδήποτε συνάρτηση κατακερματισμού 5.5 ΑΣΚΗΣΗ (ΕΡΩΤΗΜΑΤΑ 5.1): ΠΑΡΑΓΩΓΗ HASH ΚΑΙ ΕΥΑΙΣΘΗΣΙΑ ΤΩΝ ΣΥΝΑΡΤΗΣΕΩΝ ΚΑΤΑΚΕΡΜΑΤΙΣΜΟΥ ΣΕ ΑΛΛΑΓΕΣ ΤΟΥ ΑΡΧΙΚΟΥ ΜΗΝΥΜΑΤΟΣ Η Keyed-Hash Message Authentication Code (HMAC) χρησιμοποιείται για την επίτευξη ακεραιότητας και αυθεντικότητας ενος μηνύματος. Βασίζεται στην χρήση μιας συνάρτησης κατακερματισμού και ενός κοινού κλειδιού μεταξυ ων εμπλεκομένων οντοτήτων 1. Ανοίγουμε το αρχείο CrypTool-en.txt στο C:\Program Files (x86)\cryptool\examples. 2. Επιλέγουμε από το Menu Indiv. Procedures \ Hash \ Generation of HMACs. 35 Σ ε λ ί δ α

37 3. Επιλέξτε SHA-1 ως hash function και double hashing (RFC 2104) ως HMAC variant. 4. Βάλτε για κλειδί το chattanooga. Ποιος είναι ο HMAC κώδικας που θα παραχθεί από το μήνυμα και το κλειδί ; 36 Σ ε λ ί δ α

38 5. Επιλέξτε από το menu Indiv. Procedures \ Hash \ Hash Demonstration. 37 Σ ε λ ί δ α

39 6. Επιλέξτε μια συνάρτηση Κατακερματισμού από το Selection of hash function. 7. Προσθέστε ένα κενό μετά την λέξη CrypTool στο αρχικό κείμενο. Θα δείτε μια διαφοροποίηση στο αποτέλεσμα της συνάρτησης κατακερματισμού σε σχέση με το προηγούμενο αρχικό μήνυμα. Ποιο είναι το ποσοστό αυτής της διαφοροποίησης; 8. Μια καλή συνάρτηση κατακερματισμού πρέπει να είναι πολύ ευαίσθητη σε αλλαγές του αρχικού μηνύματος. Ακολουθεί το φαινόμενο της χιονοστιβάδας (μικρή αλλαγή στην είσοδο-μεγάλη αλλαγή στην έξοδο). 38 Σ ε λ ί δ α

40 Ερώτημα 5.2 Έστω ότι έχουμε ένα δίκτυο όπου δύο κόμβοι θέλουν να ανταλλάξουν δεδομένα με εμπιστευτικότητα και ακεραιότητα. Να περιγράψετε και να σχεδιάσετε σε χαρτί ένα μηχανισμό ασφαλείας ο οποίος θα περιλαμβάνει κρυπτογράφηση και συνάρτηση κατακερματισμού ή MAC ώστε να εξασφαλίζονται και οι δύο παραπάνω προδιαγραφές (εμπιστευτικότητα και ακεραιότητα). Να παρουσιάσετε ένα παράδειγμα χρήσης του μηχανισμού αυτού με την χρήση του cryptool. Ερώτημα 5.3 Πόσοι άνθρωποι χρειάζεται να είναι συγκεντρωμένοι ώστε 2 από αυτούς να έχουν γεννηθεί με μεγάλη πιθανότητα την ίδια ημέρα ενός μήνα ; 39 Σ ε λ ί δ α

41 6 ΕΡΓΑΣΤΗΡΙΟ 6. ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ ΓΙΑ ΚΡΥΠΤΟΓΡΑΦΙΑ Η κρυπτογραφία βασίζεται σε ένα σύνθετο μαθηματικό υπόβαθρο που αφορά την θεωρία αριθμών. Η θεωρία αριθμών ανήκει στο κλάδο των καθαρών μαθηματικών και πραγματεύεται θεμελιώδεις μαθηματικές έννοιες σε σχέση κυρίως διακριτών αριθμών. Στα πλαίσια αυτού του εργαστηρίου θα μελετηθούν κάποιες βασικές μαθηματικές πράξεις που βρίσκουν εφαρμογή στην κρυπτογραφία (κυρίως την κρυπτογραφία δημοσίου κλειδιού). 6.1 ΔΡΑΣΤΗΡΙΟΤΗΤΕΣ ΆΣΚΗΣΗΣ Να εκτελεστεί το πρόγραμμα Matlab. Όλες οι συναρτήσεις που χρησιμοποιούνται σε αυτή την άσκηση είναι συναρτήσεις του Matlab. Η πράξη modulo ενός αριθμού Α ως προς έναν αριθμό Β είναι το υπόλοιπο της διαίρεσης του Α με το Β. (Εντόλή MATLAB mod(a,b)) Δοθέντος ενός αριθμού m > 1 και a Z, να βρεθεί ένας αριθμός b Z με 0 b < m τέτοιος ώστε a b (mod m). Ερώτημα 6.1 Να βρείτε τo b για τις τιμές του παρακάτω πίνακα: a m b Δοθέντος ενός αριθμού m > 1 και a, b Z, να βρεθεί ένας αριθμός c Z με 0 b < m τέτοιος a + b c (mod m). Ερώτημα 6.2 Να βρείτε τo c για τις τιμές του παρακάτω πίνακα: a b m c Η πράξη modulo ύψωση σε δύναμη e ενός αριθμού Α ως προς έναν αριθμό Β είναι το υπόλοιπο της διαίρεσης του A e με το Β. (MATLAB: συνδυασμός της ύψωσης σε δύναμη και modulo: mod(a^e,b)). 40 Σ ε λ ί δ α

42 Ο μέγιστός κοινός διαιρέτης δύο αριθμών a,b στο matlab ορίζεται σαν [d,u,v] = gcd(a,b). Ο μέγιστος κοινός διαιρέτης είναι το d στο αποτέλεσμα. Επίσης, εφόσον το d είναι ίσο με 1, τότε το u είναι ο πολλαπλασιαστικός αντίστροφος του a. Ερώτημα 6.3 Να βρεθεί ο πολλαπλασιαστικός αντίστροφος a του αριθμού a στην ομάδα Zm* για τους παρακάτω αριθμούς. a m a Υποθέστε ότι γνωρίζουμε ότι το a και το m είναι σχετικώς πρώτοι αριθμοί. (Οι σχετικώς πρώτοι αριθμοί έχουν σαν μέγιστο κοινό διαιρέτη το 1) (αν δεν είναι σχετικώς πρώτοι τότε δεν ορίζεται ο πολλαπλασιαστικός αντίστροφος) Ερώτημα 6.4 Σε περίπτωση που δεν γνωρίζουμε αν τα a και m είναι μεταξύ τους πρώτοι αριθμοί πως μπορούμε να το βρούμε; Ερώτημα 6.5 Να εκλεχθεί αν υπάρχει πολλαπλασιαστικός αντίστροφος για τα a του παρακάτω πίνακα. a m a Ερώτημα 6.6 Να βρεθεί το αποτέλεσμα της ύψωσης σε δύναμη των παρακάτω αριθμών στην ομάδα Z233 a e C 41 Σ ε λ ί δ α

43 Ερώτημα 6.7 Να υπολογίσετε ποια είναι η τιμή x της παρακάτω εξίσωσης (θεωρείστε ότι όλοι οι αριθμοί ανήκουν στο Z65537). 7654x 2389 (mod 65537) Πρώτοι αριθμοί-θεώρημα του Fermat Για να είναι ένας αριθμός πρώτος, πρέπει να διαιρείται μόνο με τον εαυτό του και το ένα. Οι πρώτοι αριθμοί έχουν κάποιες ενδιαφέρουσες ιδιότητες εκ των οποίων μία είναι το θεώρημα του Fermat. Ερώτημα 6.8 Να σχεδιάσετε ένα αλγόριθμο που να βρίσκει αν ένας αριθμός είναι πρώτος χρησιμοποιώντας το θεώρημα του Fermat. (Βοήθεια: όλοι οι πρώτοι αριθμοί είναι και μονοί αριθμοί.) Ερώτημα 6.9 Να υλοποιήσετε το πρόγραμμα αυτό σε Matlab και να βρείτε αν οι παρακάτω αριθμοί είναι πρώτοι: p Πρώτος αριθμός; Σ ε λ ί δ α

44 6.1.2 Κινέζικο Θεώρημα Υπολοίπων Ένα πολύ χρήσιμο θεώρημα στη θεωρία αριθμών είναι το παρακάτω: Διαισθητικά το Κινέζικο Θεώρημα Υπολοίπων μας λέει ότι αν έχω ένα αριθμό x ο οποίος είναι «σπασμένος» σε ένα σύνολο από r μέρη, τότε μπορώ να βρω τον x αυτό αριθμό χρησιμοποιώντας την σχέση του θεωρήματος αρκεί το κάθε μέρος του αριθμού ανήκει σε μια κυκλική ομάδα 𝛧𝑚𝑖. Προϋπόθεση αποτελεί οι αριθμοί mi να είναι σχετικώς πρώτοι μεταξύ τους. Ερώτημα 6.10 Έστω ότι έχουμε ένα μυστικό Α χωρισμένο σε 5 κομμάτια (a1,a2,a3,a4,a5)=(4,4,9,22,8) που σχετίζονται με τους σχετικώς πρώτους αριθμούς (m1,m2,m3,m4,m5)=(5,7,18,23,41). Να βρείτε χρησιμοποιώντας το Κινέζικο Θεώρημα Υπολοίπων ποιο είναι το μυστικό αυτό. 43 Σ ε λ ί δ α

45 7 ΕΡΓΑΣΤΗΡΙΟ 7Ο: ΚΡΥΠΤΟΓΡΑΦΙΑ ΔΗΜΟΣΙΟΥ ΚΛΕΙΔΙΟΥ. Η Κρυπτογραφία Δημοσίου Κλειδιού αρχικά προτάθηκε από τους Diffie και Hellman για να λύσει δύο βασικά προβλήματα της Κρυπτογραφίας Συμμετρικού Κλειδιού, την διανομή και την διαχείριση κρυπτογραφικών κλειδιών. Το πρόβλημα της διανομής κλειδιών εντοπίζεται στην αδυναμία ασφαλούς μετάδοσης ενός κλειδιού μέσα σε ένα μη ασφαλές κανάλι επικοινωνίας. Πιο συγκεκριμένα, λόγω της ανάγκης για κοινό κλειδί μεταξύ των ασφαλώς επικοινωνούντων οντοτήτων, αυτές οι οντότητες οφείλουν να συμφωνήσουν σε ένα κλειδί και αναγκαστικά να το μεταφέρουν η μια στην άλλη. Η αδυναμία ασφαλείας σε ένα τέτοιο σενάριο εντοπίζεται στο κανάλι επικοινωνίας στο οποίο, αν δεν υπάρχει εξασφαλισμένη ασφάλεια, μπορεί να παρεμβληθεί μια τρίτη οντότητα που μπορεί, χωρίς δικαιοδοσία, να υποκλέψει το μεταδιδόμενο κλειδί. Το πρόβλημα διαχείρισης κλειδιών εμφανίζεται όταν υπάρχουν πολλές οντότητες που επιθυμούν να επικοινωνήσουν με ασφάλεια. Όταν μια οντότητα επικοινωνεί ξεχωριστά με πολλές άλλες οντότητες τότε αναγκαστικά χρειάζεται πολλά διαφορετικά κλειδιά, ένα για κάθε τέτοια επικοινωνία. Κάτι τέτοιο οδηγεί σε προβλήματα αποθήκευσης ενός μεγάλου αριθμού κλειδιών αλλά και ταξινόμησης ή διατήρησής τους. Χρησιμοποιώντας τις αρχές της Κρυπτογραφίας Δημοσίου Κλειδιού όλα τα παραπάνω προβλήματα λύνονται. Αντί η ασφάλειά μας να βασίζεται σε ένα ή περισσότερα κλειδιά τα οποία πρέπει να διαμοιραστούν μεταξύ διαφόρων οντοτήτων, στα πρωτοκολλά δημοσίου κλειδιού προτείνεται η χρήση ενός ζεύγους κλειδιών για κάθε μια οντότητα. Το πρώτο κλειδί, που ονομάζεται δημόσιο κλειδί, δεν είναι κρυφό και χαρακτηρίζει την οντότητα που το κατέχει, στον έξω κόσμο. Το δεύτερο κλειδί, που ονομάζεται ιδιωτικό κλειδί, είναι γνωστό στην οντότητα που το κατέχει και μονό σε αυτήν. Αν κάποιος θέλει να στείλει ένα κρυπτογραφημένο μήνυμα σε μια τέτοια οντότητα χρησιμοποιεί το δημόσιο κλειδί αυτής της οντότητας. Η αποκρυπτογράφηση πραγματοποιείται με την εφαρμογή του ιδιωτικού κλειδιού της οντότητας στο κρυπτογραφημένο μήνυμα. Συνεπώς, δεν μεταδίδεται κανένα κρυφό κλειδί δια μέσω του καναλιού επικοινωνίας. ενώ ο αριθμός των χρησιμοποιούμενων κλειδιών είναι αυστηρά περιορισμένος σε δύο. Η παρεχόμενη ασφάλεια στην Κρυπτογραφία Δημοσίου Κλειδιού σχετίζεται με τη υπολογιστική αδυναμία εύρεσης του ιδιωτικού κλειδιού μιας οντότητας από πληροφορίες για το δημόσιο κλειδί της οντότητας αυτής. Το πρόβλημα εύρεσης του ιδιωτικού κλειδιού με αυτό τον τρόπο είναι ισοδύναμο με την επίλυση ενός υπολογιστικού προβλήματος που θεωρείται δυσεπίλυτο. 44 Σ ε λ ί δ α

46 Δημόσιο Κλειδί Ιδιωτικό Κλειδί απλό κείμενο κρυπτογράφηση κρυπτοκείμενο αποκρυπτογράφηση απλό κείμενο Οι αλγόριθμοι κρυπτογράφησης δημοσίου κλειδιού βασίζονται σε ένα πολύπλοκο μαθηματικό υπόβαθρο και απαιτούν ένα σημαντικό αριθμό πράξεων (πρόσθεση, πολλαπλασιασμό, αντιστροφή) κυρίως χρησιμοποιώντας modulus. Λόγω του γεγονότος ότι αυτές οι πράξεις πραγματοποιούνται για πολύ μεγάλους αριθμούς (π.χ. τουλάχιστον 1024 bit για την περίπτωση του RSA) το προκύπτον Κρυπτοσύστημα Δημοσίου Κλειδιού θεωρείται αργό και με μεγάλη κατανάλωση σε πόρους υλικού (hardware resources). 7.1 ΤΟ ΚΡΥΠΤΟΓΡΑΦΙΚΟ ΣΥΣΤΗΜΑ RSA Ο RSA, που το όνομά του προέκυψε από τα αρχικά γράμματα των τριών δημιουργών του Rivest, Shamir και Adleman, προτάθηκε το 1978 όχι πολύ αργότερα από την ανακάλυψη της Κρυπτογραφίας Δημοσίου Κλειδιού. Βασίζεται σε δύο διαδικασίες, η πρώτη αναφέρεται στην παραγωγή ενός ασφαλούς ζεύγους κλειδιών και η δεύτερη στην κρυπτογράφηση-αποκρυπτογράφηση δεδομένων ή στην ψηφιακή υπογραφή τους Παραγωγή Ζεύγους Κλειδιών RSA Όπως όλοι οι αλγόριθμοι κρυπτογραφίας δημοσίου κλειδιού έτσι και ο RSA χρησιμοποιεί ένα δημόσιο κλειδί και ένα ιδιωτικό κλειδί. Συνήθως αναφερόμαστε σε αυτά σαν ζεύγος RSA κλειδιών. Το δημόσιο κλειδί αποτελείται από ένα ζεύγος ακεραίων (n, e) όπου το n, που ονομάζεται RSA modulus n, είναι ένα γινόμενο από δύο τυχαία παραγόμενους (και κρυφούς) πρώτους αριθμούς p και q που έχουν το ίδιο μέγεθος bit. Το e, που ονομάζουμε εκθέτη κρυπτογράφησης e είναι ένας ακέραιος που ικανοποιεί τις συνθήκες 1 < e < φ και gcd(e,φ)=1 όπου φ=(p 1)(q 1). Το ιδιωτικό κλειδί d, που ονομάζουμε αλλιώς εκθέτη αποκρυπτογράφησης d, είναι ένας ακέραιος που ικανοποιεί τις συνθήκες 1<d< φ και ed 1 (mod φ). Έχει αποδειχθεί ότι το πρόβλημα της ανεύρεσης του ιδιωτικού κλειδιού d από το δημόσιο κλειδί (n, e) είναι υπολογιστικά ισοδύναμο με το πρόβλημα ανεύρεσης των παραγόντων p και q του n. Tο ζεύγος κλειδιών RSA μπορεί να βρεθεί χρησιμοποιώντας τον παρακάτω αλγόριθμο 45 Σ ε λ ί δ α

47 Αλγόριθμος Παραγωγής Ζεύγους Κλειδιών RSA Input: παράμετρος ασφαλείας l Output: RSA δημόσιο κλειδί (n, e), RSA ιδιωτικό κλειδί d 1. Τυχαία επιλογή δύο πρώτων αριθμών p του q ίδιου μεγέθους bit l/2 2. Υπολογισμός n = p q και φ = (p 1)(q 1) 3. Επιλογή ενός ακεραίου e ώστε να ισχύουν 1 < e <φ και gcd(e,φ) = 1 4. Υπολογισμός του ακεραίου d ώστε να ισχύουν 1 < d <φ και ed 1 (mod φ) Κρυπτογράφηση-Αποκρυπτογράφηση RSA Η κρυπτογράφηση-αποκρυπτογράφηση δεδομένων αλλά και η ψηφιακή υπογραφή τους χρησιμοποιώντας τον RSA βασίζεται στην μαθηματική εξίσωση m ed m (mod n) για όλους τους ακεραίους m. Πιο συγκεκριμένα η διαδικασία της κρυπτογράφησης c ενός μηνύματος m χρησιμοποιώντας τον RSA προκύπτει από τον υπολογισμό του c = m e mod n όπου (n, e) είναι το δημόσιο RSA κλειδί. Η αποκρυπτογράφηση m ενός κρυπτογραφημένου μηνύματος c χρησιμοποιώντας τον RSA προκύπτει από τον υπολογισμό του m = c d mod n, όπου (n, e) είναι το δημόσιο RSA κλειδί και d το ιδιωτικό κλειδί. Η επιβεβαίωση της αποκρυπτογράφησης του μηνύματος m μπορεί να γίνει αν αναλογιστούμε το γεγονός ότι c d (m e ) d m (mod n). Η ασφάλεια αυτού του κρυπτογραφικού σχήματος βρίσκεται στην δυσκολία υπολογισμού του μηνύματος m από το κρυπτογραφημένο μήνυμα c = m e mod n και το δημόσιο κλειδί (n, e). Το δυσεπίλυτο του συγκεκριμένου προβλήματος εστιάζεται στην ανεύρεση των e-οστών ριζών modulo n του m. 7.2 ΠΑΡΑΔΕΙΓΜΑ ΧΡΗΣΗΣ ΤΟΥ RSA ΜΕ ΤΟ CRYPTOOL Αρχικά φορτώνουμε το αρχείο "CrypTool-en.txt"επιλέγοντας από το μενού File \ Open. Για να εκκινήσει η κρυπτογράφηση με τον αλγ. RSA επιλέγουμε από το μενού Encrypt/Decrypt \ Asymmetric\RSA Encryption. Επιλέγουμε τον χρήστη για τον οποίο κρυπτογραφούμε και μετά το πλήκτρο Encrypt. Η αποκρυπτογράφηση μπορεί να γίνει από το μενού Encrypt/Decrypt \ Asymmetric\ RSA Decryption. 46 Σ ε λ ί δ α

48 Επειδή η αποκρυπτογράφηση μπορεί να γίνει μόνο από την οντότητα που γνωρίζει το ιδιωτικό κλειδί, για την αποκρυπτογράφηση πρέπει να γνωρίζει κανείς το PIN. Πατώντας το PIN και το κουμπί decryption προκύπτει το αρχικό μήνυμα Παρουσίαση και ανάλυση χρήσης του RSA μέσω του εργαλείου Cryptool Το Cryptool μας δίνει ένα εργαλείο με το οποίο μπορούμε να δούμε πως ακριβώς δουλεύουν τα επιμέρους στάδια του RSA συμπεριλαμβανομένων της γέννησης κλειδιών (παραγωγή πρώτων αριθμών, παραγοντοποίηση αριθμών), την RSA κρυπτογράφηση/αποκρυπτογράφηση και επιθέσεις πάνω στον RSA. Για να γίνει αυτό επιλέγουμε Indiv. Procedures \ RSA Cryptosystem \ RSA Demonstration Γέννηση κλειδιών Για να παραχθούν τα κλειδιά του RSA (δημόσιο και ιδιωτικό) πρέπει να επιλεχθούν αρχικά δύο πρώτοι αριθμοί p και q. Μέσω του παραθύρου που μας δίνει το Cryptool μπορούμε να βάλουμε δύο δικούς μας πρώτους αριθμούς ή ζητήσουμε από το εργαλείο να μας γεννήσει δύο τυχαίους πρώτους αριθμούς. Έστω ότι θέλουμε να δουλέψουμε με RSA 1024 bits.τότε το ιδιωτικό (d), δημόσιο κλειδί (e,n) θα είναι μεγέθους 1024 bits. Επειδή n = p q, για να προκύψει 1024 bit αποτέλεσμα από την πράξη αυτή πρέπει οι δύο παράγοντες του γινπομένου p (οι πρώτοι αριθμοί p και q) να έχουν μέγεθος 512 bits. Για να γεννήσει το πρόγραμμα δύο τέτοιου μεγέθους πρώτους αριθμούς πρέπει να βάλω τα κατάλληλα όρια (upper limit και lower limit) Ερώτημα 7.1 Ποια πρέπει να είναι τα όρια αυτά για να προκύψουν 512 bit πρώτοι αριθμοί; Αφού επιλεχθούν τα κατάλληλα όρια τότε πατώντας το κουμπί Generate prime numbers και Apply primes θα έχουμε δύο πρωτους αριθμούς p και q ενώ θα έχει υπολογιστεί το n καθώς και το φ(n). Στη συνέχεια πρέπει να επιλεχθεί από τον χρήστη ο εκθέτης e που είναι μέρος του δημοσίου κλειδιού. Ο αριθμός αυτός πρέπει να είναι ανά ζεύγος πρώτος με το φ(n). Επειδή κάτι τέτοιο είναι δύσκολο να το υπολογίσει ο χρήστης διαισθητικά, συνήθως χρησιμοποιείται ένα δευτερεύον πρόγραμμα για να παραχθεί ένας τέτοιος αριθμός. Στην πράξη όμως επιλέγονται αριθμοί με πολύ μικρό αριθμό μονάδων στη δυαδική τους μορφή ώστε να διευκολύνονται οι υπολογισμό κατά την κρυπτογράφηση και αποκρυπτογράφηση με RSA. Τέτοιοι αριθμοί είναι το 3 (011) ή το (65537 ή σε δυαδικό σύστημα). Αν και σε γενικές γραμμές το e δεν επηρεάζει πολύ την ασφάλεια του RSA, ο αριθμός 3 έχει αποδειχθεί ότι μειώνει το επίπεδο ασφαλείας του αλγορίθμου. Συνήθως χρησιμοποιείται e= Στο παράδειγμά μας χρησιμοποιήστε αυτόν το αριθμό. 47 Σ ε λ ί δ α

49 Πατήστε το κουμπί Update parameters και από τα νούμερα που βάλατε θα προκύψει το ιδιωτικό κλειδί d στο κατάλληλο κελί όπως αυτό έχει υπολογιστεί από το e με την εξίσωση 𝑒 𝑑 1 (𝑚𝑜𝑑 𝜑) Κρυπτογράφηση και αποκρυπτογράφηση μηνύματος με RSA κλειδιά Αφού έχουν καταχωρηθεί τα RSA κλειδιά τότε μπορούμε να κρυπτογραφήσουμε και να αποκρυπτογραφήσουμε μηνύματα. Μπορούμε να καθορίσουμε την μορφή των αρχικών μηνυμάτων που θα χρησιμοποιούμε επιλέγοντας το Options for the alphabet and the number system... και ενεργοποιώντας το κουμπί Specify alphabet Αριθμητικό σύστημα που πρόκειται να χρησιμοποιηθεί. Κάθε γράμμα αντιστοιχεί σε ένα αριθμό ξεκινώντας από το κενό που είναι το 0, μετά Α το 1 κτλ. Μορφή κωδικοποίησης των δεδομένων ενός block Μπορεί να ακολουθείται το αριθμητικό σύστημα ή να γίνεται μετατροπή σε αριθμούς άλλης βάσης Το αρχικό μήνυμα θα χωριστεί σε block χαρακτήρων του αριθμητικού συστήματος που έχουμε επιλέξει. Εδώ βάζουμε το μέγεθος του κάθε block σε αριθμό χαρακτήρων. Το αρχικό μήνυμα στη συνέχεια θα χωριστεί σε αντίστοιχο αριθμό blocks. Το μέγεθος του κάθε block δεν μπορεί να ξεπερνά σε bits το μέγεθος των κλειδιών Ερώτημα 7.2 Επιλέγουμε να κρυπτογραφήσουμε το μήνυμα READ AND BURN THE BLACK ENVELOPE με κρυφούς πρώτους αριθμούς p=47, q=79 και e=37. Επιλέξτε μέγεθος block 2. Ποιο είναι το αρχικό μήνυμα κωδικοποιημένο με το αριθμητικό σύστημα και χωρισμένο σε blocks (κάθε block χωρίζεται από το επόμενο/προηγούμενο με #) Ποιο είναι το κρυπτογραφημένο μήνυμα χωρισμένο σε block; Ποιες παραμέτρους χρησιμοποιήσατε για να το βρείτε; 48 Σ ε λ ί δ α

50 7.2.3 Επιθέσεις στον αλγόριθμο RSA. Μπορούμε να χρησιμοποιήσουμε το Cryptool ώστε να παραγοντοποιήσουμε το δημόσιο modulo n και να βρούμε τους κρυφούς πρώτους p και q. To Cryptool μας δίνει μέσα από την επιλογή Indiv. Procedures \ RSA Cryptosystem \ Factorization of a Number μια σειρά από αλγορίθμους παραγοντοποίησης πρώτων αριθμών. Αρκεί να βάλουμε το γινόμενο πρώτων αριθμών στο κατάλληλο κελί και να πατήσουμε το κουμπί Continue. Ερώτημα 7.3 Δοκιμάστε να παραγοντοποιήσετε τους παρακάτω αριθμούς: Αριθμός n Πρώτοι παράγοντες p x q Χρόνος που χρειάστηκε Έχοντας κάποιος βρει τους παράγοντες του n μπορεί κάποιος μέσω του Indiv. Procedures \ RSA Cryptosystem \ RSA Demonstration να βάλει αυτούς τους παράγοντες να κάνει Update parameters και να βρει το ιδιωτικό κλειδί ώστε να αποκρυπτογραφήσει με το κουμπί decrypt ένα κρυπτογραφημένο μήνυμα Ερώτημα 7.4 Έστω ότι έχουμε το παρακάτω κρυπτογραφημένο κείμενο: # # # # # # # # # # # # # # # με n= και e=4913 Χρησιμοποιούμε την παρακάτω κωδικοποίηση Text options for the input text: Specify alphabet: ABCDEFGHIJKLMNOPQRSTUVWXYZ RSA variant: Normal Method = b-adic Block length in characters: 3 Representation of numbers for RSA encryption/decryption: Decimal Παραγοντοποιώντας το n βρείτε ποιο είναι το αρχικό κείμενο. 49 Σ ε λ ί δ α

51 8 ΕΡΓΑΣΤΗΡΙΟ 8Ο: ΨΗΦΙΑΚΕΣ ΥΠΟΓΡΑΦΕΣ ΚΑΙ ΨΗΦΙΑΚΑ ΠΙΣΤΟΠΟΙΗΤΙΚΑ. 8.1 ΑΡΧΕΣ ΨΗΦΙΑΚΩΝ ΥΠΟΓΡΑΦΩΝ Ένα σημαντικό πλεονέκτημα της κρυπτογραφίας δημοσίου κλειδιού είναι η ικανότητά της να παρέχει μια μεθοδολογία για ψηφιακές υπογραφές. Μια ψηφιακή υπογραφή επιτρέπει στον παραλήπτη ενός μηνύματος να επιβεβαιώσει την αυθεντικότητα του αποστολέα του μηνύματος αλλά και να επιβεβαιώσει ότι το μήνυμα δεν έχει τροποποιηθεί μετά την αποστολή του (έχει μείνει ανέπαφο). Με λίγα λόγια οι ψηφιακές υπογραφές δημοσίου κλειδιού παρέχουν υπηρεσίες αυθεντικοποίησης και ακεραιότητας δεδομένων. Επιπλέον όμως, οι ψηφιακές υπογραφές παρέχουν και υπηρεσίες μη αποκήρυξης δεδομένων, υπό την έννοια ότι εμποδίζουν τον αποστολέα ενός μηνύματος να υποστηρίξει μετά την αποστολή ενός μηνύματος ότι δεν το έχει στείλει αυτός. Οι παραπάνω υπηρεσίες αποτελούν βασικές προϋποθέσεις για την επίτευξη επαρκούς ασφάλειας. Μια ψηφιακή υπογραφή εξυπηρετεί τον ίδιο σκοπό με μια χειρόγραφη υπογραφή. Εν αντιθέσει όμως με την χειρόγραφη υπογραφή δεν μπορεί να πλαστογραφηθεί. Επιπλέον, η ψηφιακή υπογραφή πιστοποιεί εκτός από την ταυτότητα του αποστολέα και τα περιεχόμενα του μηνύματος. Ο απλοϊκός τρόπος με τον οποίο παράγεται και πιστοποιείται μια ψηφιακή υπογραφή φαίνεται στο παρακάτω σχήμα. Αντί να κρυπτογραφούμε το απλό κείμενο με το δημόσιο κλειδί του παραλήπτη ενός μηνύματος, το κρυπτογραφούμε με το δικό μας ιδιωτικό κλειδί. Αν το μήνυμα μπορεί να αποκρυπτογραφηθεί με το δημόσιο κλειδί μας από τον παραλήπτη τότε το μήνυμα έχει προέρθει όντως από εμάς. Ιδιωτικό Κλειδί Δημόσιο Κλειδί αρχικό κείμενο υπογραφή Υπογεγραμμένο κείμενο πιστοποίηση πιστοποιημένο κείμενο 50 Σ ε λ ί δ α

52 8.1.1 Ψηφιακές Υπογραφές με Συναρτήσεις Κατακερματισμού (Hash Functions) Το σύστημα που περιγράφηκε παραπάνω παρουσιάζει κάποια προβλήματα. Είναι αργό και παράγει ένα πολύ μεγάλο όγκο δεδομένων- τουλάχιστον διπλάσιο της αρχικής πληροφορίας. Μια βελτίωση στο παραπάνω σύστημα είναι η χρήση μιας κατεύθυνσης συναρτήσεων κατακερματισμού. Η μιας κατεύθυνσης συνάρτηση κατακερματισμού παίρνει ως είσοδο ένα σύνολο δεδομένων μεταβλητού μεγέθους, ακόμα και χιλιάδων ή εκατομμυρίων bit, και παράγει ένα αποτέλεσμα δεδομένων στην έξοδο της που να έχει πάντα σταθερό μέγεθος bit, για παράδειγμα 160-bit. Η συνάρτηση κατακερματισμού έχει το πλεονέκτημα ότι έστω και ένα bit των δεδομένων της εισόδου της να είναι διαφορετικό από αυτό που πρέπει τότε το αποτέλεσμα της εξόδου είναι εντελώς διαφορετικό από το σωστό. Οι συναρτήσεις κατακερματισμού λέγονται μιας κατεύθυνσης γιατί ενώ η μετατροπή των μεταβλητού μήκους δεδομένων της εισόδου τους σε σταθερού μήκους δεδομένα εξόδου γίνεται πολύ εύκολα, η αντίστροφη διαδικασία (η εύρεση της εισόδου γνωρίζοντας την έξοδο της συνάρτησης) είναι πάρα πολύ δύσκολη υπολογιστικά. Οι σύγχρονοι μηχανισμοί ασφαλείας που χειρίζονται ψηφιακές υπογραφές χρησιμοποιούν κρυπτογραφικά ισχυρές συναρτήσεις κατακερματισμού πάνω στο απλό κείμενο που ένας χρήστης υπογράφει. Αυτό που δημιουργείται είναι ένας σταθερού μήκους δεδομένο το οποίο ονομάζεται message digest (σύνοψη μηνύματος). Στη συνέχεια, το message digest και το ιδιωτικό κλειδί χρησιμοποιούνται για να δημιουργήσει μια υπογραφή. Το μήνυμα μεταδίδεται μαζί με την ψηφιακή υπογραφή του. Κατά την παραλαβή του μηνύματος, ο παραλήπτης να ξαναυπολογίζει το message digest και ελέγχει αν το message digest που παρέλαβε και αυτό που υπολόγισε είναι ίδια. Αν κάτι τέτοιο ισχύει τότε η ψηφιακή υπογραφή είναι έγκυρη. Εφόσον χρησιμοποιείται ασφαλής συνάρτηση κατακερματισμού δεν υπάρχει τρόπος κάποιος να χρησιμοποιήσει κακόβουλα την ψηφιακή υπογραφή είτε με τον να μεταφέρει την υπογραφή από ένα μήνυμα σε κάποιο άλλο είτε με το να αλλάξει το υπογεγραμμένο μήνυμα με κάποιο τρόπο. Η παραμικρή αλλαγή ενός υπογεγραμμένου μηνύματος θα εντοπιστεί από την διαδικασία πιστοποίησης ψηφιακής υπογραφής. 51 Σ ε λ ί δ α

53 Συνάρτηση Κατακερματισμού απλό κείμενο Υπογραφή Message digest με ιδιωτικό κλειδί Message digest Υπογεγραμμένο κείμενο ιδιωτικό κλειδί 8.2 ΣΥΣΤΗΜΑ RSA ΓΙΑ ΨΗΦΙΑΚΗ ΥΠΟΓΡΑΦΗ. Όταν μια οντότητα θέλει να υπογραφεί ψηφιακά ένα μήνυμα m μπορεί να χρησιμοποιήσει τη μεθοδολογία κρυπτογράφησης του RSA. Ο υπογράφον ενός μηνύματος m πρώτα υπολογίζει χρησιμοποιώντας μια κρυπτογραφική συνάρτηση κατακερματισμού H(x) την τιμή h = H(m), όπου το h χρησιμεύει σαν ένα μικρό αποτύπωμα του m. Ύστερα, ο υπογράφον χρησιμοποιεί το ιδιωτικό του κλειδί d για να υπολογίσει το e-οστή ρίζα s του h modulo n δηλαδή s = h d mod n. Αξίζει να σημειωθεί ότι s e h (mod n) αφού m ed m (mod n). Στην συνέχεια ο υπογράφον μεταδίδει το μήνυμα m και την ψηφιακή υπογραφή του s για επιβεβαίωση της ταυτότητας του. Όποιος λάβει αυτό το μήνυμα και τη υπογραφή, επαναϋπολογίζει την τιμή h = H(m), ανακτά την τιμή h` = s e mod n από το s, και αποδέχεται την ψηφιακή υπογραφή σαν αληθή αν h = h`. Ένας πλαστογράφος μιας ψηφιακής υπογραφής, δεδομένου ότι δεν γνωρίζει το ιδιωτικό κλειδί d, δεν μπορεί να υπολογίσει εύκολα τις e-οστές ρίζες modulo n του m. Τα παραπάνω παρουσιάζονται πιο αναλυτικά στους αλγορίθμους 1.2 και 1.3 υποθέτωντας ότι ο χρήστης έχει αποκτήσει ένα RSA δημόσιο κλειδί (e,n) και ένα RSA ιδιωτικό κλειδί d. 52 Σ ε λ ί δ α

54 Αλγόριθμος 1.2. Παραγωγή Ψηφιακής Υπογραφής RSA Input: RSA δημόσιο κλειδί (n, e), RSA ιδιωτικό κλειδί d, μήνυμα m Output: ψηφιακή υπογραφή s 1. Υπολογισμός h = H(m) όπου Η(x) είναι μια συνάρτηση κατακερματισμού (Hash function) 2. Υπολογισμός s = h d mod n Αλγόριθμος 1.3. Επιβεβαίωση Ψηφιακής Υπογραφής RSA Input: RSA δημόσιο κλειδί (n, e),ψηφιακή υπογραφή s, μήνυμα m Output: αποδοχή ή όχι της ψηφιακής υπογραφής 1. Υπολογισμός h = H(m) όπου Η(x) είναι μια συνάρτηση κατακερματισμού (Hash function) 2. Υπολογισμός h` = s e mod n. 3. Αν ισχύει η σχέση h = h` τότε η ταυτότητα του αποστολέα πιστοποιείται 8.3 ΨΗΦΙΑΚΑ ΠΙΣΤΟΠΟΙΗΤΙΚΑ Κάθε Ζευγάρι Κλειδιών στην κρυπτογραφία δημοσίου κλειδιού μπορεί να δημιουργηθεί από τον χρήστη του συστήματος. Στην πράξη όμως υπάρχει μια Τρίτη Έμπιστη Οντότητα που είναι υπεύθυνη να παρέχει τέτοια κλειδιά σε χρήστες μαζί με κάποιο ψηφιακό πιστοποιητικό. Ο χρήστης παρέχει μια αρχική πληροφορία στην Τρίτη Έμπιστη Οντότητα όπως για παράδειγμα ένα αναγνωριστικό ή κάποιο συνθηματικό ΡΙΝ (password) και τότε η Τρίτη Έμπιστη Οντότητα αναλαμβάνει να γεννήσει ένα ζεύγος κλειδιών καθώς και ένα πιστοποιητικό που να σχετίζει τα κλειδιά αυτά με τον ιδιοκτήτη τους. Ένα ψηφιακό πιστοποιητικό μπορεί να περιλαμβάνει μια πληθώρα πληροφοριών όπως το ονοματεπώνυμο του χρήστη, το δημόσιο κλειδί του, την ημερομηνία έκδοσης του, τον αλγόριθμο κρυπτογραφίας που χρησιμοποιήθηκε κτλ. Η αυθεντικότητα και ακεραιότητα του ψηφιακού πιστοποιητικού κατοχυρώνεται με την χρήση ψηφιακής υπογραφής στα περιεχόμενα του. 8.4 ΔΗΜΙΟΥΡΓΙΑ ΠΙΣΤΟΠΟΙΗΜΕΝΟΥ ΜΕ ΤΟ CRYPTOOL Μπορούμε να δημιουργήσουμε ένα παράξουμε ζευγάρι κλειδιών ασύμμετρης κρυπτογραφίας με ψηφιακό πιστοποιητικό από το μενού Digital Signatures/PKI\Generate/Import Keys. Μπορούμε να επιλέξουμε το αλγόριθμο κρυπτογραφίας δημοσίου κλειδιού που μας ενδιαφέρει και να δώσουμε τα στοιχεία του κατόχου του ζεύγους κλειδιών. Πατώντας το κουμπί Show Key Pair μπορούμε να δούμε τα καταχωρημένα πιστοποιημένα ζεύγη κλειδιών καθώς και το πιστοποιητικό τους. 53 Σ ε λ ί δ α

55 Ερώτημα 8.1 Να δημιουργήσετε ένα ζεύγος κλειδιών RSA για 1024 bits και να καταγράψετε στο χαρτί σας το δημόσιο κλειδί. Από το πιστοποιητικό αυτού του ζεύγους κλειδιών να καταγράψετε την ψηφιακή υπογραφή τους Ψηφιακή Υπογραφή κειμένου με την χρήση του εργαλείου Cryptool Εφόσον έχουμε δημιουργήσει ένα πιστοποιημένο ζευγάρι κλειδιών μπορούμε να το χρησιμοποιήσουμε ώστε να υπογράψουμε ψηφιακά ένα κείμενο. Ερώτημα 8.2 Αρχικά φορτώστε το αρχείο "CrypTool-en.txt"επιλέγοντας από το μενού File \ Open. Στην συνέχεια από το μενού επιλέγουμε Digital Signatures/PKI\Sign Document. Προκύπτει ένα νέο παράθυρο μέσα από το οποίο επιλέγουμε τον αλγόριθμο Hash Function που χρησιμοποιούμε, τον αλγόριθμο κρυπτογραφίας δημοσίου κλειδιού που χρησιμοποιούμε και το πιστοποιημένο ζεύγος κλειδιών. Για ψηφιακή υπογραφή βάζουμε στο αντίστοιχο κελί το ΡΙΝ που έχουμε καθορίσει για το πιστοποιημένο ζεύγος κλειδιών και πατάμε το κουμπί Sign Να υπογράψετε ψηφιακά το CrypTool-en.txt χρησιμοποιώντας το RSA ζεύγος κλειδιών που παράχθηκε στο προηγούμενο ερώτημα και συνάρτηση κατακερματισμού SHA1 Στο νέο κείμενο που προκύπτει εντοπίστε την ψηφιακή υπογραφή του Μπορούμε να επιβεβαιώσουμε την ορθότητα ενός ψηφιακά υπογεγραμμένου μηνύματος αν επιλέξουμε το κατάλληλο μήνυμα και επιλέξουμε από το μενού Digital Signatures/PKI\Verify Document Στο παράθυρο που προκύπτει επιλέγουμε το πιστοποιημένο ζεύγος κλειδιών και πατάμε το κουμπί Verify Signature Ερώτημα 8.3 Στο παράθυρο επιβεβαίωσης ψηφιακής Υπογραφής δεν μας ζητάει να βάλουμε ΡΙΝ αριθμό. Γιατί; Ποιο αναλυτικά μπορούμε να δούμε την διαδικασία που ακολουθείται προκειμένου να υπογραφεί ψηφιακά ένα μήνυμα αν επιλέξουμε από το μενού Digital Signatures/PKI\Signature Demonstration Ερώτημα 8.4 Χρησιμοποιώντας τα εργαλεία που μας δίνει το cryptool για κρυπτογράφηση δημοσίου κλειδιού RSA και συνάρτησης κατακερματισμού SHA1 να φτιάξετε την ψηφιακή υπογραφή του μηνύματος στο 54 Σ ε λ ί δ α

56 αρχείο CrypTool-en.txt (χωρίς να χρησιμοποιήσετε το εργαλείο Digital Signatures/PKI\Sign Document του ερωτήματος 2). Χρησιμοποιήστε το ίδιο δημόσιο-ιδιωτικό κλειδί με αυτό στο ερώτημα 1 Να καταγράψετε στο χαρτί σας την ψηφιακή υπογραφή που βρήκατε. Εφαρμόσετε την διαδικασία της επιβεβαίωσης ψηφιακής υπογραφής. Επιβεβαιώνεται σωστά η ψηφιακή υπογραφή; Η ψηφιακή υπογραφή που υπολογίστηκε είναι ίδια με αυτή που βρίσκεται χρησιμοποιώντας το αυτόματο εργαλείο (του ερωτήματος 8.2). Να εξηγήσετε γιατί; 55 Σ ε λ ί δ α

57 9 ΕΡΓΑΣΤΗΡΙΟ 9Ο : ΑΥΘΕΝΤΙΚΟΠΟΙΗΣΗ ΧΡΗΣΤΗ Η σύνδεση και επικοινωνία μεταξύ του χρήστη και του συστήματος γίνεται στο σημείο διεπαφής και προϋποθέτει την τήρηση μιας διαδικασίας η οποία εξασφαλίζει ότι το άλλο μέρος είναι αυτό που πρέπει. Η διαδικασία της αλληλοεπιβεβαίωσης περιέχει τα εξής στάδια: 1. Στάδιο ταυτοποίησης (identification), στο οποίο κάθε ένα από τα δύο μέρη αναγγέλλει στον άλλο την ταυτότητα του. 2. Στάδιο αυθεντικοποίησης (authentication), στο οποίο κάθε ένα από τα δύο μέρη επιβεβαιώνει ότι είναι αυτό που ισχυρίστηκε στο στάδιο της ταυτοποίησης. 3. Στάδιο εξουσιοδότησης (authorization), στο οποίο ελέγχονται διεξοδικά οι επί μέρους όροι της συνεργασίας (π.χ. δικαιώματα χρήσης σε αντικείμενα, πρόσβασης σε αρχεία κ.λπ.). Ο πιο απλός μηχανισμός αυθεντικοποίησης είναι το συνθηματικό μια κωδική φράση η οποία είναι γνωστή μόνο στο σύστημα και το χρήστη. Αν και η χρήση του είναι απλή (ο χρήστης εισάγει σε ειδική διεργασία login την ειδική φράση, το σύστημα την συγκρίνει με την πρωτότυπη και του παραχωρεί (ή όχι) πρόσβαση ανάλογα με την επιτυχία της αυθεντικοποίησης), τα προβλήματα αντιμετωπίζονται στη διαχείριση των συνθηματικών. Έτσι ένας επίδοξος εισβολέας μπορεί να χρησιμοποιήσει κάποιες από τις παρακάτω μεθόδους για να αποκαλύψει το συνθηματικό ενός χρήστη: Να δοκιμάσει όλα τα πιθανά συνθηματικά αν και κάτι τέτοιο φαίνεται πολύ δύσκολο έως ακατόρθωτο (με δεδομένο μήκος συνθηματικού τους οκτώ από τους εικοσιέξι χαρακτήρες του αγγλικού αλφαβήτου), 9 12 υπάρχουν *10 πιθανά συνθηματικά. Με ρυθμό δοκιμής ένα συνθηματικό ανά χιλιοστό του δευτερολέπτου, ο εισβολέας θα χρειαζόταν περίπου 150 χρόνια, ενώ αν είχε δυνατότητα ανάλυσης ένα συνθηματικό ανά μικροδευτερόλεπτο, ο χρόνος επίλυσης φθάνει τους δύο μήνες (όλα αυτά χωρίς να υπολογιστεί πιθανή εκλογή χαρακτήρων εκτός των εικοσιέξι γραμμάτων, όπως μη εκτυπώσιμοι/ειδικοί χαρακτήρες και αύξηση του μήκους του συνθηματικού, για να αναφερθούν οι πιο κοινές επιλογές). Με την προσέγγιση αυτή, αν τα συνθηματικά ακολουθούσαν την κανονική κατανομή, ένας εισβολέας θα χρειαζόταν να εξετάσει μόνο το μισό πεδίο ορισμού τους). Ακόμη και σε αυτή την περίπτωση, η αποκάλυψη ενός συνθηματικού παραμένει σχετικά δύσκολη. Παρ όλα αυτά τα συνθηματικά δεν κατανέμονται ομοιόμορφα (οι χρήστες τείνουν να διαλέγουν απλά συνθηματικά, αφού πρέπει να είναι ευκολομνημόνευτα). Να δοκιμάσει πιθανά συνθηματικά γενικά οι χρήστες προτιμούν μικρά και ευκολομνημόνευτα συνθηματικά. Με αυτό τον τρόπο, είναι εφικτό για τον εισβολέα να δοκιμάσει ένα έτοιμο κατάλογο από τέτοιες λέξεις/φράσεις, όπως αυτές που περιέχονται στα λεξικά και τους ορθογραφικούς διορθωτές σε πολλά από τα υπάρχοντα συστήματα. Να δοκιμάσει πιθανά συνθηματικά για συγκεκριμένο χρήστη έρευνες έχουν δείξει ότι η πλειοψηφία των χρηστών διαλέγει όχι μόνο πολύ απλά συνθηματικά, αλλά και συνθηματικά τα οποία έχουν κάποια σημασία για τους ίδιους. Σύμφωνα με μια τέτοια έρευνα πάνω από τους μισούς χρήστες (51,5%) χρησιμοποιούν συνθηματικά μέχρι πέντε χαρακτήρες, ενώ περίπου ένας στους τέσσερις αρκείται σε τρεις ή λιγότερους ASCII χαρακτήρες. Να εντοπίσει ορισμένα πραγματικά συνθηματικά για να επιβεβαιώσει τη νομιμότητα των συνθηματικών που παρέχονται από έναν τυχαίο χρήστη, το σύστημα πρέπει να έχει ένα τρόπο με τον οποίο να μπορεί να συγκρίνει τις εισόδους με τα αυθεντικά συνθηματικά. Κάποια συστήματα διατηρούν ένα αρχείο συνθηματικών σε μορφή πίνακα με δύο στήλες, αναγνωριστικό χρήστη και συνθηματικό. Η λύση δεν είναι να δοθεί πρόσβαση σε αυτό το αρχείο στις διεργασίες του συστήματος. Με αυτή την προσέγγιση, κάθε χρήστης που θα παραβιάσει την ασφάλεια ενός μέρους του λογισμικού του συστήματος έχει πρόσβαση και στο αρχείο των συνθηματικών. Πρόσβαση στο αρχείο αυτό θα πρέπει να έχουν μόνο οι διεργασίες 56 Σ ε λ ί δ α

58 αυθεντικοποίησης του χρήστη και διαχείριση χρηστών. Ένας εισβολέας μπορεί με διάφορους άλλους τρόπους να αποκτήσει συνθηματικά (αναφέρονται ενδεικτικά): Με κατάλληλο χρονισμό να εντοπίσει ένα στιγμιότυπο της μνήμης του συστήματος και να αναλύσει τα περιεχόμενα της (memory image) Να αποκτήσει πρόσβαση στα περιεχόμενα των backup αρχείων, τα οποία συνήθως δεν έχουν μηχανισμούς προστασίας (η προστασία των αρχείων αυτών επιτυγχάνεται συνήθως με τη φυσική προστασία των μαγνητικών ταινιών που αποθηκεύονται τα backups). Να αποκτήσει πρόσβαση στο αυθεντικό (ή σε αντίγραφο) του κρυπτογραφημένου αρχείου συνθηματικών η επικρατούσα τάση στη διαχείριση των συνθηματικών είναι να κρυπτογραφούνται, κύρια με δύο τρόπους: Συμβατική κρυπτογράφηση, όπου ανακτάται το συνθηματικό, αποκρυπτογραφείται και συγκρίνεται με την είσοδο του χρήστη είναι διαθέσιμο σε οποιονδήποτε μπορεί να αποτυπώσει ένα στιγμιότυπο (dump) της μνήμης την στιγμή της σύγκρισης. Μονόδρομη κρυπτογράφηση, όπου τα συνθηματικά κρυπτογραφούνται με μια μονόδρομη συνάρτηση (one-way function) και αποθηκεύονται. Η συμβολοσειρά που παρέχει ο χρήστης κρυπτογραφείται με την ίδια συνάρτηση και η έξοδος συγκρίνεται με το κρυπτογραφημένο συνθηματικό. Να απευθυνθεί στον ίδιο τον χρήστη οι χρήστες αποτελούν το ασθενέστερο κομμάτι, από άποψη ασφάλειας, των συστημάτων και ο έλεγχος πρόσβασης δεν αποτελεί εξαίρεση. Επειδή οι χρήστες ξεχνούν τα συνθηματικά τους, τείνουν να τα καταγράφουν σε εμφανές μέρος. Επίσης είναι συνηθισμένο να διατηρεί ένας χρήστης το ίδιο συνθηματικό σε διαφορετικούς λογαριασμούς. Ένας άλλος τρόπος είναι η εξαπάτηση του χρήστη από τον εισβολέα, συνήθως μέσο τηλεφώνου. Ο τελευταίος μιμείται ένα πρόσωπο το οποίο είτε είναι ιεραρχικά ανώτερο είτε ένα άτομο (τεχνικός) που χρειάζεται εμπιστευτικές πληροφορίες (όπως το συνθηματικό διαχειριστή συστήματος) για να «επιδιορθώσει μία έκτακτη βλάβη του συστήματος». Έρευνες έχουν δείξει ότι αυτή η τεχνική είναι από τις πιο αποδοτικές στην απόσπαση συνθηματικών και λοιπών εμπιστευτικών πληροφοριών. 9.1 ΆΛΛΕΣ ΤΕΧΝΙΚΕΣ ΑΥΘΕΝΤΙΚΟΠΟΙΗΣΗΣ Η διαδικασία αυθεντικοποίησης γίνεται κυρίως μέσο συνθηματικών, δηλαδή κωδικών λέξεων ή φράσεων που σε συνδυασμό με το αναγνωριστικό του χρήστη αποδεικνύουν την μοναδική του ταυτότητα. Εκτός από αυτό το κλασικό σχήμα αυθεντικοποίησης έχουν αναπτυχθεί και άλλες τεχνικές, όπως αυτές που κάνουν χρήση Βιομετρίας. Χρησιμοποιούνται ειδικές συσκευές, οι οποίες χρησιμοποιούν μη-παραποιήσιμα φυσικά χαρακτηριστικά των χρηστών. Παράδειγμα τέτοιων συσκευών είναι οι ανιχνευτές δακτυλικών αποτυπωμάτων ή συσκευές αναγνώρισης φωνής και ίριδας, με κόστος το οποίο δεν είναι πια απαγορευτικό. Δημοφιλής είναι επίσης και η προσέγγιση κατά την οποία χρησιμοποιείται ένας συνδυασμός βιομετρικών τεχνικών, συνθηματικών και άλλων πληροφοριών, όπως για παράδειγμα με το να επιτρέπεται η πρόσβαση στο σύστημα από συγκεκριμένα τερματικά, σε συγκεκριμένες ώρες. 9.2 ΑΝΑΛΥΣΗ ΚΑΙ ΑΝΑΛΥΤΕΣ ΣΥΝΘΗΜΑΤΙΚΩΝ Υπάρχουν αρκετά εργαλεία, όπως τα Passwords Crack, με στόχο την ανάλυση της ποιότητας των συνθηματικών των χρηστών ενός συστήματος. Χαρακτηριστικά είναι τα εργαλεία ελέγχου ποιότητας συνθηματικών (θα μπορούσε να αποτελεί τμήμα ενός ευρύτερου toolbox εργαλείων ασφάλειας), που αναλύουν τα αποτελέσματα και εξάγουν συμπεράσματα, από τα συνθηματικά που έχει εισάγει ο χρήστης στο 57 Σ ε λ ί δ α

59 σύστημα. Τα κριτήρια ποιότητας μπορεί να είναι από πολύ απλά (π.χ. αριθμός χαρακτήρων, εκτυπώσιμοι ή μη χαρακτήρες, κλπ.), έως αρκετά σύνθετα (συνδυασμός του ονόματος του χρήστη με το login id, αναγραμματισμοί λέξεων που έχουν νόημα για το χρήστη κλπ.). [Εργαλεία αναφορικά με τα συνθηματικά μπορείτε να βρείτε στην ακόλουθη διεύθυνση: 9.3 ΑΝΑΛΥΣΗ ΣΥΝΘΗΜΑΤΙΚΩΝ ΜΕ ΤΟ ΕΡΓΑΛΕΙΟ CRYPTOOL. To Cryptool μας παρέχει την δυνατότητα να ελέγξουμε την ποιότητα ενός συνθηματικού αφού έχει εργαλεία τόσο για να γεννήσει συνθηματικά μιας συγκεκριμένης εντροπίας συνθηματικών όσο και για να ελέγξει συνθηματικά που πρόκειται να χρησιμοποιήσουμε. Πιο συγκεκριμένα τα εργαλεία αυτά μπορούμε να τα βρούμε στο μενού Indiv. Procedures/Tools/Password Quality Meter και Indiv. Procedures/Tools/Password Entropy Εντροπία συνθηματικών είναι ένας τρόπος έκφρασης της δύναμης ενός συνθηματικού έναντι επιθέσεων ανάλυσης συνθηματικών όπως εξαντλητική αναζήτηση, επίθεση λεξικού, μάντεμα κτλ. Μας δείχνει πόσο απρόβλεπτο είναι ένα συνθηματικό και μετριέται σε bits. Ένα συνθηματικό που είναι είδη γνωστό έχει εντροπία 0. Ένα συνθηματικό για το οποίο χρειαζόμαστε το μισό χρόνο στο πρώτο μας μάντεμα έχει εντροπία 1. Η εντροπία γενικά μπορεί να βρεθεί υπολογίζοντας την εντροπία ανά χαρακτήρα (log 2 του αριθμού χαρακτήρων στη χρησιμοποιούμενη ομάδα χαρακτήρων από την οποία έχει προκύψει το συνθηματικό) πολλαπλασιασμένη με τον αριθμό των χαρακτήρων στο συνθηματικό αυτό καθεαυτό. Π.χ. Αν ένα συνθηματικό 9 χαρακτήρων περιλαμβάνει Α-Ζ, a-z, 0-9 και ειδικούς χαρακτήρες υπάρχουν συνολικά 83 διαφορετικοί χαρακτήρες η εντροπία θα είναι log 283*9=54 bits. Επιλέγοντας το Password Quality Meter προκύπτει το παρακάτω παράθυρο στο οποίο έχουμε τις εμφανιζόμενες επιλογές: 58 Σ ε λ ί δ α

60 Εδώ μπορούμε να βάλουμε ένα συνθηματικό για να δοκιμάσουμε την ασφάλειά του. Εδώ παρατηρούμε το επίπεδο ασφαλείας του συνθηματικού μας και βλέπουμε την εντοπία του σε bits ανάλογα με την εφαρμογή που μας ενδιαφέρει Σε αυτό το παράθυρο βλέπουμε την ασφάλεια που μας παρέχει το επιλεγμένο συνθηματικό έναντι συγκεκριμένων επιθέσεων ανάλυσης συνθηματικών Πατώντας αυτό το κουμπί μπορούμε να τοποθετήσουμε ένα σύνολο από ελάχιστους περιορισμούς που επιθυμούμε να έχει το συνθηματικό μας για να θεωρούμε ότι είναι ασφαλές (ακολουθεί την πολιτική συνθηματικών που εμείς έχουμε ορίσει Εδώ ορίζω ποιοι θα είναι οι ειδικοί χαρακτήρες που θα επιτρέπονται στα συνθηματικά μου. 59 Σ ε λ ί δ α

61 Ερώτημα 9.1 Έστω ότι έχω τα παρακάτω τρία συνθηματικά : Amsof2m1f11 and4us!sd23 Ποιο από τα τρία είναι πιο ασφαλές; Να το ελέγξετε χρησιμοποιώντας το Cryptool Να ορίστε ένα σύνολο από ελάχιστες απαιτήσεις ώστε να απορρίπτονται τα πιο αδύναμα από τα παραπάνω συνθηματικά. Επιλέγοντας το Password Entropy προκύπτει το παρακάτω παράθυρο στο οποίο έχουμε την δυνατότητα να φτιάξουμε ένα συνθηματικό συγκεκριμένων bit εντροπίας. Εδώ ορίζω την εντροπία του συνθηματικού σε αριθμό bits Εδώ ορίζω ποιους χαρακτήρες θα περιλαμβάνει το παραγόμενο συνθηματικό. Από το κουμπί Text options μπορώ να βάλω κατηγορίες χαρακτήρων στο αλφάβητό μου Επιλέγοντας αυτό το κουμπί μπορώ να πράξω ένα νέο συνθηματικό Μπορώ επίσης να μετρήσω την ασφάλεια του παραγόμενου συνθηματικού επιλέγοντας το κουμπί Measure password quality 60 Σ ε λ ί δ α

62 Ερώτημα 9.2 Να παραγάγετε με τα εργαλεία του cryptool ένα συνθηματικό ΡΙΝ για χρήση σε μηχάνημα ΑΤΜ, ένα συνθηματικό για internet banking και ένα συνθηματικό για παροχή υπηρεσιών από το τηλέφωνο. Επιλέξτε το κατάλληλο μέγεθος χαρακτήρων για τα συνθηματικά σας. Υπολογίστε την εντροπία κάθε συνθηματικού ανάλογα με το μέγεθος χαρακτήρων που επιλέγετε για το συνθηματικό σας. Eρώτημα 9.3 Ο τρόπος με τον οποίο αποθηκεύονταν τα συνθηματικά σε παλιότερα μηχανήματα (κυρίως unix) ήταν η τιμή που δίνει σαν συνθηματικό ο χρήστης να περνάει μέσα από μια συνάρτηση κατακερματισμού (hash function π.χ. md5) και στην συνέχεια να αποθηκεύεται σε ένα αρχείο συνθηματικών (password file). Αν κάποιος κακόβουλος χρήστης υπέκλεπτε το αρχείο αυτό τότε θα μπορούσε να βρει τα συνθηματικά αυτά κάνοντας μια επίθεση λεξικού. Για να επιδειχθεί αυτή τη διαδικασία, να ακολουθηθούν τα παρακάτω βήματα: Θεωρείστε ότι έχουμε το συνθηματικό test Να βρεθεί η συνάρτηση κατακερματισμού md5 του. 2. Να μπείτε στην ιστοσελίδα https://crackstation.net/ και να βάλετε τη συγκεκριμένη τιμή που έχει προκύψει (χωρίς κενά) 3. Επιλέξτε το πλήκτρο crack Hashes αφού ακολουθήσετε τα βήματα που ζητούνται από την ιστοσελίδα. 4. Το συνθηματικό έχει αποκαλυφθεί. Να επαναληφθεί η διαδικασία με ένα άλλο συνθηματικό της επιλογής σας ιδίου πλήθους χαρακτήρων και ιδίου λεξικού συνθηματικών (πεζά και αριθμοί). Μπορεί να αποκαλυφθεί στο συνθηματικό αυτό; Εξηγήστε την απάντησή σας. Σε σύγχρονα μηχανήματα τα πραγματικά χρησιμοποιούμενα κλειδιά προκύπτουν από το συνδυασμό κάποιου αλφαριθμητικού συνθηματικού που δίνει ο χρήστης και μιας τυχαίας τιμής salt που παράγεται αυτόματα από το σύστημα. Οι δύο πληροφορίες συνδυάζονται (ο τρόπος συνδυασμού ποικίλει, ανάλογα με το πρότυπο που χρησιμοποιείται) και το αποτέλεσμα του συνδυασμού περνάει μέσα από μια συνάρτηση κατακερματισμού ώστε να προκύψει το τελικό κλειδί. Για την επίδειξη της ανωτέρω λειτουργίας, μπορεί να χρησιμοποιηθεί το cryptool με την επιλογή από το μενού Indiv. Procedures Hash Key generation from password (PKCS#5) Στο παράθυρο που προκύπτει να τοποθετηθεί ένα συνθηματικό και ένα salt, να επιλεγεί η md5 συνάρτηση κατακερματισμού και να πατηθεί το πλήκτρο Generate Key. Να ελεγχθεί αν από το κλειδί που προκύπτει μπορεί να βρεθεί το συνθηματικό που δόθηκε αρχικά μέσω τους διαδικασίας που περιγράφτηκε στο πρώτο μέρος του ερωτήματος. Εξηγήστε το αποτέλεσμα που προέκυψε. 61 Σ ε λ ί δ α

63 10 ΕΡΓΑΣΤΗΡΙΟ 10 Ο : ΑΥΘΕΝΤΙΚΟΠΟΙΗΣΗ ΚΑΙ ΑΣΦΑΛΕΙΑ ΣΕ ΔΙΚΤΥΑΚΟ ΠΕΡΙΒΑΛΛΟΝ 10.1 ΠΙΘΑΝΕΣ ΔΥΝΑΤΟΤΗΤΕΣ ΕΙΣΒΟΛΗΣ ΣΕ ΈΝΑ ΕΚΤΕΤΑΜΕΝΟ ΚΑΤΑΝΕΜΗΜΕΝΟ ΣΥΣΤΗΜΑ Οι προσπάθειες εισόδου στη δικτυακή δομή έχουν σαν στόχο την παρατήρηση, τη μεταβολή, τη διαγραφή, την είσοδο νέων, την καταγραφή, την αλλαγή κατεύθυνσης, το διπλασιασμό ή την επανεκπομπή των μηνυμάτων που κυκλοφορούν στο δίκτυο. Διακρίνουμε δύο κατηγορίες εισβολών, τις παθητικές και τις ενεργητικές. Στις παθητικές εισβολές ο εισβολέας παρατηρεί τα μηνύματα, που διέρχονται στο φυσικό μέσον, χωρίς να παρεμβαίνει στη φύση και τη ροή τους. Διακρίνουμε δύο υποκατηγορίες παθητικής εισβολής. Παρατήρηση του περιεχομένου των μηνυμάτων, κατά την οποία ο εισβολέας υποκλέπτει μέρος ή το σύνολο των διακινουμένων πληροφοριών. Ανάλυση της κυκλοφορίας, κατά την οποία ο εισβολέας καταγράφει και αναλύει τα διερχόμενα μηνύματα με σκοπό τη συγκέντρωση άμεσων ή επαγωγικών πληροφοριών. Οι πληροφορίες αυτές αφορούν τη δομή του συστήματος, τα χρησιμοποιούμενα πρωτόκολλα, την ονοματολογία, τους ενεργούς χρήστες, τους ενεργούς κόμβους, τις εκτελούμενες εφαρμογές και τις υπηρεσίες του συστήματος. Στις ενεργητικές εισβολές ο εισβολέας επεξεργάζεται τα διερχόμενα μηνύματα και πιθανά εισάγει νέα. Διακρίνουμε τέσσερις υποκατηγορίες : Τη μεταβολή των μηνυμάτων. Κατά την παραβίαση αυτή μεταβάλλεται το περιεχόμενο των μηνυμάτων (δεδομένα, διευθύνσεις, τμήματα ελέγχου), εισάγονται νέα μηνύματα ή μεταβάλλεται η σειρά των αποστελλόμενων μηνυμάτων. Τη διαγραφή μηνυμάτων, κατά την οποία καταστρέφεται μέρος ή το σύνολο των μηνυμάτων, που ανταλλάσσονται κατά τη διάρκεια των συνόδων. Την καθυστέρηση επικοινωνίας. Ο εισβολέας άμεσα με την κατακράτηση και επαναποστολή μηνυμάτων ή έμμεσα με την εισαγωγή υψηλού φόρτου στο δίκτυο προκαλεί καθυστέρηση της επικοινωνιακής κυκλοφορίας. Μεταμφίεση του εισβολέα. Στην περίπτωση αυτή ο εισβολέας δημιουργεί μία, ή περισσότερες συνόδους με ψευδή ταυτότητα. Αυτό επιτυγχάνεται με την υφαρπαγή των στοιχείων ταυτότητας ενός 'νόμιμου' χρήστη, καθώς και με την επανάληψη μηνυμάτων που έχουν αντιγραφεί από μία προηγούμενη 'νόμιμη' σύνοδο ΔΥΟ ΔΗΜΟΦΙΛΕΙΣ ΕΠΙΘΕΣΕΙΣ: Man In the Middle Attack (MITM, MitM, MiM, ή MIM) Ένας τύπος κυβερνοεπίθεσης όπου ένας κακόβουλος δράστης τοποθετεί το εαυτό του ανάμεσα στην επικοινωνία μεταξύ δύο οντοτήτων, προσποιείται ότι είναι και η δύο οντότητες (στην οντότητα Α ότι είναι η οντότητα Β και στην οντότητα Β ότι είναι η οντότητα Α) με πρώτο στόχο να αποκτήσει πρόσβαση στις πληροφορίες που οι επικοινωνούσες οντότητες ανταλλάσσουν και δεύτερο στόχο να ελέγξει τις πληροφορίες αυτές. Μια επίθεση Man in the Middleεπιτρέπει στον κακόβουλο δράστη να υποκλέψει και στείλει και να λάβει 62 Σ ε λ ί δ α

64 δεδομένα που προορίζονται για κάποιον άλλο ή δεν προορίζονται να σταλούν γενικότερα, χωρίς να το γνωρίζουν οι υπόλοιποι εμπλεκόμενη στην επικοινωνία. Παράδειγμα: Ένα από τα βασικά προβλήματα της κρυπτογραφίας συμμετρικού κλειδιού είναι ο τρόπος διανομής των κλειδιών. Με την κρυπτογραφία δημοσίου κλειδιού αυτό το πρόβλημα λύνεται..αν θέλω να στείλω ένα μήνυμα στον Bob, εγώ το μόνο που χρειάζομαι είναι να βρω το δημόσιο κλειδί του Bob (στην ιστοσελίδα του, σε ένα κατάλογο δημοσίων κλειδιών...), να κρυπτογραφήσω το μήνυμα χρησιμοποιώντας αυτό το κλειδί και να στείλω το αποτέλεσμα στον Bob. Στη συνέχεια, ο Bob χρησιμοποιώντας το δικό του ιδιωτικό κλειδί μπορεί να ανακτήσει το απλό κείμενο. Ωστόσο, ένα μεγάλο πρόβλημα παραμένει. Τι θα συμβεί αν ένα κακόβουλο άτομο με κάνει να πιστεύω ότι το δημόσιο κλειδί που κατέχει είναι αυτό του Μπομπ; Απλά εγώ θα στείλω ένα κρυπτογραφημένο μήνυμα χρησιμοποιώντας το δημόσιο κλειδί του κακόβουλου ατόμου και έτσι μόνο αυτό θα μπορεί να το αποκρυπτογραφήσει ενώ εγώ θα νομίζω ότι το έχω στείλει στον Bob. Το κακόβουλο άτομο θα λάβει το μήνυμα, θα το αποκρυπτογραφήσει, και στη συνέχεια θα κρυπτογραφήσει το απλό κείμενο με (πραγματικό) δημόσιο κλειδί του Bob. Αυτός θα λάβει το κρυπτογραφημένο μήνυμα, πιθανότατα θα απαντήσει με ένα άλλο κρυπτογραφημένο μήνυμα χρησιμοποιώντας δημόσιο κλειδί του κακόβουλου ατόμου (που για άλλη μια φορά κατάφερε να πείσει τον Bob, ότι το δημόσιο κλειδί του ανήκει σε μένα). Στη συνέχεια το κακόβουλο άτομο θα αποκρυπτογραφήσει το μήνυμα, με το δημόσιο κλειδί μου, έτσι θα λάβω πραγματικά απάντηση του Μπομπ. Πράγματι, υπάρχει επικοινωνούν με τον Bob, αλλά χωρίς εμπιστευτικότητα αφού κάποιος τρίτος (κακόβουλο άτομο) θα μπορεί να αναγνώσει χωρίς να έχει δικαίωμα όλα τα μηνύματα που ανταλλάσσονται. Replay Attack Αυτή η επίθεση βασίζεται σε ένα κακόβουλο δράστη ο οποίος παρεμβάλλεται μεταξύ της επικοινωνίας δύο οντοτήτων. Όταν μια από τις δύο οντότητες στείλει κάποια πληροφορία αυθεντικοποίησης τότε αυτή υποκλέπτεται από τον κακόβολου δράστη με στόχο να χρησιμοποιηθεί στο μέλλον μια ή περισσότερες φορές έτσι ώστε να υποκριθεί αυτός την οντότητα της οποίας υπέκλεψε τα στοιχεία αυθεντικοποίησης. Η επίθεση χρησιμοποιείται συνήθως σαν κομμάτι μιας επίθεσης εξαπάτησης ή υποκρινόμενης αυθεντικοποίησης. 63 Σ ε λ ί δ α

65 10.3 ΣΕΝΑΡΙΑ ΑΥΘΕΝΤΙΚΟΠΟΙΗΣΗΣ ΒΑΣΙΣΜΕΝΑ ΣΕ ΠΡΩΤΟΚΟΛΛΑ ΑΙΤΗΣΗΣ ΑΠΟΚΡΙΣΗΣ. ΑΣΚΗΣΕΙΣ ΜΕ ΤΟ CRYPTOOL. Tο εργαλείο Cryptool μας δίνει εργαλεία ώστε να κάνουμε πειραματισμούς με ελεγχόμενο τρόπο και χωρίς γνώσεις προγραμματισμού, πάνω σε πρωτόκολλα αυθεντικοποίησης με στόχο να καταφέρει ένας επιτιθέμενος να υποδυθεί ότι είναι κάποιος άλλος. Αυτό μπορεί να γίνει μέσω του μενού Indiv. Procedures/Protocols/Network Authentication Θα προκύψει το παραπάνω παράθυρο από το οποίο θα εκτελέσουμε τις παρακάτω ασκήσεις: Ερώτημα 10.1 Ο πιο απλός τρόπος αυθεντικοποίησης ενός χρήστη-πελάτη είναι με την χρήση ενός συνθηματικού το οποίο παρέχει ο πελάτης στον εξυπηρετητή και ο δεύτερος επιβεβαιώνει την ύπρξη τους σε μια βάση συνθηματικών που μπορεί να διατηρεί. Στο παραπάνω σενάριο βρείτε ένα τρόπο κάποιος μη εξουσιοδοτημένος χρήστης ( ο επιτιθέμενος) να αποκτήσει αυθεντικοποίηση σε ένα server, χρησιμοποιώντας το Challenge Response μοντέλο που μας δίνει το cryptool. Αρχικά πατήστε το κουμπί passwords. Ερώτημα 10.2 Συνθηματικά μιας χρήσης: Για να αποφύγουμε τις επιθέσεις σε συνθηματικά η πελάτης αι ο εξυπηρετητής 1 έχουν συμφωνήσει ότι θα χρησιμοποιούν ένα σημειωματάριο συνθηματικών το οποίο α ακολουθούν έτσι ώστε να δουλεύουν ένα νέο κοινό συνθηματικό κάθε φορά που κάνουν αυθεντικοποίηση. Το σημειωματάριο συνθηματικών το γνωρίζουν και οι δύο, ενώ όταν συνθηματικό της λίστας αυτής χρησιμοποιηθεί δεν μπορεί να ξαναχρησιμοποιηθεί στο μέλλον. 64 Σ ε λ ί δ α

66 Στο παραπάνω σενάριο βρείτε ένα τρόπο κάποιος μη εξουσιοδοτημένος χρήστης ( ο επιτιθέμενος) να αποκτήσει αυθεντικοποίηση σε ένα server, χρησιμοποιώντας το Challenge Response μοντέλο που μας δίνει το cryptool. Αρχικά πατήστε το κουμπί one-time passwords. Ερώτημα 10.3 Αυθεντικοποίηση με πρωτόκολλο αίτησης απόκρισης χρησιμοποιώντας κρυπτογραφία συμμετρικού κλειδιού: Αν ο πελάτης και εξυπηρετητής δεν μεταδίδουν πια την πληροφορία αυθεντικοποίησης απροστάτευτη μέσα στο κανάλι αλλά χρησιμοποιούν ένα συμμετρικό μυστικό κλειδί. Το κλειδί είναι το ίδιο για όλους τους εμπλεκόμενους που είναι εμπιστοσύνης. Αρχικά ο εξυπηρετητής στέλνει ένα τυχαίο αριθμό στον πελάτη και αυτός αφού τον παραλάβει τον κρυπτογραφεί με τον μυστικό του κλειδί. Το κρυπτογραφημένο μήνυμα στέλνεται πίσω στον εξυπηρετητή και αυτός το αποκρυπτογραφεί χρησιμοποιώντας το ίδιο μυστικό κλειδί. Αν το αποτέλεσμα της αποκρυπτογράφησης είναι ο αρχικός τυχαίος αριθμός που αυτός έστειλε τότε ο πελάτης αυθεντικοποιήται. Στο παραπάνω σενάριο βρείτε ένα τρόπο κάποιος μη εξουσιοδοτημένος χρήστης ( ο επιτιθέμενος) να αποκτήσει αυθεντικοποίηση σε ένα server, χρησιμοποιώντας το Challenge Response μοντέλο που μας δίνει το cryptool. Αρχικά πατήστε το κουμπί Challenge Response (symmetric). Ερώτημα 10.4 Αυθεντικοποίηση με πρωτόκολλο αίτησης απόκρισης χρησιμοποιώντας κρυπτογραφία ασύμμετρου κλειδιού: Αν ο πελάτης και εξυπηρετητής δεν μεταδίδουν πια την πληροφορία αυθεντικοποίησης απροστάτευτη μέσα στο κανάλι αλλά χρησιμοποιούν ο καθένας το δικό του δημόσιο και ιδιωτικό κλειδί τότε η προηγούμενη επίθεση δεν είναι εφικτή αφού ο καθένας έχει τα δικά του κλειδιά. Αρχικά ο εξυπηρετητής στέλνει ένα τυχαίο αριθμό στον πελάτη και αυτός αφού τον παραλάβει τον κρυπτογραφεί με τον ιδιωτικό του κλειδί. Το κρυπτογραφημένο μήνυμα στέλνεται πίσω στον εξυπηρετητή και αυτός το αποκρυπτογραφεί χρησιμοποιώντας το δημόσιο κλειδί του πελάτη. Αν το αποτέλεσμα της αποκρυπτογράφησης είναι ο αρχικός τυχαίος αριθμός που αυτός έστειλε τότε ο πελάτης αυθεντικοποιήται. Στο παραπάνω σενάριο βρείτε ένα τρόπο κάποιος μη εξουσιοδοτημένος χρήστης ( ο επιτιθέμενος) να αποκτήσει αυθεντικοποίηση σε ένα server, χρησιμοποιώντας το Challenge Response μοντέλο που μας δίνει το cryptool. Αρχικά πατήστε το κουμπί Challenge Response (asymmetric). Ερώτημα 10.5 Αμοιβαία Αυθεντικοποίηση με πρωτόκολλο αίτησης απόκρισης χρησιμοποιώντας κρυπτογραφία ασύμμετρου κλειδιού: Ο πελάτης και εξυπηρετητής χρησιμοποιούν ο καθένας το δικό του δημόσιο και ιδιωτικό κλειδί. Τα ρολόγια τόσο του πελάτη όσο του εξυπηρετητή είναι συγχρονισμένα. Αρχικά ο εξυπηρετητής στέλνει ένα τυχαίο αριθμό (πρόκληση εξυπηρετητή) στον πελάτη (το όποιο μπορεί να κρυπτογραφήσει με το δημόσιο κλειδί του πελάτη) και ο πελάτης αφού τον παραλάβει το αποκρυπτογραφεί με το ιδιωτικό του κλειδί και το κρυπτογραφεί με τον ιδιωτικό του κλειδί μαζί με ένα δικό του τυχαίο 65 Σ ε λ ί δ α

67 αριθμό (πρόκληση πελάτη) που κρυπτογραφεί με το δημόσιο κλειδί του εξυπηρετητή. Ο εξυπηρετητής λαμβάνει την πρόκληση του πελάτη, αποκρυπτογραφεί το μήνυμα του πελάτη με το δημόσιο κλειδί του πελάτη και ελέγχει αν έχει τον αριθμό που αυτός είχε στείλει αρχικά. Επίσης, αποκρυπτογραφεί και την πρόκληση του πελάτη και παίρνει τον τυχαίο αριθμό πελάτη και τον κρυπτογραφεί με το δικό του κλειδί και στέλνει το κρυπτογραφημένο μήνυμα πίσω στον πελάτη. Το πρωτόκολλο τελειώνει όταν ο πελάτης παραλάβει το δεύτερο μήνυμα του εξυπηρετητή, το αποκρυπτογραφήσει με τι δημόσιο κλειδί του εξυπηρετητή και ελέγξει ότι το αποκρυπτογραφημένο κείμενο είναι όντως το τυχαίος αριθμός που αρχικά έστειλε στον εξυπηρετητή. Στο παραπάνω σενάριο βρείτε ένα τρόπο κάποιος μη εξουσιοδοτημένος χρήστης ( ο επιτιθέμενος) να αποκτήσει αυθεντικοποίηση σε ένα server, χρησιμοποιώντας το Challenge Response μοντέλο που μας δίνει το cryptool. Αρχικά πατήστε το κουμπί Mutual Authentication. 66 Σ ε λ ί δ α

68 11 ΥΒΡΙΔΙΚΗ ΚΡΥΠΤΟΓΡΑΦΙΑ 11Ο. ΤΟ ΣΥΣΤΗΜΑ PRETTY GOOD PRIVACY (PGP) Η κρυπτογραφία Δημοσίου Κλειδιού αποτελεί μια πολύ καλή λύση για την δημιουργία σύνθετων συστημάτων ασφαλείας. Όμως, λόγω του πολύπλοκου μαθηματικού της υπόβαθρου και του μεγάλου αριθμού μαθηματικών πράξεων που περιλαμβάνει, οδηγεί σε λύσεις κρυπτογράφησης/αποκρυπτογράφησης που δεν είναι αρκετά γρήγορές για εντατική χρήση (π.χ κρυπτογραφημένη επικοινωνία μεταξύ δύο η περισσοτέρων χρηστών). Συνήθως, εφόσον επιθυμούμε να χρησιμοποιήσουμε τις προηγμένες δυνατότητες αυτού του είδους κρυπτογραφίας, την συνδυάζουμε με κρυπτογραφία συμμετρικού κλειδιού η οποία διακρίνεται για την ταχύτητα με την οποία πραγματοποιεί μια κρυπτογράφηση/αποκρυπτογράφηση. Ο συνδυασμός αυτός και των δύο ειδών κρυπτογραφίας σε ένα σύστημα ονομάζεται υβριδική κρυπτογραφία και χαίρει μεγάλης αποδοχής σε πρακτικές εφαρμογές ασφαλείας ΤΟ ΣΥΣΤΗΜΑ PGP (PRETTY GOOD PRIVACY) Το PGP εμφανίστηκε για να προσφέρει μια λύση που να εκμεταλλεύεται τα πλεονεκτήματα τόσο της κρυπτογραφίας Δημοσίου Κλειδιού όσο και της κρυπτογραφίας Συμμετρικού Κλειδιού αποφεύγοντας τα βασικά προβλήματα που αυτές οι μορφές κρυπτογραφίας έχουν. Έτσι λοιπόν, αυτό το σύστημα συνδυάζει και τις δύο μορφές κρυπτογραφίας, είναι δηλαδή ένα υβριδικό σύστημα κρυπτογράφησης και αποκρυπτογράφησης. Όταν ένας χρήστης κρυπτογραφεί ένα μήνυμα με PGP, το PGP συμπιέζει πρώτα το μήνυμα αυτό έτσι ώστε να κερδίζουμε σε χρόνο μετάδοσης και σε χώρο δίσκου αλλά κυρίως να αυξάνουμε την κρυπτογραφική ασφάλεια. Οι περισσότερες κρυπταναλυτικές επιθέσεις εκμεταλλεύονται επαναλαμβανόμενα μοτίβα μέσα στο μήνυμα για να σπάσουν το κρυπτοκείμενο. Η συμπίεση λοιπόν μειώνει τον αριθμό αυτών των μοτίβων και έτσι αυξάνει την αντίσταση σε κρυπτανάλυση. Στην συνέχεια, δημιουργείται ένα κλειδί συνεδρίας (session key) το οποίο είναι ένα κρυφό, μιας χρήσης, κλειδι. Αυτό το κλειδί είναι ένας τυχαίος αριθμός που γεννάται από τυχαίες κινήσεις (ή πατήματα) του ποντικιού ή από τον τρόπο που πληκτρολογούμε ένα κείμενο. Αυτό το κλειδί συνεδρίας χρησιμοποιείται σε ένα πολύ ασφαλές και γρήγορο αλγόριθμο κρυπτογραφίας συμμετρικού κλειδιού μαζί με το απλό κείμενο και παράγεται ένα κρυπτοκείμενο. Όταν τα δεδομένα κρυπτογραφηθούν, το κλειδί συνεδρίας κρυπτογραφείται και εκείνο με την σειρά του χρησιμοποιώντας το δημόσιο κλειδί του παραλήπτη μέσω κάποιου αλγορίθμου κρυπτογράφησης δημοσίου κλειδιού. Τέλος, το κρυπτογραφημένο κλειδί συνεδρίας καθώς και το κρυπτοκείμενο στέλνονται στον παραλήπτη. Το απλό κείμενο κρυπτογραφείται με το κλειδί συνεδρίας Το κλειδί συνεδρίας κρυπτογραφείται με το δημόσιο κλειδί του παραλήπτη Το κρυπτογραφημένο κλειδί συνεδρίας και το κρυπτοκείμενο αποστέλλονται

69 Η αποκρυπτογράφηση λειτουργεί με την αντίστροφη διαδικασία. Ο παραλήπτης του PGP κρυπτογραφημένου μηνύματος χρησιμοποιεί το ιδιωτικό του κλειδί για να ανακτήσει το κλειδί συνεδρίας και στην συνέχεια με αυτό το παροδικό κλειδί αποκρυπτογραφεί το κρυπτοκείμενο. κρυπτογραφημένο κλειδί συνεδρίας Ανάκτηση κλειδιού συνεδρίας με τη χρήση του ιδιωτικού κλειδιού του παραλήπτη Κρυπτοκείμενο και κρυπτογραφημένο κλειδί συνεδρίας κρυπτοκείμενο Αποκρυπτογράφηση κρυπτοκειμένου με κλειδί συνεδρίας απλό κείμενο Ο συνδυασμός των δύο μεθόδων κρυπτογράφησης στο PGP με εκμετάλλευση της ευελιξίας της κρυπτογραφίας δημοσίου κλειδιού και της ταχύτητας της κρυπτογραφίας συμμετρικού κλειδιού, κάνει το PGP πολύ δυνατό όπλο ασφάλειας ΧΡΗΣΙΜΟΠΟΙΩΝΤΑΣ ΤΟ ΕΡΓΑΛΕΙΟ CRYPTOOL ΓΙΑ ΕΠΙΔΕΙΞΗ ΥΒΡΙΔΙΚΗΣ ΚΡΥΠΤΟΓΡΑΦΙΑΣ Ερώτημα 11.1 Από το μενού encrypt/decrypt επιλέγεται η παράμετρος hybrid και από εκεί το RSA-AES encrypt. Από το νέο παράθυρο που προκύπτει να ακολουθήσετε και να καταγράψετε τα σωστά βήματα που απαιτούνται για την κρυπτογράφηση ενός κειμένου της επιλογής σας. Χρησιμοποιήστε ζευγάρι κλειδιών ασύμμετρης κρυπτογραφίας που έχει φτιαχτεί σε προηγούμενο εργαστήριο Αποθηκεύστε το κρυπτογραφημένο κείμενο. Στο κείμενο αυτό εντοπίστε που βρίσκεται το κλειδί συνεδρίας. Μπορείτε να αναγνωρίσετε ποιο είναι το κλειδί συνεδρίας; Να αποκρυπτογραφήσετε το κρυπτογραφημένο κείμενο, από το μενού encrypt/decrypt επιλέγεται η παράμετρος hybrid και από εκεί το RSA-AES decrypt. Καταγράψτε τα βήματα που γίνονται. Ποιο είναι το κλειδί συνεδρίας;

70 11.3 ΧΡΗΣΙΜΟΠΟΙΩΝΤΑΣ ΤΟ ΕΡΓΑΛΕΙΟ GPG ΓΙΑ ΑΣΦΑΛΕΙΑ ΑΡΧΕΙΩΝ ΜΕ PGP Μια από τις κύριες χρήσεις του συστήματος PGP είναι στην αποστολή και ληψη ασφαλών . Για συστήματα Windows υπάρχει το πρόγραμμα GPG (https://gnupg.org/) το οποίο αναλαμβάνει να διαχειριστεί πλήρως όλες τις απαραίτητες δράσεις ώστε ένας χρήστης να μπορεί να αποστέλλει και να λαμβάνει με ασφάλεια και ιδιωτικότητα έγγραφα και εμαιλς Δημιουργία Κλειδιών και πιστοποιητικών Με τη βοήθεια του εργαλείου GPA να δημιουργήσετε ένα πιστοποιητικό κρυπτογραφίας δημοσίου κλειδιού με ημερομηνία λήξης ένα χρόνο μετά από την ημερομηνία εκτέλεσης τους εργαστηρίου. Ερώτημα Να περιγράψετε τα βήματα που κάνει το πρόγραμμα για να παραχθεί το ψηφιακό πιστοποιητικό. Ποιος αλγόριθμος κρυπτογραφίας δημοσίου κλειδιού χρησιμοποιήθηκε και με τι μέγεθος κλειδιού. Μπορείτε να δείτε τα στοιχεία του πιστοποιητικού openpgp και μέσα από την εκπαιδευτική σελίδα Να σταλεί το συγκεκριμένο πιστοποιητικό στο GPG server ώστε να γίνει publish εκεί. Ερώτημα 11.3 Πως μπορεί να γίνει export το συγκεκριμένο πιστοποιητικό σε άλλο μηχάνημα;

71 12 ΕΡΓΑΣΤΗΡΙΟ 12 Ο ΕΠΙΘΕΣΕΙΣ ΠΛΑΓΙΟΥ ΜΟΝΟΠΑΤΙΟΥ ΣΕ ΥΛΙΚΟ Οι επιθέσεις πλάγιου μονοπατιού (SCA) θεωρούνται αρκετά αποδοτικές κρυπταναλυτικές μεθόδους και αποτελούν παράμετρο σχεδιασμού ενός κρυπτογραφήματος μια και εκμεταλλεύονται ιδιότητες του υλικού πάνω στο οποίο είναι σχεδιασμένο και υλοποιημένο ένα τέτοιο σύστημα. Πιο συγκεκριμένα, οι επιθέσεις αυτές εκμεταλλεύονται πληροφορία που μπορεί να «διαφύγει» από την υλοποίηση ενός κρυπτογραφικού αλγορίθμου κατά την διάρκεια της εκτέλεσης του αλγορίθμου αυτού. Τέτοιες πληροφορίες μπορεί να σχετίζονται με τον χρόνο υπολογισμού, με την εκπεμπόμενη ηλεκτρομαγνητική ακτινοβολία, με τα μηνύματα λάθους ή με ίχνη της κατανάλωση ισχύος ενός συστήματος που πραγματοποιεί κάποια κρυπτογραφική πράξη. Οι πληροφορίες αυτές χρησιμοποιούνται έτσι ώστε να χαρακτηρίσουν συγκεκριμένους υπολογισμούς που πραγματοποιούνται σε δεδομένο χρονικό διάστημα της εκτέλεσης της κρυπτογραφικής διεργασίας με απώτερο σκοπό την εύρεση του ιδιωτικού κλειδιού ΕΠΙΘΕΣΕΙΣ ΠΛΑΓΙΟΥ ΜΟΝΟΠΑΤΙΟΥ ΒΑΣΙΣΜΕΝΕΣ ΣΤΗΝ ΚΑΤΑΝΑΛΩΣΗ ΙΣΧΥΟΣ ΕΝΟΣ ΚΡΥΠΤΟΓΡΑΦΙΚΟΥ ΣΥΣΤΗΜΑΤΟΣ Καθώς ένας κρυπτογραφικός αλγόριθμος εκτελείται σε υλικό, οι ψηφιακές πύλες (και κατά συνέπεια τα τρανζίστορ που τις αποτελούν) που υλοποιούν τον αλγόριθμο αυτόν αλλάζουν εισόδους/εξόδους από λογικό 0 σε 1 ή ανάποδα. Αυτή η αλλαγή προκαλεί μικρές αλλαγές ρεύματος στο κύκλωμα και κατά συνέπεια αλλαγές στην κατανάλωση ισχύος του. Μια και σε ένα κρυπτογραφικό κύκλωμα μεταξύ των εισόδων που επεξεργάζονται είναι και ευαίσθητες πληροφορίες, όπως το κλειδί, οι αλλαγές στην κατανάλωση ισχύος εφόσον επηρεάζονται από τις εισόδους, σχετίζονται και με το κλειδί. Συνεπώς, αν κάποιος μπορεί να καταγράψει την κατανάλωση ισχύος σαν πληροφορία πλάγιου μονοπατιού που διαφεύγει από ένα κύκλωμα ενώ εκτελεί έναν αλγόριθμος κρυπτογραφίας, τότε μπορεί με στατιστικό τρόπο να εξάγει χρήσιμες πληροφορίες για το κλειδί ή το ίδιο το κλειδί. Τυπικές εφαρμογές της παραπάνω μεθόδου κρυπτανάλυσης υπάρχουν κατά την χρήση έξυπνων καρτών όπως πιστωτικές κάρτες, κάρτες ανάληψης από ΑΤΜ κτλ Συλλέγοντας δεδομένα κατανάλωσης ισχύος. Για την συλλογή δεδομένων κατανάλωσης ισχύος παρεμβάλλεται μια μικρού μεγέθους αντίσταση στο καλώδιο τροφοδοσίας του κυκλώματος και μετράται η τάση στα άκρα αυτής της αντίστασης με τη χρήση συνήθως ενός παλμογράφου υψηλής ακριβείας. Η τάση στα άκρα της αντίστασης είναι ανάλογη με το ρεύμα που διαρρέει την αντίσταση αυτή και από τον νόμο τουohm εύκολα μπορούμε να υπολογίσουμε την ένταση ρεύματος και κατά συνέπεια την καταναλισκόμενη ισχύ.

72 Συνήθως η προς εξέταση συσκευή (π.χ. η έξυπνη κάρτα) ελέγχεται από ένα υπολογιστή ο οποίος αναλαμβάνει να τροφοδοτεί με εισόδους (π.χ. μη κρυπτογραφημένα κείμενα) και να λαμβάνει εξόδους ( κρυπτογραφημένα κείμενα). Το κλειδί θεωρείται ότι δεν είναι γνωστό και ότι βρίσκεται μέσα στην προς εξέταση συσκευή και δεν μεταδίδεται σε καμία φάση της διαδικασίας. Τα βήματα που ακολουθούμε είναι τα παρακάτω: 1. Εισάγουμε ένα μη κρυπτογραφημένο κείμενο στην προς εξέταση συσκευή από τον υπολογιστή 2. Ζητάμε από την συσκευή να κρυπτογραφήσει το κείμενο αυτό. 3. Συλλέγουμε τα δείγματα κατανάλωσης ισχύς κατά την διάρκεια της κρυπτογράφησης 4. Μετα την ολοκλήρωση της κρυπτογράφησης στον υπολογιστή παίρνουμε στο υπολογιστή σαν έξοδο το κρυπτογραφημένο κείμενο και σταματάμε την συλλογή δειγμάτων. 5. Αποθηκεύουμε τα δείγματα αυτά στον υπολογιστή και τα συνδέουμε με το μη κρυπτογραφημένο και κρυπτογραφημένο κείμενο. 6. Επαναλαμβάνουμε την διαδικασία χρησιμοποιώντας κάποιο άλλο μη κρυπτογραφημένο κείμενο. Υπάρχει πληθώρα επιθέσεων ανάλυσης ισχύος. Σε κάποιες αρκεί η συλλογή ενός δείγματος ενώ σε κάποιες άλλες χρειάζεται να συλλεχθούν πάρα πολλά δείγματα Επιθέσεις απλής ανάλυσης ισχύος Σε αυτού του τύπου την επίθεση, χρησιμοποιείται συνήθως ένα δείγμα ισχύος και γίνεται μια εποπτική ανάλυση της συμπεριφοράς του αλγορίθμου κρυπτογραφίας στο χρόνο. Με βάση αυτή την ανάλυση ο επιτιθέμενος μπορεί να ξεχωρίσει σε πιο σημείο στο χρόνο εκτέλεσης του αλγορίθμου γίνεται κάποια κρυπτογραφική πράξη (π.χ. ένας γύρος του ΑΕS) και να επικεντρωθεί σε αυτό το κομμάτι του (ώστε να κάνει μια πιο επιλεγμένη επίθεση). Σε κάποιες περιπτώσεις (π.χ. σε RSA) μια επίθεση πλάγιο μονοπατιού μπορεί να αποκαλύψει το ίδιο το κλειδί.

73 10 γύροι του AES Επιθέσεις διαφορικής ανάλυσης ισχύος Σε αυτή την επίθεση χρησιμοποιούνται πολλά δείγματα ώστε να γίνει μια στατιστική μελέτη των συλλεγόμενων δειγμάτων από την προς εξέταση συσκευή σε σχέση με υποτιθέμενα δείγματα που προκύπτουν μέσα από ένα θεωρητικό μοντέλο ισχύος. Πιο συγκεκριμένα, η επίθεση διαφορικής ανάλυσης αποτελείται από τα παρακάτω βήματα: 1. Συλλογή και αποθήκευση μεγάλου αριθμού ιχνών (traces). 2. Επιλέγεται συγκεκριμένο μέρος του κρυπτογραφικού αλγορίθμου όπου έχουμε μεγάλη συσχέτιση με το κλειδί (π.χ. στον AES στην διεργασία ADDROUNDKEY) και επικεντρωνόμαστε στο αποτέλεσμα που μπορεί να βγάλει αυτό το μέρος σαν ενδιάμεση τιμή κατά την εκτέλεση του αλγορίθμου. 3. Για κάθε trace, γνωρίζουμε το μη κρυπτογραφημένο κείμενο από το οποίο προκύπτει το trace αυτό. Χρησιμοποιώντας αυτό το κείμενο, για το επιλεγμένο μέρος του κρυπτογραφικού αλγορίθμου, υπολογίζουμε ποια θα είναι αυτή η ενδιάμεση τιμή, θεωρητικά, για όλα τα πιθανά κλειδιά. Επαναλαμβάνεται η διαδικασία αυτή για όλα τα ίχνη (traces). 4. Τα αποτελέσματα που προκύπτουν για όλα τα κλειδιά, τα περνάμε μέσα από μια συνάρτηση που δίνει μια θεωρητική εκτίμηση της κατανάλωσης ισχύος σε κάθε περίπτωση. 5. Συσχετίζουμε στατιστικά τα δείγματα των μη κρυπτογραφημένου κειμένων που πήραμε από την προς εξέταση συσκευή με τα αποτελέσματα που έχουμε πάρει για όλα τα πιθανά κλειδιά όπως προκύπτει από την θεωρητική εκτίμηση κατανάλωσης ισχύος. 6. Η συσχέτιση των πραγματικών δειγμάτων με τις πιθανές τιμές από το θεωρητικό μοντέλο θα είναι μικρή για όλα τα πιθανά κλειδιά εκτός από ένα (οπου η συσχέτιση θα είναι σημαντικά μεγαλύτερη). Αναγνωρίζοντας την περίπτωση αυτή, το κλειδί που έχουμε υποθέσει σε αυτή την περίπτωση είναι το πραγματικό κλειδί που χρησιμοποιεί η προς εξέταση συσκευή. Η διαδικασία φαίνεται γραφικά και στο παρακάτω σχήμα.

74

75 12.2 ΠΡΑΓΜΑΤΟΠΟΙΩΝΤΑΣ ΔΙΑΦΟΡΙΚΗ ΑΝΑΛΥΣΗ ΙΣΧΥΟΣ ΣΤΟΝ AES. Μια από τις πρώτες επιθέσεις διαφορικής ανάλυσης ισχύος που εφαρμόστηκε στην πράξη ήταν πάνω στο αλγόριθμο AES. Παρατηρούμε ότι κατά την εκτέλεση του αλγορίθμου AES έχουμε μια σειρά από επαναλαμβανόμενους γύρους. (για παράδειγμα, ο AES 128 με 10 γύρους). Είναι λογικό να υποθέσουμε ότι σε μια υλοποίηση του AES, το ίχνος της κατανάλωσης ισχύος θα έχει επαναλαμβανόμενα μοτίβα, ένα για κάθε γύρο (10 ίδια μοτίβα, στο παράδειγμα του AES 128, 10 γύρων). Μπορούμε λοιπόν με μια επίθεση απλής ανάλυσης ισχύος να βρούμε αυτά τα μοτίβα και να αποδώσουμε χρονικά διαστήματα όπου εκτελείται ο κάθε γύρος του AES (π.χ. από την χρονική στιγμή εκτελείται ο 1 ος γύρος, από την μέχρι την ο δεύτερος γύρος κτλ). Γνωρίζοντας πλέον στα δείγματα που έχουμε συλλέξει πότε εκτελείται κάθε γύρος του αλγορίθμου, μπορούμε να επικεντρωθούμε σε έναν γύρο και μια ενδιάμεση τιμή αυτού του γύρου που να συνδέεται στενά με το κλειδί. Ο πιο «βολικός» γύρος του AES για αυτό το σκοπό είναι ο πρώτος, όπως φαίνεται στο παρακάτω σχήμα. Ο γύρος αυτός περιλαμβάνει μια στενή συσχέτιση του κλειδιού πριν γίνει η επέκτασή του ουσιαστικά κάνοντας μια πράξη XOR με το plaintext (η διαδικασία Add round key). H διαδικασία αυτή ακολουθείται από μια άλλη η γραμμική διαδικασία, την Substitute bytes. Θεωρώ το αποτέλεσμα της substitute bytes σαν την επιλεγμένη ενδιάμεση τιμή μου, αφού περιλαμβάνει στενή συσχέτιση με το κλειδί όσο και μη γραμμικότητα. Ουσιαστικά η συνάρτηση που εκτελείται είναι η V=Substitute(plaintext XOR key). Μπορεί να υποτεθεί με ασφάλεια ότι το ίχνος κατανάλωσης ισχύος επηρεάζεται σημαντικά από το κλειδί στο γύρο αυτό. Υπενθυμίζεται ότι η συνάρτηση V γίνεται με τον τρόπο που φαίνεται στο παρακάτω σχήμα, δηλαδή μεταξύ bytes.

76 Ακολουθώντας την διαδικασία της επίθεσης, συλλέγουμε traces για πολλά διαφορετικά (τυχαία) plaintexts. Αυτό θα μας δημιουργήσει ένα δισδιάστατο πίνακα όπου η κάθε γραμμή αντιστοιχεί σε ένα trace ενός plaintext και η στήλη σε κάποια διακριτή χρονική στιγμή των traces (ένα δείγμα του trace). Παράδειγμα: Αριθμός δειγμάτων (samples) για κάθε trace Αριθμός ιχνών (traces) Τα plaintext (που αποτελούνται στην περίπτωση του AES από 16 byte) μπορώ να τα αντιστοιχίσω επίσης σε ένα δισδιάστατο πίνακα 16 στηλών, όπου κάθε γραμμή είναι ένα plaintext ( η κάθε στήλη αντιστοιχεί σε ένα byte του plaintext). Εφόσον γνωρίζω τα plaintext μπορώ να υπολογίσω θεωρητικά ποια θα είναι η ενδιάμεση τιμή που με ενδιαφέρει, για όλα τα πιθανά υποκλειδιά byte του κλειδιού του AES (για όλες τις 256 τιμές ενός byte κλειδιού, κάθε υποκλειδί είναι 1 byte του κλειδιού).

77 Παράδειγμα Plaintext (16 byte) Όλες οι πιθανές τιμές για ένα byte του κλειδιού (256 τιμές) Με βάση την συνάρτηση Add Round Key του AES, κάθε byte του plaintext θα γίνει XOR με το αντίστοιχο byte του κλειδιού. Εφόσον επιθυμώ να υπολογίζω όλους τους πιθανούς συνδυασμούς πρέπει να κάνω XOR κάθε byte του plaintext με όλες τις πιθανές τιμές του αντίστοιχου byte του κλειδιού και στην συνέχεια να περάσω κάθε αποτέλεσμα από την συνάρτηση substitute byte. Στο πρώτο byte του plaintext: Plaintext (16 byte). XOR Όλες οι πιθανές τιμές για ένα byte του κλειδιού (256 τιμές) substitute byte Οι 256 πιθανοί συνδυασμοί για το πρώτο byte ενός plaintext. Δεδομένου ότι έχω πολλά plaintext (ένα για κάθε ίχνος που έχω συλλέξει) θα προκύψουν 256 διαφορετικοί συνδυασμοί για κάθε 1 ο byte του κάθε plaintext, σχηματίζοντας έτσι έναν δισδιάστατο πίνακα όπου κάθε γραμμή αντιστοιχεί σε ένα plaintext (ή αντίστοιχα ένα trace) και κάθε στήλη σε μια πιθανή τιμή του 1 ου byte κλειδιού. 256 στήλες, μία για κάθε πιθανή τιμή ενός byte κλειδιού Αριθμός ιχνών/plaintext (traces) Τα περιεχόμενα κάθε στοιχείου του πίνακα θα πρέπει περάσουν από το μοντέλο κατανάλωσης ισχύος το οποίο θα αντιστοιχήσει το νούμερο αυτό σε μια πιθανή τιμή κατανάλωσης ισχύος, μετασχηματίζοντας το πίνακα σε έναν όποιό του που περιέχει θεωρητικές προσεγγίσεις κατανάλωσης ισχύος για κάθε πιθανό συνδυασμό της επιλεγμένης ενδιάμεσης τιμής του AES για ένα byte των plaintext. Προφανώς, πρέπει να παραχθεί ένας πίνακας για κάθε byte των plaintext. Συνεπώς, μετα το πέρας της παραπάνω διαδικασίας θα έχουν παραχθεί 16 διαφορετικοί πίνακες με προβλέψεις κατανάλωσης ισχύος.

78 Το επόμενο βήμα στην διαδικασία της επίθεσης είναι να προσπαθήσω να συσχετίσω στατιστικά τα περιεχόμενα κάθε πίνακα προσεγγίσεων με τα πραγματικά traces που έχω συλλέξει. Δεδομένου ότι έχω επικεντρωθεί στον πρώτο γύρο του AES, συσχετίζω στατιστικά (π.χ χρησιμοποιώντας μεθόδους όπως συνέλιξη (correlation), ή απόσταση μέσων (distance of means)) το χρονικό διάστημα (κομμάτι δειγμάτων) των ιχνών που αντιστοιχεί στον πρώτο γύρο του AES με κάθε ένα πίνακα προσεγγίσεων ισχύος. Γραφικά, το αποτέλεσμα του συσχετισμού αυτού θα έχει την παρακάτω μορφή (στην περίπτωση χρήσης της συνέλιξης) Στο οριζόντιο άξονα βλέπουμε όλες τις πιθανές τιμές ενός byte του κλειδιού ενώ στον κάθετο άξονα την τιμή της συνέλιξης. Αυτό που παρατηρείται είναι ότι η συνέλιξη έχει πολύ μικρή τιμή για τις περισσότερες τιμές byte του κλειδιού εκτός από μία. Σε αυτή την τιμή η προβλεπόμενη κατανάλωση ισχύος είναι πολύ έντονα συσχετισμένη με τα πραγματικά traces που λήφθηκαν από την υπό εξέταση συσκευή. Συνεπώς, η τιμή που προβλέψαμε για το byte του κλειδιού είναι η αληθινή. Με άλλα λόγια αποκαλύψαμε πιο είναι το byte αυτό. Επαναλαμβάνοντας την διαδικασία της στατιστικής συσχέτισης των traces με τους πίνακες προσέγγισης ισχύος για όλα τα byte του κλειδιού μπορούμε να βρούμε τελικά όλο το κλειδί ΑΣΚΗΣΗ Φορτώστε στο Matlab το αρχείο DPA_Analysis.mat Στο αρχείο αυτό υπάρχουν αποθηκευμένοι πίνακες από traces για μια σειρά από plaintexts και ciphertexts του AES. Για την ακρίβεια, θεωρήστε ότι έχουμε συλλέξει 200 traces με samples το καθένα από μια υπό εξέταση συσκευή ενώ αυτή εκτελεί τον αλγόριθμο AES. Ερώτημα 12.1 Χρησιμοποιώντας την συνάρτηση του matlab plot, να εμφανίσετε ένα γράφημα όπου να φαίνεται η κατανάλωση ισχύος σε σχέση με το χρόνο για ένα trace (για το trace 2). Ερώτημα Πραγματοποιήστε μια απλή επίθεση ανάλυσης ισχύος σε αυτό το trace, εντοπίζοντας όλους τους γύρους του AES στο χρόνο (από πιο sample μέχρι πιο άλλο sample) μέσα στο γράφημα και στη συνέχεια εντοπίστε τον πρώτο γύρο του AES.

79 Ερώτημα Αφού εντοπίσατε το χρονικό πλαίσιο μέσα στο οποίο εκτελείτε ο πρώτος γύρος του AES, χρησιμοποιήστε την συνάρτηση collect που σας δίνεται στο εργαστήριο για να εξάγετε το γράφημα της συνέλιξης για ένα συγκεκριμένο byte του κλειδιού και εκτιμήστε από το γράφημα αυτό ποιο είναι το byte του κλειδιού που χρησιμοποιήθηκε για να κρυπτογραφηθούν τα plaintext. Βρείτε με ακρίβεια ποιο είναι αυτό το byte του κλειδιού. Επαναλάβατε την διαδικασία και για τα 16 byte του κλειδιού και ανακαλύψτε ποιο είναι το κλειδί κρυπτογράφησης που χρησιμοποιήθηκε στην υπο εξέταση συσκευή. Ερώτηση Επιβεβαιώστε ότι το κλειδί που βρήκατε είναι σωστό μέσα από το cryptool.

80 13 ΕΡΓΑΣΤΗΡΙΟ 13 Ο ΑΣΦΑΛΙΖΟΝΤΑΣ ΤΟ ΔΙΑΔΙΚΤΥΟ: ΤΟ ΠΡΩΤΟΚΟΛΛΟ ΑΣΦΑΛΕΙΑΣ SSL/TLS. Η ΠΛΑΤΦΟΡΜΑ OPENSSL Το πρωτόκολλο SSL (Secure Sockets Layer) αναπτύχθηκε από την εταιρεία Netscape και σχεδιάστηκε για να παρέχει ασφάλεια κατά την μετάδοση ευαίσθητων δεδομένων στο διαδίκτυο. Η έκδοση 3.0 του πρωτοκόλλου κυκλοφόρησε από την Netscape το 1996 και αποτέλεσε την βάση για την μετέπειτα ανάπτυξη του πρωτοκόλλου TLS (Transport Layer Security), το οποίο πλέον εχει να αντικαταστήσει το SSL. Τα δύο αυτά πρωτόκολλα χρησιμοποιούνται ευρέως για ηλεκτρονικές αγορές και χρηματικές συναλλαγές μέσω του διαδικτύου. Το SSL χρησιμοποιεί μεθόδους κρυπτογράφησης των δεδομένων που ανταλλάσσονται μεταξύ δύο συσκευών (συνηθέστερα Ηλεκτρονικών Υπολογιστών) εγκαθιδρύοντας μία ασφαλή σύνδεση μεταξύ τους μέσω του διαδικτύου. Το πρωτόκολλο αυτό χρησιμοποιεί το TCP/IP για τη μεταφορά των δεδομένων και είναι ανεξάρτητο από την εφαρμογή που χρησιμοποιεί ο τελικός χρήστης. Για τον λόγο αυτό μπορεί να παρέχει υπηρεσίες ασφαλούς μετάδοσης πληροφοριών σε πρωτόκολλα ανώτερου επιπέδου όπως για παράδειγμα το HTTP, το FTP, το telnet κοκ ΓΕΝΙΚΑ Η μετάδοση πληροφοριών μέσω του διαδικτύου γίνεται ως επί το πλείστον χρησιμοποιώντας τα πρωτόκολλα TCP/IP (Transfer Control Protocol / Internet Protocol). Το SSL/TLS λειτουργεί πριν το TCP/IP και μετά τις εφαρμογές υψηλού επιπέδου, όπως είναι για παράδειγμα το HTTP (προβολή ιστοσελίδων), το FTP (μεταφορά αρχείων) και το IMAP ( ). Άρα λοιπόν αυτό που ουσιαστικά κάνει το SSL/TLS είναι να παίρνει τις πληροφορίες από τις εφαρμογές υψηλότερων επιπέδων, να τις κρυπτογραφεί και στην συνέχεια να τις μεταδίδει στο Internet προς τον Η/Υ που βρίσκεται στην απέναντι πλευρά και τις ζήτησε. Το SSL/TLS λειτουργεί πριν το TCP/IP και μετά τις εφαρμογές υψηλού επιπέδου. Το SSL/TLS προσφέρει συνοπτικά τις ακόλουθες υπηρεσίες: Πιστοποίηση του server από τον client. Πιστοποίηση του client από τον server. Εγκαθίδρυση ασφαλούς κρυπτογραφημένου διαύλου επικοινωνίας μεταξύ των δύο μερών. Οι κρυπτογραφικοί αλγόριθμοι που υποστηρίζονται από το πρωτόκολλο είναι πολλοί και ο αριθμός τους αλλάζει και επεκτείνεται συνέχεια.αναλογα με την έκδοση του πρωτοκόλλου. Κάποιοι υποστηριζόμενοι αλγόριθμοι είναι οι εξής: AES, Triple-DES, DSA - Digital Signature Algorithm, KEA - Key Exchange Algorithm, MD5 - Message Digest, RC2/RC4, RSA, SHA-1, SHA3 SHA3, SKIPJACK, RSA, ECC, DH, ECDH.

Εισαγωγή στην επιστήμη της Πληροφορικής και των Τηλεπικοινωνιών. Aσφάλεια

Εισαγωγή στην επιστήμη της Πληροφορικής και των Τηλεπικοινωνιών. Aσφάλεια Εισαγωγή στην επιστήμη της Πληροφορικής και των Τηλεπικοινωνιών Aσφάλεια Περιεχόμενα Πλευρές Ασφάλειας Ιδιωτικό Απόρρητο Μέθοδος Μυστικού Κλειδιού (Συμμετρική Κρυπτογράφηση) Μέθοδος Δημόσιου Κλειδιού (Ασύμμετρη

Διαβάστε περισσότερα

Εισαγωγή στην επιστήμη της Πληροφορικής και των Τηλεπικοινωνιών. Aσφάλεια

Εισαγωγή στην επιστήμη της Πληροφορικής και των Τηλεπικοινωνιών. Aσφάλεια Εισαγωγή στην επιστήμη της Πληροφορικής και των Τηλεπικοινωνιών Aσφάλεια ΣΤΟΧΟΙ ΚΕΦΑΛΑΙΟΥ Ορισµός τριών στόχων ασφάλειας - Εµπιστευτικότητα, ακεραιότητα και διαθεσιµότητα Επιθέσεις Υπηρεσίες και Τεχνικές

Διαβάστε περισσότερα

Δ Εξάμηνο. Κρυπτογραφία: Συμμετρική Κρυπτογράφηση

Δ Εξάμηνο. Κρυπτογραφία: Συμμετρική Κρυπτογράφηση ΚΡΥΠΤΟΓΡΑΦΙΑ ΚΑΙ ΑΣΦΑΛΕΙΑ ΥΠΟΛΟΓΙΣΤΩΝ Δ Εξάμηνο Κρυπτογραφία: Συμμετρική Κρυπτογράφηση Διδάσκων : Δρ. Παρασκευάς Κίτσος http://www.diceslab.cied.teiwest.gr Επίκουρος Καθηγητής Εργαστήριο Σχεδίασης Ψηφιακών

Διαβάστε περισσότερα

Εισαγωγή στην επιστήμη της Πληροφορικής και των. Aσφάλεια

Εισαγωγή στην επιστήμη της Πληροφορικής και των. Aσφάλεια Εισαγωγή στην επιστήμη της Πληροφορικής και των Τηλεπικοινωνιών Aσφάλεια Περιεχόμενα Πλευρές Ασφάλειας Ιδιωτικό Απόρρητο Μέθοδος Μυστικού Κλειδιού (Συμμετρική Κρυπτογράφηση) Μέθοδος Δημόσιου Κλειδιού (Ασύμμετρη

Διαβάστε περισσότερα

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

8.3.4 Τεχνικές Ασφάλειας Συμμετρική Κρυπτογράφηση Ασυμμετρική Κρυπτογράφηση Ψηφιακές Υπογραφές Κεφάλαιο 8 8.3.4 Τεχνικές Ασφάλειας Συμμετρική Κρυπτογράφηση Ασυμμετρική Κρυπτογράφηση Ψηφιακές Υπογραφές Σελ. 320-325 Γεώργιος Γιαννόπουλος ΠΕ19, ggiannop (at) sch.gr http://diktya-epal-g.ggia.info/ Creative

Διαβάστε περισσότερα

Κρυπτογραφία. Εργαστηριακό μάθημα 1

Κρυπτογραφία. Εργαστηριακό μάθημα 1 Κρυπτογραφία Εργαστηριακό μάθημα 1 Βασικοί όροι Με τον όρο κρυπτογραφία εννοούμε τη μελέτη μαθηματικών τεχνικών που στοχεύουν στην εξασφάλιση θεμάτων που άπτονται της ασφάλειας μετάδοσης της πληροφορίας,

Διαβάστε περισσότερα

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

Ασφάλεια Πληροφοριακών Συστημάτων Ασφάλεια Πληροφοριακών Συστημάτων Κρυπτογραφία/Ψηφιακές Υπογραφές Διάλεξη 2η Δρ. Β. Βασιλειάδης Τμ. Διοίκησης Επιχειρήσεων, ΤΕΙ Δυτ. Ελλάδας Kρυπτανάλυση Προσπαθούμε να σπάσουμε τον κώδικα. Ξέρουμε το

Διαβάστε περισσότερα

1. Τι είναι ακεραιότητα δεδομένων, με ποιους μηχανισμούς επιτυγχάνετε κ πότε θα χρησιμοποιούσατε τον καθένα εξ αυτών;

1. Τι είναι ακεραιότητα δεδομένων, με ποιους μηχανισμούς επιτυγχάνετε κ πότε θα χρησιμοποιούσατε τον καθένα εξ αυτών; 1. Τι είναι ακεραιότητα δεδομένων, με ποιους μηχανισμούς επιτυγχάνετε κ πότε θα χρησιμοποιούσατε τον καθένα εξ αυτών; Η ακεραιότητα δεδομένων(data integrity) Είναι η ιδιότητα που μας εξασφαλίζει ότι δεδομένα

Διαβάστε περισσότερα

Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών Ασφάλεια Δεδομένων.

Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών Ασφάλεια Δεδομένων. Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής στην Επιστήμη των Υπολογιστών 2015-16 Ασφάλεια Δεδομένων http://www.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης Οι απειλές Ένας κακόβουλος χρήστης Καταγράφει μηνύματα

Διαβάστε περισσότερα

Υπολογιστική Θεωρία Αριθμών και Κρυπτογραφία

Υπολογιστική Θεωρία Αριθμών και Κρυπτογραφία Υπολογιστική Θεωρία Αριθμών και Κρυπτογραφία Συμμετρικά κρυπτοσυστήματα Άρης Παγουρτζής Στάθης Ζάχος Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Σχολή ΗΜΜΥ ΕΜΠ 1

Διαβάστε περισσότερα

Ηλεκτρονικό εμπόριο. HE 7 Τεχνολογίες ασφάλειας

Ηλεκτρονικό εμπόριο. HE 7 Τεχνολογίες ασφάλειας Ηλεκτρονικό εμπόριο HE 7 Τεχνολογίες ασφάλειας Πρόκληση ανάπτυξης ασφαλών συστημάτων Η υποδομή του διαδικτύου παρουσίαζε έλλειψη υπηρεσιών ασφάλειας καθώς η οικογένεια πρωτοκόλλων TCP/IP στην οποία στηρίζεται

Διαβάστε περισσότερα

Συμμετρικά κρυπτοσυστήματα

Συμμετρικά κρυπτοσυστήματα Υπολογιστική Θεωρία Αριθμών και Κρυπτογραφία Συμμετρικά κρυπτοσυστήματα Άρης Παγουρτζής Στάθης Ζάχος Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχανικών - Μηχανικών Υπολογιστών Δίκτυα Feistel Σημαντικές

Διαβάστε περισσότερα

Οι απειλές. Απόρρητο επικοινωνίας. Αρχές ασφάλειας δεδομένων. Απόρρητο (privacy) Μέσω κρυπτογράφησης

Οι απειλές. Απόρρητο επικοινωνίας. Αρχές ασφάλειας δεδομένων. Απόρρητο (privacy) Μέσω κρυπτογράφησης Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής στην Επιστήμη των Υπολογιστών 2014-015 Ασφάλεια Δεδομένων http://www.ionio.gr/~mistral/tp/csintro/ Οι απειλές Ένας κακόβουλος χρήστης Καταγράφει μηνύματα που ανταλλάσσονται

Διαβάστε περισσότερα

ΤΕΙ Κρήτης Τμήμα Μηχανικών Πληροφορικής. Συμμετρική Κρυπτογραφία

ΤΕΙ Κρήτης Τμήμα Μηχανικών Πληροφορικής. Συμμετρική Κρυπτογραφία ΤΕΙ Κρήτης Τμήμα Μηχανικών Πληροφορικής Συμμετρική Κρυπτογραφία Εισαγωγή Στην συνηθισμένη κρυπτογραφία, ο αποστολέας και ο παραλήπτης ενός μηνύματος γνωρίζουν και χρησιμοποιούν το ίδιο μυστικό κλειδί.

Διαβάστε περισσότερα

ΚΡΥΠΤΟΓΡΑΦΙΑ ΚΑΙ ΑΣΦΑΛΕΙΑ ΥΠΟΛΟΓΙΣΤΩΝ

ΚΡΥΠΤΟΓΡΑΦΙΑ ΚΑΙ ΑΣΦΑΛΕΙΑ ΥΠΟΛΟΓΙΣΤΩΝ ΚΡΥΠΤΟΓΡΑΦΙΑ ΚΑΙ ΑΣΦΑΛΕΙΑ ΥΠΟΛΟΓΙΣΤΩΝ Δ Εξάμηνο Συναρτήσεις Κατακερματισμού και Πιστοποίηση Μηνύματος Διδάσκων : Δρ. Παρασκευάς Κίτσος Επίκουρος Καθηγητής e-mail: pkitsos@teimes.gr, pkitsos@ieee.org Αντίρριο

Διαβάστε περισσότερα

Εισ. Στην ΠΛΗΡΟΦΟΡΙΚΗ. Διάλεξη 8 η. Βασίλης Στεφανής

Εισ. Στην ΠΛΗΡΟΦΟΡΙΚΗ. Διάλεξη 8 η. Βασίλης Στεφανής Εισ. Στην ΠΛΗΡΟΦΟΡΙΚΗ Διάλεξη 8 η Βασίλης Στεφανής Περιεχόμενα Τι είναι κρυπτογραφία Ιστορική αναδρομή Αλγόριθμοι: Καίσαρα Μονοαλφαβιτικοί Vigenere Vernam Κρυπτογραφία σήμερα Κρυπτογραφία Σκοπός Αποστολέας

Διαβάστε περισσότερα

Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων. Κρυπτογραφία. Εισαγωγή. Χρήστος Ξενάκης

Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων. Κρυπτογραφία. Εισαγωγή. Χρήστος Ξενάκης Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων Κρυπτογραφία Εισαγωγή Χρήστος Ξενάκης Στόχος του μαθήματος Η παρουσίαση και ανάλυση των βασικών θεμάτων της θεωρίας κρυπτογραφίας. Οι εφαρμογές της κρυπτογραφίας

Διαβάστε περισσότερα

Εφαρμοσμένη Κρυπτογραφία Ι

Εφαρμοσμένη Κρυπτογραφία Ι Εφαρμοσμένη Κρυπτογραφία Ι Κωνσταντίνου Ελισάβετ ekonstantinou@aegean.gr http://www.icsd.aegean.gr/ekonstantinou Συνολικό Πλαίσιο Ασφάλεια ΠΕΣ Εμπιστευτικότητα Ακεραιότητα Πιστοποίηση Μη-αποποίηση Κρυπτογράφηση

Διαβάστε περισσότερα

Κρυπτογραφία. Κεφάλαιο 1 Γενική επισκόπηση

Κρυπτογραφία. Κεφάλαιο 1 Γενική επισκόπηση Κρυπτογραφία Κεφάλαιο 1 Γενική επισκόπηση Ανασκόπηση ύλης Στόχοι της κρυπτογραφίας Ιστορικό Γενικά χαρακτηριστικά Κλασσική κρυπτογραφία Συμμετρικού κλειδιού (block ciphers stream ciphers) Δημοσίου κλειδιού

Διαβάστε περισσότερα

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ - ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 131: ΑΡΧΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I ΕΡΓΑΣΙΑ 2

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ - ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 131: ΑΡΧΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I ΕΡΓΑΣΙΑ 2 ΕΡΓΑΣΙΑ Διδάσκων: Γιώργος Χρυσάνθου Υπεύθυνος Άσκησης: Πύρρος Μπράτσκας Ημερομηνία Ανάθεσης: 3/10/015 Ημερομηνία Παράδοσης: 09/11/015 09:00 π.μ. I.Στόχος Στόχος αυτής της εργασίας είναι η χρησιμοποίηση

Διαβάστε περισσότερα

ΠΕΡΙΕΧΟΜΕΝΑ 1. Εισαγωγή 2. Θεωρία αριθμών Αλγεβρικές δομές 3. Οι κρυπταλγόριθμοι και οι ιδιότητές τους

ΠΕΡΙΕΧΟΜΕΝΑ 1. Εισαγωγή 2. Θεωρία αριθμών Αλγεβρικές δομές  3. Οι κρυπταλγόριθμοι και οι ιδιότητές τους ΠΕΡΙΕΧΟΜΕΝΑ 1. Εισαγωγή... 1 1.1. Ορισμοί και ορολογία... 2 1.1.1. Συμμετρικά και ασύμμετρα κρυπτοσυστήματα... 4 1.1.2. Κρυπτογραφικές υπηρεσίες και πρωτόκολλα... 9 1.1.3. Αρχές μέτρησης κρυπτογραφικής

Διαβάστε περισσότερα

Κρυπ Κρ το υπ γραφία Κρυπ Κρ το υπ λογίας

Κρυπ Κρ το υπ γραφία Κρυπ Κρ το υπ λογίας Διαχείριση και Ασφάλεια Τηλεπικοινωνιακών Συστημάτων Κρυπτογραφία Κρυπτογραφία Η Κρυπτογραφία (cryptography) είναι ένας κλάδος της επιστήμης της Κρυπτολογίας (cryptology), η οποία ασχολείται με την μελέτη

Διαβάστε περισσότερα

Εισαγωγή στην Κρυπτογραφία και τις Ψηφιακές Υπογραφές

Εισαγωγή στην Κρυπτογραφία και τις Ψηφιακές Υπογραφές Εισαγωγή στην Κρυπτογραφία και τις Ψηφιακές Υπογραφές Βαγγέλης Φλώρος, BSc, MSc Τµήµα Πληροφορικής και Τηλεπικοινωνιών Εθνικό και Καποδιστριακό Πανεπιστήµιο Αθηνών Εν αρχή είναι... Η Πληροφορία - Αρχείο

Διαβάστε περισσότερα

Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων. Κρυπτογραφία. Κρυπτοαλγόριθμοι. Χρήστος Ξενάκης

Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων. Κρυπτογραφία. Κρυπτοαλγόριθμοι. Χρήστος Ξενάκης Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων Κρυπτογραφία Κρυπτοαλγόριθμοι Χρήστος Ξενάκης Θεωρία Πληροφορίας Η Θεωρία πληροφορίας (Shannon 1948 1949) σχετίζεται με τις επικοινωνίες και την ασφάλεια

Διαβάστε περισσότερα

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

Ασφάλεια Πληροφοριακών Συστημάτων Εργαστήριο Ασφάλεια Πληροφοριακών Συστημάτων Θεοδωρακοπούλου Ανδριάνα atheodorak@outlook.com Βαθμολόγηση Ασκήσεις Εργαστηρίου: 40% Τελική Εξέταση: 60% Ρήτρα: Βαθμός τελικής εξέτασης > 3.5 ΠΡΟΣΟΧΗ στις

Διαβάστε περισσότερα

ΕΠΛ 674: Εργαστήριο 1 Ασφάλεια Επικοινωνιακών Συστημάτων - Κρυπτογραφία

ΕΠΛ 674: Εργαστήριο 1 Ασφάλεια Επικοινωνιακών Συστημάτων - Κρυπτογραφία ΕΠΛ 674: Εργαστήριο 1 Ασφάλεια Επικοινωνιακών Συστημάτων - Κρυπτογραφία Παύλος Αντωνίου Γραφείο: ΘΕΕ 02 B176 Εαρινό Εξάμηνο 2011 Department of Computer Science Ασφάλεια - Απειλές Ασφάλεια Γενικά (Ι) Τα

Διαβάστε περισσότερα

Κρυπτογραφία. Κρυπτοσυστήματα τμήματος (Block ciphers) Άρης Παγουρτζής Στάθης Ζάχος Πέτρος Ποτίκας

Κρυπτογραφία. Κρυπτοσυστήματα τμήματος (Block ciphers) Άρης Παγουρτζής Στάθης Ζάχος Πέτρος Ποτίκας Κρυπτογραφία Κρυπτοσυστήματα τμήματος (Block ciphers) Άρης Παγουρτζής Στάθης Ζάχος Πέτρος Ποτίκας Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Block ciphers και ψευδοτυχαίες

Διαβάστε περισσότερα

Κρυπτογραφία. Κρυπτοσυστήματα τμήματος (Block ciphers) Άρης Παγουρτζής Στάθης Ζάχος Πέτρος Ποτίκας

Κρυπτογραφία. Κρυπτοσυστήματα τμήματος (Block ciphers) Άρης Παγουρτζής Στάθης Ζάχος Πέτρος Ποτίκας Κρυπτογραφία Κρυπτοσυστήματα τμήματος (Block ciphers) Άρης Παγουρτζής Στάθης Ζάχος Πέτρος Ποτίκας Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Block ciphers (κρυπτοσυστήματα

Διαβάστε περισσότερα

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

ΚΡΥΠΤΟΓΡΑΦΙΑ ΚΑΙ ΑΣΦΑΛΕΙΑ ΥΠΟΛΟΓΙΣΤΩΝ. Δ Εξάμηνο ΚΡΥΠΤΟΓΡΑΦΙΑ ΚΑΙ ΑΣΦΑΛΕΙΑ ΥΠΟΛΟΓΙΣΤΩΝ Δ Εξάμηνο Εισαγωγή- Βασικές Έννοιες Διδάσκων : Δρ. Παρασκευάς Κίτσος diceslab.cied.teiwest.gr Επίκουρος Καθηγητής Εργαστήριο Σχεδίασης Ψηφιακών Ολοκληρωμένων Κυκλωμάτων

Διαβάστε περισσότερα

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

ΚΡΥΠΤΟΓΡΑΦΙΑ ΚΑΙ ΑΣΦΑΛΕΙΑ ΥΠΟΛΟΓΙΣΤΩΝ. Δ Εξάμηνο ΚΡΥΠΤΟΓΡΑΦΙΑ ΚΑΙ ΑΣΦΑΛΕΙΑ ΥΠΟΛΟΓΙΣΤΩΝ Δ Εξάμηνο Εισαγωγή- Βασικές Έννοιες Διδάσκων : Δρ. Παρασκευάς Κίτσος Επίκουρος Καθηγητής e-mail: pkitsos@teimes.gr, pkitsos@ieee.org Αντίρριο 2015 1 ΤΙ ΕΙΝΑΙ Η ΚΡΥΠΤΟΛΟΓΙΑ?

Διαβάστε περισσότερα

Κρυπτογραφία. Κωνσταντίνου Ελισάβετ

Κρυπτογραφία. Κωνσταντίνου Ελισάβετ Κρυπτογραφία Κωνσταντίνου Ελισάβετ ekonstantinou@aegean.gr http://www.icsd.aegean.gr/ekonstantinou Συμμετρικά Κρυπτοσυστήματα κλειδί k Αρχικό κείμενο (m) Αλγόριθμος Κρυπτογράφησης Ε c = E k (m) Κρυπτογραφημένο

Διαβάστε περισσότερα

Οικονομικό Πανεπιστήμιο Αθηνών Τμήμα Πληροφορικής ΠΜΣ στα Πληροφοριακά Συστήματα Κρυπτογραφία και Εφαρμογές Διαλέξεις Ακ.

Οικονομικό Πανεπιστήμιο Αθηνών Τμήμα Πληροφορικής ΠΜΣ στα Πληροφοριακά Συστήματα Κρυπτογραφία και Εφαρμογές Διαλέξεις Ακ. Οικονομικό Πανεπιστήμιο Αθηνών Τμήμα Πληροφορικής ΠΜΣ στα Πληροφοριακά Συστήματα Κρυπτογραφία και Εφαρμογές Διαλέξεις Ακ. Έτους 2015-2016 Μαρκάκης Ευάγγελος markakis@aueb.gr Ντούσκας Θεόδωρος ttouskas@aueb.gr

Διαβάστε περισσότερα

Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου Τμήμα Τηλεπληροφορικής & Διοίκησης

Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου Τμήμα Τηλεπληροφορικής & Διοίκησης Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου Τμήμα Τηλεπληροφορικής & Διοίκησης Κατάλογος Περιεχομένων ΕΙΣΑΓΩΓΉ ΣΤΟ CRYPTOOL... 3 DOWNLOADING CRYPTOOL... 3 ΜΗΧΑΝΙΣΜΟΊ ΚΑΙ ΑΛΓΌΡΙΘΜΟΙ ΚΡΥΠΤΟΓΡΑΦΊΑΣ ΣΤΟ CRYPTOOL...

Διαβάστε περισσότερα

Κρυπτογραφία. Κρυπτοσυστήματα πακέτου (Block ciphers) Άρης Παγουρτζής Στάθης Ζάχος Πέτρος Ποτίκας

Κρυπτογραφία. Κρυπτοσυστήματα πακέτου (Block ciphers) Άρης Παγουρτζής Στάθης Ζάχος Πέτρος Ποτίκας Κρυπτογραφία Κρυπτοσυστήματα πακέτου (Block ciphers) Άρης Παγουρτζής Στάθης Ζάχος Πέτρος Ποτίκας Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Block ciphers και ψευδοτυχαίες

Διαβάστε περισσότερα

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

Ασφάλεια Πληροφοριακών Συστημάτων Εργαστήριο Ασφάλεια Πληροφοριακών Συστημάτων Lab 1 Κλασική Κρυπτογραφία ΤΕΙ ΚΡΗΤΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Fysarakis Konstantinos, PhD kfysarakis@staff.teicrete.gr Γενικές Πληροφορίες Βαθμολόγηση

Διαβάστε περισσότερα

Ασφάλεια Τηλεπικοινωνιακών Συστημάτων ΣΤΑΥΡΟΣ Ν ΝΙΚΟΛΟΠΟΥΛΟΣ 03 ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΚΡΥΠΤΟΛΟΓΙΑ

Ασφάλεια Τηλεπικοινωνιακών Συστημάτων ΣΤΑΥΡΟΣ Ν ΝΙΚΟΛΟΠΟΥΛΟΣ 03 ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΚΡΥΠΤΟΛΟΓΙΑ Ασφάλεια Τηλεπικοινωνιακών Συστημάτων ΣΤΑΥΡΟΣ Ν ΝΙΚΟΛΟΠΟΥΛΟΣ 03 ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΚΡΥΠΤΟΛΟΓΙΑ Περιγραφή μαθήματος Η Κρυπτολογία είναι κλάδος των Μαθηματικών, που ασχολείται με: Ανάλυση Λογικών Μαθηματικών

Διαβάστε περισσότερα

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

ΑΣΦΑΛΕΙΑ & ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ(Θ) ΑΣΦΑΛΕΙΑ & ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ(Θ) Ενότητα 4: ΑΣΦΑΛΕΙΑ & ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ ΔΙΔΑΣΚΩΝ: ΚΩΝΣΤΑΝΤΙΝΟΣ ΧΕΙΛΑΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ 1 Άδειες Χρήσης Το παρόν εκπαιδευτικό

Διαβάστε περισσότερα

Ασφάλεια Υπολογιστικών Συστηµάτων

Ασφάλεια Υπολογιστικών Συστηµάτων Ορισµοί Κρυπτογράφηση: η διεργασία µετασχηµατισµού ενός µηνύµατος µεταξύ ενός αποστολέα και ενός παραλήπτη σε µια ακατανόητη µορφή ώστε αυτό να µην είναι αναγνώσιµο από τρίτους Αποκρυπτογράφηση: η διεργασία

Διαβάστε περισσότερα

Εργαστήριο Ασφάλεια Πληροφοριακών Συστημάτων. Συναρτήσεις Κατακερματισμού

Εργαστήριο Ασφάλεια Πληροφοριακών Συστημάτων. Συναρτήσεις Κατακερματισμού ΤΕΙ ΚΡΗΤΗΣ ΤΜΉΜΑ ΜΗΧΑΝΙΚΏΝ ΠΛΗΡΟΦΟΡΙΚΉΣ Εργαστήριο Ασφάλεια Πληροφοριακών Συστημάτων Συναρτήσεις Κατακερματισμού Ο όρος συνάρτηση κατακερματισμού (hash function) υποδηλώνει ένα μετασχηματισμό που παίρνει

Διαβάστε περισσότερα

Κρυπτογράφηση Αποκρυπτογράφηση Ερευνητική εργασία Β'1 1 ο Γενικό Λύκειο Ευόσμου

Κρυπτογράφηση Αποκρυπτογράφηση Ερευνητική εργασία Β'1 1 ο Γενικό Λύκειο Ευόσμου Κρυπτογράφηση Αποκρυπτογράφηση Ερευνητική εργασία Β'1 1 ο Γενικό Λύκειο Ευόσμου 2013-2014 Project Ορισμοί Ιστορία Η αποκρυπτογράφηση στις μέρες μας Κρυπτογράφηση Αποκρυπτογράφηση Αποκρυπτογραφημένο-Κρυπτογραφημένο

Διαβάστε περισσότερα

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

ΚΡΥΠΤΟΓΡΑΦΙΑ ΚΑΙ ΑΣΦΑΛΕΙΑ ΥΠΟΛΟΓΙΣΤΩΝ. Δ Εξάμηνο ΚΡΥΠΤΟΓΡΑΦΙΑ ΚΑΙ ΑΣΦΑΛΕΙΑ ΥΠΟΛΟΓΙΣΤΩΝ Δ Εξάμηνο Ασύμμετρη Κρυπτογράφηση (Κρυπτογραφία Δημόσιου Κλειδιού) Διδάσκων : Δρ. Παρασκευάς Κίτσος Επίκουρος Καθηγητής e-mail: pkitsos@teimes.gr, pkitsos@ieee.org

Διαβάστε περισσότερα

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

ΑΣΥΜΜΕΤΡΗ ΚΡΥΠΤΟΓΡΑΦΙΑ Lab 3 ΑΣΥΜΜΕΤΡΗ ΚΡΥΠΤΟΓΡΑΦΙΑ Lab 3 Η Aσύμμετρη Kρυπτογραφία ή Κρυπτογραφία Δημοσίου Κλειδιού χρησιμοποιεί δύο διαφορετικά κλειδιά για την κρυπτογράφηση και αποκρυπτογράφηση. Eπινοήθηκε στο τέλος της δεκαετίας

Διαβάστε περισσότερα

κρυπτογραϕία Ψηφιακή ασφάλεια και ιδιωτικότητα Γεώργιος Σπαθούλας Msc Πληροφορική και υπολογιστική βιοιατρική Πανεπιστήμιο Θεσσαλίας

κρυπτογραϕία Ψηφιακή ασφάλεια και ιδιωτικότητα Γεώργιος Σπαθούλας Msc Πληροφορική και υπολογιστική βιοιατρική Πανεπιστήμιο Θεσσαλίας κρυπτογραϕία Ψηφιακή ασφάλεια και ιδιωτικότητα Γεώργιος Σπαθούλας Msc Πληροφορική και υπολογιστική βιοιατρική Πανεπιστήμιο Θεσσαλίας ιδιότητες ασϕάλειας ιδιότητες ασϕάλειας αγαθών Εμπιστευτικότητα (Confidentiality)

Διαβάστε περισσότερα

Πληροφορική Ι. Μάθημα 10 ο Ασφάλεια. Τμήμα Χρηματοοικονομικής & Ελεγκτικής ΤΕΙ Ηπείρου Παράρτημα Πρέβεζας. Δρ. Γκόγκος Χρήστος

Πληροφορική Ι. Μάθημα 10 ο Ασφάλεια. Τμήμα Χρηματοοικονομικής & Ελεγκτικής ΤΕΙ Ηπείρου Παράρτημα Πρέβεζας. Δρ. Γκόγκος Χρήστος Οι διαφάνειες έχουν βασιστεί στο βιβλίο «Εισαγωγή στην επιστήμη των υπολογιστών» του B. Forouzanκαι Firoyz Mosharraf(2 η έκδοση-2010) Εκδόσεις Κλειδάριθμος Τμήμα Χρηματοοικονομικής & Ελεγκτικής ΤΕΙ Ηπείρου

Διαβάστε περισσότερα

Αλγόριθµοι δηµόσιου κλειδιού

Αλγόριθµοι δηµόσιου κλειδιού Αλγόριθµοι δηµόσιου κλειδιού Αλγόριθµοι δηµόσιου κλειδιού Ηδιανοµή του κλειδιού είναι ο πιο αδύναµος κρίκος στα περισσότερα κρυπτογραφικά συστήµατα Diffie και Hellman, 1976 (Stanford Un.) πρότειναν ένα

Διαβάστε περισσότερα

Βασικές Έννοιες Κρυπτογραφίας

Βασικές Έννοιες Κρυπτογραφίας Βασικές Έννοιες Κρυπτογραφίας Παύλος Εφραιμίδης Κρυπτογραφία Βασικές Έννοιες 1 Τι θα μάθουμε Obscurity vs. Security Βασικές υπηρεσίες κρυπτογραφίας: Confidentiality, Authentication, Integrity, Non- Repudiation

Διαβάστε περισσότερα

Ασφάλεια στο Ηλεκτρονικό Επιχειρείν. ΤΕΙ Δυτικής Ελλάδας Τμήμα Διοίκησης Επιχειρήσεων - Πάτρα Κουτσονίκος Γιάννης

Ασφάλεια στο Ηλεκτρονικό Επιχειρείν. ΤΕΙ Δυτικής Ελλάδας Τμήμα Διοίκησης Επιχειρήσεων - Πάτρα Κουτσονίκος Γιάννης Ασφάλεια στο Ηλεκτρονικό Επιχειρείν ΤΕΙ Δυτικής Ελλάδας Τμήμα Διοίκησης Επιχειρήσεων - Πάτρα Κουτσονίκος Γιάννης 1 Κίνδυνοι Η-Ε Μερικοί από τους κινδύνους ενός δικτυακού τόπου Ε-εμπορίου περιλαμβάνουν:

Διαβάστε περισσότερα

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

ΑΣΦΑΛΕΙΑ & ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ(Θ) ΑΣΦΑΛΕΙΑ & ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ(Θ) Ενότητα 5: ΑΣΦΑΛΕΙΑ & ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ ΔΙΔΑΣΚΩΝ: ΚΩΝΣΤΑΝΤΙΝΟΣ ΧΕΙΛΑΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ 1 Άδειες Χρήσης Το παρόν εκπαιδευτικό

Διαβάστε περισσότερα

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

ΚΡΥΠΤΟΓΡΑΦΙΑ ΚΑΙ ΑΣΦΑΛΕΙΑ ΥΠΟΛΟΓΙΣΤΩΝ Δ Εξάμηνο ΚΡΥΠΤΟΓΡΑΦΙΑ ΚΑΙ ΑΣΦΑΛΕΙΑ ΥΠΟΛΟΓΙΣΤΩΝ Δ Εξάμηνο Τοπολογίες Διατάξεων Κρυπτογράφησης- Ασφάλεια Δικτύων και Ασφάλεια Ηλεκτρονικού Ταχυδρομείου Διδάσκων : Δρ. Παρασκευάς Κίτσος Επίκουρος Καθηγητής e-mail:

Διαβάστε περισσότερα

Κρυπτογραφία. Κεφάλαιο 4 Αλγόριθμοι Δημοσίου Κλειδιού (ή ασύμμετροι αλγόριθμοι)

Κρυπτογραφία. Κεφάλαιο 4 Αλγόριθμοι Δημοσίου Κλειδιού (ή ασύμμετροι αλγόριθμοι) Κρυπτογραφία Κεφάλαιο 4 Αλγόριθμοι Δημοσίου Κλειδιού (ή ασύμμετροι αλγόριθμοι) Κρυπτοσυστήματα Δημοσίου κλειδιού Αποστολέας P Encryption C Decryption P Παραλήπτης Προτάθηκαν το 1976 Κάθε συμμετέχων στο

Διαβάστε περισσότερα

Πρόλογος 1. 1 Μαθηµατικό υπόβαθρο 9

Πρόλογος 1. 1 Μαθηµατικό υπόβαθρο 9 Πρόλογος 1 Μαθηµατικό υπόβαθρο 7 1 Μαθηµατικό υπόβαθρο 9 1.1 Η αριθµητική υπολοίπων.............. 10 1.2 Η πολυωνυµική αριθµητική............ 14 1.3 Θεωρία πεπερασµένων οµάδων και σωµάτων.... 17 1.4 Πράξεις

Διαβάστε περισσότερα

Εισαγωγή στην Κρυπτολογία 3. Ασφάλεια Τηλεπικοινωνιακών Συστημάτων Κωδικός DIΤ114 Σταύρος ΝΙΚΟΛΟΠΟΥΛΟΣ

Εισαγωγή στην Κρυπτολογία 3. Ασφάλεια Τηλεπικοινωνιακών Συστημάτων Κωδικός DIΤ114 Σταύρος ΝΙΚΟΛΟΠΟΥΛΟΣ Εισαγωγή στην Κρυπτολογία 3 Ασφάλεια Τηλεπικοινωνιακών Συστημάτων Κωδικός DIΤ114 Σταύρος ΝΙΚΟΛΟΠΟΥΛΟΣ Ακεραιότητα Μονόδρομη Κρυπτογράφηση Ακεραιότητα Αυθεντικότητα μηνύματος Ακεραιότητα μηνύματος Αυθεντικότητα

Διαβάστε περισσότερα

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

ΠΡΟΣΤΑΣΙΑ ΠΡΟΣΩΠΙΚΩΝ ΔΕΔΟΜΕΝΩΝ ΣΤΙΣ ΤΕΧΝΟΛΟΓΙΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΩΝ ΚΑΘΩΣ ΚΑΙ ΣΤΟ ΔΙΑΔΙΚΤΥΟ ΠΡΟΣΤΑΣΙΑ ΠΡΟΣΩΠΙΚΩΝ ΔΕΔΟΜΕΝΩΝ ΣΤΙΣ ΤΕΧΝΟΛΟΓΙΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΩΝ ΚΑΘΩΣ ΚΑΙ ΣΤΟ ΔΙΑΔΙΚΤΥΟ ΔΙΑΔΙΚΤΥΟ Το διαδίκτυο προσφέρει: Μετατροπή των δεδομένων σε ψηφιακή - ηλεκτρονική μορφή. Πρόσβαση

Διαβάστε περισσότερα

Αυθεντικότητα Μηνυμάτων Συναρτήσεις Hash/MAC

Αυθεντικότητα Μηνυμάτων Συναρτήσεις Hash/MAC Αυθεντικότητα Μηνυμάτων Συναρτήσεις Hash/MAC Τμήμα Μηχ. Πληροφορικής ΤΕΙ Κρήτης Αυθεντικότητα Μηνυμάτων 1 Αυθεντικότητα Μηνύματος Εφαρμογές Προστασία ακεραιότητας Εξακρίβωση ταυτότητας αποστολέα Μη άρνηση

Διαβάστε περισσότερα

Εργαστήριο Ασφάλεια Πληροφοριακών Συστημάτων. PGP (Pretty Good Privacy)

Εργαστήριο Ασφάλεια Πληροφοριακών Συστημάτων. PGP (Pretty Good Privacy) Εργαστήριο Ασφάλεια Πληροφοριακών Συστημάτων PGP (Pretty Good Privacy) Εισαγωγή Το λογισμικό Pretty Good Privacy (PGP), το οποίο σχεδιάστηκε από τον Phill Zimmerman, είναι ένα λογισμικό κρυπτογράφησης

Διαβάστε περισσότερα

Ψηφιακά Πιστοποιητικά Ψηφιακές Υπογραφές

Ψηφιακά Πιστοποιητικά Ψηφιακές Υπογραφές ΤΕΙ Κρητης Τμήμα Μηχανικών Πληροφορικής Εργαστήριο Ασφάλεια Πληροφοριακών Συστημάτων Ψηφιακά Πιστοποιητικά Ψηφιακές Υπογραφές Ψηφιακά Πιστοποιητικά Υποδομή δημόσιου κλειδιού (Public Key Infrastructure

Διαβάστε περισσότερα

Hash Functions. μεγεθος h = H(M) ολους. στο μηνυμα. στο συγκεκριμενο hash (one-way property)

Hash Functions. μεγεθος h = H(M) ολους. στο μηνυμα. στο συγκεκριμενο hash (one-way property) Hash Functions Συρρικνωνει μηνυμα οποιουδηποτε μηκους σε σταθερο μεγεθος h = H(M) Συνηθως θεωρουμε οτι η hash function ειναι γνωστη σε ολους Το hash χρησιμοποιειται για να ανιχνευσει τυχον αλλαγες στο

Διαβάστε περισσότερα

Χρήστος Ξενάκης Τμήμα Ψηφιακών Συστημάτων

Χρήστος Ξενάκης Τμήμα Ψηφιακών Συστημάτων Βασικά Θέματα Κρυπτογραφίας Χρήστος Ξενάκης Τμήμα Ψηφιακών Συστημάτων Πανεπιστήμιο Πειραιά Αντικείμενο μελέτης Εφαρμοσμένη Κρυπτογραφία, απαραίτητη για την Ασφάλεια Δικτύων Υπολογιστών Χαρακτηριστικά των

Διαβάστε περισσότερα

Παύλος Εφραιμίδης. Βασικές Έννοιες Κρυπτογραφίας. Ασφ Υπολ Συστ

Παύλος Εφραιμίδης. Βασικές Έννοιες Κρυπτογραφίας. Ασφ Υπολ Συστ Παύλος Εφραιμίδης Βασικές Έννοιες Κρυπτογραφίας Ασφ Υπολ Συστ 1 Βασικές υπηρεσίες/εφαρμογές κρυπτογραφίες: Confidentiality, Authentication, Integrity, Non- Repudiation Βασικές έννοιες κρυπτογραφίας 2 3

Διαβάστε περισσότερα

Ασφάλεια Υπολογιστικών Συστημάτων

Ασφάλεια Υπολογιστικών Συστημάτων Ασφάλεια Υπολογιστικών Συστημάτων Ενότητα 4: Pretty Good Privacy (PGP) Νικολάου Σπύρος Τμήμα Μηχανικών Πληροφορικής ΤΕ Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.

Διαβάστε περισσότερα

8.3 Ασφάλεια ικτύων. Ερωτήσεις

8.3 Ασφάλεια ικτύων. Ερωτήσεις 8.3 Ασφάλεια ικτύων Ερωτήσεις 1. Με τι ασχολείται η ασφάλεια των συστηµάτων; 2. Τι είναι αυτό που προστατεύεται στην ασφάλεια των συστηµάτων και για ποιο λόγο γίνεται αυτό; 3. Ποια η διαφορά ανάµεσα στους

Διαβάστε περισσότερα

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

ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ ΕΦΑΡΜΟΓΕΣ ΤΗΣ ΚΡΥΠΤΟΓΡΑΦΙΑΣ ΤΕΙ ΔΥΤΙΚΗΣ ΜΑΚΕΔΟΝΙΑΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ ΠΜΣ ΕΠΙΧΕΙΡΗΜΑΤΙΚΗΣ ΠΛΗΡΟΦΟΡΙΚΗ ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ ΕΦΑΡΜΟΓΕΣ ΤΗΣ ΚΡΥΠΤΟΓΡΑΦΙΑΣ ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ ΑΠΟΣΤΟΛΙΔΟΥ ΚΥΡΙΑΚΗ ΕΠΙΒΛΕΠΩΝ: ΜΠΙΣΜΠΑΣ ΑΝΤΩΝΙΟΣ, Καθηγητής

Διαβάστε περισσότερα

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

Διαχείριση Ασφάλειας και Εμπιστοσύνης σε Πολιτισμικά Περιβάλλοντα Διαχείριση Ασφάλειας και Εμπιστοσύνης σε Πολιτισμικά Περιβάλλοντα Ενότητα 5: ΚΡΥΠΤΟΓΡΑΦΗΣΗ Δημήτριος Κουκόπουλος Σχολή Οργάνωσης και Διοίκησης Επιχειρήσεων Τμήμα Διαχείρισης Πολιτισμικού Περιβάλλοντος

Διαβάστε περισσότερα

UP class. & DES και AES

UP class. & DES και AES Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Σημειώσεις Διαλέξεων UP class & DES και AES Επιμέλεια σημειώσεων: Ιωάννης Νέμπαρης Μάριος Κουβαράς Διδάσκοντες: Στάθης Ζάχος

Διαβάστε περισσότερα

Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων. Κρυπτογραφία. Κρυπτογραφικές Συναρτήσεις. Χρήστος Ξενάκης

Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων. Κρυπτογραφία. Κρυπτογραφικές Συναρτήσεις. Χρήστος Ξενάκης Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων Κρυπτογραφία Κρυπτογραφικές Συναρτήσεις Χρήστος Ξενάκης Ψευδοτυχαίες ακολουθίες Η επιλογή τυχαίων αριθμών είναι ένα βασικό σημείο στην ασφάλεια των κρυπτοσυστημάτων

Διαβάστε περισσότερα

Ασφάλεια Ασύρματων & Κινητών Επικοινωνιών

Ασφάλεια Ασύρματων & Κινητών Επικοινωνιών Ασφάλεια Ασύρματων & Κινητών Επικοινωνιών Ασύρματες Επικοινωνίες Μέρος V Χρήστος Ξενάκης Τμήμα Ψηφιακών Συστημάτων Πανεπιστήμιο Πειραιώς Slide: 1/30 Περιεχόμενα IEEE 802.11i ΤΟ ΠΡΩΤΟΚΟΛΛΟ CCMP Γενικά Λίγα

Διαβάστε περισσότερα

Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου 11η Διάλεξη: Ασφάλεια στο Web

Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου 11η Διάλεξη: Ασφάλεια στο Web Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου 11η Διάλεξη: Ασφάλεια στο Web Δρ. Απόστολος Γκάμας Λέκτορας (407/80) gkamas@uop.gr Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 1 1 Εισαγωγικά Βασικές

Διαβάστε περισσότερα

El Gamal Αλγόριθμος. Κώστας Λιμνιώτης Κρυπτογραφία - Εργαστηριακό μάθημα 7 2

El Gamal Αλγόριθμος. Κώστας Λιμνιώτης Κρυπτογραφία - Εργαστηριακό μάθημα 7 2 Κρυπτογραφία Εργαστηριακό μάθημα 7 (Αλγόριθμοι Δημοσίου Κλειδιού) α) El Gamal β) Diffie-Hellman αλγόριθμος για την ανταλλαγή συμμετρικού κλειδιού κρυπτογράφησης El Gamal Αλγόριθμος Παράμετροι συστήματος:

Διαβάστε περισσότερα

Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων. Κρυπτογραφία. Ασύμμετρη Κρυπτογραφία. Χρήστος Ξενάκης

Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων. Κρυπτογραφία. Ασύμμετρη Κρυπτογραφία. Χρήστος Ξενάκης Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων Κρυπτογραφία Ασύμμετρη Κρυπτογραφία Χρήστος Ξενάκης Ασύμμετρη κρυπτογραφία Μονόδρομες συναρτήσεις με μυστική πόρτα Μια συνάρτηση f είναι μονόδρομη, όταν δοθέντος

Διαβάστε περισσότερα

Εφαρμοσμένη Κρυπτογραφία Ι

Εφαρμοσμένη Κρυπτογραφία Ι Εφαρμοσμένη Κρυπτογραφία Ι Κωνσταντίνου Ελισάβετ ekonstantinou@aegean.gr http://www.icsd.aegean.gr/ekonstantinou Συμμετρικά Κρυπτοσυστήματα κλειδί k Αρχικό κείμενο (m) Αλγόριθμος Κρυπτογράφησης Ε c = E

Διαβάστε περισσότερα

YΒΡΙΔΙΚΗ ΚΡΥΠΤΟΓΡΑΦΙΑ

YΒΡΙΔΙΚΗ ΚΡΥΠΤΟΓΡΑΦΙΑ ΤΕΙ Κρητης Τμήμα Μηχανικών Πληροφορικής Εργαστήριο Ασφάλεια Πληροφοριακών Συστημάτων YΒΡΙΔΙΚΗ ΚΡΥΠΤΟΓΡΑΦΙΑ Εισαγωγή Ο στόχος της υβριδικής μεθόδου είναι να αντισταθμίσει τα μειονεκτήματα της συμμετρικής

Διαβάστε περισσότερα

Αλγόριθµοι συµµετρικού κλειδιού

Αλγόριθµοι συµµετρικού κλειδιού Αλγόριθµοι συµµετρικού κλειδιού Αλγόριθµοι συµµετρικού κλειδιού Χρησιµοποιούν το ίδιο κλειδί για την κρυπτογράφηση και την αποκρυπτογράφηση Υλοποιούνται τόσο µε υλικό (hardware) όσο και µε λογισµικό (software)

Διαβάστε περισσότερα

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

ΚΡΥΠΤΟΓΡΑΦΙΑ ΚΑΙ ΑΣΦΑΛΕΙΑ ΥΠΟΛΟΓΙΣΤΩΝ Δ Εξάμηνο ΚΡΥΠΤΟΓΡΑΦΙΑ ΚΑΙ ΑΣΦΑΛΕΙΑ ΥΠΟΛΟΓΙΣΤΩΝ Δ Εξάμηνο Τοπολογίες Διατάξεων Κρυπτογράφησης- Εισαγωγή στην Ασφάλεια Δικτύων και Ασφάλεια Ηλεκτρονικού Ταχυδρομείου Διδάσκων : Δρ. Παρασκευάς Κίτσος Επίκουρος Καθηγητής

Διαβάστε περισσότερα

Πρώτοι αριθμοί και κρυπτογραφικός αλγόριθμος RSA. Άριστος Χαραλάμπους, Δημήτρης Χαραλάμπους, Νικόλας Παρασκευάς

Πρώτοι αριθμοί και κρυπτογραφικός αλγόριθμος RSA. Άριστος Χαραλάμπους, Δημήτρης Χαραλάμπους, Νικόλας Παρασκευάς Πρώτοι αριθμοί και κρυπτογραφικός αλγόριθμος RSA Άριστος Χαραλάμπους, Δημήτρης Χαραλάμπους, Νικόλας Παρασκευάς Πρώτοι Αριθμοί Πρώτος αριθμός ονομάζεται ένας φυσικός αριθμός (δηλ. θετικός ακέραιος) μεγαλύτερος

Διαβάστε περισσότερα

Στοιχεία Θεωρίας Αριθμών & Εφαρμογές στην Κρυπτογραφία

Στοιχεία Θεωρίας Αριθμών & Εφαρμογές στην Κρυπτογραφία Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Σημειώσεις Διαλέξεων Στοιχεία Θεωρίας Αριθμών & Εφαρμογές στην Κρυπτογραφία Επιμέλεια σημειώσεων: Ελένη Μπακάλη Άρης Παγουρτζής

Διαβάστε περισσότερα

Ασφάλεια Υπολογιστικών Συστημάτων

Ασφάλεια Υπολογιστικών Συστημάτων Ασφάλεια Υπολογιστικών Συστημάτων Ενότητα 3: Κρυπτογραφία δημόσιου κλειδιού Νικολάου Σπύρος Τμήμα Μηχανικών Πληροφορικής ΤΕ Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative

Διαβάστε περισσότερα

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

ΚΡΥΠΤΟΓΡΑΦΙΑ ΚΑΙ ΑΣΦΑΛΕΙΑ ΥΠΟΛΟΓΙΣΤΩΝ Δ Εξάμηνο ΚΡΥΠΤΟΓΡΑΦΙΑ ΚΑΙ ΑΣΦΑΛΕΙΑ ΥΠΟΛΟΓΙΣΤΩΝ Δ Εξάμηνο Ψηφιακή Υπογραφή και Αυθεντικοποίηση Μηνύματος Διδάσκων : Δρ. Παρασκευάς Κίτσος Επίκουρος Καθηγητής e-mail: pkitsos@teimes.gr, pkitsos@ieee.org Αντίρριο

Διαβάστε περισσότερα

Παύλος Εφραιμίδης. Βασικές Έννοιες Κρυπτογραφίας. Ασφ Υπολ Συστ

Παύλος Εφραιμίδης. Βασικές Έννοιες Κρυπτογραφίας. Ασφ Υπολ Συστ Παύλος Εφραιμίδης Βασικές Έννοιες Κρυπτογραφίας Ασφ Υπολ Συστ 1 θα εξετάσουμε τα ακόλουθα εργαλεία κρυπτογραφίας: ψηφιακές υπογραφές κατακερματισμός (hashing) συνόψεις μηνυμάτων μ (message digests) ψευδοτυχαίοι

Διαβάστε περισσότερα

ρ. Κ. Σ. Χειλάς, ίκτυα Η/Υ ΙΙΙ, Τ.Ε.Ι. Σερρών, 2007

ρ. Κ. Σ. Χειλάς, ίκτυα Η/Υ ΙΙΙ, Τ.Ε.Ι. Σερρών, 2007 Ψηφιακές υπογραφές Ψηφιακές υπογραφές Υπάρχει ανάγκη αντικατάστασης των χειρόγραφων υπογραφών µε ψηφιακές (ΨΥ) Αυτές πρέπει να διαθέτουν τα εξής χαρακτηριστικά: Ο παραλήπτης πρέπει να είναι σε θέση να

Διαβάστε περισσότερα

Λειτουργικά Συστήματα (ΗΥ321)

Λειτουργικά Συστήματα (ΗΥ321) Λειτουργικά Συστήματα (ΗΥ321) Διάλεξη 19: Ασφάλεια Κρυπτογράφηση Βασική ιδέα: Αποθήκευσε και μετάδωσε την πληροφορία σε κρυπτογραφημένη μορφή που «δε βγάζει νόημα» Ο βασικός μηχανισμός: Ξεκίνησε από το

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Ασφάλεια Υπολογιστικών Συστημάτων

Ασφάλεια Υπολογιστικών Συστημάτων Ασφάλεια Υπολογιστικών Συστημάτων Ενότητα 2: Συμμετρική κρυπτογραφία Νικολάου Σπύρος Τμήμα Μηχανικών Πληροφορικής ΤΕ Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.

Διαβάστε περισσότερα

Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων. Κρυπτογραφία. Συμμετρική Κρυπτογραφία. Χρήστος Ξενάκης

Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων. Κρυπτογραφία. Συμμετρική Κρυπτογραφία. Χρήστος Ξενάκης Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων Κρυπτογραφία Συμμετρική Κρυπτογραφία Χρήστος Ξενάκης Χρονολογείται από την Αρχαία Αίγυπτο Η πλειοψηφία των συμμετρικών κρυπτοαλγορίθμων είναι κρυπτοαλγόριθμοι

Διαβάστε περισσότερα

ΕΚΦΩΝΗΣΕΙΣ ΘΕΜΑ Α. α. Πριν εμφανιστεί η τεχνολογία ISDN οι υπηρεσίες φωνής, εικόνας και δεδομένων απαιτούσαν διαφορετικά δίκτυα.

ΕΚΦΩΝΗΣΕΙΣ ΘΕΜΑ Α. α. Πριν εμφανιστεί η τεχνολογία ISDN οι υπηρεσίες φωνής, εικόνας και δεδομένων απαιτούσαν διαφορετικά δίκτυα. ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ Γ ΤΑΞΗ ΕΠΑΛ (ΟΜΑΔΑ Α ) & ΜΑΘΗΜΑΤΩΝ ΕΙΔΙΚΟΤΗΤΑΣ ΕΠΑΛ (ΟΜΑΔΑ Β ) ΘΕΜΑ Α ΚΥΡΙΑΚΗ 04/05/2014- ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΔΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ ΙΙ ΣΥΝΟΛΟ ΣΕΛΙΔΩΝ: ΟΚΤΩ (8) ΕΚΦΩΝΗΣΕΙΣ Α1. Να χαρακτηρίσετε

Διαβάστε περισσότερα

Χρήστος Ξενάκης Τμήμα Ψηφιακών Συστημάτων Πανεπιστήμιο Πειραιά

Χρήστος Ξενάκης Τμήμα Ψηφιακών Συστημάτων Πανεπιστήμιο Πειραιά Ασφάλεια στο Internet: Πρωτόκολλα Ασφάλειας Επιπέδου Εφαρμογής Χρήστος Ξενάκης Τμήμα Ψηφιακών Συστημάτων Πανεπιστήμιο Πειραιά Το μοντέλο του Internet t 2/36 Σχέσεις πρωτοκόλλων ασφαλείας και TCP/IP στοίβας

Διαβάστε περισσότερα

Κρυπτογραφία. Κεφάλαιο 3 Αλγόριθμοι τμήματος Block ciphers

Κρυπτογραφία. Κεφάλαιο 3 Αλγόριθμοι τμήματος Block ciphers Κρυπτογραφία Κεφάλαιο 3 Αλγόριθμοι τμήματος Block ciphers Αλγόριθμοι τμήματος Τμήμα (μπλοκ) αρχικού μηνύματος μήκους n encrypt decrypt Τμήμα (μπλοκ) κρυπτογράμματος μήκους n 2 Σχηματική αναπαράσταση Plaintext

Διαβάστε περισσότερα

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

ΚΡΥΠΤΟΓΡΑΦΙΑ ΚΑΙ ΑΣΦΑΛΕΙΑ ΥΠΟΛΟΓΙΣΤΩΝ. Δ Εξάμηνο ΚΡΥΠΤΟΓΡΑΦΙΑ ΚΑΙ ΑΣΦΑΛΕΙΑ ΥΠΟΛΟΓΙΣΤΩΝ Δ Εξάμηνο Οι Αλγόριθμοι Κρυπτογραφίας και οι Ιδιότητές τους Διδάσκων : Δρ. Παρασκευάς Κίτσος Επίκουρος Καθηγητής e-mail: pkitsos@teimes.gr, pkitsos@ieee.org Αντίρριο

Διαβάστε περισσότερα

ΗΛΕΚΤΡΟΝΙΚΗ ΔΙΑΚΥΒΕΡΝΗΣΗ ΣΤΗΝ ΕΕ

ΗΛΕΚΤΡΟΝΙΚΗ ΔΙΑΚΥΒΕΡΝΗΣΗ ΣΤΗΝ ΕΕ ΗΛΕΚΤΡΟΝΙΚΗ ΔΙΑΚΥΒΕΡΝΗΣΗ Ψηφιακές υπογραφές ΝΙΚΟΣ ΣΑΡΙΔΑΚΗΣ ΣΤΑΣΗΣ ΑΝΤΩΝΗΣ Γενική Γραμματεία Δημόσιας Διοίκησης και Ηλεκτρονικής Διακυβέρνησης ΥΠΕΣΔΔΑ 1 ΗΛΕΚΤΡΟΝΙΚΗ ΔΙΑΚΥΒΕΡΝΗΣΗ ΣΤΗΝ ΕΕ ΠΟΛΙΤΕΣ ΕΠΙΧΕΙΡΗΣΕΙΣ

Διαβάστε περισσότερα

Πρόβληµα 2 (15 µονάδες)

Πρόβληµα 2 (15 µονάδες) ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΑΘΗΜΑ: ΚΡΥΠΤΟΓΡΑΦΙΑ ΚΑΙ ΕΦΑΡΜΟΓΕΣ, 2013-2014 ΔΙΔΑΣΚΩΝ: Ε. Μαρκάκης Πρόβληµα 1 (5 µονάδες) 2 η Σειρά Ασκήσεων Προθεσµία Παράδοσης: 19/1/2014 Υπολογίστε

Διαβάστε περισσότερα

ΕΠΑΝΑΛΗΠΤΙΚΟ ΤΕΣΤ ΣΤΗΝ ΕΝΟΤΗΤΑ

ΕΠΑΝΑΛΗΠΤΙΚΟ ΤΕΣΤ ΣΤΗΝ ΕΝΟΤΗΤΑ ΕΠΑ.Λ. Άμφισσας Σχολικό Έτος : 2011-2012 Τάξη : Γ Τομέας : Πληροφορικής Μάθημα : ΔΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ ΙΙ Διδάσκων : Χρήστος Ρέτσας Η-τάξη : tiny.cc/retsas-diktya2 ΕΠΑΝΑΛΗΠΤΙΚΟ ΤΕΣΤ ΣΤΗΝ ΕΝΟΤΗΤΑ 8.3.4-8.3.6

Διαβάστε περισσότερα

Στοιχεία Θεωρίας Αριθμών & Εφαρμογές στην Κρυπτογραφία

Στοιχεία Θεωρίας Αριθμών & Εφαρμογές στην Κρυπτογραφία Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Σημειώσεις Διαλέξεων Στοιχεία Θεωρίας Αριθμών & Εφαρμογές στην Κρυπτογραφία Επιμέλεια σημειώσεων: Ελένη Μπακάλη Άρης Παγουρτζής

Διαβάστε περισσότερα

Freedom of Speech. Κρυπτογραφία και ασφαλής ανταλλαγή πληροφοριών στο Internet

Freedom of Speech. Κρυπτογραφία και ασφαλής ανταλλαγή πληροφοριών στο Internet Freedom of Speech Κρυπτογραφία και ασφαλής ανταλλαγή πληροφοριών στο Internet Freedom of Speech Ποιός ; & Γιατί ; Τι είναι Ιστορικά Στόχοι Είδη Μοντέρνων Αλγορίθμων Μοντέλα Εμπιστοσύνης 14/03/2012 Freedom

Διαβάστε περισσότερα

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

ΑΣΥΜΜΕΤΡΗ ΚΡΥΠΤΟΓΡΑΦΙΑ ΤΕΙ Κρήτης ΕΠΠ Εργαστήριο Ασφάλεια Πληροφοριακών Συστηµάτων ΑΣΥΜΜΕΤΡΗ ΚΡΥΠΤΟΓΡΑΦΙΑ ΤΕΙ Κρητης Τµηµα Εφαρµοσµενης Πληροφορικης Και Πολυµεσων Fysarakis Konstantinos, PhD kfysarakis@staff.teicrete.gr Εισαγωγή

Διαβάστε περισσότερα

Κρυπτογραφία. MAC - Γνησιότητα/Ακεραιότητα μηνύματος. Πέτρος Ποτίκας

Κρυπτογραφία. MAC - Γνησιότητα/Ακεραιότητα μηνύματος. Πέτρος Ποτίκας Κρυπτογραφία MAC - Γνησιότητα/Ακεραιότητα μηνύματος Πέτρος Ποτίκας Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Σχολή ΗΜΜΥ ΕΜΠ Κρυπτογραφία 1 / 37 Περιεχόμενα 1 Message

Διαβάστε περισσότερα

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

ΚΡΥΠΤΟΓΡΑΦΗΣΗ ΔΗΜΟΣΙΟΥ ΚΛΕΙΔΙΟΥ ΚΡΥΠΤΟΓΡΑΦΗΣΗ ΔΗΜΟΣΙΟΥ ΚΛΕΙΔΙΟΥ Η κρυπτογράφηση δημοσίου κλειδιού (Public Key Cryptography) ή ασύμμετρου κλειδιού (Asymmetric Cryptography) επινοήθηκε στο τέλος της δεκαετίας του 1970 από τους Whitfield

Διαβάστε περισσότερα

Κρυπτογραφία και Ηλεκτρονικοί Υπολογιστές. ΣΥΝΤΕΛΕΣΤΕΣ: Κραβαρίτης Αλέξανδρος Μαργώνη Αγγελική Χαλιμούρδα Κων/να

Κρυπτογραφία και Ηλεκτρονικοί Υπολογιστές. ΣΥΝΤΕΛΕΣΤΕΣ: Κραβαρίτης Αλέξανδρος Μαργώνη Αγγελική Χαλιμούρδα Κων/να Κρυπτογραφία και Ηλεκτρονικοί Υπολογιστές ΣΥΝΤΕΛΕΣΤΕΣ: Κραβαρίτης Αλέξανδρος Μαργώνη Αγγελική Χαλιμούρδα Κων/να Ορισμός κρυπτογραφίας Με τον όρο κρυπτογραφία, αναφερόμαστε στη μελέτη μαθηματικών τεχνικών

Διαβάστε περισσότερα

Κεφάλαιο 7. Σύγχρονοι Κρυπτογραφικοί Αλγόριθμοι

Κεφάλαιο 7. Σύγχρονοι Κρυπτογραφικοί Αλγόριθμοι Κεφάλαιο 7. Σύγχρονοι Κρυπτογραφικοί Αλγόριθμοι Σύνοψη Στο κεφάλαιο αυτό, θα παρουσιαστούν ορισμένοι από τους γνωστούς σύγχρονους συμμετρικούς και ασύμμετρους κρυπτογραφικούς αλγορίθμους. Με τον όρο σύγχρονοι,

Διαβάστε περισσότερα

KEΦΑΛΑΙΟ 5 ΨΗΦΙΑΚΑ ΚΡΥΠΤΟΣΥΣΤΗΜΑΤΑ

KEΦΑΛΑΙΟ 5 ΨΗΦΙΑΚΑ ΚΡΥΠΤΟΣΥΣΤΗΜΑΤΑ Βασικές έννοιες KEΦΑΛΑΙΟ 5 ΨΗΦΙΑΚΑ ΚΡΥΠΤΟΣΥΣΤΗΜΑΤΑ Ένα κρυπτοσύστηµα όπου οι χώροι των καθαρών µηνυµάτων, των κρυπτογραφηµένων µυνηµάτων και των κλειδιών είναι ο m,,,... m = καλείται ψηφιακό κρυπτοσύστηµα.

Διαβάστε περισσότερα

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

Ασφάλεια Πληροφοριακών Συστηµάτων Ασφάλεια Πληροφοριακών Συστηµάτων Κρυπτογραφία/Ψηφιακές Υπογραφές Διάλεξη 3η Δρ. A. Στεφανή Τµ. Διοίκησης Επιχειρήσεων, ΤΕΙ Δυτ. Ελλάδας Ψηφιακές Υπογραφές- Βασικές Αρχές Η Ψηφιακή Υπογραφή είναι ένα µαθηµατικό

Διαβάστε περισσότερα

Πρόβληµα 2 (12 µονάδες)

Πρόβληµα 2 (12 µονάδες) ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΑΘΗΜΑ: ΚΡΥΠΤΟΓΡΑΦΙΑ ΚΑΙ ΕΦΑΡΜΟΓΕΣ, 2015-2016 ΔΙΔΑΣΚΟΝΤΕΣ: Ε. Μαρκάκης, Θ. Ντούσκας Λύσεις 2 ης Σειράς Ασκήσεων Πρόβληµα 1 (12 µονάδες) 1) Υπολογίστε τον

Διαβάστε περισσότερα