Κεφάλαιο 7 Ψηφιακές Υπογραφές 7.1 Εισαγωγή Στο κεφάλαιο αυτό θα ασχοληθούμε με τα Σχήματα Υπογραφών ή Σχήματα Ψηφιακών Υπογραφών (Digital Signature Schemes) όπως αλλιώς ονομάζονται. Θα μιλήσουμε για την αναγκαιότητα αλλά και το ρόλο τους και θα σταθούμε περισσότερο σε κάποια ευρέως διαδεδομένα Σχήματα Υπογραφών. Ας γίνουμε όμως πιο συγκεκριμένοι. Η υπογραφή είναι ένας από τους βασικούς μηχανισμούς παροχής εγκυρότητας και εφαρμοσιμότητας σε μία συναλλαγή. Σε γενικό επίπεδο, παρέχει στοιχεία για την αυθεντικοποίηση ενός κειμένου και την αποδοχή του από τον συγγραφέα του. Επιπλέον δίνει το νόημα της τέλεσης (ceremony) σε μία πράξη, επισείοντας την προσοχή των συμμετεχόντων στο ότι η συναλλαγή ή συμφωνία τους κ.ο.κ. είναι δεσμευτική και μπορεί να έχει νομικές συνέπειες. Η χειρόγραφη υπογραφή βασίζεται στην δημιουργία ενός χαρακτηριστικού σημαδιού χρησιμοποιώντας κάποιο είδος γραφής, το οποίο χαρακτηρίζει τον υπογράφοντα και τοποθετείται στο τέλος ενός κειμένου. Οι χημικές ιδιότητες του μελανιού και του χαρτιού διασφαλίζουν την φυσική σύνδεση της υπογραφής με το κείμενο. Η φυσική αυτή σύνδεση έχει ως συνέπεια την λογική συσχέτιση, έτσι ώστε η υπογραφή να είναι ένδειξη για [5]: Την αποδοχή του κειμένου από τον υπογράφοντα και την συμφωνία του με αυτό. Το γεγονός ότι ο υπογράφων έλαβε γνώση του κειμένου και αναλαμβάνει την ευθύνη για το περιεχόμενο του. Την ταυτότητα του υπογράφοντα ως συντάκτη του κειμένου. Δηλαδή η υπογραφή ταυτοποιεί τον υπογράφοντα. 223
224 ΚΕΦΑΛΑΙΟ 7. ΨΗΦΙΑΚΕΣ ΥΠΟΓΡΑΦΕΣ Την πραγματοποίηση μιας συναλλαγής. Οι ιδιόχειρες υπογραφές μπορούν να αμφισβητηθούν από τους υποτιθέμενους υπογράφοντες. Οι λεπτομέρειες ποικίλουν ανάλογα με το συγκεκριμένο νομικό πλαίσιο, σε γενικές γραμμές πάντως οι παρακάτω ισχυρισμοί είναι καθ όλα θεμιτοί σε μία δικαστική αίθουσα: Μία ιδιόχειρη υπογραφή δεν γίνεται αποδεκτή, καθώς είναι προϊόν πλαστογραφίας. Μία ιδιόχειρη υπογραφή που δεν είναι προϊόν πλαστογραφίας, δεν γίνεται αποδεκτή καθώς: Ο υπογράφων εξαπατήθηκε. Ασκήθηκε ψυχολογική και άλλου είδους πίεση, στον υπογράφονται προκειμένου να υπογράψει. Είναι προφανές, ότι οι υπογραφές με την παραδοσιακή τους μορφή και υλοποίηση δεν μπορούν να εφαρμοστούν στις ηλεκτρονικές συναλλαγές. Κατά συνέπεια απαιτείται ένας νέος τύπος υπογραφής, μία ψηφιακή υπογραφή δηλαδή, η οποία θα μπορεί να προσαρτηθεί σε και να συνδεθεί με ηλεκτρονικά δεδομένα με τον ίδιο τρόπο, που μία ιδιόχειρη υπογραφή αφορά χειρόγραφα κείμενα. Το πολύ ενδιαφέρον με την ψηφιακή υπογραφή είναι ότι δεν αντικαθιστά απλά την ιδιόχειρη, αλλά τη βελτιώνει. Επιπλέον καθιστά δυνατή τη δημιουργία καινούριων ειδών υπογραφής. Μία σύντομη σύγκριση της χειρόγραφης με την ψηφιακή υπογραφή κάνει εμφανείς τις παρακάτω διαφορές: Η χειρόγραφη επισυνάπτεται φυσικά σε ένα μήνυμα έτσι που κάθε γνήσιο αντίγραφό του την περιέχει, ενώ η ψηφιακή είναι δυνατό να αφαιρεθεί από το αρχικό μήνυμα. Για να αντιμετωπιστεί το πρόβλημα αυτό είναι απαραίτητο ο αλγόριθμος υπογραφής να συνδέει με κάποιο τρόπο το μήνυμα με την υπογραφή. Ένας τρόπος για να γίνει αυτό είναι να κρυπτογραφήσουμε πρώτα το υπογεγραμμένο μήνυμα και έπειτα να το στείλουμε σ εκείνον που θέλουμε. 1 1 Εδώ θέλει προσοχή αφού πρέπει η διαδικασία να γίνει με τη σειρά Υπογραφή κρυπτογράφηση διότι σε αντίθετη περίπτωση, αν ο A καταφέρει να κλέψει το υπογεγραμμένο μήνυμα του αποστολέα προς τον παραλήπτη, μπορεί να αφαιρέσει την υπογραφή και να προσθέσει τη δική του. Έτσι ο A θα μπορεί να υποδύεται τον αποστολέα στις υπόλοιπες επικοινωνίες του με τον παραλήπτη
7.2. ΓΕΝΙΚΟΣ ΟΡΙΣΜΟΣ 225 Από την άλλη μεριά η χρήση μίας ασφαλούς ψηφιακής υπογραφής είναι πολύ βολική, αφού η επαλήθευσή της (verification), γίνεται μ έναν δημόσιο (public) αλγόριθμο επαλήθευσης, σε αντίθεση με τη περίπτωση της χειρόγραφης που μόνο ο γραφολόγος μπορεί να την επιβεβαιώσει με ανάλογη ασφάλεια. Στην επόμενη ενότητα θα ορίσουμε πιο αυστηρά το σχήμα ψηφιακής υπογραφής και θα δώσουμε κάποια βασικά χαρακτηριστικά του. 7.2 Γενικός ορισμός Ξεκινάμε με κάποιους βασικούς ορισμούς και συμβολισμούς που θα μας ακολουθήσουν σ όλο το υπόλοιπο κεφάλαιο Ορισμός 7.1. Ένα Σχήμα Ψηφιακής Υπογραφής είναι μια εξάδα (,,, gen, sig k, ver k ) όπου: 1. : Ο χώρος όλων των πιθανών μηνυμάτων 2. : Ο χώρος όλων των πιθανών υπογραφών 3. : Ο χώρος όλων των πιθανών κλειδιών που μπορεί να χρησιμοποιηθούν για την υπογραφή 4. sig K (m) : Ένας μετασχηματισμός από το στο που χρησιμοποιείται για να δημιουργήσουμε την ψηφιακή υπογραφή. Είναι γνωστός μόνο στον υπογράφοντα και ονομάζεται και συνάρτηση υπογραφής (Signing Function). 5. ver K (m, s) : Ένας μετασχηματισμός από το στο σύνολο {1, 0} που χρησιμοποιείται για να επαληθεύσει ότι η υπογραφή s έχει πράγματι προκύψει από την εφαρμογή του sig K στο m. Ήτοι: ver K (m, s) = { 1, sig K (m) = s 0, sig K (m) s Η ver K ονομάζεται και συνάρτηση επαλήθευσης (Verification Function).
226 ΚΕΦΑΛΑΙΟ 7. ΨΗΦΙΑΚΕΣ ΥΠΟΓΡΑΦΕΣ Ασφάλεια Η πιο σημαντική ιδιότητα κάθε σχήματος ψηφιακών υπογραφών είναι η μη δυνατότητα πλαστογράφησης (unforgeability). Αυτό με απλά λόγια, σημαίνει να είναι υπολογιστικά απρόσιτο (intractable) για κάποιον άλλον εκτός από τον υπογράφοντα να υπολογίσει το s για κάποιο m, έτσι που ver K (m, s) = 1 (τουλάχιστον για όσο χρόνο η υπογραφή θα χρειάζεται να είναι έγκυρη). 2 Τυπικά η μη δυνατότητα πλαστογράφησης ορίζεται ως εξής: Ορισμός 7.2. Έστω ένας PPT αντίπαλος A ο οποίος έχει πρόσβαση σε ένα μαντείο υπογραφής sig K (). Αν μετά από l αλληλεπιδράσεις με αυτό ο A έχει αμελητέο πλεονέκτημα στο να δημιουργήσει l + 1 έγκυρα ζεύγη μηνυμάτων και υπογραφών τότε λέμε ότι το σχήμα υπογραφής είναι ασφαλές ενάντια στην επίθεση επιλεγμένων μηνυμάτων ( chosen message attacks). Αν απαιτούμε τα παραπάνω μηνύματα να είναι διαφορετικά μεταξύ τους τότε μιλάμε για ισχυρή δυνατότητα μη πλαστογράφησης (strong unforgeability). Κάθε Σχήμα ψηφιακής υπογραφής πρέπει να έχει επιπλέον τις παρακάτω βασικές ιδιότητες: 1. να ισχύει: ver K (m, s) = 1 sig K (m) = s, m, s 2. να είναι υπολογιστικά εύκολο για κάποιον να παράξει την υπογραφή του, αλλά και για οποιονδήποτε να επαληθεύσει τη γνησιότητά της. 3. ακριβώς επειδή η Ψηφιακή Υπογραφή δεν αποτελεί τμήμα του κειμένου στο οποίο επισυνάπτεται, συχνά είναι σκόπιμο αυτό να περιέχει πληροφορίες όπως ημερομηνία και ώρα ώστε να αποφεύγεται η επαναχρησιμοποίησή του. (Σκεφτείτε τι θα συνέβαινε αν ο A έδινε στον B μία ηλεκτρονική επιταγή ψηφιακά υπογεγραμμένη που να μην περιείχε ημερομηνία και ώρα...) Κλείνοντας την ενότητα αυτή, είναι σκόπιμο να διακρίνουμε το σύνολο των ψηφιακών υπογραφών σε δύο μεγάλες κατηγορίες 1. Σχήματα ψηφιακής υπογραφής με παράρτημα (Digital Signatures Schemes with appendix). Εδώ ανήκουν τα σχήματα στα οποία το αρχικό μήνυμα είναι απαραίτητο για την πιστοποίηση γνησιότητας της αντίστοιχης υπογραφής, όπως είναι το Digital Signature Standard (DSS) (7.5) και το ElGamal (7.4)). 2. Σχήματα Ψηφιακής υπογραφής με ικανότητα ανάκτησης του μηνύματος (Digital Signatures Schemes with message recovery, στα οποία το αρχικό μήνυμα μπορεί να παραχθεί από την ίδια την υπογραφή, όπως το RSA (7.3). 2 Κανείς ακόμα δεν έχει αποδείξει τυπικά (μαθηματικά) ότι ένα τέτοιο σχήμα ψηφιακής υπογραφής υπάρχει. Εντούτοις υπάρχουν κάποιοι πολύ καλοί υποψήφιοι, που προέρχονται από μετατροπές σε Κρυπτοσυστήματα Δημοσίου Κλειδιού, σε κάποιους απ τους οποίους θα αναφερθούμε στη συνέχεια.
7.3. ΣΧΗΜΑ ΥΠΟΓΡΑΦΗΣ RSA 227 7.3 Σχήμα υπογραφής RSA Ένα από τα πιο γνωστά σχήματα υπογραφής, είναι το RSA. Το σχήμα αυτό οφείλει την ευρεία χρήση του, όχι τόσο στην αποδοτικότητά του, όσο στο γεγονός ότι δεν είναι παρά μία εφαρμογή του κρυπτοσυστήματος RSA με αντιστροφή του ρόλου των κλειδιών (δημόσιο - ιδιωτικό). Πιο συγκεκριμένα, ας συμβολίσουμε με K (m) τη συνάρτηση κρυπτογράφησης του RSA για ένα απλό κείμενο m και ένα κλειδί K, και με K (c) την αντίστοιχη συνάρτηση αποκρυπτογράφησης για το κρυπτοκείμενο c. Προφανώς (από τον ορισμό του κρυπτοσυστήματος) ισχύει: K ( K (m)) = m. Εκείνο που δεν είναι προφανές, αλλά μπορεί εύκολα να αποδειχθεί είναι ότι αν ο χώρος των κρυπτοκειμένων είναι ο ίδιος με το χώρο των απλών κειμένων τότε ισχύει και K ( K (m)) = m (βλ. Ασκ 1). Η τελευταία παρατήρηση μας οδηγεί να ορίσουμε ένα σχήμα υπογραφής όπως φαίνεται παρακάτω (σχήμα 7.1). Σημαντικό είναι εδώ να τονιστεί ότι το σχήμα ψηφιακής υπογραφής που περιγράφεται στο σχήμα 7.1 δεν εγγυάται ότι είναι δύσκολο να πλαστογραφηθεί η οποιαδήποτε υπογραφή. Αντίθετα, είναι πολύ εύκολο για κάποιον που ξέρει το δημόσιο κλειδί ενός άλλου χρήστη A να πλαστογραφήσει την υπογραφή του σε ένα τυχαίο μήνυμα m με τον ακόλουθο τρόπο (no message attack): Επιλέγει μια τυχαία υπογραφή s. Υπολογίζει το (s) = m, και έτσι έχουμε μια καλή (αλλά πλαστογραφημένη) υπογραφή s για το μήνυμα m καθώς (m) = s. Το m φυσικά είναι μια τυχαία ακολουθία, και δεν μπορεί να είναι ένα μήνυμα σε μορφή κειμένου, παρόλα αυτά, εξακολουθεί να είναι ένα πρόβλημα, μιας και πάρα πολλές φορές τα μηνύματα m δεν είναι απαραιτήτως κείμενα που βγάζουν νόημα (για παράδειγμα, το m μπορεί να είναι ένα κλειδί για ένα συμμετρικό κρυπτοσύστημα). H επίθεση αυτή ονομάζεται επίθεση χωρίς μήνυμα - no message attack. Επιπλέον, επειδή το RSA είναι εύπλαστο (malleable), αν s 1, s 2 είναι δύο έγκυρες υπογραφές του ίδιου χρήστη, μπορεί εύκολα να εξαχθεί η υπογραφή s = s 1 s 2 mod n η οποία αντιστοιχεί στο μήνυμα m = m 1 m 2 mod n όπως είναι εύκολο να δει κανείς. H επίθεση αυτή ονομάζεται επίθεση επιλεγμένου μηνύματος - chosen message attack. Για τη λύση των παραπάνω προβλημάτων έχουν υπάρξει πολλές προτάσεις. Μία αφορά τη χρήση της Συνάρτησης Πλεονάζουσας Πληροφορίας. Ορισμός 7.3. Η Συνάρτηση Πλεονάζουσας Πληροφορίας (redundancy function) είναι μία δημόσια γνωστή αντιστρέψιμη προβολή από το χώρο των απλών κει-
228 ΚΕΦΑΛΑΙΟ 7. ΨΗΦΙΑΚΕΣ ΥΠΟΓΡΑΦΕΣ Υποθέτουμε ότι ο A θέλει να στείλει στον B το μήνυμα m υπογεγραμμένο ψηφιακά με το RSA 1. Δημιουργία κλειδιών Η διαδικασία παραγωγής κλειδιού είναι ίδια με εκείνη του RSA οπότε ο αναγνώστης παραπέμπεται στο αντίστοιχο κεφάλαιο 6.4.1. Για λόγους πληρότητας απλά υπενθυμίζεται ότι το κλειδί Κ είναι μία πεντάδα K = ((n, e), (p, q, d)) : n = pq, p, q : πρώτοι, ed 1 (mod ϕ(n)). Οι τιμές n, e είναι το δημόσιο, ενώ οι p, q, d το ιδιωτικό κλειδί 2. Δημιουργία υπογραφής Ο A υπολογίζει το s = (sig K (m) =) K (m) = m d (mod n). Το s είναι η ψηφιακή υπογραφή του το οποίο και στέλνει στον B 3. Επαλήθευση υπογραφής Ο B χρησιμοποιεί το δημόσιο κλειδί του A για να επαληθεύσει την υπογραφή s ανακτώντας παράλληλα το αρχικό μήνυμα: m 1 = K (s) = s e (mod n), 4. Ισχύει ότι ver K (m 1, s) = 1 καθώς s e = m de = m δηλαδή το m 1 είναι το αρχικό μήνυμα ήτοι m. Σχήμα 7.1: Το Σχήμα υπογραφής RSA μένων σε έναν υπόχωρό του με συγκεκριμένες ιδιότητες. Ένα παράδειγμα τέτοιας προβολής είναι η μετατροπή ενός δυαδικού κειμένου σε τέτοια μορφή ώστε ανάμεσα σε κάθε 8 bit να υπάρχει η λέξη 10101. Εφαρμόζοντας ο A στο μήνυμά του μια τέτοια συνάρτηση, καθιστά σχεδόν αδύνατη την πλαστογράφηση της υπογραφής του (εκτός φυσικά αν μπορέσει ο πλαστογράφος να λύσει το πρόβλημα της παραγοντοποίησης). Πράγματι είναι πρακτικά απίθανο μία τυχαία επιλεγμένη συμβολοακολουθία από το χώρο των υπογραφών να δώσει ένα μήνυμα που να έχει τις ιδιότητες που προσδίδει σε τυχαίο μήνυμα η Συνάρτησης Πλεονάζουσας Πληροφορίας του «αυθεντικού» αποστολέα. Μία άλλη πρόταση για ενίσχυση της ασφάλειας του σχήματος υπογραφής RSA είναι η χρήση μίας συνάρτησης σύνοψης H σαν αυτές που ua μελετήσουμε στην
7.4. ΣΧΗΜΑ ΥΠΟΓΡΑΦΗΣ ELGAMAL 229 ενότητα 8.4.3. 7.4 Σχήμα υπογραφής ElGamal Στην ενότητα αυτή θα δούμε τον ουσιαστικό ρόλο του κρυπτοσυστήματος ElGamal 6.5.2 στο χώρο των ψηφιακών υπογραφών (σχήμα 7.2) H ορθότητα του συστήματος προκύπτει από τις παρακάτω προτάσεις: Λήμμα 7.4. Αν p πρώτος και g πρωταρχικό στοιχείο (γεννήτορας) του Z p, τότε για κάθε x, y Z Η απόδειξη είναι η άσκηση 2. α x α y (mod p) x y (mod p 1) Πρόταση 7.5. Η συνθήκη επαλήθευσης της υπογραφής επιστρέφει «Αληθής» αν τα (γ, δ) έχουν προκύψει σαν υπογραφή του A στο μήνυμα m, με το σχήμα υπογραφής ElGamal. Απόδειξη. Πράγματι είναι προφανές ότι από τις σχέσεις δημιουργίας υπογραφής έχουμε: y γ γ δ g xγ g kδ (mod p) (7.3) Αρκεί λοιπόν να δούμε ότι xγ + kδ m (mod p 1) αφού τότε g xγ g kδ = g xγ+kδ g m (mod p) Αυτό προκύπτει άμεσα από το Λήμμα 7.4 Παρατήρηση 16. Από το σχήμα 7.2 φαίνεται ότι το σχήμα υπογραφής ElGamal είναι πιθανοτικό, καθώς υπάρχουν πολλές έγκυρες υπογραφές για ένα μήνυμα m(αφού η sig K εξαρτάται και από το τυχαίο k). Εντούτοις η συνάρτηση επαλήθευσης δέχεται οποιαδήποτε υπογραφή έχει προκύψει από αυτό το σχήμα σαν έγκυρη. Λόγω της ευρείας χρήσης του σχήματος υπογραφής ElGamal είναι σκόπιμο σ αυτό το σημείο να σταθούμε λίγο σε θέματα που αφορούν την ασφάλειά του. Αρχικά παρατηρούμε ότι, σε αντίθεση με το RSA δεν είναι εύκολο να πλαστογραφήσει κανείς την υπογραφή του A σ ένα επιλεγμένο ή τυχαίο μήνυμα m. Με πρώτη ματιά βλέπουμε τρία πιθανά σενάρια στα οποία ο A θα μπορούσε να πλαστογραφήσει την υπογραφή του A χωρίς να γνωρίζει το ιδιωτικό του κλειδί.
230 ΚΕΦΑΛΑΙΟ 7. ΨΗΦΙΑΚΕΣ ΥΠΟΓΡΑΦΕΣ Δημιουργία κλειδιών 1. Επιλέγουμε έναν πρώτο p ώστε το DLOG να είναι υπολογιστικά απρόσιτο στο Z p και έναν τυχαίο g Z p 2. Επιλέγουμε έναν τυχαίο x, 0 x p 2 και υπολογίζουμε το y = g x (mod p) 3. Το δημόσιο κλειδί είναι η τριάδα (p, g, y) ενώ το ιδιωτικό κλειδί είναι το x. Δημιουργία υπογραφής 1. Ο A θέλει να υπογράψει ένα μήνυμα m και επιλέγει έναν τυχαίο ακέραιο k Z p 1. 2. O A υπολογίζει τα γ = g k mod p (7.1) δ = (m xγ)k 1 mod (p 1) (7.2) 3. H ψηφιακή υπογραφή του A για το μήνυμα m για το (τυχαία επιλεγμένο) k είναι η sig(m, k) = (γ, δ). 3 4. o A στέλνει στον B την τριάδα (m, γ, δ), ήτοι το αρχικό του κείμενο με την ψηφιακή του υπογραφή. 4 Επαλήθευση υπογραφής Ο B επαληθεύει: ver(m, γ, δ) = { 1, y γ γ δ g m (mod p) 0, y γ γ δ g m (mod p) Σχήμα 7.2: Το Σχήμα υπογραφής ElGamal
7.4. ΣΧΗΜΑ ΥΠΟΓΡΑΦΗΣ ELGAMAL 231 1. Ο A επιλέγει μία τιμή για το γ και το m και προσπαθεί να βρει μία τιμή για το δ που να ικανοποιεί τη σχέση??. Στην περίπτωση αυτή, θα πρέπει να λύσει το πρόβλημα διακριτού λογαρίθμου: δ = log γ g m y γ 2. O A επιλέγει τα δ, m και προσπαθεί να υπολογίσει αντίστοιχο γ. Στην περίπτωση αυτή ο A θα πρέπει τότε να βρει το γ στην παρακάτω ισοτιμία: y γ γ δ g m (mod p) (7.4) Η επίλυση της 2 είναι ένα πρόβλημα για το οποίο δεν είναι γνωστή καμία εφικτή λύση και δε φαίνεται να μπορεί να αναχθεί σε κάποιο από τα γνωστά προβλήματα της Κρυπτολογίας (όπως είναι το DLOG). Παραμένει εντούτοις ανοικτό το ενδεχόμενο να υπάρχει τρόπος να επιλεγεί το m μόνο και να υπολογιστούν ταυτόχρονα γ και δ που να ικανοποιούν τη σχέση 2. 3. Aν τέλος ο A επιλέξει τα γ και δ και προσπαθήσει να υπολογίσει το m, τότε βρίσκεται και πάλι αντιμέτωπος με ένα στιγμιότυπο του DLOG. Παρατηρούμε δηλαδή ότι ο A δεν μπορεί χρησιμοποιώντας αυτήν την προσέγγιση να πλαστογραφήσει την υπογραφή του A σε τυχαίο μήνυμα m. Υπάρχει παρ όλα αυτά τρόπος με τον οποίο ο A μπορεί να παράγει πλαστή υπογραφή για τυχαίο μήνυμα m, επιλέγοντας τα δ, γ και m ταυτόχρονα: Αρχικά επιλέγει ακεραίους i και j, τέτοιους που 0 i, j p 2 και gcd(j, p 1) = 1. Στη συνέχεια υπολογίζει τα: γ = g i y j mod p δ = γj 1 mod (p 1) m = γij 1 mod (p 1) Το j 1 υπολογίζεται modulo (p 1), γι αυτό και αρχικά απαιτούμε (j, p 1) = 1. Ισχυρισμός: το (γ, δ) είναι έγκυρη υπογραφή για το ElGamal. Απόδειξη του Ισχυρισμού: Πράγματι παρατηρούμε ότι ισχύουν οι ισοδυναμίες: y γ γ δ y γ (g i y j ) γj 1 (mod p) y γ g ij 1γ y γ (mod p) g ij 1γ (mod p) g m (mod p) Παρόλο πάντως που η μέθοδος αυτή δουλεύει για τυχαίο συνδυασμό των m, δ, γ δε φαίνεται ικανή να συμβάλλει στην παραγωγή υπογραφής για επιλεγμένο από τον A μήνυμα.
232 ΚΕΦΑΛΑΙΟ 7. ΨΗΦΙΑΚΕΣ ΥΠΟΓΡΑΦΕΣ Τέλος αναφέρουμε δύο περιπτώσεις εσφαλμένης χρήσης του σχήματος υπογραφής ElGamal, στις οποίες μπορεί να μειωθεί η ασφάλειά του. Το τυχαία επιλεγμένο k πρέπει να κρατείται κρυφό αφού η γνώση του δίνει στον A τη δυνατότητα να υπολογίσει εύκολα το ιδιωτικό κλειδί x (Άσκηση: 3) Επιπλέον η επανάληψη της χρήσης του ίδιου k καθιστά για τον A εφικτό τον υπολογισμό του και επομένως και τον υπολογισμό του x. (Άσκηση: 4) 7.5 Πρότυπο Ψηφιακής Υπογραφής Τον Αύγουστο του 1991 το Αμερικάνικο Εθνικό Ινστιτούτο Προτύπων και Τεχνολογίας (NIST) πρότεινε ένα Πρότυπο Ψηφιακής υπογραφής (Digital Signature Standard - DSS) βασισμένο στο Σύστημα υπογραφής ElGamal, το οποίο υιοθετήθηκε το Δεκέμβριο του 1994. Το DSS αποτελεί μία παραλλαγή του ElGamal που προσπαθεί να μειώσει το μέγεθος της ψηφιακής υπογραφής που παράγεται (ας μην ξεχνάμε ότι μία άμεση εφαρμογή των ψηφιακών υπογραφών συναντάται στις «έξυπνες κάρτες» (smart cards), όπου το μέγεθος της μνήμης είναι περιορισμένο).στα σχήματα 7.3 και 7.4 φαίνεται η διαδικασία δημιουργίας κλειδιού και η ανταλλαγή μηνύματος υπογεγραμμένου με το DSS. 1. o A επιλέγει έναν πρώτο q μεγέθους 160-bit και στη συνέχεια βρίσκει πρώτο p μεγέθους n-bit όπου το n = 64r,r = 8, 9, 10,..., 16, τέτοιον που q (p 1) 2. υπολογίζει ένα g που να είναι q-στη ρίζα της μονάδας modulo p, δηλαδή g q 1 (mod p). Ένας τρόπος γι αυτό δίνεται στο λήμμα 7.6 3. επιλέγει έναν ακέραιο x που θα είναι το ιδιωτικό του κλειδί 4. τέλος υπολογίζει το y g x (mod p). Το δημόσιο κλειδί του A είναι το (p, q, g, y). Σχήμα 7.3: Κατασκευή κλειδιού για το DSS Λήμμα 7.6. Αν p πρώτος και q : q (p 1) και αν g 0 : πρωταρχικό στοιχείο του Z p, τότε το g = g (p 1)/q 0
7.5. ΠΡΟΤΥΠΟ ΨΗΦΙΑΚΗΣ ΥΠΟΓΡΑΦΗΣ 233 Υποθέτουμε ότι ο A θέλει να στείλει στον B το μήνυμα m υπογεγραμμένο ψηφιακά με το DSS χρησιμοποιώντας το κλειδί K = (p, q, g, x, y) 1. Δημιουργία υπογραφής (Î±Í ) Ο A επιλέγει έναν τυχαίο ακέραιο k, 1 k (q 1). (Î²Í ) O A υπολογίζει τα γ = (g k mod p) mod q και δ = (m + xγ)k 1 mod q. (Î³Í ) H ψηφιακή υπογραφή του A για το μήνυμα m για το (τυχαία επιλεγμένο) k είναι η sig K (m, k) = (γ, δ). (Î Í ) o A στέλνει στον B την τριάδα (m, γ, δ), δηλαδή το αρχικό του κείμενο με την ψηφιακή του υπογραφή. 2. Επαλήθευση υπογραφής (Î±Í ) Ο B υπολογίζει τις τιμές: e 1 = mδ 1 mod q και e 2 = γδ 1 mod q. (Î²Í ) Στη συνέχει ο B υπολογίζει την τιμή της συνάρτησης: ver K (m, γ, δ) = { 1, (g e 1 y e 2 mod p) mod q = γ 0, (g e 1 y e 2 mod p) mod q γ και πιστοποιεί ότι το μήνυμα m προέρχεται πράγματι από τον A αν και μόνον αν ver K (m, γ, δ) = 1 Σχήμα 7.4: Το Σχήμα υπογραφής DSS είναι q-στη ρίζα της μονάδας modulo p. Απόδειξη: g q (g (p 1/q) 0 ) q g p 1 0 1 (mod p) αφού το g 0 είναι πρωταρχικό στοιχείο του Z p.
234 ΚΕΦΑΛΑΙΟ 7. ΨΗΦΙΑΚΕΣ ΥΠΟΓΡΑΦΕΣ Παράδειγμα 11. Έστω ότι ο A θέλει να στείλει στον B το μήνυμα m = 3152 (σε κάποια κωδικοποίηση), υπογράφοντάς το με το σχήμα υπογραφής DSS. Κατασκευή Κλειδιού Ο A επιλέγει τον q = 107 και p = 86 107 + 1 = 9203. Το g 0 = 2 είναι πρωταρχικό στοιχείο του Z 9203, άρα σύμφωνα με το λήμμα 7.6 μπορώ να πάρω: g = g (p 1)/q 0 mod p = 2 (9202)/107 mod 9203 = 2 86 mod 9203 = 645 Σαν ιδιωτικό κλειδί ο A επιλέγει το x = 111 και υπολογίζει το y = g x mod p = 645 111 mod 9203 = 1336. Το δημόσιο κλειδί του A είναι το: (p, q, g, y) = (9203, 107, 645, 1336). Παραγωγή υπογραφής Ο A επιλέγει τυχαία τον k = 456, υπολογίζει τα γ = (g k mod p) mod q = (645 456 mod 9203) mod 107 = 96 k 1 mod (q) = 456 1 mod 107 = 65 δ = (m + xγ)k 1 mod q = (3152 + 111 96) 65 mod 107 = 4 Στη συνέχεια στέλνει στον B την υπογραφή του μαζί με το μήνυμα m δηλαδή το (m, γ, δ) = (3152, 96, 4). Επαλήθευση υπογραφής Ο B λαμβάνει το μήνυμα από τον A και υπολογίζει τα δ 1 mod q = 4 1 mod 107 = 27, e 1 = m δ 1 mod q = 3152 27 (mod 107) = 39, e 2 = γ δ 1 mod q = 96 27 (mod 107) = 24 και (g e 1 β e 2 mod p) mod q = (645 39 1336 24 mod 9203) mod 107 = 96(= γ)
7.5. ΠΡΟΤΥΠΟ ΨΗΦΙΑΚΗΣ ΥΠΟΓΡΑΦΗΣ 235 οπότε καταλήγει στο συμπέρασμα ότι η υπογραφή είναι πράγματι του A. Παρατηρήσεις στο DSS 1. Στη σχέση 1Î²Í έχουμε μια διαφορά με το ElGamal (το γίνεται +) που αποτελεί και το λόγο για την αλλαγή της συνάρτησης επικύρωσης γνησιότητας. 2. Το γεγονός ότι όλοι οι υπολογισμοί γίνονται modulo q, κάνει το μέγεθος της υπογραφής πολύ μικρότερο από την αντίστοιχη για το ElGamal. Για παράδειγμα ας θεωρήσουμε ότι ο p είναι ένας πρώτος μεγέθους 768 bit 5. Τότε το ElGamal θα παράγει μία υπογραφή που το μέγεθός της θα είναι 1536 bit (αφού τα γ και δ υπολογίζονται modulo768). To DSS από την άλλη θα παράγει μία υπογραφή μεγέθους 320 bit. 3. Παρατηρώντας το DSS βλέπουμε ότι όλοι οι μετασχηματισμοί γίνονται μέσα σε μία υποομάδα του Z p μεγέθους 2 160. H ασφάλεια του, στηρίζεται στην εικασία ότι η επίλυση του DLOG είναι «πολύ δύσκολη» σε μια τέτοια υποομάδα του Z p. 4. Σημαντικό είναι ακόμη ο A να αποφύγει το ενδεχόμενο δ 0 (mod q). Αυτό γιατί στην περίπτωση αυτή δεν υπάρχει το δ 1 mod q. Αν κατά τη διαδικασία της παραγωγής της υπογραφής, το δ υπολογιστεί ίσο με 0 mod q, τότε ο A θα πρέπει να επαναλάβει τη διαδικασία επιλέγοντας νέο τυχαίο k. 5. Τέλος αναφέρουμε ότι η υπογραφή ενός μηνύματος με το DSS είναι εν γένει γρηγορότερη διαδικασία από την επαλήθευσή της. Το γεγονός αυτό είχε (μεταξύ άλλων ) 6 προκαλέσει πολλές αντιδράσεις στην υιοθέτηση του προτύπου από τον NIST. 7 Η απάντηση ήταν ότι δεν έχει σημασία ποια διαδικασία είναι γρηγορότερη, αρκεί να μπορούν και οι δύο να γίνουν σε «ικανοποιητικά» μικρό χρόνο 5 Για να είναι υπολογιστικά απρόσιτο. 6 Γενικά υπάρχει μία δυσπιστία απέναντι στα κρυπτογραφικά πρότυπα που υιοθετούνται από τον NIST, που αφορά το κατά πόσο αυτά είναι ασφαλή όταν βρεθούν αντιμέτωπα με μία επίθεση από την NSA. 7 Εκείνοι που αντιδρούσαν υποστήριζαν ότι έπρεπε να συμβαίνει το αντίστροφο, αφού συνήθως η υπογραφή ενός εγγράφου χρειάζεται να παραχθεί μία φορά, ενώ η επικύρωση του γνησίου της μπορεί να χρειαστεί να γίνει σε περισσότερες από μία περιπτώσεις.
236 ΚΕΦΑΛΑΙΟ 7. ΨΗΦΙΑΚΕΣ ΥΠΟΓΡΑΦΕΣ 7.6 Σχήματα υπογραφών με επιπρόσθετη λειτουργικότητα Στην ενότητα αυτή θα συζητήσουμε κάποια σχήματα υπογραφών, που παρουσιάζουν συγκεκριμένες ιδιότητες, ώστε να εξυπηρετούν κάποιες πρόσθετες ανάγκες των ατόμων που τις χρησιμοποιούν. 7.6.1 Υπογραφές μιας χρήσης (One-time signatures) Με τον όρο Υπογραφές μιας χρήσης εννοούμε σχήματα υπογραφών στα οποία κάθε υπογραφή (κάθε κλειδί) μπορεί να χρησιμοποιηθεί για να υπογράψει ένα μόνο μήνυμα, αλλιώς η υπογραφή μπορεί να πλαστογραφηθεί. Η πλειοψηφία αυτών των σχημάτων έχουν το πλεονέκτημα ότι τόσο η παραγωγή όσο και η επικύρωση της γνησιότητας της υπογραφής υλοποιούνται με πολύ αποδοτικούς αλγορίθμους, και επομένως προτιμούνται σε συσκευές με μικρή υπολογιστική ισχύ (π.χ. chipcards). Χαρακτηριστικό όλων των σχημάτων υπογραφών μιας χρήσης είναι η χρήση κάποιας συνάρτησης μονής κατεύθυνσης (one-way function). 8. Παρακάτω θα περιγράψουμε ένα τέτοιο σχήμα το Σχήμα υπογραφής Lamport, το οποίο φέρει αρκετές εννοιολογικές ομοιότητες με τον κώδικα Vernam 1.2.2. Έστω ότι ο A θέλει να κατασκευάσει ένα κλειδί για να υπογράψει ένα μήνυμα m που είναι μία δυαδική ακολουθία μήκους k-bit, όπου k N. Έστω ακόμη ότι = Y και f : Y Z είναι μία συνάρτηση μονής κατεύθυνσης δημοσίως γνωστή. 1. o A επιλέγει 2k τιμές από το σύνολο Y, τα y i,j, 1 i k, j = 0, 1. Κατασκευάζει έτσι το ιδιωτικό του κλειδί που είναι ο k 2 πίνακας (y i,j ). 2. υπολογίζει τα z i,j Z τέτοιοι ώστε z i,j = f(y i,j ), 1 i k, j = 0, 1. Κατασκευάζει έτσι το δημόσιο κλειδί του που είναι ο k 2 πίνακας (z i,j ). Σχήμα 7.5: Παραγωγή κλειδιού για το Lamport Παράδειγμα 12. Έστω ότι η f(x) = 3 x mod 7879. O A επιλέγει τυχαίους αριθμούς 8 Μία τέτοια συνάρτηση είναι για παράδειγμα η f(x) = g x mod p για p πρώτο και g πρωταρχικό στοιχείου του Z p.
7.6. ΣΧΗΜΑΤΑ ΥΠΟΓΡΑΦΩΝ ΜΕ ΕΠΙΠΡΟΣΘΕΤΗ ΛΕΙΤΟΥΡΓΙΚΟΤΗΤΑ 237 Υποθέτουμε ότι ο A θέλει να στείλει στον B το μήνυμα m = (x 1, x 2,..., x k ), όπου x i {0, 1}, i = 1, 2,..., k, υπογεγραμμένο ψηφιακά με το Lamport χρησιμοποιώντας το κλειδί K που δημιουργήθηκε με τη διαδικασία του σχήματος 7.5 1. Δημιουργία υπογραφής H ψηφιακή υπογραφή του A για το μήνυμα m με χρήση του κλειδιού K είναι η sig K (x 1, x 2,..., x k ) = (y 1,x1, y 2,x2,..., y k,xk ) = s. O A στέλνει στον B το μήνυμα (m, s). 2. Επαλήθευση υπογραφής O B υπολογίζει την τιμή της συνάρτησης: { ver K (x 1, x 2,..., x k, c 1, c 2,..., c k ) = 1, f(c i ) = z i,xi, i = 1, 2,..., k, όπου s = (c 1, c 2,..., c k ) 0, f(c j ) z j,xj και πιστοποιεί ότι το μήνυμα m προέρχεται πράγματι από τον A αν και μόνον αν ver K (m, s) = 1 Σχήμα 7.6: Το Σχήμα υπογραφής Lamport και κατασκευάζει τον πίνακα: (y i,j ) = y 1,0 = 5831 y 1,1 = 735 y 2,0 = 803 y 2,1 = 2467 y 3,0 = 4285 y 3,1 = 6449 Στη συνέχεια υπολογίζει τις εικόνες των y i,j πάνω από την f και κατασκευάζει τον πίνακα: z 1,0 = 2009 z 1,1 = 3810 (z i,j ) = z 2,0 = 4672 z 2,1 = 4721, z 3,0 = 268 z 3,1 = 5731 τον οποίο και δημοσιεύει. Έστω τώρα ότι ο A θέλει να στείλει στον B το μήνυμα m = (1, 1, 0) υπογεγραμμένο. Η υπογραφή του θα είναι:
238 ΚΕΦΑΛΑΙΟ 7. ΨΗΦΙΑΚΕΣ ΥΠΟΓΡΑΦΕΣ sig K (1, 1, 0) = (y 1,1, y 2,1, y 3,0 ) = (735, 2467, 4285) Για να επαληθεύσει την υπογραφή ο B υπολογίζει τα f(735) = 3 735 mod 7879 = 3810(= z 1,1 ), f(2467) = 3 2467 mod 7879 = 4721(= z 2,1 ), f(4285) = 3 4285 mod 7879 = 268(= z 3,0 ) και καταλήγει στο συμπέρασμα ότι η υπογραφή είναι πράγματι γνήσια. Όσον αφορά την ασφάλεια του σχήματος Lamport, αυτή προφανώς οφείλεται στην αδυναμία του A να αντιστρέψει τη συνάρτηση f. Είναι εντούτοις πολύ σημαντικό ο ίδιος πίνακας (y i,j ) να μη χρησιμοποιηθεί για την υπογραφή περισσοτέρων του ενός μηνυμάτων. Σε αντίθετη περίπτωση ο A θα μπορεί να κατασκευάσει την υπογραφή του A και σε άλλα μηνύματα. Παράδειγμα 13. Ας υποθέσουμε ότι ο A χρησιμοποιεί τον ίδιο πίνακα (y i,j ), για να υπογράψει τα μηνύματα: οι υπογραφές θα είναι οι: m 1 = (0, 1, 1) και m 2 = (1, 0, 1). sig K (m 1 ) = (y 1,0, y 2,1, y 3,1 ) και sig K (m 2 ) = (y 1,1, y 2,0, y 3,1 ). αντίστοιχα. Τότε ο A μπορεί εύκολα να παράγει υπογραφές για τα μηνύματα: που θα είναι οι : m 3 = (1, 1, 1) και m 4 = (0, 0, 1), (y 1,1, y 2,1, y 3,1 ) και (y 1,0, y 2,0, y 3,1 ). 7.6.2 Τυφλές υπογραφές (Blind signatures) Τα σχήματα τυφλών υπογραφών εξυπηρετούν γενικά ανάγκες ηλεκτρονικής επικοινωνίας που η μία πλευρά επιθυμεί ανωνυμία απέναντι στην άλλη. Πρόκειται πρακτικά περισσότερο για ένα πρωτόκολλο επικοινωνίας μεταξύ τους με την παραπάνω ιδιότητα. Σε αυτό μία οντότητα θέλει να λάβει μία υπογραφή σε κάποιο
7.6. ΣΧΗΜΑΤΑ ΥΠΟΓΡΑΦΩΝ ΜΕ ΕΠΙΠΡΟΣΘΕΤΗ ΛΕΙΤΟΥΡΓΙΚΟΤΗΤΑ 239 μήνυμα, χωρίς όμως ο υπογράφων να λάβει γνώση του τι υπογράφει. Εφαρμογές τέτοιων πρωτοκόλλων συναντούμε στο ηλεκτρονικό χρήμα 11.3, στις ηλεκτρονικές ψηφοφορίες 11.1.4 και σε πολλές άλλες περιπτώσεις. Η ιδέα των απλών υπογραφών είναι αρκετά απλή και μπορεί να περιγραφεί με μία απλή αναλογία, ενός πελάτη που θέλει να αγοράσει κάποια αγαθά από έναν έμπορο μέσω τράπεζας, χωρίς όμως η τράπεζα να μπορεί να παρακολουθήσει τη συναλλαγή [2]. Ο καταναλωτής τοποθετεί ένα κενό φύλλο χαρτιού σε ένα φάκελο που περιέχει ένα κομμάτι καρμπόν. Αποστέλλει τον φάκελο στην τράπεζα ζητώντας από το λογαριασμό του, το χρηματικό ποσό που αξίζει το αγαθό. Η τράπεζα επαληθεύει ότι το συγκεκριμένο ποσό υπάρχει στο λογαριασμό και σε θετική περίπτωση υπογράφει το φάκελο. Λόγω του καρμπόν η συναλλαγή μεταφέρεται στο κενό χαρτί. Ο καταναλωτής επαληθεύει την υπογραφή της τράπεζας και ανακτά το περιεχόμενο του φακέλου με το οποίο πληρώνει τον έμπορο. Ο έμπορος λαμβάνει το υπογεγραμμένο φύλλο και το παρουσιάζει στην τράπεζα. Η τράπεζα επαληθεύει την υπογραφή και μεταφέρει στον έμπορο το συμφωνημένο ποσό. Η αναλογία οδηγεί στον παρακάτω τυπικό ορισμό για τα σχήματα τυφλής υπογραφής [4]: Ορισμός 7.7. Ένα σχήμα τυφλών υπογραφών είναι ένα σύνολο από 4 αλγόριθμους (Blind, Sign, V erif y, U nblind) ώστε: 1. Το μήνυμα m προς υπογραφή τυφλώνεται με χρήση του αλγόριθμου τύφλωσης και κάποια τυχαιότητας, δίνοντας b = Blind(m, r) 2. Στη συνέχεια εφαρμόζεται ο αλγόριθμος υπογραφής S b = Sign(b) με τρόπο ώστε η υπογραφή να μεταφερθεί στο m. H S b είναι η τυφλή υπογραφή. 3. Ο κάτοχος του μηνύματος εφαρμόζει την συνάρτηση αποτύφλωσης, αποκτώντας μια κανονική υπογραφή στο αρχικό μήνυμα S m = Unblind(S b ) 4. Οποιοσδήποτε μπορεί να την επαληθεύσει εκτελώντας την συνάρτηση V erify(s m ) Το πρώτο σχήμα τυφλής υπογραφής (7.7) παρουσιάστηκε από τον David Chaum στο [1] και βασίζεται στο RSA.
240 ΚΕΦΑΛΑΙΟ 7. ΨΗΦΙΑΚΕΣ ΥΠΟΓΡΑΦΕΣ Υποθέτουμε ότι ο A θέλει από τον B να υπογράψει τυφλά ένα μήνυμα m. Υποθέτουμε επιπλέον ότι το δημόσιο κλειδί του B για το RSA είναι το (n, e) και το αντίστοιχο ιδιωτικό του το (p, q, d) (βλέπε 7.3). 1. (Tύφλωση) O A επιλέγει έναν τυχαίο ακέραιο r τέτοιον ώστε 0 r n 1 και gcd(n, k) = 1 και υπολογίζει το b = Blind(m, r) = r e H(m) (mod n) 2. (Υπογραφή) Ο B υπολογίζει το S b = Sign(b) = r ed (mod ϕ(n)) H(M) d (mod n) = rh(m) d και το στέλνει στον A. 3. (Αποτύφλωση) S m = Unblind(S b ) = S b 1 r = H(m)d (mod n) 4. Οποιοσδήποτε μπορεί να επαληθεύσει την υπογραφή ως: V erify(s m ) = if S m e = H(m) then T rue else F alse Σχήμα 7.7: Το Σχήμα υπογραφής του Chaum
7.6. ΣΧΗΜΑΤΑ ΥΠΟΓΡΑΦΩΝ ΜΕ ΕΠΙΠΡΟΣΘΕΤΗ ΛΕΙΤΟΥΡΓΙΚΟΤΗΤΑ 241 7.6.3 Αδιαμφισβήτητες υπογραφές (Undeniable signatures) Βασικό χαρακτηριστικό των αδιαμφισβήτητων σχημάτων υπογραφής (Undeniable Signature Schemes) είναι ότι η επικύρωση γνησιότητας της υπογραφής του A δεν μπορεί να γίνει χωρίς τη συνεργασία του ίδιου. Έτσι ο A μπορεί να γνωρίζει για το έγγραφο που υπογράφει τις περιπτώσεις στις οποίες χρειάστηκε η επικύρωση της υπογραφής του. Μπορεί επομένως να αποφύγει την επαναχρησιμοποίηση του εγγράφου του από φορείς που δεν επιθυμεί. Ας δούμε όμως μερικά παραδείγματα χρήσης ενός τέτοιου σχήματος υπογραφής. Παράδειγμα 14. Υποθέτουμε ότι ο A είναι ένας πελάτης της τράπεζας B και θέλει να πάρει πρόσβαση σε μία υψηλής ασφάλειας περιοχή της τράπεζας (π.χ. το θησαυροφυλάκιο). Η τράπεζα (B) ζητάει από τον A να υπογράψει ένα κείμενο με ημερομηνία και ώρα για να του δώσει την απαιτούμενη πρόσβαση. Αν ο A υπογράψει χρησιμοποιώντας αδιαμφισβήτητη υπογραφή τότε ο B δε θα μπορεί να αποδείξει ότι η υπογραφή αυτή ανήκει στον A, παρά μόνο με τη συνεργασία του ίδιου του A Παράδειγμα 15. Υποθέτουμε τώρα ότι μία μεγάλη εταιρία λογισμικού A δημιουργεί ένα νέο πακέτο λογισμικού. Η A υπογράφει το πακέτο και το στέλνει στην εταιρία B. Η B τώρα αντιγράφει το πακέτο και το μεταπωλεί σε έναν πελάτη της C. O C δεν μπορεί να επαληθεύσει τη γνησιότητα του πακέτου χωρίς τη συνεργασία της A. Φυσικά ο B θα μπορούσε να επαναϋπογράψει το πακέτο και να το στείλει στον C σαν δικό του, αλλά τότε αφενός το πακέτο θα έχανε το αγοραστικό πλεονέκτημα της προέλευσης από τη γνωστή εταιρία A, αφετέρου θα ήταν εύκολο να αποδειχθεί η απάτη αυτή. Στα σχήματα 7.8 και 7.9 φαίνεται η δημιουργία κλειδιού και η διαδικασία υπογραφής επαλήθευσης για το αδιαμφισβήτητο σχήμα υπογραφής Chaum-van Antwerpen. Λήμμα 7.8. Αν p, q: πρώτοι τέτοιοι που p = 2q + 1 τότε το σύνολο G που δημιουργείται από τα τετραγωνικά υπόλοιπα modulo p των στοιχείων του Z p αποτελεί πολλαπλασιαστική υποομάδα του Z p τάξης q. Παρατήρηση 17. Από το λήμμα 7.6 μπορούμε επίσης να υπολογίσουμε μία τέτοια υποομάδα του Z p που θα αποτελείται απο τις μέχρι τάξης q δυνάμεις του g = g (p 1)/q 0, όπου g 0 πρωταρχικό στοιχείο του Z p. Πρόταση 7.9. Η συνθήκη επαλήθευσης επιστρέφει «Αληθής» αν τα (m, d) έχουν προκύψει με τη διαδικασία που περιγράφεται στο σχήμα 7.9. Απόδειξη: Πράγματι επειδή y g x (mod p)
242 ΚΕΦΑΛΑΙΟ 7. ΨΗΦΙΑΚΕΣ ΥΠΟΓΡΑΦΕΣ Έστω ότι ο A θέλει να κατασκευάσει ένα κλειδί για να υπογράψει ένα μήνυμα m με το αδιαμφισβήτητο σχήμα υπογραφής Chaum-van Antwerpen. Τα βήματα που ακολουθεί είναι: 1. Επιλέγει p, q: πρώτους τέτοιους που p = 2q + 1 2. Κατασκευάζει την τάξης q πολλαπλασιαστική υποομάδα του Z p G, και υπολογίζει ένα πρωταρχικό στοιχείο της g. 3. Επιλέγει x τέτοιον που 1 x p 1 και υπολογίζει το y g x (mod p). Το δημόσιο κλειδί του A είναι το (p, q, g, y) και το ιδιωτικό του το x. Σχήμα 7.8: Παραγωγή κλειδιού για το αδιαμφισβήτητο σχήμα υπογραφής Chaumvan Antwerpen έχουμε ότι όμοια και συνεπάγεται ότι όμως y x 1 g (mod p) (7.5) s m x (mod p) s x 1 m (mod p) (7.6) d c x 1 (mod p) s e 1x 1 y e 2x 1 (mod p). Από τις σχέσεις (7.6.3), (7.6.3), (7.6.3) έχουμε ότι d m e 1 g e 2 (mod p) Δίνουμε παρακάτω ένα θεώρημα χωρίς απόδειξη που αφορά την ασφάλεια του σχήματος υπογραφής Chaum-van Antwerpen. Θεώρημα 7.10. Αν s m x (mod p) τότε η πιθανότητα να δεχθεί ο B το s ως έγκυρη υπογραφή για το μήνυμα m, χρησιμοποιώντας τη διαδικασία του σχήματος 7.9 είναι 1/q
7.6. ΣΧΗΜΑΤΑ ΥΠΟΓΡΑΦΩΝ ΜΕ ΕΠΙΠΡΟΣΘΕΤΗ ΛΕΙΤΟΥΡΓΙΚΟΤΗΤΑ 243 Υποθέτουμε ότι ο A θέλει να στείλει στον B το μήνυμα m υπογεγραμμένο ψηφιακά με το αδιαμφισβήτητο σχήμα υπογραφής Chaum-van Antwerpen χρησιμοποιώντας το κλειδί K = (p, q, g, y, x) 1. Δημιουργία υπογραφής Ο A υπολογίζει το (sig K (m, k) =)s = m x mod p που είναι η ψηφιακή υπογραφή του A για το μήνυμα m. στέλνει στον B το (m, s) 2. Επαλήθευση υπογραφής Ο B επιλέγει τυχαίους e 1, e 2 Z q και υπολογίζει το c = s e 1 y e 2 mod p και το στέλνει στον A Ο A υπολογίζει το d = c x 1 mod q mod p και το στέλνει στον B Ο B υπολογίζει την τιμή της συνάρτησης: { 1, d m e 1 y e 2 (mod p) ver K (m, d) = 0, d m e 1 y e 2 και πιστοποιεί ότι το μήνυμα m προέρχεται πράγματι από τον A αν και μόνον αν ver K (m, d) =Αληθής Σχήμα 7.9: Το αδιαμφισβήτητο σχήμα υπογραφής Chaum-van Antwerpen Παρατήρηση 18. Αυτό σημαίνει ότι ο C μπορεί με πιθανότητα 1/q να κατασκευάσει μία πλαστή υπογραφή για το m που ο B θα τη δεχθεί ως έγκυρη. Μέχρι εδώ όμως δεν έχει φανεί πουθενά πώς δικαιολογείται ο τίτλος Αδιαμφισβήτητη Υπογραφή. Η ονομασία αυτή οφείλεται σε ένα Πρωτόκολλο Αποκήρυξης (Disavowal Protocol) που συνοδεύει αυτά τα σχήματα υπογραφών. Με χρήση αυτού του πρωτοκόλλου είναι πολύ δύσκολο για τον A να αρνηθεί ότι μία υπογραφή που έχει κατασκευάσει είναι πράγματι δική του. Ας δούμε όμως πρώτα πώς θα μπορούσε να γίνει αυτή η άρνηση από πλευράς του A
244 ΚΕΦΑΛΑΙΟ 7. ΨΗΦΙΑΚΕΣ ΥΠΟΓΡΑΦΕΣ Υποθέτουμε ότι ο A ισχυρίζεται ότι η υπογραφή s του μηνύματος m είναι πλαστή. Η διαδικασία αποτελείται από τα παρακάτω βήματα: 1. O B επιλέγει τυχαία e 1, e 2 Z q. Στη συνέχεια υπολογίζει το c = s e 1 y e 2 mod p και το στέλνει στον A 2. O A υπολογίζει το d = c x 1 mod q mod p και το στέλνει στον B 3. O B επαληθεύει ότι d m e 1 g e 2 (mod p). Στη συνέχεια επιλέγει τυχαία f 1, f 2 Z q και υπολογίζει το C = s f 1 β f 2 mod p το οποίο και στέλνει στον A 4. O A υπολογίζει το D = C x 1 mod q mod p και το στέλνει στον B 5. O B επαληθεύει ότι D m f 1 g f 2 (mod p) και συμπεραίνει ότι το s είναι προϊόν πλαστογραφίας αν και μόνο αν (dg e 2 ) f 1 (Dg f 2 ) e 1 (mod p) (7.7) Σχήμα 7.10: Πρωτόκολλο Αποκήρυξης Ο A μπορεί: 1. να αρνηθεί εξ αρχής να συμμετάσχει στη διαδικασία επαλήθευσης της υπογραφής. 2. να δώσει πλαστά δεδομένα κατά τη διαδικασία επαλήθευσης 3. να ισχυριστεί ότι η υπογραφή είναι πλαστή παρόλο που η συνάρτηση επαλήθευσης επιστρέφει 1 Στην περίπτωση (1) η κίνηση αυτή του A θα θεωρηθεί άμεσα ύποπτη οπότε η υπογραφή δε θα ληφθεί υπόψιν σε πιθανό δικαστήριο. Για να αντιμετωπιστούν οι περιπτώσεις (2) και (3) χρειάζεται ένα Πρωτόκολλο Αποκήρυξης όπως αυτό που περιγράφεται στο σχήμα 7.10 Παρατήρηση 19. Αποδεικνύεται ότι αν s m a (mod p), και οι A και B ακολου-
7.6. ΣΧΗΜΑΤΑ ΥΠΟΓΡΑΦΩΝ ΜΕ ΕΠΙΠΡΟΣΘΕΤΗ ΛΕΙΤΟΥΡΓΙΚΟΤΗΤΑ 245 θήσουν το Πρωτόκολλο Αποκήρυξης τότε (η απόδειξη αφήνεται ως άσκηση) (dg e 2 ) f 1 (Dg f 2 ) e 1 (mod p) Παρατήρηση 20. Αν s m x (mod p) και ο B ακολουθήσει το Πρωτόκολλο Αποκήρυξης τότε αν ο A δώσει ψευδή d και D τότε η πιθανότητα να ισχύει η σχέση 5 (δηλαδή να κατασκευάσει ο A δεδομένα τέτοια που να οδηγούν σε συμπέρασμα ότι έχει γίνει πλαστογραφία) είναι 1/q. 7.6.4 Οι υπογραφές Fail-Stop Το σχήμα υπογραφής Fail-Stop παρέχει επιπλέον ασφάλεια για την περίπτωση όπου κάποιος πολύ ισχυρός αντίπαλος θα μπορούσε να πλαστογραφήσει μια υπογραφή. Σε μια τέτοια περίπτωση, ο υπογράφων A είναι σε θέση να αποδείξει με πολύ μεγάλη πιθανότητα ότι η υπογραφή είναι πλαστογραφημένη. Ένα σχήμα υπογραφής Fail-Stop προτάθηκε από τους van Heyst και Pedersen το 1992. Το σχήμα υπογραφής Fail-Stop των van Heyst και Pedersen είναι ένα σχήμα μιας χρήσης, και φαίνεται στο σχήμα 7.11. Η βασική διαφορά του με τα σχήματα που περιγράψαμε μέχρι τώρα είναι η ύπαρξη μιας Έμπιστης Αρχής (συχνά αναφερόμαστε σ αυτήν σαν Έμπιστη Τρίτη Οντότητα (Trusted Third Party (TTP))). Μπορούν να αποδειχθούν τα εξής: Αν ο αντίπαλος ξέρει τα sig K (m) = s και m m, μπορεί να υπολογίσει το sig K (m ) με πιθανότητα 1/q. Με άλλα λόγια,δεδομένης μιας έγκυρης υπογραφής s για ένα μήνυμα m, υπάρχουν q διαφορετικά κλειδιά που θα μπορούσαν να έχουν υπογράψει το μήνυμα m με s (αυτά μπορούν να έχουν χρησιμοποιηθεί από τον νόμιμο χρήστη). Για κάθε άλλο μήνυμα όμως, m m αυτά τα q διαφορετικά κλειδιά θα δώσουν διαφορετικές υπογραφές. Έτσι, αν δίνεται μια υπογραφή s για ένα κείμενο x, ο αντίπαλος δεν μπορεί να υπολογίσει την υπογραφή s για ένα άλλο μήνυμα m. Από την άλλη μεριά, είναι δυνατόν ο αντίπαλος να υπολογίσει μια πλαστογραφημένη υπογραφή s sig K (m ) η οποία να μπορεί παρόλα αυτά να επικυρωθεί. Στην περίπτωση αυτή όμως, το άτομο του οποίου η υπογραφή πλαστογραφήθηκε, μπορεί με πιθανότητα 1 1/q να αποδείξει την πλαστογράφηση. Η απόδειξη της πλαστογράφησης είναι η τιμή x = log g y, που είναι γνωστή μόνο στην κεντρική αρχή. 7.6.5 Ομαδικές υπογραφές (Group signatures Τα σχήματα ομαδικών υπογραφών προτάθηκαν από τον Chaum και τον Heyst στο [3].
246 ΚΕΦΑΛΑΙΟ 7. ΨΗΦΙΑΚΕΣ ΥΠΟΓΡΑΦΕΣ Σε αυτές μία ομάδα οντοτήτων θέλει να δημιουργήσει ένα σχήμα υπογραφών με τις εξής ιδιότητες: Μόνο τα μέλη της ομάδας μπορούν να υπογράφουν μηνύματα. Ο παραλήπτης της υπογραφής μπορεί να επαληθεύσει την εγκυρότητα της υπογραφής χωρίς όμως να μπορεί να διακρίνει το μέλος της ομάδας που υπέγραψε (anonymity) Σε περίπτωση αντιδικίας μπορεί να ανακαλυφθεί το μέλος που υπέγραψε, με την βοήθεια ενός ειδικού μέλους του αρχηγού.(traceability) Στη βιβλιογραφία έχουν προταθεί αρκετά σχήματα ομαδικών υπογραφών. Στην ενότητα αυτή θα περιγράψουμε το [6], το οποίο περιγράφει πώς μπορεί να δημιουργηθεί ένα σχήμα ομαδικών υπογραφών από ένα απλό κρυπτοσύστημα δημοσίου κλειδιού. Απαιτεί την ύπαρξη μια έμπιστης αρχής η οποία εκτός από τις παραμέτρους των κρυπτοσυστημάτων, παράγει το ζεύγος κλειδιών της ομάδας (x G, y G ) το οποίο μοιράζεται σε όλα τα μέλη της ομάδας. Ο αρχηγός παράγει το δικό του ζεύγος (x z, y z ). Υποθέτουμε ότι τα μέλη της ομάδας έχουν ταυτότητες ID 1, ID n. Για την υπογραφή ενός μηνύματος m το κάθε μέλος κρυπτογραφεί την ταυτότητα του με το δημόσιο κλειδί του αρχηγού, παράγοντας το c = E yz (ID U ). Στη συνέχεια προσαρτά το c στο μήνυμα και παράγει το m = H(m, c) όπου H μια συνάρτηση σύνοψης. Στη συνέχεια παράγει την υπογραφή σ = sign xg (m ) Η τελική υπογραφή είναι η τετράδα (m, c, σ, proof) όπου proof είναι μία απόδειξη ότι το c κρυπτογραφεί σωστά μία από τις ταυτότητες χωρίς φυσικά να αποκαλύπτει ποια (βλ. 10). Για την επαλήθευση της υπογραφής εκτελείται ο αλγόριθμος verif y του σχήματος υπογραφών και ελέγχεται η απόδειξη proof. Φυσικά μόνο ο αρχηγός της ομάδας μπορεί να αποκρυπτογραφήσει την ταυτότητα και να βρει ποιο μέλος υπέγραψε, ικανοποιώντας έτσι την ιδιότητα του traceability. 7.7 Ασκήσεις 1. Να αποδείξετε στο RSA ότι αν ο χώρος των κρυπτοκειμένων είναι ο ίδιος με το χώρο των απλών κειμένων τότε ισχύει και K ( K (m)) = m. 2. Να αποδείξετε το λήμμα 7.4.
7.7. ΑΣΚΗΣΕΙΣ 247 3. Να αποδείξετε ότι στο σχήμα υπογραφής ElGamal o παράγοντας τυχαιότητας k πρέπει να κρατείται κρυφό αφού η γνώση του δίνει στον A τη δυνατότητα να υπολογίσει εύκολα το ιδιωτικό κλειδί x. 4. Να αποδείξετε ότι στο σχήμα υπογραφής ElGamal η επανάληψη της χρήσης του ίδιου k καθιστά για τον A εφικτό τον υπολογισμό του και επομένως και τον υπολογισμό του x. 5. Θεωρήστε την παραλλαγή του σχήματος υπογραφής El Gamal όπου η μόνη διαφορά βρίσκεται στον υπολογισμό του δ: δ = (m kγ)α 1 (mod p 1) (i) Περιγράψτε τη συνάρτηση επαλήθευσης της υπογραφής (γ, δ) για το μήνυμα m. (ii) Υπάρχει κάποιο υπολογιστικό πλεονέκτημα του τροποποιημένου σχήματος έναντι του αρχικού; (iii) Συγκρίνετε σύντομα την ασφάλεια του αρχικού και του τροποποιημένου σχήματος. 6. Ας υποθέσουμε ότι υπάρχει μία έμπιστη αρχή η οποία υπολογίζει για λογαριασμό καποιων χρηστών τις ψηφιακές υπογραφές τους. Δηλαδή αν κάποιος χρήστης θέλει να υπολογίσει την (RSA) ψηφιακή υπογραφή του για το κείμενο m, τότε στέλνει στην έμπιστη αρχή το κείμενο m. Η έμπιστη αρχή, που διαθέτει τον εκθέτη αποκρυπτογραφησης d και τα p, q του χρήστη αυτού, υπολογίζει την ψηφιακή υπογραφή ως εξής: υπολογίζει πρώτα τα S 1 = m d (mod p) και S 2 = m d (mod q) και μετά με χρήση του κινέζικου θεωρήματος υπολογίζει την υπογραφή S. Αν υποθέσουμε ότι η έμπιστη αρχή έκανε λάθος στον υπολογισμό του S 1 και υπολόγισε S 1 S 1 και για υπογραφή S S δείξτε ότι τότε μπορεί κάποιος που γνωρίζει τα m, S και το δημόσιο κλειδί (N, e) να παραγοντοποιήσει αποδοτικά το N.Πώς μπορεί η έμπιστη αρχή να αποφύγει αυτόν τον κίνδυνο; Υπόδειξη: εξετάστε την ισοτιμία του S e modulo p και modulo q. 7. Οι χρήστες ενός δικτύου χρησιμοποιούν το κρυπτοσύστημα RSA. Κάθε χρήστης U i διαθέτει ένα δημόσιο κλειδί n i, e i και ένα ιδιωτικό κλειδί d i. Οι χρήστες χρησιμοποιούν το σύστημα τόσο για κρυπτογράφηση όσο και για υπογραφή. Δηλαδή, κάθε χρήστης U i χρησιμοποιεί το ιδιωτικό του κλειδί d i (και το n i ) για να υπογράψει ένα μήνυμα, και το δημόσιο κλειδί του U k, δηλ. το (e k, n k ) για να κρυπτογραφήσει ένα μήνυμα και να το στείλει στον U k.
248 ΚΕΦΑΛΑΙΟ 7. ΨΗΦΙΑΚΕΣ ΥΠΟΓΡΑΦΕΣ (α) Δείξτε ότι αυτό μπορεί να είναι επικίνδυνο στο εξής σενάριο: αν η διευθύντρια U i υπογράφει ο,τιδήποτε της δίνει ο έμπιστος γραμματέας της, τότε ο γραμματέας μπορεί να αποκρυπτογραφήσει κάθε μήνυμα που στέλνει ο χρήστης U k στη διευθύντρια. (β) Έστω ότι η διευθύντρια είναι κάπως καχύποπτη, και αρνείται να δώσει το υπογεγραμμένο μήνυμα στον γραμματέα, αν αυτό μοιάζει πολύ με ένα κανονικό κείμενο. Πώς ο γραμματέας μπορεί να παρακάμψει αυτό το πρόβλημα ; Βιβλιογραφία [1] David Chaum. Blind signatures for untraceable payments. In D. Chaum, R.L. Rivest, and A.T. Sherman, editors, Advances in Cryptology Proceedings of Crypto 82, pages 199 203, 1983. [2] David Chaum. Security without identification: transaction systems to make big brother obsolete. Communications of the ACM, 28(10):1030 1044, October 1985. [3] David Chaum and Eugene Heyst. Group Signatures. In DonaldW. Davies, editor, Advances in Cryptology EUROCRYPT 91, volume 547 of Lecture Notes in Computer Science, pages 257 265. Springer Berlin Heidelberg, 1991. [4] Aggelos Kiayias. Cryptography primitives and protocols, 2015. Διαθέσιμο στο. [5] Christopher Barth Kuner and Anja Miedbrodt. Written signature requirements and electronic authentication: A comparative perspective. The EDI Law Review, 6(2-3):143 154, 1999. [6] Holger Petersen. How to Convert any Digital Signature Scheme into a Group Signature Scheme. In Security Protocols Workshop, pages 177 190, 1997.
ΒΙΒΛΙΟΓΡΑΦΙΑ 249 Σχήμα υπογραφής van Heyst Pedersen Έστω p = 2q + 1 πρώτος αριθμός, τέτοιος ώστε ο q να είναι πρώτος αριθμός και το πρόβλημα του διακριτού λογαρίθμου στο Z p είναι απρόσιτο (intractable). Έστω g Z p πρωταρχικό στοιχείο του Z q. Έστω x Z p. Oρίζουμε το y = g x mod p. Οι τιμές p, q, g, y και x έχουν επιλεγεί από μία TTP. Τα p, q, g, y είναι γνωστά δημοσίως. Η τιμή του x κρατείται μυστική. Υποθέτουμε ότι η A θέλει να στείλει το μήνυμα m( Z q) στον B. 1. Δημιουργία υπογραφής (Î±Í ) Η A επιλέγει a 1, a 2, b 1, b 2 Z p (αυτό είναι το ιδιωτικό του κλειδί). (Î²Í ) Η A υπολογίζει τα: Το δημόσιο κλειδί του A είναι το K = (γ 1, γ 2 ) (Î³Í ) Η A υπολογίζει τα γ 1 = g a 1 y a 2 mod p γ 2 = g b 1 y b 2 mod p s 1 = a 1 + mb 1 mod q s 2 = a 2 + mb 2 mod q (Î Í ) H υπογραφή της A για το μήνυμα m είναι: (sig K (m) =)s = (s 1, s 2 ). Και ο A στέλνει στον B το (m, s) 2. Επαλήθευση υπογραφής Ο B υπολογίζει την τιμή της συνάρτησης: ver K (m, s) = { 1, γ 1 γ m 2 = g s 1 y s 2 mod p 0, γ 1 γ m 2 g s 1 y s 2 mod p και πιστοποιεί ότι το μήνυμα m προέρχεται πράγματι από την A αν και μόνον αν ver K (m, s) = 1 3. Απόδειξη της πλαστογράφησης Η A δέχεται την πιθανή πλαστή υπογραφή (s 1, s 2) για το μήνυμα m. Αν (s 1, s 2 ) = (s 1, s 2) τότε επιστρέφει στο πρώτο βήμα αλλιώς υπολογίζει την τιμή g = (s 1 s 1 )(s 2 s 2) 1 mod q. Όμως ο g υποτίθεται ότι είναι γνωστός μόνο στην TTP. H εύρεση του από την A αποδεικνύει ότι η υπογραφή (s 1, s 2) είναι πλαστή. Σχήμα 7.11: Σχήμα υπογραφής Fail-Stop των van Heyst και Pedersen