ΚΡΥΠΤΟΓΡΑΦΙΑ ΚΑΙ ΑΣΦΑΛΕΙΑ ΥΠΟΛΟΓΙΣΤΩΝ Δ Εξάμηνο Ψηφιακή Υπογραφή και Αυθεντικοποίηση Μηνύματος Διδάσκων : Δρ. Παρασκευάς Κίτσος Επίκουρος Καθηγητής e-mail: pkitsos@teimes.gr, pkitsos@ieee.org Αντίρριο 2015 1
ΠΕΡΙΕΧΟΜΕΝΑ Ψηφιακές Υπογραφές Ασύμμετρης Κρυπτογραφίας Συστήματα ψηφιακής υπογραφής με αυτοανάκτηση Συστήματα ψηφιακής υπογραφής με παράρτημα Ψηφιακές υπογραφές με το σύστημα RSA Το πρότυπο Ψηφιακής Υπογραφής Πιστοποίηση μηνύματος Διανομή κλειδιών
ΧΡΗΣΕΙΣ ΤΗΣ ΨΗΦΙΑΚΗΣ ΥΠΟΓΡΑΦΗΣ Αυθεντικοποίηση της πηγής του μηνύματος Προστατεύει τον αποστολέα ακόμα και σε περίπτωση που ο παραλήπτης τροποποιήσει το αρχικό μήνυμα του αποστολέα Μη απάρνηση πηγής Σε περίπτωση που ο αποστολέας αρνηθεί ότι έστειλε το μήνυμα, ο παραλήπτης του μηνύματος θα πρέπει να είναι σε θέση να αποδείξει ότι το μήνυμα στάλθηκε από τον αποστολέα Μη απάρνηση προορισμού Σε περίπτωση που ο παραλήπτης αρνηθεί ότι παρέλαβε το μήνυμα, θα πρέπει να υπάρχει δυνατότητα απόδειξης ότι το μήνυμα παραλήφθηκε από τον παραλήπτη
ΟΡΙΣΜΟΙ Έστω ένα σύνολο μηνυμάτων M, ένα σύνολο τιμών S, και μια συνάρτηση μετασχηματισμού S A : M S, μιας οντότητας με ταυτότητα Α. Το σύνολο S αποτελεί σύνολο υπογραφών, όταν μόνον η οντότητα Α για οποιοδήποτε m M μπορεί να υπολογίσει «με ευκολία» την S A (m)=s S. H S A ονομάζεται πράξη υπογραφής.
ΟΡΙΣΜΟΙ Έστω ένα σύνολο μηνυμάτων M και έστω μια συνάρτηση V A : SxM {0, 1}, όπου το 0 αντιστοιχεί στο ψευδές και το 1 αντιστοιχεί στο αληθές. Η συνάρτηση V A ορίζει την πράξη επαλήθευσης αν μπορεί να υπολογισθεί «με ευκολία» από οποιονδήποτε έτσι ώστε για δεδομένο (s, m) SxM είναι: V A ( s, m) 1, αν S = 0, αν S ( m) ( m) Η πράξη ψηφιακής υπογραφής S A, μαζί με την πράξη επαλήθευσης V A, αποτελούν ένα σύστημα ψηφιακής υπογραφής για την οντότητα Α. A A = s s
ΨΗΦΙΑΚΕΣ ΥΠΟΓΡΑΦΕΣ ΑΣΥΜΜΕΤΡΗΣ ΚΡΥΠΤΟΓΡΑΦΙΑΣ Δημόσιο κλειδί k ea Ιδιωτικό κλειδί k da m S A (.) e kda (.) m Αλίκη? Βύρωνας m' Ο όγκος των μηνυμάτων που στέλνονται είναι διπλάσιος του μεγέθους του αρχικού μηνύματος
ΣΥΣΤΗΜΑΤΑ ΨΗΦΙΑΚΗΣ ΥΠΟΓΡΑΦΗΣ ΜΕ ΑΥΤΟΑΝΑΚΤΗΣΗ Δημόσιο κλειδί k ea Ιδιωτικό κλειδί k da m S A (.) S A (m h(m)) e kda (.) m h(m) hash hash? h(m) Αλίκη Βύρωνας
ΣΥΣΤΗΜΑΤΑ ΨΗΦΙΑΚΗΣ ΥΠΟΓΡΑΦΗΣ ΜΕ ΠΑΡΑΡΤΗΜΑ Δημόσιο κλειδί k ea Ιδιωτικό κλειδί k da m hash S A (.) S A (h(m)) e kda (.) m h(m) hash? h(m) Αλίκη Βύρωνας
ΨΗΦΙΑΚΕΣ ΥΠΟΓΡΑΦΕΣ ΜΕ ΤΟ ΚΡΥΠΤΟΣΥΣΤΗΜΑ RSA Το σύστημα αυτό απαιτεί όλες οι οντότητες να έχουν στην κατοχή τους αντίστοιχα ζεύγη δημοσίου και ιδιωτικού κλειδιού. Έστω p και q δύο πρώτοι αριθμοί και n=pq. Το σύστημα ψηφιακών υπογραφών RSA ορίζεται με M=S=Z n, πράξη υπογραφής kda S ( m) = m mod n A και πράξη επαλήθευσης kea VA( s) = s mod n όπου keakda 1(modφ( n)) με k ea το δημόσιο κλειδί και k da το ιδιωτικό κλειδί της οντότητας Α.
ΤΟ ΠΡΟΤΥΠΟ ΤΗΣ ΨΗΦΙΑΚΗΣ ΥΠΟΓΡΑΦΗΣ Το πρότυπο της ψηφιακής υπογραφής (Digital Signature Standard, DSS) είναι ένα σύστημα ψηφιακών υπογραφών για γενική χρήση Βασίζεται στην ασύμμετρη κρυπτογραφία Βασίζεται στον αλγόριθμο ψηφιακής υπογραφή (Digital Signature Algorithm, DSA) και στην συνάρτηση κατακερματισμού SHA-1
ΤΟ ΠΡΟΤΥΠΟ ΤΗΣ ΨΗΦΙΑΚΗΣ ΥΠΟΓΡΑΦΗΣ Αποτελείται από τα ακόλουθα Καθορισμό των κλειδιών Το πρωτόκολλο ψηφιακής υπογραφής Το πρωτόκολλο επαλήθευσης της υπογραφής
ΤΟ ΠΡΟΤΥΠΟ ΤΗΣ ΨΗΦΙΑΚΗΣ ΥΠΟΓΡΑΦΗΣ Καθορισμός κλειδιών Αρχικά επιλέγεται ένας πρώτος αριθμός q τέτοιος ώστε 2 159 <q<2 160 Έπειτα επιλέγεται ένας πρώτος αριθμός p τέτοιος ώστε 2 t-1 <p<2 t όπου ο t είναι ακέραιο πολλαπλάσιο του 64 μεταξύ 512 t 1024 O q θα πρέπει να διαιρεί τον p-1 Επιλέγεται ένας γεννήτορας a μιας κυκλικής υποομάδας τάξης q της ομάδας Z p *. Αυτό επιτυγχάνεται επιλέγοντας έναν αριθμό g Z p * έτσι ώστε ( p 1)/ q ( p 1)/ q g mod p > 1 και θέτουμε a g (mod p) Τέλος επιλέγεται ένας τυχαίος αριθμός τέτοιος ώστε 0<b<q και b υπολογίζεται ο y a (mod p) Η τετράδα (p, q, a, y) αποτελεί το δημόσιο κλειδί και ο b το ιδιωτικό κλειδί
ΤΟ ΠΡΟΤΥΠΟ ΤΗΣ ΨΗΦΙΑΚΗΣ ΥΠΟΓΡΑΦΗΣ Το πρωτόκολλο ψηφιακής υπογραφής Αρχικά επιλέγεται ένας τυχαίος μυστικός ακέραιος k τέτοιος ώστε 0<k<q Υπολογίζεται το Υπολογίζεται το Τέλος υπολογίζεται το r k ( a mod p)(mod q) 1 k mod q 1 s k ( h( m) + br)(mod q) Η ψηφιακή υπογραφή του μηνύματος m είναι το ζεύγος (s, r).
ΤΟ ΠΡΟΤΥΠΟ ΤΗΣ ΨΗΦΙΑΚΗΣ ΥΠΟΓΡΑΦΗΣ Το πρωτόκολλο επαλήθευσης της υπογραφής Έλεγχος αν ισχύει 0<r, s<q. Αν κάποιο από τα r, s δεν είναι εντός των καθορισμένων ορίων η υπογραφή απορρίπτεται Υπολογίζεται το Υπολογίζονται τα wh( m)(mod ) και w = Έπειτα υπολογίζεται το s 1 mod q u u rw(mod ) 1 q r u 2 ' a 1 u y (mod q) 2 q Η ψηφιακή υπογραφή θεωρείται έγκυρη αν και μόνο αν r=r.
ΠΑΡΑΔΕΙΓΜΑ (με RSA) Έστω ότι έχουμε το παρακάτω σχήμα ψηφιακής υπογραφής Αν το μήνυμα είναι ίσο με M=32 και το ιδιωτικό κλειδί του χρήστη Α είναι ίσο με K Ra = (d=5, n=323) το δημόσιο κλειδί του είναι ίσο με K Ua =(e=173, n=323) και η συνάρτηση κατακερματισμού έχει εξίσωση H(x)=x 2 mod 10 3, να βρείτε αν το 237 είναι η σωστή ψηφιακή υπογραφή του μηνύματος Μ (E KRA [H(M)]);
ΠΑΡΑΔΕΙΓΜΑ (με RSA) Απάντηση: Από το σχήμα της ψηφιακής υπογραφής καταλαβαίνουμε ότι πρώτα πρέπει να υπολογίσουμε την τιμή της συνάρτησης κατακερματισμού. Έχουμε λοιπόν, H(M) = (32) 2 =(2 5 ) 2 = 2 10 = 1024 mod 1000 = 24 Επίσης θα υπολογίσουμε την τιμή που μας δίνει ο ασύμμετρος αλγόριθμος κρυπτογραφίας. Έχουμε για αυτόν, E KRA [H(M)] = (H(M)) KRA mod n =(24) 5 mod 323 = 28 Δηλαδή η σωστή ψηφιακή υπογραφή είναι η 28 και όχι η 237.
ΑΥΘΕΝΤΙΚΟΠΟΙΗΣΗ ΜΗΝΥΜΑΤΟΣ (MESSAGE AUTHENTICATION) Ένα σύστημα θα πρέπει να έχει τη δυνατότητα να πιστοποιεί ότι: 1. Ένα μήνυμα έχει αποσταλεί από συγκεκριμένη πηγή ή αποστολέα 2. Τα περιεχόμενα του μηνύματος δεν έχουν διαφοροποιηθεί 3. Το δεδομένα έχουν αποσταλεί σε συγκεκριμένη χρονική περίοδο και με συγκεκριμένη διαδοχική σειρά Προστασία απέναντι σε «ενεργές» επιθέσεις: αλλοίωση των δεδομένων ή των συναλλαγών 17
ΜΗΧΑΝΙΣΜΟΙ MESSAGE AUTHENTICATION Authentication Using Conventional Encryption : Μόνο ο αποστολέας και ο παραλήπτης διαμοιράζονται ένα μυστικό κλειδί Message Authentication without Message Encryption : Ένα στοιχείο πιστοποίησης (authentication tag) δημιουργείται και επισυνάπτεται σε κάθε μήνυμα Message Authentication Code (ΜAC): Υπολογισμός ενός MAC ως συνάρτηση (F) του μηνύματος (M) και κάποιου κλειδιού (K) MAC = Function F (Key, Message) 18
ΑΡΧΙΤΕΚΤΟΝΙΚΗ MESSAGE AUTHENTICATION CODE (MAC) 19
MESSAGE AUTHENTICATION : ΣΥΜΜΕΤΡΙΚΗ ΚΡΥΠΤΟΓΡΑΦΗΣΗ Χρησιμοποίηση μιας Hash Function Συμμετρική Κρυπτογράφηση: Μυστικό Κλειδί Κ Συνένωση του αρχικού μηνύματος (message) με το κρυπτογραφημένο κείμενο 20
MESSAGE AUTHENTICATION : ΑΣΥΜΜΕΤΡΗ ΚΡΥΠΤΟΓΡΑΦΗΣΗ Χρησιμοποίηση μιας Hash Function Ασύμμετρη Κρυπτογράφηση: Μυστικό Κλειδί Κ private, Δημόσιο Κλειδί Κ public Συνένωση του αρχικού μηνύματος (message) με το κρυπτογραφημένο κείμενο 21
MESSAGE AUTHENTICATION: ΧΡΗΣΗ ΜΥΣΤΙΚΗΣ ΤΙΜΗΣ H μυστική πληροφορία επισυνάπτεται πριν τον υπολογισμό hash και αφαιρείται πριν την μετάδοση του μηνύματος Δεν απαιτείται η χρήση κλειδιών 22
ΔΙΑΝΟΜΗ ΚΛΕΙΔΙΟΥ (KEY DISTRIBUTION) ΑΡΧΙΚΗ ΠΡΟΣΕΓΓΙΣΗ 23
ΔΙΑΝΟΜΗ ΚΛΕΙΔΙΟΥ: KEY DISTRIBUTION Κάποιο κλειδί μπορεί να επιλεγεί από την οντότητα A και να παραδοθεί με φυσικό τρόπο στην οντότητα B Μια τρίτη οντότητα (third party) μπορεί να επιλέξει ένα κλειδί και να το κοινοποιήσει με φυσικό τρόπο στην οντότητα Α και στην οντότητα Β Εάν οι A και B έχουν χρησιμοποιήσει στο παρελθόν μια τιμή κλειδιού, η μια οντότητα μπορεί να μεταδώσει το νέο κλειδί στην άλλη, κρυπτογραφώντας το με την προηγούμενη τιμή κλειδιού 24 Εάν οι οντότητες Α και Β έχουν μια αποκαταστημένη διασύνδεση με μια τρίτη οντότητα, τότε η C μπορεί να μεταδώσει το κλειδί μέσω των κρυπτογραφημένων συνδέσεων (links) με την Α και Β
ΑΥΤΟΜΑΤΟΠΟΙΗΜΕΝΗ ΔΙΑΝΟΜΗ ΚΛΕΙΔΙΩΝ (1/4) Για τη λειτουργεία αυτή, προσδιορίζονται δύο είδη κλειδιών: Κλειδί Συνόδου (Session Key): Τα δεδομένα κρυπτογραφούνται με κλειδιά συνόδου (session keys) μιας χρήσης (one time) Όταν η μετάδοση ολοκληρωθεί τo αντίστοιχο session key καταστρέφεται Μόνιμο Κλειδί (Permanent ή Master Key): Χρησιμοποιείται από τις οντότητες για την διανομή κλειδιών συνόδων (session keys) Η διαμόρφωση (configuration) περιλαμβάνει τα ακόλουθα στοιχεία: Κέντρο διανομής κλειδιού (key distribution center KDC) Μετωπικός επεξεργαστής (front end processor FEP) 25
ΑΥΤΟΜΑΤΟΠΟΙΗΜΕΝΗ ΔΙΑΝΟΜΗ ΚΛΕΙΔΙΩΝ (2/4) ΑΣΦΑΛΕΙΑ ΚΑΙ ΑΞΙΟΠΙΣΤΙΑ ΔΙΚΤΥΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ - Δρ. Π. Κίτσος 26
ΑΥΤΟΜΑΤΟΠΟΙΗΜΕΝΗ ΔΙΑΝΟΜΗ ΚΛΕΙΔΙΩΝ (3/4) Βήμα 1. Αποστολή πακέτου αίτησης σύνδεσης (connection request packet) Βήμα2. Ο FEP (μετωπικός επεξεργαστής) αποθηκεύει το πακέτο και αποστέλλει μια αίτηση στο KDC (κέντρο διανομής κλειδιού) για την επίτευξη της σύνδεσης 27
ΑΥΤΟΜΑΤΟΠΟΙΗΜΕΝΗ ΔΙΑΝΟΜΗ ΚΛΕΙΔΙΩΝ (4/4) Βήμα 3. Η επικοινωνία μεταξύ του FEP (μετωπικός επεξεργαστής) και του KDC (κέντρο διανομής κλειδιού) κρυπτογραφείται χρησιμοποιώντας ένα κύριο κλειδί, που γνωρίζουν μόνο οι FEP και KDC. Εάν το KDC εγκρίνει το αίτημα σύνδεσης, τότε δημιουργεί το κλειδί συνόδου και το παραδίδει στους δύο κατάλληλους FEP χρησιμοποιώντας ένα μοναδικό μόνιμο κλειδί για κάθε FEP Βήμα4. Ο FEP έχει τη δυνατότητα να αποστείλει το πακέτο αιτήματος σύνδεσης και να πραγματοποιηθεί μια σύνδεση μεταξύ των δύο συστημάτων. Τα δεδομένα του χρήστη κρυπτογραφούνται από τους αντίστοιχους FEP χρησιμοποιώντας το κλειδί συνόδου μιας χρήσης 28
ΚΡΥΠΤΟΓΡΑΦΗΣΗ SESSION KEY: ΔΙΑΝΥΣΜΑ ΕΛΕΓΧΟΥ 29
Απορίες???