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

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

description

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

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

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

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

Πιστοποίηση μηνύματος (Message authentication) -Πιστοποίηση ταυτότητας αποστολέα (Entity authentication)

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

2

Επιπρόσθετες απαιτήσεις στην κρυπτογραφία

Επιβεβαίωση ότι το μήνυμα που αποκρυπτογραφείται είναι το αυθεντικό (data integrity)

Επιβεβαίωση ότι ο αποστολέας είναι αυτός που ισχυρίζεται (identification ή entity authentication)

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

3

Επιπρόσθετες απαιτήσεις στην κρυπτογραφία

Data integrity : Τα δεδομένα δεν έχουν υποστεί αλλαγή από μη εξουσιοδοτημένα μέρη.

Data origin authentication : Πιστοποίηση ότι τα δεδομένα έχουν προέλθει από μια συγκεκριμένη πηγή η οποία δεν έχει μεταβληθεί.

Message authentication : Έμμεσα εξασφαλίζει και data origin authentication αφού αλλαγή του περιεχομένου του μηνύματος υπονοεί και αλλαγή της πηγής.

Η Πιστοποίηση μηνύματος είναι απαραίτητη οποτεδήποτε έχουμε κίνδυνο από ηθελημένη ή αθέλητη τροποποίηση των δεδομένων. (πχ κανάλι με θόρυβο ή εσκεμμένη αλλαγή μηνύματος)

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

4

Πιστοποίηση μηνύματος(Message authentication)

Στόχος: Προστασία έναντι «ενεργών» επιθέσεων Τροποποίησης του περιεχομένου του μηνύματος Τροποποίησης του συγχρονισμού και της

αλληλουχίας της σειράς του μηνύματος (Timing and/or Sequencing modification)

Μια τεχνική βασίζεται στις συναρτήσεις κατακερματισμού

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

5

Συναρτήσεις κατακερματισμού(hash functions)

Συναρτήσεις κατακερματισμού : Είναι υπολογιστικά εφικτές συναρτήσεις που αντιστοιχίζουν σειρές bits μεταβλητού μεγέθους σε σειρές bits σταθερού μήκους.

Oι συναρτήσεις κατακερματισμού βρίσκουν χρήση σε αρκετές εφαρμογές ( πχ κρυπτογραφία, διαχείριση αρχείων, κτλ )

Οι κυριότερες χρήσεις των συναρτήσεων κατακερματισμού στην κρυπτογραφία είναι Ψηφιακές υπογραφές ( Digital signatures ) Ακεραιότητα δεδομένων ( Data integrity ) Πρωτόκολλα αναγνώρισης ( Identification protocols )

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

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)

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

7

Μία απλή συνάρτηση κατακερματισμού

Bitwise-XOR

Όχι καλή: Δεν ικανοποιεί το 2nd preimage resistance.

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

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ης

προαπεικόνισης, αλλά δεν παρέχει συμπίεση.

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

9

Σχέσεις μεταξύ ιδιοτήτων Πρόταση: αντίσταση σύγκρουσης αντίσταση 2ης

προαπεικόνισης των συναρτήσεων κατακερματισμού Σημείωση: η αντίσταση σύγκρουσης δεν εγγυάται

αντίσταση προαπεικόνισης 1 x, αν x έχει μήκος n-bit 0 g(x), διαφορετικά

Τότε η h είναι (n+1)-bit συνάρτηση κατακερματισμού με αντίσταση σύγκρουσης, αλλά όχι αντίσταση 2ης προαπεικόνισης.

Πρόταση: Έστω hk συνάρτηση κατακερματισμού με κλειδί που είναι αλγόριθμος MAC. Τότε η hk έχει : αντίσταση 2ης προαπεικόνισης, αντίσταση σύγκρουσης και αντίσταση προαπεικόνισης.

π.χ. h(x) =

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

10

Επιπρόσθετες ιδιότητες των μονόδρομων συναρτήσεων κατακερματισμού

1. Μη-συσχέτισης: τα bit εισόδου και εξόδου δεν πρέπει να είναι συσχετισμένα

2. Αντίσταση κοντινής σύγκρουσης: θα πρέπει να είναι δύσκολο να βρεθούν δύο είσοδοι x, x’ ώστε οι h(x), h(x’) να διαφέρουν σε ένα μικρό πλήθος bits

3. Αντίσταση μερικής προαπεικόνισης (ή τοπική μονοδρομικότητα): θα πρέπει να είναι το ίδιο δύσκολο να ανακτήσουμε οποιαδήποτε υποσειρά χαρακτήρων, όσο και μια ολόκληρη είσοδο.

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

11

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

MDCs και MACs

Κώδικες ανίχνευσης τροποποίησης (MDC - Modification Detection Codes) Κατακερματισμός ενός μηνύματος έτσι ώστε να πληροί

συγκεκριμένες ιδιότητες. Στόχος τους, σε συνδυασμό με άλλες τεχνικές, η εξασφάλιση της γνησιότητας του μηνύματος. Δεν υπεισέρχεται κανένα κλειδί

Κώδικες πιστοποίησης μηνύματος (MAC - Message Authentication Codes) Στόχος τους, χωρίς τη βοήθεια επιπρόσθετων τεχνικών, η

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

Και στις δύο περιπτώσεις η συνάρτηση κατακερματισμού είναι δημοσίως γνωστή.

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

12

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

MDCs και MACs

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

13

Κατασκευή Συναρτήσεων Κατακερματισμού μίας κατεύθυνσης

Συνήθως κατασκευάζονται από συναρτήσεις των οποίων το πλήθος εξόδων είναι μικρότερο από το πλήθος εισόδων (συμπίεση)

Η δομή αυτή είναι ανάλογη με ένα αλυσιδωτό block cipher (Chained Block Cipher - CBC)

Παράγει μία τιμή κατακερματισμού για κάθε μπλοκ σταθερού μήκους, με βάση το περιεχόμενό του αλλά και την τιμή κατακερματιμού του προηγούμενου μπλοκ

O Rabin πρότεινε κάθε συνάρτηση f να είναι ο αλγόριθμος του DES (τα Mi θα έχουν το ρόλο του κλειδιού)

fIV

M1

f fh1 h

M2 Mn

h2 hn-1…

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

14

Κατασκευή Συναρτήσεων Κατακερματισμού μίας κατεύθυνσης

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

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

15

Μεταβολή του μήκους του κατακερματισμένου μηνύματος Χρήση του ακόλουθου αλγορίθμου

M0=M, H0=H(M) Δημιουργία του M1 επισυνάπτοντας το H0 to M0, και

παραγωγή του H1=H(M1) Επισύναψη του H1 στο H0 Επανάληψη των παραπάνω, μέχρι την δημιουργία

ικανοποιητικού κατακερματισμού

Μερικές συναρτήσεις κατακερματισμού, αν κι έχουν καλές κρυπτογραφικές ιδιότητες, παράγουν έξοδο μικρού μήκους. Μειονέκτημα, γιατί είναι εύκολο να βρεθεί κάποιο άλλο μήνυμα που να κατακερματίζεται στην ίδια έξοδο (ευάλωτες σε επιθέσεις birthday attack)

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

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

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

17

H Birthday Attack του Yuval σε συναρτήσεις κατακερματισμού

Επιθέσεις τετραγωνικής ρίζας: όταν επιλέγονται στοιχεία τυχαία, με αντικατάσταση από ένα σύνολο Ν στοιχείων, το επαναλαμβανόμενο στοιχείο θα συναντηθεί μετά από Ο(√Ν) επιλογές.

Αλγόριθμος της Birthday Attack του YuvalΕίσοδος: γνήσιο μήνυμα x1, δόλιο μήνυμα x2, m-bit μονόδρομη συνάρτηση

κατακερματισμού h.

Έξοδος: x1’, x2’ που προκύπτουν από μικρο-τροποποιήσεις των x1, x2 με h(x1’)=h(x2’)

Έτσι η υπογραφή πάνω στο x1’ χρησιμεύει ως υπογραφή πάνω στο x2’

1. Παράγετε t=2m/2 μικρο-τροποποιήσεις x1’ του x1.2. Κατακερματίστε κάθε τροποποιημένο μήνυμα x1’ και αποθηκεύστε τις τιμές

κατακερματισμού {x1’ , h(x1’)}, ώστε να αναζητούνται μεταγενέστερα (σε χρόνο Ο(t) με συμβατό κατακερματισμό).

3. Παράγετε μικρο-τροποποιήσεις x2’ του x2, υπολογίζοντας το h(x2’) για κάθε μια και ελέγχοντας για ταίριασμα με κάθε x1’. Συνεχίστε μέχρι να βρεθεί κάποιο ταίριασμα (μετά από περίπου t υποψήφιες x2’).

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

18

Εφαρμογή της Birthday Attack

Η επίθεση αυτή μπορεί να χρησιμοποιηθεί από έναν ανέντιμο υπογράφοντα που παρέχει την υπογραφή του στο x1’ σε ένα ανυποψίαστο άτομο και στη συνέχεια αρνείται ότι το υπέγραψε, ισχυριζόμενος ότι το μήνυμα που υπέγραψε ήταν το x2’.

Η επίθεση αυτή μπορεί επίσης να χρησιμοποιηθεί από έναν ανέντιμο επαληθευτή που μπορεί να πείσει ένα ανυποψίαστο άτομο να υπογράψει ένα προετοιμασμένο έγγραφο x1’ και μετά να ισχυρίζεται ότι το άτομο υπέγραψε το x2’.

Η επίθεση αυτή γενικεύεται σε όλες τις περιπτώσεις στις οποίες ένα κατακερματισμένο μήνυμα h(m) περνιέται σαν το ίδιο το μήνυμα m.

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

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) =

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

20

Τρόποι πιστοποίησης μηνύματος

Κλασική κρυπτογράφηση Έγκειται στην ασφάλεια που παρέχει το κλειδί και

μόνο (προϋποθέτει ότι κανείς τρίτος δεν διαθέτει το κλειδί)

Message Authentication Code (MAC) Χρήση αλγορίθμου κατακερματισμού, όπου

υπεισέρχεται και κλειδί Συνάρτηση κατακερματισμού

Μία δημόσια συνάρτηση κατακερματισμού μετατρέπει το μήνυμα σε μία ετικέτα πιστοποίησης

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

21

Πιστοποίηση μηνύματος με χρήση MAC

ΣύγκρισηΣύγκριση

μετάδοση

Αποστολέας Παραλήπτης

μήνυμα

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

22

Ιδιότητες MAC

Το μήνυμα είναι γνήσιο Αν κάποιος «εισβολέας» τροποποιήσει το μήνυμα, θα φανεί

στη σύγκριση που κάνει ο δέκτης Η πηγή του μηνύματος είναι γνήσια

Κανείς άλλος δεν έχει το ίδιο κλειδί για να δημιουργήσει το ίδιο MAC

Εξασφαλίζεται η σωστή αλληλουχία του μηνύματος Πρέπει να τοποθετείται timestamp στο μήνυμα, πριν τον

υπολογισμό του MAC

Οποιοσδήποτε κρυπτογραφικός αλγόριθμος (π.χ. DES) μπορεί να χρησιμοποιηθεί για τη δημιουργία του MAC

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

23

Πιστοποίηση μηνύματος με χρήση συνάρτησης κατακερματισμού

(MDC)

• Μία συνάρτηση κατακερματισμού εφαρμόζεται στο μήνυμα – το αποτέλεσμα προστίθεται στο τέλος του μηνύματος και όλο το νέο μπλοκ κρυπτογραφείται και μεταδίδεται

• Ο δέκτης αποκωδικοποιεί και κάνει σύγκριση ανάλογη με την περίπτωση του MAC

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

24

Συναρτήσεις κατακερματισμού που βασίζονται στο MD4

Διανύσματα ελέγχου για συναρτήσεις κατακερματισμού

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

25

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

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

26

(i) MD4

MD4=128-bit συνάρτηση κατακερματισμού. Στόχος: εύρεση μηνυμάτων με την ίδια τιμή κατακερματισμού με 264 πράξεις και εύρεση μηνύματος με προκαθορισμένη τιμή κατακερματισμού με 2128 πράξεις.

Το MD4 δεν επιτυγχάνει το στόχο του! Αλγόριθμος MD4:

είσοδος: σειρά χαρακτήρων bit x, αυθαίρετου μήκους bit, b>0έξοδος: 128-bit κώδικας κατακερματισμού του x1. Καθορισμός σταθερών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

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

27

(ii) MD5

Προήλθε από το MD4 με τις ακόλουθες αλλαγές:

1. πρόσθεση ενός 4ου γύρου 16 βημάτων.

2. αντικατάσταση του 2ου γύρου με νέα συνάρτηση

3. τροποποίηση στη σειρά προσπέλασης των λέξεων μηνυμάτων στον 2ο και 3ο γύρο.

4. τροποποίηση των ποσοτήτων ολίσθησης

5. χρήση επιπρόσθετων σταθερών 4x16 βήματα

6. πρόσθεση εξόδου από το προηγούμενο βήμα μέσα σε καθένα από τα 64 βήματα

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

28

(ii) MD5

Αλγόριθμος MD5:Είσοδος: σειρά χαρακτήρων bit x αυθαίρετου μήκους bit, b>0Έξοδος: 128-bit κώδικας κατακερματισμού του xΤο MD5 προκύπτει από το MD4 κάνοντας τις ακόλουθες αλλαγές1. Σημειογραφία: αντικατάσταση της συνάρτησης 2ου γύρου με:

Καθορισμός συνάρτησης 4ου γύρου: 2. Καθορισμός σταθερών: (δείτε λεπτομέρειες στη βιβλιογραφία)

3. Προεργασία: όπως στο MD44. Διεργασία: Για καθένα από τους γύρους 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

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

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

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

30

Βασική δομή του SHA-1

Επεξεργάζεται 512-bit blocks Αρχικοποιεί 5 32-bit MD καταχωρητές Εφαρμογή συναρτήσεων συμπίεσης

4 γύροι των 20 βημάτων ο καθένας Κάθε γύρος χρησιμοποιεί μια διαφορετική μη

γραμμική συνάρτηση fi

Προστίθενται οι καταχωρητές από τον προηγούμενο γύρο

Τελικός γύρος

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

31

Συνάρτηση συμπίεσης SHA-1

Τρέχον block μηνύματος

Τρέχουσα buffer (five 32-bit registers A,B,C,D,E)

Η Buffer περιέχει την τελική hash τιμή

Μεγάλη ομοιότητα με block cipher, όπου το ίδιο το μήνυμα χρησιμοποιείται ως κλειδί σε κάθε γύρο

4 Γύροι , 20 βήματο έκαστος

Ας δούμε λεπτομέρειες

Στον πέμπτο γύρο προστίθεται η αρχική buffer στο αποτέλεσμα των 4 γύρων

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

32

Τυπικός γύρος του SHA-1

Ίδια δομή για κάθε ένα από τους 4 γύρους Η f είναι bit-wise

λογική συνάρτηση (διαφορετική για κάθε γύρο)

To S αναπαριστά k αριστερές ολισθήσεις

Το W είναι ολισθημένο XOR των προηγούμενων W

• Αναφορά: http://www.itl.nist.gov/fipspubs/fip180-1.htm

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

33

A EB C D

A EB C D

+

+

ftΚυκλική ολίσθηση

5 bits

Wt

Kt

Ένα βήμα του SHA-1 (80 βήματα συνολικά)

Προστίθεται ειδική σταθερά(same value in each 20-step round,4 different constants altogether)

Λογική συνάρτηση για βήματα• (BC)(BD) 0..19• BCD 20..39• (BC)(BD)(CD) 40..59• BCD 60..79

Το τρέχον block μηνύματος μειγνύεται • For steps 0..15, W0..15=message block• For steps 16..79, Wt=Wt-16Wt-14Wt-8Wt-3

+

+

Πολυεπίπεδη ολίσθηση των blocks μηνύματος

30 bitwiseleft-rotate

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

H1 || H2 || H3 || H4|| H5

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

35

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

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

36

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

SHA-1MD5

(MD4+)RIPEMD-160

Μήκος εξόδου 160 bits 128 bits 160 bits

Βασική μονάδα επεξεργασίας 512 bits 512 bits 512 bits

Πλήθος βημάτων80 (4 γύροι

των 20)64 (4 γύροι

των 16)

160 (5 ζευγάρια

γύρων των 16)

Μέγιστο μέγεθος μηνύματος

264-1 bits απεριόριστο απεριόριστο

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

37

Συναρτήσεις κατακερματισμού βασισμένες σε αριθμητικό υπόλοιπο

Βασική Ιδέα:Κατασκευή επαναληπτικής συνάρτησης κατακερματισμού χρησιμοποιώντας mod M ως βάση της συνάρτησης συμπίεσης.

Μειονεκτήματα: έλλειψη ταχύτητας και ασφάλειας.

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

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

38

Συναρτήσεις κατακερματισμού βασισμένες σε αριθμητικό υπόλοιπο

Αλγόριθμος MASH-1 :Είσοδος: δεδομένο x μήκους 0≤b<2n/2

Έξοδος: κατακερματισμός του x των n-bit1. Εγκατάσταση συστήματος και καθορισμός σταθερών: 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

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

39

Πιστοποίηση ταυτότητας(entity authentication)

Ανάγκη επιβεβαίωσης ότι αυτός που με τον οποίο μιλάει κανείς είναι πραγματικά αυτός που ισχυρίζεται

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

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

40

Χαρακτηριστικά πρωτοκόλλου Ένα πρωτόκολλο πιστοποίησης ταυτότητας πρέπει

να διέπεται από τα ακόλουθα χαρακτηριστικά, δηλαδή πρέπει να μας εξασφαλίζει τα ακόλουθα:o Αν οι Α, Β είναι ειλικρινείς, ο A πρέπει να μπορεί να

αποδείξει την ταυτότητά του στον Βo Να μην διαρρέουν οι “μυστικές πληροφορίες” του Α , δηλ.

(1) Ο Β να μην μπορεί να αποσπάσει κάποια πληροφορία που χρησιμοποίησε ο A για να αποδείξει την ταυτότητά του, έτσι ώστε να προσποιηθεί σε κάποιον τρίτο C ότι είναι ο A (transferability)

(2) Να μην υπάρχει η δυνατότητα σε κάποιον τρίτο C ξεγελάσει τον B ότι είναι ο A (impersonation)

o Τα παραπάνω να ισχύουν για όσο μεγάλο πλήθος φορών κι αν εκτελεστεί το πρωτόκολλο μεταξύ των A, B, ακόμα κι αν ένας εισβολέας C έχει παρακολουθήσει όλες τις συνομιλίες των A, B. ( υψηλή παροχή ασφάλειας )

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

41

Κατηγοριοποίηση τεχνικών πιστοποίησης ταυτότητας

Οι τεχνικές αυτές μπορούν να χωριστούν σε 3 κατηγορίες ανάλογα με το που βασίζεται η ασφάλεια.

ΚΑΤΙ ΠΟΥ ΓΝΩΡΙΖΟΥΜΕ : passwords , PINS, μυστικά-ιδιωτικά κλειδιά που χρησιμοποιούνται σε challenge-response πρωτόκολλα

ΚΑΤΙ ΠΟΥ ΚΑΤΕΧΟΥΜΕ : π.χ. πιστωτικές, smart cards, password generators

ΦΥΣΙΚΑ ΧΑΡΑΚΤΗΡΙΣΤΙΚΑ : αναγνώριση φωνής, ίριδος, δακτυλικών αποτυπωμάτων

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

42

Ασθενής πιστοποίηση ταυτότητας - Password

Ο B περιμένει από τον A συγκεκριμένο password, για να πειστεί ότι είναι αυτός

Συχνά, τα passwords για τον κάθε χρήστη κρατούνται κρυπτογραφημένα σε κάποιο αρχείο, από συνάρτηση μίας κατεύθυνσης: έτσι, ακόμα κι αν κάποιος εισβολέας αποκτήσει πρόσβαση στο αρχείο, δεν μπορεί να ανακαλύψει τα passwords (Unix)

Τα passwords πρέπει να είναι μεγάλου μήκους, έτσι ώστε να μη μπορούν να ανακαλυφθούν με εξαντλητική αναζήτηση

Για να είναι ανθεκτικά σε «επιθέσεις λεξικού» (dictionary attacks) εφαρμόζονται διάφορες τεχνικές (π.χ. Salting)

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

43

Τεχνικές (Ι)

Αποθηκευμένα αρχεία κωδικών Το σύστημα αποθηκεύει συνθηματικά σε ένα αρχείο χωρίς δικαιώματα

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

Μειονέκτημα: δεν εξασφαλίζει προστασία εναντίον χρηστών που έχουν πλήρη δικαιώματα εισόδου στο σύστημα αρχείων)

Κανόνες κωδίκων Μερικά συστήματα για να προστατεύσουν τους χρήστες από «ασθενή»

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

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

44

Τεχνικές (ΙΙ)

«Κρυμμένα» αρχεία κωδίκων Στη θέση του συνθηματικού αποθηκεύεται τώρα μια one-way function για κάθε

χρήστη. Το σύστημα υπολογίζει την μονόδρομη συνάρτηση του κωδικού που εισάγεται και τη συγκρίνει με τα στοιχεία του userid.

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

45

Τεχνικές (ΙΙΙ)

Salting κωδικοί Κάθε συνθηματικό κατά την αρχική του είσοδο αυξάνεται με μια

συμβολοσειρά από t-bit που καλείται salt. Όταν ο χρήστης εισάγει τον κωδικό το σύστημα εφαρμόζει μια συνάρτηση σ’ αυτό. Στόχος είναι να γίνουν οι επιθέσεις λιγότερο αποτελεσματικές.

Passphrase (συνθηματική φράση) Ο χρήστης αντί μιας μικρής λέξης γράφει μια φράση ή μια πρόταση. Η

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

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

46

Salting Passwords

Προσθήκη ενός τυχαίου t-bit string (διαφορετικού κάθε φορά) στο τέλος του

password Εφαρμογή της one-way function που μας

δίνει το encrypted “salted” password. Αυτό δυσκολεύει το έργο των dictionary

attacks ( αύξηση απαιτήσεων σε μνήμη και χρόνο) καθώς για κάθε υποψήφιο password έχουμε 2t παραλλαγές.

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

47

Επιθέσεις

Σταθερά συνθηματικά Η δυνατότητα ο εχθρός να μάθει το συνθηματικό παρατηρώντας τον όταν αυτό

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

Εξαντλητική αναζήτηση συνθηματικού Είναι αφελής τρόπος επίθεσης όπου ο εχθρός δοκιμάζει συνθηματικά μέχρι να πετύχει

τον σωστό. Αυτό μπορεί να αντιμετωπισθεί διαλέγοντας συνθηματικά από έναν αρκετά μεγάλο χώρο και μειώνοντας τον αριθμό των on-line άκυρων προσπαθειών.

Μάντεμα συνθηματικού και επιθέσεις λεξικού Οι περισσότεροι χρήστες διαλέγουν συνθηματικά από ένα μικρό σύνολο, όπως

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

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

48

Unix κωδικοί

Ένα unix αρχείο συνθηματικών περιέχει μια συνάρτηση από συνθηματικά χρηστών υπολογισμένη ως εξής: κάθε συνθηματικό χρησιμεύει σαν ένα κλειδί για να αποκρύψει ένα γνωστό κείμενο από 64 μηδενικά bits.

Για τον αλγόριθμο απόκρυψης χρησιμοποιείται μια τροποποίηση του DES που έχει ως εξής: Ο αλγόριθμος επαναλαμβάνεται 25 φορές Από το συνθηματικό κόβονται τα 8 πρώτα του bit καθένα από τα

οποία ορίζει 7 bits για ένα κλειδί που περιέχει 56 bits. Το αποτέλεσμα είναι έχει μέγεθος 64 bits και ομαδοποιείται σε 11

εκτυπώσιμους χαρακτήρες.

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

49

Unix κωδικοί

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

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

50

Pins

Τα PINs (προσωπικός αναγνωριστικός αριθμός) ανήκουν στην κατηγορία των σταθερών συνθηματικών.

Χρησιμοποιούνται συχνά σε πλαστικές κάρτες με μαγνητική ταινία.

Μπορεί επίσης να χρησιμεύσει και σαν το δεύτερο επίπεδο ασφάλειας εισόδου σε ένα κτίριο.

Σε ένα on-line σύστημα η ταυτότητα του χρήστη επιβεβαιώνεται συγκρίνοντας το pin που εισάγει με τα αποθηκευμένα στη βάση του συστήματος.

Σε ένα off-line σύστημα μπορεί να είναι επιθυμητό να διαλέγει ο ίδιος ο χρήστης το pin του ώστε να το θυμάται πιο εύκολα.

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

51

2-στάδια αναγνώρισης

Οι άνθρωποι δυσκολεύονται να απομνημονεύσουν μικρά

συνθηματικά. Για το πρόβλημα αυτό υπάρχουν 2 λύσεις:

Μια συνήθης τακτική είναι να χρησιμοποιείται το pin για να επαληθεύσει το χρήστη στο token(πακέτο).όσο αυτό περιέχει επιπρόσθετη πληροφορία επιτρέποντας στο token να πιστοποιήσει τον εαυτό του στο σύστημα. Έτσι ο χρήστης αναγνωρίζεται από το σύστημα με μια διαδικασία 2 σταδίων και επιτρέπει στο χρήστη να θυμάται μόνο ένα μικρό pin.

Μια δεύτερη τεχνική είναι να χαρτογραφηθεί το συνθηματικό από μια μονόδρομη συνάρτηση σε ένα κρυπτογραφικό κλειδί που ονομάζεται passkey(συνθηματικό κλειδί). Χρησιμοποιείται για να διασφαλίσει μια επικοινωνία μεταξύ του χρήστη και του συστήματος.

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

52

One-time συνθηματικά (δυνατή πιστοποίηση)

Είναι τα συνθηματικά που χρησιμοποιούνται μόνο μία φορά το καθένα και αποτελούν μια φυσική πρόοδο των σταθερών συνθηματικών. Μερικές παραλλαγές τους είναι: Κοινές λίστες από οne-way συνθηματικά. Ο χρήστης και το σύστημα

χρησιμοποιούν ένα σύνολο από t μυστικά συνθηματικά κατανεμημένα σαν μια προ-κοινή λίστα. Μειονέκτημα:η συντήρηση της λίστας.

Συνεχής ενημέρωση των οne-way συνθηματικών. Κατά τη διάρκεια της πιστοποίησης χρησιμοποιώντας το συνθηματικό i ο χρήστης δημιουργεί και μεταδίδει στο σύστημα ένα νέο συνθηματικό το i+1 κρυμμένο κάτω από ένα κλειδί προερχόμενο από το συνθηματικό i.

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

53

Απαίτηση-απόκρισης αναγνώριση (δυνατή πιστοποίηση)

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

Η απαίτηση είναι ουσιαστικά ένας αριθμός επιλεγμένος από μια οντότητα στο outset του πρωτοκόλλου.

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

54

Υπόβαθρο των χρονικά-διάφορων παραμέτρων

Μπορούν να χρησιμοποιηθούν στα πρωτόκολλα αναγνώρισης για να εξασφαλίσουν μοναδικές ή αιώνιες εγγυήσεις και να εμποδίσουν βέβαιες επιθέσεις.

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

Μια nonce είναι μια τιμή που χρησιμοποιείται όχι πάνω από μια φορά για τον ίδιο σκοπό, αλλά και για να εμποδίσει την επανάληψη.

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

55

Χρονικά-διάφορες παράμετροι

Υπάρχουν 3 κύριες κατηγορίες χρονικά-διάφορων παραμέτρων

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

Ακολουθία αριθμών:χρησιμοποιείται για να ανιχνεύσει επαναληπτικό μήνυμα.

Timestamps :χρησιμοποιούνται για να εξασφαλίσουν μοναδικότητα και επικαιρότητα εγγυήσεων και για να αναζητήσουν αναγκαστικές καθυστερήσεις.

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

56

Απαίτηση-απόκρισης με τεχνικές συμμετρικού κλειδιού

Απαιτούν ο διεκδικητής και ο επαληθευτής να μοιράζονται ένα συμμετρικό κλειδί.

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

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

57

Απαίτηση απόκρισης βασισμένη στην απόκρυψη συμμετρικού-κλειδιού

Υπάρχουν 3 τεχνικές που αναλαμβάνουν την προηγούμενη παρουσία ενός διαμοιραζόμενου κρυφού κλειδιού.

Μονόπλευρη πιστοποίηση βασισμένη σε timestamp:

Μονόπλευρη πιστοποίηση χρησιμοποιώντας τυχαίους αριθμούς: το

timestamp μπορεί να αντικατασταθεί από έναν τυχαίο αριθμό με

κόστος ένα επιπρόσθετο μήνυμα:

Αμοιβαία πιστοποίηση χρησιμοποιώντας τυχαίους αριθμούς:

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

58

Απαίτηση απόκρισης

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

Με τεχνικές δημόσιου κλειδιού: ο διεκδικητής αποδεικνύει ότι γνωρίζει το ιδιωτικό του κλειδί με 2 τρόπους Ο διεκδικητής αποκωδικοποιεί μια αίτηση απόκρυψης κάτω από

το δημόσιο κλειδί του Ο διεκδικητής υπογράφει ψηφιακά μια αίτηση

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

59

Απαίτηση απόκρισης βασισμένη στην αποκωδικοποίηση συμμετρικού-κλειδιού

Θεωρούμε αρχικά το εξής πρωτόκολλο:

όπου είναι η αίτηση.

Τα μηνύματα στο προσαρμοσμένο πρωτόκολλο αναγνώρισης είναι:

όπου δηλώνει το συμμετρικό κλειδί απόκρυψης του Β

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

60

Απαίτηση απόκρισης βασισμένη σε ψηφιακές υπογραφές

Υπάρχουν 3 μηχανισμοί αναγνώρισης :

Μονομερής αναγνώριση με Timestamps:

Μονομερής αναγνώριση με τυχαίους αριθμούς:

Αμοιβαία αναγνώριση με τυχαίους αριθμούς:

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

61

Ισχυρή πιστοποίηση ταυτότητας – «απάντηση σε πρόκληση»

(challenge response identification)

Βασική ιδέα: Ένας χρήστης Α (claimant) αποδεικνύει την ταυτότητά του σε κάποιον άλλο Β (verifier) αποδεικνύοντάς του ότι κατέχει μία μυστική γνώση, χωρίς όμως να αποκαλύπτει τη γνώση αυτή. Αυτό επιτυγχάνεται με το να απαντά σε μία «ερώτηση-πρόκληση» του verifier, η απάντηση της οποίας εξαρτάται, εκτός από την ερώτηση, και από τη μυστική γνώση.

Πρωτόκολλα με αυτά τα χαρακτηριστικά ονομάζονται μηδενικής γνώσης (zero-knowledge (ZK))

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

62

Γενικά χαρακτηριστικάπρωτοκόλλων ZK(ΖΚ τριών κινήσεων)

O Α (claimant) από το ιδιωτικό του κλειδί (μυστική πληροφορία που την κατέχει μόνο αυτός), παράγει τυχαία μία πληροφορία-βεβαίωση (witness). O Α στέλνει την βεβαίωση στον B (verifier). Κάθε φορά ο Α επιλέγει ένα διαφορετικό ιδιωτικό κλειδί.Αυτό παρέχει μια αρχική τυχαιότητα από επόμενες κλήσεις του πρωτοκόλλου. (το r στο πρωτόκολλο του Fiat – Shamir )

Με βάση την βεβαίωση, ο B κάνει μία ερώτηση-πρόκληση (challenge) στον A. To πρωτόκολλο πρέπει να είναι έτσι σχεδιασμένο ώστε μόνο κάποιος που κατέχει το μυστικό κλειδί του A να μπορεί να απαντήσει σωστά σε όλες τις προκλήσεις, ενώ επίσης να μην μπορεί να εξαχθεί καμία πληροφορία για το ιδιωτικό κλειδί του A από τις απαντήσεις.

Ο Α στέλνει στον B την απάντηση (response) στην πρόκληση. Ο B πρέπει να είναι σε θέση να επιβεβαιώσει την ορθότητα της απάντησης.

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

63

Αυτό το βήμα εκτελείται μόνο ΜΙΑ φορά στην αρχή του πρωτοκόλλου

Έστω N=pq, όπου p,q είναι πολύ μεγάλοι πρώτοι αριθμοί (το N τουλάχιστον 512 bits)

(το N παράγεται από έναν «διαιτητή», αποδεκτό από όλους – τα p,q κρατούνται μυστικά)

Ο claimant Α επιλέγει τυχαία s μικρότερο του N με (s,N)=1 και υπολογίζει υ τέτοιο ώστε:

υ = s2 (mod N) Δημόσιο κλειδί : N, υ ιδιωτικό κλειδί : s

Σχήμα πιστοποίησης ταυτότητας Fiat-Shamir

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

64

Fiat-Shamir (II)

ClaimantClaimant ( (CC)) Verifier (V) Verifier (V)

N, ss, υ N, υΕπιλογή τυχαίου αριθμού r < N

Ορισμός x =r2 mod N (witness)

x

Ερώτηση (e) = 0

=1

y=ry=rs mod N

έλεγχος:y2=x mod Ny2=xυ mod N

Το βήμα αυτό εκτελείται t φορές. Όσες περισσότερες είναι αυτές τόσο πιο ασφαλές το πρωτόκολλο

Α Β

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

65

Fiat – Shamir (III) H παραπάνω διαδικασία επαναλαμβάνεται πολλές

φορές Σε κάθε βεβαίωση r, o V στέλνει μία πρόκληση e,

είτε 0 είτε 1, και ο C απαντά με το y=rse (mod N). O V ελέγχει αν ισχύει y2=xυe (mod N) Ένας επιτιθέμενος που θέλει να προσποιηθεί ότι

είναι ο C, μπορεί να επιλέξει τυχαίο r, να στείλει x=r2/υ και σε κάθε πρόκληση e=1 να απαντά y=r, κάτι που ο V θα το ανιχνεύει ως σωστή απάντηση. Όμως δεν θα μπορεί να απαντήσει σωστά για e=0.

( Απαιτεί την τετραγωνική ρίζα του x mod n )

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

66

Fiat-Shamir (ΙV)

Μετά από k γύρους, η πιθανότητα λάθους (δηλαδή η πιθανότητα ο εισβολέας να εξαπατήσει τον verifier) ισούται με (1/2)k (αν θεωρήσουμε ότι μπορεί να απαντήσει σωστά σε μία από τις δύο ερωτήσεις).

Δεν πρέπει να χρησιμοποιείται πάνω από μία φορά το ίδιο r, γιατί με αυτό τον τρόπο ένας εισβολέας μπορεί να παρακολουθεί τη συνομιλία, να μάθει τις απαντήσεις του claimant για τις εκάστοτε ερωτήσεις του verifier και να τις επαναλάβει

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

67

Ασφάλεια Fiat-Shamir

Έγκειται στα εξής Δυσκολία στην παραγοντοποίηση:

ένας αλγόριθμος που «σπάει» τον Fiat-Shamir είναι ισοδύναμος με έναν αλγόριθμο που παραγοντοποιεί τον N

Τυχαιότητα: του r (όσον αφορά τη μηδενική γνώση) της ερώτησης (αυτό εμποδίζει τον claimant

στο να εξαπατήσει)

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

68

Πρωτόκολλο αναγνώρισης Feige-Fiat-Shamir

Μια παραλλαγή του Fiat-Shamir πρωτοκόλλου, αποτελεί το Feige-Fiat-Shamir όπου εμπλέκει μια οντότητα αυτοαναγνώρισης αποδεικνύοντας τη γνώση ενός μυστικού χρησιμοποιώντας μια απόδειξη μηδενικής γνώσης. Πρωτόκολλο (Ο Α αποδεικνύει την ταυτοτητά του στον Β σε t εκταλέσεις)1. Επιλογή παραμέτρων συστήματος

Επιλέγεται και δημοσιοποιείται ένας σύνθετος ακέραιος n=pq, αλλά κρατούνται μυστικοί οι πρώτοι παράγοντες p κα q. Ακέραιοι k, t ορίζονται ως παράμετροι ασφάλειας.

2. Επιλογή μυστικών ανά οντότητα

α) Επιλέγονται k τυχαίοι ακέραιοι με 1≤si≤n-1 και k τυχαία bits

Απαιτείται για τεχνικούς λόγους gcd(si,n)=1

β) Υπολογισμός του για 1≤si≤n-1. Αυτό χρησιμεύει για να αποδείξει ότι δεν υπάρχει διαρροή μυστικής πληροφορίας, αφού με την επιλογή του n, ακριβώς ένα έχει τετραγωνική ρίζα.

γ) Ο Α ταυτοποιεί τον εαυτό του με μη κρυπτογραφικούς τρόπους και

στη συνέχεια δηλώνεται το δημόσιο κλειδί (v1,...,vκ;n) του Α, ενώ τα μυστικά

του κλειδιά (s1,…, sk) τα γνωρίζει μόνο αυτός.

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

69

Feige-Fiat-Shamir

3. Μηνύματα πρωτοκόλλου Κάθε ένας από τους t γύρους έχει τρία μηνύματα με την εξής μορφή:

4. Ενέργειες πρωτοκόλλου Τα επόμενα βήματα εκτελούνται t φορές. Ο αποδέχεται την ταυτότητα του Α εάν όλοι οι γύροι επιτύχουν. α) Ο επιλέγει τυχαία έναν ακέραιο r με 1≤r≤n-1 και ένα τυχαίο bit b. Υπολογίζει το x=(-1)br2 mod n και αποστέλλει το x στον Β.

β) Ο Β στέλνει στον Α ένα άνυσμα k-bit (e1 ,…, ek) (πρόκληση) γ) Ο Α υπολογίζει και στέλνει στον Β την απάντηση:

δ) Ο Β υπολογίζει το και εξακριβώνει ότι z=±x και z≠0 .

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

70

Ασφάλεια του Feige-Fiat-Shamir Η ασφάλειά του στηρίζεται στη δυσκολία εύρεσης τετραγωνικής ρίζας

modulo μεγάλων σύνθετων ακεραίων.

Η πιθανότητα επιτυχούς πλαστογραφίας είναι μικρή, και αν σκεφτούμε τη δυσκολία του προβλήματος factoring είναι στην καλύτερη περίπτωση 2-kt .

Είναι αρκετά ασφαλές σε επιθέσεις προεπιλεγμένων μηνυμάτων.

Η επιλογή των παραμέτρων k και t, έτσι ώστε το γινόμενο kt να ισούται με το 20, ελαχιστοποιεί την πιθανότητα πλαστοπροσωπίας σε μια στο εκατομμύριο.

Είναι δυνατόν επίσης να μειωθεί η πολυπλοκότητα της επικοινωνίας του Α και του Β, εάν ο Α αποστέλλει στον Β μια hash τιμή H(x) αντί για ένα μήνυμα x. Αυτό βέβαια απαιτεί και την αντίστοιχη τροποποίηση στην διαδικασία εξακρίβωσης του Β.

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

71

Guillou-Quisquarter πρωτόκολλο

Το GQ πρωτόκολλο αναγνώρισης είναι ουσιαστικά η επέκταση του Fiat-

Shamir. Επιτρέπει την μείωση των ανταλλασομένων μηνυμάτων και της

μνήμης επομένως, που απαιτείται. Ενδείκνυται όπως και ο Fiat-Shamir για

εφαρμογές στις οποίες ο Α και ο Β έχουν μειωμένη υπολογιστική ισχύ και

μικρή μνήμη. Περιλαμβάνει τρία μηνύματα μεταξύ του Α, του οποίου η

ταυτότητα τεκμηριώνεται και ενός verifier Β.

Πρωτόκολλο (Ο Α αποδεικνύει την ταυτότητά του, μέσω της γνώσης του sA

στον Β)

1. Επιλογή Παραμέτρων συστήματος

α) Μια Αρχή Τ που την εμπιστεύονται όλα τα μέρη συνδέει τις

ταυτότητες των χρηστών με τα δημόσια κλειδιά και επιλέγει πρώτους

p,q που αποτελούν παράγοντες του n.

β) Ο Τ καθορίζει ένα δημόσιο εκθέτη ν≥3 με gcd(ν,φ)=1, όπου φ=(p-1)(q-1)

και υπολογίζει τον ιδιωτικό s=v-1 mod φ .

γ) Οι παράμετροι (ν,n) του συστήματος διατίθενται σε όλους τους χρήστες.

Page 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=rvmod n (μάρτυρας). β) Ο Α στέλνει στον Β το ζευγάρι (ΙΑ,x). γ) Ο Β επιλέγει και στέλνει στον Α ένα τυχαίο ακέραιο 1≤e≤n-1 .(πρόκληση) δ) Ο Α υπολογίζει και στέλνει στον Β y=r sΑ

e mod n.

ε) Ο Β λαμβάνει το y, κατασκευάζει το JΑ από το ΙΑ, υπολογίζει το z= JΑe yv mod n

και δέχεται την απόδειξη ταυτότητας του Α εάν z=x και z≠0.

Ο Α αποδεικνύει την ταυτότητά του στο Β όταν εκτελεστεί t φορές το (4.) και όλες οι εκτελέσεις είναι επιτυχημένες.

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

73

Απαιτούμενο επίπεδο ασφάλειας

Το επιθυμητό επίπεδο ασφάλειας στα πρωτόκολλα αναγνώρισης εξαρτάται από το περιβάλλον και τις συσκευές που κατέχουμε τη δεδομένη περίοδο. Οι επιθέσεις που μπορεί να δεχτεί ένα πρωτόκολλο αναγνώρισης είναι :

Τοπικές επιθέσεις. Οι παράμετροι ασφάλειας του συστήματος που περιορίζουν την πιθανότητα επιτυχούς πλαστοπροσωπίας, επιλέγονται με αυτό τον τρόπο ώστε η πιθανότητα αυτή να είναι 1 στις 220 (20 bits ασφάλειας). Ο υποτιθέμενος πλαστογράφος εμφανίζεται τοπικά.

Απομακρυσμένες επιθέσεις. Ένα υψηλότερο επίπεδο ασφάλειας απαιτείται σε περιβάλλοντα όπου απεριόριστες προσπάθειες για ταυτοποίηση πραγματοποιούνται. Εκεί ένας ανώνυμος χρήστης παρεμβαίνει σε επιλεγμένες επικοινωνίες. Τα bits ασφάλειας που απαιτούνται εδώ είναι 20 ή 40 ή περισσότερα, εκτός και αν οι παρεμβολές εμποδιστούν με κάποιο τρόπο.

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

74

Ισχυρή πιστοποίηση ταυτότηταςμε χρήση συνάρτησης

κατακερματισμού

2.O V στέλνει την πρόκληση

Πρόκληση

Claimant(C)

Verifier(V)

1.Ο V δημιουργεί το μήνυμα –

Πρόκληση (Challenge Message)

Ο C έχει ένα password το οποίο γνωρίζει ο V

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

75

3.Ο C παράγει το μήνυμα-απάντηση

με τον εξής τρόπο:(a) Επισυνάπτει το password

στο μήνυμα-πρόκληση (b) Κατακερματίζει το αποτέλεσμα

(χωρίς κρυπτογράφηση)(c) Το κατακερματισμένο μήνυμα

είναι η απάντηση (ResponseMessage)

ChallengePassword

Response

Κατακερματισμός (χωρίς

κρυπτογράφηση)

Ισχυρή πιστοποίηση ταυτότηταςμε χρήση συνάρτησης κατακερματισμού (II)

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

76

4.Ο C στέλνει την απάντηση, χωρίς να την κρυπτογραφήσει

Απάντηση (challenge response)

Ισχυρή πιστοποίηση ταυτότηταςμε χρήση συνάρτησης κατακερματισμού (III)

Claimant(C) Verifier

(V)

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

77

ChallengePassword

Αναμενόμενη απάντηση

Κατακερματισμός

5.Ο V επισυνάπτει το password στο

μήνυμα που έστειλε και κατακερματίζει το αποτέλεσμα. Αυτόπου προκύπτει είναι η αναμενόμενη

απάντηση από τον C

Ισχυρή πιστοποίηση ταυτότηταςμε χρήση συνάρτησης κατακερματισμού (IV)

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

78

Αναμενόμενη απάντησηΜεταδιδόμενη απάντηση =?

6.Αν η ληφθείσα απάντηση ταυτίζεται με την αναμενόμενη, τότε

Ο V συμπεραίνει ότι o C ξέρει το σωστό password.

Ισχυρή πιστοποίηση ταυτότηταςμε χρήση συνάρτησης κατακερματισμού (V)

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

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

79

Ψηφιακή υπογραφή(Digital Signature)Εισαγωγικές έννοιες

Ψηφιακή Υπογραφή (Digital Signature) Είναι ένα σύνολο από bits που προσθέτει ο αποστολέας ενός εγγράφου

σ’αυτό. Συνδέει το έγγραφο με την οντότητα, απ’την οποία προήλθε. Χρησιμοποιούνται για να :

επαληθεύσουν το φορέα αποστολής δεδομένων (authentication). επιβεβαιώσουν ότι τα δεδομένα που στάλθηκαν δεν έχουν

τροποποιηθεί (integrity). διασφαλίσουν τη μη αποποίηση (non-repudiation) της αποστολής ενός

μηνύματος. Αλγόριθμος Παραγωγής Ψηφιακής Υπογραφής (Digital Signature Generation

Algorithm) Αλγόριθμος Ελέγχου Ψηφιακής Υπογραφής (Digital Signature Verification

Algorithm) Μέθοδος ελέγχου ότι η ψηφιακή υπογραφή είναι αυθεντική, δηλαδή ότι

έχει πραγματικά δημιουργηθεί απ’την εν λόγω οντότητα.

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

80

Ψηφιακή υπογραφή(Digital Signature)

Υπογραφή (signature) s=SII(m) για ένα μήνυμα m ενός χρήστη I

o II υπογράφει, δηλαδή υπολογίζει το s, συνάρτηση τόσο του m όσο και του ίδιου του χρήστη II Για δοθέντα s,II, και m, ο οποιοσδήποτε μπορεί να ελέγξει ότι s=SII(m) H συνάρτηση υπολογισμού του s πρέπει να είναι κατάλληλη ώστε να

μη μπορεί κάποιος άλλος να δημιουργήσει το ίδιο s με τον I

Επίσης χρησιμοποιείται για πιστοποίηση ταυτότητας, με τη διαφορά ότι πραγματοποιείται σε κάθε πακέτο δεδομένων που αποστέλλεται (καλείται και message-by-message authentication)

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

81

Ψηφιακή υπογραφή με χρήση αλγορίθμου Δημοσίου Κλειδιού

Για τη δημιουργία της ψηφιακής υπογραφής:

1. Κατακερματισμός του αρχικού μηνύματος, έτσι ώστε να προκύψει ένα «αποτύπωμα»

(MD) του μηνύματος

2. Το MD κρυπτογραφείται, με το ιδιωτικό κλειδί του αποστολέα. Προκύπτει έτσι η ψηφιακή υπογραφή (DS)

3. Η υπογραφή επισυνάπτεται στο αρχικό μήνυμα, κρυπτογραφείται το αποτέλεσμα

(στην τυπική περίπτωση με συμμετρικό κλειδί) και μεταδίδεται

Αρχικό μήνυμα

MD

DS

DS Αρχικό μήνυμα

Κατακερματισμός

Υπογραφή (Κρυπτογράφηση)με το ιδιωτικό κλειδί

του αποστολέα

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

82

Έλεγχος ψηφιακής υπογραφής, με αλγόριθμο Δημοσίου Κλειδιού

Για να ελέγξει ο δέκτης την υπογραφή:

4. Κατακερματίζει το αρχικό μήνυμα με την ίδια συνάρτησηκατακερματισμού. Αυτό οδηγεί

στον υπολογισμό του MD.

5. Αποκρυπτογραφεί την υπογραφή με το Δημόσιο Κλειδί του αποστολέα. Αυτό επίσης οδηγεί στον υπολογισμό

του MD

6. Αν συμπίπτουν, η ταυτότητα του αποστολέα επιβεβαιώνεται

Λαμβανόμενο μήνυμα

MD

DS

MD

4. 5.

Κατα-κερματισμός

Αποκρυπτογράφησημε το δημόσιο κλειδί

του αποστολέα

6.Είναι ίσα?

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

83

Αλγόριθμοι ψηφιακών υπογραφών

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

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

84

Αλγόριθμος DSA(Digital Signature Algorithm)

Προτάθηκε από τον NIST το 1991 Απαιτεί τη χρήση συνάρτησης

κατακερματισμού (SHA-1) Στηρίζεται στον αλγόριθμο ElGamal Βασίζεται στη δυσκολία υπολογισμού

του διακριτού λογαρίθμου

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

85

Περιγραφή DSA

Παράμετροι συστήματος Επιλογή ενός πρώτου q των 160-bit Επιλογή ενός πρώτου p των 1024-bit, έτσι ώστε:

q | p-1 Επιλογή g Zp

* για τον υπολογισμό γεννήτορα a a = g(p-1)/q mod p

Αν a=1, η διαδικασία επαναλαμβάνεται με διαφορετικό g

Κλειδιά Επιλογή τυχαίου μυστικού κλειδιού α (1 α q-1) Υπολογισμός Δημοσίου Κλειδιού y = aα mod p Δημόσιο κλειδί τα (p, q, a, y) Ιδιωτικό κλειδί το α

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

86

Υπογραφή στον DSA

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

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

87

DSA – Επαλήθευση υπογραφής

Για την επαλήθευση των (r,s) Έλεγχος του ότι 1 r q-1 και 1 s q-1 Υπολογισμός w = s-1 mod q Υπολογισμός u1 = w h(m) mod q

Υπολογισμός u2 = r w mod q Υπολογισμός του v = (au1yu2 mod p) mod q Αποδοχή της υπογραφής εάν v = r

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

88

Απόδειξη επαλήθευσης υπογραφής

Εάν (r, s) είναι μια νόμιμη υπογραφή του m τότε θα πρέπει να ισχύει h(m) = -α r + k s mod q

Οπότε w h(m) + α r w = k mod q Αλλά αυτό είναι u1 + α u2 = k mod q (β) Υψώνοντας το a στα δύο μέρη της (β) έχουμε

(au1yu2 mod p) mod q = (ak mod p) mod q Οπότε v = r , όπως απαιτείται

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

89

Παράδειγμα στον DSA1)Key Generation

Παράμετροι συστήματος Διαλέγουμε αρχικά πρώτο q = 124540019 και έπειτα

πρώτο p = 17389, ώστε o q να διαιρεί τον (p-1). Όντως, είναι (p-1) / q = 7162.

Επιλέγουμε τυχαίο g = 110217528 Zp*

και υπολογίζουμε a = g(p-1)/q mod p : a = 1102175287162 mod 17389 = 10083255. (a ≠ 1)

Κλειδιά Επιλέγουμε τυχαίο μυστικό κλειδί α, ώστε 1 α q-1:

Έστω α = 12496, οπότε, αφού y = aα mod p, έχω :y =1008325512496 mod 124540019 = 119946265.

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

90

Παράδειγμα στον DSA1)Key Generation

Τα κλειδιά που δημιουργήσαμε είναι: Δημόσιο Κλειδί:

p = 124540019, q = 17389, a = 10083255, y = 119946265.

Ιδιωτικό Κλειδί:α = 12496.

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

91

Παράδειγμα στον DSA2)Παραγωγή Ψηφιακής Υπογραφής

Επιλέγουμε τυχαίο και μυστικό k = 9557και υπολογίζουμε r = (ak mod p) mod q : r = (100832559557 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).

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

92

Παράδειγμα στον DSA2)Έλεγχος (επιβεβαίωση) Ψηφιακής Υπογραφής

Υπολογίζουμε w = s-1 mod q = 1799. u1 = w * h(m) mod q = (5246 .1799) mod 17389

= 12716. u2 = (r .w) mod q = (34 .1799) mod 17389 =

8999. Ελέγχουμε αν ισχύει η σχέση:

(au1yu2 mod p) mod q = r(au1yu2 mod p) mod q = (1008325512716 . 1199462658999 mod 124540019) mod 17389= 34 = r. Άρα δεχόμαστε την υπογραφή!

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

93

Ασφάλεια του DSA

Έγκειται στα: Υπολογισμός λογαρίθμων στο GF(p) Υπολογισμός λογαρίθμων σε κυκλική υπο-

ομάδα τάξης q Αλγόριθμοι για αυτό χρειάζονται χρόνο

ανάλογο του q1/2 (κεφάλαιο 3 – Handbook of Applied Cryptography)

Στην πράξη επιλέγεται q 2160 και p 21024

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

94

Άλλοι αλγόριθμοι ψηφιακής υπογραφής

GOST Ong-Schnorr-Shamir ESIGN