Βασικές αρχές. κρυπτανάλυσης. ΚΕΦΑΛΑΙΟ 1



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

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

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

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

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

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

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

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

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

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

Κεφάλαιο 21. Κρυπτογραφία δημόσιου κλειδιού και πιστοποίηση ταυτότητας μηνυμάτων

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

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

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

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

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

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

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

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

Κατάλογος Σχηµάτων. Κατάλογος Πινάκων. I Κρυπτανάλυση 21

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

KΕΦΑΛΑΙΟ 5 ΨΗΦΙΑΚΕΣ ΥΠΟΓΡΑΦΕΣ

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

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

Κρυπτογραφία ηµόσιου Κλειδιού Η µέθοδος RSA. Κασαπίδης Γεώργιος -Μαθηµατικός

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

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

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

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

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

Ψευδο-τυχαιότητα. Αριθµοί και String. Μονόδροµες Συναρτήσεις 30/05/2013

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

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

Κρυπτογραφικά Πρωτόκολλα

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

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

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

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

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

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

Παύλος Εφραιμίδης. προηγμένα κρυπτογραφικά πρωτόκολλα. Ασφ Υπολ Συστ

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

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

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

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

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

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

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

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

ΚΡΥΠΤΟΓΡΑΦΙΑ Α. ΑΠΟ ΤΟ ΒΙΒΛΙΟ «Η ΦΥΣΗ ΚΑΙ Η ΔΥΝΑΜΗ ΤΩΝ ΜΑΘΗΜΑΤΙΚΩΝ»

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

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

2 o Καλοκαιρινό σχολείο Μαθηµατικών Νάουσα 2008

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

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

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

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

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

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

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

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

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

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

a 1d L(A) = {m 1 a m d a d : m i Z} a 11 a A = M B, B = N A, k=1

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

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

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

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

Ασκήσεις Φροντιστηρίου «Υπολογιστική Νοηµοσύνη Ι» 7ο Φροντιστήριο 15/1/2008

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

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

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

ΠΑΡΑΛΛΗΛΗ ΕΠΕΞΕΡΓΑΣΙΑ

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

Αριθμοθεωρητικοί Αλγόριθμοι

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

P (A) = 1/2, P (B) = 1/2, P (C) = 1/9

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

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

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

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

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

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

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

Εισαγωγή στην Πληροφορική. Α σ κ ή σ ε ι ς σ τ η ν ι α χ ε ί ρ ι σ η Μ ν ή µ η ς. Αντώνης Σταµατάκης

Οι πράξεις που χρειάζονται για την επίλυση αυτών των προβληµάτων (αφού είναι απλές) µπορούν να τεθούν σε µια σειρά και πάρουν µια αλγοριθµική µορφή.

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

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

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

Αλγόριθµοι και Πολυπλοκότητα

El Gamal Αλγόριθμος. Κώστας Λιμνιώτης Κρυπτογραφία - Εργαστηριακό μάθημα 7 2

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Τµήµα Επιστήµης Υπολογιστών. HY-217: Πιθανότητες-Χειµερινό Εξάµηνο ιδάσκων : Π. Τσακαλίδης.

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

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

Ορια Συναρτησεων - Ορισµοι

ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ Ασκησεις - Φυλλαδιο 8

Ελληνικό Ανοικτό Πανεπιστήµιο Σπουδές στην Πληροφορική. Μια σύντοµη διαδροµή στα µονοπάτια της σύγχρονης κρυπτογραφίας

Πίνακες Διασποράς. Χρησιμοποιούμε ένα πίνακα διασποράς T και μια συνάρτηση διασποράς h. Ένα στοιχείο με κλειδί k αποθηκεύεται στη θέση

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

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

Transcript:

ΚΕΦΑΛΑΙΟ 1 Βασικές αρχές κρυπτανάλυσης Στο κεφάλαιο αυτό παρουσιάζονται οι ϐασικές αρχές και τα µέσα τα οποία χρησιµοποιεί η κρυπτανάλυση, προκειµένου να γίνουν πιο κατανοητοί οι στόχοι των επόµενων κεφαλαίων. Επιπλέον γίνεται περιγραφή της επίθεσης του Hellman (Time Memory Trade Off), καθώς και µία συνοπτική παρουσίαση κάποιων άλλων ϐασικών τεχνικών κρυπτανάλυσης. 23

24 Κεφάλαιο 1 Βασικές αρχές κρυπτανάλυσης 1.1 Εισαγωγή Η κρυπτανάλυση αποτελεί τον κλάδο της κρυπτογραφίας, ο οποίος ως κύριο αντικείµενο της µελέτης του έχει την ανεύρεση προβληµάτων στους κρυπτογραφικούς αλγόριθµους που χρησιµοποιούνται. Μέσω της κρυπτανάλυσης ενός αλγορίθµου κρυπτογράφησης, προσπαθεί κανείς να ϐρει το κλειδί αποκρυπτογράφησης ή µέρος του ή απλά να καταφέρει να έχει πρόσβαση σε κάποια αποκρυπτογρα- ϕηµένα µηνύµατα. Αυτό το οποίο ϑα πρέπει να τονίσουµε, είναι ότι η κρυπτανάλυση δεν αφορά µόνο τους αλγορίθµους κρυπτογράφησης, αφορά το σύνολο των µηχανισµών της κρυπτογραφίας, όπως συναρτήσεις κατακερµατισµού, ψηφιακές υπογραφές κ.ά. Ετσι για παράδειγµα η κρυπτανάλυση µίας συνάρτησης κατακερµατισµού H, έχει σαν στόχο να οδηγήσει στην εύρεση δύο τιµών x και y µε x y και H(x) = H(y). Στην περίπτωση των ψηφιακών υπογραφών, ϑα προσπαθούσε κανείς να πλαστογραφήσει µία ψηφιακή υπογρα- ϕή, να εκδόσει έγκυρη ψηφιακή υπογραφή άλλου ή ακόµη και να αλλοιώσει ένα ήδη ψηφιακά υπογεγραµµένο έγγραφο. Η κρυπτανάλυση όµως δεν έχει µόνο ως άµεσο σκοπό την υ- ποκλοπή. Μελετώντας κανείς τις τεχνικές κρυπτανάλυσης αλγορίθ- µων, µπορεί να εντοπίσει τα αδύναµα στοιχεία τους. Από τους τρόπους µε τους οποίους µπορεί ένας αλγόριθµος να σπάσει, µπορεί κανείς να οδηγηθεί σε ασφαλέστερες δοµές και τεχνικές µε αποτέλεσµα να κατασκευαστούν πιο ασφαλείς αλγόριθµοι. Από την πλευρά της ασφάλειας, µπορεί κανείς γνωρίζοντας ότι ένας αλγόριθµος είναι ευπαθής ή δεν είναι ευπαθής σε κάποιες ε- πιθέσεις, να τον χρησιµοποιήσει ή να παύσει να τον χρησιµοποιεί. Χαρακτηριστικά παραδείγµατα αποτελούν τόσο ο RC4 και ο AES. Ο RC4, όπως ϑα µελετήσουµε και αργότερα, αν και είναι ασφαλής αλγόριθµος, η εφαρµογή του στο WEP, µας δείχνει πως ένας ασφαλής αλγόριθµος µπορεί να µεταβληθεί σε ανασφαλή, µέσω των προ- ϐληµάτων υλοποίησης. Ο AES πάλι, αν και γενικά είναι ασφαλής αλγόριθµος, εντούτοις, όταν λειτουργεί στα 256 bits µε 10 γύρους, τότε ο αλγόριθµος µπορεί να σπάσει µε 2 45 δοκιµές [50]. Ο ϐαθµός στον οποίο ένας αλγόριθµος έχει κρυπταναλυθεί απέναντι σε κάποιες ϐασικές επιθέσεις, αποτελεί σήµερα το ϐασικότερο κριτήριο για να χαρακτηριστεί ένας αλγόριθµος ασφαλής και να προτιµηθεί σε σχέση µε κάποιον άλλο.

1.2. Βασικές επιθέσεις 25 Σχήµα 1.1: Βασικό µοντέλο κρυπτανάλυσης Ο επιτιθέµενος έχει σίγουρα πρόσϐαση στο κρυπτογραφηµένο κείµενο και ενδέχεται να έχει µερική ή και ολική πρόσϐαση στο αρχικό κείµενο. 1.2 Βασικές επιθέσεις Στον πρώτο τόµο, για ορισµένους αλγόριθµους, όπως του Καίσαρα, του Vigenere, αναλύθηκαν κάποιοι τρόποι κρυπτανάλυσης. Σε κά- ϑε περίπτωση ϑα πρέπει να ενεργούµε ϐασιζόµενοι στην αρχή του Kerckhoffs, ϐάση της οποίας, ο αλγόριθµος είναι γνωστός σε όλους και το µόνο µυστικό είναι το κλειδί. Συνεπώς η ασφάλεια ϐασίζεται µόνο στην γνώση του κλειδιού και την ισχύ του αλγορίθµου και όχι στην µυστικότητά του. Αν ϑα ϑέλαµε να κατηγοριοποιήσουµε τις ϐασικές επιθέσεις, ϑα είχαµε τις ακόλουθες κατηγορίες, σε ένα µοντέλο όπως στο σχήµα 1.1. Επιθέσεις εξαντλητικής αναζήτησης (Brute force attacks) Σε αυτές τις περιπτώσεις, ο επιτιθέµενος µπορεί να δοκιµάσει όλα τα δυνατά κλειδιά αποκρυπτογράφησης µέχρι να ϐρει το κλειδί που έχει χρησιµοποιηθεί. Επιθέσεις κρυπτογραφηµένου κειµένου (Ciphertext only attacks) Ο επιτιθέµενος γνωρίζει µόνο το κρυπτογραφηµένο κείµενο. Σε αυτές τις επιθέσεις ο επιτιθέµενος προσπαθεί να αναγνωρίσει τα στατιστικά της γλώσσας στο κρυπτογραφηµένο κείµενο. Επιθέσεις γνωστών Ϲευγών αρχικού και κρυπτογραφηµένου κειµένου (Known plaintext attacks) Ο επιτιθέµενος γνωρίζει

26 Κεφάλαιο 1 Βασικές αρχές κρυπτανάλυσης την κρυπτογράφηση ορισµένων Ϲευγών αρχικού κειµένου και του αντίστοιχου κρυπτογραφηµένου κειµένου. Επιθέσεις επιλεγµένων γνωστών Ϲευγών αρχικού και κρυπτογραφηµένου κειµένου (Chosen ciphertext attacks) Η ϐασική διαφορά σε σχέση µε τις προηγούµενες επιθέσεις, είναι ότι ο επιτι- ϑέµενος είναι σε ϑέση να ορίσει τα αρχικά κείµενα για τα οποία ϑα γνωρίζει την κρυπτογράφησή τους. Επιθέσεις επιλεγµένων γνωστών Ϲευγών κρυπτογραφηµένου και αρχικού κειµένου (Chosen plaintext attacks) Η ϐασική διαφορά σε σχέση µε τις προηγούµενες επιθέσεις, είναι ότι ο επιτιθέµενος είναι σε ϑέση να ορίσει τα κρυπτογραφηµένα και όχι τα αρχικά κείµενα για τα οποία ϑα γνωρίζει την αποκρυπτογράφησή τους. Επιθέσεις συσχετισµένων κλειδιών (Related key attacks) Σε αυτού του είδους τις επιθέσεις, ο επιτιθέµενος µπορεί να παρατηρεί την αλλαγή που επιφέρει στα κρυπτογραφηµένα κείµενα η εφαρ- µογή διαφορετικών κλειδιών κρυπτογράφησης, µεταξύ των οποίων υπάρχει µία γνωστή στον επιτιθέµενο µαθηµατική σχέση η οποία τα συνδέει, για παράδειγµα τα κλειδιά ανά δύο διαφέρουν µεταξύ τους σε ένα (bit), το επόµενο κλειδί που ϑα χρησιµοποιηθεί ϑα είναι το προηγούµενο αυξηµένο κατά µία µονάδα κ.τ.λ. Σε αυτές τις ϐασικές επιθέσεις, υπάρχει ένα µεγάλο πλήθος δια- ϕοροποιήσεων, όπως π.χ. αν µπορεί κανείς να αλλάξει κατά τη διάρκεια της επίθεσης τα Ϲεύγη των επιλεγµένων γνωστών Ϲευγών αρχικού και κρυπτογραφηµένου κειµένου, τότε έχουµε τις λεγόµενες προσαρµοστικές επιθέσεις επιλεγµένων γνωστών Ϲευγών αρχικού και κρυπτογραφηµένου κειµένου (Adaptive chosen plaintext attacks). Αντίστοιχα ορίζονται και οι προσαρµοστικές επιθέσεις ε- πιλεγµένων γνωστών Ϲευγών κρυπτογραφηµένου και αρχικού κει- µένου (Adaptive chosen ciphertext attacks).

1.3. Η επίθεση του Hellman-TMTO 27 1.3 Η επίθεση του Hellman-TMTO Ας υποθέσουµε ότι κάποιος ϑέλει να επιτεθεί σε έναν αλγόριθµο κρυπτογράφησης τµηµάτων, ο οποίος έχει ως είσοδο και έξοδο 64 bits, ενώ το µήκος του κλειδιού, είναι και αυτό 64 bits. Αν λοιπόν είχε τη δυνατότητα να έχει έναν υπολογιστή µε τροµερή υπολογιστική ισχύ, ο οποίος µπορεί να κάνει εξαντλητική αναζήτηση στον χώρο κλειδιών του, τότε ϑα µπορούσε µε περίπου 2 63 δοκιµές να α- νακαλύψει το κλειδί µε το οποίο έχει κρυπτογραφηθεί ένα µήνυµα. Αν ο υπολογιστής αυτός είχε τη δυνατότητα να αποθηκεύσει και να διαχειριστεί δεδοµένα της τάξης των 8 2 64 bytes, τότε ϑα µπορούσε κανείς αν έχει αποθηκεύσει την κρυπτογράφηση ενός κειµένου µε όλα τα δυνατά κλειδιά, να κάνει απλά µία αναζήτηση σε αυτή την τεράστια ϐάση, προκειµένου να ϐρει το κλειδί το οποίο αντιστοιχεί στο κρυπτογραφηµένο κείµενο το οποίο έχει στα χέρια του. Στην πρώτη περίπτωση, ο επιτιθέµενος ϑα πρέπει κάθε ϕορά που πρέπει να κρυπταναλύσει ένα κρυπτογραφηµένο κείµενο, να επαναλαµβάνει διαρκώς µία εξαντλητική αναζήτηση της τάξης των 2 63 δοκιµών. Στη δεύτερη περίπτωση, ϑα πρέπει να έχει στη διάθεσή του τεράστιες ποσότητες αποθηκευτικού χώρου. Ο Martin Hellman, προσπάθησε να δει αν και κατά πόσο µπορεί να υπάρχει µία ισορ- ϱοπία µεταξύ αυτών των δύο περιπτώσεων [52]. Πόρισµα αυτής της µελέτης ήταν το λεγόµενο Hellman-Time Memory Trade Off ή πιο απλά Hellman-TMTO. Η απλή ιδέα στην οποία ϐασίστηκε είναι η ακόλουθη. Εστω ότι κάποιος κρυπτογραφεί µία λέξη P µε ένα τυχαίο κλειδί K 0, παίρνοντας τη λέξη C 0,0 = E K0 (P). Στη συνέχεια, παίρνοντας ως κλειδί το C 0,0, κρυπτογραφεί την P, παίρνοντας την C 0,1 = E C0,0 (P). Δη- µιουργείται λοιπόν µία ακολουθία κλειδιών C 0,i. Ας υποθέσουµε ότι κάποιος υπολογίζει t τιµές C 0,i και στην συνέχεια ξεκινά πάλι τον υπολογισµό των C 1,i, ξεκινώντας αυτή τη ϕορά από διαφορετικό κλειδί το K 1, κατασκευάζοντας έτσι τα C 1,0,..., C 1,t. Σχηµατικά αυτό αποδίδεται στα σχήµατα 1.2 και 1.3. Ας υποθέσουµε τώρα πως η διαδικασία αυτή επαναλαµβάνεται r ϕορές και ότι οι αλυσίδες αυτές δεν τέµνονται, τότε σχηµατικά, ϑα είχαµε το σχήµα 1.4. Για την επίθεση, αποθηκεύουµε µόνο την αρχική ϑέση και την τελική, δηλαδή τα C i,0, C i,t, για κάθε i από 0 ως r. Ας προσαρµόσουµε τις αλυσίδες αυτές, στον υποθετικό

28 Κεφάλαιο 1 Βασικές αρχές κρυπτανάλυσης Σχήµα 1.2: Αλυσίδα κρυπτογραφήσεων µίας λέξης. Σχήµα 1.3: Μία αλυσίδα κρυπτογραφήσεων, πιο διαισϑητικά. αλγόριθµο που έχουµε. Οι αλυσίδες µας ϑα έχουν µήκος 2 32 και ϑα δηµιουργήσουµε 2 32 διαφορετικές αλυσίδες. Σε µία τέτοια πε- ϱίπτωση, κατά πάσα πιθανότητα ϑα έχουµε αρκετές τοµές µεταξύ των αλυσίδων, παρόλα αυτά για χάριν απλότητας ϑα υποθέσουµε ότι δεν υπάρχουν. Αν λάβουµε µία οποιαδήποτε κρυπτογράφηση του P, τότε χρησιµοποιώντας τα C i,0, C i,t µπορούµε να ϐρούµε να ϐρούµε το κλειδί µε 2 33 το πολύ ϐήµατα. Πράγµατι, αφού έχουµε 2 32 αλυσίδες, οι οποίες αποτελούνται από 2 32 κρίκους, έχουµε συνολικά 2 32 2 32 = 2 64 κρυπτογραφηµένες λέξεις. Συνεπώς η κρυπτογρά- ϕηση C, που έχουµε στα χέρια µας, ϑα ϐρίσκεται σε κάποια από όλες αυτές τις αλυσίδες. Αρχικά ϑα αναζητήσουµε σε ποία αλυσίδα ϐρίσκεται το C, για να γίνει αυτό, κρυπτογραφούµε την λέξη P µε κλειδί το C, στη συνέχεια ελέγχουµε αν το αποτέλεσµα αυτό είναι κάποιο από τα C i,2 32, τους τερµατικούς κρίκους των αλυσίδων. Η διαδικασία συνεχίζεται µέχρι να ϐρεθεί το κατάλληλο i, συνεπώς ϑα χρειαστούν το πολύ 2 32 ϐήµατα. Εχοντας εντοπίσει το i, η διαδικασία αρχίζει από τον αρχικό κρίκο της αλυσίδας µέχρι να εντοπίσει το C, το οποίο έχουµε λάβει, σχήµα 1.5. Η διαδικασία αυτή ϑα χρειαστεί από πλευράς αποθηκευτικών

1.3. Η επίθεση του Hellman-TMTO 29 Σχήµα 1.4: Το σύνολο από r αλυσίδες οι οποίες δεν τέµνονται. µέσων περίπου 8 2 2 32 bits για τον αλγόριθµο που µελετάµε και 2 64 αρχικές κρυπτογραφήσεις. Σίγουρα, το κόστος αν ϑέλουµε να κάνουµε επίθεση σε ένα µόνο κλειδί είναι µεγαλύτερο από το να κάνουµε εξαντλητική αναζήτηση, αλλά υπάρχει τεράστιο κέρδος αν πρέπει να εφαρµοστεί περισσότερες ϕορές. Σε κάθε νέα επίθεση, ϑα χρειαστούν περίπου 2 33 ϐήµατα για την εύρεση του κλειδιού, χωρίς να υπάρχει ανάγκη για επιπλέον αποθηκευτικό χώρο. Στα πλεονεκτήµατα της µεθόδου είναι ασφαλώς το γεγονός ότι η δοµή του αλγορίθµου δεν έχει καµία σηµασία, µάλιστα µε µικρές τροποποιήσεις ϑα µπορούσαµε να πάρουµε αλγόριθµους για τους οποίους το κλειδί δεν έχει ίδιο µήκος µε το τελικό κείµενο. Επιπλέον ο αλγόριθµος καταφέρνει να αποδώσει µία εξισορρόπηση µεταξύ του κόστους υπολογισµού και µνήµης (Time Memory Tra-

30 Κεφάλαιο 1 Βασικές αρχές κρυπτανάλυσης Σχήµα 1.5: Η εύρεση της αλυσίδας στην οποία ανήκει το C και του κλειδιού. Αρχικά κρυπτογραφούµε διαδοχικά το P και προσπαθούµε να δη- µιουργήσουµε µία νέα αλυσίδα µε αρχή το C. Σε 2 32 το πολύ ϐήµατα ϐρίσκουµε το C i,t στο οποίο ανήκει. Επιστρέφουµε στο αντίστοιχο C i,0 και ξεκινάµε τον υπολογισµό της αλυσίδας από την αρχή, µέχρι να ϐρούµε το C και άρα το κλειδί κρυπτογράφησης. de Off). Στα πλεονεκτήµατα του αλγορίθµου, συµπεριλαµβάνεται και το γεγονός ότι αν κανείς δεν υπολογίσει όλες τις αλυσίδες, τότε το ποσοστό επιτυχίας του αλγορίθµου είναι ανάλογο του µέρους των αλυσίδων που έχει υπολογίσει. Τέλος, ο αλγόριθµος µπορεί να εφαρµοστεί παράλληλα σε πολλούς υπολογιστές, για πιο σύντοµα αποτελέσµατα. Εχοντας δει την κεντρική ιδέα της επίθεσης και πως αυτή ουσιαστικά διαµορφώνεται, µπορούµε τώρα να δούµε πως µπορεί να ξεπεραστεί το εµπόδιο της τοµής των αλυσίδων. Στις αλυσίδες που δηµιουργούνται, είναι πολύ πιθανό να έχουµε τοµές, κύκλους κ.τ.λ. ένα πιο ϱεαλιστικό µοντέλο δίνεται στο σχήµα 1.6. Είναι προφανές ότι κάτι τέτοιο πρέπει να αποφευχθεί, καθώς από τη µία πλευρά σπαταλάτε πολύτιµος υπολογιστικός χρόνος προκειµένου να επαναληφθούν ήδη υπολογισµένες τιµές, ενώ από την άλλη είναι πολύ

1.4. Τεχνικές επιθέσεων 31 πιθανό να έχουµε λανθασµένη εύρεση αλυσίδας κατά την αναζήτηση της αλυσίδας που ανήκει το C. Προκειµένου να αποφευχθούν τέτοιες καταστάσεις, αντί απλά να υπολογίζουµε απλά την κρυπτογράφηση του P και να την χρησιµοποιούµε στη συνέχεια ως κλειδί, ϑα παίρνουµε την τιµή µιας ψευδοτυχαίας συνάρτησης F, υπολογισµένη στην κρυπτογράφηση του P µε κλειδί το προηγούµενο αποτέλεσµα. Εχουµε δηλαδή ότι C 1 = F(E C0 (P)) C 2 = F(E C1 (P)). C r = F(E Cr 1 (P)) για µία αρχική τιµή C 0. Επιπλέον, προκειµένου να έχουµε όσο το δυνατό λιγότερες τοµές, και να αποφύγουµε επανάληψη τοµών, αντί να χρησιµοποιούµε σε όλες τις αλυσίδες, την ίδια συνάρτηση F, χρησιµοποιούµε σε κάθε µία αλυσίδα i και µία διαφορετική ψευδοτυχαία συνάρτηση F i. Ετσι για την αλυσίδα i έχουµε C i,1 = F i (E C0 (P)) C i,2 = F i (E C1 (P)). C i,r = F i (E Cr 1 (P)) 1.4 Τεχνικές επιθέσεων Στην παράγραφο αυτή δίνουµε µια συνοπτική παρουσίαση των πιο γνωστών γενικών τεχνικών κρυπτανάλυσης. Από την παρουσίαση αυτή, απουσιάζουν τόσο η γραµµική, όσο και η διαφορική κρυπτανάλυση καθώς ϑα αναλυθούν εκτενώς στα επόµενα δύο κεφάλαια του συγγράµµατος.

32 Κεφάλαιο 1 Βασικές αρχές κρυπτανάλυσης Σχήµα 1.6: Οι πραγµατικές σχέσεις που µπορεί να υπάρχουν µεταξύ των αλυσίδων. Ολοκληρωτική κρυπτανάλυση (Integral cryptanalysis) Στην ολοκληρωτική κρυπτανάλυση αλγορίθµων, µελετώνται οι διαφοροποιήσεις οι οποίες παρουσιάζονται στο κρυπτογραφηµένο κείµενο, όταν διαλέξουµε ένα σύνολο από αρχικά κείµενα για τα οποία κάποια συγκεκριµένα bits είναι κοινά σε όλα τους. Για παράδειγµα, ϑα µπορούσαµε να πάρουµε το σύνολο των λέξεων των 64 bits για τις οποίες, τα πρώτα 56 bits είναι όλα µηδενικά και διαφέρουν µόνο στα 8 τελευταία bits, σχήµα 1.7. Επειδή η µέθοδος προσπαθεί να ἁθροίσει όλες τις επιµέρους διαφορές των αρχικών κειµένων, εµπνευσµένοι από την ανάλυση, δόθηκε το όνοµα της Ολοκληρωτικής κρυπτανάλυσης. Μάλιστα, επειδή αρχικά σχεδιάστηκε για την κρυπτανάλυση ενός αλγορίθµου, του Square, πολύ συχνά στη ϐιβλιογραφία συναντάται µε το όνοµα του αλγορίθµου, Square cryptanalysis [53].

1.4. Τεχνικές επιθέσεων 33 Σχήµα 1.7: Ολοκληρωτική κρυπτανάλυση Κρυπτανάλυση modulo N Σε αυτό το είδος κρυπτανάλυσης, ο επιτιθέµενος προσπαθεί να δει αν και κατά πόσο ο αλγόριθµος πα- ϱουσιάζει κάποιες αποκλίσεις, όταν χρησιµοποιείται σε άλλο αριθ- µητικό σύστηµα. Σαν επίθεση εισάγεται το 1999 από τους John Kelsey, Bruce Schneier και David Wagner προκειµένου να µελετηθεί η ασφάλεια κάποιων συγκεκριµένων αλγορίθµων [54]. Κρυπτανάλυση κατατµήσεων (Partitioning cryptanalysis) Οι Carlo Harpes, Gerard G. Kramer και James L. Massey [55], προσπαθώντας να γενικεύσουν τη γραµµική κρυπτανάλυση, οδηγήθηκαν στην κρυπτανάλυση κατατµήσεων. Η ϐασική ιδέα της επίθεσης, ϐασίζεται στην εύρεση µίας συνάρτησης Boole, η οποία να συνδυά- Ϲει τα bits του κλειδιού µε τα bits του αρχικού κειµένου και τα bits του κρυπτογραφηµένου κειµένου. Μία ϐασική διαφοροποίηση σε σχέση µε τη γραµµική κρυπτανάλυση είναι η χρήση αρχικών και κρυπτογραφηµένων κειµένων µε ορισµένες αλγεβρικές και στατιστικές ιδιότητες. Επιθέσεις ολίσθησης (slide attacks) Σε αυτή την κατηγορία ε- πιθέσεων, η προσπάθεια επικεντρώνεται στον αλγόριθµο παραγωγής υποκλειδιών. Αν παρατηρηθεί κάποιο πρόβληµα στην κατασκευή τους από το αρχικό, τότε ενδέχεται αυτό το γεγονός να µπο- ϱεί να χρησιµοποιηθεί προκειµένου να αναπτυχθεί µία επίθεση σε ολόκληρο τον αλγόριθµο. Ενα πολύ κοινό τέτοιο πρόβληµα είναι η

34 Κεφάλαιο 1 Βασικές αρχές κρυπτανάλυσης επανάληψη προηγούµενων υποκλειδιών, η άµεση αποκάλυψη µέ- ϱους του αρχικού κλειδιού κ.ά. Χρονικές επιθέσεις (Timing attacks) Στις χρονικές επιθέσεις, ο επιτιθέµενος προσπαθεί να προσεγγίσει το κλειδί κάνοντας µετρήσεις στο χρόνο στον οποίο ο αλγόριθµος επιστρέφει τα αποτελέσµατα. Για παράδειγµα στον RSA έχουµε πολλούς πολλαπλασιασµούς, όµως αν υπάρχουν πολλά µηδενικά το αποτέλεσµα υπολογίζεται γρηγορότερα σε σχέση µε το να υπάρχουν περισσότερες µονάδες. Από αυτό το απλό γεγονός, ο επιτιθέµενος αν γνωρίζει ένα πλήθος αρχικών κειµένων µπορεί σε πολύ µεγάλο ϐαθµό να προσεγγίσει ένα κλειδί. Ακουστική κρυπτανάλυση (Timing attacks) Μία παρόµοια προσέγγιση µε τις χρονικές επιθέσεις, είναι αυτή των Adi Shamir και Eran Tromer. Σε αυτή τη προσέγγιση, ο επιτιθέµενος ηχογραφεί τον επεξεργαστή ο οποίος κρυπτογραφεί ένα µήνυµα, σχήµα 1.8. Από το ακουστικό κύµα ενδέχεται να µπορεί κανείς να ανακαλύψει την τιµή ορισµένων bits.

1.4. Τεχνικές επιθέσεων Σχήµα 1.8: Ακουστικό κύµα ενός επεξεργαστή ο οποίος υπογράφει ένα µήνυµα µε τον αλγόριθµο RSA. Πηγή http://people.csail.mit.edu/tromer/acoustic 35