Ασφάλια Υπολοισνικών Σξσνημάνφ퀦 · •Ιστορία...

63
Ασφάλεια Υπολογιστικών Συστημάτων Ενότητα 3: Κρυπτογραφία δημόσιου κλειδιού Νικολάου Σπύρος Τμήμα Μηχανικών Πληροφορικής ΤΕ

Transcript of Ασφάλια Υπολοισνικών Σξσνημάνφ퀦 · •Ιστορία...

Page 1: Ασφάλια Υπολοισνικών Σξσνημάνφ퀦 · •Ιστορία Κρυπτογραφίας. •Αλγόριθμος Καίσαρα. •Permutation Algorithm.

Ασφάλεια Υπολογιστικών Συστημάτων

Ενότητα 3: Κρυπτογραφία δημόσιου κλειδιού

Νικολάου Σπύρος

Τμήμα Μηχανικών Πληροφορικής ΤΕ

Page 2: Ασφάλια Υπολοισνικών Σξσνημάνφ퀦 · •Ιστορία Κρυπτογραφίας. •Αλγόριθμος Καίσαρα. •Permutation Algorithm.

Άδειες Χρήσης

• Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.

• Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύπου άδειας χρήσης, η άδεια χρήσης αναφέρεται ρητώς.

2

Page 3: Ασφάλια Υπολοισνικών Σξσνημάνφ퀦 · •Ιστορία Κρυπτογραφίας. •Αλγόριθμος Καίσαρα. •Permutation Algorithm.

Χρηματοδότηση• Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια

του εκπαιδευτικού έργου του διδάσκοντα.

• Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα στο TEI Δυτικής Μακεδονίας και στην Ανώτατη Εκκλησιαστική Ακαδημία Θεσσαλονίκης» έχει χρηματοδοτήσει μόνο τη αναδιαμόρφωση του εκπαιδευτικού υλικού.

• Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους.

3

Page 4: Ασφάλια Υπολοισνικών Σξσνημάνφ퀦 · •Ιστορία Κρυπτογραφίας. •Αλγόριθμος Καίσαρα. •Permutation Algorithm.

Σκοποί ενότητας

4

• Αυτή η ενότητα πραγματεύεται ζητήματα σχετικά με την κρυπτογραφία δημόσιου κλειδιού.

Page 5: Ασφάλια Υπολοισνικών Σξσνημάνφ퀦 · •Ιστορία Κρυπτογραφίας. •Αλγόριθμος Καίσαρα. •Permutation Algorithm.

Περιεχόμενα ενότητας (1/5)

• Πιστοποίηση Αυθεντικότητας Μηνυμάτων.

• Προσεγγίσεις Πιστοποίησης Αυθεντικότητας Μηνυμάτων.

• Πιστοποίηση με χρήση συμβατικής κρυπτογράφησης.

• Πιστοποίηση αυθεντικότητας χωρίς κρυπτογράφηση.

• Παραδείγματα.

5

Page 6: Ασφάλια Υπολοισνικών Σξσνημάνφ퀦 · •Ιστορία Κρυπτογραφίας. •Αλγόριθμος Καίσαρα. •Permutation Algorithm.

Περιεχόμενα ενότητας (2/5)

• Message Authentication Code - MAC.

• Μονόδρομη Συνάρτηση Κατακερματισμού.

• Απαιτήσεις Συναρτήσεων Κατακερματισμού.

• Απλές συναρτήσεις κατακερματισμού.

• Ασφαλής Συνάρτηση Κατακερματισμού SHA-1.

• Ασφαλής Συνάρτηση Κατακερματισμού SHA-512.

• Άλλοι ασφαλείς αλγόριθμοι κατακερματισμού.

6

Page 7: Ασφάλια Υπολοισνικών Σξσνημάνφ퀦 · •Ιστορία Κρυπτογραφίας. •Αλγόριθμος Καίσαρα. •Permutation Algorithm.

Περιεχόμενα ενότητας (3/5)

• HMAC.

• Ιστορία Κρυπτογραφίας.

• Αλγόριθμος Καίσαρα.

• Permutation Algorithm.

• Αρχές κρυπτογραφίας δημόσιου κλειδιού.

• Δομή κρυπτογράφησης δημόσιου κλειδιού.

• Γενικός αλγόριθμος κρυπτογράφησης δημόσιου κλειδιού.

7

Page 8: Ασφάλια Υπολοισνικών Σξσνημάνφ퀦 · •Ιστορία Κρυπτογραφίας. •Αλγόριθμος Καίσαρα. •Permutation Algorithm.

Περιεχόμενα ενότητας (4/5)

• Εφαρμογές κρυπτογραφικών συστημάτων δημοσίου κλειδιού.

• Απαιτήσεις κρυπτογραφίας δημόσιου κλειδιού.

• Ο αλγόριθμος δημόσιου κλειδιού RSA.

• Κατάρριψη αλγορίθμου RSA.

• Ανταλλαγή κλειδιών Diffie-Hellman.

• Ανταλλαγή κλειδιών Diffie-Hellman - Παράδειγμα.

• Άλλοι κρυπτογραφικοί αλγόριθμοι.

8

Page 9: Ασφάλια Υπολοισνικών Σξσνημάνφ퀦 · •Ιστορία Κρυπτογραφίας. •Αλγόριθμος Καίσαρα. •Permutation Algorithm.

Περιεχόμενα ενότητας (5/5)

• Ψηφιακές υπογραφές.

• Προβλήματα Ψηφιακής Υπογραφής.

• Νομικό Πλαίσιο.

• Ηλεκτρονικά Υπογεγραμμένο Έγγραφο.

• Πιστοποιητικά δημόσιων κλειδιών.

• Βιβλιογραφία.

9

Page 10: Ασφάλια Υπολοισνικών Σξσνημάνφ퀦 · •Ιστορία Κρυπτογραφίας. •Αλγόριθμος Καίσαρα. •Permutation Algorithm.

Κρυπτογραφία δημόσιου κλειδιού

Page 11: Ασφάλια Υπολοισνικών Σξσνημάνφ퀦 · •Ιστορία Κρυπτογραφίας. •Αλγόριθμος Καίσαρα. •Permutation Algorithm.

Πιστοποίηση Αυθεντικότητας Μηνυμάτων

• Ένα μήνυμα/αρχείο/έγγραφο θεωρείται γνήσιο όταν.

– Προέρχεται όντως από την προέλευση που δηλώνει.

– Τα περιεχόμενά του δεν έχουν μεταβληθεί.

– Δεν έχει σκόπιμα καθυστερήσει/αναμεταδοθεί.

• Η Πιστοποίηση Αυθεντικότητας Μηνυμάτων (message authentication) προστατεύει από ενεργητικές επιθέσεις.

– Σε αντίθεση με την κρυπτογράφηση.

11

Page 12: Ασφάλια Υπολοισνικών Σξσνημάνφ퀦 · •Ιστορία Κρυπτογραφίας. •Αλγόριθμος Καίσαρα. •Permutation Algorithm.

Προσεγγίσεις Πιστοποίησης Αυθεντικότητας Μηνυμάτων

• Με χρήση συμβατικής κρυπτογράφησης (Authentication Using Conventional Encryption).

• Χωρίς κρυπτογράφηση (Authentication without Message Encryption).

• Message Authentication Code - MAC.

12

Page 13: Ασφάλια Υπολοισνικών Σξσνημάνφ퀦 · •Ιστορία Κρυπτογραφίας. •Αλγόριθμος Καίσαρα. •Permutation Algorithm.

Πιστοποίηση με χρήση συμβατικής κρυπτογράφησης

• Μόνο αποστολέας και παραλήπτης μοιράζονται κάποιο κλειδί.

– Άρα μόνο ο αυθεντικός αποστολέας μπορεί να κρυπτογραφήσει επιτυχώς το μήνυμα.

• Για περεταίρω επιβεβαίωση της αυθεντικότητας της αποστολής, μπορούν να χρησιμοποιηθούν επιπλέον:

– Κώδικας ανίχνευσης σφαλμάτων (error-detection code).

– Αριθμός ακολουθίας (Sequence Number).

– Χρονοσήμανση (Timestamp).

13

Page 14: Ασφάλια Υπολοισνικών Σξσνημάνφ퀦 · •Ιστορία Κρυπτογραφίας. •Αλγόριθμος Καίσαρα. •Permutation Algorithm.

Πιστοποίηση αυθεντικότητας χωρίς κρυπτογράφηση

• Προσαρτάται ετικέτα πιστοποίησης αυθεντικότητας (authentication tag) στα μηνύματα.

• Τα μηνύματα δεν είναι κρυπτογραφημένα.

– Δεν εξασφαλίζεται το απόρρητο της επικοινωνίας.

• Τότε για ποιο λόγο να χρησιμοποιηθεί;

– Ακολουθούν 3 παραδείγματα.

14

Page 15: Ασφάλια Υπολοισνικών Σξσνημάνφ퀦 · •Ιστορία Κρυπτογραφίας. •Αλγόριθμος Καίσαρα. •Permutation Algorithm.

Παραδείγματα

• Εφαρμογές εκπομπής μηνύματος σε πολλούς παραλήπτες.

– Είναι πιο φθηνό και αξιόπιστο να υπάρχει μόνο ένας προορισμός που θα ελέγχει την πιστοποίηση αυθεντικότητας.

• Επικοινωνία ανάμεσα σε μέλη με μεγάλο φόρτο εργασίας.

– Στην οποία κάποιο μέλος δεν προλαβαίνει να αποκρυπτογραφήσει όλα τα εισερχόμενα μηνύματα.

• Πιστοποίηση αυθεντικότητας προγράμματος υπολογιστή.

15

Page 16: Ασφάλια Υπολοισνικών Σξσνημάνφ퀦 · •Ιστορία Κρυπτογραφίας. •Αλγόριθμος Καίσαρα. •Permutation Algorithm.

Message Authentication Code -MAC (1/3)

• Χρήση μυστικού κλειδιού για την παραγωγή του κωδικού πιστοποίησης αυθεντικότητας μηνυμάτων (MAC).

– Προσαρτάται στο μήνυμα.

• Τα επικοινωνούντα μέλη μοιράζονται το ίδιο κλειδί KAB.

• MACM = F( KAB,M ).

• O κωδικός MAC αποστέλλεται μαζί με το μήνυμα.

• Ο παραλήπτης κάνει την ίδια διαδικασία και συγκρίνει τον κωδικό που υπολόγισε με τον κωδικό που παρέλαβε.

16

Page 17: Ασφάλια Υπολοισνικών Σξσνημάνφ퀦 · •Ιστορία Κρυπτογραφίας. •Αλγόριθμος Καίσαρα. •Permutation Algorithm.

Message Authentication Code -MAC (2/3)

• Βεβαιώνεται ότι το μήνυμα.

– Δεν τροποποιήθηκε.

• Ο επιτιθέμενος μπορεί να αλλάξει το μήνυμα αλλά όχι και τον κωδικό με αντίστοιχο τρόπο αφού δεν γνωρίζει το κλειδί.

– Προέρχεται από τον σωστό αποστολέα.

• Μόνο αυτός γνωρίζει το μυστικό κλειδί.

– Αν περιέχει το μήνυμα αριθμό ακολουθίας βεβαιώνεται και η σωστή ακολουθία του μηνύματος.

• Ο αριθμός ακολουθίας δεν μπορεί να αλλαχθεί επιτυχώς.

17

Page 18: Ασφάλια Υπολοισνικών Σξσνημάνφ퀦 · •Ιστορία Κρυπτογραφίας. •Αλγόριθμος Καίσαρα. •Permutation Algorithm.

Message Authentication Code -MAC (3/3)

• Παρόμοια διαδικασία με κρυπτογράφηση.

– Ο αλγόριθμος όμως εδώ δεν είναι απαραίτητα αντιστρέψιμος.

– Λιγότερο ευπαθής από την κρυπτογράφηση.

18

Page 19: Ασφάλια Υπολοισνικών Σξσνημάνφ퀦 · •Ιστορία Κρυπτογραφίας. •Αλγόριθμος Καίσαρα. •Permutation Algorithm.

Μονόδρομη Συνάρτηση Κατακερματισμού

• Εναλλακτική της MAC.

• Είσοδος: Αρχείο Μ.

• Έξοδος: Σύνοψη μηνύματος H(M).

– Message digest.

• Δεν χρησιμοποιείται μυστικό κλειδί.

• Ο τρόπος αποστολής της σύνοψης με το μήνυμα την καθιστά αυθεντική.

19

Page 20: Ασφάλια Υπολοισνικών Σξσνημάνφ퀦 · •Ιστορία Κρυπτογραφίας. •Αλγόριθμος Καίσαρα. •Permutation Algorithm.

Απαιτήσεις Συναρτήσεων Κατακερματισμού

• Σκοπός: η παραγωγή “fingerprint”.

• Ιδιότητες Συναρτήσεων Κατακερματισμού Η().– Εφαρμόζονται σε οποιουδήποτε μεγέθους τμήματα

δεδομένων.

– Παράγει έξοδο συγκεκριμένου σταθερού μεγέθους.

– Εύκολος υπολογισμός του H(x) για οποιοδήποτε x.

– Για οποιοδήποτε h να είναι αδύνατο να βρεθεί το x για το οποίο Η(x) = h (ιδιότητα one way).

– Για οποιοδήποτε x να είναι αδύνατο να βρεθεί y ≠ x με H(x) = H(y) (ιδιότητα ασθενούς ανθεκτικότητας).

– Eίναι αδύνατον να βρεθεί ζευγάρι (x,y) ώστε Η(x) = H(y) (ιδιότητα ισχυρής ανθεκτικότητας).

20

Page 21: Ασφάλια Υπολοισνικών Σξσνημάνφ퀦 · •Ιστορία Κρυπτογραφίας. •Αλγόριθμος Καίσαρα. •Permutation Algorithm.

Απλές Συναρτήσεις Κατακερματισμού (1/4)

• Όλες οι συναρτήσεις κατακερματισμού λειτουργούν με βάση τις ακόλουθες αρχές:

– Η είσοδος αντιμετωπίζεται σαν ακολουθία από τμήματα των n bit.

– Η επεξεργασία της εισόδου γίνεται κατά ένα τμήμα τη φορά, με επαναληπτικό τρόπο.

– Στο τέλος παράγεται έξοδος των n bits.

21

Page 22: Ασφάλια Υπολοισνικών Σξσνημάνφ퀦 · •Ιστορία Κρυπτογραφίας. •Αλγόριθμος Καίσαρα. •Permutation Algorithm.

Απλές Συναρτήσεις Κατακερματισμού (2/4)

• Ci = bi1 ⊕ bi2 ⊕ ... ⊕ bim.

– Ci: Το i bit του κωδικού κατακερματισμού.

– m: Ο αριθμός των τμημάτων των n bit στην είσοδο.

– bij: Το i bit του j τμήματος.

– ⊕: Ο συντελεστής XOR.

22

Page 23: Ασφάλια Υπολοισνικών Σξσνημάνφ퀦 · •Ιστορία Κρυπτογραφίας. •Αλγόριθμος Καίσαρα. •Permutation Algorithm.

Απλές Συναρτήσεις Κατακερματισμού (3/4)

• Longitudinal Redundancy Check - LRC.

– Έλεγχος ακεραιότητας τυχαίων δεδομένων.

– Η πιθανότητα λάθος δεδομένα να οδηγήσουν στην ίδια τιμή κατακερματισμού είναι 2-n.

– Όχι αποτελεσματική σε δεδομένα με προβλέψιμη μορφή.

• Κείμενα αρχείου MSB = 0.

23

Page 24: Ασφάλια Υπολοισνικών Σξσνημάνφ퀦 · •Ιστορία Κρυπτογραφίας. •Αλγόριθμος Καίσαρα. •Permutation Algorithm.

Απλές Συναρτήσεις Κατακερματισμού (4/4)

• Longitudinal Redundancy Check - LRC (Συνέχεια).

– Λύση: Κυκλική ολίσθηση.

• Αρχική τιμή κατακερματισμού = 0.

• Για κάθε τμήμα.

– Μεταφέρουμε την τρέχουσα τιμή προς τα αριστερά κατά 1 bit.

– Εφαρμόζουμε στο τμήμα XOR με την τιμή κατακερματισμού.

24

Page 25: Ασφάλια Υπολοισνικών Σξσνημάνφ퀦 · •Ιστορία Κρυπτογραφίας. •Αλγόριθμος Καίσαρα. •Permutation Algorithm.

Ασφαλής Συνάρτηση Κατακερματισμού SHA-1

• Παράγει τιμή κατακερματισμού μήκους 160 bit.

• Εκδόσεις SHA-256, SHA-384, SHA-512.

– Τιμή κατακερματισμού 256, 384, 512 bit, αντίστοιχα.

– Ίδια βασική δομή με την SHA-1.

• Για την SHA-512 ισχύει.

– Είσοδος: μήνυμα με μέγιστο μήκος 2128 bit.

– Έξοδος: σύνοψη μήκους 512 bit.

– Επεξεργασία εισόδου σε block των 1024 bit.

25

Page 26: Ασφάλια Υπολοισνικών Σξσνημάνφ퀦 · •Ιστορία Κρυπτογραφίας. •Αλγόριθμος Καίσαρα. •Permutation Algorithm.

Ασφαλής Συνάρτηση Κατακερματισμού SHA-512 (1/4)• Βήμα 1: Προσάρτηση των bit συμπλήρωσης.

– Μήκος μηνύματος ≡ 896 (mod 1024).

– Bit συμπλήρωσης: 1000…0.

• Βήμα 2: Προσάρτηση του μήκους.

– Προσάρτηση block 128 bit (μη προσημασμένος ακέραιος) που περιέχει το μήκος του μηνύματος πριν την συμπλήρωση.

26

Page 27: Ασφάλια Υπολοισνικών Σξσνημάνφ퀦 · •Ιστορία Κρυπτογραφίας. •Αλγόριθμος Καίσαρα. •Permutation Algorithm.

Ασφαλής Συνάρτηση Κατακερματισμού SHA-512 (2/4)• Βήμα 3: Απόδοση αρχικών τιμών στην περιοχή

προσωρινής αποθήκευσης κατακερματισμού.

– Buffer αποθήκευσης αποτελεσμάτων.

– 8 καταχωρητές των 64 bit (a, b, c, d, e, f, g, h).

– Αρχικοποίηση με δεκαεξαδικές τιμές.

• 64 πρώτα bit του δεκαδικού μέρους της τετραγωνικής ρίζας των πρώτων 8 πρώτων αριθμών.

27

Page 28: Ασφάλια Υπολοισνικών Σξσνημάνφ퀦 · •Ιστορία Κρυπτογραφίας. •Αλγόριθμος Καίσαρα. •Permutation Algorithm.

Ασφαλής Συνάρτηση Κατακερματισμού SHA-512 (3/4)• Βήμα 4: Επεξεργασία του μηνύματος σε τμήματα

των 1024 bit.

– 80 γύροι επεξεργασίας.

– Είσοδος κάθε γύρου: Τα περιεχόμενα του buffer.

– Wi: Προκύπτει από επεξεργασία του Mi.

– Ki: 64 πρώτα bit του δεκαδικού μέρους της ρίζας των πρώτων 80 πρώτων αριθμών – χρησιμοποιείται για να απαλείψει τυχόν κανονικότητες στα δεδομένα εισόδου.

– Η έξοδος του 80ου γύρου προστίθεται στην είσοδο του 1ου γύρου του επόμενου «κομματιού».

28

Page 29: Ασφάλια Υπολοισνικών Σξσνημάνφ퀦 · •Ιστορία Κρυπτογραφίας. •Αλγόριθμος Καίσαρα. •Permutation Algorithm.

Ασφαλής Συνάρτηση Κατακερματισμού SHA-512 (4/4)• Βήμα 5: Έξοδος.

– Το Βήμα 4 πραγματοποιείται για τα Ν τμήματα.

– Η έξοδος του σταδίου Ν είναι και η σύνοψη του μηνύματος.

29

Page 30: Ασφάλια Υπολοισνικών Σξσνημάνφ퀦 · •Ιστορία Κρυπτογραφίας. •Αλγόριθμος Καίσαρα. •Permutation Algorithm.

Άλλοι ασφαλείς αλγόριθμοι κατακερματισμού

Πίνακας 1. Άλλοι ασφαλείς αλγόριθμοι κατακερματισμού. Πηγή: Διδάσκων (2015).

SHA-512 MD5 Whirlpool

Μέγεθος σύνοψης

512 bits 128 bits 512 bits

Μέγεθος μονάδας

επεξεργασίας

1024 bits 512 bits 512 bits

Μέγιστο μέγεθος αρχικού

μηνύματος

2128 bits ∞ ∞

30

Page 31: Ασφάλια Υπολοισνικών Σξσνημάνφ퀦 · •Ιστορία Κρυπτογραφίας. •Αλγόριθμος Καίσαρα. •Permutation Algorithm.

HMAC

• Ανάπτυξη κωδικών πιστοποίησης αυθεντικότητας μηνυμάτων (MAC) με βάση έναν κρυπτογραφικό κωδικό κατακερματισμού π.χ. SHA-1.

• Κίνητρα.

– Πιο γρήγορη εκτέλεση συναρτήσεων κατακερματισμού σε σχέση με αλγορίθμους κρυπτογραφίας (π.χ. DES).

– Ευρέως διαθέσιμες βιβλιοθήκες κώδικα για συναρτήσεις κατακερματισμού.

31

Page 32: Ασφάλια Υπολοισνικών Σξσνημάνφ퀦 · •Ιστορία Κρυπτογραφίας. •Αλγόριθμος Καίσαρα. •Permutation Algorithm.

HMAC – Περιγραφή

• Η: Συνάρτηση κατακερματισμού.

• Μ: Μήνυμα εισόδου.

• Υi: Το τμήμα i του Μ.

• L: Ο αριθμός τμημάτων του Μ.

• b: Αριθμός bit ενός τμήματος.

• n: Μέγεθος κωδικού κατακερματισμού από την Η.

• K: Μυστικό κλειδί.

• Κ+: Το Κ συμπληρωμένο με 0 ώστε να έχει μήκος b bits.

• ipad: 00110110 b/8 φορές.

• opad: 0101100 b/8 φορές.

32

Page 33: Ασφάλια Υπολοισνικών Σξσνημάνφ퀦 · •Ιστορία Κρυπτογραφίας. •Αλγόριθμος Καίσαρα. •Permutation Algorithm.

HMAC - Βήματα

• Προσάρτηση 0 στο αριστερό άκρο του Κ για την δημιουργία του K+.

• XOR στο K+ με το ipad για την παραγωγή του Si μήκους b bit.

• Προσάρτηση Μ στο Si.

• Εφαρμογή του Η στη ροή που δημιουργείται στο βήμα 3.

• XOR στο K+ με το opad για την παραγωγή του So μήκους b bit.

• Προσάρτηση αποτελέσματος κατακερματισμού από το βήμα 4 στο So.

• Εφαρμογή της Η στη ροή που δημιουργείται στο βήμα 6 και έξοδος του αποτελέσματος.

HMAC(K,M) = H[(K+⊕opad) || H[(K+⊕ ipad)||M]]

33

Page 34: Ασφάλια Υπολοισνικών Σξσνημάνφ퀦 · •Ιστορία Κρυπτογραφίας. •Αλγόριθμος Καίσαρα. •Permutation Algorithm.

Ιστορία Κρυπτογραφίας

• Αλγόριθμος αντικατάστασης.

– Caesar’s cipher.

• Αλγόριθμος μετάθεσης.

– Permutation algorithm.

34

Page 35: Ασφάλια Υπολοισνικών Σξσνημάνφ퀦 · •Ιστορία Κρυπτογραφίας. •Αλγόριθμος Καίσαρα. •Permutation Algorithm.

Αλγόριθμος Καίσαρα

• Κάθε γράμμα του αλφάβητου αντικαθίσταται από το γράμμα βρίσκεται x θέσεις πιο κάτω στο ίδιο αλφάβητο.

• Το όνομά του οφείλεται στο Ιούλιο Καίσαρα.

– Τον χρησιμοποιούσε για να επικοινωνεί με τους στρατηγούς του με ασφάλεια.

35

Page 36: Ασφάλια Υπολοισνικών Σξσνημάνφ퀦 · •Ιστορία Κρυπτογραφίας. •Αλγόριθμος Καίσαρα. •Permutation Algorithm.

Permutation Algorithm

• Κάθε γράμμα του αρχικού κειμένου αντικαθίσταται από κάποιο άλλο γράμμα του αρχικού κειμένου.

• Δεν αλλάζει τους ίδιους τους χαρακτήρες απλά αλλάζει την θέση τους στο κείμενο.

– Άρα μπορεί εύκολα να ανιχνευθεί με βάση την συχνότητα εμφάνισης των γραμμάτων.

36

Page 37: Ασφάλια Υπολοισνικών Σξσνημάνφ퀦 · •Ιστορία Κρυπτογραφίας. •Αλγόριθμος Καίσαρα. •Permutation Algorithm.

Αρχές κρυπτογραφίας δημόσιου κλειδιού

• Οι αλγόριθμοι δημοσίου κλειδιού βασίζονται σε μαθηματικές συναρτήσεις και όχι πράξεις bit.

• Ασύμμετρη κρυπτογράφηση.

• Περιλαμβάνει χρήση 2 ξεχωριστών κλειδιών.– Συνέπειες σε:

• Εμπιστευτικότητα.• Διανομή κλειδιών.• Πιστοποίηση αυθεντικότητας.

– Υπολογιστικά αδύνατο να υπολογιστεί το κλειδί αποκρυπτογράφησης από την γνώση του κλειδιού κρυπτογράφησης και του αλγορίθμου που χρησιμοποιήθηκε.

37

Page 38: Ασφάλια Υπολοισνικών Σξσνημάνφ퀦 · •Ιστορία Κρυπτογραφίας. •Αλγόριθμος Καίσαρα. •Permutation Algorithm.

Δομή κρυπτογράφησης δημόσιου κλειδιού

• Το σύστημα κρυπτογράφησης έχει 5 στοιχεία:

1. Αρχικό κείμενο (plaintext).

2. Αλγόριθμος κρυπτογράφησης (encryption algorithm).

3. Δημόσιο και ιδιωτικό κλειδί (public and private key).

• Για κρυπτογράφηση/αποκρυπτογράφηση.

4. Κρυπτογράφημα (ciphertext).

5. Αλγόριθμος αποκρυπτογράφησης (decryption algorithm).

38

Page 39: Ασφάλια Υπολοισνικών Σξσνημάνφ퀦 · •Ιστορία Κρυπτογραφίας. •Αλγόριθμος Καίσαρα. •Permutation Algorithm.

Γενικός αλγόριθμος κρυπτογράφησης δημόσιου κλειδιού

• Γενικά:– Το δημόσιο κλειδί κοινοποιείται.– Το ιδιωτικό είναι γνωστό μόνο στον ιδιοκτήτη.– Κάθε χρήστης δημιουργεί ζεύγος κλειδιών.– Κάθε χρήστης τοποθετεί το δημόσιο κλειδί σε δημόσιο

καταχωρητή ή προσπελάσιμο αρχείο.– Το μήνυμα που αποστέλλεται κρυπτογραφείται με το δημόσιο

κλειδί του παραλήπτη.– Ο παραλήπτης αποκρυπτογραφεί το μήνυμα με το ιδιωτικό του

κλειδί. – Κανείς άλλος δεν μπορεί να το διαβάσει γιατί δεν έχει το ιδιωτικό

κλειδί του παραλήπτη.

• Το ιδιωτικό κλειδί μπορεί να αντικατασταθεί.– Ο χρήστης πρέπει να κοινοποιήσει το νέο δημόσιο κλειδί.

39

Page 40: Ασφάλια Υπολοισνικών Σξσνημάνφ퀦 · •Ιστορία Κρυπτογραφίας. •Αλγόριθμος Καίσαρα. •Permutation Algorithm.

Εφαρμογές κρυπτογραφικών συστημάτων δημοσίου κλειδιού• Τρεις κατηγορίες:

1. Κρυπτογράφηση/αποκρυπτογράφηση.

• Αποστολέας υπογράφει με δημόσιο κλειδί παραλήπτη .

2. Ψηφιακή υπογραφή.

• Αποστολέας «υπογράφει» με ιδιωτικό κλειδί.

3. Ανταλλαγή κλειδιών.

• Δύο πλευρές συνεργάζονται για την ανταλλαγή κλειδιού περιόδου εργασίας (session key).

40

Page 41: Ασφάλια Υπολοισνικών Σξσνημάνφ퀦 · •Ιστορία Κρυπτογραφίας. •Αλγόριθμος Καίσαρα. •Permutation Algorithm.

Απαιτήσεις κρυπτογραφίας δημόσιου κλειδιού (1/2)

• Να είναι υπολογιστικά εύκολο για ένα μέλος Β να δημιουργεί ένα ζεύγος PUb, PRb.

• Να είναι υπολογιστικά εύκολο για τον αποστολέα να δημιουργεί το κρυπτογράφημα .

– C = E( PUb, M ).

• Να είναι υπολογιστικά εύκολο για τον παραλήπτη να αποκρυπτογραφεί το κρυπτογράφημα με το ιδιωτικό κλειδί.

– Μ = D(PRb, C) = D [ PRb, E( PUb, M ) ].

41

Page 42: Ασφάλια Υπολοισνικών Σξσνημάνφ퀦 · •Ιστορία Κρυπτογραφίας. •Αλγόριθμος Καίσαρα. •Permutation Algorithm.

Απαιτήσεις κρυπτογραφίας δημόσιου κλειδιού (2/2)

• Να είναι υπολογιστικά αδύνατο για κάποιον επιτιθέμενο που γνωρίζει το δημόσιο κλειδί να βρίσκει το ιδιωτικό κλειδί.

• Να είναι υπολογιστικά αδύνατο για κάποιον επιτιθέμενο που γνωρίζει το δημόσιο κλειδί και ένα κρυπτογράφημα να ανακτήσει το αρχικό μήνυμα.

• Οποιοδήποτε από τα δυο συσχετισμένα κλειδιά μπορεί να χρησιμοποιηθεί για κρυπτογράφηση, με το άλλο να χρησιμοποιείται για αποκρυπτογράφηση.

– Μ = D [ PUb, E( PRb, M ) ] = D [ PRb, E( Pub, M ) ].

42

Page 43: Ασφάλια Υπολοισνικών Σξσνημάνφ퀦 · •Ιστορία Κρυπτογραφίας. •Αλγόριθμος Καίσαρα. •Permutation Algorithm.

Αλγόριθμοι κρυπτογραφίας δημόσιου κλειδιού

• Οι πιο συχνά χρησιμοποιούμενοι είναι οι RSA και Hellman.

• RSA.

– Ron Rivest, Adi Shamir, Led Adleman MIT, 1977.

– O RSA είναι κωδικοποιητής τμημάτων.

– Η πιο ευρέως αποδεκτή κρυπτογράφηση δημόσιου κλειδιού.

• Diffie – Hellman.

– Επιτρέπει την ανταλλαγή κλειδιών με ασφάλεια.

– Βασίζεται στην δυσκολία υπολογισμού διακριτών λογαρίθμων.

43

Page 44: Ασφάλια Υπολοισνικών Σξσνημάνφ퀦 · •Ιστορία Κρυπτογραφίας. •Αλγόριθμος Καίσαρα. •Permutation Algorithm.

Ο αλγόριθμος δημόσιου κλειδιού RSA

• Επιλέγουμε 2 πρώτους αριθμούς p, q.

• Υπολογίζουμε το n=pq.

• Υπολογίζουμε το φ(n) = (p-1)(q-1).

• Επιλέγουμε e τέτοιο ώστε gcd(φ(n),e) = 1 και 1<e< φ(n).

• Ορίζουμε d ώστε de mod φ(n) = 1 και d< φ(n).

• Δημόσιο κλειδί PU = {e,n}.

• Ιδιωτικό κλειδί PR = {d,n}.

• C = Me mod n.

• M = Cd mod n = (Me)d mod n = Med mod n.

44

Page 45: Ασφάλια Υπολοισνικών Σξσνημάνφ퀦 · •Ιστορία Κρυπτογραφίας. •Αλγόριθμος Καίσαρα. •Permutation Algorithm.

Κατάρριψη αλγορίθμου RSA

• Εξαντλητική αναζήτηση κλειδιών.

– Όσο μεγαλύτερα e, d τόσο ασφαλέστερος αλγόριθμος.

– Αλλά: Όσο μεγαλύτερο μήκος κλειδιού τόσο πιο αργή η εκτέλεση.

45

Page 46: Ασφάλια Υπολοισνικών Σξσνημάνφ퀦 · •Ιστορία Κρυπτογραφίας. •Αλγόριθμος Καίσαρα. •Permutation Algorithm.

Ανταλλαγή κλειδιών Diffie-Hellman (1/2)

• q: Πρώτος αριθμός.

• α : α < q και α πρωτογενής ρίζα του q.

• Δημιουργία κλειδιού χρήστη Α.

– Επιλογή ιδιωτικού αριθμού ΧΑ με ΧΑ < q.

– Υπολογισμός δημόσιου ΥΑ με ΥΑ = α ΧΑ mod q.

• Δημιουργία κλειδιού χρήστη Β.

– Επιλογή ιδιωτικού αριθμού ΧΒ με ΧΒ < q.

– Υπολογισμός δημόσιου ΥΒ με ΥΒ = α ΧΒ mod q.

46

Page 47: Ασφάλια Υπολοισνικών Σξσνημάνφ퀦 · •Ιστορία Κρυπτογραφίας. •Αλγόριθμος Καίσαρα. •Permutation Algorithm.

Ανταλλαγή κλειδιών Diffie-Hellman (2/2)

• Δημιουργία μυστικού κλειδιού από χρήστη Α.

– Κ = (ΥΒ)ΧΑ mod q.

• Δημιουργία μυστικού κλειδιού από χρήστη B.

– Κ = (ΥA)ΧB mod q.

47

Page 48: Ασφάλια Υπολοισνικών Σξσνημάνφ퀦 · •Ιστορία Κρυπτογραφίας. •Αλγόριθμος Καίσαρα. •Permutation Algorithm.

Ανταλλαγή κλειδιών Diffie-Hellman - Παράδειγμα (1/2)

• q: Πρώτος αριθμός, q = 353.

• α: α < q και α πρωτογενής ρίζα του q, α = 3.

• Δημιουργία κλειδιού χρήστη Α.

– Επιλογή ιδιωτικού αριθμού ΧΑ με ΧΑ < q, ΧΑ= 97.

– Υπολογισμός δημόσιου ΥΑ με ΥΑ = α ΧΑ mod q, ΥΑ=397 mod 353 = 40.

48

Page 49: Ασφάλια Υπολοισνικών Σξσνημάνφ퀦 · •Ιστορία Κρυπτογραφίας. •Αλγόριθμος Καίσαρα. •Permutation Algorithm.

Ανταλλαγή κλειδιών Diffie-Hellman - Παράδειγμα (2/2)

• Δημιουργία κλειδιού χρήστη Β.

– Επιλογή ιδιωτικού αριθμού ΧΒ με ΧΒ < q, ΧB= 233.

– Υπολογισμός δημόσιου ΥΒ με ΥΒ = α ΧΒ mod q, ΥB=3233 mod 353 = 248.

• Δημιουργία μυστικού κλειδιού από χρήστη Α.

– Κ = (ΥΒ)ΧΑ mod q = 24897 mod 353 = 160.

• Δημιουργία μυστικού κλειδιού από χρήστη B.

– Κ = (ΥA)ΧB mod q = 40233 mod 353 = 160.

49

Page 50: Ασφάλια Υπολοισνικών Σξσνημάνφ퀦 · •Ιστορία Κρυπτογραφίας. •Αλγόριθμος Καίσαρα. •Permutation Algorithm.

Άλλοι κρυπτογραφικοί αλγόριθμοι

• Πρότυπο Ψηφιακής Υπογραφής (Digital Signature Standard).

– Χρησιμοποιεί τον αλγόριθμο SHA-1.

– Δεν μπορεί να χρησιμοποιηθεί για κρυπτογράφηση ή ανταλλαγή κλειδιών.

• Κρυπτογραφία ελλειπτικής καμπύλης (Elliptic-curve cryptography).

– Προσφέρει την ίδια ασφάλεια με τον RSA αλλά με πολύ μικρότερο αριθμό bit.

– Χαμηλό επίπεδο εμπιστοσύνης.

– Μεγάλη πολυπλοκότητα.

50

Page 51: Ασφάλια Υπολοισνικών Σξσνημάνφ퀦 · •Ιστορία Κρυπτογραφίας. •Αλγόριθμος Καίσαρα. •Permutation Algorithm.

Ψηφιακές υπογραφές (1/2)

• Κρυπτογράφηση με ιδιωτικό κλειδί αποστολέα.

• Αποκρυπτογράφηση με δημόσιο κλειδί αποστολέα.

• Αποδεικνύει ποιος κρυπτογράφησε το μήνυμα.

• Ποιο αποτελεσματικό: κρυπτογράφηση ενός μόνο μικρού τμήματος bit του εγγράφου.

• Δεν προσφέρει ασφάλεια για υποκλοπή.

51

Page 52: Ασφάλια Υπολοισνικών Σξσνημάνφ퀦 · •Ιστορία Κρυπτογραφίας. •Αλγόριθμος Καίσαρα. •Permutation Algorithm.

Ψηφιακές υπογραφές (2/2)

• Λειτουργίες.

– Επικυρώνει το κείμενο και επαληθεύει την προέλευσή του.

– Χρησιμοποιείται από τον παραλήπτη ως αποδεικτικό στοιχείο.

– Χρησιμοποιείται από τρίτο πρόσωπο με σκοπό την λύση παρεξηγήσεων.

52

Page 53: Ασφάλια Υπολοισνικών Σξσνημάνφ퀦 · •Ιστορία Κρυπτογραφίας. •Αλγόριθμος Καίσαρα. •Permutation Algorithm.

Προβλήματα Ψηφιακής Υπογραφής

• Ο Κώστας θέλει να πλαστογραφήσει την ψηφιακή υπογραφή της Μαρίας.

• Μπορεί να υπογράψει μια επιταγή με το δικό του ιδιωτικό κλειδί και στη συνέχεια να παρουσιάσει το δημόσιο κλειδί του σαν να είναι της Μαρίας.

• Εάν οι υπόλοιποι βασιστούν στα λεγόμενά του, η πλαστογράφηση είναι πετυχημένη.

• Άρα χρειάζεται να υπάρχει εμπιστοσύνη απέναντι στην αντιστοίχηση κλειδιού και ταυτότητας.

• Η ψηφιακή υπογραφή δημιουργεί πρόβλημα αντιστοίχισης κλειδιών.

• Οπότε απαιτείται η ύπαρξη μιας τρίτης, έμπιστης οντότητας.

53

Page 54: Ασφάλια Υπολοισνικών Σξσνημάνφ퀦 · •Ιστορία Κρυπτογραφίας. •Αλγόριθμος Καίσαρα. •Permutation Algorithm.

Νομικό Πλαίσιο

• Διεθνής αναγνώριση ψηφιακών υπογραφών ως ισότιμες με τις χειρόγραφες και σε μερικές περιπτώσεις ως ισχυρότερες.

• Η Ευρωπαϊκή οδηγία EC/93/99 για τις ηλεκτρονικές υπογραφές έχει ήδη υιοθετηθεί από όλα τα κράτη μέλη.

• Στην Ελλάδα υιοθετήθηκε με το ΠΔ150/2001.

• Η ΕΕΤΤ με την απόφαση 248/71 (ΦΕΚ 603/Β’/16-5-2002) ρυθμίζει την διαπίστευση των παρόχων υπηρεσιών πιστοποίησης και την έκδοση αναγνωρισμένων πιστοποιητικών.

54

Page 55: Ασφάλια Υπολοισνικών Σξσνημάνφ퀦 · •Ιστορία Κρυπτογραφίας. •Αλγόριθμος Καίσαρα. •Permutation Algorithm.

Ηλεκτρονικά Υπογεγραμμένο Έγγραφο

• Αποτελείται από τα στοιχεία:

– Κύριο έγγραφο οποιασδήποτε ηλεκτρονικής μορφής.

– Συνημμένη ηλεκτρονική υπογραφή.

– Χρονοσήμανση της υπογραφής.

• Αποδίδεται από τρίτο πάροχο υπηρεσιών.

• Καθορίζει την ακριβή ώρα δημιουργίας της υπογραφής.

– Πιστοποιητικό δημόσιου κλειδιού του υπογραφόντα.

• Αποδεικνύει ότι το κλειδί του υπογράφοντα ανήκει όντως σε αυτόν, ότι δηλαδή αυτός που υπογράφει είναι όντως αυτός ο οποίος ισχυρίζεται ότι είναι.

55

Page 56: Ασφάλια Υπολοισνικών Σξσνημάνφ퀦 · •Ιστορία Κρυπτογραφίας. •Αλγόριθμος Καίσαρα. •Permutation Algorithm.

Πιστοποιητικά δημόσιων κλειδιών (1/3)

• Πρόβλημα:

– Εάν κάποιος προσποιηθεί ότι είναι ο χρήστης Α και δημοσιοποιήσει το δημόσιο κλειδί του, μπορεί να διαβάσει όλα τα μηνύματα που προορίζονται για τον Α.

• Λύση:

– Πιστοποιητικό δημόσιου κλειδιού.

• Αποτελείται από ένα δημόσιο κλειδί και ένα userIDυπογεγραμμένα από τρίτο, έμπιστο μέλος (Certificate Authority).

56

Page 57: Ασφάλια Υπολοισνικών Σξσνημάνφ퀦 · •Ιστορία Κρυπτογραφίας. •Αλγόριθμος Καίσαρα. •Permutation Algorithm.

Πιστοποιητικά δημόσιων κλειδιών (2/3)

• Ψηφιακά υπογεγραμμένη δομή δεδομένων που αντιστοιχίζει μία ή περισσότερες ιδιότητες μιας φυσικής οντότητας στο δημόσιο κλειδί που της ανήκει.

• Υπογράφονται από μια τρίτη, έμπιστη οντότητα (Trusted Third Party - TTP).

• Διασφαλίζει με τεχνικά, νομικά μέσα ότι ένα δημόσιο κλειδί ανήκει σε μια συγκεκριμένη οντότητα.

– Άρα η οντότητα αυτή είναι ο νόμιμος κάτοχος του αντίστοιχου ιδιωτικού κλειδιού.

57

Page 58: Ασφάλια Υπολοισνικών Σξσνημάνφ퀦 · •Ιστορία Κρυπτογραφίας. •Αλγόριθμος Καίσαρα. •Permutation Algorithm.

Πιστοποιητικά δημόσιων κλειδιών (3/3)

• Στοιχεία πιστοποιητικού:

– Πληροφοριακά στοιχεία για τον χρήστη.

– Το δημόσιο κλειδί του χρήστη.

– Το όνομα μιας Αρχής Πιστοποίησης (CA).

– Την ψηφιακή υπογραφή της CA.

58

Page 59: Ασφάλια Υπολοισνικών Σξσνημάνφ퀦 · •Ιστορία Κρυπτογραφίας. •Αλγόριθμος Καίσαρα. •Permutation Algorithm.

Σημείωμα Αναφοράς

Copyright ΤΕΙ Δυτικής Μακεδονίας, Νικολάου Σπύρος. «Ασφάλεια Υπολογιστικών Συστημάτων». Έκδοση: 1.0. Κοζάνη 2015. Διαθέσιμο από τη δικτυακή διεύθυνση:

59

Page 60: Ασφάλια Υπολοισνικών Σξσνημάνφ퀦 · •Ιστορία Κρυπτογραφίας. •Αλγόριθμος Καίσαρα. •Permutation Algorithm.

Σημείωμα Αδειοδότησης

Το παρόν υλικό διατίθεται με τους όρους της άδειας χρήσης Creative CommonsΑναφορά, Μη Εμπορική Χρήση Παρόμοια Διανομή 4.0 [1] ή μεταγενέστερη, Διεθνής Έκδοση. Εξαιρούνται τα αυτοτελή έργα τρίτων π.χ. φωτογραφίες, διαγράμματα κ.λ.π., τα οποία εμπεριέχονται σε αυτό και τα οποία αναφέρονται μαζί με τους όρους χρήσης τους στο «Σημείωμα Χρήσης Έργων Τρίτων».

[1] http://creativecommons.org/licenses/by-nc-sa/4.0/

Ως Μη Εμπορική ορίζεται η χρήση:

• που δεν περιλαμβάνει άμεσο ή έμμεσο οικονομικό όφελος από την χρήση του έργου, για το διανομέα του έργου και αδειοδόχο.

• που δεν περιλαμβάνει οικονομική συναλλαγή ως προϋπόθεση για τη χρήση ή πρόσβαση στο έργο.

• που δεν προσπορίζει στο διανομέα του έργου και αδειοδόχο έμμεσο οικονομικό όφελος (π.χ. διαφημίσεις) από την προβολή του έργου σε διαδικτυακό τόπο.

Ο δικαιούχος μπορεί να παρέχει στον αδειοδόχο ξεχωριστή άδεια να χρησιμοποιεί το έργο για εμπορική χρήση, εφόσον αυτό του ζητηθεί.

60

Page 61: Ασφάλια Υπολοισνικών Σξσνημάνφ퀦 · •Ιστορία Κρυπτογραφίας. •Αλγόριθμος Καίσαρα. •Permutation Algorithm.

Διατήρηση Σημειωμάτων

Οποιαδήποτε αναπαραγωγή ή διασκευή του υλικού θα πρέπει να συμπεριλαμβάνει:

το Σημείωμα Αναφοράς.

το Σημείωμα Αδειοδότησης.

τη δήλωση Διατήρησης Σημειωμάτων.

το Σημείωμα Χρήσης Έργων Τρίτων (εφόσον υπάρχει).

μαζί με τους συνοδευόμενους υπερσυνδέσμους.

61

Page 62: Ασφάλια Υπολοισνικών Σξσνημάνφ퀦 · •Ιστορία Κρυπτογραφίας. •Αλγόριθμος Καίσαρα. •Permutation Algorithm.

Βιβλιογραφία

1. Κρυπτογραφία για Ασφάλεια Δικτύων Αρχές και Εφαρμογές, Stallings.

2. Βασικές Αρχές Ασφάλειας Δικτύων: Εφαρμογές και Πρότυπα, William Stallings.

3. Ασφάλεια δικτύων 6η Έκδοση, McClure Stuart, ScambrayJoel, Kurtz George.

4. Ασφάλεια Πληροφοριακών συστημάτων, Παγκαλος Γ., Μαυριδης Ι.

62

Page 63: Ασφάλια Υπολοισνικών Σξσνημάνφ퀦 · •Ιστορία Κρυπτογραφίας. •Αλγόριθμος Καίσαρα. •Permutation Algorithm.

Τέλος Ενότητας