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

Σχετικά έγγραφα
ΤΕΙ Κρήτης Τμήμα Μηχανικών Πληροφορικής. Συμμετρική Κρυπτογραφία

Κρυπτογραφία. Κωνσταντίνου Ελισάβετ

Υπολογιστική Θεωρία Αριθμών και Κρυπτογραφία

Συμμετρική Κρυπτογραφία

Συμμετρικά κρυπτοσυστήματα

Κρυπτογραφία. Κρυπτοσυστήματα τμήματος (Block ciphers) Άρης Παγουρτζής Στάθης Ζάχος Πέτρος Ποτίκας

Εφαρμοσμένη Κρυπτογραφία Ι

Κρυπτογραφία. Κρυπτοσυστήματα τμήματος (Block ciphers) Άρης Παγουρτζής Στάθης Ζάχος Πέτρος Ποτίκας

Κρυπτογραφία. Κεφάλαιο 1 Γενική επισκόπηση

Κρυπτογραφία. Κρυπτοσυστήματα τμήματος (Block ciphers) Άρης Παγουρτζής Στάθης Ζάχος Πέτρος Ποτίκας

Κρυπτογραφία. Κρυπτοσυστήματα τμήματος (Block ciphers) Άρης Παγουρτζής Στάθης Ζάχος Πέτρος Ποτίκας

Κρυπτογραφία. Κρυπτοσυστήματα πακέτου (Block ciphers) Άρης Παγουρτζής Στάθης Ζάχος Πέτρος Ποτίκας

Κρυπ Κρ το υπ γραφία Κρυπ Κρ το υπ λογίας

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

Δ Εξάμηνο. Κρυπτογραφία: Συμμετρική Κρυπτογράφηση

Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων. Κρυπτογραφία. Εισαγωγή. Χρήστος Ξενάκης

Εφαρμοσμένη Κρυπτογραφία Ι

Αυθεντικότητα Μηνυμάτων Συναρτήσεις Hash/MAC

ΕΠΛ 674: Εργαστήριο 1 Ασφάλεια Επικοινωνιακών Συστημάτων - Κρυπτογραφία

Πληροφορική Ι. Μάθημα 10 ο Ασφάλεια. Τμήμα Χρηματοοικονομικής & Ελεγκτικής ΤΕΙ Ηπείρου Παράρτημα Πρέβεζας. Δρ. Γκόγκος Χρήστος

Αλγόριθµοι συµµετρικού κλειδιού

ΑΣΦΑΛΕΙΑ & ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ(Θ)

Κρυπτογραφία. Εργαστηριακό μάθημα 5 Stream ciphers Κρυπτανάλυση με τον αλγόριθμο Berlekamp-Massey

Symmetric Cryptography. Dimitris Mitropoulos

Cryptography and Network Security Chapter 2. Fifth Edition by William Stallings

Κρυπτογραφία. Εργαστηριακό μάθημα 1

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Πληροφορική Ι. Ενότητα 10 : Ασφάλεια. Δρ. Γκόγκος Χρήστος

Εισαγωγή στην Κρυπτογραφία και τις Ψηφιακές Υπογραφές

ΚΡΥΠΤΟΓΡΑΦΙΑ ΚΑΙ ΑΣΦΑΛΕΙΑ ΥΠΟΛΟΓΙΣΤΩΝ. Δ Εξάμηνο

Κεφάλαιο 2. Κρυπτογραφικά εργαλεία

Εισ. Στην ΠΛΗΡΟΦΟΡΙΚΗ. Διάλεξη 8 η. Βασίλης Στεφανής

Εισαγωγή στην επιστήμη της Πληροφορικής και των. Aσφάλεια

ΚΡΥΠΤΟΓΡΑΦΙΑ ΚΑΙ ΑΣΦΑΛΕΙΑ ΥΠΟΛΟΓΙΣΤΩΝ. Δ Εξάμηνο

ΚΡΥΠΤΟΓΡΑΦΙΑ ΚΑΙ ΑΣΦΑΛΕΙΑ ΥΠΟΛΟΓΙΣΤΩΝ. Δ Εξάμηνο

Εισαγωγή στην επιστήμη της Πληροφορικής και των Τηλεπικοινωνιών. Aσφάλεια

8.3.4 Τεχνικές Ασφάλειας Συμμετρική Κρυπτογράφηση Ασυμμετρική Κρυπτογράφηση Ψηφιακές Υπογραφές

ΑΣΦΑΛΕΙΑ & ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ(Θ)

Οι απειλές. Απόρρητο επικοινωνίας. Αρχές ασφάλειας δεδομένων. Απόρρητο (privacy) Μέσω κρυπτογράφησης

Ηλεκτρονικό εμπόριο. HE 7 Τεχνολογίες ασφάλειας

ΚΡΥΠΤΟΓΡΑΦΙΑ ΚΑΙ ΑΣΦΑΛΕΙΑ ΥΠΟΛΟΓΙΣΤΩΝ. Δ Εξάμηνο

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

Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών Ασφάλεια Δεδομένων.

ΑΣΦΑΛΕΙΑ & ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ(Θ)

Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων. Κρυπτογραφία. Κρυπτοαλγόριθμοι. Χρήστος Ξενάκης

Εισαγωγή στην επιστήμη της Πληροφορικής και των Τηλεπικοινωνιών. Aσφάλεια

Ασφάλεια Πληροφοριακών Συστηµάτων. Αυθεντικότητα Μηνυµάτων 1

Ασφάλεια Τηλεπικοινωνιακών Συστημάτων ΣΤΑΥΡΟΣ Ν ΝΙΚΟΛΟΠΟΥΛΟΣ 03 ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΚΡΥΠΤΟΛΟΓΙΑ

Ασφάλεια Πληροφοριακών Συστημάτων Αρχιτεκτονική Ασφάλειας

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ - ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 131: ΑΡΧΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I ΕΡΓΑΣΙΑ 2

Κρυπτογραφία. Κεφάλαιο 4 Αλγόριθμοι Δημοσίου Κλειδιού (ή ασύμμετροι αλγόριθμοι)

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

ΚΡΥΠΤΟΓΡΑΦΙΑ ΚΑΙ ΑΣΦΑΛΕΙΑ ΥΠΟΛΟΓΙΣΤΩΝ. Δ Εξάμηνο

Εργαστήριο Ασφάλεια Πληροφοριακών Συστημάτων. Συναρτήσεις Κατακερματισμού

Κρυπτογραφία. Κωνσταντίνου Ελισάβετ

ΑΣΥΜΜΕΤΡΗ ΚΡΥΠΤΟΓΡΑΦΙΑ Lab 3

Cryptography and Network Security Chapter 3. Fifth Edition by William Stallings

Π Α Ν Ε Π Ι Σ Τ Η Μ Ι Ο Π ΑΤ Ρ Ω Ν

Hash Functions. μεγεθος h = H(M) ολους. στο μηνυμα. στο συγκεκριμενο hash (one-way property)

ΠΕΡΙΕΧΟΜΕΝΑ 1. Εισαγωγή 2. Θεωρία αριθμών Αλγεβρικές δομές 3. Οι κρυπταλγόριθμοι και οι ιδιότητές τους

Αλγόριθµοι δηµόσιου κλειδιού

Κρυπτογραφία και Ηλεκτρονικοί Υπολογιστές. ΣΥΝΤΕΛΕΣΤΕΣ: Κραβαρίτης Αλέξανδρος Μαργώνη Αγγελική Χαλιμούρδα Κων/να

Ασφάλεια Πληροφοριακών Συστημάτων. Συμμετρική Κρυπτογραφία ΙΙ. Τμήμα Μηχ. Πληροφορικής ΤΕΙ Κρήτης. Ασφάλεια Πληροφοριακών Συστημάτων

6/1/2010. Ασφάλεια Ασύρματων & Κινητών Επικοινωνιών. Περιεχόμενα. Εισαγωγή /1 IEEE

YΒΡΙΔΙΚΗ ΚΡΥΠΤΟΓΡΑΦΙΑ

ΒΑΣΙΚΑ ΘΕΜΑΤΑ ΚΡΥΠΤΟΓΡΑΦΙΑΣ

Κρυπτογραφία. Κεφάλαιο 3 Αλγόριθμοι τμήματος Block ciphers

ΠΡΟΣΤΑΣΙΑ ΠΡΟΣΩΠΙΚΩΝ ΔΕΔΟΜΕΝΩΝ ΣΤΙΣ ΤΕΧΝΟΛΟΓΙΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΩΝ ΚΑΘΩΣ ΚΑΙ ΣΤΟ ΔΙΑΔΙΚΤΥΟ

1. Τι είναι ακεραιότητα δεδομένων, με ποιους μηχανισμούς επιτυγχάνετε κ πότε θα χρησιμοποιούσατε τον καθένα εξ αυτών;

UP class. & DES και AES

κρυπτογραϕία Ψηφιακή ασφάλεια και ιδιωτικότητα Γεώργιος Σπαθούλας Msc Πληροφορική και υπολογιστική βιοιατρική Πανεπιστήμιο Θεσσαλίας

Χρήστος Ξενάκης Τμήμα Ψηφιακών Συστημάτων

Ασφάλεια Ασύρματων & Κινητών Επικοινωνιών

ΚΡΥΠΤΟΓΡΑΦΙΑ ΚΑΙ ΑΣΦΑΛΕΙΑ ΥΠΟΛΟΓΙΣΤΩΝ

Στοιχεία Κρυπτογραφίας

ΑΣΦΑΛΕΙΑ & ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ(Θ)

Βασικές Έννοιες Κρυπτογραφίας

Οικονομικό Πανεπιστήμιο Αθηνών Τμήμα Πληροφορικής ΠΜΣ Κρυπτογραφία και Εφαρμογές Διαλέξεις Ακ. Έτους

Κρυπτογράφηση Αποκρυπτογράφηση Ερευνητική εργασία Β'1 1 ο Γενικό Λύκειο Ευόσμου

Στοιχεία Θεωρίας Αριθμών & Εφαρμογές στην Κρυπτογραφία

Ασφάλεια Πληροφοριακών Συστημάτων

Παύλος Εφραιμίδης. Βασικές Έννοιες Κρυπτογραφίας. Ασφ Υπολ Συστ

ΕΠΛ 674: Εργαστήριο 2 Ο απλοποιημένος αλγόριθμος κρυπτογράφησης S-DES

Λειτουργικά Συστήματα (ΗΥ321)

ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ ΕΦΑΡΜΟΓΕΣ ΤΗΣ ΚΡΥΠΤΟΓΡΑΦΙΑΣ

Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων. Κρυπτογραφία. Συμμετρική Κρυπτογραφία. Χρήστος Ξενάκης

Κρυπτογραφία. Κρυπτοσυστήματα ροής. Πέτρος Ποτίκας. Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

Ο Σ ο β ι ε τ ι κ ό ς Κ ρ υ π τ α λ γ ό ρ ι θ μ ο ς G O S T

Παύλος Εφραιμίδης. Βασικές Έννοιες Κρυπτογραφίας. Ασφ Υπολ Συστ

ρ. Κ. Σ. Χειλάς, ίκτυα Η/Υ ΙΙΙ, Τ.Ε.Ι. Σερρών, 2007

Ασφάλεια Πληροφοριακών Συστημάτων

Ασφάλεια Πληροφοριακών Συστημάτων

Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων. Κρυπτογραφία. Κρυπτογραφικές Συναρτήσεις. Χρήστος Ξενάκης

Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων. Κρυπτογραφία. Ασύμμετρη Κρυπτογραφία. Χρήστος Ξενάκης

Ασφάλεια Πληροφοριακών Συστημάτων

Κρυπτογραφία. Ψευδοτυχαιότητα - Κρυπτοσυστήματα ροής. Άρης Παγουρτζής - Πέτρος Ποτίκας

ΑΣΥΜΜΕΤΡΗ ΚΡΥΠΤΟΓΡΑΦΙΑ

Κρυπτογραφικά εργαλεία

Δ4. Θεωρία Πληροφορίας, Εντροπία και Πολυπλοκότητα. Κρυπτογραφία

Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου 11η Διάλεξη: Ασφάλεια στο Web

Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά

Transcript:

Συμμετρική Κρυπτογραφία I Τμήμα Μηχανικών Πληροφορικής ΤΕΙ Κρήτης Συμμετρική Κρυπτογραφία I 1

Αρχές του Kerckhoff `La Cryptographie Militaire' (1883) Auguste Kerkhoffs, Ολλανδός φιλόλογος Πρώτη επιστημονική προσέγγιση της κρυπτολογίας http://www.petitcolas.net/fabien/kerckhoffs/ Έξι αρχές για την αξιολόγηση της χρησιμότητας ενός κρυπτογραφικού συστήματος 1. Το σύστημα ακόμη και εάν θεωρητικά μπορεί να έχει αδυναμίες, στην πράξη δεν πρέπει να είναι δυνατό να σπάσει 2. Η ασφάλεια του συστήματος πρέπει να εξαρτάται αποκλειστικά από το κλειδί, δηλαδή ο αντίπαλος ακόμη και αν γνωρίζει τον αλγόριθμο δεν πρέπει να μπορεί να σπάσει το σύστημα 3. Το κλειδί θα πρέπει να είναι εύκολο να απομνημονευθεί και να αλλαχθεί 4. Το κρυπτογράφημα θα πρέπει να είναι δυνατό να μεταδοθεί με τον τηλέγραφο 5. Οι συσκευές κρυπτογράφησης και τα εγχειρίδια χρήσης θα πρέπει να είναι δυνατό να μεταφερθούν εύκολα να χρησιμοποιηθούν από ένα άτομο 6. Το κρυπτογραφικό σύστημα δεν πρέπει να είναι δύσκολο στη χρήση (π.χ. μεγάλος αριθμός κανόνων ή υπερβολική προσπάθεια) Συμμετρική Κρυπτογραφία I 2

Αρχές του Kerckhoff Η ασφάλεια ενός κρυπτοσυστήματος θα πρέπει να εξαρτάται αποκλειστικά από τη δυσκολία ανεύρεσης του κλειδιού ΟΧΙ από τη μυστικότητα του αλγόριθμου κρυπτογράφησης Επιτρέπει την δημόσια εξέταση του αλγόριθμου καλύτερη σχεδίαση Οι αλγόριθμοι που εξετάζονται δημόσια, σπάνια σπάνε σε πραγματικά συστήματα εν είναι απαραίτητο να κρατηθεί μυστική η σχεδίαση (reverse engineering) εν υπάρχει λόγος αντικατάστασης του συστήματος εάν ο αλγόριθμος κρυπτογράφησης γίνει γνωστός Η ίδια σχεδίαση είναι δυνατό να χρησιμοποιηθεί σε περισσότερες της μίας εφαρμογές Επιτρέπει την καθιέρωση προτύπων Ένα κρυπτογραφικό σύστημα είναι τόσο δυνατό όσο ο πιο «αδύναμος κρίκος» του Συμμετρική Κρυπτογραφία I 3

Αρχές του Kerckhoff Παραδείγματα Security by obscurity RC4 Αναπτύχθηκε το 1987 Το 1994 οι Cypherpunks δημοσίευσαν τον κώδικα στο sci.crypt GSM A3/A8 αλγόριθμος για την αυθεντικοποίηση της συσκευής A5 αλγόριθμος για την εμπιστευτικότητα της επικοινωνίας http://www.isaac.cs.berkeley.edu/isaac/gsm.html http://events.ccc.de/congress/2009/fahrplan/events/3654.en.html Σπάσιμο αντικλεπτικού συστήματος αυτοκινήτου, 2005 Αδύναμος αλγόριθμος και μικρό κλειδί http://www.theregister.co.uk/2005/01/31/rfid_crypto_alert/ Συμμετρική Κρυπτογραφία I 4

Αρχές του Kerckhoff Παραδείγματα WW I, μάχη του Tannenberg Το σύστημα που χρησιμοποιούνταν από τον στρατό του Τσάρου το 1914-17 ήταν τόσο περίπλοκο ώστε κάτω από τις συνθήκες της μάχης, οι χρήστες σταμάτησαν τη χρήση του για τις επικοινωνίες Αυτό έκρινε τη μάχη και τελικά οδήγησε στη Ρώσικη επανάσταση Συμμετρική Κρυπτογραφία I 5

Ορολογία Plaintext Κείμενο προς κωδικοποίηση Encryption/Decryption algorithm (encipher/decipher) Αλγόριθμος κωδικοποίησης/ αποκωδικοποίησης Secret key Μυστικό κλειδί Ciphertext Κωδικοποιημένο κείμενο Cryptography Κρυπτογραφία Cryptanalysis Κρυπτανάλυση Συμμετρική Κρυπτογραφία I 6

Συμμετρική Κρυπτογραφία Συμμετρική Κρυπτογραφία I 7

Συμμετρική Κρυπτογραφία Συμμετρική Κρυπτογραφία I 8

Συμμετρική Κρυπτογραφία Ονομάζεται και συμμετρική ή ενός κλειδιού Οι κλασσικοί αλγόριθμοι κρυπτογράφησης είναι συμμετρικού κλειδιού Μόνη μέθοδος πριν την εφεύρεση της κρυπτογραφίας δημόσιουκλειδιού τη δεκαετία του '70 Προϋποθέτει ένα ασφαλές κανάλι μετάδοσης του κλειδιού Συμβολισμοί Y = E K (X) X = D K (Y) Συμμετρική Κρυπτογραφία I 9

Συμμετρική Κρυπτογραφία Η ασφάλεια βασίζεται στη μυστικότητα του κλειδιού Ο αποστολέας και ο παραλήπτης μοιράζονται ένα κοινό κλειδί Αν κάποιος ανακαλύψει το κλειδί, μπορεί να διαβάσει όλες τις επικοινωνίες Χρειάζεται ισχυρός αλγόριθμος κρυπτογράφησης Πάντα υποθέτουμε ότι ο επιτιθέμενος ξέρει τις λεπτομέρειες του χρησιμοποιημένου αλγορίθμου Σε κάποιες περιπτώσεις ο επιτιθέμενος μπορεί να έχει κάποια ζευγάρια απλού και κρυπτογραφημένου κειμένου Για ένα δεδομένο κρυπτογραφημένο κείμενο Πρέπει να είναι αδύνατο να προσδιοριστεί το κλειδί Πρέπει να είναι αδύνατο να προσδιοριστεί το κείμενο απ όπου προήλθε Είναι ικανοποιητικό εάν ο αλγόριθμος είναι υπολογιστικά ασφαλής (δηλ. πρακτικά, όχι απαραίτητα και θεωρητικά) Συμμετρική Κρυπτογραφία I 10

Συμμετρική Κρυπτογραφία Πλεονεκτήματα Ταχύτητα κρυπτογράφησης/αποκρυπτογράφησης (σε σύγκριση με τους αλγορίθμους ασύμμετρης κρυπτογραφίας) Μέγεθος κλειδιών (σχετικά μικρό μέγεθος) Μπορούν να χρησιμοποιηθούν ως βάση για τη κατασκευή άλλων μηχανισμών όπως παραγωγής τυχαίων αριθμών, συναρτήσεων κατακερματισμού, κλπ Συμμετρική Κρυπτογραφία I 11

Συμμετρική Κρυπτογραφία Μειονεκτήματα Μυστικότητα του κλειδιού Η μετάδοση μέσα από το ιαδίκτυο δεν είναι ασφαλής γιατί οποιοσδήποτε γνωρίζει για την συναλλαγή και έχει τα κατάλληλα μέσα μπορεί να καταγράψει όλη την επικοινωνία μεταξύ αποστολέα και παραλήπτη και να αποκτήσει το κλειδί Έπειτα, μπορεί να διαβάσει, να τροποποιήσει και να πλαστογραφήσει όλα τα μηνύματα που ανταλλάσσουν οι δύο ανυποψίαστοι χρήστες Βέβαια, μπορούν να βασισθούν σε άλλο μέσο επικοινωνίας για την μετάδοση του κλειδιού (π.χ. τηλεφωνία), αλλά ακόμα και έτσι δεν μπορεί να εξασφαλιστεί ότι κανείς δεν παρεμβάλλεται μεταξύ της γραμμής επικοινωνίας των χρηστών ιαχείριση των κλειδιών: Κατανομή/ ιανομή Αλλαγή/Ανανέωση Περίοδος ζωής Συμμετρική Κρυπτογραφία I 12

Κώδικες Ροής (Stream Ciphers) Stream ciphers Είναι ένας τύπος αλγόριθμου συμμετρικής κρυπτογράφησης Είναι εξαιρετικά γρήγοροι αλγόριθμοι, κατά πολύ ταχύτεροι από τους block ciphers. Σε αντίθεση με τους block ciphers που λειτουργούν με μεγάλα κομμάτια δεδομένων (blocks), οι stream ciphers τυπικά λειτουργούν με μικρότερες μονάδες απλού κειμένου, συνήθως με bits Σε περιπτώσεις όπου υπάρχει μεγάλη πιθανότητα να έχουμε σφάλματα στη μετάδοση οι stream ciphers είναι χρήσιμοι γιατί δεν υπάρχει μετάδοση λάθους Συμμετρική Κρυπτογραφία I 13

Κώδικες Ροής (Stream Ciphers) Κρυπτογράφηση Απαιτούν μια γεννήτρια ψευδοτυχαίας ακολουθίας bits (key stream generator) Η ακολουθία που παράγεται λέγεται κλειδοροή (keystream) Η περίοδος της ακολουθίας του κλειδιού πρέπει να είναι όσο πιο μεγάλη γίνεται Τα bits του κλειδιού γίνονται XOR με τα bits του μηνύματος για να προκύψει έτσι το κρυπτόγραμμα και αντίστροφα Η παραγωγή του keystream μπορεί να είναι ανεξάρτητη του plaintext και του ciphertext (synchronous stream cipher) ή μπορεί να εξαρτάται από αυτά (selfsynchronizing stream cipher). Οι περισσότεροι stream ciphers είναι synchronous. Συμμετρική Κρυπτογραφία I 14

Κώδικες Ροής (Stream Ciphers) Συμμετρική Κρυπτογραφία I 15

Κώδικες Ροής (Stream Ciphers) Η κρυπτογράφηση ενός συγκεκριμένου κειμένου με έναν block cipher θα καταλήγει πάντα στο ίδιο αποτέλεσμα όταν χρησιμοποιείται το ίδιο κλειδί Με έναν stream cipher, ο μετασχηματισμός των μικρότερων αυτών μονάδων θα ποικίλει, ανάλογα με πότε αντιμετωπίζονται κατά την διάρκεια της κρυπτογράφησης Για να είναι ασφαλής ο κρυπτογραφικός αλγόριθμος ροής, θα πρέπει να πληρούνται ορισμένες προϋποθέσεις όσον αφορά την γεννήτρια κλειδοροής και την ψευδοτυχαία ακολουθία bits που αυτή παράγει: Η ψευδοτυχαία ακολουθία bits (κλειδοροή) που παράγεται από την γεννήτρια κλειδοροής θα πρέπει να έχει αρκετά μεγάλη περίοδο επανάληψης. Η ακολουθία bits της κλειδοροής θα πρέπει να μοιάζει πολύ με τυχαία Αυτό σημαίνει ότι η μαθηματική συνάρτηση που χρησιμοποιείται στην γεννήτρια κλειδοροής θα πρέπει να επιλεγεί κατάλληλα ούτως ώστε το αποτέλεσμά της να πλησιάζει όσο το δυνατόν περισσότερο το τυχαίο Συμμετρική Κρυπτογραφία I 16

Τμηματικοί Κώδικες (Block Ciphers) Block ciphers Το αρχικό μήνυμα διασπάται σε κομμάτια (blocks) συγκεκριμένου μήκους t το κάθε ένα και η κρυπτογράφηση γίνεται σε αυτά τα blocks του κειμένου Μετατρέπει ένα καθορισμένου μήκους block μη κρυπτογραφημένου κειμένου (plaintext) σε αντίστοιχο block κρυπτογραφημένου κειμένου (ciphertext) Αυτός ο μετασχηματισμός πραγματοποιείται με την βοήθεια ενός μυστικού κλειδιού που χορηγείται από τον χρήστη Η αποκρυπτογράφηση γίνεται με την εφαρμογή του αντίστροφου μετασχηματισμού στο κρυπτογραφημένο κείμενο χρησιμοποιώντας το ίδιο μυστικό κλειδί. Το καθορισμένο μήκος καλείται block size και για πολλούς ciphers είναι πλέον 128 bits Συμμετρική Κρυπτογραφία I 17

Τμηματικοί Κώδικες (Block Ciphers) Θεμελιώδης δομικά στοιχεία των συμμετρικών κρυπτογραφικών συστημάτων Παρέχουν εμπιστευτικότητα ή/και αυθεντικότητα Το μήνυμα διαιρείται σε ίσα σε μέγεθος τμήματα π.χ. 64 bits, 128 bits Τα τμήματα αυτά κατόπιν κρυπτογραφούνται Η τρέχουσα γενιά αλγόριθμων χρησιμοποιεί τμήματα μεγέθους 128 bits Συμμετρική Κρυπτογραφία I 18

Τμηματικοί Κώδικες (Block Ciphers) Τα ίδια τμήματα αρχικού κειμένου θα κρυπτογραφούνται πάντα το ίδιο χρησιμοποιώντας το ίδιο κλειδί Τα συνηθέστερα μεγέθη κλειδιού είναι 128, 192 και 256 bits Τα κρυπτογραφήματα αποκαλύπτουν το ακριβές μήκος του αρχικού κειμένου Παραδείγματα αλγόριθμων: DES (Data Encryption Standard) AES (Advanced Encryption Standard) Συμμετρική Κρυπτογραφία I 19

Τμηματικοί Κώδικες (Block Ciphers) Αρχές Τα κρυπτογραφήματα τμημάτων μοιάζουν με μία πολύ μεγάλη αντικατάσταση 64 bits plaintext αντιστοιχούν σε 64 bits ciphertext Θα ήταν δυνατό να κατασκευαστεί ένας πίνακας αντιστοίχησης που αντιστοιχεί το αρχικό κείμενο στο κρυπτογραφημένο Για τμήματα των 64-bit, έχουμε 2 64 πιθανές αντιμεταθέσεις Χρειάζεται πίνακας 2 64 θέσεων με 64 bits ανά θέση (64 x 2 64 10 21 bits) για να αναπαρασταθούν οι επιλεγμένες αντικαταστάσεις Συμμετρική Κρυπτογραφία I 20

Τμηματικοί Κώδικες (Block Ciphers) Αρχές Για τμήματα των 32-bit ο πίνακας θα ήταν 16GB Για τμήματα των 64-bit ο πίνακας θα ήταν 150 εκατομμύρια TB Για τμήματα των 128-bit ο πίνακας θα ήταν 5 x 10 39 bytes Όχι πρακτικό Αντί γι αυτό δημιουργούμε πίνακες αντικατάστασης από μικρότερα δομικά τμήματα Συμμετρική Κρυπτογραφία I 21

Τμηματικοί Κώδικες (Block Ciphers) Αρχές Παράδειγμα τμήματος 4-bit Με τις κατάλληλες επιλογές παραμέτρων (βλ. πίνακα), η έξοδος που παράγεται από την επανάληψη μιας απλής δομής (4-bit σε 4-bit) θα φαίνεται το ίδιο τυχαία όσο και για μια δομή (64-bit σε 64-bit) σε κάποιον επιτιθέμενο που δε γνωρίζει το κλειδί Συμμετρική Κρυπτογραφία I 22

SP Networks Το 1949 ο Claude Shannon εισήγαγε την ιδέα των δικτύων SP Αποτελούν τη βάση των σύγχρονων block ciphers Τα δίκτυα SP βασίζονται σε δύο κρυπτογραφικές λειτουργίες: Substitution = αντικατάσταση Permutation = αντιμετάθεση Το ζητούμενο είναι: Να κρύβονται εντελώς οι στατιστικές ιδιότητες του plaintext H σχέση μεταξύ του κλειδιού και του ciphertext να είναι όσο το δυνατό πιο πολύπλοκη Συμμετρική Κρυπτογραφία I 23

SP Networks Οι αρχές του Shannon είναι η βάση ενός καλού σχεδίου κρυπτογράφησης S-Boxes -- Αντικατάσταση Συγχέει τα bits της εισόδου Η σύγχυση κάνει τη σχέση ανάμεσα στο κρυπτογράφημα και το κλειδί πολυπλοκότερη Για κάθε μία από τις 2 k πιθανές τιμές εισόδου, καθορίζει την k-bit έξοδο P-Boxes -- Αντιμετάθεση ιαχέει τις εισόδους στα S-box Η διάχυση διασκορπά τη στατιστική δομή του αρχικού κειμένου σε όλη την έκταση του κρυπτογραφημένου Πολλά bits του αρχικού κειμένου αντιστοιχούν σε ένα του κρυπτογραφημένου Για κάθε ένα από τα k bits εισόδου καθορίζει τη θέση που θα πάει στην έξοδο N επαναλήψεις από S-P boxes Συμμετρική Κρυπτογραφία I 24

SP Networks Συμμετρική Κρυπτογραφία I 25

SP Networks Συμμετρική Κρυπτογραφία I 26

Feistel Ciphers Οι περισσότεροι συμμετρικοί block ciphers είναι βασισμένοι στη δομή Feistel H δομή Feistel είναι μία υλοποίηση των SP Networks Χωρίζει το block εισόδου σε δύο τμήματα: Εκτελεί ένα αριθμό επαναλήψεων Σε κάθε επανάληψη διαμορφώνει τα στοιχεία του αριστερού τμήματος βάση μίας συνάρτησης του δεξιού τμήματος και ενός υποκλειδιού Στο τέλος της επανάληψης αντιμεταθέτει τα τμήματα μεταξύ τους Συμμετρική Κρυπτογραφία I 27

Feistel Ciphers round function F XOR substitution round subkey K i permutation one more interchange Συμμετρική Κρυπτογραφία I 28

Feistel Ciphers Παράμετροι: Μέγεθος block (πχ 64bit για DES, 128bit για AES) Μέγεθος key (πχ 56bit για DES, 128-256bit για AES) Αριθμός επαναλήψεων (πχ 16 για DES) Είδος συνάρτησης (F) Μέθοδος δημιουργίας υπο-κλειδιού (key round subkeys) Συμμετρική Κρυπτογραφία I 29

Feistel Ciphers L i-1 R i-1 K i Round i F L i R i L i = R i-1 R i = L i-1 F(R i-1, K i ) Συμμετρική Κρυπτογραφία I 30

Feistel Ciphers Αποκρυπτογράφηση Το ίδιο με την κρυπτογράφηση, τα υποκλειδιά χρησιμοποιούνται με την αντίστροφη σειρά Συμμετρική Κρυπτογραφία I 31

Feistel Ciphers Οι block ciphers λειτουργούν επαναληπτικά, κρυπτογραφώντας ένα block διαδοχικά αρκετές φορές Σε κάθε επανάληψη, ο ίδιος μετασχηματισμός εφαρμόζεται στα δεδομένα χρησιμοποιώντας ένα subkey Το σύνολο των subkeys προέρχεται από το μυστικό κλειδί που χορήγησε ο χρήστης, με ειδική συνάρτηση Το σύνολο των subkeys καλείται key schedule Ο αριθμός των επαναλήψεων του cipher εξαρτάται από το επίπεδο της επιθυμητής ασφάλειας και την απόδοση του συστήματος. Στις περισσότερες περιπτώσεις, ο αυξημένος αριθμός επαναλήψεων βελτιώνει την προσφερόμενη ασφάλεια, με την ανάλογη υπολογιστική επιβάρυνση Σε μερικούς αδύναμους ciphers πρέπει να αυξηθούν σε (υπερβολικά) μεγάλο βαθμό οι επαναλήψεις προκειμένου να επιτευχθεί ικανοποιητική ασφάλεια Συμμετρική Κρυπτογραφία I 32

Συμμετρικοί Αλγόριθμοι Συμμετρική Κρυπτογραφία I 33

DES - Ιστορία Ανάγκη για κρυπτογραφία στον εμπορικό τομέα στις αρχές του 70 Για ασφάλεια σε ένα τραπεζικό δίκτυο αυτόματων ταμειακών μηχανών Η IBM ανέπτυξε τον αλγόριθμο Lucifer Από μία ομάδα με υπεύθυνο τον Feistel Χρησιμοποιούσε 64-bit blocks με 128-bit key Ο Lucifer αργότερα επανασχεδιάστηκε για εμπορικές εφαρμογές με επιρροές από την NSA και άλλους Το 1973 το NBS ζήτησε προτάσεις για την υιοθέτηση ενός συμμετρικού αλγόριθμου κρυπτογράφησης σε εθνικό επίπεδο Η IBM συμμετείχε με τον επανασχεδιασμένο αλγόριθμο Lucifer ο οποίος τελικά έγινε δεκτός σαν DES Συμμετρική Κρυπτογραφία I 34

DES - Ιστορία DES Υιοθετήθηκε επίσημα το 1977 (NIST FIPS PUB 46) Εγκρίθηκε από τον ANSI το 1981 και ανανεωνόταν κάθε 5 χρόνια Ζητήθηκε να χρησιμοποιείται και για εφαρμογές διαφορετικές από αυτές που προστάτευαν απόρρητα αρχεία Έγινε ο περισσότερο διαδεδομένος αλγόριθμος, π.χ. εμπορικές εφαρμογές Κωδικοποιεί 64 bit blocks με 56 bit key Πολλές συζητήσεις για την ασφάλειά του παρά το γεγονός ότι ο αλγόριθμος ήταν γνωστός Μικρό μέγεθος κλειδιού Οι αρχές σχεδιασμού του έχουν παραμείνει απόρρητες Συμμετρική Κρυπτογραφία I 35

DES - Ιστορία Συμμετρική Κρυπτογραφία I 36

DES - Ιδιότητες Γιατί 56 bits? Μόνο 56 από τα 64 bits του κλειδιού του DES χρησιμοποιούνται στον αλγόριθμο 8 bits από το κλειδί χρησιμοποιούνται για να ελέγχουμε την περιττή ισοτιμία π.χ. στα bits μεταξύ του 1 και του 8, του 9 και του 16, κλπ. πρέπει να υπάρχει περιττός αριθμός από `1' bits εδομένου ότι η τιμή/απόδοση του hardware βελτιώνεται περίπου 40% το χρόνο (100% σε 2 χρόνια) Τα κλειδιά πρέπει να μεγαλώνουν 1 bit (διπλασιάζεται έτσι το key space) κάθε 2 χρόνια για να προσφέρουν τον ίδιο βαθμό ασφάλειας κατά των επιθέσεων brute force Υποθέτοντας ότι τα 56 bits ήταν αρκετά το 1979, 64 bits ήταν ικανοποιητικά το 1995 και 128 bits θα είναι αρκετά μέχρι το 2123 Συμμετρική Κρυπτογραφία I 37

DES Encryption Κρυπτογράφηση Γίνεται σε 16 επαναλήψεις Από το κλειδί εισόδου K δημιουργούνται 16 48-bit κλειδιά, ένα για την κάθε επανάληψη, βάσει κάποιων αντιμεταθέσεων Η κρυπτογράφηση αρχίζει με μια αντιμετάθεση του κειμένου των 64-bit Το αποτέλεσμα διασπάται σε 2 32-bit μπλοκς L 0 και R 0 Οι 16 επαναλήψεις είναι λειτουργικά ταυτόσημες όπου σε κάθε επανάληψη οι 32-bit είσοδοι L i-1 και R i-1 της προηγούμενης επανάληψης παράγει 32-bit εξόδους L i και R i ως εξής: L i = R i-1 ; R i = L i-1 f(r i-1, K i ) Συμμετρική Κρυπτογραφία I 38

DES Encryption Συμμετρική Κρυπτογραφία I 39

DES Encryption Συμμετρική Κρυπτογραφία I 40

DES Encryption Κρυπτογράφηση Η συνάρτηση f είναι μια σειρά από αντικαταστάσεις (βάσει κάποιων κουτιών αντικατάστασης ή S-boxes) και μια αντιμετάθεση. Τα 8 S-boxes αποτελούν την καρδιά της ασφάλειας του DES Ο αλγόριθμος τελειώνει με μια αντιμετάθεση που είναι ακριβώς αντίθετη από την αρχική Η αποκρυπτογράφηση του DES γίνεται με τον ίδιο ακριβώς τρόπο όπως και η κρυπτογράφηση μόνο που τα 16 κλειδιά χρησιμοποιούνται αντίστροφα (από το Κ 16 στο Κ 1 ) Συμμετρική Κρυπτογραφία I 41

DES Encryption - Round Structure Συμμετρική Κρυπτογραφία I 42

DES Encryption - Round Structure Συμμετρική Κρυπτογραφία I 43

DES Encryption - S-boxes Συμμετρική Κρυπτογραφία I 44

DES Encryption - S-boxes Συμμετρική Κρυπτογραφία I 45

DES Encryption - Δημιουργία κλειδιού Συμμετρική Κρυπτογραφία I 46

DES Encryption - Δημιουργία κλειδιού Συμμετρική Κρυπτογραφία I 47

DES Encryption Συμμετρική Κρυπτογραφία I 48

DES - Ιδιότητα της Χιονοστιβάδας Σημαντική ιδιότητα ενός αλγόριθμου κρυπτογράφησης Η αλλαγή ενός bit της εισόδου έχει σαν αποτέλεσμα την αλλαγή περίπου των μισών bits της εξόδου ή Η αλλαγή ενός bit του κλειδιού έχει σαν αποτέλεσμα την αλλαγή περίπου των μισών bits της εξόδου Ο αλγόριθμος DES ικανοποιεί αυτή την απαίτηση Συμμετρική Κρυπτογραφία I 49

Ταχύτητα του DES Η συμμετρική κρυπτογράφηση είναι γρήγορη Hardware Πολλά Gbit/s Ο DES είχε σχεδιαστεί για hardware Τα S-boxes μπορούν να δουλεύουν παράλληλα Software CPU: Intel Core 2 6600 @ 2.4GHz, 4MB Cache RAM: 2GB DDR2 Approx. 50MB/s CPU: Intel Core i5-2400 @ 3.1GHz, 6MB Cache RAM: 4GB DDR3 Approx. 70MB/s Συμμετρική Κρυπτογραφία I 50

Ταχύτητα του DES Οι προγραμματιστές που ανέπτυξαν το OpenSSL έφτιαξαν μία σουίτα για test / benchmarks Openssl> speed Τεστάρει πόσες λειτουργίες μπορούν να γίνουν σε δεδομένο χρόνο, παρά το πόσο παίρνει να εκτελεστεί ένας αριθμός διεργασιών. Τα τεστ δε χρειάζονται ιδιαίτερα περισσότερο χρόνο να τρέξουν σε ένα παλιό υπολογιστή απ ότι σ ένα καινούργιο Υπάρχουν δύο σύνολα αποτελεσμάτων Το πρώτο αναφέρει πόσα bytes ανά δευτερόλεπτο μπορεί να επεξεργαστεί κάθε αλγόριθμος Το δεύτερο, το χρόνο που χρειάστηκε για τις επαναλήψεις sign/verify http://www.openssl.org/source/ http://www.slproweb.com/products/win32openssl.html Συμμετρική Κρυπτογραφία I 51

Ταχύτητα του DES Συμμετρική Κρυπτογραφία I 52

Ταχύτητα του DES Συμμετρική Κρυπτογραφία I 53

Ασφάλεια του DES Αδύναμα κλειδιά Στην κρυπτογραφία, αδύναμο κλειδί είναι ένα κλειδί που όταν το χρησιμοποιήσουμε σε ένα συγκεκριμένο αλγόριθμο, τον κάνει να συμπεριφέρεται με ανεπιθύμητο τρόπο Τα αδύναμα κλειδιά συνήθως αντιπροσωπεύουν ένα μικρό μέρος του συνολικού αριθμού δυνατών κλειδιών Αν κάποιος παράγει ένα τυχαίο κλειδί για να κρυπτογραφήσει ένα μήνυμα, και αυτό είναι ένα αδύναμο κλειδί τότε μπορεί να προκληθεί πρόβλημα ασφάλειας Μπορούμε να ελέγχουμε για αδύναμα κλειδιά, όταν τα κλειδιά δημιουργούνται ε θέλουμε οι αλγόριθμοι κρυπτογράφησης να έχουν κανένα αδύναμο κλειδί Συμμετρική Κρυπτογραφία I 54

Ασφάλεια του DES 56-bit keys έχουν 2 56 = 7.2 x 10 16 δυνατές τιμές Περίπου 72,000 trillion (72 quadrillion) Ακριβώς 72,057,594,037,927,936 Η brute force δοκιμή κλειδιών φαίνεται δύσκολη Για πετυχημένη αποκρυπτογράφηση είναι σημαντικό να μπορούμε να αναγνωρίσουμε το plaintext π.χ. Αγγλικό κείμενο vs συμπιεσμένα binary data Το μικρό μέγεθος κλειδιού για τα σημερινά δεδομένα οδήγησε στην υιοθέτηση παραλλαγών του DES ή εντελώς νέων αλγόριθμων Συμμετρική Κρυπτογραφία I 55

Ασφάλεια του DES Η πρόσφατη πρόοδος δείχνει όμως ότι είναι εφικτή Το 1997 στο Internet σε λίγους μήνες Broke DES in 96 days, after searching 1/4 key space Involved 70,000 computers Peak search rate - 7 billion keys/sec Το 1998 σε ειδικό h/w (EFF) σε λίγες μέρες Broke DES in 56 hours Used a specially developed computer called the DES Cracker (< $250,000, 2004 cost ~= $15000) 88 billion keys per second http://www.eff.org/descracker Το 1999 τα δύο παραπάνω συνδυασμένα σε 22hrs Broke DES in 22 hours and 15 minutes Used the DES Cracker and a worldwide network of nearly 100,000 PCs 245 billion keys per second http://www.distributed.net/history.php Συμμετρική Κρυπτογραφία I 56

Ασφάλεια του DES Πρόσφατες επιθέσεις 2006: COPACOBANA Πανεπιστήμιο του Kiel Χρησιμοποιεί επαναπρογραμματιζόμενο hardware (FPGAs) 8960 DES σε 8,6 ημέρες http://www.copacobana.org http://www.sciengines.com/ 2008: COPACOBANA RIVYERA 128 Spartan-3 5000's Less than one day Pentium 4 @ 3Ghz Περίπου 2 x 10^6 πράξεις / sec Μέσος χρόνος εύρεσης κλειδιού = 545 χρόνια Συμμετρική Κρυπτογραφία I 57

Μέσος χρόνος που απαιτείται με εξαντλητική αναζήτηση κλειδιών Key Size (bits) Number of Alternative Keys Time required at 1 decryption/µs Time required at 10 6 decryptions/µs 32 2 32 = 4.3 10 9 2 31 µs = 35.8 minutes 2.15 milliseconds 56 2 56 = 7.2 10 16 2 55 µs = 1142 years 10.01 hours 128 2 128 = 3.4 10 38 2 127 µs = 5.4 10 24 years 5.4 10 18 years 168 2 168 = 3.7 10 50 2 167 µs = 5.9 10 36 years 5.9 10 30 years 26 characters (permutation) 26! = 4 10 26 2 10 26 µs = 6.4 10 12 years 6.4 10 6 years Συμμετρική Κρυπτογραφία I 58

Δομή κώδικα Feistel Μέγεθος τμήματος: Μεγαλύτερο μέγεθος σημαίνει μεγαλύτερη ασφάλεια Μέγεθος κλειδιού: Μεγαλύτερο μέγεθος σημαίνει μεγαλύτερη ασφάλεια Αριθμός γύρων: Οι περισσότεροι γύροι προσφέρουν αυξημένη ασφάλεια Αλγόριθμος παραγωγής υποκλειδιών: Μεγαλύτερη πολυπλοκότητα οδηγεί σε αυξημένη δυσκολία κρυπτανάλυσης. Γρήγορο λογισμικό κρυπτογράφησης και αποκρυπτογράφησης: H ταχύτητα εκτέλεσης του αλγόριθμου είναι σημαντικό ζήτημα Συμμετρική Κρυπτογραφία I 59