Ασφάλεια Πληροφοριακών Συστημάτων Κρυπτογραφία/Ψηφιακές Υπογραφές Διάλεξη 2η Δρ. Β. Βασιλειάδης Τμ. Διοίκησης Επιχειρήσεων, ΤΕΙ Δυτ. Ελλάδας
Kρυπτανάλυση Προσπαθούμε να σπάσουμε τον κώδικα. Ξέρουμε το C Προσπαθούμε να βρούμε το K έτσι ώστε να πάρουμε το Μ Τεχνικές: Στατιστικές μέθοδοι Brutal force
Μέσος χρόνος που απαιτείται για εξαντλητική αναζήτηση κλειδιών
Στατιστικές μέθοδοι (μέθοδοι μετατόπισης /αντικατάστασης) Έλεγχος Kasiski: προσπαθεί να προσδιορίσει το μέγεθος του κλειδιού από το C. Βήματα: 1. Εξετάζουμε εάν μία ακολουθία χαρακτήρων εμφανίζεται στο C 2 ή περισσότερες φορές. 2. Υποθέτουμε ότι η ίδια ακολουθία χαρακτήρων κρυπτογραφήθηκε από το ίδιο κλειδί. Άρα η απόσταση μεταξύ των δύο ακολουθιών είναι πολλαπλάσια του μήκους του κλειδιού.
Έλεγχος Kasiski Η τεχνική αυτή βασίστηκε στην παρακάτω παρατήρηση Μ= AΛΛΟ Κ=Β (μετάθεση 1 θέση δεξιά) Άρα C= BMMΠ Παρατηρούμε ότι στο C υπάρχουν 2 ίδιοι χαρακτήρες. Εφόσον η κωδικοποίηση έγινε με αντικατάσταση (δηλ. δεν άλλαξε η θέση των αρχικών χαρακτήρων), τότε τα 2 Μ αντιστοιχούν στον ίδιο αρχικό χαρακτήρα. Επειδή η απόστασή τους είναι 1, τότε μάλλον το κλειδί έχει μήκος 1.
Έλεγχος Kasiski-Σημασία της τεχνικής Η τεχνική δεν υπολογίζει το κλειδί αλλά κάνει κάτι εξίσου σημαντικό: υπολογίζει το πιθανό μήκος. Στη συνέχεια με τεχνικές στατιστικής ανάλυσης ή brute force αποκαλύπτεται το κλειδί. -> η γνώση του μήκους του κλειδιού μειώνει σημαντικά το μέγεθος των υπολογισμών που θα πρέπει να γίνουν και άρα το χρόνο που απαιτείται
Έλεγχος Kasiski-Σημασία της τεχνικής Αν θέλουμε να μπούμε στο σύστημα, θα πρέπει να δοκιμάσουμε χιλιάδες κωδικούς διαφορετικού μήκους. Αν ξέρουμε ότι ο κωδικός έχει μήκος 5 χαρακτήρες, τότε δοκιμάζουμε μόνο 5ψήφιους κωδικούς.
Έλεγχος Kasiski - Παράδειγμα Δίνεται το C= UWZAKPRUWZLZAKZT. Ποια τα πιθανά μήκη του κλειδιού; (Ελέγχουμε καταρχήν για επαναλήψεις 3-γραμμάτων. Αν δεν βρούμε 2-γραμμάτων κτλ.) UWZAKPRUWZLZAKZT 1.Βρίσκουμε τα UWZ, AK. 2. Υπολογίζουμε τις αποστάσεις των αρχικών γραμμάτων τους UWZ: 8-1=7 AK: 13-4=9 3. Οι αποστάσεις είναι πολλαπλάσια του μήκους του κλειδιού. Άρα βρίσκω ποιοι αριθμοί διαιρούν ακριβώς και τις δύο αποστάσεις. 7: 1,7 9: 1,3,9 4. Οι κοινοί διαιρέτες είναι τα πιθανά μήκη του κλειδιού: εδώ μόνο το 1. Άρα το μήκος του κλειδιού είναι 1
Ο αλγόριθμος RSA Ο RSA είναι ένας κρυπταλγόριθμος ασύμμετρου κλειδιού, το όνομα του οποίου προέρχεται από τους δημιουργούς του, Ron Rivest, Adi Shamir and Len Adleman. Επιτρέπει όχι μόνο την κωδικοποίηση μηνυμάτων αλλά μπορεί επίσης να χρησιμοποιηθεί και ως ψηφιακή υπογραφή. Ο RSA βασίζεται στην δυσκολία παραγοντοποίησης μεγάλων πρώτων αριθμών (σήμερα, συνήθως της τάξης των 1024 με 2048 bit). Χρησιμοποιούνται δυο κλειδιά, ένα δημόσιο κατά τη διάρκεια της κρυπτογράφησης και ένα κρυφό (ιδιωτικό) για την αποκρυπτογράφηση.
Ο αλγόριθμος RSA- Δημιουργία κλειδιών ΜΚΔ Μπορούμε τώρα να δημοσιεύσουμε το πρώτο κλειδί, δίνοντας έτσι τη δυνατότητα σε οποιονδήποτε να μας στείλει κρυπτογραφημένα μηνύματα που μόνο εμείς (χάρη στο κρυφό κλειδί) μπορούμε να αποκρυπτογραφήσουμε.
Κρυπτογράφηση Το κρυπτογραφημένο μήνυμα υπολογίζεται με τον εξής τρόπο: Για να κρυπτογραφηθεί ο αποστολέας έχει το δημόσιο κλειδί.
Αποκρυπτογράφηση M= C d mod n
Κάποιες λεπτομέρειες a b(mod n) σχέση ισοτιμίας του α, b modn δηλ. το a-b είναι ένα ακέραιο πολλαπλάσιο του n. Π.χ. 38 14 (mod 2) γιατί 38-14=24=2*12. 38 2(mod 12) γιατί 38-2=36=3*12.
Παράδειγμα Έστω το μήνυμα Μ=2. Να κρυπτογραφηθεί με τον αλγόριθμο RSA εάν p=5 και q=11. Λύση: 1. Υπολογίζουμε το n=p*q=5*11=55 2. Yπολογίζουμε το φ(n)=(p-1)(q-1)=4*10=40 3. Eπιλέγουμε e=7, έτσι ώστε ο ΜΚΔ του φ(n) και του e να είναι το 1. Πράγματι, ΜΚΔ(40,7)=1 Το δημόσιο κλειδί είναι το {n,e}={55,7}
Παράδειγμα 4. Iσχύει: d*e 1 (mod φ(n)) d*7 1(mod 40) (Σχέση ισοτιμίας) d*7-1 πολλαπλάσιο του 40. Υπάρχει δηλ. ακέραιος k για τον οποίο ισχύει: d*7-1 = k * 40 d= k * 40 + 1 7 Η διαίρεση θα πρέπει να μην έχει υπόλοιπο. Δοκιμάζουμε: k=1, d= 41/7 δεν διαιρείται ακριβώς. k=2, d=81/7 k=4, d=161/7=23. Άρα d=23 και το ιδιωτικό κλειδί {n,d}={55,23}
Κωδικοποίηση C= M e (modn)=2 7 mod55=128mod55=18 Aποκωδικοποίηση: M= C d mod n=18 23 mod55=2 Αν το Μ ήταν Μ=234, κωδικοποιούμε κάθε ψηφίο ξεχωριστά (το 2, το 3 και το 4.)
Πλεονεκτήματα/Μειονεκτήματα Όσο πιο μεγάλο το Ν -> μεγαλύτερη ασφάλεια δυσκολία στον υπολογισμό p,q Γίνεται αργός ο αλγόριθμος Τα p,q πρέπει να έχουν μεγάλη διαφορά μεταξύ τους! Αλλιώς p N και το p,q μπορούν να υπολογιστούν 512bit RSA σπάει σε λίγες εβδομάδες! Προτείνεται μέγεθος 1024 bits.
Ασκήσεις 1. Δίνεται το μήνυμα Μ= AENAO και το κλειδί Κ=ABΓ. Κρυπτογραφήστε το με τη μέθοδο της πολύ-αλφαβητικής αντικατάστασης (με αντικατάσταση προς τα αριστερά.)
Λύση Μ= A E N A O Κ= A B Γ Α Β C= Α Η Π Α Ρ Γιατί Α-> 1 θέση αριστερά Β-> 2 θέσεις Γ-> 3 θέσεις
Άσκηση 2 2. Δίνεται το μήνυμα M= ΑΣΦΑΛΕΙΑ ΤΕΛΟΣ. Κρυπτογραφήστε το με την απλή μέθοδο της μετάθεσης όπου Κ=4. Α Λ Τ Σ Σ Ε Ε Ε -> Φ Ι Λ Ε Α Α Ο Ε C= AΛΤΣΣΕΕΕΦΙΛΕΑΑΟΕ
Άσκηση 3 3. Δίνεται το μήνυμα Μ= 01000110. Ποιο είναι το κρυπτογραφημένο μήνυμα εάν χρησιμοποιηθεί o Κωδικοποιητής Vernam; Χρησιμοποιείστε ως κλειδί K, τη 8-bit δυαδική αναπαράσταση του 13.
Λύση 8-bit δυαδική αναπαράσταση του 13: 84 1 13-> 00001101 (8+4+1=13) Άρα: Μ= 01000110 Κ= 00001101 ΧΟR C= 01001011
Άσκηση 4 4. Δίνεται το μήνυμα M= ΣΗΜΕΡΑ ΑΥΡΙΟ ΚΑΙ ΕΧΘΕΣ ΟΛΕΣ. Κρυπτογραφήστε σε πολλαπλή μετάθεση έχοντας υπόψην ότι το πλήθος των στοιχείων κάθε στήλης είναι 5 και Κα= 03 04 01 02
Άσκηση 5 5. Δίνεται το κρυπτογραφημένο μήνυμα C= ERDFGERFJKELJGTKLAIOEFDFGKLA. Ποια είναι τα πιθανά μήκη του κλειδιού σύμφωνα με τη μέθοδο Kasiski;
Λύση ERDFGERFJKELJGTKLAIOGERDFGΝ KLA Αποστάσεις: GER: 21-5=16, διαιρείται από:1,2,4,8,16 ΚLA: 28-16=12, διαιρείται από:1,2,3,4,6,12 Κοινοί διαιρέτες: 1,2,4. Άρα αυτά είναι τα πιθανά μήκη του κλειδιού.
Άσκηση 6 6. Στον αλγόριθμο RSA, δίνονται τα p, q και το μήνυμα Μ=23. Υπολογίστε το δημόσιο και το ιδιωτικό κλειδί και περιγράψτε τη διαδικασία κρυπτογράφησης και αποκρυπτογράφησης. Δίνονται p=4,q=10.
Λύση 1. Υπολογίζουμε το n=p*q= 4*10=40 2. Υπολογίζουμε το φ(n)=(p-1)(q-1)=3*9=27 3. Επιλέγουμε e: ΜΚΔ(e,φ(n))=1, δηλ. ΜΚΔ(e,27)=1. Επιλέγω e=7 Το 27 διαιρείται από: 1,3,9,27 Το 7 διαιρείται από: 1,7. Άρα ΜΚΔ(7,27)=1. Το e=7 είναι ορθή επιλογή
Λύση Το δημόσιο κλειδί είναι το {n,e}={40,7} Iσχύει: d*e 1 (mod φ(n)) d*7 1(mod 27) d*7-1 πολλαπλάσιο του 27. Υπάρχει δηλ. ακέραιος k για τον οποίο ισχύει: d*7-1 = k * 27 d= k* 27 + 1 7 Η διαίρεση θα πρέπει να μην έχει υπόλοιπο. Δοκιμάζουμε: k=1, d= 28/7 δεν διαιρείται ακριβώς. k=2, d=55/7 k=8, d=217/7=31. Άρα d= και το ιδιωτικό κλειδί {n,d}={40,31}
Λύση Κωδικοποίηση Μ=23, το δημόσιο κλειδί είναι το {n,e}={40,7} M=M 1 M 2 =2 3 2: C 1 = M e 1 mod n =2 7 mod 40 = 128 mod 40= 8 3: C 2 = M 2 e mod n =3 7 mod 40 = 2187 mod 40= 27. Άρα C=C 1 C 2 =827
Παράδειγμα RSA Αρχικό κείμενο 5 19 19 = 2476099 119 Κρυπτογράφηση = 20807 με υπόλοιπο το 66 Κρυπτογράφημα 66 77 66 Αποκρυπτογράφηση = 1.27... x 10140 = 119 1.06... x 10 138 με υπόλοιπο το 19 Αρχικό κείμενο 19 KU = 5, 119 KR = 77, 119
Ψηφιακές Υπογραφές- Βασικές Αρχές Η Ψηφιακή Υπογραφή είναι ένα μαθηματικό σύστημα χρησιμοποιείται για την απόδειξη της γνησιότητας ενός ψηφιακού μηνύματος ή εγγράφου. 1. Πιστοποιεί τον αποστολέα 2. Ότι το μύνημα δεν παραποιήθηκε κατά τη μετάδοση Μέθοδοι Ψηφιακής Υπογραφής Κρυπτογραφική συνάρτηση κετατεμαχισμού (hash function)-> σύνοψη Ασσύμετρη κρυπτογραφία -> κρυπτογράφηση/αποκρυπτογράφηση σύνοψης
Εφαρμογές Έχουν νομική υπόσταση! Χρησιμοποιούνται αντί για τις χειρόγραφες Μπορούν να συμπεριλάβουν και την ημερομηνία! Ο υπογράφων δεν μπορεί να αρνηθεί ότι υπέγραψε! Η ψηφιακή υπογραφή μπορεί να προστεθεί σε οποιαδήποτε ακολουθία bits: Email Ηλεκτρονικά έγγραφα (doc, xls, pdf, bmp,jpeg, tiff)
Ψηφιακή Υπογραφή
Μέρη του Αλγορίθμου
Πάροχος υπηρεσιών πιστοποίησης Ένα πρόβλημα με τις ψηφιακές υπογραφές είναι ότι δεν γνωρίζουμε αν το δημόσιο κλειδί (κατά την διάρκεια ελέγχου της υπογραφής) που έχουμε ανήκει σε αυτόν που ισχυρίζεται ότι είναι! Πάροχος Υπηρεσιών Πιστοποίησης: οργανισμός-οντότητα ο οποίος πιστοποιεί την σχέση ενός ανθρώπου με το δημόσιο κλειδί του. εμπνέει εμπιστοσύνη γιατί είναι η αρχή η οποία εκδίδει ψηφιακά πιστοποιητικά. Τα ψηφιακά πιστοποιητικά ταυτοποιούν ένα δημόσιο κλειδί με τον δικαιούχο του. Επισυνάπτεται στο έγγραφο μαζί με την ψηφιακή υπογραφή και το ψηφιακό πιστοποιητικό του δημόσιου κλειδιού.
Ανάλυση Βημάτων- Αποστολή Ένα μήνυμα υπογράφεται ως εξής: Ο Αποστολέας περνά το μήνυμα από ένα Hash Function δίνει αποτέλεσμα μια σειρά χαρακτήρων Α (message digest), είναι πάντα ίδιου μήκους ασχέτως με το μήκος του μηνύματος. Η σειρά χαρακτήρων Α κρυπτογραφείται με το ιδιωτικό κλειδί του Αποστολέα σε Α Το Α ( Ψηφιακή Υπογραφή) στέλνεται μαζί με το μήνυμα (χωρίς το σώμα του μηνύματος να είναι αναγκαστικά κρυπτογραφημένο).
Ανάλυση Βημάτων- Παραλαβή Ο Παραλήπτης παίρνει το μήνυμα μαζί με την Ψηφιακή υπογραφή Α. Περνά το μήνυμα από την ίδια Hash Function με αποτέλεσμα μια σειρά χαρακτήρων Β. Με το δημόσιο του κλειδί αποκρυπτογραφεί την Α σε Α. Αν τα Α και Β είναι τα ίδια το μήνυμα δεν έχει αλλοιωθεί.
Hash Function H συνάρτηση δέχεται ως είσοδο το μήνυμα Παράγει έναν μοναδικό αριθμό ανεξαρτήτως μεγέθους μηνύματος!
Λογισμικό ΨΥ PGP! Pretty Good Privacy (1991) http://www.openpgp.org/
Aσφάλεια Δικτύων Βασικές Έννοιες