1 / 94

Εισαγωγή στην Κρυπτογραφία

Εισαγωγή στην Κρυπτογραφία. Πιστοποίηση μηνύματος (Message authentication) - Πιστοποίηση ταυτότητας αποστολέα ( Entity authentication). Επιπρόσθετες απαιτήσεις στην κρυπτογραφία. Επιβεβαίωση ότι το μήνυμα που αποκρυπτογραφείται είναι το αυθεντικό ( data integrity )

Download Presentation

Εισαγωγή στην Κρυπτογραφία

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Εισαγωγή στην Κρυπτογραφία Πιστοποίηση μηνύματος (Message authentication) - Πιστοποίηση ταυτότητας αποστολέα (Entity authentication)

  2. Επιπρόσθετες απαιτήσεις στην κρυπτογραφία • Επιβεβαίωση ότι το μήνυμα που αποκρυπτογραφείται είναι το αυθεντικό (data integrity) • Επιβεβαίωση ότι ο αποστολέας είναι αυτός που ισχυρίζεται (identification ή entity authentication)

  3. Επιπρόσθετες απαιτήσεις στην κρυπτογραφία • Data integrity : Τα δεδομένα δεν έχουν υποστεί αλλαγή από μη εξουσιοδοτημένα μέρη. • Data origin authentication : Πιστοποίηση ότι τα δεδομένα έχουν προέλθει από μια συγκεκριμένη πηγή η οποία δεν έχει μεταβληθεί. • Message authentication : Έμμεσα εξασφαλίζει και data origin authentication αφού αλλαγή του περιεχομένου του μηνύματος υπονοεί και αλλαγή της πηγής. • Η Πιστοποίηση μηνύματος είναι απαραίτητη οποτεδήποτε έχουμε κίνδυνο από ηθελημένη ή αθέλητη τροποποίηση των δεδομένων. (πχ κανάλι με θόρυβο ή εσκεμμένη αλλαγή μηνύματος)

  4. Πιστοποίηση μηνύματος(Message authentication) • Στόχος: Προστασία έναντι «ενεργών» επιθέσεων • Τροποποίησης του περιεχομένου του μηνύματος • Τροποποίησης του συγχρονισμού και της αλληλουχίας της σειράς του μηνύματος (Timing and/or Sequencing modification) Μια τεχνική βασίζεται στις συναρτήσεις κατακερματισμού

  5. Συναρτήσεις κατακερματισμού(hash functions) • Συναρτήσεις κατακερματισμού : Είναι υπολογιστικά εφικτές συναρτήσεις που αντιστοιχίζουν σειρές bits μεταβλητού μεγέθους σε σειρές bits σταθερού μήκους. • Oι συναρτήσεις κατακερματισμού βρίσκουν χρήση σε αρκετές εφαρμογές ( πχ κρυπτογραφία, διαχείριση αρχείων, κτλ ) • Οι κυριότερες χρήσεις των συναρτήσεων κατακερματισμού στην κρυπτογραφία είναι • Ψηφιακές υπογραφές ( Digital signatures ) • Ακεραιότητα δεδομένων ( Data integrity ) • Πρωτόκολλα αναγνώρισης ( Identification protocols )

  6. Συναρτήσεις κατακερματισμού(hash functions) • Δέχονται είσοδο οσουδήποτε μήκους και παράγουν έξοδο σταθερού μήκους (ίσου ή μικρότερου του μεγέθους της εισόδου) – (συμπίεση) • Η τιμή της συνάρτησης για οποιαδήποτε είσοδό της υπολογίζεται εύκολα • Η συνάρτηση δεν είναι αντιστρεπτή (είναι δηλαδή μίας κατεύθυνσης) – για οποιοδήποτε y, δεν μπορεί να βρεθεί x ώστε h(x)=y. (αντίσταση προαπεικόνισης, preimage resistance) • Δεν μπορεί να υπολογιστεί εναλλακτική είσοδος για να παραχθεί ηίδια έξοδος που δίνει μία άλλη δεδομένη είσοδος – με άλλα λόγια, για οποιοδήποτε δοθέν Μ, είναι υπολογιστικά δύσκολη η εύρεση M'με την ιδιότηταh(M) = h(M')(αντίσταση 2ης προαπεικόνισης, 2nd-preimage resistance) • Δεν μπορούν να υπολογιστούν δύο διαφορετικές είσοδοι M, M’ που να δίνουν την ίδια έξοδο, δηλαδή h(M)=h(M’) (αντίσταση συγκρούσεων, collision resistance) • Χωρίζονται σε δύο κατηγορίες – σε αυτές που υπεισέρχεται και κάποιο κλειδί στον υπολογισμό τους (keyed hash functions) και σε αυτές που όχι (unkeyed hash functions) • Αν M το μήνυμα και H η συνάρτηση κατακερματισμού, τότε το H(M) αποκαλείται αποτύπωμα (fingerprint) ή σύνοψη του μηνύματος (Message Digest – MD)

  7. Μία απλή συνάρτηση κατακερματισμού • Bitwise-XOR • Όχι καλή: Δεν ικανοποιεί το 2nd preimage resistance.

  8. Άλλα παραδείγματα συναρτήσεων κατακερματισμού • Η συνάρτηση ελέγχου άθροισης mod-32 είναι εύκολα υπολογίσιμη, αλλά δεν έχει αντίσταση προαπεικόνισης, preimage • h(x) = x2 mod n, χωρίς να είναι γνωστή η παραγοντοποίηση n=pq του n. Δεν ικανοποιεί το 2nd preimage resistance: για δοθέν x, προφανώς το –x δίνει την ίδια έξοδο. • O DES (όπως και κάθε block αλγόριθμος) μπορεί να οδηγήσει σε συνάρτηση κατακερματισμού ως εξής:h(x) = Ek(x)  x για γνωστό σταθερό κλειδί k. ‘Eχει αντίσταση προαπεικόνισηςκαι αντίσταση 2ης προαπεικόνισης, αλλά δεν παρέχει συμπίεση.

  9. Σχέσεις μεταξύ ιδιοτήτων • Πρόταση: αντίσταση σύγκρουσης  αντίσταση 2ης προαπεικόνισης των συναρτήσεων κατακερματισμού • Σημείωση: η αντίσταση σύγκρουσης δεν εγγυάται αντίσταση προαπεικόνισης 1  x, αν x έχει μήκος n-bit 0  g(x), διαφορετικά Τότε η h είναι (n+1)-bit συνάρτηση κατακερματισμού με αντίσταση σύγκρουσης, αλλά όχι αντίσταση 2ης προαπεικόνισης. • Πρόταση: Έστω hkσυνάρτηση κατακερματισμού με κλειδί που είναι αλγόριθμος MAC. Τότεη hkέχει : αντίσταση 2ης προαπεικόνισης, αντίσταση σύγκρουσης και αντίσταση προαπεικόνισης. π.χ. h(x)=

  10. Επιπρόσθετες ιδιότητες των μονόδρομωνσυναρτήσεων κατακερματισμού 1. Μη-συσχέτισης: τα bit εισόδου και εξόδου δεν πρέπει να είναι συσχετισμένα 2. Αντίσταση κοντινής σύγκρουσης: θα πρέπει να είναι δύσκολο να βρεθούν δύο είσοδοι x, x’ ώστεοι h(x), h(x’) να διαφέρουν σε ένα μικρό πλήθος bits 3. Αντίσταση μερικής προαπεικόνισης (ή τοπική μονοδρομικότητα): θα πρέπει να είναι το ίδιο δύσκολο να ανακτήσουμε οποιαδήποτε υποσειρά χαρακτήρων, όσο και μια ολόκληρη είσοδο.

  11. Κατηγορίες αλγορίθμων με συναρτήσεις κατακερματισμού – MDCs και MACs • Κώδικες ανίχνευσης τροποποίησης (MDC-Modification Detection Codes) • Κατακερματισμός ενός μηνύματος έτσι ώστε να πληροί συγκεκριμένες ιδιότητες. Στόχος τους, σε συνδυασμό με άλλες τεχνικές, η εξασφάλιση της γνησιότητας του μηνύματος. Δεν υπεισέρχεται κανένα κλειδί • Κώδικες πιστοποίησης μηνύματος (MAC - Message Authentication Codes) • Στόχος τους, χωρίς τη βοήθεια επιπρόσθετων τεχνικών, η εξασφάλιση τόσο της ακεραιότητας του μηνύματος όσο και της γνησιότητας της πηγής του μηνύματος. Στην είσοδό τους υπεισέρχεται επιπρόσθετα και ένα μυστικό κλειδί. • Και στις δύο περιπτώσεις η συνάρτηση κατακερματισμού είναι δημοσίως γνωστή.

  12. Κατηγορίες αλγορίθμων με συναρτήσεις κατακερματισμού – MDCs και MACs

  13. Κατασκευή Συναρτήσεων Κατακερματισμούμίας κατεύθυνσης • Συνήθως κατασκευάζονται από συναρτήσεις των οποίων το πλήθος εξόδων είναι μικρότερο από το πλήθος εισόδων (συμπίεση) • Η δομή αυτή είναι ανάλογη με ένα αλυσιδωτό block cipher (Chained Block Cipher - CBC) • Παράγει μία τιμή κατακερματισμού για κάθε μπλοκ σταθερού μήκους, με βάση το περιεχόμενό του αλλά και την τιμή κατακερματιμού του προηγούμενου μπλοκ • O Rabin πρότεινε κάθε συνάρτηση f να είναι ο αλγόριθμος του DES (τα Miθα έχουν το ρόλο του κλειδιού) M1 M2 Mn h1 h2 hn-1 f f f … h IV

  14. Κατασκευή Συναρτήσεων Κατακερματισμούμίας κατεύθυνσης CBC-based MAC αλγόριθμος Το μήνυμα x χωρίζεται σε blocks X1, X2, …, Xt

  15. Μεταβολή του μήκους του κατακερματισμένου μηνύματος • Χρήση του ακόλουθου αλγορίθμου • M0=M, H0=H(M) • Δημιουργία του M1 επισυνάπτοντας το H0 to M0, και παραγωγή του H1=H(M1) • Επισύναψη του H1 στο H0 • Επανάληψη των παραπάνω, μέχρι την δημιουργία ικανοποιητικού κατακερματισμού • Μερικές συναρτήσεις κατακερματισμού, αν κι έχουν καλές κρυπτογραφικές ιδιότητες, παράγουν έξοδο μικρού μήκους. Μειονέκτημα, γιατί είναι εύκολο να βρεθεί κάποιο άλλο μήνυμα που να κατακερματίζεται στην ίδια έξοδο (ευάλωτες σεεπιθέσεις birthday attack)

  16. Birthday attack • Ανήκει στις επιθέσεις ωμής βίας. • Είναι ανεξάρτητη του αλγορίθμου και μπορεί να εφαρμοστεί για εύρεση οποιασδήποτε συνάρτησης κατακερματισμού. • Στηρίζεται στο μαθηματικό «παράδοξο των γενεθλίων». Σύμφωνα με αυτό αν μια συνάρτηση παράγει μία τιμή μεταξύ n διαφορετικών τιμών με την ίδια πιθανότητα και το n είναι αρκετά μεγάλο ,τότε υπολογίζοντας την συνάρτηση για ένα πλήθος περίπου 1,2√n διαφορετικών εισόδων περιμένουμε να βρούμε ένα ζεύγος εισόδων x1 και x2 τέτοια ώστε f(x1)=f(x2). Η προηγούμενη όμως παρατήρηση παραβιάζει το 2nd preimage resistance ! • «παράδοξο των γενεθλίων». Αν έχω σε ένα δωμάτιο 23 ανθρώπους τότε υπάρχει μεγάλη πιθανότητα δύο από αυτούς να έχουν γενέθλια την ίδια μέρα. Συγκεκριμένα αποδεικνύεται ότι η πιθανότητα αυτή (δεχόμενοι ότι έχουμε 365 διαφορετικές επιλογές ) είναι 0,507. Αν είχα 22 ανθρώπους στο δωμάτιο η αντίστοιχη πιθανότητα θα ήταν 0,059. Η πιθανότητα αυτή αυξάνει ραγδαία με το n,π.χ., για n=30 η πιθανότητα είναι 0,706. Γενικά P(m,n)=1-(m(m-1)…(m-n+1)/mn). • «Εφαρμογή» στην κρυπτογραφία Το παραπάνω εφαρμόζεται στην γενική του μορφή στις συναρτήσεις κατακερματισμού όπου ο αριθμός n των κατακερματισμών που μπορείς να κάνεις πριν πέσεις σε σύγκρουση είναι 2^(n/2) και όχι 2^n

  17. H Birthday Attack του Yuval σε συναρτήσεις κατακερματισμού • Επιθέσεις τετραγωνικής ρίζας:όταν επιλέγονται στοιχεία τυχαία, με αντικατάσταση από ένα σύνολο Ν στοιχείων, το επαναλαμβανόμενο στοιχείο θα συναντηθεί μετά από Ο(√Ν) επιλογές. • Αλγόριθμος της Birthday Attack του Yuval Είσοδος:γνήσιο μήνυμα x1, δόλιο μήνυμα x2, m-bit μονόδρομη συνάρτηση κατακερματισμού h. Έξοδος:x1’,x2’ που προκύπτουν από μικρο-τροποποιήσεις των x1, x2 με h(x1’)=h(x2’) Έτσι η υπογραφή πάνω στο x1’ χρησιμεύει ως υπογραφή πάνω στο x2’ • Παράγετε t=2m/2 μικρο-τροποποιήσεις x1’ του x1. • Κατακερματίστε κάθε τροποποιημένο μήνυμα x1’ και αποθηκεύστε τις τιμές κατακερματισμού {x1’ , h(x1’)}, ώστε να αναζητούνται μεταγενέστερα (σε χρόνο Ο(t)με συμβατό κατακερματισμό). • Παράγετε μικρο-τροποποιήσεις x2’ του x2, υπολογίζοντας το h(x2’) για κάθε μια και ελέγχοντας για ταίριασμα με κάθε x1’. Συνεχίστε μέχρι να βρεθεί κάποιο ταίριασμα (μετά από περίπου t υποψήφιες x2’).

  18. Εφαρμογή της Birthday Attack • Η επίθεση αυτή μπορεί να χρησιμοποιηθεί από έναν ανέντιμο υπογράφοντα που παρέχει την υπογραφή του στο x1’ σε ένα ανυποψίαστο άτομο και στη συνέχεια αρνείται ότι το υπέγραψε, ισχυριζόμενος ότι το μήνυμα που υπέγραψε ήταν το x2’. • Η επίθεση αυτή μπορεί επίσης να χρησιμοποιηθεί από έναν ανέντιμο επαληθευτή που μπορεί να πείσει ένα ανυποψίαστο άτομο να υπογράψει ένα προετοιμασμένο έγγραφο x1’ και μετά να ισχυρίζεται ότι το άτομο υπέγραψε το x2’. • Η επίθεση αυτή γενικεύεται σε όλες τις περιπτώσεις στις οποίες ένα κατακερματισμένο μήνυμα h(m) περνιέται σαν το ίδιο το μήνυμα m.

  19. Παραλλαγή της Birthday Attack χωρίς μνήμη • Για να αφαιρεθεί η απαίτηση μνήμης από τον αλγόριθμο μπορεί να χρησιμοποιηθεί ντετερμινιστική σχεδίαση → «χωρίς μνήμη» τεχνικές ανίχνευσης κύκλου, για να ανιχνευθεί η σύγκρουση που αναμένεται σύμφωνα με το παράδοξο του Birthday. • Ακολουθώντας τον αλγόριθμο: • g συνάρτηση • g(x1,H)=x1’ μια δευτερεύουσα τροποποίηση, καθορισμένη από την τιμή κατακερματισμού H του μηνύματος x1 • gx1(H)=x1’ • ευδιάκριτοι κατακερματισμοί Η καταλήγουν σε ευδιάκριτα x1’  με σταθερά μηνύματα x1,x2 και με χρήση ευδιάκριτων ιδιοτήτων που χωρίζουν τις τιμές κατακερματισμού σε 2 ίσου μεγέθους υποσύνολα, ορίζεται συνάρτηση h((gx1(H)) , H άρτιος h((gx2(H)) , H περιττός Χρήση της «χωρίς μνήμη» τεχνικής ανίχνευσης συγκρούσεων 2 είσοδοι στο r που σχεδιάζονται στην ίδια έξοδο • h(gx1(H))=h(gx2(H’)) • x1’=gx1(H), x2’=gx2(H’) • Άρα h(x1’) = h(x2’) r(H)=

  20. Τρόποι πιστοποίησης μηνύματος • Κλασική κρυπτογράφηση • Έγκειται στην ασφάλεια που παρέχει το κλειδί και μόνο (προϋποθέτει ότι κανείς τρίτος δεν διαθέτει το κλειδί) • Message Authentication Code (MAC) • Χρήση αλγορίθμου κατακερματισμού, όπου υπεισέρχεται και κλειδί • Συνάρτηση κατακερματισμού • Μία δημόσια συνάρτηση κατακερματισμού μετατρέπει το μήνυμα σε μία ετικέτα πιστοποίησης

  21. Πιστοποίηση μηνύματος με χρήση MAC μήνυμα μετάδοση Σύγκριση Αποστολέας Παραλήπτης

  22. Ιδιότητες MAC • Το μήνυμα είναι γνήσιο • Αν κάποιος «εισβολέας» τροποποιήσει το μήνυμα, θα φανεί στη σύγκριση που κάνει ο δέκτης • Η πηγή του μηνύματος είναι γνήσια • Κανείς άλλος δεν έχει το ίδιο κλειδί για να δημιουργήσει το ίδιο MAC • Εξασφαλίζεται η σωστή αλληλουχία του μηνύματος • Πρέπει να τοποθετείταιtimestampστο μήνυμα, πριν τον υπολογισμό του MAC • Οποιοσδήποτε κρυπτογραφικός αλγόριθμος (π.χ. DES) μπορεί να χρησιμοποιηθεί για τη δημιουργία του MAC

  23. Πιστοποίηση μηνύματος με χρήση συνάρτησης κατακερματισμού (MDC) • Μία συνάρτηση κατακερματισμού εφαρμόζεται στο μήνυμα – το αποτέλεσμα προστίθεται στο τέλος του μηνύματος και όλο το νέο μπλοκ κρυπτογραφείται και μεταδίδεται • Ο δέκτης αποκωδικοποιεί και κάνει σύγκριση ανάλογη με την περίπτωση του MAC

  24. Συναρτήσεις κατακερματισμού που βασίζονται στο MD4 Διανύσματα ελέγχου για συναρτήσεις κατακερματισμού

  25. Σημειογραφία για την οικογένεια αλγορίθμων MD4

  26. (i) MD4 • MD4=128-bit συνάρτηση κατακερματισμού. Στόχος: εύρεση μηνυμάτων με την ίδια τιμή κατακερματισμού με 264 πράξεις και εύρεση μηνύματος με προκαθορισμένη τιμή κατακερματισμού με 2128 πράξεις. • Το MD4δεν επιτυγχάνει το στόχο του! • Αλγόριθμος MD4: είσοδος: σειρά χαρακτήρων bit x,αυθαίρετου μήκους bit, b>0 έξοδος: 128-bit κώδικας κατακερματισμού του x 1. Καθορισμός σταθερών 2. Προεργασία: επέκταση του x ώστε να το μήκος του να είναι πολλαπλάσιο των 512 bit. Τέλος η τυποποιημένη είσοδος αποτελείται από 16m 32-bit λέξεις: x0x1...x16m-1 3. Διεργασία:i 0≤i≤m-1 αντιγράφει το i-οστόμπλοκ από τις 16λέξεις των 32-bit και τις αποθηκεύει προσωρινά σε πίνακα X[j]  x16i+j 0≤j≤15. Κατόπιν ακολουθεί επεξεργασία σε τρεις γύρους των 16 βημάτων και στο τέλος ενημερώνει τις μεταβλητές της αλυσίδας. 4. Ολοκλήρωση: η τελευταία τιμή κατακερματισμού είναι η ένωση H1 || H2 || H3 || H4

  27. (ii) MD5 Προήλθε από το MD4 με τις ακόλουθες αλλαγές: 1. πρόσθεση ενός 4ου γύρου 16 βημάτων. 2. αντικατάσταση του 2ου γύρου με νέα συνάρτηση 3. τροποποίηση στη σειρά προσπέλασης των λέξεων μηνυμάτων στον 2ο και 3ο γύρο. 4. τροποποίηση τωνποσοτήτων ολίσθησης 5. χρήση επιπρόσθετων σταθερών  4x16 βήματα 6. πρόσθεση εξόδου από το προηγούμενο βήμα μέσα σε καθένα από τα 64 βήματα

  28. (ii) MD5 Αλγόριθμος MD5: Είσοδος: σειρά χαρακτήρων bit x αυθαίρετου μήκους bit, b>0 Έξοδος: 128-bit κώδικας κατακερματισμού του x Το MD5 προκύπτει από το MD4 κάνοντας τις ακόλουθες αλλαγές 1.Σημειογραφία: αντικατάσταση της συνάρτησης 2ου γύρου με: Καθορισμός συνάρτησης 4ου γύρου: 2. Καθορισμός σταθερών: (δείτε λεπτομέρειες στη βιβλιογραφία) 3. Προεργασία: όπως στο MD4 4. Διεργασία: Για καθένα από τους γύρους 1,2 και 3 αντικατέστησε το “B(t↩s[j])” με “B B+(t↩s[j])” και μετά τον 3ο γύρο πρόσθεσε για 48≤j≤63 t (A+k(B,C,D)+x[Z[J]]+Y[J]),(a,b,c,d) (D,B+(t↩s[j]),B,C) 5. Ολοκλήρωση: όπως στο MD4

  29. Secure Hash Algorithm (SHA) • Προτάθηκε από τον NIST ως πρότυπο το 1993; (SHA-1 το 1995) • Είσοδος: Μέχρι 264 bits, Έξοδος: 160 bit • Επεκτείνει το αρχικό μήνυμα με την ακολουθία “1000…0” στο τέλος του Χώρισε το μήνυμα σε 512-bit blocks 160-bit buffer (5 registers) Με αρχικές τιμές Συνάρτηση συμπίεσης Εφαρμόζεται σε κάθε 512-bit block και την τρέχουσα 160-bit buffer Είναι η καρδιά του SHA-1

  30. Βασική δομή του SHA-1 • Επεξεργάζεται 512-bit blocks • Αρχικοποιεί 5 32-bit MD καταχωρητές • Εφαρμογή συναρτήσεων συμπίεσης • 4 γύροι των 20 βημάτων ο καθένας • Κάθε γύρος χρησιμοποιεί μια διαφορετική μη γραμμική συνάρτηση fi • Προστίθενται οικαταχωρητές από τον προηγούμενο γύρο • Τελικός γύρος

  31. Συνάρτηση συμπίεσης SHA-1 Τρέχουσα buffer (five 32-bit registers A,B,C,D,E) Τρέχον block μηνύματος 4 Γύροι , 20 βήματο έκαστος Ας δούμε λεπτομέρειες Μεγάλη ομοιότητα με block cipher, όπου το ίδιο το μήνυμα χρησιμοποιείται ως κλειδί σε κάθε γύρο Στον πέμπτο γύρο προστίθεται η αρχική buffer στο αποτέλεσμα των 4 γύρων Η Buffer περιέχει την τελική hash τιμή

  32. Τυπικός γύρος του SHA-1 • Ίδια δομή για κάθε ένα από τους 4 γύρους • Η f είναι bit-wise λογική συνάρτηση (διαφορετική για κάθε γύρο) • To S αναπαριστά k αριστερές ολισθήσεις • Το W είναι ολισθημένο XOR των προηγούμενων W • Αναφορά: http://www.itl.nist.gov/fipspubs/fip180-1.htm

  33. A A B B C C D D E E Ένα βήμα του SHA-1 (80 βήματα συνολικά) + • Λογική συνάρτηση για βήματα • (BC)(BD) 0..19 • BCD 20..39 • (BC)(BD)(CD) 40..59 • BCD 60..79 ft Κυκλική ολίσθηση 5 bits + Wt • Το τρέχον block μηνύματος μειγνύεται • For steps 0..15, W0..15=message block • For steps 16..79, • Wt=Wt-16Wt-14Wt-8Wt-3 Πολυεπίπεδη ολίσθηση των blocks μηνύματος + Kt 30 bitwise left-rotate Προστίθεται ειδική σταθερά (same value in each 20-step round, 4 different constants altogether) +

  34. RIPEMD-160 • Το RIPEMD-160 βασίζεται στο MD4. Απεικονίζει εισόδους 21 λέξεων σε εξόδους 5 λέξεων. Κάθεμπλοκεισόδου επεξεργάζεται παράλληλα από την συνάρτηση συμπίεσης. Οι έξοδοι των 160-bit συνδυάζονται κατάλληλα και δίνουν μια απλή έξοδο των 160-bit. Χρησιμοποιείται διάταξη little-endian. • Αλγόριθμος RIPEMD-160 : είσοδος: σειρά χαρακτήρων bit x μήκους b≥0 έξοδος: 160-bit κώδικας κατακερματισμού του x Το RIPEMD-160προκύπτει κάνοντας τις ακόλουθες αλλαγές 1.Σημειογραφία: όπως στο MD4 και στον ακόλουθο πίνακα 2, Καθορισμός σταθερών 3. Προεργασία: όπως στο MD4 και με την πρόσθεση μιας πέμπτης αλυσιδωτής μεταβλητής 4. Διεργασία:i 0≤i≤m-1 αντιγράφει το i-οστόμπλοκ από τις 16λέξεις των 32-bit και τις αποθηκεύει προσωρινά σε πίνακα X[j]  x16i+j 0≤j≤15. Κατόπιν ακολουθεί επεξεργασία σε 5 γύρους των 16 βημάτων και στο τέλος ενημερώνει τις μεταβλητές της αλυσίδας. 5. Ολοκλήρωση: η τελική τιμή κατακερματισμού είναι η ένωση H1 || H2 || H3 || H4|| H5

  35. Σημειογραφία για την οικογένεια αλγορίθμων RIPEMD-160

  36. Αλγόριθμοι MD (Message Digest)

  37. Συναρτήσεις κατακερματισμού βασισμένες σε αριθμητικό υπόλοιπο • Βασική Ιδέα: Κατασκευή επαναληπτικής συνάρτησης κατακερματισμού χρησιμοποιώντας mod M ως βάση της συνάρτησης συμπίεσης. • Μειονεκτήματα: έλλειψη ταχύτητας και ασφάλειας. • MASH-1(Modular Arithmetic Secure Hash algorithm 1): Το MASH-1 βασίζεται στο αριθμητικό υπόλοιπο. Χρησιμοποιεί ένα RSA mod M, του οποίου το μήκος bit επηρεάζει την ασφάλεια. Το μήκος bit του M καθορίζει το μέγεθος μπλοκ των μηνυμάτων και το μέγεθος που έχει το αποτέλεσμα του κατακερματισμού.

  38. Συναρτήσεις κατακερματισμού βασισμένες σε αριθμητικό υπόλοιπο • Αλγόριθμος MASH-1 : Είσοδος: δεδομένο x μήκους 0≤b<2n/2 Έξοδος: κατακερματισμός του x των n-bit 1. Εγκατάσταση συστήματος και καθορισμός σταθερών:RSA mod M=pq μήκουςm-bit, p,q:τυχαία επιλεγμένοι μυστικοί πρώτοι αριθμοί. Καθορίζεται το μήκος bit n του αποτελέσματος κατακερματισμού να είναι το μέγιστο πολλαπλάσιο του16 μικρότερο από m. H0=0 ορίζεται ως IV και ορίζεται ακέραια σταθερά των n-bit A=0xf0...0. 2. Επέκταση, δημιουργία μπλοκ και MD-ενδυνάμωση: Επέκταση του x με 0-bits, αν χρειάζεται, ώστε να προκύψει σειρά χαρακτήρων μήκους bit tn/2 ως το μικρότερο δυνατό t≥1. Διαίρεση του προκύπτοντος κειμένου σε (n/2)-μπλοκx1,...,xt xt+1και πρόσθεση ενός τελευταίουμπλοκ xt+1που περιέχει την (n/2)-bit αναπαράσταση του b. 3. Προέκταση: επέκταση κάθε xiσε n-bit μπλοκ yiδιαμερίζοντας το σε (4-bit) κομμάτια και εισάγοντας τέσσερα 1-bits που προηγούνται του καθενός, με εξαίρεση το yt+1όπου το κομμάτι που εισάγεται είναι το 1010 και όχι το 1111. 4. Διεργασία συνάρτησης συμπίεσης: Για 1≤i≤t+1 απεικονίζονται δύο είσοδοι των n-bit (Hi-1,yi) σε μια n-bit έξοδο ως εξής: Hi((((Hi-1,yi)vA)2 mod M) ┤n)Hi-1. To ┤συμβολίζει ότι κρατάμε τα δεξιότερα n bits από το αποτέλεσμα των m-bit στα αριστερά του. 5. Ολοκλήρωση: Ο κατακερματισμός είναι το n-bit block Ht+1

  39. Πιστοποίηση ταυτότητας(entity authentication) • Ανάγκη επιβεβαίωσης ότι αυτός που με τον οποίο μιλάει κανείς είναι πραγματικά αυτός που ισχυρίζεται • Η διαφορά με τις διάφορες μεθόδους επιβεβαίωσης της ταυτότητας του συνομιλητή που αναφέρθηκαν παραπάνω στα πλαίσια της πιστοποίησης μηνύματος (π.χ. MAC), είναι ότι μιλάμε πια για πιστοποίηση ταυτότητας σε πραγματικό χρόνοκαθώς και το γεγονός ότι δεν μεταφέρεται κάποιο ουσιαστικό μήνυμα

  40. Χαρακτηριστικά πρωτοκόλλου • Ένα πρωτόκολλο πιστοποίησης ταυτότητας πρέπει να διέπεται από τα ακόλουθα χαρακτηριστικά, δηλαδή πρέπει να μας εξασφαλίζει τα ακόλουθα: • Αν οι Α, Β είναι ειλικρινείς, ο A πρέπει να μπορεί να αποδείξει την ταυτότητά του στον Β • Να μην διαρρέουν οι “μυστικές πληροφορίες” του Α , δηλ. (1) Ο Β να μην μπορεί να αποσπάσει κάποια πληροφορία που χρησιμοποίησε ο A για να αποδείξει την ταυτότητά του, έτσι ώστε να προσποιηθεί σε κάποιον τρίτο C ότι είναι ο A (transferability) (2) Να μην υπάρχει η δυνατότητα σε κάποιον τρίτο C ξεγελάσει τον B ότι είναι ο A (impersonation) • Τα παραπάνω να ισχύουν για όσο μεγάλο πλήθος φορών κι αν εκτελεστεί το πρωτόκολλο μεταξύ των A, B, ακόμα κι αν ένας εισβολέας C έχει παρακολουθήσει όλες τις συνομιλίες των A, B.( υψηλή παροχή ασφάλειας )

  41. Κατηγοριοποίηση τεχνικών πιστοποίησης ταυτότητας Οιτεχνικέςαυτές μπορούν να χωριστούν σε 3 κατηγορίες ανάλογα με το που βασίζεται η ασφάλεια. • ΚΑΤΙ ΠΟΥ ΓΝΩΡΙΖΟΥΜΕ : passwords , PINS, μυστικά-ιδιωτικά κλειδιά που χρησιμοποιούνται σε challenge-response πρωτόκολλα • ΚΑΤΙ ΠΟΥ ΚΑΤΕΧΟΥΜΕ : π.χ. πιστωτικές, smart cards, password generators • ΦΥΣΙΚΑ ΧΑΡΑΚΤΗΡΙΣΤΙΚΑ : αναγνώριση φωνής, ίριδος, δακτυλικών αποτυπωμάτων

  42. Ασθενής πιστοποίηση ταυτότητας - Password • Ο B περιμένει από τον A συγκεκριμένο password, για να πειστεί ότι είναι αυτός • Συχνά, τα passwords για τον κάθε χρήστη κρατούνται κρυπτογραφημένα σε κάποιο αρχείο, από συνάρτηση μίας κατεύθυνσης: έτσι, ακόμα κι αν κάποιος εισβολέας αποκτήσει πρόσβαση στο αρχείο, δεν μπορεί να ανακαλύψει τα passwords (Unix) • Τα passwords πρέπει να είναι μεγάλου μήκους, έτσι ώστε να μη μπορούν να ανακαλυφθούν με εξαντλητική αναζήτηση • Για να είναι ανθεκτικά σε «επιθέσεις λεξικού» (dictionary attacks) εφαρμόζονται διάφορες τεχνικές (π.χ. Salting)

  43. Τεχνικές (Ι) Αποθηκευμένα αρχεία κωδικών • Το σύστημα αποθηκεύει συνθηματικά σε ένα αρχείο χωρίς δικαιώματα ανάγνωσης και γραφής και σε κάθε εισαγωγή ενός συνθηματικού το σύστημα συγκρίνει αυτόν με το αρχείο συνθηματικών που αντιστοιχεί στο συγκεκριμένο χρήστη. • Μειονέκτημα: δεν εξασφαλίζει προστασία εναντίον χρηστών που έχουν πλήρη δικαιώματα εισόδου στο σύστημα αρχείων) Κανόνες κωδίκων • Μερικά συστήματα για να προστατεύσουν τους χρήστες από «ασθενή» συνθηματικά επιβάλλουν κανόνες κωδίκων, όπως μεγάλο μήκος ή να περιλαμβάνει τουλάχιστον έναν χαρακτήρα. Στόχος είναι να μειωθεί η εντροπία των κωδίκων.

  44. Τεχνικές (ΙΙ) «Κρυμμένα» αρχεία κωδίκων • Στη θέση του συνθηματικού αποθηκεύεται τώρα μια one-way function για κάθε χρήστη. Το σύστημα υπολογίζει την μονόδρομη συνάρτηση του κωδικού που εισάγεται και τη συγκρίνει με τα στοιχεία του userid.

  45. Τεχνικές (ΙΙΙ) Salting κωδικοί • Κάθε συνθηματικό κατά την αρχική του είσοδο αυξάνεται με μια συμβολοσειρά από t-bit που καλείται salt. Όταν ο χρήστης εισάγει τον κωδικό το σύστημα εφαρμόζει μια συνάρτηση σ’ αυτό. Στόχος είναι να γίνουν οι επιθέσεις λιγότερο αποτελεσματικές. Passphrase (συνθηματική φράση) • Ο χρήστης αντί μιας μικρής λέξης γράφει μια φράση ή μια πρόταση. Η βασική ιδέα είναι ότι ο χρήστης μπορεί πιο εύκολα να θυμηθεί φράσεις παρά ακολουθίες χαρακτήρων.

  46. Salting Passwords • Προσθήκη ενός τυχαίου t-bitstring (διαφορετικού κάθε φορά) στο τέλος του password • Εφαρμογή της one-way functionπου μας δίνει το encrypted “salted” password. Αυτό δυσκολεύει το έργο των dictionary attacks ( αύξηση απαιτήσεων σε μνήμη και χρόνο) καθώς για κάθε υποψήφιο passwordέχουμε 2tπαραλλαγές.

  47. Επιθέσεις Σταθερά συνθηματικά • Η δυνατότητα ο εχθρός να μάθει το συνθηματικό παρατηρώντας τον όταν αυτό γράφεται καθιστά τα συνθηματικά αδύνατο σημείο. Μπορούν να χρησιμοποιηθούν όταν το συνθηματικό μεταδίδεται μέσα από έμπιστες επικοινωνιακές γραμμές. Εξαντλητική αναζήτηση συνθηματικού • Είναι αφελής τρόπος επίθεσης όπου ο εχθρός δοκιμάζει συνθηματικά μέχρι να πετύχει τον σωστό. Αυτό μπορεί να αντιμετωπισθεί διαλέγοντας συνθηματικά από έναν αρκετά μεγάλο χώρο και μειώνοντας τον αριθμό των on-line άκυρων προσπαθειών. Μάντεμα συνθηματικού και επιθέσεις λεξικού • Οι περισσότεροι χρήστες διαλέγουν συνθηματικά από ένα μικρό σύνολο, όπως σύντομα συνθηματικά, μικρά ονόματα, λέξεις λεξικών που έχουν μικρή εντροπία και μπορεί εύκολα να τα μαντέψει ο εχθρός. Συνθηματικά που βρίσκονται σε οποιαδήποτε εύκαιρη λίστα λέξεων μπορεί να είναι απροστάτευτη από τον εχθρό που δοκιμάζει όλες τις λέξεις της λίστας. Αυτή η επίθεση είναι γνωστή με τον όρο επίθεση λεξικού.

  48. Unix κωδικοί Ένα unix αρχείο συνθηματικών περιέχει μια συνάρτηση από συνθηματικά χρηστών υπολογισμένη ως εξής: κάθε συνθηματικό χρησιμεύει σαν ένα κλειδί για να αποκρύψει ένα γνωστό κείμενο από 64 μηδενικά bits. Για τον αλγόριθμο απόκρυψης χρησιμοποιείται μια τροποποίηση του DES που έχει ως εξής: • Ο αλγόριθμος επαναλαμβάνεται 25 φορές • Από το συνθηματικόκόβονται τα 8 πρώτα του bit καθένα από τα οποία ορίζει 7 bits για ένα κλειδί που περιέχει 56 bits. • Το αποτέλεσμα είναι έχει μέγεθος 64 bits και ομαδοποιείται σε 11 εκτυπώσιμους χαρακτήρες.

  49. Unix κωδικοί Η σχηματική αναπαράσταση του αλγόριθμου

  50. Pins • Τα PINs (προσωπικός αναγνωριστικός αριθμός) ανήκουν στην κατηγορία των σταθερών συνθηματικών. • Χρησιμοποιούνται συχνά σε πλαστικές κάρτες με μαγνητική ταινία. • Μπορεί επίσης να χρησιμεύσει και σαν το δεύτερο επίπεδο ασφάλειας εισόδου σε ένα κτίριο. • Σε ένα on-line σύστημα η ταυτότητα του χρήστη επιβεβαιώνεται συγκρίνοντας το pin που εισάγει με τα αποθηκευμένα στη βάση του συστήματος. • Σε ένα off-line σύστημα μπορεί να είναι επιθυμητό να διαλέγει ο ίδιος ο χρήστης το pin του ώστε να το θυμάται πιο εύκολα.

More Related