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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Κεφάλαιο 22. Πρωτόκολλα και πρότυπα ασφαλείας του Διαδικτύου

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Μέθοδοι Ελέγχου Σφαλμάτων

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

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

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

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

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

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

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

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

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

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

Τεχνικές διόρθωσης και ανίχνευσης σφαλµάτων

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

ΨΗΦΙΑΚΗ ΥΠΟΓΡΑΦΗ. Απόστολος Πλεξίδας Προϊστάµενος της ιεύθυνσης ιαφάνειας & Ηλεκτρονικής ιακυβέρνησης της Περιφέρεια Κεντρικής Μακεδονίας

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

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

Σχεδιασμός Εικονικών Δικτύων Ενότητα 4β: VPN on IPSec (Μέρος 2ο)

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

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

ΠΡΟΜΗΘΕΙΑ ΔΗΜΟ ΛΕΒΑΔΕΩΝ

Threshold Cryptography Algorithms. Εργασία στα πλαίσια του μαθήματος Τεχνολογίες Υπολογιστικού Νέφους

Σχεδιασμός Εικονικών Δικτύων Ενότητα 4α: VPN on IPSec

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

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

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

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

Πίνακες Διασποράς. Χρησιμοποιούμε ένα πίνακα διασποράς T και μια συνάρτηση διασποράς h. Ένα στοιχείο με κλειδί k αποθηκεύεται στη θέση

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

Εισαγωγή στην επιστήμη των υπολογιστών. Πράξεις με μπιτ

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

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

Κεφάλαιο 8. Αριθμητική Λογική μονάδα

Ο ΑΤΔ Λεξικό. Σύνολο στοιχείων με βασικές πράξεις: Δημιουργία Εισαγωγή Διαγραφή Μέλος. Υλοποιήσεις

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

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

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

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

Τετάρτη 5-12/11/2014. ΣΗΜΕΙΩΣΕΙΣ 3 ου και 4 ου ΜΑΘΗΜΑΤΟΣ ΕΙΔΙΚΟΤΗΤΑ: ΤΕΧΝΙΚΟΣ ΕΦΑΡΜΟΓΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΑΘΗΜΑ: ΑΡΧΙΤΕΚΤΟΝΙΚΗ Η/Υ Α ΕΞΑΜΗΝΟ

Transcript:

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

Ενεργητικές επιθέσεις Η κρυπτογράφηση παρέχει προστασία από παθητικές επιθέσεις (υποκλοπή). Μια διαφορετική απαίτηση είναι η προστασία από ενεργητικές επιθέσεις (παραποίηση δεδομένων και συναλλαγών). Η προστασία από αυτές τις επιθέσεις είναι γνωστή ως πιστοποίηση ταυτότητας μηνυμάτων (message authentication) ή δεδομένων (data authentication).

Ενεργητικές επιθέσεις Δύο τρόποι επίλυσης του προβλήματος: o Πιστοποίηση ταυτότητας μηνυμάτων o Μονόδρομη συνάρτηση κατακερματισμού (one-way hash function)

Πιστοποίηση ταυτότητας μηνυμάτων Παρέχει προστασία από ενεργητικές επιθέσεις Επαληθεύει την αυθεντικότητα του παραληφθέντος μηνύματος Μπορεί να χρησιμοποιεί συμβατική κρυπτογράφηση Τα περιεχόμενα δεν έχουν τροποποιηθεί Η προέλευση είναι αυθεντική Είναι επίκαιρο και έφτασε με τη σωστή σειρά Αποστολέας και παραλήπτης είναι οι μόνοι που μοιράζονται το κλειδί

Εικόνα 2.3 Πιστοποίηση ταυτότητας μηνυμάτων με χρήση κωδικού πιστοποίησης ταυτότητας μηνύματος (MAC)

Χαρακτηριστικά 1. Ο παραλήπτης βεβαιώνεται ότι το μήνυμα δεν έχει τροποποιηθεί. Αν κάποιος επιτιθέμενος τροποποιήσει το μήνυμα, αλλά δεν αλλάξει τον κωδικό, τότε ο κωδικός που θα υπολογίσει ο παραλήπτης θα διαφέρει από τον κωδικό τον οποίο παρέλαβε. Επειδή ο επιτιθέμενος υποτίθεται ότι δεν γνωρίζει το μυστικό κλειδί, δεν μπορεί να αλλάξει τον κωδικό με τρόπο που να αντιστοιχεί στις τροποποιήσεις του μηνύματος.

2. Ο παραλήπτης βεβαιώνεται ότι το μήνυμα προέρχεται πράγματι από τον σωστό αποστολέα. Επειδή κανένας άλλος δεν γνωρίζει το μυστικό κλειδί, κανένας άλλος δεν θα μπορούσε να δημιουργήσει ένα μήνυμα με τον κατάλληλο κωδικό. 3. Αν το μήνυμα περιέχει έναν αριθμό ακολουθίας όπως γίνεται στα πρωτόκολλα Χ.25, HDLC (High-level Data Link Control, Έλεγχος Συνδέσμου Δεδομένων Υψηλού Επιπέδου) και TCP τότε ο παραλήπτης μπορεί να βεβαιωθεί και για τη σωστή ακολουθία, επειδή ένας επιτιθέμενος δεν μπορεί να αλλάξει επιτυχώς τον αριθμό ακολουθίας.

Για τη δημιουργία του κωδικού θα μπορούσαν να χρησιμοποιηθούν αρκετοί αλγόριθμοι. Στην προδιαγραφή FIPS PUB 113 του NIST προτείνεται η χρήση του προτύπου DES. Το DES χρησιμοποιείται για την παραγωγή μιας κρυπτογραφημένης έκδοσης του μηνύματος, και τα τελευταία bit του κρυπτοκειμένου χρησιμοποιούνται ως κωδικός. Συνηθίζεται η χρήση κωδικού με μήκος 16 ή 32 bit.

Η διαδικασία είναι παρόμοια με την κρυπτογράφηση. Μία από τις διαφορές είναι ότι ο αλγόριθμος πιστοποίησης ταυτότητας δεν χρειάζεται να είναι αντιστρέψιμος, όπως έπρεπε να συμβαίνει στην αποκρυπτογράφηση. Αποδεικνύεται ότι, εξαιτίας των μαθηματικών ιδιοτήτων που έχει η συνάρτηση πιστοποίησης ταυτότητας, δεν «σπάει» τόσο εύκολα όσο η κρυπτογράφηση.

Κρυπτογραφική συνάρτηση κατακερματισμού

Εικόνα 2.4 Κρυπτογραφική συνάρτηση κατακερματισμού h = H(M).

Συνάρτηση κατακερματισμού Η συνάρτηση κατακερματισμού δέχεται ως είσοδο ένα μήνυμα M μεταβλητού μεγέθους και παράγει ως έξοδο μια σύνοψη μηνύματος (message digest) H(M) σταθερού μεγέθους. Το μήνυμα συμπληρώνεται μέχρι το μέγεθός του να γίνει ένας ακέραιος αριθμός πολλαπλάσιος κάποιου σταθερού μήκους (π.χ. 1024 bit). Η συμπλήρωση (padding) περιλαμβάνει την τιμή μήκους του αρχικού μηνύματος σε bit. Το πεδίο μήκους είναι ένα μέτρο ασφαλείας που έχει ως στόχο να δυσχεράνει την προσπάθεια του επιτιθέμενου να παραγάγει ένα εναλλακτικό μήνυμα με την ίδια τιμή κατακερματισμού.

Εικόνα 2.5 Πιστοποίηση ταυτότητας μηνυμάτων με χρήση μονόδρομης συνάρτησης κατακερματισμού η συνάρτηση κατακερματισμού δεν δέχεται ως είσοδο και κάποιο μυστικό κλειδί

Η σύνοψη του μηνύματος μπορεί να κρυπτογραφηθεί με συμμετρική κρυπτογράφηση αν υποθέσουμε ότι μόνο ο αποστολέας και ο παραλήπτης γνωρίζουν το κλειδί κρυπτογράφησης, τότε διασφαλίζεται η αυθεντικότητα. Η σύνοψη του μηνύματος μπορεί επίσης να κρυπτογραφηθεί με κρυπτογράφηση δημόσιου κλειδιού Η μέθοδος που βασίζεται σε δημόσιο κλειδί έχει δύο πλεονεκτήματα: Παρέχει όχι μόνο πιστοποίηση ταυτότητας των μηνυμάτων, αλλά και ψηφιακή υπογραφή, ενώ δεν απαιτεί τη διανομή κλειδιών στα επικοινωνούντα μέρη.

ΠΛΕΟΝΕΚΤΗΜΑ: απαιτείται μικρότερο πλήθος υπολογισμών. Ωστόσο, μια ακόμα πιο διαδεδομένη προσέγγιση είναι η χρήση κάποιας τεχνικής που αποφεύγει εντελώς την κρυπτογράφηση: Γιατί;

Μειονεκτήματα o Το λογισμικό κρυπτογράφησης είναι αρκετά αργό. Παρότι η ποσότητα των δεδομένων που κρυπτογραφούνται ανά μήνυμα είναι επίσης μικρή, ενδέχεται να υπάρχει ένα σταθερό ρεύμα μηνυμάτων από και προς το σύστημα. o Το κόστος του υλικού κρυπτογράφησης δεν είναι αμελητέο. Υπάρχουν υλοποιήσεις χαμηλού κόστους του αλγορίθμου DES σε τσιπ, όμως το κόστος αυξάνεται πολύ αν όλοι οι κόμβοι ενός δικτύου πρέπει να διαθέτουν αυτή τη δυνατότητα. o Το υλικό κρυπτογράφησης είναι βελτιστοποιημένο για μεγάλες ποσότητες δεδομένων. Για μικρά τμήματα δεδομένων, ένα μεγάλο ποσοστό του χρόνου σπαταλιέται στην ανάθεση αρχικών τιμών (initialization) και την κλήση των ρουτινών. o Οι αλγόριθμοι κρυπτογράφησης ενδέχεται να προστατεύονται από διπλώματα ευρεσιτεχνίας (patents).

Στην τρίτη τεχνική, η οποία ονομάζεται κατακερματισμένος κωδικός πιστοποίησης ταυτότητας μηνύματος με κλειδί (keyed hash MAC), υποθέτουμε ότι τα δύο επικοινωνούντα μέρη, έστω Α και Β, χρησιμοποιούν από κοινού το ίδιο μυστικό κλειδί K. Αυτό το μυστικό κλειδί ενσωματώνεται στη διαδικασία παραγωγής του κωδικού κατακερματισμού.

το μυστικό κλειδί χρησιμοποιείται τόσο ως πρόθεμα όσο και ως επίθεμα στο μήνυμα. Αν το μυστικό κλειδί χρησιμοποιηθεί μόνο ως πρόθεμα ή ως επίθεμα, το σχήμα κρυπτογράφησης είναι λιγότερο ασφαλές.

Απαιτήσεις συναρτήσεων κατακερματισμού Να μπορεί να εφαρμόζεται σε τμήματα δεδομένων οποιουδήποτε μεγέθους Να παράγει έξοδο σταθερού μήκους Να είναι σχετικά εύκολη στον υπολογισμό για οποιοδήποτε δεδομένο x Να είναι μονόδρομη ή ανθεκτική σε προεικόνες (pre-image resistant) Να είναι υπολογιστικά ανέφικτη η εύρεση μιας τιμής x τέτοιας ώστε να ισχύει H(x) = h Να είναι υπολογιστικά ανέφικτη η εύρεση μιας τιμής y x τέτοιας ώστε να ισχύει H(y) = H(x) Να είναι ανθεκτική σε συγκρούσεις ή να εμφανίζει ισχυρή ανθεκτικότητα σε συγκρούσεις Να είναι υπολογιστικά ανέφικτη η εύρεση οποιουδήποτε ζεύγους τιμών (x, y) τέτοιου ώστε να ισχύει H(x) = H(y)

Ασφάλεια συναρτήσεων κατακερματισμού Υπάρχουν δύο τρόποι επίθεσης εναντίον μιας ασφαλούς συνάρτησης κατακερματισμού: SHA: Ο αλγόριθμος κατακερματισμού που χρησιμοποιείται περισσότερο Άλλες εφαρμογές των συναρτήσεων κατακερματισμού: Κρυπτανάλυση Εκμετάλλευση των αδυναμιών του αλγορίθμου σε λογικό επίπεδο Κωδικοί πρόσβασης Το λειτουργικό σύστημα αποθηκεύει μια τιμή κατακερματισμού ενός κωδικού πρόσβασης Επίθεση ωμής βίας Η ανθεκτικότητα μιας συνάρτησης κατακερματισμού εξαρτάται αποκλειστικά από το μήκος του κωδικού κατακερματισμού που παράγει ο αλγόριθμος Ανίχνευση εισβολών Για κάθε αρχείο ενός συστήματος αποθηκεύονται οι τιμές H(F). Οι τιμές κατακερματισμού φυλάσσονται με ασφάλεια.

Ασφαλής Αλγόριθμος Κατακερματισμού (Secure Hash Algorithm, SHA)

Η μονόδρομη συνάρτηση κατακερματισμού (oneway hash function), ή ασφαλής συνάρτηση κατακερματισμού (secure hash function), είναι σημαντική όχι μόνο για την πιστοποίηση ταυτότητας μηνυμάτων αλλά και για τις ψηφιακές υπογραφές. Εδώ θα εξετάσουμε τον Ασφαλή Αλγόριθμο Κατακερματισμού (Secure Hash Algorithm, SHA).

Όλες οι συναρτήσεις κατακερματισμού λειτουργούν με βάση τις ακόλουθες γενικές αρχές: o Η είσοδος (μήνυμα, αρχείο, κ.λπ.) εκλαμβάνεται ως μια ακολουθία τμημάτων, καθένα από τα οποία έχει μήκος n bit. o Η επεξεργασία της εισόδου πραγματοποιείται ανά ένα τμήμα τη φορά με επαναληπτικό τρόπο ώστε να παραχθεί μια συνάρτηση κατακερματισμού των n bit. Μία από τις απλούστερες συναρτήσεις κατακερματισμού είναι η αποκλειστική διάζευξη (exclusive-or, XOR) bit προς bit κάθε τμήματος. C i = b i1 b i2 b im

Εικόνα 21.1 Απλή συνάρτηση κατακερματισμού με χρήση XOR σε επίπεδο bit

Απλή συνάρτηση κατακερματισμού παράγει μια απλή ισοτιμία (parity) για κάθε θέση bit και είναι γνωστή ως διαμήκης έλεγχος πλεονασμού (longitudinal redundancy check). Κάθε τιμή κατακερματισμού των n bit εμφανίζει την ίδια πιθανότητα. η πιθανότητα ένα σφάλμα δεδομένων να έχει ως αποτέλεσμα μια αμετάβλητη τιμή κατακερματισμού είναι ίση με 2 n. Αν τα δεδομένα χαρακτηρίζονται από μια πιο προβλέψιμη μορφοποίηση, η συνάρτηση είναι λιγότερο αποτελεσματική. Για παράδειγμα, στα περισσότερα φυσιολογικά αρχεία κειμένου, το bit υψηλής τάξης κάθε οκτάδας έχει πάντα την τιμή μηδέν. Άρα, αν χρησιμοποιείται μια τιμή κατακερματισμού των 128-bit, η αποτελεσματικότητα της συνάρτησης κατακερματισμού για τον συγκεκριμένο τύπο δεδομένων δεν είναι ίση με 2 128 αλλά με 2 112.

Ασφαλής Αλγόριθμος Κατακερματισμού (SHA) Αναπτύχθηκε αρχικά από το NIST Το 1993 δημοσιεύθηκε ως πρότυπο (FIPS 180) Το 1995 κυκλοφόρησε μια αναθεωρημένη έκδοσή του (SHA-1) o Παράγει τιμές κατακερματισμού των 160 bit Το 2002 το NIST προχώρησε στην αναθεώρηση του προτύπου (FIPS 180-2) o Προσθέτει τρεις νέες εκδόσεις του SHA o SHA-256, SHA-384, SHA-512 o Τιμές κατακερματισμού των 256/384/512 bit o Ίδια βασική δομή με την έκδοση SHA-1 αυξημένη ασφάλεια Το 2005 το NIST ανακοίνωσε την πρόθεσή του να αποσύρει σταδιακά την έγκριση της έκδοσης SHA-1 και να στηρίξει τις άλλες εκδόσεις του SHA έως το 2010

Πίνακας 21.1 Σύγκριση παραμέτρων SHA

Βήμα 1: Προσάρτηση bit συμπλήρωσης. Το μήνυμα συμπληρώνεται έτσι ώστε το μήκος του να είναι ισότιμο με 896 modulo 1024 [μήκος 896 (mod 1024)]. Η συμπλήρωση αποτελείται από ένα bit με τιμή 1 ακολουθούμενο από το απαραίτητο πλήθος bit με τιμή 0.

Βήμα 2: Προσάρτηση μήκους. Στο μήνυμα προσαρτάται ένα τμήμα των 128 bit. Το συγκεκριμένο τμήμα αντιμετωπίζεται ως μη προσημασμένος ακέραιος των 128 bit (με πρώτο το περισσότερο σημαντικό byte) και περιέχει το μήκος του αρχικού μηνύματος (πριν από τη συμπλήρωση).

Βήμα 3: Καθορισμός αρχικής κατάστασης για την περιοχή προσωρινής αποθήκευσης του κατακερματισμού. Στους καταχωρητές περιέχονται καθορισμένοι ακέραιοι, μήκους 64 bit ο καθένας

Βήμα 4: Επεξεργασία μηνύματος σε τμήματα των 1024 bit (128 λέξεων). Ο πυρήνας του αλγορίθμου είναι μια υπομονάδα που αποτελείται από 80 γύρους,

Βήμα 5: Έξοδος. Αφού ολοκληρωθεί η επεξεργασία όλων των N τμημάτων των 1024 bit, η έξοδος του N-οστού σταδίου αποτελεί τη σύνοψη μηνύματος των 512 bit.

Εικόνα 21.3 Επεξεργασία ενός τμήματος 1024 bit στην έκδοση SHA-512

Κάθε γύρος δέχεται ως είσοδο την τιμή abcdefgh της περιοχής προσωρινής αποθήκευσης (μια τιμή 512 bit), και ενημερώνει τα περιεχόμενα της περιοχής προσωρινής αποθήκευσης. Στην είσοδο του πρώτου γύρου, η περιοχή προσωρινής αποθήκευσης έχει την τιμή της ενδιάμεσης τιμής κατακερματισμού H i 1. Κάθε γύρος t κάνει χρήση μιας τιμής 64 bit, W t, η οποία προκύπτει από την επεξεργασία του τρέχοντος τμήματος των 1024 bit (M i ). Κάθε γύρος χρησιμοποιεί επίσης μια προσθετική σταθερά K t, όπου το 0 t 79 υποδεικνύει έναν από τους 80 γύρους. Αυτές οι λέξεις αναπαριστούν τα 64 πρώτα bit του δεκαδικού μέρους της κυβικής ρίζας για καθέναν από τους αρχικούς 80 πρώτους αριθμούς (prime numbers).

Οι σταθερές παρέχουν ένα «τυχαιοποιημένο» σύνολο ακολουθιών των 64 bit, οι οποίες εξαλείφουν τυχόν κανονικότητες των δεδομένων εισόδου. Οι ενέργειες που εκτελούνται κατά τη διάρκεια ενός γύρου αποτελούνται από κυκλικές ολισθήσεις και στοιχειώδεις λογικές (Boolean) συναρτήσεις που βασίζονται στις πράξεις AND, OR, NOT και XOR. Η έξοδος του ογδοηκοστού γύρου προστίθεται στην είσοδο του πρώτου γύρου (H i 1 ) προκειμένου να παραχθεί η τιμή H i. Η πρόσθεση εκτελείται ανεξάρτητα για καθεμία από τις οκτώ λέξεις που περιέχονται στην περιοχή προσωρινής αποθήκευσης, με καθεμία από τις αντίστοιχες λέξεις της H i 1, με χρήση πρόσθεσης modulo 2 64.

SHA-3 Ο αλγόριθμος SHA-2 έχει την ίδια δομή και στηρίζεται στις ίδιες μαθηματικές πράξεις με τους προκατόχους του, και αυτό εγείρει ανησυχίες Λόγω του χρόνου που θα χρειαζόταν για την αντικατάσταση του SHA-2 στην περίπτωση που εντοπιζόταν κάποια αδυναμία του, το 2007 το NIST ανακοίνωσε τη διεξαγωγή διαγωνισμού για τη δημιουργία της επόμενης γενιάς (SHA-3) Απαιτήσεις: Πρέπει να υποστηρίζει τιμές κατακερματισμού με μήκος 224, 256, 384 και 512 bit Ο αλγόριθμος πρέπει να επεξεργάζεται σχετικά μικρά τμήματα τη φορά αντί να απαιτεί την προσωρινή αποθήκευση ολόκληρου του μηνύματος στη μνήμη προτού το επεξεργαστεί

Κατακερματισμένος κωδικός πιστοποίησης ταυτότητας μηνύματος HMAC

HMAC Έχει αυξηθεί το ενδιαφέρον για την ανάπτυξη ενός κωδικού MAC ο οποίος θα προκύπτει από κάποιον κρυπτογραφικό κωδικό κατακερματισμού o Γενικά, οι κρυπτογραφικές συναρτήσεις κατακερματισμού εκτελούνται πιο γρήγορα o Υπάρχει ευρέως διαθέσιμος κώδικας βιβλιοθηκών o Η συνάρτηση SHA-1 δεν έχει σχεδιαστεί για χρήση ως κωδικός MAC επειδή δεν στηρίζεται σε μυστικό κλειδί Δημοσιεύθηκε στο έγγραφο RFC 2014 Έχει επιλεχθεί ως υποχρεωτικός κωδικός MAC για όλες τις υλοποιήσεις της Ασφάλειας IP (IPSec) o Χρησιμοποιείται και σε άλλα πρωτόκολλα Διαδικτύου, όπως η Ασφάλεια Επιπέδου Μεταφοράς (Transport Layer Security, TLS) και η Ασφαλής Ηλεκτρονική Συναλλαγή (Secure Electronic Transaction, SET)

Αντικειμενικοί στόχοι σχεδιασμού του HMAC Να χρησιμοποιεί, χωρίς τροποποιήσεις, διαθέσιμες συναρτήσεις κατακερματισμού Να διατηρεί την αρχική απόδοση της συνάρτησης κατακερματισμού χωρίς να επιφέρει σημαντική μείωση Να παρέχει δυνατότητα εύκολης αντικατάστασης της ενσωματωμένης συνάρτησης κατακερματισμού σε περίπτωση που ανακαλυφθούν ή απαιτηθούν πιο γρήγορες ή ασφαλείς συναρτήσεις κατακερματισμού Να χρησιμοποιεί και να χειρίζεται κλειδιά με απλό τρόπο Να διαθέτει μια πλήρως κατανοητή κρυπτογραφική ανάλυση της ισχύος του μηχανισμού πιστοποίησης ταυτότητας με βάση λογικές υποθέσεις για την ενσωματωμένη συνάρτηση κατακερματισμού

Εικόνα 21.4 Δομή του HMAC

1. Προσάρτηση μηδενικών στο αριστερό άκρο του K ώστε να δημιουργηθεί μια ακολουθία K + με b bit (π.χ. αν το K έχει μήκος 160 bit και b = 512, τότε στο K θα προσαρτηθούν 44 μηδενικά byte 0x00).

2. XOR (αποκλειστική διάζευξη σε επίπεδο bit) του K + με το ipad προκειμένου να παραχθεί το τμήμα S i μήκους b bit.

3. Προσάρτηση του M στο S i.

4. Εφαρμογή της H στο ρεύμα που παράγεται στο βήμα 3.

5. XOR (αποκλειστική διάζευξη) του K + με το opad προκειμένου να παραχθεί το τμήμα S o μήκους b bit.

6. Προσάρτηση στο S o του αποτελέσματος του κατακερματισμού από το βήμα 4 o.

7. Εφαρμογή της H στο ρεύμα που παράγεται στο βήμα 6 και επιστροφή του αποτελέσματος ως έξοδο.