Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

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

Παρόμοιες παρουσιάσεις


Παρουσίαση με θέμα: "Εισαγωγή στην Κρυπτογραφία Πιστοποίηση μηνύματος (Message authentication) - Πιστοποίηση ταυτότητας αποστολέα (Entity authentication)"— Μεταγράφημα παρουσίασης:

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

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

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

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

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

6 6 Συναρτήσεις κατακερματισμού (hash functions) Δέχονται είσοδο οσουδήποτε μήκους και παράγουν έξοδο σταθερού μήκους (ίσου ή μικρότερου του μεγέθους της εισόδου) – (συμπίεση) Η τιμή της συνάρτησης για οποιαδήποτε είσοδό της υπολογίζεται εύκολα Η συνάρτηση δεν είναι αντιστρεπτή (είναι δηλαδή μίας κατεύθυνσης) – για οποιοδήποτε y, δεν μπορεί να βρεθεί x ώστε h(x)=y. (αντίσταση προαπεικόνισης, preimage resistance) Δεν μπορεί να υπολογιστεί εναλλακτική είσοδος για να παραχθεί η ίδια έξοδος που δίνει μία άλλη δεδομένη είσοδος – με άλλα λόγια, για οποιοδήποτε δοθέν Μ, είναι υπολογιστικά δύσκολη η εύρεση M ' με την ιδιότητα h(M) = h(M ' ) (αντίσταση 2 ης προαπεικόνισης, 2 nd -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 7 Μία απλή συνάρτηση κατακερματισμού Bitwise-XOR Όχι καλή: Δεν ικανοποιεί το 2 nd preimage resistance.

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

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

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

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

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

13 13 Κατασκευή Συναρτήσεων Κατακερματισμού μίας κατεύθυνσης Συνήθως κατασκευάζονται από συναρτήσεις των οποίων το πλήθος εξόδων είναι μικρότερο από το πλήθος εισόδων (συμπίεση) Η δομή αυτή είναι ανάλογη με ένα αλυσιδωτό block cipher (Chained Block Cipher - CBC)  Παράγει μία τιμή κατακερματισμού για κάθε μπλοκ σταθερού μήκους, με βάση το περιεχόμενό του αλλά και την τιμή κατακερματιμού του προηγούμενου μπλοκ O Rabin πρότεινε κάθε συνάρτηση f να είναι ο αλγόριθμος του DES (τα M i θα έχουν το ρόλο του κλειδιού) f IV M1M1 ff h1h1 h M2M2 MnMn h2h2 h n-1 …

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

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

16 16 Birthday attack Ανήκει στις επιθέσεις ωμής βίας. Είναι ανεξάρτητη του αλγορίθμου και μπορεί να εφαρμοστεί για εύρεση οποιασδήποτε συνάρτησης κατακερματισμού. Στηρίζεται στο μαθηματικό «παράδοξο των γενεθλίων». Σύμφωνα με αυτό αν μια συνάρτηση παράγει μία τιμή μεταξύ n διαφορετικών τιμών με την ίδια πιθανότητα και το n είναι αρκετά μεγάλο,τότε υπολογίζοντας την συνάρτηση για ένα πλήθος περίπου 1,2 √n διαφορετικών εισόδων περιμένουμε να βρούμε ένα ζεύγος εισόδων x1 και x2 τέτοια ώστε f(x1)=f(x2). Η προηγούμενη όμως παρατήρηση παραβιάζει το 2 nd preimage resistance ! «παράδοξο των γενεθλίων». Αν έχω σε ένα δωμάτιο 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

34 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]  x 16i+j 0≤j≤15. Κατόπιν ακολουθεί επεξεργασία σε 5 γύρους των 16 βημάτων και στο τέλος ενημερώνει τις μεταβλητές της αλυσίδας. 5.Ολοκλήρωση: η τελική τιμή κατακερματισμού είναι η ένωση H 1 || H 2 || H 3 || H 4 || H 5

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

36 36 Αλγόριθμοι MD (Message Digest) SHA-1 MD5 (MD4+) RIPEMD-160 Μήκος εξόδου160 bits128 bits160 bits Βασική μονάδα επεξεργασίας 512 bits Πλήθος βημάτων 80 (4 γύροι των 20) 64 (4 γύροι των 16) 160 (5 ζευγάρια γύρων των 16) Μέγιστο μέγεθος μηνύματος 2 64 -1 bitsαπεριόριστο

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

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

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

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

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

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

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

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

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

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

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

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

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

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

51 51 2-στάδια αναγνώρισης Οι άνθρωποι δυσκολεύονται να απομνημονεύσουν μικρά συνθηματικά. Για το πρόβλημα αυτό υπάρχουν 2 λύσεις:  Μια συνήθης τακτική είναι να χρησιμοποιείται το pin για να επαληθεύσει το χρήστη στο token(πακέτο).όσο αυτό περιέχει επιπρόσθετη πληροφορία επιτρέποντας στο token να πιστοποιήσει τον εαυτό του στο σύστημα. Έτσι ο χρήστης αναγνωρίζεται από το σύστημα με μια διαδικασία 2 σταδίων και επιτρέπει στο χρήστη να θυμάται μόνο ένα μικρό pin.  Μια δεύτερη τεχνική είναι να χαρτογραφηθεί το συνθηματικό από μια μονόδρομη συνάρτηση σε ένα κρυπτογραφικό κλειδί που ονομάζεται passkey(συνθηματικό κλειδί). Χρησιμοποιείται για να διασφαλίσει μια επικοινωνία μεταξύ του χρήστη και του συστήματος.

52 52 One-time συνθηματικά (δυνατή πιστοποίηση) Είναι τα συνθηματικά που χρησιμοποιούνται μόνο μία φορά το καθένα και αποτελούν μια φυσική πρόοδο των σταθερών συνθηματικών. Μερικές παραλλαγές τους είναι:  Κοινές λίστες από οne-way συνθηματικά. Ο χρήστης και το σύστημα χρησιμοποιούν ένα σύνολο από t μυστικά συνθηματικά κατανεμημένα σαν μια προ-κοινή λίστα. Μειονέκτημα:η συντήρηση της λίστας.  Συνεχής ενημέρωση των οne-way συνθηματικών. Κατά τη διάρκεια της πιστοποίησης χρησιμοποιώντας το συνθηματικό i ο χρήστης δημιουργεί και μεταδίδει στο σύστημα ένα νέο συνθηματικό το i+1 κρυμμένο κάτω από ένα κλειδί προερχόμενο από το συνθηματικό i.

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

54 54 Υπόβαθρο των χρονικά-διάφορων παραμέτρων  Μπορούν να χρησιμοποιηθούν στα πρωτόκολλα αναγνώρισης για να εξασφαλίσουν μοναδικές ή αιώνιες εγγυήσεις και να εμποδίσουν βέβαιες επιθέσεις.  Οι παράμετροι που χρησιμοποιούνται για να διαχωρίσουν μια υπόδειξη ενός πρωτοκόλλου από μια άλλη λέγονται μοναδικοί (nonces), μοναδικοί αριθμοί ή μη-επαναλαμβανόμενες τιμές.  Μια nonce είναι μια τιμή που χρησιμοποιείται όχι πάνω από μια φορά για τον ίδιο σκοπό, αλλά και για να εμποδίσει την επανάληψη.

55 55 Χρονικά-διάφορες παράμετροι Υπάρχουν 3 κύριες κατηγορίες χρονικά-διάφορων παραμέτρων  Τυχαίοι αριθμοί : χρησιμοποιούνται για να διασφαλίσει μοναδικότητα και επικαιρότητα εγγυήσεων και για να εμποδίσει βέβαιες επιθέσεις. Περιέχουν ψευδοτυχαίους αριθμούς που δεν μπορούν να προβλεφθούν από τον εχθρό.  Ακολουθία αριθμών:χρησιμοποιείται για να ανιχνεύσει επαναληπτικό μήνυμα.  Timestamps :χρησιμοποιούνται για να εξασφαλίσουν μοναδικότητα και επικαιρότητα εγγυήσεων και για να αναζητήσουν αναγκαστικές καθυστερήσεις.

56 56 Απαίτηση-απόκρισης με τεχνικές συμμετρικού κλειδιού  Απαιτούν ο διεκδικητής και ο επαληθευτής να μοιράζονται ένα συμμετρικό κλειδί.  Για συστήματα με λίγους χρήστες κάθε ζεύγος χρηστών μπορεί να μοιράζεται το κλειδί εκ των προτέρων.

57 57 Απαίτηση απόκρισης βασισμένη στην απόκρυψη συμμετρικού-κλειδιού Υπάρχουν 3 τεχνικές που αναλαμβάνουν την προηγούμενη παρουσία ενός διαμοιραζόμενου κρυφού κλειδιού.  Μονόπλευρη πιστοποίηση βασισμένη σε timestamp:  Μονόπλευρη πιστοποίηση χρησιμοποιώντας τυχαίους αριθμούς: το timestamp μπορεί να αντικατασταθεί από έναν τυχαίο αριθμό με κόστος ένα επιπρόσθετο μήνυμα:  Αμοιβαία πιστοποίηση χρησιμοποιώντας τυχαίους αριθμούς:

58 58 Απαίτηση απόκρισης  Βασισμένη σε μονόδρομες συναρτήσεις: Ο αλγόριθμος απόκρυψης στους παραπάνω μηχανισμούς μπορεί να αντικατασταθεί με μια μονόδρομη συνάρτηση του διαμοιραζόμενου κλειδιού.  Με τεχνικές δημόσιου κλειδιού: ο διεκδικητής αποδεικνύει ότι γνωρίζει το ιδιωτικό του κλειδί με 2 τρόπους  Ο διεκδικητής αποκωδικοποιεί μια αίτηση απόκρυψης κάτω από το δημόσιο κλειδί του  Ο διεκδικητής υπογράφει ψηφιακά μια αίτηση

59 59 Απαίτηση απόκρισης βασισμένη στην αποκωδικοποίηση συμμετρικού-κλειδιού Θεωρούμε αρχικά το εξής πρωτόκολλο: όπου είναι η αίτηση. Τα μηνύματα στο προσαρμοσμένο πρωτόκολλο αναγνώρισης είναι: όπου δηλώνει το συμμετρικό κλειδί απόκρυψης του Β

60 60 Απαίτηση απόκρισης βασισμένη σε ψηφιακές υπογραφές Υπάρχουν 3 μηχανισμοί αναγνώρισης :  Μονομερής αναγνώριση με Timestamps:  Μονομερής αναγνώριση με τυχαίους αριθμούς:  Αμοιβαία αναγνώριση με τυχαίους αριθμούς:

61 61 Ισχυρή πιστοποίηση ταυτότητας – «απάντηση σε πρόκληση» (challenge response identification) Βασική ιδέα: Ένας χρήστης Α (claimant) αποδεικνύει την ταυτότητά του σε κάποιον άλλο Β (verifier) αποδεικνύοντάς του ότι κατέχει μία μυστική γνώση, χωρίς όμως να αποκαλύπτει τη γνώση αυτή. Αυτό επιτυγχάνεται με το να απαντά σε μία «ερώτηση-πρόκληση» του verifier, η απάντηση της οποίας εξαρτάται, εκτός από την ερώτηση, και από τη μυστική γνώση. Πρωτόκολλα με αυτά τα χαρακτηριστικά ονομάζονται μηδενικής γνώσης (zero-knowledge (ZK))

62 62 Γενικά χαρακτηριστικά πρωτοκόλλων ZK (ΖΚ τριών κινήσεων) O Α (claimant) από το ιδιωτικό του κλειδί (μυστική πληροφορία που την κατέχει μόνο αυτός), παράγει τυχαία μία πληροφορία-βεβαίωση (witness). O Α στέλνει την βεβαίωση στον B (verifier). Κάθε φορά ο Α επιλέγει ένα διαφορετικό ιδιωτικό κλειδί.Αυτό παρέχει μια αρχική τυχαιότητα από επόμενες κλήσεις του πρωτοκόλλου. (το r στο πρωτόκολλο του Fiat – Shamir ) Με βάση την βεβαίωση, ο B κάνει μία ερώτηση- πρόκληση (challenge) στον A. To πρωτόκολλο πρέπει να είναι έτσι σχεδιασμένο ώστε μόνο κάποιος που κατέχει το μυστικό κλειδί του A να μπορεί να απαντήσει σωστά σε όλες τις προκλήσεις, ενώ επίσης να μην μπορεί να εξαχθεί καμία πληροφορία για το ιδιωτικό κλειδί του A από τις απαντήσεις. Ο Α στέλνει στον B την απάντηση (response) στην πρόκληση. Ο B πρέπει να είναι σε θέση να επιβεβαιώσει την ορθότητα της απάντησης.

63 63 Αυτό το βήμα εκτελείται μόνο ΜΙΑ φορά στην αρχή του πρωτοκόλλου Έστω N=p  q, όπου p,q είναι πολύ μεγάλοι πρώτοι αριθμοί (το N τουλάχιστον 512 bits) (το N παράγεται από έναν «διαιτητή», αποδεκτό από όλους – τα p,q κρατούνται μυστικά) Ο claimant Α επιλέγει τυχαία s μικρότερο του N με (s,N)=1 και υπολογίζει υ τέτοιο ώστε: υ = s 2 (mod N) Δημόσιο κλειδί : N, υ ιδιωτικό κλειδί : s Σχήμα πιστοποίησης ταυτότητας Fiat-Shamir

64 64 Fiat-Shamir (II) Claimant (C) Verifier (V) s N, s, υ N, υ Επιλογή τυχαίου αριθμού r < N Ορισμός x = r 2 mod N (witness) x Ερώτηση (e) = 0 =1 y = r y = r  s mod N έλεγχος: y 2 =x mod N y 2 =xυ mod N Το βήμα αυτό εκτελείται t φορές. Όσες περισσότερες είναι αυτές τόσο πιο ασφαλές το πρωτόκολλο Α Β

65 65 Fiat – Shamir (III) H παραπάνω διαδικασία επαναλαμβάνεται πολλές φορές Σε κάθε βεβαίωση r, o V στέλνει μία πρόκληση e, είτε 0 είτε 1, και ο C απαντά με το y=rs e (mod N). O V ελέγχει αν ισχύει y 2 =xυ e (mod N) Ένας επιτιθέμενος που θέλει να προσποιηθεί ότι είναι ο C, μπορεί να επιλέξει τυχαίο r, να στείλει x=r 2 /υ και σε κάθε πρόκληση e=1 να απαντά y=r, κάτι που ο V θα το ανιχνεύει ως σωστή απάντηση. Όμως δεν θα μπορεί να απαντήσει σωστά για e=0. ( Απαιτεί την τετραγωνική ρίζα του x mod n )

66 66 Fiat-Shamir (ΙV) Μετά από k γύρους, η πιθανότητα λάθους (δηλαδή η πιθανότητα ο εισβολέας να εξαπατήσει τον verifier) ισούται με (1/2) k (αν θεωρήσουμε ότι μπορεί να απαντήσει σωστά σε μία από τις δύο ερωτήσεις). Δεν πρέπει να χρησιμοποιείται πάνω από μία φορά το ίδιο r, γιατί με αυτό τον τρόπο ένας εισβολέας μπορεί να παρακολουθεί τη συνομιλία, να μάθει τις απαντήσεις του claimant για τις εκάστοτε ερωτήσεις του verifier και να τις επαναλάβει

67 67 Ασφάλεια Fiat-Shamir Έγκειται στα εξής Δυσκολία στην παραγοντοποίηση: ένας αλγόριθμος που «σπάει» τον Fiat- Shamir είναι ισοδύναμος με έναν αλγόριθμο που παραγοντοποιεί τον N Τυχαιότητα: του r (όσον αφορά τη μηδενική γνώση) της ερώτησης (αυτό εμποδίζει τον claimant στο να εξαπατήσει)

68 68 Πρωτόκολλο αναγνώρισης Feige-Fiat-Shamir Μια παραλλαγή του Fiat-Shamir πρωτοκόλλου, αποτελεί το Feige-Fiat-Shamir όπου εμπλέκει μια οντότητα αυτοαναγνώρισης αποδεικνύοντας τη γνώση ενός μυστικού χρησιμοποιώντας μια απόδειξη μηδενικής γνώσης. Πρωτόκολλο (Ο Α αποδεικνύει την ταυτοτητά του στον Β σε t εκταλέσεις) 1. Επιλογή παραμέτρων συστήματος Επιλέγεται και δημοσιοποιείται ένας σύνθετος ακέραιος n=pq, αλλά κρατούνται μυστικοί οι πρώτοι παράγοντες p κα q. Ακέραιοι k, t ορίζονται ως παράμετροι ασφάλειας. 2. Επιλογή μυστικών ανά οντότητα α) Επιλέγονται k τυχαίοι ακέραιοι με 1≤s i ≤n-1 και k τυχαία bits Απαιτείται για τεχνικούς λόγους gcd(s i,n)=1 β) Υπολογισμός του για 1≤s i ≤n-1. Αυτό χρησιμεύει για να αποδείξει ότι δεν υπάρχει διαρροή μυστικής πληροφορίας, αφού με την επιλογή του n, ακριβώς ένα έχει τετραγωνική ρίζα. γ) Ο Α ταυτοποιεί τον εαυτό του με μη κρυπτογραφικούς τρόπους και στη συνέχεια δηλώνεται το δημόσιο κλειδί (v 1,...,v κ ;n) του Α, ενώ τα μυστικά του κλειδιά (s 1,…, s k ) τα γνωρίζει μόνο αυτός.

69 69 Feige-Fiat-Shamir 3. Μηνύματα πρωτοκόλλου Κάθε ένας από τους t γύρους έχει τρία μηνύματα με την εξής μορφή: 4. Ενέργειες πρωτοκόλλου Τα επόμενα βήματα εκτελούνται t φορές. Ο αποδέχεται την ταυτότητα του Α εάν όλοι οι γύροι επιτύχουν. α) Ο επιλέγει τυχαία έναν ακέραιο r με 1≤r≤n-1 και ένα τυχαίο bit b. Υπολογίζει το x=(-1) b r 2 mod n και αποστέλλει το x στον Β. β) Ο Β στέλνει στον Α ένα άνυσμα k-bit (e 1,…, e k ) (πρόκληση) γ) Ο Α υπολογίζει και στέλνει στον Β την απάντηση: δ) Ο Β υπολογίζει το και εξακριβώνει ότι z=±x και z≠0.

70 70 Ασφάλεια του Feige-Fiat-Shamir Η ασφάλειά του στηρίζεται στη δυσκολία εύρεσης τετραγωνικής ρίζας modulo μεγάλων σύνθετων ακεραίων. Η πιθανότητα επιτυχούς πλαστογραφίας είναι μικρή, και αν σκεφτούμε τη δυσκολία του προβλήματος factoring είναι στην καλύτερη περίπτωση 2 -kt. Είναι αρκετά ασφαλές σε επιθέσεις προεπιλεγμένων μηνυμάτων. Η επιλογή των παραμέτρων k και t, έτσι ώστε το γινόμενο kt να ισούται με το 20, ελαχιστοποιεί την πιθανότητα πλαστοπροσωπίας σε μια στο εκατομμύριο. Είναι δυνατόν επίσης να μειωθεί η πολυπλοκότητα της επικοινωνίας του Α και του Β, εάν ο Α αποστέλλει στον Β μια hash τιμή H(x) αντί για ένα μήνυμα x. Αυτό βέβαια απαιτεί και την αντίστοιχη τροποποίηση στην διαδικασία εξακρίβωσης του Β.

71 71 Guillou-Quisquarter πρωτόκολλο Το GQ πρωτόκολλο αναγνώρισης είναι ουσιαστικά η επέκταση του Fiat- Shamir. Επιτρέπει την μείωση των ανταλλασομένων μηνυμάτων και της μνήμης επομένως, που απαιτείται. Ενδείκνυται όπως και ο Fiat-Shamir για εφαρμογές στις οποίες ο Α και ο Β έχουν μειωμένη υπολογιστική ισχύ και μικρή μνήμη. Περιλαμβάνει τρία μηνύματα μεταξύ του Α, του οποίου η ταυτότητα τεκμηριώνεται και ενός verifier Β. Πρωτόκολλο (Ο Α αποδεικνύει την ταυτότητά του, μέσω της γνώσης του s A στον Β) 1. Επιλογή Παραμέτρων συστήματος α) Μια Αρχή Τ που την εμπιστεύονται όλα τα μέρη συνδέει τις ταυτότητες των χρηστών με τα δημόσια κλειδιά και επιλέγει πρώτους p,q που αποτελούν παράγοντες του n. β) Ο Τ καθορίζει ένα δημόσιο εκθέτη ν≥3 με gcd(ν,φ)=1, όπου φ=(p-1)(q-1) και υπολογίζει τον ιδιωτικό s=v -1 mod φ. γ) Οι παράμετροι (ν,n) του συστήματος διατίθενται σε όλους τους χρήστες.

72 72 Guillou-Quisquarter πρωτόκολλο 2. Επιλογή των παραμέτρων κάθε χρήστη α) Κάθε οντότητα Α παίρνει μια μοναδική ταυτότητα Ι Α, όπου το J Α =f(Ι Α ) ικανοποιεί τη σχέση 1< J Α <n β) Ο Τ δίνει στον Α το μυστικό s Α = (J Α ) -s mod n. 3. Μηνύματα πρωτοκόλλου Κάθε ένας από τους t γύρους έχει τρία μηνύματα που έχουν ως εξής: (συχνά t=1) 4. Ενέργειες πρωτοκόλλου α) Ο Α επιλέγει ένα τυχαίο μυστικό r (δέσμευση),1≤r≤n-1, και υπολογίζει το x=r v mod n (μάρτυρας). β) Ο Α στέλνει στον Β το ζευγάρι (Ι Α,x). γ) Ο Β επιλέγει και στέλνει στον Α ένα τυχαίο ακέραιο 1≤e≤n-1.(πρόκληση) δ) Ο Α υπολογίζει και στέλνει στον Β y=r s Α e mod n. ε) Ο Β λαμβάνει το y, κατασκευάζει το J Α από το Ι Α, υπολογίζει το z= J Α e y v mod n και δέχεται την απόδειξη ταυτότητας του Α εάν z=x και z≠0. Ο Α αποδεικνύει την ταυτότητά του στο Β όταν εκτελεστεί t φορές το (4.) και όλες οι εκτελέσεις είναι επιτυχημένες.

73 73 Απαιτούμενο επίπεδο ασφάλειας Το επιθυμητό επίπεδο ασφάλειας στα πρωτόκολλα αναγνώρισης εξαρτάται από το περιβάλλον και τις συσκευές που κατέχουμε τη δεδομένη περίοδο. Οι επιθέσεις που μπορεί να δεχτεί ένα πρωτόκολλο αναγνώρισης είναι :  Τοπικές επιθέσεις. Οι παράμετροι ασφάλειας του συστήματος που περιορίζουν την πιθανότητα επιτυχούς πλαστοπροσωπίας, επιλέγονται με αυτό τον τρόπο ώστε η πιθανότητα αυτή να είναι 1 στις 2 20 (20 bits ασφάλειας). Ο υποτιθέμενος πλαστογράφος εμφανίζεται τοπικά.  Απομακρυσμένες επιθέσεις. Ένα υψηλότερο επίπεδο ασφάλειας απαιτείται σε περιβάλλοντα όπου απεριόριστες προσπάθειες για ταυτοποίηση πραγματοποιούνται. Εκεί ένας ανώνυμος χρήστης παρεμβαίνει σε επιλεγμένες επικοινωνίες. Τα bits ασφάλειας που απαιτούνται εδώ είναι 20 ή 40 ή περισσότερα, εκτός και αν οι παρεμβολές εμποδιστούν με κάποιο τρόπο.

74 74 Ισχυρή πιστοποίηση ταυτότητας με χρήση συνάρτησης κατακερματισμού 2. O V στέλνει την πρόκληση Πρόκληση Claimant (C) Verifier (V) 1. Ο V δημιουργεί το μήνυμα – Πρόκληση (Challenge Message) Ο C έχει ένα password το οποίο γνωρίζει ο V

75 75 3. Ο C παράγει το μήνυμα-απάντηση με τον εξής τρόπο: (a)Επισυνάπτει το password στο μήνυμα-πρόκληση (b) Κατακερματίζει το αποτέλεσμα (χωρίς κρυπτογράφηση) (c) Το κατακερματισμένο μήνυμα είναι η απάντηση (Response Message) ChallengePassword Response Κατακερματισμός (χωρίς κρυπτογράφηση) Ισχυρή πιστοποίηση ταυτότητας με χρήση συνάρτησης κατακερματισμού (II)

76 76 4. Ο C στέλνει την απάντηση, χωρίς να την κρυπτογραφήσει Απάντηση (challenge response) Ισχυρή πιστοποίηση ταυτότητας με χρήση συνάρτησης κατακερματισμού (III) Claimant (C) Verifier (V)

77 77 ChallengePassword Αναμενόμενη απάντηση Κατακερματισμός 5. Ο V επισυνάπτει το password στο μήνυμα που έστειλε και κατακερματίζει το αποτέλεσμα. Αυτό που προκύπτει είναι η αναμενόμενη απάντηση από τον C Ισχυρή πιστοποίηση ταυτότητας με χρήση συνάρτησης κατακερματισμού (IV)

78 78 Αναμενόμενη απάντησηΜεταδιδόμενη απάντηση =? 6. Αν η ληφθείσα απάντηση ταυτίζεται με την αναμενόμενη, τότε Ο V συμπεραίνει ότι o C ξέρει το σωστό password. Ισχυρή πιστοποίηση ταυτότητας με χρήση συνάρτησης κατακερματισμού (V) Στην παραπάνω ανάλυση δεν χρησιμοποιήθηκε καθόλου κρυπτογράφηση, παρά μόνο κατακερματισμός

79 79 Ψηφιακή υπογραφή(Digital Signature) Εισαγωγικές έννοιες Ψηφιακή Υπογραφή (Digital Signature)  Είναι ένα σύνολο από bits που προσθέτει ο αποστολέας ενός εγγράφου σ’αυτό.  Συνδέει το έγγραφο με την οντότητα, απ’την οποία προήλθε.  Χρησιμοποιούνται για να : επαληθεύσουν το φορέα αποστολής δεδομένων (authentication). επιβεβαιώσουν ότι τα δεδομένα που στάλθηκαν δεν έχουν τροποποιηθεί (integrity). διασφαλίσουν τη μη αποποίηση (non-repudiation) της αποστολής ενός μηνύματος. Αλγόριθμος Παραγωγής Ψηφιακής Υπογραφής (Digital Signature Generation Algorithm) Αλγόριθμος Ελέγχου Ψηφιακής Υπογραφής (Digital Signature Verification Algorithm)  Μέθοδος ελέγχου ότι η ψηφιακή υπογραφή είναι αυθεντική, δηλαδή ότι έχει πραγματικά δημιουργηθεί απ’την εν λόγω οντότητα.

80 80 Ψηφιακή υπογραφή (Digital Signature) I Υπογραφή (signature) s=S I (m) για ένα μήνυμα m ενός χρήστη I I I o I υπογράφει, δηλαδή υπολογίζει το s, συνάρτηση τόσο του m όσο και του ίδιου του χρήστη I I I  Για δοθέντα s,I, και m, ο οποιοσδήποτε μπορεί να ελέγξει ότι s=S I (m)  H συνάρτηση υπολογισμού του s πρέπει να είναι κατάλληλη ώστε να μη μπορεί κάποιος άλλος να δημιουργήσει το ίδιο s με τον I Επίσης χρησιμοποιείται για πιστοποίηση ταυτότητας, με τη διαφορά ότι πραγματοποιείται σε κάθε πακέτο δεδομένων που αποστέλλεται (καλείται και message-by-message authentication )

81 81 Ψηφιακή υπογραφή με χρήση αλγορίθμου Δημοσίου Κλειδιού Για τη δημιουργία της ψηφιακής υπογραφής: 1.Κατακερματισμός του αρχικού μηνύματος, έτσι ώστε να προκύψει ένα «αποτύπωμα» (MD) του μηνύματος 2.Το MD κρυπτογραφείται, με το ιδιωτικό κλειδί του αποστολέα. Προκύπτει έτσι η ψηφιακή υπογραφή (DS) 3. Η υπογραφή επισυνάπτεται στο αρχικό μήνυμα, κρυπτογραφείται το αποτέλεσμα (στην τυπική περίπτωση με συμμετρικό κλειδί) και μεταδίδεται Αρχικό μήνυμα MD DS Αρχικό μήνυμα Κατακερματισμός Υπογραφή (Κρυπτογράφηση) με το ιδιωτικό κλειδί του αποστολέα

82 82 Έλεγχος ψηφιακής υπογραφής, με αλγόριθμο Δημοσίου Κλειδιού Για να ελέγξει ο δέκτης την υπογραφή: 4. Κατακερματίζει το αρχικό μήνυμα με την ίδια συνάρτηση κατακερματισμού. Αυτό οδηγεί στον υπολογισμό του MD. 5. Αποκρυπτογραφεί την υπογραφή με το Δημόσιο Κλειδί του αποστολέα. Αυτό επίσης οδηγεί στον υπολογισμό του MD 6. Αν συμπίπτουν, η ταυτότητα του αποστολέα επιβεβαιώνεται Λαμβανόμενο μήνυμα MD DS MD 4.4.5.5. Κατα- κερματισμός Αποκρυπτογράφηση με το δημόσιο κλειδί του αποστολέα 6. Είναι ίσα?

83 83 Αλγόριθμοι ψηφιακών υπογραφών Όλες οι γνωστές μέθοδοι Δημοσίου Κλειδιού μπορούν να χρησιμοποιηθούν για την ψηφιακή υπογραφή  RSA (χρησιμοποιείται ευρέως)  Rabin  ElGamal

84 84 Αλγόριθμος DSA (Digital Signature Algorithm) Προτάθηκε από τον NIST το 1991 Απαιτεί τη χρήση συνάρτησης κατακερματισμού (SHA-1) Στηρίζεται στον αλγόριθμο ElGamal Βασίζεται στη δυσκολία υπολογισμού του διακριτού λογαρίθμου

85 85 Περιγραφή DSA Παράμετροι συστήματος  Επιλογή ενός πρώτου q των 160-bit  Επιλογή ενός πρώτου p των 1024-bit, έτσι ώστε: q | p-1  Επιλογή g  Z p * για τον υπολογισμό γεννήτορα a a = g (p-1)/q mod p  Αν a=1, η διαδικασία επαναλαμβάνεται με διαφορετικό g Κλειδιά  Επιλογή τυχαίου μυστικού κλειδιού α (1  α  q-1)  Υπολογισμός Δημοσίου Κλειδιού y = a α mod p  Δημόσιο κλειδί τα (p, q, a, y)  Ιδιωτικό κλειδί το α

86 86 Υπογραφή στον DSA Για να υπογραφεί ένα μήνυμα m  Κατακερματισμός του m  h(m) (1  h(m)  q-1)  Δημιουργία τυχαίου (και μυστικού) k (1  k  q-1)  Υπολογισμός r = (a k mod p) mod q  Υπολογισμός k -1 mod q  Υπολογισμός s = k -1 { h(m) + α r } mod q  Η υπογραφή στο m είναι (r,s)

87 87 DSA – Επαλήθευση υπογραφής Για την επαλήθευση των (r,s)  Έλεγχος του ότι 1  r  q-1 και 1  s  q-1  Υπολογισμός w = s -1 mod q  Υπολογισμός u 1 = w h(m) mod q  Υπολογισμός u 2 = r w mod q  Υπολογισμός του v = (a u 1 y u 2 mod p) mod q  Αποδοχή της υπογραφής εάν v = r

88 88 Απόδειξη επαλήθευσης υπογραφής Εάν (r, s) είναι μια νόμιμη υπογραφή του m τότε θα πρέπει να ισχύει h(m) = -α r + k s mod q Οπότε w h(m) + α r w = k mod q Αλλά αυτό είναι u 1 + α u 2 = k mod q (β) Υψώνοντας το a στα δύο μέρη της (β) έχουμε (a u 1 y u 2 mod p) mod q = (a k mod p) mod q Οπότε v = r, όπως απαιτείται

89 89 Παράδειγμα στον DSA 1)Key Generation Παράμετροι συστήματος  Διαλέγουμε αρχικά πρώτο q = 124540019 και έπειτα πρώτο p = 17389, ώστε o q να διαιρεί τον (p-1). Όντως, είναι (p-1) / q = 7162.  Επιλέγουμε τυχαίο g = 110217528  Z p * και υπολογίζουμε a = g (p-1)/q mod p : a = 110217528 7162 mod 17389 = 10083255. (a ≠ 1) Κλειδιά  Επιλέγουμε τυχαίο μυστικό κλειδί α, ώστε 1  α  q-1: Έστω α = 12496, οπότε, αφού y = a α mod p, έχω : y =10083255 12496 mod 124540019 = 119946265.

90 90 Παράδειγμα στον DSA 1)Key Generation Τα κλειδιά που δημιουργήσαμε είναι:  Δημόσιο Κλειδί: p = 124540019, q = 17389, a = 10083255, y = 119946265.  Ιδιωτικό Κλειδί: α = 12496.

91 91 Παράδειγμα στον DSA 2)Παραγωγή Ψηφιακής Υπογραφής  Επιλέγουμε τυχαίο και μυστικό k = 9557 και υπολογίζουμε r = (a k mod p) mod q : r = (10083255 9557 mod 124540019) mod 17389 = 27039929 mod 17389 = 34.  Υπολογίζουμε το k -1 mod q = 7631.  Κατακερματίζουμε το m: h(m) = 5246.  Υπολογίζουμε s = k -1 {h(m) + a*r} mod q : s = (7631){5246 + 12496*34)} mod q = 13049.  Άρα η υπογραφή που παράχθηκε, για το μήνυμα m, είναι το ζευγάρι (r, s) = (34,13049).

92 92 Παράδειγμα στον DSA 2)Έλεγχος (επιβεβαίωση) Ψηφιακής Υπογραφής  Υπολογίζουμε w = s -1 mod q = 1799.  u 1 = w * h(m) mod q = (5246.1799) mod 17389 = 12716.  u 2 = (r.w) mod q = (34.1799) mod 17389 = 8999.  Ελέγχουμε αν ισχύει η σχέση: (a u 1 y u 2 mod p) mod q = r (a u 1 y u 2 mod p) mod q = (10083255 12716. 119946265 8999 mod 124540019) mod 17389 = 34 = r. Άρα δεχόμαστε την υπογραφή!

93 93 Ασφάλεια του DSA Έγκειται στα:  Υπολογισμός λογαρίθμων στο GF(p)  Υπολογισμός λογαρίθμων σε κυκλική υπο- ομάδα τάξης q Αλγόριθμοι για αυτό χρειάζονται χρόνο ανάλογο του q 1/2 (κεφάλαιο 3 – Handbook of Applied Cryptography) Στην πράξη επιλέγεται q  2 160 και p  2 1024

94 94 Άλλοι αλγόριθμοι ψηφιακής υπογραφής GOST Ong-Schnorr-Shamir ESIGN


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

Παρόμοιες παρουσιάσεις


Διαφημίσεις Google