Κρυπτογραφία. Διάλεξη 7 Κρυπταλγόριθμοι τμήματος: Αλγόριθμος AES Τρόποι λειτουργίας

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

UP class. & DES και AES

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

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

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

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

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

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

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

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

Symmetric Cryptography. Dimitris Mitropoulos

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

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

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

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

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

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

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

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

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

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

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

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

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

KEΦΑΛΑΙΟ 5 ΨΗΦΙΑΚΑ ΚΡΥΠΤΟΣΥΣΤΗΜΑΤΑ

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

Κρυπτογραφία. MAC - Γνησιότητα/Ακεραιότητα μηνύματος. Πέτρος Ποτίκας

Μελέτη απόδοσης αλγορίθμων κρυπρογράϕησης σε CUDA

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

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

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

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

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

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

Κρυπτογραφία. MAC - Γνησιότητα/Ακεραιότητα μηνύματος. Πέτρος Ποτίκας

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

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

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

Κεφάλαια 2&21. Συναρτήσεις κατακερματισμού Πιστοποίηση ταυτότητας μηνυμάτων

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

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

ΚΡΥΠΤΟΓΡΑΦΙΑ ΚΑΙ ΑΣΦΑΛΕΙΑ ΥΠΟΛΟΓΙΣΤΩΝ Δ Εξάμηνο. Ψηφιακή Υπογραφή και Αυθεντικοποίηση Μηνύματος

Δίκτυα Υπολογιστών Ενότητα 6: Secure Sockets Layer - SSL

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

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

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

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

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

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

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

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

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

Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου Τμήμα Τηλεπληροφορικής & Διοίκησης

Επιθέσεις και Ασφάλεια Κρυπτοσυστημάτων

Διατμηματικό Μεταπτυχιακό Πρόγραμμα Ηλεκτρονική και Επεξεργασία της Πληροφορίας

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

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

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

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

ΕΠΑΝΑΛΗΠΤΙΚΟ ΤΕΣΤ ΣΤΗΝ ΕΝΟΤΗΤΑ

Διπλωματική Εργασία. Γεώργιου Γκίτσα

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

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

ΑΡΧΙΤΕΚΤΟΝΙΚΕΣ ΚΑΙ FPGA ΥΛΟΠΟΙΗΣΕΙΣ ΤΟΥ ΠΡΟΤΥΠΟΥ ΚΡΥΠΤΟΓΡΑΦΙΑΣ P1619

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

Διαχείριση Ασφάλειας και Εμπιστοσύνης σε Πολιτισμικά Περιβάλλοντα

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

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

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

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

Κεφάλαιο 7. Σύγχρονοι Κρυπτογραφικοί Αλγόριθμοι

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

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

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

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

Κεφάλαιο 1. Βασικές έννοιες στην κρυπτογραφία

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

Εργαστήριο Ασφάλεια Πληροφοριακών Συστημάτων SSL/TLS

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

Transcript:

Κρυπτογραφία Διάλεξη 7 Κρυπταλγόριθμοι τμήματος: Αλγόριθμος AES Τρόποι λειτουργίας

AES- Advanced Encryption Standard Το 1997, ο NIST προσκάλεσε δημόσια για ορισμό νέου προτύπου που θα λάμβανε το όνομα Advanced Encryption Standard (AES), προς αντικατάσταση του DES Ως ελάχιστο μήκος κλειδιού τέθηκε 128 bits Δυνατότητα υλοποίησης σε επεξεργαστές 8 bit To 1998, επελέχθησαν 15 επικρατέστεροι Αργότερα, έμειναν 5 επικρατέστεροι MARS (IBM - ΗΠΑ) RC6 (RSA Labs - ΗΠΑ) Rijndael (Rijmen & Daemen Βέλγιο) SERPENT (Anderson, Biham, and Knudsen Μεγάλη Βρετανία, Ισραήλ, Νορβηγία) TWOFISH (Schneier, Kelsey, και άλλοι - ΗΠΑ) 2

Advanced Encryption Standard (AES) (ΙΙ) Τελικοί βαθμοί των 5 επικρατέστερων αλγορίθμων: Τον Οκτώβρη του 2000, ανακοινώθηκε ως νικητής ο αλγόριθμος Rijndael. 3

Αλγόριθμος Rijndael Μήκη κλειδιού: 128, 192, 256 bits (υποστηρίζονται και τα τρία αυτά μεγέθη) Μήκη blocks δεδομένων: 128, 192, 256 bits Στο πρότυπο AES, υιοθετήθηκε ως μόνο δυνατό μέγεθος block τα 128 bits Εύκολη υλοποίηση hardware 10-15 γύροι, ανάλογα με το μήκος του κλειδιού Κάθε γύρος αποτελείται από 4 βασικές πράξεις: Αντικατάσταση byte (Byte substitution) χρήση s-boxes με καλά χαρακτηριστικά Ολίσθηση (Shift row) Συνδυασμός πολλών bit (Mix Column) Πρόσθεση (XOR) του κλειδιού 4

Παράμετροι του AES Αναλόγως το μέγεθος του κλειδιού, χρησιμοποιείται άλλο πλήθος γύρων. Λοιπές παράμετροι, βάσει του μεγέθους του κλειδιού που χρησιμοποιείται, φαίνονται στον ακόλουθο πίνακα: Ο αλγόριθμος αποτελείται από έναν αρχικό απλό γύρο, ακολουθούμενο από άλλους r - 1 τυπικούς γύρους (όπου το r είναι είτε 10 είτε 12 είτε 14, βάσει του ανωτέρω πίνακα), καθώς επίσης και από έναν τελευταίο λίγο διαφορετικό από τους άλλους - γύρο. 5

Σχηματικό διάγραμμα του AES PLAINTEXT ROUND 0 ROUND 1 ROUND r - 1 Last_ROUND r Ciphertext Κρυπτογράφηση KEY ROUND 0 KEY ROUND 1 KEY ROUND r-1 KEY ROUND r SECRET KEY EXTENDED_KEY Ο πρώτος γύρος (Round 0) είναι απλά πράξη XOR με το κλειδί Οι υπόλοιποι r-1 γύροι είναι όμοιοι μεταξύ τους και αποτελούνται από τις τέσσερις βασικές λειτουργίες που αναφέρθηκαν νωρίτερα (βλ. και επόμενη διαφάνεια) Ο τελευταίος γύρος είναι λίγο διαφορετικός από τους προηγούμενους r-1 γύρους Το μυστικό κλειδί «επεκτείνεται» με κάποια διαδικασία: από το επεκταμένο κλειδί υπολογίζονται τα υπο-κλειδιά του κάθε γύρου 6

Ένας τυπικός γύρος στον AES SUB_BYTES: Αντικατάσταση byte Είσοδος SHIFT_ROWS: Ολίσθηση SUB_BYTES MIX_COLUMNS: Ανάμειξη στηλών SHIFT_ROWS ADD_ROUND_KEY: Πρόσθεση (XOR) του υπο-κλειδιού MIX_COLUMNS ROUND KEY ADD_ROUND KEY Έξοδος Βασική παραδοχή: το κάθε μπλοκ του μηνύματος, μεγέθους 128 bit, εκλαμβάνεται ως ένας 4x4 πίνακας, του οποίου η κάθε θέση είναι ένα byte (8 bit): 4x4x8= 128 Όλες οι παραπάνω πράξεις επιδρούν πάνω σε τέτοιου τύπου «πίνακα» 7

S-Box (Sub_bytes) Κάθε byte a i,j μετατρέπεται σε ένα νέο byte b i,j, μέσω μιας ισχυρά μη γραμμικής συνάρτησης. Είναι το μόνο τμήμα του αλγορίθμου που είναι μη γραμμικό, συνεπώς αυτό που καθορίζει σε μεγάλο βαθμό την ασφάλεια. Οι λεπτομέρειες του συγκεκριμένου S-box βασίζονται σε ιδιότητες των πεπερασμένων σωμάτων (δεν θα μελετηθούν εδώ) Αποδεικνύεται πάντως ότι είναι μία ισχυρά μη γραμμική συνάρτηση, που ταυτόχρονα υλοποιείται εύκολα 8

Ολίσθηση γραμμών (Shift_Rows) [0,0] [0,1] [0,2] [0,3] [0,0] [0,1] [0,2] [0,3] [1,0] [1,1] [1,2] [1,3] Shift_Rows(..) [1,1] [1,2] [1,3] [1,0] [2,0] [2,1] [2,2] [2,3] [2,2] [2,3] [2,0] [2,1] [3,0] [3,1] [3,2] [3,3] [3,3] [3,0] [3,1] [3,2] Κάθε byte στο block (δηλαδή κάθε θέση στον πίνακα) συμβολίζεται ως H ολίσθηση που συντελείται στο στάδιο Shift_Rows είναι συγκεκριμένη και εικονίζεται στο παραπάνω σχήμα Η πρώτη γραμμή δεν ολισθαίνει καθόλου, η δεύτερη ολισθαίνει κατά μία θέση κ.ο.κ. 9

Μείξη στηλών (MixColumn) Κάθε στήλη του πίνακα πολλαπλασιάζεται με έναν κατάλληλο (πάντα σταθερό και συγκεκριμένο) πίνακα C διαστάσεων 4x4 (όπου κάθε στοιχείο του C είναι 1 Byte). Με αυτόν τον τρόπο, η στήλη μεταβάλλεται συνολικά Η MixColumn συνάρτηση είναι αυτή η οποία δεν συντελείται στον τελευταίο γύρο του AES. Κατά τα άλλα, ο τελευταίος γύρος είναι ίδιος με τους υπόλοιπους 10

Πρόσθεση υπο-κλειδιού (Add_Round_Key) Πρόσθεση XOR του block με το υπο-κλειδί του τρέχοντος γύρου (το οποίο επίσης εκλαμβάνεται ως πίνακας από byte) Είναι το μόνο σημείο της όλης κρυπτογραφικής διαδικασίας στην οποία υπεισέρχεται το κλειδί! 11

Αποκρυπτογράφηση Γίνονται οι αντίστροφοι μετασχηματισμοί κατά σειρά (Inv_Mix_Columns, Inv_Shift_Rows κτλ.) Μόνο η Inv_Add_Round_Key είναι (προφανώς) ίδια με την Add_Round_Key H αποκρυπτογράφηση είναι πιο αργή από την κρυπτογράφηση, και αυτό είναι ένα από τα μειονεκτήματα του AES Ωστόσο: Παραμένει και η αποκρυπτογράφηση σχετικά γρήγορη, συγκριτικά με άλλους αλγορίθμους Η ταχύτητα στην κρυπτογράφηση είναι πιο σημαντική από την ταχύτητα στην αποκρυπτογράφηση, για λόγους που θα εξηγήσουμε στη συνέχεια 12

Κρυπτογράφηση vs Αποκρυπτογράφηση Το σχήμα βρίσκεται στο http://www.iis.ee.ethz.ch/~kgf/acacia/c3.html 13

Ασφάλεια του AES Αν υπήρχε υπολογιστική μηχανή που, με εξαντλητική αναζήτηση κλειδιών, θα «έσπαγε» τον DES σε 1 δευτερόλεπτο, τότε αυτή η μηχανή θα χρειαζόταν 128 τρισεκατομμύρια χρόνια για να σπάσει τον AES με μήκος κλειδιού 128 bit. Οι σχεδιαστές του AES κατέδειξαν ότι είναι ασφαλής έναντι διαφορικής και γραμμικής κρυπτανάλυσης, καθώς και έναντι άλλων γνωστών κρυπταναλυτικών τεχνικών Μία συζήτηση για την ασφάλεια του AES σήμερα (από το γνωστό κρυπτογράφο Bruce Schneier): http://www.schneier.com/blog/archives/2012/03/can_the_nsa_bre.html 14

Μέγεθος του κλειδιού στον AES Τυπική περίπτωση: 128 bit. Το 2009, εμφανίστηκαν κάποιες επιθέσεις που εκμεταλλεύονται το μηχανισμό παραγωγής υποκλειδιών (related-key attacks). Αυτές οι κρυπταναλυτικές επιθέσεις είχαν κάποια αποτελέσματα για μέγεθος κλειδιού 192 και 256 bit (όχι για 128 bit!!) Βέβαια, ήταν αποτελεσματικές για περιορισμένο πλήθος γύρων Βλ. http://eprint.iacr.org/2009/374 για περισσότερες πληροφορίες Bruce Shneier: ( ) for new applications I suggest that people don't use AES-256. AES-128 provides more than enough security margin for the foreseeable future. But if you're already using AES-256, there's no reason to change (https://www.schneier.com/crypto-gram-0908.html#8 ) Πλέον, πολλά εμπορικά προϊόντα προχωρούν ένα βήμα περαιτέρω και υλοποιούν τον AES-256 (Βλ. http://blog.agilebits.com/2013/03/09/guess-why-were-moving-to- 256-bit-aes-keys/ ) 15

Σύγκριση DES, 3DES, AES DES 3DES AES Key Length (bits) 56 112 or 168 128, 192, 256 Strength Weak Strong Strong Processing Requirements Moderate High Modest RAM Requirements Moderate High Modest 16

Τρόποι λειτουργίας κρυπταλγορίθμων τμήματος Οι κρυπταλγόριθμοι τμήματος (block ciphers) μπορούν να λειτουργήσουν με διάφορους τρόπους (modes of operation) Μέχρι τώρα έχουμε δει μόνο έναν τρόπο Κρυπτογράφηση κάθε τμήματος ξεχωριστά, με εφαρμογή του κλειδιού Υπάρχουν και άλλοι τρόποι, που γενικά ισχύουν για όλους τους κρυπταλγορίθμους τμήματος (DES, 3DES, AES κτλ.) Ο κάθε ένας έχει τα δικά του πλεονεκτήματα Όλοι οι τρόποι (ECB, CBC, CFB, OFB, CTR) περιγράφονται στη συνέχεια 17

Τρόπος λειτουργίας ηλεκτρονικού κωδικοβιβλίου Πηγή σχήματος: Menezes et. al., Handbook of Applied Cryptography, CRC Press, 1996 Ηλεκτρονικό κωδικοβιβλίο (Electronic Codebook (ECB) mode): Είναι ο τρόπος που έχουμε δει μέχρι τώρα Το κλειδί κρυπτογραφεί το κάθε block ανεξάρτητα. Δύο ίδια block, για το ίδιο κλειδί κρυπτογράφησης, κρυπτογραφούνται πάντα στο ίδιο block κρυπτοκειμένου. Άρα, δεν συνίσταται σε εφαρμογές όπου υπάρχουν επαναλαμβανόμενα μοτίβα δεδομένων στο αρχικό μήνυμα. Ένα λάθος στη λήψη επηρεάζει την αποκρυπτογράφηση μόνο του συγκεκριμένου block. 18

Τρόπος λειτουργίας αλυσιδωτού τμήματος Πηγή σχήματος: Menezes et. al., Handbook of Applied Cryptography, CRC Press, 1996 Cipher block chaining (CBC) mode: Το block του μηνύματος προστίθεται με XOR με το προηγούμενο block του κρυπτοκειμένου, πριν την κρυπτογράφηση. Συνεπώς, δύο όμοια block δεν δίνουν, μετά την κρυπτογράφησή τους με το ίδιο κλειδί, όμοια block κρυπτοκειμένου. Λάθος κατά τη λήψη σε ένα απλό bit του κρυπτοκειμένου θα προκαλέσει λάθος στην αποκρυπτογράφηση δύο διαδοχικών block 19

Κρυπταλγόριθμος αλυσιδωτού τμήματος (συνέχεια) Είναι απαραίτητο να υπάρχει ένα block αρχικοποίησης (λέγεται, ειδικότερα, διάνυσμα αρχικοποίησης -IV) για την κρυπτογράφηση του πρώτου block του μηνύματος (αφού δεν υπάρχει κάποιο κρυπτοκείμενο που να έχει ήδη παραχθεί εκείνη τη στιγμή). To IV πρέπει να το γνωρίζουν ο αποστολέας και ο παραλήπτης και να το προστατεύουν (είναι σημαντικό να μην μπορεί να το παραποιήσει κάποιος επιτιθέμενος, ούτε να το μάθει). Για την ασφάλειά του, μπορεί να το μεταδώσει ο ένας στον άλλο με τρόπο λειτουργίας ECB Αναφέραμε ήδη ότι αν συμβεί σφάλμα κατά τη μετάδοση (και, άρα, και στη λήψη) ενός block κρυπτοκειμένου, το σύστημα τελικά, μετά από δύο λανθασμένες αποκρυπτογραφήσεις θα επανέλθει. Αυτό λέγεται ιδιότητα της αυτοεπούλωσης (self healing). Προσέξτε ότι το τελευταίο block του κρυπτοκειμένου που παράγεται «εξαρτάται» τελικά από ολόκληρο το μήνυμα! (βλέπετε γιατί;) Αυτή είναι μία πολύ σημαντική ιδιότητα του CBC, που θα την ανακαλέσουμε στις συναρτήσεις κατακερματισμού (σε επόμενο μάθημα) 20

Σύγκριση ECB και CBC τρόπων λειτουργίας Με τον ECB τρόπο λειτουργίας, όμοια patterns στο αρχικό μήνυμα κρυπτογραφούνται σε όμοια patterns στο κρυπτοκείμενο. Αυτό δεν ισχύει στον CBC τρόπο λειτουργίας ΠΕΣ 621 Κρυπτογραφία Κωνσταντίνος Λιμνιώτης Πηγή: B. Preneel s presentation, MITACS 2010. 21

CBC Τρόπος λειτουργίας Επίθεση bit flipping P i-1 P i e K e K Κρυπτογράφηση C i-1 C i C i-1 C i Αποκρυπτογράφηση d K d K P i-1 P i Μεταβολή στο C i-1 προκαλεί άμεσα μεταβολή στο P i-1 και στο P i Όμως, ειδικά για τη μεταβολή στο Pi, αυτή είναι πλήρως συγκεκριμένη! 22

Τεχνική «Bit Flipping» Μεταβολή π.χ. στο 5 ο bit του κρυπτογραφημένου block C i-1 οδηγεί σε: Απρόβλεπτη μεταβολή στο P i-1 που θα ανακτήσει ο παραλήπτης Μεταβολή ακριβώς στο 5 ο bit στο P i που θα ανακτήσει ο παραλήπτης Μεταβολή bits C i-1 C i d K d K P i-1 P i οδηγεί σε μεταβολή bits εδώ 23

Περιγραφή της επίθεσης bit flipping O επιτιθέμενος μπορεί να «πειράξει» κατάλληλα κάποια bit του C i-1 έτσι ώστε να «επηρεάσει ελεγχόμενα» το block P i που θα ανακτήσει ο νόμιμος παραλήπτης (δηλ. να εισάγει ελεγχόμενες μεταβολές στο μήνυμα που θα ανακτήσει ο νόμιμος παραλήπτης) Μεταβολή bits C i-1 C i d K d K P i-1 P i «Τυχαίο» block οδηγεί σε μεταβολή bits εδώ 24

Εφαρμογή της τεχνικής bit flipping στο πρωτόκολλο ασφαλείας IPSec Paterson και Yau (Eurocrypt, 2006): Υποθέτουμε ότι ο επιτιθέμενος γνωρίζει την IP διεύθυνση προορισμού του μεταδιδόμενου IP πακέτου Ο επιτιθέμενος μπορεί να τροποποιήσει κατάλληλα κάποια συγκεκριμένα bit του κρυπτογραφημένου πακέτου (εκείνα που αντιστοιχούν στην IP διεύθυνση του παραλήπτη του πακέτου), έτσι ώστε όταν η gateway ενός Εικονικού Δικτύου λάβει το πακέτο και το αποκρυπτογραφήσει, να το προωθήσει (αποκρυπτογραφημένο πια) σε λάθος διεύθυνση στο εσωτερικό δίκτυο στη διεύθυνση του επιτιθέμενου!! Ακόμα και αν το πακέτο έχει κρυπτογραφηθεί με τον AES, δεν είμαστε ασφαλείς!! Είναι απαραίτητο λοιπόν να διασφαλίζεται η ακεραιότητα του κρυπτοκειμένου που λαμβάνεται (δηλ. ότι δεν έχει τροποποιηθεί και ότι παρελήφθη αυτούσιο) Σε διάφορες υλοποιήσεις του IPSec (το οποίο είναι ένα πολύ σημαντικό πρωτόκολλο ασφαλείας), για λόγους απλότητας, η ακεραιότητα του λαμβανομένου κρυπτοκειμένου δεν ελέγχεται 25

Το τέλος του SSLv3 Poodle Attack Οκτώβριος 2014: Επίθεση που εκμεταλλεύεται τις CBC υλοποιήσεις κρυπταλγορίθμων τμήματος στο πρωτόκολλο SSL (με το όνομα Poodle) Η αδυναμία έγκειται στη διαδικασία συμπλήρωσης (padding), η οποία είναι διαφορετική στο SSL από ό,τι στα νεότερα πρωτόκολλα TLS Στο SSL, το padding bits μπορεί να είναι αυθαίρετα, άρα ο παραλήπτης δεν μπορεί να αναγνωρίσει τυχόν παραποίησή τους Αυτό δεν ισχύει στο TLS Η επίθεση αυτή δεν μπορεί να εφαρμοστεί στην περίπτωση που το SSL υλοποιεί, αντί για αλγόριθμο τμήματος, αλγόριθμο ροής (RC4 είναι η μόνη περίπτωση), αλλά και εκεί έχουμε ήδη γνωστή άλλη πρόσφατη επίθεση στο SSL (βλ. μάθημα 5, διαφάνεια 31). Άρα, η μόνη λύση: χρήση TLS (που να μην υλοποιεί RC4) Από τη μεριά των χρηστών: απενεργοποίηση της δυνατότητας υλοποίησης του SSL από τους browsers Σχετικές οδηγίες: https://zmap.io/sslv3/browsers.html Για αναλυτική, και (σχετικά) απλή περιγραφή της επίθεσης: https://www.dfranke.us/posts/2014-10-14-how-poodle-happened.html (για την πλήρη κατανόησή της απαιτείται να είναι σαφής και η έννοια του MAC, που θα καλυφθεί σε επόμενα μαθήματα) 26

Τρόπος λειτουργίας ανάδρασης κρυπταλγορίθμου Cipher Feedback (CFB) mode: Τα δεδομένα κρυπτογραφούνται s bits τη φορά. Επιλογή s bit Επιλογή s bit Υπάρχει ένας καταχωρητής ολίσθησης, μεγέθους όσο το μέγεθος του μπλοκ. Κάθε χρονική στιγμή, τα περιεχόμενα του καταχωρητή ολίσθησης κρυπτογραφούνται: από το αποτέλεσμα που προκύπτει, τα s αριστερότερα bits γίνονται xor με τα s bits του μηνύματος και προκύπτουν s bits κρυπτοκειμένου. Αυτά Επιλογή s bit Επιλογή s bit για την επόμενη χρονική στιγμή πηγαίνουν στον καταχωρητή ολίσθησης, ο οποίος για να μπορεί να τα «χωρέσει» αποβάλλει τα s αριστερότερά του bits. 27

Aνάδραση κρυπταλγορίθμου - Ιδιότητες Μειώνεται η απόδοση (throughput) του συστήματος σε σχέση με το CBC κατά έναν παράγοντα n/s (όπου n το πλήθος bits του block). Λάθος σε ένα bit του κρυπτοκειμένου επηρεάζει το πολύ τις επόμενες [n/s] αποκρυπτογραφήσεις το πολύ για [n/s] χρονικές στιγμές θα παραμείνει στον καταχωρητή το λανθασμένο bit, άρα τόσες αποκρυπτογραφήσεις θα είναι λανθασμένες. Δεν χρησιμοποιείται πουθενά η αποκρυπτογράφηση του αλγορίθμου!! 28

Τρόπος λειτουργίας ανάδρασης εξόδου Πηγή σχήματος: http://www.cs.cornell.edu Output Feedback (OFB) mode: Σχεδόν όμοιος με τον CFB, με τη διαφορά ότι στην επόμενη βαθμίδα τροφοδοτείται η έξοδος της συνάρτησης κρυπτογράφησης E k και όχι το κρυπτοκείμενο. Πλέον τροφοδοτείται ολόκληρη η έξοδος της Ek (και όχι τα s bits, όπως ίσχυε παλαιότερα, κατ αναλογία με τον CFB) Μοιάζει πολύ με κρυπταλγόριθμο ροής!!! 29

Ανάδραση εξόδου- Ιδιότητες Πλεονέκτημα: Σφάλμα σε ένα bit του C i δεν επηρεάζει επόμενη αποκρυπτογράφηση Όπως και στον CFB, δεν χρησιμοποιείται πουθενά η αποκρυπτογράφηση του αλγορίθμου Σε πολλές εφαρμογές που απαιτείται stream cipher (π.χ. ασύρματα δίκτυα), επιλέγεται κάποιος block cipher υψηλής ταχύτητας (π.χ. ο AES) σε τρόπο λειτουργίας OFB 30

Τρόπος λειτουργίας μετρητή Τιμή μετρητή (v) Τιμή μετρητή (v+1) Τιμή μετρητή (v) Τιμή μετρητή (v+1) CounTeR mode (CTR): Χρησιμοποιείται μετρητής μήκους n, όπου n το μέγεθος του block. Ο αλγόριθμος τμήματος κρυπτογραφεί κάθε φορά το περιεχόμενο του μετρητή, και η έξοδός του γίνεται XOR με το τμήμα του μηνύματος. Ο μετρητής ξεκινά τη μέτρηση από μία τυχαία αρχική τιμή (IV). Επίσης δεν χρησιμοποιείται πουθενά το κύκλωμα της αποκρυπτογράφησης 31

Συζήτηση / Σχόλια Στους τρεις από τους πέντε τρόπους, δεν χρειάζεται το κύκλωμα της αποκρυπτογράφησης Είναι σημαντικό πλεονέκτημα ως προς την υλοποίηση Κάθε τρόπος λειτουργίας προσφέρεται για συγκεκριμένες εφαρμογές Θεωρούνται, γενικώς, καλύτεροι οι CFB, OFB, CTR, ενώ ο CBC αποτελεί καλή επιλογή για συνάρτηση κατακερματισμού (βλ. επόμενα μαθήματα) Όλοι έχουν προτυποποιηθεί από τον οργανισμό τυποποίησης NIST Ο ECB πρέπει να αποφεύγεται (μπορεί να χρησιμοποιηθεί για την κρυπτογράφηση μηνύματος που αποτελείται από ένα μόνο block) Ο τρόπος λειτουργίας μετρητή προσφέρεται για παράλληλη επεξεργασία 32

Άλλοι σημαντικοί κρυπταλγόριθμοι τμήματος Εκτός από τους τελικούς υποψήφιους (finalist) για προτυποποίηση MARS, RC6, Serpent, Twofish (οι οποίοι παραμένουν ασφαλείς): Blowfish (προπομπός του Twofish) CAST (είναι δομής Feistel) GOST («αντίπαλο δέος» του DES για πολλά χρόνια) IDEA (Προτάθηκε το 1991, με απώτερο στόχο να αντικαταστήσει τον DES) SAFER (είχε προταθεί για πιθανή επιλογή ως AES) Skipjack (χρησιμοποιήθηκε στην κρυπτογραφική συσκευή clipper chip) 33

Άλλες κρυπταναλυτικές τεχνικές Αλγεβρικές επιθέσεις (algebraic attacks) Αντίστοιχα με τους κρυπταλγόριθμους ροής Έπληξαν τον αλγόριθμο KeeLoq (για συναγερμούς αυτοκινήτων) Μη γραμμική κρυπτανάλυση (nonlinear cryptanalysis) Γενίκευση της γραμμικής, με προσεγγίσεις χαμηλού βαθμού (όχι απαραίτητα γραμμικές) Επιθέσεις παρεμβολής (interpolation attacks) Επιθέσεις Boomerang (Boomerang attacks) Επιθέσεις πολυ-συνόλων (Multiset attacks) 34

Διαχείριση μυστικών κλειδιών Στους συμμετρικούς αλγορίθμους (stream ciphers και block ciphers) η ασφάλεια έγκειται στη μυστικότητα του κλειδιού Η διαχείριση του κλειδιού (δημιουργία και ασφαλής διανομή) είναι ιδιαίτερα σημαντική Για ασφαλή διανομή του κλειδιού: Μέσω ασφαλούς καναλιού (υπάρχει?) Μέσω κρυπτογράφησης (με άλλον αλγόριθμο τι κλειδί θα χρησιμοποιηθεί;) Με έμπιστη τρίτη οντότητα Κέντρα κατανομής κλειδιού (Key Distribution Centers - KDCs): παίζουν ρόλο «διαιτητή» στην ανταλλαγή κλειδιών μεταξύ των χρηστών. Βασικό σύστημα ανταλλαγής κλειδιού με KDC που χρησιμοποιείται στην πράξη: Kerberos (http://web.mit.edu/kerberos/www/) 35

Ανταλλαγή κλειδιού με αλγόριθμο κρυπτογράφησης Χρησιμοποιείται άλλη κατηγορία αλγορίθμου κρυπτογράφησης Κρυπτογράφηση Δημοσίου Κλειδιού (Public Key Encryption) Τελείως άλλη φιλοσοφία και αρχές σχεδίασης Για να σταλεί μία μυστική πληροφορία με ασφάλεια, δεν απαιτείται η εκ των προτέρων ασφαλής ανταλλαγή κάποιου κλειδιού Προτάθηκαν στα τέλη του 1970 Μελετώνται στο επόμενο μάθημα 36

Αρχές διαχείρισης κλειδιού Για μείωση της πιθανότητας υποκλοπής/απώλειας Συχνή αντικατάσταση των κλειδιών Γέννηση νέων κλειδιών με χρήση των παλιών, κάνοντας χρήση κάποιας κατάλληλης μαθηματικής συνάρτησης που να παρέχει ασφάλεια (π.χ. με συνάρτηση κατακερματισμού Hardware (και όχι software) προστασία Για μείωση της πιθανότητας να προσποιηθεί κάποιος ότι είναι κάποιος άλλος Χρήση τεχνικών αμοιβαίας πιστοποίησης ταυτότητας (αυθεντικοποίησης) όταν ανταλλάσσεται το κλειδί 37

Άρθρα / Βιβλιογραφία AES Submission Document on Rijndael, J. Daemen and V. Rijmen, Sept. 1999. AES Security Report, ECRYPT D.STVL.2, ECRYPT Deliverable, 2006. Cryptography and theory in practice: The case of encryption in IPSec, K. G. Paterson and A. K. L. Yau, Eurocrypt 2006, Springer, pp. 12-29, 2006. Key Recovery Attacks of Practical Complexity on AES Variants With Up To 10 Rounds, A. Biryukov, O. Dunkelman, N. Keller, D. Khovratovich and A. Shamir, Cryptology eprint Archive (http://eprint.iacr.org/2009/374) Πλήθος άρθρων σχετικά με τον AES εμφανίζονται κάθε χρόνο σε μεγάλα συνέδρια κρυπτογραφίας (Crypto, Eurocrypt, Asiacrypt, Indocrypt, Fast Software Encryption - FSE, Theory of Cryptography - TCC κτλ.) 38

Προτεινόμενη βιβλιογραφία Τα βασικά θέματα που καλύφθηκαν στο μάθημα αυτό περιγράφονται και στην προτεινόμενη βιβλιογραφία Handbook of Applied Cryptography Κεφ. 7 (7.2.2) Σύγχρονη κρυπτογραφία: Θεωρία και εφαρμογές Κεφ. 7 (7.8 7.11) Κρυπτογραφία και ασφάλεια δικτύων: Αρχές και εφαρμογές Κεφ. 5, Κεφ. 6 (6.2) Τεχνικές κρυπτογραφίας και κρυπτανάλυσης Κεφ. 5 (5.1 5.2.1, 5.2.5) ΠΕΣ 621 Κρυπτογραφία Κωνσταντίνος Λιμνιώτης 39