Μελέτη της Ασφάλειας των Σύγχρονων Συναρτήσεων Σύνοψης

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "Μελέτη της Ασφάλειας των Σύγχρονων Συναρτήσεων Σύνοψης"

Transcript

1 ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΕΠΙΚΟΙΝΩΝΙΑΚΩΝ ΚΑΙ ΠΛΗΡΟΦΟΡΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ Μελέτη της Ασφάλειας των Σύγχρονων Συναρτήσεων Σύνοψης Βαβίλης Σωκράτης Βασιλομανωλάκης Εμμανουήλ Επιβλέπων Καθηγητής: Ριζομυλιώτης Παναγιώτης Διδάσκων Πανεπιστημίου Αιγαίου Σεπτέμβρης

2 Μελέτη της Ασφάλειας των Σύγχρονων Συναρτήσεων Σύνοψης Η διπλωματική Εργασία παρουσιάστηκε ενώπιον του Διδακτικού Προσωπικού του Πανεπιστημίου Αιγαίου Σε Μερική Εκπλήρωση των Απαιτήσεων για το Δίπλωμα του Μηχανικού Πληροφοριακών και Επικοινωνιακών Συστημάτων των ΒΑΒΙΛΗ ΣΩΚΡΑΤΗ και ΒΑΣΙΛΟΜΑΝΩΛΑΚΗ ΕΜΜΑΝΟΥΗΛ ΣΕΠΤΕΜΒΡΗΣ

3 Η ΤΡΙΜΕΛΗΣ ΕΠΙΤΡΟΠΗ ΔΙΔΑΣΚΟΝΤΩΝ ΕΠΙΚΥΡΩΝΕΙ ΤΗ ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ ΤΩΝ ΒΑΒΙΛΗ ΣΩΚΡΑΤΗ και ΒΑΣΙΛΟΜΑΝΩΛΑΚΗ ΕΜΜΑΝΟΥΗΛ: ΡΙΖΟΜΥΛΙΩΤΗΣ ΠΑΝΑΓΙΩΤΗΣ, Επιβλέπων Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων ΓΚΡΙΤΖΑΛΗΣ ΣΤΕΦΑΝΟΣ, Μέλος Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων ΚΩΝΣΤΑΝΤΙΝΟΥ ΕΛΙΣΑΒΕΤ, Μέλος Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΣΕΠΤΕΜΒΡΗΣ

4 Οι απόψεις και τα συμπεράσματα που περιέχονται σε αυτό το έγγραφο εκφράζουν τους συγγραφείς και δεν πρέπει να ερμηνευθεί ότι αντιπροσωπεύουν τις επίσημες θέσεις του Πανεπιστημίου Αιγαίου. ΒΑΒΙΛΗΣ ΣΩΚΡΑΤΗΣ(A.M: 321/ ) ΒΑΣΙΛΟΜΑΝΩΛΑΚΗΣ ΕΜΜΑΝΟΥΗΛ (A.M: 321/ ) Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ 4

5 ΠΕΡΙΛΗΨΗ Παραδοσιακά, η κρυπτογραφία ήταν συνυφασμένη μόνο με την ασφάλεια των στρατιωτικών εφαρμογών. Με την ανάπτυξη όμως των υπολογιστών και την όλο και πιο διαδεδομένη παρουσία τους στην καθημερινή μας ζωή, η ανάγκη για ασφαλείς εφαρμογές και επικοινωνίες έχει γίνει επιτακτική και η χρήση της κρυπτογραφίας αναπόφευκτη. Οι βασικές αρχές σχεδίασης όλων των συστημάτων αλλάζουν και πλέον η κρυπτογραφία αποτελεί δομικό στοιχείο. Ένας από τους βασικούς θεμέλιους λίθους της σύγχρονης κρυπτογραφίας είναι οι συναρτήσεις σύνοψης (hash functions). Για πολλά χρόνια υπήρχε η πεποίθηση στην κρυπτογραφική κοινότητα ότι η κατασκευή ασφαλών συναρτήσεων σύνοψης ήταν ένα πρόβλημα το οποίο είχε επιλυθεί αξιόπιστα. Η είσοδος της νέας χιλιετίας μαζί με μια σειρά επιθέσεων οι οποίες παρουσιάστηκαν ενάντια στις πιο δημοφιλείς από τις συναρτήσεις κατακερματισμού ήρθε να ανατρέψει την πεποίθηση αυτή. Σαν φυσικό επακόλουθο της νέας διαμορφωμένης κατάστασης, το 2007 ο οργανισμός του NIST κάλεσε σε ανοιχτό διαγωνισμό τους σχεδιαστές κρυπτογραφικών αλγορίθμων για υποβολή προτάσεων με τελικό σκοπό την επιλογή του νέου προτύπου SHA-3 συναρτήσεων σύνοψης. Στόχος της παρούσας διπλωματικής εργασίας είναι μελέτη της ασφάλειας που προσφέρουν οι σύγχρονες συναρτήσεις σύνοψης. Πιο συγκεκριμένα, η αξιολόγηση περιλαμβάνει συναρτήσεις οι οποίες χρησιμοποιούνται στις σύγχρονες εφαρμογές όσο και συναρτήσεις οι οποίες φιλοδοξούν να αποτελέσουν το επόμενο παγκόσμιο πρότυπο. Η δομή της εργασίας έχει ως εξής: στο πρώτο μέρος γίνεται μια επισκόπηση της θεωρίας πίσω από τη σχεδίαση συναρτήσεων σύνοψης. Ακολουθεί επισκόπηση της τρέχουσας κατάστασης και περιγραφή των σύγχρονων αλγορίθμων καθώς και των επιθέσεων που έχουν προταθεί εναντίον τους. Στα πλαίσια της εργασίας μας παρουσιάζουμε τόσο την αναγκαιότητα του διαγωνισμού αυτού, όσο και μία πρώτη αξιολόγηση των υποψήφιων αλγορίθμων με βάση κυρίως την ασφάλεια και την απόδοσή τους. Την ίδια στιγμή μέσω ενός δικού μας αλγόριθμου (με έμφαση όμως στα κριτήρια του NIST) παρουσιάζουμε μία πρώτη κριτική των υποψηφίων, ελπίζοντας να βοηθήσουμε στην ευρύτερη επιστημονική συζήτηση γύρω από το θέμα. Στα παραρτήματα της εργασίας παραθέτονται οι πιο σημαντικές πρακτικές επιθέσεις, τόσο γενικής φύσης, δηλαδή επιθέσεις οι οποίες μπορούν να έχουν εφαρμογή σε κάθε συνάρτηση σύνοψης (πχ. bruteforce, dictionary), όσο και επιθέσεις οι οποίες εκμεταλλεύονται αδυναμίες συγκεκριμένων συναρτήσεων. Επίσης παρουσιάζουμε ένα εργαλείο (και τον κώδικα υλοποίησης του) που δημιουργήσαμε, το οποίο εκμεταλλεύεται αδυναμίες συναρτήσεων σύνοψης. Με βάση το εργαλείο αυτό η ψηφιακή υπογραφή ενός Postscript αρχείου μπορεί να παραποιηθεί. Λέξεις κλειδιά: συνάρτηση σύνοψης, συνάρτηση κατακερματισμού, hash functions, SHA-3, MD5, colliding PostScript, NIST, κρυπτανάλυση, κρυπτογραφία. 5

6 ABSTRACT Traditionally, cryptography was only related to the security of military functions. The ever growing progress of computers and their proliferous presence in our every day life has brought about the crying need for secure applications and communication. As a result, the usage of cryptography has become inevitable. The basic designing principles of all the systems are constantly changing and therefore cryptography constitutes a structural element One of the foundation stones of modern cryptography are hash functions. For many years the cryptographic community had been believing by persuasion that the construction of secure hash functions was a dependably solved problem. The entry of the new millennium in combination with a series of attacks against the mostly widely used hash functions came to overthrow this belief. As a natural consequence of the new standards, in 2007 the NIST organization announced an open competition inviting designers of cryptographic algorithms to submit proposals for the new SHA-3 standard. The target of the on hand thesis project is the introspection of security offered by modern hash functions. In particular, the evaluation is composed by functions used in modern applications and also those looking forward to forming the new security standard. The structure of this thesis is the following: in the first section stands a comprehensive description of the theories referring to the construction of hash functions. A conspectus of the state of the art and a description of modern algorithms as well as of the attacks mounted against them follows. Within the framework of our project, we present not only the necessity of this competition, but also a first display of the applicant algorithms chiefly judging by security and efficiency. Co instantaneously, we present through our own algorithm a primary assessment of the applicants, hoping to contribute to the broad scientific discussion over the matter. In the appendixes of this thesis some particular practical attacks are tabled which are both of general nature - meaning attacks applicable in every hash function (eg. Bruteforce, dictionary) - and of specific type, which exploit the weaknesses of particular functions. Additionally, we present a tool (as well as its source code), designed by us, exploiting some certain flaws of hash functions. Our tool makes feasible the falsification of the digital signature of a PostScript file. Keywords: hash functions, SHA-3, MD5, NIST competition, colliding PostScript, cryptography, cryptanalysis. 6

7 ΠΕΡΙΕΧΟΜΕΝΑ Περίληψη...5 Abstract...6 Περιεχόμενα...7 Σχήματα...11 Πίνακες...13 Πρόλογος Εισαγωγικά Παρακίνηση για εργασία Δομή της εργασίας...16 Ενότητα 1 Κρυπτογραφία & Συναρτήσεις Σύνοψης Κεφάλαιο 1 Εισαγωγή στην κρυπτογραφία 1.1 Γενικά ζητήματα ασφάλειας Γενικά ζητήματα κρυπτογραφίας Εισαγωγή Ιστορική αναδρομή Συμμετρική κρυπτογραφία Κρυπ τογραφία Δημοσίου κλειδιού Εφαρμογές Κρυπ τοσυστημάτων Δημοσίου Κλειδιού Μονόδρομες Συναρτήσεις σύνοψης Modification Detection Codes Message Authentication Code Βασικές Ιδιότητες & κατηγορίες των MDCs Επιπ λέον Ιδιότητες συναρτήσεων σύνοψης Εφαρμογές συναρτήσεων σύνοψης Αυθεντικοπ οίηση μυνημάτων Ψηφιακές υπογραφές Password Hashing Γεννήτριες Ψευδοτυχαίων αριθμών Άλλες εφαρμογές Συμπ εράσματα - Επίλογος...39 Κεφάλαιο 2 Κατασκευές Συναρτήσεων Σύνοψης 2.1 Γενικές αρχές Το μοντέλο Merkle-Damgard Συναρτήσεις συμπίεσης Συναρτήσεις σύνοψης βασισμένες σε block ciphers Εξειδικευμένες συναρτήσεις συμπίεσης Συναρτήσεις σύνοψης βασισμένες σε modular arithmetic Ενισχύοντας το MD μοντέλο

8 Πρόσθεση συνάρτησης μορφοπ οίησης εξόδου g HAIFA Chop-MD Wide Pipe EMD Εναλλακτικά μοντέλα σχεδίασης Δενδροειδής μορφή Χρήση πολλαπ λών συναρτήσεων συμπ ίεσης σειριακά Παράλληλη επαναληπ τική διαδικασία με χρήση πολλαπλών... συναρτήσεων συμπ ίεσης & συνάρτηση μορφοποίησης Παράλληλη επαναληπ τική διαδικασία με χρήση... πολλαπ λών συναρτήσεων συμπίεσης Παράλληλη επαναληπ τική διαδικασία με χρήση... πολλαπ λών συναρτήσεων συμπ ίεσης και συνάρτησης... μορφοποίησης C/3C+ hash construction Zipper hash construction Sponge Random Oracle Xor (ROX) Σύγχρονες Συναρτήσεις Σύνοψης MD MD SHA SHA RIPEMD Tiger WHIRPOOL Επίλογος...84 Κεφάλαιο 3 Αδυναμίες των Σύγχρονων Συναρτήσεων Σύνοψης 3.1 Γενικά ζητήματα - ορισμοί Κατηγοριοπ οίηση επιθέσεων Brute force attacks Random attack Pseudo attack Brute-force preimage attack Brute-force second preimage attack Brute-force collision attack ( ή birthday attack) Επ ιθέσεις βασισμένες στην Κρυπτανάλυση Generic attacks Meet in the middle attack Correcting block attack Fixed point attack Differential attacks Boomerang Attack Generic attacks στο Merkle Damgard μοντέλο Length extension attacks Joux multicollision attacks Multi preimage ( και second preimage) attack

9 3.4.4 Generic second preimage attack Fixed point attack για εύρεση second preimage Herding attack Εξειδικευμένες επ ιθέσεις σε συναρτήσεις σύνοψης MD MD SHA Αυτοματοπ οιημένα εργαλεία για την εύρεση διαφορικών μονοπατιών Συμπεράσματα - Επίλογος Πρακτικά παραδείγματα collision attacks Παραγωγή colliding PostScript Ενότητα 2 - Αξιολόγηση του νεου προτύπου SHA-3 Κεφάλαιο 4 Ο διαγωνισμός του NIST 4.1 NIST Συμπ εράσματα των δύο workshops NIST hash function competition Ελάχιστες απαιτήσεις Ασφάλεια Κόστος Απόδοση Πλατφόρμες υλοποίησης Ζητούμενες εφαρμογές Αλγόριθμος και χαρακτηριστικά υλοποίησης Χρονοδιάγραμμα διαγωνισμού Επ ίλογος - Συμπ εράσματα Κεφάλαιο 5 Ανάλυση των υποψηφίων του διαγωνισμού του NIST 5.1 Γενική επισκόπηση Κατηγοριοποίηση υποψηφίων Ανάλυση υποψηφίων δεύτερου γύρου BLAKE Blue Midnight Wish (BMW) CubeHash ECHO Fugue Grøstl Hamsi JH Keccak Luffa Shabal SHAvite SIMD SKEIN Αποδοτικότητα αλγορίθμων Απ αιτήσεις Αλγορίθμων σχετικά με τις RAM/ROM Blake

10 BMW Cubehash ECHO Fugue Grøstl Hamsi JH Keccak Luffa Shabal Shavite SIMD Skein Αξιολόγηση υποψηφίων Ενότητα 3 - Συμπεράσματα Κεφάλαιο 6 Συμπεράσματα Μελλοντική εργασία Επίλογος 6.1 Συμπεράσματα Μελλοντική εργασία Επίλογος Βιβλιογραφικές Αναφορές Αντιστοίχιση όρων Παράρτημα I Salting Παράρτημα II Feistel & SP networks Παράρτημα III Bruteforce / Dictionary attacks Παράρτημα IV Rainbow tables attack Παράρτημα V Cuda Bruteforce attack Παράρτημα VI Cold boot attacks Παράρτημα VII NTFS & MD5 problem Παράρτημα VIII CubeHash Collisions Παράρτημα IX Πρακτικές Επιθέσεις Παράρτημα X Πηγαίος κώδικας προγράμματος

11 ΣΧΗΜΑΤΑ Εικόνα 1.1: Η σπ αρτιατική σκυτάλη...23 Εικόνα 1.2: Ο πίνακας του Πολύβιου [στην Αγγλική γλώσσα]...24 Εικόνα 1.3: Η συχνότητα εμφάνισης γραμμάτων στην Αγγλική γλώσσα...25 Εικόνα 1.4: Η κρυπ τομηχανή Enigma...26 Εικόνα 1.5: Συμβατική κρυπτογραφία...27 Εικόνα 1.6: Κρυπ τογραφία δημοσίου κλειδιού...29 Εικόνα 1.7: Γενικό π αράδειγμα χρήσης μίας συνάρτησης σύνοψης...31 Εικόνα 1.8: Κατηγορίες συναρτήσεων σύνοψης...32 Εικόνα 1.9: Κώδικας αυθεντικοπ οιίησης μηνυμάτων [MAC]...35 Εικόνα 1.10: Ψηφιακή υπ ογραφή [ απ οστολέας ]...36 Εικόνα 1.11: Ψηφιακή υπογραφή [παραλήπτης]...36 Εικόνα 1.12: Χρήση συνάρτησης σύνοψης σε hash table...37 Εικόνα 2.1: Γενικό μοντέλο κατασκευής συνάρτησης σύνοψης...44 Εικόνα 2.2: Το μοντέλο Merkle-Damgard...45 Εικόνα 2.3: Το μοντέλο Merkle-Damgard με χρήση MD strengthening...46 Εικόνα 2.4: Η μέθοδος Davies-Meyer...48 Εικόνα 2.5: Η μέθοδος Matyas-Meyer-Oseas...49 Εικόνα 2.6: Η μέθοδος Miyaguchi-Preneel...50 Εικόνα 2.7: Η μέθοδος MDC Εικόνα 2.8: Η μέθοδος MDC Εικόνα 2.9: Ο MD4 και οι παραλλαγές του χρονικά...52 Εικόνα 2.10: Η κατασκευή με πρόσθεση συνάρτησης μορφοποίησης εξόδου...54 Εικόνα 2.11: H Chop-MD κατασκευή...55 Εικόνα 2.12: H Wide pipe κατασκευή...56 Εικόνα 2.13: Η κατασκευή EMD...56 Εικόνα 2.14: Η δενδροειδής μορφή...57 Εικόνα 2.15: Πολλαπλές συναρτήσεις συμπίεσης σειριακά...58 Εικόνα 2.16: Κατασκευή με επαναληπτική διαδικασία...59 Εικόνα 2.17: Κατασκευή με επαναληπτική διαδικασία & πολλαπλές συναρτήσεις...59 Εικόνα 2.18: H κατασκευή 3C...60 Εικόνα 2.19: H κατασκευή 3C Εικόνα : H κατασκευή Zipper...62 Εικόνα : H κατασκευή Zipper

12 Εικόνα 2.21: H sponge κατασκευή...63 Εικόνα 2.22: H ROX κατασκευή...63 Εικόνα 2.23: Η συνάρτηση σύνοψης MD Εικόνα 2.24: Η συνάρτηση σύνοψης MD Εικόνα 2.25: Η συνάρτηση σύνοψης SHA Εικόνα 2.26: Η συνάρτηση σύνοψης SHA Εικόνα 2.27: Ένα βήμα του αλγόριθμου SHA Εικόνα 2.28: Η συνάρτηση σύνοψης RIPEMD...75 Εικόνα 2.29: Ο i-οστός κύκλος της συνάρτησης Tiger...79 Εικόνα 2.30: Η συνάρτηση συμπίεσης της Tiger...80 Εικόνα 2.31: Η δομή των boxes της Whirpool...83 Εικόνα 3.1: Κατηγοριοποίηση επιθέσεων...89 Εικόνα 3.2: Η κατανομή της π ιθανότητας στο π αράδοξο των γενεθλίων...91 Εικόνα 3.3 : Σχέση επ ιθέσεων και υπ ολογιστικής πολυπλοκότητας...92 Εικόνα 3.4: Η επ ίθεση boomerang σε block ciphers...94 Εικόνα 3.5: Η επ ίθεση boomerang σε συναρτήσεις σύνοψης...95 Εικόνα 3.6 : Κατασκευή multicollision με τη μέθοδο Joux...97 Εικόνα 3.7 : μια 2 3 diamond κατασκευή...99 Εικόνα 3.8 : Σχηματική αναπ αράσταση Herding attack Εικόνα 3.9: Παράδειγμα multi block collision Εικόνα 3.10: Χρονική π ορεία των επ ιθέσεων και της αντίστοιχης πολυπλοκότητας..111 Είκονα 5.1: Η συνάρτηση BLAKE Εικόνα 5.2: Double-pipe σχεδιασμός στην BMW Εικόνα 5.3: H συνάρτηση συμπ ίεσης της BMW Εικόνα 5.4: Ο αλγόριθμος CubeHash Εικόνα 5.5: Η συνάρτηση σύνοψης Grostl Εικόνα 5.6: Η συνάρτηση συμπ ίεσης f, της Grostl Εικόνα 5.7: Η συνάρτηση μετασχηματισμού, της Grostl Εικόνα 5.8: Η συνάρτηση σύνοψης Hamsi Εικόνα 5.9: Η συνάρτηση σύνοψης JH Εικόνα 5.10: To sponge μοντέλο Εικόνα 5.11: Ο αλγόριθμος Luffa Εικόνα 5.12: Η συνάρτηση σύνοψης Shabal Εικόνα 5.13: Οι AES κύκλοι στη λειτουργία του SHAvite Εικόνα 5.14: Η συνάρτηση σύνοψης SIMD Εικόνα 5.15: H συνάρτηση συμπ ίεσης της SIMD Εικόνα 5.15: χρήση του UBI μοντέλου απ ό τον Skein Εικόνα 5.16: O αλγόριθμος Skein

13 ΠΙΝΑΚΕΣ Πίνακας 2.1: Βασικά στοιχεία γνωστών αλγορίθμων...53 Πίνακας 2.2: Συμβολισμοί π ου χρησιμοπ οιεί ο MD Πίνακας 2.3: Οι διαφοροπ οιήσεις της SHA οικογένειας...74 Πίνακας 2.4: Συμβολισμοί π ου χρησιμοπ οιεί ο RIPEMD...75 Πίνακας 2.5: Ορισμός μεταβλητών του RIPEMD...76 Πίνακας 2.6: Συμβολισμοί του tiger...78 Πίνακας 2.7: Επ ιθέσεις στον tiger...81 Πίνακας 2.8: Η σχέση Whirpool & AES...82 Πίνακας 2.9.1: Τα mini-boxes του Whirpool...83 Πίνακας 2.9.2: Τα mini-boxes του Whirpool...83 Πίνακας 2.9.3: Τα mini-boxes του Whirpool...83 Πίνακας 3.1: Τοπ ική σύγκρουση 6 βημάτων στον SHA Πίνακας 3.2: διαφορικά χαρακτηριστικά και το διαφορικό μονοπ άτι στην MD Πίνακας 3.3: Διαφορικά χαρακτηριστικά και το διαφορικό μονοπ άτι στην MD Πίνακας 3.4: Γενικευμένα χαρακτηριστικά των Rechberger & De Canniere Πίνακας 3.5: Επ ιθέσεις σε γνωστούς αλγόριθμους Πίνακας 5.1: Όλοι οι υπ οψήφιοι του NIST Πίνακας 5.2: Συναρτήσεις π ου δεν π έρασαν στον π ρώτο γύρο Πίνακας 5.3: Συναρτήσεις π ου π έρασαν στον π ρώτο γύρο, όχι στο δεύτερο γύρο Πίνακας 5.4: Συναρτήσεις π ου π έρασαν στον δεύτερο γύρο Πίνακας 5.5.1: Κατηγοριοπ οίηση υπ οψήφιων συναρτήσεων Πίνακας 5.5.2: Κατηγοριοπ οίηση υπ οψήφιων συναρτήσεων Πίνακας 5.6: Η οικογένεια αλγορίθμων BLAKE Πίνακας 5.7: Η οικογένεια αλγορίθμων BMW Πίνακας 5.8: Σύγκριση HAIFA και MD σε σχέση με βασικές επιθέσεις Πίνακας 5.9: Salt και Double-Pipe σε σχέση με βασικές επιθέσεις Πίνακας 5.10: Πολυπ λοκότητες επ ιθέσεων στον Grostl Πίνακας 5.11: Πολυπ λοκότητες επ ιθέσεων στον Grostl Πίνακας 5.12: Η οικογένεια αλγορίθμων Luffa Πίνακας 5.13: Συμβολισμοί σχετικά με την κατάταξη απ οδοτικότητας υποψήφιων αλγορίθμων Πίνακας : Κατάταξη απ οδοτικότητας υπ οψήφιων αλγορίθμων Πίνακας : Κατάταξη απ οδοτικότητας υπ οψήφιων αλγορίθμων Πίνακας : Κατάταξη απ οδοτικότητας υπ οψήφιων αλγορίθμων Πίνακας 5.15: Συνολική κατάταξη αποδοτικότητας Πίνακας 5.16: Κριτήρια αλγόριθμου αξιολόγησης Πίνακας 5.17: Συνολική αξιολόγηση αλγορίθμων

14 Πρόλογος Στο σημείο αυτό θα θέλαμε από κοινού να ευχαριστήσουμε τον επιβλέποντα καθηγητή μας κ. Π. Ριζομυλιώτη για τη μεγάλη υπομονή που έδειξε, την καθοδήγησή και τις καίριες παρατηρήσεις του. Για την ολοκλήρωση αυτής της εργασίας και των σπουδών μου οφείλω να ευχαριστήσω τους γονείς μου. Σ.Β. Ευχαριστώ τους γονείς μου για τη δίχως όρια συμπαράσταση και εμπιστοσύνη που μου έδειξαν όλα αυτά τα χρόνια. Μ.Β. Καρλόβασι, Σάμος, Σεπτέμβρης

15 0.1 Εισαγωγικά Η ζωή και η πορεία του ανθρώπου σχετίζεται άμεσα με τις πράξεις του. Ταυτόχρονα οι πράξεις έρχονται ως συνιστώσες ποικίλων αιτιών ανάμεσά τους και η γνώση που διαθέτει το υποκείμενο. Η εποχή μας αν μη τι άλλο χαρακτηρίζεται από την τεράστια ποσότητα πληροφορίας. Τα ΚΒ (Kilobytes) έχουν μετατραπεί σε TB (Terrabytes) και η πολυτέλεια του να διαθέτει κάποιος έναν προσωπικό υπολογιστή σε δεδομένη κοινωνική αναγκαιότητα. Ωστόσο, το υγιές φιλτράρισμα των δεδομένων και η εξαγωγή γνώσης δεν είναι πάντα κάτι εύκολο, ιδίως τη στιγμή που πολλών διαφορετικών τύπων κακόβουλοι χρήστες καραδοκούν. Ταυτόχρονα, η πληροφορία πολλές φορές απαιτείται να είναι εμπιστευτική. Η ασφάλεια επομένως της πληροφορίας αν θεωρηθεί πως ήταν ανέκαθεν σημαντική, σήμερα γίνεται μία ικανή και αναγκαία συνθήκη. Η σημαντικότητα της κρυπτογραφίας και της κρυπτανάλυσης τονίστηκαν κατά τη διάρκεια του δευτέρου παγκοσμίου πολέμου. Από την άλλη, η χρήση τους σήμερα έχει ξεπεράσει κάθε προηγούμενο. Από τις έξυπνες πιστωτικές κάρτες, και τα κινητά τηλέφωνα, στις ιστοσελίδες και τους ηλεκτρονικούς υπολογιστές η ισχύ τους εξαπλώνεται σε κάθε πτυχή της καθημερινής μας ζωής. Σημαντικό κομμάτι στο οπλοστάσιο της κρυπτογραφίας αποτελούν και οι συναρτήσεις κατακερματισμού. Η πρόσφατη όμως και ραγδαία αύξηση των κρυπταναλυτικών τεχνικών μοιραία κατέστησε αρκετές από τις πλέον χρησιμοποιούμενες hash functions μη ασφαλείς. Εν μέσω λοιπόν πολλαπλών χτυπημάτων, η παγκόσμια κρυπτογραφική κοινότητα (μέσω του NIST) έρχεται να απαντήσει στους όλο και αυξανόμενους προβληματισμούς, σχεδόν άμεσα, με ένα διαγωνισμό για ένα νέο πιο ασφαλές πρότυπο κρυπτογραφικών συναρτήσεων σύνοψης. 0.2 Παρακίνηση για την εργασία Όλα τα παραπάνω σε συνδυασμό με την παρούσα -θα μας επιτραπεί ο όρος- προκλητική έλλειψη βιβλιογραφίας και εκτενών αναλύσεων σε σχέση με τις νέες μεθόδους κατασκευής συναρτήσεων σύνοψης, με τις dedicated τεχνικές κρυπτανάλυσης (συγκεκριμένων συναρτήσεων) καθώς επίσης και με τον ίδιο το διαγωνισμό του NIST και τους υποψηφίους του, μας παρακίνησαν για την παρούσα διπλωματική εργασία. 15

16 0.3 Δομή της εργασίας Η διπλωματική μας εργασία χωρίζεται σε τρεις ενότητες. Η πρώτη ενότητα που αφορά την κρυπτογραφία και τις συναρτήσεις σύνοψης περιέχει τα κεφάλαια 1, 2 και 3. Η δεύτερη ενότητα σχετίζεται με το διαγωνισμό του NIST και τους υποψήφιους του με τα κεφάλαια 4 και 5. Τέλος η τρίτη ενότητα (κεφάλαιο 6) σχετίζεται με τα συμπεράσματα της συνολικής έρευνας. Ενότητα 1 Το κεφάλαιο 1 αποτελεί κυρίως μία εισαγωγή στον τομέα της κρυπτογραφίας και της κρυπτανάλυσης. Δίνονται κάποιοι βασικοί (και αναγκαίοι) ορισμοί, μία σύντομη ιστορική αναδρομή της κρυπτογραφίας και της κρυπτανάλυσης καθώς και η βασική κατηγοριοποίηση του χώρου της κρυπτογραφίας. Στη συνέχεια περιγράφονται οι συναρτήσεις σύνοψης, οι ποικίλες εφαρμογές τους, και παρέχονται κάποια συμπεράσματα. Το κεφάλαιο 2 ασχολείται εις βάθος με τους τρόπους κατασκευής συναρτήσεων κατακερματισμού και τις διάφορες βελτιώσεις των πιο συνηθισμένων μοντέλων που εφαρμόζονται. Γίνεται μία αναλυτική περιγραφή του Merkle-Damgard μοντέλου, των τρόπων ενίσχυσής του, αλλά και καινούργιες προτάσεις κατασκευών. Ακολουθεί μία περιγραφή κάποιων σύγχρονων συναρτήσεων σύνοψης (MD4, MD5, SHA-1, SHA-2, RIPEMD-160, TIGER, και WHIRPOOL), μαζί με τα συμπεράσματα του κεφαλαίου. Το κεφάλαιο 3 μελετά τις αδυναμίες των σύγχρονων συναρτήσεων σύνοψης. Αρχικά δίνονται οι αναγκαίοι ορισμοί, που σχετίζονται άμεσα με τις ιδιότητες των συναρτήσεων κατακερματισμού (όπως περιγράφηκαν στο κεφάλαιο 2). Ακολουθεί κατηγοριοποίηση και ανάλυση των επιθέσεων (τόσο των γενικών όσο και dedicated επιθέσεων σε σύγχρονες συναρτήσεις σύνοψης). Τέλος δίνονται τα συμπεράσματα του κεφαλαίου καθώς και το πρακτικό αντίκτυπο των επιθέσεων. Ενότητα 2 Το κεφάλαιο 4 σχετίζεται με τα βασικά ζητήματα του διαγωνισμού που διεξάγει ο οργανισμός NIST. Παρουσιάζονται βασικά στοιχεία για τον ίδιο τον οργανισμό, και αναφέρονται συνοπτικά οι λόγοι που οδήγησαν στην αναγκαιότητα του διαγωνισμού. Μετά από μία περιγραφή των δύο workshop που οργάνωσε ο NIST ως προοίμιο του διαγωνισμού, ακολουθούν οι ποικίλες απαιτήσεις που θέτει στους υποψήφιους αλγόριθμους, μαζί με το επίσημο χρονοδιάγραμμα που θα ακολουθηθεί. Το κεφάλαιο 5 αποτελεί μία πρώτη μελέτη και ανάλυση των αλγόριθμων που είναι υποψήφιοι στο διαγωνισμό του NIST. Δίνουμε μία επισκόπηση της όλης πορείας του διαγωνισμού χρονικά παρουσιάζοντας τους αλγόριθμους που έγιναν ή δεν έγιναν αποδεκτοί στον κάθε γύρο. Στη συνέχεια οι συναρτήσεις σύνοψης κατηγοριοποιούνται, και αναλύονται ξεχωριστά (κυρίως σε σχέση με την ασφάλεια και την απόδοσή τους) οι 14 υποψήφιοι του δεύτερου γύρου. Τέλος παρουσιάζουμε έναν αλγόριθμο αξιολόγησης με βάση τόσο τα κριτήρια του NIST όσο και κάποιες προσωπικές εκτιμήσεις. 16

17 Ενότητα 3 Στο κεφάλαιο 6 δίνονται τα συνολικά συμπεράσματα μας, μαζί με τον επίλογο. Τέλος προτείνουμε μερικές ενδιαφέρουσες ερευνητικές προεκτάσεις που μπορεί να έχει κάθε ενότητα μαζί με μερικές ιδέες για γενικότερη μελλοντική εργασία. 17

18 Ενότητα 1 [κρυπτογραφία & συναρτήσεις σύνοψης] HASH, x: There is no definition for this word nobody knows what hash is. The devil's dictionary, Ambrose Bierce

19 Κεφάλαιο 1 [εισαγωγή στην κρυπτογραφία] 19

20 Δομή του κεφαλαίου Το κεφάλαιο αυτό παρουσιάζει στον αναγνώστη αρχικά κάποιες βασικές πληροφορίες και όρους σε σχέση με την ασφάλεια στο χώρο των υπολογιστών καθώς και την κρυπτογραφία. Στη συνέχεια δίνεται μία σύντομη ιστορική αναδρομή της κρυπτογραφίας και της κρυπτανάλυσης από τις ρίζες τους μέχρι σήμερα. Ακολουθεί μία βασική κατηγοριοποίηση της κρυπτογραφίας σε δύο μέρη (συμμετρική και ασύμμετρη). Ύστερα παρουσιάζονται στον αναγνώστη οι συναρτήσεις σύνοψης, κατηγοριοποιώντας τες με τα κατάλληλα κριτήρια καθώς και οι ποικίλες εφαρμογές τους σε όλους τους πιθανούς τομείς. Τέλος γίνεται μία ανακεφαλαίωση, δίνονται μερικά συμπεράσματα, και διαφαίνεται η ανάγκη βαθύτερης ανάλυσης των μεθόδων κατασκευής συναρτήσεων κατακερματισμού, που είναι και το θέμα του επόμενου κεφαλαίου. 20

21 1.1 Γενικά ζητήματα ασφάλειας Ο όρος ασφάλεια με την ευρύτερη έννοια αφορά το επίπεδο προστασίας σε σχέση με τον κίνδυνο. Στον τομέα της πληροφορίας, ο όρος σχετίζεται με τη διασφάλιση από μη εξουσιοδοτημένη πρόσβαση, χρήση, κοινοποίηση, τροποποίηση, και καταστροφή. Κύριες έννοιες που πραγματεύεται αυτός ο τομέας είναι η ακεραιότητα, η αυθεντικότητα, η εμπιστευτικότητα, η διαθεσιμότητα, η μη αποποίηση και η εγκυρότητα της πληροφορίας. Ανάλογα με τη φύση των δεδομένων που πρέπει να προστατευτούν, από τα μέσα αποθήκευσης, επεξεργασίας και μετάδοσης τους όπως επίσης και από τον επιθυμητό τρόπο προστασίας η έννοια της ασφάλειας διαμερίζεται σε αρκετούς κλάδους (όπως ασφάλεια υπολογιστικών συστημάτων, φυσική προστασία, κρυπτογραφία κ.α). Η κρυπτογραφία όπως θα αναλυθεί και στη συνέχεια ασχολείται με την ευρύτερη έννοια της πληροφορίας και της προστασίας της. 1.2 Γενικά ζητήματα κρυπτογραφίας Εισαγωγή Ο όρος κρυπτογραφία ( κρύπτος + γράφω ) αναφέρεται στον επιστημονικό κλάδο που ασχολείται με τη μελέτη, την ανάπτυξη και τη χρήση τεχνικών προκειμένου να επιτευχθεί ο μετασχηματισμός ενός τμήματος (ή και ολόκληρης) της πληροφορίας σε τέτοια μορφή ώστε να μην γίνεται κατανοητή από μη εξουσιοδοτημένες οντότητες. Αντίστοιχα κρυπτογράφηση είναι η διαδικασία μετατροπής ενός μηνύματος σε μορφή που να παραμένει μυστική από μη εξουσιοδοτημένες οντότητες. Η αντίστροφη διαδικασία καλείται αποκρυπτογράφηση. Παρακάτω ορίζουμε για λόγους κατανόησης μερικές από τις βασικότερες έννοιες σχετικά με την κρυπτογραφία [2] [5]. 21

22 Αρχικό κείμενο αποτελεί το αρχικό μήνυμα ή τα αρχικά δεδομένα που εισάγονται στον αλγόριθμο κρυπτογράφησης. Κρυπτογράφημα ή κρυπτογραφημένο μήνυμα είναι το μετασχηματισμένο μήνυμα που παράγεται ως έξοδος από τον αλγόριθμο κρυπτογράφησης. Ο Αλγόριθμος κρυπτογράφησης πραγματοποιεί τους απαραίτητους μετασχηματισμούς του αρχικού κειμένου για την επίτευξη κρυπτογράφησης ενός μηνύματος. Το κλειδί ή μυστικό κλειδί εισάγεται στον αλγόριθμο κρυπτογράφησης και οι ακριβείς αντικαταστάσεις και τα αποτελέσματα των μετασχηματισμών που επιτελούνται από τον αλγόριθμο εξαρτώνται από το μυστικό κλειδί. Κρυπτανάλυση είναι η διαδικασία της προσπάθειας αποκάλυψης του αρχικού κειμένου ή του κλειδιού από μη εξουσιοδοτημένες οντότητες. Οι τύποι κρυπταναλυτικών επιθέσεων διαφοροποιούνται σύμφωνα με τους πόρους που έχει στη διάθεσή του ο επιτιθέμενος. Όλοι οι τύποι επιθέσεων προϋποθέτουν ότι ο κρυπταναλυτής γνωρίζει πλήρως το χρησιμοποιούμενο αλγόριθμο κρυπτογράφησης. Οι τύποι επιθέσεων σε κρυπτογραφημένα μηνύματα είναι οι εξής. Επίθεση κρυπτογραφήματος (ciphertext- only attack). Σε αυτές τις επιθέσεις ο κρυπταναλυτής γνωρίζει μόνο διάφορα κρυπτογραφημένα (με το ίδιο κλειδί) μηνύματα. Επίθεση γνωστού αρχικού κειμένου (known plain text attack). Σε αυτές τις επιθέσεις ο κρυπταναλυτής γνωρίζει διάφορα κρυπτογραφήματα καθώς επίσης και ένα ή περισσότερα ζεύγη (αρχικού κειμένου, κρυπτογραφήματος) παραγόμενα από το μυστικό κλειδί. Επίθεση επιλεγμένου αρχικού κειμένου (chosen plain text attack). Σε αυτές τις επιθέσεις ο κρυπταναλυτής γνωρίζει διάφορα κρυπτογραφήματα καθώς επίσης και ένα αρχικό κείμενο επιλεγμένο από τον ίδιο σε συνδυασμό με το αντίστοιχο κρυπτογράφημα που παράγεται από το μυστικό κλειδί. Επίθεση επιλεγμένου κρυπτογραφήματος (chosen ciphertext attack). Σε αυτές τις επιθέσεις ο κρυπταναλυτής γνωρίζει διάφορα κρυπτογραφήματα καθώς επίσης και ένα κρυπτογράφημα επιλεγμένο από τον ίδιο σε συνδυασμό με το αντίστοιχο αποκρυπτογραφημένο αρχικό κείμενο που παράγεται από το μυστικό κλειδί. Επίθεση επιλεγμένου κειμένου (chosen text attack). Σε αυτές τις επιθέσεις ο κρυπταναλυτής γνωρίζει διάφορα κρυπτογραφήματα καθώς επίσης και ένα κρυπτογράφημα επιλεγμένο από τον ίδιο σε συνδυασμό με το αντίστοιχο αποκρυπτογραφημένο αρχικό κείμενο και ακόμη ένα αρχικό κείμενο επιλεγμένο από τον ίδιο σε συνδυασμό με το αντίστοιχο κρυπτογράφημα που παράγεται από το μυστικό κλειδί. 22

23 1.2.2 Ιστορική αναδρομή Η κρυπτογραφία ιστορικά δεν σχετίζεται απαραίτητα με την τεχνολογία, αλλά με την ίδια την πληροφορία και την αξία της. Οι απαρχές της χρήσης της εμφανίζονται χιλιάδες χρόνια πριν [1] [3]. Ειδικότερα, η πρώτη εμφάνιση γίνεται περίπου το 1900 π.χ. στην ευρύτερη περιοχή της Μεσοποταμίας και της αρχαίας Αιγύπτου. Σε αυτή την περίοδο η χρήση της γινόταν κυρίως στις τάξεις των τεχνητών, οι οποίοι προσπαθούσαν με κάθε τρόπο να διατηρήσουν τα μυστικά της τέχνης τους κρυφά. Οι τεχνικές που χρησιμοποιούνταν βασίζονταν σε ποικίλα τεχνάσματα και στηρίζονταν στην ευφυΐα και την ευρηματικότητα των δημιουργών τους. Από τα πρώτα ευρήματα είναι μία επιγραφή που χρονολογείται το 1500 π.χ. Και περιγράφει μία μέθοδο κατασκευής σμάλτων για αγγειοπλαστική. Επίσης, ως το αρχαιότερο βιβλίο κρυπτοκωδικών στον κόσμο, θεωρείται μία σφηνοειδής επιγραφή στα Σούσα της Περσίας. η οποία περιλαμβάνει τους αριθμούς από το ένα έως και το οκτώ και από το τριάντα δύο έως το τριάντα πέντε, τοποθετημένους τον ένα κάτω από τον άλλο, ενώ απέναντι τους βρίσκονται τα αντίστοιχα για τον καθένα σφηνοειδή σύμβολα. Στον Ελλαδικό χώρο αναφέρεται η χρήση της σκυτάλης από τους Σπαρτιάτες (πέμπτος π.χ. αιώνας) ως μέθοδος απόκρυψης πληροφοριών και μάλιστα για στρατιωτικούς σκοπούς. Όπως αναφέρει ο Πλούταρχος, η Σπαρτιατική Σκυτάλη, ήταν μια ξύλινη ράβδος, ορισμένης διαμέτρου, γύρω από την οποία ήταν τυλιγμένη ελικοειδώς μια λωρίδα περγαμηνής. Το κείμενο ήταν γραμμένο σε στήλες, ένα γράμμα σε κάθε έλικα, όταν δε ξετύλιγαν τη λωρίδα, το κείμενο ήταν ακατάληπτο εξαιτίας της ανάμειξης των γραμμάτων. Το κλειδί ήταν η διάμετρος της εκάστοτε σκυτάλης. Εικόνα 1.1: Η σπαρτιατική σκυτάλη 23

24 Άλλη μία εφαρμογή κρυπτογραφίας στην αρχαία Ελλάδα ήταν ο Πίνακας του Πολύβιου. Σε αυτόν το κάθε γράμμα της αλφαβήτου αντικαθίσταται από τις συντεταγμένες του βάση του πίνακα. Για παράδειγμα η λέξη crypt γίνεται Εικόνα 1.2: Ο πίνακας του Πολύβιου [στην Αγγλική γλώσσα]. Ο Ηρόδοτος αναφέρει παραδείγματα στα οποία κρυφά μηνύματα σκαλίζονταν σε ξύλινες επιφάνειες και στη συνέχεια καλύπτονταν με κερί ή χαράζονταν με τη μέθοδο της δερματοστιξίας (τατουάζ) σε κεφάλια σκλάβων. Ωστόσο αυτό που αρκετοί επιστήμονες επισημαίνουν σε σχέση με το παραπάνω παράδειγμα κρυπτογραφίας είναι ότι πρόκειται περισσότερο για μία μορφή στεγανογραφίας. Οι Έλληνες συγγραφείς δεν αναφέρουν αν και πότε χρησιμοποιήθηκαν συστήματα γραπτής αντικατάστασης γραμμάτων, αλλά τα βρίσκουμε στους Ρωμαίους, κυρίως την εποχή του Ιουλίου Καίσαρα. Ο Καίσαρας επινόησε έναν απλό κρυπτογραφικό αλγόριθμο για να επικοινωνεί με τους επιτελείς του, χωρίς να μπορούν οι εχθροί του ακόμη και αν έβρισκαν το μήνυμα να το αποκρυπτογραφήσουν. Ο αλγόριθμος βασίζεται στην αντικατάσταση γραμμάτων της αλφαβήτου με άλλα, όχι τυχαία επιλεγμένα. Αναλυτικότερα, βασίζεται στην ολίσθηση των γραμμάτων προς τα δεξιά βάση ενός κλειδιού. Για παράδειγμα εάν το κλειδί είναι το 3 έχουμε: δηλαδή η λέξη crypt γίνεται fubsw. 24

25 Στη Μεσαιωνική Ευρώπη λόγω των πολιτικών και θρησκευτικών συνθηκών τα μαθηματικά και η κρυπτογραφία δεν είχαν ιδιαίτερη ανάπτυξη. Ωστόσο στον αραβικό κόσμο η συστηματική ανάλυση ιερών κειμένων όπως το Κοράνι οδήγησε σε μία πολύ σημαντική τεχνική κρυπτανάλυσης (για μονοαλφαβητικούς αλγόριθμους κρυπτογράφησης με αντικατάσταση) με βάση τη συχνότητα εμφάνισης των γραμμάτων στις διάφορες γλώσσες (frequency analysis). Η τεχνική αυτή κρυπτανάλυσης θεωρείται η πιο σημαντική μέχρι και το δεύτερο παγκόσμιο πόλεμο. Ένα απλό παράδειγμα κρυπτανάλυσης με βάση τη συχνότητα εμφάνισης γραμμάτων στην Αγγλική Γλώσσα είναι το παρακάτω. Εικόνα 1.3: Η συχνότητα εμφάνισης γραμμάτων στην Αγγλική γλώσσα. Έστω ότι θέλουμε να κρυπτογραφήσουμε την πρόταση: we are hackers με τον αλγόριθμο του Καίσαρα (με κλειδί ίσο με 3). Το αποτέλεσμα είναι: zh duh kdfnhuv. Παρατηρούμε ότι το h εμφανίζεται 3 φορές σε σύνολο 12 γραμμάτων (δηλαδή έχει μία εμφάνιση της τάξης 25%). Από το παραπάνω διάγραμμα παρατηρούμε πως το γράμμα e στην Αγγλική γλώσσα έχει τη μεγαλύτερη συχνότητα εμφάνισης. Άρα υπάρχει μεγάλη πιθανότητα το h να αντιστοιχεί στο e. Επομένως εύκολα συμπεραίνει κανείς πως το κλειδί αντικατάστασης είναι το 3 αφού το h απέχει τρεις θέσεις από το e. Να σημειωθεί όπως είναι λογικό πως η μέθοδος αυτή έχει ακόμα μεγαλύτερη ακρίβεια σε μεγαλύτερα κείμενα. 25

26 Από τις αρχές μέχρι και τα μέσα του εικοστού αιώνα (1900 μ.χ. μέχρι 1950 μ.χ.) αναπτύχθηκε η κρυπτογραφία τόσο όσο δεν είχε αναπτυχθεί τα προηγούμενα 3000 χρόνια, και αυτό κυρίως λόγω των δύο παγκοσμίων πολέμων. Τα κρυπτοσυστήματα αυτής της περιόδου αρχίζουν να γίνονται πολύπλοκα, και να αποτελούνται από μηχανικές και ηλεκτρομηχανικές κατασκευές, οι οποίες ονομάζονται κρυπτομηχανές. Η κρυπτανάλυση τους, απαιτεί μεγάλο αριθμό προσωπικού, το οποίο εργαζόταν επί μεγάλο χρονικό διάστημα ενώ ταυτόχρονα γίνεται εξαιρετικά αισθητή η ανάγκη για μεγάλη υπολογιστική ισχύ. Παρά την πολυπλοκότητα που αποκτούν τα συστήματα κρυπτογράφησης κατά τη διάρκεια αυτής της περιόδου η κρυπτανάλυση τους είναι συνήθως επιτυχημένη. Γνωστότερη όλων των κρυπτομηχανών είναι η περίφημη Enigma η οποία χρησιμοποιόταν από τους Γερμανούς κατά το δεύτερο παγκόσμιο πόλεμο. Εικόνα 1.4: Η κρυπτομηχανή Enigma. Τα θεμέλια της σύγχρονης κρυπτογραφίας και κρυπτανάλυσης μπαίνουν από τον Claude Shannon, ο οποίος είναι αναμφισβήτητα ο πατέρας των μαθηματικών συστημάτων κρυπτογραφίας αν αναλογιστεί κανείς το έργο του κατά τη διάρκεια του δεύτερου παγκόσμιου πόλεμου. Στα μέσα του 1970 γίνεται η πρώτη επίσημη προσπάθεια για να δημιουργηθεί ένα πρότυπο κρυπτογράφησης που δεν είναι άλλο από το Data Encryption Standard (DES). Την ίδια περίοδο κάνει την εμφάνισή της και η κρυπτογραφία δημόσιου κλειδιού από τους Whitfield Diffie και Martin Hellman. Τις επόμενες δεκαετίες παρουσιάζονται και οι πρώτες μονόδρομες συναρτήσεις σύνοψης που διευρύνουν τις εφαρμογές τις κρυπτογραφίας. 26

27 Τριάντα χρόνια μετά τα πρότυπα αυτά και λόγω των αυξημένων αναγκών και της άνθησης της κρυπτανάλυσης η επιστημονική κοινότητα οδηγήθηκε σε μία αναθεώρηση του πρότυπου DES που μετά από διαγωνισμό του NIST αντικαταστάθηκε από ένα πιο σύγχρονο και ισχυρό πρότυπο (Advanced Encryption Standard, AES). Ομοίως έπειτα από τις συνεχόμενες επιθέσεις που δέχτηκαν σειρά από ευρέως γνωστές συναρτήσεις σύνοψης ο NIST προκήρυξε διαγωνισμό για ένα νέο ισχυρό πρότυπο (Secure Hash Algorithm 3 - SHA-3). Η σύγχρονη κρυπτογραφία μπορεί να χωριστεί σε δύο μεγάλες κατηγορίες, τη συμβατική κρυπτογραφία (conventional cryptography) ή αλλιώς συμμετρική κρυπτογραφία (symmetric cryptography) και την κρυπτογραφία δημοσίου κλειδιού (public key cryptography) ή διαφορετικά ασύμμετρη κρυπτογραφία. 1.3 Συμμετρική κρυπτογραφία Η συμβατική κρυπτογραφία απλοποιημένα θα μπορούσε να παρασταθεί με το παρακάτω σχήμα: Εικόνα 1.5: Συμβατική κρυπτογραφία. Σε γενικές γραμμές οι βασικές προϋποθέσεις για την ασφαλή λειτουργία της συμμετρικής κρυπτογραφίας είναι δύο. Είναι αναγκαία η ύπαρξη ενός ισχυρού κρυπτογραφικού αλγόριθμου τέτοιου ώστε ακόμα και αν ο επιτιθέμενος γνωρίζει τον αλγόριθμο καθώς και ένα ή περισσότερα κρυπτογραφήματα, να μην είναι σε θέση να υπολογίσει το μυστικό (συμμετρικό) κλειδί, ούτε να συμπεράνει το αρχικό κείμενο. Από την πλευρά του πομπού και του δέκτη στη συμβατική κρυπτογραφία βασικότατο ρόλο παίζει ο ασφαλής τρόπος με τον οποίο έχουν παραλάβει το κλειδί καθώς επίσης και ο τρόπος διαφύλαξης του σε μέρος μη προσιτό στον επιτιθέμενο. 27

28 Συμπερασματικά ένα σχήμα κρυπτογράφησης θεωρείται υπολογιστικά ασφαλές εφόσον το κρυπτογράφημα που παράγεται πληρεί τουλάχιστον ένα από τα παρακάτω κριτήρια: Το κόστος παραβίασης του κρυπτομηνύματος πρέπει να υπερβαίνει την αξία των πληροφοριών που θα λάβει ο κρυπταναλυτής από τη διαδικασία κρυπτανάλυσης. Ο χρόνος που απαιτείται για την κρυπτανάλυση πρέπει να υπερβαίνει την ωφέλιμη διάρκεια ζωής της πληροφορίας. Οι πιο γνωστοί και ευρέως χρησιμοποιούμενοι αλγόριθμοι στη συμμετρική κρυπτογραφία ακολουθούν τη λογική της κρυπτογράφησης τμημάτων και αποκαλούνται κωδικοποιητές τμημάτων (block ciphers). Η κρυπτογράφηση τμημάτων επεξεργάζεται την είσοδο του αρχικού κειμένου σε σταθερού μεγέθους τμήματα και παράγει κρυπτογραφήματα ίδιου μεγέθους για οποιοδήποτε τμήμα του αρχικού κειμένου. Μερικοί από τους πιο δημοφιλής αλγόριθμους είναι ο DES (data encryption standard),ο triple DES (3 DES), o AES (advanced encryption standard), ο blowfish, o IDEA, o RC5 κα (βλέπε παράρτημα ΙΙ). 28

29 1.4 Κρυπτογραφία δημοσίου κλειδιού Η κρυπτογραφία δημοσίου κλειδιού (ή ασύμμετρη κρυπτογραφία) αποτέλεσε ένα επαναστατικό βήμα στο κλάδο. Η κύρια διαφορά σε σχέση με τη συμβατική είναι ότι είναι ασύμμετρη, κάνοντας χρήση ενός ζεύγους διαφορετικών κλειδιών αντί για ένα μοναδικό. Η δομή δημοσίου κλειδιού παρουσιάζεται συνοπτικά στο παρακάτω σχήμα, και αποτελείται από τις ακόλουθες συνιστώσες [5] [7]. Εικόνα 1.6: Κρυπτογραφία δημοσίου κλειδιού. Αλγόριθμος κρυπτογράφησης (encryption algorithm): είναι ο αλγόριθμος με τον οποίο πραγματοποιούνται οι διάφοροι μετασχηματισμοί στο αρχικό μήνυμα. Θα πρέπει να σημειωθεί ότι οι εν λόγω αλγόριθμοι βασίζονται σε μαθηματικές συναρτήσεις και όχι σε απλές πράξεις με bits. Ζεύγος δημοσίου (public) και ιδιωτικού (private) κλειδιού: Ζεύγος κλειδιών που έχει επιλεγεί με τρόπο ώστε το δημόσιο κλειδί του παραλήπτη να χρησιμοποιηθεί για κρυπτογράφηση και το ιδιωτικό κλειδί του παραλήπτη για αποκρυπτογράφηση. Όπως γίνεται κατανοητό το δημόσιο κλειδί αποσκοπεί σε δημόσια χρήση σε αντίθεση με το ιδιωτικό που είναι για την αποκλειστική χρήση του κατόχου του. Αλγόριθμος αποκρυπτογράφησης (decryption algorithm): Είναι ο αλγόριθμος που δέχεται ως είσοδο το κρυπτογραφημένο μήνυμα και το ιδιωτικό κλειδί και παράγει το πρότυπο αρχικό μήνυμα. 29

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

31 1.5 Μονόδρομες συναρτήσεις σύνοψης (hash functions) Μία κρυπτογραφική συνάρτηση σύνοψης H είναι ένας αλγόριθμος που επεξεργάζεται ένα αυθαίρετου μήκους κείμενο μετατρέποντάς το σε ένα καθορισμένου μήκους συμβολοσειρά όπως φαίνεται και στο παρακάτω σχήμα. Οι συναρτήσεις κατακερματισμού είναι από τα πιο σημαντικά σύγχρονα εργαλεία της κρυπτογραφίας ικανοποιώντας πολλές από τις βασικές απαιτήσεις ασφαλείας (όπως αυθεντικοποίηση, ψηφιακές υπογραφές, ψηφιακές χρονοσφραγίδες, ψηφιακή στεγανογραφία κα.). Ακόμη σχετίζονται τεχνικά με σημαντικά κρυπτογραφικά εργαλεία όπως κωδικοποιητές τμημάτων και γεννήτριες ψευδοτυχαίων αριθμών. Εικόνα 1.7: Γενικό παράδειγμα χρήσης μίας συνάρτησης σύνοψης. Εμβαθύνοντας μία συνάρτηση σύνοψης h:f* G n έχει τουλάχιστον τις παρακάτω δύο ιδιότητες [4] [7] : Συμπίεση (compression): Αντιστοιχεί αντιστοιχίζει ένα στοιχείο x ϵ F* αυθαίρετου μήκους, στο στοιχείο y ϵ G n με συγκεκριμένο μήκος n: y=h(x). Ευκολία υπολογισμού (ease of computation): Δοθέντος μίας h και μιας εισόδου x το h(x) είναι εύκολο να υπολογιστεί. 31

32 Η κατηγοριοποίηση των συναρτήσεων κατακερματισμού φαίνεται στο παρακάτω σχήμα: Εικόνα 1.8: Κατηγορίες συναρτήσεων σύνοψης. Όπως φαίνεται οι δύο μεγάλες κατηγορίες σχετίζονται με τη χρήση ή όχι κάποιου κλειδιού. Η πιο σημαντική κατηγορία (με την οποία θα ασχοληθούμε εκτενώς) θεωρείται η άνευ κλειδιού με βασικό εκπρόσωπό της, τις συναρτήσεις εντοπισμού αλλαγών (modification detection codes [MDCs]). Από την άλλη πλευρά οι συναρτήσεις που κάνουν χρήση κλειδιού έχουν ως κύριο μέλος τις συναρτήσεις αυθεντικοποίησης μηνύματος (message authentication code [MAC]) Modification Detection Codes (ή manipulation detection codes [και πιο σπάνια message integrity codes (MICs)]) Ο βασικός σκοπός χρήσης τους είναι να παράγουν μία αντιπροσωπευτική εικόνα (σύνοψη) του μηνύματος σύμφωνα με κάποιες επιπλέον ιδιότητες που θα αναφερθούν παρακάτω Message Authentication Code Ο βασικός σκοπός χρήσης τους είναι να παρέχουν χωρίς κάποιον επιπλέον μηχανισμό εγγυήσεις τόσο για την πηγή ενός μηνύματος όσο και για την ακεραιότητα του. 32

33 1.5.3 Βασικές Ιδιότητες & κατηγορίες των MDCs Δοθέντος μίας συνάρτησης σύνοψης h με εισόδους x,x' και εξόδους y,y' ορίζουμε τις παρακάτω ιδιότητες [7]. Preimage resistance: Είναι υπολογιστικά ανέφικτο να βρούμε ένα x' τέτοιο ώστε η h(x')=y, για ένα οποιοδήποτε y του οποίου η αρχική είσοδος δεν είναι γνωστή. Second preimage resistance: Είναι υπολογιστικά ανέφικτο να βρούμε μία δεύτερη είσοδο που έχει την ίδια έξοδο με μία προκαθορισμένη είσοδο. Δηλαδή είναι υπολογιστικά ανέφικτο να βρούμε δοθέντος ενός x, ένα x' x τέτοιο ώστε το h(x)=h(x'). Collision resistance: Είναι υπολογιστικά ανέφικτο να βρεθούν δύο διαφορετικές είσοδοι x, x' που έχουν την ίδια έξοδο. Όπως φαίνεται και στο παραπάνω σχήμα οι MDCs μπορούν να χωριστούν σε one way hash functions (μονόδρομες συναρτήσεις σύνοψης) και σε collision resistance hash functions. Ως one way hash functions (OWHF) ορίζονται αυτές που είναι ανέφικτο να βρεθεί μία είσοδος που οδηγεί σε μία προκαθορισμένη έξοδο, και διαθέτει preimage και second preimage resistance. Ως collision resistant hash function (CRHF) ορίζονται αυτές που είναι ανέφικτο να βρεθούν δύο είσοδο που έχουν την ίδια έξοδο και διαθέτει second preimage και collision resistance. Συνήθως στην πράξη οι περισσότερες CRHF διαθέτουν και preimage resistance. Εξίσου σημαντικό είναι το γεγονός ότι διασφαλίζοντας collision resistance ουσιαστικά διασφαλίζεται και second preimage resistance. Για να αποδειχτεί αυτό υποθέτουμε ότι υπάρχει μία συνάρτηση h που είναι collision resistance και μία συγκεκριμένη είσοδο x. Αν η h δεν έχει second preimage resistance τότε είναι εφικτό να βρούμε μία διαφορετική είσοδο x' τέτοια ώστε h(x)=h(x'). Άρα το x,x' είναι ένα ζευγάρι διαφορετικών εισόδων που έχουν το ίδιο αποτέλεσμα, το οποίο είναι άτοπο (λόγω collision resistance). Επίσης, σημειώνεται ότι το preimage resistance δεν σημαίνει απαραίτητα ότι υπάρχει second preimage resistance (και το αντίστροφο), ενώ παρόμοια το collision resistance δεν εγγυάται preimage resistance. 33

34 1.5.4 Επιπλέον ιδιότητες συναρτήσεων σύνοψης Πέρα από τις παραπάνω ιδιότητες, μία ισχυρή συνάρτηση σύνοψης (σε σχέση πάντα με την εφαρμογή στην οποία θέλουμε να τη χρησιμοποιήσουμε) πρέπει να έχει κάποιες επιπρόσθετες ιδιότητες. Non-correlation: τα bits εισόδου και τα bits εξόδου δεν πρέπει να συσχετίζονται. Near-collision resistance: θα πρέπει να είναι δύσκολο να βρεθούν δύο είσοδοι x,x' τέτοιοι ώστε το h(x) και το h(x') να διαφέρουν ως προς ένα μικρό βαθμό bit. Partial-preimage resistance (ή local one-wayness): θα πρέπει να είναι εξίσου δύσκολο να επανακτηθεί οποιοδήποτε κομμάτι της εισόδου όσο να επανακτηθεί και ολόκληρη η είσοδος. Επιπλέον ακόμα και αν ένα κομμάτι της εισόδου είναι γνωστό θα πρέπει να είναι δύσκολο το να βρεθεί το υπόλοιπο. Τέλος είναι εύλογο ότι η συνάρτηση πρέπει να μπορεί να εφαρμοστεί σε τμήμα δεδομένων οποιουδήποτε μεγέθους, να παράγει έξοδο συγκεκριμένου (μικρού) σταθερού μήκους και να είναι εύκολα υπολογίσιμη για δοθέν x, καθιστώντας πρακτική την υλοποίηση είτε με λογισμικό είτε με υλισμικό Εφαρμογές Συναρτήσεων Σύνοψης Σε γενικές γραμμές οι περισσότερες συναρτήσεις σύνοψης δίχως κλειδί είχαν αρχικά σχεδιαστεί για να παρέχουν ακεραιότητα των δεδομένων, συμπεριλαμβανομένης της ψηφιακής ταυτοποίησης των μηνυμάτων με τη χρήση ψηφιακών υπογραφών. Η αυθεντικοποίηση είναι άλλος ένας από τους στόχους των συναρτήσεων κατακερματισμού. Στη συμμετρική κρυπτογραφία αυτό επιτυγχάνεται με τις MAC συναρτήσεις τις οποίες αναλύουμε παρακάτω [6] [7]. 34

35 Αυθεντικοποίηση μηνυμάτων Η κρυπτογράφηση γενικά έχει ως στόχο την προστασία τόσο από παθητικές επιθέσεις (που συνήθως έχουν ως στόχο την παραβίαση της εμπιστευτικότητας [eavesdropping]) όσο και από ενεργητικές (που συνήθως έχουν ως στόχο τις μεταδιδόμενες πληροφορίες και δοσοληψίες [falsification of data and transactions]). Αυθεντικοποίηση μηνυμάτων (message authentication) ονομάζεται η υπηρεσία ασφάλειας η οποία δύναται να παρέχει προστασία από τις παραπάνω κατηγορίες επιθέσεων. Με τη βοήθεια της οι μετέχοντες στην επικοινωνία διασφαλίζουν την ακεραιότητα και την αυθεντικότητα. Ακόμη εάν είναι επιθυμητό μπορεί να διασφαλίζεται και η χρονοσήμανση. Η ανάγκη για αυθεντικοποίηση μηνυμάτων οδήγησε στη δημιουργία μίας τεχνικής που είναι γνωστή ως Κώδικας Αυθεντικοποίησης Μηνυμάτων (Message Authentication Code [MAC]). Το MAC κάνει χρήση ενός μυστικού κλειδιού με τη βοήθεια του οποίου παράγει ένα μικρό τμήμα δεδομένων το οποίο και προσάπτεται στο μήνυμα. Ειδικότερα, αν υποθέσουμε ότι έχουμε δύο οντότητες Α,Β, ένα κλειδί κ, και ο Α θέλει να στείλει ένα μήνυμα στον Β τότε υπολογίζει το MAC του μηνύματος Μ ως εξής: MAC M =f(κ,μ) Το MAC όπως φαίνεται και στο παρακάτω σχήμα, επισυνάπτεται στο μήνυμα και αποστέλλεται. Ο παραλήπτης πραγματοποιεί με τον ίδιο τρόπο έναν υπολογισμό του MAC του μηνύματος και ελέγχει εάν είναι όμοιο με το επισυναπτόμενο. Εικόνα 1.9: Κώδικας αυθεντικοποιίησης μηνυμάτων [MAC]. Όταν χρησιμοποιείται μία συνάρτηση σύνοψης στη διαδικασία αυθεντικοποίησης μηνυμάτων, τότε γίνεται λόγος για HMAC. 35

36 ψηφιακές υπογραφές Μία από τις πιο ενδιαφέρουσες εφαρμογές των συναρτήσεων κατακερματισμού είναι οι ψηφιακές υπογραφές. Μία ηλεκτρονική υπογραφή που μπορεί να χρησιμοποιηθεί τόσο για την αυθεντικοποίηση της ταυτότητας του αποστολέα (ή και του υπογράφοντα) όσο και την ακεραιότητα του μηνύματος ονομάζεται ψηφιακή υπογραφή. Για τη δημιουργία της ακολουθείται η παρακάτω σχηματική δομή. Ο αποστολέας παράγει μία σύνοψη του μηνύματός του, την οποία εισάγει μαζί με το ιδιωτικό του κλειδί σε μία συνάρτηση υπογραφής. Έπειτα αποστέλλει το μήνυμα μαζί με την ψηφιακή υπογραφή που δημιούργησε. Εικόνα 1.10: Ψηφιακή υπογραφή [αποστολέας]. Ο παραλήπτης, υπολογίζει τη σύνοψη του μηνύματος που παρέλαβε και έπειτα εισάγει την ψηφιακή υπογραφή μαζί με το δημόσιο κλειδί του αποστολέα σε μία συνάρτηση επιβεβαίωσης. Αν το αποτέλεσμα είναι θετικό πιστοποιείται ότι το μήνυμα είναι πράγματι από τον αποστολέα, ενώ η σύγκριση της σύνοψης του μηνύματος μαζί με τη σύνοψη που υπήρχε στην αποστολή του αρχικού μηνύματος (μέσα στην ψηφιακή υπογραφή) μας εγγυάται την ακεραιότητα του. Η διαδικασία αυτή απεικονίζεται στο ακόλουθο σχήμα. Εικόνα 1.11: Ψηφιακή υπογραφή [παραλήπτης]. 36

37 Password Hashing Κοινή πρακτική αποτελεί και η αποθήκευση κωδικών σε κρυπτογραφημένη μορφή (αντί για απλό κείμενο) για ευνόητους λόγους. Η χρήση συναρτήσεων κατακερματισμού απαντάει και σε αυτή την πρόκληση με τη μορφή των password tables, έχοντας δύο βασικά πλεονεκτήματα. Πρώτον η παραγωγή των κρυπτογραφημάτων είναι εύκολη και γρήγορη, ενώ συνάμα μικρή και σταθερή σε μέγεθος. Δεύτερον, εξαιτίας της φύσης των hash function είναι υπολογιστικά ανέφικτη η ανάκτηση του κωδικού σε plaintext μορφή δοθέντος του κρυπτογραφήματος. Έτσι ακόμα και σε περίπτωση κλοπής των κρυπτογραφημάτων ο φόβος αποκάλυψης των κωδικών είναι μειωμένος. Ένα κλασικό παράδειγμα είναι τα ειδικά αρχεία του Unix /etc/passwd και /etc/shadow που φυλάσσουν τις συνόψεις των κωδικών κάθε χρήστη του συστήματος. Να σημειωθεί πως με την τεχνική του salting (βλέπε παράρτημα Ι) είναι εφικτή η περαιτέρω προστασία του χρήστη ακόμη και σε περιπτώσεις όπου ο κωδικός είναι σχετικά αδύναμος. Εξίσου ενδιαφέρουσα είναι η χρήση των hash function στη δομή δεδομένων με τη μορφή των hash tables. Ο ρόλος της συνάρτησης σύνοψης είναι η αντιστοίχιση ενός κλειδιού/αναγνωριστικού σε συγκεκριμένα στοιχεία. Πιο συγκεκριμένα η παραγόμενη σύνοψη αποτελεί τη διεύθυνση του στοιχείου στο πίνακα που είναι αποθηκευμένο. Βασικό πλεονέκτημα αυτής της δομής είναι το γεγονός ότι το μέσο κόστος ανάκτησης μιας εγγραφής είναι ανεξάρτητο από το πλήθος των στοιχείων. Ακόμη σε πολλές περιπτώσεις τα hash tables είναι πιο αποδοτικά σε σχέση με τα κλασικά δένδρα αναζήτησης, και για αυτό το λόγο χρησιμοποιούνται σε εφαρμογές όπως ευρετήρια βάσεων δεδομένων. Εικόνα 1.12: Χρήση συνάρτησης σύνοψης σε hash table. 37

38 Γεννήτριες ψευδοτυχαίων αριθμών Οι συναρτήσεις σύνοψης μπορούν να χρησιμοποιηθούν ως γεννήτριες για τη δημιουργία ψευδοτυχαίων αριθμών αν και αυτό δεν συνιστάται για απαιτητικές ως προς την τυχαιότητα εφαρμογές. Η παραγωγή ψευδοτυχαίων αριθμών μπορεί να γίνει αρχικά επιλέγοντας μια τυχαία τιμή έναρξης (seed) και έπειτα εφαρμόζοντας τη συνάρτηση σύνοψης σε μια ακολουθία που βασίζεται στην τιμή έναρξης. Για παράδειγμα επιλέγεται ένα seed s και μια ακολουθία s, s+1, s+2,, s +n, ενώ η παραγωγή των αριθμών γίνεται με χρήση της hash function f(s), f(s+1), f(s+2),, f(s+n). Η τυχαιότητα των παραγόμενων αριθμών βασίζεται στην κατανομή που πρέπει να έχουν οι εξαγόμενες συνόψεις και στο one-wayness αυτής Άλλες εφαρμογές Οι συναρτήσεις σύνοψης έχουν ποικίλες εφαρμογές ανάλογα με το επιστημονικό πεδίο στο οποίο χρησιμοποιούνται (πχ. χρήση σε σχήματα για μη αποποίηση, και σχήματα χρονοσφραγίδων). Τα hashes αρχείων μπορούν να λειτουργήσουν και ως αναγνωριστικά τους σε διάφορες εφαρμογές καθώς και για εντοπισμό λαθών κατά τη μεταφορά των δεδομένων. Για παράδειγμα πολλά peer-to-peer δίκτυα κάνουν τέτοια χρήση παρέχοντας συνάμα και ακεραιότητα. Μία άλλη εφαρμογή αυτών των συναρτήσεων είναι η επιβεβαίωση γνώσης (confirmation of knowledge), όπου μία οντότητα μπορεί να επιδείξει τη γνώση κάποιων δεδομένων χωρίς να τα αποκαλύπτει με την παρουσίαση της σύνοψης τους (η οποία είναι μοναδική) και αποδεικνύει την κατοχή αυτή σε τρίτες οντότητες. Οι συναρτήσεις σύνοψης είναι επίσης κατάλληλες για την παραγωγή κλειδιών (key derivation) υπολογίζοντας ακολουθίες νέων κλειδιών με βάση παλαιότερα. Ένα τυπικό τέτοιο παράδειγμα είναι τα one time password (OTP) σχήματα προστασίας. Τα OTP κάνουν χρήση αλυσίδων συναρτήσεων κατακερματισμού (hash chains), οι οποίες δεν είναι τίποτε άλλο παρά συνεχόμενες εμφωλευμένες συναρτήσεις (πχ. h(h(h(x)))). Σε ένα πρακτικό παράδειγμα, ο εξυπηρετητής γνωρίζει μόνο το h 10 (x) μέλος της αλυσίδας, και ο χρήστης για να αυθεντικοποιηθεί παρέχει το h 9 (x) μέλος που έχει στη γνώση του. Έπειτα ο εξυπηρετητής υπολογίζει το h(h 9 (x)) και το συγκρίνει το με το κλειδί που έχει. Σε περίπτωση επιτυχούς ταυτοποίησης γίνεται αυθεντικοποίηση και αντικαθιστά το κλειδί που έχει με αυτό που έλαβε από το χρήστη. Τέλος, οι συναρτήσεις σύνοψης εφαρμόζονται και για σύγκριση μεγάλου όγκου αρχείων με αρκετά εύκολο τρόπο. Αυτή η εφαρμογή είναι αρκετά χρήσιμη για τον εντοπισμό rootkit σε διάφορα λειτουργικά συστήματα. 38

39 1.6 Συμπεράσματα - Επίλογος Όπως άλλωστε προαναφέρθηκε ο πιο σύνηθες διαχωρισμός που γίνεται στην επιστήμη της κρυπτογραφίας είναι αυτός της συμμετρικής και της ασύμμετρης. Στην πρώτη περίπτωση οι οντότητες που επιθυμούν να επικοινωνήσουν χρησιμοποιούν ένα μυστικό κλειδί ενώ στη δεύτερη ένα ζεύγος ιδιωτικού και δημόσιου. Μεγάλο ενδιαφέρον ωστόσο παρουσιάζει η θέση των συναρτήσεων κατακερματισμού στην παραπάνω κατηγοριοποίηση. Παραδόξως η επιστημονική κοινότητα φαίνεται να μην έχει μία ξεκάθαρη θέση σε σχέση με τις συναρτήσεις σύνοψης. Από τη μία πλευρά υπάρχει η άποψη ότι οι συναρτήσεις αυτές ανήκουν στην κατηγορία της συμμετρικής κρυπτογραφίας. Αυτό συμβαίνει κυρίως εξαιτίας των πολλών κοινών χαρακτηριστικών με τους κωδικοποιητές τμημάτων (block ciphers) και τους κωδικοποιητές ροής (stream ciphers). Πέρα από τις εσωτερικές δομικές ομοιότητες είναι ακόμη δυνατόν να μετατραπεί ένας κωδικοποιητής τμημάτων ή ροής σε συνάρτηση σύνοψης (ή και το αντίστροφο). Τέλος οι διάφορες τεχνικές που υπάρχουν για την ανάλυση των κωδικοποιητών τμημάτων (όπως πχ. η διαφορική κρυπτανάλυση [differential cryptanalysis]) μπορούν να χρησιμοποιηθούν για την ανάλυση των συναρτήσεων κατακερματισμού. Από την άλλη πλευρά, δεν είναι λίγοι εκείνοι που εξαιτίας των πολλαπλών εφαρμογών των συναρτήσεων σε κρυπτοσυστήματα δημοσίου κλειδιού, τις κατατάσσουν στην ασύμμετρη. Συνοψίζοντας, παρατηρώντας τα παραπάνω και λόγω της χρήσης των hash function σε όλο το εύρος της κρυπτογραφίας (συμμετρική και δημοσίου κλειδιού) καταλήγουμε στο συμπέρασμα πως δεν είναι επιστημονικά ορθή η μονοδιάστατη κατηγοριοποίηση τους. Οι συναρτήσεις σύνοψης είναι επομένως επιθυμητό να θεωρούνται ως ένα ξεχωριστό και σημαντικό εργαλείο από μόνες τους. 39

40 40

41 Κεφάλαιο 2 [Κατασκευές συναρτήσεων σύνοψης] 41

42 Δομή του κεφαλαίου Το κεφάλαιο αυτό ασχολείται με τους τρόπους κατασκευής συναρτήσεων κατακερματισμού και πιθανές βελτιώσεις. Αρχικά παρουσιάζονται κάποιες γενικές αρχές που πρέπει να διαθέτει μία συνάρτηση σύνοψης, και οι συνήθεις τρόποι κατασκευών. Περιγράφεται το Merkle-Damgard μοντέλο και ύστερα μία κατηγοριοποίηση βασισμένη στις συναρτήσεις συμπίεσης. Ακολούθως μελετούνται τρόποι με τους οποίους μπορεί να βελτιωθεί το MD μοντέλο αλλά και καινούργιες προτάσεις κατασκευών. Το τελευταίο μέρος του κεφαλαίου ασχολείται με κάποιες συγκεκριμένες σύγχρονες συναρτήσεις σύνοψης, και ακολουθούν κάποια συμπεράσματα. 42

43 2.1 Γενικές αρχές Όπως έχει αναφερθεί στο προηγούμενο κεφάλαιο μια συνάρτηση σύνοψης (hash function) μετασχηματίζει μία τυχαίου μήκους είσοδο, σε μία σταθερού μήκους έξοδο. Γενικά οι συναρτήσεις κατακερματισμού και ο τρόπος κατασκευής τους μπορούν να χωριστούν σε δύο μεγάλες κατηγορίες: σε αυτές που κάνουν χρήση κλειδιού και σε αυτές που δεν κάνουν. Στην παρούσα διπλωματική εργασία θα ασχοληθούμε κυρίως με τη δεύτερη κατηγορία. Ένας διαφορετικός τρόπος κατηγοριοποίησης των συναρτήσεων σύνοψης που σχετίζεται με το τρόπο κατασκευής τους είναι ο παρακάτω: συναρτήσεις σύνοψης βασισμένες σε κρυπτογραφικούς αλγόριθμους τμήματος (block cipher based hash functions) εξειδικευμένες συναρτήσεις σύνοψης (customized/dedicated hash functions) συναρτήσεις σύνοψης βασισμένες στην αριθμητική υπολοίπου (modular arithmetic based hash functions) συναρτήσεις σύνοψης βασισμένες σε κυψελοειδή αυτόματα συναρτήσεις σύνοψης βασισμένες στο πρόβλημα του σακιδίου συναρτήσεις σύνοψης βασισμένες σε αλγεβρικούς πίνακες Ένα γενικό μοντέλο που χρησιμοποιείται για την κατασκευή συναρτήσεων σύνοψης (ειδικότερα αυτών που δεν χρησιμοποιούν κλειδί) είναι αυτό της επαναληπτικής διαδικασίας που αναλύεται παρακάτω. Η κύρια ιδέα αυτού του μοντέλου είναι η χρήση μιας συνάρτησης συμπίεσης με επαναληπτικό τρόπο σε ένα αυθαίρετου μήκους κείμενο παράγοντας μια σταθερού μήκος έξοδο (σύνοψη) αυτού. 43

44 Εικόνα 2.1: Γενικό μοντέλο κατασκευής συνάρτησης σύνοψης. Η είσοδος αρχικά πρέπει να χωριστεί σε τμήματα (blocks) σταθερού μήκους k. Για το λόγο αυτό υπάρχει μία προ επεξεργασία, κατά την οποία προστίθεται ένας αριθμός bit (padding) στην είσοδο ώστε το μήκος της να αποτελεί πολλαπλάσιο του k. Ακόμη, αν είναι ορισμένο, προστίθεται και ένα block με το αρχικό μήκος της εισόδου. Στη συνέχεια το κάθε τμήμα εισάγεται σε μία συνάρτηση συμπίεσης (compression function), που έχει καθορισμένο μήκος εξόδου. Στη συνάρτηση συμπίεσης εισάγουμε επίσης και το αποτέλεσμα της προηγούμενης επανάληψης ή μία καθορισμένη αρχική τιμή (αν πρόκειται για την πρώτη επανάληψη). Το τελικό αποτέλεσμα όλων των επαναλήψεων είναι και η επιθυμητή έξοδός μας η οποία εάν είναι απαραίτητο μπορεί να εισαχθεί σε μία άλλη συνάρτηση αντιστοίχισης (mapping) που μας δίνει την τελική έξοδο. 44

45 2.1.1 Το μοντέλο Merkle-Damgard (MD) Μία υλοποίηση του γενικού αυτού μοντέλου, είναι η κατασκευή των Merkle-Damgard. Η εν λόγω υλοποίηση παρουσιάστηκε ανεξάρτητα στο Crypto το 1989, από τους Ivan Damgard και Ralph Merkle. Ο στόχος ήταν η κατασκευή μίας collision resistant κρυπτογραφικής συνάρτησης σύνοψης χρησιμοποιώντας με επαναληπτικό τρόπο μία προκαθορισμένου μήκους collision resistant συνάρτηση συμπίεσης [7] [8] [10]. Η συνάρτηση σύνοψης είναι collision resistant αν έχει προκαθορισμένες αρχικές τιμές, αν η διαδικασία padding περιέχει το μήκος του μηνύματος, και αν η συνάρτηση συμπίεσης είναι επίσης collision resistant. Η παραπάνω πρόταση αποδεικνύεται βάση του σκεπτικού ότι μία σύγκρουση για τη συνάρτηση σύνοψης θα σήμαινε και μία σύγκρουση για τη συνάρτηση συμπίεσης σε κάποιο στάδιο της επανάληψης. Οι προκαθορισμένες αρχικές τιμές βοηθούν σε περιπτώσεις όπου γίνεται προσπάθεια δημιουργίας σύγκρουσης με τον εξής τρόπο. Παράγεται η σύνοψη Η 2 ενός τμήματος μηνύματος Χ 0 και επανεισάγεται σαν αρχική τιμή για την παραγωγή της σύνοψης ενός block Χ 1. Με αυτόν το τρόπο τα μηνύματα Χ 0 Χ 1 και Χ 1 (με IV = Η 2 ) έχουν την ίδια σύνοψη. Η εισαγωγή του μήκους του μηνύματος κατά τη διάρκεια του padding απαγορεύει ένα μήνυμα να μετατρέπεται σε ουρά κάποιου άλλου. Έτσι αποφεύγεται πλήθος επιθέσεων όπως fixed points attacks (βλέπε κεφάλαιο 3). Εικόνα 2.2: Το μοντέλο Merkle-Damgard Ένα παράδειγμα του αλγόριθμου όπως προτάθηκε από τον Merkle έχει ως εξής: ΕΙΣΟΔΟΣ: συνάρτηση συμπίεσης f που είναι collision resistant. ΕΞΟΔΟΣ: συνάρτηση σύνοψης (δίχως κλειδί) h που είναι collision resistant. 45

46 1. Υποθέτουμε ότι η συνάρτηση f αντιστοιχεί (n + r)-bit εισόδους σε n-bit εξόδους (για αποφυγή κάθε ασάφειας θεωρούμε n =128 και r = 512 bit αντίστοιχα). Κατασκευάζουμε μία συνάρτηση hash h από την f, που παραγάγει n-bit τιμές hash, όπως περιγράφεται παρακάτω. 2. Χωρίζουμε μία είσοδο x μήκους b σε τμήματα x 1,x 2,x 3,...,x t μήκους r, προστίθοντας στο τελευταίο block x t 0-bit αν αυτό είναι απαραίτητο (ώστε να έχει μήκος r). 3. Ορίζουμε ένα επιπλέον τμήμα x t+1, (ως τμήμα μήκους) ως δεξιά στοίχισης δυαδική αναπαράσταση του b (υποθέτουμε ότι b < 2 r ). 4. Υποθέτοντας ότι το 0 j αντιπροσωπεύει μία μηδενική σειρά bit μήκους j, ορίζουμε τη σύνοψη μήκους n-bit της εισόδου x ως h(x) = H t+1 = f(h t x t+1 ) που υπολογίζεται από: H 0 = 0 n ; H i = f(h i 1 x i ); 1 i t + 1. Μία βελτίωση βρίσκεται στο βήμα 2 (padding step) του παραπάνω αλγορίθμου όπου γίνεται προσθήκη του bit 1 ακολουθούμενο από bit 0 (έτσι ώστε να είναι ξανά πολλαπλάσιο του blocksize που θέλουμε), καθιστώντας σαφές με αυτό το τρόπο το τέλος της εισόδου και την αρχή συμπληρώματος που έχει προστεθεί. Σε αντίθεση με το βήμα 2 αν το αρχικό μήνυμα που έχουμε είναι ήδη πολλαπλάσιο του blocksize τότε έχουμε τη δημιουργία ενός επιπλέον τμήματος. Να σημειωθεί ότι το βήμα 3 του παραπάνω αλγορίθμου καλείται συνήθως MD-strengthening και χρησιμοποιείται για να αποτρέπονται collisions μεταξύ μηνυμάτων διαφορετικού μήκους. Ταυτόχρονα μας εξασφαλίζεται το γεγονός ότι η συνάρτηση H είναι collision resistant αφού ένα collision στην Η υπονοεί ένα collision στην f (σε κάποιο στάδιο της). Εικόνα 2.3: Το μοντέλο Merkle-Damgard με χρήση MD strengthening 46

47 Στη πράξη, παρόλο που οι περισσότερες συναρτήσεις κατακερματισμού ακολουθούν το μοντέλο Merkle Damgard πρέπει να σημειωθούν κάποιες διαφορές. Εξαιρουμένων των περιπτώσεων που εφαρμόζουν ένα παραμετροποιημένο MD σχήμα, αυτές που το ακολουθούν συνήθως διαφέρουν στον τρόπο προεπεξεργασίας του μηνύματος και των τμημάτων. Μία ουσιαστική διαφορά έγκειται στο ότι το μήνυμα πριν υποστεί τους κρυπτογραφικούς μετασχηματισμούς περνάει από ένα στάδιο επιμήκυνσης (message expansion) έτσι ώστε αυτοί να είναι εφικτοί. Τέτοια παραδείγματα θα παρουσιαστούν και στη συνέχεια στους διάφορους αλγορίθμους που θα περιγράψουμε (MD family hashes). Επίσης σημαντική διαφοροποίηση συναντάται και στο διαφορετικό τρόπο που γίνεται το padding του μηνύματος. Μια τέτοια υποπερίπτωση είναι στο τμήμα μήκους του μηνύματος όπου σύμφωνα με το MD μοντέλο τίθεται ένας περιορισμός 2 r (όπου r, το μήκος του τμήματος) ενώ οι πιο σύγχρονες συναρτήσεις επιτρέπουν την επεξεργασία μεγαλύτερου μεγέθους κείμενο, παρόλο που τα τμήματα που χωρίζεται το μήνυμα επιτρέπουν μικρότερο μήκος. Για παράδειγμα, οι MD5, SHA-1, SHA-256, θέτουν ένα άνω φράγμα της τάξης του bit στο μήκος του μηνύματος εισόδου, ενώ οι SHA-384, SHA bit. Μία ακόμη εκτροπή από το παραδοσιακό μοντέλο είναι η χρήση συγκεκριμένων μη μηδενικών αρχικών τιμών (initial values) Συναρτήσεις συμπίεσης Οι κατασκευές συναρτήσεων σύνοψης δίχως τη χρήση κλειδιού συνήθως ακολουθούν το μοντέλο Merkle-Damgard. Έτσι μπορούν να κατηγοριοποιηθούν με βάση τη φύση της συνάρτησης συμπίεσης που χρησιμοποιούν. Με βάση αυτό το κριτήριο προκύπτουν οι εξής τρεις κατηγορίες: συναρτήσεις σύνοψης βασισμένες σε κρυπτογραφικούς αλγόριθμους τμήματος (block cipher based hash functions) εξειδικευμένες συναρτήσεις σύνοψης (customized/dedicated hash functions) συναρτήσεις σύνοψης βασισμένες στην αριθμητική υπολοίπου (modular arithmetic based hash functions) 47

48 Συναρτήσεις σύνοψης βασισμένες σε κρυπτογραφικούς αλγόριθμους τμήματος Σε αυτή την περίπτωση ως συνάρτηση συμπίεσης χρησιμοποιούμε έναν ήδη υπάρχων block cipher αλγόριθμο (όπως για παράδειγμα ο DES ή ο AES) [9]. Συνήθως οι συναρτήσεις σύνοψης βασισμένες σε block ciphers είναι λιγότερο αποδοτικές από τις άλλες προτάσεις ωστόσο σε αρκετές περιπτώσεις η κατασκευή τους πιο απλή και ταχύτερη. Ακόμη πολλοί από τους block cipher αλγόριθμους θεωρούνται ιδιαίτερα έμπιστοι ως προς τις ιδιότητές τους σε ότι αφορά την ασφάλεια (κυρίως λόγω του γεγονότος ότι έχουν μελετηθεί εκτενώς από τη διεθνή κοινότητα). Η κατασκευή της συνάρτησης κατακερματισμού μπορεί να γίνει με τις παρακάτω μεθόδους: Davies-Meyer Matyas-Meyer-Oseas Miyaguchi-Preneel MDC-2 MDC-4 Davies-Meyer Εικόνα 2.4: Η μέθοδος Davies- Meyer. 48

49 Σε αυτή τη μεθοδολογία σαν συνάρτηση συμπίεσης χρησιμοποιούμε ένα block cipher Ε που δέχεται ως κλειδί το block του μηνύματος m i και σαν μήνυμα το H i-1 που είναι το αποτέλεσμα της προηγούμενης επανάληψης ή ένα H o αν είναι η πρώτη επανάληψη [7] [10]. Στην έξοδο που προκύπτει, γίνεται μία λογική πράξη XOR με την H i-1. Δηλαδή: H i = E mi (H i-1 ) XOR H i-1 Ποικίλες παραλλαγές αυτής της κατασκευής έχουν πραγματοποιηθεί αντικαθιστώντας τη λογική πράξη XOR με διάφορες άλλες πράξεις. Matyas-Meyer-Oseas Εικόνα 2.5: Η μέθοδος Matyas-Meyer-Oseas. Η Matyas-Meyer-Oseas κατασκευή είναι αντίθετη από τη Davies-Meyer [7] [10]. Σε αυτή τη μεθοδολογία σαν συνάρτηση συμπίεσης χρησιμοποιούμε ένα block cipher Ε που δέχεται ως μήνυμα ένα block της εισόδου m i και σαν κλειδί το το H i-1 που είναι το αποτέλεσμα της προηγούμενης επανάληψης ή ένα H o αν είναι η πρώτη επανάληψη το οποίο αν χρειάζεται περνάει από μια συνάρτηση αντιστοίχισης (mapping) η οποία μας δίνει ένα συμβατό κλειδί για τον Ε. Στην έξοδο που προκύπτει, γίνεται μία πράξη XOR με το m i. Δηλαδή: H i = E g (Hi-1) (m i ) XOR m i 49

50 Miyaguchi-Preneel Εικόνα 2.6: Η μέθοδος Miyaguchi-Preneel. Η μεθοδολογία αυτή είναι ουσιαστικά μία προέκταση αυτής των Matyas-Meyer-Oseas, με το επιπρόσθετο στοιχείο ότι στην έξοδο έχουμε μία παραπάνω XOR με το H i-1 [7] [10]. Δηλαδή: H i = E g (Hi-1) (m i ) XOR H i-1 XOR m i Ένα παράδειγμα χρήσης της Miyaguchi-Preneel μεθοδολογίας με χρήση MD-strengthening είναι η συνάρτηση σύνοψης WHIRPOOL, που παρουσίαζεται στην παράγραφο MDC-2 Με αυτή τη μεθοδολογία παράγουμε διπλού μήκους τελικό hash (σε σχέση με τη χρήση ενός block cipher) κάνοντας χρήση δύο φορές του block cipher για κάθε τμήμα του μηνύματος [7]. Ουσιαστικά θα μπορούσαμε να πούμε ότι είναι μία επέκταση του μοντέλου Matyas-Meyer- Oseas, όπου στον εκάστοτε block cipher εισάγουμε τον H i-1 όπως έχει οριστεί παραπάνω και το ~H i-1 (που είναι το H i-1 με ανάστροφη σειρά των bit). Αυτές οι δύο είσοδοι μετασχηματίζονται αντιστοίχως από συναρτήσεις G και ~G έτσι ώστε να είναι κατάλληλες ως κλειδί στον Ε και διαφορετικές μεταξύ τους. Τέλος τα n/2 δεξιά bit των αντίστοιχων εξόδων κάνουν swap μεταξύ τους. Πρέπει να επισημανθεί ότι οι λεπτομέρειες αυτής της κατασκευής, για παράδειγμα οι μετασχηματισμοί των συναρτήσεων G εξαρτώνται από τον block cipher που χρησιμοποιείται. Ακολουθεί μία γραφική αναπαράσταση της παραπάνω διαδικασίας. 50

51 Εικόνα 2.7: Η μέθοδος MDC-2 MDC-4 Η μεθοδολογία αυτή ακολουθεί παρόμοιο σκεπτικό με την MDC-2 με τη διαφορά ότι γίνεται χρήση τέσσερις φόρες του block cipher αντί για δύο [7]. Αυτό γίνεται με τη χρήση δύο MDC-2 σχημάτων με εισόδους όπως φαίνονται στο σχήμα, κατά ανάλογο τρόπο (Τα G, ~G είναι ορισμένα κατά αναλογία με τα H, ~H). Εικόνα 2.8: Η μέθοδος MDC-4. 51

52 Εξειδικευμένες συναρτήσεις συμπίεσης Σε αυτή την κατηγορία θα αναφερθούμε σε αλγόριθμους οι οποίοι είναι ειδικά σχεδιασμένοι για hash functions. Από τους πρώτους αξιόλογους αλγόριθμους αυτής της κατηγορίας είναι ο MD4 ο οποίος προτάθηκε το 1990 από τον R. Rivest. Ο σχεδιασμός του ήταν ιδιαίτερα αποδοτικός σε σχέση με την 32-bit αρχιτεκτονική των υπολογιστών. Ένα παράδειγμα της υπεροχής του ως προς την απόδοση είναι το γεγονός ότι είναι 10 φορές γρηγορότερος από τον DES. Ωστόσο, γρήγορα επισημάνθηκαν αδυναμίες που τον καθιστούσαν μη ασφαλή ως συνάρτηση σύνοψης. Παρόλα αυτά εμφανίστηκαν διάφορες παραλλαγές του, ο MD5, ο HAVAL, ο RIPEMD και ο SHA. Η χρονική πορεία των παραλλαγών του MD4 φαίνονται στο παρακάτω σχήμα: Εικόνα 2.9: Ο MD4 και οι παραλλαγές του χρονικά. Οι παραπάνω συναρτήσεις κατακερματισμού ακολουθούν κάποιες κοινές σχεδιαστικές προδιαγραφές. Οι συναρτήσεις αυτές χρησιμοποιούν την επαναληπτική διαδικασία μιας συνάρτησης συμπίεσης λαμβάνοντας μία μεταβλητή αλυσίδας και ένα τμήμα κειμένου ως εισόδους, παράγοντας μία νέα τιμή ως έξοδο. Ακόμη ορίζεται μία αρχική τιμή για τη μεταβλητή αλυσίδας και το μήνυμα περνάει κάποια στάδια προεπεξεργασίας (padding κα.). Πιο συγκεκριμένα, το μήκος της μεταβλητής αλυσίδας και της εξόδου της σύνοψης είναι ίσα (δηλαδή έχουν ίδιο αριθμό bit), και η τελική τιμή της μεταβλητής παρέχεται ως έξοδος της συνάρτησης δηλαδή δεν υπάρχει κάποιο επιπρόσθετη μετατροπή. Επίσης όλα τα δεδομένα (και τα τμήματα του μηνύματος) χωρίζονται σε λέξεις (συγκεκριμένου μήκους -πχ. 32-bit) που αποτελούν το δομικό συστατικό όλων των μετασχηματισμών που γίνονται. 52

53 Οι συναρτήσεις σύνοψης έχουν ακολουθιακό χαρακτήρα, υπό την έννοια ότι αποτελούνται από ένα μεγάλο πλήθος βημάτων που εκτελούνται ακολουθιακά (το ένα μετά το άλλο). Κάποιες από αυτές τις συναρτήσεις εκτελούν και επέκταση αρχικού μηνύματος, μια διαδικασία όπου κάθε block του μηνύματος επιμηκύνεται με πρόσθετες λέξεις ώστε να είναι δυνατή η επεξεργασία τους από τη συνάρτηση συμπίεσης. Τέλος πρέπει να σημειωθεί ότι όλες οι απεικονίσεις και μετατροπές των δεδομένων γίνονται με βάση τη σειρά παράταξης των bit κάθε λέξης (little endianess και big endianess) Παρακάτω παρατηρούμε ποικίλα βασικά στοιχεία γνωστών αλγορίθμων: Πίνακας 2.1: Βασικά στοιχεία γνωστών αλγορίθμων. Η παράθεση μερικών από τους σημαντικότερους αλγόριθμους που χρησιμοποιούνται σήμερα, γίνεται στην παράγραφο

54 2.1.3 Συναρτήσεις σύνοψης βασισμένες στην αριθμητική υπολοίπου (modular arithmetic based hash functions) Η βασική ιδέα πίσω από τις Συναρτήσεις σύνοψης βασισμένες στην αριθμητική υπολοίπου είναι η κατασκευή ενός επαναληπτικού μοντέλου χρησιμοποιώντας Mod N αριθμητική σαν βάση της συνάρτησης συμπίεσης [7]. Δυο βασικοί παράγοντες που κάνουν ελκυστική αυτή την ιδέα είναι η επαναχρησιμοποίηση λογισμικού για αριθμητική υπολοίπου (όπως αλγόριθμοι που χρησιμοποιούνται στη κρυπτογραφία δημοσίου κλειδιού σαν τον RSA) και η προοπτική εκπλήρωσης των απαιτήσεων ασφαλείας. Σημαντικά μειονεκτήματα ωστόσο είναι η ταχύτητα των αλγόριθμων σε σχέση με τις dedicated συναρτήσεις και οι ατελείς αλγόριθμοι που έχουν προταθεί μέχρι σήμερα Ενισχύοντας το MD μοντέλο Μετά τις τελευταίες επιθέσεις που δέχθηκαν η πλειοψηφία των ευρέως χρησιμοποιούμενων αλγορίθμων σύνοψης γίνεται κατανοητές οι αδυναμίες τόσο των αλγορίθμων αυτών όσο και της γενικότερης λογικής σχεδιασμού τους. Ειδικότερα το MD μοντέλο δεν έχει καταφέρει να παράσχει επαρκή αντίσταση σε επιθέσεις τύπου collision, με αποτέλεσμα να έχουν γίνει διάφορες προτάσεις για τη βελτίωσή του. Αρκετές από αυτές τις προτάσεις αυξάνουν το επίπεδο της ασφάλειας κυρίως με αύξηση της πολυπλοκότητας του υπάρχοντος MD μοντέλου Πρόσθεση συνάρτησης μορφοποίησης εξόδου g Παρόλο που στο MD μοντέλο ορίζεται η συνάρτηση μορφοποίησης g μετά την επαναληπτική διαδικασία εδώ προτείνεται η ουσιαστική της χρήση με κάποιες επιπλέον παραμέτρους [10] [17] [18]. Αναλυτικότερα η g δέχεται σαν εισόδους την έξοδο από την επαναληπτική διαδικασία καθώς και το μήκος του αρχικού μηνύματος ενώ προτείνεται και η χρήση salt (πρόσθεση ενός τυχαίου επιπλέον μηνύματος για την ενίσχυση της πολυπλοκότητας του μηνύματος και συνάμα της όλης κρυπτογραφικής διαδικασίας). Εικόνα 2.10: Η κατασκευή με πρόσθεση συνάρτησης μορφοποίησης εξόδου. 54

55 Haifa Μια απλή βελτίωση του MD σχεδιασμού, γίνεται με την προσθήκη salt και τη χρήση ενός μετρητή των bit που έχουν επεξεργαστεί μέχρι την τρέχουσα στιγμή (για αποτελεσματική αντίσταση σε long message, length extension και fixed point επιθέσεις) [21]. Το salt και ο μετρητής μπορούν να προστεθούν με διάφορους τρόπους στη σχεδίαση, ακόμα και με απλές συνενώσεις μηνυμάτων (concat) Ένα πλήρες γενικευμένο μοντέλο που βασίζεται στο σκεπτικό χρήσης salting και counter είναι το ΗΑΙFA. Αυτή η σχεδίαση εκτός από κάποιες βελτιώσεις που προτείνει στο padding του μηνύματος, ορίζει την ανανέωση της μεταβλητής αλυσίδας ως εξής: h i = C(h i 1,M i,#bits, salt) Όπως φαίνεται η συνάρτηση συμπίεσης, εκτός από το τμήμα του μηνύματος και την προηγούμενη κατάσταση της εσωτερικής μεταβλητής αλυσίδας δέχεται σαν επιπλέον είσοδο τoν αριθμό των bit που έχουν επεξεργαστεί μέχρι τώρα, και ένα τυχαίο ή προεπιλεγμένο salt Chop-MD Το Chop-MD μοντέλο είναι ουσιαστικά όμοιο με το κλασικό MD, με τις εξής διαφορές. Χρησιμοποιεί MD-strengthening και η εσωτερική μεταβλητή κατάστασης (μεταβλητές αλυσίδας) έχει μεγαλύτερο μέγεθος από την τελική έξοδο (συνήθως διπλάσιο). Για να παραχθεί η τελική έξοδος, υπάρχει μία συνάρτηση περικοπής (chop ή truncation function). Εικόνα 2.11: H Chop-MD κατασκευή. 55

56 Wide pipe Το μοντέλο αυτό παρουσιάζει αρκετές ομοιότητες με το chop, κυρίως στο ότι η εσωτερική μεταβλητή κατάστασης (μεταβλητές αλυσίδας) έχει μεγαλύτερο μέγεθος από την τελική έξοδο (συνήθως διπλάσιο) [19]. Ωστόσο διαφέρει ο τρόπος με τον οποίο αυτό επιτυγχάνεται. Χρησιμοποιούνται δύο συναρτήσεις συμπίεσης, η C' επεξεργάζεται τις μεγάλου μεγέθους μεταβλητές κατάστασης ενώ η C'' είναι μία συνάρτηση συμπίεσης (και όχι απλής περικοπής) που αντιστοιχίζει τη μεταβλητή εσωτερικής κατάστασης σε μία μικρότερου μήκους έξοδο. Σημαντικό στοιχείο αυτής της πρότασης είναι ότι παρέχει επιπλέον προστασία χωρίς να προϋποθέτει μία τέλεια συνάρτηση συμπίεσης. Εικόνα 2.12: H Wide pipe κατασκευή Επαναληπτική διαδικασία με χρήση περιοδικής αρχικοποίησης (envelope MD) Η πρόταση αυτή είναι παρόμοια με το MD σχήμα, με τη διαφορά ότι σε κάποιο ορισμένο i βήμα της διαδικασίας έχουμε επαναρχικοποίση. Δηλαδή όπως παρατηρούμε και στο σχήμα στην τέταρτη επανάληψη η έξοδος της διαδικασίας H 3 ενώνεται με το τρέχον block του μηνύματος x 4 και εισάγονται στη συνάρτηση συμπίεσης μαζί με μία δεύτερη αρχική τιμή (initial value) [10] [17] [18]. Εικόνα 2.13: Η κατασκευή EMD. 56

57 2.1.5 Εναλλακτικά μοντέλα σχεδίασης Δενδροειδής Μορφή Έχει προταθεί ήδη από το 1989, αν και δεν χρησιμοποιείται [8] [10] [17] [18]. Όπως φαίνεται και στο σχήμα το αρχικό μήνυμα χωρίζεται σε μικρότερα (με το επιθυμητό μήκος) και ανά δύο εισάγονται στη συνάρτηση συμπίεσης, παράλληλα. Η όλη διαδικασία συνεχίζεται με ανάλογο τρόπο, με τις εξόδους των συναρτήσεων συμπίεσης μέχρι να παραχθεί το τελικό μήνυμα. Χρήση πολλαπλών συναρτήσεων συμπίεσης σειριακά Σε αντίθεση με το MD μοντέλο, χρησιμοποιούμε παραπάνω από μία συνάρτηση συμπίεσης, όπου η μία διαδέχεται την άλλη. Για παράδειγμα, στο παρακάτω σχήμα το πρώτο block του μηνύματος εισέρχεται στην f 1. Μία πρόσφατη εφαρμογή της δενδροειδούς μορφής είναι ο αλγόριθμος SKEIN όταν χρησιμοποιείται το ανάλογο mode. Εικόνα 2.14: Η δενδροειδής μορφή. 57

58 Χρήση πολλαπλών συναρτήσεων συμπίεσης σειριακά Σε αντίθεση με το MD μοντέλο, χρησιμοποιούμε παραπάνω από μία συνάρτηση συμπίεσης, όπου η μία διαδέχεται την άλλη. Για παράδειγμα, στο παρακάτω σχήμα το πρώτο block του μηνύματος εισέρχεται στην f1 και η έξοδος εισέρχεται με τη σειρά της μαζί με το δεύτερο block σε μία f2 (και όχι σε μία f1 όπως θα είχαμε στο κλασικό μοντέλο του MD) [10] [17] [18]. Εικόνα 2.15: Πολλαπλές συναρτήσεις συμπίεσης σειριακά Παράλληλη επαναληπτική διαδικασία με χρήση πολλαπλών συναρτήσεων συμπίεσης & συνάρτηση μορφοποίησης Παράλληλη επαναληπτική διαδικασία με χρήση πολλαπλών συναρτήσεων συμπίεσης Σε αυτό το μοντέλο όπως φαίνεται και στο σχήμα χρησιμοποιούνται δύο (ή περισσότερες) συναρτήσεις συμπίεσης (f1 f2...) μαζί με τις αντίστοιχες συμπληρωματικές ως προς κάποια bit συναρτήσεις τους (ορισμένες παρόμοια με της συναρτήσεις στο MDC-2, MDC-4 μοντέλο) [10] [17] [18]. Σε κάθε βήμα της διαδικασίας έχουμε την είσοδο του block xi του μηνύματος σε μια fi συνάρτηση συμπίεσης καθώς και την έξοδο της προηγούμενης επανάληψης Η i-1 (ή μια αρχική τιμή). Παράλληλα το ίδιο block μηνύματος εισάγεται και στη συμπληρωματική f'i όπως επίσης και το συμπλήρωμα Η i-1. Για να επιτευχθεί μία χρονική παραλληλία οι δύο έξοδοι κάθε μηνύματος εισάγονται σε ένα block m και συνεχίζεται το επόμενο βήμα μέχρι το τέλος της επαναληπτικής διαδικασίας. 58

59 Εικόνα 2.16: Κατασκευή με επαναληπτική διαδικασία Παράλληλη επαναληπτική διαδικασία με χρήση πολλαπλών συναρτήσεων συμπίεσης και συνάρτηση μορφοποίησης Το μοντέλο αυτό είναι η ίδια κατασκευή με την παραπάνω με μόνη εξαίρεση τη χρήση μίας συνάρτησης μορφοποίησης g (όπως έχει οριστεί σε προηγούμενες κατασκευές) [10] [17] [18]. Εικόνα 2.17: Κατασκευή με επαναληπτική διαδικασία & πολλαπλές συναρτήσεις. 59

60 C/3C+ hash construction α. 3C hash construction Η δομή της 3C κατασκευής αποτελείται από δύο διαφορετικές αλυσίδες, την αλυσίδα παράθεσης (cascade) και την αλυσίδα συσσώρευσης (accumulation) [11]. Η πρώτη ουσιαστικά αποτελεί το MD μοντέλο ενώ η δεύτερη μία αλυσίδα λογικών πράξεων XOR. Στη παραλλαγή αυτή του MD μοντέλου, το αποτέλεσμα κάθε επανάληψης εισάγεται στην αλυσίδα συσσώρευσης όπου λαμβάνει χώρα μία πράξη XOR ανάμεσα σε αυτήν και στα αποτελέσματα της κάθε επανάληψης. Το αποτέλεσμα Z αυτής της διαδικασίας αφού περάσει από μια διαδικασία padding για να είναι συμβατή με τη συνάρτηση g εισέρχεται πλέον ως συμπλήρωμα Ζ σε μία συνάρτηση συμπίεσης g μαζί με την τελική έξοδο της MD επανάληψης. Εικόνα 2.18: H κατασκευή 3C. 60

61 β. 3C+ hash construction H 3C+ αποτελεί μία παραλλαγή της 3C κατασκευής. Όπως παρατηρείται και στο ακόλουθο σχήμα η διαφορά έγκειται στην πρόσθεση της τελικής αλυσίδας (final chain). Η τελική αλυσίδα υπολογίζει το αποτέλεσμα της πράξης XOR ανάμεσα στο αποτέλεσμα της κάθε επαναληπτικής διαδικασίας μετά το δεύτερο τμήμα. Αντί για απλό padding η 3C+ πραγματοποιεί πρώτα μία συνένωση των δεδομένων της αλυσίδας συσσώρευσης και της τελικής αλυσίδας και ύστερα κάνει το padding παράγοντας την έξοδο Ζ'. Εικόνα 2.19: H κατασκευή 3C Zipper hash construction Σε αυτή την κατασκευή, γίνεται χρήση δύο διαφορετικών συναρτήσεων συμπίεσης. Υλοποιείται μία επαναληπτική διαδικασία βάση του MD constructrion, με συνάρτηση συμπίεσης f [15]. Έπειτα, η έξοδος της εισάγεται σε μία δεύτερη επαναληπτική διαδικασία με συνάρτηση συμπίεσης f' με τη διαφορά ότι σε αυτή την περίπτωση τα block του μηνύματος εισάγονται με την αντίστροφη σειρά και ότι η αρχικοποίηση του IV της γίνεται με την έξοδο της προηγούμενης επαναληπτικής διαδικασίας. Η τελική έξοδος μπορεί να παραμετροποιηθεί από μία συνάρτηση μορφοποίησης g. Παρακάτω παρουσιάζονται δύο διαφορετικές προσεγγίσεις της Zipper που διαφέρουν ως προς τη σειρά εισόδου των τμημάτων του μηνύματος στη δεύτερη συνάρτηση συμπίεσης. 61

62 Εικόνα : H κατασκευή Zipper. Εικόνα : H κατασκευή Zipper Sponge H Sponge αποτελεί μία σχετικά νέα πρόταση που λειτουργεί ως ένα μοντέλο που προσπαθεί να προσομοιώσει τη ρεαλιστική συμπεριφορά μίας επαναληπτικής συνάρτησης σύνοψης. Η στρατηγική πίσω από αυτή την ιδέα βασίζεται στην αύξηση του μεγέθους της εσωτερικής κατάστασης κατά την πορεία της διαδικασίας. 62

63 Η κατασκευή αυτή βασίζεται σε μια επαναληπτική συνάρτηση μετασχηματισμού (transformation) ή μεταβολής (permutation) f. Έχει μία τελική κατάσταση και χωρίζεται σε δύο φάσεις, τη φάση απορρόφησης (absorbing phase), και τη φάση συμπίεσης (squeezing phase). Αρχικά, στη φάση απορρόφησης τα τμήματα του μηνύματος εισέρχονται στη μεταβλητή κατάστασης περνώντας από λογικές πράξεις XOR που παρεμβάλλονται μεταξύ των συναρτήσεων f. Στη φάση συμπίεσης, τα τμήματα τις εξόδου, μπορούν να εξαχθούν από τη μεταβλητή κατάστασης με ενδιάμεσες εφαρμογές τις συνάρτησης f. Εικόνα 2.21: H sponge κατασκευή Random Oracle Xor (ROX) Η κατασκευή ROX αποτελεί μία παραλλαγή του MD μοντέλου με κάποια επιπρόσθετα στοιχεία [20]. Η κάθε μεταβλητή κατάσταση πριν εισέλθει στη συνάρτηση συμπίεσης περνάει μέσα από μία τυχαία XOR μάσκα, ενώ επίσης το μήνυμα δέχεται ένα τυχαίο padding. Εικόνα 2.22: H ROX κατασκευή. 63

64 Υβριδικές μορφές Οι κατασκευές που παρουσιάστηκαν παραπάνω, αποτελούν ενδεικτικές προτάσεις που επιδέχονται ποικίλες παραμετροποιήσεις. Επίσης μπορούν να δημιουργηθούν και υβριδικές κατασκευές. Για παράδειγμα η χρήση της συνάρτησης μορφοποίησης g στο τέλος της κάθε κατασκευής. 64

65 2.2 Σύγχρονες Συναρτήσεις Σύνοψης MD4 Ο MD4 αλγόριθμος είναι μία συνάρτηση σύνοψης με έξοδο 128 bit που προτάθηκε το 1990 από τον R. Rivest και μπορούμε να τον αναλύσουμε σε τρεις γύρους των 16 βημάτων [1] [7]. Εικόνα 2.23: Η συνάρτηση σύνοψης MD4. Πρακτικά ο αλγόριθμος έχει ως εξής: ΕΙΣΟΔΟΣ: σειρά bit x αυθαίρετου μεγέθους b 0. ΕΞΟΔΟΣ: 128-bit σύνοψη του x. 1. Ορισμός σταθερών. Ορίζουμε τέσσερις 32-bit αρχικές τιμές αλυσίδας: h 1 = 0x , h 2 = 0xefcdab89, h 3 = 0x98badcfe, h 4 = 0x Ορίζουμε σταθερό πίνακα 32 bit: y[j] = 0, 0 j 15; y[j] = 0x5a827999, 16 j 31; (τετραγωνική ρίζα του 2) y[j] = 0x6ed9eba1, 32 j 47; (τετραγωνική ρίζα του 3) 65

66 Ορίζουμε σειρά προσπέλασης των λέξεων της πηγής (κάθε λίστα περιέχει από το 0 μέχρι το 15): z[0::15] = [0; 1; 2; 3; 4; 5; 6; 7; 8; 9; 10; 11; 12; 13; 14; 15], z[16::31] = [0; 4; 8; 12; 1; 5; 9; 13; 2; 6; 10; 14; 3; 7; 11; 15], z[32::47] = [0; 8; 4; 12; 2; 10; 6; 14; 1; 9; 5; 13; 3; 11; 7; 15]. Τέλος ορίζουμε τον αριθμό της θέσης του bit για αριστερές μεταθέσεις: s[0::15] = [3; 7; 11; 19; 3; 7; 11; 19; 3; 7; 11; 19; 3; 7; 11; 19], s[16::31] = [3; 5; 9; 13; 3; 5; 9; 13; 3; 5; 9; 13; 3; 5; 9; 13], s[32::47] = [3; 9; 11; 15; 3; 9; 11; 15; 3; 9; 11; 15; 3; 9; 11; 15]. 2. Προεπεξεργασία. Επεξεργαζόμαστε την είσοδο x έτσι ώστε το μήκος της να είναι πολλαπλάσιο του 512, ως εξής. Προσθέτουμε το bit 1, και μετά προσθέτουμε r 1 ( 0) bit 0 για το μικρότερο r τέτοιο ώστε να είναι 64 bit μικρότερο από ένα πολλαπλάσιο του 512. Τέλος προσθέτουμε την 64-bit αναπαράσταση του b mod 2 64 ως δύο 32-bit λέξεις με την least significant λέξη πρώτη. Ορίζουμε m τον αριθμό των τμημάτων μήκους 512-bit της παραπάνω συμβολοσειράς (b+r+64=512m=32*16m). Η μετασχηματισμένη είσοδος αποτελείται από 16m λέξεις των 32-bit : x 0,x 1,...,x 16m 1. Αρχικοποιούμε (H 1,H 2,H 3,H 4 ) = (h 1,h 2,h 3,h 4 ). 3. Επεξεργασία. Για κάθε i από το 0 μέχρι το m 1, αντιγράφουμε το ι-στό τμήμα δεκαέξι λέξεων των 32-bit σε ένα προσωρινό πίνακα: X[j] = x 16i+j,0 j 15, έπειτα επεξεργαζόμαστε τα δεδομένα σε τρεις γύρους 16 βημάτων προτού αναβαθμίσουμε τις μεταβλητές αλυσίδας: αρχικοποιούμε τις μεταβλητές (A,B,C,D) (H 1,H 2,H 3,H 4 ). (Γύρος 1) Για j από 0 μέχρι 15 κάνε τα ακόλουθα: t (A + f(b,c,d) + X[z[j]] + y[j]), (A,B,C,D) (D, t s[j],b,c). (Γύρος 2) Για j από 16 μέχρι 31 κάνε τα ακόλουθα: t (A + g(b,c,d) + X[z[j]] + y[j]), (A,B,C,D) (D, t s[j],b,c). (Γύρος 3) Για j από 32 μέχρι 47 κάνε τα ακόλουθα: t (A + h(b,c,d) + X[z[j]] + y[j]), (A,B,C,D) (D, t s[j],b,c). (ανανέωση μεταβλητών αλυσίδας) (H 1,H 2,H 3,H 4 ) (H 1 +A,H 2 +B,H 3 +C,H 4 +D). 66

67 4. Ολοκλήρωση. Η τελική τιμή της σύνοψης είναι η συνένωση: H 1 H 2 H 3 H 4 Στον παρακάτω πίνακα παρουσιάζονται οι συμβολισμοί που χρησιμοποιεί ο MD4. Πίνακας 2.2: Συμβολισμοί που χρησιμοποιεί ο MD4. 67

68 2.2.2 MD5 Ο MD5 αλγόριθμος είναι μία ενισχυμένη μορφή του MD4 που προτάθηκε το 1991 επίσης από τον R. Rivest [1] [7]. Η συνάρτηση σύνοψης έχει έξοδο 128 bit και μπορούμε να την αναλύσουμε σε τέσσερις γύρους των 16 βημάτων. Εικόνα 2.24: Η συνάρτηση σύνοψης MD5. Πρακτικά ο αλγόριθμος έχει ως εξής: ΕΙΣΟΔΟΣ: σειρά bit x αυθαίρετου μεγέθους b 0. ΕΞΟΔΟΣ: 128-bit σύνοψη του x. Η MD5 είναι όμοια με την MD4 με τις εξής διαφορές. 1. Συμβολισμοί. Αντικαθιστούμε τη συνάρτηση g του δεύτερου κύκλου με: g(u,v,w) def = uw V v(~w). Ορίζουμε μία συνάρτηση κ για τον τέταρτο κύκλο: k(u,v,w) def = v XOR (u V (~w)). 68

69 2. Ορισμός σταθερών.. Ορίζουμε τους πίνακες σταθερών: y[j] = τα πρώτα 32 bit της δυαδικής αναπαράστασης abs(sin(j+1)), 0 j 63, όπου το j είναι σε ακτίνια και το abs υποδηλώνει απόλυτη τιμή. Ξανά ορίζουμε το πίνακα z για τους γύρους 2,3 και 4 (ορίζουμε νέο): z[16::31] = [1,6,11,0,5,10,15,4,9,14,3,8,13,2,7,12], z[32::47] = [5,8,11,14, 1, 4, 7, 10, 13, 0, 3, 6, 9, 12, 15, 2], z[48::63] = [0, 7, 14, 5, 12, 3, 10, 1, 8, 15, 6, 13, 4, 11, 2, 9]. Ξανά ορίζουμε το πίνακα μεταθέσεων s: s[0::15] = [7, 12, 17, 22, 7, 12, 17, 22, 7, 12, 17, 22, 7, 12, 17, 22], s[16::31] = [5, 9, 14, 20, 5, 9, 14, 20, 5, 9, 14, 20, 5, 9, 14, 20], s[32::47] = [4, 11, 16, 23, 4, 11, 16, 23, 4, 11, 16, 23, 4, 11, 16, 23], s[48::63] = [6, 10, 15, 21, 6, 10, 15, 21, 6, 10, 15, 21, 6, 10, 15, 21]. 3. Προεπεξεργασία. Όπως στην MD4 (βλέπε παραπάνω) 4. Επεξεργασία. Σε κάθε ένα από τους γύρους 1, 2 και 3 αντικαθιστούμε το B (t s[j]) με B B + (t s[j]). Επίσης αμέσως μετά το τρίτο κύκλο προσθέτουμε: (Γύρος 4) Για j από 48 μέχρι 63 κάνουμε τα ακόλουθα: t (A+k(B,C,D)+X[z[j]]+y[j]), (A,B,C,D) (D,B+(t s[j]),b,c). 5. Ολοκλήρωση. Όπως στην MD4 (βλέπε παραπάνω) 69

70 2.2.3 SHA-1 H Secured Hash Algorithm οικογένεια αλγορίθμων ξεκίνησε το 1993 με το σχεδιασμό από την NSA του SHA-0 [1] [7]. Εξαιτίας προβλημάτων που προέκυψαν σε σχέση με την ασφάλειά του ο SHA-0 αποσύρθηκε με αποτέλεσμα το 1995 να δημιουργηθεί ο SHA-1 ως μία εξελιγμένη μορφή του. Ο SHA-1 είναι μία συνάρτηση σύνοψης με έξοδο 160 bit και μπορούμε να τον αναλύσουμε σε τέσσερις γύρους των 20 βημάτων. Μία καινοτομία που παρουσιάζει είναι η επέκταση μηνύματος όπου κάθε τμήμα μήκους δεκαέξι λέξεων μετασχηματίζεται σε ένα block ογδόντα λέξεων πριν εισαχθεί στη συνάρτηση συμπίεσης. Εικόνα 2.25: Η συνάρτηση σύνοψης SHA-1. Πρακτικά ο αλγόριθμος έχει ως εξής: ΕΙΣΟΔΟΣ: σειρά bit x αυθαίρετου μεγέθους b 0. ΕΞΟΔΟΣ: 160-bit σύνοψη του x. Η συνάρτηση SHA-1 είναι όμοια με την MD4 με τις εξής διαφορές. 1. Συμβολισμοί Όπως στην MD4 (βλέπε παραπάνω) 2. Ορισμός σταθερών. Ορίζουμε μία πέμπτη αρχική τιμή: h 5 = 0xc3d2e1f0. Ορίζουμε τέσσερις σταθερές, μία για κάθε κύκλο: y 1 = 0x5a827999, y 2 = 0x6ed9eba1, y 3 = 0x8f1bbcdc, y 4 = 0xca62c1d6. (Δεν χρειάζεται να ορίσουμε τους πίνακες z, s) 70

71 3. Συνολική προεπεξεργασία. Padding όπως στον MD4, εκτός από τις τελευταίες δύο 32-bit λέξεις που προσδιορίζουν το μήκος b με τη most significant λέξη πριν τη least significant. Όπως στον MD4, η επεξεργασμένη είσοδος είναι 16m στο πλήθος 32-bit λέξεις: x 0,x 1,...,x 16m 1. Αρχικοποίηση των μεταβλητών αλυσίδας: (H 1 ;H 2 ;H 3 ;H 4 ;H 5 ) (h 1 ; h 2 ; h 3 ; h 4 ; h 5 ). 4. Επεξεργασία: Για κάθε i από 0 μέχρι m 1, αντιγράφουμε το ι-οστό τμήμα από δεκαέξι λέξεις των 32-bit σε ένα προσωρινό πίνακα: X[j] = x 16i+j, 0 j 15, και τις επεξεργαζόμαστε όπως φαίνεται παρακάτω σε τέσσερις γύρους των είκοσι βημάτων πριν ανανεώσουμε τις μεταβλητές αλυσίδας: (επιμηκύνουμε το τμήμα 16 λέξεων σε τμήμα 80 λέξεων; θέτουμε X j να συμβολίζει X[j]) για j από 16 μέχρι 79, X j (( X j 3 XOR X j 8 XOR Xj 14 XOR Xj 16 ) 1). (αρχικοποιούμε τις μεταβλητές εργασίας) (A,B,C,D,E) (H 1,H 2,H 3,H 4,H 5 ). (Γύρος 1) για j από 0 μέχρι 19 κάνε τα ακόλουθα: t ((A 5) + f(b,c,d) + E + X j + y 1 ), (A,B,C,D,E) (t, A,B 30, C,D). (Γύρος 2) για j από 20 μέχρι 39 κάνε τα ακόλουθα: t ((A 5) + h(b,c,d) + E + X j + y 2 ), (A,B,C,D,E) (t, A,B 30, C,D). (Γύρος 3) γιαr j από 40 μέχρι 59 κάνε τα ακόλουθα: t ((A 5) + g(b,c,d) + E + X j + y 3 ), (A,B,C,D,E) (t, A,B 30, C,D). (Γύρος 4) για j από 60 μέχρι 79 κάνε τα ακόλουθα: t ((A 5) + h(b,c,d) + E + X j + y 4 ), (A,B,C,D,E) (t, A,B 30, C,D). (ανανέωσε τις τιμές της αλυσίδας) (H 1,H 2,H 3,H 4,H 5 ) (H 1 + A,H 2 + B,H 3 + C,H 4 + D,H 5 + E). 5. Ολοκλήρωση Η τιμή της σύνοψης είναι: H 1 H 2 H 3 H 4 H 5 71

72 2.2.4 SHA-2 Ο NIST εξέδωσε άλλες τέσσερις συναρτήσεις σύνοψης: SHA-224, SHA-256, SHA-384 και SHA-512, με μέγεθος σύνοψης αντίστοιχη των ονομάτων τους. Η οικογένεια αυτών των αλγορίθμων ονομάστηκε SHA-2 [12]. Οι SHA-256 και SHA-512 είναι νέες μορφές που χρησιμοποιούν λέξεις 32 και 64 bit αντίστοιχα. Οι δομές τους είναι γενικά όμοιες αλλά διαφέρουν ως προς τον αριθμό των κύκλων και σε σχέση με τον αριθμό των μεταθέσεων και των λογικών πράξεων που χρησιμοποιούν. Οι SHA-224 και SHA-384 αποτελούν παραλλαγές των δύο προηγούμενων αλγορίθμων με διαφορετικές αρχικές τιμές (ΙVs). Σε γενικές γραμμές οι SHA-2 αλγόριθμοι δεν χρησιμοποιούνται τόσο όσο ο SHA-1 παρόλο που παρέχουν περισσότερη ασφάλεια. Βασική αιτία για αυτό είναι η δυσκολία εισαγωγής σε υπάρχουσες εφαρμογές (πχ. SSL) εξαιτίας της προς τα πίσω συμβατότητας (backwards compatibility). Παρά ταύτα η εφαρμογή τους συναντάται σε διάφορα project όπως για παράδειγμα το σύστημα διαχείρισης πακέτων της διανομής debian του λειτουργικού συστήματος Linux. Ενδεικτικά παρατίθεται μία ανάλυση του SHA-256. Εικόνα 2.26: Η συνάρτηση σύνοψης SHA

73 SHA-256 Ο αλγόριθμος SHA-256 παράγει μία σύνοψη μήκους 256 bit για οποιαδήποτε είσοδο μικρότερη του 2 64 bit [12]. Χρησιμοποιεί λέξεις των 32 bit οπότε η μεταβλητή αλυσίδας ορίζεται σε οχτώ καταχωρητές (A,B,C,D,E,F,G,H) των 32 bit έκαστος. Η συνάρτηση συμπίεσης επεξεργάζεται τμήματα μηνυμάτων μήκους 512 bit χωρισμένα σε δεκαέξι λέξεις των 32 bit ορισμένες ως W j με j=0,1,...,15. Στο εσωτερικό της η συνάρτηση συμπίεσης χωρίζεται σε 64 βήματα της εξής μορφής: D D + H +f 1 (E,F,G) + Σ 1 (Ε) + W j + U s, H H + f 1 (E,F,G) + Σ 1 (Ε) + f 2 (A,B,C)+ Σ 2 (Α) + W j + U s. Ειδικότερα σε σχέση με τα παραπάνω έχουμε: δύο λογικές συναρτήσεις f1 και f2 δύο συναρτήσεις Σ1 και Σ2 μία επιπρόσθετη σταθερά Us που εξαρτάται από το βήμα στο οποίο βρίσκεται ο αλγόριθμος Σχηματικά ένα βήμα του αλγορίθμου παρουσιάζεται παρακάτω: Εικόνα 2.27: Ένα βήμα του αλγόριθμου SHA

74 Οι διάφορες παραλλαγές της SHA οικογένειας αλγορίθμων με τα βασικά τους χαρακτηριστικά φαίνονται στο παρακάτω πίνακα: Πίνακας 2.3: Οι διαφοροποιήσεις της SHA οικογένειας. 74

75 2.2.5 RIPEMD -160 Ο RIPEMD προτάθηκε το 1992 από το RIPE project [13] [7]. Συγκεκριμένα ο RIPEMD -160 αλγόριθμος είναι μία συνάρτηση σύνοψης που βασίζεται στον MD4 με έξοδο 160 bit και μπορούμε να τον αναλύσουμε σε πέντε γύρους των 16 βημάτων. Ενδιαφέρον παρουσιάζει το ότι κάθε τμήμα προς επεξεργασία εισέρχεται παράλληλα σε δύο διακριτές εκδόσεις της συνάρτησης συμπίεσης, δημιουργώντας δύο γραμμές επεξεργασίας. Πίνακας 2.4: Συμβολισμοί που χρησιμοποιεί ο RIPEMD. Εικόνα 2.28: Η συνάρτηση σύνοψης RIPEMD. Πρακτικά ο αλγόριθμος έχει ως εξής: ΕΙΣΟΔΟΣ: σειρά bit x αυθαίρετου μεγέθους b 0. ΕΞΟΔΟΣ: 160-bit σύνοψη του x. Ο RIPEMD-160 είναι όμοιος με την MD4 με τις εξής διαφορές. 1. Συμβολισμοί Όπως στην MD4 (βλέπε παραπάνω) με τις διαφορές που παρουσιάζονται στον πίνακα Ορισμός σταθερών Ορίζουμε μία πέμπτη IV: h 5 = 0xc3d2e1f0. Επίσης: 75

76 (α.) Χρησιμοποιούνται και ορίζονται οι σταθερές του MD4 για την αριστερή γραμμή κρυπτογράφησης, ως εξής: y L [j] = 0, 0 j 15, y L [j] = 0x5a827999, 16 j 31, y L [j] = 0x6ed9eba1, 32 j 47. y L [j] = 0x8f1bbcdc, 48 j 63, y L [j] = 0xa953fd4e, 64 j 79. (β.) Ορίζουμε πέντε νέες σταθερές για τη δεξιά γραμμή κρυπτογράφησης: y R [j] = 0x50a28be6, 0 j 15, y R [j] = 0x5c4dd124, 16 j 31, y R [j] = 0x6d703ef3, 32 j 47, y R [j] = 0x7a6d76e9, 48 j 63, y R [j] = 0, 64 j 79. (γ.) Στον παρακάτω πίνακα ορίζονται οι ακόλουθες μεταβλητές : z L [j], z R [j],s L [j], s R [j]. Πίνακας 2.5: Ορισμός μεταβλητών του RIPEMD. 3. Προεπεξεργασία Όπως και στην MD4, με την πρόσθεση μίας πέμπτης μεταβλητής αλυσίδας: H 5 = h 5. 76

77 4. Επεξεργασία Για κάθε i από το 0 μέχρι το m 1, αντέγραψε το ι-οστό τμήμα δεκαέξι 32-bit λέξεων σε ένα προσωρινό πίνακα: X[j] x 16i+j ; 0 j 15. Στη συνέχεια: (α.) Εκτέλεσε πέντε γύρους δεκαέξι βημάτων στην αριστερή πλευρά ως εξής: (A L,B L,C L,D L,E L ) (H 1,H 2,H 3,H 4,H 5 ). (Αριστερός Γύρος 1) Για j από 0 μέχρι 15 κάνε τα ακόλουθα: t (A L + f(b L,C L, D L ) + X[z L [j]] + y L [j]), (A L,B L,C L,D L,E L ) (E L,E L + (t s L [j]),b L, C L 10, D L ). (Αριστερός Γύρος 2) Για j από 16 μέχρι 31 κάνε τα ακόλουθα: t (A L + g(b L, C L,D L ) + X[z L [j]] + y L [j]), (A L,B L, C L,D L,E L ) (E L,E L + (t s L [j]),b L, C L 10,D L ). (Αριστερός Γύρος 3) Για j από 32 μέχρι 47 κάνε τα ακόλουθα: t (A L + h(b L, C L,D L ) + X[z L [j]] + y L [j]), (A L,B L, C L,D L,E L ) (E L,E L + (t s L [j]),b L, C L 10,D L ). (Αριστερός Γύρος 4) Για j από 48 μέχρι 63 κάνε τα ακόλουθα: t (A L + k(b L, C L,D L ) + X[z L [j]] + y L [j]), (A L,B L, C L,D L,E L ) (E L,E L + (t s L [j]),b L, C L 10,D L ). (Αριστερός Γύρος 5) Για j από 64 μέχρι 79 κάνε τα ακόλουθα: t (A L + l(b L, C L,D L ) + X[z L [j]] + y L [j]), (A L,B L, C L,D L,E L ) (E L,E L + (t s L [j]),b L, C L 10,D L ). (β.) Εκτέλεσε παράλληλα με τους παραπάνω πέντε γύρους μία ανάλογη δεξιά γραμμή κρυπτογράφησης με (A R, B R,C R,D R,E R ), y R [j], z R [j], s R [j] να αντικαθιστούν τις ανάλογες μεταβλητές της αριστερής γραμμής. Επίσης αντιστρέφεται και η σειρά χρήσης των συναρτήσεων έχοντας: l, k, h, g, f. (γ.) Αφού εκτελεστούν οι παραπάνω αριστερές και δεξιές πράξεις, ανανέωσε τις τιμές της αλυσίδας ως εξής: t H 1, H 1 H 2 + C L + D R, H 2 H 3 + D L + E R, H 3 H 4 + E L + A R, H 4 H 5 + A L + B R, H 5 t + B L + C R. 5.Ολοκλήρωση. Η τελική τιμή της σύνοψης είναι η συνένωση: H 1 H 2 H 3 H 4 H 5 77

78 2.2.6 Η συνάρτηση σύνοψης Tiger Η Tiger είναι μία επαναληπτική κρυπτογραφική συνάρτηση σύνοψης που σχεδιάστηκε για 64 bit συστήματα και προτάθηκε το 1995 από τους Biham και Anderson [22]. Η συνάρτηση συμπίεσης της Tiger βασίζεται σε μία block cipher τύπου συνάρτηση που παράγει μία 192 bit σύνοψη (τρεις λέξεις των 64 bit). Πίνακας 2.6: Συμβολισμοί του tiger. Η συνάρτηση ξεκινά τις μετατροπές των καταστάσεων με κάποιες τροποποιημένες αρχικές τιμές (IVs) και σε καθένα από τους κύκλους τρεις 64 bit μεταβλητές A,B και C ανανεώνονται ως εξής: 78

79 Κάθε 64 bit λέξη εισάγεται από ένα 512 bit τμήμα μηνύματος στο οποίο εφαρμόζονται κάποιες μη γραμμικές συναρτήσεις (συγκεκριμένα άρτιες και περιττές πράξεις σε άρτια και περιττά bytes αντίστοιχα), όπως φαίνονται παρακάτω. Οι συναρτήσεις άρτιων και περιττών διαθέτουν τέσσερα 8 X 64 bits S-boxes (t 1,t 2,t 3,t 4 ), με C[i] το i-οστό byte του C. Στον i-οστό κύκλο έχουμε αντίστοιχα A i,b i,c i όπως φαίνεται και στην εικόνα Στο τελικό γύρο οι αρχικές τιμές A 0,B 0,C 0 συνδυάζονται με τις τιμές A 24,B 24,C 24 παράγοντας την τελική σύνοψη (ή τις IVs για το επόμενο βήμα) ως εξής: Εικόνα 2.29: Ο i-οστός κύκλος της συνάρτησης Tiger. 79

80 Εικόνα 2.30: Η συνάρτηση συμπίεσης της Tiger. Η Tiger επίσης χρησιμοποιεί έναν αλγόριθμο επέκτασης μηνύματος, ο οποίος εφαρμόζει κάποιες λογικές πράξεις. 80

81 Ο Tiger έχει δεχθεί ποικίλες επιθέσεις [23] [24], οι οποίες παρουσιάζονται συνοπτικά στον πίνακα 2.7. Αριθμός Κύκλων Είδος επίθεσης Πολυπλοκότητα 16 collision collision 2 62 και Pseudo-collision Pseudo-collision Pseudo-Near-collision Pseudo-Near-collision Pseudo-Near-collision Pseudo-Near-collision Pseudo-Near-collision 2 47 Πίνακας 2.7: Επιθέσεις στον tiger. 81

82 2.2.7 WHIRPOOL Ένα παράδειγμα χρήσης της Miyaguchi-Preneel μεθοδολογίας με χρήση MD-strengthening είναι η συνάρτηση σύνοψης WHIRPOOL [14]. Μέρος του αλγορίθμου είναι και ένας εξειδικευμένος block cipher ο οποίος δέχεται μια είσοδο μήκους 512 bit και παράγει έξοδο 512 bit, ενώ και η τελική έξοδος της συνάρτησης κατακερματισμού είναι ίδιου μήκους. Σε αυτό το σημείο επισημαίνεται ότι ο αλγόριθμος κρυπτογράφησης τμήματος που χρησιμοποιείται είναι μία παραλλαγή του AES με τις παρακάτω διαφορές: RIJNDAEL/AES WHIRPOOL Μέγεθος τμήματος 128, 160, 192, 224, ή Αριθμός κύκλων 10, 11, 12, 13, ή Key schedule Εξειδικευμένος a priori αλγόριθμος Η συνάρτηση του κάθε κύκλου GF(2 8 ) reduction polynomial x 8 + x 4 + x 3 + x + 1 (0x11B) x 8 + x 4 + x 3 + x (0x11D) Λειτουργίες του S box αντιστοίχιση u u -1 στο GF(2 8 ), και προκαθορισμένος μετασχηματισμός Αναδρομική δομή που παρουσιάζεται παρακάτω Προέλευση σταθερών κύκλων Πολυώνυμα x i στο GF(2 8 ) διαδοχικές είσοδοι του S-box Diffusion layer Αριστερός πολλαπλασιασμός με τον 4 4 κυκλικό MDS πίνακα cir(2, 3, 1, 1) Πίνακας 2.8: Η σχέση Whirpool & AES δεξιός πολλαπλασιασμός με τον 8 8 κυκλικό MDS πίνακα cir(1, 1, 4, 1, 8, 5, 2, 9) 82

83 Η δομή του S box παρουσιάζεται παρακάτω: Εικόνα 2.31: Η δομή των boxes της Whirpool. Το E mini-box: U A B C D E F E(u) 1 B 9 C D 6 F 3 E A Πίνακας 2.9.1: Τα mini-boxes του Whirpool. Το E -1 mini-box: u A B C D E F E -1 (u) F 0 D 7 B E 5 A 9 2 C Πίνακας 2.9.2: Τα mini-boxes του Whirpool. Το R mini-box: u A B C D E F R(u) 7 C B D E 4 9 F A Πίνακας 2.9.3: Τα mini-boxes του Whirpool. 83

84 2.3 Επίλογος Συνοψίζοντας, στο κεφάλαιο αυτό αναλύσαμε τις διάφορες κατασκευές που υφίστανται για τις συναρτήσεις σύνοψης. Το MD μοντέλο χρησιμοποιείται από την πλειάδα των σύγχρονων συναρτήσεων εξασφαλίζοντας κάποιες βασικές ιδιότητες. Ωστόσο ο βασισμένος στο MD μοντέλο σχεδιασμός παρουσιάζει κάποιες αδυναμίες. Αυτές έρχονται να καλύψουν οι ποικίλες νέες κατασκευές (ή βελτιώσεις του υπάρχοντος ΜD). Τέλος αναλύθηκαν 7 σύγχρονες συναρτήσεις σύνοψης που έχουν ευρεία χρήση. Τα προβλήματα που συναντήθηκαν πρόσφατα τόσο στο μοντέλο Merkle-Damgard όσο και στις παραπάνω συναρτήσεις παρουσιάζονται διεξοδικά στο κεφάλαιο 3. 84

85 85

86 Κεφάλαιο 3 [αδυναμίες των σύγχρονων συναρτήσεων σύνοψης] 86

87 Δομή του κεφαλαίου Το κεφάλαιο αυτό αναφέρεται στις αδυναμίες των σύγχρονων συναρτήσεων σύνοψης. Αρχικά δίνονται κάποιοι βασικοί ορισμοί, υπενθυμίζοντας παράλληλα τις διάφορες ιδιότητες που πρέπει να κατέχει μία συνάρτηση κατακερματισμού, όπως επισημάνθηκε στο Κεφάλαιο 2. Στη συνέχεια προχωράμε σε μία κατηγοριοποίηση των επιθέσεων και στην ανάλυση των περισσότερων εξ αυτών. Ακόμη αναλύονται κάποιες επιθέσεις σε σύγχρονες συναρτήσεις σύνοψης μαζί με τεχνικές για τη βελτιστοποίηση τους. Τέλος δίνονται τα συμπεράσματα του κεφαλαίου καθώς και το πρακτικό αντίκτυπο των επιθέσεων που μοιραία μας οδηγεί στο επόμενο κεφάλαιο. 87

88 3.1 Γενικά ζητήματα - ορισμοί Όπως συζητήθηκε εκτενώς στα προηγούμενα κεφάλαια μία συνάρτηση σύνοψης πρέπει να πληρεί κάποιες βασικές ιδιότητες. Επίθεση σε κάποια συνάρτηση κατακερματισμού ονομάζεται η προσπάθεια να θιχτεί κάποια από τις βασικές ιδιότητες. Αυτό έχει ως αποτέλεσμα να προκύπτουν τα εξής είδη επιθέσεων. Preimage attack: Δοθείσας μίας συνάρτησης σύνοψης h(x) = y ο επιτιθέμενος γνωρίζοντας το y προσπαθεί να ανακτήσει την είσοδο x, βάσει της οποίας παράχθηκε. Second preimage attack: Δοθείσας μίας συνάρτησης σύνοψης h(x) = y, ο επιτιθέμενος προσπαθεί να βρει ένα x' (διάφορο του x) τέτοιο ώστε h(x') = h(x) = y. Collision attack: Ο επιτιθέμενος προσπαθεί να βρει ένα ζευγάρι διαφορετικών εισόδων x, x' τέτοια ώστε h(x) = h(x'). Near collision attack: Ο επιτιθέμενος προσπαθεί να βρει ένα ζευγάρι διαφορετικών εισόδων x, x' τέτοια ώστε h(x), h(x') να διαφέρουν ως προς ένα μικρό αριθμό bit. Pseudo-attack: αφορά μία από τις παραπάνω ιδιότητες με τη διαφορά ότι ο επιτιθέμενος έχει τη δυνατότητα να ορίζει ελεύθερα κάποιες δικές του παραμέτρους της συνάρτησης όπως τα IVs (μεταβλητές αρχικοποίησης). Μία ιδανική συνάρτηση σύνοψης n-bit θα πρέπει να διαθέτει ανθεκτικότητα τέτοια ώστε η πολυπλοκότητα των επιθέσεων να είναι 2 n για τα Preimage και second Preimage attacks και 2 n/2 για τα collision attacks. Οι πολυπλοκότητες αυτές είναι 2 n λόγω της επίθεσης εξαντλητικής αναζήτησης ενώ για τα collision attack είναι 2 n/2 εξαιτίας του παράδοξου των γενεθλίων που ισχύει για την περίπτωση αυτή. 88

89 3.2 Κατηγοριοποίηση Επιθέσεων Οι επιθέσεις στις συναρτήσεις κατακερματισμού μπορούν να κατηγοριοποιηθούν με βάση το ακόλουθο διάγραμμα. Εικόνα 3.1: Κατηγοριοποίηση επιθέσεων. Όπως γίνεται κατανοητό υφίστανται δύο μεγάλες οικογένειες επιθέσεων. Από τη μία οι επιθέσεις εξαντλητικής αναζήτησης που συνήθως αναφέρονται και ως επιθέσεις ωμής δύναμης (brute-force). Από την άλλη οι επιθέσεις που βασίζονται στην κρυπτανάλυση Brute force attacks Αυτή η κατηγορία επιθέσεων υφίστανται σε όλες τις συναρτήσεις σύνοψης ανεξαρτήτως δομής και σχεδιασμού. Πρακτικά η συνάρτηση σύνοψης αντιμετωπίζεται ως ένα μαύρο κουτί (black box) Random attack (επίθεση τυχαίας επιλογής) Σε μία επίθεση τυχαίας επιλογής, ο επιτιθέμενος επιλέγει με τυχαίο τρόπο ένα μήνυμα (ή ένα κομμάτι μηνύματος) ελπίζοντας πως η σύνοψή του θα ταυτίζεται με αυτή του αρχικού μηνύματος. Δεδομένου ότι η συνάρτηση σύνοψης παρουσιάζει την προβλεπόμενη τυχαιότητα, η πιθανότητα να είναι επιτυχής μία τέτοια επίθεση είναι ίση με: 1/2 n, όπου n το μήκος της σύνοψης σε bit. Η συγκεκριμένη περίπτωση είναι στην πράξη μία επίθεση τύπου preimage. Ρεαλιστικά μία τέτοιου τύπου επίθεση γίνεται δυνητικά επικίνδυνη όταν ο κακόβουλος χρήστης κατέχει κάποια γνώση που αυξάνει την πιθανότητα επιτυχίας. 89

90 Pseudo attack: Σε μία συνάρτηση σύνοψης με χρήση κλειδιού k, ο κρυπταναλυτής μπορεί να βρει ένα k' κλειδί για το οποίο ισχύει: H(k,M)=H(k',M) (όπου Μ το αρχικό μήνυμα και Η() η συνάρτηση κατακερματισμού). Το k' καλείται ψευδοκλειδί ενώ δεν είναι απαραίτητο για μηνύματα διαφορετικά του Μ να παράγει όμοια σύνοψη Brute-force preimage attack Σε αυτή την περίπτωση για μία γνωστή n-bit σύνοψη x μιας συνάρτησης Η ο επιτιθέμενος υπολογίζει κάθε δυνατή είσοδο της συνάρτησης μέχρι να βρεθεί αυτή που παράγει την επιθυμητή σύνοψη x (βλέπε παράρτημα ΙΙΙ, V). Από άποψη πολυπλοκότητας χρειάζονται 2 n υπολογισμοί όταν ο κρυπταναλυτής αντιμετωπίζει μία ιδανική συνάρτηση κατακερματισμού Brute-force second preimage attack Στη second preimage brute-force attack για μία δοθείσα είσοδο x με έξοδο H(x) = y, ο επιτιθέμενος υπολογίζει κάθε δυνατή είσοδο x' διάφορη του x, έως ότου να βρεθεί μία που να παράγει την ίδια σύνοψη. Δηλαδή, H(x') = H(x) = y. Από άποψη πολυπλοκότητας χρειάζονται 2 n υπολογισμοί όταν ο κρυπταναλυτής αντιμετωπίζει μία ιδανική συνάρτηση κατακερματισμού Brute-force collision attack (ή birthday attack) Στη brute-force collision attack που συχνά καλείται και birthday attack ο επιτιθέμενος υπολογίζει κάθε δυνατό ζεύγος διαφορετικών εισόδων x, x' έως ότου να βρει αυτό που παράγει την ίδια σύνοψη, δηλαδή H(x') = H(x). Από άποψη πολυπλοκότητας χρειάζονται 2 n/2 υπολογισμοί όταν ο κρυπταναλυτής αντιμετωπίζει μία ιδανική συνάρτηση κατακερματισμού (που η κατανομή των εξόδων είναι ομοιόμορφη). Όπως παρατηρούμε, η πολυπλοκότητα είναι μειωμένη κατά 50%. Αυτό οφείλεται στο παράδοξο των γενεθλίων. Η βασική ιδέα πίσω από το παράδοξο των γενεθλίων έγκειται στο γεγονός ότι σε μία ομάδα 23 τυχαία επιλεγμένων ατόμων η πιθανότητα τουλάχιστον δύο από αυτούς να έχουν ίδια μέρα γενέθλια (ημέρα και μήνα) είναι περισσότερη από ½. Πρακτικά αντί να αναζητείται σύγκρουση για κάποια συγκεκριμένη είσοδο, είναι υπολογιστικά ευκολότερο να αναζητείται ένα τυχαίο ζευγάρι εισόδων. Η κατανομή της πιθανότητας στο παράδοξο των γενεθλίων παρουσιάζεται στην εικόνα

91 Εικόνα 3.2: Η κατανομή της πιθανότητας στο παράδοξο των γενεθλίων. Η παραπάνω κατηγορία επιθέσεων όπως συζητήθηκε μπορεί να εφαρμοστεί σε κάθε συνάρτηση. Ωστόσο δεν θεωρείται κάτι σημαντικό εκτός και αν ο αριθμός των υπολογισμών που χρειάζονται είναι σημαντικά μικρότερος από τόσο τις αναλύσεις του σχεδιαστή όσο και σε σχέση με άλλες παρεμφερείς συναρτήσεις σύνοψης. Για τον παραπάνω λόγο, τέτοιου είδους επιθέσεις θεωρούνται ως η τελευταία λύση (last resort) για ένα κρυπταναλυτή / επιτιθέμενο. Παρ' όλα αυτά σε μία από τις συχνές χρήσεις των συναρτήσεων σύνοψης, που είναι η εφαρμογή τους στην προστασία κωδικών (passwords ή/και passphrases) τέτοιες επιθέσεις μπορεί να είναι αρκετά αποδοτικές. Πρακτικά αυτό συμβαίνει συνήθως λόγω κακής πολιτικής ασφαλείας σε σχέση με τους κωδικούς και εισάγει εκτός των παραπάνω και μερικές ακόμα πιο εξειδικευμένες επιθέσεις. Τέτοιες είναι για παράδειγμα οι επιθέσεις με χρήση λεξικού (dictionary attacks), οι υβριδικές επιθέσεις που χρησιμοποιούν τόσο λεξικά όσο και εξαντλητική αναζήτηση και οι rainbow table bruteforce attacks. Παραδείγματα και ανάλυση τέτοιων επιθέσεων παρουσιάζονται στο Παράρτημα III, IV Επιθέσεις βασισμένες στην Κρυπτανάλυση Οι επιθέσεις που βασίζονται στην κρυπτανάλυση διαφέρουν από τις προηγούμενες κυρίως στο γεγονός ότι δεν αντιμετωπίζουν τη συνάρτηση σύνοψης σαν ένα μαύρο κουτί. Αντίθετα στηρίζονται στην ανάλυση και στην εύρεση αδυναμιών στο σχεδιασμό και τις βασικές ιδιότητες των συναρτήσεων κατακερματισμού. Για παράδειγμα, εξαιτίας του ότι το μέγεθος της σύνοψης είναι προκαθορισμένο και αρκετά μικρότερο από το μήκος των διαθέσιμων εισόδων, υπάρχει αυξημένη πιθανότητα εύρεσης σύγκρουσης. Ωστόσο ο σχεδιασμός της συνάρτησης θα πρέπει να το καθιστά υπολογιστικά ανέφικτο. 91

92 Στην πράξη μία συνάρτηση σύνοψης θεωρείται μη ασφαλής όταν η πολυπλοκότητα της όποιας επίθεσης είναι χαμηλότερη από την αντίστοιχη της bruteforce (ουσιαστικά η πολυπλοκότητα πέφτει κάτω από το ιδανικό επίπεδο). Για παράδειγμα, η συνάρτηση σύνοψης SHA-1 με έξοδο μήκους 160 bit θα έπρεπε να διαθέτει αντοχή σε συγκρούσεις της τάξης των Ωστόσο μετά από πρόσφατες επιθέσεις η αντοχή της μειώθηκε σε Η επίθεση για να θεωρηθεί πρακτικά εφαρμόσιμη θα πρέπει να διαθέτει μία πολυπλοκότητα της τάξης των 2 64,σύμφωνα με στοιχεία του 2002, ενώ με τα σημερινά δεδομένα η πολυπλοκότητα αυξάνει ακόμη περισσότερο. Ένα ασφαλές όριο που θεωρείται ότι είναι υπολογιστικά ανέφικτο για τα επόμενα χρόνια είναι αυτό των Με βάση τα παραπάνω στοιχεία οι επιθέσεις μπορούν να διαχωριστούν σε πρακτικές (υπολογιστικά εφικτές) και θεωρητικές (academic attacks). Εικόνα 3.3 : Σχέση επιθέσεων και υπολογιστικής πολυπλοκότητας. Οι επιθέσεις βασισμένες σε κρυπτανάλυση μπορούν να καταχθούν σε γενικού τύπου (generic) και σε εξειδικευμένες με βάση συγκεκριμένες hash functions. Οι επιθέσεις γενικού τύπου επικεντρώνονται στον ευρύτερο σχεδιασμό και κατασκευή της συνάρτησης σύνοψης. Για παράδειγμα, επιθέσεις στο MD μοντέλο κατασκευής, οι οποίες θα αναλυθούν στη συνέχεια. Από την άλλη οι εξειδικευμένες επιθέσεις στηρίζονται στο σχεδιασμό μίας συγκεκριμένης συνάρτησης (για παράδειγμα collision attacks στον MD5, SHA-1 κα.). 92

93 3.3 Generic attacks Meet in the middle attack Η επίθεση αυτή είναι ουσιαστικά μία παραλλαγή της birthday attack, αλλά αναζητούνται συγκρούσεις στα ενδιάμεσα αποτελέσματα (συγκεκριμένα στις συναρτήσεις αλυσίδας) αντί για την τελική σύνοψη. Με αυτόν τον τρόπο επιτρέπεται στον κρυπταναλυτή να κατασκευάσει ένα μήνυμα που παράγει μία προκαθορισμένη σύνοψη. Ο επιτιθέμενος δημιουργεί r 1 δείγματα για το πρώτο μέλος και r 2 για το τελευταίο μέρος του μηνύματος. Στη συνέχεια ξεκινά τη διαδικασία από την αρχή με τις αρχικές τιμές και παράλληλα και από το τέλος πηγαίνοντας προς τα πίσω (backwards) αναζητώντας την επιθυμητή σύγκρουση κάπου στο ενδιάμεσο της όλης αναζήτησης. Να σημειωθεί ότι ο επιτιθέμενος θα πρέπει να είναι ικανός να υπολογίσει με αποδοτικό τρόπο, την αντίστροφη της συνάρτησης συμπίεσης. Δύο παραλλαγές αυτής της επίθεσης είναι οι constrained meet in the middle, και η generalized meet in the middle attack. Στην πρώτη περίπτωση ο κρυπταναλυτής λαμβάνει υπόψιν του κάποιους επιπλέον περιορισμούς που αφορούν τη λύση. Η δεύτερη δημιουργήθηκε για επίθεση σε συγκεκριμένα επαναληπτικά μοντέλα (pfold). Το μήνυμα επαναλαμβάνεται p φορές, και υπολογίζονται p συνόψεις που αντιστοιχούν στις p αρχικές τιμές Correcting block attack Σε αυτή την επίθεση ο κρυπταναλυτής χρησιμοποιεί ένα υπάρχον μήνυμα με τη σύνοψή του και προσπαθεί να τροποποιήσει ένα ή περισσότερα τμήματα του με την τελική σύνοψη να παραμένει αμετάβλητη. Οι συναρτήσεις σύνοψης βασισμένες σε αριθμητική υπολοίπου είναι συνήθως ευπαθείς σε αυτές τις επιθέσεις. Ο κρυπταναλυτής ξεκινά με δύο αυθαίρετα ορισμένα μηνύματα Μ, Μ και συνεχίζει να προσθέτει τυχαία τμήματα μηνυμάτων έτσι ώστε τα τελικά μηνύματα να έχουν την ίδια σύνοψη Fixed point attack Η βασική ιδέα πίσω από αυτή την επίθεση είναι να βρεθεί ένα H i 1 και X i τέτοιο ώστε f(x i,h i 1 ) = H i 1. Κατ 'αυτό το τρόπο ο επιτιθέμενος μπορεί να προσθέσει όσα αντίγραφα του X i επιθυμεί χωρίς να αλλάξει η τελική σύνοψη. Η παραγωγή συγκρούσεων ή second preimage είναι εφικτή μόνο αν η μεταβλητή αλυσίδας είναι ίση με το H i 1. Δηλαδή όταν η αρχική τιμή αλυσίδας μπορεί να οριστεί με μια συγκεκριμένη τιμή, ή όταν μπορεί να παραχθεί ένα μεγάλο πλήθος από fixed points. Η επίθεση αυτή ωστόσο μπορεί εύκολα να αποτραπεί με χρήση μετρητών τμημάτων (block counters). 93

94 3.3.4 Differential attacks Οι διαφορικές επιθέσεις βασίζονται στη μελέτη της σχέσης μεταξύ των διαφορών της εισόδου και της εξόδου, και εφαρμόζονται τόσο σε block cipher όσο και συναρτήσεις κατακερματισμού. Η επίθεση είναι ουσιαστικά βασισμένη στη στατιστική αφού ο επιτιθέμενος αναζητά διαφορές στις εισόδους που είναι πιθανόν να προκαλέσουν συγκεκριμένες αλλαγές στην έξοδο. Στις συναρτήσεις σύνοψης η εξέταση γίνεται στις διαφορές της εισόδου στη συνάρτηση συμπίεσης και στις αλλαγές που προκύπτουν στην έξοδο αυτής. Όταν παρουσιάζεται μηδενική διαφορά στην έξοδο τότε υφίσταται κάποιο collision. Σε αρκετές σύγχρονες συναρτήσεις σύνοψης ο κακός σχεδιασμός (πχ. Αντιγραφή της μεταβλητής καταστάσεων κα.) οδηγεί σε ελλειμματικό diffusion, καθιστώντας τις ευάλωτες σε διαφορικές επιθέσεις Boomerang Attack H επίθεση Boomerang παρουσιάστηκε από τον D. Wagner [28] ως μία κρυπταναλυτική τεχνική για block ciphers. Ουσιαστικά βασίζεται στις μεθόδους της διαφορικής κρυπτανάλυσης με αρκετές όμως διαφορές (ειδικότερα εκτός των άλλων αποφεύγεται η χρήση του folk θεωρήματος). Η βασική ιδέα πίσω από τη boomerang έχει ως εξής. Αρχικά υποθέτουμε ότι διαθέτουμε ένα πρώτο διαφορικό χαρακτηριστικό D 1 στο πρώτο μισό του block cipher που προβλέπει πως μία διαφορά εισόδου Δ οδηγεί σε μία διαφορά εξόδου Δ* με πιθανότητα p 1. Στη συνέχεια έστω ότι έχουμε ένα δεύτερο χαρακτηριστικό * που οδηγεί σε μία διαφορά με πιθανότητα p 2. Με τη χρήση των δύο διαφορικών έχουμε σχηματικά την Εικόνα 3.4, που περιλαμβάνει τέσσερα ζεύγη από plaintext και ciphertext. Εικόνα 3.4: Η επίθεση boomerang σε block ciphers. 94

95 Η επίθεση λαμβάνει χώρα ως εξής. Αρχικά ο επιτιθέμενος διαλέγει ένα τυχαίο plaintext P 1 το οποίο και κρυπτογραφεί. Επίσης κρυπτογραφεί το plaintext P 2 που είναι το αποτέλεσμα της λογικής πράξης XOR του P 1 με το Δ. Τα κρυπτοκείμενα που προκύπτουν ονομάζονται C 1 και C 2. Στη συνέχεια ο κρυπταναλυτής υπολογίζει τα C' 1 με XOR του C 1 και του και C' 2 με XOR του C 2 και του. Στη συνέχεια ζητά τις αποκρυπτογραφήσεις των P' 1 και P' 2. Η βασική ιδέα πίσω από την επίθεση είναι πως όταν το ζεύγος (P 1,P 2 ) ακολουθεί το διαφορικό μονοπάτι Δ και τα αποτελέσματα της αποκρυπτογράφησης το διαφορικό μονοπάτι, τότε οι ενδιάμεσες τιμές που αντιστοιχούν στα Ρ' 1 και Ρ' 2 έχουν τη σωστή διαφορά Δ*. Επίσης αν το ζεύγος (Ρ' 1,Ρ' 2 ) διαθέτει και αυτό σωστή διαφορά για το Δ τότε ο επιτιθέμενος βρίσκει ότι το Ρ' 1 + Ρ' 2 είναι το Δ. Εξαιτίας της ανεξαρτησίας των τεσσάρων διαφορικών μονοπατιών έχουμε πιθανότητα επιτυχίας p 2 1p 2 2. H επίθεση boomerang μπορεί με τις κατάλληλες αλλαγές να εισαχθεί και στις συναρτήσεις σύνοψης (ονομάζεται amplified boomerang attack [27]). Η βασική ιδέα είναι η πρόσθεση στα διαφορικά μονοπάτια κάποια μερικά διαφορικά μονοπάτια τα οποία διαθέτουν μεγάλη πιθανότητα επιτυχίας σε ένα περιορισμένο αριθμό βημάτων της συνάρτησης σύνοψης αλλά αποτυγχάνουν να καλύψουν όλη τη συνάρτηση συμπίεσης. Εικόνα 3.5: Η επίθεση boomerang σε συναρτήσεις σύνοψης. 95

96 3.4 Generic attacks στο Merkle-Damgard μοντέλο Οι γενικές επιθέσεις στο MD μοντέλο έχουν εφαρμογή σε όλες τις συναρτήσεις σύνοψης που βασίζονται σε αυτό. Η υπολογιστική τους πολυπλοκότητα εξαρτάται από παραμέτρους όπως το μήκος της σύνοψης και της εσωτερικής μεταβλητής κατάστασης (αλυσίδας) και είναι ανεξάρτητη από τις λειτουργικές λεπτομέρειες της συνάρτησης συμπίεσης Length extension attacks Μία επίθεση που βασίζεται στην επαναληπτική φύση του μοντέλου είναι η επίθεση επέκτασης μήκους του μηνύματος (length extension). Η κύρια ιδέα πίσω από την επίθεση είναι ότι ο κρυπταναλυτής μπορεί γνωρίζοντας τη σύνοψη H(M) ενός μηνύματος Μ να υπολογίσει τη σύνοψη ενός μηνύματος Μ' = Μ Μ i. Δηλαδή μπορεί να υπολογίσει μία νέα σύνοψη χωρίς να γνωρίζει το αρχικό μήνυμα Μ. Η επίθεση αυτή είναι εφικτή επειδή ο επιτιθέμενος μπορεί να χρησιμοποιήσει τη σύνοψη H(M) ως αρχική τιμή IV για να υπολογίσει την Η(Μ'). Αυτή η επίθεση είναι αρκετά χρήσιμη σε περιπτώσεις σχημάτων αυθεντικοποίησης όπως για παράδειγμα σχήματα MAC μυστικού προθέματος όπου ο επιτιθέμενος μπορεί να υπολογίσει σφραγίδες αυθεντικοποίησης μηνυμάτων χωρίς να γνωρίζει το μυστικό κλειδί Joux multicollision attacks Μία k-multicollision για μία κρυπτογραφική συνάρτηση Η όπου k 2 είναι μία ομάδα k μηνυμάτων (Μ 1,Μ 2,...Μ k ) διαφορετικών μεταξύ τους για το οποία ισχύει: H(M 1 ) = H(M 2 ) = = H(M k ). Ο Antoine Joux περιέγραψε μία γενική τεχνική για την εύρεση multicollision η οποία δεν είναι πολύ πιο δύσκολη υπολογιστικά από ότι η εύρεση μίας απλής σύγκρουσης. Αρχικά η βασική παραδοχή του Joux είναι η ύπαρξη ενός αλγορίθμου εύρεσης απλών συγκρούσεων για τη συνάρτηση συμπίεσης, ο οποίος επιστρέφει δύο τμήματα μηνυμάτων Μ i και N i διαφορετικά μεταξύ τους για τα οποία ισχύει f Hi-1 (Mi) = f Hi-1 (Ni). Η ιδέα για την παραγωγή multicollision παρουσιάζεται στο σχήμα 3.6 που ο επιτιθέμενος χρησιμοποιώντας τη συνάρτηση εύρεσης collision για μία αρχική κατάσταση Η 0 υπολογίζει δύο τμήματα b 1 και b 1 ' με την ίδια σύνοψη. Με αυτή τη σύνοψη υπολογίζει τα δύο επόμενα τμήματα b 2 και b 2 ' και ούτω καθεξής. 96

97 Εικόνα 3.6 : Κατασκευή multicollision με τη μέθοδο Joux. Με τον παραπάνω τρόπο ο Joux [25] έδειξε την παραγωγή 2 d collision με υπολογιστικό κόστος μόνο d φορές σε σχέση με μία απλή σύγκρουση. Το πλήθος των colliding μηνυμάτων με τόσο μικρό υπολογιστικό κόστος, δικαιολογείται από τους συνδυασμούς μεταξύ των ζευγαριών που παρουσιάζουν σύγκρουση μεταξύ τους. Αυτή η επίθεση γίνεται πιο ουσιαστική αν ο επιτιθέμενος εκμεταλλευτεί ακόμη μία ιδιότητα του MD μοντέλου σύμφωνα με την οποία αν έχουμε δύο colliding μηνύματα m, n τότε μπορούμε να παράγουμε δύο επίσης colliding μηνύματα m x και n x. Ένα παράδειγμα υπολογισμού 2 4 collision attack περιγράφεται ως εξής. Ο επιτιθέμενος αρχικά χρησιμοποιεί τον αλγόριθμο εύρεσης συγκρούσεων για τη συνάρτηση συμπίεσης f με είσοδο την αρχική κατάσταση Η 0. Στη συνέχεια με τα δύο colliding μηνύματα Μ 1 και Ν 1 υπολογίζει την επόμενη κατάσταση Η 1 βάση της οποίας βρίσκει τα επόμενα δύο colliding τμήματα Μ 2, Ν 2. Η διαδικασία συνεχίζεται με αυτό το τρόπο, έως ότου παραχθούν τα τμήματα Μ 4 και Ν 4 και η εσωτερική κατάσταση Η 4 που είναι και η τελική σύνοψη. Κατά αυτό το τρόπο ο επιτιθέμενος έχει παράξει τέσσερα συνεχόμενα ζεύγη colliding τμημάτων που οι μεταξύ τους συνδυασμοί δίνουν δεκαέξι διαφορετικά μηνύματα με σύνοψη Η 4. Να σημειωθεί ότι το κόστος που χρειάστηκε για την παραγωγή δεκαέξι (2 4 ) συγκρουόμενων μηνυμάτων είναι το κόστος της εύρεσης τεσσάρων μόνο colliding ζευγαριών Multi preimage (και second preimage) attack H multicollision τεχνική που παρουσιάστηκε παραπάνω είναι δυνατόν να χρησιμοποιηθεί και ως εργαλείο για την εύρεση πολλαπλών preimage και second preimage με κόστος χαμηλότερο από μία bruteforce επίθεση για την εύρεση των αντίστοιχων στοιχείων. Στην περίπτωση της Multi preimage attack ο επιτιθέμενος γνωρίζει μία σύνοψη Η final της συνάρτησης σύνοψης Η και προσπαθεί να βρει πολλαπλά preimages για την Η χρησιμοποιώντας τα στοιχεία που έχει. Για να υπολογιστούν 2 d preimages για την H αναζητούνται πρώτα 2 d collisions έτσι ώστε να βρεθεί multicollision H d. H τιμή H d που βρέθηκε χρησιμοποιείται σαν μεταβλητή αλυσίδας για να βρούμε ένα τμήμα μηνύματος M final τέτοιο ώστε f Ηd (M final ) = H final. To συνολικό υπολογιστικό κόστος αυτής της επίθεσης είναι Ο (d * 2 d/2 + 2 t ). 97

98 Στην περίπτωση της second preimage attack ο επιτιθέμενος γνωρίζει ένα μήνυμα Μ, προσπαθώντας να βρει multiple second preimages για την Η χρησιμοποιώντας το Η(M). Αρχικά, υπολογίζεται μία 2 d multicollision τιμή Η d. Έπειτα γίνεται προσπάθεια να βρεθεί ένα τμήμα μηνύματος M final τέτοιο ώστε f Ηd (M final ) = Η(Μ). To συνολικό υπολογιστικό κόστος αυτής της επίθεσης είναι Ο (d * 2 d/2 + 2 t ). H multicollision τεχνική για μία συνάρτηση σύνοψης έχει εφαρμογή και στις cascade hash functions που χρησιμοποιούν δύο διαφορετικές συναρτήσεις σύνοψης για περισσότερη ασφάλεια Generic second preimage attack Στις second preimage επιθέσεις ο κρυπταναλυτής αναζητά μία δεύτερη preimage Ν για ένα δοθέν μήνυμα Μ τέτοιο ώστε Η(Μ) = Η(Ν). Μία μέθοδος για την επίτευξη αυτού καλείται long message second preimage attack, όπου αναζητείται μία second preimage για ένα πολύ μεγάλο μήνυμα Μ της τάξης των 2 q +1 τμημάτων μηνύματος. Ο επιτιθέμενος βρίσκει ένα συνδετικό τμήμα μηνύματος Μ link τέτοιο ώστε το f IV (M link ) να συμπίπτει με μία ενδιάμεση μεταβλητή κατάστασης Hi που εντοπίζεται κατά τη διάρκεια της σύνοψης του Μ. Η επίθεση αυτή κοστίζει περίπου 2 t-q υπολογισμούς της συνάρτησης συμπίεσης αφού ο επιτιθέμενος δοκιμάζει περίπου τόσα Μ link τμήματα μηνύματος για να θέσει την second preimage N=M link. Να σημειωθεί πως αυτή η επίθεση δεν είναι πολύ αποτελεσματική αφού αντιμετωπίζεται εύκολα με MD strengthening Fixed point attack για εύρεση second preimage Μία βελτιστοποιημένη μέθοδος σε σχέση με την παραπάνω, που παρακάμπτει το MD strengthening είναι η Fixed point attack που προτάθηκε από τον Dean [35]. Εφαρμόζεται όταν είναι σχετικά εύκολο να βρεθούν fixed points στη συνάρτηση συμπίεσης, ειδικά στα σχήματα Davies-Meyer. Αρχικά αναζητείται ένας συγκεκριμένος αριθμός fixed points Α, και επιλέγεται ένα τμήμα μηνύματος για το οποίο υπολογίζεται η μεταβλητή αλυσίδας Β. Στη συνέχεια όταν βρεθεί collision ανάμεσα στη μεταβλητή αλυσίδας και το fixed point, δηλαδή ανάμεσα στο Α και το Β, εφαρμόζεται η length extension attack προσπαθώντας να προστεθούν τμήματα μηνύματος που παράγουν τις ίδιες μεταβλητές αλυσίδας όπως το αρχικό μήνυμα. Αφού το επιθυμητό μήνυμα βρεθεί είναι εύκολο να το επιμηκύνουμε στο μέγεθος που θέλουμε επαναλαμβάνοντας τα fixed points όσες φορές χρειάζεται. Μία βελτιστοποίηση αυτού του είδους της επίθεσης προτάθηκε από τους Kelsey και Schneier και εφαρμόζεται σε συναρτήσεις σύνοψης που δεν είναι εύκολο να εντοπιστούν fixed points. Η επίθεση λαμβάνει χώρα με τις εξής διαφορές. Σε κάθε κλήση της συνάρτησης συμπίεσης για ένα 1 i r εντοπίζεται μία σύγκρουση ανάμεσα σε ένα τμήμα μηνύματος και στο 2 i-1 +1 τμήμα μηνύματος. 98

99 Με αυτή τη διαδικασία εντοπίζεται μία μεταβλητή αλυσίδας που μπορεί να προσπελαστεί από μηνύματα μήκους μεταξύ r και 2 r+1 +r-1 τμήματα. Από τη στιγμή που βρεθεί η μεταβλητή αλυσίδας εφαρμόζεται η length extension attack και έτσι το μέγεθος του μηνύματος ελέγχεται από το επεκτάσιμο πρόθεμα Herding attack Οι Kelsey και Kohno παρατήρησαν [26] ότι είναι εφικτό για έναν επιτιθέμενο που μπορεί να βρει πολλές συγκρούσεις χρησιμοποιώντας birthday attacks, να δημοσιοποιήσει τη σύνοψη ενός μηνύματος και αργότερα να προσθέσει ένα οποιοδήποτε αρχικό κομμάτι μηνύματος που ανταποκρίνεται στη σύνοψη επιλέγοντας ένα κατάλληλο επίθεμα. Σε αυτήν την επίθεση σε μία t bit συνάρτηση σύνοψης Η ο επιτιθέμενος υπολογίζει και εξάγει μία σύνοψη Η ct που καλείται ο επιλεγμένος στόχος. Αυτή είναι και η δημοσιοποιήσιμη σύνοψη. Στη συνέχεια επιλέγεται ένα επιθυμητό μήνυμα P και με λιγότερο από 2t υπολογισμούς υπολογίζει ένα επίθεμα S για το οποίο ισχύει H(P S)=H ct. O επιτιθέμενος το επιτυγχάνει αυτό κατασκευάζοντας ένα δένδρο συγκρούσεων (ή αλλιώς μία diamond κατασκευή) που περιέχει 2 d+1-2 ενδιάμεσες συνόψεις και εξάγει την τελική τιμή σύνοψης H ct. Για παράδειγμα μία 2 3 diamond κατασκευή φαίνεται στην εικόνα 3.7 και περιέχει ενδιάμεσες τιμές σύνοψης. Εικόνα 3.7 : μια 2 3 diamond κατασκευή. Στη συνέχεια το μήνυμα P μετατρέπεται με τρόπο έτσι ώστε να αντιστοιχίζεται στη σύνοψη Η ct αναζητώντας με εξαντλητικό τρόπο ένα μήνυμα S' έτσι ώστε το Η(P S') να είναι ίσο με μία από τις ενδιάμεσες καταστάσεις του δέντρου συγκρούσεων. Αυτή η διαδικασία έχει κόστος περίπου 2 t-d πράξεις στη συνάρτηση συμπίεσης και είναι όμοιο με την αναζήτηση ενός συνδετικού τμήματος μηνύματος M link για να διεξαχθεί μία second preimage attack. 99

100 Τέλος ο επιτιθέμενος βρίσκει και τα υπόλοιπα τμήματα του μηνύματος από αυτή την ενδιάμεση κατάσταση έτσι ώστε Η(P S' R) = H ct, όπου R είναι τα τμήματα μεταξύ των καταστάσεων Η(P S') και H ct. Η σχηματική αναπαράσταση της διαδικασίας παρουσιάζεται στην Εικόνα 3.8. Εικόνα 3.8 : Σχηματική αναπαράσταση Herding attack. Ένα πρακτικό παράδειγμα Herding attack είναι η επίθεση του Νοστράδαμου (Nostradamus Attack [26]). Σε αυτή την περίπτωση παρουσιάζεται από τον επιτιθέμενο η σύνοψη ενός μηνύματος του οποίου το περιεχόμενο δεν είναι γνωστό. Η εφαρμογή της επίθεσης έχει ως εξής. Αρχικά ο Α (επιτιθέμενος) παρουσιάζει στον Β μία σύνοψη Η ενός μηνύματος μαζί με τον ισχυρισμό σχετικά με το τι είδους πληροφορία υφίσταται σε αυτό, και υπόσχεται ότι θα δημοσιοποιήσει το μήνυμα αφού λάβουν χώρα τα γεγονότα στα οποία αναφέρεται το μήνυμα. Οι Α και Β αναμένουν τα γεγονότα να συμβούν. Τέλος, ο Α δημιουργεί μία περιγραφή των γεγονότων και με χρήση της Herding attack κατασκευάζει το μήνυμα που αντιστοιχίζεται στη σύνοψη Η. Έτσι πρακτικά παρουσιάζει το μήνυμα στον Β αποδεικνύοντας ότι προέβλεψε το μήνυμα. 100

101 3.5 Εξειδικευμένες επιθέσεις σε συναρτήσεις σύνοψης Οι εξειδικευμένες επιθέσεις σε συναρτήσεις σύνοψης βασίζονται στα εσωτερικά χαρακτηριστικά των αλγορίθμων (συνήθως με επίθεση στη συνάρτηση συμπίεσης) ή μίας ολόκληρης οικογένειας αλγορίθμων και όχι μόνο στα γενικά μοντέλα που αυτές ακολουθούν. Όπως γίνεται κατανοητό αυτές οι επιθέσεις είναι ιδιαίτερα αποτελεσματικές και έχουν χαμηλή πολυπλοκότητα αλλά είναι αρκετά δύσκολο να βρεθούν ενώ η εφαρμογή τους αφορά συνήθως μόνο ένα συγκεκριμένο αλγόριθμο. Παρόλα αυτά υπάρχουν κάποιες μέθοδοι / ιδέες που με μικρές τροποποιήσεις μπορούν να εφαρμοστούν σε μεγαλύτερο πλήθος συγγενών συναρτήσεων. Η πλειοψηφία των υπαρχόντων επιθέσεων αφορούν αρκετά γνωστές και συχνά χρησιμοποιούμενες συναρτήσεις (MD5, SHA-1, κα.) σύνοψης και επικεντρώνονται κυρίως στην εύρεση collision. Μεγάλη μερίδα των μεθόδων κρυπτανάλυσης προτάσσουν διαφορετικές τεχνικές για την εύρεση συγκρούσεων αλλά βασίζονται κυρίως στη διαφορική κρυπτανάλυση. Ορόσημο στην ασφάλεια των συναρτήσεων κατακερματισμού, που έδωσε ουσιαστικά και την αφορμή για τη διεξαγωγή του διαγωνισμού του NIST, ήταν οι επιθέσεις που δέχθηκε ο αλγόριθμος SHA-1 το 2005 (Wang et al). Η Wang επίσης με παρόμοια τεχνική έθιξε την ασφάλεια και άλλων κρυπτογραφικών συναρτήσεων σύνοψης (όπως MD4, MD5 κα.). Στη μεθοδολογία που ακολουθήθηκε γίνεται εκτενής χρήση της προσθετικής διαφοράς μεταξύ των μηνυμάτων ΔΜ = Μ Μ' εκτός από την XOR διαφορά. Επίσης χρησιμοποιήθηκε η ιδιότητα των τοπικών συγκρούσεων (local ή internal collisions), που είναι ουσιαστικά συγκρούσεις σε ένα πλήθος i βημάτων του αλγορίθμου. Πιο συγκεκριμένα, ανάμεσα στο A x και A x+i βήμα η διαφορά των καταστάσεων είναι μηδενική, ενώ στα ενδιάμεσα τμήματα υπάρχει διαφορά. Οι διαφορές μεταξύ των μηνυμάτων πρέπει να δημιουργηθούν με τέτοιο τρόπο ώστε να υπάρξει μια σειρά από τοπικές συγκρούσεις με σκοπό την επίτευξη collision για όλα τα βήματα του αλγορίθμου. Πίνακας 3.1: Τοπική σύγκρουση 6 βημάτων στον SHA-0 101

102 Ουσιαστικά πρόκειται για multi block collision attack δηλαδή collision σε δύο μηνύματα με τουλάχιστον δύο τμήματα μήκος. Η επίθεση αυτή μείωσε την πολυπλοκότητα εύρεσης συγκρούσεων στην τάξη των 2 63 υπολογισμών. H μεθοδολογία της επίθεσης απαρτίζεται από 3 κύρια βήματα. Αναζήτηση μιας διαφοράς μηνυμάτων χρησιμοποιώντας την ιδιότητα των τοπικών συγκρούσεων με υψηλή πιθανότητα επιτυχίας. Εύρεση ενός διαφορικού μονοπατιού συγκρούσεων (collision differential path) με το οποίο δύο διαφορετικά μηνύματα Μ και Μ' παράγουν σύγκρουση. Παραγωγή μίας ομάδας ικανών συνθηκών που διαβεβαιώνουν ότι το διαφορικό μονοπάτι της σύγκρουσης θα διατηρηθεί. Οι συνθήκες συνήθως αφορούν κανόνες για τις τιμές των bit κάθε βήματος. Δημιουργία ενός τυχαίου μηνύματος Μ και παραμετροποίηση του έτσι ώστε σχεδόν όλες οι προαναφερθείσες συνθήκες να τηρούνται. Εικόνα 3.9: Παράδειγμα multi block collision. Στο πρώτο βήμα το differential path επιλέγεται έτσι ώστε να είναι εφικτό να βρεθούν collision για τη συγκεκριμένη συνάρτηση σύνοψης και να μην υπάρχουν πάρα πολλοί περιορισμοί. Παρόλα αυτά η επιλογή του διαφορικού μονοπατιού επαφίεται στην κρίση του επιτιθέμενου. Στο δεύτερο βήμα παράγεται ένα πλήθος ικανών περιορισμών για τις μεταβλητές αλυσίδας κάνοντας χρήση ιδιοτήτων συναρτήσεων Βoole και μεταφοράς bit (bit carry). Οι συνθήκες παράγονται με τέτοιο τρόπο ώστε αν όλες ικανοποιούνται από ένα συγκεκριμένο μήνυμα Μ, τότε ένα άλλο μήνυμα Μ' (διαφορετικό του Μ) παράγει την ίδια σύνοψη για τη συνάρτηση Η. 102

103 Η παραγωγή της σύγκρουσης και η δημιουργία των συνθηκών γίνονται παράλληλα. Από τη μία οι συνθήκες δημιουργούνται με βάση το διαφορικό μονοπάτι και από την άλλη το μονοπάτι προσαρμόζεται έτσι ώστε να αποφεύγονται οι αντικρουόμενες συνθήκες. Το τρίτο βήμα είναι η παραμετροποίηση του μηνύματος. Με αυτή την τεχνική ένα οποιοδήποτε δυνατό μήνυμα τροποποιείται έτσι ώστε να είναι ευκολότερο να βρεθεί κάποια σύγκρουση. Οι δύο κύριες κατηγορίες message modification τεχνικής είναι οι Single-step message και Multistep message modification. Η τεχνική τροποποίησης που χρησιμοποιείται για την αλλαγή ενός bit του μηνύματος καλείται single step. Αντίθετα όταν χρειάζεται να αλλάξει ένα μεγάλο πλήθος συνθηκών συνήθως χρησιμοποιείται η multi message modification όπου τροποποιούνται περισσότερα bit. Η παραπάνω τεχνική μπορεί να εφαρμοστεί εξίσου σε συναρτήσεις σύνοψης όπως οι: MD4, MD5, SHA-0, SHA-1, SHA-2, HAVAL και RIPEMD. 103

104 3.5.1 MD4 Η αναζήτηση συγκρούσεων για τον MD4 είναι μία απευθείας εφαρμογή της παραπάνω επίθεσης χωρίς πολλές αποκλείσεις. Από τη στιγμή που ο MD4 αποτελεί τη βάση για πολλές άλλες συναρτήσεις σύνοψης, η κρυπτανάλυση του καθίσταται ιδιαίτερα σημαντική [31]. Στο πρώτο βήμα η διαφορά των μηνυμάτων ΔΜ = Μ Μ' καθορίζεται χρησιμοποιώντας τις τοπικές συγκρούσεις. Αυτές περιλαμβάνονται σε έναν από τους 3 γύρους της MD4 με τέτοιο τρόπο ώστε να είναι αποδοτική η χρήση τους. Συνήθως επιλέγεται ο γύρος που χρησιμοποιεί τη XOR σαν συνάρτηση Boole (που είναι και η πιο αποδοτική επιλογή για την εύρεση full collision). Η αναζήτηση για local collision στον MD4 είναι σχετικά ξεκάθαρη, ωστόσο πρέπει να γίνουν κάποιες επισημάνσεις. Στη μεθοδολογία προτείνεται η τοποθέτηση διαφορών στα μηνύματα κατά τη διάρκεια των local collision με τέτοιο τρόπο ώστε να επηρεάζονται λιγότερες λέξεις του μηνύματος. Κατ' αυτόν τον τρόπο βρέθηκε μία τοπική σύγκρουση έξι βημάτων με αλλαγή μόνο τριών λέξεων του μηνύματος (να σημειωθεί ότι υπάρχει και βελτιωμένη έκδοση της επίθεσης με τοπική σύγκρουση πέντε βημάτων κάνοντας αλλαγές σε πέντε λέξεις μηνύματος). Η παραπάνω τεχνική χρησιμοποιεί διαφορές μηνυμάτων Δm 1 =2 31, Δm 2 =2 28, Δm 12 =2 16, που καθορίζουν την ύπαρξη τοπικής σύγκρουσης ανάμεσα στα βήματα 33 έως 38 και στα βήματα 0 έως 24. Αφού ορίστηκαν οι διαφορές μεταξύ των μηνυμάτων από την τοπική σύγκρουση στον τρίτο γύρο είναι αναγκαίο να βρεθεί ένα διαφορικό μονοπάτι. Αρχικά οι λέξεις μηνύματος m 1,m 2,m 12 έχουν αλλάξει και για να επιτευχθεί πλήρης σύγκρουση οι διαφορές αυτές πρέπει να ακυρωθούν. Συγκεκριμένα μία νέα τοπική σύγκρουση ανάμεσα στα βήματα 0 και 24 πρέπει να βρεθεί. Η ακύρωση των αλλαγών για τα 25 βήματα είναι αρκετά πολύπλοκη, αφού η πιθανότητα ύπαρξης αλλαγών είναι πολύ υψηλή. Για το λόγο αυτό δεν πρέπει να επιτραπεί η μη ελεγχόμενη διάδοση των διαφορών κατά την επεξεργασία. Ο έλεγχος της διάδοσης των διαφορών γίνεται εισάγοντας συνθήκες για τις επιτρεπτές τιμές των bit στους δύο πρώτους γύρους. Έτσι δημιουργείται μία τοπική σύγκρουση στα πρώτα 25 βήματα της συνάρτησης συμπίεσης. Τα διαφορικά χαρακτηριστικά και το διαφορικό μονοπάτι για τo παραπάνω collision παρουσιάζονται στους πίνακες 3.2 και

105 Πίνακας 3.2: διαφορικά χαρακτηριστικά και το διαφορικό μονοπάτι στην MD4. Πίνακας 3.3: Διαφορικά χαρακτηριστικά και το διαφορικό μονοπάτι στην MD4. 105

106 Στο δεύτερο σκέλος της επίθεσης εισάγονται κάποιοι κανόνες για τις τιμές των bit για κάθε βήμα της συνάρτησης συμπίεσης. Υπάρχουν 125 τέτοιοι κανόνες για τα bit ενός τυχαίου μηνύματος, δημιουργώντας ένα πλήθος ζευγαριών μηνύματος προς εξέταση, κάτι που είναι υπολογιστικά απαγορευτικό και αρκετά πιο πολύπλοκο από μια απλή birthday attack. Παρόλα αυτά οι Wang et. al. εφάρμοσαν μία νέα τεχνική που ονομάζεται message modification καταφέρνοντας να μειώσουν την πολυπλοκότητα σε 2 6. Αργότερα με επεκτάσεις που έγιναν η πολυπλοκότητα μειώθηκε ακόμη περισσότερο στην τάξη του 2 2. Παίρνοντας ένα αυθαίρετο μήνυμα και τροποποιώντας το ανάλογα με τις συνθήκες για τις τιμές των bit και το διαφορικό μονοπάτι, δημιουργείται ένα νέο μήνυμα χωρίς να εξετάζονται τόσα πολλά ζεύγη μηνυμάτων. Κατά την εφαρμογή του single step message modification οι συνθήκες που ορίστηκαν στο πρώτο γύρο εκπληρώνονται αντιστρέφοντας τις διαδικασίες κάθε βήματος ή απλώς αλλάζοντας τις τιμές κάποιων bit. Για κάθε συνθήκη που δεν εκπληρώνεται τα αντίστοιχα bit διορθώνονται αλλάζοντας τις τιμές αυτών και υπολογίζεται η νέα λέξη του μηνύματος μέσω της αντίστροφης διαδικασίας. Όταν χρειάζεται, εφαρμόζεται multi step modification. Συγκεκριμένα μερικά bit στη λέξη μηνύματος Μ 0 μπορούν να τροποποιηθούν έτσι ώστε να ικανοποιούνται οι περιορισμοί για το Α 0 και Α 16. Παρά ταύτα μπορεί να έχουν προκύψει και νέες συνθήκες που πρέπει να ικανοποιηθούν. Έτσι η αντίστοιχη λέξη μηνύματος πρέπει να παραμετροποιηθεί και να υπολογιστεί ξανά η μεταβλητή κατάστασης αντιστρέφοντας τις διαδικασίες των βημάτων του πρώτου γύρου. Η μεταβλητή κατάστασης Α 0 πρέπει να διορθωθεί ξανά όπως και οι λέξεις μηνύματος στους γύρους 1 μέχρι MD5 Στην περίπτωση της κρυπτανάλυσης του MD5 η επίθεση προτάθηκε από τη Wang et. Al [30]. Χρησιμοποιήθηκαν 2 μηνύματα μήκους 1024 bit (Μ 0,Μ 1 ) και (Μ' 0,Μ' 1 ). Αντί για τη χρησιμοποίηση ενός τμήματος μηνύματος με μία μόνο επανάληψη, αναζητήθηκαν μηνύματα που μετά την πρώτη επανάληψη, οι ενδιάμεσες συνόψεις διέφεραν μόνο σε ένα μικρό αριθμό bit (near collision). Ύστερα αυτές οι διαφορές ακυρώνονται στη δεύτερη επανάληψη παράγοντας σύγκρουση. Οι διαφορές των μηνυμάτων επιλέγονται σύμφωνα με: 106

107 Η διαδικασία της επίθεσης μοιάζει πολύ με αυτή που περιγράφτηκε για τον MD4. Αρχικά υπολογίζεται ένα τυχαίο μήνυμα Μ 0. Έπειτα τροποποιείται το Μ 0 με message modification τεχνικές για να μειωθεί η ευρύτερη πολυπλοκότητα και αναζητείται ένα Μ' 0 με πιθανότητα Τέλος εξετάζεται αν ισχύει το διαφορικό μονοπάτι. Στη συνέχεια εισάγεται ένα τυχαίο μήνυμα Μ 1, τροποποιείται το Μ 1 με message modification τεχνικές για να μειωθεί η ευρύτερη πολυπλοκότητα και αναζητείται ένα Μ' 1 με πιθανότητα Τέλος εξετάζεται αν το ζεύγος των μηνυμάτων έρχεται σε σύγκρουση SHA-0 Η τεχνική αυτή για τους αλγόριθμους SHA-0 και SHA-1 δεν μπορεί να εφαρμοστεί άμεσα λόγω της χρήσης message expansion αλγορίθμων από τις συναρτήσεις. Αρχικά η Wang [29] έκανε χρήση τοπικών συγκρούσεων μαζί με κάποιους περιορισμούς στις διαφορές των μηνυμάτων για να βρεθεί μία πλήρης σύγκρουση. Για κάθε γύρο της συνάρτησης συμπίεσης του SHA-0 υπάρχει μία τοπική σύγκρουση έξι βημάτων με διαφορετικές πιθανότητες επιτυχίας ανάλογα τη λογική συνάρτηση που χρησιμοποιείται. Σημαντικό στοιχείο για τις τοπικές συγκρούσεις είναι το αρχικό τους βήμα το οποίο μοντελοποιείται με ένα διάνυσμα διαταραχής (disturbance vector). Το διάνυσμα ικανοποιεί την ίδια σχέση επανάληψης που χρησιμοποιείται στον αλγόριθμο του message expansion που είναι γραμμικός και 16 ου βαθμού. Με αυτόν τον τρόπο οι πρώτες δεκαέξι λέξεις του μηνύματος καθορίζουν τις υπόλοιπες. Η Wang έθεσε επίσης κάποιες συνθήκες για τις διαφορές του μηνύματος για να κατασκευάσει ένα αποδοτικό διαφορικό μονοπάτι. Συνοπτικά ακολουθήθηκαν οι εξής κανόνες. Η διαφορά των τελευταίων πέντε λέξεων του επεκταμένου μηνύματος πρέπει να είναι μηδενική για να επιτευχθεί μία σύγκρουση (δηλαδή ΔW i =0 για i=75,...,79). Ακόμη πρέπει ΔW i =0 για i=-5,...,-1 για να αποφεύγονται αποκομμένες συγκρούσεις στα πρώτα βήματα. Πρέπει επίσης να αποφεύγονται διαδοχικές διαφορές ώστε να ξεπεραστεί μία ιδιότητα της λογικής συνάρτησης IF που απαγορεύει τα collisions. Με αυτό τον τρόπο μειώνεται το εύρος της αναζήτησης με συνέπεια να μειώνεται και η όλη πολυπλοκότητα. Συνάμα για ένα διάνυσμα διαταραχής χ, ορίζεται το hw r+ (χ) ως το βάρος hamming του χ από το βήμα r μέχρι το 80. Για να μειωθεί η πολυπλοκότητα αναζήτησης για collisions θα πρέπει το hw 17+ (χ) να είναι όσο το δυνατόν μικρότερο εξαιτίας του αλγορίθμου επέκτασης μηνύματος. Το αντίστοιχο διάνυσμα που δημιουργείται έχει hw 17+ (χ)=27 και η πολυπλοκότητα της αναζήτησης συγκρούσεων είναι Οι υπάρχουσες τεχνικές βελτίωσης της επίθεσης δεν μπορούν να προσφέρουν πολλά για τα βήματα που λαμβάνει χώρα το message modification και έτσι είναι αναγκαία η αλλαγή στρατηγικής για την εύρεση collision με πιο αποδοτικό τρόπο. Οι νέες μέθοδοι που εμφανίστηκαν αφορούν την ελαστικοποίηση των κανόνων για τις διαφορές μηνυμάτων όπως επίσης και κάποιες διαφοροποιήσεις στο message modification και στα διανύσματα διαταραχής. 107

108 Επίσης δημιουργήθηκαν και άλλες τεχνικές που κάνουν χρήση neutral bits δηλαδή bits μηνύματος που όταν αλλάζει η τιμή τους δεν διαδίδεται αυτή η διαφορά. Με βάση τις παραπάνω βελτιώσεις η Wang παρουσίασε και μία επίθεση στον SHA-1 με πολυπλοκότητα λιγότερη από

109 3.5.4 Αυτοματοποιημένα εργαλεία για την εύρεση διαφορικών μονοπατιών Οι επιθέσεις που παρουσιάστηκαν παρόλο που ήταν αρκετά καινοτόμες και ενδιαφέρουσες παρουσίαζαν τη βασική αδυναμία ότι τα διαφορικά μονοπάτια και οι ικανές συνθήκες για την επίτευξη συγκρούσεων έπρεπε να βρεθούν βάση διαίσθησης ή με χειρωνακτικούς υπολογισμούς. Αυτή η δυσκολία οδήγησε πολλούς ερευνητές στο να δημιουργήσουν αυτοματοποιημένα εργαλεία για την εύρεση διαφορικών μονοπατιών. Ένας πολύ σημαντικός τέτοιος αλγόριθμος που βρίσκει μονοπάτια για τον SHA-1 αναπτύχθηκε από τους Rechberger και De Canniere [33]. Η μέθοδος συνοπτικά έχει ως εξής. Στην κλασική διαφορική κρυπτανάλυση λαμβάνονται υπόψιν μόνο οι διαφορές των μηνυμάτων και τα διαφορικά μονοπάτια. Στην περίπτωση των επιθέσεων της Wang προεκτάθηκαν με χρήση προσημασμένων bit για την αναπαράσταση του είδους των διαφορών. Για παράδειγμα η αλλαγή ενός bit από 0 σε 1 συμβολιζόταν με 1 ενώ η αντίστροφη με -1. Οι Rechberger και De Canniere επέκτειναν αυτές τις αναπαραστάσεις των αλλαγών εισάγοντας τα γενικευμένα χαρακτηριστικά (generic characteristics) όπως παρουσιάζονται στον πίνακα 3.4. Πίνακας 3.4: Γενικευμένα χαρακτηριστικά των Rechberger & De Canniere Σε αυτή τη μέθοδο αναπαράστασης κάθε bit των μεταβλητών αλυσίδας και των λέξεων του επεκτεταμένου μηνύματος συμβολίζεται και με ένα από τα παραπάνω στοιχεία. Με αυτόν τον τρόπο μπορούν να εισαχθούν νέες συνθήκες ακόμα και όταν υπάρχει μηδενική διαφορά. Σημαντικό στοιχείο του αλγορίθμου είναι το κόστος της αναζήτησης ζευγαριών μηνυμάτων που συγκρούονται. Αυτό συμβαίνει εκτιμώντας τον αριθμό των κόμβων σε ένα δέντρο αναζήτησης. Πρέπει να σημειωθεί ότι η εισαγωγή περιορισμών στη μεταβλητή κατάστασης μετά τον 16 ο γύρο επηρεάζει σημαντικά την απόδοση του αλγορίθμου. Για την κατασκευή του διαφορικού μονοπατιού πρέπει να δοθεί προσοχή στο πότε και που θα προστεθεί ο εκάστοτε κανόνας επιτρέποντας τη διάδοση των συνθηκών αυτών. Η συνέπεια και η διάδοση των κανόνων επιτυγχάνεται με την πρόσθεση τους στα bit του επεκτεταμένου μηνύματος και ελέγχοντας τη συνέπεια τους με τις μεταβλητές κατάστασης μέσω του διαφορικού μονοπατιού. Η επιλογή των κανόνων ωστόσο γίνεται με άπληστη (greedy) προσέγγιση ελέγχοντας τους όλους για την εύρεση του πιο αποδοτικού. Παρόλα αυτά κάποια bit θα πρέπει να παραμείνουν ελεύθερα χωρίς περιορισμούς. 109

110 Η καλύτερη μέθοδος για την επιλογή διαφοράς μηνυμάτων είναι ο εντοπισμός μίας εσωτερικής σύγκρουσης (εν τούτοις δεν είναι γνωστό που μπορεί να βρεθεί μία). Οι Rechberger και De Canniere μείωσαν τις διαφορές ανάμεσα στα βήματα 40 και 59 επειδή η διάδοσή τους από τη majority function είναι ασυνεπής. Επίσης επειδή οι διαταραχές στον 3 ο γύρο που χρησιμοποιείται η XOR είναι ελάχιστες είναι πιο εύκολο να βρεθούν τοπικές συγκρούσεις. Από τη στιγμή που βρεθεί μία local collision η κατασκευή του διαφορικού μονοπατιού γίνεται με τον τρόπο που αναλύθηκε παραπάνω. 110

111 3.6 Συμπεράσματα Επίλογος Όπως έγινε κατανοητό οι σύγχρονες συναρτήσεις κατακερματισμού παρουσιάζουν αρκετές αδυναμίες που βασίζονται κυρίως στο μοντέλο σχεδιασμού τους και στις πολλές φορές άτοπες εκτιμήσεις των σχεδιαστών για την ασφάλεια των μετασχηματισμών που χρησιμοποιούν. Την ίδια στιγμή η βελτίωση της τεχνολογίας και η μη ορθή χρήση των συναρτήσεων σύνοψης (βλέπε παράρτημα VI,VII) αναγκάζει τα επίπεδα πολυπλοκότητας της ασφάλειας των αλγορίθμων να πρέπει να είναι ιδιαίτερα αυξημένα. Την τρέχουσα στιγμή οι ευρέως χρησιμοποιούμενες hash functions έχουν δεχτεί σημαντικές επιθέσεις με χαμηλές πολυπλοκότητες. Για παράδειγμα τον Ιούνιο του 2009 παρουσιάστηκε μία ακόμη πιο βελτιωμένη επίθεση εύρεσης συγκρούσεων στον SHA-1 με 2 52 πολυπλοκότητα. Συνάρτηση Σύνοψης Τύπος Επίθεσης Πολυπλοκότητα MD4 collision Συγκρούσεις σε μερικά δευτερόλεπτα MD5 collision Συγκρούσεις σε λίγα λεπτά SHA-0 collision Συγκρούσεις σε λίγα λεπτά SHA-1 collision 2 52 [34] SHA-256 collision Σε reduced 24-steps SHA-512 collision 2 53 Σε reduced 24-steps Πίνακας 3.5: Επιθέσεις σε γνωστούς αλγόριθμους. Εικόνα 3.10: Χρονική πορεία των επιθέσεων και της αντίστοιχης πολυπλοκότητας. 111

112 Σε πρακτικό επίπεδο η εφαρμογή των επιθέσεων που παρουσιάστηκαν (ιδίως στην περίπτωση του MD5) επηρεάζει και το μέσο χρήστη. Για παράδειγμα είναι εφικτή η δημιουργία δύο colliding PostScript (PS) αρχείων ή ακόμα και εκτελέσιμων (.exe). Επίσης καίριας σημασίας είναι και η δυνατότητα κατασκευής πλαστών X.509 πιστοποιητικών που μπορεί να θίγουν ακόμη και τη δομή ολόκληρων έμπιστων οντοτήτων (Certification Authorities CA) Πρακτικά παραδείγματα collision attacks Όπως έχει αναφερθεί, υπάρχουν διάφορες τεχνικές επιθέσεων που αρκετές από αυτές αναζητούν συγκρούσεις μεταξύ μηνυμάτων. Για να γίνει κατανοητή η πρακτική σημασία αυτών των επιθέσεων (που πολλές φορές φαντάζει δυσνόητη) θα παρουσιάσουμε μία σειρά από επιθέσεις. Αρχικά, στις περισσότερες επιθέσεις εύρεσης συγκρούσεων τα δύο μηνύματα που παράγονται αφενός σχετίζονται με την προκαθορισμένη αρχική τιμή του εκάστοτε αλγορίθμου και αφετέρου τα περιεχόμενα τους συνήθως δεν είναι εύκολα να χρησιμοποιηθούν πρακτικά. Παρόλα αυτά μπορούν να παραχθούν μηνύματα Μ χ και Μ' χ που παρουσιάζουν πάλι σύγκρουση. Για να γίνει σαφέστερη η πρακτικότητα του παραπάνω μοντέλου μπορούν να χρησιμοποιηθούν επιθέσεις εύρεσης προθέματος (πχ. Herding attack). Το σκεπτικό που ακολουθείται έχει ως εξής. Από τη μία παράγονται δύο μηνύματα Μ, Μ' ίδιου μήκους τα οποία είναι και μικρά σε μήκος (1024 bit) και από την άλλη γίνεται προσπάθεια να χρησιμοποιηθούν αυτά παράγοντας κάποιο νόημα. Στην πράξη επιζητούμε τη δημιουργία δύο μεγάλων μηνυμάτων της μορφής (S M T) και (S M' T) τα οποία συγκρούονται και παρουσιάζουν κάποιο νόημα στον πραγματικό κόσμο. Το S αποτελεί ένα πρόθεμα της επιλογής του επιτιθέμενου, τα Μ, Μ' δύο colliding μηνύματα (για την ενδιάμεση μεταβλητή κατάστασης που παράγεται από το S) και το Τ ξανά ένα μήνυμα της επιλογής του επιτιθέμενου. Με βάση αυτό το σκεπτικό υπάρχουν αρκετές επιθέσεις όπως η Nostradamus αλλά και επιθέσεις παραγωγής colliding εκτελέσιμου αρχείου, PostScript, Χ.509 certificate κ.α. Η πλειοψηφία των επιθέσεων αυτών βασίζεται στις αδυναμίες του MD5 (εύρεση collision σε περίπου 1 λεπτό) και στην ευρεία χρήση του. 112

113 6.3.2 Παραγωγή colliding PostScript Για την παραγωγή colliding PostScript αρχείων εκμεταλλευόμαστε ξανά τη δομή των αρχείων. Συγκεκριμένα ένα αρχείο PostScript ξεκινά με κεφαλίδα: %!PS-Adobe-1.0 %%BoundingBox: Στη συνέχεια ακολουθεί ο κώδικας PostScript. H επίθεση εκμεταλλεύεται την ακόλουθη λογική δομή (Α1) (Α2) Eq {εντολές 1} {εντολές 2} ifelse. H διαδικασία της επίθεσης έχει ως εξής. Κατασκευή μία κεφαλίδας μήκους 512 bit (ένα block επεξεργασίας του MD5), που είναι η παραπάνω κεφαλίδα μαζί με μερικούς κενούς χαρακτήρες. Παραγωγή της σύνοψης της κεφαλίδας και εύρεση colliding μηνυμάτων. Κατασκευή PostScript με την εξής δομή. [header] (M') (M) Eq {εντολές 1} {εντολές 2} ifelse Να σημειωθεί πως αυτή η επίθεση μπορεί να επαναληφθεί πολύ εύκολα χρησιμοποιώντας έτοιμη κεφαλίδα και colliding μηνύματα, αλλάζοντας απλά το περιεχόμενο των εντολών. Μία τέτοιου είδους επίθεση πραγματοποιήθηκε στα πλαίσια της παρούσας διπλωματικής. Αναλυτικότερα δημιουργήσαμε ένα πρόγραμμα (βλέπε παράρτημα X) σε Perl που παράγει δύο colliding PostScript αρχεία με το περιεχόμενο (meaningful) που θέλει ο χρήστης. Τέλος λοιπά παραδείγματα (εκτελέσιμα & X.509 ) παρουσιάζονται στην εργασία στα αντίστοιχα παραρτήματα (βλέπε παράρτημα IX). Συνέπεια των παραπάνω είναι και ο διαγωνισμός που κάλεσε o NIST για το νέο ασφαλές κρυπτογραφικό πρότυπο SHA-3. Σχετικές λεπτομέρειες θα παρουσιαστούν στα αμέσως επόμενα κεφάλαια. 113

114 114

115 Ενότητα 2 [ π π SHA-3 Αξιολόγηση του νεου ροτύ ου ] So in war, the way is to avoid what is strong and to strike at what is weak. Sun Tzu, on the art of war 115

116 Κεφάλαιο 4 [ο διαγωνισμός του NIST] 116

117 Δομή του κεφαλαίου Το κεφάλαιο αυτό αναφέρεται στο διαγωνισμό που διεξάγει ο οργανισμός NIST. Αρχικά παρουσιάζονται κάποια βασικά στοιχεία για τον ίδιο τον οργανισμό, και στη συνέχεια αναφέρονται συνοπτικά οι λόγοι που οδήγησαν στην αναγκαιότητα του διαγωνισμού. Ακόμη γίνεται λόγος για τα δύο workshop που οργάνωσε ο NIST ως προοίμιο του διαγωνισμού. Έπειτα αναλύεται ο διαγωνισμός με τις ποικίλες απαιτήσεις που θέτει στους υποψήφιους αλγόριθμους, ενώ δίνεται και το επίσημο χρονοδιάγραμμα που θα ακολουθηθεί. Τέλος γίνεται μία σύνοψη των παραπάνω μαζί με μία αναφορά στην τρέχουσα κατάσταση του διαγωνισμού από πλευρά υποψηφίων, οι οποίοι και θα αναλυθούν εκτενώς στο κεφάλαιο

118 4.1 NIST (National Institute of Standards and Technology, Εθνικό Ινστιτούτο για τα στάνταρ και την τεχνολογία) Ο οργανισμός NIST ιδρύθηκε το 1901 (με την ονομασία National Bureau of Standards (NBS)) ως μία (μη ρυθμιστική, δηλαδή κατά κύριο λόγο γνωμοδοτική) υπηρεσία του υπουργείου εμπορίου των Ηνωμένων Πολιτειών της Αμερικής, με στόχο την πρωτοπορία και τη βιομηχανική ανταγωνιστικότητα μέσω της προώθησης της επιστήμης, των στάνταρ και της τεχνολογίας με τρόπους που ενισχύουν την οικονομική ασφάλεια και βελτιώνουν την ποιότητα ζωής [1] [16]. Το NIST εκτελεί το έργο του χωρισμένο σε τέσσερα διαφορετικά προγράμματα, αυτά των NIST Laboratories, Baldrige National Quality Program, Hollings Manufacturing Extension Partnership, και του Technology Innovation Program. Από την πλευρά τους τα εργαστήρια του NIST (NIST Laboratories) ασχολούνται με ποικίλα επιστημονικά ζητήματα ανάμεσά τους και το Information Technology Laboratory, και ειδικότερα το τμήμα της ασφάλειας υπολογιστών (computer security devision / computer security resource center), το οποίο με τη σειρά του διαθέτει 3 διαφορετικά groups: το Cryptographic Technology, το Systems & Emerging Technologies Security Research, και το Security Management and Assurance. Ήδη από τις αρχές της δεκαετίας του 1990 άρχισε να παρουσιάζεται μία σειρά αλγορίθμων σύνοψης (MD οικογένεια κα.), όπως επίσης και προηγμένες τεχνικές επιθέσεις πάνω στο ευρύτερο μοντέλο που χρησιμοποιείτο. Ακόμα, εμφανίστηκαν εξειδικευμένες επιθέσεις και κρυπταναλύσεις για συγκεκριμένους αλγορίθμους, που έθιξαν σημαντικά το αίσθημα ασφάλειας που αυτοί παρείχαν. Ωστόσο, η γενικότερη επιδερμική αντιμετώπιση του ευρύτερου τομέα της ασφάλειας της πληροφορίας ήταν και ο βασικός παράγοντας εξαιτίας του οποίου δεν υπήρξε ουσιαστική πρόοδος. Αναπόφευκτα τον Αύγουστο του 2002 ο NIST πρότεινε 5 κρυπτογραφικές συναρτήσεις σύνοψης (SHA-1 -ο οποίος προϋπήρχε από το 1995-, SHA-224, SHA-256, SHA-384, και SHA-512), ορίζοντάς τες ως ασφαλείς υπό την εξής έννοια: Για ένα δοθέντα αλγόριθμο είναι υπολογιστικά ανέφικτο να βρεθεί: 1) ένα μήνυμα που αντιστοιχεί σε μία δοθείσα σύνοψη μηνύματος ή 2) να βρεθούν δύο διαφορετικά μηνύματα που παράγουν την ίδια σύνοψη. Οποιαδήποτε αλλαγή σε ένα μήνυμα θα έχει ως αποτέλεσμα (με πολύ μεγάλη πιθανότητα) μία διαφορετική σύνοψη. Αυτό θα οδηγήσει σε σφάλμα αυθεντικοποίησης αν ο αλγόριθμος σύνοψης χρησιμοποιείται με έναν αλγόριθμο ψηφιακής υπογραφής ή με έναν αλγόριθμο αυθεντικοποίηση με χρήση κλειδιού. 118

119 Ωστόσο, οι πολλές και διαφορετικές επιθέσεις που δέχτηκαν αρκετοί ευρέως χρησιμοποιούμενοι (αν και όχι ορισμένοι από το NIST) αλγόριθμοι σύνοψης όπως επίσης και ο αλγόριθμος SHA-1 το 2005, οδήγησαν τον οργανισμό στο να διεξάγει δύο επιστημονικά workshops ώστε να αξιολογηθεί η θέση των παραπάνω εγκεκριμένων από το NIST αλγόριθμων, καθώς και για να οριστεί μία συγκεκριμένη πολιτική γύρω από τις hash συναρτήσεις. Αποτέλεσμα των workshops ήταν η απόφαση του οργανισμού να διεξάγει ένα ανοιχτό διαγωνισμό, παρόμοιο με αυτόν που έλαβε χώρα για το Advanced Encryption Standard (AES). 4.2 Συμπεράσματα των δύο workshops του NIST Τα δύο workshop που διοργάνωσε ο NIST βοήθησαν αρκετά την παγκόσμια κρυπτογραφική κοινότητα, ώστε να συνειδητοποιήσει σε πιο στάδιο βρίσκεται οι κρυπτογραφία, οι διάφορες εφαρμογές που κάνουν εκτεταμένη χρήση της, οι ευρέως διαδεδομένοι αλγόριθμοι κρυπτογράφησης, τα βασικά μοντέλα κατασκευής τους καθώς επίσης και να αναλύσει συντονισμένα τις ποικίλες επιθέσεις που προέκυψαν (ιδίως τα τελευταία χρόνια) [16]. Πιο συγκεκριμένα βασική ανάγκη θεωρήθηκε η κατανόηση της άμεσης αποχώρησης της MD5 συνάρτησης, ενώ συνάμα παρουσιάστηκαν σημαντικές αδυναμίες του αλγορίθμου SHA-1 θίγοντας περαιτέρω την αξιοπιστία του. Αποτέλεσμα των παραπάνω είναι η κοινή πεποίθηση για χρήση της SHA-2 οικογένειας συναρτήσεων σύνοψης για περισσότερη ασφάλεια (κυρίως σε ότι αφορά το άμεσο μέλλον, μέχρι και να διεξαχθεί ο διαγωνισμός). Ακόμη, κοινή άποψη αποτέλεσε το γεγονός ότι η γνώση που υφίσταται γύρω από τις συναρτήσεις σύνοψης, τις κατασκευές τους και τους κινδύνους που διατρέχουν δεν είναι αρκετά ώριμη και συμπαγής (σε σύγκριση για παράδειγμα με την αντίστοιχη γνώση γύρω από τους block cipher αλγόριθμους όταν ξεκινούσε ο διαγωνισμός για τον AES). Ταυτόχρονα διαπιστώθηκε ότι δεν είναι ζητούμενο να υπάρχουν πολλές διαφορετικές συναρτήσεις σύνοψης αλλά λίγες και ασφαλείς ώστε να επιτυγχάνεται και μια πιο συγκροτημένη υποστήριξη από τις εφαρμογές που κάνουν χρήση τους. Κατά τη διάρκεια του δεύτερου workshop συζητήθηκε και η δομή του επικείμενου διαγωνισμού (και του χρονοδιαγράμματος) [38] [39]. 119

120 4.3 NIST hash function competition Μετά από δύο ανοιχτά workshops (2005/2006 CRYPTOGRAPHIC HASH WORKSHOPS) καθώς και μία περίοδο διαβουλεύσεων ο NIST, στις 2 Νοεμβρίου του 2007, ξεκίνησε να δέχεται προτάσεις για τον SHA-3. Αρχικά ο οργανισμός με βάση των συμπερασμάτων που προέκυψαν από τόσο τα workshop όσο και γενικότερα τη διαβούλευση της κρυπτογραφικής κοινότητας τον Ιανουάριο του 2007 εξέδωσε μία πρώτη κατηγοριοποίηση των ελάχιστων απαιτήσεων που θα έπρεπε να διαθέτουν οι υποψήφιοι. Από την απόκριση που υπήρξε ο NIST το Νοέμβριο του ίδιου έτους δημοσίευσε το τελικό κείμενο παρέχοντας περαιτέρω πληροφορίες και τεχνικά χαρακτηριστικά που θα πρέπει να πληρεί ένα υποψήφιος ώστε να γίνει δεκτός Ελάχιστες απαιτήσεις Οι ελάχιστες απαιτήσεις που θα πρέπει να πληρεί ένας αλγόριθμος για να γίνει δεκτός ως υποψήφιος είναι οι παρακάτω [40] [41]: Ο αλγόριθμος πρέπει να είναι δημόσια ανοιχτός και παγκόσμια διαθέσιμος χωρίς να υπάρχουν τυχόν περιορισμοί πνευματικής ιδιοκτησίας. Ο αλγόριθμος θα πρέπει να είναι εφαρμόσιμος σε μία ευρείας κλίμακας πλατφόρμα λογισμικού (software) και υλισμικού (hardware) Ο υποψήφιος είναι αναγκαίο να παράγει συνόψεις μήκους: 224, 256, 384 και 512 bit και να υποστηρίζει τουλάχιστον μία bit μήκους είσοδο κειμένου. Επίσης οι αλγόριθμοι μπορούν να υποστηρίζουν και περαιτέρω μήκη συνόψεων ή εισόδων. Ο αλγόριθμος για να θεωρηθεί ολοκληρωμένος και κατάλληλος ως υποψήφιος θα πρέπει να διατηρεί τουλάχιστον τα παραπάνω όπως και την προτεινόμενη μορφή παρουσίασης και υλοποίησης (συνημμένες αναφορές, υλοποίηση σε ANSI C, κα.). Επίσης πέρα από τις παραπάνω ελάχιστες απαιτήσεις για να δημιουργηθεί μία βάση ανάλυσης και αξιολόγησης ο NIST θα χρησιμοποιήσει ποικίλα κριτήρια τα οποία συνοπτικά παρατίθενται παρακάτω. 120

121 4.3.2 Ασφάλεια Η ασφάλεια που παρέχει ο αλγόριθμος είναι το πιο σημαντικό κριτήριο στη διαδικασία αξιολόγησης. Αναλυτικότερα οι υποψήφιοι κρίνονται με βάση τα εξής [41]. Ίδιου μήκους σύνοψης αλγόριθμοι θα συγκριθούν σε σχέση με την ασφάλεια που παρέχουν σε διάφορες κρυπτογραφικές εφαρμογές όπως ψηφιακές υπογραφές, παραγωγή κλειδιών, αυθεντικοποίηση μηνυμάτων βασισμένη σε συναρτήσεις σύνοψης, ντετερμινιστικές γεννήτριες τυχαίων αριθμών καθώς και όποιες επιπλέον εφαρμογές προταθούν κατά την περίοδο αξιολόγησης. Οι υποψήφιοι αλγόριθμοι θα πρέπει να παρέχουν μια υλοποίηση σε εφαρμογές όπως HMAC, ψευδοτυχαίων συναρτήσεων (pseudo random functions PRFs) και randomized hashing συμβατή με τα εξής κριτήρια: Όταν ο αλγόριθμος χρησιμοποιείται με τη μορφή HMAC για την κατασκευή ψευδοτυχαίων συναρτήσεων, η παραγόμενη PRFs πρέπει να είναι ανθεκτική σε οποιαδήποτε ιδιαίτερη επίθεση που απαιτεί λιγότερα από 2 n/2 ερωτήματα και λιγότερους υπολογισμούς από μια επίθεση τύπου preimage Οποιαδήποτε επιπλέον PRF κατασκευή, πρέπει να αποδεικνύει την ασφάλεια που ισχυρίζεται ότι παρέχει Αν η κατασκευή χρησιμοποιείται σε σχήμα randomized hashing θα πρέπει να εξασφαλίζει n bit ασφάλεια στην ακόλουθη επίθεση: Ο επιτιθέμενος επιλέγει ένα μήνυμα M 1. Η συγκεκριμένη κατασκευή χρησιμοποιείται στο Μ 1 με μια τιμή τυχαιοποίησης r 1, που επιλέχθηκε με τυχαίο τρόπο χωρίς τον έλεγχο του επιτιθέμενου αφού πρώτα έδωσε το M 1. Δοθέντος του r 1, ο επιτιθέμενος προσπαθεί να υπολογίσει ένα μήνυμα M 2 και μια τιμή τυχαιοποίησης r 2 που καταλήγουν στην ίδια τιμή σύνοψης. Επίσης μια συνάρτηση σύνοψης n-bit για να θεωρηθεί ότι αντέχει σε σοβαρές επιθέσεις (όπως παρουσιάστηκε διεξοδικά στο κεφάλαιο 3), πρέπει να πληρεί τις παρακάτω προϋποθέσεις: collision resistance της τάξης των n/2 bit. Preimage resistance της τάξης των n bit. Second-preimage resistance της τάξης των n-k bit για μηνύματα μήκους 2 k bit. Resistance to length-extension οποιοδήποτε υποσύνολο m-bit της συνάρτησης σύνοψης θα πρέπει επίσης να πληρεί τις παραπάνω ιδιότητες 121

122 Οποιαδήποτε περαιτέρω βελτίωση της Second-preimage resistance ή άλλων απαιτήσεων (όπως multi-collision attacks) κρίνεται θετική, αρκεί να μην έχει μη επαρκώς αιτιολογημένη επίπτωση στα κριτήρια απόδοσης (που θα παρατεθούν στη συνέχεια). Συνολικά θα δοθεί βάρος σε επιθέσεις που σχετίζονται με εφαρμογές του αλγορίθμου σε ευρείας χρήσης τομείς ή σε μειονεκτήματα σχετικά με το θεμελιώδη σχεδιασμό της συνάρτησης. Η αξιολόγηση δεν θα αφορά μόνο την αντοχή σε υπάρχουσες γνωστές επιθέσεις αλλά και σε οποιεσδήποτε νέες προκύψουν κατά τη διάρκεια του διαγωνισμού. Τέλος εξίσου σημαντικοί παράμετροι της κρίσης αποτελούν η επιστημονικά τεκμηριωμένη απόδειξη των ιδιοτήτων ασφαλείας, η απλότητα του αλγορίθμου, καθώς και η ποιότητα της τεκμηρίωσης Κόστος Απόδοση Η υπολογιστική αποδοτικότητα των υποψήφιων αλγορίθμων θα εξεταστεί τόσο σε σχέση με την υλοποίησή τους σε περιβάλλον λογισμικού όσο και σε περιβάλλον υλισμικού [41]. Παρόλα αυτά η αξιολόγηση στο πρώτο γύρο θα δώσει έμφαση κυρίως στις εφαρμογές λογισμικού ενώ στο δεύτερο στου υλισμικού. Η υπολογιστική αποδοτικότητα αναφέρεται κατά βάση στη ταχύτητα και θα αναλυθεί εξετάζοντας τις βελτιστοποιημένες μορφές των αλγορίθμων που θα έχουν κατατεθεί. Μία ακόμη σημαντική παράμετρος, είναι η σχέση αλγορίθμου και μνήμης. Στις περιπτώσεις της hardware υλοποίησης της συνάρτησης κριτήριο για τη μνήμη αποτελεί ο αριθμός των λογικών πυλών που χρησιμοποιήθηκαν ενώ στις software υλοποιήσεις το μέγεθος του κώδικα και το μέγεθος της μνήμης RAM που καταναλώνεται Πλατφόρμες υλοποίησης Οι αλγόριθμοι θα πρέπει να υλοποιούνται σε μία ευρεία ποικιλία συστημάτων [41]. Πιο συγκεκριμένα εκτός από μια απλή υλοποίηση του αλγορίθμου οι εισηγητές πρέπει να παρέχουν δύο βελτιστοποιημένες εκδόσεις (σε ANSI C) για συστήματα των 32-bit και 64-bit αντίστοιχα. Η απαίτηση αυτή σχετίζεται με την απόδοση του αλγορίθμου τόσο σε συστήματα απλών χρηστών (συνήθως 32-bit) όσο και σε πιο απαιτητικά. Συνάμα επιθυμητή είναι η δυνατότητα για παραλληλοποίηση του υποψήφιου. Το νέο ασφαλές πρότυπο θα πρέπει να έχει και καθολική εφαρμογή ακόμη και σε πιο εξεζητημένα συστήματα, όπου οι πόροι είναι πολλές φορές λιγοστοί. Ειδικότερα είναι αναγκαία η υποστήριξη συστημάτων 8-bit (πχ. Για χρήση έξυπνων καρτών), επεξεργαστών ψηφιακών σημάτων (DSP), εξειδικευμένων CMOS συστημάτων, εφαρμογών επεξεργασίας φωνής, εφαρμογών δορυφορικών επικοινωνιών και γενικότερα εφαρμογών για συστήματα χαμηλής κατανάλωσης. Τέλος ο αλγόριθμος για υλοποιήσεις υλισμικού, όπως αρκετές από τις παραπάνω, θα πρέπει να παρέχεται και σε HDL (Hardware Description Language) μορφή. 122

123 4.3.5 Ζητούμενες εφαρμογές Εξαιτίας της ανάγκης το νέο ασφαλές πρότυπο συνάρτησης κατακερματισμού να είναι και πρακτικά εφαρμόσιμο στις περισσότερες από τις ευρείας χρήσης εφαρμογές ο NIST, παραθέτει και μία σειρά από εφαρμογές στις οποίες η συνάρτηση θα πρέπει να εφαρμόζεται. Ενδεικτικά οι εφαρμογές που αναφέρονται είναι [41]: Ψηφιακές υπογραφές (σύμφωνα με το FIPS 186 2, Digital Signature Standard Αυθεντικοποίηση μηνυμάτων με χρήση συνάρτησης σύνοψης (σύμφωνα με το FIPS 198, The Keyed-Hash MessageAuthentication Code (HMAC)) Ασφαλής ανταλαγή κλειδιών (σύμφωνα με το SP A, Recommendation for Pair- Wise Key Establishment Schemes Using Discrete Logarithm Cryptography Παραγωγή ψευδοτυχαίων αριθμών (σύμφωνα με το SP , Recommendation for Random Number Generation Using Deterministic Random Bit Generators(DRBGs)) Παραγωγή κλειδιών (σύμφωνα με το NIST Special Publication A, key derivation) Αλγόριθμος και χαρακτηριστικά υλοποίησης Προτεραιότητα δίνεται στις υλοποιήσεις με υψηλότερο δείκτη ευελιξίας έτσι ώστε να ικανοποιούν τις ανάγκες των χρηστών. Παραδείγματα ευελιξίας μπορεί να είναι: Η παραμετροποίηση του αλγορίθμου με τρόπο ώστε να μπορεί να εναλλάσσεται ανάμεσα σε αυξημένη ασφάλεια ή απόδοση. Η ικανότητα του αλγορίθμου να εφαρμόζεται με ασφάλεια και αποδοτικότητα σε ευρεία ποικιλία πλατφορμών (όπως πχ. σε έξυπνες κάρτες). Δυνατότητα παραλληλοποίησης (parallelized algorithm) για επίτευξη καλύτερης απόδοσης. Τέλος θεμιτή είναι η σχεδιαστική απλότητα της συνάρτησης σύνοψης. Να σημειωθεί επίσης πως οι σχεδιαστές έχουν τη δυνατότητα να φέρουν και βελτιωμένες εκδόσεις των αλγορίθμων τους (εάν παρατηρηθεί κάποιο μικρής σημασίας πρόβλημα). 123

124 4.4 Χρονοδιάγραμμα διαγωνισμού Ακολουθεί το πρόγραμμα του διαγωνισμού του NIST σύμφωνα με το προηγούμενο διαγωνισμό για την επιλογή του AES [16]. Σημείωση: Τα εκτιμώμενα ορόσημα είναι βασισμένα σε τέσσερα τέταρτα του έτους, σύμφωνα με τον κάτωθεν ορισμό: 1Q 2Q 3Q 4Q Ιανουάριος Μάρτιος Απρίλιος - Ιούνιος Ιούλιος - Σεπτέμβριος Οκτώβριος - Δεκέμβριος 8/2006 Second Cryptographic Hash Workshop: Ανάλυση της τρέχουσας κατάστασης, στρατηγική σχεδίασης συναρτήσεων σύνοψης 4Q/2006 Προσχεδιασμός ελάχιστων απαιτήσεων για το διαγωνισμό Έτος 1 (2007): Έκδοση των ελάχιστων απαιτήσεων αποδοχής και των κριτηρίων αξιολόγησης για δημόσια διαβούλευση. 1Q Παρουσίαση των ελάχιστων απαιτήσεων αποδοχής και των κριτηρίων αξιολόγησης των υποψηφίων στο συνέδριο RSA Conference και FSE /27/07 Τερματισμός περιόδου δημόσιας διαβούλευσης 2Q 4Q Ανάλυση των διάφορων σχολίων Οριστικοποίηση και έκδοση ων ελάχιστων απαιτήσεων αποδοχής και των κριτηρίων αξιολόγησης. Έναρξη περιόδου υποβολής υποψηφιοτήτων. 124

125 Έτος 2 (2008): 4Q Πέρας περιόδου υποβολής υποψηφιοτήτων. Έτος 3 (2009): Επισκόπηση Των υποβληθέντων συναρτήσεων και επιλογή αυτών που πληρούν τις ελάχιστες προϋποθέσεις. 2Q Διεξαγωγή του πρώτου συνεδρίου υποψηφίων και ανακοίνωση όσων πέρασαν στο πρώτο γύρο. Οι εισηγητές των αλγορίθμων παρουσιάζουν τις προτάσεις τους. Δημόσια διαβούλευση σε σχέση με τους υποψήφιους του πρώτου γύρου. 125

126 Έτος 4 (2010): Πέρας περιόδου δημόσιας διαβούλευσης. 2Q Σημείωση: Ανάλογα με τον αριθμό και την ποιότητα των υποψηφίων, o NIST πιθανόν να εκτείνει την περίοδο δημόσιας διαβούλευσης ώστε να δοθεί περισσότερος χρόνος για ανάλυση των υποψηφίων ή μπορεί να συμπεριλάβει επιπρόσθετους γύρους ανάλυσης ώστε να μειωθούν επιτυχώς οι υποψήφιοι. 2Q 3Q 4Q Διεξαγωγή του δεύτερου συνεδρίου υποψηφίων. Συζήτηση σχετικά με τα αποτελέσματα της μέχρι τώρα ανάλυσης. Δυνατότητα βελτιστοποίησης των αλγορίθμων από τους εισηγητές. Ανάλυση των σχολίων σχετικά με τους αλγόριθμους, και επιλογή των φιναλίστ. Ανακοίνωση των φιναλίστ. Έκδοση της σχετικής αναφοράς. Οι εισηγητές των τελευταίων υποψηφίων ανακοινώνουν τις όποιες τελευταίες τροποποιήσεις Έναρξη τελικού γύρου. Έτος 5 (2011): 4Q Πέρας περιόδου δημόσιας διαβούλευσης τελικού γύρου. 126

127 Έτος 6 (2012): 1Q Διεξαγωγή του τελικού συνεδρίου υποψηφίων. Οι εισηγητές των τελευταίων υποψηφίων συζητούν τα σχόλια σε σχέση με τις υποψηφιότητες τους. 2Q 3Q 4Q Ανάλυση των σχολίων και επιλογή του νικητή. Προετοιμασία μίας αναφοράς που περιγράφει την τελική επιλογή. Ανακοίνωση της(-ων) νέας (-ων) συνάρτησης (-εων) σύνοψης Προσχεδιασμός του αναθεωρημένου προτύπου. Έκδοση του προσχεδίου για δημόσιο σχολιασμό. Πέρας περιόδου δημόσιας διαβούλευσης. Ανάλυση δημόσιου σχολιασμού. Αποστολή του νέου πρότυπου στο υπουργείο εμπορίου. 127

128 4.5 Επίλογος Συμπεράσματα Πέντε χρόνια μετά την προτυποποίηση του SHA-1 ως ασφαλή κρυπτογραφική λύση, και εν μέσω σειράς επιθέσεων που δέχτηκαν οι περισσότεροι χρησιμοποιούμενοι αλγόριθμοι για πρώτη φορά ο NIST με τη συνδρομή της επιστημονικής κοινότητας κάλεσε έναν ανοιχτό διαγωνισμό για το νέο ασφαλές πρότυπο. Ο διαγωνισμός αυτός συνάμα θέτει και για πρώτη φορά τα θεμέλια για την ουσιαστική ενασχόληση σε βάθος των ζητημάτων των συναρτήσεων κατακερματισμού. Στο σημείο αυτό πρέπει να σημειωθεί και ο αρνητικός ρόλος που έπαιξε η απόκρυψη πληροφοριών σε σχέση με διάφορες συναρτήσεις σύνοψης και το τρόπο που αυτές λειτουργούσαν (πχ. SHA-0). Το γεγονός αυτό αν και φαινομενικά έδινε το αίσθημα ασφάλειας, στη πράξη καθυστέρησε την εις βάθος επιστημονική ανάλυση και κατανόηση των λειτουργιών (και των μοντέλων κατασκευής) των συναρτήσεων. Ήδη από τα τέλη του 19 ου αιώνα ο A. Kerckhoff διατυπώνοντας τον ομώνυμο νόμο ( Ένα κρυπτοσύστημα πρέπει να είναι ασφαλές ακόμα και αν όλες οι λεπτομέρειες σχετικά με αυτό, εκτός από το κλειδί, είναι δημόσια διαθέσιμες A. Kerckhoff, La cryptographie militaire, 1883") είχε θίξει την παραπάνω κατάσταση [1]. Παρόλο την αυστηρότητα (και πολυπλοκότητα) των κριτηρίων του NIST καθώς επίσης και το σχετικά λίγο διαθέσιμο χρόνο υποβολής (περίπου ένας χρόνος) ο οργανισμός δέχτηκε 64 επίσημες υποβληθείσες προτάσεις, από τις οποίες 51 κάλυψαν τις απαιτήσεις και εισήλθαν στον πρώτο γύρο [37]. Στη τρέχουσα φάση του διαγωνισμού (γύρος δεύτερος) απέμειναν 14 υποψήφιες συναρτήσεις σύνοψης, στις οποίες θα δοθεί βαρύνουσα σημασία στο επόμενο κεφάλαιο. 128

129 129

130 Κεφάλαιο 5 [ανάλυση των υποψηφίων του διαγωνισμού του NIST] 130

131 Δομή του κεφαλαίου Το κεφάλαιο αυτό ασχολείται με τη μελέτη και ανάλυση των αλγόριθμων που είναι υποψήφιοι στο διαγωνισμό του NIST. Αρχικά δίνεται μία επισκόπηση της όλης πορείας του διαγωνισμού χρονικά παρουσιάζοντας τους αλγόριθμους που έγιναν ή δεν έγιναν αποδεκτοί στον κάθε γύρο. Στη συνέχεια δίνεται μία κατηγοριοποίηση των συναρτήσεων βάση κάποιων χαρακτηριστικών τους σε σχέση με τους τρόπους κατασκευής. Ακολουθεί μία συνοπτική ανάλυση των 14 υποψηφίων του δεύτερου γύρου, και έπειτα περιγράφεται η αποδοτικότητα τους. Τέλος παρουσιάζουμε έναν αλγόριθμο αξιολόγησης με βάση τόσο τα κριτήρια του NIST όσο και κάποιες προσωπικές εκτιμήσεις. 131

132 5.1 Γενική επισκόπηση Όπως έγινε γνωστό και στο τέταρτο κεφάλαιο ο NIST, μετά τις ποικίλες επιθέσεις που δέχθηκαν βασικοί κρυπτογραφικοί αλγόριθμοι και έπειτα από δύο αρκετά επιτυχή workshop, το 2007 προκήρυξε διαγωνισμό σχετικά με την εύρεση του νέου Secure Hash προτύπου (SHA-3). Ο NIST δέχθηκε συνολικά 64 προτάσεις, από τις οποίες ωστόσο μόνο οι 56 έγιναν δημόσια γνωστές (οι υπόλοιπες 8 δεν έχουν ανακοινωθεί). Στη συνέχεια παρατίθενται το σύνολο των 56 προτάσεων μαζί με την τρέχουσα κατάστασή τους [16] [37]. 132

133 Αλγόριθμος Εισηγητής Κατάσταση Abacus ARIRANG AURORA Neil Sholer Jongin Lim Masahiro Fujita (Sony) Αποσύρθηκε από τον εισηγητή Αποτυχία εισόδου στο δεύτερο γύρο Αποτυχία εισόδου στο δεύτερο γύρο BLAKE Jean-Philippe Aumasson Είσοδος στο δεύτερο γύρο Blender Dr. Colin Bradbury Αποτυχία εισόδου στο δεύτερο γύρο Blue Midnight Wish Svein Johan Knapskog Είσοδος στο δεύτερο γύρο BOOLE Cheetah CHI CRUNCH Greg Rose Dmitry Khovratovich Phillip Hawkes Jacques Patarin Αποσύρθηκε από τον εισηγητή Αποτυχία εισόδου στο δεύτερο γύρο Αποτυχία εισόδου στο δεύτερο γύρο Αποτυχία εισόδου στο δεύτερο γύρο CubeHash D. J. Bernstein Είσοδος στο δεύτερο γύρο DCH Dynamic SHA Dynamic SHA2 David A. Wilson Xu Zijie Xu Zijie Αποσύρθηκε από τον εισηγητή Αποτυχία εισόδου στο δεύτερο γύρο Αποτυχία εισόδου στο δεύτερο γύρο ECHO Henri Gilbert Είσοδος στο δεύτερο γύρο ECOH EDON-R EnRUPT ESSENCE FSB Daniel R. L. Brown Danilo Gligoroski Sean O Neil Jason Worth Martin Matthieu Finiasz Αποτυχία εισόδου στο δεύτερο γύρο Αποτυχία εισόδου στο δεύτερο γύρο Αποτυχία εισόδου στο δεύτερο γύρο Αποτυχία εισόδου στο δεύτερο γύρο Αποτυχία εισόδου στο δεύτερο γύρο Fugue Charanjit S. Jutla Είσοδος στο δεύτερο γύρο 133

134 Αλγόριθμος Εισηγητής Κατάσταση Grøstl Lars Ramkilde Knudsen Είσοδος στο δεύτερο γύρο Hamsi Ozgul Kucuk Είσοδος στο δεύτερο γύρο JH Hongjun Wu Είσοδος στο δεύτερο γύρο Keccak Joan Daemen Είσοδος στο δεύτερο γύρο Khichidi-1 LANE Lesamnta M Vidyasagar Sebastiann Indesteege Hirotaka Yoshida Αποσύρθηκε από τον εισηγητή Αποτυχία εισόδου στο δεύτερο γύρο Αποτυχία εισόδου στο δεύτερο γύρο Luffa Dai Watanabe Είσοδος στο δεύτερο γύρο LUX MCSSHA-3 MD6 MeshHash NaSHA SANDstorm Sarmal Sgàil Ivica Nikolic Mikhail Maslennikov Ronald L. Rivest Björn Fay Smile Markovski Rich Schroeppel Kerem VARICI Peter Maxwell Αποτυχία εισόδου στο δεύτερο γύρο Αποτυχία εισόδου στο δεύτερο γύρο Αποτυχία εισόδου στο δεύτερο γύρο Αποσύρθηκε από τον εισηγητή Αποτυχία εισόδου στο δεύτερο γύρο Αποτυχία εισόδου στο δεύτερο γύρο Αποτυχία εισόδου στο δεύτερο γύρο Αποτυχία εισόδου στο δεύτερο γύρο Shabal Jean-Francois Misarsky Είσοδος στο δεύτερο γύρο SHAMATA Orhun Kara Αποσύρθηκε από τον εισηγητή SHAvite-3 Orr Dunkelman Είσοδος στο δεύτερο γύρο SIMD Gaetan Leurent Είσοδος στο δεύτερο γύρο Skein Bruce Schneier Είσοδος στο δεύτερο γύρο Spectral Hash StreamHash Cetin Kaya Koc Michal Trojnara Αποτυχία εισόδου στο δεύτερο γύρο Αποσύρθηκε από τον εισηγητή 134

135 Αλγόριθμος Εισηγητής Κατάσταση SWIFFTX Tangle TIB3 Twister Vortex WaMM Waterfall HASH 2X Maraca NKS2D Ponic ZK-Crypt Daniele Micciancio Rafael Alvarez Daniel Penazzi Michael Gorski Michael Kounavis John Washburn Bob Hattersley Jason Lee Robert J. Jenkins Geoffrey Park Peter Schmidt-Nielsen Carmi Gressel Αποτυχία εισόδου στο δεύτερο γύρο Αποσύρθηκε από τον εισηγητή Αποτυχία εισόδου στο δεύτερο γύρο Αποτυχία εισόδου στο δεύτερο γύρο Αποτυχία εισόδου στο δεύτερο γύρο Αποσύρθηκε από τον εισηγητή Αποσύρθηκε από τον εισηγητή Αποτυχία εισόδου στον πρώτο γύρο Αποτυχία εισόδου στον πρώτο γύρο Αποτυχία εισόδου στον πρώτο γύρο Αποτυχία εισόδου στον πρώτο γύρο Αποτυχία εισόδου στον πρώτο γύρο Πίνακας 5.1: Όλοι οι υποψήφιοι του NIST. 135

136 Όπως παρατηρούμε και στον πίνακα οι πέντε τελευταίοι αλγόριθμοι δεν εισήλθαν στον πρώτο γύρο αφού δεν πληρούσαν τα βασικά κριτήρια που έθεσε ο NIST. Συνολικά από τους υποψήφιους οι 51 πέρασαν στον πρώτο γύρο. Από αυτούς 10 αποσύρθηκαν από τους ίδιους τους εισηγητές ως μη ασφαλείς. Οι υπόλοιποι 41 συνέχισαν στον πρώτο γύρο, με αρκετούς από αυτούς ωστόσο να δέχονται σημαντικές επιθέσεις. Τελικά, στο δεύτερο γύρο του διαγωνισμού εισήχθησαν 14 συνολικά συναρτήσεις σύνοψης, ενώ να σημειωθεί ότι επίκειται το δεύτερο συνέδριο του NIST το Ακολουθούν τρεις πίνακες που εμφανίζουν τη χρονική πορεία των αλγόριθμων μέχρι και το δεύτερο γύρο [37]. 136

137 Όνομα αλγόριθμου Submitter Κατάσταση Δυνατότερη επίθεση με βάση τα κριτήρια του NIST Abacus Neil Sholer Κρυπταναλύθηκε 2nd-preimage Boole Greg Rose Κρυπταναλύθηκε collision DCH David A. Wilson Κρυπταναλύθηκε collision HASH 2X Jason Lee Αποτυχία εισόδου στο γύρο 2nd-preimage Khichidi-1 M. Vidyasagar Κρυπταναλύθηκε collision Maraca Robert J. Jenkins Αποτυχία εισόδου στο γύρο preimage MeshHash Björn Fay Κρυπταναλύθηκε 2nd-preimage NKS2D Geoffrey Park Αποτυχία εισόδου στο γύρο Ponic Peter Schmidt- Nielsen Αποτυχία εισόδου στο γύρο collision 2nd-preimage SHAMATA Orhun Kara Κρυπταναλύθηκε collision StreamHash Michal Trojnara Κρυπταναλύθηκε collision Tangle Rafael Alvarez Κρυπταναλύθηκε collision WaMM John Washburn Κρυπταναλύθηκε collision Waterfall Bob Hattersley Κρυπταναλύθηκε collision ZK-Crypt Carmi Gressel Αποτυχία εισόδου στο γύρο Πίνακας 5.2: Συναρτήσεις που δεν πέρασαν στον πρώτο γύρο. Οι παραπάνω συναρτήσεις σύνοψης υποβλήθηκαν στο διαγωνισμό αλλά δεν πέρασαν στον πρώτο γύρο, αφού είτε κρυπταναλύθηκαν είτε αποσύρθηκαν από τους σχεδιαστές τους. 137

138 Όνομα αλγόριθμου Submitter Δυνατότερη επίθεση με βάση τα κριτήρια του NIST Δυνατότερη επίθεση με βάση άλλα κριτήρια ARIRANG Jongin Lim AURORA Masahiro Fujita 2nd preimage Blender Colin Bradbury collision, preimage near-collision Cheetah Dmitry Khovratovich length-extension CHI Phillip Hawkes CRUNCH Jacques Patarin length-extension Dynamic SHA Xu Zijie collision length-extension Dynamic SHA2 Xu Zijie collision length-extension ECOH Daniel R. L. Brown 2nd preimage Edon-R Danilo Gligoroski preimage EnRUPT Sean O'Neil collision ESSENCE Jason Worth Martin collision FSB LANE Lesamnta Matthieu Finiasz Sebastiaan Indesteege Hirotaka Yoshida LUX Ivica Nikolić collision, 2nd preimage MCSSHA-3 Mikhail Maslennikov 2nd preimage MD6 Ronald L. Rivest NaSHA Smile Markovski collision SANDstorm Rich Schroeppel Sarmal Kerem Varıcı preimage Sgàil Peter Maxwell collision Spectral Hash Çetin Kaya Koç collision SWIFFTX Daniele Micciancio TIB3 Daniel Penazzi collision Twister Michael Gorski preimage Vortex Michael Kounavis preimage DRBG,HMAC Πίνακας 5.3: Συναρτήσεις που πέρασαν στον πρώτο γύρο, αλλά όχι και στο δεύτερο γύρο. 138

139 Οι παραπάνω συναρτήσεις σύνοψης υποβλήθηκαν στο διαγωνισμό περνώντας από τον πρώτο γύρο, όχι όμως και από το δεύτερο. Όνομα αλγόριθμου Submitter Δυνατότερη επίθεση με βάση τα κριτήρια του NIST Δυνατότερη επίθεση με βάση άλλα κριτήρια BLAKE Blue Midnight Wish Jean-Philippe Aumasson Svein Johan Knapskog CubeHash Daniel J. Bernstein preimage ECHO Fugue Grøstl Hamsi Henri Gilbert Charanjit S. Jutla Lars R. Knudsen Özgül Küçük JH Hongjun Wu preimage Keccak Luffa Shabal SHAvite-3 SIMD Skein The Keccak Team Dai Watanabe Jean-François Misarsky Orr Dunkelman Gaëtan Leurent Bruce Schneier Πίνακας 5.4: Συναρτήσεις που πέρασαν στο δεύτερο γύρο. Οι παραπάνω είναι οι 14 τελικοί υποψήφιοι οι οποίοι πέρασαν με επιτυχία στο δεύτερο γύρο, μαζί με τις όποιες μέχρι τώρα γνωστές επιθέσεις. 139

140 Επεξήγηση των κρυπταναλυτικών αποτελεσμάτων Με πράσινο χρώμα [compression calls < generic ] Ο αριθμός που καλούνται οι συναρτήσεις συμπίεσης είναι μικρότερος του αριθμού της (των) επίθεσης(-έων) (collision, 2nd preimage or preimage). Η πολυπλοκότητα της επίθεσης είναι πολύ κοντά σε αυτές των γενικών (generic) επιθέσεων και για αυτό το λόγο θεωρείται ελάσσονος σημασίας. Επίσης οι επιθέσεις σε αυτό το μοντέλο ενδεχομένως να μην λαμβάνουν υπόψη τους ζητήματα μνήμης. Εντούτοις, οι επιθέσεις αυτού του τύπου δεν υπάρχουν για στη SHA-2 συνάρτηση κατακερματισμού. Με κίτρινο χρώμα [compression calls < generic * 1/n ] Ο αριθμός που καλούνται οι συναρτήσεις συμπίεσης είναι μικρότερος του αριθμού της (των) επίθεσης(-έων) (collision, 2nd preimage or preimage) σε ένα επίπεδο της τάξης του n (hash size). Οι επιθέσεις σε αυτό το μοντέλο ενδεχομένως να μην λαμβάνουν υπόψη τους ζητήματα μνήμης. Εντούτοις, οι επιθέσεις αυτού του τύπου δεν υπάρχουν για στη SHA-2 συνάρτηση κατακερματισμού. Με πορτοκαλί χρώμα [time * memory < generic * 1/n ] Το γινόμενο του χρόνου και της μνήμης (time * memory) είναι μικρότερο του αριθμού της (των) επίθεσης(-έων) (collision, 2nd preimage or preimage) σε ένα επίπεδο της τάξης του n (hash size). Με κόκκινο χρώμα [ύπαρξη πρακτικού παραδείγματος] Σε αυτή την κατηγορία έχει βρεθεί πρακτικό παράδειγμα της επίθεσης, γεγονός που αυξάνει κατά πολύ τη σημασία της επίθεσης που έχει βρεθεί. 140

141 5.2 Κατηγοριοποίηση υποψηφίων Οι περισσότεροι υποψήφιοι χρησιμοποιούν σχεδιασμούς που διαθέτουν ίσο μέγεθος της εσωτερικής μεταβλητής κατάστασης, με τη σύνοψη και παραθέτουν μετρητές ως αντίμετρο στις επιθέσεις που είναι ευπαθής αυτός ο σχεδιασμός (long-message preimage επιθέσεις). Περίπου το ένα τρίτο των προτάσεων εφαρμόζει παραλλαγές χρήσης salt, ενώ υπάρχουν και κατασκευές που προτείνουν εκδόσεις βασισμένες σε δενδροειδή δομή (πχ Skein). Ακόμη τα δύο τρίτα των υποψηφίων χρησιμοποιούν S-boxes (βλέπε και παράρτημα ΙΙ), ενώ οι υπόλοιποι εφαρμόζουν πράξεις βασισμένες στην αριθμητική για να επιτευχθεί η μη γραμμικότητα. Ταυτόχρονα, σημαντική μερίδα των συναρτήσεων διαθέτει MDS κώδικες για diffusion, ιδέα που έχει παρθεί από τον AES (τον οποίο επίσης εφαρμόζουν πολλοί υποψήφιοι στους εσωτερικούς κύκλους τους). Στη συνέχεια, θα αναλυθούν οι διάφοροι υποψήφιοι σε σχέση με τα ιδιαίτερα χαρακτηριστικά τους καθώς και τις μεθόδους κατασκευής τους. Πιο συγκεκριμένα η κατηγοριοποίηση προκύπτει σύμφωνα με τα ακόλουθα [36] [43]. Feistel Network (FN): Ένα Feistel Network είναι μία γενική μέθοδος μετασχηματισμού μιας οποιαδήποτε συνάρτησης F σε συνάρτηση αντικατάστασης (permutation). Η συνάρτηση F είναι πάντα μη γραμμική και (σχεδόν πάντα) μη αναστρέψιμη. Το Feistel Network έχει δύο χαρακτηριστικά Balanced Feistel Network (B) Μια συνάρτηση συμπίεσης ονομάζεται balanced feistel network, όταν 1. Η εσωτερική της κατάσταση χωρίεζεται σε ένα αριστερό και δεξί μέρος ίσου μεγέθους n. 2. Μία μη γραμμική συνάρτηση F που εξαρτάται από το μήνυμα αντιστοιχεί τα δύο μέρη με δύο εξόδους ίσου μήκους. Unbalanced feistel network (U) Μια συνάρτηση συμπίεσης ονομάζεται unbalanced feistel network όταν βασίζεται σε ένα feistel network όπου η εσωτερική κατάσταση χωρίζεται σε παραπάνω από δύο μέρη ή σε δύο μέρη με διαφορετικό μέγεθος. Wide Pipe σχεδιασμός (WP) Η εσωτερική κατάσταση (για παράδειγμα η μεταμβλητή αλυσίδας) της συνάρτησης σύνοψης έχει μεγαλύτερο μήκος από την τελική σύνοψη. Key Schedule (KEY) Η hash function διαθέτει ένα ρητό σχεδιασμό κλειδιού ή ένα αλγόριθμο επέκτασης μηνύματος. 141

142 MDS Matrix (MDS) Ένας ή περισσότεροι πίνακες Maximum Distance Separable (MDS) χρησιμοποιούνται ως δομικό τμήμα για τη συνάρτηση συμπίεσης. Οι MDS πίνακες έχουν ισχυρές ιδιότητες διάχυσης (diffusion) που μπορούν να χρησιμοποιηθούν σε θεμελιώδη κρυπτογραφικά ζητήματα. Χαρακτηριστικά τους είναι το μέγεθος σε bytes. Output Transformation (OUT) Η συνάρτηση σύνοψης χρησιμοποιεί μία συνάρτηση μετασχηματισμού με την τελική μεταβλητή αλυσίδας ως είσοδο και τη σύνοψη του μηνύματος σαν έξοδο. S-box (SBOX) Η συνάρτηση σύνοψης χρησιμοποιεί ένα ή παραπάνω κουτιά αντικατάστασης (substitution boxes). Γενικά, ένα S-box είναι μία μη γραμμική συνάρτηση που αντιστοιχεί m bit εισόδου σε n bit εξόδου. Συνήθως ένα S-box υλοποιείται με τη μορφή ενός πίνακα εύρεσης. Feedback Shift Register (FSR) Η συνάρτηση συμπίεσης χρησιμοποιεί ένα Feedback Shift Register (FSR). Τα bit εισόδου υπογογίζονται από μία συνάρτηση βάση της προηγούμενης κατάστασης. Addition Rotation XOR (ARX) Η συνάρτηση συμπίεσης περιέχει προσθέσεις, περιστροφές και XOR πράξεις με σκοπό την άρση της γραμμικότητας. Boolean operations (BOOL) Η συνάρτηση συμπίεσης περιέχει βασικές πράξεις της άλγεβρας Boole. Collision Attack Η ύπαρξη επίθεσης τύπου collision με την αντίστοιχη πολυπλοκότητα. Το χαρακτηριστικό Ε συμβολίζει την ύπαρξη πρακτικού παραδείγματος της επίθεσης. (Second) Preimage Attack Η ύπαρξη επίθεσης τύπου (Second) Preimage Attack με την αντίστοιχη πολυπλοκότητα. Το χαρακτηριστικό Ε συμβολίζει την ύπαρξη πρακτικού παραδείγματος της επίθεσης. 142

143 Η εφαρμογή της παραπάνω κατηγοριοποίησης, εμφανίζεται στους ακόλουθους πίνακες Πίνακας 5.5.1: Κατηγοριοποίηση υποψήφιων συναρτήσεων. 143

144 Πίνακας 5.5.2: Κατηγοριοποίηση υποψήφιων συναρτήσεων. 144

145 5.3 Ανάλυση υποψηφίων δεύτερου γύρου Στη συνέχεια παρατίθεται μία συνοπτική ανάλυση των αλγορίθμων (καθώς επίσης και βασικά ζητήματα ασφάλειας που σχετίζονται με αυτούς) που έγιναν δεκτοί στο δεύτερο γύρο του διαγωνισμού BLAKE Η οικογένεια αλγορίθμων BLAKE αποτελείται από τέσσερις συναρτήσεις: BLAKE-28, BLAKE- 32, BLAKE-48, και BLAKE-64, που διαθέτουν υλοποιήσεις για συστήματα τόσο των 32 όσο και των 64 bit [46]. Οι διάφορες εκδόσεις των BLAKE διαφέρουν στις αρχικές τιμές, στο διαφορετικό padding, και στο μετασχηματισμό της τελικής εξόδου. Οι συναρτήσεις ακολουθούν την επαναληπτική διαδικασία HAIFA, όπου η συνάρτηση συμπίεσης εξαρτάται από το salt και ένα μετρητή των bit που έχουν επεξεργαστεί μέχρι εκείνη τη στιγμή, μέσω των οποίων επεξεργάζεται τα τμήματα του μηνύματος με διαφορετικό τρόπο. Η επεξεργασία κάθε τμήματος του μηνύματος λαμβάνει χώρα με την κατασκευή local widepipe. Συνοπτικά, προηγείται μία διαδικασία αρχικοποίησης κατά την οποία η μεταβλητή αλυσίδας επιμηκύνεται βάση του salt και του μετρητή. Έπειτα, ακολουθούν τα στάδια επεξεργασίας του μηνύματος, και τέλος διεξάγεται η οριστικοποίηση όπου επιστρέφεται η επόμενη μεταβλητή αλυσίδας. Πίνακας 5.6: Η οικογένεια αλγορίθμων BLAKE. Είκονα 5.1: Η συνάρτηση BLAKE. 145

146 Η εσωτερική κατάσταση της συνάρτησης συμπίεσης αναπαριστάται από έναν 4x4 πίνακα λέξεων. Κάθε στάδιο επεξεργασίας αποτελεί μίας τροποποίηση (διπλού γύρου) του αλγόριθμου κρυπτογράφησης ροής ChaCha. Κάθε στάδιο κάνει χρήση διαφορετικών σταθερών για να μειωθεί η πιθανότητα ομοιομορφίας (self-similarity). Από σχεδιαστική άποψη ένα πλεονέκτημα που διαθέτει ο BLAKE είναι η απλότητά του, και η χρήση salt μέσα στη δομή του. Ωστόσο, θεωρείται περιοριστικό το μέγεθος του μηνύματος που μπορεί να επεξεργαστεί (2 64 και για τον BLAKE-32 και BLAKE-64 αντίστοιχα) Ταυτόχρονα, η απόδοση του είναι πολύ ικανοποιητική τόσο σε περιβάλλον λογισμικού όσο και υλισμικού. Στο τομέα της ασφάλειας κύρια πλεονεκτήματα του είναι ο σχεδιασμός του που βασίζεται σε ένα εκτενώς μελετημένο αλγόριθμο (ChaCha stream cipher) και οι ανοχές που παρέχει σε επιθέσεις τύπου γενικευμένων second-preimage, side-channel attack (επιθέσεις που βασίζονται στη φυσική υπόσταση του αλγορίθμου, πχ. μέτρηση χρόνων που επεξεργάζεται την πληροφορία, κατανάλωση ενέργειας, ήχοι του συστήματος, μέτρηση της ηλεκτρομαγνητικής ακτινοβολίας κα.), και επιμήκυνσης μηνύματος. Παρόλα αυτά οι αποδείξεις που παρέχονται δεν είναι επιστημονικά αυστηρές, αφού βασίζονται αρκετά σε λογικές απλουστεύσεις που παραπέμπουν σε ομοιότητες με άλλους ασφαλείς αλγόριθμους (ChaCha). Επίσης δεν παρέχεται απόδειξη για την αποφυγή collision, παρά ενδείξεις ότι συγκεκριμένες επιθέσεις δεν έχουν εφαρμογή στον BLAKE. Τέλος άλλα μειονεκτήματα είναι ότι η αντοχή σε Joux s multicollisions είναι ίδιου επιπέδου με τον SHA

147 5.3.2 Blue Midnight Wish (BMW) Η οικογένεια των BMW (BMW224, BMW256, BMW384 και BMW512) ακολουθεί το γενικό μοντέλο που χρησιμοποιείται στις περισσότερες γνωστές συναρτήσεις σύνοψης [47]. Αρχικά έχουμε το στάδιο της προεπεξεργασίας όπου γίνεται το padding του μηνύματος, χωρίζεται σε τμήματα των m-bit, και λαμβάνει χώρα η αρχικοποίηση των μεταβλητών που θα χρησιμοποιηθούν στη συνέχεια. Στη συνέχεια έχουμε τον υπολογισμό της σύνοψης όπου παράγεται το schedule του μηνύματος βάση του οποίου (μαζί με κάποιες συναρτήσεις, σταθερές, και πράξεις μεταξύ των λέξεων) δημιουργείται με επαναληπτικό τρόπο μία σειρά από double pipe τιμές. Τέλος τα n Least Significant Bit της τελικής double pipe τιμής ορίζουν και τη σύνοψη του μηνύματος. Πίνακας 5.7: Η οικογένεια αλγορίθμων BMW. Ο double pipe σχεδιασμός της συνάρτησης σύνοψης παρουσιάζεται στο ακόλουθο σχήμα: Εικόνα 5.2: Double-pipe σχεδιασμός στην BMW. 147

148 Η συνάρτηση συμπίεσης που BMW όπως φαίνεται και παρακάτω λειτουργεί με τη βοήθεια τριών επιμέρους συναρτήσεων f 0,f 1,f 2. Εικόνα 5.3: H συνάρτηση συμπίεσης της BMW. Οι συναρτήσεις f 0,f 1 είναι υπεύθυνες για τη μη γραμμική επέκταση του κάθε block μηνύματος (message expansion), ενώ η f 2 δέχεται σαν είσοδο το επιμηκυνμένο μήνυμα και μέσω μετασχηματισμών παράγει τη σύνοψη. Στο επίπεδο της ασφάλειας, οι δημιουργοί του BMW αποδεικνύουν ότι ο αλγόριθμος μπορεί να αναπαρασταθεί ως ένα γενικό PGV6 σχήμα, αλλά και ως ένα οποιοδήποτε από τα 12 PGV ασφαλή σχήματα (PGV1,PGV2,...,PGV12). Ο PGV6 σχεδιασμός παρέχει προστασία σε επιθέσεις second-preimage, και collision, οπότε θεωρείται ότι και ο BMW διαθέτει την προστασία αυτή. Ακόμα θεωρείται (χωρίς κάποια επιστημονική απόδειξη) υπολογιστικά αδύνατο να βρεθούν collisions, preimages, και second-preimages, με βάσει κάποιες ιδιότητες του BMW (XORing, shifting, rotation των bit, αλλά και προσθέσεις και αφαιρέσεις λέξεων). Ακόμη η χρήση της double pipe δομής είναι ένα αποτελεσματικό μέσo σε differential attacks αφού ο επιτιθέμενος θα χρειαστεί το διπλάσιο αριθμό μεταβλητών από ότι σε μία single pipe. Τέλος, υποστηρίζεται ότι ο BMW είναι ασφαλής στις επιθέσεις του SHA-2 λόγω πολύ μεγάλων διαφορών στον τρόπο κατασκευής τους. 148

149 5.3.3 CubeHash Η κρυπτογραφική συνάρτηση CubeHash r/b-h παράγει μία σύνοψη h-bit ενός μηνύματος, η οποία εξαρτάται από δύο ρυθμιζόμενες (tunable) παραμέτρους r,b [48]. H CubeHash ορίζεται για h Є {8,16,24,...,512}, r Є {1,2,3,...}, b Є {1,2,3,...,128}, με μηνύματα μήκους από 0 μέχρι bit. Σχεδιαστικά ακολουθούνται πέντε βασικά βήματα. 1. Αρχικοποιείται μία κατάσταση 128 byte (1024-bit) ως μία συνάρτηση (h,b,r). 2. Η είσοδος μετατρέπεται σε ένα padded μήνυμα που αποτελείται από ένα ή περισσότερα b-byte τμήματα. 3. Κάθε b-byte τμήμα περνάει από μία XOR, δημιουργώντας έτσι τα πρώτα b-bytes της κατάστασης τα οποία στη συνέχεια αναστρέφονται μέσω r όμοιων κύκλων. 4. Οριστικοποιείται η κατάσταση. 5. Δίνεται η πρώτη h / 8 byte έξοδος της κατάστασης. Εικόνα 5.4: Ο αλγόριθμος CubeHash. 149

150 Συνολικά, ο CubeHash βασίζεται αρκετά στην απλότητα και τη δυνατότητα παραμετροποίησης που προσφέρει, με αντίκτυπο στην ασφάλεια του αλγόριθμου. Στην επίσημη τεκμηρίωση της συνάρτησης από άποψη ασφάλειας δεν δίνονται ιδιαίτερες πληροφορίες, πέρα από μη επιστημονικά τεκμηριωμένες υποθέσεις σε σχέση με first, second preimage επιθέσεις και την ανθεκτικότητα του σε linear και differential attacks. Οι ελλείψεις αυτές γίνονται εμφανείς ιδίως στις ποικίλες επιθέσεις που έχει ήδη δεχτεί ο CubeHash, όπου μάλιστα παρουσιάζονται πρακτικά παραδείγματα από collision (στις εκδόσεις 2/89, 1/45, 2/4-512, 1/36-512, βλέπε παράρτημα VIII) ECHO Ο αλγόριθμος ECHO έχει δημιουργηθεί με βάση τον AES (Advanced Encryption Standard) και το Merkle-Damgard μοντέλο [49]. Ως είσοδο δέχεται το μήνυμα (μήκους μέχρι και bit) και ένα salt (μήκους 128 bit) και μπορεί να παράγει συνόψεις των 128, 224, 256, 384 και 512 bit. Ταυτόχρονα, η συνάρτηση διαθέτει στοιχεία από το HAIFA μοντέλο ενώ κάνει χρήση μίας double-pipe στρατηγικής με σκοπό να παραμερίσει προβλήματα των άλλων μοντέλων που χρησιμοποιεί (για παράδειγμα, multi-collision και herding attacks, στο Merkle-Damgard). Όπως παρατηρείται και από τους παρακάτω πίνακες που δίνονται στη τεκμηρίωση του αλγορίθμου, οι επιθέσεις τύπου preimage, second preimage, collision και multicollision δεν είναι αποτελεσματικότερες από ότι η bruteforce. Επίσης εκτιμάται ότι ο ECHO προσφέρει ασφάλεια και σε length-extension attacks. Πίνακας 5.8: Σύγκριση HAIFA και MD σε σχέση με βασικές επιθέσεις Πίνακας 5.9: Salt και Double-Pipe σε σχέση με βασικές επιθέσεις 150

151 Συνοπτικά, ο ECHO στηρίζεται (από άποψη ασφάλειας) σε μεγάλο βαθμό σε εμπειρικές παρά επιστημονικές προσεγγίσεις που σχετίζονται κυρίως στα μοντέλα κατασκευής που χρησιμοποιεί (MD, HAIFA, double-pipe) και στην ομοιότητα της συνάρτησης συμπίεσης με τον AES. Επίσης, η ισχυριζόμενη αντοχή του αλγορίθμου στη γραμμική και διαφορική κρυπτανάλυση βασίζεται κατά κύριο λόγο στις ιδιότητες confusion και diffusion του AES Fugue Η κρυπτογραφική συνάρτηση Fugue δέχεται εισόδους των bit και παράγει συνόψεις μήκους 224, 256, 384 και 512 bit [50]. Σημαντική ιδιαιτερότητα είναι το γεγονός ότι ο αλγόριθμος δεν χρησιμοποιεί κάποια συνάρτηση συμπίεσης. Ο Fugue βασίζεται στη συνάρτηση σύνοψης Grindahl, με σημαντικές ωστόσο διαφοροποιήσεις (ώστε να αποφεύγονται οι διάφορες επιθέσεις) καθώς και με τη χρήση βασικών στοιχείων του AES (Sboxes), αντικαθιστώντας ωστόσο τους 4x4 mixing πίνακες με 16x16 super mix γεγονός που βελτιώνει σημαντικά τη διάχυση (diffusion). Σε σχέση με την ασφάλεια η τεκμηρίωση αποδεικνύει την ανθεκτικότητα σε second preimage και differential επιθέσεις. Η αντίσταση σε γραμμική κρυπτανάλυση βασίζεται στην ύπαρξη μεγάλου αριθμού S-boxes που προσδίδουν μη γραμμικότητα, ενώ οι meet-in-the-middle επιθέσεις αν και είναι εφικτές θεωρείται πως έχουν αυξημένη πολυπλοκότητα. Οι εισηγητές δεν παρέχουν κάποια επιστημονική απόδειξη για preimage επιθέσεις αλλά θεωρούν πως η πολυπλοκότητά της είναι μεγαλύτερη από αυτή της bruteforce. Συνάμα οι side channel attacks θεωρούνται μη εφικτές με βάση την προστασία που παρέχει ο AES. Τέλος ορίζεται η εφαρμοσιμότητα του αλγορίθμου σε PRF εφαρμογές Grøstl Η συνάρτηση σύνοψης Grostl παράγει συνόψεις μεγέθους 224, 256, 384, και 512 bit [51]. Ο σχεδιασμός της βασίζεται σε ένα απλό επαναληπτικό μοντέλο, κάνοντας χρήση wide pipe κατασκευής ενώ στη συνάρτηση συμπίεσης δανείζεται στοιχεία από τον AES. Η συνάρτηση σύνοψης φαίνεται σχηματικά παρακάτω. Εικόνα 5.5: Η συνάρτηση σύνοψης Grostl. 151

152 Η συνάρτηση συμπίεσης f, δέχεται ένα τμήμα του μηνύματος και τη μεταβλητή αλυσίδας (μήκους l bit), ενώ στο τέλος της επαναληπτικής διαδικασίας υπάρχει μία συνάρτηση μετασχηματισμού Ω. Η f βασίζεται σε δύο συναρτήσεις μεταλλαγής l bit, P και Q, και ορίζεται ως εξής: f(h,m) = P(h XOR m) XOR Q(m) XOR h. Εικόνα 5.6:Η συνάρτηση συμπίεσης f, της Grostl. Ενώ η συνάρτηση μετασχηματισμού Ω υπολογίζει ένα P(x) XOR x και επιστρέφει τα n τελευταία bit ως έξοδο. Εικόνα 5.7:Η συνάρτηση μετασχηματισμού, της Grostl. Στον τομέα της ασφάλειας η Grostl εμφανίζει ιδιότητες μονόδρομης συνάρτησης, ενώ προσφέρει προστασία από second preimage, multicollision, message expansion και collision. Επίσης παρουσιάζεται ότι μία differential attack είναι στην πράξη αρκετά πιο πολύπλοκη από μία birthday attack για την εύρεση collision. Ακόμη υποστηρίζεται η προστασία από γραμμική κρυπτανάλυση ενώ οι ομοιότητες με τον AES ενισχύουν τον ισχυρισμό για ασφάλεια απέναντι σε αλγεβρική κρυπτανάλυση. 152

153 Στους πίνακες που ακολουθούν παρουσιάζονται οι πολυπλοκότητες των επιθέσεων που επιβεβαιώνουν τους παραπάνω ισχυρισμούς. Πίνακας 5.10: Πολυπλοκότητες επιθέσεων στον Grostl Πίνακας 5.11: Πολυπλοκότητες επιθέσεων στον Grostl Hamsi Η οικογένεια των κρυπτογραφικών συναρτήσεων σύνοψης Hamsi αποτελείται από δύο κύριες εκδόσεις, τις Hamsi-256 και Ηamsi-512 ενώ παρέχονται επίσης και οι Hamsi-224 και Hamsi- 384 (με διαφορές στις αρχικές τιμές) [52]. Η βασική σχεδίαση του αλγορίθμου βασίζεται σε ένα επαναληπτικό μοντέλο, και ακολουθεί την Concatenate-Permute-Truncate στρατηγική. Δομικά στοιχεία αυτής της στρατηγικής είναι η επέκταση κάθε για κάθε τμήμα του μηνύματος(message expansion) και η συνένωση του με τη μεταβλητή αλυσίδας (concatation) πριν την επεξεργασία του. Τα δεδομένα που προκύπτουν, υπόκεινται σε έναν μη γραμμικό μετασχηματισμό P (permutation), και ακολουθεί μια διαδικασία περικοπής του μηνύματος για την ελάττωση του μήκους του. Το αποτέλεσμα της περικοπής περνάει από μια λογική πράξη XOR με την προηγούμενη κατάσταση της μεταβλητής αλυσίδας, και εισάγεται στην επόμενη επανάληψη. Η παραγωγή της τελικής σύνοψης του μηνύματος γίνεται κατά την επεξεργασία του τελικού block, με τη διαφορά ότι αντί για το μετασχηματισμό P γίνεται χρήση ενός διαφορετικού μετασχηματισμού P f. Για την κατασκευή των μη γραμμικών μετασχηματισμών, χρησιμοποιούνται οι γραμμικές μεταβολές και τα S-boxes του αλγορίθμου Serpent. 153

154 Σχηματικά έχουμε: Εικόνα 5.8:Η συνάρτηση σύνοψης Hamsi. Στην τεκμηρίωση του Hamsi, υποστηρίζεται η ύπαρξη ασφάλειας για την πλειοψηφία των κρυπταναλυτικών επιθέσεων, χωρίς ωστόσο να παρέχεται κάποια επιστημονική απόδειξη. Επίσης, μέσα στο 2009 εμφανίστηκαν μερικά ζητήματα που σχετίζονται με αδυναμίες του Hamsi. Αναλυτικότερα, αποδείχτηκε η μη αποτελεσματικότητα της συνάρτησης συμπίεσης να λειτουργεί ως συνάρτηση ψευδοτυχαίων αριθμών. Αυτό το ζήτημα δεν θιγεί απαραίτητα την ασφάλεια του αλγορίθμου αλλά διάφορες άλλες ιδιότητες του αλγορίθμου που σχετίζονται με τα κριτήρια του διαγωνισμού. Τέλος τον Αύγουστο του 2009, δημοσιεύτηκαν επιθέσεις nearcollision πάνω στη συνάρτηση Hamsi-256 (ειδικότερα Near collisions με απόσταση Hamming 25 bits with 2 21 CF evaluations) [64] [65]. 154

155 5.3.8 JH Η συνάρτηση σύνοψης JH βασίζεται στο επαναληπτικό μοντέλο [53]. Επεξεργάζεται τμήματα μηνυμάτων μήκους 512 bit και παράγει συνόψεις μήκους 224, 256, 384, 512 bit. Σε κάθε επανάληψη η συνάρτηση συμπίεσης f ανανεώνει τη μεταβλητή αλυσίδας μήκους 1024 bit ως εξής: H i =f(h i-1,m i ) Η συνάρτηση συμπίεση f ορίζεται ως: f(h i 1,M i ) = E(H i 1 XOR M i ) XOR M i Η Ε είναι ένας μετασχηματισμός (permutation) 1024 bit, ενώ το συμβολίζει μία συμβολοσειρά από 512 bit 0. Μετά την επεξεργασία του τελευταίου τμήματος, παράγεται η σύνοψη από περικοπή της μεταβλητής αλυσίδας. Εικόνα 5.9: Η συνάρτηση σύνοψης JH. Η ασφάλεια του JH βασίζεται αρκετά στο γεγονός ότι χρησιμοποιεί περισσότερα από 600 S- boxes καθιστώντας δύσκολες τις διαφορικές επιθέσεις. Ο εισηγητής ισχυρίζεται ότι παρέχεται προστασία απέναντι σε αλγεβρικές, collision, preimage και second preimage επιθέσεις. Ωστόσο, μία πρόσφατη επίθεση που δέχτηκε ο αλγόριθμος (JH-512) δείχνει ότι είναι εφικτή η δημιουργία μίας preimage attack, με μόνο μειονέκτημα το μέγεθος της μνήμης που απαιτείται [66] [67]. 155

156 5.3.9 Keccak Η κρυπτογραφική οικογένεια Keccak βασίζεται στη μέθοδο κατασκευής sponge, και στη κρυπτογραφική συνάρτηση RadioGatún [54]. Το random sponge μοντέλο είναι παρόμοιο με το random oracle με τη διαφορά ότι λαμβάνεται υπόψη η συνέπειες του πεπερασμένου πλήθους καταστάσεων σε μια επαναληπτική συνάρτηση σύνοψης. Εικόνα 5.10: To sponge μοντέλο. Η κατασκευή αυτή βασίζεται σε μια επαναληπτική συνάρτηση μετασχηματισμού (transformation) ή μεταβολής (permutation) f. Έχει μία τελική κατάσταση και χωρίζεται σε δύο φάσεις, τη φάση απορρόφησης (absorbing phase), και τη φάση συμπίεσης(squeezing phase). Αρχικά, στη φάση απορρόφησης τα τμήματα του μηνύματος εισέρχονται στη μεταβλητή κατάστασης περνώντας από λογικές πράξεις XOR που παρεμβάλλονται μεταξύ των συναρτήσεων f. Στη φάση συμπίεσης, τα τμήματα τις εξόδου, μπορούν να εξαχθούν από τη μεταβλητή κατάστασης με ενδιάμεσες εφαρμογές τις συνάρτησης f. Η sponge κατασκευή παρέχει επιστημονικά αποδεδειγμένη ασφάλεια απέναντι σε όλες τις γενικές (generic) επιθέσεις. Τέλος οι λιγοστές κρυπταναλυτικές αναφορές που έχουν δημοσιευτεί (generic attacks) αποδεικνύουν τους ισχυρισμούς του εισηγητή, με μόνη εξαίρεση μία νέας μορφής γενική επίθεση (cube attack) που όμως εφαρμόζεται μόνο σε μειωμένο (από άποψη κύκλων) αλγόριθμο, καθιστώντας την επίθεση πρακτικά αδιάφορη. 156

157 Luffa Ο αλγόριθμος Luffa είναι ακόμα μία πρόταση που βασίζεται στην sponge κατασκευή του Bertoni et al., του οποίου η ασφάλεια βασίζεται μόνο στην τυχαιότητα των μεταβολών(permutation) που χρησιμοποιεί [55]. Σε αντίθεση με την αρχική sponge συνάρτηση, ο Luffa χρησιμοποιεί πολλαπλές μεταβολές σε παράλληλη διάταξη και μία ισχυρότερη συνάρτηση έγχυσης μηνύματος (message injection function). Η κατασκευή διαθέτει 8 S-boxes που εγγυούνται την αναγκαία τυχαιότητα. Εικόνα 5.11: Ο αλγόριθμος Luffa. Οι διάφορες εκδόσεις της οικογένειας Luffa παρουσιάζονται παρακάτω: Πίνακας 5.12: Η οικογένεια αλγορίθμων Luffa. Η τεκμηρίωση αναφέρει πως ο αλγόριθμος είναι ασφαλής απέναντι σε διάφορες γενικές επιθέσεις (Collision, Second Preimage, και Preimage) λόγω της sponge κατασκευής χωρίς όμως να υπάρχουν συγκεκριμένες αποδείξεις. Παρά ταύτα οι εισηγητές αποδεικνύουν την ανθεκτικότητα της συνάρτησης σε διαφορικές επιθέσεις, σε long message, Meet-in-themiddle, και multicollision attacks. Τέλος δεν γίνεται αναφορά σχετικά με γραμμικές και lengthextension επιθέσεις. 157

158 Shabal Η συνάρτηση σύνοψης Shabal βασίζεται σε μία μεταβολή με χρήση κλειδιού P (keyed permutation) που παράγει εξόδους μήκους 192, 224, 256, 384, και 512 bit [56]. Το επαναληπτικό μοντέλο που χρησιμοποιείται διαθέτει 3 μεταβλητές αποθήκευσης (A,B,C) που λειτουργούν παρόμοια με τις μεταβλητές αλυσίδας. Επίσης διαθέτει μία μεταβλητή W που χρησιμεύει ως εσωτερικός μετρητής των τμημάτων του μηνύματος. Ο Shabal αποτελείται από δύο φάσεις. Στην πρώτη επεξεργάζεται σειριακά τα block του μηνύματος, και στη δεύτερη εξάγει την τελική σύνοψη, αφού προηγουμένως έχει επαναληφθεί 3 φορές η επεξεργασία του τελευταίου τμήματος με αμετάβλητο το μετρητή και επιστρέφει ως έξοδο το Β. Σχηματικά έχουμε: Εικόνα 5.12: Η συνάρτηση σύνοψης Shabal. Αναλυτικότερα, η μεταβλητές αποθήκευσης του αλγόριθμου έχουν μήκος 384, 512 και 512 bit (για A,B,C) αντίστοιχα και το τμήμα του μηνύματος Μ 512 bit. Οι πράξει που διεξάγονται μέσα στον αλγόριθμο χρησιμοποιούν λέξεις των 32 bit. Για την ανανέωση της κατάστασης έχουμε: (A',B') = P M,C (A XOR W, B +M ) (A',B',C') = (A',C - M,B') Στην τεκμηρίωση υπάρχει πλήθος αποδείξεων για τις ιδιότητες και την ασφάλεια του αλγορίθμου. Συγκεκριμένα παρέχονται αποδείξεις για ανθεκτικότητα σε Collision, Preimage, second Preimage, Differential Cryptanalysis, Length Extension και MultiCollision επιθέσεις. Τέλος να σημειωθεί ότι η εφαρμογή του αλγορίθμου ως συνάρτηση ψευδοτυχαίων αριθμών δημιουργεί κάποιους προβληματισμούς εξαιτίας μερικών όχι ολοκληρωμένων επιθέσεων σε αυτόν τον τομέα [71] [72] [73]. 158

159 SHAvite-3 Η SHAvite-3 οικογένεια αλγορίθμων χρησιμοποιεί τη γνωστή μέθοδο κατασκευής Davies- Meyer, και έναν block cipher βασισμένο σε μία Feistel κατασκευή που έχει κύκλους AES σαν building block [57]. Η συνάρτηση συμπίεσης με τη σειρά της εφαρμόζει τη HAIFA κατασκευή. O SHAvite-3 δέχεται μηνύματα μήκους (και για μεγαλύτερες από 256 bit συνόψεις) παράγοντας συνόψεις μέχρι και 512 bit. Εικόνα 5.13: Οι AES κύκλοι στη λειτουργία του SHAvite-3. Η χρήση HAIFA αλλά και του AES δίνει αρκετά πλεονεκτήματα ασφαλείας στον αλγόριθμο. Αναλυτικότερα οι εισηγητές παρουσιάζουν την ικανότητα της συνάρτησης συμπίεσης να λειτουργεί ως γεννήτρια ψευδοτυχαίων αριθμών, και την προστασία που παρέχει η HAIFA σε σχέση με collisions. Ακόμη επιχειρείται μέσω στατιστικών αναλύσεων να δειχθεί πως οι preimage και second preimage επιθέσεις είναι δυσκολότερες να επιτευχθούν σε σχέση με την bruteforce. Ταυτόχρονα υπάρχουν ιδιότητες (όπως για παράδειγμα το salting) που μπορεί να καθιστούν αδύνατη ή πολύ δύσκολη την εφαρμογή τέτοιων επιθέσεων. Η χρήση μίας συνάρτησης συμπίεσης που βασίζεται στον AES δίνει συνάμα την ανθεκτικότητα του αλγορίθμου σε γραμμικές, διαφορικές, αλγεβρικές, side-attacks και square attacks. Επίσης η ύπαρξη εσωτερικών μετρητών bit (internal bit counters) που εισάγουν επιπλέον bit στην είσοδο παρέχει προστασία από side channel attacks. Τέλος λόγω των ιδιοτήτων της η SHAvite-3 θεωρείται ασφαλής σε σχέση με length extension attacks. 159

160 SIMD Ο αλγόριθμος SIMD χρησιμοποιεί το Merkle-Damgard μοντέλο [58]. Η ανανέωση της μεταβλητής αλυσίδας μετά από κάθε εφαρμογή της συνάρτησης συμπίεσης υπολογίζεται ως εξής: H i = P(H i-1,e M'i (H i-1 XOR M i )), όπου H i είναι η ι-οστή κατάσταση της συνάρτηση αλυσίδας, το Μ i είναι το i-οστό τμήμα μηνύματος, το Μ' i είναι το αποτέλεσμα του Μ i μετά από μία επέκταση μηνύματος τύπου Reed-Solomon. H E k () είναι μία συνάρτηση κρυπτογράφησης τμήματος βασισμένη στο Feistel μοντέλο. Το P(a,b) είναι μερικοί επιπλέον Feistel κύκλοι με κλειδί το a και μήνυμα το b. Το στάδιο τελικής συμπίεσης παρουσιάζει κάποιες ελαφριές διαφορές σε σχέση με τα προηγούμενα, και η έξοδός του περικόπτεται στο επιθυμητό μέγεθος της σύνοψης. Εικόνα 5.14: Η συνάρτηση σύνοψης SIMD. Εικόνα 5.15: H συνάρτηση συμπίεσης της SIMD. Η τεκμηρίωση παρέχει αποδείξεις σε σχέση με την ασφάλεια του SIMD για γενικού τύπου επιθέσεις (collision, preimage και second preimage). Σημαντικό γεγονός είναι το ότι η μεταβλητή αλυσίδας έχει διπλάσιο μήκος από την τελική σύνοψη αν και η περικοπή γίνεται μόνο στο τελευταίο στάδιο του αλγορίθμου. Ακόμη, παρουσιάζονται αποδείξεις σχετικά με τη ασφαλή χρήση σε MAC και PRF εφαρμογές. Οι ομοιότητες που παρουσιάζει το κρυπτογραφικό μέρος της συνάρτησης συμπίεσης με τον MD5 (και άλλους MD και SHA αλγορίθμους) αίρουν προβληματισμούς σχετικά με την ασφάλειά της αφού δεν υπάρχουν επαρκείς αποδείξεις παρά μόνο βελτιώσεις πάνω στις υπάρχουσες επιθέσεις. Επίσης υποστηρίζεται η αντοχή σε διαφορική κρυπτανάλυση λόγω της message expansion συνάρτησης, που δεν επιτρέπει τη γραμμική εξάπλωση των αλλαγών στα κλειδιά (χωρίς να υπάρχει κάποια επιστημονική απόδειξη για αυτό). Τέλος η τεκμηρίωση δεν αναφέρεται σε επιθέσεις τύπου γραμμικής κρυπτανάλυσης και side channel επιθέσεις (αφού εφαρμόζεται Feistel μοντέλο). 160

161 SKEIN Η οικογένεια συναρτήσεων σύνοψης skein χρησιμοποιεί τη συνάρτηση κρυπτογράφησης τμήματος threefish ως συνάρτηση συμπίεσης και την κατασκευή UBI (unique block iteration) [59]. Ο αλγόριθμος χωρίζεται σε τρεις κατηγορίες με βάση το μέγεθος της μεταβλητής αλυσίδας. Skein-512, που είναι η βασική πρόταση των εισηγητών, χρησιμοποιεί μια εσωτερική μεταβλητή κατάστασης μήκους 512 bit, και απαντάει σε όλες της σημερινές εφαρμογές των συναρτήσεων σύνοψης. Skein-1024, που αποτελεί την ασφαλέστερη πρόταση των εισηγητών, με μεταβλητή κατάστασης μήκους 1024 bit. Skein-256, με μεταβλητή κατάστασης μήκους 256 bit, που αποτελεί την πρόταση με χαμηλές απαιτήσεις σε μνήμη αφού η υλοποίηση της γίνεται με 100 byte μνήμης RAM. Οι διάφορες εκδόσεις του Skein, με κύρια την skein 512, παράγουν συνόψεις μήκους 128, 160, 224, 256, 384 και 512 bit ενώ δέχονται μηνύματα μεγέθους bit. Τα δομικά χαρακτηριστικά της συνάρτησης είναι ο threefish block cipher που χρησιμοποιείται ως συνάρτηση συμπίεσης με δυνατότητα επεξεργασίας τμημάτων μήκους 256,512 και 1024 bit, και η UBI κατασκευή που τοποθετείτε η συνάρτηση συμπίεσης. Η UBI σχεδίαση αποτελεί μια παραλλαγή του Matyas-Meyer-Oseas μοντέλου, κατά την οποία η συνάρτηση συμπίεσης δέχεται σαν είσοδο το αποτέλεσμα μια λογικής πράξης XOR μεταξύ της εξόδου της προηγούμενης επανάληψης και του τμήματος του μηνύματος προς επεξεργασία,μια μεταβλητή τροποποίησης (tweak) και το τμήμα του μηνύματος. Η μεταβλητή τροποποίησης παρέχει πληροφορίες για το αν αναλύεται το πρώτο ή το τελευταίο block και έναν μετρητή. Επίσης η χρήση του UBI μοντέλου από τον Skein γίνεται σε τρεις φάσεις (προεπεξεργασίας, μηνύματος, τελική) όπως παρουσιάζεται και στο ακόλουθο σχήμα Εικόνα 5.15: χρήση του UBI μοντέλου από τον Skein. 161

162 Εικόνα 5.16: O αλγόριθμος Skein. Σχετικά με την ασφάλεια παρέχονται αποδείξεις, για collisions, preimage, multicollisions, και near collisions επιθέσεις [75]. Την ίδια στιγμή, επισημαίνονται οι ιδιότητες του αλγορίθμου ως συνάρτηση ψευδοτυχαίων αριθμών και η χρήση της ως HMAC και PRF. Ωστόσο σχετικά με τη συνάρτηση συμπίεσης ThreeFish δεν παρέχονται επαρκείς αποδείξεις για preimage και collision επιθέσεις [74]. Τέλος η ανθεκτικότητα σε διαφορική και γραμμική κρυπτανάλυση βασίζεται μόνο σε πρακτικά παραδείγματα. 162

163 5.4 Αποδοτικότητα Αλγορίθμων Ένα ακόμη σημαντικό κριτήριο στο διαγωνισμό του NIST είναι η αποδοτικότητα των συναρτήσεων σύνοψης [41] [42] [44] [45]. Ακολουθεί μία συγκριτική μελέτη όλων των υποψηφίων του πρώτου γύρου σε σχέση με τον αλγόριθμο SHA-2. Η κατάταξη λαμβάνει χώρα σύμφωνα με τον ακόλουθο πίνακα. Ταχύτητα Κατάταξη x< ½ SHA-2 AA ½ SHA-2 x< ¾ SHA-2 A ¾ SHA-2 x< SHA-2 B SHA-2 x < 5/4 SHA-2 C 5/4 SHA-2 x 2 SHA-2 D x>2 SHA-2 E Πίνακας 5.13: Συμβολισμοί σχετικά με την κατάταξη αποδοτικότητας υποψήφιων αλγορίθμων. 163

164 Πίνακας : Κατάταξη αποδοτικότητας υποψήφιων αλγορίθμων. 164

165 Πίνακας : Κατάταξη αποδοτικότητας υποψήφιων αλγορίθμων. 165

166 Πίνακας : Κατάταξη αποδοτικότητας υποψήφιων αλγορίθμων. 166

167 5.4.1 Απαιτήσεις Αλγορίθμων σχετικά με τις RAM/ROM Πέρα από την παραπάνω ανάλυση που έγινε σε 32 και 64 bit αρχιτεκτονικές, μεγάλο ενδιαφέρον παρουσιάζει η εφαρμογή τους σε low-end συστήματα, που είναι κρίσιμες οι απαιτήσεις στη μνήμη. H θεωρητική και πρακτική απόδοση των 14 τελικών υποψήφιων του δεύτερου γύρου σε χαμηλής κατανάλωσης 8-bit CPUs παρουσιάζεται στη συνέχεια [42] Blake Οι απαιτήσεις του Blake σε μνήμη RAM εκτιμούνται μικρότερες από αυτές του SHA-256. Ακόμη εκτιμάται ότι το key schedule και η συνάρτηση mixing χρειάζονται 0 και 64 bytes αντίστοιχα. Συνολικά οι απαιτήσεις του Blake σε RAM είναι μικρές (96 bytes) Εκτιμάται ότι το αρχικό διάνυσμα (initial vector), οι σταθερές, και ο πίνακας εύρεσης χρειάζονται 32, 64 και 80 bytes ROM αντίστοιχα BMW Οι απαιτήσεις του BMW σε μνήμη RAM είναι συγκρίσιμες με αυτές του SHA-256. Ακόμη εκτιμάται ότι το key schedule και η συνάρτηση mixing χρειάζονται 0 και 64 bytes αντίστοιχα. Συνολικά οι απαιτήσεις του BMW σε RAM είναι μικρές (192 bytes) Εκτιμάται ότι το αρχικό διάνυσμα (initial vector), οι σταθερές, και ο πίνακας εύρεσης χρειάζονται 64, 128 και 0 bytes ROM αντίστοιχα Cubehash Οι απαιτήσεις του Cubehash σε μνήμη RAM είναι συγκρίσιμες με αυτές του SHA-256. Ακόμη εκτιμάται ότι το key schedule και η συνάρτηση mixing χρειάζονται 0 και 128 bytes αντίστοιχα. Συνολικά οι απαιτήσεις του Cubehash σε RAM είναι μικρές (128 bytes) Εκτιμάται ότι το αρχικό διάνυσμα (initial vector), οι σταθερές, και ο πίνακας εύρεσης χρειάζονται 128, 0 και 0 bytes ROM αντίστοιχα ECHO Οι απαιτήσεις του ECHO σε μνήμη RAM εκτιμούνται υψηλότερες από αυτές του SHA-512. Ακόμη εκτιμάται ότι το key schedule και η συνάρτηση mixing χρειάζονται 0 και 256 bytes αντίστοιχα. Συνολικά οι απαιτήσεις του ECHO σε RAM είναι μικρές (320 bytes) Εκτιμάται ότι το αρχικό διάνυσμα (initial vector), οι σταθερές, και ο πίνακας εύρεσης χρειάζονται 64, 0 και 256 bytes ROM αντίστοιχα. 167

168 Fugue Οι απαιτήσεις του Fugue σε μνήμη RAM είναι συγκρίσιμες με αυτές του SHA-256. Ακόμη εκτιμάται ότι το key schedule και η συνάρτηση mixing χρειάζονται 0 και 120 bytes αντίστοιχα. Συνολικά οι απαιτήσεις του Fugue σε RAM είναι μικρές (120 bytes). Εκτιμάται ότι το αρχικό διάνυσμα (initial vector), οι σταθερές, και ο πίνακας εύρεσης χρειάζονται 120, 0 και 256 bytes ROM αντίστοιχα Grøstl Οι απαιτήσεις του Grøstl σε μνήμη RAM είναι συγκρίσιμες με αυτές του SHA-256. Ακόμη εκτιμάται ότι το key schedule και η συνάρτηση mixing χρειάζονται 0 και 64 bytes αντίστοιχα. Συνολικά οι απαιτήσεις του Grøstl σε RAM είναι μικρές (128 bytes). Εκτιμάται ότι το αρχικό διάνυσμα (initial vector), οι σταθερές, και ο πίνακας εύρεσης χρειάζονται 32, 0 και 256 bytes ROM αντίστοιχα Hamsi Οι απαιτήσεις του Hamsi σε μνήμη RAM εκτιμούνται μικρότερες από αυτές του SHA-256. Ακόμη εκτιμάται ότι το key schedule και η συνάρτηση mixing χρειάζονται 0 και 64 bytes αντίστοιχα. Συνολικά οι απαιτήσεις του Hamsi σε RAM είναι μικρές (96 bytes) Εκτιμάται ότι το αρχικό διάνυσμα (initial vector), οι σταθερές, και ο πίνακας εύρεσης χρειάζονται 32, 128 και 2056 bytes ROM αντίστοιχα JH Οι απαιτήσεις του JH σε μνήμη RAM είναι συγκρίσιμες με αυτές του SHA-256. Ακόμη εκτιμάται ότι το key schedule και η συνάρτηση mixing χρειάζονται 0 και 128 bytes αντίστοιχα. Συνολικά οι απαιτήσεις του JH σε RAM είναι μικρές (128 bytes). Εκτιμάται ότι το αρχικό διάνυσμα (initial vector), οι σταθερές, και ο πίνακας εύρεσης χρειάζονται 128, 0 και 16 bytes ROM αντίστοιχα Keccak Οι απαιτήσεις του Keccak σε μνήμη RAM είναι συγκρίσιμες με αυτές του SHA-256. Ακόμη εκτιμάται ότι το key schedule και η συνάρτηση mixing χρειάζονται 0 και 200 bytes αντίστοιχα. Συνολικά οι απαιτήσεις του Keccak σε RAM είναι μικρές (200 bytes). Εκτιμάται ότι το αρχικό διάνυσμα (initial vector), οι σταθερές, και ο πίνακας εύρεσης χρειάζονται 0, 144 και 0 bytes ROM αντίστοιχα. 168

169 Luffa Οι απαιτήσεις του Luffa σε μνήμη RAM εκτιμούνται μικρότερες από αυτές του SHA-256. Ακόμη εκτιμάται ότι το key schedule και η συνάρτηση mixing χρειάζονται 0 και 96 bytes αντίστοιχα. Συνολικά οι απαιτήσεις του Luffa σε RAM είναι μικρές (96 bytes) Εκτιμάται ότι το αρχικό διάνυσμα (initial vector), οι σταθερές, και ο πίνακας εύρεσης χρειάζονται 96, 192 και 8 bytes ROM αντίστοιχα Shabal Οι απαιτήσεις του Shabal σε μνήμη RAM είναι συγκρίσιμες με αυτές του SHA-256. Ακόμη εκτιμάται ότι το key schedule και η συνάρτηση mixing χρειάζονται 0 και 176 bytes αντίστοιχα. Συνολικά οι απαιτήσεις του Shabal σε RAM είναι μικρές (176 bytes). Εκτιμάται ότι το αρχικό διάνυσμα (initial vector), οι σταθερές, και ο πίνακας εύρεσης χρειάζονται 0, 0 και 0 bytes ROM αντίστοιχα Shavite-3 Οι απαιτήσεις του Shavite-3 σε μνήμη RAM είναι συγκρίσιμες με αυτές του SHA-256. Ακόμη εκτιμάται ότι το key schedule και η συνάρτηση mixing χρειάζονται 64 και 32 bytes αντίστοιχα. Συνολικά οι απαιτήσεις του Shavite-3 σε RAM είναι μικρές (128 bytes). Εκτιμάται ότι το αρχικό διάνυσμα (initial vector), οι σταθερές, και ο πίνακας εύρεσης χρειάζονται 32, 0 και 256 bytes ROM αντίστοιχα SIMD Οι απαιτήσεις του SIMD σε μνήμη RAM εκτιμούνται υψηλότερες από αυτές του SHA-512. Ακόμη εκτιμάται ότι το key schedule και η συνάρτηση mixing χρειάζονται 256 και 64 bytes αντίστοιχα. Συνολικά οι απαιτήσεις του SIMD σε RAM είναι μικρές (384 bytes) Εκτιμάται ότι το αρχικό διάνυσμα (initial vector), οι σταθερές, και ο πίνακας εύρεσης χρειάζονται 64, 0 και 32 bytes ROM αντίστοιχα. 169

170 Skein Οι απαιτήσεις του Skein σε μνήμη RAM εκτιμούνται μικρότερες από αυτές του SHA-256. Ακόμη εκτιμάται ότι το key schedule και η συνάρτηση mixing χρειάζονται 64 και 32 bytes αντίστοιχα. Συνολικά οι απαιτήσεις του Skein σε RAM είναι μικρές (96 bytes) Εκτιμάται ότι το αρχικό διάνυσμα (initial vector), οι σταθερές, και ο πίνακας εύρεσης χρειάζονται 32, 16 και 0 bytes ROM αντίστοιχα. 170

171 Τα παραπάνω σε σύγκριση με τα αποτελέσματα που δίνουν οι εισηγητές φαίνονται στον παρακάτω πίνακα. Αλγόριθμος RAM (bytes) έρευνας RAM(bytes) δοθέντα από τους εισηγητές στοιχεία Κατάταξη BLAKE SMALL BMW MIDDLE CUBEHASH MIDDLE ECHO LARGE FUGUE MIDDLE Grøstl 128 <100 MIDDLE HAMSI 96 - SMALL JH MIDDLE KECCAK MIDDLE LUFFA SMALL SHABAL MIDDLE Shavite MIDDLE SIMD LARGE SKEIN 96 - SMALL Πίνακας 5.15: Συνολική κατάταξη αποδοτικότητας. Το - αναφέρεται σε αλγόριθμους στους οποίους οι συγγραφείς δεν έδωσαν αναμένουσα RAM απόδοση. Κατηγοριοποίηση SMALL, εδώ κατατάσσονται οι αλγόριθμοι που έχουν απαιτήσεις μνήμης μικρότερες από αυτές της SHA-256 (πιο συγκεκριμένα οι απαιτήσεις RAM είναι μικρότερες των 100 bytes). MIDDLE, εδώ κατατάσσονται οι αλγόριθμοι που έχουν απαιτήσεις μνήμης ανάλογες αυτών της SHA-256 (πιο συγκεκριμένα οι απαιτήσεις RAM είναι ανάμεσα στα 100 και τα 250 bytes). LARGE, εδώ κατατάσσονται οι αλγόριθμοι που έχουν απαιτήσεις μνήμης μεγαλύτερες από αυτές της SHA-256 (πιο συγκεκριμένα οι απαιτήσεις RAM είναι παραπάνω από 250 bytes). 171

172 5.5 Αξιολόγηση υποψήφιων Στη συνέχεια και με βάση τα όσα προαναφέρθηκαν και λαμβάνοντας υπόψιν τα κριτήρια του διαγωνισμού Ο αλγόριθμος αξιολόγησης που προτείνουμε χρησιμοποιεί τα ακόλουθα κριτήρια. Η ικανότητα του υποψήφιου να παρέχει ανθεκτικότητα στις περισσότερες από τις υπάρχουσες επιθέσεις. Σημαντική θεωρείται εδώ η επιστημονική τεκμηρίωση που παρέχεται. Αποδοτικότητα αλγορίθμου. Όπως γίνεται κατανοητό, πέρα από την ασφάλεια ο αλγόριθμος απαιτείται να παρέχει αποδοτικές λύσεις στις διάφορες εφαρμογές του. Εφαρμογές & Παραμετροποίηση. Εκτός από τις κλασικές εφαρμογές ως συνάρτηση σύνοψης, δίνεται βάρος και στη δυνατότητα του υποψηφίου να ανταπεξέλθει στις απαιτήσεις άλλων εφαρμογών (PRF κα.). Σχεδίαση του αλγορίθμου. Εξετάζεται η πρωτοτυπία καθώς και η πρακτικότητα του σχεδιασμού. Τεκμηρίωση. Δίνεται βάρος στη σωστή τεκμηρίωση που παρέχουν οι εισηγητές. Άλλα κριτήρια και δικές μας εκτιμήσεις. Η αξιολόγηση των κριτηρίων γίνεται με κλίμακα που κυμαίνεται από το 0 μέχρι το 10 (με αύξουσα θετική σημασία). Κριτήρια Βαρύτητα Ασφάλεια 50.00% Αποδοτικότητα αλγορίθμου 30.00% Εφαρμογές & Παραμετροποίηση 5.00% Σχεδίαση του αλγορίθμου 5.00% Τεκμηρίωση 5.00% Άλλα κριτήρια 5.00% Πίνακας 5.16: Κριτήρια αλγόριθμου αξιολόγησης. 172

173 Αλγόριθμος Ασφάλεια Αποδοτικότητα αλγορίθμου Εφαρμογές & Παραμετρο ποίηση Σχεδίαση του αλγορίθμ ου Τεκμηρίωση Άλλα κριτήρια Σύνολο [M.O] BLAKE BMW CUBEHASH ECHO FUGUE Grøstl HAMSI JH KECCAK LUFFA SHABAL Shavite SIMD SKEIN Σύνολο Μ.Ο Πίνακας 5.17: Συνολική αξιολόγηση αλγορίθμων. Τα αποτελέσματα εφαρμογής του αλγορίθμου που προτείναμε παρουσιάζονται στον παραπάνω πίνακα. Η έλλειψη επαρκούς βιβλιογραφίας και κρυπτανάλυσης στους υποψήφιους του δεύτερου γύρου, οδηγεί μοιραία στην ύπαρξη αρκετών υποκειμενικών ισχυρισμών ωστόσο μπορούν να εξαχθούν ποικίλα ενδιαφέροντα συμπεράσματα. Να σημειωθεί σε αυτό το σημείο πως χρησιμοποιήσαμε εκτός των άλλων για τις μετρήσεις της αποδοτικότητας και το εργαλείο SUPERCOP του EBASH ( Λεπτομέρειες περιέχονται στο CD που συνοδεύει τη διπλωματική. Συγκεκριμένα, υπάρχουν 2 αδύναμες υποψηφιότητες (αυτές των CubeHash και JH), αρκετές που θεωρούνται τουλάχιστον ικανοποιητικές, καθώς και κάποιες που προηγούνται ελαφρά (με κύριους τους Skein, Shabal, και Luffa). Τα τελικά συμπεράσματα παρουσιάζονται στο επόμενο κεφάλαιο. 173

174 174

175 Ενότητα 3 [συμπεράσματα] Η τεχνική ικανότητα σημαίνει κατάκτηση της πολυπλοκότητας, ενώ η δημιουργικότητα σημαίνει κατάκτηση της απλότητας. Christopher E. Zeeman 175

176 Κεφάλαιο 6 [Συμπεράσματα - Μελλοντική Εργασία - Επίλογος ] 176

177 6.1 Συμπεράσματα Η κρυπτογραφία έχει φθάσει στις μέρες μας να αποτελεί ένα σημαντικό και αναγκαίο στοιχείο σε πολλούς και διαφορετικούς τομείς (ανάγκη για ιδιωτικότητα, ακεραιότητα, εμπιστευτικότητα κα.) της καθημερινής ζωής. Από την πλευρά τους οι συναρτήσεις σύνοψης φαίνεται όλο και περισσότερο πως φέρουν ένα βασικότατο ρόλο, ως ένας από τους θεμέλιους λίθους της. Οι πολλές και διαφορετικές εφαρμογές (ψηφιακές υπογραφές, αυθεντικοποίηση μηνυμάτων, ακεραιότητα, γεννήτριες ψευδοτυχαίων αριθμών κα.) τους καθώς και η φαινομενική τουλάχιστον ασφάλειά τους έρχονται να εδραιώσουν την άποψη αυτή. Όπως παρουσιάστηκε και στα παραπάνω κεφάλαια η πλειοψηφία των υπάρχοντων συναρτήσεων κατακερματισμού βασίζεται (ή έχει σημαντικές ομοιότητες) με το Merkle- Damgard μοντέλο. Αυτό έχει συμβεί κυρίως λόγω της απλότητας του μοντέλου όσο και της ελλιπής ανάλυσης των ιδιοτήτων του MD αλλά και γενικότερα του τομέα της κατασκευής συναρτήσεων σύνοψης. Ωστόσο έχουν εμφανιστεί ποικίλες αδυναμίες του μοντέλου, γεγονός που έχει ως αποτέλεσμα την ύπαρξη προτάσεων τόσο ενίσχυσης του υπάρχοντος όσο και νέων πρωτοποριακών δομών. Κυρίως μετά το 2005 και ύστερα εμφανίζεται μία σειρά επιθέσεων με στόχο τις βασικές και ευρέως χρησιμοποιούμενες συναρτήσεις κατακερματισμού και των δομών τους. Το γεγονός αυτό σε συνδυασμό με την αυξανόμενη ισχύ των υπολογιστικών συστημάτων δημιούργησε όπως είναι λογικό προβληματισμούς. Ωστόσο hash functions, όπως η MD5, που πλέον επίσημα θεωρούνται μη ασφαλείς χρησιμοποιούνται σε πολλές καθημερινές δραστηριότητες. Ταυτόχρονα γίνεται η εμφάνιση εύκολα υλοποιήσιμων πρακτικών επιθέσεων (βλέπε παραρτήματα VI, IX,) όπως και το πρόγραμμα που δημιουργήθηκε (παράρτημα X) για την κατασκευή συγκρουόμενων (colliding) PostScript αρχείων. Όλα τα παραπάνω γέννησαν τις συνθήκες για τη διεξαγωγή ενός ανοιχτού διαγωνισμού για την εύρεση ενός νέου ασφαλούς προτύπου, με ταυτόχρονη αποχώρηση των υπαρχόντων μη ικανοποιητικών (ιδίως MD5 αλλά και SHA-1). Αυτήν ακριβώς την αναγκαιότητα υπόσχεται να καλύψει ο διαγωνισμός του NIST που ξεκίνησε το Η κρισιμότητα του διαγωνισμού έγινε εμφανής και από το μεγάλο πλήθος των αρχικών υποψηφίων, παρά τα αρκετά και απαιτητικά κριτήρια που έθεσε ο οργανισμός (64 συνολικά υποψηφιότητες). Αυτό όπως είναι λογικό είχε και ως αποτέλεσμα μία σχετική προχειρότητα σε κάποιους από τους αλγόριθμους (πχ. Αρκετοί κρυπταναλύθηκαν σε σύντομο χρονικό διάστημα). Ο διαγωνισμός πλέον βρίσκεται στο 2 ο στάδιο με 14 συνολικά υποψηφιότητες, ενώ αναμένεται το δεύτερο συνέδριο το Ωστόσο ακόμη και σε αυτό το στάδιο (παρόλο που δεν είναι πρώιμο) παρατηρείται έλλειψη εκτενούς ανάλυσης των υποψηφίων. Σε αυτά τα πλαίσια θεωρούμε πως η προσπάθειά μελέτης και αξιολόγησης που διεξάγαμε έρχεται να συνεισφέρει με τον τρόπο της στο γενικότερο επιστημονικό διάλογο. 177

178 Μία πρώτη ανάλυση των αποτελεσμάτων εμφανίζει μία σχετική ανωτερότητα κάποιων υποψηφίων. Παρόλα αυτά η προαναφερθείσα έλλειψη ανάλυσης όσο και το γεγονός ότι η αποδοτικότητα παρουσιάζει ακόμη δυσκολίες στη μέτρηση (κάποια έτοιμα εργαλεία όπως το SUPERCOP του EBASH -ECRYPT Benchmarking of All Submitted Hashes- είτε δεν περιέχουν ακόμη όλους τους υποψήφιους είτε εμφανίζουν μεγάλη πολυπλοκότητα στην ανάλυση των αποτελεσμάτων τους) καθιστούν τα αποτελέσματα αυτά ακόμη πρώιμα. 6.2 Μελλοντική Εργασία Εμφανής έγινε από τα συμπεράσματα η ανάγκη για ουσιαστικότερη μελέτη των 14 συναρτήσεων σύνοψης του δεύτερου γύρου του διαγωνισμού του NIST. Κάτι τέτοιο θα οδηγήσει και σε ορθότερα και πιο συμπαγή αποτελέσματα σε σχέση με τη συνολική αξιολόγηση και τελικά την εύρεση του κατάλληλου αλγορίθμου για το νέο πρότυπο SHA-3. Κάποια ήδη υπάρχοντα εργαλεία, όπως αυτό του SUPERCOP περιέχουν επίσης περιθώρια βελτίωσης. Αρχικά είναι σημαντική η προσθήκη όλων των συναρτήσεων κατακερματισμού που έγιναν δεκτοί στο δεύτερο γύρο του διαγωνισμού (αλλά συνάμα και η απαλοιφή κάποιων που πλέον δεν φέρουν ιδιαίτερη σημασία). Επίσης αναγκαία κρίνεται η ευκολία στην ανάλυση των αποτελεσμάτων του εργαλείου. Σημαντική θεωρούμε ακόμη πως είναι η βελτίωση και υλοποίηση των διαφόρων πρακτικών επιθέσεων, ώστε να γίνει κατανοητή ακόμη περισσότερο στο μέσο χρήστη η ανάγκη για εφαρμογή νέων και ασφαλέστερων συναρτήσεων σύνοψης. 6.3 Επίλογος Τέλος θεωρούμε πως πέρα από την αποτελεσματικότητα του νέου προτύπου εξίσου σημαντική είναι και η συστηματική εκπαίδευση και πληροφόρηση του απλού χρήστη με αποτελεσματικές πολιτικές ασφάλειας ώστε να αποφεύγονται περιπτώσεις κακής χρήσης και δυσνόησης του τι μπορεί να προσφέρει μία κρυπτογραφική συνάρτηση σύνοψης και τι όχι. 178

179 Βιβλιογραφικές Αναφορές [1] wikipedia, the free encyclopedia [2] Ασφάλεια Πληροφοριακών Συστημάτων, Σωκράτης Κ. Κάτσικας, Δημήτρης Γκρίτζαλης, Στέφανος Γκρίτζαλης [3] The Codebreakers: The Comprehensive History of Secret Communication from Ancient Times to the Internet, David Kahn [4] Τεχνικές Κρυπτογραφίας & Κρυπτανάλυσης, Β.Α Κάτος, Γ. Χ. Στεφανίδης [5] Ασφάλεια Δικτύων Υπολογιστών, Σωκράτης Κ. Κάτσικας, Δημήτρης Γκρίτζαλης, Στέφανος Γκρίτζαλης [6] Hash functions: Theory, attacks, and applications, Microsoft Research, Silicon Valley Campus Ilya Mironov [7] Handbook of applied cryptography, A. Menezes [8] A design principle for hash functions, Ivan Damgård, Advances in Cryptology: CRYPTO 89, volume 435 of Lecture Notes in Computer Science [9] Hash functions based on block ciphers, B. Preneel, R. Govaerts and J. Vandewalle. In Advances in Cryptology, CRYPTO 93, Lecture Notes in Computer Science [10] Analysis and design of cryptographic hash functions, Bart Preneel. [11] 3C A provably secure pseudorandom function and message authentication code, Praveen Gauravaram, William Millan, Juanma Gonzalez Nieto and Edward Dawson. [12] Federal Information Processing Standards Publication 180-2, SECURE HASH STANDARD 2002 [13] RIPEMD160 website [14] The WHIRLPOOL Hashing Function, Barreto, Paulo S.L.M. and Rijmen, Vincent 2003 [15] Analysis of Zipper as a Hash Function Pin Lin, Wenling Wu, ChuankunWu, and Tian Qiu [16] NIST website 179

180 [17] Hash Functions: Present State of the Art, Bart Preneel [18] Cryptographic Hash Functions: Dead or Alive?, Bart Preneel [19] A Failure-Friendly Design Principle for Hash Functions, Stefan Lucks [20] Seven-Property-Preserving Iterated Hashing: ROX Elena Andreeva, Gregory Neven, Bart Preneel, Thomas Shrimpton [21] A Framework for Iterative Hash Functions HAIFA, Eli Biham, Orr Dunkelman [22] Tiger: A Fast New Hash Function Ross Anderson and Eli Biham [23] Cryptanalysis of the Tiger Hash Function, Florian Mendel and Vincent Rijmen [24] On the security of tiger hash function, Onur Ozen [25] Antoine Joux. Multi-collisions in iterated hash functions. Application to Cascade Constructions. [26] Herding Hash Functions and the Nostradamus Attack, John Kelsey, Tadayoshi Kohno [27] Hash Functions and the (Amplified) Boomerang Attack, Antoine Joux and Thomas Peyrin [28] The Boomerang Attack, David Wagner [29] Efficient Collision Search Attacks on SHA-0, Xiaoyun Wang, Hongbo Yu, and Yiqun Lisa Yin [30] Cryptanalysis of the hash functions md4 and ripemd, Xiaoyun Wang, Xuejia Lai, Dengguo Feng, Hui Chen, and Xiuyuan Yu [31] Cryptanalysis of md4, Master s thesis, Graz University of Technology Martin Schlaffer [32] New message difference for md4,yu Sasaki, Lei Wang, Kazuo Ohta, and Noboru Kunihiro [33] Finding SHA-1 Characteristics: General Results and Applications, Christophe De Canniere and Christian Rechberger [34] SHA-1 collisions now 2 52, Cameron McDonald, Philip Hawkes and Josef Pieprzyk [35] Richared D. Dean, Formal Aspects of Mobile Code Security., Ph.D. dissertation, Princeton University 180

181 [36] The State of Hash Functions and the NIST SHA-3 Competition, Bart Preneel [37] [38] Workshop Report The First Cryptographic Hash Workshop, Shu-jen Chang and Morris Dworkin Information Technology Laboratory, National Institute of Standards and Technology, Gaithersburg, MD [39] Workshop Report The Second Cryptographic Hash Workshop James Nechvatal and Shu-jen Chang Information Technology Laboratory, National Institute of Standards and Technology, Gaithersburg, MD [40] SECURE HASH STANDARD, Federal Information Processing Standards, Publication [41] DEPARTMENT OF COMMERCE, National Institute of Standards and Technology [Docket No.: ], Announcing the Development of New Hash Algorithm(s) for the Revision of Federal Information Processing Standard (FIPS) 180 2, Secure Hash Standard [42] A Study on RAM Requirements of Various SHA-3 Candidates on Low-cost 8-bit CPUs, Kota Ideguchi, Toru Owada, Hirotaka Yoshida [43] Classication of the SHA-3 Candidates, Ewan Fleischmann, Christian Forler, and Michael Gorski [44] Hardware Implementation of the Compression Function for Selected SHA-3 Candidates, A. H. Namin and M. A. Hasan [45] Compact Hardware Implementations of the SHA-3 Candidates ARIRANG, BLAKE, Grøstl, and Skein, Stefan Tillich, Martin Feldhofer, Wolfgang Issovits, Thomas Kern, Hermann Kureck, Michael Mühlberghuber, Georg Neubauer, Andreas Reiter, Armin Köfler, and Mathias Mayrhofer [46] SHA-3 proposal BLAKE, Jean-Philippe Aumasson, Luca Henzen, Willi Meier, Raphael C.- W. Phan [47] Cryptographic Hash Function, BLUE MIDNIGHT WISH Danilo Gligoroski, Vlastimil Klima, Svein Johan Knapskog, Mohamed El-Hadedy, Jørn Amundsen, Stig Frode Mjølsnes [48] CubeHash, Daniel J. Bernstein 181

182 [49] SHA-3 Proposal: ECHO Orange Labs, Ryad Benadjila, Olivier Billet, Henri Gilbert, Gilles Macario-Rat, Thomas Peyrin, Matt Robshaw, Yannick Seurin [50] The Hash Function Fugue, Shai Halevi, William E. Hall, Charanjit S. Jutla, IBM T.J. Watson Research Center [51] Grøstl a SHA-3 candidate, Praveen Gauravaram, Lars R. Knudsen, Krystian Matusiewicz, Florian Mendel, Christian Rechberger, Martin Schlaffer, and Søren S. Thomsen [52] The Hash Function Hamsi, Ozgul Kucuk [53] The Hash Function JH, Hongjun Wu, Institute for Infocomm Research, Singapore [54] Keccak sponge function family, Guido Bertoni, Joan Daemen, Michael Peeters, Gilles Van Assche [55] Hash Function Luffa, Christophe De Canniere ESAT-COSIC, Katholieke Universiteit Leuven Hisayoshi Sato, Dai Watanabe Systems Development Laboratory, Hitachi, Ltd. [56] Shabal, a Submission to NIST's Cryptographic Hash Algorithm Competition, Emmanuel Bresson, Christophe Clavier, Thomas Fuhr, Thomas Icart, Jean-Francois Misarsky, Mara Naya-Plasencia, Jean-Rene Reinhard, Celine Thuillet,Marion Videau [57] The SHAvite-3 Hash Function, Eli Biham, and Orr Dunkelman [58] SIMD Is a Message Digest Principal submitter: Gaetan Leurent, Charles Bouillaguet, Pierre-Alain Fouque [59] The Skein Hash Function Family, Niels Ferguson, Stefan Lucks, Bruce Schneier, Doug Whiting, Mihir Bellare, Tadayoshi Kohno, Jon Callas, Jesse Walker [60] Cryptanalysis of CubeHash, Eric Brier and Thomas Peyrin [61] Inside the Hypercube, Jean-Philippe Aumasson, Eric Brier, Willi Meier, Marıa Naya- Plasencia, and Thomas Peyrin [62] Preimage attack on CubeHash512-r/4 and CubeHash512-r/8, Dmitry Khovratovich, Ivica Nikolic, and Ralf-Philipp Weinmann [63] Collisions for CubeHash1/45 and CubeHash2/89, Wei Dai [64] Near Collisions for the Compression Function of Hamsi-256, Ivica Nikolic [65] On the pseudorandomness of Hamsi, Jean-Philippe Aumasson 182

183 [66] An Observation on JH-512, Florian Mendel and Søren S. Thomsen [67] The Complexity of Mendel and Thomsen's Preimage Attack on JH-512, Hongjun Wu [68] First Analysis of Keccak, Jean-Philippe Aumasson and Dmitry Khovratovich [69] Cube Attacks on Cryptographic Hash Functions, Joel Lathrop [70] Practical Pseudo-Cryptanalysis of Luffa, Jia Keting [71] More on Shabal's permutation, Jean-Philippe Aumasson, Atefeh Mashatan, and Willi Meier [72] On the pseudorandomness of Shabal's keyed permutation, Jean-Philippe Aumasson [73] Observations on the Shabal keyed permutation, Lars R. Knudsen Krystian Matusiewicz Soren S. Thomsen [74] IMPROVED ANALYSIS OF THREEFISH, Jean-Philippe Aumasson, Willi Meier, Raphael Phan [75] Provable Security Support for the Skein Hash Family, M. Bellare, T. Kohno, S. Lucks, N. Ferguson, B. Schneier, D. Whiting, J. Callas, and J. Walker 183

184 Αντιστοίχιση όρων δεδομένα (data): ένα σύνολο κατανοητών συμβόλων που έχουν καταγραφεί. πληροφορία (information): τα δεδομένα μαζί με την έννοια που τους αποδίδεται. ακεραιότητα (integrity): αποφυγή μη εξουσιοδοτημένης τροποποίησης μιας πληροφορίας. αυθεντικότητα (authenticity): Αποφυγή ατελειών και ανακριβειών κατά τη διάρκεια εξουσιοδοτημένων τροποποιήσεων μιας πληροφορίας. εμπιστευτικότητα (confidentiality): αποφυγή αποκάλυψης πληροφοριών χωρίς την άδεια του ιδιοκτήτη τους. διαθεσιμότητα (availability): αποφυγή προσωρινής ή μόνιμης άρνησης διάθεσης της πληροφορίας σε εξουσιοδοτημένους χρήστες. μη αποποίηση (non-repudiation): η αποτροπή μίας οντότητας από το να αρνηθεί ότι μία επικοινωνία ή μία συγκεκριμένη πράξη έχει ήδη πραγματοποιηθεί. Εγκυρότητα (validity): απόλυτη ακρίβεια και πληρότητα μιας πληροφορίας. Υπογραφή (signature): Η υπογραφή είναι ένα μέσο προσάρτησης πληροφορίας ενός χρήστη στα μεταδιδόμενα δεδομένα, με στόχο την πιστοποίηση ταυτότητας. Αρχικό κείμενο (plaintext): Αποτελεί το αρχικό μήνυμα ή τα αρχικά δεδομένα που εισέρχονται στον αλγόριθμο κρυπτογράφησης. Κρυπτογράφημα ή κρυπτογραφημένο μήνυμα (ciphertext): Είναι το μετασχηματισμένο μήνυμα που παράγεται ως έξοδος από τον αλγόριθμο κρυπτογράφησης. Αλγόριθμος κρυπτογράφησης (encryption algorithm): Πραγματοποιεί τους απαραίτητους μετασχηματισμούς του αρχικού κειμένου για την επίτευξη της κρυπτογράφησης ενός μηνύματος. Αλγόριθμος αποκρυπτογράφησης (decryption algorithm): Πραγματοποιεί την αντίστροφη διαδικασία του αλγόριθμου κρυπτογράφησης, δηλαδή λαμβάνει το κρυπτογράφημα και το μυστικό κλειδί που χρησιμοποιήθηκε και παράγει το αρχικό κείμενο. Οντότητα (entity): Γενική έννοια για να χαρακτηρίσουμε κάποιον που στέλνει, δέχεται ή επεξεργάζεται πληροφορία (μία οντότητα μπορεί να είναι ένα άτομο, ένας υπολογιστής, ένα νομικό πρόσωπο κ.α.). 184

185 Επιτιθέμενος: Είναι μία οντότητα που συμμετέχει στην επικοινωνία χωρίς να είναι νόμιμα ούτε ο αποστολέας ούτε ο παραλήπτης. Σκοπός του είναι να ακυρώσει το σύστημα προστασίας αποστολέα παραλήπτη και να γίνει αποδέκτης της πληροφορίας που τον ενδιαφέρει. Υπάρχουν περιπτώσεις κατά τις οποίες ο επιτιθέμενος μπορεί να υποκρίνεται ότι είναι ο έγκυρος αποστολέας ή παραλήπτης (πχ. Στην man in the middle επίθεση). Χρονοσήμανση (ή χρονοσφραγίδα [timestamp]): Είναι η καταγραφή της χρονικής στιγμής δημιουργίας της πληροφορίας. XOR: Η λογική πράξη XOR (αποκλειστικό Ή) είναι μία από τις πράξεις της άλγεβρας Boole. Η XOR συναντάται συχνά στη κρυπτογραφία και έχει μια πολύ σημαντική ιδιότητα που παρουσιάζεται παρακάτω. Έστω ότι έχουμε την εξής σειρά bit Α: και ένα κλειδί Κ: Το αποτέλεσμα της πράξης Α XOR B είναι C: Μπορούμε να υποθέσουμε ότι ι συμβολοσειρά Α που κρυπτογραφήθηκε με το κλειδί Β μπορεί να ανακτηθεί κάνοντας την πράξη B XOR C. Με αυτό το τρόπο το Β αποκτά ιδιότητα κλειδιού (με μη αυστηρά κριτήρια) και το C την ιδιότητα του κρυπτογραφήματος. 185

186 Παράρτημα I Salting Στη κρυπτογραφία το salt είναι ουσιαστικά κάποια τυχαία bit που λαμβάνονται ως μία από τις εισόδους (ή άλλη είσοδος είναι συνήθως ένας κωδικός, ένα passphrase κα.) σε ένα αλγόριθμο παραγωγής κλειδιών. Στην περίπτωση που αναλύουμε ο αλγόριθμος παραγωγής κλειδιών είναι μία συνάρτηση σύνοψης. Η είσοδος salt δεδομένων αυξάνει την πολυπλοκότητα σε μία σειρά επιθέσεων όπως οι επιθέσεις τύπου λεξικού (dictionary) κα. Σημαντική θεωρείται η απόκρυψη της τιμής της salt, από μία βάση δεδομένων. Αυτό έχει ως αποτέλεσμα ακόμη και αν κλαπεί η βάση, να μην υπάρχουν στοιχεία για το salted κομμάτι, που σημαίνει πως ο επιτιθέμενος δεν μπορεί πρακτικά να εξαπολύσει dictionary ή και rainbow table επιθέσεις αφού θα χρειαστεί υπερβολική διάρκεια χρόνου (αλλά και χώρου στην περίπτωση του rainbow table). Για παράδειγμα έστω ότι ένας χρήστης χρησιμοποιεί έναν απλό κωδικό, που μάλιστα είναι γνωστό ότι εμπεριέχεται σε ένα απλό λεξικό των λέξεων. Επίσης ας υποθέσουμε πως το σύστημα χρησιμοποιεί ένα 32-bit salt. Ο νέος salted κωδικός είναι πλέον ο προηγούμενος με επισυναπτόμενο ένα τυχαίο 32-bit salt. Αυτό στην πράξη καθιστά το αρχικό λεξικό μη χρησιμοποιήσιμο αφού πρέπει να προστεθούν σε κάθε μία από τις λέξεις κάθε ένα από τα 2 32 πιθανά salt. Ο συνολικός αριθμός πιθανών κωδικών μετατρέπεται από σε: 2 32 * = * (~ 800 τρισεκατομμύρια ). 186

187 Παράρτημα II Feistel & SP (substitution-permutation) networks Σε αρκετούς σύγχρονους κρυπτογραφικούς αλγόριθμους τμήματος και συναρτήσεις σύνοψης που χρησιμοποιούν παραλλαγές τους (βλέπε κεφάλαιο 5) χρησιμοποιούνται τα δίκτυα feistel & SP ως δομή κατασκευής τους. Στην feistel δομή η κρυπτογράφηση χωρίζεται σε γύρους που γίνεται χρήση μίας ελεύθερης οριζόμενης συνάρτησης γύρου. Βασικό πλεονέκτημα αυτής της δομής είναι ότι οι διαδικασίες κρυπτογράφησης και αποκρυπτογράφησης είναι σχεδόν πανομοιότυπες (διαφέρουν κυρίως στην αναστροφή του προγραμματισμού κλειδιών). Η κυρίως δομή του (που παρουσιάζεται στην εικόνα Π2.1) απαρτίζεται από γύρους στους οποίους το κάθε τμήμα κειμένου χωρίζεται σε δύο μέρη. Το δεξί μέρος εισάγεται στη συνάρτηση γύρου μαζί με το κλειδί του γύρου Κ i και το αποτέλεσμα αυτής της διαδικασίας δέχεται μία λογική πράξη XOR με το αριστερό τμήμα. Έπειτα λαμβάνει χώρα μία ανταλλαγή (swap) μεταξύ αριστερού και δεξιού μέρους. Ένα ακόμη πλεονέκτημα είναι ότι η συνάρτηση γύρου δεν χρειάζεται να είναι αναστρέψιμη προσφέροντας με αυτόν τον τρόπο μεγάλο βαθμό πολυπλοκότητας. Εικόνα Π2.1: Η δομή του feistel network. 187

188 Τα δίκτυα SP (Εικόνα Π2.2) βασίζονται στη χρήση S boxes και P boxes για την παραγωγή του κρυπτογραφήματος. Τα S (substitution) boxes ουσιαστικά αποτελούν ένα δομικό κομμάτι το οποίο δέχεται σαν είσοδο ένα αριθμό bit m και παράγει μία έξοδο n bit. Πρακτικά πραγματοποιούν αντικατάσταση της εισόδου που δέχονται με την έξοδο βάση ενός πίνακα (αντικατάστασης). Τα Ρ (Permutation) boxes συνήθως πραγματοποιούν μεταθέσεις μεταξύ των παραγόμενων bit. Αρκετοί σύγχρονοι αλγόριθμοι όπως ο AES κάνουν χρήση SP δικτύων. Ένα ωστόσο κλασικό παράδειγμα που εφαρμόζει feistel δίκτυα σε συνδυασμό με S boxes είναι ο κρυπταλγόριθμος DES. Εικόνα Π2.2: H δομή του SP network. 188

189 Ένας συμμετρικός κρυπτογραφικός αλγόριθμος (DES) Ο DES (data encryption standard) δημιουργήθηκε στις αρχές του 1970 και είναι ένας από τους πιο γνωστούς συμμετρικούς κρυπταλγόριθμους. Είναι ένας κλασικός block cipher αλγόριθμος που λαμβάνει μία σειρά από bits ενός αρχικού κειμένου σταθερού μήκους και τη μετατρέπει σε μία διαφορετική σειρά bits ίδιου μήκους. Αυτό επιτυγχάνεται μέσω μίας σειράς από αρκετά πολύπλοκες λειτουργίες. Αναλυτικότερα, ο DES λαμβάνει τμήματα αρχικού κειμένου σε κομμάτια των 64 bits, χρησιμοποιώντας ταυτόχρονα και ένα κλειδί το οποίο θα χρησιμοποιηθεί και για την αποκρυπτογράφηση. Το κλειδί του data encryption standard έχει ένα θεωρητικό μήκος 64 bits ωστόσο στην πραγματικότητα μόνο 56 από αυτά χρησιμοποιούνται από τον αλγόριθμο. Τα υπόλοιπα 8 bits χρησιμοποιούνται για τον έλεγχο της ισοτιμίας (parity) και στη συνέχεια απορρίπτονται. Για τη δημιουργία του κρυπτογραφήματος αρχικά, εφαρμόζεται μια συγκεκριμένη αντιμετάθεση ψηφίων του μηνύματος και στη συνέχεια το αποτέλεσμα αυτής της αντιμετάθεσης χωρίζεται σε δύο μέρη μήκους 32 ψηφίων. Στη συνέχεια ο αλγόριθμος εκτελεί 16 φορές έναν κατάλληλο μετασχηματισμό που χρησιμοποιεί τη λογική συνάρτηση XOR (Exclusive Or), μία συνάρτηση f, και διαφορετικά κάθε φορά, υποσύνολα του αρχικού κλειδιού. Στο τέλος, το αποτέλεσμα του πιο πάνω μετασχηματισμού, υπόκειται σε αντιμετάθεση των δυαδικών του ψηφίων η οποία, στην ουσία, αποκαθιστά τη σειρά των ψηφίων του αρχικού μηνύματος, την οποία κατέστρεψε η αρχική αντιμετάθεση. Εικόνα Π2.1: Η round function του DES. 189

190 Σχηματικά ο DES μπορεί να περιγράφει από το παρακάτω σχήμα: Εικόνα Π2.3: Ο αλγόριθμος DES. 190

191 Παράρτημα III Bruteforce & dictionary attacks Bruteforce Για bruteforce χρησιμοποιήθηκε το πρόγραμμα Cain & Abel v ( για να επιτεθούμε σε μερικούς κωδικούς (συνόψεις) σε MD5 μορφή (η σύνοψη έγινε με τη βοήθεια της ιστοσελίδας Τα αποτελέσματα παρουσιάζονται στον παρακάτω πίνακα. Να σημειωθεί πως για σχετικά μεγάλου μεγέθους κωδικούς ( 8) η επίθεσή τείνει να γίνει απαγορευτική. Τέτοιο παράδειγμα είναι ο κωδικός megalosss που έχει μέγιστο χρόνο υπολογισμού 313 ημέρες (όπως φαίνεται και στην παρακάτω εικόνα). Password Md5 hash Χρόνος κρυπτανάλυσης bob123 2acba7f51acfd4fd5102ad090fc612ee ~ 6 λεπτά fc7dd201375b19e86f7858e3efb ~ 20 δευτερόλεπτα*!m@no1 bae15706fed19e2a3c5d0f21e9c363e7 ~ 5 λεπτά megalosss ed55b826642c ef4d98d93b1 - *Η επίθεση έγινε με predefined charset: για ελαχιστοποίηση του χρόνου Εικόνα Π3.1:Η εξαντλητική αναζήτηση παρουσιάζει προβλήματα όσο μεγαλώνει το μέγεθος ενός κωδικού. 191

192 Distributed bruteforce attacks Η bruteforce (όπως και άλλες επιθέσεις) μπορούν επίσης να εφαρμοστούν και σε κατανεμημένο περιβάλλον, όπου γίνεται ταυτόχρονη χρήση πολλών υπολογιστικών συστημάτων με αποτέλεσμα την επίτευξη μεγάλης υπολογιστικής ισχύος. Τέτοιο παράδειγμα αποτελούν και εφαρμογές που χρησιμοποιούν το online distributed εργαλείο boinc. Dictionary attack Η επίθεση με χρήση λεξικού χρησιμοποιεί ένα εξωτερικό αρχείο (λεξικό) που παρέχει διάφορες πιθανές λέξεις. Τα διάφορα προγράμματα μπορούν να κάνουν και συνδυασμούς αυτών των λέξεων (πχ. Αναστροφή των χαρακτήρων όπως φαίνεται και στο παρακάτω στιγμιότυπο κα.). Όπως παρατηρούμε κάποιες απλές περιπτώσεις (όπως πχ το theos) δεν δίνουν αποτέλεσμα αν δεν υφίστανται στο δοθέν λεξικό. Από την άλλη λέξεις όπως το iterationiteration που με εξαντλητική αναζήτηση δεν θα είχε ελπίδα να βρεθεί (καθώς είναι 18 χαρακτήρες) βρίσκεται στην περίπτωση μας εύκολα και σε σύντομο χρονικό διάστημα. Συνοψίζοντας, η επιτυχία της εκάστοτε επίθεσης βασίζεται στο κατά πόσο είναι πλήρες το λεξικό μας. Password Md5 hash Χρόνος κρυπτανάλυσης fc7dd201375b19e86f7858e3efb - iterationiteration 97ff0c7f807cfcba4caffdf020898e83 ~24 δευτερόλεπτα theos d2b557bb7df18f344d4f630f Εικόνα Π3.2: Dictionary attack.

193 Παράρτημα IV Rainbow table attack Μία εναλλακτική λύση αντί για τις επιθέσεις εξαντλητικής αναζήτησης είναι τα rainbow tables. Αυτά είναι στην ουσία πίνακες αναζήτησης (πάρα πολύ μεγάλου μεγέθους) που προσφέρουν ένα time - memory tradeoff. Η βασική ιδέα πίσω από τα rainbow tables είναι οι προϋπολογισμένες αλυσίδες συνόψεων (precomputed hash chains). Έστω ότι ο επιτιθέμενος θέλει να βρει τον κωδικό που αντιστοιχεί σε μία συνάρτησης σύνοψης Η, που διαθέτει έναν Ρ αριθμό συνολικών συνόψεων. Ο σκοπός είναι να προϋπολογιστεί μία δομή δεδομένων τέτοια ώστε για κάθε έξοδο h της H να μπορεί είτε να εντοπιστεί το H(p)=h είτε να αποδεικνύεται πως δεν υπάρχει τέτοιο p στο Ρ. Ο πιο απλός τρόπος για να γίνει κάτι τέτοιο θα ήταν απλά να υπολογιστεί ένα H(p) για κάθε δυνατό p ϵ P. Ωστόσο κάτι τέτοιο απαιτεί Θ( P k) bits χώρου γεγονός απαγορευτικό. Αυτό διορθώνεται με τη χρήση αλυσίδων συνόψεων (hash chains). Οι hash chains χρησιμοποιούν μία συνάρτηση ελαχιστοποίησης R (reduction function) που κάνει map τις τιμές της σύνοψης σε τιμές της Ρ. Για παράδειγμα μία αλυσίδα μπορεί να έχει την εξής μορφή: aaaaaa H 281DAF40 R sgfnyd H 920ECF10 R kiebgt Παρόλα αυτά οι απλές αλυσίδες συνόψεων έχουν ένα πολύ σημαντικό μειονέκτημα. Αν σε κάποιο σημείο της αλυσίδας δύο κομμάτια έχουν την ίδια τιμή (έχουμε δηλαδή collision) τότε συγχωνεύονται με αποτέλεσμα ο τελικός πίνακας να μην καλύπτει όλους τους πιθανούς κωδικούς. Αυτό το πρόβλημα λύνουν τα rainbow tables που αντί να χρησιμοποιούν μόνο μία συνάρτηση μείωσης R, διαθέτουν μία ακολουθία από συναρτήσεις R 1,R 2,...,R k. Με αυτόν τον τρόπο για να έχουμε δύο colliding αλυσίδες θα πρέπει να παρουσιάσουν την ίδια τιμή στην ίδια επανάληψη. Συνεπώς, οι τελικές τιμές σε κάθε τέτοια αλυσίδα θα είναι ίδιες. Έτσι με ένα τελικό στάδιο προεπεξεργασίας μπορούν να ταξινομηθούν οι αλυσίδες στον πίνακα και να αφαιρεθούν τυχόν όμοιες. Νέες αλυσίδες παράγονται έπειτα για να συμπληρώσουν τον πίνακα. Αυτές οι αλυσίδες έχουν μία μικρή πιθανότητα για σύγκρουση αλλά δεν θα συγχωνεύσουν, μειώνοντας έτσι δραστικά το γενικό αριθμό συγκρούσεων. Ο τρόπος αναζήτησης κατά συνέπεια αλλάζει ελαφρά αφού πρέπει να δημιουργηθούν συνολικά k διαφορετικές αλυσίδες, ωστόσο αν και τα rainbow tables έχουν περισσότερες αλυσίδες (από ότι οι precomputed hash chains) διαθέτουν πολύ λιγότερους πίνακες γεγονός που αυξάνει την απόδοσή τους σημαντικά. 193

194 Ένα παράδειγμα χρήσης rainbow table παρουσιάζεται στην Εικόνα Χ.1. Αρχικά έχουμε τη σύνοψη re3xes και θέλουμε να βρούμε το αρχικό κείμενο. Το rainbow table εισάγει τη σύνοψη σε μία τελική reduction function R3 και ελέγχει αν το αποτέλεσμα υπάρχει στον πίνακα με τα ενδιάμεσα αποτελέσματα. Η αναζήτηση αποτυγχάνει με αποτέλεσμα να εφαρμοστούν δύο reduction functions. Εφαρμόζεται η R2 και το αποτέλεσμα της αφού συνοψιστεί εισάγεται στην R3. Η αναζήτηση αυτή τη φορά πετυχαίνει και ξεκινάει από την αρχή της αλυσίδας που βρήκε μέχρι να φτάσει στο re3xes και στο αρχικό κείμενο culture. Εξαιτίας του συνήθους τεράστιου μεγέθους των rainbow tables, συνηθίζεται η χρήση κάποιων online τέτοιων εργαλείων, όπως βλέπουμε και στην εικόνα Χ.2. Εικόνα Π4.1: παράδειγμα χρήσης rainbow table Εικόνα Π4.2: Παράδειγμα χρήσης online md5 rainbow table 194

195 Ένα σημαντικό αντίμετρο στις επιθέσεις με rainbow tables που εφαρμόζεται σε αρκετά συστήματα (πχ. BSD, Linux) είναι η χρήση salt, η οποία αυξάνει σημαντικά την πολυπλοκότητα καθιστώντας την επίθεση πρακτικά αδύνατη. Τέλος υπάρχει και η δυνατότητα του key strengthening όπου ένα salt, ένας κωδικός και διάφορες ενδιάμεσες τιμές σύνοψης περνούν μέσα από συναρτήσεις σύνοψης πολλαπλές φορές για να αυξηθεί ο χρόνος υπολογισμού που απαιτείται. 195

196 Παράρτημα V MD5 bruteforcing χρησιμοποιώντας την αρχιτεκτονική CUDA Όπως αναλύσαμε και στο κεφάλαιο 3, η bruteforce επίθεση θεωρείται η ύστατη (και πιο αργή) λύση για τον επιτιθέμενο και συνάμα η λιγότερο ευφυής. Ωστόσο, υπάρχει η δυνατότητα η επίθεση να είναι ιδιαίτερα αποτελεσματική όταν συνδυάζεται με την αρχιτεκτονική CUDA. Η CUDA (Compute Unified Device Architecture) είναι μία αρχιτεκτονική που υλοποιήθηκε από την NVIDIA, και ουσιαστικά αποτελεί την υπολογιστική μηχανή της στις GPUs (graphics processing units). Το ιδιαίτερο σημείο της είναι το γεγονός ότι η GPU γίνεται προσβάσιμη στον προγραμματιστή χρησιμοποιώντας κλασικές γλώσσες προγραμματισμού. Συγκεκριμένα η CUDA δίνει τη δυνατότητα μέσω της 'C for CUDA' για προγραμματισμό αλγορίθμων και εκτέλεσή τους στη GPU. Για παράδειγμα παρακάτω παρατίθεται ο κώδικας σε C++ ενός αλγόριθμου που λαμβάνει το texture μίας εικόνας και το φορτώνει σε ένα πίνακα στην GPU. cudaarray* cu_array; texture<float, 2> tex; // Allocate array cudachannelformatdesc description = cudacreatechanneldesc<float>(); cudamallocarray(&cu_array, &description, width, height); // Copy image data to array cudamemcpy(cu_array, image, width*height*sizeof(float), cudamemcpyhosttodevice); // Bind the array to the texture cudabindtexturetoarray(tex, cu_array); // Run kernel dim3 blockdim(16, 16, 1); dim3 griddim(width / blockdim.x, height / blockdim.y, 1); kernel<<< griddim, blockdim, 0 >>>(d_odata, width, height); cudaunbindtexture(tex); global void kernel(float* odata, int height, int width) { unsigned int x = blockidx.x*blockdim.x + threadidx.x; unsigned int y = blockidx.y*blockdim.y + threadidx.y; float c = tex2d(tex, x, y); odata[y*width+x] = c; } 196

197 Στη συνέχεια θα χρησιμοποιήσουμε το πρόγραμμα BarsWF ( World Fastest MD5 cracker, Svarychevski Michail Aleksandrovich ) για να επιτεθούμε σε μερικούς κωδικούς (συνόψεις) σε MD5 μορφή (η σύνοψη έγινε με τη βοήθεια της ιστοσελίδας Τα αποτελέσματα είναι ιδιαίτερα ικανοποιητικά παρουσιάζοντας για άλλη μία φορά την άμεση ανάγκη αποχώρησης της MD5 συνάρτησης από τις πάρα πολλές εφαρμογές. Τα πειράματα διεξήχθησαν σε έναν Intel Core2 Quad [2.4GHz], με μία GPU nvidia 9800GT. Password Md5 hash Χρόνος κρυπτανάλυσης bob123 2acba7f51acfd4fd5102ad090fc612ee ~ 2 δευτερόλεπτα fc7dd201375b19e86f7858e3efb ~ 2 δευτερόλεπτα!m@no1 bae15706fed19e2a3c5d0f21e9c363e7 ~ 50 δευτερόλεπτα megalosss ed55b826642c ef4d98d93b1 ~ 45 λεπτά Παρακάτω παρατίθεται τα διάφορα στιγμιότυπα του προγράμματος. Εικόνα Π5.1: Στιγμιότυπο CUDA bruteforce. 197

198 Εικόνα Π5.2:Στιγμιότυπο CUDA bruteforce. Εικόνα Π5.3:Στιγμιότυπο CUDA bruteforce. Εικόνα Π5.4:Στιγμιότυπο CUDA bruteforce. 198

199 Τέλος και να γίνει εμφανής η διαφορά σε σχέση με την παραδοσιακή bruteforce επίθεση μέσω κάποιων γνωστών προγραμμάτων, παρουσιάζουμε δύο στιγμιότυπα άλλων προγραμμάτων (που δεν κάνουν χρήση CUDA) από τον ίδιο υπολογιστή: [Last Bit, MD5 Password v1.0] Εικόνα Π5.5:Στιγμιότυπο απλού bruteforce. [cain & abel v4.9.29] Εικόνα Π5.6:Στιγμιότυπο απλού bruteforce. Όπως παρατηρούμε και τα δύο προγράμματα έχουν ένα key rate ανά δευτερόλεπτο γύρω στο σε αντίθεση με το CUDA based πρόγραμμα που έχει key rate (που συνολικά σημαίνει περίπου 52 τρισεκατομμύρια passwords τη μέρα). 199

200 Παράρτημα VI Cold boot attacks στη μνήμη RAM Παρόλο που η πλειοψηφία όσων σχετίζονται με το χώρο της πληροφορικής θεωρεί ότι η dynamic ram (οι γνωστές δηλαδή ddram) διαγράφει όλα τα δεδομένα της άμεσα αφότου ο υπολογιστής κλείσει κάτι τέτοιο δεν ισχύει. Αυτό που στη πραγματικότητα συμβαίνει είναι ένα φαινόμενο που καλείται memory remanence, με αποτέλεσμα τα δεδομένα να παραμένουν στη RAM για αρκετά δευτερόλεπτα. Ακόμη αν εκμεταλλευτεί κάποιος το φαινόμενο αυτό με τη βοήθεια ιδιαίτερα χαμηλών θερμοκρασιών μπορεί να επιμηκύνει τη διατήρηση των δεδομένων για αρκετά λεπτά (ακόμη και ώρες). Αναλυτικότερα η dram αποτελείται από cells που δεν είναι τίποτε άλλο από πυκνωτές που κωδικοποιούν bit ανάλογα με το αν περνάει ρεύμα ή όχι. Αυτό είναι το γεγονός που έχει και ως αποτέλεσμα τη σταδιακή και όχι άμεση διαγραφή της πληροφορίας από την RAM. Το παραπάνω ιδιαίτερο φαινόμενο μπορεί να χρησιμοποιηθεί για επιθέσεις σε συστήματα που χρησιμοποιούν λογισμικό κρυπτογράφησης του σκληρού δίσκου. Οι εφαρμογές αυτές (Onthe-fly disk encryption software) λειτουργούν στη πλειοψηφία τους ως μίας μορφής μεσισμική τεχνολογία (middleware) ανάμεσα στο λειτουργικό σύστημα και το σκληρό δίσκο. Αυτό στη πράξη σημαίνει πως από τη στιγμή που ο χρήστης έχει δώσει το κλειδί αποκρυπτογράφησης (συνήθως στην εκκίνηση του συστήματος), τα δεδομένα είναι ανοιχτά για ανάγνωση. Ταυτόχρονα, όλα αυτού του τύπου τα εργαλεία (αν όχι και το μεγαλύτερο κομμάτι της κοινότητας της ασφάλειας υπολογιστών) θεωρούν την RAM ασφαλή. Αυτό έχει ως αποτέλεσμα, όταν ο χρήστης δίνει το κλειδί αποκρυπτογράφησης, αυτό να αποθηκεύεται στη RAM, με κύριο λόγο την απόδοση/ταχύτητα, μέχρι ο σκληρός να γίνει unmounted. Case study Ένα πραγματικό σενάριο θα μπορούσε να είναι το εξής. Ένας χρήστης έχει στην κατοχή του έναν φορητό υπολογιστή με Windows Vista Ultimate και ειδικότερα με ενεργοποιημένη την εφαρμογή bitlocker (το κρυπτογραφικό εργαλείο το σενάριο μπορεί να λειτουργήσει εξίσου αποτελεσματικά με MAC (με το αντίστοιχο κρυπτογραφικό εργαλείο FileVault) ή και linux (με truecrypt, dm-crypt, Loop-AES)) αφού διαθέτει αρκετά ευαίσθητα δεδομένα. Κάποια στιγμή ένας κακόβουλος χρήστης βρίσκει την ευκαιρία και κλέβει το laptop το οποίο μάλιστα είναι ανοιχτό (ευτυχώς με lockscreen (ή αντίστοιχα σε sleep mode, screensaver locked, και hibernate)). Ωστόσο το laptop εφαρμόζει κρυπτογράφηση του δίσκου που σημαίνει ότι: δεν είναι εφικτή η φόρτωση (mount) του δίσκου σε άλλο σύστημα (αφού τα δεδομένα θα είναι σε μη αναγνώσιμη μορφή), ούτε η επανεκκίνηση του συστήματος με κάποιο live cd. 200

201 Ο επιτιθέμενος (υπενθυμίζουμε ότι οποιαδήποτε διακοπή του ρεύματος ή reboot θα σβήσει από τη μνήμη το κλειδί κρυπτογράφησης, καθιστώντας το δίσκο μη προσβάσιμο), ετοιμάζει αρχικά ένα δικό του σύστημα, στο οποίο εκτελούνται κάποια ειδικά προγράμματα (ένα εργαλείο που δημιουργεί backup της RAM και το bitunlocker). Στη συνέχεια και ενώ ο υπολογιστής θύμα είναι ανοιχτός ψεκάζει τη RAM με ένα κοινό σπρέι αφαίρεσης σκόνης (dust remover), το οποίο όμως κρατάει ανάποδα. Αυτό έχει ως αποτέλεσμα το σπρέι να βγάζει ψυχρό αέρα ο οποίος ρίχνει τη θερμοκρασία της RAM περίπου στους -50 ο C (είναι δυνατή και η χρησιμοποίηση και υγρού άζωτου (liquid nitrogen) για ακόμα καλύτερα αποτελέσματα). Η μείωση αυτή δίνει τη δυνατότητα στη RAM να διατηρηθεί σχεδόν τελείως ανέγγιχτη (δηλαδή με ελάχιστα bit errors). O επιτιθέμενος στη συνέχεια βάζει τη RAM στο δικό του laptop. Ύστερα φορτώνει το bitunlocker, ένα τελείως αυτοματοποιημένο σύστημα (fully automated attack tool) το οποίο αποτελείται από ένα εξωτερικό σκληρό με Linux, έναν ειδικά τροποποιημένο SYSLINUX based bootloader, και κάποιους drivers που επιτρέπουν σε bitlocker volumes να φορτώνουν σε Linux. Μέσα σε μερικά λεπτά, η εφαρμογή του bitunlocker ανιχνεύει στη RAM το κρυπτογραφικό κλειδί (και πιο σωστά όχι για τα ίδια τα κλειδιά αλλά για τα key schedules που φορτώνονται στη μνήμη), το οποίο και λαμβάνει ο επιτιθέμενος ο οποίος έχει πλέον πρόσβαση στον πρώην encrypted σκληρό. Εικόνα Π6.1: Παράδειγμα ψύξης μνήμης RAM. 201

202 Παράρτημα VII NTFS & MD5 Εκμεταλλεύοντας διάφορες ιδιότητες του NTFS (το κλασικό σύστημα αρχείων των Microsoft Windows), καθίσταται δυνατή η ενσωμάτωση ενός κακόβουλου προγράμματος σε ένα απλό πρόγραμμα (πχ. Ένα.doc αρχείο κειμένου ή ακόμα και ένα.txt) χωρίς μεταβολή της MD5 σύνοψης. Αρχικά δημιουργείται ένα απλό test.doc αρχείο οποιουδήποτε περιεχομένου. Έπειτα εφαρμόζουμε ένα απλό εργαλείο (md5sum.exe) για να εξάγουμε τη σύνοψή του. Στη συνέχεια εφαρμόζοντας την εντολή: type netbrute.exe > test.doc:net.exe κρύβεται μέσα στο test.doc το κακόβουλο εργαλείο netbrute.exe. Εξάγεται ξανά η σύνοψη του test.doc που όπως παρατηρούμε παραμένει αμετάβλητη. Ο χρήστης όποτε θέλει μπορεί να εκτελέσει το κακόβουλο εργαλείο με την εντολή: start./test.doc:net.exe. Ένα στιγμιότυπο της εφαρμογής της επίθεσης παρουσιάζεται παρακάτω. Εικόνα Π7.1:Στιγμιότυπο της εφαρμογής της επίθεσης. 202

203 Παράρτημα VIII Παρακάτω παρουσιάζονται κάποιες επιθέσεις που έχουν ήδη λάβει χώρα σχετικά με τον CubeHash [60] [61] [62] [63]. Collision για την CubeHash-1/ fb5e5578 c020296a 9d66df51 c49031ba 12c1eb92 eb b02e344 d2c9b335 5b1d6afa 8ac26a39 2fa35d96 c684bc3d d6ecbd6e f71339e3 ba35bd72 841af

204 Collision για την CubeHash-2/ f6a8a f d 8f16bc80 0f5595fa a519aa d3f0 c1e86527 fe9fa656 de7d1cb7 b9c367b2 a06d aa321d d3fd2ec6 378d61d1 9a Collision για την CubeHash 1/45 Μήνυμα 1 9DD1994A9062ED74D877279D1AB1B38BD81FB5E4F1B1AB4067EF4E8165EAB C C5F3E8CD39CD51C A3AE132AF2C98ACFAA1D159DB052BED5B3A B2 975BE48F95A1020D B3D7C1A9FA16D8AE5F84F32DD478B91B3BDD838EF80 0F1AABC0AC4F3E7F3032E9E7CC73129E640F29102DF9080F6F2DB505CD2255EA5152C 59D3BC5F136968F278C24E9E16F739D458EBC D36DDD C124D22 DF3468BB05E794FFE26D815E6FB5B9610BC08AC1779BD0D27640CDBEA4224D7B6ACD 415DC136AB2632E F74C365E68E19B70 Μήνυμα 2 9DD0994A9062ED74D876279D1AB1B38BD81FBDE4F1B1AB4067EF468165EAB C C5F3E8CD39CD51C A3AE172AF2C98ACFBA1D199DB052BED5B3A B2 975BE30F95A1020D B3D7C1ABF216C8AE5F84F32DD478B91B3BDD838EF80 0F1A2BC0AC4F3E7F3022E9E7CC73129E643F29102DF9082F6F2DB505CD22558A5652C 51D3BD5F136968F270C24F9E16F739D458EBE D363DD C124D02D F3468BB05E794DFE25D815E6FB5B9610BD08AC1779BD0D27640CDBEA4224D7B6ACD4 15DC136AB2632E F74C365E68E19B70 204

205 Σύνοψη 962F9C2DFF26E65AFC257F5AA633CA2891A172CB38EED485BACD53956BF033031AD5 DE4B9626CE10831F81607DB E5B90034B6B7F5FA5CBBE5A70 Collision για την CubeHash2/89 Μήνυμα E4F8D2B2BADB3C7D7E6078A7A B A2628DFC4C35DCF 1067FD8AD0236F1EED92316FA87DDD534B7F8C3ED427A1E7CF28EB1918B7DF8C60CD FCA2D43EB13834F830EFADF45097E114F8A1B85D6E9DBB4A370C61DA2D17E6 E5C88CC799462C496B178CC601DE6F3A1D4DC2125CDB3C8BD3F6CAB2E6E01F95AB3 3F34B76B237FE614CF5E2F6D100D107D78A01B7A78AC1A4E62DF6EFCD89B3A7AD163 9CBE0B5CD437D3E Μήνυμα E5F8D2B2BADB3C7D7F6078A7A B A2628DFC4C35DCF 1067FD8AD0236F1EED92316FA87DDD534B7F8C3ED427A1E7CF28EB1918B7DF8C60CD FCA2D43EB13934F830EFADF45097E114F8A1B85D6E9DAB8A370C61DA2D17F6 25CB8CC799462C496B178CC601DE6F3A1D4DC2125CDB1C8BD3F6CAB2E6E07F95AB3 3F34B76BE37FE6148F5E2F6DD00D107D38A0177A78AC1A4E62DF62FCE89B3A7AD143 9CBE0B5CD437D3C Σύνοψη FCF89436ADF177203C3DD16D2FB58C78DCAFC709113E043D55F35756B36C CF 7A2FD272BA26E85AEACFB6775DC54D1A7C8C7D651F4C7B0FF2DD0F

206 Παράρτημα IX Όπως παρουσιάστηκε και στο κεφάλαιο 3, η δυνατότητα πρακτικών επιθέσεων είναι εφικτή. Μάλιστα πέρα από τη δημιουργία colliding PostScript αρχείων εξίσου εύκολη είναι η δημιουργία colliding εκτελέσιμων αρχείων αλλά και (με μεγαλύτερη δυσκολία) η κατασκευή πλαστών X.509 πιστοποιητικών. Παραγωγή colliding εκτελέσιμων αρχείων Για την παραγωγή colliding εκτελέσιμων αρχείων ακολουθείται το ίδιο περίπου σκεπτικό. Η τεχνική που χρησιμοποιείται εκμεταλλεύεται τη δομή των αρχείων. Συγκεκριμένα το εκτελέσιμο αρχείο έχει μία επικεφαλίδα, ένα μέρος αποθήκευσης των μεταβλητών και έπειτα ακολουθεί ο κώδικας. Αρχικά πρέπει να βρεθούν δύο colliding μηνύματα Μ, Μ' με εσωτερική μεταβλητή κατάστασης τη σύνοψη της επικεφαλίδας. Στο επόμενο βήμα αυτά τα δύο μηνύματα εισάγονται ως μεταβλητές στα εκτελέσιμα και από εκεί εξαρτάται ποιο μέρος του κώδικα (καλόβουλο ή κακόβουλο) θα εκτελεστεί. Έτσι ουσιαστικά έχουμε πρόγραμμα 1: if (data1==data1) then {good program} else {evil program} και πρόγραμμα 2: if (data2==data1) then {good program} else {evil program}. Data1 είναι η μεταβλητή που αποθηκεύτηκε το Μ, data2 η μεταβλητή που αποθηκεύτηκε το Μ'. Μία πρακτική εφαρμογή των παραπάνω γίνεται με τη χρήση του προγράμματος evilize ( Αρχικά δημιουργούμε ένα πρόγραμμα σε C με δύο συναρτήσεις main_good() και main_evil() όπου τοποθετούνται οι επιθυμητές λειτουργίες. Έπειτα γίνεται μεταγλώττιση του προγράμματος με διασύνδεση στο παρεχόμενο αρχείο goodevil.o (το οποίο περιέχει τη σύγκριση των μεταβλητών και επιλογή της συνάρτησης που θα τρέξει). Ακολουθεί η εκτέλεση του προγράμματος evilize στο αρχείο που μεταγλωττίστηκε και παράγεται την επιθυμητή σύνοψη της κεφαλίδας. Με χρήση αυτής υπολογίζονται τα δύο colliding μηνύματα και με εκτέλεση του προγράμματος evilize τοποθετούνται στα εκτελέσιμα. Παραγωγή πλαστών X.509 πιστοποιητικών Με παρόμοιο σκεπτικό είναι δυνατή η κατασκευή πλαστών πιστοποιητικών. Για την ακρίβεια έχουμε πάλι ένα επίθεμα τις επιλογής του επιτιθέμενου (ίδιο και στα δύο τα πιστοποιητικά). Σε τεχνικό επίπεδο, ο επιτιθέμενος παράγει δύο κλειδιά RSA με κάποιο κοινό επίθεμα. Το πρόθεμα στα δύο πιστοποιητικά είναι διαφορετικό (το ένα ένα περιέχει τις πλαστές πληροφορίες). Ουσιαστικά κατασκευάζονται δύο μηνύματα της μορφής (P C S) και ( P' C' S) που να έχουν την ίδια σύνοψη. Τα P και P' αποτελούν τα δύο διαφορετικά προθέματα, για τα οποία (τις συνόψεις τους) πρέπει να παραχθούν δύο colliding μηνύματα C και C', ενώ τέλος ακολουθούν και τα επιθέματα. Όπως φαίνεται και στην ακόλουθη εικόνα, το τα προθέματα περιέχουν κάποιες βασικές πληροφορίες (serial number, validity period) όπως επίσης και τα επιθυμητά RSA κλειδιά. Έπειτα ακολουθούν τα συγκρουόμενα τμήματα και τέλος τα κοινά επιθέματα. 206

207 Παράρτημα X Ο παρακάτω κώδικας σε Perl (v5.10.0) παράγει δύο colliding PostScript αρχεία (my.ps, και my2.ps) με το περιεχόμενο που θέλει ο χρήστης. Η μέθοδος που ακολουθείται αναλύεται στο παράρτημα IX, ενώ λεπτομέρειες για τη λειτουργία του κώδικα υπάρχουν στα αντίστοιχα σχόλια. Η εφαρμογή μπορεί να τρέξει σε οποιοδήποτε λειτουργικό σύστημα που διαθέτει Perl. #!/usr/bin/perl -w # # Programa paragogis 2 colliding Postscript Arxeiwn # Vavilis Sokratis icsd03004 # Vasilomanolakis Manolis icsd03006 # use strict; use Digest::MD5 qw(md5_hex); use bytes; #Adobe header %!PS-Adobe-1.0 #%%BoundingBox: #me epipleon padding me kena gia na exei mikos 64 bytes (i hex timi 20 einai to space) = map {chr(hex($_)) }qw( d f d 31 2e 30 0d 0a f 75 6e e f 78 3a d 0a 28 ); #mid = )( endiamesa apo ta md5 colliding blocks = map {chr(hex($_))} qw( ); print "\n"; #ta block einai ipologismena (me xrisi tou md5coll.c ) #2 block (1024 bits) md5 colliding blocks gia tin Iv pou bgenei apo md5(head) = map {bytes::chr(hex($_))} qw( e8 42 a6 6a de 4d 00 e0 d5 89 5f f8 e5 9c c1 a7 2f ca b7 97 0a 46 7e aa c e b1 fb 7f d fc 53 e0 5b ef a a ed 5a 33 ce d 9c 07 6e 45 5a eb 2f bd 0f 95 f5 57 e5 76 3a ec bf aa 0f 0b d9 ca b c8 32 f4 7d 0b 2c b9 a3 76 d4 36 1e 20 fd ef 3b 83 a1 f2 7d eb ca 36 1c d8 6b c8 f4 94 f4 4e 61 1f 7c cf 6f 94 b ); 207

208 #2 block (1024 bits) md5 colliding blocks gia tin Iv pou bgenei apo md5(head) = map {chr(hex($_))} qw( e8 42 a6 6a de 4d 00 e0 d5 89 5f f8 e5 9c c1 a7 2f ca b7 17 0a 46 7e aa c e b1 fb 7f d fc 53 e0 5b ef a ed 5a 33 ce d 9c 07 6e 45 da eb 2f bd 0f 95 f5 57 e5 76 3a ec bf aa 0f 0b d9 ca b f4 7d 0b 2c b9 a3 76 d4 36 1e 20 fd ef 3b 83 a1 f2 7d eb ca 36 1c b c8 f4 94 f4 4e 61 1f 7c cf ef 94 b ); #print md5_hex(@head); #--> debuging gia emfanisi tou md5 hash #To header einai prokathorismeno kai episis ta colliding blocks, #ayto den emodizei tin paragogi arxeiwn me idio md5 (diaforetiko analoga to periexomeno panta) #I paragogi header kai md5 colliding pair ginete eykola, sto header mporoume na allaksoume kapoio apo ta white #space 0x20 me px 0x00 klp, kai na broume to md5 hash tou neou header, kai afou to spasoume se block ton 32 bit ta #opia eisagoume san Iv sto programma entopismou collision (ilopoihsh tis epithesis tis wang ston md5) #Epidi i diadikasia apaiti xrono, parablepete kai xrisimopoiounte etoima zeygaria pou paraxthikan me tin parapanw #diadikasia. my $version =" 0.2b"; print "\n\t \n\n"; print "\t Post Script md5 Collider v $version\n"; print "\t By Vasilomanolakis Manolis & Vavilis Sokratis \n\n"; print "\n\t \n"; print "\n \t \tconstruction of 1st PostScript File \n"; my $check =0; #metabliti elegxou egiris eisodou #dilwsi metablitwn my $author; my $recver; my $kimeno1; my $author2; my $recver2; my $kimeno2; while($check ==0) { $check=1; print "\n Please, insert the author name of the 1st ps: "; $author = <STDIN> ; print "\n Please, insert the recievers name (1st ps): "; $recver = <STDIN> ; print "\n Please, insert the 1st ps, text: "; $kimeno1= <STDIN>; 208

209 #kobei telika \n gia na eisagete se keimeno xoris problimata stin ektiposi chomp($author); chomp($recver); chomp($kimeno1); #elegxoi keni eisodou if($author eq "" $recver eq "" $kimeno1 eq "") { $check =0; } #elegxo mikous eisodou (onomata mexri 15 chr keimeno mexri 300.) Gia logous #eymorfias sto teliko postscript if(length($author)> 15 length($recver)>15 length($kimeno1)> 300 ) { $check =0; } } $check =0; print "\n\n \t\t Construction of 2nd PostScript File \n"; #paromia diadikasia me panw while($check ==0) { $check=1; print "\n Please, insert the author name of the 2nd ps: : "; $author2 = <STDIN> ; print "\n Please, insert the recievers name (1st ps): "; $recver2 = <STDIN> ; print "\n Please, insert the 1st ps, text: "; $kimeno2= <STDIN>; chomp($author2); chomp($recver2); chomp($kimeno2); if($author2 eq "" $recver2 eq "" $kimeno2 eq "") { $check =0; } if(length($author2)> 15 length($recver2)>15 length($kimeno2)> 300 ) { $check =0; } } #Dimiourgia periexomenou Post script #dilwsis metablitwn pou xrisimopoioune stin dimiourgia tou periexomenou my $sires =1;# arithmos seiron (mikous 55 xaraktirwn) # i "spasmeni" se sires eisodos tou xristi my $postmaker; # eidiki metabliti apothikeysis tou keimenou tou xristi my $post1b; my $post; my $val=0; # metabliti gia tin morfopoihsh (epilogi seiras sto postscript arxio) my $subpost; my $subpost1; my $string_check; # metablii elegxou my $post2b; 209

210 my $est_len; # metabliti counter gia to poso apomeni mexri to telous tou keimenou #Morfopoihsh dedomenon 1ou postscript my $post1a = ")eq{/times-roman findfont 20 scalefont setfont \n moveto ( From: $author ) show \n". " moveto (To $recver:) show \n" ; if(length($kimeno1)> 55) { #ipologismos seirwn $sires = length($kimeno1)/ 55; } my $i=0; for($i=0;$i<$sires;$i++) { $val =(400 - ($i*30)); $subpost=""; #spasimo keimenou se seires ton 56 xaraktirwn if((56*$i + 56 )< length($kimeno1)) { $subpost=substr($kimeno1,56*$i,56); } else { $est_len= length($kimeno1) -(56*$i) ; $subpost=substr($kimeno1,56*$i,$est_len); } if( 56*($i+1) < length($kimeno1)) { #elegxos tou prwtou stoixiou tis epomenis seiras an iparxi $subpost1=substr($kimeno1,56*($i+1),3); } else { $subpost1=""; } $string_check= substr($subpost,-1,1); #print "\n --> ". $string_check. " \n"; # topothetisi - an mia leksi kobete stin mesi kata tin allagi seiras. if($string_check ne " " && $subpost1 ne " " && $subpost1 ne "." && $subpost1 ne "!" && $subpost1 ne "!" && $string_check ne "." && $string_check ne "!" && $string_check ne "?" && $subpost1 ne "" ) { $subpost = $subpost. "-"; } #print $subpost. " \n"; $post[$i]= "25 $val moveto \n ($subpost)\n show \n "; } my $post1c = " moveto (Thank you, $author) \n show \n"; foreach $postmaker (@post) { $post1b = $post1b. $postmaker; } 210

211 #morfopoisi 2ou Postscript #paromia diadikasia me =""; my $post2a = "}{/Times-Roman findfont 20 scalefont setfont \n moveto ( From: $author2 ) show \n". " moveto (To $recver2:) show \n" ; $sires =1; if(length($kimeno2)> 55) { $sires = length($kimeno2)/ 55; } $i=0; $val =0; for($i=0;$i<$sires;$i++) { $val =(400 - ($i*30)); $subpost=""; if((56*$i + 56) <length($kimeno2)) { $subpost=substr($kimeno2,56*$i,56); } else { $est_len= length($kimeno2) -(56*$i) ; $subpost=substr($kimeno2,56*$i,$est_len); } if( 56*($i+1) < length($kimeno2)) { $subpost1=substr($kimeno2,56*($i+1),3); } else { $subpost1=""; } $string_check= substr($subpost,-1,1); if($string_check ne " " && $subpost1 ne " " && $subpost1 ne "." && $subpost1 ne "!" && $subpost1 ne "!" && $string_check ne "." && $string_check ne "!" && $string_check ne "?" && $subpost1 ne "") { $subpost = $subpost. "-"; } #print $subpost. " \n"; $post[$i]= "25 $val moveto \n ($subpost)\n show \n "; } my $post2c = " moveto (Thank you, $author2) \n show \n }ifelse \n showpage \n"; foreach $postmaker (@post) { $post2b = $post2b. $postmaker; } 211

212 #Sinenosi dedomenon ton 2 postscript my $final_post= $post1a. $post1b. $post1c. $post2a. $post2b. $post2c ; #dimiourgia Arxiou postscript print "\n\n \t\t Generating Postscript Files... "; open (BIN, ">my.ps") or die $!; binmode(bin); print print print print print BIN $final_post; close (BIN); open (BIN, ">my2.ps") or die $!; binmode(bin); print print print print print BIN $final_post; close (BIN); print " -> Done! \n"; print "\n\t\t Checking md5 checksums...\n\n"; my $sum1; my $sum2; my $file = "my.ps"; open(file, $file) or die "Can't open '$file': $!"; binmode(file); $sum1 = Digest::MD5->new->addfile(*FILE)->hexdigest; print "\t The md5 hash of $file is: $sum1 \n"; close(file); $file = "my2.ps"; open(file, $file) or die "Can't open '$file': $!"; binmode(file); $sum2 = Digest::MD5->new->addfile(*FILE)->hexdigest; print "\t The md5 hash of $file is: $sum2 \n"; close(file); if($sum1 eq $sum1) { print "\n\t The hashes are the same. You may use your postscript files freely. :) \n"; } else { print "\n\t Mission failed :(...\n"; } 212

213 Εικόνα Π10.1: Στιγμιότυπο εκτέλεσης του προγράμματος 213

214 Εικόνα Π10.2 : Το παραγόμενο my.ps Εικόνα Π10.3: Το παραγόμενο my2.ps 214

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

Εργαστήριο Ασφάλεια Πληροφοριακών Συστημάτων. Συναρτήσεις Κατακερματισμού ΤΕΙ ΚΡΗΤΗΣ ΤΜΉΜΑ ΜΗΧΑΝΙΚΏΝ ΠΛΗΡΟΦΟΡΙΚΉΣ Εργαστήριο Ασφάλεια Πληροφοριακών Συστημάτων Συναρτήσεις Κατακερματισμού Ο όρος συνάρτηση κατακερματισμού (hash function) υποδηλώνει ένα μετασχηματισμό που παίρνει

Διαβάστε περισσότερα

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

8.3.4 Τεχνικές Ασφάλειας Συμμετρική Κρυπτογράφηση Ασυμμετρική Κρυπτογράφηση Ψηφιακές Υπογραφές Κεφάλαιο 8 8.3.4 Τεχνικές Ασφάλειας Συμμετρική Κρυπτογράφηση Ασυμμετρική Κρυπτογράφηση Ψηφιακές Υπογραφές Σελ. 320-325 Γεώργιος Γιαννόπουλος ΠΕ19, ggiannop (at) sch.gr http://diktya-epal-g.ggia.info/ Creative

Διαβάστε περισσότερα

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

Εισ. Στην ΠΛΗΡΟΦΟΡΙΚΗ. Διάλεξη 8 η. Βασίλης Στεφανής Εισ. Στην ΠΛΗΡΟΦΟΡΙΚΗ Διάλεξη 8 η Βασίλης Στεφανής Περιεχόμενα Τι είναι κρυπτογραφία Ιστορική αναδρομή Αλγόριθμοι: Καίσαρα Μονοαλφαβιτικοί Vigenere Vernam Κρυπτογραφία σήμερα Κρυπτογραφία Σκοπός Αποστολέας

Διαβάστε περισσότερα

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

Ασφάλεια Τηλεπικοινωνιακών Συστημάτων ΣΤΑΥΡΟΣ Ν ΝΙΚΟΛΟΠΟΥΛΟΣ 03 ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΚΡΥΠΤΟΛΟΓΙΑ Ασφάλεια Τηλεπικοινωνιακών Συστημάτων ΣΤΑΥΡΟΣ Ν ΝΙΚΟΛΟΠΟΥΛΟΣ 03 ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΚΡΥΠΤΟΛΟΓΙΑ Περιγραφή μαθήματος Η Κρυπτολογία είναι κλάδος των Μαθηματικών, που ασχολείται με: Ανάλυση Λογικών Μαθηματικών

Διαβάστε περισσότερα

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

ΚΡΥΠΤΟΓΡΑΦΙΑ ΚΑΙ ΑΣΦΑΛΕΙΑ ΥΠΟΛΟΓΙΣΤΩΝ ΚΡΥΠΤΟΓΡΑΦΙΑ ΚΑΙ ΑΣΦΑΛΕΙΑ ΥΠΟΛΟΓΙΣΤΩΝ Δ Εξάμηνο Συναρτήσεις Κατακερματισμού και Πιστοποίηση Μηνύματος Διδάσκων : Δρ. Παρασκευάς Κίτσος Επίκουρος Καθηγητής e-mail: pkitsos@teimes.gr, pkitsos@ieee.org Αντίρριο

Διαβάστε περισσότερα

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

1. Τι είναι ακεραιότητα δεδομένων, με ποιους μηχανισμούς επιτυγχάνετε κ πότε θα χρησιμοποιούσατε τον καθένα εξ αυτών; 1. Τι είναι ακεραιότητα δεδομένων, με ποιους μηχανισμούς επιτυγχάνετε κ πότε θα χρησιμοποιούσατε τον καθένα εξ αυτών; Η ακεραιότητα δεδομένων(data integrity) Είναι η ιδιότητα που μας εξασφαλίζει ότι δεδομένα

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Ηλεκτρονικό εμπόριο. HE 7 Τεχνολογίες ασφάλειας Ηλεκτρονικό εμπόριο HE 7 Τεχνολογίες ασφάλειας Πρόκληση ανάπτυξης ασφαλών συστημάτων Η υποδομή του διαδικτύου παρουσίαζε έλλειψη υπηρεσιών ασφάλειας καθώς η οικογένεια πρωτοκόλλων TCP/IP στην οποία στηρίζεται

Διαβάστε περισσότερα

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

ΚΡΥΠΤΟΓΡΑΦΙΑ ΚΑΙ ΑΣΦΑΛΕΙΑ ΥΠΟΛΟΓΙΣΤΩΝ. Δ Εξάμηνο ΚΡΥΠΤΟΓΡΑΦΙΑ ΚΑΙ ΑΣΦΑΛΕΙΑ ΥΠΟΛΟΓΙΣΤΩΝ Δ Εξάμηνο Εισαγωγή- Βασικές Έννοιες Διδάσκων : Δρ. Παρασκευάς Κίτσος Επίκουρος Καθηγητής e-mail: pkitsos@teimes.gr, pkitsos@ieee.org Αντίρριο 2015 1 ΤΙ ΕΙΝΑΙ Η ΚΡΥΠΤΟΛΟΓΙΑ?

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Εισαγωγή στην Κρυπτογραφία και τις Ψηφιακές Υπογραφές Εισαγωγή στην Κρυπτογραφία και τις Ψηφιακές Υπογραφές Βαγγέλης Φλώρος, BSc, MSc Τµήµα Πληροφορικής και Τηλεπικοινωνιών Εθνικό και Καποδιστριακό Πανεπιστήµιο Αθηνών Εν αρχή είναι... Η Πληροφορία - Αρχείο

Διαβάστε περισσότερα

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

ΚΡΥΠΤΟΓΡΑΦΙΑ ΚΑΙ ΑΣΦΑΛΕΙΑ ΥΠΟΛΟΓΙΣΤΩΝ. Δ Εξάμηνο ΚΡΥΠΤΟΓΡΑΦΙΑ ΚΑΙ ΑΣΦΑΛΕΙΑ ΥΠΟΛΟΓΙΣΤΩΝ Δ Εξάμηνο Εισαγωγή- Βασικές Έννοιες Διδάσκων : Δρ. Παρασκευάς Κίτσος diceslab.cied.teiwest.gr Επίκουρος Καθηγητής Εργαστήριο Σχεδίασης Ψηφιακών Ολοκληρωμένων Κυκλωμάτων

Διαβάστε περισσότερα

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

Αυθεντικότητα Μηνυμάτων Συναρτήσεις Hash/MAC Αυθεντικότητα Μηνυμάτων Συναρτήσεις Hash/MAC Τμήμα Μηχ. Πληροφορικής ΤΕΙ Κρήτης Αυθεντικότητα Μηνυμάτων 1 Αυθεντικότητα Μηνύματος Εφαρμογές Προστασία ακεραιότητας Εξακρίβωση ταυτότητας αποστολέα Μη άρνηση

Διαβάστε περισσότερα

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

Εισαγωγή στην επιστήμη της Πληροφορικής και των Τηλεπικοινωνιών. Aσφάλεια Εισαγωγή στην επιστήμη της Πληροφορικής και των Τηλεπικοινωνιών Aσφάλεια ΣΤΟΧΟΙ ΚΕΦΑΛΑΙΟΥ Ορισµός τριών στόχων ασφάλειας - Εµπιστευτικότητα, ακεραιότητα και διαθεσιµότητα Επιθέσεις Υπηρεσίες και Τεχνικές

Διαβάστε περισσότερα

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

Κρυπτογραφία. Κεφάλαιο 1 Γενική επισκόπηση Κρυπτογραφία Κεφάλαιο 1 Γενική επισκόπηση Ανασκόπηση ύλης Στόχοι της κρυπτογραφίας Ιστορικό Γενικά χαρακτηριστικά Κλασσική κρυπτογραφία Συμμετρικού κλειδιού (block ciphers stream ciphers) Δημοσίου κλειδιού

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Κρυπτογραφία. Εργαστηριακό μάθημα 1 Κρυπτογραφία Εργαστηριακό μάθημα 1 Βασικοί όροι Με τον όρο κρυπτογραφία εννοούμε τη μελέτη μαθηματικών τεχνικών που στοχεύουν στην εξασφάλιση θεμάτων που άπτονται της ασφάλειας μετάδοσης της πληροφορίας,

Διαβάστε περισσότερα

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

Εισαγωγή στην επιστήμη της Πληροφορικής και των. Aσφάλεια Εισαγωγή στην επιστήμη της Πληροφορικής και των Τηλεπικοινωνιών Aσφάλεια Περιεχόμενα Πλευρές Ασφάλειας Ιδιωτικό Απόρρητο Μέθοδος Μυστικού Κλειδιού (Συμμετρική Κρυπτογράφηση) Μέθοδος Δημόσιου Κλειδιού (Ασύμμετρη

Διαβάστε περισσότερα

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

ΕΠΛ 674: Εργαστήριο 1 Ασφάλεια Επικοινωνιακών Συστημάτων - Κρυπτογραφία ΕΠΛ 674: Εργαστήριο 1 Ασφάλεια Επικοινωνιακών Συστημάτων - Κρυπτογραφία Παύλος Αντωνίου Γραφείο: ΘΕΕ 02 B176 Εαρινό Εξάμηνο 2011 Department of Computer Science Ασφάλεια - Απειλές Ασφάλεια Γενικά (Ι) Τα

Διαβάστε περισσότερα

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

Εισαγωγή στην επιστήμη της Πληροφορικής και των Τηλεπικοινωνιών. Aσφάλεια Εισαγωγή στην επιστήμη της Πληροφορικής και των Τηλεπικοινωνιών Aσφάλεια Περιεχόμενα Πλευρές Ασφάλειας Ιδιωτικό Απόρρητο Μέθοδος Μυστικού Κλειδιού (Συμμετρική Κρυπτογράφηση) Μέθοδος Δημόσιου Κλειδιού (Ασύμμετρη

Διαβάστε περισσότερα

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

Οι απειλές. Απόρρητο επικοινωνίας. Αρχές ασφάλειας δεδομένων. Απόρρητο (privacy) Μέσω κρυπτογράφησης Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής στην Επιστήμη των Υπολογιστών 2014-015 Ασφάλεια Δεδομένων http://www.ionio.gr/~mistral/tp/csintro/ Οι απειλές Ένας κακόβουλος χρήστης Καταγράφει μηνύματα που ανταλλάσσονται

Διαβάστε περισσότερα

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

Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών Ασφάλεια Δεδομένων. Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής στην Επιστήμη των Υπολογιστών 2015-16 Ασφάλεια Δεδομένων http://www.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης Οι απειλές Ένας κακόβουλος χρήστης Καταγράφει μηνύματα

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Κεφάλαιο 2. Κρυπτογραφικά εργαλεία Κεφάλαιο 2 Κρυπτογραφικά εργαλεία Συμμετρική κρυπτογράφηση Καθολικά αποδεκτή τεχνική που χρησιμοποιείται για τη διαφύλαξη της εμπιστευτικότητας δεδομένων τα οποία μεταδίδονται ή αποθηκεύονται Γνωστή και

Διαβάστε περισσότερα

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

Ασφάλεια Υπολογιστικών Συστηµάτων Ορισµοί Κρυπτογράφηση: η διεργασία µετασχηµατισµού ενός µηνύµατος µεταξύ ενός αποστολέα και ενός παραλήπτη σε µια ακατανόητη µορφή ώστε αυτό να µην είναι αναγνώσιµο από τρίτους Αποκρυπτογράφηση: η διεργασία

Διαβάστε περισσότερα

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

Υπολογιστική Θεωρία Αριθμών και Κρυπτογραφία Υπολογιστική Θεωρία Αριθμών και Κρυπτογραφία Συμμετρικά κρυπτοσυστήματα Άρης Παγουρτζής Στάθης Ζάχος Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Σχολή ΗΜΜΥ ΕΜΠ 1

Διαβάστε περισσότερα

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

Παύλος Εφραιμίδης. Βασικές Έννοιες Κρυπτογραφίας. Ασφ Υπολ Συστ Παύλος Εφραιμίδης Βασικές Έννοιες Κρυπτογραφίας Ασφ Υπολ Συστ 1 θα εξετάσουμε τα ακόλουθα εργαλεία κρυπτογραφίας: ψηφιακές υπογραφές κατακερματισμός (hashing) συνόψεις μηνυμάτων μ (message digests) ψευδοτυχαίοι

Διαβάστε περισσότερα

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

Κρυπτογραφία. Κωνσταντίνου Ελισάβετ Κρυπτογραφία Κωνσταντίνου Ελισάβετ ekonstantinou@aegean.gr http://www.icsd.aegean.gr/ekonstantinou Συμμετρικά Κρυπτοσυστήματα κλειδί k Αρχικό κείμενο (m) Αλγόριθμος Κρυπτογράφησης Ε c = E k (m) Κρυπτογραφημένο

Διαβάστε περισσότερα

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

ΑΣΦΑΛΕΙΑ & ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ(Θ) ΑΣΦΑΛΕΙΑ & ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ(Θ) Ενότητα 6: ΑΣΦΑΛΕΙΑ & ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ ΔΙΔΑΣΚΩΝ: ΚΩΝΣΤΑΝΤΙΝΟΣ ΧΕΙΛΑΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ 1 Άδειες Χρήσης Το παρόν εκπαιδευτικό

Διαβάστε περισσότερα

Ψηφιακά Πιστοποιητικά Ψηφιακές Υπογραφές

Ψηφιακά Πιστοποιητικά Ψηφιακές Υπογραφές ΤΕΙ Κρητης Τμήμα Μηχανικών Πληροφορικής Εργαστήριο Ασφάλεια Πληροφοριακών Συστημάτων Ψηφιακά Πιστοποιητικά Ψηφιακές Υπογραφές Ψηφιακά Πιστοποιητικά Υποδομή δημόσιου κλειδιού (Public Key Infrastructure

Διαβάστε περισσότερα

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

ρ. Κ. Σ. Χειλάς, ίκτυα Η/Υ ΙΙΙ, Τ.Ε.Ι. Σερρών, 2007 Ψηφιακές υπογραφές Ψηφιακές υπογραφές Υπάρχει ανάγκη αντικατάστασης των χειρόγραφων υπογραφών µε ψηφιακές (ΨΥ) Αυτές πρέπει να διαθέτουν τα εξής χαρακτηριστικά: Ο παραλήπτης πρέπει να είναι σε θέση να

Διαβάστε περισσότερα

Εισαγωγή στην Κρυπτολογία 3. Ασφάλεια Τηλεπικοινωνιακών Συστημάτων Κωδικός DIΤ114 Σταύρος ΝΙΚΟΛΟΠΟΥΛΟΣ

Εισαγωγή στην Κρυπτολογία 3. Ασφάλεια Τηλεπικοινωνιακών Συστημάτων Κωδικός DIΤ114 Σταύρος ΝΙΚΟΛΟΠΟΥΛΟΣ Εισαγωγή στην Κρυπτολογία 3 Ασφάλεια Τηλεπικοινωνιακών Συστημάτων Κωδικός DIΤ114 Σταύρος ΝΙΚΟΛΟΠΟΥΛΟΣ Ακεραιότητα Μονόδρομη Κρυπτογράφηση Ακεραιότητα Αυθεντικότητα μηνύματος Ακεραιότητα μηνύματος Αυθεντικότητα

Διαβάστε περισσότερα

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

Πληροφορική Ι. Μάθημα 10 ο Ασφάλεια. Τμήμα Χρηματοοικονομικής & Ελεγκτικής ΤΕΙ Ηπείρου Παράρτημα Πρέβεζας. Δρ. Γκόγκος Χρήστος Οι διαφάνειες έχουν βασιστεί στο βιβλίο «Εισαγωγή στην επιστήμη των υπολογιστών» του B. Forouzanκαι Firoyz Mosharraf(2 η έκδοση-2010) Εκδόσεις Κλειδάριθμος Τμήμα Χρηματοοικονομικής & Ελεγκτικής ΤΕΙ Ηπείρου

Διαβάστε περισσότερα

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

Χρήστος Ξενάκης Τμήμα Ψηφιακών Συστημάτων Βασικά Θέματα Κρυπτογραφίας Χρήστος Ξενάκης Τμήμα Ψηφιακών Συστημάτων Πανεπιστήμιο Πειραιά Αντικείμενο μελέτης Εφαρμοσμένη Κρυπτογραφία, απαραίτητη για την Ασφάλεια Δικτύων Υπολογιστών Χαρακτηριστικά των

Διαβάστε περισσότερα

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

Συμμετρικά κρυπτοσυστήματα Υπολογιστική Θεωρία Αριθμών και Κρυπτογραφία Συμμετρικά κρυπτοσυστήματα Άρης Παγουρτζής Στάθης Ζάχος Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχανικών - Μηχανικών Υπολογιστών Δίκτυα Feistel Σημαντικές

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου 11η Διάλεξη: Ασφάλεια στο Web Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου 11η Διάλεξη: Ασφάλεια στο Web Δρ. Απόστολος Γκάμας Λέκτορας (407/80) gkamas@uop.gr Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 1 1 Εισαγωγικά Βασικές

Διαβάστε περισσότερα

ΤΙΤΛΟΣ ΕΡΕΥΝΗΤΙΚΗΣ ΕΚΘΕΣΗΣ ΚΩΔΙΚΕΣ. Υπόθεμα: «ΚΡΥΠΤΟΓΡΑΦΙΑ»

ΤΙΤΛΟΣ ΕΡΕΥΝΗΤΙΚΗΣ ΕΚΘΕΣΗΣ ΚΩΔΙΚΕΣ. Υπόθεμα: «ΚΡΥΠΤΟΓΡΑΦΙΑ» ΤΙΤΛΟΣ ΕΡΕΥΝΗΤΙΚΗΣ ΕΚΘΕΣΗΣ ΚΩΔΙΚΕΣ Υπόθεμα: «ΚΡΥΠΤΟΓΡΑΦΙΑ» ΤΑ ΜΕΛΗ ΤΗΣ ΟΜΑΔΑΣ ΦΩΤΕΙΝΟΥ ΑΝΔΡΙΑΝΑ ΣΟΦΟΛΟΓΗ ΑΡΕΤΗ ΣΠΑΡΤΑΛΗΣ ΝΙΚΟΣ ΜΕΜΟΣ ΝΙΚΟΣ Επιβλέπουσα καθηγήτρια: Καλλιόπη Μαγδαληνού, ΠΕ19 1 ΛΙΓΑ ΛΟΓΙΑ

Διαβάστε περισσότερα

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

ΚΡΥΠΤΟΓΡΑΦΙΑ ΚΑΙ ΑΣΦΑΛΕΙΑ ΥΠΟΛΟΓΙΣΤΩΝ Δ Εξάμηνο ΚΡΥΠΤΟΓΡΑΦΙΑ ΚΑΙ ΑΣΦΑΛΕΙΑ ΥΠΟΛΟΓΙΣΤΩΝ Δ Εξάμηνο Ψηφιακή Υπογραφή και Αυθεντικοποίηση Μηνύματος Διδάσκων : Δρ. Παρασκευάς Κίτσος Επίκουρος Καθηγητής e-mail: pkitsos@teimes.gr, pkitsos@ieee.org Αντίρριο

Διαβάστε περισσότερα

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

Κρυπ Κρ το υπ γραφία Κρυπ Κρ το υπ λογίας Διαχείριση και Ασφάλεια Τηλεπικοινωνιακών Συστημάτων Κρυπτογραφία Κρυπτογραφία Η Κρυπτογραφία (cryptography) είναι ένας κλάδος της επιστήμης της Κρυπτολογίας (cryptology), η οποία ασχολείται με την μελέτη

Διαβάστε περισσότερα

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

Κρυπτογραφία. Κεφάλαιο 4 Αλγόριθμοι Δημοσίου Κλειδιού (ή ασύμμετροι αλγόριθμοι) Κρυπτογραφία Κεφάλαιο 4 Αλγόριθμοι Δημοσίου Κλειδιού (ή ασύμμετροι αλγόριθμοι) Κρυπτοσυστήματα Δημοσίου κλειδιού Αποστολέας P Encryption C Decryption P Παραλήπτης Προτάθηκαν το 1976 Κάθε συμμετέχων στο

Διαβάστε περισσότερα

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

Ασφάλεια Πληροφοριακών Συστηµάτων. Αυθεντικότητα Μηνυµάτων 1 Αυθεντικότητα Μηνυµάτων Συναρτήσεις Hash/MAC Τμήμα Μηχ. Πληροφορικής ΤΕΙ Κρήτης Αυθεντικότητα Μηνυµάτων 1 Αυθεντικότητα Μηνύµατος Εφαρμογές Προστασία ακεραιότητας Εξακρίβωση ταυτότητας αποστολέα Μη άρνηση

Διαβάστε περισσότερα

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

Κεφάλαια 2&21. Συναρτήσεις κατακερματισμού Πιστοποίηση ταυτότητας μηνυμάτων Κεφάλαια 2&21 Συναρτήσεις κατακερματισμού Πιστοποίηση ταυτότητας μηνυμάτων Ενεργητικές επιθέσεις Η κρυπτογράφηση παρέχει προστασία από παθητικές επιθέσεις (υποκλοπή). Μια διαφορετική απαίτηση είναι η προστασία

Διαβάστε περισσότερα

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

ΤΕΙ Κρήτης Τμήμα Μηχανικών Πληροφορικής. Συμμετρική Κρυπτογραφία ΤΕΙ Κρήτης Τμήμα Μηχανικών Πληροφορικής Συμμετρική Κρυπτογραφία Εισαγωγή Στην συνηθισμένη κρυπτογραφία, ο αποστολέας και ο παραλήπτης ενός μηνύματος γνωρίζουν και χρησιμοποιούν το ίδιο μυστικό κλειδί.

Διαβάστε περισσότερα

Κεφάλαιο 8. Ακεραιότητα και Αυθεντικότητα Μηνυμάτων

Κεφάλαιο 8. Ακεραιότητα και Αυθεντικότητα Μηνυμάτων Κεφάλαιο 8. Ακεραιότητα και Αυθεντικότητα Μηνυμάτων Σύνοψη Κατά τη μεταφορά δεδομένων με τη μορφή μηνυμάτων στο Διαδίκτυο, κρίσιμο ζητούμενο αποτελεί η ύπαρξη μηχανισμών για την επιβεβαίωση της ακεραιότητας

Διαβάστε περισσότερα

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

Κρυπτογραφία. Κρυπτοσυστήματα τμήματος (Block ciphers) Άρης Παγουρτζής Στάθης Ζάχος Πέτρος Ποτίκας Κρυπτογραφία Κρυπτοσυστήματα τμήματος (Block ciphers) Άρης Παγουρτζής Στάθης Ζάχος Πέτρος Ποτίκας Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Block ciphers και ψευδοτυχαίες

Διαβάστε περισσότερα

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

Αλγόριθµοι δηµόσιου κλειδιού Αλγόριθµοι δηµόσιου κλειδιού Αλγόριθµοι δηµόσιου κλειδιού Ηδιανοµή του κλειδιού είναι ο πιο αδύναµος κρίκος στα περισσότερα κρυπτογραφικά συστήµατα Diffie και Hellman, 1976 (Stanford Un.) πρότειναν ένα

Διαβάστε περισσότερα

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

ΚΡΥΠΤΟΓΡΑΦΙΑ ΚΑΙ ΑΣΦΑΛΕΙΑ ΥΠΟΛΟΓΙΣΤΩΝ. Δ Εξάμηνο ΚΡΥΠΤΟΓΡΑΦΙΑ ΚΑΙ ΑΣΦΑΛΕΙΑ ΥΠΟΛΟΓΙΣΤΩΝ Δ Εξάμηνο Ασύμμετρη Κρυπτογράφηση (Κρυπτογραφία Δημόσιου Κλειδιού) Διδάσκων : Δρ. Παρασκευάς Κίτσος Επίκουρος Καθηγητής e-mail: pkitsos@teimes.gr, pkitsos@ieee.org

Διαβάστε περισσότερα

Ασφάλεια στο Ηλεκτρονικό Επιχειρείν. ΤΕΙ Δυτικής Ελλάδας Τμήμα Διοίκησης Επιχειρήσεων - Πάτρα Κουτσονίκος Γιάννης

Ασφάλεια στο Ηλεκτρονικό Επιχειρείν. ΤΕΙ Δυτικής Ελλάδας Τμήμα Διοίκησης Επιχειρήσεων - Πάτρα Κουτσονίκος Γιάννης Ασφάλεια στο Ηλεκτρονικό Επιχειρείν ΤΕΙ Δυτικής Ελλάδας Τμήμα Διοίκησης Επιχειρήσεων - Πάτρα Κουτσονίκος Γιάννης 1 Κίνδυνοι Η-Ε Μερικοί από τους κινδύνους ενός δικτυακού τόπου Ε-εμπορίου περιλαμβάνουν:

Διαβάστε περισσότερα

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

Ασφάλεια Πληροφοριακών Συστημάτων Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Ασφάλεια Πληροφοριακών Συστημάτων Ενότητα 6: Κρυπτογραφία Ι Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται διαφορετικά

Διαβάστε περισσότερα

Αννα Νταγιου ΑΕΜ: 432. Εξαμηνο 8. Ερώτηση 1. Πληκτρολογήστε την εντολή: openssl help Παρατηρήστε τις πληροφορίες που λαµβάνετε.

Αννα Νταγιου ΑΕΜ: 432. Εξαμηνο 8. Ερώτηση 1. Πληκτρολογήστε την εντολή: openssl help Παρατηρήστε τις πληροφορίες που λαµβάνετε. Αννα Νταγιου ΑΕΜ: 432 Εξαμηνο 8 Ερώτηση 1. Πληκτρολογήστε την εντολή: openssl help Παρατηρήστε τις πληροφορίες που λαµβάνετε. Παρόµοια, πληκτρολογήστε την εντολή: openssl ciphers v Ποιοι συµµετρικοί αλγόριθµοι

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Κεφάλαιο 21. Κρυπτογραφία δημόσιου κλειδιού και πιστοποίηση ταυτότητας μηνυμάτων Κεφάλαιο 21 Κρυπτογραφία δημόσιου κλειδιού και πιστοποίηση ταυτότητας μηνυμάτων Κρυπτογράφηση δημόσιου κλειδιού RSA Αναπτύχθηκε το 1977 από τους Rivest, Shamir και Adleman στο MIT Ο πιο γνωστός και ευρέως

Διαβάστε περισσότερα

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

Ασφάλεια Πληροφοριακών Συστηµάτων Ασφάλεια Πληροφοριακών Συστηµάτων Κρυπτογραφία/Ψηφιακές Υπογραφές Διάλεξη 3η Δρ. A. Στεφανή Τµ. Διοίκησης Επιχειρήσεων, ΤΕΙ Δυτ. Ελλάδας Ψηφιακές Υπογραφές- Βασικές Αρχές Η Ψηφιακή Υπογραφή είναι ένα µαθηµατικό

Διαβάστε περισσότερα

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

ΕΠΑΝΑΛΗΠΤΙΚΟ ΤΕΣΤ ΣΤΗΝ ΕΝΟΤΗΤΑ ΕΠΑ.Λ. Άμφισσας Σχολικό Έτος : 2011-2012 Τάξη : Γ Τομέας : Πληροφορικής Μάθημα : ΔΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ ΙΙ Διδάσκων : Χρήστος Ρέτσας Η-τάξη : tiny.cc/retsas-diktya2 ΕΠΑΝΑΛΗΠΤΙΚΟ ΤΕΣΤ ΣΤΗΝ ΕΝΟΤΗΤΑ 8.3.4-8.3.6

Διαβάστε περισσότερα

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

ΕΠΑΝΑΛΗΠΤΙΚΟ ΤΕΣΤ ΣΤΗΝ ΕΝΟΤΗΤΑ ΕΠΑ.Λ. Άμφισσας Σχολικό Έτος : 2011-2012 Τάξη : Γ Τομέας : Πληροφορικής Μάθημα : ΔΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ ΙΙ Διδάσκων : Χρήστος Ρέτσας Η-τάξη : tiny.cc/retsas-diktya2 ΕΠΑΝΑΛΗΠΤΙΚΟ ΤΕΣΤ ΣΤΗΝ ΕΝΟΤΗΤΑ 8.3.1-8.3.3

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Κρυπτογραφία. Κρυπτοσυστήματα τμήματος (Block ciphers) Άρης Παγουρτζής Στάθης Ζάχος Πέτρος Ποτίκας Κρυπτογραφία Κρυπτοσυστήματα τμήματος (Block ciphers) Άρης Παγουρτζής Στάθης Ζάχος Πέτρος Ποτίκας Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Σχολή ΗΜΜΥ ΕΜΠ 1 / 26

Διαβάστε περισσότερα

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

Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου Τμήμα Τηλεπληροφορικής & Διοίκησης Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου Τμήμα Τηλεπληροφορικής & Διοίκησης Κατάλογος Περιεχομένων ΕΙΣΑΓΩΓΉ ΣΤΟ CRYPTOOL... 3 DOWNLOADING CRYPTOOL... 3 ΜΗΧΑΝΙΣΜΟΊ ΚΑΙ ΑΛΓΌΡΙΘΜΟΙ ΚΡΥΠΤΟΓΡΑΦΊΑΣ ΣΤΟ CRYPTOOL...

Διαβάστε περισσότερα

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

ΑΣΥΜΜΕΤΡΗ ΚΡΥΠΤΟΓΡΑΦΙΑ Lab 3 ΑΣΥΜΜΕΤΡΗ ΚΡΥΠΤΟΓΡΑΦΙΑ Lab 3 Η Aσύμμετρη Kρυπτογραφία ή Κρυπτογραφία Δημοσίου Κλειδιού χρησιμοποιεί δύο διαφορετικά κλειδιά για την κρυπτογράφηση και αποκρυπτογράφηση. Eπινοήθηκε στο τέλος της δεκαετίας

Διαβάστε περισσότερα

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

Εφαρμοσμένη Κρυπτογραφία Ι Εφαρμοσμένη Κρυπτογραφία Ι Κωνσταντίνου Ελισάβετ ekonstantinou@aegean.gr http://www.icsd.aegean.gr/ekonstantinou Ψηφιακές Υπογραφές Ορίζονται πάνω σε μηνύματα και είναι αριθμοί που εξαρτώνται από κάποιο

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

ΠΡΟΣΤΑΣΙΑ ΠΡΟΣΩΠΙΚΩΝ ΔΕΔΟΜΕΝΩΝ ΣΤΙΣ ΤΕΧΝΟΛΟΓΙΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΩΝ ΚΑΘΩΣ ΚΑΙ ΣΤΟ ΔΙΑΔΙΚΤΥΟ ΠΡΟΣΤΑΣΙΑ ΠΡΟΣΩΠΙΚΩΝ ΔΕΔΟΜΕΝΩΝ ΣΤΙΣ ΤΕΧΝΟΛΟΓΙΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΩΝ ΚΑΘΩΣ ΚΑΙ ΣΤΟ ΔΙΑΔΙΚΤΥΟ ΔΙΑΔΙΚΤΥΟ Το διαδίκτυο προσφέρει: Μετατροπή των δεδομένων σε ψηφιακή - ηλεκτρονική μορφή. Πρόσβαση

Διαβάστε περισσότερα

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

Βασικές Έννοιες Κρυπτογραφίας Βασικές Έννοιες Κρυπτογραφίας Παύλος Εφραιμίδης Κρυπτογραφία Βασικές Έννοιες 1 Τι θα μάθουμε Obscurity vs. Security Βασικές υπηρεσίες κρυπτογραφίας: Confidentiality, Authentication, Integrity, Non- Repudiation

Διαβάστε περισσότερα

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

ΠΡΟΣΤΑΣΙΑ ΠΡΟΣΩΠΙΚΩΝ ΔΕΔΟΜΕΝΩΝ ΣΤΙΣ ΤΕΧΝΟΛΟΓΙΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΩΝ ΚΑΘΩΣ ΚΑΙ ΣΤΟ ΔΙΑΔΙΚΤΥΟ ΠΡΟΣΤΑΣΙΑ ΠΡΟΣΩΠΙΚΩΝ ΔΕΔΟΜΕΝΩΝ ΣΤΙΣ ΤΕΧΝΟΛΟΓΙΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΩΝ ΚΑΘΩΣ ΚΑΙ ΣΤΟ ΔΙΑΔΙΚΤΥΟ ΔΙΑΔΙΚΤΥΟ Το διαδίκτυο προσφέρει: Μετατροπή των δεδομένων σε ψηφιακή - ηλεκτρονική μορφή. Πρόσβαση

Διαβάστε περισσότερα

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

ΚΡΥΠΤΟΓΡΑΦΙΑ ΚΑΙ ΑΣΦΑΛΕΙΑ ΥΠΟΛΟΓΙΣΤΩΝ Δ Εξάμηνο ΚΡΥΠΤΟΓΡΑΦΙΑ ΚΑΙ ΑΣΦΑΛΕΙΑ ΥΠΟΛΟΓΙΣΤΩΝ Δ Εξάμηνο Τοπολογίες Διατάξεων Κρυπτογράφησης- Ασφάλεια Δικτύων και Ασφάλεια Ηλεκτρονικού Ταχυδρομείου Διδάσκων : Δρ. Παρασκευάς Κίτσος Επίκουρος Καθηγητής e-mail:

Διαβάστε περισσότερα

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

Κρυπτογραφία. Κρυπτοσυστήματα πακέτου (Block ciphers) Άρης Παγουρτζής Στάθης Ζάχος Πέτρος Ποτίκας Κρυπτογραφία Κρυπτοσυστήματα πακέτου (Block ciphers) Άρης Παγουρτζής Στάθης Ζάχος Πέτρος Ποτίκας Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Block ciphers και ψευδοτυχαίες

Διαβάστε περισσότερα

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

Ασφάλεια Πληροφοριακών Συστημάτων Εργαστήριο Ασφάλεια Πληροφοριακών Συστημάτων Θεοδωρακοπούλου Ανδριάνα atheodorak@outlook.com Βαθμολόγηση Ασκήσεις Εργαστηρίου: 40% Τελική Εξέταση: 60% Ρήτρα: Βαθμός τελικής εξέτασης > 3.5 ΠΡΟΣΟΧΗ στις

Διαβάστε περισσότερα

8.3 Ασφάλεια ικτύων. Ερωτήσεις

8.3 Ασφάλεια ικτύων. Ερωτήσεις 8.3 Ασφάλεια ικτύων Ερωτήσεις 1. Με τι ασχολείται η ασφάλεια των συστηµάτων; 2. Τι είναι αυτό που προστατεύεται στην ασφάλεια των συστηµάτων και για ποιο λόγο γίνεται αυτό; 3. Ποια η διαφορά ανάµεσα στους

Διαβάστε περισσότερα

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ - ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 131: ΑΡΧΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I ΕΡΓΑΣΙΑ 2 ΕΡΓΑΣΙΑ Διδάσκων: Γιώργος Χρυσάνθου Υπεύθυνος Άσκησης: Πύρρος Μπράτσκας Ημερομηνία Ανάθεσης: 3/10/015 Ημερομηνία Παράδοσης: 09/11/015 09:00 π.μ. I.Στόχος Στόχος αυτής της εργασίας είναι η χρησιμοποίηση

Διαβάστε περισσότερα

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

Ασφάλεια Πληροφοριακών Συστημάτων Εργαστήριο Ασφάλεια Πληροφοριακών Συστημάτων Lab 1 Κλασική Κρυπτογραφία ΤΕΙ ΚΡΗΤΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Fysarakis Konstantinos, PhD kfysarakis@staff.teicrete.gr Γενικές Πληροφορίες Βαθμολόγηση

Διαβάστε περισσότερα

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

Κατάλογος Σχηµάτων. Κατάλογος Πινάκων. I Θεµέλια 27 Κατάλογος Σχηµάτων Κατάλογος Πινάκων ix xv xx I Θεµέλια 27 1 Μαθηµατικά 29 1.1 Κριτήρια διαιρετότητας................ 30 1.2 Μέγιστος κοινός διαιρέτης και Ευκλείδειος αλγόριθµος 31 1.3 Πρώτοι αριθµοί....................

Διαβάστε περισσότερα

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

Παύλος Εφραιμίδης. Βασικές Έννοιες Κρυπτογραφίας. Ασφ Υπολ Συστ Παύλος Εφραιμίδης Βασικές Έννοιες Κρυπτογραφίας Ασφ Υπολ Συστ 1 Βασικές υπηρεσίες/εφαρμογές κρυπτογραφίες: Confidentiality, Authentication, Integrity, Non- Repudiation Βασικές έννοιες κρυπτογραφίας 2 3

Διαβάστε περισσότερα

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

Cryptography and Network Security Chapter 9. Fifth Edition by William Stallings Cryptography and Network Security Chapter 9 Fifth Edition by William Stallings Chapter 9 Κρυπτογραφια Δημοσιου Κλειδιου και RSA Every Egyptian received two names, which were known respectively as the true

Διαβάστε περισσότερα

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

ΠΕΡΙΕΧΟΜΕΝΑ 1. Εισαγωγή 2. Θεωρία αριθμών Αλγεβρικές δομές  3. Οι κρυπταλγόριθμοι και οι ιδιότητές τους ΠΕΡΙΕΧΟΜΕΝΑ 1. Εισαγωγή... 1 1.1. Ορισμοί και ορολογία... 2 1.1.1. Συμμετρικά και ασύμμετρα κρυπτοσυστήματα... 4 1.1.2. Κρυπτογραφικές υπηρεσίες και πρωτόκολλα... 9 1.1.3. Αρχές μέτρησης κρυπτογραφικής

Διαβάστε περισσότερα

ΚΡΥΠΤΟΓΡΑΦΙΑ. Σκοπός: η δημιουργία ασφαλούς επικοινωνίας. «κρυπτός» + «γράφω» τρόπος απόκρυψης περιεχομένου των μηνυμάτων

ΚΡΥΠΤΟΓΡΑΦΙΑ. Σκοπός: η δημιουργία ασφαλούς επικοινωνίας. «κρυπτός» + «γράφω» τρόπος απόκρυψης περιεχομένου των μηνυμάτων ΚΡΥΠΤΟΓΡΑΦΙΑ ΚΡΥΠΤΟΓΡΑΦΙΑ «κρυπτός» + «γράφω» τρόπος απόκρυψης περιεχομένου των μηνυμάτων Σκοπός: η δημιουργία ασφαλούς επικοινωνίας Click to edit Master subtitle style ΔΙΑΔΙΚΑΣΙΑ ΚΡΥΠΤΟΓΡΑΦΗΣΗΣ - ΑΠΟΚΡΥΠΤΟΓΡΑΦΗΣΗΣ

Διαβάστε περισσότερα

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

Εργαστήριο Ασφάλεια Πληροφοριακών Συστημάτων SSL/TLS Εργαστήριο Ασφάλεια Πληροφοριακών Συστημάτων SSL/TLS Fysarakis Konstantinos, PhD kfysarakis@staff.teicrete.gr » Το SSL (Secure Sockets Layer) αναπτύχθηκε από την εταιρεία Netscape. Η έκδοση 1.0 δεν παρουσιάστηκε

Διαβάστε περισσότερα

Διδάσκουσα: Χάλκου Χαρά,

Διδάσκουσα: Χάλκου Χαρά, Διδάσκουσα: Χάλκου Χαρά, Διπλωματούχος Ηλεκτρολόγος Μηχανικός & Τεχνολογίας Η/Υ, MSc e-mail: chalkou@upatras.gr Κάθε ασθενείς έχει έναν ιατρικό φάκελο όπου περιέχονται τα ιατρικά του δεδομένα. Οι χειρόγραφοι

Διαβάστε περισσότερα

Τετάρτη 20 Ιουνίου, Κρυπτογράφηση Ανωνυμοποίηση Ψευδωνυμοποίηση

Τετάρτη 20 Ιουνίου, Κρυπτογράφηση Ανωνυμοποίηση Ψευδωνυμοποίηση Τετάρτη 20 Ιουνίου, 2018 Κρυπτογράφηση Ανωνυμοποίηση Ψευδωνυμοποίηση ΚΡΥΠΤΟΓΡΑΦΗΣΗ Τι είναι: Κρυπτογράφηση είναι ο μετασχηματισμός δεδομένων σε μορφή που να είναι αδύνατον να διαβαστεί χωρίς τη γνώση της

Διαβάστε περισσότερα

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

Πρόλογος 1. 1 Μαθηµατικό υπόβαθρο 9 Πρόλογος 1 Μαθηµατικό υπόβαθρο 7 1 Μαθηµατικό υπόβαθρο 9 1.1 Η αριθµητική υπολοίπων.............. 10 1.2 Η πολυωνυµική αριθµητική............ 14 1.3 Θεωρία πεπερασµένων οµάδων και σωµάτων.... 17 1.4 Πράξεις

Διαβάστε περισσότερα

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

Ασφάλεια Υπολογιστικών Συστημάτων Ασφάλεια Υπολογιστικών Συστημάτων Ενότητα 2: Συμμετρική κρυπτογραφία Νικολάου Σπύρος Τμήμα Μηχανικών Πληροφορικής ΤΕ Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.

Διαβάστε περισσότερα

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

Ασφάλεια Πληροφοριακών Συστημάτων Ασφάλεια Πληροφοριακών Συστημάτων Κρυπτογραφία/Ψηφιακές Υπογραφές Διάλεξη 2η Δρ. Β. Βασιλειάδης Τμ. Διοίκησης Επιχειρήσεων, ΤΕΙ Δυτ. Ελλάδας Kρυπτανάλυση Προσπαθούμε να σπάσουμε τον κώδικα. Ξέρουμε το

Διαβάστε περισσότερα

ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ Διαχείριση Ασφαλείας (Ι) Απειλές Ασφαλείας Συμμετρική & Μη-Συμμετρική Κρυπτογραφία

ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ Διαχείριση Ασφαλείας (Ι) Απειλές Ασφαλείας Συμμετρική & Μη-Συμμετρική Κρυπτογραφία ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ Διαχείριση (Ι) Απειλές Συμμετρική & Μη-Συμμετρική Κρυπτογραφία Β. Μάγκλαρης maglaris@netmode.ntua.gr www.netmode.ntua.gr 13/11/2017 ΘΕΜΑΤΙΚΕΣ ΠΕΡΙΟΧΕΣ ΑΣΦΑΛΕΙΑΣ Είδη Απειλών και Επιθέσεων

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Ασφάλεια Πληροφοριακών Συστημάτων Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Ασφάλεια Πληροφοριακών Συστημάτων Ενότητα 5: Διαχείριση κλειδιών Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται

Διαβάστε περισσότερα

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

Ασφάλεια Υπολογιστικών Συστημάτων Ασφάλεια Υπολογιστικών Συστημάτων Ενότητα 4: Pretty Good Privacy (PGP) Νικολάου Σπύρος Τμήμα Μηχανικών Πληροφορικής ΤΕ Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.

Διαβάστε περισσότερα

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

Cryptography and Network Security Chapter 13. Fifth Edition by William Stallings Cryptography and Network Security Chapter 13 Fifth Edition by William Stallings Chapter 13 Digital Signatures To guard against the baneful influence exerted by strangers is therefore an elementary dictate

Διαβάστε περισσότερα

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

Οικονομικό Πανεπιστήμιο Αθηνών Τμήμα Πληροφορικής ΠΜΣ Κρυπτογραφία και Εφαρμογές Οικονομικό Πανεπιστήμιο Αθηνών Τμήμα Πληροφορικής ΠΜΣ Κρυπτογραφία και Εφαρμογές Μαριάς Ιωάννης marias@aueb.gr Μαρκάκης Ευάγγελος markakis@gmail.com 1 Περίληψη Ηash functions (συναρτήσεις σύνοψης) Assurance

Διαβάστε περισσότερα

ΗΛΕΚΤΡΟΝΙΚΗ ΔΙΑΚΥΒΕΡΝΗΣΗ ΣΤΗΝ ΕΕ

ΗΛΕΚΤΡΟΝΙΚΗ ΔΙΑΚΥΒΕΡΝΗΣΗ ΣΤΗΝ ΕΕ ΗΛΕΚΤΡΟΝΙΚΗ ΔΙΑΚΥΒΕΡΝΗΣΗ Ψηφιακές υπογραφές ΝΙΚΟΣ ΣΑΡΙΔΑΚΗΣ ΣΤΑΣΗΣ ΑΝΤΩΝΗΣ Γενική Γραμματεία Δημόσιας Διοίκησης και Ηλεκτρονικής Διακυβέρνησης ΥΠΕΣΔΔΑ 1 ΗΛΕΚΤΡΟΝΙΚΗ ΔΙΑΚΥΒΕΡΝΗΣΗ ΣΤΗΝ ΕΕ ΠΟΛΙΤΕΣ ΕΠΙΧΕΙΡΗΣΕΙΣ

Διαβάστε περισσότερα

Κρυπτογραφία. Μονόδρομες συναρτήσεις - Συναρτήσεις σύνοψης. Άρης Παγουρτζής - Πέτρος Ποτίκας

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

Διαβάστε περισσότερα

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

6/1/2010. Ασφάλεια Ασύρματων & Κινητών Επικοινωνιών. Περιεχόμενα. Εισαγωγή /1 IEEE Ασφάλεια Ασύρματων & Κινητών Επικοινωνιών Ασύρματες Επικοινωνίες Μέρος III Χρήστος Ξενάκης Τμήμα Ψηφιακών Συστημάτων Πανεπιστήμιο Πειραιώς Slide: 1/42 Περιεχόμενα IEEE 802.11 WIRED EQUIVALENT PRIVACY (WEP)

Διαβάστε περισσότερα

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

ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ ΕΦΑΡΜΟΓΕΣ ΤΗΣ ΚΡΥΠΤΟΓΡΑΦΙΑΣ ΤΕΙ ΔΥΤΙΚΗΣ ΜΑΚΕΔΟΝΙΑΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ ΠΜΣ ΕΠΙΧΕΙΡΗΜΑΤΙΚΗΣ ΠΛΗΡΟΦΟΡΙΚΗ ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ ΕΦΑΡΜΟΓΕΣ ΤΗΣ ΚΡΥΠΤΟΓΡΑΦΙΑΣ ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ ΑΠΟΣΤΟΛΙΔΟΥ ΚΥΡΙΑΚΗ ΕΠΙΒΛΕΠΩΝ: ΜΠΙΣΜΠΑΣ ΑΝΤΩΝΙΟΣ, Καθηγητής

Διαβάστε περισσότερα

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

Αυθεντικοποίηση μηνύματος και Κρυπτογραφία δημόσιου κλειδιού Αυθεντικοποίηση μηνύματος και Κρυπτογραφία δημόσιου κλειδιού Μ. Αναγνώστου 13 Νοεμβρίου 2018 Συναρτήσεις κατακερματισμού Απλές συναρτήσεις κατακερματισμού Κρυπτογραφικές συναρτήσεις κατακερματισμού Secure

Διαβάστε περισσότερα

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

Υπολογιστική Θεωρία Αριθμών και Κρυπτογραφία Υπολογιστική Θεωρία Αριθμών και Κρυπτογραφία Επιθέσεις και Ασφάλεια Κρυπτοσυστημάτων Διδάσκοντες: Άρης Παγουρτζής Στάθης Ζάχος Διαφάνειες: Παναγιώτης Γροντάς Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Κρυπτογράφηση Αποκρυπτογράφηση Ερευνητική εργασία Β'1 1 ο Γενικό Λύκειο Ευόσμου Κρυπτογράφηση Αποκρυπτογράφηση Ερευνητική εργασία Β'1 1 ο Γενικό Λύκειο Ευόσμου 2013-2014 Project Ορισμοί Ιστορία Η αποκρυπτογράφηση στις μέρες μας Κρυπτογράφηση Αποκρυπτογράφηση Αποκρυπτογραφημένο-Κρυπτογραφημένο

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων. Κρυπτογραφία. Κρυπτοαλγόριθμοι. Χρήστος Ξενάκης Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων Κρυπτογραφία Κρυπτοαλγόριθμοι Χρήστος Ξενάκης Θεωρία Πληροφορίας Η Θεωρία πληροφορίας (Shannon 1948 1949) σχετίζεται με τις επικοινωνίες και την ασφάλεια

Διαβάστε περισσότερα

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

Εφαρμοσμένη Κρυπτογραφία Ι Εφαρμοσμένη Κρυπτογραφία Ι Κωνσταντίνου Ελισάβετ ekonstantinou@aegean.gr http://www.icsd.aegean.gr/ekonstantinou Συμμετρικά Κρυπτοσυστήματα κλειδί k Αρχικό κείμενο (m) Αλγόριθμος Κρυπτογράφησης Ε c = E

Διαβάστε περισσότερα