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



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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Symmetric Cryptography. Dimitris Mitropoulos

UP class. & DES και AES

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

1 Advanced Encryption Standard (AES)

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

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

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

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

Μελέτη Πρωτοκόλλων Κρυπτογραφίας

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

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

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

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

Α.ΤΕΙ ΚΡΗΤΗΣ ΠΑΡΑΡΤΗΜΑ ΧΑΝΙΩΝ ΤΜΗΜΑ ΗΛΕΚΤΡΟΝIΚΩΝ ΜΗΧΑΝΙΚΩΝ

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

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

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

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

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

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

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

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

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

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

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

Συμμετρικοί Αλγόριθμοι Κρυπτογράφησης Δεδομένων Η περίπτωση του Αλγόριθμου AES

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

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

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

Ασφάλεια ικτύων (Computer Security)

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

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

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

Threshold Cryptography Algorithms. Εργασία στα πλαίσια του μαθήματος Τεχνολογίες Υπολογιστικού Νέφους

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

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

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

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

Block Ciphers Modes. Ramki Thurimella

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

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

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

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

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

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

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

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

Transcript:

Εφαρμοσμένη Κρυπτογραφία Ι Κωνσταντίνου Ελισάβετ ekonstantinou@aegean.gr http://www.icsd.aegean.gr/ekonstantinou

Συμμετρικά Κρυπτοσυστήματα κλειδί k Αρχικό κείμενο (m) Αλγόριθμος Κρυπτογράφησης Ε c = E k (m) Κρυπτογραφημένο κείμενο (c) Κρυπτογραφημένο κείμενο (c) κλειδί k Αλγόριθμος Αποκρυπτογράφησης D m = D k (c) Αρχικό κείμενο (m) Το κλειδί αποκρυπτογράφησης μπορεί να βρεθεί εύκολα από το αντίστοιχο κλειδί κρυπτογράφησης. Στις περισσότερες περιπτώσεις είναι ακριβώς τα ίδια. 2

Συμμετρικά Κρυπτοσυστήματα Τα συμμετρικά συστήματα προϋπήρχαν των συστημάτων δημόσιου κλειδιού (τα οποία εμφανίστηκαν το 1976 με την εργασία των Diffie- Hellman). Βασίζονται στη μυστικότητα του κλειδιού αποκρυπτογράφησηςκρυπτογράφησης, οπότε θα πρέπει να υπάρχει ένας ασφαλής δίαυλος επικοινωνίας μεταξύ των δύο χρηστών για την εγκατάσταση του κλειδιού. Κάτι τέτοιο δεν χρειάζεται στα συστήματα δημόσιου κλειδιού. Symmetric ciphers Stream ciphers (κρυπτογράφηση ανά bit) Block ciphers (κρυπτογράφηση ανά block) 3

Block ciphers Substitution ciphers (αντικατάστασης) Block ciphers Transposition ciphers (αντιμετάθεσης) Product ciphers (συνδυασμός των δύο παραπάνω) 4

Block ciphers Ένας block cipher είναι μια συνάρτηση που απεικονίζει blocks του plaintext μεγέθους n-bits σε blocks μεγέθους πάλι n-bits του ciphertext. To n καλείται blocklength. Κανείς μπορεί να φανταστεί ότι είναι ένας απλός αλγόριθμος αντικατάστασης όπου το σύνολο των πιθανών χαρακτήρων είναι 2 n. Bijection: f: X -> Y ησυνάρτησηf -1 είναι επίσης bijection A 1 1 A B 2 2 B C 3 3 C D 4 4 D E 5 5 E 5

Block ciphers Ορισμός: Ένας πραγματικά τυχαίος cipher (true random cipher) είναι ένας n-bit block cipher που υλοποιεί όλα τα 2 n! bijections των 2 n στοιχείων. Κάθε block έχει συνήθως 64 bits. Ανέναμήνυμαξεπερνάτα64 bits, τότε το χωρίζουμε σε τμήματα των 64 bits. Αν έχουμε πολλά blocks, πως τα κρυπτογραφούμε και αποκρυπτογραφούμε? Υπάρχουν 4 βασικοί τρόποι για το σκοπό αυτό που καλούνται modes of operation: ECB, CBC, CFB, OFB. 6

ECB mode 7

ECB mode 1) Ίδια plaintext blocks οδηγούν σε ίδια ciphertext blocks (προφανώς όταν χρησιμοποιείται το ίδιο κλειδί). 2) Η κρυπτογράφηση και η αποκρυπτογράφηση μπορούν να γίνουν παράλληλα για όλα τα blocks. 3) Error propagation: 1 ή περισσότερα λάθη στα bits ενός ciphertext block, επηρεάζουν την αποκρυπτογράφηση μόνο αυτού του block. Λόγω της 1 ης ιδιότητας, το ECB δεν προτείνεται για μηνύματα που ξεπερνούν το ένα block ή αν το ίδιο κλειδί χρησιμοποιείται για πολλά blocks. 8

ECB mode Αντιμετώπιση: Προσθήκη τυχαίων bits στο τέλος κάθε block. 9

CBC mode 10

CBC mode 11

CBC mode 1) Ίδια plaintext blocks οδηγούν σε ίδια ciphertext blocks μόνο αν κρυπτογραφούνται με το ίδιο κλειδί και το ίδιο IV. 2) Κάθε ciphertext c j εξαρτάται από το αντίστοιχο plaintext x j και όλα τα προηγούμενα plaintexts. Αν αλλάξουμε τη σειρά των ciphertexts χαλάει η διαδικασία της αποκρυπτογράφησης. Για να αποκρυπτογραφήσουμε σωστά ένα block πρέπει να έχουμε αποκρυπτογραφήσει σωστά και το προηγούμενο. 3) Error propagation: 1 bit λάθους στο ciphertext c j, επηρεάζει την αποκρυπτογράφηση του block c j και του c j+1. Το block x j που θα λάβουμε θα είναι τελείως τυχαίο, ενώ το x j+1 θα έχει λάθος ακριβώς στο ίδιο bit που έχει λάθος το c j. Κάποιος που θέλει να επιτεθεί στο σύστημα μπορεί να κάνει όποιες αλλαγές θέλει στο x j+1 αλλάζοντας τα αντίστοιχα bits του c j. 12

CBC mode 4) Error recovery: αν συμβεί ένα λάθος στο block c j, αλλά όχι στο c j+1, τότε το c j+2 αποκρυπτογραφείται σωστά. Σημειώνεται ότι παρόλο που ένα λάθος σε ένα ciphertext block δεν επηρεάζει πολύ την αποκρυπτογράφηση, ένα λάθος σε ένα plaintext block επηρεάζει όλα τα ciphertext blocks που δημιουργούνται μετά. Επίσης, το IV δεν χρειάζεται να είναι μυστικό. Πρέπει όμως να προστατεύεται η ακεραιότητά του. Ο λόγος είναι ότι προβλέψιμες αλλαγές στο IV προκαλούν προβλέψιμες αλλαγές στο πρώτο plaintext block. 13

CFB mode 14

CFB mode 1) Ίδια plaintext blocks οδηγούν σε ίδια ciphertext blocks μόνο αν χρησιμοποιείται το ίδιο IV. 2) Κάθε ciphertext c j εξαρτάται από το αντίστοιχο plaintext x j και όλα τα προηγούμενα plaintexts. Αν αλλάξουμε τη σειρά των ciphertexts χαλάει η διαδικασία της αποκρυπτογράφησης. Για να αποκρυπτογραφήσουμε σωστά ένα block πρέπει τα προηγούμενα n r ciphertext blocks να είναι σωστά. 3) Error propagation: 1 ή παραπάνω bits λάθους στο ciphertext c j, επηρεάζει την αποκρυπτογράφηση και των υπολοίπων n ciphertext blocks. r Το block x j που θα λάβουμε θα έχει λάθος ακριβώς στα ίδια bits που έχει λάθος το c j, κάτι που μπορεί να εκμεταλλευτεί ένας επιτιθέμενος στο σύστημα. 15

CFB mode 4) Error recovery: αν συμβεί ένα λάθος στο block c j, αλλά όχι στο c j+1, τότε το σύστημα ανακάμπτει μετά από n ciphertext blocks. r To CFB (όπως και το OFB) χρησιμοποιούν μόνο τον αλγόριθμο κρυπτογράφησης. Αυτό σημαίνει ότι μπορούν να χρησιμοποιηθούν για την δημιουργία του keystream ενός stream cipher.??? 16

OFB mode - Είναι παρόμοιο με το CFB και χρησιμοποιείται σε εφαρμογές όπου κάθε error propagation πρέπει να αποφεύγεται. - Χρησιμοποιεί επίσης μόνο τον αλγόριθμο κρυπτογράφησης και μπορεί να χρησιμοποιηθεί ως stream cipher. OFB mode with full feedback with r-bit feedback 17

OFB mode 18

OFB mode 1) Ίδια plaintext blocks οδηγούν σε ίδια ciphertext blocks μόνο αν χρησιμοποιείται το ίδιο IV. 2) Η τιμή του IV παρόλο που δεν χρειάζεται να είναι μυστική, θα πρέπει να αλλάζει αν το ίδιο κλειδί Κ χρησιμοποιείται. Αν δεν αλλάζει ούτε το IV, ούτε το Κ, τότε προκύπτει το ίδιο keystream. 3) Error propagation: 1 ή παραπάνω bits λάθους στο ciphertext c j, προκαλεί λάθη στο αντίστοιχο μόνο plaintext block x j, ακριβώςστιςίδιεςθέσεις. 19

OFB mode 4) Error recovery: τα λάθη που μπορεί να υπάρχουν σε μερικά bits ενός ciphertext block, επηρεάζουν το αντίστοιχο plaintext block στην αποκρυπτογράφηση. 5) Tα blocks του keystream μπορούν να υπολογιστούν πριν την διαδικασία της κρυπτογράφησης αφού οι τιμές τους δεν εξαρτώνται από τα plaintext-ciphertext blocks. Αυτό επιταχύνει πολύ την όλη διαδικασία. 20

Block ciphers Για έναν n-bit block cipher με k-bit μεγέθους κλειδί K, γνωρίζοντας κανείς έστω και ένα ζευγάρι plaintextciphertext, τοκμπορείναβρεθείμεexhaustive key search. Κατά μέσο όρο μετά από 2 k-1 υπολογισμούς το κλειδί θα έχει βρεθεί. ΓιαπαράδειγμαστονDES όπου k=56, n=64 το κλειδί βρίσκεται μετά από 2 55 βήματα. Οι επιθέσεις στον DES εκμεταλλεύτηκαν το μικρό μήκος κλειδιού και όχι κάποια τρύπα στον αλγόριθμο. 21

Block ciphers Γιανααποφευχθούνοιεπιθέσειςτύπουexhaustive search, συχνά το ίδιο block κρυπτογραφείται πολλές φορές με διαφορετικά κλειδιά. Π.χ.: C = E kn (E kn-1 E k1 (m)) Αν τα κλειδιά είναι ανεξάρτητα μεταξύ τους, ο αλγόριθμος καλείται cascade cipher. ιαφορετικά, αν (μερικά από) τα κλειδιά είναι ίδια, τότε έχουμε multiple encryption. Σε ένα σύστημα double encryption E(m) = E k2 (E k1 (m)) με κλειδιά k1, k2, μεγέθους k-bits θα πρέπει κανείς να κάνει 2 2k υπολογισμούς μέχρι να σπάσει το σύστημα. Εναλλακτικά, μπορεί ναμειώσειτοχρόνοσε2 k αν χρησιμοποιήσει χώρο αποθήκευσης 2 k. Πως?? 22

Σύγχρονοι Συμμετρικοί Αλγόριθμοι 1971: Horst Feistel (IBM) Αλγόριθμος Lucifer 1973: H NIST (National Institute of Standards and Technology) απευθύνει κάλεσμα για υποβολή προτάσεων με σκοπό τη δημιουργία ενός νέου αλγορίθμου κρυπτογράφησης. 1974: H IBM υποβάλλει ως πρόταση έναν αλγόριθμο βασισμένο στον Lucifer. 1977: Data Encryption Standard (DES) γίνεται πρότυπο FIPS PUB 46. 1997: H NIST απευθύνει κάλεσμα για νέο πρότυπο. 1999: O DES σπάει σε 22 ώρες. 2000: H NIST επιλέγει τον Rijndael ή AES (Advanced Encryption Standard). 23

DES Η σχεδίαση του DES σχετίζεται με δύο ciphers: τους product ciphers και τους Feistel ciphers. Ορισμός: Ένα δίκτυο αντικατάστασης αντιμετάθεσης (substitution permutation or SP network) είναι ένας product cipher που αποτελείται από διάφορα στάδια, το καθένα από τα οποία περιλαμβάνει αντικαταστάσεις και αντιμεταθέσεις. 24

ίκτυο Αντικατάστασης - Αντιμετάθεσης 25

Γενικοί Ορισμοί Ορισμός: Ένας επαναληπτικός block cipher αποτελείται από διαδοχικές επαναλήψεις μιας συνάρτησης που καλείται round function. Παράμετροι σε έναν τέτοιο cipher είναι ο αριθμός των γύρων (rounds) r, το μέγεθος του block n και το μέγεθος σε bits k του κλειδιού εισόδου K από το οποίο παράγονται r υποκλειδιά k i (round keys). Ορισμός: Ένας Feistel cipher είναι ένας επαναληπτικός cipher που απεικονίζει ένα 2t μεγέθους (σε bits) plaintext (L 0, R 0 ), για δύο t- bits blocks L 0 και R 0, σε ένα ciphertext (R r, L r ) μέσω μιας διαδικασίας που αποτελείται από r rounds. Για κάθε i, ο γύρος i αντιστοιχίζει το ζευγάρι (L ι-1, R ι-1 ) στο ζευγάρι (L ι, R ι ) με τον εξής τρόπο: L ι = R ι-1 και R ι = L ι-1 XOR f(r ι-1, k i ) όπου f() είναι η round function και κάθε k i παράγεται από ένα αρχικό κλειδί K. Η αποκρυπτογράφηση γίνεται με τον ίδιο τρόπο, αλλά τα κλειδιά k i χρησιμοποιούνται με την αντίστροφη σειρά. Η συνάρτησηf() είναι συνήθως ένας product cipher. 26

DES Ουσιαστικά ο DES είναι ένας Feistel cipher οοποίος επεξεργάζεται blocks μεγέθους n = 64 bits και παράγει ciphertext blocks των 64 bits επίσης. Το μέγεθος του κλειδιού που χρησιμοποιείται είναι Κ = 56 bits. H κρυπτογράφηση γίνεται σε 16 γύρους (rounds). Από το αρχικό κλειδί Κ παράγονται 16 κλειδιά των 48-bits (καθένα από αυτά χρησιμοποιείται σε κάθε γύρο). 27

DES Κάθε plaintext block των 64-bits χωρίζεται σε 2 τμήματα L 0 και R 0. Στη συνέχεια εκτελείται ένας Feistel cipher από 16 γύρους, όπου η συνάρτηση f() είναι ίση με f(r ι-1, k i ) = P(S(E(R i-1 ) xor k i )) όπου: Ε (Expansion): προσθέτει στο R i-1 16 bits (από 32 το κάνει 48) S (Substitution): 8 S-boxes, το καθένα είναι ένας 6-to-4 bits αλγόριθμος αντικατάστασης P (Permutation): αλγόριθμος αντιμετάθεσης 28

29

DES α) ΠωςυλοποιούνταιταΙΡκαιΙΡ -1? 30

DES β) Πως υλοποιείται ησυνάρτησηf(.)? 31

Ιδιότητες DES 1) Κάθε bit του ciphertext εξαρτάται από όλα τα bits του κλειδιού και όλα τα bits του plaintext. 2) Στατιστικά, τα bits των plaintext και ciphertext είναι ανεξάρτητα. 3) Ηαλλαγήενόςbit του plaintext ή του κλειδιού, πρέπει να οδηγεί στην αλλαγή οποιουδήποτε bit του ciphertext με πιθανότητα ½. 4) Ηαλλαγήενόςbit του ciphertext πρέπει να οδηγεί το plaintext σε μη προβλέψιμες αλλαγές. 32

Ασθενή Κλειδιά του DES Αν τα κλειδιά k1 και k16 είναι ίδια, τότε ισχύει ότι k2=k15, k3=k14 κ.ο.κ. ηλαδή η διαδικασία της κρυπτογράφησης και της αποκρυπτογράφησης είναι η ίδια, ή αλλιώςe K (E K (m)) = m. Ta κλειδιά που έχουν αυτή την ιδιότητα καλούνται weak keys. ΑνγιαδύοκλειδιάΚ, Κ ισχύει ότι E K (E K (m)) = m, τότε αυτά καλούνται semi-weak keys. O DES έχει 4 weak keys και 6 ζευγάρια από semi-weak keys. 33

AES Ιαν. 1997: Το NIST (National Institute of Standards and Technology) απευθύνει κάλεσμα για τη δημιουργία νέου προτύπου Advanced Encryption Standard (AES) Αυγ. 1998: Πραγματοποιείται το πρώτο συνέδριο για τον AES, παρουσιάζονται 15 υποψήφιοι αλγόριθμοι από 12 χώρες. Aυγ. 1999: Το NIST ανακοινώνει τους 5 καλύτερους: MARS (IBM, US) RC6 (Rivest et al, MIT and RSA, US) Rijndael (Daemen and Rijmen, Belgium) Serpent (Anderson, Biham, Knudsen) Twofish (Schneier, Kelsey et al, Counterpane, US) Σεπτ. 2000: Επιλέγεται ο Rijndael Νοεμ. 2001: Νέο πρότυπο NIST FIPS 197 34

AES Κριτήρια επιλογής: Ασφάλεια: Ανθεκτικότητα απέναντι σε γνωστές επιθέσεις Ορθότητα ως προς το μαθηματικό υπόβαθρο Τυχαιότητα Όλα τα παραπάνω σε σχέση με τους άλλους υποψήφιους αλγόριθμους Κόστος Υλοποίηση: Ευελιξία (block and key lengths, platforms, H/W vs S/W) ιαφορετικές χρήσεις (modes, stream cipher, hash function, other) Απλότητα 35

AES Χρήση 3 μεγεθών κλειδιών: 128, 192 και 256 bits (αντίστοιχα AES- 128, AES-192, AES-256). Όσο αυξάνεται το μέγεθος του κλειδιού τόσο αυξάνεται η ισχύς του αλγορίθμου. Η NSA που υιοθέτησε τον AES για την επικοινωνία των υπηρεσιών της Αμερικής, όρισε το μέγεθος 128 για επικοινωνίες που χαρακτηρίζονται secret και το 192 ή 256 μέγεθος κλειδιού για top secret. Αν υποθέσουμε ότι έχουμε έναν υπολογιστή που εξετάζει 1 δις κλειδιά το δευτερόλεπτο, τότε για να βρεθεί το κλειδί στον AES με exhaustive search χρειάζονται: 36

AES AES-128: 9 encryption rounds + 1 final round AES-192: 11 encryption rounds + 1 final round AES-256: 13 encryption rounds + 1 final round Κάθε γύρος περιλαμβάνει τις εξής διαδικασίες: SubBytes, ShiftRows, MixColumns, AddRoundKey. O τελευταίος γύρος δεν περιλαμβάνει τη διαδικασία MixColumns. Block size = 128 bits 4x4 πίνακα όπου κάθε στοιχείο έχει μέγεθος 1 byte. Επομένως, ο AES λειτουργεί με bytes σε αντίθεση με τον DES που λειτουργούσε με bits. Αυτό κάνει την υλοποίησή του πιο αποδοτική σε software ενώ σε hardware δεν υπάρχουν διαφοροποιήσεις στην ταχύτητα των αλγορίθμων. 37

AES Συνοπτικά, η διαδικασία της κρυπτογράφησης έχει ως εξής: 1) Το block των 128 bits οργανώνεται σε έναν 4x4 πίνακα. 2) Εκτελείται η διαδικασία KeyExpansion, όπου δημιουργούνται τα κλειδιά που θα χρησιμοποιηθούν στους επόμενους γύρους. 3) Εκτελείται η διαδικασία AddRoundKey (δηλαδή το αρχικό block γίνεται xor με το 1 ο κλειδί). 4) Εκτελούνται οι γύροι του αλγορίθμου (το πλήθος τους Nr εξαρτάται από το μέγεθος του κλειδιού). 5) Τελευταίος γύρος (ίδιος με τους προηγούμενους, μόνο που τώρα δεν υπάρχει η διαδικασία MixColumns). H αποκρυπτογράφηση γίνεται με τις αντίστροφες διαδικασίες. 38

AES 39

ιαδικασία SubBytes 40

ιαδικασία ShiftRows H αντίστροφη διαδικασία InvShiftRows είναι ακριβώς η ίδια, μόνο που η μετατόπιση γίνεται τώρα προς τα δεξιά. 41

ιαδικασία MixColumns Ουσιαστικά, αν κάθε στήλη γραφεί ως πολυώνυμο 3 ου βαθμού στο GF(2 8 ), τότε η διαδικασία MixColumns είναι ένας πολ/σμός με το πολυώνυμο c(x) ο οποίος ακολουθείται από μια αναγωγή με το x 4 +1. Η διαδικασία InvMixColumns είναι ακριβώς ίδια, μόνο που τώρα γίνεται πολ/σμός με το πολυώνυμο c -1 (x). 42

ιαδικασία MixColumns Αν υποθέσουμε ότι α 0, α 1, α 2 και α 3 είναι τα bytes κάποιας στήλης, τότε αυτή μετασχηματίζεται στη στήλη b 0, b 1, b 2 και b 3 ως εξής: 43

ιαδικασία AddRoundKey 44

ιάβασμα Κεφάλαια 7.1, 7.2 και 7.4 του Handbook of Applied Cryptography Κεφάλαιο 7 απότοβιβλίοσύγχρονη Κρυπτογραφία: Θεωρία και Εφαρμογές 45