Ασφάλεια Πληροφοριακών Συστημάτων Κρυπτογραφία Υποπλοίαρχος Ν. Πετράκος ΠΝ Page 1
Μαθησιακοί Στόχοι Η ενότητα αυτή του μαθήματος Ηλεκτρονικών Υπολογιστών ΙΙ της Δ' Τάξης καλύπτει βασικά ζητήματα ασφαλείας πληροφοριακών συστημάτων και έχει ως στόχο: την εξοικείωση των σπουδαστών με θέματα ασφαλείας H/Y και την αναγνώριση εφαρμογών συμμετρικής και ασύμμετρης κρυπτογράφησης Page 2
Διδασκόμενη Ύλη W1-2: Εισαγωγή στην Κρυπτογραφία, Έννοιες και Ορισμοί, Ιστορικοί Κώδικες W3: Είδη Κρυπτογραφίας, Συμμετρική Κρυπτογραφία, Σύγχρονοι Συμμετρικοί Αλγόριθμοι, DES, AES W4:Συναρτήσεις Κατακερματισμού, MAC's W5: Κρυπτογραφία Δημοσίου Κλειδιού, Αλγόριθμοι Δημοσίου Κλειδιού, RSA, W6: Κρυπτογραφικά Πρωτόκολλα Συμβατικής Κρυπτογραφίας W7: Κρυπτογραφικά Πρωτόκολλα Ασύμμετρης Κρυπτογραφίας- Ειδικά Θέματα Ασφαλείας Υπολογιστικών Συστημάτων Βασικό Εργαλείο Κρυπτογραφίας για το Εργαστήριο Η/Υ: http://www.cryptool.org/en/cryptool1 (windows only) Page 3
ΕΙΣΑΓΩΓΗ ΣΤΗ ΚΡΥΠΤΟΓΡΑΦΙΑ Εισαγωγικά Θέματα: Έννοιες και Ορισμοί Είδη Κρυπτογραφίας Διαχείριση Κρυπτογραφικών Κλειδιών Κρυπτανάλυση Page 4
ΕΙΣΑΓΩΓΗ ΣΤΗ ΚΡΥΠΤΟΓΡΑΦΙΑ Βασικά Θέματα: Συμμετρική κρυπτογραφία: Ιστορικοί Αλγόριθμοι Κρυπτογραφίας Μοντέρνοι Αλγόριθμοι Κρυπτογραφίας- DES, AES Ασύμμετρη Κρυπτογραφία RSA Συναρτήσεις Κατακερματισμού (Hashing) Πρωτόκολλα Ασφαλείας Page 5
ΕΝΝΟΙΕΣ ΚΑΙ ΟΡΙΣΜΟΙ Καθαρό ή Αρχικό ή Απλό Κείμενο (Plaintext or Cleartext):Το αρχικό κείμενο το οποίο θέλουμε να κρυπτογραφήσουμε - Plaintext P { p, p,..., p } 1 2 n Κρυπτογραφημένο κείμενο ή Κρυπτοκείμενο (Ciphertext) : Το κείμενο το οποίο έχουμε κρυπτογραφήσει - Ciphertext C { c, c,..., c } 1 2 n Page 6
ΕΝΝΟΙΕΣ ΚΑΙ ΟΡΙΣΜΟΙ Μήνυμα Μ ή αρχικό κείμενο Ρ το οποίο έχει κρυπτογραφηθεί με κλειδί Κ αναγράφεται ως M K Page 7
ΚΡΥΠΤΟΛΟΓΙΑ ΚΡΥΠΤΟΓΡΑΦΙΑ ΚΡΥΠΤΑΝΑΛΥΣΗ ΣΥΜΒΑΤΙΚΗ Η ΣΥΜΜΕΤΡΙΚΗ (CONVENTIONAL OR SYMMETRIC) ΣΥΣΤΗΜΑΤΑ ΔΗΜΟΣΙΟΥ ΚΛΕΙΔΙΟΥ Η ΑΣΥΜΜΕΤΡΗ (PUBLIC KEY CRYPTOGRAPHY OR ASYMMETRIC) Αναδιάταξης ή Μετάθεσης (Transposition or Permutation) π.χ. DES Μονοαλφαβητικοί (Monoalphabetic) π.χ. Shift cipher Αντικατάστασης (Substitution) Πολυαλφαβητικοί (Polyalphabetic) π.χ. Vigenere cipher Page 8
Βασικές Αρχές Ασφαλείας Υπολογιστικών Συστημάτων Εμπιστευτικότητα (Confidentiality): Κανένας τρίτος δεν μπορεί να λάβει γνώση των μηνυμάτων που ανταλλάσσονται μεταξύ του Α και του Β (συνώνυμα: security, secrecy). Ακεραιότητα (Integrity): Κανένας τρίτος δεν μπορεί να τροποποιήσει τα μηνύματα που ανταλλάσσονται μεταξύ του Α και του Β. Αυθεντικότητα (Authenticity): Καθένας από τους Α και Β πρέπει να είναι σίγουρος για την ταυτότητα του άλλου, την προέλευση και τα λοιπά δεδομένα του μηνύματος. Αδυναμία αποκήρυξης (Non repudiation): Αδυναμία άρνησης από τον Α ή τον Β της αποστολής ή υπογραφής οποιουδήποτε μηνύματος αντάλλαξαν μεταξύ τους. Page 9
ΕΙΔΗ ΚΡΥΠΤΟΓΡΑΦΙΑΣ Συμβατική ή Συμμετρική Κρυπτογραφία Το απλό κείμενο κρυπτογραφείται με το κλειδί Κ Το Κρυπτοκείμενο αποκρυπτογραφείται με το κλειδί Κ Ασύμμετρη Κρυπτογραφία Το απλό κείμενο κρυπτογραφείται με το κλειδί K 1 Το Κρυπτοκείμενο αποκρυπτογραφείται με το κλειδί Το Κλειδιά K και συνδέονται μεταξύ τους με 1 K μαθηματική σχέση 2 K 2 Page 10
ΚΛΕΙΔΙ Μερικές επιθέσεις είναι επιτυχημένες όταν μεγάλος όγκος πληροφορίας κρυπτογραφείται με την ίδια διαδικασία κρυπτογράφησης Μία παράμετρος της διαδικασίας, το ΚΛΕΙΔΙ, μας επιτρέπει να χρησιμοποιούμε τον ίδιο αλγόριθμο κρυπτοκάλυψης, αλλάζοντας το κλειδί ανά τακτά χρονικά διαστήματα αλλάζουμε την διαδικασία κρυπτογράφησης. Page 11
ΚΛΕΙΔΙ Εάν υποθέσουμε ότι ο επιτιθέμενος έχει υποκλέψει όλα τα κρυπτοκείμενα, Εάν υποθέσουμε ότι ο επιτιθέμενος γνωρίζει τον αλγόριθμο κρυπτοκάλυψης που χρησιμοποιούμε, Τότε η ασφάλεια του κρυπτοσυστήματος έγκειται στην προστασία του χρησιμοποιούμενου κλειδιού. Page 12
Είδη Κρυπτανάλυσης Τρεις βασικές κατηγορίες/σενάρια ανάλογα με την πληροφορία που έχει ο επιτιθέμενος στη διάθεση του: Σενάριο 1 ο : Ciphertext-only attack,πρόσβαση του επιτιθέμενου μόνο στο κρυπτοκείμενο στατιστική ανάλυση (θα δούμε παρακάτω) Σενάριο 2 ο : Known-plaintext attack, πρόσβαση του επιτιθέμενου στο κρυπτοκείμενο (ciphertext) και σε κάποια τμήματα του καθαρού κειμένου (plaintext) Σενάριο 3 ο : Chosen-plaintext attack, πρόσβαση του επιτιθέμενου σε κάποια συσκευή στην οποία τοποθετεί ως input καθαρά κείμενα και λαμβάνει κρυπτοκείμενα Page 13
Αποκρυπτογραφώντας τον Αλγόριθμο Κρυπτοκάλυψης (Breaking Ciphers) Υπάρχουν δύο βασικές μορφές επίθεσης: Επίθεση Ωμής Δύναμης (Brute Force Attack) Επίθεση Συντομεύσεως (Short Cut Attack) Page 14
Επίθεση Ωμής Δύναμης (Brute Force Attack) Αποκρυπτογράφηση του κρυπτοκείμενου χρησιμοποιώντας όλα τα κλειδιά. Εάν ο επιτιθέμενος αναγνωρίσει το αποκαλυπτόμενο κείμενο όταν αυτό εμφανιστεί, τότε έχει καταφέρει να «σπάσει» τον κώδικα. Στις περισσότερες περιπτώσεις τα λάθος Κλειδιά αποκρυπτογραφούν το Κρυπτοκείμενο, σε ακολουθίες χαρακτήρων χωρίς νόημα. Page 15
Επίθεση Συντομεύσεως (Short Cut Attack) Οποιαδήποτε τεχνική επιθέσεως απαιτεί λιγότερη προσπάθεια από αυτήν που απαιτείται στην Επίθεση Ωμής Δύναμης καλείται Επίθεση Συντομεύσεως (Short Cut Attack). Μεγάλη έμφαση δίνεται σήμερα στην δημιουργία ciphers οι οποίοι είναι ανθεκτικοί σε short cut attacks. Page 16
Συμμετρική κρυπτογραφία Στη συνέχεια περιγράφονται μερικοί απλοί Συμβατικοί Κρυπταλγόριθμοι για να περιγράψουν: Την Επίθεση Ωμής Δύναμης Την Επίθεση Συντομεύσεως Πρώτα παρουσιάζεται ο Αλγόριθμος Μετατόπισης (Shift Cipher) Αλγόριθμος του Καίσαρα (Caesar's Cipher): K=3 Page 17
Αλγόριθμος Μετατόπισης Ακολουθεί ένας πίνακας κρυπτογράφησης/αποκρυπτογράφησης του Αλγόριθμου Μετατόπισης για το Ελληνικό Αλφάβητο: P i C i Α Β Γ Δ Ε Ζ Η Θ Ι Κ Λ Μ Ν Ξ Ο Π Ρ Φ Χ Υ Ω Κ Λ Μ Ν Ξ Ο Π Ρ Σ Τ Υ Φ Χ Ψ Ω Α Β... Ζ Η Θ Ι Στην 1 η Γραμμή τοποθετείται το Αλφάβητο Στην 2 η Γραμμή είναι το Αλφάβητο κυκλικά μετατοπισμένο κατά π.χ. 9 θέσεις. Page 18
Αλγόριθμος Μετατόπισης Κάθε απλό γράμμα βρίσκεται στην 1 η Γραμμή το οποίο αντικαθίσταται από αντίστοιχο γράμμα στην 2 η Γραμμή P i C i Α Β Γ Δ Ε Ζ Η Θ Ι Κ Λ Μ Ν Ξ Ο Π Ρ Φ Χ Υ Ω Κ Λ Μ Ν Ξ Ο Π Ρ Σ Τ Υ Φ Χ Ψ Ω Α Β... Ζ Η Θ Ι Σ αυτήν την περίπτωση λέμε ότι το κλειδί είναι το γράμμα K Page 19
Αλγόριθμος Μετατόπισης Ο συγκεκριμένος cipher καλείται αλγόριθμος Μετατόπισης του κλειδιού «Κ», καθώς η 2 η Γραμμή είναι μετατοπισμένη έτσι ώστε το γράμμα «Κ» βρίσκεται ακριβώς κάτω από το γράμμα «Α» Άλλοι αλγόριθμοι μετατόπισης χρησιμοποιούν διαφορετικές μετατοπίσεις γραμμάτων P i C i Α Β Γ Δ Ε Ζ Η Θ Ι Κ Λ Μ Ν Ξ Ο Π Ρ Φ Χ Υ Ω Κ Λ Μ Ν Ξ Ο Π Ρ Σ Τ Υ Φ Χ Ψ Ω Α Β... Ζ Η Θ Ι Page 20
Αλγόριθμος Μετατόπισης Η λέξη «ΕΛΛΑΣ» κρυπτογραφείται σε «ΞΥΥΚΓ» «Ε» κρυπτογραφείται σε «Ξ» «Λ» κρυπτογραφείται σε «Υ» «Λ» κρυπτογραφείται σε «Υ» «Α» κρυπτογραφείται σε «Κ» «Σ» κρυπτογραφείται σε «Γ» P i C i Α Β Γ Δ Ε Ζ Η Θ Ι Κ Λ Μ Ν Ξ Ο Π Ρ Σ Φ Χ Υ Ω Κ Λ Μ Ν Ξ Ο Π Ρ Σ Τ Υ Φ Χ Ψ Ω Α Β Γ... Ζ Η Θ Ι Page 21
Αλγόριθμος Μετατόπισης Οι ciphers οι οποίοι ακολουθούν την ανωτέρω τακτική δεν κρυπτογραφούν τον χαρακτήρα του διαστήματος (space) καθώς είναι τόσο συχνή η εμφάνιση αυτού του χαρακτήρα που βοηθάει στην αποκρυπτογράφηση του αλγόριθμου. Έτσι λοιπόν το μήνυμα «ΣΥΝΑΝΤΗΣΗ ΤΟ ΑΠΟΓΕΥΜΑ» μετατρέπεται σε «ΣΥΝΑΝΤΗΣΗΤΟΑΠΟΓΕΥΜΑ» Ο παραλήπτης μετά την αποκρυπτογράφηση θα πρέπει να επανεισαγάγει τον χαρακτήρα του κενού διαστήματος Page 22
Αλγόριθμος Μετατόπισης Κατά την αποκρυπτογράφηση χρησιμοποιούμε τον ίδιο πίνακα, ακολουθώντας την προαναφερθείσα διαδικασία αντίστροφα. Η λέξη «ΞΥΥΚΓ» αποκρυπτογραφείται σε «ΕΛΛΑΣ» P i C i Α Β Γ Δ Ε Ζ Η Θ Ι Κ Λ Μ Ν Ξ Ο Π Ρ Φ Χ Υ Ω Κ Λ Μ Ν Ξ Ο Π Ρ Σ Τ Υ Φ Χ Ψ Ω Α Β... Ζ Η Θ Ι Συνεπώς, ο παραλήπτης θα πρέπει να γνωρίζει το κλειδί το οποίο χρησιμοποιήθηκε κατά την διαδικασία της κρυπτογράφησης Page 23
Αλγόριθμος Μετατόπισης Εάν ένα κρυπτογραφημένο κείμενο υποκλαπεί και ο επιτιθέμενος γνωρίζει ότι το συγκεκριμένο μήνυμα κρυπτογραφήθηκε με τον αλγόριθμο μετατόπισης, είναι εφικτή η επίθεση Ωμής Δύναμης; Ποιος είναι ο αριθμός των πιθανών κλειδιών; Page 24
Αλγόριθμος Μετατόπισης Αποκρυπτογραφώντας το «ΞΥΥΚΓ» με κλειδί το «Β» λαμβάνουμε την ακολουθία χαρακτήρων «ΝΧΧΙΒ» P i C i Α Β Γ Δ Ε Ζ Η Θ Ι Κ Λ Μ Ν Ξ Ο Π Ρ Σ Φ Χ Υ Ω Β Γ Δ Ε Ζ Η Θ Ι Κ Λ Μ Ν Ξ Ο Π Ρ Σ Τ Χ Υ Ω Α Αποκρυπτογραφώντας το «ΞΥΥΚΓ» με κλειδί το «Γ» λαμβάνουμε το σύνολο χαρακτήρων «ΜΦΦΘΑ» P i C i Α Β Γ Δ Ε Ζ Η Θ Ι Κ Λ Μ Ν Ξ Ο Π Ρ Σ Φ Χ Υ Ω Γ Δ Ε Ζ Η Θ Ι Κ Λ Μ Ν Ξ Ο Π Ρ Σ Τ Υ Υ Ω Α Β Page 25
Αλγόριθμος Μετατόπισης Συνεχίζοντας αυτή τη διαδικασία, το κλειδί «Κ» θα αποκρυπτογραφήσει την ακολουθία χαρακτήρων «ΞΥΥΚΓ» σε «ΕΛΛΑΣ» P i C i Α Β Γ Δ Ε Ζ Η Θ Ι Κ Λ Μ Ν Ξ Ο Π Ρ Φ Χ Υ Ω Κ Λ Μ Ν Ξ Ο Π Ρ Σ Τ Υ Φ Χ Ψ Ω Α Β... Ζ Η Θ Ι Page 26
Αλγόριθμος Μετατόπισης Εάν κρυπτογραφήσουμε πολλαπλές φορές το προκύπτον κείμενο με τον αλγόριθμο Μετατόπισης θα αποκτήσουμε κάτι πιο ασφαλές; π.χ. Κρυπτογραφείστε τη λέξη «ΗΘΟΣ» για Κ=10 P i C i Α Β Γ Δ Ε Ζ Η Θ Ι Κ Λ Μ Ν Ξ Ο Π Ρ Σ Τ Υ Φ Χ Υ Ω Λ Μ Ν Ξ Ο Π Ρ Σ Τ Υ Φ Χ Ψ Ω Α Β Γ Δ Ε Ζ Η Θ Ι Κ Ποια ακολουθία γραμμάτων προκύπτει; «ΡΣΑΔ» Κρυπτογραφείστε τη λέξη «ΡΣΑΔ» για Κ=2 P i C i Α Β Γ Δ Ε Ζ Η Θ Ι Κ Λ Μ Ν Ξ Ο Π Ρ Σ Τ Υ Φ Χ Υ Ω Γ Δ Ε Ζ Η Θ Ι Κ Λ Μ Ν Ξ Ο Π Ρ Σ Τ Υ Φ Χ Ψ Ω Α Β Page 27
Αλγόριθμος Μετατόπισης Κρυπτογραφείστε τη λέξη «ΡΣΑΔ» για Κ=2 P i C i Α Β Γ Δ Ε Ζ Η Θ Ι Κ Λ Μ Ν Ξ Ο Π Ρ Σ Τ Υ Φ Χ Υ Ω Γ Δ Ε Ζ Η Θ Ι Κ Λ Μ Ν Ξ Ο Π Ρ Σ Τ Υ Φ Χ Ψ Ω Α Β Προκύπτει: «ΤΥΓΖ» Κρυπτογραφείστε τη λέξη «ΗΘΟΣ» για Κ=12 P i C i Α Β Γ Δ Ε Ζ Η Θ Ι Κ Λ Μ Ν Ξ Ο Π Ρ Σ Τ Υ Φ Χ Υ Ω Ν Ξ Ο Π Ρ Σ Τ Υ Φ Χ Ψ Ω Α Β Γ Δ Ε Ζ Η Θ Ι Κ Λ Μ Προκύπτει: «ΤΥΓΖ» Page 28
ΠΑΡΑΔΕΙΓΜΑΤΑ ΚΡΥΠΤΟΓΡΑΦΙΑΣ ΜΕ ΧΡΗΣΗ OPEN SOURCE ΛΟΓΙΣΜΙΚΟΥ Μονοαλφαβητικός Αλγόριθμος Μετατόπισης - Shift Cipher: Βασικό Εργαλέιο Κρυπτογραφίας:CrypTool (http://www.cryptool.org/en/ct1-download-en) http://www.secretcodebreaker.com/caesar-cipher.html Page 29
O ακόλουθος πίνακας απεικονίζει τον αλγόριθμο Αντικατάστασης Ο αλγόριθμος έχει τεράστιο σύνολο πιθανών κλειδιών (key space) Τα γράμματα στην τελευταία γραμμή αποτελούν την μετάθεση του αλφαβήτου: P i C i Αλγόριθμος Αντικατάστασης A B C D E F G H I G N E M A T D F L O B S I J K L M N O P Q R S T U V W X Y Z U K V C Z R H W Y J Q X P Σημείωση: Από τούδε θα χρησιμοποιούμε την Αγγλική γλώσσα για τα παραδείγματά μας Page 30
Αλγόριθμος Αντικατάστασης Ποιο είναι το Κλειδί ενός τέτοιου αλγόριθμού; Πόσες διαφορετικές μεταξύ τους κάτω γραμμές μπορούμε να έχουμε; Πόσα πιθανά κλειδιά υπάρχουν; P i C i A B C D E F G H I J K L M N O P Q R S T U V W X Y Z G N E M A T D F L O B S I U K V C Z R H W Y J Q X P Page 31
Αλγόριθμος Αντικατάστασης 26 26! = 403291461126605635584000000 = 4* 10 = 56 Ο DES έχει 2 2 88 4trillion 2 56 κλειδιά Εάν ο DES μπορεί «σπάσει» με επίθεση Brute Force σε 1 τότε θα απαιτηθεί 4 τρισεκατομμύρια λεπτά για να σπάσει ο Αλγ. Αντικατάστασης. Η επίθεση Brute Force είναι αδύνατη 88 2 Page 32
Αλγόριθμος Αντικατάστασης Αυτός ο αλγόριθμος παρέμεινε απαραβίαστος για περίπου 1000 έτη. Οι κρυπτογράφοι είχαν το πάνω χέρι Η περιγραφή για το πώς δύναται να «σπάσει» αυτός ο αλγόριθμος αναφέρθηκε πρώτα από έναν άραβα επιστήμονα τον 9º αιώνα. Page 33
Αλγόριθμος Αντικατάστασης Η επίθεση στηρίζεται στην ανάλυση της συχνότητας εμφάνισης των γραμμάτων στο κρυπτόγραμμα Εάν ένα γράμμα εμφανίζεται περί τις 12.702% φορές στο κρυπτοκείμενο, τότε είναι πολύ πιθανό να είναι το γράμμα «Ε» στο αρχικό κείμενο, κ.ο.κ. Γράμμα Ε Τ A O I Q Z Συχνότητα (%) 12.702 9.056 8.167 7.507 6.996 0.095 0.0074 Page 34
Page 35 Ιστόγραμμα συχνοτήτων εμφάνισης των γραμμάτων της αγγλικής γλώσσας
Αλγόριθμος Αντικατάστασης Σε γενικές γραμμές, 400 ή περισσότεροι χαρακτήρες απαιτούνται για να εξαχθούν τα ακόλουθα στατιστικά στοιχεία Εάν αρκετά μηνύματα κρυπτογραφηθούν με το ίδιο κλειδί τότε μπορούν αυτά τα μηνύματα να αναλυθούν μαζί. Γράμμα Ε Τ A O I Q Z Συχνότητα (%) 12.702 9.056 8.167 7.507 6.996 0.095 0.0074 Page 36
Αλγόριθμος Αντικατάστασης Εάν χρησιμοποιήθηκε ο παρακάτω πίνακας για την κρυπτογράφηση ενός κειμένου, πιο είναι το ποιο πιθανό γράμμα στο κρυπτοκείμενο; Το δεύτερο ποιο πιθανό γράμμα στο κρυπτοκείμενο; P i C i A B C D E F G H I J K L M N O P Q R S T U V W X Y Z G N E M A T D F L O B S I U K V C Z R H W Y J Q X P Γράμμα Ε Τ A O I Q Z Συχνότητα (%) 12.702 9.056 8.167 7.507 6.996 0.095 0.0074 Page 37
Αλγόριθμος Αντικατάστασης Οι ακολουθίες δύο γραμμάτων (όπως οι δίφθογγοι στην ελληνική γλώσσα) βοηθούν στην αποκρυπτογράφηση TH είναι το πιο κοινό δίγραμμα στην αγγλική γλώσσα Ποιο είναι λοιπόν το πιο πιθανό δίγραμμα στο κρυπτοκείμενο το οποίο παράχθηκε από τον ακόλουθο cipher; P i C i A B C D E F G H I J K L M N O P Q R S T U V W X Y Z G N E M A T D F L O B S I U K V C Z R H W Y J Q X P Γράμμα Ε Τ A O I Q Z Συχνότητα (%) 12.702 9.056 8.167 7.507 6.996 0.095 0.0074 Page 38
Αλγόριθμος Αντικατάστασης Στη συνέχεια μετά την συμπλήρωση των πιο πιθανών γραμμάτων ( E, T και TH )τα επόμενα πιο πιθανά γράμματα ( A, O, I ) απαιτούν αρκετές δοκιμές πριν αρχίσουν να εμφανίζονται οι σωστές λέξεις Γράμμα Ε Τ A O I Q Z Συχνότητα (%) 12.702 9.056 8.167 7.507 6.996 0.095 0.0074 Page 39
Αλγόριθμος Αντικατάστασης Ο ακόλουθος πίνακας αντικατοπτρίζει τη συχνότητα εμφάνισης των γραμμάτων της Ελληνικής Γλώσσας, όπως προέκυψε από μέτρηση δείγματος λογοτεχνικού κειμένου 194.304 χαρακτήρων Γράμμα Α Ο Τ Ε Ν Ξ Ζ Ψ Συχνότητα (%) 12 9.8 9.1 8 7.9 0.6 0.5 0.2 Πίνακας: Συχνότητα Εμφάνισης των γραμμάτων της Ελληνικής Γλώσσας Πηγή : Κώδικες και Μυστικά,Simon Shing Page 40
Homework υπ αριθμόν 1 Αλγόριθμος Αντικατάστασης : http://www.esg.montana.edu/meg/crypto/example1.html Page 41
Σύνοψη Επιθέσεων Ο Αλγόριθμος Μετατόπισης (Shift Cipher) μπορεί να δεχθεί επίθεση Brute Force επειδή ο αριθμός των κλειδιών που μπορεί να χρησιμοποιήσει (key space) είναι 26. Ο Αλγόριθμος Αντικατάστασης (Substitution cipher) είναι ανθεκτικός σε επίθεση Brute Force επειδή αριθμός κλειδιών που μπορεί να χρησιμοποιήσει είναι 26! και όμως, η επίθεση συντομεύσεως (short cut attack) δύναται να είναι επιτυχημένη. Page 42
Ένας ακόμα καλύτερος Αλγόριθμος Ανά τους αιώνες ο Αλγόριθμος Αντικατάστασης ήταν ευάλωτος σε Κρυπτανάλυση (οι κρυπταναλυστές είχαν το πλεονέκτημα) Ένας καλύτερος cipher προτάθηκε από έναν Ιταλό ευγενή, τον Leon Battista Alberti, περί το 1460 Μ.Χ. Όλοι οι προηγούμενοι αλγόριθμοι ήταν Μονοαλφαβητικοί (monoalphabetics) Σ έναν μονοαλφαβητικό αλγόριθμο, εάν το γράμμα B κρυπτογραφείται στο γράμμα E, τότε όλα τα γράμματα B που συναντούμε στο κείμενο κρυπτογραφούνται σε E Page 43
Ένας ακόμα καλύτερος Αλγόριθμος Εάν ένα κείμενο κρυπτογραφείται με τον ακόλουθο cipher τότε όλα τα B που υπάρχουν στο κείμενο κρυπτογραφούνται στο γράμμα N P i C i A B C D E F G H I J K L M N O P Q R S T U V W X Y Z G N E M A T D F L O B S I U K V C Z R H W Y J Q X P Page 44
Πολυαλφαβητικοί Ciphers Mε τον πολυαλφαβητικό cipher το γράμμα B κρυπτογραφείται μερικές φορές σε γράμμα N και άλλες φορές σε γράμμα T Ο περισσότερο γνωστός από αυτούς τους κώδικες είναι ο αλγόριθμος Vigenere, που για πρώτη φορά χρησιμοποιήθηκε τον 16 αιώνα από τον Γάλλο διπλωμάτη Blaise de Vigenere Page 45
Πολυαλφαβητικοί Ciphers Χρησιμοποιεί έναν πίνακα με όλους τους αλγόριθμους μετατόπισης (shift ciphers), ο οποίος ονομάζεται Πίνακας του Vigenere (Vigenere Tableau) Χρησιμοποιεί κωδική λέξη Η επόμενη διαφάνεια δείχνει πως θα κωδικοποιήσουμε ένα κείμενο χρησιμοποιώντας την κωδική λέξη FROG H κωδική λέξη επαναλαμβάνεται πάνω από το κείμενο Page 46
Πολυαλφαβητικοί Ciphers Το 1 ο γράμμα του κειμένου κρυπτογραφείται με Shift Cipher και κλειδί το γράμμα F Το 2 ο γράμμα του κειμένου κρυπτογραφείται με Shift Cipher και κλειδί το γράμμα R, κ.ο.κ. κωδική F R O G F R O G F R O G λέξη Κείμενο M E E T T O M O R R O W κρυπτοκείμενο R V S Z Y F A U W I C C Page 47
Caesar Cipher key Πολυαλφαβητικοί Ciphers Γράμμα προς κρυπτογράφηση Page 48
Vinegere Cipher παράδειγμα Παρατήρηση: Το 2 ο γράμμα του κειμένου κρυπτογραφείται σε γράμμα V και το 3 ο γράμμα το οποίο είναι επίσης E, κρυπτογραφείται στο γράμμα S Το 4 ο και 5 ο γράμμα του κειμένου είναι το ίδιο γράμμα T αλλά κρυπτογραφούνται σε διαφορετικά γράμματα στο κρυπτοκείμενο κωδική F R O G F R O G F R O G λέξη Κείμενο M E E T T O M O R R O W κρυπτοκείμενο R V S Z Y F A U W I C C Page 49
Vinegere Cipher παράδειγμα Σε ένα μονοαλφαβητικό κρυπταλγόριθμο αντικατάστασης, το γράμμα E πάντα θα κρυπτογραφείται στο ίδιο γράμμα και αυτό το γράμμα θα εμφανίζεται περί τις 12.702% φορές στο κρυπτοκείμενο Page 50
Vinegere Cipher παράδειγμα Στο ακόλουθο κρυπτοκείμενο υπάρχει κάποιο γράμμα το οποίο να εμφανίζεται 12.702% φορές; To πρώτο γράμμα E κρυπτογραφείται σε V Πόσο συχνά το γράμμα V θα εμφανιστεί στο κρυπτοκείμενο; κωδική F R O G F R O G F R O λέξη Κείμενο M E E T T O M O R R O κρυπτοκείμενο R V S Z Y F A U W I C Page 51
Vinegere Cipher Σαν αποτέλεσμα ο αλγόριθμος Vigenere μπορεί να αποτρέψει την κατανομή των γραμμάτων που παρατηρείται με τη χρήση των αλγορίθμων απλής αντικατάστασης, κάνοντας έτσι την στατιστική ανάλυση σχεδόν αδύνατη Γράφημα συχνότητας γραμμάτων ενός πολυαλφαβητικού κρυπτοκειμένου : Γράφημα συχνότητας εμφάνισης γραμμάτων της αγγλικής γλώσσας: Page 52
Vinegere Cipher Αναπτύχθηκαν τεχνικές οι οποίες κατάφεραν την λύση του αλγορίθμου Ο Babbage άγγλος Μαθηματικός, ανακάλυψε το 1854, έναν επιτυχημένο τρόπο επίθεσης στο κρυπτοσύστημα (δίνοντας στην Αγγλία πλεονέκτημα στον πόλεμο της Κριμαίας) Ο Kasiski, Πρώσσος Ταγματάρχης, δημοσίευσε τον τρόπο επίθεσης και επίλυσης του αλγορίθμου, το 1863 Page 53
Vinegere Cipher Η τεχνική επίθεσης περιλαμβάνει 2 στάδια: 1 ο στάδιο: Καθορισμός του μήκους της κωδικής λέξης 2 ο στάδιο: Εύρεση των γραμμάτων του απλού κειμένου Στις ακόλουθες διαφάνειες πραγματοποιούμε πρώτα το 2 ο στάδιο, επειδή είναι πιο εύκολο Page 54
Vinegere Cipher Εάν είναι γνωστό ότι η κωδική λέξη είναι μήκους 4 γραμμάτων τότε τα γράμματα κάτω από το 1 κρυπτογραφούνται με το ίδιο κλειδί του shift cipher 1 2 3 4 1 2 3 4 1 2 3 κωδική??? λέξη κείμενο??????????? κρυπτοκείμενο R V S Z Y F A U W I C Page 55
Vinegere Cipher Λάβετε υπόψη όλα τα γράμματα του κειμένου τα οποία βρίσκονται κάτω από τους αριθμούς 1 Υποθέτοντας ότι υπάρχουν τουλάχιστον 400 γράμματα κειμένου στην διάθεσή μας, πιο είναι το καθαρό γράμμα κειμένου το οποίο εμφανίζεται τις περισσότερες φορές κάτω από τους αριθμούς 1; To γράμμα E 1 2 3 4 1 2 3 4 1 2 3 κωδική??? λέξη κείμενο??????????? κρυπτοκείμενο R V S Z Y F A U W I C Page 56
Breaking Vinegere Cipher Εάν το πιο συχνά εμφανιζόμενο γράμμα στο κρυπτοκείμενο κάτω από τους αριθμούς 1, είναι το J, ποιο είναι το πρώτο γράμμα της κωδικής λέξης; To γράμμα F 1 2 3 4 1 2 3 4 1 2 3 κωδική??? λέξη κείμενο??????????? κρυπτοκείμενο R V S Z Y F A U W I C Page 57
Breaking Vinegere Cipher Όταν ο επιτιθέμενος αντιληφθεί ότι το πρώτο γράμμα της κωδικής λέξης είναι το γράμμα F, τότε μπορεί να αποκρυπτογραφήσει οποιοδήποτε γράμμα του κρυπτοκείμενου βρίσκεται κάτω από το τον αριθμό 1 1 2 3 4 1 2 3 4 1 2 3 κωδική F F F λέξη κείμενο M??? T??? R?? κρυπτοκείμενο R V S Z Y F A U W I C Page 58
Breaking Vinegere Cipher H ίδια μέθοδος κρυπτανάλυσης χρησιμοποιείται στο σύνολο των γραμμάτων τα οποία βρίσκονται κάτω από τους αριθμούς 2, εν συνεχεία 3,4, κ.ο.κ. Στο σημείο αυτό το κρυπτοκείμενο έχει αποκρυπτογραφηθεί 1 2 3 4 1 2 3 4 1 2 3 κωδική F R O G F R O G F R O λέξη κείμενο M E E T T O M O R R O κρυπτοκείμενο R V S Z Y F A U W I C Page 59
Vinegere Cipher Πώς όμως μπορεί να καθοριστεί το μήκος της κωδικής λέξης; Υπάρχουν αρκετές τεχνικές Η ποιο γνωστή αποδόθηκε στον Kasinski (εκμεταλλεύεται το γεγονός ότι συχνά επαναλαμβανόμενα μοτίβα του απλού κειμένου θα τύχουν κρυπτογράφησης με τμήματα του κλειδιού παραπάνω από μία φορά, τότε το επαναλαμβανόμενο μοτίβο θα είναι φανερό και στο κρυπτοκείμενο) Μία πιο απλή προσέγγιση παρουσιάζεται ακολούθως Page 60
Vinegere Cipher Όταν ένα σύνολο γραμμάτων κρυπτογραφείται με μονοαλφαβητικό αλγόριθμο (το γράμμα E πάντα κρυπτογραφείται με το ίδιο γράμμα, το γράμμα T πάντα κρυπτογραφείται με το ίδιο γράμμα, ), τότε το γράφημα της συχνότητας των γραμμάτων του κρυπτοκειμένου είναι ως ακολούθως: Page 61
Vinegere Cipher Το γράφημα της συχνότητας των γραμμάτων του κρυπτοκειμένου είναι περίπου αυτό επειδή: Κάποιο γράμμα του κρυπτοκειμένου εμφανίζεται 12.702%, Κάποιο γράμμα του κρυπτοκειμένου εμφανίζεται 9.506%, Κάποιο γράμμα του κρυπτοκειμένου εμφανίζεται 0.074%. Page 62
Vinegere Cipher Το μήκος του χρησιμοποιούμενου κλειδιού είναι δυνατό να βρεθεί με την ακόλουθη διαδικασία: Δημιουργία γραφήματος συχνότητας για κάθε ένα κρυπτόγραμμα (κλειδί με ένα γράμμα) Δημιουργία γραφήματος συχνότητας κάθε δεύτερου κρυπτογράμματος (κλειδί με δύο γράμματα) Δημιουργία γραφήματος συχνότητας κάθε τρίτου κρυπτογράμματος (κλειδί με τρία γράμματα) Page 63
Vinegere Cipher Εάν το γράφημα είναι : τότε το μήκος της κωδικής λέξης δεν έχει βρεθεί Εάν το γράφημα είναι : τότε το μήκος της κωδικής λέξης έχει βρεθεί Page 64
Vinegere Cipher Εάν το γράφημα είναι : τότε το γράμμα E κρυπτογραφείται στο ίδιο γράμμα, τότε το γράμμα Τ κρυπτογραφείται στο ίδιο γράμμα,, κ.ο.κ., το οποίο σημαίνει ότι το μέγεθος του κλειδιού είναι μήκους Ν Page 65
Ένας Νέος Αλγόριθμος Εάν θεωρήσουμε έναν αλγόριθμο όπως αυτόν του Vigenere, μόνο που αυτή τη φορά θα χρησιμοποιήσουμε κωδική λέξη η οποία: είναι τυχαία Το μήκος της είναι όσο και το μήνυμα το οποίο θέλουμε να κρυπτογραφήσουμε Page 66
Ένας Νέος Αλγόριθμος Η προαναφερθείσα μέθοδος επίθεσης θα είχε επιτυχία σε αυτόν τον αλγόριθμο; Όχι γιατί το κλειδί δεν επαναλαμβάνεται Εάν παρά ταύτα χρησιμοποιηθεί το ίδιο κλειδί σε διαφορετικά κείμενα, τότε ο επιτιθέμενος θα μπορούσε να συγκεντρώσει τα κρυπτογραφήματα και να παρατηρήσει την ίδια συμπεριφορά, σαν να είχε επαναλαμβανόμενο κλειδί. Page 67
Ένας Νέος Αλγόριθμος Αυτή η παρατήρηση μας οδηγεί στις προδιαγραφές που πρέπει να έχει το κλειδί ενός αλγορίθμου ώστε να μην μπορεί να αποκαλυφθεί: Το κλειδί να είναι τυχαίο Το μήκος του κλειδιού να είναι όσο και το κείμενο Το κλειδί να χρησιμοποιείται μόνο μία φορά Όταν ο αλγόριθμος πληροί τις ανωτέρω προδιαγραφές τότε καλείται One time pad ή «Σημειωματάριο μιας χρήσης»(στην βιβλιογραφία μνημονεύεται και ως αλγόριθμος του Vernam) Page 68
One Time Pad Για να αποδείξουμε ότι αυτός ο αλγόριθμος δεν μπορεί να ηττηθεί από οποιοδήποτε είδος επιθέσεως Short Cut attack, αναλογιστείτε ότι θέλουμε να κρυπτογραφήσουμε τον χαρακτήρα M O χαρακτήρας Y είναι τυχαίος Κλειδί Κείμενο Κρυπτοκείμενο Υ Μ L Όταν μία τυχαία τιμή, όπως το Y, συνδυαστεί με μία μη τυχαία τιμή όπως το M, το αποτέλεσμα είναι τυχαίο Συνεπώς το κρυπτοκείμενο είναι ένα σύνολο τυχαίων χαρακτήρων Page 69
One Time Pad Ας το δούμε μέσα από ένα αριθμητικό παράδειγμα: Η Alice επιλέγει έναν αριθμό: X=5 O Bob δημιουργεί έναν τυχαίο ακέραιο Υ, Y Εάν X+Y=N Τι είναι πιο πιθανό, ο Ν να είναι 35008 ή 35007; Page 70
One Time Pad X=5 X+Y=N Εάν ο Ν είναι πιο πιθανό να είναι ο 35008 αντί του 35007 τότε ο Υ είναι περισσότερο πιθανό να είναι 35003 αντί 35002 Αυτό όμως δεν είναι Σωστό διότι το Υ είναι ένας τυχαίος ακέραιος Συνεπώς, όλες οι τιμές έχουν την ίδια πιθανότητα, άρα το άθροισμα είναι τυχαίος αριθμός Page 71
One Time Pad Ο αλγόριθμος αυτός όμως δεν μπορεί να νικηθεί ούτε από επίθεση Brute Force Ας πάρουμε για παράδειγμα την περίπτωση όπου υποκλέπτεται το κρυπτοκείμενο: pticyyjeals H επίθεση Brute Force αναδεικνύει πέραν του ενός πιθανά κείμενα. Δύο από αυτά είναι: attacktoday = attack today donotattack = do not attack Page 72
One Time Pad Tα κλειδιά τα οποία αποκρυπτογραφούν το pticyyjeals σε αυτά τα κείμενα είναι: κλειδί p a p c w o q q x l u κείμενο a t t a c k t o d a y κρυπτο. p t i c y y j e a l s κλειδί m f v o f y q l a j i κείμενο d o n o t a t t a c k κρυπτο. p t i c y y j e a l s Page 73
One Time Pad Ποιο από τα δύο μηνύματα είναι το γνήσιο μήνυμα; Υπάρχουν άλλα πιθανά μηνύματα με 11 χαρακτήρες; Page 74
One Time Pad Με τους περισσοτέρους αλγορίθμους κρυπτογραφίας, όπως τον DES,AES, μόνο ένα κλειδί θα μετατρέψει το κρυπτογραφημένο κείμενο σε κείμενο καθαρό κείμενο Με τους παραπάνω αλγόριθμους όταν χρησιμοποιηθεί η επίθεση Brute Force, και παραχθεί κείμενο νοηματικά ορθό, τότε ο επιτιθέμενος έχει βρει το σωστό κλειδί Σε γενικές γραμμές, εκατομμύρια κλειδιών μπορούν να αποκρυπτογραφήσουν κρυπτοκαλυμμένα κείμενα One time pad, σε εκατομμύρια νοηματικά ορθά κείμενα Page 75
One Time Pad Ο αλγόριθμος Οne time pad δεν είναι γενικά εύχρηστος Για να στείλουμε ένα μήνυμα 1000 χαρακτήρων με τον cipher one time pad, πρέπει να βρούμε κλειδί 1000 γραμμάτων και να το στείλουμε ασφαλώς στον αποδέκτη του μηνύματος Το να στείλουμε με ασφάλεια το κλειδί στον αποδέκτη του μηνύματος είναι το ίδιο πρόβλημα με το να στείλουμε το ίδιο το μήνυμα στον αποδέκτη. Page 76
One Time Pad One Time pad αλγόριθμοι μπορούν να χρησιμοποιηθούν στις περιπτώσεις όπου το βιβλίο με τα κλειδιά μπορεί να διανεμηθεί νωρίτερα (Πολεμικά Πλοία, Πρεσβείες, κτλ) Κάθε μέρα χρησιμοποιείται διαφορετικό κλειδί Η διανομή των κλειδιών ασφαλείας είναι εφιάλτης Page 77
One Time Pad Κατά τη διάρκεια του Β Π.Π. οι Ρώσοι χρησιμοποιούσαν one time pad ciphers Βιβλία με κλειδιά ασφαλείας διανέμονταν νωρίτερα στους αποδέκτες Στο τέλος του πολέμου αρκετές φορές έμεναν χωρίς νέα κλειδιά ασφαλείας και αναγκάζονταν να ξαναχρησιμοποιήσουν κάποια κλειδιά με αποτέλεσμα μηνύματα τους να υποκλέπτονται Page 78
Ο αλγόριθμος Vernam O αλγόριθμος Verman είναι μία εφαρμογή στο δυαδικό σύστημα αρίθμησης, του αλγορίθμου one time pad Χρησιμοποιεί το δυαδικό τελεστή Κανόνες του XOR: 0 0 0 0 1 1 1 0 1 1 1 0, Exclusive OR (XOR) Page 79
Ο αλγόριθμος Vernam O ακόλουθος πίνακας αποτελεί παράδειγμα για το πώς το κείμενο μετατρέπεται σε κρυπτοκείμενο χρησιμοποιώντας τον τελεστή XOR κλειδί 1 1 0 1 0 0 1 0 0 0 1 Κείμενο 0 1 0 1 0 0 0 0 1 1 0 κρυπτοκείμενο 1 0 0 0 0 0 1 0 1 1 1 Page 80
Ο αλγόριθμος Vernam Το κείμενο αποκαλύπτεται όταν εκτελέσουμε XOR στο κρυπτοκείμενο με το κλειδί κλειδί 1 1 0 1 0 0 1 0 0 0 1 κρυπτοκείμενο 1 0 0 0 0 0 1 0 1 1 1 Κείμενο 0 1 0 1 0 0 0 0 1 1 0 Page 81
Συμπεράσματα Όλοι οι αλγόριθμοι που περιγράψαμε ως τώρα υπάγονται στην κατηγορία της αντικατάστασης (Substitution algorithms) Παίρνουν ένα τμήμα (block) καθαρού κειμένου ή μία δυαδική τιμή και το αντικαθιστούν με ένα διαφορετικό τμήμα ή δυαδική τιμή Υπάρχει άλλος ένας τρόπος για να αποκρύψουμε το μήνυμά μας Η διαδικασία αυτή καλείται Αναδιάταξη ή Μετάθεση (Transposition or Permutation) Page 82
Αλγόριθμος Αναδιάταξης Με την διαδικασία Αναδιάταξης ή Μετάθεσης (Transposition or Permutation) εκτελούμε αναδιάταξη ή μετάθεση των γραμμάτων ή των δυαδικών ψηφίων στο κείμενο Παράδειγμα: Γράφουμε το μήνυμα ανάποδα To μήνυμα attacktoday κρυπτογραφείται σε yadotkcatta Page 83
Αλγόριθμος Αναδιάταξης Άλλο είδος αλγορίθμου αναδιάταξης περιλαμβάνει καταγραφή του μηνύματος σε πίνακα και συγκεκριμένα καταγραφή του σε στήλη και το διαβάζουμε κατά γραμμή Παράδειγμα: To μήνυμα ATTACKTODAY A T C T D Y T A K O A Κρυπτογραφείται σε ATCTDYTAKOA Page 84
Αλγόριθμος Αναδιάταξης O Aλγόριθμος Αναδιάταξης με κλειδί ασφαλείας απαιτεί τον ακόλουθο πίνακα Για την κρυπτογράφηση του μηνύματος ATTACKTODAYBEFOREONE, καταγράφουμε το μήνυμα σε στήλες: Το παραγόμενο κρυπτογραφημένο κείμενο προκύπτει διαβάζοντας τις γραμμές με την σειρά που καθορίζεται από το κλειδί Συνεπώς το κρυπτογραφημένο κείμενο είναι το: TKAFOAOBREACDEETTYON Κλειδί 3 Α C D E E 1 Τ K A F O 4 Τ T Y O N 2 Α O B R E Page 85
Αλγόριθμος Αναδιάταξης Για να αποκρυπτογραφήσουμε TKAFOAOBREACDEETTYON ο παραλήπτης πρέπει να γνωρίζει την μορφή του πίνακα κρυπτογράφησης και την τιμή του κλειδιού Κλειδί 3 1 4 2 Page 86
Αλγόριθμος Αναδιάταξης Το παρακάτω αποτελεί τμήμα κρυπτογραφημένου μηνύματος των Ιαπωνικών Ε.Δ. το οποίο υπεκλάπει από το Αμερικάνικο Κέντρο Πληροφοριών στις 6 Δεκεμβρίου 1941, το οποίο αναφέρει ότι όλα τα πλοία βρίσκονται στο λιμάνι SIKYU 02540 GUGU OAHKL FCOIC JUUQC COGAA LMOPE LKNUR WPJFI EUENE GILDO TAOEO DJAEO PPOCF DBIQO IOGLP UIEOY LUEJA ODGIK Page 87
Αλγόριθμος Αναδιάταξης- Συμπεράσματα Ποια είναι η συχνότητα εμφάνισης των γραμμάτων του αλφαβήτου σ ένα μεγάλο μήνυμα το οποίο έχει κρυπτογραφηθεί με τον αλγόριθμο αναδιάταξης; Πως μπορεί ένα τέτοιο κρυπτοσύστημα να γίνει ανθεκτικό σε επίθεση Brute Force; Πως μπορεί ένα τέτοιο κρυπτοσύστημα να γίνει ανθεκτικό σε επίθεση Short Cut; Θα μιλήσουμε γι αυτό στις επόμενες διαφάνειες Page 88
Δημιουργώντας έναν ισχυρό Αλγόριθμο Το 1949 ο Claude Shannon ανέπτυξε μεθόδους για την σχεδίαση ciphers οι οποίοι ήταν ανθεκτικοί στις επιθέσεις Short Cut Ειδικότερα ανέπτυξε δύο προσεγγίσεις: Σύγχυση (Confusion) Διάχυση (Diffusion) Page 89
Σύγχυση Η σύγχυση αποκρύπτει τη σχέση μεταξύ του απλού κειμένου, του κρυπτογραφημένου κειμένου και του κλειδιού Επιτυγχάνεται με πολλαπλές επαναλήψεις της διαδικασίας μετάθεσης και αντικατάστασης Page 90
Διάχυση Η διάχυση αναγκάζει τον επιτιθέμενο, προκειμένου να κριθεί επιτυχημένη η επίθεση του, να υποκλέψει τεράστιο όγκο κρυπτογραφημένου κειμένου ώστε να χρησιμοποιήσει στατιστικά στοιχεία του αλφαβήτου που χρησιμοποιήθηκε στο καθαρό κείμενο Για παράδειγμα, ένας μονοαλφαβητικός αλγόριθμος ο οποίος κρυπτογραφεί μονούς χαρακτήρες, έχει μειωμένη διάχυση Page 91
Διάχυση Εάν ένα κρυπτογραφημένο κείμενο έχει παραχθεί από έναν μονοαλφαβητικό αλγόριθμο τότε ο επιτιθέμενος αρκεί να υποκλέψει περίπου 400 χαρακτήρες για να επιτύχει την επίθεσή του Αυτό επειδή η διαφορά στα ποσοστά εμφανίσεως του κάθε γράμματος είναι ξεκάθαρη Ακόμα και 1% απόκλισης δεν είναι αρκετό για να μπερδέψει τον επιτιθέμενο Απεναντίας όταν ένας cipher κρυπτογραφεί πληροφορία σε τμήματα των 8 χαρακτήρων έχει πολύ καλή διάχυση Page 92
ΣΥΓΧΡΟΝΟΙ ΣΥΜΜΕΤΡΙΚΟΙ ΑΛΓΟΡΙΘΜΟΙ Οι θεωρίες του Shannon περί Σύγχυσης και Διάχυσης ενσωματώθηκαν στην σχεδίαση των μοντέρνων ciphers όπως στον DES (Data Encryption Standard) και AES (Advanced Encryption Standard) Page 93
ΣΥΓΧΡΟΝΟΙ ΣΥΜΜΕΤΡΙΚΟΙ ΑΛΓΟΡΙΘΜΟΙ O DES (Data Encryption Standard) είναι ο πιο πολυχρησιμοποιημένος αλγόριθμος κρυπτογραφίας Υιοθετήθηκε το 1977 από τη NIST Χρησιμοποιεί 56-bit Κλειδί Page 94
ΣΥΓΧΡΟΝΟΙ ΣΥΜΜΕΤΡΙΚΟΙ ΑΛΓΟΡΙΘΜΟΙ Η/Υ Δ ΤΑΞΕΩΣ ΑΕ 2009-2010 Page 95
ΣΥΓΧΡΟΝΟΙ ΣΥΜΜΕΤΡΙΚΟΙ ΑΛΓΟΡΙΘΜΟΙ 1996: San Jose Mercury News δήλωσαν ότι κυβερνητικοί πράκτορες αποκρυπτογράφησαν κείμενο κρυπτογραφημένο με DES σε 12 sec Oι 2-Key και 3-Key triple DES δημιουργήθηκαν για να καλύψουν αυτή την αδυναμία Page 96
ΣΥΓΧΡΟΝΟΙ ΣΥΜΜΕΤΡΙΚΟΙ ΑΛΓΟΡΙΘΜΟΙ Η Federal Information Processing Data (FIPS) καθορίζει 2 παραλλαγές του 3DES 2-key 3DES και 3-key 3DES Ο 3-key 3DES παρουσιάστηκε πρώτος Page 97
3DES Η τριπλή διαδικασία κρυπτογράφησης ως ακολούθως, χρησιμοποιεί 3 διαφορετικά κλειδιά DES P κρυπτογράφηση με κλειδί κρυπτογράφηση με κλειδί κρυπτογράφηση με κλειδί K A K B K C C Page 98
3DES Εάν ένα μήνυμα έχει κρυπτογραφηθεί με 3DES με τα κλειδιά K,, με την αναγραφόμενη σειρά, A KB KC πως αποκρυπτογραφείται; C αποκρυπτογράφηση με κλειδί αποκρυπτογράφηση με κλειδί αποκρυπτογράφηση με κλειδί P K? K? K? Page 99
1. Ποια είναι τα βήματα της επιθέσεως Brute Force κατά κρυπτογραφημένου μηνύματος 3DES με κλειδιά K A K K ; B C 3DES C αποκρυπτογράφηση με κλειδί αποκρυπτογράφηση με κλειδί αποκρυπτογράφηση με κλειδί P 2. Πόσοι συνδυασμοί κλειδιών απαιτούνται; K? K? K? Page 100
Στo χειρότερο σενάριο επιθέσεως Brute Force δοκιμάζουμε όλους τους δυνατούς συνδυασμούς των κλειδιών 3 DES, δηλαδή: 2 56 * 2 56 * 2 56 2 168 επαναλήψεις 3DES Ισοδυναμεί με cipher με κλειδί 168-bit σε επίθεση Brute Force Page 101
3DES Συνεπώς, 3-key 3 DES έχει αποτελεσματικό μήκος κλειδιού 168 bits Υπάρχει μία παραλλαγή της προαναφερθείσας κρυπτογράφησης η οποία ενεργοποιεί την διαδικασία «ανάδρομης συμβατικότητας»(backward compatibility) Page 102
Η FIPS (Federal Information Processing Standard) χρησιμοποιεί τον 3 DES ως ακολούθως (Αποκρυπτογράφηση σαν ενδιάμεσο βήμα): Κείμενο- Κρυπτογράφηση με Κλειδί Α- Αποκρυπτογράφηση με Κλειδί Β- Κρυπτογράφηση με Κλειδί C- Κρυπτοκείμενο 3DES Page 103
Όταν χρησιμοποιείται το ίδιο Κλειδί και στα 3 βήματα είναι ισοδύναμο με Κείμενο- Κρυπτογράφηση με Κλειδί 1- Αποκρυπτογράφηση με Κλειδί 1- Κρυπτογράφηση με Κλειδί 1- Κρυπτοκείμενο 3DES Page 104
3DES Η διαδικασία: Kρυπτογράφηση-Αποκρυπτογράφηση- Κρυπτογράφηση (EDE) Κρυπτογράφηση με 3 διαφορετικά Κλειδιά DES είναι ισοδύναμη με κρυπτογράφηση 168-bit cipher Κρυπτογράφηση με 1 Κλειδί DES και στα τρία βήματα ισοδυναμεί με 56-bit DES Page 105
Το 2000 η NIST καθιέρωσε νέα standard στην Κρυπτογραφία, τον AES H διαδικασία επιλογής διήρκησε αρκετά χρόνια και υπήρχαν 12 υποψήφιοι αλγόριθμοι Ο Αλγόριθμος Rijndael επιλέγη λόγω: - Αντοχής στις μέχρι τότε γνωστές επιθέσεις - Ταχύτητας - Απλότητα σχεδίασης AES Page 106
AES O Rijndael υποστηρίζει: - 128, 192, 256 bit μήκους Κλειδί - 128, 192, 256 bit μήκους block Mόνο 128-bit blocks κρίθηκαν αρκετά για την ασφάλεια του AES Page 107
O Rijndael αποτελείται από πολλαπλές επαναλήψεις των παρακάτω 4 μετασχηματισμών: -ByteSub - ShiftRow - MixColumn - AddRoundKey AES Page 108
Page 109 AES
Καταστάσεις Λειτουργίας Block Ciphers ECB:Electronic Code Book CBC: Cipher Block Chaining mode CRT: Counter mode Page 110
Άλλοι Αλγόριθμοι IDEA(64bit key,128 bit key) Blowfish(64 bit blocks) RC4(64bit key,128 bit key, 8 επαναλήψεις,pretty Good privacy) Page 111
ΣΥΝΑΡΤΗΣΕΙΣ ΚΑΤΑΚΕΡΜΑΤΙΣΜΟΥ ΚΡΥΠΤΟΓΡΑΦΙΚΑ ΑΘΡΟΙΣΜΑΤΑ ΕΛΕΓΧΟΥ Page 112
Βασικές Αρχές Ασφαλείας Υπολογιστικών Συστημάτων Εμπιστευτικότητα (Confidentiality): Κανένας τρίτος δεν μπορεί να λάβει γνώση των μηνυμάτων που ανταλλάσσονται μεταξύ του Α και του Β (συνώνυμα: security, secrecy). Ακεραιότητα (Integrity): Κανένας τρίτος δεν μπορεί να τροποποιήσει τα μηνύματα που ανταλλάσσονται μεταξύ του Α και του Β. Αυθεντικότητα (Authenticity): Καθένας από τους Α και Β πρέπει να είναι σίγουρος για την ταυτότητα του άλλου, την προέλευση και τα λοιπά δεδομένα του μηνύματος. Αδυναμία αποκήρυξης (Non repudiation): Αδυναμία άρνησης από τον Α ή τον Β της αποστολής ή υπογραφής οποιουδήποτε μηνύματος αντάλλαξαν μεταξύ τους. Page 113
ΣΥΝΑΡΤΗΣΕΙΣ ΚΑΤΑΚΕΡΜΑΤΙΣΜΟΥ(Hashing) Άλλο ένα χρήσιμο εργαλείο κρυπτογραφίας Όλες οι ψηφιακές υπογραφές εξαρτώνται από «ισχυρές» συναρτήσεις κατακερματισμού Η χρησιμοποίηση «αδύναμων» συν. κατακερματισμού δύναται να θέσει την ασφάλεια των ψηφιακών υπογραφών υπό αμφισβήτηση Page 114
ΣΥΝΑΡΤΗΣΕΙΣ ΚΑΤΑΚΕΡΜΑΤΙΣΜΟΥ(Hashing) Η Συναρτ. Κατακερματισμού είναι ένα περίπλοκο άθροισμα (checksum) Δέχεται το Κείμενο M ως Είσοδο (input) και παράγει στην Έξοδο (output) μία αντιπροσωπευτική απεικόνιση της αρχικής τιμής του Μ η οποία καλείται Ηash value H τιμή αυτή του κειμένου Μ συμβολίζεται ως H(M) Οι Η(Μ) είναι ακολουθίες δυαδικών χαρακτήρων οι οποίες απεικονίζονται σε δεκαεξαδική μορφή Page 115
Παραδείγματα Συναρτήσεων Κατακερματισμού Hashing με χρήση του αλγορίθμου MD5 : 128-bit Hash Value (32 ψηφίων δεκαεξαδικό αριθμό) Εφαρμογή: ΣΥΝΑΡΤΗΣΕΙΣ ΚΑΤΑΚΕΡΜΑΤΙΣΜΟΥ(Hashing) http://md5-hash-online.waraxe.us/ Page 116
ΣΥΝΑΡΤΗΣΕΙΣ ΚΑΤΑΚΕΡΜΑΤΙΣΜΟΥ(Hashing) Σε γενικές γραμμές, η Συναρτ. Κατακερματισμού χρησιμοποιείται για να προσδιορίσει εάν η ακεραιότητα του αρχικού Κειμένου Μ έχει τροποποιηθεί (message integrity) Γενική προσέγγιση: Το μήνυμα Μ και το Η(Μ) στέλνονται μέσω δικτύου Page 117
ΣΥΝΑΡΤΗΣΕΙΣ ΚΑΤΑΚΕΡΜΑΤΙΣΜΟΥ(Hashing) Στο ακόλουθο παράδειγμα δεν είναι ορατό, αλλά ένα από τα δύο στοιχεία [Μ,Η(Μ)] είναι κρυπτογραφημένο Αlice M, H(M) Page 118
ΣΥΝΑΡΤΗΣΕΙΣ ΚΑΤΑΚΕΡΜΑΤΙΣΜΟΥ(Hashing) O παραλήπτης χρησιμοποιεί τη Συναρτ. Κατακερματισμού H στο μήνυμα Μ για να πάρει την απεικόνιση H (M). Στη συνέχεια την συγκρίνει με την με την απεικόνιση Η(Μ) την οποία έλαβε Αlice M H(M) Βob M H (M) H(M) Page 119
ΣΥΝΑΡΤΗΣΕΙΣ ΚΑΤΑΚΕΡΜΑΤΙΣΜΟΥ(Hashing) Εάν οι τιμές είναι ίδιες τότε διαπιστώνουμε ότι το μήνυμα Μ δεν έχει τροποποιηθεί Αlice M H(M) Βob M H (M) H(M) Page 120
ΣΥΝΑΡΤΗΣΕΙΣ ΚΑΤΑΚΕΡΜΑΤΙΣΜΟΥ(Hashing) Η διαπίστωση αυτή είναι Λάθος εάν ο επιτιθέμενος μπορεί να βρει ένα άλλο μήνυμα Μ2, τέτοιο ώστε Η(Μ2)=Η(Μ) Εάν βρεθεί ένα τέτοιο Μ2 τότε η Συν. Κατακερματισμού έχει «σπάσει» Page 121
ΣΥΝΑΡΤΗΣΕΙΣ ΚΑΤΑΚΕΡΜΑΤΙΣΜΟΥ(Hashing) Η παρακάτω επίθεση μπορεί να παραπλανήσει τον αποδέκτη: (Man in the Middle Attack) Αlice M H(M) O επιτιθέμενος μπλοκάρει το M και στέλνει το M2 Βob M2 H (M2) H(M) Page 122
Παράδειγμα «Αδύναμης» Συναρτ. Κατακερματισμού Υποθέστε ότι η Συναρτ. Κατακερματισμού (Η) παράγει 3-bit απεικονίσεις Υποθέστε ότι στέλνουμε το Κείμενο Μ= Leadership και ότι η Η(Μ)=100 Μπορεί κάποιος να βρει μήνυμα Μ2, ώστε Η(Μ2)=100; 000 001 010 011 100 101 110 111 Page 123
Παράδειγμα «Αδύναμης» Συναρτ. Κατακερματισμού Εάν δημιουργήσουμε αρκετά νέα μηνύματα και χρησιμοποιήσουμε τη συνάρτηση κατακερματισμού ώστε να βρούμε ένα μήνυμα του οποίου η απεικόνιση να είναι 100 πόσες φορές πρέπει να μαντέψουμε για να το επιτύχουμε; Χειρότερη περίπτωση; Κατά μέσο όρο ; 000 001 010 011 100 101 110 111 Page 124
Παράδειγμα «Αδύναμης» Συναρτ. Κατακερματισμού Γιατί η Συναρτ. Κατακερματισμού είναι αδύναμη; 000 001 010 011 100 101 110 111 Page 125
ΣΥΝΑΡΤΗΣΕΙΣ ΚΑΤΑΚΕΡΜΑΤΙΣΜΟΥ(Hashing) Πόσο μεγάλη πρέπει να είναι η Έξοδος της Συναρτ. Κατακερματισμού ώστε να αποτραπεί η προηγούμενη επίθεση; Ας υποθέσουμε ότι ο επιτιθέμενος μπορεί να δημιουργεί και να κατακερματίζει κείμενα σε ρυθμό 1.000.000 μηνύματα ανά δευτερόλεπτο Καθώς το 1 έτος έχει 31.536.000 δευτερόλεπτα, ο επιτιθέμενος μπορεί να δημιουργεί και να κατακερματίζει 31.536.000.000.000 κείμενα ανά έτος 31.536.000.000.000 είναι περίπου 5 10 10 10 10 45 2 2 2 2 2 2 Δηλ. ο επιτιθέμενος μπορεί να δημιουργήσει 45 2 μηνύματα ανά έτος Page 126
ΣΥΝΑΡΤΗΣΕΙΣ ΚΑΤΑΚΕΡΜΑΤΙΣΜΟΥ(Hashing) Άρα ο επιτιθέμενος είναι δυνατόν να συναντήσει μία φορά στο 1 έτος hash collision, εάν χρησιμοποιεί 45- bit hash function Page 127
ΣΥΝΑΡΤΗΣΕΙΣ ΚΑΤΑΚΕΡΜΑΤΙΣΜΟΥ(Hashing) Εάν χρησιμοποιηθεί 65-bit hash function αυτό σημαίνει ότι ο επιτιθέμενος θα χρειαστεί 1.000.000 έτη για να δημιουργήσει και να κατακερματίσει 2 65 μηνύματα Page 128
ΣΥΝΑΡΤΗΣΕΙΣ ΚΑΤΑΚΕΡΜΑΤΙΣΜΟΥ(Hashing) Ιδιότητες της ιδανικής Συναρτ. Κατακερματισμού: Η Συν. Κατακερματισμού Η μπορεί να εφαρμοσθεί σε οποιουδήποτε μεγέθους κείμενο Η Συν. Κατακερματισμού Η παράγει συγκεκριμένου μήκους Έξοδο (fixed size output) Η Συν. Κατακερματισμού H είναι εύκολο να υπολογισθεί Δεδομένου ενός μηνύματος Μ1, δεν είναι δυνατόν να παραχθεί ένα άλλο μήνυμα Μ2 τέτοιο ώστε Η(Μ1)=Η(Μ2) Δοσμένου του Η(Μ) δεν μπορεί να υπολογιστεί το Μ Page 129
ΣΥΝΑΡΤΗΣΕΙΣ ΚΑΤΑΚΕΡΜΑΤΙΣΜΟΥ(Hashing) Ιδιότητες της ιδανικής Συναρτ. Κατακερματισμού (συνεχ.): Είναι αδύνατο να τροποποιηθεί ένα Κείμενο Μ χωρίς να μεταβληθεί το Η(Μ) Page 130
ΣΥΝΑΡΤΗΣΕΙΣ ΚΑΤΑΚΕΡΜΑΤΙΣΜΟΥ(Hashing) ΜD5 (Message Digest): Αναπτύχθηκε από τον Ron Rivest 128-bit απεικόνιση Η Χρησιμοποιείται ευρέως στο Internet SHA(Secure Hashing Algorithm): NIST standard 160,256,384, 512 bit απεικόνιση Η Page 131
Κρυπτογραφικά Aθροίσματα Ελέγχου (Message Authentication Codes) Ένα κρυπτογραφικό άθροισμα ελέγχου βασίζεται στην λειτουργία ενός κρυπτογραφικού αλγορίθμου και βεβαιώνει ότι τα περιεχόμενα του μεταδιδόμενου ή αποθηκευμένου μηνύματος δεν έχουν αλλοιωθεί Page 132
Κρυπτογραφικά Aθροίσματα Ελέγχου (Message Authentication Codes) Τα MAC s είναι παρόμοια με τις συν. Κατακερματισμού Οι Hash functions δεν χρησιμοποιούν Κλειδί Τα Mac s χρησιμοποιούν Κλειδί Ένας τυπικός MAC είναι το τελευταίο block το οποίο έχει παραχθεί από το CBC mode ενός συμμετρικού αλγορίθμου Page 133
Κρυπτογραφικά Aθροίσματα Ελέγχου (Message Authentication Codes) Εάν Μ=(P1,,PN), το τελευταίο κρυπτογραφημένο block του CBC είναι το Cn, μπορεί μερικές φορές να χρησιμοποιηθεί ως MAC του M IV P1 P2 PN DES DES DES C1 C2 Cn Page 134
Κρυπτογραφικά Aθροίσματα Ελέγχου (Message Authentication Codes) Eάν ένα bit σε οποιοδήποτε block του απλού κειμένου τροποποιήθηκε, θα αλλάξει η τιμή του Cn; IV P1 P2 PN DES DES DES C1 C2 Cn Page 135
Page 136 ΚΡΥΠΤΟΓΡΑΦΙΑ ΔΗΜΟΣΙΟΥ ΚΛΕΙΔΙΟΥ
Κρυπτογραφία Δημοσίου Κλειδιού (Public key Cryptography) Η Κρυπτογραφία Δημοσίου κλειδιού ονομάζεται παράλληλα «Ασύμμετρη Κρυπτογραφία», καθώς χρησιμοποιεί δύο διαφορετικά κλειδιά Το ένα εκ των δύο κλειδιών καλείται ΔΗΜΟΣΙΟ ΚΛΕΙΔΙ και το έτερο καλείται ΙΔΙΩΤΙΚΟ ΚΛΕΙΔΙ Page 137
Κρυπτογραφία Δημοσίου Κλειδιού (Public key Cryptography) H ιδέα της Ασύμμετρης Κρυπτογραφίας πρωτοπαρουσιάστηκε το 1976 από τους Diffie & Hellman H Ασύμμετρη Κρυπτογραφία επινοήθηκε για να λύσει 2 βασικά προβλήματα: Να απλοποιήσει την διαδικασία διανομής κλειδιών Την εισαγωγή της ψηφιακής υπογραφής Page 138
Στοιχειώδη Κρυπτογραφίας Δημοσίου Κλειδιού Τα δύο αυτά κλειδιά συνδέονται με μαθηματική σχέση Η πληροφορία κρυπτογραφείται με το ένα κλειδί και αποκρυπτογραφείται με το άλλο Σε αυτή τη διάταξη : Το ΙΔΙΩΤΙΚΟ κλειδί κρατείται κρυφό Το ΔΗΜΟΣΙΟ κλειδί διανέμεται ελεύθερα και είναι γνωστό σε άλλους χρήστες Page 139
Στοιχειώδη Κρυπτογραφίας Δημοσίου Κλειδιού Εάν ένα μήνυμα κρυπτογραφηθεί με το Δημόσιο Κλειδί ενός χρήστη, τότε θα πρέπει να αποκρυπτογραφηθεί με το αντίστοιχο Ιδιωτικό Κλειδί Εάν ένα μήνυμα κρυπτογραφηθεί με το Ιδιωτικό Κλειδί ενός χρήστη, τότε θα πρέπει να αποκρυπτογραφηθεί με το αντίστοιχο Δημόσιο Κλειδί Και τα δύο κλειδιά μπορούν να χρησιμοποιηθούν εξίσου για κρυπτογράφηση και αποκρυπτογράφηση Page 140
Παράδειγμα Κρυπτογράφησης Δημοσίου Κλειδιού Ο κάθε χρήστης παράγει ένα ζευγάρι κλειδιών (ιδιωτικό, δημόσιο) π.χ.: Η Alice παράγει τα κλειδιά Alice-pri και Alicepub O Bob παράγει τα κλειδιά Bob-pri και Bob-pub Η Carol παράγει τα κλειδιά Carol-pri και Carolpub Page 141
Παράδειγμα Κρυπτογράφησης Δημοσίου Κλειδιού Kάθε χρήστης διανέμει το δικό του Δημόσιο Κλειδί στους άλλους χρήστες Μετά την διανομή των Δημοσίων Κλειδιών, κάθε χρήστης έχει τα κλειδιά που αναγράφονται στον ακόλουθο πίνακα: Page 142
Παράδειγμα 1 ο Κρυπτογράφησης Δημοσίου Κλειδιού Εάν η Alice κρυπτογραφήσει το κείμενο με το Δημόσιο Κλειδί του Bob (Bob s-pub) ποιος θα μπορούσε μόνο να το αποκρυπτογραφήσει; Alice Bob Carol Alice-pri Bob-pri Carol-pri Alice-pub Bob-pub Carol-pub Bob-pub Alice-pub Alice-pub Carol-pub Carol-pub Bob-pub Page 143
Παράδειγμα 2 ο Κρυπτογράφησης Δημοσίου Κλειδιού Alice Bob Carol Alice-pri Bob-pri Carol-pri Alice-pub Bob-pub Carol-pub Bob-pub Alice-pub Alice-pub Carol-pub Carol-pub Bob-pub Eάν η Alice κρυπτογραφήσει ένα μήνυμα με το κλειδί : Αlice-pri, ποιος μπορεί να το αποκρυπτογραφήσει; Εάν ένα κρυπτοκείμενο ορθά αποκρυπτογραφείται με το κλειδί: Alice-pub, με ποιο κλειδί έχει κρυπτογραφηθεί; Ποιος το έχει; Page 144
Κρυπτογραφία Δημοσίου Κλειδιού Το 1 ο παράδειγμα δείχνει πως μπορούμε να στείλουμε ένα κείμενο μυστικά (confidentiality) Κρυπτογράφηση δηλαδή, με το δημόσιο κλειδί του παραλήπτη Το 2 ο παράδειγμα αποτελεί την βασική αρχή της ψηφιακής υπογραφής Εάν ένα μήνυμα αποκρυπτογραφείται με το κλειδί: Alicepub, τότε κρυπτογραφήθηκε με το Alice-pri που μόνο η Alice το έχει (authenticity) Page 145
Κρυπτογραφία Δημοσίου Κλειδιού Εάν λοιπόν η εμπιστευτικότητα και η αυθεντικότητα είναι επιθυμητή πρέπει η κρυπτογράφηση με δημόσιο και ιδιωτικό κλειδί να χρησιμοποιηθούν από κοινού: (Μ_Alice-pri)_Bob-pub (M_Bob-pub)_Alice-pri Page 146
Κρυπτογραφία Δημοσίου Κλειδιού Υπενθυμίζεται ότι στην συμμετρική κρυπτογραφία τα κλειδιά πρέπει να διανεμηθούν μυστικά Είναι το ίδιο αλήθεια για την διανομή των δημοσίων κλειδιών; Συνεπώς είναι πιο εύκολη η διανομή των δημοσίων κλειδιών Η Υποδομή Δημοσίου Κλειδιού (Public Key Infrastructure-PKI) αποτελεί την ασφαλέστερη τεχνική Page 147
Ο Αλγόριθμος του Κρυπτοσυστήματος Δημοσίου Κλειδιού Υπάρχουν μερικοί μαθηματικοί αλγόριθμοι οι οποίοι μπορούν να χρησιμοποιηθούν για την παραγωγή δημοσίων και ιδιωτικών κλειδιών (RSA, El Gamal, Elliptic Curve) Ο ποιο διαδεδομένος είναι ο αλγόριθμος RSA(Rivest-Shamir- Adleman) Page 148
Ο Αλγόριθμος του Κρυπτοσυστήματος Δημοσίου Κλειδιού Υπάρχει ένας νέος αλγόριθμος ο οποίος χρησιμοποιείται στην Κρυπτογραφία Δημοσίου Κλειδιού, αυτός των Eλλειπτικών Kαμπύλων (Elliptic Curves) O εν λόγω αλγόριθμος λέγεται ότι θα αντικαταστήσει τον RSA καθώς είναι εξίσου ασφαλής και χρησιμοποιεί κλειδιά μικρότερου μήκους συνεπώς η κρυπτογράφηση / αποκρυπτογράφηση είναι πολύ πιο γρήγορη Page 149
Ο Αλγόριθμος RSA O αλγόριθμος RSA χρησιμοποιεί το τετραγωνικό υπόλοιπο (Modular Arithmetic): AmodB ορίζεται ως το υπόλοιπο μετά την διαίρεση του Α από το Β: π.χ. 10mod7 3 100mod3 1 25mod5 0 5mod7 5 Page 150
Μodular Arithmetic Το τετραγωνικό υπόλοιπο είναι χρήσιμο σε πολλές περιπτώσεις Π.χ. μπορεί να χρησιμοποιηθεί για να περιγράψει την κρυπτογράφηση/αποκρυπτογράφηση του Shift Cipher: Τα γράμματα συσχετίζονται με αριθμούς ως ακολούθως: 0 1 2 3 4 5 6 7 21 22 23 24 25 Α Β C D E F G H V W X Y Z Page 151
Μodular Arithmetic 0 1 2 3 4 5 6 7 21 22 23 24 25 Α Β C D E F G H V W X Y Z C ( P 6)mod26 Ο τύπος: περιγράφει την ίδια διαδικασία όπου το κλειδί είναι το γράμμα G : P Α Β C D E F G H V W X Y Z C G H I J K L M N B C D E F Page 152
Μodular Arithmetic 0 1 2 3 4 5 6 7 21 22 23 24 25 Α Β C D E F G H V W X Y Z C ( P 6)mod26 Με ποιο γράμμα κρυπτογραφείται το W σύμφωνα με τον ανωτέρω τύπο; P Α Β C D E F G H V W X Y Z C G H I J K L M N B C D E F Page 153
Μodular Arithmetic 0 1 2 3 4 5 6 7 21 22 23 24 25 Α Β C D E F G H V W X Y Z Παρατήρηση: P ( C 20)mod26 ο ανωτέρω τύπος αποκρυπτογραφεί τους χαρακτήρες Το γράμμα E αποκρυπτογραφείται σε: P Α Β C D E F G H V W X Y Z C G H I J K L M N B C D E F Page 154
Μodular Arithmetic 0 1 2 3 4 5 6 7 21 22 23 24 25 Α Β C D E F G H V W X Y Z Mία μετατόπιση 6 θέσεων ακολουθούμενη από μετατόπιση 20 θέσεων είναι ουσιαστικά μετατόπιση 26 θέσεων, δηλ. μετατόπιση του γράμματος στην αρχική του θέση C P ( P 6)mod26 ( C 20)mod26 Page 155
Μodular Arithmetic Οι ακόλουθοι τύποι καθορίζουν την κρυπτογράφηση/αποκρυπτογράφηση του αλγόριθμου μετατόπισης : Όπου K1+K2=26 C ( P K1)mod26 P ( C K2)mod26 Αυτοί οι τύποι είναι παρόμοιοι με τους τύπους που χρησιμοποιεί ο αλγόριθμος RSA Page 156
Οι ακόλουθοι τύποι καθορίζουν την κρυπτογράφηση/αποκρυπτογράφηση του αλγόριθμου RSA : Όπου: O Αλγόριθμος RSA P N C P K1 modn K P C 2 modn Οι τιμές των Κ1,Κ2 και Ν είναι καθορισμένες μέσω μιας πολύπλοκης διαδικασίας παραγωγής κλειδιού RSA Page 157
O Αλγόριθμος RSA Παράδειγμα κρυπτογράφησης/ αποκρυπτογράφησης RSA χρησιμοποιώντας τους ακόλουθους τύπους : P 143 C P 113 mod143 P C 17 mod143 Στην πραγματικότητα οι εκθέτες είναι πάρα πολύ μεγάλοι αριθμοί και ο modulus είναι αριθμός 200 ψηφίων Page 158
O Αλγόριθμος RSA Εάν P C P K1 modn K P C 2 modn 143 Οι Κ1 και Ν αποτελούν το Δημόσιο Κλειδί Οι Κ2 και Ν αποτελούν το Ιδιωτικό Κλειδί Page 159
O Αλγόριθμος RSA Οι Κ1 και Ν αποτελούν το Δημόσιο Κλειδί της Alice Οι Κ2 και Ν αποτελούν το Ιδιωτικό Κλειδί της Alice Όταν ο Bob κρυπτογραφεί ένα μήνυμα M για την Alice, μεταφράζει την δυαδική μορφή του μηνύματος σε δεκαδικό αριθμό εφαρμόζει τον κάτωθι τύπο μαζί με το Δημ. Κλειδί της Alice και υπολογίζει τον αριθμό C C M K1 modn Page 160
O Αλγόριθμος RSA Οι Κ1 και Ν αποτελούν το Δημόσιο Κλειδί της Alice Οι Κ2 και Ν αποτελούν το Ιδιωτικό Κλειδί της Alice Όταν η Alice λάβει το C, το αποκρυπτογραφεί σε Μ χρησιμοποιώντας το Ιδιωτ. της Κλειδί (Κ2 και Ν) και εφαρμόζοντας τον ακόλουθο τύπο: K M C 2 modn Page 161
O Αλγόριθμος RSA Οι 3 τιμές των Κ1,Κ2,Ν απορρέουν από την ακόλουθη διαδικασία: Τυχαία επιλογή 2 μεγάλων Πρώτων αριθμών (prime numbers) p και q, μήκους 100 ψηφίων Ν=p*q Όπου Ν ο αριθμός των προηγούμενων σχέσεων Page 162
O Αλγόριθμος RSA Οι 3 τιμές των Κ1,Κ2,Ν απορρέουν μέσω της ακόλουθης διαδικασίας: Πολλαπλασιάζουμε (p-1)*(q-1) Επιλέγουμε έναν αριθμό Κ1 ο οποίος δεν έχει κοινό παράγοντα με το γινόμενο (p-1)*(q-1) Εν συνεχεία βρίσκουμε αριθμό Κ2 ούτως ώστε: ( K2 * K1)mod[( p 1) * ( q 1)] 1 Page 163
O Αλγόριθμος RSA Οι 3 τιμές των Κ1,Κ2,Ν απορρέουν από την ακόλουθη διαδικασία: Αυτό παράγει Κ1,Κ2 και Ν τέτοιο ώστε: C P K1 modn K P C 2 modn P N Page 164
O Αλγόριθμος RSA Παράδειγμα: Τυχαία επιλέγουμε 2 Πρώτους αριθμούς p και q Έστω: p=11 και q=13 N=p*q=11*13=143 Υπολογίζουμε το γινόμενο: (p-1)*(q-1) (p-1)*(q-1)=10*12=120 Eπιλέγουμε Κ1, τέτοιο ώστε να μην υπάρχουν κοινοί παράγοντες με το 120 Εφόσον το 17 δεν έχει κοινούς παράγοντες με το 120, τότε Κ1=17 Page 165
O Αλγόριθμος RSA Παράδειγμα: Βρίσκουμε αριθμό Κ2, τέτοιος ώστε :Κ2*17mod120= 1 Η απάντηση είναι 113 επειδή: 113*17=1921 και 1921mod120= 1 K2=113,K1=17,N=143 Alice-pub=(17,143) και Alice-pri=(113,143) Page 166
O Αλγόριθμος RSA Παράδειγμα: Θεωρήστε ότι η δυαδική μορφή ενός κειμένου Μ αντιστοιχεί στον αριθμό 13 Το Δημοσ. Κλειδί (17,143) της Αlice εφαρμόζεται στον τύπο του RSA για να κρυπτογραφήσουν τον αριθμό 13 σε 117 17 13 mod143 117 Κρυπτογράφηση του Μ σε κρυπτοκείμενο του οποίου η τιμή είναι 117 Page 167
Επίθεση Συντομεύσεως στον RSA Το Δημ. Κλειδί της Alice είναι: Εκθέτης:17 και modulus=143 Το Ιδιωτ. Κλειδί της Alice είναι: Εκθέτης:113 και modulus=143 Ο επιτιθέμενος έχοντας το Δημ. Κλειδί θα μπορούσε να βρει τον εκθέτη του Ιδιωτ. Κλειδιού, εάν θα μπορούσε να παραγοντοποιήσει τον αριθμό 143 Page 168
Επίθεση συντομεύσεως στον RSA Εάν ο επιτιθέμενος θα μπορούσε να παραγοντοποιήσει τον αριθμό 143 σε 11*13, θα μπορούσε να πολ/σει (11-1)*(13-1)=120 Έπειτα θα μπορούσε να βρει Alice s-pri, εκθέτη Κ2 επιλύοντας την σχέση που χρησιμοποιήσαμε για την παραγωγή του κλειδιού:κ2*17mod120 1 Συνεπώς έχουμε:κ2=113,alice s-pri(113,143) Page 169
Πόσο δύσκολη είναι η παραγοντοποίηση; Πως μπορούν να βρεθούν οι παράγοντες π.χ. του 187; H ποιο απλή προσέγγιση περιλαμβάνει διαδοχική/επαναλαμβανόμενη διαίρεση ξεκινώντας από μικρούς αριθμούς μέχρι ο παράγοντας να βρεθεί: Είναι το 2 παράγοντας; Είναι το 3 παράγοντας; Είναι το 4 παράγοντας;πρέπει να δοκιμάσουμε το 4; Γιατί; Page 170
Πόσο δύσκολη είναι η παραγοντοποίηση; Έτσι αρκεί να δοκιμάζουμε μόνο Πρώτους αριθμούς Είναι το 5 παράγοντας του 187; Είναι το 7 παράγοντας του 187; Πρέπει να δοκιμάσουμε όλους τους αριθμούς οι οποίοι είναι μικρότεροι του 187/2; Πόσο μεγάλος πρέπει να είναι ο αριθμός τον οποίο πρέπει να δοκιμάσουμε; Είναι το 11 παράγοντας του 187; Page 171
Επίθεση Συντομεύσεως στον RSA Ο αλγόριθμος παραγοντοποίησης είναι απλός Διαιρέστε τον modulus N με όλους τους Πρώτους αριθμούς οι οποίοι είναι μικρότεροι από τον N Ο μόνος τρόπος να αντιμετωπιστεί αυτή η επίθεση είναι να χρησιμοποιηθεί αρκετά μεγάλο Ν, ώστε για να ολοκληρωθεί αυτή η επαναλαμβανόμενη διαδικασία να απαιτηθούν δεκαετίες ακόμα και με τα ταχύτερα Υπολογιστικά Συστήματα Ως εκ τούτου χρησιμοποιούμε Πρώτους αριθμούς μήκους 100 ψηφίων, ως p και q, οπότε το γινόμενο p*q είναι ένας αριθμός μήκους 200 ψηφίων Page 172
Επίθεση Συντομεύσεως στον RSA Η σύγχρονη βιβλιογραφία ισχυρίζεται ότι:1024 bit RSA κλειδί απαιτείται για την παροχή ίδιου βεληνεκούς προστασίας με 80-bit κλειδί συμμετρικής κρυπτογραφίας. Page 173
Επίθεση Συντομεύσεως στον RSA Το σχόλιο αυτό αφορά την επίθεση Short Cut Attack και υποστηρίζει ότι 80 απαιτούνται 2 επαναλήψεις για την παραγοντοποίηση της modulus τιμής 1024-bit κλειδιού, περίπου ίσος αριθμός επαναλήψεων που απαιτούνται για την Brute Force επίθεση σε 80-bit Συμβατικό Cipher Page 174