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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

UP class. & DES και AES

Πρόβληµα 2 (15 µονάδες)

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

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

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

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

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

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

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

Symmetric Cryptography. Dimitris Mitropoulos

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

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

Πρόβληµα 2 (12 µονάδες)

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

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

Advanced Encryption Standard (AES)

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

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

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

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

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

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

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

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

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

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

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

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

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

Πρόλογος 1. 1 Μαθηµατικό υπόβαθρο 9

1 Advanced Encryption Standard (AES)

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

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

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

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

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

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

Block Ciphers Modes. Ramki Thurimella

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

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

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

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

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

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

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

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

ΠΡΟΛΟΓΟΣ Η παρούσα πτυχιακή εργασία µε τίτλο Σχεδιασµός και Υλοποίηση Μηχανισµού Ασφαλείας µε τη χρήση ιατάξεων Υλικού για ίκτυα Τέταρτης Γενιάς (4G-L

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

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

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

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

Μελέτη και υλοποίηση σε γλώσσα C++ του κρυπτογραφικού αλγορίθμου AES

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

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ. ΣΑΚΕΛΛΑΡΙΟΥ ΠΑΝΑΓΙΩΤΗ του ΚΩΝΣΤΑΝΤΙΝΟΥ

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

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

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

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

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

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

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

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

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

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

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

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

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

Κρυπτογραφία και Ασφάλεια Υπολογιστών

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ. ΑΚΟΥΡΟΥ ΣΤΕΦΑΝΙΑ του ΝΙΚΟΛΑΟΥ

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

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

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

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

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

Κατάλογος Σχηµάτων. Κατάλογος Πινάκων. I Θεµέλια 27

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

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

Κρυπτογραφία και Ασφάλεια Δικτύων

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

Transcript:

Οικονομικό Πανεπιστήμιο Αθηνών Τμήμα Πληροφορικής ΠΜΣ Κρυπτογραφία και Εφαρμογές Διαλέξεις Ακ. Έτους 2011-2012 Μαριάς Ιωάννης Μαρκάκης Ευάγγελος marias@aueb.gr markakis@gmail.com Διάλεξη 6-1 5-1

Περίληψη Αδυναµίες του DES Triple DES και άλλα παρεµφερή κρυπτοσυστήµατα The Advanced Encryption Standard (AES) Στρώµα Σύγχυσης Στρώµα Διάχυσης Στρώµα Κρυπτογράφησης Μέθοδοι λειτουργίας συµµετρικών κρυπτοσυστηµάτων 2

Κρυπτανάλυση του DES Ιδιότητες και Αδυναµίες DES Ευρωστία DES 3

Data Encryption Standard (DES) DES Από το 1998 άρχισε να θεωρείται ευάλωτο σε κρυπταναλύσεις 3DES To Triple DES, TDES, ή TDEA ή απλά 3DES προτάθηκε στις αρχές του 1980 Προτυποποιήθηκε ως ANSI X9.17 το 1985 1999: NIST υιοθετεί DES ως FIPS 46-3 Χρησιµοποιεί τρία κλειδιά και τρεις εκτελέσεις του DES 3 φορές πιο αργό αλλά αρκετές φορές πιο ασφαλές 4

Data Encryption Standard (DES) 3DES EDE ( Encryption Decryption Encryption) Οι 16 κύκλοι του DES γίνονται 48: 16 για Encryption 16 για Decryption 16 για Encryption Encryption Decryption C = E K3 [D K2 [E K1 [P]]] P = D K1 [E K2 [D K3 [C]]] Είναι αποδεκτό Κ1 = Κ3 two-key triple-encryption 5

Data Encryption Standard (DES) Άλλοι Συµµετρικοί και Block Ciphers (Βασισµένοι σε παρόµοιες ιδέες) Algorithm Πότε Μέγεθος κλειδιού Αριθµός Κύκλων Μετασχηµατισµοί Σχόλια DES 1977 56 16 XOR, fixed S-boxes 3DES 1985 112 ή 168 48 XOR, fixed S-boxes IDEA 1991 128 8 XOR, πρόσθεση, πολλαπλασιασµός Kerberos PGP, S/MIME PGP Blowfish 1993 Έως 448 16 XOR, dynamic S-boxes, δυαδική πρόσθεση, Subkeys and S-boxes παράγονται µε επαναλήψεις του Blowfish. Όχι καλό για εφαρµογές συχνής αλλαγής key RC5 1994 Έως 2048 Έως 255 Πρόσθεση, αφαίρεση, XOR, ολίσθηση RFC2040, H/W και S/W, low memory requirements CAST-128 1997 40 έως 128 16 Πρόσθεση, αφαίρεση, XOR, ολίσθηση, fixed S-boxes RFC2144, Round Function (F) differs per round. PGP 6

Data Encryption Standard (DES) Εξαντλητική Αναζήτηση Μήκος Κλειδιού (bits) Αριθµός Πιθανών Κλειδιών Χρόνος για δοκιµές µίας αποκρυπτογράφησης (µs) Χρόνος για δοκιµές αποκρυπτογράφησης σε 10 6 µs 32 2 32 = 4,3 x 10 9 2 31 µs = 35,8 minutes 2,15 msecs 56 (DES) 2 56 = 7,2 x 10 16 2 55 µs = 1142 χρόνια 10 ώρες 128 2 128 = 3,4 x 10 38 2 127 µs = 5,4 x 10 24 χρόνια 5,4 x 10 18 χρόνια 168 (3DES) 2 168 = 3,7 x 10 50 2 167 µs = 3,9 x 10 36 χρόνια 3,9 x 10 30 χρόνια Διαφαίνεται ότι τα 168 bits του 3DES αποτελούν εγγύηση έναντι εξαντλητικής αναζήτησης για τα επόµενα χρόνια 7

NIST Initiative (1997) Γιατί DES/3DES αργοί σε υλοποιήσεις S/W Blocks των 64bit (ανάγκη για αύξηση αποδοτικότητας και ασφάλειας) Keys up to 256 NIST Specs Symmetric block cipher Blocks των 128bit Keys 128, 192 και 256 bits Κριτήρια Ασφάλεια Αλγορίθµων (τουλάχιστον ίση µε 3DES, αλλά απλούστερος) αξιολόγησης Κόστος (µνήµη, processing power) Απλότητα υλοποίησης (S/W, H/W) 8

History of AES September 12, 1997: Προκύρηξη για υποβολή προτάσεων για ένα νέο encryption standard June 15, 1998: Λήξη προθεσµίας υποβολής 21 προτεινόµενα κρυπτοσυστήµατα 15 πληρούσαν όλες τις προϋποθέσεις August, 1998: 1st AES candidate conference March 1999: 2nd AES candidate conference August 1999: Ανακοινώνονται πέντε finalists MARS, RC6, Rijndael, Serpent, Twofish April, 2000: 3rd AES candidate conference October 2000: Επιλέγεται το Rijndael (από τους Βέλγους Daemen και Rijmen) Δεν ακολουθεί δοµή Feistel. Χρησιµοποιεί S-Boxes February 2001: Βγαίνει σε δηµόσια διαβούλευση Νοvember 2001: Προτυποποιείται ως FIPS 197 9

History of AES Σε αντίθεση µε το DES, η διαδικασία επιλογής χαρακτηρίστηκε από πολύ περισσότερη διαφάνεια και «international flavor» 3 συνέδρια Επίσηµη πρόσκληση για public comments, feedback, etc Χώρες που εκπροσωπήθηκαν από τα 15 υποψήφια συστήµατα: Australia, Belgium, Canada, Costa Rica, France, Germany, Israel, Japan, South Korea, Norway, UK, USA Στο τέλος και τα 5 finalists θεωρήθηκαν ότι είναι ασφαλή κρυπτοσυστήµατα. Το Rijndael επιλέχθηκε ως το σύστηµα που έδινε τον καλύτερο συνδυασµό από security, performance, implementability, και flexibility 10

Χαρακτηριστικά Block cipher Μέγεθος plaintext/ciphertext: P = C = {0,1} 128 Κλειδιά : µεταβλητό µέγεθος, 128, 192 ή 256 bits Μεγάλος χώρος κλειδιών : αδύνατη η εξαντλητική αναζήτηση (για τα επόµενα χρόνια) Δεν ακολουθεί δίκτυο Feistel για σύγχυση και διάχυση Ένα δίκτυο Feistel κρυπτογραφεί σε κάθε γύρο τα µισά bits του µπλοκ εισόδου Στον AES κρυπτογραφείται όλο το µπλοκ εισόδου σε κάθε γύρο Λιγότεροι γύροι για ισοδύναµη ευρωστία µε δίκτυα Feistel Αριθµός γύρων εξαρτάται από µέγεθος κλειδιού r 128 =10, r 192 =12, r 256 =14 11

Χαρακτηριστικά Υπάρχει ένας αποθηκευτικός χώρος ενδιάµεσων αποτελεσµάτων που καλείται state (κατάσταση) Κάθε κύκλος αποτελείται από τρία στρώµατα: Σύγχυσης Διάχυσης Με τη διαδικασία sub_bytes (substitute) µέσω µη γραµµικών S-boxes Διαδικασίες shift_rows (ή rotate_rows) και mix_columns Κρυπτογράφησης Διαδικασία XOR µε κλειδί γύρου (add_roundkey ή xor_roundkey) Όπως και στο DES υπάρχει key schedule από ένα master key 12

Γύρος 0 Advanced Encryption Standard (AES) Είσοδος: µπλοκ 128bits, κύριο κλειδί (εδώ 128bits) add_roundkey Key schedule Βασικά Συστατικά state Γύρος 1 έως r-1 sub_bytes shift_rows mix_columns add_roundkey Στρώµα Σύγχυσης Στρώµα Διάχυσης state Γύρος r sub_bytes shift_rows add_roundkey Έξοδος : µπλοκ 128bits κρυπτοκείµενο 13

Σε κώδικα Σύγχυση Διάχυση Κρυπτο. 14

State Μια δοµή των 128 bits, πάνω στην οποία γίνονται όλοι οι µετασχηµατισµοί Δοµηµένη σε 4x4=16 bytes Κάθε byte της µορφής (α 7 α 6 α 5 α 4 α 3 α 2 α 1 α 0 ) αντιστοιχεί στο πολυώνυµο Σ 0 έως 7 α i x i του GF(2 8 ) Αρχικά: s 00 s 01 s 02 s 03 s 10 s 11 s 12 s 13 s 20 s 21 s 22 s 23 s 30 s 31 s 32 s 33 x 0 x 4 x 8 x 12 x 1 x 5 x 9 x 13 := (= plaintext) x 2 x 6 x 10 x 14 x 3 x 7 x 11 x 15 add_roundkey: XOR µε το κλειδί κάθε γύρου Η µόνη διαδικασία στο γύρο r=0 H τελευταία διαδικασία (στρώµα) κάθε κύκλου r>1 15

add_roundkey Κάθε subkey παράγεται από µια διαδικασία key_schedule Κάθε subkey είναι του ιδίου µεγέθους µε state Κλειδί: Δοµηµένο σε 4x4=16 bytes k ij s 00 s 01 s 02 s 03 s ij = s ij k ij s 10 s 11 s 12 s 13 s 20 s 21 s 22 s 23 s 00 s 01 s 02 s 03 s 30 s 31 s 32 s 33 K 00 K 01 K 02 K 03 K 10 K 11 K 12 K 13 XOR s 10 s 11 s 12 s 13 s 20 s 21 s 22 s 23 s 30 s 31 s 32 s 33 K 20 K 21 K 22 K 23 K 30 K 31 K 32 K 33 16

Στρώµα Σύγχυσης sub_bytes Σε κάθε γύρο είναι η πρώτη διαδικασία που πραγµατοποιείται Κάθε byte του state αντικαθίσταται από ένα άλλο byte µέσω ενός S-box S: {0, 1} 8 {0, 1} 8 Ίδιο S-box και για τα 16 bytes Σε αντίθεση µε το DES, η συνάρτηση του S-box ορίζεται αλγεβρικά Recall: To πεδίο GF(2 8 ) παράγεται από ανάγωγο πολυώνυµο βαθµού 8 Για το AES χρησιµοποιείται το ανάγωγο πολυώνυµο m(x)=x 8 +x 4 +x 3 +x+1 GF(2 8 ) = Z 2 [x]/(m(x)) = πολυώνυµα µέγιστου βαθµού 7, µε συντελεστές 0 ή 1 Υπάρχουν ακριβώς 2 8 = 256 τέτοια πολυώνυµα Κάθε byte από το state θα το βλέπουµε ως ένα πολυώνυµο 17

Στρώµα Σύγχυσης sub_bytes Κατά τη διαδικασία sub_bytes εκτελούνται τα ακόλουθα βήµατα για κάθε byte s ij του state: Βήµα 1 Για το byte s ij, έστω s ij (x) το αντίστοιχο πολυώνυµο. Yπολογίζεται ο πολλαπλασιαστικός αντίστροφος του s ij (x), δηλαδή το πολυώνυµο r(x) τέτοιο ώστε s ij (x)r(x) =1 (mod(m(x))) Εκτεταµένος αλγόριθµος Ευκλείδη Βήµα 2. Έστω (x 0,x 1,x 2,,x 7 ) ο αντίστροφος του s ij (x). Πραγµατοποιείται ο ακόλουθος µετασχηµατισµός: (b 0,, b 7 ) = Το S-box αντικαθιστά το s ij µε το (b 0,, b 7 ) 18

Στρώµα Σύγχυσης sub_bytes Παράδειγµα: έστω ότι s 00 = 53 16 = 01010011 Tότε s 00 (x) = x 6 + x 4 + x + 1 O πολλαπλασιαστικός αντίστροφος στο GF(2 8 ), µε χρήση του αλγορίθµου του Ευκλείδη, είναι x 7 + x 6 + x 3 + x = (11001010) = (a 7 a 6 a 5 a 4 a 3 a 2 a 1 a 0 ) Έστω c 7 c 6 c 5 c 4 c 3 c 2 c 1 c 0 =01100011 (σταθερός πίνακας του µετασχηµατισµού) Ένα καλό κόλπο για το γραµµικό µετασχηµατισµό: for i=0 to 7 b i (a i +a i+4 +a i+5 +a i+6 +a i+7 + c i ) mod2 /* δείκτες ανάγονται mod8 Return (b 7 b 6 b 5 b 4 b 3 b 2 b 1 b 0 ) 19

Στρώµα Σύγχυσης sub_bytes Εποµένως b 0 = (a 0 +a 4 +a 5 +a 6 +a 7 +c 0 ) mod2 = (0 + 0 + 0 +1 +1 +1) mod2 = 1 b 1 = (a 1 +a 5 +a 6 +a 7 +a 0 +c 1 ) mod2 = (1 + 0 + 1 +1 +0 +1) mod2 = 0 Τελικά παίρνουµε b = (11101101) = {ED} 16 Παρατηρήσεις: Μπορούµε να αναπαραστήσουµε κάθε byte µε 2 δεκαεξαδικά νούµερα Χρήση ενός πίνακα για την αποθήκευση της συνάρτησης του S-box Π.χ. για το byte 1c, η τιµή της S είναι στην γραµµή 1 και στήλη c Συνολικά η sub_bytes διαθέτει καλή µη-γραµµική συµπεριφορά 20

Στρώµα Σύγχυσης sub_bytes s 00 s 01 s 02 s 03 s 10 s 11 s 12 s 13 sub_bytes b 00 b 01 b 02 b 03 b 10 b 11 b 12 b 13 s 20 s 21 s 22 s 23 b 20 b 21 b 22 b 23 s 30 s 31 s 32 s 33 b 30 b 31 b 32 b 33 b ij = S(s ij ) Look-up table για την αντικατάσταση των bytes 21

Στρώµα διάχυσης 1η διαδικασία: shift_rows Η shift_rows εφαρµόζεται στις γραµµές του state και τις ολισθαίνει κατά 0, 1, 2 και 3 θέσεις αριστερά αντίστοιχα: Γραµµή 0: καµία ολίσθηση Γραµµή 1: αριστερή ολίσθηση κατά 1 θέση Γραµµή 2: αριστερή ολίσθηση κατά 2 θέσεις Γραµµή 2: αριστερή ολίσθηση κατά 3 θέσεις s 00 s 01 s 02 s 03 s 10 s 11 s 12 s 13 s 20 s 21 s 22 s 23 Shift Rows s 00 s 01 s 02 s 03 s 11 s 12 s 13 s 10 s 22 s 23 s 20 s 21 s 30 s 31 s 32 s 33 s 33 s 30 s 31 s 32 22

Στρώµα διάχυσης 2η διαδικασία: mix_columns Θεωρούµε κάθε στήλη τoυ state ως ένα πολυώνυµο βαθµού 3 µε συντελεστές πολυώνυµα του GF(2 8 ) Αν (S i, S j, S k, S m ) µία στήλη του state, µπορούµε να τη δούµε ως το πολυώνυµο a 3 x 3 + a 2 x 2 + a 1 x + a 0 Όπου a 3 το πολυώνυµο που αντιστοιχεί στο S i, a 2 το πολυώνυµο που αντιστοιχεί στο S j, κ.ο.κ. Κάθε στήλη πολλαπλασιάζεται µε ένα προκαθορισµένο πολυώνυµο c (x) = 3x 3 +x 2 +x+2 και το αποτέλεσµα ανάγεται mod (x 4 +1). Έστω r (x) το πολυώνυµο που προκύπτει Τελικά η στήλη αντικαθίσταται από τα bytes που αντιστοιχούν στους συντελεστές του r(x) 23

Στρώµα διάχυσης 2η διαδικασία: mix_columns Ή διαφορετικά, η διαδικασία µπορεί να κωδικοποιηθεί ως: r i = 2S i + 3S j + S k + S m r j = S i + 2S j + 3S k + S m r k = S i + S j + 2S k + 3S m r m =3S i + S j + S k + 2S m r i r i r k r m = S i S j S k S m 24

Key Schedule Είσοδος: Κλειδί 128bits (master key) Έξοδος: Για 10 γύρους χρειαζόµαστε 11 subkeys των 128 bits 4 λέξεις (words) για κάθε κλειδί (1 word = 4 bytes) Συνολικά πρέπει να παράγουµε 44 λέξεις (44x32=1408 bits) σε ένα πίνακα w 0,, w 43 Οι λέξεις w χρησιµοποιούνται ανά τέσσερις σε κάθε διαδικασία add_roundkey Αρχικά οι τέσσερις πρώτες λέξεις w 0 έως w 3 φορτώνονται µε τα 128 bits του master key Στη συνέχεια ακολουθεί διαδικασία που επαναλαµβάνεται 40 φορές για να καθοριστούν οι λέξεις w 4 έως w 43 25

Key Schedule Key expansion(key) (w 0,, w 3 ) = key for i=4 to 43 { temp = w i-1 if (i 0 mod 4) then temp = sub_word(rot_word(temp)) RC i/4 w i = w i-4 temp } rot_word: αριστερή ολίσθηση κατά 1 byte sub_word: εφαρµογή του S-box σε κάθε byte της λέξης Όταν το i είναι πολ/σιο του 4: Εφαρµόζεται κυκλική ολίσθηση προς τα αριστερά και αντικατάσταση πριν το XOR Πίνακας RC: πίνακας µε 10 λέξεις που έχουν fixed τιµή από την αρχή 26

Key Schedule K 1 K 2 K 3 K 4 K 5 K 6 K 7 K 8 K 9 k 10 k 11 k 12 k 13 k 14 k 15 k 16 w 1 w 2 w 3 w 4 w i-4 w i-1 32 RC 1 =01000000 32 Κυκλικό shift 8 8 8 8 8 RC [i/4] RC 2 =02000000 RC 3 =04000000 RC 4 =08000000 sub_bytes 32 RC 5 =10000000 RC 6 =20000000 RC 7 =40000000 32 32 RC 8 =80000000 RC 9 =1B000000 RC 10 =36000000 w i Με την ίδια λογική όπως και στα data 27

Decryption Ο Bob µπορεί να υπολογίσει το key schedule µε τον ίδιο τρόπο Όλες οι λειτουργίες αντιστρέφονται εύκολα Π.χ. Για το S-box, χρησιµοποιείται η Inv_sub_bytes, που υλοποιείται µε look-up table Παρόµοια µπορούν να υλοποιηθούν και όλοι οι άλλοι µετασχηµατισµοί 28

Κρυπτανάλυση Δεν υπάρχουν weak ή semi-weak κλειδιά στο AES Δεν υπάρχει κανένας περιορισµός ως προς την επιλογή του κλειδιού Αρκετά ασφαλές σύστηµα σε γραµµική και διαφορική κρυπτανάλυση Η αλγεβρική κατασκευή των S-boxes εξασφαλίζει ότι η κατανοµή των διαφορών εξόδου είναι οµοιόµορφη Δεν υπάρχουν γραµµικές σχέσεις µε αυξηµένη πόλωση Αυτή τη στιγµή δεν υπάρχει κάποια γνωστή επιτυχηµένη επίθεση στο AES Υπάρχουν κάποιες επιθέσεις αλλά για µικρότερο αριθµό γύρων Δεν είναι αποτελεσµατικές για 10 γύρους Αρχικά υπήρξε κριτική για την αλγεβρική κατασκευή Πιθανότητα εύρεσης αλγεβρικής επίθεσης 29

Συµµετρική Κρυπτογραφία Τµηµάτων Μέθοδοι Λειτουργίας Υπάρχουν διάφορες προτάσεις ως προς τον µετασχηµατισµό του επόµενου block (τµήµατος) και την ανάδραση προηγούµενων µετασχηµατισµών στο τρέχον τµήµα. Τέσσερις µέθοδοι λειτουργίας για block ciphers: ECB electronic-codebook CBC cipher-block chaining CFB cipher feedback OFB output feedback Έχουν προταθεί και µερικές καινούριες µέθοδοι για το ΑES 30

Συµµετρική Κρυπτογραφία Τµηµάτων ECB Electronic Codebook Κάθε block στο plaintext κρυπτογραφείται µε το ίδιο κλειδί Chaining dependencies: Τα plaintext blocks κρυπτογραφούνται ανεξάρτητα Error propagation: ένα η περισσότερα bit errors σε ένα ciphertext block επηρεάζουν το decipherment µόνο αυτού του block Απλός και γρήγορος Plaintext Word Plaintext by Plaintext Word Encrypt Encrypt Encrypt Ciphertext vfa3 Ciphertext 2@xF Ciphertext vfa3 31

Συµµετρική Κρυπτογραφία Τµηµάτων CBC Cipher Block Chaining Κάθε block κρυπτογραφείται αφού πρώτα περάσει από XOR µε το ciphertext του προηγούµενου block Απαιτείται Initialization Vector (IV) γνωστό σε ποµπό και δέκτη Έστω c 0 = IV Για το block i: c i = e k (c i-1 x i ) Decryption: x i = d k (c i ) c i-1 Ίδια plaintext blocks δεν παράγουν ίδιο ciphertext block (µόνο για ίδιο IV ) Plaintext Word Plaintext by Plaintext Word IV x#&1 Encrypt Encrypt Encrypt Ciphertext vfa3 Ciphertext r4=z Ciphertext sz8f 32

Συµµετρική Κρυπτογραφία Τµηµάτων CBC Cipher Block Chaining Chaining dependencies: Το ciphertext c j εξαρτάται από το plaintext µπλοκ x j-1 και όλα τα προηγούµενα. Προσοχή στο rearranging των ciphertext blocks. Error propagation: ένα bit error στο ciphertext block c j επηρεάζει το decipherment στα blocks c j και c j+1 Error recovery: Είναι self-synchronizing. Αν ένα error παρουσιαστεί στο block c j αλλά όχι στα c j+1 και c j+2, το x j+2 αποκρυπτογραφείται σωστά Plaintext Word Plaintext by Plaintext Word IV x#&1 Encrypt Encrypt Encrypt Ciphertext vfa3 Ciphertext r4=z Ciphertext sz8f 33

Συµµετρική Κρυπτογραφία Τµηµάτων CFB Cipher Feedback Το ciphertext του προηγούµενου block κρυπτογραφείται και γίνεται XOR µε το τρέχον plaintext block Συνήθως µε ένα µέρος αυτού, δηλαδή ένα r-bit plaintext < n Απαιτείται Initialization Vector (IV, n bits) Για το block i: c i = e k (c i-1 ) x i Decryption: x i = e k (c i-1 ) c i Ίδια plaintext blocks δεν παράγουν ίδιο ciphertext block (µόνο για ίδιο IV) Plaintext Word Plaintext by Plaintext Word Encrypt Encrypt Encrypt IV r(=* Ciphertext vfa3 Ciphertext A4!Z Ciphertext &R8F 34

Συµµετρική Κρυπτογραφία Τµηµάτων CFB Cipher Feedback Chaining dependencies: Όπως και στο CBC Error propagation: ένα η περισσότερα bit errors σε ένα ciphertext block c j επηρεάζουν το decipherment αυτού και των υπόλοιπων n/r ciphertext blocks Error recovery: η CFB είναι self-synchronizing απαιτεί n/r ciphertext blocks για ανάκαµψη Plaintext Word Plaintext by Plaintext Word Encrypt Encrypt Encrypt IV r(=* Ciphertext vfa3 Ciphertext A4!Z Ciphertext &R8F 35

Συµµετρική Κρυπτογραφία Τµηµάτων ΟFB Output Feedback (ISO 10116) Το keystream του προηγούµενου block επανα-κρυπτογραφείται παράγοντας ένα νέο keystream. Το νέο keystream συνδυάζεται µε XOR µε το plaintext του τρέχοντος block Συνήθως µε ένα µέρος αυτού, δηλαδή ένα r-bit plaintext < n Απαιτείται Initialization Vector (IV) Ίδια plaintext blocks δεν παράγουν ίδιο ciphertext block (µόνο για ίδιο IV) Chaining dependencies: το keystream είναι ανεξάρτητο από plaintext Error propagation: ένα ή περισσότερα bit errors σε οποιοδήποτε χαρακτήρα ciphertext c j επηρεάζει την αποκρυπτογράφηση µόνο αυτού του χαρακτήρα Error recovery: Ανακάµπτει καλύτερα από όποιον άλλον σε ciphertext bit errors Plaintext Word Plaintext by Plaintext Word Encrypt Encrypt Encrypt IV x#&1 Ciphertext vfa3 Ciphertext r4=z Ciphertext sz8f 36

Συµµετρική Κρυπτογραφία Τµηµάτων Μη τυποποιηµένοι τρόποι λειτουργίας Έχουν προταθεί αρκετές άλλες µέθοδοι Ελάχιστες έχουν µελετηθεί σε βάθος Δεν συνίστανται σε περιπτώσεις που δεν θέλουµε να ρισκάρουµε Πιθανές ασφαλείς κατασκευές: συνδυασµοί των τυποποιηµένων µεθόδων Τοποθέτηση της ανάδρασης Σε product cipher, είναι επιθυµητό να µην υπάρχει ανάδραση ενδιάµεσα Αλλιώς δηµιουργούνται shortcuts Ο Oscar µπορεί να επιτεθεί χωριστά σε καθένα από τους αλγορίθµους του γινοµένου 37