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

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

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

Transcript

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

2 i

3 ΠΙΣΤΟΠΟΙΗΣΗ Πιστοποιείται ότι η παρούσα Διπλωματική Εργασία Ειδίκευσης με θέμα: Μελέτη απόδοσης αλγορίθμων κρυπρογράϕησης σε CUDA της ϕοιτήτριας του Προγράμματος Μεταπτυχιακών Σπουδών «Ολοκληρωμένα Συστήματα Υλικού και Λογισμικού» του τμήματος Μηχανικών Ηλεκτρονικών Υπολογιστών και Πληροϕορικής της Πολυτεχνικής Σχολής του Πανεπιστημίου Πατρών Παναγιώτας Ι. Μπιλιανού (Α.Μ. 112) παρουσιάστηκε δημόσια στο τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστων την Τρίτη 26 Νοεμβρίου Ο Επιβλέπων... Καθηγητής Δ. Σερπάνος Ο Διευθυντής Π.Μ.Σ.... Καθηγητής Κ. Γκούτης ii

4 Περίληψη Στην παρούσα διπλωματική εργασία παρουσιάζεται η μελέτη των αλγορίθμων AES και Rijndael καθώς και η υλοποίησή τους με δύο διαϕορετικούς τρόπους, ένας χρησιμοποιώντας εξ ολοκλήρου την CPU και άλλος ένας χρησιμοποιώντας τις CPU/GPU με την χρήση της CUDA. Αρχικά, παρουσιάζεται το σχετικό υπόβαθρο, δηλαδή μία αναλυτική εισαγωγή στην κρυπτογραϕία, μία αναλυτική παρουσίαση του αλγορίθμου AES που χρησιμοποιήθηκε στην παρούσα διπλωματική εργασία και μία εισαγωγή στους multiprocessors καθώς και στις κάρτες γραϕικών CUDA. Επίσης, παρουσιάζονται σχετικές αναϕορές και εργασίες που έχουν υλοποιηθεί και τα αποτελέσματα που είχαν óσον αϕορά στην απόδοση. Επιπλέον, παρουσιάζεται η λογική της σχεδίασης των αλγορίθμων AES και Rijndael καθώς και τα πλεονέκτηματα και μειονεκτήματά τους. Στη συνέχεια, γίνεται μία ανάλυση των διαϕορετικών τρόπων υλοποίησης των αλγορίθμων και παρουσιάζεται ο τρόπος υλοποίησης που επιλέχθηκε, ο electronic codebook, και o λόγος που έγινε αυτή η επιλογή. Τέλος, παρουσιάζονται τα αποτελέσματα και οι πειραματικές μετρήσεις καθώς και τα συμπεράσματα που βγαίνουν αναλύοντας τις γραϕικές παραστάσεις. iii

5 Eυχαριστίες Θα ήθελα να ευχαριστήσω τον επηβλέποντα καθηγητή μου Δημήτρη Σερπάνο καθώς και τους συνεπιβλέποντες Κωνσταντίνο Γκούτη και Οδυσσέα Κουϕοπαύλου που ήταν σημαντικοί παράγοντες για την εκπόνηση της διπλωματικής εργασίας, καθώς και για τις πολύτιμες συμβουλές και τις γνώσεις που μετέδωσαν κατα την διάρκεια τόσο των προπτυχιακών σπουδών, όσο και των μεταπτυχιακών. Επίσης, θα ήθελα να ευχαριστήσω την οικογένεια μου, Γιάννη, Ελένη και Δημήτρη Μπιλιανό, που τόσο πολύ μου συμπαραστάθηκε όχι μόνο κατά την εκπόνηση της διπλωματικής μου εργασίας, αλλά και κατά τη διάρκεια όλων των χρόνων των σπουδών μου. Τέλος, θα ήθελα να ευχαριστήσω τον Ν. Κωστόπουλο και την Ντίνα για την βοήθειά τους και την συμπαράστασή τους. iv

6 Περιεχόμενα 1 Εισαγωγή Εισαγωγή στην κρυπτογραϕία Multiprocessors και GPUs Περιληπτική σύνοψη Συνεισϕορά εργασίας Μελλοντική εργασία Επιστημονικό υπόβαθρό και σχετικές αναϕορές Εισαγωγή Κρυπτογραϕία Εισαγωγή στην Κρυπτογραϕία Κλασική κρυπτογραϕία Σύγχρονη Κρυπτογραϕία Πλεονεκτήματα και μειονεκτήματα Συμμετρικής και Ασύμμετρης Κρυπτογράϕησης Υβριδική κρυπτογράϕηση Ασϕάλεια Διάϕοροι τύποι επιθέσεων κρυπτανάλυσης Διαχείριση κλειδιού Σύνοψη αλγορίθμων και των ιδιοτήτων τους AES Παράλληλα Συστήματα Ταξινόμηση κατά Flynn Διαχωρισμός βασισμένος στη μνήμη Μέτρα απόδοσης Κάρτες Γραϕικών CUDA Σχετικές αναϕορές Υλοποίηση και εργαλεία Λογική σχεδίασης των Rijndael και AES Πλεονεκτήματα και μειονεκτήματα των Rijndael και AES Πλεονεκτήματα Μειονεκτήματα v

7 3.2.3 Στόχοι ασϕάλειας Διαϕορετικοί τρόποι υλοποίησης Electronic Code Book Cipher Block Chaining Propagating Cipher-Block Chaining Cipher Feedback Output Feedback Counter Επιλογή του τρόπου υλοποίησης Εργαλεία Αποτελέσματα Παράμετροι μετρήσεων Γενικές μετρήσεις Διαϕορές όσον αϕορά στο μέγεθος του block Διαϕορές όσον αϕορά στο μέγεθος του κλειδιού Διαϕορές όσον αϕορά στη χρήση ενός, δύο ή τεσσάρων plaintext Σύγκριση κρυπτογράϕησης και αποκρυπτογράϕησης Speedup Συμπεράσματα και μελλοντική εργασία Περίληψη Συμπεράσματα Μελλοντική Εργασία Επίλογος 75 vi

8 Κατάλογος σχημάτων 1.1 Ο αλγόριθμος κρυπτογράϕησης AES Κρυπτογράϕηση και αποκρυπτογράϕηση Κρυπτογρϕία Το κρυπτόγραμμα του Καίσαρα για το ελληνικό αλϕάβητο Κρυπτογραϕία συμμετρικού κλειδιού Ασύμμετρη κρυπτογράϕηση Σύστημα που δέχεται επίθεση κρυπτανάλυσης Φάσεις διαχείρησης κλειδιού Κατηγορίες αλγορίθμων και τα χαρακτηριστικά τους Αντιστοίχηση εισόδου στην εσωτερική κατάσταση και από την εσωτερική κατάσταση στην έξοδο Παράδειγμα εσωτερικής κατάστασης με Nb = 6 και κλειδιού με Nk = Ο μετασχηματισμός SubBytes Ο μετασχηματισμός ShiftRows Ο μετασχηματισμός MixColumns Ο μετασχηματισμός AddRoundKey Ο ψευδοκώδικας για τη διαδικασία επέκτασης κλειδιού Κατηγορίες αρχιτεκτονικών με βάση τη μνήμη CPU vs GPU CPU και GPU Speedup εϕαρμογών με τη χρήση GPU Feistel Structure Κρυπτογράϕηση με την υλοποίηση του Electronic Code Book Αποκρυπτογράϕηση με την υλοποίηση του Electronic Code Book Κρυπτογράϕηση με την υλοποίηση του Cipher Block Chaining Αποκρυπτογράϕηση με την υλοποίηση του Cipher Block Chaining Κρυπτογράϕηση με την υλοποίηση του Propagating Cipher-Block Chaining Αποκρυπτογράϕηση με την υλοποίηση του Propagatin Cipher-Block Chaining Κρυπτογράϕηση με την υλοποίηση του Cipher Feedback Αποκρυπτογράϕηση με την υλοποίηση του Cipher Feedback vii

9 3.10Κρυπτογράϕηση με την υλοποίηση του Output Feedback Αποκρυπτογράϕηση με την υλοποίηση του Output Feedback Κρυπτογράϕηση με την υλοποίηση του Counter Αποκρυπτογράϕηση με την υλοποίηση του Counter Η αρχική εικόνα, ο tux Ο tux κρυπτογραϕημένος με ECB τρόπο Ο tux κρυπτογραϕημένος με πιο ασϕαλή τρόπο Αποτελέσματα για κρυπτογράϕηση με κλειδί των 128bit, 1 απλό κείμενο Αποτελέσματα για αποκρυπτογράϕηση με κλειδί των 128bit, 1 απλό κείμενο Αποτελέσματα για κρυπτογράϕηση στην CPU με κλειδί των 128bit, 1 απλό κείμενο Αποτελέσματα για κρυπτογράϕηση σε CPU/GPU με κλειδί των 128bit, 1 απλό κείμενο Αποτελέσματα για κρυπτογράϕηση σε CPU/GPU με κλειδί των 128bit, 1 απλό κείμενο και Nb= Αποτελέσματα για κρυπτογράϕηση σε CPU/GPU με κλειδί των 128bit, 1 απλό κείμενο και Nb= Αποτελέσματα για κρυπτογράϕηση σε CPU/GPU με κλειδί των 128bit, 1 απλό κείμενο και Nb= Level1 cache misses για κρυπτογράϕηση με κλειδί των 128bit, 1 απλό κείμενο Αποτελέσματα για κρυπτογράϕηση σε CPU και CPU/GPU, 1 απλό κείμενο και Nb= Αποτελέσματα για κρυπτογράϕηση σε CPU και CPU/GPU, 1 απλό κείμενο και Nb= Αποτελέσματα για κρυπτογράϕηση σε CPU και CPU/GPU, 1 απλό κείμενο και Nb= Αποτελέσματα για αποκρυπτογράϕηση σε CPU και CPU/GPU, 1 απλό κείμενο και Nb= Αποτελέσματα για αποκρυπτογράϕηση σε CPU και CPU/GPU, 1 απλό κείμενο και Nb= Αποτελέσματα για κρυπτογράϕηση με κλειδί των 128bit Διαϕορά όταν έχουμε 1, 2 ή και 4 διαϕορετικά απλά κείμενα Σημείο τομής όταν έχουμε 1, 2 ή και 4 διαϕορετικά απλά κείμενα Αποτελέσματα για κρυπτογράϕηση με κλειδί των 128bit, μέγεθος block 32 λέξεις Αποτελέσματα για κρυπτογράϕηση με κλειδί των 128bit, μέγεθος block 32 λέξεις Level1 cache misses για κρυπτογράϕηση με κλειδί των 128bit, μέγεθος block 128 λέξεις viii

10 4.20 Αποτελέσματα για κρυπτογράϕηση και αποκρυπτογράϕηση με κλειδί των 256it, μέγεθος block 4 λέξεις Total clock cycles για κρυπτογράϕηση και αποκρυπτογράϕηση με κλειδί των 128it, μέγεθος block 4 λέξεις Speedup για κρυπτογράϕηση με κλειδί των 128bit Απόδοση για κρυπτογράϕηση με κλειδί των 128bit Speedup για κρυπτογράϕηση με κλειδί των 128bit και 4 απλά κείμενα Speedup για αποκρυπτογράϕηση με κλειδί των 128bit Speedup για κρυπτογράϕηση με κλειδί των 192bit και 1 απλό κείμενο Speedup για αποκρυπτογράϕηση με κλειδί των 192bit και 1 απλό κείμενο Speedup για κρυπτογράϕηση με κλειδί των 192bit και 1 απλό κείμενο, μεγεθυνση Speedup για αποκρυπτογράϕηση με κλειδί των 192bit και 1 απλό κείμενο, μεγεθυνση Speedup για κρυπτογράϕηση με κλειδί των 256bit και 1 απλό κείμενο Speedup για αποκρυπτογράϕηση με κλειδί των 256bit και 1 απλό κείμενο Διαϕορά όταν έχουμε 1, 2 ή και 4 διαϕορετικά απλά κείμενα Speedup για αποκρυπτογράϕηση με κλειδί των 256bit και 1 απλό κείμενο ix

11 Κατάλογος πινάκων 2.1 Ο αριθμός των επαναλήψεων Nr και η εξάρτησή του από το μέγεθος του μπλοκ και του κλειδιού Πίνακας αντικατάστασης (Substitiution Table) - Sbox[xy] σε δεκαεξαδική αναπαράσταση Αριθμός θέσεων κυκλικής ολίσθησης συναρτήσει του Nb Ταξινόμηση αρχιτεκτονικών κατά Flynn x

12 Κεϕάλαιο 1 Εισαγωγή Η παρούσα διπλωματική εργασία αϕορά στη μελέτη των αλγορίθμων AES και Rijndael καθώς και στην υλοποίησή τους με δύο διαϕορετικούς τρόπους, ένας χρησιμοποιώντας εξ ολοκλήρου την CPU και άλλος ένας χρησιμοποιώντας τις CPU/GPU με την χρήση της CUDA. Σε αυτό το κεϕάλαιο γίνεται μία εισαγωγή στην κρυπτογραϕία, στους multiprocessors και στις GPUs, γίνεται μία περιληπτική σύνοψη της εργασίας, αναϕέρεται η συνεισϕορά της εργασίας και τέλος η μελλοντική εργασία. 1.1 Εισαγωγή στην κρυπτογραϕία Η κρυπτογραϕία ορίζεται ως εκείνος ο κλάδος της επιστήμης των μαθηματικών ο οποίος μελετά τους τρόπους με τους οποίους μπορούμε να πραγματοποιήσουμε ασϕαλή επικοινωνία παρουσία «αντιπάλων». Αυτό μπορεί να επιτευχθεί με διάϕορους τρόπους, οι οποίοι έχουν σαν τελικό αποτέλεσμα τη μετατροπή των αρχικών δεδομένων σε ακατάληπτη μορϕή. Σύμϕωνα με αυτό, μπορούμε να πούμε ότι τα αρχικά δεδομένα ορίζονται ως το απλό κείμενο (plaintext), ενώ τα κρυπτογραϕημένα δεδομένα, δηλαδή αυτά που τελικά εμϕανίζονται σε ακατάληπτη μορϕή, ορίζονται ως το κρυπτοκείμενο (ciphertext). Επιπλέον, η διαδικασία της μετατροπής ενός απλού κειμένου σε κρυπτοκείμενο ονομάζεται κρυπτογράϕηση, ενώ η αντίστροϕη διαδικασία της μετατροπής ενός κρυπτοκειμένου σε απλό κείμενο, ονομάζεται αποκρυπτογράϕηση. Η κρυπτογράϕηση και η αποκρυπτογράϕηση επιτυγχάνονται με την χρήση ενός μυστικού κλειδιού. Στην ενότητα γίνεται μία αναλυτική ανα- ϕορά στην κρυπτογραϕία, στα είδη κρυπτογράϕησης καθώς παρουσιάζεται και μία ιστορική αναδρομή της κρυπτογραϕίας. Στο σχήμα 1.1 παρουσιάζεται ο AES και πιο συγκεκριμένα ο τρόπος χρήσης του μυστικού κλειδιού σύμϕωνα με αυτόν τον αλγόριθμο. Από την εικόνα ϕαίνεται ότι το κλειδί πρέπει να σταλεί στον παραλήπτη για να μπορέσει να αποκρυπτογραϕήσει το μήνυμα. 1

13 Σχήμα 1.1: Ο αλγόριθμος κρυπτογράϕησης AES 1.2 Multiprocessors και GPUs Η ανάγκη για όλο και μεγαλύτερη απόδοση, οδήγησε στη δημιουργία παράλληλων αρχιτεκτονικών και προτάθηκαν διάϕορα μοντέλα ταξινόμησης των αρχιτεκτονικών αυτών. Η πιο γνωστή όμως από αυτές είναι η ταξινόμηση κατά Flynn [Fly72]. Η ταξινόμηση αυτή ακολουθεί το μοντέλο του Von Neumann με την έννοια ότι και στην παράλληλη επεξεργασία ισχύει η αρχή Von Neumann για τη ροή και τον έλεγχο του προγράμματος, δηλαδή ισχύει η επαναλαμβανόμενη διαδικασία παραλαβής, εκτέλεσης και αποθήκευσης ενώ το πρόγραμμα εκτελείται με μία διατεταγμένη ακολουθία εντολών σε περισσότερους από έναν επεξεργαστές. Από το 2003 και μετά, έκαναν την εμϕάνισή τους οι μονάδες επεξεργασίας γρα- ϕικών, GPUs (Graphics Processing Units), οι οποίες ήταν υπεύθυνες για την μεγάλη άνοδο σε απόδοση των πράξεων κινητής υποδιαστολής. Ενώ η απόδοση των επεξεργαστών γενικού σκοπού είχε μείνει σχετικά στάσιμη, η απόδοση των GPUs αυξανόταν με πολύ μεγάλο ρυθμό. Η μεγάλη διαϕορά στην απόδοση μεταξύ των CPU και των GPU βασίζεται γενικώς σε κατασκευαστικούς παράγοντες, με τις CPU να είναι σχεδιασμένες για να εκτελούν σειριακό κώδικα και με βάση αυτό έχουν αναπτυχθεί διάϕορες τεχνικές βελτιστοποίησης της απόδοσης, ενώ τις κάρτες γρα- ϕικών να είναι ειδικά σχεδιασμένες για να μπορούν με εύκολο τρόπο να εκτελούν παράλληλα πολλές πράξεις κινητής υποδιαστολής. Συμπερασματικά, η χρήση καρτών γραϕικών για υπολογισμούς είναι πιο αποδοτική σε αρκετές περιπτώσεις, ειδικά όταν έχουμε μεγάλο αριθμό υπολογισμών. 2

14 Στις περισσότερες περιτπώσεις χρησιμοποιούνται και οι δύο μονάδες επεξεργασίας ενός συστήματος, δηλαδή και η CPU αλλά και η GPU. Τα κομμάτια του κώδικα που μπορούν να εκτελεστούν παράλληλα εκτελλούνται στην GPU, ενώ τα κομμάτια που πρέπει να εκτελεστούν σειριακά στέλνονται στην CPU. Το προγραμματιστικό μοντέλο CUDA, το οποίο χρησιμοποιήθηκε και στην παρούσα εργασία, έχει σχεδιαστεί για το σκοπό αυτό, δηλαδή για να υποστηρίζει εκτέλεση κώδικα από κοινού στην GPU και στην CPU. 1.3 Περιληπτική σύνοψη Στην παρούσα διπλωματική εργασία παρουσιάζεται η μελέτη των αλγορίθμων AES και Rijndael καθώς και η υλοποίησή τους με δύο διαϕορετικούς τρόπους, ένας χρησιμοποιώντας εξ ολοκλήρου την CPU και άλλος ένας χρησιμοποιώντας τις CPU/GPU με την χρήση της CUDA. Στο κεϕάλαιο 2 παρουσιάζεται αρχικά το σχετικό υπόβαθρο, δηλαδή μία αναλυτική εισαγωγή στην κρυπτογραϕία, μία αναλυτική παρουσίαση του αλγορίθμου AES που χρησιμοποιήθηκε στην παρούσα διπλωματική εργασία και μία εισαγωγή στους multiprocessors καθώς και στις κάρτες γρα- ϕικών CUDA. Επίσης, παρουσιάζονται σχετικές αναϕορές και εργασίες που έχουν υλοποιηθεί και τα αποτελέσματα που είχαν óσον αϕορά στην απόδοση. Στο κεϕάλαιο 3 παρουσιάζεται αρχικά η λογική της σχεδίασης των αλγορίθμων AES και Rijndael, τα πλεονέκτηματα και μειονεκτήματά τους, καθώς και μία ανάλυση των διαϕορετικών τρόπων υλοποίησης των αλγορίθμων για να ϕτάσει στο συμπέρασμα της επιλογής τρόπου υλοποίησης και για ποιο λόγο έγινε η επιλογή αυτή. Στο κεϕάλαιο 4 παρουσιάζονται τα αποτελέσματα και οι πειραματικές μετρήσεις καθώς και τα συμπεράσματα που βγαίνουν αναλύοντας τις γραϕικές παραστάσεις. Η εργασία κλείνει με μία ανάλυση των συμπερασμάτων που βγαίνουν από τις πειραματικές μετρήσεις. 1.4 Συνεισϕορά εργασίας Η βασική συνεισϕορά αυτής της εργασίας είναι η μελέτη και η σύγκριση των αποτελεσμάτων για δύο διαϕορετικές υλοποιήσεις, αυτήν της CPU και εκείνη της CPU/GPU με τη χρήση της CUDA. Σε μία περίοδο που η χρήση των GPU αυξάνεται ώστε να επιτευχθεί όσο το δυνατόν μεγαλύτερη απόδοση, η μελέτη των επιμέρους πειραμάτων για διάϕορες εϕαρμογές και διαϕορετικές ρυθμίσεις είναι αρκετά σημαντική ώστε να μπορέσει τελικά να βγει ένα συμπέρασμα για την καταλληλότητα των GPU για διάϕορες εϕαρμογές. Ειδικότερα για εϕαρμογές που οι απαιτήσεις σε real time εκτέλεση αυξάνονται, είναι αρκετά σημαντικό να μπορέσει να επιτευχθεί όσο το δυνατόν μεγαλύτερη απόδοση. Μία τέτοια εϕαρμογή θα μπορούσε να αϕορά στις τηλεπικοινωνίες και στην ασϕαλή μετάδοση των δεδομένων σε πραγματικό χρόνο. Επιπλέον, εϕόσον και ο 3

15 προγραμματισμός με τη χρήση της βιβλιοθήκης της CUDA απαλλάσσει τον προγραμματιστή από τη διαδικασία παραλληλοποίησης ενός αλγορίθμου και τελικά την δρομολόγηση του κάθε επιμέρους κομματιού του προγράμματος στον κατάλληλο επεξεργαστή, είναι μία σημαντική βελτίωση όσον αϕορά και στην ευκολότερη παραγωγή κώδικα που θα εκτελείται παράλληλα. 1.5 Μελλοντική εργασία Μία μελλοντική εργασία θα μπορούσε να αφορά στην εκτέλεση και συλλογή μετρήσεων και συγκρίσεις του υπάρχοντος κώδικα σε διαφορετικά μηχανήματα με διαϕορετικές κάρτες γραϕικών, όπως επίσης θα μπορούσε να γίνει υλοποίηση διαφορετικών τρόπων υλοποίησης του του ίδιου αλγορίθμου και μελέτη της απόδοσής τους. Αυτό ϕυσικά μπορεί να γίνει μόνο για τις περιτπώσεις που μπορεί να επιτευχθεί παραλληλισμός, όπως για παράδειγμα η περίπτωση του CTR, ή αλλιώς counter, όπως περιγράϕεται στην ενότητα Τέλος, θα μπορούσε να γίνει υλοποίηση του αλγορίθμου σε Verilog ή VHDL, η υλοποίηση σε ASIC και η σύγκριση της απόδοσης με εκείνη της υλοποίησης σε GPU. 4

16 Κεϕάλαιο 2 Επιστημονικό υπόβαθρό και σχετικές αναϕορές 2.1 Εισαγωγή Σε αυτό το κεϕάλαιο γίνεται μια εισαγωγή στην κρυπτογραϕία, παρουσιάζεται μία ιστορική αναδρομή, τα είδη κρυπτογραϕίας καθώς και οι επιθέσεις που μπορεί να δεχτεί ένα σύστημα. Στη συνέχεια γίνεται μία εισαγωγή στα παράλληλα συστήματα και τέλος παρουσιάζονται σχετικές αναϕορές όσον αϕορά την υλοποίηση εϕαρμογών σε κάρτες γραϕικών καθώς και η απόδοσή τους. 2.2 Κρυπτογραϕία Σε αυτήν την ενότητα γίνεται μία εισαγωγή στην κρυπτογραϕία, παρουσιάζονται αναλυτικά τα είδη κρυπτογραϕίας καθώς και τα μειονεκτήματα και τα πλεονεκτήματά τους και διάϕοροι τύποι επιθέσεων κρυπτανάλυσης. Τέλος παρουσιάζεται αναλυτικά ο αλγόριθμος ΑΕS, ο οποίος είναι και ο αλγόριθμος που χρησιμοποιήθηκε στην παρούσα διπλωματική εργασία Εισαγωγή στην Κρυπτογραϕία Κάθε επιστημονικός τομέας έχει δημιουργήσει και χρησιμοποιεί την δική του ορολογία, η οποία χρησιμεύει στο να υπάρχει ένας κοινός τόπος αναϕοράς στα αντικείμενα που μελετώνται. Η κρυπτογραϕία ορίζεται ως εκείνος ο κλάδος της επιστήμης των μαθηματικών ο οποίος μελετά τους τρόπους με τους οποίους μπορούμε να πραγματοποιήσουμε ασϕαλή επικοινωνία παρουσία «αντιπάλων». Αυτό μπορεί να επιτευχθεί με διάϕορους τρόπους, οι οποίοι έχουν σαν τελικό αποτέλεσμα τη μετατροπή των αρχικών δεδομένων σε ακατάληπτη μορϕή. 5

17 Σχήμα 2.1: Κρυπτογράϕηση και αποκρυπτογράϕηση Έτσι σύμϕωνα με την ορολογία της κρυπτογραϕίας, μπορούμε να πούμε ότι τα αρχικά δεδομένα ορίζονται ως το απλό κείμενο (plaintext), ενώ τα κρυπτογραϕημένα δεδομένα, δηλαδή αυτά που τελικά εμϕανίζονται σε ακατάληπτη μορϕή, ορίζονται ως το κρυπτοκείμενο (ciphertext). Επιπλέον, η διαδικασία της μετατροπής ενός απλού κειμένου σε κρυπτοκείμενο ονομάζεται κρυπτογράϕηση, ενώ η αντίστροϕη διαδικασία της μετατροπής ενός κρυπτοκειμένου σε απλό κείμενο, ονομάζεται αποκρυπτογράϕηση. Η κρυπτογράϕηση και η αποκρυπτογράϕηση επιτυγχάνονται με την χρήση ενός μυστικού κλειδιού. Αυτά παρουσιάζονται εικονικά στο σχήμα 2.1. Μόνο κάποιος που έχει πρόσβαση στο μυστικό κλειδί μπορεί να αποκρυπτογρϕήσει τα ακατάληπτα δεδομένα. Συμπληρωματικός αλλά και σε αντίθεση με τον κλάδο την κρυπτογρϕίας, υπάρχει ο κλάδος της κρυπτανάλυσης. Είναι ο κλάδος εκείνος που μελετά τις τεχνικές των μαθηματικών με στόχο την απόκτηση ενός απλού κειμένου χωρίς την άδεια του συγγραϕέα καθώς και χωρίς τη γνώση του μυστικού κλειδιού ή του αλγορίθμου που χρησιμοποιήθηκε για την κρυπτογράϕηση του απλού κειμένου. Η κρυπτανάλυση είναι αλλιώς γνωστή και ως hacking. Η κρυπτανάλυση και η κρυπτογραϕία είναι οι δύο μεγάλοι τομείς απ τους οποίους απαρτίζεται η κρυπτολογία, η οποία θα μπορούσε να χαρακτηριστεί ως η «επιστήμη της απόκρυψης». Οι δύο αυτοί τομείς σχετίζονται άμεσα. Άπ τη μία, για να ϕτιάξει κανείς έναν πολύ σθεναρό αλγόριθμο κρυπτογραϕίας, θα πρέπει να γνωρίζει τις τεχνικές και τις μεθόδους των κρυπταναλυτών. Απ την άλλη, για να έχει κάποιος επιτυχημένη κρυπτανάλυση θα πρέπει να γνωρίζει τους αλγορίθμους και τις μεθόδους της κρυπτογραϕίας. Γενικά για την κρυπτογραϕία θα μπορούσε κανείς να πει ότι είναι η μελέτη των μαθηματικών τεχνικών που σχετίζονται με την εμπιστευτικότητα, την ακεραιότητα δεδομένων, την μη αποδοχή, τη διαθεσιμότητα και την αυθεντικότητα. Όταν λέμε ότι ένας κρυπτογραϕικός αλγόριθμός πρέπει να παρέχει εμπιστευτικότητα εννοούμε ότι θα πρέπει ο αλγόριθμος να εμποδίζει όσους δεν έχουν εξουσιοδοτημένη πρόσβαση σε ένα κείμενο να έρθουν σε επαϕή με αυτό και να μπορέσουν να διαβάσουν τι λέει. Όσον αϕορά στην ακεραιότητα δεδομένων θα πρέπει να είναι δυνατόν για τον παραλήπτη να εξακριβώσει ότι το μήνυμα που παρέλαβε δεν τροποποιήθηκε ούτε αλλοιώθηκε κατά τη μεταϕορά. Επιπλέον κάποιος που δεν έχει εξουσιοδοτημένη πρόσβαση στο μήνυμα να μην μπορεί να αντικαταστήσει το γνήσιο κείμενο με ένα πλαστό. Η ψηϕιακή υπογραϕή είναι ένας τρόπος για να αποϕύγουμε τέτοιες ενέργειες. 6

18 Η μη αποδοχή αϕορά στην περίπτωση όπου ο αποστολέας δεν μπορεί να αρνηθεί ότι έστειλε ένα μήνυμα εϕόσον το έχει στείλει. Επιπλέον, ο παραλήπτης δεν μπορεί να αρνηθεί ότι έλαβε τα δεδομένα εϕόσον τα έχει λάβει. Παράδειγμα αποτελεί η περίπτωση όπου κάποιος στέλνει μία ηλεκτρονική εντολή και δεν μπορεί να αρνηθεί μελλοντικά ότι την έδωσε. Με τον όρο διαθεσιμότητα εννοούμε ότι μία υπηρεσία είναι πάντοτε διαθέσιμη. Τέλος, η αυθεντικότητα χωρίζεται στην πιστοποίηση οντότητας και στην πιστοποίηση αυθεντικότητας δεδομένων. Η πιστοποίηση οντότητας αϕορά στην εγγύηση ότι ο αποστολέας είναι αυτός που ισχυρίζεται πως είναι και επιπλέον ένας μη εξουσιοδοτημένος χρήστης να μην μπορεί να προσποιηθεί πως είναι εξουσιοδοτημένος. Η πιστοποίηση αυθεντικότητας δεδομένων παρέχει εγγύηση ότι τα δεδομένα είναι αυθεντικά, δεν έχουν υποστεί αλλοίωση ως προς το περιεχόμενο και τα μεταδεδομένα τους, όπως την ημερομηνία και ώρα που εστάλη, το μέγεθος του κειμένου και όποια άλλη πληροϕορία μπορεί να αϕορά στα δεδομένα. Γενικά στοιχεία αλγορίθμων κρυπτογραϕίας Οι αλγόριθμοι κρυπτογραϕίας (cipher), είναι οι μαθηματικές συναρτήσεις οι οποίες χρησιμοποιούνται για την κρυπτογράϕηση και την αποκρυπτογράϕηση των δεδομένων. Γενικώς χρησιμοποιούνται δύο διαϕορετικές συναρτήσεις που σχετίζονται μεταξύ τους, μία για την κρυπτογράϕηση και μία για την αποκρυπτογράϕηση. Κάθε κρυπτογραϕικός αλγόριθμος θα πρέπει να αξιολογείται σύμϕωνα με τα παρακάτω κριτήρια: Επίπεδο ασϕάλειας Το επίπεδο ασϕάλειας ενός κρυπτογραϕικού αλγορίθμου είναι γενικά δύσκολο να οριστεί. Τις περισσότερες ϕορές όμως θα μπορούσε να μετρηθεί σύμϕωνα με τις πράξεις που χρειάζονται για να «σπάσει» ένας αλγόριθμος κρυπτογραϕίας, χρησιμοποιώντας πάντα τις καλύτερες μεθόδους που είναι γνωστές. Λειτουργικότητα Η λειτουργικότητα ενός κρυπτογραϕικού αλγορίθμου συνήθως εξασϕαλίζεται από το συνδυασμό διαϕόρων αλγορίθμων έτσι ώστε να επιτυγχάνεται το επιθυμιτό επίπεδο ασϕάλειας. Εξετάζοντας τις βασικές ιδιότητες ενός αλγορίθμου, επιτυγχάνεται η έυρεση του πιο κατάλληλου αλγορίθμου για κάποια συγκεκριμένη περίπτωση. Μέθοδοι λειτουργίας Όταν εϕαρμόζονται οι αλγόριθμοι κρυπτόγραϕίας με διάϕορους τρόπους και για διαϕορετικές εισόδους, παρουσιάζουν και διαϕορετικά χαρακτηριστικά. Έτσι, ένας αλγόριθμος μπορεί να έχει εντελώς διαϕορετικές εϕαρμογές ανάλογα με τη μέθοδο λειτουργίας του ή και την κατάσταση εισόδου του. 7

19 Αποδοτικότητα Η αποδοτικότητα ενός κρυπτογραϕικού αλγορίθμου αϕορά στην αποτελεσματικότητα χρήσης ενός συγκεκριμένου αλγορίθμου για μία συγκεκριμένη λειτουργία. Για παράδειγμα, η αποδοτικότητα θα μπορούσε να μετρηθεί για έναν συγκεκριμένο αλγόριθμο κρυπτογραϕίας ανάλογα με το πόσα bits ανα δευτερόλεπτο μπορούν να κρυπτογραϕηθούν χρησιμοποιώντας έναν συγκεκριμένο αλγόριθμο. Ευκολία στην υλοποίηση Αυτό αϕορά στη δυσκολία της υλοποίησης των αλγορίθμων για ένα συγκεκριμένο πρόβλημα. Για παράδειγμα, θα μπορούσε να μετρηθεί υπολογίζοντας την πολυπλοκότητα στην υλοποίηση του αλγορίθμου είτε σε hardware είτε σε software. Όπως ϕαίνεται από όσα ειπώθηκαν παραπάνω, το πόσο σημαντικά είναι τα κριτήρια αξιολόγησης αλγορίθμων, εξαρτάται από τη συγκεκριμένη υλοποίηση και τους διαθέσιμους πόρους. Για παράδειγμα, σε ένα περιβάλλον όπου η υπολογιστική ισχύς είναι περιορισμένη, ίσως χρειαστεί να περιοριστεί το πολύ υψηλό επίπεδο ασϕάλειας για να επιτευχθεί καλύτερη απόδοση του συστήματος σα σύνολο. Οι αλγόριθμοι κρυπτογραϕίας μπορούν γενικά να χωριστούν σε δύο κατηγορίες, τους αλγόριθμους κλασικής κρυπτογραϕίας, και τους αλγόριθμους της σύγχρονης κρυπτογραϕίας. Οι αλγόριθμοι σύγχρονης κρυπτογραϕίας χωρίζονται στους αλγορίθμους συμετρικού κλειδιού ή συμμετρικής κρυπτογράϕησης και τους αλγορίθμους δημόσιου κλειδιού ή ασύμμετρου κλειδιού που χαρακτηρίζουν την ασύμμετρη κρυπτογράϕηση. Για την κλασική κρυπτογραϕία γίνεται αναϕορά στην ενότητα 2.2.2, ενώ για την σύγχρονη κρυπτογραϕία συμετρικού κλειδιού και δημόσιου κλειδιού στην ενότητα Στο σχήμα 2.2 ϕαίνεται το πως χωρίζονται οι αλγόριθμοι στις τρεις αυτές κατηγορίες, καθώς και υποκατηγορίες αυτών Κλασική κρυπτογραϕία Οι πρώτοι αλγόριθμοι κρυπτογραϕίας που άρχισαν να χρησιμοποιούνται βασίζονταν σε τεχνικές χωρίς τη χρήση κλειδιού. Αρχικά, χρησιμοποιήθηκαν οι κρυπτογραϕικοί κώδικες, στους οποίους λέξεις, ϕράσεις ή ομάδες λέξεων αντικαθίστανται με άλλες λέξεις, ομάδες χαρακτήρων ή αριθμών και συμβόλων. Αυτές οι λέξεις αντικατάστασης ονομάζονται κωδικολέξεις (codegroups). Σε αυτούς τους αρχικούς αλγορίθμους, το ρόλο του κλειδιού τον έπαιζε κάποιο κωδικο-βιβλίο με το οποίο μπορούσε να γίνει αντιστοίχηση των αρχικών λέξεων σε κωδικολέξεις, όπως επίσης και μετατροπή των κωδικολέξεων στο αρχικό κείμενο. Η μέθοδος αυτή είχε το πλεονέκτημα ότι η στατιστική ανάλυση ενός κρυπτοκειμένου σε χαρακτήρες ήταν πολύ δύσκολη. Απ την άλλη μεριά όμως είχε το μειονέκτημα ότι λέξεις και ϕράσεις κρυπτογραϕούνταν με πανομοιότυπο τρόπο και επίσης αν υπήρχε αλλαγή στα κωδικοβιβλία παρουσιάζονταν προβλήματα συμβατότητας. 8

20 Σχήμα 2.2: Κρυπτογρϕία 9

21 Κρυπτόγραμμα του Καίσαρα Αρχικός χαρακτήρας α β γ δ χ ψ ω... Κρυπτογραϕημένος δ ϵ ζ η α β γ Σχήμα 2.3: Το κρυπτόγραμμα του Καίσαρα για το ελληνικό αλϕάβητο Ένας ακόμη τρόπος κρυπτογράϕησης χωρίς τη χρήση κλειδιού είναι χρησιμοποιώντας αλγορίθμους αντικατάστασης. Σύμϕωνα με αυτούς τους αλγορίθμους κάθε χαρακτήρας του αρχικού κειμένου (plaintext) αντικαθίσταται από κάποιον άλλο χαρακτήρα και έτσι δημιουργείται το κρυπτογραϕημένο κείμενο (ciphertext). Υπάρχουν δύο κατηγορίες αλγορίθμων αντικατάστασης, οι απλοί αλγόριθμοι ή μονοαλ- ϕαβητικοί και οι πολυαλϕαβητικοί αλγόριθμοι. Στους μονοαλϕαβητικούς αλγορίθμους, κάθε χαρακτήρας κρυπτογραϕεί πάντα τον ίδιο αρχικό χαρακτήρα, δηλαδή έχουμε αντιστοίχηση ενός χαρακτήρα για κάθε διαϕορετικό χαρακτήρα του αρχικού κειμένου. Ένα παράδειγμα απλού αλγορίθμου αντικατάστασης είναι το μεταθετικό κρυπτόγραμμα του Καίσαρα. Σύμϕωνα με αυτό, κάθε χαρακτήρας του αρχικού κειμένου αντικαθίσταται με τον κατά τρεις θέσεις επόμενό του στο αλϕάβητο. Έτσι για παράδειγμα στο ελληνικό αλϕάβητο το α αντικαθίσταται με το δ, το β με το ϵ και συνεχίζοντας την αντικατάσταση το ω αντικαθίσταται με το γ, όπως ϕαίνεται και στο σχήμα 2.3. Το κρυπτόγραμμα του Καίσαρα μπορεί να εϕαρμοστεί και στη γενική περίπτωση όπου η ολίσθηση γίνεται κατά όσες θέσεις αποϕασίσουν από κοινού ο αποστολέας και ο παραλήπτης. Είναι όμως εμϕανές ότι ένας τέτοιος αλγόριθμος μπορεί να παραβιαστεί πολύ εύκολα γιατί οι πιθανοί συνδυασμοί είναι τόσο λίγοι ώστε κάποιος που θα υποκλέψει το κείμενο να μπορεί να τους δοκιμάσει όλους ώστε να βρει τελικά τον κατάλληλο. Στους πολυαλϕαβητικούς αλγορίθμους, ένας χαρακτήρας μπορεί να κρυπτογρα- ϕήσει περισσότερους από έναν αρχικούς χαρακτήρες. Ένας πολυαλϕαβητικός αλγόριθμος ουσιαστικά αποτελείται από πολλούς απλούς αλγόριθμους αντικατάστασης. Ένα παράδειγμα πολυαλϕαβητικού αλγορίθμου είναι ο ομοϕωνικός αλγόριθμος (Homophonic Substitution Cipher). Σύμϕωνα με τον αλγόριθμο αυτό, κάθε γράμμα αντικαθίσταται με μία σειρά διαϕορετικών γραμμάτων, το πλήθος των οποίων εξαρτάται από τη συχνότητα εμϕάνισης του γράμματος σε ένα συγκεκριμένο αλϕάβητο. Για παράδειγμα, επειδή το γράμμα a στο αγγλικό αλϕάβητο έχει μία πιθανότητα εμϕάνισης 8% υπάρχουν οκτώ διαϕορετικοί χαρακτήρες με τους οποίους μπορεί να αντικατασταθεί το γράμμα a. Η επιλογή ενός από τους οκτώ χαρακτήρες γίνεται με τυχαίο τρόπο. Η τεχνική αυτή βασίζεται στο γεγονός ότι τελικά στο κρυπτογραϕημένο κείμενο όλοι οι χαρακτήρες θα έχουν πιθανότητα εμϕάνισης 1%, οπότε δεν θα μπορεί να γίνει επίθεση μέσω ανάλυσης συχνοτήτων εμϕάνισης ενός χαρακτήρα. Ένα άλλο παράδειγμα πολυαλϕαβητικού αλγορίθμου είναι ο Playfair. Σε αυτόν τον αλγόριθμο, η αντικατάσταση γίνεται κατά ζευγάρια γραμμάτων, ενώ ο αποστολέας και ο παραλήπτης θα πρέπει να έχουν συμϕωνήσει σε μία λέξη κλειδί. Αν και 10

22 ο αλγόριθμος αυτός ήταν αποτελεσματικός στην αρχή της χρήσης του, στη συνέχεια αποδείχθηκε ότι σπάει εύκολα αν κάποιος βρει τα πιο συχνά εμϕανιζόμενα ζεύγη σε ένα κρυπτογραϕημένο κείμενο και υποθέσει ότι αυτά εκπροσωπούν και τα πιο συχνά εμϕανιζόμενα ζεύγη στη γλώσσα του κρυπτογραϕημένου κειμένου. Eνδιαϕέρον παρουσιάζουν και οι αλγόριθμου αντιμετάθεσης ή αναδιάταξης, στους οποίους το κρυπτογραϕημένο μήνυμα είναι αναγραμματισμός του αρχικού μηνύματος. Ένας τέτοιος αλγόριθμος είναι ο αλγόριθμος μετάθεσης στον οποίο οι θέσεις των γραμμάτων του μηνύματος αλλάζουν σύμϕωνα με μία αναδιάταξη που ορίζει ένα κλειδί. Για παράδειγμα, αν το κλειδί είναι όπως ϕαίνεται στην εξίσωση (2.1) και το αρχικό μήνυμα είναι το Όλοι στις πλατείες!!, αυτό θα χωριστεί σε ομάδες των έξι χαρακτήρων, δηλαδή Όλοιστ ιςπλατ είες!! και τελικά το κρυπτογραϕημένο κείμενο θα είναι οσότιλ παιτλς ε!ε!ςί. Για την αποκρυπτογράϕηση πρέπει να χρησιμοποιηθεί για κλειδί η αντίστροϕη αναδιάταξη όπως ϕαίνεται στην εξίσωση (2.2) Τέλος σαν κομμάτι των αλγορίθμων κλασικής κρυπτογραϕίας αξίζει να αναϕερθεί το κρυπτόγραμμα του μπλοκ μίας χρήσης (one time pad), το οποίο είναι και η μόνη γνωστή μορϕή κρυπτογράϕησης που είναι άθραυστη. Ο αλγόριθμος αυτός βασίζεται σε ένα τυχαίο κλειδί του οποίου το μήκος είναι όσο και το μήκος του μηνύματος που πρέπει να κρυπτογραϕηθεί. Κάθε κλειδί μπορεί να χρησιμοποιηθεί μόνο μία ϕορά και το κρυπτογραϕημένο μήνυμα δημιουργείται με μία απλή XOR πράξη. Αν και ο αλγόριθμος αυτός είναι άθραυστος στη θεωρία, στην πράξη προκύπτουν κάποια ζητήματα τα οποία επηρεάζουν την ασϕάλεια του αλγορίθμου. Αυτά αϕορούν στο κατά πόσο μπορεί να είναι τυχαία η επιλογή του κλειδιού και επίσης στο πόσο πρακτικό είναι κάθε ϕορά που πρέπει να κρυπτογραϕηθεί ένα μήνυμα, να πρέπει να αλλάζει το κλειδί. Τέλος, η μεταϕορά του κλειδιού στον παραλήπτη αποτελεί ακόμη ένα πρόβλημα Σύγχρονη Κρυπτογραϕία Σε αντίθεση με την κλασική κρυπτογραϕία, στη σύγχρονη κρυπτογραϕία οι αλγόριθμοι βασίζονται στη χρήση κλειδιού. Γενικά, η σύγχρονη κρυπτογραϕία βασίζεται στην αρχή του Kerckhoff, σύμϕωνα με την οποία οι αλγόριθμοι είναι δημόσια γνωστοί και η μόνη πληροϕορία που παραμένει μυστική είναι το κλειδί κρυπτογρά- ϕησης και αποκρυπτογράϕησης. Αν κάποιος αποκτήσει το μυστικό κλειδί, μπορεί να αποκρυπτογραϕήσει και το μυστικό κείμενο. Το επίπεδο της ασϕάλειας στην σύγχρονη κρυπτογραϕία καθορίζεται από το μήκος του κλειδιού. 11

23 Σχήμα 2.4: Κρυπτογραϕία συμμετρικού κλειδιού Η σύγχρονη κρυπτογραϕία χωρίζεται στην κρυπτογραϕία συμμετικού κλειδιού και στην κρυπτογραϕία ασύμετρου κλειδιού, για τις οποίες γίνεται αναϕορά στις παρακάτω υποενότητες. Κρυπτογραϕία Συμμετρικού Κλειδιού ή συμμετρική κρυπτογράϕηση Στην κρυπτογραϕία υπάρχουν δύο κατηγορίες αλγορίθμων που βασίζονται στη χρήση κλειδιού. Αυτές είναι η κρυπτογραϕία συμμετρικού κλειδιού ή συμμετρική κρυπτογράϕηση και η κρυπτογραϕία δημόσιου κλειδιού ή ασύμετρη κρυπτογράϕηση. Οι αλγόριθμοι συμμετρικού κλειδιού χαρακτηρίζονται απ το γεγονός ότι το κλειδί που χρησιμοποιείται για την κρυπτογράϕηση ενός μηνύματος μπορεί να υπολογιστεί από το κλειδί που χρησιμοποιείται για την αποκρυπτογράϕηση του μηνύματος και αντίστροϕα. Στους περισσότερους αλγορίθμους όμως χρησιμοποιείται το ίδιο κλειδί για την κρυπτογράϕηση και την αποκρυπτογράϕηση. Για το λόγο αυτό οι αλγόριθμοι αυτής της κατηγορίας ονομάζονται και αλγόριθμοι μυστικού κλειδιού ή ενός κλειδιού και ένα τέτοιο παράδειγμα παρουσιάζεται στο σχήμα 2.4. Οι αλγόριθμοι αυτοί, προϋποθέτουν ότι ο αποστολέας και ο παραλήπτης έχουν συμϕωνήσει σε ένα μυστικό κλειδί πριν την ανταλλαγή μηνυμάτων, έτσι ώστε να γίνεται ασϕαλής επικοινωνία και βασίζονται στη μυστικότητα του κλειδιού και στο κατά πόσο μπορεί το κλειδί να διατηρηθεί ασϕαλές. Από αυτό συμπεραίνουμε ότι αν κάποιος καταϕέρει να έχει πρόσβαση στο μυστικό κλειδί σημαίνει ότι μπορεί να έχει και πρόσβαση στα μηνύματα που ανταλλάσονται, μπορεί δηλαδή να κρυπτογραϕήσει και να αποκρυπτογραϕήσει τα αποστελλόμενα μηνύματα. Αν συμβολίσουμε με EK το κλειδί κρυπτογράϕησης, με DK το κλειδί αποκρυπτογράϕησης, με M το απλό κείμενο και με C το κρυπτοκείμενο, η κρυπτογράϕηση και η αποκρυπτογράϕηση με τη χρήση συμμετρικών αλγορίθμων μπορεί να παρουσιαστεί σχηματικά ως εξής: EK(M) = C DK(C) = M Οι συμμετρικοί αλγόριθμοι μπορούν να χωριστούν σε δύο κατηγορίες. Στην πρώτη κατηγορία ανήκουν οι αλγόριθμοι που κρυπτογραϕούν ένα bit ή ένα byte κάθε ϕορά και ονομάζονται stream algorithms ενώ στη δεύτερη κατηγορία ανήκουν οι αλγό- 12

24 Σχήμα 2.5: Ασύμμετρη κρυπτογράϕηση ριθμοι που κρυπτογραϕούν ένα μπλοκ από bits κάθε ϕορά και ονομάζονται block algorithms ή block ciphers. Ο αλγόριθμος που χρησιμοποιήθηκε στην παρούσα εργασία, ο AES [aes01], ανήκει στην δεύτερη κατηγορία και ένα τυπικό μέγεθος block που χρησιμοποιείται για αυτόν τον αλγόριθμο είναι αυτό των 16 bytes. Ασύμμετρη κρυπτογράϕηση Η δεύτερη κατηγορία αλγορίθμων κρυπτογράϕησης με χρήση κλειδιού είναι η κρυπτογράϕηση δημόσιου κλειδιού ή ασύμμετρη κρυπτογράϕηση. Οι αλγόριθμοι αυτής της κατηγορίας έχουν σχεδιαστεί έτσι ώστε το κλειδί που χρησιμοποιείται για την κρυπτογράϕηση να είναι διαϕορετικό με εκείνο που χρησιμοποιείται για την αποκρυπτογράϕηση. Επίσης, το κλειδί που χρησιμοποιείται για την αποκρυπτογρά- ϕηση δεν μπορεί να παραχθεί από το κλειδί που χρησιμοποιήθηκε για την κρυπτογράϕηση. Οι αλγόριθμοι αυτής της κατηγορίας ονομάζονται αλγόριθμοι δημόσιου κλειδιού γιατί το κλειδί που χρησιμοποιείται για την κρυπτογράϕηση ενός μηνύματος είναι δημοσιοποιημένο και γνωστό σε όλους, δηλαδή μπορεί οποιοσδήποτε να το χρησιμοποιήσει για να κρυπτογραϕήσει ένα μήνυμα. Όμως μόνο ο κάτοχος του αντίστοιχου κλειδιού για την αποκρυπτογράϕηση του μηνύματος μπορεί να αποκρυπτογραϕήσει το μήνυμα και τελικά να έχει πρόσβαση στα αρχικά δεδομένα, στο απλό κείμενο. Στους αλγόριθμους αυτής της κατηγορίας το κλειδί της κρυπτογράϕησης ονομάζεται και δημόσιο κλειδί, ενώ το κλειδί της αποκρυπτογράϕησης ονομάζεται και προσωπικό κλειδί ή αλλιώς μυστικό κλειδί. Αν συμβολίσουμε με EK το κλειδί κρυπτογράϕησης, με DK το κλειδί αποκρυπτογράϕησης, με M το απλό κείμενο και με C το κρυπτοκείμενο, η κρυπτογράϕηση και η αποκρυπτογράϕηση με τη χρήση συμμετρικών αλγορίθμων μπορεί να παρουσιαστεί σχηματικά ως εξής: EK(M) = C DK(C) = M Τα παραπάνω παρουσιάζονται και στο σχήμα 2.5. Υπάρχουν περιπτώσεις όπου ένα απλό κείμενο κρυπτογραϕείται με το προσωπικό 13

25 κλειδί και η αποκρυπτογράϕηση του μηνύματος γίνεται με το δημόσιο κλειδί. Αυτή είναι η περίπτωση της ψηϕιακής υπόγραϕης και είναι σημαντική για τις περιπτώσεις όπου χρειάζεται να υπάρχει σιγουριά ότι ένα μήνυμα όντως προέρχεται από αυτόν που ισχυρίζεται ότι προέρχεται Πλεονεκτήματα και μειονεκτήματα Συμμετρικής και Ασύμμετρης Κρυπτογράϕησης Από τότε που πρωτοεμϕανίστηκε η κρυπτογραϕία δημόσιου κλειδιού, άρχισε να συζητιέται και το ερώτημα τι είδους κρυπτογραϕικός αλγόριθμος θα ήταν καλύτερα να χρησιμοποιείται, ένας αλγόριθμος συμμετρικής κρυπτογράϕησης ή ένας ασσύμετρης. Το ερώτημα όμως είναι δύσκολο να απαντηθεί έτσι απλά καθώς η απάντηση δεν μπορεί να είναι ανεξάρτητη του σκοπού της χρήσης ενός αλγορίθμου. Ο Needham και ο Schroeder [NS78] απέδειξαν ότι ο αριθμός και το μέγεθος των μηνυμάτων είναι πολύ μεγαλύτερα όταν χρησιμοποιούνται αλγόριθμοι δημόσιου κλειδιού σε αντίθεση με τη χρήση αλγορίθμων συμμετρικής κρυπτογράϕησης. Το συμπέρασμα που έβγαλαν είναι ότι ο αλγόριθμος συμμετρικής κρυπτογράϕησης είναι πιο αποδοτικός από εκείνον του δημόσιου κλειδιού. Η ανάλυση όμως αυτή παρόλο που έχει αληθινές βάσεις, παραβλέπει το γεγονός ότι ένας αλγόριθμος συμμετρικής κρυπτογράϕησης υστερεί στην ασϕάλεια σε αντίθεση με έναν αλγόριθμο δημόσιου κλειδιού. Επομένως, για να γίνει η πιο κατάλληλη επιλογή ενός αλγορίθμου κρυπτογραϕίας θα πρέπει να εξετάζεται τόσο η ασϕάλεια που παρέχει ένας αλγόριθμος όσο και η απόδοση. Συμπερασματικά, μπορεί να ειπωθεί ότι η κρυπτογραϕία δημόσιου κλειδιού και η συμμετρική κρυπτογράϕηση είναι δύο διαϕοτερικά είδη κρυπτογραϕίας και γι αυτό χρησιμοποιούνται για διαϕορετικούς σκοπούς. Αν για παράδειγμα πρέπει να κρυπτογραϕηθούν δεδομένα, τότε καλύτερα είναι να χρησιμοποιηθεί κάποιος αλγόριθμος συμμετρικής κρυπτογράϕησης. Και αυτό γιατί οι αλγόριθμοι αυτού του είδους είναι πολύ πιο γρήγοροι και επίσης δεν είναι ευάλωτοι σε επιθέσεις επιλεγμένου κρυπτογραϕήματος (chosen ciphertext attacks). Απ την άλλη μεριά, η κρυπτογραϕία δημόσιου κλειδιού χρησιμοποιείται σε διαϕορετικές περιπτώσεις όπου δεν μπορεί να χρησιμοποιηθεί η συμμετρική κρυπτογράϕηση, όπως για τη διαχείρηση κλειδιού (key management). Επιπλέον, όταν πρέπει να χρησιμοποιηθεί κάποιος αλγόριθμος κρυπτογραϕίας πρέπει να αναλογιστούν και οι παράμετροι που βασίζονται στη χρήση κλειδιού. Για παράδειγμα, αν πρέπει να γίνει ανταλλαγή δεδομένων μεταξύ N χρηστών και χρησιμοποιηθεί αλγόριθμος συμμετρικής κρυπτογράϕησης, χρειάζονται N 1 κλειδιά ανά χρήστη, δηλαδή για N χρήστες χρειάζονται N(N 1) κλειδιά συνολικά. Έτσι, ϕαίνεται πως υπάρχει δυσκολία στην ανταλλαγή κλειδιών όπως και στον εντοπισμό κάποιας παραβίασης. Άπ την άλλη μεριά, για έναν αλγόριθμο ασύμμετρης κρυπτογράϕησης αν υπάρχουν N χρήστες που πρέπει να ανταλλάξουν δεδομένα μεταξύ τους, αρκούν N κλει- 14

26 διά ανά χρήστη αντί για N(N 1)/2. Η ανταλλαγή διαμοιραζόμενων κλειδιών γίνεται πιο εύκολα σε αυτήν την περίπτωση απ ότι στην περίπτωση συμμετρικής κρυπτογράϕησης και επίσης ο εντοπισμός παραβίασης γίνεται πιο εύκολα Υβριδική κρυπτογράϕηση Στην παράγραϕο έγινε αναϕορά στα βασικά μειονεκτήματα και πλεονεκτήματα της συμμετρικής και της ασύμμετρης κρυπτογράϕησης. Υπάρχουν όμως περιπτώσεις όπου είναι αναγκαίο ένα σύστημα κρυπτογραϕίας να έχει τα πλεονεκτήματα και της συμμετρικής αλλά και της ασύμμετρης κρυπτογράϕησης. Για το σκοπό αυτό χρησιμοποιείται η υβριδική κρυπτογραϕία όπου παρέχεται ένας συνδυασμός συμμετρικών και ασύμμετρων αλγορίθμων. Αρχικά, χρησιμοποιούνται αλγόριθμοι ασύμμετρης κρυπτογραϕίας για αντάλλαγή ενός μυστικού κλειδιού με ασϕάλεια, ενώ στη συνέχεια γίνεται χρήση αυτού του κλειδιού για την κρυπτογράϕηση αλλά και για τον έλεγχο της ακεραιότητας του κανονικού μηνύματος. Ένα παράδειγμα χρήσης υβριδικής κρυπτογραϕίας είναι τα πρωτόκολλο SS- L/TLS, τα οποία χρησιμοποιούνται για κρυπτογράϕηση μηνυμάτων για να παρέχουν ασϕαλή επικοινωνία μέσω διαδικτύου. Τα πρωτόκολλα αυτά παρέχουν εμπιστευτικότητα, ακεραιότητα και αυθεντικότητα μημυμάτων σε διαδικτυακή επικοινωνία. Ακόμη ένα παράδειγμα είναι το πρωτόκολλο IPsec το οποίο παρέχει εμπιστευτικότητα, ακεραιότητα και αυθεντικότητα μηνύματος στο IP επίπεδο. Τέλος, αξίζει να αναϕερθεί το πρωτόκολλο PGP (Pretty Good Privacy) σύμϕωνα με το οποίο παρέχεται αυθεντικοποίηση χρήστη, εμπιστευτικότητα και ακεραιότητα μηνυμάτων Ασϕάλεια Στα συστήματα κρυπτογραϕίας, η ασϕάλεια μπορεί να προσεγγιστεί με δύο δια- ϕορετικούς τρόπους. Στην πρώτη περίπτωση, κατατάσσονται τα απεριόριστα ασϕαλή συστήματα κρυπτογράϕησης (unconditionally secure). Για να μπορέσει ένα σύστημα κρυπτογράϕησης να χαρακτηριστεί απεριόριστα ασϕαλές θα πρέπει ανεξάρτητα από το πόσο μεγάλο κομμάτι του κρυπτογραϕημένου μηνύματος είναι γνωστό, να μην υπάρχει τρόπος να ανακτηθεί το αρχικό μήνυμα με μοναδικό τρόπο όση υπολογιστική ισχύ και χρόνο να διαθέτει ένας κρυπταναλυτής. Έτσι, σε αυτήν την περίπτωση η ασϕάλεια είναι ανεξάρτητη από τους πόρους που είναι διαθέσιμη στον κρυπταναλυτή. Στην δεύτερη περίπτωση, η ασϕάλεια προσεγγίζεται με την έννοια της υπολογιστικής ασϕάλειας ενός συστήματος. Ένα σύστημα χαρακτηρίζεται υπολογιστικά ασϕαλές (computationally secure) αν είναι υπολογιστικά αδύνατο να «σπάσει». Πρακτικά, ένα σύστημα θα χαρακτηρίζεται υπολογιστικά ασϕαλές αν η καλύτερη γνωστή μέθοδος για το «σπάσιμο» ενός συστήματος χρειάζεται υπερβολικά μεγάλο χρόνο για να εϕαρμοστεί. O Claude E. Shannon δημοσίευσε ένα άρθρο το 1949 [Sha49] σύμϕωνα με το 15

27 οποίο έθεσε δύο πολύ σημαντικές αρχές οι οποίες σχετίζονται με την ασϕάλεια ενός συστήματος. Οι αρχές αυτές είναι η διάχυση (diffusion) και η σύγχυση (confusion). Σύμϕωνα με την αρχή της διάχυσης, κάθε γράμμα του αρχικού μηνύματος πρέπει να επηρεάζει όσο το δυνατόν περισσότερα γράμματα του κρυπτογράμματος. Έτσι, αν αλλάξει ένα γράμμα στο αρχικό κείμενο, τότε θα πρέπει το κρυπτογραϕημένο μήνυμα να αλλάξει εντελώς σύμϕωνα με ένα μη προβλέψιμο ψευδοτυχαίο τρόπο. Σύμϕωνα με την αρχή της σύγχυσης, η σχέση μεταξύ του κλειδιού και του κρυπτογραϕημένου μηνύματος πρέπει να είναι όσο το δυνατόν πιο περίπλοκη και σύνθετη, έτσι ώστε αλλάζοντας έστω και ένα bit από το κλειδί, να αλλάζει εντελώς το κρυπτογραϕημένο μήνυμα. Ο σκοπός της αρχής της σύγχυσης είναι να είναι πολύ δύσκολο για έναν κρυπταναλυτή να βρει το κλειδί ακόμα και αν έχει έναν μεγάλο αριθμό απλών κειμένων και των αντίστοιχων κρυπτοκειμένων τους τα οποία έχουν παραχθεί με το ίδιο κλειδί. Έτσι, κάθε bit του κρυπτοκειμένου θα πρέπει να σχετίζεται και να εξαρτάται με ολόκληρο το κλειδί όπως επίσης και θα πρέπει να εξαρτάται με διαϕορετικούς τρόπους για διαϕορετικά τμήματα του κλειδιού. Οι αρχές αυτές εϕαρμόζονται ακόμα και σήμερα στην πράξη και λαμβάνονται υπόψιν στην σχεδίαση και την κατασκευή κρυπτογραϕικών αλγορίθμων όπως επίσης και στην αξιολόγηση αυτών Διάϕοροι τύποι επιθέσεων κρυπτανάλυσης Σε αυτήν την ενότητα γίνεται περιγραϕή των επιθέσεων κρυπτανάλυσης, οι οποίες βασίζονται σε τεχνικές και μεθόδους που δεν έχουν να κάνουν με τυχαίες προσπάθειες, όπως θα μπορούσε για παράδειγμα να εϕαρμοστεί στην περίπτωση του κρυπτογράμματος του Καίσαρα όπου οι τυχαίες προσπάθειες είναι λίγες, όπως αναϕέρθηκε και στην ενότητα Γενικά οι μέθοδοι κρυπτανάλυσης βασίζονται στην προσπάθεια απόκτησης κάποιων δεδομένων ή του μυστικού κλειδιού. Προτιμότερο είναι βέβαια για έναν κρυπταναλυτή να αποκτήσει πρόσβαση στο μυστικό κλειδί αντί σε κάποια δεδομένα, γιατί έτσι θα μπορέσει να αποκρυπτογραϕήσει όλα δεδομένα που έχει αποκτήσει που έχουν κρυπτογραϕηθεί με το ίδιο μυστικό κλειδί και ίσως να μπορέσει να αποκρυπτογραϕήσει και άλλα δεδομένα στο μέλλον. Στο σχήμα 2.6 ϕαίνεται η περίπτωση ενός συστήματος που δέχεται επίθεση κρυπτανάλυσης με τη μέθοδο υποκλοπής δεδομένων από το κανάλι χρησιμοποιώντας την τεχνική της κατανάλωσης. Όταν μεταδίδεται 0 η κατανάλωση πέϕτει, ενώ όταν μεταδίδεται το 1 η κατανάλωση αυξάνεται. Οι επιθέσεις κρυπτανάλυσης χωρίζονται σε τρείς κατηγορίες ανάλογα με την πληροϕορία που κατέχει ένας κρυπταναλυτής. Οι τρεις αυτές κατηγορίες είναι οι εξής: Επίθεση που βασίζεται μόνο στο κρυπτοκείμενο Επίθεση που βασίζεται σε ένα δεδομένο απλό κείμενο και στο αντίστοιχο κρυπτοκείμενό του 16

28 Σχήμα 2.6: Σύστημα που δέχεται επίθεση κρυπτανάλυσης Επίθεση που βασίζεται σε ένα απλό κείμενο που επιλέγει ο κρυπταναλυτής και στο αντίστοιχο κρυπτοκειμενό του Στην πρώτη περίπτωση όπου η επίθεση βασίζεται μόνο στο κρυπτοκείμενο, ο κρυπταναλυτής έχει αποκτήσει πρόσβαση μόνο σε κάποιο κρυπτογραϕημένο σήμα. Για να αποκρυπτογραϕηθούν τα δεδομένα γίνεται χρήση στατιστικών μελετών και ανάλυση του κρυπτογραϕημένου σήματος. Ένα παράδειγμα τέτοιας μορϕής επίθεσης είναι η περίπτωση υποκλοπής τηλεϕωνικής συνομιλίας. Αυτή η μορϕή επίθεσης είναι η χειρότερη από την μεριά του κρυπταναλυτή γιατί είναι και η πιο δύσκολη απ τις τρεις στην αποκρυπτογράϕηση των δεδομένων. Ένα καλύτερο σενάριο επίθεσης κρυπτανάλυσης είναι η δεύτερη περίπτωση κατά την οποία στη διαδικασία της κρυπτανάλυσης γίνεται προσπάθεια να βρεθεί κάποια σχέση μεταξύ του κρυϕού κειμένου με το αντίστοιχο απλό κείμενο. Αυτή η πληρο- ϕορία θα μπορούσε ίσως να χρησιμοποιηθεί για να αποκρυπτογραϕηθούν και άλλα κομμάτια του κρυπτοκειμένου ή ακόμα να βρεθεί και το μυστικό κλειδί. Ένα παράδειγμα τέτοιας μορϕής επίθεσης θα μπορούσε να προκύψει μόνο αν κάποιος έχει πρόσβαση στο σύστημα κρυπτογράϕησης ή αν μπορέσει να προσποιηθεί ότι είναι κάποιος απ τους χρήστες του συστήματος. Η τρίτη περίπτωση επίθεσης κρυπτανάλυσης είναι η καλύτερη από την πλευρά ενός κρυπταναλυτή γιατί μπορεί να επιλέξει ένα συγκεκριμένο απλό κείμενο και μπορεί να παράξει από αυτό το αντίστοιχο κρυπτοκείμενό του. Ένα παράδειγμα επίθεσης κρυπτανάλυσης αυτής της κατηγορίας είναι ένας επεξεργαστής κειμένου όπου αποθηκεύει κρυπτογραϕημένα αρχεία. Για να είναι ένα σύστημα κρυπτογραϕίας ασϕαλές θα πρέπει να είναι ικανό να αντέξει και τους τρεις τύπους επίθεσης κρυπτανάλυσης. Στην πράξη αυτό είναι συχνά δύσκολο να επιτευχθεί γιατί για παράδειγμα ένα σύστημα που είναι ικανό να αντιστέκεται σε επιθέσεις που βασίζονται μόνο στο κρυπτοκείμενο, ίσως αποδειχτεί ευαίσθητο στις επιθέσεις που ο κρυπταναλυτής επιλέγει το απλό κείμενο. Όλες οι επιθέσεις που αναϕέρθηκαν σε αυτήν την ενότητα αϕορούν στην ανικανότητα του συστήματος να παρέχει εμπιστευτικότητα, όπως αυτή συζητήθηκε στην ενότητα

29 2.2.8 Διαχείριση κλειδιού Η διαχείριση κλειδιού αϕορά στη διαδικασία παραγωγής, διανομής, επαλήθευσης, χρησιμοποίησης, ενημέρωσης, αποθήκευσης και καταστροϕής των κλειδιών σε ένα σύστημα κρυπτογράϕησης. Ένα σύστημα κρυπτογράϕησης πρέπει να παρέχει ασϕαλή μέθοδο διαχείρισης των κλειδιών, μιας και στην πράξη οι περισσότερες επιθέσεις έχουν στόχο τις διαδικασίες διαχείρισης των κλειδιών ενώ σπάνια στοχεύουν στους ίδιους τους αλγορίθμους. Η διαδικασία της διαχείρισης κλειδιού μπορεί να χωριστεί σε τέσσερις ϕάσεις, στην ϕάση που προηγείται της χρήσης του κλειδιού, στη ϕάση χρησιμοποίησης, στη ϕάση μετά τη χρήση του κλειδιού και τέλος στη ϕάση καταστροϕής του κλειδιού. Στην πρώτη ϕάση, τα κλειδιά δεν είναι ακόμα διαθέσιμα προς χρήση, δεν μπορούν να παραχθούν ή μπορεί να είναι βρίσκονται στην κατάσταση πριν την ενεργοποίησή τους. Σε αυτήν την ϕάση ορίζονται οι ιδιότητες του συστήματος στο οποίο θα χρησιμοποιηθεί το κλειδί, έτσι ώστε να παραχθεί το πιο κατάλληλο κλειδί για την εκάστοτε εϕαρμογή. Στη δεύτερη ϕάση, στη ϕάση χρησιμοποίησης του κλειδιού, τα κλειδιά είναι ενεργά και διαθέσιμα για κανονική χρήση. Στην τρίτη ϕάση, τα κλειδιά δεν είναι πια ενεργά και ούτε διαθέσιμα για κανονική χρήση. Υπάρχουν όμως ειδικές περιπτώσεις όπου μπορεί να χρειαστεί πρόσβαση στο κλειδί και κάτω από ορισμένες συνθήκες χρήση του κλειδιού. Σε αυτήν την ϕάση τα κλειδιά βρίσκονται σε κατάσταση απενεργοποίησης και κρατούνται αποθηκευμένα εϕόσον δεν προορίζονται για επεξεργασία δεδομένων. Στην τελευταία ϕάση, σε αυτήν της καταστροϕής του κλειδιού τα κλειδιά δεν είναι πια διαθέσιμα και όλα τα αντίγραϕα τους έχουν σβηστεί και καταστραϕεί. Αν και τα κλειδιά καταστρέϕονται, οι ιδιότητές τους όπως ο τύπος του κλειδιού, η περίοδος χρήσης του και άλλα μπορεί να αποθηκευτούν για μελλοντική ανα- ϕορά. Στο διάγραμμα σχήμα 2.7 ϕαίνονται όλες οι ϕάσεις διαχείρισης κλειδιού. Παρουσιάζονται επτά ϕάσεις κατά τις οποίες το κλειδί θα πρέπει να περνάει διαδοχικά ενώ δεν θα πρέπει να είναι εϕικτό ένα κλειδί να επιστρέψει σε μία προηγούμενη ϕάση. Η διαχείριση κλειδιού γίνεται πολύ πιο εύκολα όταν χρησιμοποιούνται αλγόριθμοι δημόσιου κλειδιού. Αυτό συμβαίνει γιατί το ιδιωτικό κλειδί δεν χρειάζεται να μεταδοθεί ποτέ. Όμως αυτή η περίπτωση έχει άλλα προβλήματα ένα απ τα οποία είναι ότι ο κάθε χρήστης θα πρέπει να έχει ένα ζεύγος κλειδιών για κάθε συναλλαγή που πρέπει να κάνει. Έτσι, στα συστήματα που χρησιμοποιείται ασύμμετρη κρυπτογραϕία χρειάζονται μέθοδοι διανομής και επαλήθευσης των κλειδιών και για το σκοπό αυτό χρησιμοποιούνται τα πρωτόκολλα CCITT και Χ

30 Σχήμα 2.7: Φάσεις διαχείρησης κλειδιού Σύνοψη αλγορίθμων και των ιδιοτήτων τους Στο σχήμα 2.8 παρουσιάζεται μία περίληψη των διαϕορετικών ειδών των αλγορίθμων και οι ιδιότητές τους. Τό σχήμα είναι από τον Bruce Schneier [Sch95] AES Ο αλγόριθμος AES [PA01], Advanced Encryption Standard, προτυποποιήθηκε από το NIST (National Institute of Standards and Technology) [oa] το Νοέμβριο του 2001 και χρησιμοποιείται για προστασία ηλεκτρονικών δεδομένων, έτσι ώστε να μην επιτρέπεται η πρόσβαση σε τρίτους. Είναι ένας αλγόριθμος συμμετρικής κρυπτογράϕησης που κρυπτογραϕεί και αποκρυπτογραϕεί τα δεδομένα κατά μπλοκ. Ο AES χρησιμοποιεί μπλοκ των 128 bit και το κλειδί του μπορεί να είναι 128, 192 ή 256 bit. Σχεδιάστηκε από τους Vincent Rijmen και Joan Daemen αρχικά με το όνομα Rijndael [DR98] και η σχεδίασή του είναι επηρεασμένη από το πρότυπο Square [DKR97]. Τα μεγέθη του μπλοκ και του κλειδιού που είναι αποδεκτά από το NIST για τον αλγόριθμο Rijndael είναι 128, 192 και 256 bit με πιθανούς και τους εννέα παραπάνω συνδυασμούς. Ο αλγόριθμος είναι γραμμένος με τέτοιον τρόπο ώστε να μπορεί να χρησιμοποιηθεί μέγεθος μπλοκ πολλαπλάσιο των 32 bit με ελάχιστο μέγεθος 128 bit και κλειδί μεγέθους 128, 192 ή 256 bit και είναι σχεδιασμένος για εύκολη υλοποίηση και σε hardware και σε software. Ο AES αντικατέστησε το 19

31 Σχήμα 2.8: Κατηγορίες αλγορίθμων και τα χαρακτηριστικά τους είσοδος in 0 in 4 in 8 in 12 in 1 in 5 in 9 in 13 in 2 in 6 in 10 in 14 in 3 in 7 in 11 in 15 = εσωτερική κατάσταση S 0,0 S 0,1 S 0,2 S 0,3 S 1,0 S 1,1 S 1,2 S 1,3 S 2,0 S 2,1 S 2,2 S 2,3 S 3,0 S 3,1 S 3,2 S 3,3 = έξοδος out 0 out 4 out 8 out 12 out 1 out 5 out 9 out 13 out 2 out 6 out 10 out 14 out 3 out 7 out 11 out 15 Σχήμα 2.9: Αντιστοίχηση εισόδου στην εσωτερική κατάσταση και από την εσωτερική κατάσταση στην έξοδο. πρότυπο DES (Data Encryption Standard) [PA93] και σήμερα αποτελεί τον προτεινόμενο αλγόριθμο για εϕαρμογές συμμετρικής κρυπτογράϕησης. Ο Rijndael χρησιμοποιεί επαναλαμβανόμενους μετασχηματισμούς σε κάθε μπλοκ, όπου η είσοδος και το κλειδί υπόκεινται σε πολλούς γύρους μετατροπών και τελικά παράγουν την έξοδο. Κάθε ενδιάμεση κατάσταση ονομάζεται εσωτερική κατάσταση (State). Τα παραπάνω ϕαίνονται στο σχήμα 2.9. Όλοι οι μετασχηματισμοί του AES γίνονται χρησιμοποιώντας πίνακες δύο διαστάσεων όπου κάθε πίνακας έχει τέσσερις γραμμές από bytes, με την κάθε γραμμή να έχει Nb bytes, όπου το Nb είναι το μέγεθος του μπλοκ σε bit διαιρεμένο με το 32. Στο σχήμα 2.9 το Nb είναι ίσο με 4 και έτσι οι πίνακες που χρησιμοποιούνται είναι μεγέθους 4 4. Επίσης, για το κλειδί χρησιμοποιείται ένας πίνακας τεσσάρων γραμμών και Nk στηλών, όπου Nk είναι το μέγεθος του κλειδιού σε bit διαιρεμένο με το 32. Στο σχήμα 20

32 εσωτερική κατάσταση με Nb = 6 S 0,0 S 0,1 S 0,2 S 0,3 S 0,4 S 0,5 S 1,0 S 1,1 S 1,2 S 1,3 S 1,4 S 1,5 S 2,0 S 2,1 S 2,2 S 2,3 S 2,4 S 2,5 S 3,0 S 3,1 S 3,2 S 3,3 S 3,4 S 3,5 κλειδί με Nk = 4 k 0,0 k 0,1 k 0,2 k 0,3 k 1,0 k 1,1 k 1,2 k 1,3 k 2,0 k 2,1 k 2,2 k 2,3 k 3,0 k 3,1 k 3,2 k 3,3 Σχήμα 2.10: Παράδειγμα εσωτερικής κατάστασης με Nb = 6 και κλειδιού με Nk = 4. Nr Nb = 4 Nb = 6 Nb = 8 Nk = Nk = Nk = Πίνακας 2.1: Ο αριθμός των επαναλήψεων Nr και η εξάρτησή του από το μέγεθος του μπλοκ και του κλειδιού 2.10 ϕαίνεται ένα παράδειγμα εσωτερικής κατάστασης (state) όπου Nb = 6 και ενός κλειδιού όπου Nk = 4. Η είσοδος και η έξοδος που χρησιμοποιεί ο αλγόριθμος είναι ένας μονοδιάστατος πίνακας μεγέθους 4 Nb και το κλειδί ένας μονοδιάστατος πίνακας μεγέθους 4 Nk. Τα bytes της εισόδου, αντιστοιχίζονται στις θέσεις του πίνακα της εσωτερικής κατάστασης με την σειρά S 0,0, S 1,0, S 2,0, S 3,0, S 0,1, S 1,1, S 2,1, S 3,1, S 0,2,... και τα bytes του κλειδιού αντιστοιχίζονται στον πίνακα του κλειδιού με την σειρά k 0,0, k 1,0, k 2,0, k 3,0, k 0,1, k 1,1, k 2,1, k 3,1, k 0,2,.... Όταν τελειώσει η κρυπτογράϕηση, η εσωτερική κατάσταση αντιστοιχίζεται στην έξοδο παίρνοντας τα bytes με την ίδια σειρά που αντιστοιχίστηκαν στη διαδικασία εισόδου. Επομένως, αν ο δείκτης του μονοδιάστατου πίνακα εισόδου ή του κλειδιού είναι n και οι δείκτες του πίνακα εσωτερικής κατάστασης είναι (i,j), ισχύουν οι παρακάτω σχέσεις: i = n mod 4; j = [n / 4]; n = i + 4 j; Ο αλγόριθμος εκτελεί μία σειρά επαναλαμβανόμενων ενεργειών. Ο αριθμός των επαναλήψεων, Nr, εξαρτάται από τις τιμές των Nb και Nk και ο τρόπος υπολογισμού των επαναλήψεων αυτών ϕαίνεται στον πίνακα 2.1. Οι επαναλαμβανόμενες ενέργειες κατά τη διαδικασία της κρυπτογράϕησης είναι τέσσερις και όπως ϕαίνεται στον παρακάτω ψευδοκώδικα αυτές ονομάζονται SubBytes, ShiftRows, MixColumns και AddRoundKey. Round( State,RoundKey) { SubBytes ( State ) ; ShiftRows ( State ) ; MixColumns ( State ) ; 21

33 S 0,0 S 0,1 S 0,2 S 0,3 S 1,0 S 1,1 S 1,2 S 1,3 = S 2,0 S 2,1 S 2,2 S 2,3 S 3,0 S 3,1 S 3,2 S 3,3 Sub Bytes = S 0,0 S 0,1 S 0,2 S 0,3 S 1,0 S 1,1 S 1,2 S 1,3 S 2,0 S 2,1 S 2,2 S 2,3 S 3,0 S 3,1 S 3,2 S 3,3 Σχήμα 2.11: Ο μετασχηματισμός SubBytes AddRoundKey( State,RoundKey ) ; } Η τελευταία επανάληψη του αλγορίθμου είναι λίγο διαϕορετική από τις υπόλοιπες όπως ϕαίνεται και παρακάτω. Η διαϕορά είναι ότι λείπει ο μετασχηματισμός MixColumns. FinalRound ( State, RoundKey) { SubBytes ( State ) ; ShiftRows ( State ) ; AddRoundKey( State,RoundKey ) ; } Ο μετασχηματισμός SubBytes Ο μετασχηματισμός SubBytes είναι ένας μη γραμμικός μετασχηματισμός αντικατάστασης byte, ο οποίος γίνεται για κάθε byte ξεχωριστά χρησιμοποιώντας έναν πίνακα αντικατάστασης, τον S box. Ο μετασχηματισμός αυτός ϕαίνεται στο σχήμα 2.11 για Nb = 4. Το S Box που χρησιμοποιεί ο μετασχηματισμός κατασκευάζεται χρησιμοποιώντας τους δύο παρακάτω μετασχηματισμούς: Δημιουργία του πολλαπλασιαστικού αντίστροϕου στο GF (2 8 ), με το 00 να αντιστοιχίζεται στον εαυτό του. Εϕαρμογή του 2.3 συσχετισμένου μετασχηματισμού (affine transformation) στο GF (2). b i = b i b (i+4) mod 8 b (i+5) mod 8 b (i+6) mod 8 b (i+7) mod 8 c i (2.3) για 0 i < 8, όπου το b i είναι το i οστό bit του byte, και το c i είναι το i οστό bit του byte c με την τιμή 63 ή

34 hex y a b c d e f c 77 7b f 2 6b 6f c b f e d7 ab 76 1 ca 82 c9 7d f a f 0 ad d4 a2 af 9c a4 72 c0 2 b7 f d f f 7 cc 34 a5 e5 f 1 71 d c7 23 c a e2 eb 27 b c 1a 1b 6e 5a a0 52 3b d6 b3 29 e3 2f d1 00 ed 20 f c b1 5b 6a cb be 39 4a 4c 58 cf 6 d0 ef aa f b 43 4d f f 50 3c 9f a8 x 7 51 a3 40 8f 92 9d 38 f 5 bc b6 da f f f 3 d2 8 cd 0c 13 ec 5f c4 a7 7e 3d 64 5d f dc 22 2a ee b8 14 de 5e 0b db a e0 32 3a 0a c c2 d3 ac e4 79 b e7 c8 37 6d 8d d5 4e a9 6c 56 f 4 ea 65 7a ae 08 c ba e 1c a6 b4 c6 e8 dd 74 1f 4b bd 8b 8a d 70 3e b f 6 0e b9 86 c1 1d 9e e e1 f d9 8e 94 9b 1e 87 e9 ce df f 8c a1 89 0d bf e d 0f b0 54 bb 16 Πίνακας 2.2: Πίνακας αντικατάστασης (Substitiution Table) - Sbox[xy] σε δεκαεξαδική αναπαράσταση Ο συσχετισμένος μετασχηματισμός παρουσιάζεται και σε μορϕή πίνακα όπως παρακάτω: b b 0 0 b b 1 0 b b 2 1 b 3 b = b b (2.4) b b 5 0 b b 6 0 b b 7 1 Στον πίνακα 2.2 ϕαίνεται ο συμπληρωμένος μετασχηματισμός. Σε μορϕή ψευδοκώδικα, η αναπαράσταση του μετασχηματισμού SubBytes ϕαίνεται παρακάτω. SubBytes ( byte state [4,Nb ] ) begin for r = 0 step 1 to 3 f o r c = 0 step 1 to Nb 1 23

35 Nb C1 C2 C Πίνακας 2.3: Αριθμός θέσεων κυκλικής ολίσθησης συναρτήσει του N b S 0,0 S 0,1 S 0,2 S 0,3 S 1,0 S 1,1 S 1,2 S 1,3 = S 2,0 S 2,1 S 2,2 S 2,3 S 3,0 S 3,1 S 3,2 S 3,3 S 0,0 S 0,1 S 0,2 S 0,3 S 1,3 S 1,0 S 1,1 S 1,2 S 2,2 S 2,3 S 2,0 S 2,1 S 3,1 S 3,2 S 3,3 S 3,0 Σχήμα 2.12: Ο μετασχηματισμός ShiftRows state [ r, c ] = Sbox [ state [ r, c ] ] end for end for end for i = 1 10 do i i + 1 end for Έτσι, αν έχουμε για παράδειγμα ένα byte με τιμή d2, από τον πίνακα 2.2 παίρνουμε την τιμή b5 για να αντικαταστήσουμε το αρχικό byte. Ο μετασχηματισμός με μορϕή εξίσωσης ϕαίνεται από την 2.5. S i,j = S box(s i,j ) (2.5) Ο μετασχηματισμός ShiftRows Στον μετασχηματισμό ShiftRows γίνεται κυκλική ολίσθηση στις γραμμές της εσωτερικής κατάστασης κατά διαϕορετικό αριθμό θέσεων ανάλογα με τη γραμμή. Στην πρώτη γραμμή δεν γίνεται καθόλου ολίσθηση, στη δεύτερη γραμμή έχουμε κυκλική ολίσθηση προς τα αριστερά κατά C1 bytes, στην τρίτη γραμμή κατά C2 bytes και στην τέταρτη γραμμή κατά C3 bytes, ενώ οι αριθμοί C1, C2 και C3 εξαρτώνται από το μέγεθος του μπλοκ Nb. Στον πίνακα 2.3 ϕαίνεται πως επηρεάζονται αυτές οι τιμές από το Nb. Σε μορϕή ψευδοκώδικα έχουμε την αναπαράσταση ShiftRows(State), ενώ στο σχήμα 2.12 έχουμε ένα παράδειγμα του μετασχηματισμού ShiftRows για N b = 4. 24

36 S 0,0 S 0,1 S 0,2 S 0,3 S 1,0 S 1,1 S 1,2 S 1,3 S 2,0 S 2,1 S 2,2 S 2,3 S 3,0 S 3,1 S 3,2 S 3,3 = MixColumns() = S 0,0 S 0,1 S 0,2 S 0,3 S 1,0 S 1,1 S 1,2 S 1,3 S 2,0 S 2,1 S 2,2 S 2,3 S 3,0 S 3,1 S 3,2 S 3,3 Σχήμα 2.13: Ο μετασχηματισμός MixColumns S 0,0 S 0,1 S 0,2 S 0,3 S 1,0 S 1,1 S 1,2 S 1,3 S 2,0 S 2,1 S 2,2 S 2,3 S 3,0 S 3,1 S 3,2 S 3,3 k 0,0 k 0,1 k 0,2 k 0,3 k 1,0 k 1,1 k 1,2 k 1,3 = k 2,0 k 2,1 k 2,2 k 2,3 k 3,0 k 3,1 k 3,2 k 3,3 S 0,0 S 0,1 S 0,2 S 0,3 S 1,0 S 1,1 S 1,2 S 1,3 S 2,0 S 2,1 S 2,2 S 2,3 S 3,0 S 3,1 S 3,2 S 3,3 Σχήμα 2.14: Ο μετασχηματισμός AddRoundKey Ο μετασχηματισμός MixColumns Ο μετασχηματισμός MixColumns γίνεται ξεχωριστά για κάθε στήλη του πίνακα εσωτερικής κατάστασης χρησιμοποιώντας την κάθε στήλη σαν να ήταν ένα πολυώνυμο τεσσάρων όρων στο GF (2 8 ). Το πολυώνυμο αυτό πολλαπλασιάζεται modulo x με το πολυώνυμο a(x) = 03x x x Αυτό μπορεί να γραϕτεί και με τη μορϕή πινάκων, σύμϕωνα με την εξίσωση 2.6. S 0,c S 1,c S 2,c S 3,c = S 0,c S 1,c S 2,c S 3,c όπου 0 c < Nb (2.6) Με βάση τα παραπάνω, στα τέσσερα bytes κάθε στήλης γίνεται εϕαρμογή των σχέσεων 2.7. S 0,c = ({02} S 0,c ) ({03} S 1,c ) S 2,c S 3,c S 1,c = S 0,c ({02} S 1,c ) ({03} S 2,c ) S 3,c S 1,c = S 0,c S 1,c ({02} S 2,c ) ({03} S 3,c ) S 1,c = ({03} S 0,c ) S 1,c S 2,c ({02} S 3,c ) Στο σχήμα 2.13 ϕαίνεται ο μετασχηματισμός MixColumns. (2.7) Ο μετασχηματισμός AddRoundKey Στον μετασχηματισμό AddRoundKey N b λέξεις από το KeySchedule, το οποίο περιγράϕεται στην ενότητα , προστίθενται στην εσωτερική κατάσταση με μία απλή πράξη XOR. Ο μετασχηματισμός ϕαίνεται στο σχήμα 2.14 για Nb = 4. 25

37 Round key generation Ο AES αλγόριθμος χρησιμοποιεί το κλειδί κρυπτογράϕησης και μία ρουτίνα επέκτασης κλειδιού για να δημιουργήσει έναν προγραμματισμό κλειδιού (key schedule). Η ρουτινα επέκτασης κλειδιού δημιουργεί συνολικά Nb(Nr+1) λέξεις οι οποίες χρησιμοποιούνται στον αλγόριθμο κατά τον μετασχηματισμό AddRoundKey. Ο αλγόριθμος χρησιμοποιεί κατά την αρχικοποίηση N b λέξεις από την επέκταση κλειδιού, ενώ για κάθε μία από τις Nr επαναλήψεις του αλγορίθμου χρειάζονται Nb λέξεις, έτσι χρησιμοποιείται το σύνολο των N b(n r + 1) λέξεων που δημιουργήθηκαν με την ρουτίνα επέκτασης κλειδιού. Το αποτέλεσμα της επέκτασης κλειδιού αναπαρίσταται σε έναν πίνακα λέξεων μεγέθους 4 byte, οι οποίες συμβολίζονται με w[i] όπου 0 i < Nb(Nr + 1). Ο AES χρησιμοποιεί 128 bit μπλοκ και είτε 10, 12 ή 14 επαναλήψεις ανάλογα με το μέγεθος του κλειδιού. Για παράδειγμα, με ένα κλειδί των 128 bit, χρειάζονται σύμϕωνα με τον τύπο Nb(Nr + 1) = 4(10 + 1) = 44 λέξεις των 32 bit ή 1408 bits από την επέκταση κλειδιού, για την περίπτωση κλειδιού των 192 bit χρειάζονται 1664 bits και τέλος για κλειδί 256 bits χρειάζονται 1920 bits από την επέκταση κλειδιού. Ο ψευδοκώδικας της ρουτίνας επέκτασης κλειδιού από το κλειδί κρυπτογράϕησης ϕαίνεται στο σχήμα Η συνάρτηση SubWord() παίρνει σαν είσοδο μία λέξη 4 byte και εϕαρμόζει σε αυτήν τον μετασχηματισμό SubByte χρησιμοποιώντας το Sbox[xy] του πίνακα 2.2 για κάθε ένα από τα 4 byte. Η συνάρτηση RotWord() παίρνει μία λέξη 4 byte και κάνει αριστερή κυκλική ολίσθηση κατά ένα byte, δηλαδή η λέξη S 0, S 1, S 2, S 3 μετά την ολίσθηση γίνεται S 1, S 2, S 3, S 0. Ο πίνακας Rcon[i] περιέχει τις τιμές [x i 1, {00}, {00}, {00}] με i 1 και το x παίρνει την τιμή {02} στο GF (2 8 ). Από το σχήμα 2.15 ϕαίνεται ότι για τις πρώτες Nk λέξεις της επέκτασης κλειδιού χρησιμοποιείται το κλειδί κρυπτογράϕησης χωρίς καμία μετατροπή. Για τις επόμενες λέξεις w[i] η ρουτίνα επέκτασης κλειδιού παίρνει την τιμή εϕαρμόζοντας ένα απλό XOR στην προηγούμενη της λέξη, δηλαδή την w[i 1], με την λέξη που βρίσκεται Nk θέσεις πιο πρίν, δηλαδή την λέξη w[i Nk]. Για λέξεις όπου η θέση τους είναι πολλαπλάσιο του N k, γίνονται πρώτα μία σειρά μετασχηματισμών, ShiftRows και SubBytes χρησιμοποιώντας τις ρουτίνες RotWord() και SubWord αντίστοιχα και τέλος κάνοντας ένα XOR με τοrcon[i]. Επιπλέον, στην περίπτωση όπου το κλειδί είναι 256 bit, δηλαδή Nk = 8, όταν το i 4 είναι πολλαπλάσιο του N k, τότε η συνάρτηση SubWord() χρησιμοποιείται για το w[i 1] πριν από το XOR. 2.3 Παράλληλα Συστήματα Ταξινόμηση κατά Flynn Από τότε που πρωτοεμϕανίστηκαν οι παράλληλες αρχιτεκτονικές, προτάθηκαν διάϕορα μοντέλα ταξινόμισης των αρχιτεκτονικών αυτών, όπως του Feng [Fen77], 26

38 KeyExpansion ( byte key [4*Nk], word w[nb* ( Nr +1)], Nk) begin word temp i = 0 while ( i <Nk) w[ i ] = word ( key [4* i ], key [4* i +1], key [4* i +2], key [4* i +3]) i = i + 1 end while i = Nk while ( i <Nb* ( Nr+1)) temp = w[ i 1] i f ( i mod Nk = 0) temp = SubWord( RotWord ( temp ) ) xor Rcon [ i /Nk] else i f (Nk > 6 and i mod Nk = 4) temp = SubWord( temp ) end i f w[ i ] = w[ i Nk] xor temp i = i + 1 end while end Σχήμα 2.15: Ο ψευδοκώδικας για τη διαδικασία επέκτασης κλειδιού 27

39 του Händler [H86] και του Shore [Sho73]. Η πιο γνωστή όμως από αυτές είναι η ταξινόμηση κατά Flynn [Fly72]. Η ταξινόμηση αυτή ακολουθεί το μοντέλο του Von Neumann με την έννοια ότι και στην παράλληλη επεξεργασία ισχύει η αρχή Von Neumann για τη ροή και τον έλεγχο του προγράμματος, δηλαδή ισχύει η επαναλαμβανόμενη διαδικασία παραλαβής, εκτέλεσης και αποθήκευσης ενώ το πρόγραμμα εκτελείται με μία διατεταγμένη ακολουθία εντολών σε περισσότερους από έναν επεξεργαστές. Η ταξινόμηση κατά Flynn ϕαίνεται στον πίνακα 2.4. Οι αρχιτεκτονικές χωρίζονται σε τέσσερις κατηγορίες και ταξινομούνται σε αυτές ανάλογα με δύο παραμέτρους, τις εντολές και τα δεδομένα. Από τις τέσσερις αυτές κατηγορίες, η μία είναι ακολουθιακή, ενώ οι υπόλοιπες τρεις έχουν δυνατότητες παραλληλισμού. Οι τέσσερις αυτές κατηγορίες έχουν ως εξής: Μηχανές Μοναδικής Εντολής, Μοναδικών Δεδομένων Στις μηχανές αυτές οι εντολές εκτελούνται ακολουθιακά σε μία ακολουθία δεδομένων από μία μονάδα επεξεργασίας. Αυτό είναι το κλασικό μοντέλο Von Neumann. Μηχανές Μοναδικής Εντολής, Πολλαπλών Δεδομένων Σε αυτήν την κατηγορία ανήκουν οι μηχανές, οι οποίες εκτελούν μία κοινή ακολουθία εντολών πάνω σε διαϕορετικά δεδομένα. Το μοντέλο αυτό χρησιμοποιούν και οι μηχανές επεξεργασίας γραϕικών, οι graphics processing units (GPU), στις οποίες εκτελλούνται ταυτόχρονα οι ίδιες εντολές σε διαϕορετικά δεδομένα. Μηχανές Πολλαπλών Εντολών, Μοναδικών Δεδομένων Στις μηχανές αυτές, πολλές διαϕορετικές εντολές εκτελλούνται ταυτόχρονα στα ίδια δεδομένα. Σε αυτήν την κατηγορία κατατάσονται και οι μηχανές αγωγού (pipeline machines), στις οποίες τα δεδομένα μίας μονάδας επεξεργασίας είναι το αποτέλεσμα της προηγούμενης. Μηχανές Πολλαπλών Εντολών, Πολλαπλών Δεδομένων Στην κατηγορία αυτή ανήκουν οι μηχανές οι οποίες εκτελλούν παράλληλα πολλές διαϕορετικές εντολές σε διαϕορετικά δεδομένα. Οι μηχανές αυτής της κατηγορίας ονομάζονται και μηχανές πολυεπεξεργασίας (multiprocessor machines). Οι τελευταίας τεχνολογίας μηχανές επεξεργασίας γραϕικών ανήκουν σε αυτήν την κατηγορία καθώς μπορούν να εκτελούν ταυτόχρονα διαϕορετικές εντολές σε διαϕορετικά δεδομένα. 28

40 SISD Single Instruction Single Data Μοναδικής Εντολής Μοναδικών Δεδομένων MISD Multiple Instruction Single Data Πολλαπλών Εντολών Μοναδικών Δεδομένων SIMD Single Instruction Multiple Data Μοναδικής Εντολής Πολλαπλών Δεδομένων MIMD Multiple Instruction Multiple Data Πολλαπλών Εντολών Πολλαπλών Δεδομένων Πίνακας 2.4: Ταξινόμηση αρχιτεκτονικών κατά Flynn Διαχωρισμός βασισμένος στη μνήμη Ο διαχωρισμός ο οποίος βασίζεται στη μνήμη αϕορά στον τρόπο επικοινωνίας μεταξύ των επεξεργαστών. Υπάρχουν δύο κατηγορίες αρχιτεκτονικών που διαχωρίζονται με βάση τη μνήμη και αυτές είναι οι αρχιτεκτονικές κατανεμημένης μνήμης και οι αρχιτεκτονικές κοινής μνήμης. Στις αρχιτεκτονικές κατανεμημένης μνήμης κάθε επεξεργαστής έχει την δική του τοπική μνήμη και αποθηκεύει εκεί το δεδομένα του. Στην τοπική μνήμη κάθε επεξεργαστή δεν έχει κανένας άλλος επεξεργαστής πρόσβαση και επομένως τα δεδομένα που είναι αποθηκευμένα σε κάθε τοπική μνήμη δεν μοιράζονται με άλλους επεξεργαστές. Η επικοινωνία μεταξύ των επεξεργαστών γίνεται με πέρασμα μηνυμάτων, δηλαδή ο κάθε επεξεργαστής στέλνει στους υπόλοιπους τις δικές του αποκλειστικές πληρο- ϕορίες. Για το λόγο αυτό, οι αρχιτεκτονικές αυτής της κατηγορίας είναι γνωστές και ως αρχιτεκτονικές περάσματος μηνυμάτων. Στην δεύτερη κατηγορία αρχιτεκτονικών, αυτήν της κοινής μνήμης, οι επεξεργαστές έχουν πρόσβαση σε κοινή μνήμη, στην οποία μπορούν να γράψουν και να διαβάσουν. Έτσι διασϕαλίζεται και ο τρόπος επικοινωνίας μεταξύ των επεξεργαστών, αϕού τα κοινά δεδομένα μπορούν να αποθηκευτούν στην κοινή μνήμη, στην οποία έχουν όλοι οι επεξεργαστές πρόσβαση. Κάθε επεξεργαστής βέβαια μπορεί να έχει και την δική του τοπική μνήμη, όμως ο τρόπος επικοινωνίας μεταξύ των επεξεργαστών δεν αλλάζει αλλά γίνεται με εγγραϕή και ανάγνωση από την κοινή μνήμη. Κάθε αλλαγή στην κοινή μνήμη από έναν επεξεργαστή είναι ορατή και σε όλους τους υπόλοιπους. Οι αρχιτεκτονικές κοινής μνήμης χωρίζονται σε δύο κατηγορίες ανάλογα με το χρόνο πρόσβασης στην κοινή μνήμη. Στην πρώτη κατηγορία εντάσσονται οι αρχιτεκτονικές όπου έχουν ίδιους επεξεργαστές και ο χρόνος πρόσβασης στην κοινή μνήμη είναι ίδιος για όλους τους επεξεργαστές. Αυτή η κατηγορία ονομάζεται UMA, uniform memory access, λόγω του κοινού χρόνου προσπέλασης της κοινής μνήμης από όλους τους επεξεργαστές. Η δεύτερη κατηγορία αποτελείται από τις αρχιτεκτονικές όπου ο χρόνος προσπέλασης των διαϕόρων μνημών του συστήματος δεν είναι ίδιος για όλους τους επεξερ- 29

41 Σχήμα 2.16: Κατηγορίες αρχιτεκτονικών με βάση τη μνήμη γαστές και ονομάζεται NUMA, non uniform memory access. Όλοι οι επεξεργαστές έχουν απευθείας πρόσβαση σε όλες τις μνήμες του συστήματος, όμως ο χρόνος προσπέλασης διαϕέρει κυρίως λόγω του ότι υπάρχουν μνήμες που η πρόσβαση σε αυτές γίνεται διαμέσου ενός interconnection bus ενώ σε κάποιες άλλες μνήμες η προσπέλαση από τον επεξεργαστή γίνεται απευθείας. Εκτός από τις αρχιτεκτονικές κοινής και κατανεμημένης μνήμης, υπάρχουν και τα υβριδικά μοντέλα κατανεμημένης κοινής μνήμης, όπως ϕαίνονται και στο σχήμα Σε αυτό το σχήμα ϕαίνονται και οι τρεις κατηγορίες διαχωρισμού με βάση τη μνήμη, οι αρχιτεκτονικές κοινής μνήμης, κατανεμημένης μνήμης και κατανεμημένης κοινής μνήμης. Αυτά τα μοντέλα δημιουργούνται συνδέοντας μέσω δικτύου πολλές μηχανές γραϕικών ή πολλούς πολυ-επεξεργαστές. Έτσι, η μεταϕορά δεδομένων μεταξύ των επεξεργαστών ή των gpu γίνεται μέσω του δικτύου. Σε αυτήν την κατηγορία ανήκουν και οι μηχανές επεξεργασίας γραϕικών και ακόμα πιο συγκεκριμένα οι μηχανές που χρησιμοποιήθηκαν σε αυτήν την εργασία Μέτρα απόδοσης Για να μετρηθεί κατά πόσο αυξάνεται η ταχύτητα εκτέλεσης ενός αλγορίθμου χρησιμοποιώντας παράλληλους επεξεργαστές, χρησιμοποιείται η έννοια του Speedup, ο τύπος της οποίας δίνεται από την εξίσωση 2.8 S p = T 1 T p (2.8) όπου p είναι ο αριθμός των επεξεργαστών, Τ 1 είναι ο χρόνος εκτέλεσης του σειριακού αλγορίθμου και T p είναι ο χρόνος εκτέλεσης του παράλληλου αλγορίθμου χρησιμοποιώντας p επεξεργαστές. Επιλέον, μπορεί να χρησιμοποιηθεί η έννοια της απόδοσης όπου είναι ένα μέτρο 30

42 Σχήμα 2.17: CPU vs GPU της επίδοσης και δίνεται από τον τύπο 2.9. E p = S p p = T 1 pt p. (2.9) Το Speedup δίνεται από το λόγος απόδοσης για το συνολικό έργο χρησιμοποιώντας multiprocessors προς την απόδοση για το συνολικό έργο χρησιμοποιώντας σειριακούς επεξεργαστές. Σύμϕωνα και με τον νόμο του Amdahl, η βελτίωση της απόδοσης που κερδίζεται χρησιμοποιώντας μία τεχνική επιτάχυνσης, όπως για παράδειγμα οι multiprocessors, περιορίζεται από το ποσοστό χρήσης της τεχνικής αυτής. Δηλαδή για να έχει ένας αλγόριθμος όσο το δυνατόν μεγαλύτερη απόδοση με τη χρήση τεχνικών επιτάχυνσης, πρέπει οι τεχνικές αυτές να μπορούν να εϕαρμοστούν εκτεταμένα σε ένα πρόγραμμα Κάρτες Γραϕικών CUDA Από το 2003 και μετά, εμϕανίστηκαν οι μονάδες επεξεργασίας γραϕικών, GPUs (Graphics Processing Units), οι οποίες ήταν υπεύθυνες για την μεγάλη άνοδο σε απόδοση των πράξεων κινητής υποδιαστολής. Ενώ η απόδοση των επεξεργαστών γενικού σκοπού είχε μείνει σχετικά στάσιμη, η απόδοση των GPUs αυξανόταν με πολύ μεγάλο ρυθμό ϕτάνοντας το 2008 σε έναν λόγο απόδοσης των GPU σε σχέση με τις multi-core CPUs ίσο με 10. Αυτό ϕαίνεται και στο σχήμα

43 Σχήμα 2.18: CPU και GPU Αυτή η μεγάλη διαϕορά στην απόδοση μεταξύ των CPU και των GPU βασίζεται γενικώς σε κατασκευαστικούς παράγοντες, όπως ϕαίνεται και στο σχήμα Οι CPU είναι σχεδιασμένες για να εκτελούν σειριακό κώδικα και με βάση αυτό έχουν αναπτύξει διάϕορες τεχνικές βελτιστοποίησης της απόδοσης, όπως για παράδειγμα τη δυνατότητα να μπορούν να εκτελούν τις εντολές με διαϕορετική σειρά. Αυτό γίνεται για να αποϕευχθούν καθυστερήσεις που οϕείλονται στην αναμονή δεδομένων από τη μνήμη. Μέρος της μονάδας ελέγχου του επεξεργαστή ϕροντίζει ώστε να διατηρηθεί η σωστή σειρά εκτέλεσης των εντολών. Επιπλέον, χρησιμοποιώντας τεχνικές pipelining μπορούν να τρέχουν ταυτόχρονα παραπάνω από μία εντολές και έτσι αυξάνεται η απόδοση. Ένας ακόμη σημαντικός παράγοντας όπου παίζει ρόλο στην αυξημένη απόδοση των GPU σε σχέση με τις CPU είναι το εύρος ζώνης της μνήμης (memory bandwidth). Λόγω της κατασκευής και του τρόπου λειτουργίας των CPU, δεν δίνεται μεγάλη δυνατότητα στην αύξηση του εύρους ζώνης μνήμης. Επιπλέον, οι απαιτήσεις των παιχνιδιών τελευταίας τεχνολογίας, τα οποία χρειάζονται ένα μεγάλο αριθμό υπολογισμών κινητής υποδιαστολής για κάθε εικόνα, έχουν αναγκάσει τους κατασκευαστές των GPUs να βρουν τρόπους έτσι ώστε να αυξάνουν τον αριθμό των πράξεων κινητής υποδιαστολής που μπορούν να εκτελεστούν σε ένα ορισμένο χρονικό διάστημα. Από τα παραπάνω ϕαίνεται ότι η χρήση καρτών γραϕικών για υπολογισμούς είναι πιο αποδοτική σε αρκετές περιπτώσεις, όχι πάντα όμως. Γενικά, είναι πιο αποδοτικές όταν έχουμε μεγάλο αριθμό υπολογισμών. Στις περισσότερες περιτπώσεις χρησιμοποιούνται και οι δύο μονάδες επεξεργασίας ενός συστήματος, δηλαδή και η CPU αλλά και η GPU. Τα κομμάτια του κώδικα που μπορούν να εκτελεστούν παράλληλα εκτελλούνται στην GPU, ενώ τα κομμάτια που πρέπει να εκτελεστούν σειριακά στέλνονται στην CPU. Το προγραμματιστικό μοντέλο CUDA, το οποίο χρησιμοποιήθηκε και στην παρούσα εργασία, έχει σχεδιαστεί για το σκοπό αυτό, δηλαδή για να 32

44 Σχήμα 2.19: Speedup εϕαρμογών με τη χρήση GPU υποστηρίζει εκτέλεση κώδικα από κοινού στην GPU και στην CPU. 2.4 Σχετικές αναϕορές Στο σχήμα 2.19 παρουσιάζονται διάϕορες μελέτες που έχουν γίνει και η απόδοσή τους όταν γίνεται η χρήση GPU. Το σχήμα αυτό είναι από τον Wen Mei Hwu [Hwu09]. Τα αποτελέσματα αυτά είναι με τη χρήση GeForce 8800 GTX για την περίπτωση της GPU ενώ για την περίπτωση της CPU έγιναν με έναν επεξεργαστή Opteron 248, στα 2.2GHz. Από το σχήμα μπορεί να παρατηρηθεί ότι πετυχαίνεται τουλάχιστον ένα 10x speedup, και στην περίπτωση που υπάρχει δυνατότητα παραλληλισμού και ένας πυρήνας μπορεί να χρησιμοποιεί πολλά threads παράλληλα, πετυχαίνεται speedup από 25x ως και 400x, όπως στην περίπτωση του MRI scan. 33

45 Κεϕάλαιο 3 Υλοποίηση και εργαλεία 3.1 Λογική σχεδίασης των Rijndael και AES Για την σχεδίαση των αλγορίθμων Rijndael και AES, δώθηκε έμϕαση σε τρία κριτήρια τα οποία είχαν να κάνουν με την επίθεση που θα μπορούσε να δεχτεί ένα σύστημα σε σχέση με όλα τα γνωστά είδη επιθέσεων, την ταχύτητα και το πόσο συμπαγής θα ήταν ο κώδικας σε πολλές και διαϕορετικές πλατϕόρμες και τέλος είχαν να κάνουν με την απλότητα του σχεδιασμού. Στα περισσότερα συστήματα κρυπτογραϕίας, ο round μετασχηματισμός, έχει τη δομή Feistel. Σε αυτή τη δομή, συνήθως, κομμάτι των δεδομένων μίας ενδιάμεσης κατάστασης, απλώς μεταϕέρονται σε κάποια άλλη θέση χωρίς να γίνει κάποιος μετασχηματισμός ή κάποια αλλαγή πάνω τους. Μία τέτοια υλοποίηση ϕαίνεται στο σχήμα 3.1. Αυτή η δομή είναι συμμετρική και χρησιμοποιείται από πολλούς αλγορίθμους κρυπτογραϕίας, μεταξύ των οποίων και ο DES, ο οποίος ήταν και ο αλγόριθμος που αντικατέστησε ο AES. Η δομή αυτή έχει το πλεονέκτημα ότι η κρυπτογράϕηση και η αποκρυπτογράϕηση είναι παρόμοιες, ενώ σε κάποιες περιπτώσεις είναι τελείως όμοιες, με τη μόνη διαϕορά να χρειάζονται μία αντιστροϕή του key schedule. Έτσι, το μέγεθος του κώδικα ή το μέγεθος του κυκλώματος αν πρόκειται για υλοποίηση σε υλικό είναι περίπου το μισό. Ωστόσο, ο round μετασχηματισμός του Rijndael δεν έχει τη δομή του Feistel, αλλά αποτελείται από τρεις διαϕορετικούς και αναστρέψιμους μετασχηματισμούς οι οποόιοι ονομάζονται layers. Κάθε ξεχωριστό bit της κατάστασης (State), υπόκεινται κάτω από παρόμοιους μετασχηματισμούς. Οποιοιδήποτε διαϕορετικοί μετασχηματισμοί μπορεί να γίνονται σε κάποια bit, έχουν γίνει με βάση το κριτήριο της μεθόδου Wide Trail Strategy [DAE95], μία μέθοδος η οποία έχει σχεδιαστεί για να παρέχει ασϕάλεια ενάντια σε επιθέσεις που γίνονται από γραμμική και διαϕορική κρυπτανάλυση. Σύμϕωνα με αυτή τη μέθοδο, κάθε επίπεδο μετασχηματισμού έχει τη δική του συνάρτηση. Tο επίπεδο της γραμμικής εναλλαγής δίνει εγγυημένα διασπορά αν χρησιμοποιηθεί για πολλά round. Στο μή γραμμικό επίπεδο χρησιμοποιείται πα- 34

46 Σχήμα 3.1: Feistel Structure 35

47 ράληλη εϕαρμογή των S-boxes. Τέλος, στο επίπεδο της προσθήκης του κλειδιού, μία απλή EXOR εϕαρμόζεται στο round key. Όπως ειπώθηκε και στο κεϕάλαιο , όπου έγινε η περιγραϕή του AES, πριν από την πρώτη επανάληψη των μετασχηματισμών, εϕαρμόζεται ο μετασχηματισμός key addition. Αυτό έγινε γιατί στις περιπτώσεις επιθέσεων όπου είναι γνωστό το απλό κείμενο, το κομμάτι του μηνύματος πριν το πρώτο key addition ή μετά το τελευταίο, θα μπορούσε κάποιος να υποκλέψει τα δεδομένα χωρίς να έχει γνώση του κλειδιού. Έτσι η απόϕαση αυτή, συνεισϕέρει στην μεγαλύτερη ασϕάλεια του συστήματος. Για να γίνει το κρυπτοκείμενο και το απλό του κείμενο πιο απλά στην δομή, o linear mixing μετασχηματισμός υλοποιείται λίγο διαϕορετικά για τις άλλες επαναλήψεις. Εχει αποδειχτεί ότι οι παραπάνω παρεμβάσεις στην υλοποίηση του αλγορίθμου δεν βελτιώνουν, αλλά και ούτε εξασθενιζουν την ασϕάλεια του συστήματος. 3.2 Πλεονεκτήματα και μειονεκτήματα των Rijndael και AES Στις παρακάτω ενότητες παρουσιάζονται τα μειονεκτήματα και τα πλεονέκτηματα του Rijndael, και κατ επέκταση και του ΑΕS όπως αυτά περιγράϕονται από τους ίδιους τους σχεδιαστές του Rijndael [DR03] Πλεονεκτήματα Οι αλγόριθμοι που μελετάμε στην παρούσα διπλωματική έχουν σχεδιαστεί για να μπορούν να εκτελεστούν σε διάϕορες πλατϕόρμες και έχουν πληθώρα πλεονεκτημάτων σε σχέση με τα μειονεκτήματά τους. Όσον αϕορά στα πλεονεκτήματα, αυτά μπορούν να χωριστούν σε τέσσερις μεγαλύτερες κατηγορίες, της υλοποίησης του αλγορίθμου, της απλότητας του σχεδιασμού, του μεταβλητού μεγέθους του block και τέλος των επεκτάσεων που μπορούν να υλοποιηθούν. Αν ξεκινήσουμε με τα πλεονεκτήματα που αϕορούν στην υλοποίηση, θα μπορούσαμε να πούμε ότι οι αλγόριθμοι αυτοί έχουν σχεδιαστεί και μπορούν να εκτελεστούν ακόμα και σε πιο παλιά μηχανήματα όπως ένας Pentium Pro, χωρίς βέβαια να παραλείπουμε ότι όσο πιο μεγάλο είναι το μέγεθος του block, τόσο πιο αργός γίνεται ο αλγόριθμος γιατί όσο μεγαλώνει το μέγεθος του block, τόσο αυξάνονται οι απαιτήσεις για υπολογιστική ισχύ και μνήμη. Επιπλέον, ένας τέτοιος αλγόριθμος μπορεί να υλοποιηθεί σε μία Smart Card με πολύ μικρό μέγεθος κώδικα και οι απαιτήσεις του σε μνήμη είναι πολύ μικρές, χρησιμοποιώντας μόνο ένα μικρό ποσοστό των κύκλων ρολογιού για ανάγνωση και εγγραϕή στη μνήμη. Υπάρχουν βέβαια κάποια δεδομένα, όπως οι πινακες που χρησιμοποιεί ο αλγόριθμος που πρέπει να αποθηκευτούν στην ROM και αυτό αποτελεί ένα στοιχείο μείωσης της απόδοσης σε σύγκριση με την περίπτωση που δεν θα χρειαζόταν καθόλου η ROM. 36

48 Ο round μετασχηματισμός, είναι από το σχεδιασμό του παράλληλος και έτσι μπορεί με την κατάλληλη υλοποίηση του αλγορίθμου να επιτευχθεί μέγιστος παραλληλισμός εντολών στο συγκεκριμένο κομμάτι. Αυτό ήταν και ένα στοιχείο που χρησιμοποιήσαμε στην παρούσα διπλωματική γιατί χρειαζόμασταν έναν αλγόριθμο που έχει αρκετές δυνατότητες παραλληλισμού ώστε να μπορέσουμε να τον υλοποιήσουμε και σε CUDA και να συγκρίνουμε τελικά τα αποτελέσματα των δύο. Τέλος, επειδη για την παραγωγή του κρυπτοκειμένου δεν χρησιμοποιούνται αριθμητικές πράξεις, δεν υπάρχει διάκριση στο αν θα χρησιμοποιηθεί big-endian ή little-endian επεξεργαστής. Αν προχωρούσαμε στην απλότητα σχεδιασμου, μπορούμε να πούμε ότι το κρυπτοκείμενο μπορεί να είναι αυτόνομο όσον αϕορά το σχεδιασμό του γιατί δεν χρησιμοποιεί κάποιο άλλο κρυπτογραϕικό σύστημα, δεν χρησιμοποιεί S-boxes τα οποία έχει δανειστεί από άλλους αλγορίθμους, που για παράδειγμα είναι κοινώς αποδεκτοί, ούτε χρησιμοποιεί κάποια bits από Rand tables, ούτε ψηϕία του αριθμού π, ούτε τίποτε άλλο που δεν μπορεί να παράγει ο ίδιος ο αλγόριθμος. Ένα άλλο στοιχείο της απλότητας του αλγορίθμου, είναι ότι δεν χρησιμοποιεί κάποια κομμάτια που δεν είναι σαϕώς ορισμένα ή κατανοητά μεταξύ των αριθμητικών πράξεων για να διασϕαλίσει έτσι την ασϕάλεια του συστήματος. Τελικά ο αλγόριθμος είναι απλός στην υλοποίησή του και κατανοητός και δεν αϕήνει περιθώρια αμϕισβήτησης για το πως μπορεί να υλοποιηθεί ένα κομμάτι του. Όσον αϕορά στο μεταβλητό μέγεθος του block, τα μεγέθη block των 192 και 256 bits μπορούν να εγγυηθούν τη δημιουργία μίας επαναληπτικής hash συνάρτησης χρησιμοποιώντας τον Rijndael ώς μία compression συνάρτηση, τα αποτελέσματα της οποίας δεν θα έχουν συγκρούσεις. Τέλος, όσον αϕορά στις επεκτάσεις του αλγορίθμου, ο σχεδιασμός επιτρέπει την υλοποίηση του αλγορίθμου με μέγεθος block και κλειδιού από 128 ως 256 bits με βήμα 32 bits. Επιπλέον, παρόλο που ο αλγόριθμος έχει σταθερό αριθμό επαναλήψεων, αυτό μπορεί να αποτελέσει και μία μεταβλητή του αλγορίθμου στην περίπτωση που υπάρχουν θέματα ασϕάλειας Μειονεκτήματα Αν μιλούσαμε για τα μειονεκτήματα των αλγορίθμων θα έπρεπε αρχικά να εστιάσουμε την προσοχή μας στην αποκρυπτογράϕηση και σε ότι έχει να κάνει με το inverse cipher. Για την υλοποίηση του inverse cipher, της αποκρυπτογράϕησης, σε μία smart card, χρειάζονται παραπάνω κύκλοι ρολογιού σε σχέση με την κρυπτογράϕηση, οπότε είναι λιγότερο εύκολο να υλοποιηθεί σε σχέση με την κρυπτογράϕηση. Αν όμως συγκριθεί με άλλους αλγορίθμους, ακόμα και η αντίστροϕη διαδικασία, αυτή της αποκρυπτογράϕησης, είναι πολύ πιο γρήγορη. Ένα ακόμα μειονέκτημα αϕορά στην υλοποίηση και αυτό έχει να κάνει με το ότι η διαδικασία κρυπτογράϕησης και αποκρυπτογράϕησης χρησιμοποιούν διαϕορετικά κομμάτια κώδικα ή και πινάκων, αν πρόκειται για υλοποίηση σε software, ενώ για την υλο- 37

49 ποίηση σε hardware για το inverse cipher μπορούν να χρησιμοποιηθούν πολύ λίγα κομμάτια σε σχέση με το κύκλωμα που υλοποιεί την κρυπτογράϕηση Στόχοι ασϕάλειας Ένας αλγόριθμος μπορεί να κριθεί για την ασϕάλειά του σύμϕωνα πάντα και με ορισμένα κριτήρια. Συγκεκριμένα για τον Rijndael αλγόριθμο έχουν μπει τα κριτήτρια K-Security και Hermetic block ciphers. Ένα block cipher μπορεί να χαρακτηριστεί K-secure αν όλες οι πιθανές στρατηγικές επίθεσης για αυτό χρειάζονται τον ίδιο ϕόρτο εργασίας πάντα ανάλογά και με το μέγεθός του block, όπως και τις ίδιες ανάγκες για αποθήκευση όπως για την πλειοψηϕία των block κρυπτογράϕησης του ίδιου μεγέθους. Αυτό πρέπει να συμβαίνει για όλα τα πιθανά σενάρια επίθεσης, όπως αυτά περιγράϕονται και στην παράγραϕο 2.2.7, αλλά και για οποιοδήποτε διανομή του κλειδιού εκ των προτέρων. Σύμϕωνα και με τα παραπάνω, είναι πολύ σημαντικό να είναι ένας αλγόριθμος K-secure, γιατί μπορεί να χαρακτηριστεί ότι παρέχει τα σημαντικά επίπεδα ασϕάλειας. Ο αλγόριθμος δεν μπορεί να χαρακτηριστεί K-secure, αν ισχύει ένα από τα παρακάτω: Η ύπαρξη τρόπου ανάκτησης κλειδιού γρηγορότερα από την τεχνική της εξαντλητικής αναζήτησης Η ύπαρξη συγκεκριμένων συμμετρικών ιδιοτήτων, όπως εκείνη της συμπληρωματικότητας Η ύπαρξη μίας σειράς αδύναμων κλειδιών, όπως στην περίπτωση του IDEA Επιθέσεις που αϕορούν στο κλειδί Όπως ϕαίνεται από τα παραπάνω, η έννοια του κριτηρίου του K-security είναι σχετική. Αυτό συμβαίνει γιατί για παράδειγμα, μπορεί να σχεδιαστεί ένας αλγόριθμος που θα έχει όλα τα παραπάνω κριτήρια και θα έχει μέγεθος block και κλειδιού ίσο με 5 bit. Ένας τέτοιος αλγόριθμος, μπορεί να είναι K-secure, όμως λόγω του πολύ μικρού μεγέθους θα έχει θέματα ασϕάλειας. Δηλαδή ενώ μπορεί να έχει όλες τις απαραίτητες προδιαγραϕές για να είναι K-secure, λόγω μεγέθους θα σπάει εύκολα. Συμπερασματικά, όσο μεγαλύτερο είναι το κλειδί, τόσο μεγαλύτερη ασϕάλεια παρέχει ο αλγόριθμος αλλά και οι προδιαγραϕές ασϕάλειας αυξάνονται. Τελικά, είναι πολύ πιθανό να υπάρχουν αλγόριθμοι που είναι K-secure αλλά έχουν κάποιες αδυναμίες όσον αϕορά στην ασϕάλεια και ένα τέτοιο παράδειγμα μπορεί να είναι ένας αλγόριθμος που έχει μέγεθος block μεγαλύτερο από το μέγεθος του κλειδιού και ένα αδύναμο κλειδί, για το οποίο υπάρχει γραμμική σχέση μεταξύ κλειδιού και κρυπτοκειμένου. Μόνο μερικές κρυπτογρϕήσεις αρκούν για να βρεθεί ότι χρησιμοποιείται αυτό το κλειδί, ενώ ο έλεγχος για το αν χρησιμοποιείται αυτό το κλειδί μπορεί να γίνει μόνο μέ μία κρυπτογράϕηση. 38

50 Σχήμα 3.2: Κρυπτογράϕηση με την υλοποίηση του Electronic Code Book Για τους παραπάνω λόγους, χρησιμοποιείται και η ένοια του hermetic block cipher, όπου χαρακτηρίζει ένα block cipher ως hermetic αν δεν έχει καμία αδυναμία που εμϕανίζεται για την πλειοψηϕία των block cipher με το ίδιο μέγεθος block kαι κλειδιού. Επιπλέον, ένα block cipher είναι hermetic αν η εσωτερική τού δομή δεν μπορεί να εκμεταλευτεί από καμία εϕαρμογή. Συγκεκριμένα για τον Rijndael και κατ επέκταση για τον AES μπορούμε να πούμε ότι ικανοποιεί τα δύο παραπάω κριτήρια και ότι χαρακτηρίζεται ασϕαλής απέναντι σε όλες τις γνωστές αλλά και άγνωστες επιθέσεις, πάντα ανάλογα με το μέγεθος του block [DR03]. 3.3 Διαϕορετικοί τρόποι υλοποίησης Όσον αϕορά στην υλοποίηση ενός αλγορίθμου, υπάρχει μία πληθώρα τρόπων υλοποίησης, με τους πιο γνωστούς να παρουσιάζονται σε αυτήν την παράγραϕο και στις υποενότητές της Electronic Code Book Ο πιο απλός τρόπος ύλοποίησης ενός αλγορίθμου κρυπτογραϕίας είναι ο Electronic Codebook ή αλλιώς ECB. Το μήνυμα προς κρυπτρογράϕηση χωρίζεται σε block και κάθε block κρυπτογρϕείται ξεχωριστά, όπως ϕαίνεται και στα σχήματα 3.2 και 3.3 για τη διαδικασία κρυπτογράϕησης και αποκρυπτογράϕησης αντίστοιχα. Το μειονέκτημα αυτής της μεθόδου είναι ότι πανομοιότυπα απλά κείμενα όταν κρυπτογραϕηθούν θα έχουν το ίδιο κρυπτοκείμενο και με αυτόν τον τρόπο μπορούμε να συμπεράνουμε ότι αν υπάρχουν κάποια πρότυπα κειμένου δεν μπορούν να αποκρυϕτούν. Γενικά, δεν συνίσταται η χρήση του γιατί μπορεί να αποτύχει κάποιες ϕορές όσον αϕορά στην εμπιστευτικότητα. 39

51 Σχήμα 3.3: Αποκρυπτογράϕηση με την υλοποίηση του Electronic Code Book Απ την άλλη μεριά, ένα από τα μεγαλύτερα πλεονεκτήματα αυτής της υλοποίησης είναι ότι δίνει δυνατότητα παραλληλισμού και στην κρυπτογράϕηση αλλά και στην αποκρυπτογράϕηση Cipher Block Chaining Αυτός ο τρόπος υλοποίησης εϕευρέθηκε από την IBM το 1976 [EMST78]. Σε αυτόν τον τρόπο υλοποίησης, σε κάθε block του απλού κειμένου εϕαρμόζεται μία απλή πράξη XOR με το προηγούμενο block, πριν ξεκινήσει η διαδικασία κρυπτογράϕησης και αυτό ϕαίνεται στα σχήματα 3.4 και 3.5 για την κρυπτογράϕηση και την αποκρυπτογράϕηση αντίστοιχα. Με αυτόν τον τρόπο, κάθε block εξαρτάται από ότα τα προηγούμενα block που έχουν επεξεργαστεί μέχρι αυτό το σημείο. Για να γίνει και κάθε μήνυμα μοναδικό, ένα διάνυσμα αρχικοποίησης πρέπει να χρησιμοποιηθεί για το πρώτο block. Με αυτόν τον τρόπο υλοποίησης μπορεί να επιτευχθεί παραλληλισμός μόνο στην περίπτωση της αποκρυτπογράϕησης και αυτό μπορεί να ϕανεί εύκολα και από τα σχήματα 3.4 και 3.5. Ο CBC τρόπος υλοποίησης είναι ο πιο συχνά χρησιμοποιούμενος τρόπος. Το κύριο μειονέκτημα του όμως είναι ότι η κρυπτογράϕηση γίνεται σειριακά, δηλαδή δεν υπάρχει δυνατότητα παραλληλισμού. Επιπλέον μειονέκτημα είναι ότι το μήνυμα πρέπει πάντα να είναι πολλαπλάσιο του μεγέθους του block Propagating Cipher-Block Chaining Ο τρόπος υλοποίησης PCBC, η αλλιώς Propagating Cipher-Block Chaining, ή αλλιώς Plaintext Cipher-Block Chaining, σχεδιάστηκε για να δημιουργεί μικρές αλλαγές στο κρυπτοκείμενο κατά την κρυπτογράϕηση οι οποίες θα μεταδίδονται και σε όλο το κείμενο ή μήνυμα και αντίστοιχα το ίδιο θα γίνεται στην αποκρυπτογράϕηση. 40

52 Σχήμα 3.4: Κρυπτογράϕηση με την υλοποίηση του Cipher Block Chaining Σχήμα 3.5: Αποκρυπτογράϕηση με την υλοποίηση του Cipher Block Chaining 41

53 Σχήμα 3.6: Κρυπτογράϕηση με την υλοποίηση του Propagating Cipher-Block Chaining Στα σχήματα 3.6 και 3.7 ϕαίνεται η κρυπτογράϕηση και η αποκρυπτογράϕηση αντίστοιχα. Αυτός ο τρόπος υλοποίησης χρησιμοποιείται στα πρωτόκολα Kerberos v4 και WASTE, αλλά γενικώς δεν είναι και πολύ γνωστός. Σε ένα μήνυμα που είναι κρυπτογραϕημένο με τον PCBC τρόπο, εάν δύο γειτονικά block του μηνύματος εναλλαχθούν, αυτο δεν επηρεάζει την αποκρυτπογράϕηση των ακόλουθων block. Για το λόγο αυτό, ο τρόπος αυτός δεν χρησιμοποιήθηκε στο πρωτόκολλο Kerberos v5. Τέλος, ούτε και με αυτόν τον τρόπο υλοποίησης μπορεί να επιτευχθεί παραλληλισμός Cipher Feedback Ο Cipher Feedback τρόπος υλοποίησης είναι παρόμοιος με τον CBC που περιγράϕεται στην ενότητα Συγκεκριμένα, η αποκρυπτογράϕηση με τον CFB τρόπο είναι σχεδόν πανομοιότυπη με την κρυπτογράϕηση με τον CBC τρόπο, η οποία εϕαρμόζεται αντίστροϕα. Η κρυπτογράϕηση και η αποκρυπτογράϕηση με τον CFB τρόπο ϕαίνονται στα σχήματα 3.8 και 3.9 αντίστοιχα, και μπορούν να συγκριθούν με τα σχήματα 3.5 και 3.4 αντίστοιχα. Όπως και στον CBC τρόπο υλοποίησης, οποιαδήποτε αλλαγή στο απλό κείμενο μεταϕέρεται σε όλο το κρυπτοκείμενο και έτσι η κρυπτογράϕηση δεν μπορεί να γίνει παράλληλα για κάθε block ξεχωριστά. Επίσης, όπως ακριβώς και στον CBC, η αποκρυπτογράϕηση μπορεί να γίνει παράλληλα γιατί στην αποκρυπτογράϕηση μία αλλαγή σε ένα bit του κρυπτοκειμένου θα επηρεάσει δύο block του απλού κειμένου, ένα bit μόνο στο αντίστοιχο block του απλού κειμένου και όλων των bit του επόμενου block του απλού κειμένου. Τα επόμενα block μετά των δύο, θα αποκρυπτογραϕηθούν κανονικά. Ο CFB τρόπος υλοποίησης έχει δύο πλεονεκτήματα σε σχέση με τον CBC. Το 42

54 Σχήμα 3.7: Αποκρυπτογράϕηση με την υλοποίηση του Propagatin Cipher-Block Chaining Σχήμα 3.8: Κρυπτογράϕηση με την υλοποίηση του Cipher Feedback 43

55 Σχήμα 3.9: Αποκρυπτογράϕηση με την υλοποίηση του Cipher Feedback block cipher χρησιμοποιείται μόνο κατά τη διαδικασία της κρυπτογράϕησης και το μήνυμα δε χρειάζεται να είναι ή να γίνει πολλαπλάσιο του μεγέθους του block Output Feedback Ο OFB τρόπος υλοποίησης, ή αλλιώς Output Feedback, δημιουργεί block κλειδιών (keystream blocks) που σε αυτά εϕαρμόζεται μία απλή XOR πράξη με το απλό κείμενο ώστε να δημιουργηθεί το κρυπτοκείμενο. Όπως και σε άλλα stream cipher αντιστροϕή ενός bit στο cipher κείμενο, δημιουργεί αντιστροϕή και στο απλό κείμενο στο αντίστοιχο bit. Αυτή η ιδιότητα επιτρέπει τη χρήση με επιτυχία πολλών τρόπων διόρθωσης σϕαλμάτων ακόμα και όταν γίνονται πριν την κρυπτογράϕηση. Εξαιτίας της συμμετρικότητας της πράξης XOR, η κρυπτρογράϕηση και η αποκρυτπογράϕηση γίνονται με τον ίδιο ακριβώς τρόπο και αυτό ϕαίνεται στα σχήματα 3.10 και Eπειδή κάθε block εξόδου εξαρτάται από όλα τα προηγούμενα block, δεν μπορούν να γίνουν οι πράξεις παράλληλα. Ωστόσο, επειδή το απλό κείμενο και το κρυπτοκείμενο στην διαδικασία της κρυπτογράϕησης και αποκρυπτογράϕησης αντίστοιχα χρησιμοποιούνται μόνο στην τελευταία XOR πράξη, μπορούν να γίνουν οι λειτουργίες που αϕορούν στο block cipher εκ των προτέρων, ώστε το τελευταίο βήμα της πράξης XOR να γίνει παράλληλα, εϕόσον ϕυσικά είναι και το απλό κείμενο και το κρυπτοκείμενο διαθέσιμα Counter Ο CTR τρόπος υλοποίησης, ή αλλιώς CM, ή αλλιώς Integer Counter Mode ή ICM, ή αλλιώς Segmented Integer Counter Mode ή SIC, μετατρέπει ένα block cipher σε ένα stream cipher όπως παρόμοια γίνεται και στον ΟFB τρόπο. Ένας μετρητής 44

56 Σχήμα 3.10: Κρυπτογράϕηση με την υλοποίηση του Output Feedback Σχήμα 3.11: Αποκρυπτογράϕηση με την υλοποίηση του Output Feedback 45

57 Σχήμα 3.12: Κρυπτογράϕηση με την υλοποίηση του Counter Σχήμα 3.13: Αποκρυπτογράϕηση με την υλοποίηση του Counter (counter) μπορεί να είναι οποιαδήποτε συνάρτηση που δημιουργεί ακολουθίες που είναι εγγυημένο ότι δεν θα επαναλαμβάνονται για μεγάλο χρονικό διάστημα, αν και ένας απλός μετρητής που αυξάνεται κατά ένα είναι το πιο συνιθησμένο και το πιο απλό παράδειγμα, αλλά και το πιο αμϕιλεγόμενο διότι η χρήση μίας γνωστής εισόδου αντιπροσωπεύει ρίσκο το οποίο γίνεται και χωρίς ιδιαίτερο λόγο πέραν της απλότητας και της ευκολίας. Ο CTR τρόπος, παρέα με τον CBC, είναι οι δύο τρόποι υλοποίησης που προτείνονται και από τους Niels Ferguson και Bruce Schneier [FSK11]. Ο CTR έχει παρόμοια χαρακτηριστικά με το OFB, όμως ο CTR έχει το πλεονέκτημα ότι έχει δυνατότητες παραλληλισμού και άρα μπορεί να εκτελεστεί σε μηχάνημα με multiprocessors όπου τα block μπορούν να κρυπτογραϕηθούν παράλληλα. Η κρυπτογράϕηση και η αποκρυπτογράϕηση ϕαίνονται στα σχήματα 3.12 και 3.13 αντίστοιχα. 46

58 Σχήμα 3.14: Η αρχική εικόνα, ο tux Σχήμα 3.15: Ο tux κρυπτογραϕημένος με ECB τρόπο Επιλογή του τρόπου υλοποίησης Στην παρούσα διπλωματική εργασία χρησιμοποιήθηκε ο ECB, ή αλλιώς Electronic Code Book τρόπος υλοποίησης γιατί ήταν ο μόνος που μπορούσε να παρέχει μεγαλύτερα επίπεδα παραλληλισμού και επιπλέον ήταν ο πιο απλός στην υλοποίηση. Στόχος της παρούσας διπλωματικής ήταν να εξεταστεί κατά πόσον είναι πιο γρήγορος ο αλγόριθμος αν τρέχει παράλληλα και σε μία κάρτα γραϕικών και όχι να μελετηθεί σε σχέση με την ασϕάλεια που μπορεί να παρέχει. Επιπλέον, για τον ECB ήταν ευκολότερο να διαπιστωθεί η ορθή του λειτουργία καθώς υπήρχαν παραπάνω test vectors διαθέσιμα, με αποτελέσματα και ανά round αλλά και στις επιμέρους πράξεις του κάθε round όπως ϕαίνεται και στο κείμενο των προδιαγραϕών του ίδιου του AES [DR01]. Σαν παράδειγμα του κατά πόσο ο ECB τρόπος υλοποίησης μπορεί να αϕήσει μοτίβα του ίδιου του απλού κειμένου στο κρυπτοκείμενο μπορεί να ϕανεί με την κρυπτογράϕηση μίας bitmap εικόνας. Στα σχήματα 3.14, 3.15 και 3.16 ϕαίνονται μία μη κρυπτογραϕημένη εικόνα, η ίδια εικόνα κρυπτογραϕημένη χρησιμοποιώντας τον ECB τρόπο υλοποίησης και τέλος η πρώτη εικόνα κρυπτογραϕημένη με οποιονδήποτε άλλο τρόπο εκτός του ECB αντίστοιχα. 47

59 Σχήμα 3.16: Ο tux κρυπτογραϕημένος με πιο ασϕαλή τρόπο 3.4 Εργαλεία Για την πραγματοποίηση της παρούσας διπλωματικής, χρησιμοποιήθηκε ένας υπολογιστής με χαρακτηριστικά επεξεργαστή Intel Core i7, στα 3.2GHz, με 6GB RAM και με 8 πυρήνες για την εκτέλεση του αλγορίθμου στην περίπτωση που ο κώδικας ήταν εξ ολοκλήρου γραμμένος σε C. Για την περίπτωση όπου κομμάτια του αλγορίθμου μπορούσαν να τρέξουν παράλληλα σε μία κάρτα γραϕικών με τη χρήση της CUDA, χρησιμοποιήθηκε μία κάρτα γραϕικών NVidia GeForce GTX 285, με 240 πυρήνες στα 648MHz o καθένας, 1GB μνήμη με 159GB/sec memory bandwidth. Επιπλέον, χρησιμοποιήθηκε ο GCC, Gnu C Compiler, και ο ncvv, NVIDIA s CUDA compiler για να παραχθεί το εκτελέσιμο του κώδικα. Επίσης, χρησιμοποιήθηκε η βιβλιοθήκη PAPI, performance application programming interface για τον υπολογισμό των level1 cache misses και αυτό για να εκτιμηθεί κατά πόσο επηρεάζει η χρήση ενός, δύο ή τεσσάρων διαϕορετικών απλών κειμένων. Η βιβλιοθήκη PAPI είναι μία βιβλιοθήκη που επιτρέπει την πρόσβαση σε performance counters του συστήματος και με τον τρόπο αυτό μπορούν να μετρηθούν οι κύκλοι ρολογιού που χρειάστηκε η εκτέλεση ενός προγράμματος, οι level1 cache misses καθώς και μία ποικιλία άλλων παραμέτρων πάντα ανάλογα με το σύστημα. Τέλος, χρησιμοποιήθηκε η eclipse πλατϕόρμα για την παραγωγή του κώδικα καθώς και ορισμένες προσθήκες σε αυτήν για να μπορεί να χρησιμοποιηθεί ο gcc αλλά και ο nvcc compiler ανάλογα με την περίπτωση. Για την εκτέλεση των πειραμάτων και την εξαγωγή των μετρήσεων χρησιμοποιήθηκαν bash scripts που έδιναν την δυνατότητα της αυτοματοποίησης και της εκτέλεσης πολλών πειραμάτων χωρίς να χρειάζεται επέμβαση από τον ίδιο τον προγραμματιστή για κάθε διαϕορετική περίπτωση με διαϕορετικές ρυθμίσεις. Στο κεϕάλαιο 4 παρουσιάζονται οι μετρήσεις και τα αποτελέσματα που πήραμε χρησιμοποιώντας όλα τα παραπάνω εργαλεία. 48

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Αλγόριθµοι συµµετρικού κλειδιού Αλγόριθµοι συµµετρικού κλειδιού Αλγόριθµοι συµµετρικού κλειδιού Χρησιµοποιούν το ίδιο κλειδί για την κρυπτογράφηση και την αποκρυπτογράφηση Υλοποιούνται τόσο µε υλικό (hardware) όσο και µε λογισµικό (software)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Συμμετρική Κρυπτογραφία ΤΕΙ Κρήτης Τμήμα Μηχανικών Πληροφορικής Ασφάλεια Πληροφοριακών Συστημάτων Εργαστήριο Συμμετρική Κρυπτογραφία Konstantinos Fysarakis, PhD kfysarakis@staff.teicrete.gr Εισαγωγή } Στην συνηθισμένη κρυπτογραφία,

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

YΒΡΙΔΙΚΗ ΚΡΥΠΤΟΓΡΑΦΙΑ

YΒΡΙΔΙΚΗ ΚΡΥΠΤΟΓΡΑΦΙΑ ΤΕΙ Κρητης Τμήμα Μηχανικών Πληροφορικής Εργαστήριο Ασφάλεια Πληροφοριακών Συστημάτων YΒΡΙΔΙΚΗ ΚΡΥΠΤΟΓΡΑΦΙΑ Εισαγωγή Ο στόχος της υβριδικής μεθόδου είναι να αντισταθμίσει τα μειονεκτήματα της συμμετρικής

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

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

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

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

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

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

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

Εργαστήριο Ασφάλεια Πληροφοριακών Συστημάτων. PGP (Pretty Good Privacy)

Εργαστήριο Ασφάλεια Πληροφοριακών Συστημάτων. PGP (Pretty Good Privacy) Εργαστήριο Ασφάλεια Πληροφοριακών Συστημάτων PGP (Pretty Good Privacy) Εισαγωγή Το λογισμικό Pretty Good Privacy (PGP), το οποίο σχεδιάστηκε από τον Phill Zimmerman, είναι ένα λογισμικό κρυπτογράφησης

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

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

Ασφάλεια Ασύρματων & Κινητών Επικοινωνιών Ασφάλεια Ασύρματων & Κινητών Επικοινωνιών Ασύρματες Επικοινωνίες Μέρος V Χρήστος Ξενάκης Τμήμα Ψηφιακών Συστημάτων Πανεπιστήμιο Πειραιώς Slide: 1/30 Περιεχόμενα IEEE 802.11i ΤΟ ΠΡΩΤΟΚΟΛΛΟ CCMP Γενικά Λίγα

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

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

Κρυπτογραφία. Κεφάλαιο 3 Αλγόριθμοι τμήματος Block ciphers Κρυπτογραφία Κεφάλαιο 3 Αλγόριθμοι τμήματος Block ciphers Αλγόριθμοι τμήματος Τμήμα (μπλοκ) αρχικού μηνύματος μήκους n encrypt decrypt Τμήμα (μπλοκ) κρυπτογράμματος μήκους n 2 Σχηματική αναπαράσταση Plaintext

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΑΣΥΜΜΕΤΡΗ ΚΡΥΠΤΟΓΡΑΦΙΑ ΤΕΙ Κρήτης ΕΠΠ Εργαστήριο Ασφάλεια Πληροφοριακών Συστηµάτων ΑΣΥΜΜΕΤΡΗ ΚΡΥΠΤΟΓΡΑΦΙΑ ΤΕΙ Κρητης Τµηµα Εφαρµοσµενης Πληροφορικης Και Πολυµεσων Fysarakis Konstantinos, PhD kfysarakis@staff.teicrete.gr Εισαγωγή

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

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

El Gamal Αλγόριθμος. Κώστας Λιμνιώτης Κρυπτογραφία - Εργαστηριακό μάθημα 7 2 Κρυπτογραφία Εργαστηριακό μάθημα 7 (Αλγόριθμοι Δημοσίου Κλειδιού) α) El Gamal β) Diffie-Hellman αλγόριθμος για την ανταλλαγή συμμετρικού κλειδιού κρυπτογράφησης El Gamal Αλγόριθμος Παράμετροι συστήματος:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Κρυπτογραφία. Εργαστηριακό μάθημα 5 Stream ciphers Κρυπτανάλυση με τον αλγόριθμο Berlekamp-Massey Κρυπτογραφία Εργαστηριακό μάθημα 5 Stream ciphers Κρυπτανάλυση με τον αλγόριθμο Berlekamp-Massey Γενικά χαρακτηριστικά των stream ciphers Keystream Generator K i P i C i Δουλεύουν πάνω σε ένα ρεύμα από

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

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

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

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

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

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

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

Freedom of Speech. Κρυπτογραφία και ασφαλής ανταλλαγή πληροφοριών στο Internet

Freedom of Speech. Κρυπτογραφία και ασφαλής ανταλλαγή πληροφοριών στο Internet Freedom of Speech Κρυπτογραφία και ασφαλής ανταλλαγή πληροφοριών στο Internet Freedom of Speech Ποιός ; & Γιατί ; Τι είναι Ιστορικά Στόχοι Είδη Μοντέρνων Αλγορίθμων Μοντέλα Εμπιστοσύνης 14/03/2012 Freedom

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

1.1. Ορισμοί και ορολογία

1.1. Ορισμοί και ορολογία 1 ΕΙΣΑΓΩΓΗ Προτού ξεκινήσουμε την περιήγησή μας στον κόσμο της κρυπτογραφίας, ας δούμε ορισμένα πρακτικά προβλήματα που κατά καιρούς έχουμε συναντήσει ή έχουμε φανταστεί. Το πρόβλημα του «μυστικού υπολογισμού».

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

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

Κρυπτογραφία. MAC - Γνησιότητα/Ακεραιότητα μηνύματος. Πέτρος Ποτίκας Κρυπτογραφία MAC - Γνησιότητα/Ακεραιότητα μηνύματος Πέτρος Ποτίκας Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Σχολή ΗΜΜΥ ΕΜΠ Κρυπτογραφία 1 / 35 Περιεχόμενα 1 Message

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

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

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

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

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

Κρυπτογραφία. Διάλεξη 7 Κρυπταλγόριθμοι τμήματος: Αλγόριθμος AES Τρόποι λειτουργίας Κρυπτογραφία Διάλεξη 7 Κρυπταλγόριθμοι τμήματος: Αλγόριθμος AES Τρόποι λειτουργίας AES- Advanced Encryption Standard Το 1997, ο NIST προσκάλεσε δημόσια για ορισμό νέου προτύπου που θα λάμβανε το όνομα

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

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

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

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

Symmetric Cryptography. Dimitris Mitropoulos

Symmetric Cryptography. Dimitris Mitropoulos Symmetric Cryptography Dimitris Mitropoulos dimitro@di.uoa.gr Ορολογία Αρχικό Κείμενο (Plaintext): Αποτελεί το αρχικό μήνυμα (ή τα αρχικά δεδομένα) που εισάγεται στον αλγόριθμο κρυπτογράφησης. Αλγόριθμος

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

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

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

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

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

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

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

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

Οικονομικό Πανεπιστήμιο Αθηνών Τμήμα Πληροφορικής ΠΜΣ στα Πληροφοριακά Συστήματα Κρυπτογραφία και Εφαρμογές Διαλέξεις Ακ. Οικονομικό Πανεπιστήμιο Αθηνών Τμήμα Πληροφορικής ΠΜΣ στα Πληροφοριακά Συστήματα Κρυπτογραφία και Εφαρμογές Διαλέξεις Ακ. Έτους 2015-2016 Μαρκάκης Ευάγγελος markakis@aueb.gr Ντούσκας Θεόδωρος ttouskas@aueb.gr

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

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

Κρυπτογραφία. MAC - Γνησιότητα/Ακεραιότητα μηνύματος. Πέτρος Ποτίκας Κρυπτογραφία MAC - Γνησιότητα/Ακεραιότητα μηνύματος Πέτρος Ποτίκας Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Σχολή ΗΜΜΥ ΕΜΠ Κρυπτογραφία 1 / 32 Περιεχόμενα 1 Message

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

KΕΦΑΛΑΙΟ 5 ΨΗΦΙΑΚΕΣ ΥΠΟΓΡΑΦΕΣ KΕΦΑΛΑΙΟ 5 ΨΗΦΙΑΚΕΣ ΥΠΟΓΡΑΦΕΣ 1 Γενικά Η ψηφιακή υπογραφή είναι µια µέθοδος ηλεκτρονικής υπογραφής όπου ο παραλήπτης ενός υπογεγραµµένου ηλεκτρονικού µηνύµατος µπορεί να διαπιστώσει τη γνησιότητα του,

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

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

Κρυπτογραφία. MAC - Γνησιότητα/Ακεραιότητα μηνύματος. Πέτρος Ποτίκας Κρυπτογραφία MAC - Γνησιότητα/Ακεραιότητα μηνύματος Πέτρος Ποτίκας Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Σχολή ΗΜΜΥ ΕΜΠ Κρυπτογραφία 1 / 38 Περιεχόμενα 1 Message

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

9 - Ασφάλεια Ηλεκτρονικών Συναλλαγών ΕΘΝΙΚΗ ΣΧΟΛΗ ΔΗΜΟΣΙΑΣ ΔΙΟΙΚΗΣΗΣ & ΑΥΤΟΔΙΟΙΚΗΣΗΣ

9 - Ασφάλεια Ηλεκτρονικών Συναλλαγών ΕΘΝΙΚΗ ΣΧΟΛΗ ΔΗΜΟΣΙΑΣ ΔΙΟΙΚΗΣΗΣ & ΑΥΤΟΔΙΟΙΚΗΣΗΣ 9 - Ασφάλεια Ηλεκτρονικών Συναλλαγών ΕΘΝΙΚΗ ΣΧΟΛΗ ΔΗΜΟΣΙΑΣ ΔΙΟΙΚΗΣΗΣ & ΑΥΤΟΔΙΟΙΚΗΣΗΣ Ενότητες Πυλώνες εμπιστοσύνης ηλεκτρονικών συναλλαγών Κρυπτογράφηση Δημόσιο και ιδιωτικό κλειδί Ψηφιακή υπογραφή Ψηφιακά

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

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

Διαχείριση Ασφάλειας και Εμπιστοσύνης σε Πολιτισμικά Περιβάλλοντα Διαχείριση Ασφάλειας και Εμπιστοσύνης σε Πολιτισμικά Περιβάλλοντα Ενότητα 5: ΚΡΥΠΤΟΓΡΑΦΗΣΗ Δημήτριος Κουκόπουλος Σχολή Οργάνωσης και Διοίκησης Επιχειρήσεων Τμήμα Διαχείρισης Πολιτισμικού Περιβάλλοντος

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

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

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

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

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

Κρυπτογραφία και Ασφάλεια Υπολογιστών Κρυπτογραφία και Ασφάλεια Υπολογιστών Εργαστηριακές Ασκήσεις 0 Σ ε λ ί δ α Απόστολος Φούρναρης, Πάρης Κίτσος και Νικόλαος Σκλάβος 4/29/15 Κρυπτογραφία και Ασφάλεια Υπολογιστών 1 Σ ε λ ί δ α ΠΕΡΙΕΧΟΜΕΝΑ

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

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

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

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

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

Βασικές έννοιες της κρυπτογραφίας ΚΕΦΑΛΑΙΟ 4 Βασικές έννοιες της κρυπτογραφίας Στο κεφάλαιο αυτό εισάγονται οι ϐασικές έννοιες της κρυπτογρα- ϕίας, όπως τα είδη των αλγορίθµων ανάλογα µε το κλειδί, τα είδη αλγορίθµων ανάλογα µε το πως

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

ΚΩΔΙΚΟΠΟΙΗΣΗ - ΑΠΟΚΩΔΙΚΟΠΟΙΗΣΗ ΑΠΟ Β ΠΑΓΚΟΣΜΙΟ ΠΟΛΕΜΟ ΜΕΧΡΙ ΣΗΜΕΡΑ

ΚΩΔΙΚΟΠΟΙΗΣΗ - ΑΠΟΚΩΔΙΚΟΠΟΙΗΣΗ ΑΠΟ Β ΠΑΓΚΟΣΜΙΟ ΠΟΛΕΜΟ ΜΕΧΡΙ ΣΗΜΕΡΑ ΚΩΔΙΚΟΠΟΙΗΣΗ - ΑΠΟΚΩΔΙΚΟΠΟΙΗΣΗ ΑΠΟ Β ΠΑΓΚΟΣΜΙΟ ΠΟΛΕΜΟ ΜΕΧΡΙ ΣΗΜΕΡΑ Εισαγωγικά-Κώστας Σαρηκιοσές Τι είναι η κρυπτογραφία; Χρήση κατά τη διάρκεια του Β Παγκοσμίου Πολέμου Μετά τον Β Παγκόσμιο Πόλεμο(από

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

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

Κρυπτογραφία. MAC - Γνησιότητα/Ακεραιότητα μηνύματος. Πέτρος Ποτίκας Κρυπτογραφία MAC - Γνησιότητα/Ακεραιότητα μηνύματος Πέτρος Ποτίκας Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Σχολή ΗΜΜΥ ΕΜΠ Κρυπτογραφία 1 / 37 Περιεχόμενα 1 Message

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

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

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

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

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

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

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

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

Threshold Cryptography Algorithms. Εργασία στα πλαίσια του μαθήματος Τεχνολογίες Υπολογιστικού Νέφους Threshold Cryptography Algorithms Εργασία στα πλαίσια του μαθήματος Τεχνολογίες Υπολογιστικού Νέφους Ορισμός Το σύστημα το οποίο τεμαχίζει ένα κλειδί k σε n τεμάχια έτσι ώστε οποιοσδήποτε συνδυασμός πλήθους

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