Εισαγωγή στη Κρυπτογραφία Ψηφιακή Υπογραφή (Digital Signature)
Εισαγωγικές έννοιες Η ψηφιακή υπογραφή ενός μηνύματος είναι μια συμβολοσειρά εξαρτώμενη από ένα μυστικό γνωστό μόνο στον υπογράφοντα και επιπρόσθετα από το περιεχόμενο του μηνύματος το οποίο υπογράφεται. Η ψηφιακή υπογραφή πρέπει να είναι επαληθεύσιμη. Έτσι όταν υπάρχει αμφισβήτηση του εάν κάποιος έχει υπογράψει ένα έγγραφο (που προκαλείται είτε από ένα ψευδόμενο υπογράφοντα που αποποιείται την υπογραφή του ή είναι κάποιος άλλος που προσποιείται τον πραγματικό υπογράφοντα), τότε ένας αντικειμενικός τρίτος να δύναται να μπορεί εξίσου να επιλύσει το ζήτημα χωρίς να απαιτείται πρόσβαση στην μυστική πληροφορία του υπογράφοντα (ιδιωτικό κλειδί).
Εισαγωγικές έννοιες (ΙΙ) Οι ψηφιακές υπογραφές έχουν πολλές εφαρμογές στον τομέα της ασφάλειας των πληροφοριών, όπως η ακεραιότητα και η πιστοποίηση (αυθεντικότητα) των δεδομένων και η μη- απάρνηση. Η πιο σημαντική είναι η πιστοποίηση δημοσίων κλειδιών σε μεγάλα δίκτυα. Πιστοποίηση: Είναι η μέθοδος για κάποιο έμπιστο τρίτο πρόσωπο (TTP) να συνδέσει την ταυτότητα ενός χρήστη με ένα δημόσιο κλειδί, έτσι ώστε κάποια στιγμή αργότερα, άλλες οντότητες να μπορούν να πιστοποιήσουν το κλειδί χωρίς τη βοήθεια του τρίτου προσώπου.
Βασικές έννοιες Η ψηφιακή υπογραφή είναι μια συμβολοσειρά από δεδομένα τα οποία σχετίζουν ένα μήνυμα (στην ψηφιακή του μορφή) με την οντότητα που το δημιούργησε. Ο αλγόριθμος δημιουργίας ψηφιακής υπογραφής είναι η μέθοδος παραγωγής της. Ο αλγόριθμος επαλήθευσης ψηφιακής υπογραφής είναι η μέθοδος εξακρίβωσης ότι η υπογραφή δημιουργήθηκε όντως από τη συγκεκριμένη οντότητα. Το σχήμα ψηφιακής υπογραφής αποτελείται από δύο αλγόριθμους: αυτόν της δημιουργίας της και αυτόν της επαλήθευσής της. Η διαδικασία της υπογραφής με ψηφιακό τρόπο ενός μηνύματος αποτελείται από τον αλγόριθμο δημιουργίας της και τη μέθοδο διαμόρφωσης των δεδομένων σε μηνύματα τα οποία μπορούν να υπογραφούν. Η διαδικασία επαλήθευσης ψηφιακής υπογραφής αποτελείται από τον αλγόριθμο επαλήθευσης και τη μέθοδο ανάκτησης δεδομένων από το μήνυμα.
Συμβολισμοί Μ: ο χώρος των μηνυμάτων Μ: ο χώρος των μηνυμάτων Μs: ο υπογραφόμενος χώρος στον οποίο εφαρμόζονται οι μετα-σχηματισμοί υπογραφής (δεν εφαρμόζονται απευθείας στο σύνολο Μ) S: ο χώρος υπογραφών που σχετίζονται με τα μηνύματα στο Μ R: μια 1-σε-1 απεικόνιση από το Μ στο Ms που καλείται συνάρτηση πλεονασμού (redundancy function) MR: είναι η εικόνα του R, δηλ., MR = Im(R) R-1: η αντίστροφη της R (R-1: MR→M) R:: ένα σύνολο δεικτοδότησης για υπογραφή (καθορίζει τους συγκεκριμένους μετασχηματισμούς υπογραφής) h: μια μονόδρομη συνάρτηση με πεδίο ορισμού το Μ Μh: εικόνα του h (h: M→Mh), Mh υποσύνολο του Ms που καλείται χώρος τιμών κατακερματισμού
Κατηγορίες Υπογραφών Ψηφιακές υπογραφές με παράρτημα απαιτούν το πρωτότυπο μήνυμα σαν είσοδο στον αλγόριθμο επαλήθευσης.(DSA, ElGamal, Schnorr). Ψηφιακές υπογραφές με ανάκτηση μηνύματος δεν απαιτούν το πρωτότυπο μήνυμα σαν είσοδο στον αλγόριθμο επαλήθευσης.Σε αυτήν την περίπτωση το αρχικό μήνυμα ανακτάται από την ίδια την υπογραφή. Οι παραπάνω κατηγορίες χωρίζονται σε υποκατηγορίες ανάλογα με το εάν ισχύει | R | =1. Αν | R | >1 τότε έχουμε ένα σχήμα τυχαίας ψηφιακής υπογραφής αλλιώς έχουμε ένα σχήμα ντετερμινιστικής υπογραφής. Οι ντετερμινιστικές ψηφιακές υπογραφές χωρίζονται σε σχήματα υπογραφών μιας χρήσης και πολλών χρήσεων.
Ταξινόμηση σχημάτων ψηφιακής υπογραφής
Ψηφιακές υπογραφές με παράρτημα Γενικά (1/4) Ψηφιακές υπογραφές με παράρτημα Γενικά (1/4) Απαιτούν και το μήνυμα να είναι είσοδος στον αλγόριθμο επαλήθευσης Είναι οι πιο συχνά χρησιμοποιούμενες Βασίζονται σε κρυπτογραφικές συναρτήσεις κατακερματισμού παρά σε ειδικές συναρτήσεις πλεονασμού Υπόκεινται λιγότερο σε περιστασιακές επιθέσεις Παραδείγματα τέτοιων μηχανισμών είναι τα σχήματα DSA ElGamal Schnorr
Ψηφιακές υπογραφές με παράρτημα (2/4) Δημιουργία κλειδιού Ψηφιακές υπογραφές με παράρτημα (2/4) Δημιουργία κλειδιού Κάθε οντότητα δημιουργεί ένα ιδιωτικό κλειδί για την υπογραφή μηνυμάτων και το αντίστοιχο δημόσιο που θα χρησιμοποιηθεί από άλλες οντότητες για την επαλήθευση των υπογραφών: κάθε οντότητα Α επιλέγει ένα ιδιωτικό κλειδί το οποίο καθορίζει ένα σύνολο μετασχηματισμών SA = {SA,k: k Є R }. Κάθε SA,k είναι μια 1-σε-1 απεικόνιση από το Μh στο S που καλείται μετασχηματισμός υπογραφής το SA καθορίζει μία αντίστοιχη απεικόνιση VA από το ΜhxS στο {ψευδές,αληθές} τέτοια ώστε: αληθές, αν SA,k(m)=s*, VA(m,s*) = ψευδές, διαφορετικά για όλα τα m Є Mh, s* Є S, όπου m = h(m) για m Є Μ Το VA ονομάζεται μετασχηματισμός επαλήθευσης και κατασκευάζεται έτσι ώστε να μπορεί να υπολογιστεί χωρίς τη γνώση του ιδιωτικού κλειδιού του υπογράφοντα. γ) το δημόσιο κλειδί του Α είναι το VA, το ιδιωτικό είναι το σύνολο SA.
Ψηφιακές υπογραφές με παράρτημα (3/4) Δημιουργία υπογραφής Ψηφιακές υπογραφές με παράρτημα (3/4) Δημιουργία υπογραφής Η οντότητα Α παράγει μια υπογραφή s Є S για ένα μήνυμα m Є M, που αργότερα επαληθεύεται από την οντότητα Β. Δημιουργία υπογραφής: Η οντότητα Α κάνει τα εξής: α) επιλέγει ένα στοιχείο k Є R β) υπολογίζει το m = h(m) και s* = SA,k(m). γ) η υπογραφή του Α για το m είναι το s*.Το m και το s* διατίθενται στις οντότητες που θέλουν να επαληθεύσουν την υπογραφή.
Ψηφιακές υπογραφές με παράρτημα (4/4) Επαλήθευση υπογραφής Ψηφιακές υπογραφές με παράρτημα (4/4) Επαλήθευση υπογραφής 2. Επαλήθευση υπογραφής: Η οντότητα Β κάνει τα εξής: α) παίρνει το αυθεντικό δημόσιο κλειδί VA του Α. β) υπολογίζει το m = h(m) και u = VA(m,s*). γ) αποδέχεται την υπογραφή σαν αυθεντική αν και μόνον εάν u = αληθές. Οι διαδικασίες φαίνονται στα ακόλουθα σχήματα (σχήμα Α δημιουργία υπογραφής, σχήμα Β διαδικασία επαλήθευσης): σχ.Α σχ.Β
Ψηφιακές υπογραφές με παράρτημα ΠΑΡΑΤΗΡΗΣΗ: Ψηφιακές υπογραφές με παράρτημα ΠΑΡΑΤΗΡΗΣΗ: Τα περισσότερα σχήματα ψηφιακών υπογραφών με ανάκτηση μηνύματος εφαρμόζονται σε μηνύματα με συγκεκριμένο μήκος, ενώ οι ψηφιακές υπογραφές με παράρτημα σε μηνύματα με αυθαίρετο μήκος. Η μονόδρομη συνάρτηση h στον προηγούμενο αλγόριθμο επιλέγεται τυπικά να είναι collision-free συνάρτηση κατακερματισμού. Μια εναλλακτική σε αυτήν την περίπτωση θα ήταν να χωριστεί το μήνυμα σε blocks συγκεκριμένου μεγέθους και καθένα από αυτά ξεχωριστά να υπογραφεί με ενα σχήμα υπογραφής με ανάκτηση μηνύματος. Από τη στιγμή που η δημιουργία υπογραφής είναι σχετικά αργή διαδικασία για πολλά σχήματα και η αναδιάταξη πολλαπλών υπογεγραμμένων blocks παρουσιάζει υψηλό κίνδυνο ασφάλειας, η προτιμητέα μέθοδος είναι ο κατακερματισμός.
Ψηφιακές υπογραφές με ανάκτηση μηνύματος Γενικά (1/4) Ψηφιακές υπογραφές με ανάκτηση μηνύματος Γενικά (1/4) Στην περίπτωση αυτή το υπογεγραμμένο μήνυμα μπορεί να ανακτηθεί από την ίδια την υπογραφή Δεν απαιτείται η εκ των προτέρων γνώση του μηνύματος για τον αλγόριθμο επαλήθευσης Βασίζονται σε κρυπτογραφικές συναρτήσεις πλεονασμού παρά σε συναρτήσεις κατακερματισμού Παραδείγματα: RSA Rabin Nyberg-Rueppel
Ψηφιακές υπογραφές με ανάκτηση μηνύματος Δημιουργία κλειδιού (2/4) Κάθε οντότητα δημιουργεί ένα ιδιωτικό κλειδί για την υπογραφή μηνυμάτων και το αντίστοιχο δημόσιο που θα χρησιμοποιηθεί από άλλες οντότητες για την επαλήθευση των υπογραφών. α) κάθε οντότητα Α επιλέγει ένα ιδιωτικό κλειδί το οποίο καθορίζει ένα σύνολο SA={SA,k: k Є R } μετασχηματισμών. Κάθε SA,k είναι μια 1-1 απεικόνιση από Μs στο S και ονομάζεται μετασχηματισμός υπογραφής. β) Το SA καθορίζει μια αντίστοιχη απεικόνιση VA με την ιδιότητα ότι VA o SA,k είναι η ταυτοτική απεικόνιση στο Ms για όλα τα k Є R . Το VA ονομάζεται μετασχηματισμός επαλήθευσης και παράγεται έτσι ώστε να μπορεί να υπολογιστεί χωρίς τη γνώση του ιδιωτικού κλειδιού του υπογράφοντα γ) το δημόσιο κλειδί του Α είναι το VA, το ιδιωτικό το σύνολο SA.
Ψηφιακές υπογραφές με ανάκτηση μηνύματος Δημιουργία υπογραφής (3/4) Ψηφιακές υπογραφές με ανάκτηση μηνύματος Δημιουργία υπογραφής (3/4) Η οντότητα Α παράγει μια υπογραφή sЄS για ένα μήνυμα mЄM, το οποίο αργότερα επαληθεύεται απο την οντότητα Β. To μήνυμα m ανακτάται από την s. 1. δημιουργία υπογραφής: Η οντότητα Α κάνει τα εξής: α) επιλέγει ένα στοιχείο k Є R β) υπολογίζει το m = R(m) και s*=SA,k(m), όπου R είναι μια συνάρτηση πλεονασμού (δες σχόλιο παρακάτω) γ) η υπογραφή του Α είναι s*. Αυτή είναι διαθέσιμη σε οντότητες που θέλουν να επαληθεύσουν την υπογραφή και να ανακτήσουν το μήνυμα m από αυτή.
Ψηφιακές υπογραφές με ανάκτηση μηνύματος Επαλήθευση υπογραφής (4/4) Ψηφιακές υπογραφές με ανάκτηση μηνύματος Επαλήθευση υπογραφής (4/4) 2. Επαλήθευση: Η οντότητα Β κάνει τα εξής: α) παίρνει το αυθεντικό δημόσιο κλειδί VA του Α. β) υπολογίζει το m = VA(s*). γ) επαληθεύει ότι m Є MR. (αν δεν ανήκει απορρίπτει την υπογραφή). δ) ανακτά το μήνυμα m από το m υπολογίζοντας R-1(m). Σχηματικά έχουμε:
Ψηφιακές υπογραφές με ανάκτηση μηνύματος ΠΑΡΑΤΗΡΗΣΗ (1/2) Ψηφιακές υπογραφές με ανάκτηση μηνύματος ΠΑΡΑΤΗΡΗΣΗ (1/2) Η συνάρτηση πλεονασμού R και η αντίστροφή της R-1 είναι γνωστές.Η επιλογή κατάλληλης R είναι καθοριστική για την ασφάλεια του συστήματος. Έστω ότι MR=Ms, και R και SA,k είναι αμφιμονοσήμαντες απεικονίσεις από Μ σε MR και από Ms σε S αντίστοιχα. Αυτό σημαίνει ότι Μ και S έχουν το ίδιο πλήθος στοιχείων. Επομένως για κάθε s*ЄS, VA(s*) Є MR, και είναι απλό να βρεθούν μηνύματα m και αντίστοιχες υπογραφές s* οι οποίες θα είναι αποδεκτές από τον αλγόριθμο επαλήθευσης. Το στοιχείο s* είναι έγκυρη υπογραφή για το μήνυμα m και δημιουργήθηκε χωρίς γνώση του συνόλου μετασχηματισμών υπογραφής SA.
Ψηφιακές υπογραφές με ανάκτηση μηνύματος ΠΑΡΑΤΗΡΗΣΗ (2/2) Ψηφιακές υπογραφές με ανάκτηση μηνύματος ΠΑΡΑΤΗΡΗΣΗ (2/2) Παράδειγμα συνάρτησης πλεονασμού R: Έστω ότι Μ = {m: m Є {0,1}n } και Έστω Ms = {t: t Є {0,1}2n } , και Ορίζουμε την R : M MR με R (m) = m || m, όπου || είναι η συνένωση δηλ., MR = {m ||m: m Є M } Ms Για μεγάλο m ο λόγος | MR| / | Ms | = (1/2) n είναι αμελητέος Αυτή η συνάρτηση πλεονασμού είναι κατάλληλη υπό την προϋπόθεση ότι μια απρόσεκτη επιλογή της υπογραφής s* μπορεί από τη μεριά ενός εχθρού να έχει μια όχι αμελητέα πιθανότητα να να μπορεί να παράγει το VA(s*) Є MR
Ψηφιακές υπογραφές με παράρτημα από Ψηφιακές υπογραφές με ανάκτηση μηνύματος Κάθε σχήμα ψηφιακής υπογραφής με ανάκτηση μηνύματος μπορεί να μετατραπεί σε σχήμα υπογραφής με παράρτημα με το να κατακερματιστεί το μήνυμα και ύστερα να υπογραφεί η τιμή κατακερματισμού. Το μήνυμα τώρα απαιτείται σαν είσοδος στον αλγόριθμο επαλήθευσης. Η συνάρτηση πλεονασμού δεν είναι πλέον καθοριστική για την ασφάλεια του σχήματος υπογραφής και μπορεί να είναι οποιαδήποτε 1-σε-1 συνάρτηση από το Μh στο Μs.
ΠΡΟΥΠΟΘΕΣΕΙΣ ΓΙΑ ΤΟΥΣ ΑΛΓΟΡΙΘΜΟΥΣ ΔΗΜΙΟΥΡΓΙΑΣ ΚΑΙ ΕΠΑΛΗΘΕΥΣΗΣ ΨΗΦΙΑΚΩΝ ΥΠΟΓΡΑΦΩΝ Οι παρακάτω προϋποθέσεις απαιτούνται για τους παραπάνω αλγόριθμους δημιουργίας και επαλήθευσης ώστε αυτοί να είναι ασφαλείς και αποτελεσματικοί: πρέπει να είναι εφικτός ο υπολογισμός του SA,k για κάθε k Є R πρέπει να είναι εφικτός ο υπολογισμός του VA πρέπει να είναι υπολογιστικά αδύνατος ο υπολογισμός ενός μηνύματος m Є Μ και ενός s* Є S από άλλη οντότητα εκτός από την Α ώστε να ισχύουν VA(s*) Є MR, VA(m,s*) =αληθές όπου m = h(m).
ΤΥΠΟΙ ΕΠΙΘΕΣΕΩΝ ΥΠΟΓΡΑΦΩΝ (1/2) σε Σχήματα Υπογραφών ΤΥΠΟΙ ΕΠΙΘΕΣΕΩΝ ΥΠΟΓΡΑΦΩΝ (1/2) σε Σχήματα Υπογραφών Ο στόχος του εχθρού είναι να πλαστογραφήσει υπογραφές, δηλ., να παράγει υπογραφές αποδεκτές από άλλες οντότητες. Τα κριτήρια για το τι σημαίνει το σπάσιμο ενός σχήματος υπογραφής είναι τα εξής: ολοκληρωτικό σπάσιμο: ένας εχθρός είναι ικανός είτε να υπολογίσει το ιδιωτικό κλειδί του υπογράφοντα, είτε να βρει ένα επαρκή αλγόριθμο υπογραφής αντίστοιχο με τον ισχύοντα. επιλεκτική πλαστογράφηση: ο εχθρός είναι ικανός να δημιουργήσει μια έγκυρη υπογραφή για ένα συγκεκριμένο μήνυμα ή μία κλάση μηνυμάτων εξαρχής επιλεγμένα.Η δημιουργία της υπογραφής δεν εμπλέκει άμεσα τον νόμιμο υπογράφοντα περιστασιακή πλαστογράφηση: ο εχθρός είναι ικανός να πλαστογραφήσει μια υπογραφή για ένα τουλάχιστον μήνυμα. Ο εχθρός έχει καθόλου ή μερικό έλεγχο του μηνύματος του οποίου η υπογραφή παίρνεται και ο νόμιμος υπογράφων μπορεί να συμμετέχει στην εξαπάτηση.
ΤΥΠΟΙ ΕΠΙΘΕΣΕΩΝ ΥΠΟΓΡΑΦΩΝ (2/2) σε σχήματα υπογραφών Δημόσιου κλειδιού επιθέσεις μόνο κλειδιού: όταν ο εχθρός ξέρει μόνο το δημόσιο κλειδί του υπογράφοντα. επιθέσεις σε μηνύματα: ο εχθρός είναι ικανός να εξετάσει υπογραφές που αντιστοιχούν σε γνωστά ή επιλεγμένα μηνύματα. Αυτές οι επιθέσεις διαιρούνται σε 3 κατηγορίες: επιθέσεις σε γνωστά μηνύματα: ο εχθρός είναι ικανός να εξετάσει υπογραφές για ένα σύνολο μηνυμάτων που του είναι γνωστά αλλά δεν έχουν επιλεγεί από αυτόν. επίθεση σε επιλεγμένα μηνύματα: ο εχθρός αποκτά έγκυρες υπογραφές από μια επιλεγμένη λίστα μηνυμάτων πριν προσπαθήσει να σπάσει το σχήμα. Αυτή η επίθεση είναι μη-προσαρμοζόμενη με την έννοια ότι τα μηνύματα επιλέγονται πριν γίνουν γνωστές οι υπογραφές. Τέτοιου είδους επιθέσεις είναι αντίστοιχες με επιθέσεις επιλεγμένου κρυπτογράμματος κατά σχημάτων κρυπτογράφησης με δημόσιο κλειδί. προσαρμοζόμενες επιθέσεις επιλεγμένων μηνυμάτων: ο εχθρός αφήνεται να χρησιμοποιήσει τον υπογράφοντα σαν μάντη. Έτσι μπορεί να ζητά υπογραφές μηνυμάτων τα οποία βασίζονται στο δημόσιο κλειδί του υπογράφοντα και μπορεί να ζητά υπογραφές μηνυμάτων που εξαρτώνται από προηγούμενες υπογραφές ή μηνύματα. Τελικά μπορεί να αποκτήσει επαρκή αριθμό μηνυμάτων με αντίστοιχες υπογραφές ώστε να μπορεί να εξάγει ένα μοντέλο βάσει του οποίου να μπορεί να πλαστογραφήσει μια υπογραφή της επιλογής του.
Το RSA σχήμα υπογραφής (1/5) Χαρακτηριστικά RSA σχήματος Ο χώρος του αρχικού μηνύματος και ο χώρος του κρυπτογράμματος για το RSA δημοσίου κλειδιού είναι και στις δύο περιπτώσεις: Zn = {0, 1, 2, … , n-1} όπου n = pq είναι το γινόμενο δύο τυχαία επιλεγμένων διαφορετικών πρώτων αριθμών. Επειδή ο μετασχηματισμός της κρυπτογράφησης είναι αμφι-μονοσήμαντος (σε επίπεδο συνάρτησης αυτή είναι ένα-προς-ένα και επί), άρα οι ψηφιακές υπογραφές μπορούν να δημιουργηθούν αντιστρέφοντας τους ρόλους της κρυπτογράφησης και της αποκρυπτογράφησης. Είναι ένα ντετερμινιστικό σχήμα ψηφιακής υπογραφής με ανάκτηση μηνύματος. Ο υπογραφόμενος χώρος ΜS και ο χώρος υπογραφών S είναι και τα δύο το Zn. Επιλέγεται μια συνάρτηση πλεονασμού R δημόσια γνωστή.
Το RSA σχήμα υπογραφής (2/5) ΑΛΓΟΡΙΘΜΟΣ ΔΗΜΙΟΥΡΓΙΑΣ ΚΛΕΙΔΙΟΥ να παράγει 2 τυχαίους μεγάλους πρώτους αριθμούς p και q ο καθένας κατά προσέγγιση το ίδιο μέγεθος. να υπολογίσει το n = pq και φ = (p-1)(q-1). να επιλέξει εναν τυχαίο ακέραιο e, 1 < e < φ, ώστε ΜΚΔ(e,φ) = 1. να χρησιμοποιήσει τον επεκταμένο αλγόριθμο Ευκλείδη για να υπολογίσει μοναδικό ακέραιο d, 1 < d < φ ώστε ed = (modφ) το δημόσιο κλειδί του Α είναι (n,e), και το ιδιωτικό d.
ΤΟ ΣΧΗΜΑ ΥΠΟΓΡΑΦΗΣ RSA (3/5) ΑΛΓΟΡΙΘΜΟΣ ΔΗΜΙΟΥΡΓΙΑΣ ΚΑΙ ΕΠΑΛΗΘΕΥΣΗΣ RSA ΥΠΟΓΡΑΦΗΣ Η οντότητα Α υπογράφει μήνυμα m Є M με το ιδιωτικό του κλειδί. Κάποιος Β επαληθεύει την υπογραφή και ανακτά το μήνυμα από αυτή. (δημιουργία υπογραφής).Η οντότητα Α κάνει τα εξής: υπολογίζει m = R(m), ένας ακέραιος στο διάστημα [0,n-1]. υπολογίζει s = md mod n η υπογραφή του Α είναι το s. (επαλήθευση).Η οντότητα Β κάνει τα εξής: παίρνει το αυθεντικό δημόσιο κλειδί (n,e) του Α υπολογίζει το m = se mod n επαληθεύει ότι m Є MR κι αν όχι απορρίπτει την υπογραφή ανακτά το μήνυμα m = R-1(m). Απόδειξη ότι η επαλήθευση της υπογραφής δουλεύει σωστά: Αν s υπογραφή και μήνυμα m τότε s = md mod n όπου m = R(m). Αφού ed = 1mod φ, se = med mod n. Τέλος R-1(m) = R-1 (R(m)) = m.
Παράδειγμα RSA (3a/5) Παραγωγή κλειδιού. Η οντότητα Α επιλέγει τους πρώτους αριθμούς p = 7927 και q = 6997. Έπειτα υπολογίζει τα γινόμενα: n = pq = 55465219 και φ = 7926 * 6996 = 55450296. Τώρα η Α επιλέγει το e = 5 και λύνει την εξίσωση ed = 5d = 1 mod 55450296, που τελικά δίνει d = 44360237. Το δημόσιο κλειδί της οντότητας Α είναι το (n = 55465219, e = 5), ενώ το ιδιωτικό κλειδί της είναι το d = 44360237. Γέννηση υπογραφής. Χάριν απλουστεύσεως, υποθέτουμε ότι M = Zn και ότι η συνάρτηση πλεονασμού R: M→ Zn είναι η ταυτοτική απεικόνιση R(m) = m για κάθε m M. Για να υπογράψει ένα μήνυμα m = 31229978, η οντότητα Α υπολογίζει το m = R(m) = 31229978 και μετά την υπογραφή s = md mod n = 3122997844360237 mod 55465219 = 30729435. Επαλήθευση υπογραφής. Η οντότητα Β υπολογίζει το m = se mod n = 307294355 mod 55465219 = 31229978. Τελικά, η Β δέχεται την υπογραφή αφού το m έχει τον απαιτούμενο πλεονασμό (δηλ., m MR ), και ανακτά το αρχικό μήνυμα m = R-1(m) = 31229978
ΕΠΙΘΕΣΕΙΣ ΣΕ RSA ΥΠΟΓΡΑΦΕΣ (4/5) Παραγοντοποίηση ακεραίου: Αν ο ανταγωνιστής μπορεί να παραγοντοποιήσει το δημόσιο modulo n μιας οντότητας Α, τότε μπορεί να υπολογίσει το φ και χρησιμοποιώντας τον επαυξημένο αλγόριθμο Ευκλείδη, να εξάγει το ιδιωτικό κλειδί d από το φ και το δημόσιο εκθέτη e λύνοντας την ed = 1 mod φ. Ο Α λοιπόν θα πρέπει να επιλέξει p και q ώστε ο παράγοντας n να είναι υπολογιστικά ανέφικτος. Πολλαπλασιαστική ιδιότητα του RSA: Το σχήμα RSA έχει την εξής ιδιότητα: αν s1 = m1d mod n και s2 = m2d mod n οι υπογραφές στα μηνύματα m1 και m2 αντίστοιχα (ή πιό σωστά στα μηνύματα με προστιθέμενο πλεονασμό) τότε το s = s1s2 mod n έχει την ιδιότητα ότι s = (m1m2)d mod n. Αν m=m1m2 έχει τον κατάλληλο πλεονασμό (δηλ., m MR) τότε η s είναι έγκυρη υπογραφή του m. Είναι συνεπώς σημαντικό η συνάρτηση πλεονασμού R να μην είναι πολλαπλασιαστική, δηλ., για κάθε ζεύγος a, b M, R(ab) R(a) R(b). H συνθήκη αυτή είναι αναγκαία αλλά όχι και ικανη για ασφάλεια (γιατί;).
ΥΠΟΓΡΑΦΕΣ RSA ΣΤΗΝ ΠΡΑΞΗ (5/5) Πρόβλημα reblocking: Μια προταθείσα χρήση του RSA είναι η υπογραφή ενός μηνύματος και μετά η κρυπτογράφηση της παραγόμενης υπογραφής. Θα πρέπει κάποιος να λάβει υπόψη του τα σχετικά μεγέθη των modulo που περιλαμβάνονται όταν υλοποιεί αυτήν την διαδικασία. Έστω ο Α υπογράφει και κρυπτογραφεί μήνυμα για τον Β. Έστω ότι (nA,eA) και (nB,eB) τα δημόσια κλειδιά Α και Β. Τότε αν nA>nB υπάρχει περίπτωση το μήνυμα να μην μπορεί να ανακτηθεί από τον Β. Συναρτήσεις πλεονασμού: για να αποφύγει κανείς περιστασιακή πλαστογράφηση απαιτείται μια κατάλληλη συνάρτηση πλεονασμού. RSA σχήμα με παράρτημα: (όταν με RSA υπογράφουμε τη hash τιμή του μηνύματος). Π.χ., αν ο MD5 κατακερματίζει μηνύματα σε 128-bit τιμές τότε ο RSA μπορεί να τις υπογράφει. Εάν n είναι ένα k-bit RSA modulo τότε μια κατάλληλη συνάρτηση πλεονασμού R απαιτείται για να αντιστοιχίσει ακέραιους 128-bit σε k-bit ακέραιους, Χαρακτηριστικά απόδοσης της δημιουργίας και επαλήθευσης υπογραφής: αν n είναι ένα 2κ-bit RSA modulo τότε η υπογραφή s για ένα μήνυμα m απαιτεί Ο(k3) υπολογισμούς. Η επαλήθευση είναι πιο γρήγορη διαδικασία και απαιτεί O(k2). Επιλογή παραμέτρων: υπογραφές 1024bit συνιστώνται για μεγάλα δίκτυα. Επίσης ο «δημόσιος»εκθέτης e επιλέγεται να είναι ένας μικρός αριθμός, π.χ., 3 ή ο πρώτος 216+1. Απόδοση εύρους ζώνης: είναι το πηλίκο του λογαρίθμου του μεγέθους της πληροφορίας που υπογράφεται προς το λογάριθμο της εικόνας της συνάρτησης πλεονασμού. Καθορίζεται απο τον πλεονασμό R. Π.χ. Για τον RSA η συνάρτηση πλεονασμού παίρνει μηνύματα των k bit τα κωδικοποιεί σε 2k bit από τα οποία φτιάχνεται υπογραφή των 2k bit. Διαφορετικό modulo: για κάθε οντότητα. Ο εκθέτης e μπορεί να είναι κοινός. Μικρά και μεγάλα μηνύματα: για 2k bit RSA modulo η καλύτερη αξιοποίηση του εύρους ζώνης επιτυγχάνεται με τη χρήση υπογραφών με παράρτημα. Για μήνυμα το πολύ k bit προτιμάται RSA με ανάκτηση μηνύματος.
Παράδειγμα του reblocking προβλήματος
Τρόποι για να ξεπεράσουμε το reblocking πρόβλημα αναδιάταξη. Το πρόβλημα της μη ορθής αποκρυπτογράφησης δε θα εμφανιζόταν αν η πράξη που χρησιμοποιήθηκε το μικρότερο modulo είχε γίνει πρώτη στη σειρά. δύο moduli για κάθε οντότητα. Στην λύση αυτή έχουμε κάθε οντότητας να δημιουργεί (t+1)-bit modulo για κρυπτογράφηση και t-bit modulo για υπογραφή. καθορίζοντας τον τύπο του modulo. Σε αυτή τη μέθοδο, επιλέγουμε του πρώτους αριθμούς p και q έτσι ώστε το modulo n έχει ένα ειδικό τύπο: Το πρώτο στη σειρά bit είναι πάντα 1 και τα k bits που ακολουθούν είναι όλα 0. Αυτό ελαχιστοποιεί αλλά δεν εξαλείφει τελείως το πρόβλημα.
Το Σχήμα Δημόσιου Κλειδιού Rabin (1/2) Σχήμα όμοιο με του RSA αλλά κάνει χρήση ενός αρτίου δημοσίου εκθέτη e (στον RSA έχουμε περιττό e διότι μ.κ.δ.(e, φ) = 1). Έστω e =2, οπότε ο υπογραφόμενος χώρος MS είναι το σύνολο Qn των τετραγωνικών υπολοίπων mod n και η υπογραφή είναι η τετραγωνική ρίζα αυτών. Δημιουργία κλειδιού: η οντότητα Α κάνει τα εξής: δημιουργεί 2 μεγάλους πρώτους p και q περίπου της ίδιας τάξης μεγέθους υπολογίζει το n = pq το δημόσιο κλειδί είναι το n και το ιδιωτικό (p,q). Δημιουργία υπογραφής: η Α κάνει τα εξής: υπολογίζει το m = R(m). υπολογίζει μια τετραγωνική ρίζα του m mod n η υπογραφή για το μήνυμα m είναι η s. Επαλήθευση: η Β κάνει τα εξής: παίρνει από τον Α το δημόσιο κλειδί n υπολογίζει m = s2 mod n επαληθεύει ότι m Є MR, διαφορετικά απορρίπτει την υπογραφή ανακτά το μήνυμα m =R-1(m).
Το Σχήμα Δημόσιου Κλειδιού Rabin (2/2) Όπως και στον RSA είναι κρίσιμο η κατάλληλη επιλογή της συνάρτησης πλεονασμού R. Ο προηγούμενος αλγόριθμος έχει πρόβλημα ασφάλειας. Εάν, π.χ., Μ = ΜS = Qn και R(m) = m, τότε κάποιος C μπορεί να διαλέξει οποιονδήποτε ακέραιο s Ζn* και να υπολογίσει το m = s2modn, οπότε o C θα έχει μια έγκυρη υπογραφή του m χωρίς να γνωρίζει το ιδιωτικό κλειδί του Α (περιπτωσιακή επίθεση). Γενικά η επιλογή της R είναι κρίσιμη διότι μπορεί το m = R(m) να τύχει να μην είναι τετραγωνικό υπόλοιπο mod n, οπότε ο Α να μη μπορεί να υπολογίσει την υπογραφή του. Κάποιος θα μπορούσε να βάλει στο τέλος του m λίγα τυχαία bits και να ξαναυπολογίσει το m = R(m’) με την ελπίδα να είναι R(m’) Qn. (αυτό κατά μέσο όρο απαιτεί δύο προσπάθειες. Είναι λοιπόν προτιμότερος ένας ντετερμινιστικός αλγόριθμος. Γι’ αυτό υπάρχει ο τροποποιημένος Rabin.
ISO/IEC 9796 Εκδόθηκε το 1991 απο το Διεθνή Οργανισμό Προτύπων σαν το πρώτο πρότυπο για ψηφιακές υπογραφές. Καθορίζει μια διαδικασία ψηφιακής υπογραφής η οποία χρησιμοποιεί μηχανισμό ανάκτησης μηνύματος. Τα κυριότερα χαρακτηριστικά είναι τα εξής: 1) κρυπτογραφία δημοσίου κλειδιού 2) ο αλγόριθμος υπογραφής δεν καθορίζεται όμως θα πρέπει να απεικονίζονται k bits σε k bits. 3) χρησιμοποιείται για να υπογράφει μηνύματα περιορισμένου μήκους και δεν απαιτεί κρυπτογραφική συνάρτηση κατακερματισμού 4) παρέχει ανάκτηση μηνύματος 5) καθορίζει το «γέμισμα» (padding) του μηνύματος όταν αυτό απαιτείται (RSA και τροποποιημένος Rabin)
Παράσταση ISO/IEC 9796. k z Το μήκος σε bits της υπογραφής, π.χ., 1024 Σύμβολο Σημασία k d z r t Το μήκος σε bits της υπογραφής, π.χ., 1024 Το μήκος σε bits του μηνύματος m που υποδεικνύεται. Απαιτείται d 8 (k+3)/16 , π.χ., 150 Το μήκος των bytes στο μήνυμα με τις προσθήκες. z = d / 8 , π.χ., 19 Ένα περισσότερο από τα bites της προσθήκης. r = 8z – d + 1, π.χ., 3 Ο ελάχιστος ακέραιος έτσι ώστε μία συμβολοσειρά 2t bytes που περιέχει τουλάχιστον k – 1 bits. t = ( k – 1 ) / 16 , π.χ., 64 λ
Διαδικασία υπογραφής και πιστοποίησης για το ISO/IEC 9796 Μήνυμα Γέμισμα Επέκταση Πλεονασμός Περικοπή και Μετατροπή Παραγωγή Υπογραφής Υπογραφή Άνοιγμα Υπογραφής Ανάκτηση Μηνύματος Έλεγχος Πλεονασμού Υπογραφή Δεκτή YES NO Απόρριψη
Σχήμα μορφοποίησης PKCS #1: Public-Key Cryptography Standards: είναι ένα σύνολο προδιαγραφών για RSA κρυπτογραφία και υπογραφή. Το PKCS #1 αναφέρεται στην υπογραφή. Δεν χρησιμοποιεί το χαρακτηριστικό γνώρισμα της υπογραφής με ανάκτηση μηνύματος του RSΑ. Απαιτεί μια hashing συνάρτηση σύνοψης μηνύματος (Message Digest, MD, δηλ., MD2 ή MD5). Άρα, είναι ένα ψηφιακό σχήμα υπογραφής με παράρτημα. Μορφοποίηση δεδομένων στο PKCS #1: Τα δεδομένα D είναι είναι μια σειρά οκτάδων-bits, το BT είναι μια οκτάδα με δεκαεξαδική τιμή 00 ή 01. Το PS είναι μια σειρά οκτάδων «γέμισμα». Τα μορφοποιημένα δεδομένα είναι το ΕΒ = 00 || BT || PS || 00 || D Η αρχική οκτάδα 00 βεβαιώνει ότι το ΕΒ σαν ακέραιος είναι μικρότερο του modulo n.
Διαδικασία υπογραφής για το PKCS#1 Κατακερματισμός μηνύματος m σε σύνοψη MD BER-κωδικοποίηση της σύνοψης ΜD και του τύπου της hash συνάρτησηςστη σειρά οκτάδων των δεδομένων D Μορφοποίηση της D στη σειρά οκτάδων ΕD, όπου ΕΒ = 00 || BT || PS || 00 || D Μετατροπή της ΕD σε ακέραιο αριθμό m RSA Υπολογισμός, s = md mod n Μετατροπή ακεραίου s σε σειρά οκτάδων S.
Διαδικασία επαλήθευσης για το PKCS#1 (1/2) Απόρριψη του S εάν το μήκος του σε bit δεν είναι πολλαπλάσιο του 8. Μετατρέψτε το S, σε έναν ακέραιο αριθμό s. Απορρίψτε την υπογραφή εάν το s > n. RSA Υπολογισμός, m = se mod n Μετατροπή ακεραίου αριθμού m σε σειρά οκτάδων ΕΒ. Συντακτική ανάλυση του ΕΒ σε τύπο ΒΤ, γέμισμα PS και δεδομένα D. Απορρίψτε την υπογραφή εάν ΕΒ δεν μπορεί να αναλυθεί χωρίς ασάφεια. Απορρίψτε την υπογραφή εάν ο τύπος BT δεν είναι ένα από τα 00 ή 01. Απορρίψτε την υπογραφή εάν το γέμισμα PS αποτελείται από < 8 οκτάδες ή είναι ασύμβατο με τον τύπο ΒΤ .
Διαδικασία επαλήθευσης για το PKCS#1 (2/2) Αποκωδικοποίηση στοιχείων. Ο BER αποκωδικοποιεί το D για να πάρει μια σύνοψη μηνυμάτων MD και ένα τύπο της hash συνάρτησης Απορρίψτε την υπογραφή εάν ο τύπος της hash δεν αναγνωρίζει ένα από τα MD2 ή MD5 Σύνοψη και σύγκριση μηνυμάτων. Κατακερματίστε το μήνυμα Μ με τον επιλεγμένο αλγόριθμο ΜD μηνυμάτων για να πάρετε το MD’. Αποδεχτείτε την υπογραφή S στο Μ εάν και μόνο εάν MD’ = MD.
Fiege–Fiat–Shamir σχήμα υπογραφής Απαιτεί μία μονόδρομη συνάρτηση κατακερματισμού. Η μέθοδος παρέχει μία ψηφιακή υπογραφή με παράρτημα, Σημείωση :Είναι ένας τυχαίος μηχανισμός.
Fiege–Fiat–Shamir σχήμα υπογραφής Παραγωγή κλειδιού Κάθε οντότητα δημιουργεί ένα δημόσιο κλειδί και το αντίστοιχο ιδιωτικό κλειδί Κάθε οντότητα Α κάνει τα εξής: Παράγει τυχαίους μυστικούς διακριτούς πρώτους p, q και υπολογίζει το n = pq. Επιλέγει θετικό ακέραιο k και τυχαίους ακεραίους s1, s2, …, sk που ανήκουν στο Ζn* Υπολογίζει του vj = sj-2 mod n, 1 ≤ j ≤ k. Το δημόσιο κλειδί του Α είναι το k-tuple ( v1,v2, … , vk ) και το modulo n. Το ιδιωτικό κλειδί του Α είναι το k-tuple (s1, s2, …, sk ).
Fiege–Fiat–Shamir σχήμα υπογραφής Παραγωγή Υπογραφής Επιλογή ενός τυχαίου ακέραιου αριθμού r, 1 ≤ r ≤ n – 1 Υπολογισμός v = r2 mod n. Υπολογισμός e = ( e1, e2, … ek ) = h (m || v) όπου κάθε e i ανήκει στο { 0, 1 } Υπολογισμός s = r Πj=1k sjei mod n H υπογραφή του Α στο m είναι ( e, s )
Fiege–Fiat–Shamir σχήμα υπογραφής Επαλήθευση Υπογραφής Κάθε οντότητα Β επαληθεύει την υπογραφή (e,s) στο m χρησιμοποιώντας το δημόσιο κλειδί του Α, ως εξής: Αποκτά το αυθεντικό δημόσιο κλειδί του Α Υπολογίζει το w = s2 * Πj=1k vjei mod n Υπολογίζει το e’ = h ( m || w ). Αποδέχεται την υπογραφή εάν e’ = e. Απόδειξη ορθότητας αποδοχής: Συνεπώς w = v και έτσι e = e’
To Guillou-Quisquarter (GQ) σχήμα υπογραφών Που μπορεί να μετατραπεί σε ένα μηχανισμό ψηφιακών υπογραφών εάν η πρόκληση (challenge) αντικατασταθεί από μία μονόδρομη συνάρτηση κατακερματισμού,
To GQ σχήμα υπογραφών Παραγωγή κλειδιού (1/2) Κάθε οντότητα δημιουργεί ένα δημόσιο κλειδί ( n, e, JA ) και το αντίστοιχο ιδιωτικό κλειδί. Παραγωγή διακριτών πρώτων p, q και σχηματισμός του n = p, q . Επιλογή ενός τυχαίου ακέραιου αριθμού e που ανήκει στο {1,2, ... , n – 1} έτσι ώστε ο Μ.Κ.Δ ( e, (p – 1)(q – 1)) = 1. Επιλογή ενός ακέραιου αριθμού JA 1 < JA < n, ο οποίος χρησιμοποιείται σαν ταυτότητα για το Α
To GQ σχήμα υπογραφών Παραγωγή κλειδιού (2/2) Καθορισμός ως εξής ενός ακεραίου a Ζn τέτοιου ώστε JA a e ≡ 1 (mod n) Υπολόγισε το JA -1 (mod n) Υπολόγισε τα d1 = e-1 mod ( p – 1 ) και d2 = e-1 mod ( q – 1 ) Υπολόγισε τα a1 = ( JA-1 )d1 mod p και a2 = ( JA-1 )d2 mod q Βρες μία λύση a για τις a≡a1 ( mod p ) , a≡a2 ( mod q ) Το δημόσιο κλειδί του Α είναι το ( n, e, JA ) To ιδιωτικό κλειδί του Α είναι το a.
To GQ σχήμα υπογραφών Παραγωγή Υπογραφής για το GQ Η οντότητα Α υπογράφει ένα δυαδικό μήνυμα με αυθαίρετο μήκος με τα ακόλουθα βήματα: Επιλογή τυχαίου ακεραίου k και υπολογισμός του r = k e mod n Υπολογισμός l = h ( m || r ) Υπολογισμός s = k a l mod n. Η υπογραφή του Α είναι το ζευγάρι (s, l)
To GQ σχήμα υπογραφών Επαλήθευση Υπογραφής Κάθε οντότητα Β επαληθεύει την υπογραφή χρησιμοποιώντας το δημόσιο κλειδί της Α. Απόκτηση του δημόσιου κλειδιού του Α. Υπολογισμός u = s e J Al mod n και l’ = h( m || u ). Αποδοχή της υπογραφής εάν και μόνο εάν l = l’. Απόδειξη ορθότητας επαλήθευσης u = s e J Al = (kal ) e J Al = k e (a e J A )l = k e = r mod n Συνεπώς u = r και έτσι l = l’
Σχήματα DSA (1/9) ΓΕΝΙΚΑ ΧΑΡΑΚΤΗΡΙΣΤΙΚΑ Τα περισσότερα από αυτά ορίζονται πάνω στο Ζp* για κάποιους μεγάλους πρώτους p αλλά όλοι αυτοί οι μηχανισμοί μπορούν να γενικευτούν για οποιαδήποτε πεπερασμένη κυκλική ομάδα (finite cyclic group). Είναι τυχαία σχήματα ψηφιακών υπογραφών. Παράγουν υπογραφές με παράρτημα αλλά και μετατρέπονται έτσι ώστε να παρέχουν και υπογραφές με ανάκτηση μηνύματος. Αναγκαία συνθήκη ασφάλειας αυτών είναι το ανέφικτο υπολογισμού του διακριτού λογαρίθμου στο Ζp*
Σχήματα DSA (2/9) αλγόριθμος DSA Δημιουργία κλειδιού: η οντότητα Α : 1) επιλέγει πρώτο q με 2159 < q < 2160 2) επιλέγει t ώστε 0 t 8 και επιλέγει πρώτο αριθμό p όπου 2511 < p < 2512+64t με την ιδιότητα το q να διαιρεί το (p-1). 3) επιλέγει γεννήτορα a της μοναδικής κυκλικής ομάδας τάξης q στο Ζp* ώς εξής: i) επιλέγει στοιχείο g Є Ζp* και υπολογίζει το a = g(p-1)/q mod p ii) εάν a = 1 τότε πήγαινε στο βήμα 3(i) 4) επιλέγει τυχαίο ακέραιο α ώστε 1 α q-1 5) υπολογίζει y = aα mod p 6) το δημόσιο κλειδί τoy Α είναι (p,q,a,y), το ιδιωτικό α.
Σχήματα DSA (3/9) Ο αλγόριθμος DSA Δημιουργία υπογραφής: η οντότητα Α κάνει: 1) επιλέγει τυχαίο κρυφό ακέραιο k, 0 < k < q 2) υπολογίζει r = (αkmod p) mod q 3) υπολογίζει k-1mod q 4) υπολογίζει s = k-1 {h(m)+α r} mod q 5) υπογραφή του Α για το m είναι το ζεύγος (r,s) Επαλήθευση: η οντότητα Β κάνει: 1) παίρνει το δημόσιο κλειδί (p,q,a,y) 2) επαληθεύει ότι 0 < r < q και 0 < s < q, αλλιώς απορρίπτει. 3) υπολογίζει w = s-1 mod q και h(m) 4) υπολογίζει u1 = w h(m) mod q και u2 = r w mod q 5) υπολογίζει v = (αu1 yu2 mod p) mod q 6) αποδέχεται την υπογραφή εάν και μόνον εάν v = r
Σχήματα DSA (4/9) αλγόριθμος ElGamal Παράγει ψηφιακές υπογραφές με παράρτημα πάνω σε δυαδικά μηνύματα αυθαίρετου μεγέθους. Δημιουργία κλειδιού: η Α κάνει: 1) παράγει μεγάλο τυχαίο πρώτο αριθμό p και ένα γεννήτορα a του συνόλου Ζp* 2) επιλέγει τυχαίο ακέραιο α, 1 α p-2 3) υπολογίζει y=aα mod p 4) το δημόσιο του Α (p,a,y), το ιδιωτικό α.
Σχήματα DSA (5/9) αλγόριθμος ElGamal Δημιουργία υπογραφής: η Α κάνει 1) επιλέγει τυχαίο μυστικό ακέραιο k, 1 k p-2 με gcd(k,p-1)=1 2) υπολογίζει r = ak mod p 3) υπολογίζει k-1 mod (p-1) 4) υπολογίζει s = k-1 {h(m)-αr} mod(p-1) 5) η υπογραφή για m είναι το ζεύγος (r,s)
Σχήματα DSA (6/9) αλγόριθμος ElGamal Επαλήθευση: η Β κάνει: 1) παίρνει δημόσιο κλειδί (p,a,y) 2) επαληθεύει ότι 1 r p-1, αλλιώς απορρίπτει 3) υπολογίζει υ1 = yrrs mod p 4) υπολογίζει h(m) και υ2 = ah(m) mod p 5) δέχεται την υπογραφή εάν και μόνον εάν υ1=υ2 Απόδειξη ορθότητας επαλήθευσης: s = k-1 {h(m)-αr} mod(p-1) k s = k k-1 {h(m)-αr} mod(p-1) h(m) = αr + k s mod (p-1) a h(m) = a αr + k s = (a α ) r r s mod (p-1) Άρα υ1=υ2
Σχήματα DSA (7/9) αλγόριθμος SCHNORR Η δημιουργία κλειδιού είναι η ίδια με αυτήν του DSA μόνο που δεν υπάρχουν περιορισμοί στα μεγέθη των p, q Δημιουργία υπογραφής: η Α κάνει: 1) επιλέγει τυχαίο μυστικό ακέραιο k, 1 k q-1 2) υπολογίζει r = ak mod p, e = h(m||r) και s = ae+k mod q 3) η υπογραφή του Α για το m είναι το (s,e) Επαλήθευση: η Β κάνει τα εξής: 1) παίρνει το δημόσιο του Α (p,q,a,y) 2) υπολογίζει υ = as y-e mod p και e’ = h(m||υ) 3) αποδέχεται την υπογραφή αν και μόνον αν e’ = e. Απόδειξη: υ = as y-e = as a-αe = ak = r mod n Άρα h(m||u) = h(m||r) και e’ = e
Σχήματα DSA (8/9) αλγόριθμος NYBERG-RUEPPEL Παραλλαγή του ElGamal για παραγωγή ψηφιακής υπογραφής με ανάκτηση μηνύματος. Η δημιουργία κλειδιού είναι η ίδια με αυτήν του DSA μόνο που δεν υπάρχουν περιορισμοί στα μεγέθη των p, q Δημιουργία υπογραφής: η Α κάνει: 1) υπολογίζει m = R(m), R συνάρτηση πλεονασμού 2) επιλέγει τυχαίο μυστικό ακέραιο k, 1 k q-1 και υπολογίζει r = a-k mod p 3) υπολογίζει e = mr mod p 4) υπολογίζει s = αe + k mod q 5) η υπογραφή είναι το (e,s)
Σχήματα DSA (9/9) αλγόριθμος NYBERG-RUEPPEL Επαλήθευση: η Β πρέπει να κάνει: 1) παίρνει το δημόσιο κλειδί του Α (p,q,a,y) 2) επαληθεύει ότι 0 < e< p, αλλιώς απορρίπτει 3) επαληθεύει ότι 0 < s < q, αλλιώς απορρίπτει 4) υπολογίζει υ = as y-e mod p και m= υe mod p 5) επαληθεύει ότι m Є MR, αν όχι τότε απορρίπτει 6) ανακτά το m = R-1(m) Απόδειξη: υ = as y-e = as-αe = ak mod p Άρα, ue = ak m a-k = m mod p
ΨΗΦΙΑΚΕΣ ΥΠΟΓΡΑΦΕΣ ΜΙΑΣ ΧΡΗΣΗΣ Χρησιμοποιούνται για να υπογράψουν το πολύ ένα μήνυμα αλλιώς οι υπογραφές μπορεί να πλαστογραφηθούν. Για κάθε μήνυμα που είναι να υπογραφεί απαιτείται ένα νέο δημόσιο κλειδί. Η απαραίτητη δημόσια πληροφορία για την επαλήθευσή τους ονομάζεται παράμετροι επικύρωσης. Η δημιουργία και η επαλήθευση των υπογραφών μιας χρήσης είναι πολύ αποδοτική Είναι πολύ χρήσιμες σε εφαρμογές όπως chipcards όπου απαιτείται χαμηλή υπολογιστική πολυπλοκότητα.
ΨΗΦΙΑΚΕΣ ΥΠΟΓΡΑΦΕΣ ΜΙΑΣ ΧΡΗΣΗΣ ΤΟ ΣΧΗΜΑ MERKLE To σχήμα Merkle απαιτεί ένα έμπιστο τρίτο μέρος να πιστοποιήσει τις παραμέτρους εγκυρότητας του αλγορίθμου. Δεν απαιτεί διαδραστικότητα με τον υπογράφοντα. Για την υπογραφή μηνυμάτων n bits η οντότητα Α δημιουργεί t παραμέτρους εγκυρότητας. Δημιουργία κλειδιού: Κάθε οντότητα Α κάνει: επιλέγει t = n + lοg n + 1 τυχαίες μυστικές σειρές k1,k2,..,kt μήκους l εκάστη 2) υπολογίζει τα υi = h(ki), 1 i t , με h: {0,1}*→ {0,1}l μια hash συνάρτηση με αντίσταση προαπεικόνισης 3) το δημόσιο κλειδί της Α είναι το (υ1,υ2,...υt), το ιδιωτικό το (k1,k2,…kt)
ΨΗΦΙΑΚΕΣ ΥΠΟΓΡΑΦΕΣ ΜΙΑΣ ΧΡΗΣΗΣ ΤΟ ΣΧΗΜΑ MERKLE Η οντότητα Α υπογράφει ένα ψηφιακό μήνυμα m μήκους n bits. Δημιουργία υπογραφής: H οντότητα Α κάνει: 1) υπολογίζει το c που είναι η δυαδική αναπαράσταση του πλήθους των 0 στο μήνυμα m, μήκους lοg n + 1 2) σχηματίζει το w = m||c = (α1α2...αt), μήκους t = n + lοg n + 1 3) Προσδιορίζει τις συντεταγμένες θέσεις i1 < i2 <…< iu στο w που είναι 1, δηλ., όπου αij = 1, 1 j u 4) Έστω sj=kij, 1 j u 5) η υπογραφή είναι (s1,s2,…,su) Επαλήθευση: η Β κάνει: 1) παίρνει το δημόσιο κλειδί της Α (υ1,υ2,...,υt) 2) υπολογίζει c, τη δυαδική αναπαράσταση του πλήθους των 0 στο μήνυμα m 3) σχηματίζει w=m||c=(α1α2...αt) 4) Προσδιορίζει τις συντεταγμένες i1<i2<…<iu στο w όπου αij=1, 1 j u 5) δέχεται την υπογραφή εάν και μόνον εάν υij=h(sj) για όλα 1 j u
ΨΗΦΙΑΚΕΣ ΥΠΟΓΡΑΦΕΣ ΔΙΑΙΤΗΣΙΑΣ Ορισμός: Είναι τα σχήματα τα οποία απαιτούν ένα έμπιστο τρίτο πρόσωπο (ΤΤΡ) σαν μέρος του μηχανισμού δημιουργίας και επαλήθευσης της ψηφιακής υπογραφής. Απαιτεί έναν αλγόριθμο κρυπτογράφησης συμμετρικού κλειδιού Ε = {Εk: k Є K}, Κ ο χώρος των κλειδιών. H είσοδος και η έξοδος κάθε Εk είναι l bits h: {0,1}* {0,1}l μια μονόδρομη hash συνάρτηση. Ο ΤΤΡ επιλέγει ένα κλειδί kT Є K μυστικό Για να επαληθεύσει κάποιος μια υπογραφή θα πρέπει να έχει ένα κοινό συμμετρικό κλειδί με τον ΤΤΡ Δημιουργία κλειδιού: κάθε οντότητα κάνει: 1) επιλέγει τυχαίο μυστικό κλειδί kΑ Є K 2) με κάποιο μέσο που εγγυάται μυστικότητα και πιστοποίηση ταυτότητας διαθέτει το κλειδί του στο τρίτο πρόσωπο ΤΤΡ.
ΨΗΦΙΑΚΕΣ ΥΠΟΓΡΑΦΕΣ ΔΙΑΙΤΗΣΙΑΣ Η οντότητα Α υπογράφει το m μέσω του ΤΤΡ Δημιουργία υπογραφής: 1) η Α υπολογίζει H = h(m) 2) η Α κρυπτογραφεί το H με το E για να πάρει u = EkA(H) 3) η Α στέλνει στον ΤΤΡ το u μαζί με την ταυτότητά του ΙΑ 4) Ο ΤΤΡ υπολογίζει ΕkA-1(u) για να πάρει Η 5) Ο ΤΤΡ υπολογίζει το s = EkΤ(H || IA) και το στέλνει στην Α 6) η υπογραφή της Α στο m είναι το s 7) Η Α στέλνει στην Β τα (m, s)
ΨΗΦΙΑΚΕΣ ΥΠΟΓΡΑΦΕΣ ΔΙΑΙΤΗΣΙΑΣ Η οντότητα Β επαληθεύει την υπογραφή s της Α στο m μέσω του ΤΤΡ Επαλήθευση: 1) η Β υπολογίζει το υ = EkB(s) 2) η Β στέλνει υ και την ταυτότητά της ΙΒ στον ΤΤΡ 3) ο ΤΤΡ υπολογίζει ΕkΒ-1(υ) για να πάρει s 4) ο ΤΤΡ υπολογίζει ΕkΤ-1(s) για να πάρει Η || ΙΑ 5) ο ΤΤΡ υπολογίζει w = EkB(H || IA) και στέλνει w στη Β 6) η Β υπολογίζει ΕkΒ-1(w) για να πάρει Η || ΙΑ 7) η Β υπολογίζει Η’ = h(m) από το m 8) η Β δέχεται την υπογραφή εάν και μόνον εάν Η’=Η
Σύστημα τυφλών ψηφιακών υπογραφών Είναι πρωτόκολλο μεταξύ δύο μερών, τον αποστολέα Α και τον υπογράφοντα Β Ο αποστολέας Α στέλνει ένα μήνυμα στον Β που το υπογράφει και το επιστρέφει στον Α. Από αυτή την υπογραφή ο Α μπορεί να υπολογίσει την υπογραφή του Β και να την χρησιμοποιήσει για να υπογράψει ως Β κάποιο δικό του μήνυμα m. Χαρακτηριστικό: μετά το τέλος του πρωτοκόλλου ο υπογράφων δεν γνωρίζει ούτε το περιεχόμενο του μηνύματος m ούτε ποια υπογραφή αυτό φέρει. Εφαρμογές Ηλεκτρονικό χρήμα Ηλεκτρονικές εκλογές
Σύστημα τυφλών ψηφιακών υπογραφών Εφαρμογή Ηλεκτρονικό χρήμα: Ο αποστολέας (ο πελάτης) δεν θέλει να μπορεί ο υπογράφων (η τράπεζα) να συσχετίζει εκ των υστέρων ένα μήνυμα m και μια υπογραφή SB(m) με συγκεκριμένο στιγμιότυπο του πρωτοκόλλου. Αυτό είναι σημαντικό σε εφαρμογές e-cash όπου το μήνυμα m αντιπροσωπεύει μια νομισματική αξία (π.χ., travelers cheque) που ο Α μπορεί να ξοδέψει. Όταν τα m και SB(m) παρουσιάζονται στον Β για εξαργύρωση/πληρωμή ο Β δεν μπορεί να συμπεράνει σε ποιόν είχε δώσει αρχικά την υπογεγραμμένη επιταγή. Αυτό επιτρέπει στον Α να παραμείνει ανώνυμος ώστε να μη μπορεί να γίνει ανίχνευση του ποιος ξοδεύει τι.
Σύστημα τυφλών ψηφιακών υπογράφων RSA (1/3) ‘Έστω ότι o Α επιθυμεί να παραλάβει υπογεγραμμένο το μήνυμα m από τον Β, χωρίς αυτός να γνωρίζει το περιεχόμενο του μηνύματος. Θεωρούμε ότι το δημόσιο κλειδί του Β είναι ( n, e ) και το ιδιωτικό του κλειδί είναι το d. Επίσης, για το μήνυμα ισχύει 0 < m < n. Αρχικά o Α επιλέγει τον παράγοντα τύφλωσης ο οποίος είναι ένας μυστικός ακέραιος k, τέτοιος ώστε 0 < k < n και gcd(n, k) = 1. Ένα σύστημα τυφλών ψηφιακών υπογραφών αποτελείται από τρεις διαδικασίες: την τύφλωση, την υπογραφή και την απομάκρυνση του παράγοντα τύφλωσης. Στο σύστημά μας, οι τρεις διαδικασίες ορίζονται ως εξής:
Σύστημα τυφλών ψηφιακών υπογράφων RSA (2/3) (τύφλωση). Υπολογισμός του m* = mke mod n από τον Α. Α —> Β: m* (υπογραφή). Υπολογισμός του s = (m*)d mod n από τον Β. Β —> Α: s (απομάκρυνση του παράγοντα τύφλωσης). Υπολογισμός του s = k-1 mod n. Το αποτέλεσμα του υπολογισμού θα είναι η υπογραφή του Β στο μήνυμα m του Α
Σύστημα τυφλών ψηφιακών υπογράφων RSA (3/3) Παράδειγμα ‘Έστω ότι έχουμε τις εξής παραμέτρους : p = 29, q = 17, n = 29*17 = 493, kdA = 319, keA = 191. και έστω ότι το μήνυμα που επιθυμούμε να υπογραφεί τυφλά είναι το m = 351. Επιλέγουμε παράγοντα τύφλωσης, έστω k = 31. Στη συνέχεια υπολογίζουμε το μήνυμα m’=351*31191 = 351*300=291(mod493) το οποίο αποτελεί και το μήνυμα προς υπογραφή. Η πράξη της υπογραφής στο m’ δίνει: s=349mod493 Τέλος υπολογίζουμε τον αντίστροφο του παράγοντα τύφλωσης, ο οποίος είναι: (k -1) = 334 mod 493 Έτσι το υπογεγραμμένο μήνυμα <351> είναι το : 349*334 = 218 (mod 493), από όπου μπορούμε να επαληθεύσουμε ότι: 218191 = 351 (mod 493)