Κεφάλαιο 8. Ακεραιότητα και Αυθεντικότητα Μηνυμάτων

Σχετικά έγγραφα
ΚΡΥΠΤΟΓΡΑΦΙΑ ΚΑΙ ΑΣΦΑΛΕΙΑ ΥΠΟΛΟΓΙΣΤΩΝ

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

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

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

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

Κεφάλαια 2&21. Συναρτήσεις κατακερματισμού Πιστοποίηση ταυτότητας μηνυμάτων

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

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

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

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

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

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

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

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

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

Κεφάλαιο 21. Κρυπτογραφία δημόσιου κλειδιού και πιστοποίηση ταυτότητας μηνυμάτων

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

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

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

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

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

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

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

Αυθεντικοποίηση μηνύματος και Κρυπτογραφία δημόσιου κλειδιού

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

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

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

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

Κεφάλαιο 2. Κρυπτογραφικά εργαλεία

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

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

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

Cryptography and Network Security Chapter 13. Fifth Edition by William Stallings

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

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

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

Κρυπτογραφία. Μονόδρομες συναρτήσεις - Συναρτήσεις σύνοψης. Άρης Παγουρτζής - Πέτρος Ποτίκας

Εργαστήριο Ασφάλεια Πληροφοριακών Συστημάτων SSL/TLS

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

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

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

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

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

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

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

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

Δίκτυα Υπολογιστών Ενότητα 6: Secure Sockets Layer - SSL

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

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

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

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

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

Cryptography and Network Security Overview & Chapter 1. Fifth Edition by William Stallings

6/1/2010. Ασφάλεια Ασύρματων & Κινητών Επικοινωνιών. Περιεχόμενα. Εισαγωγή /1 IEEE

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

Στοιχεία Κρυπτογραφίας

Κρυπτογραφία. Συναρτήσεις μονής κατεύθυνσης - Συναρτήσεις κατακερματισμού. Άρης Παγουρτζής - Πέτρος Ποτίκας

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

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

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

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

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

Διδάσκουσα: Χάλκου Χαρά,

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

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

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

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

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

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

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

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

Α.ΤΕΙ ΚΡΗΤΗΣ ΠΑΡΑΡΤΗΜΑ ΧΑΝΙΩΝ ΤΜΗΜΑ ΗΛΕΚΤΡΟΝIΚΩΝ ΜΗΧΑΝΙΚΩΝ

KΕΦΑΛΑΙΟ 5 ΨΗΦΙΑΚΕΣ ΥΠΟΓΡΑΦΕΣ

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

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

Κρυπτογραφικά εργαλεία

Κρυπτογραφία. Hash functions. Πέτρος Ποτίκας. Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

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

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

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

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

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

Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά

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

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

Cryptography and Network Security Chapter 16. Fifth Edition by William Stallings

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

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

Ασφάλεια ικτύων (Computer Security)

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

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

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

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

Hashing Attacks and Applications. Dimitris Mitropoulos

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

Παύλος Εφραιμίδης. Κρυπτογραφικά Πρωτόκολλα. Ασφ Υπολ Συστ

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

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

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

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

Transcript:

Κεφάλαιο 8. Ακεραιότητα και Αυθεντικότητα Μηνυμάτων Σύνοψη Κατά τη μεταφορά δεδομένων με τη μορφή μηνυμάτων στο Διαδίκτυο, κρίσιμο ζητούμενο αποτελεί η ύπαρξη μηχανισμών για την επιβεβαίωση της ακεραιότητας και αυθεντικότητας του κάθε μηνύματος στο σημείο παραλαβής του. Σημαντικό εργαλείο σε αυτή την κατεύθυνση αποτελούν οι μηχανισμοί ελέγχου ακεραιότητας, για παράδειγμα, με τη χρήση κρυπτογραφικών συναρτήσεων κατακερματισμού (cryptographic hash functions), καθώς και ελέγχου αυθεντικότητας του αποστολέα του μηνύματος με πρόσθετες τεχνικές. Στο κεφάλαιο αυτό, θα εξεταστούν τόσο ορισμένοι από τους πιο γνωστούς μηχανισμούς ελέγχου, όσο και ορισμένες από τις πιο γνωστές συναρτήσεις κατακερματισμού, στις οποίες συνήθως βασίζονται. Προαπαιτούμενη γνώση Για την παρακολούθηση του κεφαλαίου, είναι απαραίτητη η μελέτη των Κεφαλαίων 6 και 7, όπου παρουσιάζονται οι βασικές αρχές της κρυπτογραφίας και γίνεται αναφορά σε κρυπτογραφικούς αλγόριθμους. 8.1 Συναρτήσεις Κατακερματισμού Μια συνάρτηση κατακερματισμού (hashing function) h δέχεται ως είσοδο μια σειρά m από bit, με οποιοδήποτε μήκος, ενώ παράγει στην έξοδο μια σειρά h(m) από bit με ένα προκαθορισμένο σταθερό μήκος, έστω k bit (λειτουργία συμπίεσης). Μια βασική ιδιότητα των συναρτήσεων κατακερματισμού είναι η ευκολία υπολογισμού (ease-of-computation) της εξόδου, γνωστής ως συνόψιση μηνύματος (message digest ή hash value). Ο υπολογισμός της συνόψισης h ενός μηνύματος m γίνεται με επαναληπτική εφαρμογή μιας συνάρτησης συμπίεσης στις δέσμες x i, όπου i = 1 n, στις οποίες χωρίζεται το μήνυμα. Ξεκινώντας από μια σταθερή αρχική τιμή συνόψισης h 0, υπολογίζονται οι ενδιάμεσες συνοψίσεις, ως εξής: h i = f (x i h i-1), για i = 1 n, όπου το σύμβολο σημαίνει συνένωση (concatenation). H τελευταία υπολογισμένη συνόψιση h n είναι η τελική συνόψιση h του μηνύματος m. Στον πυρήνα μιας συνάρτησης κατακερματισμού, υπάρχει η συνάρτηση συμπίεσης f που δέχεται ως εισόδους σειρές από bit σταθερού μήκους (Εικόνα 8.1). Εικόνα 8.1 Λειτουργία συνάρτησης κατακερματισμού. 8.1.1 Μέγεθος μηνύματος και συμπλήρωση δέσμης Πριν την εφαρμογή μιας συνάρτησης κατακερματισμού, κάθε είσοδος (μήνυμα), ανεξαρτήτως μήκους (πλήθους από bit), χωρίζεται σε δέσμες x 1, x 2,, x n με σταθερό μέγεθος j bit. Επειδή η τελευταία δέσμη πιθανώς να μην έχει μέγεθος j bit, εφαρμόζονται τεχνικές συμπλήρωσης (padding) ως εξής:

Μέθοδος 1: Πρόσθεση όσων μηδενικών (ή κανενός) χρειάζεται για να συμπληρωθεί η τελευταία δέσμη (η παλιότερη μέθοδος). Μέθοδος 2: Πρόσθεση ενός μηδενικού και κατόπιν τόσων μηδενικών όσων χρειάζεται (μπορεί να προκαλεί τη δημιουργία μιας επιπλέον δέσμης). Μέθοδος 3: Όπως και η μέθοδος 2, αλλά επιπλέον περιλαμβάνεται ένας αριθμός για το μήκος των δεδομένων πριν το γέμισμα. Αν δεν γνωστοποιείται, με κάποιο συγκεκριμένο τρόπο στη μεριά του παραλήπτη, το μέγεθος του κατειλημμένου μέρους της τελευταίας δέσμης πριν τη συμπλήρωσή της, τότε πρέπει να χρησιμοποιείται είτε η μέθοδος 2 είτε η μέθοδος 3, που ανιχνεύουν την πιθανή κακοπροαίρετη πρόσθεση/διαγραφή των τελευταίων μηδενικών. Η μέθοδος 1 χρησιμοποιείται σε εφαρμογές όπου το μήκος του κάθε μηνύματος είναι προκαθορισμένο και σταθερό. 8.1.2 Απαιτήσεις ανθεκτικότητας Οι απαιτήσεις ασφάλειας για την ανθεκτικότητα μιας συνάρτησης κατακερματισμού περιλαμβάνουν τις ακόλουθες ιδιότητες (αντοχές): Αντοχή προαπεικόνισης (preimage resistance) ή μονόδρομη συμπεριφορά (one-way): Δεδομένης μια τιμής εξόδου y, είναι γενικά υπολογιστικά ανέφικτο να βρεθεί μια τιμή εισόδου x τέτοια ώστε h(x) = y. Αντοχή δεύτερης προαπεικόνισης (second preimage resistance) ή ασθενής αντοχή σε συγκρούσεις (weak collision resistance): Δεδομένης μιας τιμής εισόδου x και της εξόδου h(x), είναι υπολογιστικά ανέφικτο να βρεθεί μια άλλη διαφορετική τιμή εισόδου x τέτοια ώστε h(x) = h(x ). Αντοχή σε συγκρούσεις (collision resistance) ή σθεναρή αντοχή σε συγκρούσεις (strong collision resistance): Είναι υπολογιστικά ανέφικτο να βρεθούν δυο διαφορετικές τιμές εισόδου x και x, τέτοιες ώστε h(x) = h(x ). Σύγκρουση υπάρχει όταν για δυο διαφορετικές εισόδους x και x έχουμε h(x) = h(x ), δηλαδή όταν για δυο διαφορετικές εισόδους, η συνάρτηση κατακερματισμού παράγει ίδια έξοδο. Σε μια τέτοια περίπτωση, δίνεται η δυνατότητα σε εισβολείς να μεταβάλλουν τα μηνύματα που υφαρπάζουν κατά τη μετάδοσή τους, χωρίς η μεταβολή αυτή να γίνεται αντιληπτή από τους νόμιμους παραλήπτες τους. Σημειώνεται, πως είναι υπολογιστικά ανέφικτο να αποδειχθεί ότι μια συνάρτηση κατακερματισμού ικανοποιεί τις παραπάνω ιδιότητες. 8.1.3 Συγκρούσεις και το παράδοξο της ημερομηνίας γέννησης Όπως είδαμε, αποτελεί σημαντική απαίτηση για μια συνάρτηση κατακερματισμού το να είναι υπολογιστικά ανέφικτη (computationally infeasible) η εύρεση συγκρούσεων (collisions). Το πόσο πιθανό είναι να βρεθούν συγκρούσεις, στο πλαίσιο π.χ. μιας επίθεσης εκτενούς αναζήτησης (brute force attack), εξαρτάται από το επιλεγμένο σταθερό μήκος της παραγόμενης συνόψισης μηνύματος. Στην περίπτωση σύγκρουσης, δίνεται η δυνατότητα σε εισβολείς να μεταβάλλουν τα μηνύματα που υφαρπάζουν κατά τη μετάδοσή τους, χωρίς η μεταβολή αυτή να γίνεται αντιληπτή από τους νόμιμους παραλήπτες τους. Σχετικό είναι το παράδοξο της ημερομηνίας γέννησης (birthday paradox), που βοηθά στο να αντιληφθούμε ότι η επιλογή του μεγέθους της συνόψισης με έναν απλό υπολογισμό δεν είναι πάντα η καλύτερη λύση. Το παράδοξο αυτό μας λέει ότι αν υποθέσουμε ότι έχουμε μια ομάδα 23 ατόμων, τότε η πιθανότητα να υπάρχουν δυο άτομα με ίδια ημερομηνία γέννησης (365 διαφορετικά ισοπίθανα ενδεχόμενα) είναι μεγαλύτερη

του 0,5. Η μικρή τιμή 23 είναι που εκπλήσσει και για το λόγο αυτό μιλάμε για παράδοξο, αφού κανείς θα περίμενε κάτι τέτοιο να συμβαίνει όταν η ομάδα θα αριθμούσε τουλάχιστον (365/2) 183 άτομα. Πράγματι, ας θεωρήσουμε γενικότερα μια ομάδα k ατόμων και έστω n το πλήθος των πιθανών ημερομηνιών γέννησής τους (προηγουμένως είχαμε k = 23 και n = 365). Έστω ότι p n,k είναι η πιθανότητα να μην υπάρχουν δυο άτομα με την ίδια ημερομηνία γέννησης στην ομάδα. Υπολογίζεται ότι p n,k e -k(k-1)/(2n) και επομένως, σε μια γενική περίπτωση, όταν: k (1 1 8 n lo g 2 ) / 2 (8.1) (π.χ. για n = 365, υπολογίζουμε k 22, 99994) θα έχουμε p n,k 1/2. Η εφαρμογή του παράδοξου της ημερομηνίας γέννησης στο χώρο της κρυπτογραφίας αφορά την επίθεση, όπου αν ένας επιτιθέμενος επιλέξει k το πλήθος σειρές από bit x(i) μήκους n bit (όπου 1 i k) και υπολογίσει τις συνοψίσεις τους h(x(i)), τότε η πιθανότητα να βρεθούν ίδιες συνοψίσεις για δυο διαφορετικές σειρές από bit είναι μεγαλύτερη από 0,5. Με το σημερινό τεχνολογικό υπόβαθρο, μια συνόψιση για να είναι πράγματι ελεύθερη-συγκρούσεων θα πρέπει να έχει μήκος τουλάχιστον 160 bit (καλύτερα 256 bit). 8.2 Αλγόριθμοι Παραγωγής Συνοψίσεων Μηνυμάτων Η παραγωγή συνοψίσεων μηνυμάτων μπορεί να γίνει είτε με αξιοποίηση της κρυπτογραφίας (τυπικό παράδειγμα είναι με DES-CBC), είτε χωρίς αυτήν (τυπικά παραδείγματα είναι ο αλγόριθμος MD5 και η οικογένεια αλγορίθμων SHA). Στη συνέχεια, παρουσιάζονται γνωστοί αλγόριθμοι παραγωγής συνόψισης μηνύματος, που χρησιμοποιούνται ευρέως σε πραγματικές εφαρμογές. 8.2.1 MD5 Ο αλγόριθμος συνόψισης μηνύματος MD5 (Message-Digest algorithm 5), αναπτύχθηκε από τον Ron Rivest [RFC 1321] το 1991 (για να αντικαταστήσει τον MD4) και χρησιμοποιείται μέχρι και σήμερα, αν και το Υπουργείο Εσωτερικής Ασφάλειας των ΗΠΑ (U. S. Department of Homeland Security) συστήνει τη μετάβαση στην οικογένεια των αλγορίθμων SHA, καθώς ο MD5 θεωρείται ότι δεν είναι ανθεκτικός σε συγκρούσεις (collision resistant) και δεν ενδείκνυται για σοβαρές εφαρμογές, όπως οι ψηφιακές υπογραφές. Ο MD5 χρησιμοποιείται, πλέον, κυρίως για τον έλεγχο της ακεραιότητας αρχείων που διακινούνται μέσω του Διαδικτύου. Αρχικά, το μήνυμα χωρίζεται σε δέσμες μήκους 512 bit. O αλγόριθμος MD5 πραγματοποιεί μια επέκταση της τελευταίας δέσμης του μηνύματος, έτσι ώστε να τη μετατρέψει σε δέσμη μήκους 512 bit, ως εξής: Προστίθεται στα δεξιά ένα bit με τιμή 1, για να σηματοδοτήσει την αρχή του επιθέματος (postfix). Στη συνέχεια, προστίθενται τόσα bit με τιμή 0, όσα είναι απαραίτητα ώστε το μήκος της δέσμης να γίνει ίσο με 448 bit. Τέλος, προσαρτάται η τιμή (με μέγεθος 64-bit) του συνολικού μήκους του μηνύματος πριν την επέκτασή του. Επιπλέον, ο αλγόριθμος MD5 χρησιμοποιεί μια αρχική συνόψιση (initial seed) τεσσάρων (4) λέξεων (A, B, C, D), μήκους 32-bit η κάθε μια. Οι αντίστοιχες τιμές των τεσσάρων αυτών λέξεων είναι σταθερές και φαίνονται στον Πίνακα 8.1.

Λέξη A 01 23 45 67 Λέξη B 89 AB CD EF Λέξη C FE DC BA 98 Λέξη D 76 54 32 10 Πίνακας 8.1 Αρχική συνόψιση MD5. Στη συνέχεια, ξεκινώντας από την αρχική συνόψιση (128-bit), που αποτελεί το τρέχον περιεχόμενο του ενταμιευτήρα (buffer) του MD5, σε συνδυασμό με την πρώτη δέσμη του μηνύματος, γίνεται επαναληπτική επεξεργασία του μηνύματος κατά δέσμες των 16-λέξεων (512-bit). Η επεξεργασία αυτή εξελίσσεται στο πλαίσιο μιας διαδικασίας τεσσάρων (4) κύκλων, με λειτουργίες 16 βημάτων σε κάθε κύκλο. Στο τέλος κάθε επεξεργασίας, γίνεται πρόσθεση του αποτελέσματος στον ενταμιευτήρα εισόδου για να προκύψει μια νέα τιμή. Η τιμή του τελευταίου ενταμιευτήρα είναι το ζητούμενο αποτέλεσμα, δηλαδή η τελική συνόψιση του μηνύματος (message digest). Εικόνα 8.2 Συνόψιση μηνύματος τριών δεσμών με τον αλγόριθμο MD5. Ο δημιουργός του MD5, Ronald Rivest, διατύπωσε την ακόλουθη εικασία: "Εικάζεται ότι η δυσκολία να έχετε δύο μηνύματα με την ίδια συνόψιση μηνύματος είναι της τάξης των 2 64 πράξεων και ότι η δυσκολία να βρείτε ένα μήνυμα που έχει μια δεδομένη συνόψιση μηνύματος είναι της τάξης των 2 128 πράξεων". Από ένα αυθαίρετο 128-bit string x, είναι πολύ δύσκολο να βρεθεί ή να φτιαχτεί μήνυμα m του οποίου η συνόψιση που παράγεται από τον αλγόριθμο MD5 να είναι ίση με μια δεδομένη τιμή x. Παρόλα αυτά, το 1996 βρέθηκε ένα σχεδιαστικό λάθος του MD5, ενώ το 2004 εντοπίσθηκαν πιο σοβαρές αδυναμίες, διαταράσσοντας ακόμη πιο πολύ την αξιοπιστία του αλγορίθμου για εφαρμογές ασφάλειας. Έκτοτε, έχουν προταθεί τρόποι δημιουργίας αρχείων τα οποία έχουν την ίδια τιμή συνόψισης. Ως αποτέλεσμα, το ενδιαφέρον στράφηκε προς την οικογένεια αλγορίθμων SHA, ξεκινώντας από το πρώτο μέλος της, που είναι γνωστό ως SHA-1. 8.2.2 Οικογένεια αλγορίθμων SHA Η αρχική προδιαγραφή της οικογένειας SHA, δημοσιεύθηκε το 1993 από το NIST των ΗΠΑ (FIPS PUB 180), με την ονομασία Secure Hash Standard, που είναι γνωστή πλέον ως SHA-0, καθώς γρήγορα αποσύρθηκε από την NSA. Η αναθεωρημένη έκδοσή της δημοσιεύθηκε το 1995 με την ονομασία SHA-1 (FIPS PUB 180-1). Ο αλγόριθμος SHA-1 (Secure Hash Algorithm 1) είναι ο δεύτερος κορυφαίος αλγόριθμος παραγωγής συνόψισης μηνύματος που χρησιμοποιείται σήμερα. Βασίζεται σε αρχές παρόμοιες με αυτές που χρησιμοποιήθηκαν κατά τη σχεδίαση του MD4, του προγόνου του MD5. Ο SHA-1 παράγει σύνοψη μήκους 160-bit. Το μεγαλύτερο μήκος εξόδου κάνει τον SHA-1 ασφαλέστερο από τον MD5, αν και μια σημαντική διαφορά μεταξύ των δυο αλγορίθμων αφορά το μήκος του μηνύματος εισόδου. Στον SHA-1 αυτό δεν μπορεί να είναι οποιοδήποτε και θα πρέπει να μην ξεπερνά τα 2 64 1 bit, που είναι βέβαια μια πολύ μεγάλη τιμή. O αλγόριθμος SHA-1 χρησιμοποιεί κι αυτός μια αρχική συνόψιση (initial seed) μήκους 160 bit που αποτελείται από πέντε (5) λέξεις (A, B, C, D, E), με μήκος 32-bit η κάθε μια. Οι σταθερές τιμές τους φαίνονται στον Πίνακα 8.2.

Λέξη A 67 45 23 01 Λέξη B EF CD AB 89 Λέξη C 98 BA DC FE Λέξη D 10 32 54 76 Λέξη E C3 D2 E1 F0 Πίνακας 8.2 Αρχική συνόψιση SHA-1. Ο αλγόριθμος SHA επεκτείνει αρχικά το μήνυμα, όπως και ο MD5, ώστε το μήκος του να είναι πολλαπλάσιο του 512. Η επαναληπτική επεξεργασία κάθε δέσμης μήκους 512 bit, περιλαμβάνει 4 κύκλους των είκοσι (20) βημάτων. Έτσι, ολόκληρη η διαδικασία παραγωγής συνόψισης περιλαμβάνει 80 βήματα, κάθε ένα από τα οποία τροποποιεί τα δεδομένα 5 καταχωρητών των 32 bit (Α, Β, C, D, E). Νεότερες δημοσιεύσεις του NIST (από το 2001 μέχρι σήμερα), καθορίζουν ως νεότερα μέλη της οικογενείας τις ακόλουθες συναρτήσεις κατακερματισμού, γνωστές ως SHA-2: SHA-224, SHA-256, SHA- 384,και SHA-512. Οι τιμές που ακολουθούν το ακρωνύμιο SHA, δηλώνουν και το μήκος συνόψισης που παράγει η κάθε μια από αυτές, Στον Πίνακα 8.3, που ακολουθεί, αποτυπώνονται τα βασικά χαρακτηριστικά του κάθε μέλους της οικογένειας αλγορίθμων SHA: Αλγόριθμος Μήκος Συνόψισης Μήκος δέσμης Μέγιστο μήκος εισόδου Μήκος λέξης Κύκλοι x Βήματα SHA-0 160 512 2 64-1 32 4 x 20 SHA-1 160 512 2 64-1 32 4 x 20 SHA2 SHA-224 224 512 2 64-1 32 4 x 16 SHA-256 256 512 2 64-1 32 4 x 16 SHA-384 384 1024 2 128-1 64 4 x 20 SHA-512 512 1024 2 128-1 64 4 x 20 Πίνακας 8.3 Βασικά χαρακτηριστικά της οικογένειας αλγορίθμων SHA. Το 2003 παρουσιάστηκε ένα νέο πρότυπο με την ονομασία Secure Hash Standard (SHS), το οποίο πρόσθεσε τρεις (3) νέους αλγορίθμους παραγωγής συνοψίσεων μεγαλύτερου μήκους. Το πρότυπο SHS χρησιμοποιείται από το Digital Signature Algorithm (DSA) για την παραγωγή Ψηφιακών Υπογραφών. Το πρωτόκολλο Secure Shell (SSH), το οποίο αποτελεί και κυβερνητικό πρότυπο (FIPS PUB 180-2), περιλαμβάνει συνολικά τέσσερις SHA αλγόριθμους SHA-1, SHA-256, SHA-384 και SHA-512. 8.3 Εφαρμογές Ελέγχου Ακεραιότητας και Αυθεντικότητας Κατά τη μεταφορά δεδομένων με τη μορφή μηνυμάτων στο Διαδίκτυο, αποτελεί κρίσιμο ζητούμενο η ύπαρξη μηχανισμών για την επιβεβαίωση της αυθεντικότητας του αποστολέα και της ακεραιότητας του μηνύματος στο σημείο παραλαβής του. Σημαντικό εργαλείο σε αυτή την κατεύθυνση αποτελούν οι συνοψίσεις μηνυμάτων (message digests). Κατά την παραλαβή ενός ηλεκτρονικού μηνύματος, θα πρέπει να είμαστε σίγουροι ότι το μήνυμα δεν έχει τροποποιηθεί (έλεγχος ακεραιότητας), αλλά και ότι προέρχεται από τον αποστολέα ο οποίος ισχυρίζεται ότι το έστειλε (έλεγχος αυθεντικότητας). Στην καθημερινή μας ζωή, όταν ένα γραπτό μήνυμα (π.χ. μια επιστολή) αποστέλλεται, υπογράφεται από τον αποστολέα με χειρόγραφη υπογραφή, έτσι ώστε ο παραλήπτης να μπορεί να επαληθεύσει την αυθεντικότητα του αποστολέα του μηνύματος. Η συνόψιση ενός μηνύματος εγγυάται την ακεραιότητά του. Εγγυάται, δηλαδή, πως το μήνυμα δεν έχει υποστεί τροποποίηση. Ωστόσο, η συνόψιση δεν αυθεντικοποιεί και τον αποστολέα του μηνύματος. Όταν η Αλίκη στείλει ένα μήνυμα στον Βασίλης, o Βασίλης χρειάζεται να γνωρίζει αν το μήνυμα προέρχεται πραγματικά από την Αλίκη.

Η συνόψιση ενός μηνύματος, που συνήθως είναι γνωστή με την ονομασία Κώδικας Ανίχνευσης Μετατροπών (Message Detection Code, MDC), δεν αρκεί για την αυθεντικοποίηση του μηνύματος. Με τον όρο αυθεντικοποίηση μηνύματος, εννοούμε την αυθεντικότητα της προέλευσης των δεδομένων (data origin authentication) και για το σκοπό αυτό χρειαζόμαστε την εφαρμογή μιας πρόσθετης τεχνικής που παράγει τον Κώδικα Αυθεντικοποίησης Μηνύματος (Message Authentication Code, MAC). 8.3.1 Κώδικας Ανίχνευσης Μετατροπών MDC Αρκετές φορές, στην επικοινωνία μέσω Διαδικτύου δεν απαιτείται η διασφάλιση της ιδιότητας της εμπιστευτικότητας, αλλά της ιδιότητας της ακεραιότητας των μεταδιδόμενων δεδομένων. Για παράδειγμα, έστω ότι η Αλίκη επιθυμεί να αποστείλει ένα μήνυμα στο Βασίλη μέσω του ανασφαλούς Διαδικτύου. Για την Αλίκη δεν είναι απαραίτητο να παραμείνει μυστικό το μήνυμα, όσο το να είναι σίγουρη ότι θα παραληφθεί από τον Βασίλη χωρίς να έχει τροποποιηθεί από κάποιον ενδιάμεσο (π.χ. την Ελένη). Για την προστασία την ακεραιότητας του μηνύματος, οποιουδήποτε σχεδόν μεγέθους, η Αλίκη παρέχει το μήνυμα ως είσοδο σε μια συνάρτηση κατακερματισμού, η οποία ικανοποιεί τις απαιτήσεις αποφυγής συγκρούσεων που αναφέραμε πριν και δημιουργεί μια σταθερού μήκους συνόψιση. Η συνόψιση του μηνύματος μπορεί στη συνέχεια να χρησιμοποιηθεί ως το αποτύπωμα (fingerprint) του μεταδιδόμενου μηνύματος. Η διαδικασία αυτή παρουσιάζεται στην ακόλουθη Εικόνα 8.3: Εικόνα 8.3 Παραγωγή συνόψισης μεταδιδόμενου μηνύματος. Κατόπιν, η Αλίκη αποστέλλει το μήνυμα και τη συνόψισή του στο Βασίλη. Για την επιβεβαίωση της ακεραιότητας του μηνύματος, ο Βασίλης τροφοδοτεί εκ νέου το παραλαμβανόμενο μήνυμα στην ίδια συνάρτηση κατακερματισμού και αν η παραγόμενη συνόψιση είναι ίδια με την παραληφθείσα συνόψιση (που έστειλε η Αλίκη), τότε μπορεί να είναι βέβαιος ότι δεν πραγματοποιήθηκε τροποποίηση του μηνύματος κατά τη μετάδοσή του. Ο Κώδικας Ανίχνευσης Μετατροπών (Manipulation Detection Code - MDC), γνωστός και ως Κώδικας Ακεραιότητας Μηνύματος (Message Integrity Code - MIC), αποτελεί το μέσο για τη ανίχνευση μετατροπών σε ένα μήνυμα που μεταφέρθηκε μέσω Διαδικτύου. Για την παραγωγή του χρησιμοποιούνται: Μονόδρομες συναρτήσεις κατακερματισμού (one-way hash functions OWHF) που παρέχουν συμπίεση, ευκολία υπολογισμού, αντοχή προαπεικόνισης και αντοχή δεύτερης προαπεικόνισης. Ανθεκτικές σε συγκρούσεις συναρτήσεις κατακερματισμού (collision-resistant hash functions CRHF) που παρέχουν συμπίεση, ευκολία υπολογισμού, αντοχή δεύτερης προαπεικόνισης και αντοχή σε συγκρούσεις. Γενικά, παρέχουν μηχανισμούς ακεραιότητας, παράγοντας μια σταθερού μήκους σειρά από bit, που υπολογίζεται χωρίς να χρησιμοποιηθεί κλειδί (unkeyed hash functions). 8.3.2 Κώδικας Αυθεντικοποίησης Μηνυμάτων - MAC Ο Κώδικας Αυθεντικοποίησης Μηνύματος (Message Authentication Code - MAC) παρέχει αυθεντικοποίηση της πηγής προέλευσης (data origin authentication) και προστασία ακεραιότητας του ίδιου του μηνύματος. Για τον υπολογισμό του χρησιμοποιούνται δυο είσοδοι: το μήνυμα

ένα μυστικό κλειδί κρυπτογράφησης Κατά τη διαδικασία αυθεντικοποίησης, ο παραλήπτης χρησιμοποιεί το κοινό μυστικό κλειδί που είχε χρησιμοποιήσει και ο αποστολέας κατά τον υπολογισμό του κώδικα MAC. Πιο συγκεκριμένα, χρησιμοποιείται ένα κλειδί και μια κρυπτογραφική συνάρτηση για τον υπολογισμό της τιμής-ελέγχου (MAC) των δεδομένων, που κατόπιν στέλνεται μαζί με τα δεδομένα. Ο υπολογισμός του MAC συμβολίζεται ως εξής: M A C f m k (8.2) όπου f είναι η κρυπτογραφική συνάρτηση για τον υπολογισμό της τιμής-ελέγχου του μηνύματος m, ενώ k είναι το μυστικό κλειδί κρυπτογράφησης. Οι πλέον αποδεκτοί μηχανισμοί παραγωγής MAC είναι οι CBC-MAC, που λειτουργούν με αξιοποίηση ενός αλγόριθμου κρυπτογράφησης δέσμης (π.χ. DES, 3DES, αλλά με καθολική πλέον επικράτηση του AES) σε τρόπο λειτουργίας (mode of operation) CBC. Για την παραγωγή του CBC-MAC χρησιμοποιείται ένα κλειδί και ένας αλγόριθμος δέσμης n-bit για να δώσει ένα m-bit MAC (m n). Αρχικά, γίνεται συμπλήρωση (padding) των δεδομένων για να προκύψουν σειρές δεσμών των n-bit. Στη συνέχεια, γίνεται κρυπτογράφηση των δεδομένων σε CBC mode. Συγκεκριμένα, για τις δέσμες δεδομένων (μήκους n-bit) m 1, m 2,..., m q, το MAC υπολογίζεται όπως φαίνεται στην Εικόνα 8.4: Εικόνα 8.4 Παραγωγή CBC-MAC. Έχουμε: και Για i=1,2,3,,n: και I m S V 1 1 O e I 1 k 1 I m O q q q 1 O e I q k q (8.3) (8.4) (8.5) (8.6) MAC. Η έξοδος O q υπόκειται σε μια προαιρετική επεξεργασία και αποκοπή σε m bit για να δώσει τελικά το

Όπου η λογική πράξη XOR και SV (starting variable) είναι μια τυχαία επιλεγμένη τιμή που αποστέλλεται (σε μορφή plaintext) μαζί με το μήνυμα. Ο κώδικας MAC προϋποθέτει το διαμοιρασμό μεταξύ δύο πλευρών ενός μυστικού κλειδιού, προκειμένου να αυθεντικοποιήσουν την πηγή προέλευσης (origin) των μεταξύ τους μεταδιδόμενων δεδομένων. Η αυθεντικότητα της πηγής προέλευσης των δεδομένων, την οποία εγγυάται η συνάρτηση MAC, απορρέει από το γεγονός ότι δεν είναι δυνατό να αναπαραχθεί η ίδια συνόψιση χωρίς τη γνώση του κλειδιού. Ένας ενδιάμεσος ο οποίος υποκλέπτει το μήνυμα δεν θα μπορέσει να τροποποιήσει τα δεδομένα του μηνύματος και μετά να παράγει σωστό κώδικα MAC. Στην ακόλουθη Εικόνα 8.5, απεικονίζεται ο τρόπο αξιοποίησης του μηχανισμού MAC κατά τη μετάδοση μηνυμάτων. Εικόνα 8.5 Αξιοποίηση μηχανισμού ΜΑC. H Αλίκη παράγει τον κώδικα MAC και τον αποστέλλει μαζί με το μήνυμα στο Βασίλη. Ο Βασίλης πραγματοποιεί τον ίδιο υπολογισμό στο παραληφθέν μήνυμα, χρησιμοποιώντας το ίδιο μυστικό κλειδί, προκειμένου να ξαναδημιουργήσει το MAC. Στη συνέχεια, γίνεται σύγκριση του παραληφθέντος και του νέου κώδικα αυθεντικοποίησης. Αν υποθέσουμε ότι μόνο ο παραλήπτης και ο αποστολέας γνωρίζουν το μυστικό κλειδί, τότε ισχύουν οι παρακάτω παρεχόμενες υπηρεσίας ασφάλειας: Ακεραιότητα μηνύματος: Ο παραλήπτης είναι βέβαιος ότι το μήνυμα δεν έχει τροποποιηθεί. Αν ένας επιτιθέμενος τροποποιούσε το μήνυμα δεν θα μπορούσε να δημιουργήσει ένα καινούργιο κώδικα MAC, καθώς δεν γνωρίζει το μυστικό κλειδί. Αυθεντικότητα πηγής προέλευσης μηνύματος: Ο παραλήπτης είναι βέβαιος ότι το μήνυμα στάλθηκε από τον αποστολέα ο οποίος εμφανίζεται ως κανονικός αποστολέας. Επειδή κανείς άλλος δεν γνωρίζει το μυστικό κλειδί, άρα κανείς άλλος δεν θα μπορούσε να δημιουργήσει το σωστό MAC. Είναι φανερό ότι τα κλειδιά πρέπει να προστατεύονται ώστε να διασφαλίζεται ότι δεν θα διαρρεύσουν σε τρίτους. Γνωστός τύπος επίθεσης σε MAC είναι η επίθεση cut-and-paste. Αν υποθέσουμε ότι ο MAC υπολογίζεται με CBC (CBC-MAC) χωρίς να ακολουθήσουν προαιρετική επεξεργασία και αποκοπή (truncation), τότε για δυο μηνύματα m 1 και m 2 με κώδικες MAC που έχουν υπολογισθεί με το ίδιο μυστικό κλειδί k, είναι δυνατό να υπολογισθεί ένα τρίτο ψευδές μήνυμα, καθώς και ο κώδικας MAC που του αντιστοιχεί, χωρίς ο επιτιθέμενος να γνωρίζει το (μυστικό) κλειδί k. Αυτό γίνεται σε μια περίπτωση επίθεσης όπου είναι γνωστοί οι MAC για δυο μηνύματα μιας δέσμης. Έτσι, αν υποθέσουμε ότι: MAC 1 = e k(m1) MAC 2 = e k(m2)

τότε, ο MAC 2 είναι ένας σωστός MAC του νέου μηνύματος m3 δυο δεσμών m1 m2 MAC1, όπου η λογική πράξη XOR. Για να αποφεύγονται τέτοιου είδους επιθέσεις σε νόμιμους MAC, απαιτείται η εφαρμογή επεξεργασίας και αποκοπής του μηνύματος, ή να χρησιμοποιείται η τρίτη μέθοδος συμπλήρωσης (padding). 8.3.3 HMAC Για τον υπολογισμό του κώδικα MAC, μπορούν ακόμη να χρησιμοποιηθούν συναρτήσεις κατακερματισμού (hash-functions), όπου γίνεται αρχικά συνένωση (concatenation) ενός κοινού μυστικού κλειδιού με το μήνυμα που πρόκειται να μεταδοθεί και κατόπιν εφαρμόζεται η συνάρτηση κατακερματισμού. Το αποτέλεσμα του κώδικα MAC σε αυτή την περίπτωση ονομάζεται HMAC (hashed MAC). Για αυτό και οι σχετικοί μηχανισμοί ονομάζονται συναρτήσεις κατακερματισμού με κλειδί (keyed hash functions). Το κλειδί χρησιμοποιείται για να παραμετροποιείται η συμπεριφορά της συνάρτησης κατακερματισμού. Ένα τέτοιο παράδειγμα αφορά την αξιοποίηση μιας συνάρτησης κατακερματισμού h στο πλαίσιο μιας δομής HMAC, όπου για μια τιμή κλειδιού k και για ένα μήνυμα m υπολογίζουμε: 1 2 H M A C m h K h K m (8.7) όπου h είναι η συνάρτηση κατακερματισμού, K1 και K2 είναι δυο παραλλαγές του μυστικού κλειδιού k είναι η συνένωση των επιμέρους ακολουθιών bit. Οι παραλλαγές K1 και K2 του μυστικού κλειδιού k μπορούν να προκύπτουν από τη συνένωση ακολουθιών bit συμπλήρωσης (padding) του κλειδιού, ως εξής: Κ1 = k p1 και Κ2 = k p2. Το πρότυπο FIPS PUB 198 (από το 2002) περιγράφει τον κώδικα HMAC σαν ένα μηχανισμό αυθεντικοποίησης μηνύματος, ο οποίος χρησιμοποιεί κρυπτογραφικές συναρτήσεις συνόψισης. Ο HMAC μπορεί να χρησιμοποιηθεί με κάθε συνάρτηση συνόψισης σε συνδυασμό με ένα ή περισσότερα κοινά μυστικά κλειδιά. Βιβλιογραφία Burnett, S., & Paine, S. (2001). RSA Security s Official Guide to Cryptography. Berkeley, CA, USA: Osborne/McGraw-Hill. Forouzan, B. A. (2008). Introduction to cryptography and network security. Boston: McGraw-Hill Higher Education. Konheim, A. G. (2007). Computer Security and Cryptography. Hoboken, NJ, USA: John Wiley & Sons, Inc. Retrieved from http://doi.wiley.com/10.1002/0470083980 Stallings, W. (2014). Network security essentials: applications and standards (Fifth edition). Boston: Pearson. Stinson, D. R. (2006). Cryptography: theory and practice (3rd ed). Boca Raton: Chapman & Hall/CRC. Πάγκαλου Γ., Μαυρίδη Ι. (2002). Ασφάλεια Πληροφοριακών Συστημάτων και Δικτύων. Θεσσαλονίκη: Εκδόσεις Ανικούλα.

Κριτήρια αξιολόγησης Απαντήστε στις ακόλουθες ερωτήσεις. Η κάθε ερώτηση μπορεί να έχει μοναδική ή περισσότερες απαντήσεις. 1. Για μία συνόψιση θα πρέπει να ισχύει ότι: α) Είναι μοναδική. β) Είναι υπολογιστικά ανέφικτο να παραχθεί. γ) Μπορεί να ανακτηθεί από αυτή το μήνυμα. δ) Κανένα από τα παραπάνω. 2. Η συνόψιση είναι ελεύθερη συγκρούσεων όταν: α) Έχει μέγεθος 128 bit τουλάχιστον. β) Μπορούν να υπάρξουν δύο διαφορετικά μηνύματα με ίδιες συνοψίσεις. γ) Δεν μπορούν να υπάρξουν δύο διαφορετικά μηνύματα με ίδιες συνοψίσεις. δ) Δεν είναι υπολογιστικά εφικτό να βρεθούν δύο διαφορετικά μηνύματα με ίδιες συνοψίσεις. 3. Ο αλγόριθμος MD5 δημιουργεί συνοψίσεις μήκους: α) 32 bit β) 64 bit γ) 128 bit δ) 160 bit 4. Η συνόψιση ενός μηνύματος μπορεί να διασφαλίσει: α) την ακεραιότητά του. β) τη διαθεσιμότητά του. γ) την εμπιστευτικότητά του. d) την αυθεντικότητα προέλευσής του. 5. Για τον υπολογισμό του κώδικα MAC χρησιμοποιείται: α) κρυπτογραφικός αλγόριθμος ροής. β) ασύμμετρος κρυπτογραφικός αλγόριθμος. γ) συνάρτηση κατακερματισμού χωρίς κλειδί. δ) συμμετρικός κρυπτογραφικός αλγόριθμος. 6. Χρησιμοποιούνται κλειδιά για την παραγωγή του: α) Message Authentication Code (MAC) β) Hashed MAC (HMAC) γ) SHA1 digest δ) MD5 digest 7. Για τη δημιουργία συνόψισης ενός πολύ μεγάλου όγκου δεδομένων (π.χ. 2 234 bit), θα επιλέγατε: α) Τον αλγόριθμο MD5 β) Τον αλγόριθμο SHA1 γ) Τον αλγόριθμο SHA224 δ) Τον αλγόριθμο SHA512 8. Πόσες δέσμες θα δημιουργηθούν για τη δημιουργία συνόψισης ενός αρχείου μεγέθους 1040 bytes με τον αλγόριθμο SHA256; α) 1 β) 2 γ) 3 δ) 4

9. Ποια από τα παρακάτω προσφέρει ο κώδικας αυθεντικοποίησης ΜAC; α) Αυθεντικοποίηση πηγής προέλευσης. β) Αυθεντικοποίηση προορισμού. γ) Ακεραιότητα δεδομένων. δ) Εμπιστευτικότητα δεδομένων. 10. Για την παραγωγή του κώδικα HMAC χρησιμοποιούνται: α) συναρτήσεις κατακερματισμού και μυστικό κλειδί. β) συναρτήσεις κατακερματισμού χωρίς μυστικό κλειδί. γ) συνάρτηση συμπίεσης δεδομένων με μυστικό κλειδί. δ) συνάρτηση συμπίεσης χωρίς μυστικό κλειδί.