Εισαγωγή στη Κρυπτογραφία Ψηφιακή Υπογραφή (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.
ΨΗΦΙΑΚΕΣ ΥΠΟΓΡΑΦΕΣ ΜΙΑΣ ΧΡΗΣΗΣ Χρησιμοποιούνται για να υπογράψουν το πολύ ένα μήνυμα αλλιώς οι υπογραφές μπορεί να πλαστογραφηθούν. Για κάθε μήνυμα που είναι να υπογραφεί απαιτείται ένα νέο δημόσιο κλειδί. Η απαραίτητη δημόσια πληροφορία για την επαλήθευσή τους ονομάζεται παράμετροι επικύρωσης. Η δημιουργία και η επαλήθευση των υπογραφών μιας χρήσης είναι πολύ αποδοτική Είναι πολύ χρήσιμες σε εφαρμογές όπως chipcards όπου απαιτείται χαμηλή υπολογιστική πολυπλοκότητα.
ΨΗΦΙΑΚΕΣ ΥΠΟΓΡΑΦΕΣ ΔΙΑΙΤΗΣΙΑΣ Ορισμός: Είναι τα σχήματα τα οποία απαιτούν ένα έμπιστο τρίτο πρόσωπο (ΤΤΡ) σαν μέρος του μηχανισμού δημιουργίας και επαλήθευσης της ψηφιακής υπογραφής. Απαιτεί έναν αλγόριθμο κρυπτογράφησης συμμετρικού κλειδιού Ε = {Εk: k Є K}, Κ ο χώρος των κλειδιών. H είσοδος και η έξοδος κάθε Εk είναι l bits h: {0,1}* {0,1}l μια μονόδρομη hash συνάρτηση. Ο ΤΤΡ επιλέγει ένα κλειδί kT Є K μυστικό Για να επαληθεύσει κάποιος μια υπογραφή θα πρέπει να έχει ένα κοινό συμμετρικό κλειδί με τον ΤΤΡ Δημιουργία κλειδιού: κάθε οντότητα κάνει: 1) επιλέγει τυχαίο μυστικό κλειδί kΑ Є K 2) με κάποιο μέσο που εγγυάται μυστικότητα και πιστοποίηση ταυτότητας διαθέτει το κλειδί του στο τρίτο πρόσωπο ΤΤΡ.
Σύστημα τυφλών ψηφιακών υπογραφών Είναι πρωτόκολλο μεταξύ δύο μερών, τον αποστολέα Α και τον υπογράφοντα Β Ο αποστολέας Α στέλνει ένα μήνυμα στον Β που το υπογράφει και το επιστρέφει στον Α. Από αυτή την υπογραφή ο Α μπορεί να υπολογίσει την υπογραφή του Β και να την χρησιμοποιήσει για να υπογράψει ως Β κάποιο δικό του μήνυμα m. Χαρακτηριστικό: μετά το τέλος του πρωτοκόλλου ο υπογράφων δεν γνωρίζει ούτε το περιεχόμενο του μηνύματος m ούτε ποια υπογραφή αυτό φέρει. Εφαρμογές Ηλεκτρονικό χρήμα Ηλεκτρονικές εκλογές
Σύστημα τυφλών ψηφιακών υπογραφών Εφαρμογή Ηλεκτρονικό χρήμα: Ο αποστολέας (ο πελάτης) δεν θέλει να μπορεί ο υπογράφων (η τράπεζα) να συσχετίζει εκ των υστέρων ένα μήνυμα m και μια υπογραφή SB(m) με συγκεκριμένο στιγμιότυπο του πρωτοκόλλου. Αυτό είναι σημαντικό σε εφαρμογές e-cash όπου το μήνυμα m αντιπροσωπεύει μια νομισματική αξία (π.χ., travelers cheque) που ο Α μπορεί να ξοδέψει. Όταν τα m και SB(m) παρουσιάζονται στον Β για εξαργύρωση/πληρωμή ο Β δεν μπορεί να συμπεράνει σε ποιόν είχε δώσει αρχικά την υπογεγραμμένη επιταγή. Αυτό επιτρέπει στον Α να παραμείνει ανώνυμος ώστε να μη μπορεί να γίνει ανίχνευση του ποιος ξοδεύει τι.