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

Save this PDF as:
 WORD  PNG  TXT  JPG

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

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

Transcript

1 Ειδική Επιστημονική Εργασία Συμμετρικοί Αλγόριθμοι Κρυπτογράφησης Δεδομένων Οι περιπτώσεις των αλγορίθμων DES και TDEA Φλωκατούλα Δώρα, Μηχανικός Η/Υ & Πληροφορικής Επιβλέπων : Μπακάλης Δημήτριος, Επίκουρος Καθηγητής Διατμηματικό Μεταπτυχιακό Πρόγραμμα Ηλεκτρονική και Επεξεργασία της Πληροφορίας Πανεπιστήμιο Πατρών, 8/6/2012

2

3 Ειδική Επιστημονική Εργασία Συμμετρικοί Αλγόριθμοι Κρυπτογράφησης Δεδομένων Οι περιπτώσεις των αλγορίθμων DES και TDEA Φλωκατούλα Δώρα, Μηχανικός Η/Υ & Πληροφορικής Επιβλέπων : Μπακάλης Δημήτριος, Επίκουρος Καθηγητής Εγκρίθηκε από την τριμελή εξεταστική επιτροπή την 8 η Ιουνίου 2012 στα πλαίσια του ΔΠΜΣ Ηλεκτρονικής και Επεξεργασίας της Πληροφορίας Δημήτριος Μπακάλης Επίκουρος Καθηγητής Τμήμα Φυσικής Παν/μιο Πατρών Ευάγγελος Ζυγούρης Αναπληρωτής Καθηγητής Τμήμα Φυσικής Παν/μιο Πατρών Βλάσης Σπυρίδων Επίκουρος Καθηγητής Τμήμα Φυσικής Παν/μιο Πατρών

4

5 Περίληψη Η ανάγκη για ασφαλή αποθήκευση και μετάδοση πληροφορίας είναι αναπόσπαστο κομμάτι της ανθρώπινης ιστορίας. Αυτή η ανάγκη αρχικά δημιουργήθηκε λόγω των διαφορών των ανθρώπων σε επίπεδο κοινωνικό, πολιτικό, στρατιωτικό ή ακόμη και θρησκευτικών πεποιθήσεων. Σήμερα, η ραγδαία ανάπτυξη των επικοινωνιακών συστημάτων προσφέρει, σε ένα μεγάλο ποσοστό ανθρώπων, πρόσβαση σε μία τεράστια ποσότητα πληροφορίας και μία ποικιλία από ηλεκτρονικά μέσα με σκοπό την ανταλλαγή προσωπικών δεδομένων. Για αυτό το λόγο, κάθε πληροφορία που μεταδίδεται χρειάζεται να μετατραπεί σε μία μη αναγνωρίσιμη μορφή έτσι ώστε να διασφαλιστεί η ασφάλεια της. Αυτή η επεξεργασία (κρυπτογράφηση) των δεδομένων είναι αναγκαίο να συμβεί σε πραγματικό χρόνο και για αυτό το λόγο έχουν αναπτυχθεί αρκετοί αλγόριθμοι κρυπτογράφησης. Σαν παράδειγμα υλοποίησης κρυπτογραφικών αλγόριθμων παρουσιάζονται στην παρούσα εργασία οι αλγόριθμοι DES και Triple DES (TDEA). Ο DES χρησιμοποιείται στον τομέα κρυπτογράφησης δεδομένων με μία σχετικά καλή απόδοση ασφάλειας. Η υλοποίηση του συνήθως διαχωρίζεται σε προσεγγίσεις λογισμικού (software) ή υλικού (hardware). Ο TDEA αποτελεί έναν αλγόριθμο, ο οποίος προέρχεται από τον DES και παρουσιάζει μεγαλύτερη ανθεκτικότητα από αυτόν σε κρυπταναλυτικές επιθέσεις. Στην παρούσα εργασία γίνεται θεωρητική ανάλυση των δύο αλγορίθμων με βάση το πρότυπο που τους περιγράφει καθώς και χρήση παραδειγμάτων πάνω σε αυτό. Στη συνέχεια οι αλγόριθμοι υλοποιούνται σε λογισμικό με τη χρήση της γλώσσας προγραμματισμού C++, αλλά και σε υλικό χρησιμοποιώντας τη γλώσσα VHDL. Πιο συγκεκριμένα στο 1 ο κεφάλαιο γίνεται μία εισαγωγή στην κρυπτογραφία, η ιστορική αναδρομή της και παρουσιάζονται βασικοί ορισμοί και αλγόριθμοι κρυπτογράφησης. Στο 2 ο κεφάλαιο μελεντώνται τα συμμετρικά κρυπτοσυστήματα και οι λειτουργίες τους, γίνεται αναφορά στους συμμετρικούς αλγορίθμους που χρησιμοποιούνται σήμερα, DES, TDEA, AES, Blowfish κ.α. Επίσης αναφέρονται τα βασικά σημεία των ασύμμετρων αλγορίθμων με σκοπό την σύγκριση τους με τα συμμετρικά. Βασικό κορμό της εργασίας αποτελεί το 3 ο κεφάλαιο όπου μελετώνται αναλυτικά η λειτουργία, εφαρμογές και υλοποιήσεις των συμμετρικών αλγορίθμων DES και TDEA. Στο 4 ο και 5 ο κεφάλαιο αναλύεται η υλοποίηση των δύο αυτών αλγορίθμων τόσο σε επίπεδο λογισμικού όσο και σε επίπεδο υλικού και παρούσιάζεται η διαδικτυακή υλοποίηση τους. Στο 6 ο και τελευταίο κεφάλαιο εξάγονται συμπεράσματα και γίνονται προτάσεις για μελλοντική εργασία. i

6 ii

7 Abstract Τhe need for secure storage or transfer of information has been an inseperable part of human history. This need was initially created by the difference in social, political, military or even religious persuasions among people. Nowadays, the rapid evolution of communication systems offers, to a very large percentage of population, access to a huge amount of information and a variety of means to use, in order to exchange personal data. Therefore, every single transmitted bit of information needs to be processed into an unrecognizable form in order to be secured. This encipherment of the data is necessary to take place in real time and for this procedure, a variety of encryption algorithms have been developed. DES (Data Encryption Standard) and Triple-DES algorithms are used as an example for the implementation of cryptographic algorithms. DES can be regarded as a data encryption standard technology which is widely used in the field of data encryption with a relatively good safety performance. Implementation of DES is usually divided into software and hardware approaches. The TDEA is an algorithm which is derived from DES and has greater resistance in cryptanalysis attacks. In this Master Thesis is presented a theoretical analysis of the two algorithms based on the standard and use of examples. Furthermore, the two algorithms are implemented in software using C++, but also in hardware using VHDL. More specifically, in the 1 st chapter an introduction in cryptography, its historical eventuality and basic definitions are presented. The 2 nd chapter describes the general characteristics of symmetric cryptosystems and their functions. A reference in symmetric algorithms that are used nowadays, is made, such as DES, TDEA, AES, Blowfish. Moreover, some of the basics of asymmetric algorithms are mentioned, in order to permorm a comparison analysis with symmetrics. The main part of this Master Thesis is the 3 rd chapter, where the detailed function and applications of DES and TDEA are explained. In the next two chapters, the implementation of the two algorithms is presented, in both software and hardware. Furthermore, their implementation is extended so as to be used in a web application. In the 6 th chapter concluding remarks are made and future work is suggested. iii

8 iv

9 Ευχαριστίες Η εργασία αυτή δεν θα είχε ολοκληρωθεί ποτέ χωρίς την πολύτιμη βοήθεια ορισμένων ανθρώπων. Για το λόγο αυτό θα ήθελα να ευχαριστήσω τον καθηγητή μου κ. Δ. Μπακάλη για την καθοδήγηση που μου παρείχε, για την υποστήριξη και την εμπιστοσύνη που έδειξε στο πρόσωπό μου. Επίσης ευχαριστώ για την πολύτιμη συνεργασία τον συνάδελφο Κώστα Λυκούδη μαζί με τον οποίο μελετήσαμε και συνεργαστήκαμε γύρω από το αντικείμενο της κρυπτογραφίας. Πέραν όμως από τους ανθρώπους που συνετέλεσαν άμεσα για την εργασία αυτή θα ήθελα να ευχαριστήσω τους φίλους για την συμπαράσταση και τους γονείς μου Γιώργο και Θεοδώρα για την στήριξη που μου παρείχαν, οικονομική και συναισθηματική, κατά την διάρκεια των σπουδών μου. Φλωκατούλα Δώρα, Μηχανικός Η/Υ και Πληροφορικής v

10 vi

11 Περιεχόμενα 1. Εισαγωγή στην Κρυπτογραφία Εισαγωγικοί ορισμοί Κρυπτογραφικό Σύστημα Ασφάλεια Διάκριση Κρυπτογραφικών Συστημάτων Τρόποι Υλοποίησης ενός Κρυπτογραφικού συστήματος Ιστορική Αναδρομή Πρώτη Περίοδος Κρυπτογραφίας (1900 π.χ μ.χ.) Δεύτερη Περίοδος Κρυπτογραφίας (1900 μ.χ μ.χ.) Τρίτη Περίοδος Κρυπτογραφίας (1950 μ.χ. - Σήμερα) Αλγόριθμοι Αλγόριθμοι αντικατάστασης... 8 Αλγόριθμος του Καίσαρα... 8 Αλγόριθμος Vigenere... 9 Αλγόριθμος σημειωματάριου μιας χρήσης Αλγόριθμοι Μετατόπισης Μέθοδος της σκυτάλης Συμμετρικά Κρυπτοσυστήματα Συμμετρικά Κρυπτοσυστήματα και Συμμετρικοί Αλγόριθμοι Διαχωρισμός συμμετρικών συστημάτων Κωδικοποιητές Ροής (stream cipher) Κωδικοποιητές Τμημάτων (block cipher) Τρόποι λειτουργίας κωδικοποιητών τμημάτων Electronic Codebook (ECB) Μέθοδος Αλυσιδωτής Κρυπτογράφησης Τμημάτων (CBC) Μέθοδος Ανάδρασης Κρυπτογραφημάτων (CFB) Μέθοδος Ανάδρασης Εξόδου (OFB) Counter Mode Σύγκριση Επαναληπτικοί κρυπτογραφικοί αλγόριθμοι τμημάτων και ο αλγόριθμος Feistel 21 Επαναληπτικοί κρυπτογραφικοί αλγόριθμοι Κρυπτογραφικός αλγόριθμος Feistel Συμμετρικοί αλγόριθμοι vii

12 2.5.1 DES Triple DES AES Ο αλγόριθμος Rijndael Blowfish RC RC Σύγκριση συμμετρικών αλγορίθμων Ασύμμετροι αλγόριθμοι κρυπτογράφησης Εφαρμογές Κρυπτοσυστημάτων Δημοσίου Κλειδιού Σύγκριση συμμετρικών και ασύμμετρων αλγορίθμων Οι αλγόριθμοι DES και TDEA Εισαγωγικά και προκαταρκτικά παραδείγματα Η λειτουργία του DES Κρυπτογράφηση τμήματος μήκους 64 bits Δημιουργία υποκλειδιών Η λειτουργία του DES μέσα από παράδειγμα Δημιουργία υποκλειδιών Κρυπτογράφηση τμήματος μήκους 64 bits Αποκρυπτογράφηση του DES Η Ισχύς του Αλγορίθμου DES Τα αδύναμα κλειδιά του DES Ο αλγόριθμος Triple DES Εφαρμογές και υλοποιήσεις Υλοποίηση DES και TDEA σε επίπεδο λογισμικού Εισαγωγή Ανάλυση προγράμματος Διαδικτυακή υλοποίηση των DES και TDEA Παράδειγμα εκτέλεσης των DES και TDEA Υλοποίηση DES και TDEA σε υλικό Εισαγωγή Χρήσιμες ιδιότητες για υλοποίηση συμμετρικών κρυπτοσυστημάτων σε VHDL VHDL υλοποίηση του DES και TDEA Σχεδίαση viii

13 5.3.2 Υλοποίηση Αποτελέσματα Εξομοίωσης Συμπεράσματα Βιβλιογραφία ΠΑΡΑΡΤΗΜΑ Α: C ΠΑΡΑΡΤΗΜΑ Β: VHDL ix

14 x

15 1. Εισαγωγή στην Κρυπτογραφία 1.1 Εισαγωγικοί ορισμοί Κρυπτολογία (Cryptology) είναι η επιστήμη που ασχολείται με τη μελέτη της απόκρυψης της ασφαλούς επικοινωνίας και ανάκτησης πληροφορίας. Διαχωρίζεται σε δύο κλάδους: Την Κρυπτογραφία (Cryptography): Ο όρος προέρχεται από τις λέξεις κρυπτός και γράφος. Κυριολεκτικά σημαίνει τη μελέτη της μυστικογραφίας. Γενικότερα αφορά τον επιστημονικό κλάδο που ασχολείται με τη μελέτη, χρήση και ανάπτυξη τεχνικών κρυπτογράφησης και αποκρυπτογράφησης για την απόκρυψη των περιεχομένων των μηνυμάτων (ή των αποθηκευμένων δεδομένων) και τη διευκόλυνση της ανίχνευσης κακόβουλων μετατροπών στα μηνύματα. Την Κρυπτανάλυση (Cryptanalysis): Αποτελεί τη διαδικασία της προσπάθειας αποκάλυψης του αρχικού κειμένου ή του κλειδιού από μη εξουσιοδοτημένες οντότητες δυνητικά επιτιθέμενους. Η στρατηγική που χρησιμοποιείται από τον κρυπταναλυτή εξαρτάται από τη φύση της κρυπτογράφησης και από τις πληροφορίες που είναι διαθέσιμες σε αυτόν. Κρυπτογράφηση (encryption / encipherment) είναι η διεργασία μετασχηματισμού ενός μηνύματος σε μια ακατανόητη μορφή με τη χρήση ενός κρυπτογραφικού αλγόριθμου, έτσι ώστε αυτό να μην είναι αναγνώσιμο από τρίτα μέρη (εκτός του νόμιμου παραλήπτη). Αποκρυπτογράφηση (decryption / decipherment) είναι η διεργασία ανάκτησης του αρχικού μηνύματος (αναγνώσιμη μορφή) από μια ακατανόητη έκδοσή του που είχε παραχθεί μέσω μιας διεργασίας κρυπτογράφησης. Η αποκρυπτογράφηση εκτελείται από κάποιο εξουσιοδοτημένο μέρος, σε αντίθεση με την κρυπτανάλυση. Μία επισκόπηση της Κρυπτολογίας φαίνεται στο παρακάτω Εικόνα 1: Εικόνα 1 Επισκόπηση της Κρυπτολογίας 1

16 Αρχικό κείμενο (plaintext) είναι το μήνυμα το οποίο αποτελεί είσοδο σε μια διαδικασία κρυπτογράφησης, δηλαδή κρυπτογραφείται. Κρυπτογραφημένο κείμενο (cipher text) είναι το αποτέλεσμα της εφαρμογής ενός κρυπτογραφικού αλγορίθμου πάνω στο αρχικό κείμενο. Το κρυπτογραφημένο κείμενο αποκρυπτογραφείται για να ανακτηθεί το αρχικό κείμενο. Η κρυπτογράφηση και αποκρυπτογράφηση ενός μηνύματος γίνεται με βάση τη βοήθεια ενός αλγορίθμου κρυπτογράφησης και ενός κλειδιού κρυπτογράφησης. Κρυπτογραφικός αλγόριθμος (cipher) είναι η μέθοδος (συνήθως μια μαθηματική συνάρτηση) μετασχηματισμού δεδομένων σε μια μορφή που να μην επιτρέπει σε μη εξουσιοδοτημένα μέρη την αποκάλυψη του περιεχομένου τους. Η δυνατότητα, όμως, της διατήρησης της μυστικότητας των πληροφοριών βασίζεται περισσότερο στο κλειδί (key) που είναι ένας αριθμός αρκετών bit που χρησιμοποιείται ως είσοδος στην συνάρτηση κρυπτογράφησης. Επομένως, η ανθεκτικότητα μιας κρυπτογράφησης εξαρτάται περισσότερο από το μέγεθος των κλειδιών που χρησιμοποιούνται παρά από τους αλγορίθμους. Όσο μεγαλύτερο είναι το μήκος ενός κλειδιού τόσο ανθεκτικότερη είναι η κρυπτογράφηση. 1.2 Κρυπτογραφικό Σύστημα Ένα Κρυπτογραφικό Σύστημα είναι ένα πλήρες σύστημα που περιλαμβάνει όλους τους ανθρώπους, διαδικασίες, εργαλεία, κρυπτογραφήματα, κλειδιά και κανάλια μετάδοσης που εμπλέκονται σε μια ασφαλή μεταφορά δεδομένων. Σε ένα τυπικό σύστημα κρυπτογράφησης τα δεδομένα κρυπτογραφούνται και το παραγόμενο μήνυμα αποστέλλεται στον παραλήπτη και αποκρυπτογραφείται για να παραχθεί το αρχικό κείμενο. Αυτοί οι μετασχηματισμοί αναπαρίστανται ως εξής : Εικόνα 2 Κρυπτογραφικό Σύστημα 2

17 1.2.1 Ασφάλεια Κάθε σύστημα πρέπει να παρέχει ένα πακέτο ασφάλειας που να μπορεί να εξασφαλίσει τη μυστικότητα του. Έστω ότι δύο άτομα Α και Β επικοινωνούν μεταξύ τους μέσω ενός διαύλου επικοινωνίας. Η επικοινωνία μεταξύ τους είναι ασφαλής, εάν ικανοποιεί τις ακόλουθες ιδιότητες: Εμπιστευτικότητα (Confidentiality) : Αναφέρεται στο πως περισσότεροι άνθρωποι ταυτοποιούν ένα ασφαλές σύστημα. Κανείς άλλος, εκτός από τους εξουσιοδοτημένους χρήστες, δεν μπορεί να λάβει γνώση οποιουδήποτε μέρους της πληροφορίας που ανταλλάσσεται μεταξύ τους. Ακεραιότητα (Integrity) : Το περιεχόμενο των δεδομένων που ανταλλάσσονται εξασφαλίζεται πως δεν κινδυνεύει από κανενός τύπου τροποποίηση που μπορεί να συμβεί ανάμεσα στους συναλλασσόμενους (αποστολέας-παραλήπτης). Κανείς άλλος δεν μπορεί να τροποποιήσει τα μηνύματα τους. Αυθεντικότητα (Authentication) : Καθένας από τους Α και Β πρέπει να είναι σίγουρος για την ταυτότητα του μηνύματος που λαμβάνει από τον άλλον. Αυτό σημαίνει πως πριν την αποστολή και λήψη δεδομένων χρησιμοποιώντας το σύστημα, ο αποστολέας και ο παραλήπτης θα πρέπει να έχουν ταυτοποιηθεί. Αδυναμία αποκήρυξης (Non repudiation) : Κανείς από τους δύο να μην μπορεί να αρνηθεί την πατρότητα προηγούμενων μηνυμάτων του. Αξιοπιστία και Διαθεσιμότητα (Service Reliability and Availability) : Τα συστήματα θα πρέπει να παρέχουν μία εγγύηση ποιότητας των υπηρεσιών στους χρήστες τους, αφού ακόμα και ασφαλή συστήματα συχνά δέχονται επιθέσεις από εισβολείς. Αυτό μπορεί να επηρεάσει την διαθεσιμότητα και το είδος των υπηρεσιών που παρέχουν στους χρήστες. Για να αποφεύγονται οι αποκαλούμενες επιθέσεις εκτενών αναζητήσεων πρέπει το πλήθος των πιθανών διαφορετικών συνδυασμών κλειδιών για έναν κρυπτογραφικό αλγόριθμο να είναι μεγάλο. Αυτό συμβαίνει γιατί σε περίπτωση που ο κρυπταναλυτής αποκτήσει ένα αντίστοιχο ζεύγος αρχικού και κρυπτογραφημένου κειμένου, μπορεί προσπαθώντας με όλα τα πιθανά κλειδιά να δει ποιο ταιριάζει και κατόπιν να το χρησιμοποιήσει για να αποκρυπτογραφεί κι άλλα κρυπτογραφημένα κείμενα που έχουν κρυπτογραφηθεί με το ίδιο κλειδί. Διαφορετικά, σε περίπτωση που απλά κατάφερε να υποκλέψει ένα κρυπτογραφημένο κείμενο, μπορεί να το αποκρυπτογραφήσει με διαφορετικούς συνδυασμούς κλειδιών μέχρι να βρει ένα αρχικό κείμενο που έχει λογική σημασία, οπότε τότε αποκτά, ουσιαστικά, και το σωστό κλειδί που στη συνέχεια μπορεί να το χρησιμοποιήσει για την αποκρυπτογράφηση και άλλων κρυπτογραφημένων κειμένων. Τυπικά, τα κλειδιά είναι σειρές από bits και ως εκ τούτου η απαίτηση για μεγάλο πλήθος κλειδιών έχει την έννοια της χρήσης ολοένα και περισσότερων bits. Η χρήση 64 bits αποτελεί ένα τυπικό μήκος κλειδιού το οποίο παρέχει διαφορετικά κλειδιά, που σημαίνει ότι αν είχαμε τη δυνατότητα να δοκιμάζαμε ένα κλειδί ανά nanosecond, δηλαδή κλειδιά ανά δευτερόλεπτο, θα χρειαζόμασταν περίπου 300 χρόνια για να δοκιμάσουμε όλους τους δυνατούς συνδυασμούς κλειδιών. 3

18 Γενικά, όταν αναλύουμε την ανθεκτικότητα ενός κρυπτογραφικού αλγορίθμου, είναι σημαντικό να υποθέτουμε ότι ο κρυπταναλυτής έχει αποκτήσει με διάφορους τρόπους ένα αξιόλογο ποσό πληροφοριών στο οποίο βασίζει την επίθεσή του. Αυτό σημαίνει ότι όταν αναλύουμε την ασφάλεια ενός συστήματος είναι βασικό να κάνουμε υποθέσεις για την χειρότερη περίπτωση (worst case). Πιο συγκεκριμένα αποτελεί κοινή πρακτική ότι ο κρυπταναλυτής διαθέτει : Πλήρη γνώση του κρυπτογραφικού αλγορίθμου, Μερικά κρυπτογραφημένα μηνύματα που όλα έχουν προκύψει με τη χρήση του ίδιου μυστικού κλειδιού, Μερικά γνωστά μηνύματα, π.χ. μέρος ή το σύνολο από αρχικά μηνύματα που αντιστοιχούν σε γνωστά κρυπτογραφημένα μηνύματα. Μια επιπρόσθετη πιθανή υπόθεση είναι ότι ο κρυπταναλυτής διαθέτει το κρυπτογραφημένο κείμενο που αντιστοιχεί σε ένα επιλεγμένο από τον ίδιο αρχικό κείμενο. Αυτού του είδους η επίθεση λέγεται επίθεση επιλεγμένου αρχικού κειμένου (chosen plaintext attack). Στην πράξη, αυτό θα απαιτούσε από τον κρυπταναλυτή το να μπορεί να εισάγει στο σύστημα μηνύματα της επιλογής του, κάτι που είναι αρκετά δύσκολο να γίνει. Με βάση τις υποθέσεις για την χειρότερη περίπτωση, πρέπει να ακολουθούν δοκιμές με σκοπό να βρεθούν τρόποι κρυπτανάλυσης του κρυπτογραφικού αλγορίθμου, δηλαδή της εύρεσης του μυστικού κλειδιού. Σε αυτή την περίπτωση, ο σχεδιαστής του κρυπτογραφικού αλγορίθμου ή ο χρήστης που πρόκειται να χρησιμοποιήσει ένα προϊόν κρυπτογράφησης πρέπει να παίξει το ρόλο του κρυπταναλυτή και να δοκιμάσει να σπάσει τον αλγόριθμο. Με αυτόν τον τρόπο μόνο μπορεί κανείς να διαπιστώσει την ανθεκτικότητα ενός κρυπτογραφικού αλγορίθμου. Στις περισσότερες περιπτώσεις οι κρυπτογραφικοί αλγόριθμοι θεωρείται ότι είναι ισχυροί εφόσον οι προσπάθειες των εξειδικευμένων κρυπταναλυτών δεν είναι αρκετές για να μπορούν να τους σπάσουν με συμβατικά μέσα και σε λογικούς χρόνους. Κατά τ άλλα, δεν υπάρχουν φορμαλιστικές μέθοδοι που να αποδεικνύουν την ασφάλεια που παρέχουν οι περισσότεροι κρυπτογραφικοί αλγόριθμοι που χρησιμοποιούνται στην πράξη. Όμως η κρυπτογραφία αποτελεί μια ραγδαία αναπτυσσόμενη περιοχή έρευνας και νέοι κρυπτογραφικοί αλγόριθμοι σχεδιάζονται και σπάνε, αν και μερικοί αντέχουν καλά στις παρατεταμένες προσπάθειες κρυπτανάλυσης που γίνονται Διάκριση Κρυπτογραφικών Συστημάτων Τα κρυπτογραφικά συστήματα ταξινομούνται, γενικά, με βάση τρία ανεξάρτητα κριτήρια: Τον τύπο των διαδικασιών που χρησιμοποιούνται για το μετασχηματισμό του αρχικού κειμένου σε ένα κρυπτογράφημα: Το σύνολο των αλγορίθμων κρυπτογράφησης στηρίζεται σε δύο γενικές αρχές: στην αντικατάσταση (substitution) σύμφωνα με την οποία κάθε στοιχείο του αρχικού κειμένου, είτε είναι δυαδικό ψηφίο, είτε χαρακτήρας, είτε ομάδα δυαδικών ψηφίων ή χαρακτήρων, αντικαθίσταται από άλλο στοιχείο και στη μετάθεση (transposition) στην οποία τα στοιχεία 4

19 του αρχικού κειμένου αναδιατάσσονται. Βασική προϋπόθεση αποτελεί η μη απώλεια οποιασδήποτε πληροφορίας, ώστε όλες οι διαδικασίες να είναι αντιστρέψιμες. Τα περισσότερα συστήματα περιλαμβάνουν πληθώρα σταδίων αντικαταστάσεων και μεταθέσεων. Τον αριθμό των κλειδιών που χρησιμοποιούνται: Εάν ο πομπός και ο δέκτης χρησιμοποιούν το ίδιο κλειδί, τότε το σύστημα αναφέρεται ως συμμετρικό ή μοναδικού κλειδιού ή μυστικού κλειδιού ή συμβατικής κρυπτογραφίας. Εάν, όμως, ο πομπός και ο δέκτης χρησιμοποιούν διαφορετικά κλειδιά, τότε το σύστημα αναφέρεται ως ασύμμετρο, ή σύστημα ζεύγους κλειδιών, ή κρυπτογραφίας δημοσίου κλειδιού. Τον τρόπο με τον οποίο επεξεργάζεται το αρχικό κείμενο: Ένας κωδικοποιητής τμημάτων (block cipher) επεξεργάζεται την είσοδο ενός τμήματος στοιχείων κάθε φορά, παράγοντας ένα τμήμα εξόδου για κάθε συγκεκριμένο τμήμα εισόδου. Αντίθετα, ένας κωδικοποιητής ροής (stream cipher) επεξεργάζεται κατά συνεχή τρόπο τα στοιχεία εισόδου και κάθε φορά παράγεται ως έξοδος ένα στοιχείο, με τη σειρά που καταφθάνουν τα δεδομένα Τρόποι Υλοποίησης ενός Κρυπτογραφικού συστήματος Η ενσωμάτωση των μεθόδων της κρυπτογραφίας σε υλικό (hardware) επιταχύνει σε μεγάλο βαθμό την διεκπεραίωση της. Επίσης, οι χρήστες δεν γνωρίζουν, ούτε καν αντιλαμβάνονται την παρουσία της και πραγματοποιούν ανενόχλητοι τις εργασίες τους. Το γεγονός ότι ο χρήστης δεν ανακατεύεται καθόλου στις διαδικασίες της κρυπτογραφίας, αυξάνει την αποτελεσματικότητα του εργαλείου στην παρεχόμενη ασφάλεια. Παρ' όλα αυτά, δεν έχει καθιερωθεί η κρυπτογραφία σε υλικό (hardware) λόγω του υψηλού κόστους της, που απαγορεύει την αγορά και διατήρηση των ειδικών μηχανημάτων που χρειάζονται για την εφαρμογή της. Τα ειδικά αυτά μηχανήματα βρίσκονται τοποθετημένα σε στρατηγικά σημεία κάθε δικτύου. Η κρυπτογραφία που αναπτύσσεται σε λογισμικό (software) είναι φτηνότερη, πράγμα που την κάνει ευρέως αποδεκτή και εύκολα πραγματοποιήσιμη. Βέβαια, δεν είναι το ίδιο γρήγορη με την εκτέλεση της σε hardware, αλλά η ολοένα αυξανόμενη ανάγκη για διασφάλιση των επικοινωνιών εδραίωσε τη χρήση της. 5

20 1.3 Ιστορική Αναδρομή Πρώτη Περίοδος Κρυπτογραφίας (1900 π.χ μ.χ.) Κατά τη διάρκεια αυτής της περιόδου αναπτύχθηκε μεγάλο πλήθος μεθόδων και αλγορίθμων κρυπτογράφησης, που βασίζονταν κυρίως σε απλές αντικαταστάσεις γραμμάτων. Όλες αυτές δεν απαιτούσαν εξειδικευμένες γνώσεις και πολύπλοκες συσκευές, αλλά στηρίζονταν στην ευφυΐα και την ευρηματικότητα των δημιουργών τους. Όλα αυτά τα συστήματα έχουν στις μέρες μας κρυπταναλυθεί και έχει αποδειχθεί ότι, εάν είναι γνωστό ένα μεγάλο κομμάτι του κρυπτογραφημένου μηνύματος, τότε το αρχικό κείμενο μπορεί σχετικά εύκολα να επανακτηθεί. Όπως προκύπτει από μία μικρή σφηνοειδή επιγραφή, που ανακαλύφθηκε στις όχθες του ποταμού Τίγρη, οι πολιτισμοί που αναπτύχθηκαν στη Μεσοποταμία ασχολήθηκαν με την κρυπτογραφία ήδη από το 1500 π.χ.. Επίσης, ως το αρχαιότερο βιβλίο κρυπτοκωδικών στον κόσμο, θεωρείται μία σφηνοειδής επιγραφή στα Σούσα της Περσίας, η οποία περιλαμβάνει τους αριθμούς 1 έως 8 και από το 32 έως το 35, τοποθετημένους τον ένα κάτω από τον άλλο, ενώ απέναντι τους βρίσκονται τα αντίστοιχα για τον καθένα σφηνοειδή σύμβολα. Η πρώτη στρατιωτική χρήση της κρυπτογραφίας αποδίδεται στους Σπαρτιάτες. Γύρω στον 5ο π.χ. αιώνα εφηύραν την «σκυτάλη», την πρώτη κρυπτογραφική συσκευή, στην οποία χρησιμοποίησαν για την κρυπτογράφηση τη μέθοδο της αντικατάστασης. Στην αρχαιότητα χρησιμοποιήθηκαν κυρίως συστήματα, τα οποία βασίζονταν στη στεγανογραφία και όχι τόσο στην κρυπτογραφία. Οι Έλληνες συγγραφείς δεν αναφέρουν αν και πότε χρησιμοποιήθηκαν συστήματα γραπτής αντικατάστασης γραμμάτων, αλλά τα βρίσκουμε στους Ρωμαίους, κυρίως την εποχή του Ιουλίου Καίσαρα. Ο Ιούλιος Καίσαρας έγραφε στον Κικέρωνα και σε άλλους φίλους του, αντικαθιστώντας τα γράμματα του κειμένου, με γράμματα, που βρίσκονται 3 θέσεις μετά, στο Λατινικό Αλφάβητο. Έτσι, σήμερα, το σύστημα κρυπτογράφησης που στηρίζεται στην αντικατάσταση των γραμμάτων του αλφαβήτου με άλλα που βρίσκονται σε καθορισμένο αριθμό θέσης πριν ή μετά, λέγεται κρυπτοσύστημα αντικατάστασης του Καίσαρα. Το σύστημα αντικατάστασης του Καίσαρα, χρησιμοποιήθηκε ευρύτατα και στους επόμενους αιώνες Δεύτερη Περίοδος Κρυπτογραφίας (1900 μ.χ μ.χ.) Η δεύτερη περίοδος της κρυπτογραφίας όπως προαναφέρθηκε τοποθετείται στις αρχές του 20ου αιώνα και φτάνει μέχρι το Καλύπτει, επομένως, τους δύο παγκόσμιους πολέμους, εξαιτίας των οποίων (λόγω της εξαιρετικά μεγάλης ανάγκης που υπήρξε για ασφάλεια κατά τη μετάδοση ζωτικών πληροφοριών μεταξύ των στρατευμάτων των χωρών) αναπτύχθηκε η κρυπτογραφία τόσο όσο δεν είχε αναπτυχθεί τα προηγούμενα 3000 χρόνια. Τα κρυπτοσυστήματα αυτής της περιόδου αρχίζουν να γίνονται πολύπλοκα, και να αποτελούνται από μηχανικές και ηλεκτρομηχανικές κατασκευές, οι οποίες ονομάζονται «κρυπτομηχανές». Η κρυπτανάλυση τους, απαιτεί μεγάλο αριθμό προσωπικού, το οποίο εργαζόταν επί μεγάλο χρονικό διάστημα ενώ ταυτόχρονα γίνεται εξαιρετικά αισθητή η ανάγκη για μεγάλη υπολογιστική ισχύ. Παρά την πολυπλοκότητα που αποκτούν τα 6

21 συστήματα κρυπτογράφησης κατά τη διάρκεια αυτής της περιόδου η κρυπτανάλυση τους είναι συνήθως επιτυχημένη. Οι Γερμανοί έκαναν εκτενή χρήση (σε διάφορες παραλλαγές) ενός συστήματος γνωστού ως Enigma (Εικόνα 3) αλλά και του λιγότερο γνωστού Lorenz SZ 40 και SZ 42 (Εικόνα 4). Η μηχανή αυτή χρησιμοποιείτο ως προσάρτημα στους τηλέτυπους που χρησιμοποιούνταν για τις επικοινωνίες των υψηλότερων επιπέδων διοίκησης. Η χρήση της σταμάτησε το 1942 όταν Άγγλοι κρυπταναλυτές, τον Ιανουάριο του 42, έσπασαν τον κώδικά της έπειτα από έναν λανθασμένο χειρισμό κάποιου γερμανού στρατιώτη. Ο τρόπος λειτουργίας των δύο αυτών μηχανών ήταν παρόμοιος. Λειτουργούσαν με ηλεκτρομηχανικούς ρότορες στους οποίους ο χειριστής έδινε μια αρχική τιμή (κλειδί) διαφορετική για κάθε μήνυμα, οι οποίοι άλλαζαν θέση μετά από την πληκτρολόγηση κάθε χαρακτήρα του προς κρυπτογράφηση κειμένου. Παρακάτω φαίνονται φωτογραφίες από μηχανές Lorentz και Enigma που έχουν διασωθεί μέχρι σήμερα. Εικόνα 3 Μηχανή Enigma [10] Εικόνα 4 Μηχανή Lorentz [11] Η μηχανή Αίνιγμα χρησιμοποιήθηκε ευρέως στη Γερμανία Ο Marian Rejewski, στην Πολωνία, προσπάθησε και, τελικά, παραβίασε την πρώτη μορφή του γερμανικού στρατιωτικού συστήματος Enigma (που χρησιμοποιούσε μια ηλεκτρομηχανική κρυπτογραφική συσκευή) χρησιμοποιώντας θεωρητικά μαθηματικά το Ήταν η μεγαλύτερη σημαντική ανακάλυψη στην κρυπτολογική ανάλυση της εποχής. Οι Πολωνοί συνέχισαν να αποκρυπτογραφούν τα μηνύματα που βασίζονταν στην κρυπτογράφηση με το Enigma μέχρι το Τότε, ο γερμανικός στρατός έκανε ορισμένες σημαντικές αλλαγές και οι Πολωνοί δεν μπόρεσαν να τις παρακολουθήσουν, επειδή η αποκρυπτογράφηση απαιτούσε περισσότερους πόρους από όσους μπορούσαν να διαθέσουν. Έτσι, εκείνο το καλοκαίρι μεταβίβασαν τη γνώση τους, μαζί με μερικές μηχανές που είχαν κατασκευάσει, στους Βρετανούς και τους Γάλλους. Ακόμη και ο Rejewski και οι μαθηματικοί και κρυπτογράφοι του, όπως ο Biuro Szyfrow, κατέληξαν σε συνεργασία με τους Βρετανούς και τους Γάλλους μετά από αυτή την εξέλιξη. Η συνεργασία αυτή συνεχίστηκε από τον Άλαν Τούρινγκ (Alan Turing), τον Γκόρντον Ουέλτσμαν (Gordon Welchman) και από πολλούς άλλους στο Μπλέτσλεϊ Παρκ (Bletchley Park), κέντρο της Βρετανικής Υπηρεσίας απο/κρυπτογράφησης και οδήγησε σε συνεχείς αποκρυπτογραφήσεις των διαφόρων παραλλαγών του Enigma, με τη βοήθεια και ενός υπολογιστή, που κατασκεύασαν οι 7

22 Βρετανοί επιστήμονες, ο οποίος ονομάσθηκε Colossus και, δυστυχώς, καταστράφηκε με το τέλος του Πολέμου Τρίτη Περίοδος Κρυπτογραφίας (1950 μ.χ. - Σήμερα) Αυτή η περίοδος χαρακτηρίζεται από την έξαρση της ανάπτυξης στους επιστημονικούς κλάδους των μαθηματικών, της μικροηλεκτρονικής και των υπολογιστικών συστημάτων. Η εποχή της σύγχρονης κρυπτογραφίας αρχίζει ουσιαστικά με τον Claude Shannon, αναμφισβήτητα ο πατέρας των μαθηματικών συστημάτων κρυπτογραφίας. Το 1949 δημοσίευσε το έγγραφο «Θεωρία επικοινωνίας των συστημάτων μυστικότητας» (Communication Theory of Secrecy Systems) στο τεχνικό περιοδικό Bell System και λίγο αργότερα στο βιβλίο του, «Μαθηματική Θεωρία της Επικοινωνίας» (Mathematical Theory of Communication), μαζί με τον Warren Weaver. Αυτά, εκτός από τις άλλες εργασίες του επάνω στη θεωρία δεδομένων και επικοινωνίας καθιέρωσε μια στερεά θεωρητική βάση για την κρυπτογραφία και την κρυπτανάλυση. Εκείνη την εποχή η κρυπτογραφία εξαφανίζεται και φυλάσσεται από τις μυστικές υπηρεσίες κυβερνητικών επικοινωνιών όπως η NSA. Πολύ λίγες εξελίξεις δημοσιοποιήθηκαν ξανά μέχρι τα μέσα της δεκαετίας του '70, όταν όλα άλλαξαν. 1.4 Αλγόριθμοι Όπως ορίστηκε παραπάνω, οι κρυπτογραφικοί αλγόριθμοι αποτελούν το μέσο για το μετασχηματισμό μηνυμάτων σε κρυπτογραφημένα κείμενα. Μια διαδικασία κρυπτογράφησης συμβολίζεται ως : c= e k (m), όπου m είναι το αρχικό κείμενο, e είναι ο αλγόριθμος κρυπτογράφησης, k είναι το μυστικό κλειδί και c είναι το κρυπτογραφημένο κείμενο. Αντίστοιχα, η διαδικασία της αποκρυπτογράφησης συμβολίζεται ως : m = d k (c). Συνήθως ο κρυπτογραφικός αλγόριθμος e είναι δημόσια γνωστός και η μυστικότητα του αρχικού κειμένου m εξαρτάται αποκλειστικά από τη μυστικότητα του μυστικού κλειδιού k, αφού το κρυπτογραφημένο κείμενο θεωρείται ότι είναι γνωστό. Αντίστοιχα με τα κρυπτογραφικά συστήματα και οι αλγόριθμοι γενικά ταξινομούνται σε κατηγορίες ανάλογα με τα κλειδιά (συμμετρικούς και ασύμμετρους) και τον τρόπο κρυπτογράφησης των μηνυμάτων (αντικατάστασης και μετατόπισης) Αλγόριθμοι αντικατάστασης Αλγόριθμος του Καίσαρα Ο αλγόριθμος του Καίσαρα αποτελεί μια ειδική κατηγορία των κρυπτογραφικών αλγορίθμων απλής αντικατάστασης (simple substitution cipher). Σε αυτόν τον κρυπτογραφικό αλγόριθμο, το κλειδί αποτελεί μια μετάθεση των γραμμάτων της αλφαβήτου. Η κρυπτογράφηση περιλαμβάνει αντικατάσταση κάθε γράμματος με το αντίστοιχο γράμμα που προκύπτει από τη μετάθεση. Αντίστοιχα, η αποκρυπτογράφηση γίνεται με χρήση της ανάστροφης μετάθεσης. Στον κρυπτογραφικό αλγόριθμο του Καίσαρα (Caesar cipher) το μήνυμα (αρχικό κείμενο) πρέπει να είναι μια ακολουθία από γράμματα. Κάθε γράμμα αντιστοιχίζεται με 8

23 έναν αριθμό. Το κλειδί k είναι ένας αριθμός από το 1 ως το 25. Ο ορισμός του αλγορίθμου εκφράζεται ως εξής: Κατά την κρυπτογράφηση το κλειδί k προστίθεται στον αριθμό κάθε γράμματος του μηνύματος και υπολογίζεται το υπόλοιπο της διαίρεσης του αθροίσματος με το πλήθος των γραμμάτων της αλφαβήτου (για το λατινικό αλφάβητο έχουμε modulo 26 αφού το πλήθος των γραμμάτων είναι 26). Έτσι, για παράδειγμα, εάν το κλειδί k είναι το 3, τότε το μήνυμα SECURE κρυπτογραφείται σε VHFXUH. Πιο συγκεκριμένα για το γράμμα S προκύπτει το V γιατί το S έχει αντίστοιχο αριθμό το 18 και κρυπτογραφείται με τον υπολογισμό = 21 οπότε 21mod26 = 21, που αντιστοιχεί στο γράμμα V. A B C D E F G H I J K L M N O P Q R S T U V W X Y Z Ο κρυπτογραφικός αλγόριθμος του Καίσαρα είναι ουσιαστικά ένας συνηθισμένος τύπος κρυπτογραφικού αλγορίθμου ροής. Είναι πολύ εύκολο να σπάσει (κρυπταναλυθεί). Η μέθοδος της εκτεταμένης αναζήτησης θα δώσει αποτέλεσμα γιατί υπάρχουν μόνο 25 διαφορετικά κλειδιά, καθώς το σύνολο των κλειδιών είναι ίσο με το σύνολο των όλων των δυνατών μεταθέσεων των γραμμάτων, ίσο δηλαδή με το πλήθος των γραμμάτων του λατινικού αλφαβήτου. Γενικότερα, παρά τον μεγάλο αριθμό κλειδιών, πράγμα που αποκλείει μια απλά επίθεση εξαντλητικής αναζήτησης (exhaustive search attack), ένας κρυπτογραφικός αλγόριθμος απλής αντικατάστασης είναι εύκολο να σπάσει. Ένας λόγος είναι ότι σε κάθε φυσική γλώσσα τα γράμματα της αλφαβήτου παρουσιάζουν πολύ διαφορετικές συχνότητες εμφάνισης στις διάφορες προτάσεις π.χ. στα Ελληνικά το γράμμα Α είναι πολύ πιο συχνά επαναλαμβανόμενο σε σχέση με γράμματα όπως Ζ και το Ψ. Αυτή η πληροφορία συνδυαζόμενη με συχνότητες εμφάνισης συνδυασμών δύο ή τριών γραμμάτων μπορεί να χρησιμοποιηθεί για να εξαχθούν αντιστοιχίες μεταξύ του αρχικού και του κρυπτογραφημένου κειμένου, από τις οποίες είναι δυνατόν στη συνέχεια να προκύψει η τιμή του κλειδιού. Αλγόριθμος Vigenere Ένας άλλος παρόμοιος κρυπτογραφικός αλγόριθμος είναι ο αλγόριθμος Vigenere. Σε αυτόν τα γράμματα αντιστοιχίζονται πάλι με τους αριθμούς από το 0 ως το 25, όπως ακριβώς και με τον κρυπτογραφικό αλγόριθμο του Καίσαρα. Όμως το μυστικό κλειδί, τώρα, δεν είναι ένας αριθμός αλλά μια μικρή ακολουθία γραμμάτων, όπως γα παράδειγμα μια λέξη. Κατά την κρυπτογράφηση προστίθεται το αριθμητικό ισοδύναμο κάθε γράμματος του αρχικού κειμένου με το αριθμητικό ισοδύναμο ενός γράμματος του κλειδιού. Επειδή συνήθως το μήκος του αρχικού κειμένου είναι μεγαλύτερο από το μήκος του κλειδιού, τα 9

24 γράμματα του κλειδιού ανακυκλώνονται και επαναλαμβάνεται η χρήση τους όσο χρειάζεται. Αξίζει να σημειώσουμε ότι ο κρυπτογραφικός αλγόριθμος του Καίσαρα είναι μια ειδική περίπτωση του κρυπτογραφικού αλγορίθμου Vigenere για την περίπτωση που το μήκος της λέξης του κλειδιού είναι ίσο με 1. Αυτός ο αλγόριθμος ανήκει στην κατηγορία των αποκαλούμενων Κρυπτογραφικών Αλγορίθμων Πολυαλφαβητκής Αντικατάστασης (polyalphabetic substitution ciphers). Ο κρυπτογραφικός αλγόριθμος Vigenere είναι και αυτός μια ειδική μορφή κρυπτογραφικού αλγορίθμου ροής. Ακριβώς όπως με τον κρυπτογραφικό αλγόριθμο του Καίσαρα, χρησιμοποιεί πρόσθεση με υπολογισμό του modulo 26 αντί για πρόσθεση με υπολογισμό του modulo 2 για να συνδυάσει το αρχικό κείμενο με το κλειδί. Είναι απλά η λέξη-κλειδί, η οποία επαναλαμβάνεται όσο χρειάζεται. Φυσιολογικά ο κρυπτογραφικός αλγόριθμος Vigenere σπάζει εύκολα. Αλγόριθμος σημειωματάριου μιας χρήσης Ο κρυπτογραφικός αλγόριθμος του σημειωματάριου μιας χρήσης (The one-time pad cipher) ή αλγόριθμος του Vernam είναι μια ειδική παραλλαγή κρυπτογραφικού αλγορίθμου ροής. Το ψευδοτυχαίο κλειδί αντικαθίσταται από μια τυχαία (μη επαναλαμβανόμενη) ακολουθία δυαδικών ψηφίων (bits) η οποία χρησιμοποιείται μόνο μια φορά (από αυτό προκύπτει και ο χαρακτηρισμός «μιας χρήσης»). Αν χρησιμοποιηθεί σωστά, ο αλγόριθμος αυτός αποδεδειγμένα δεν είναι δυνατόν να σπάσει (unbreakable). Το μοναδικό πρόβλημα αφόρα τη διαχείριση των κλειδιών. Πριν να καταστεί δυνατή η κρυπτογραφημένη επικοινωνία, τα δυο μέρη (αποστολέας και παραλήπτης) πρέπει να συμφωνήσουν σε τόσο υλικό τυχαίων κλειδιών όσα και τα δεδομένα που θα μεταδοθούν Αλγόριθμοι Μετατόπισης Μέθοδος της σκυτάλης Είναι μια μέθοδος κρυπτογραφίας που χρησιμοποιούνταν από τους αρχαίους Έλληνες. Η μέθοδος αυτή αποτελείται από μια σκυτάλη ορισμένης διαμέτρου, η οποία έχει τυλιγμένη γύρω της ελικοειδώς μια λωρίδα δέρματος. Το κείμενο γράφεται σε στήλες, ένα γράμμα σε κάθε έλικα. Όταν ξετυλίγεται η λωρίδα, το κείμενο είναι ακατάλληλο εξαιτίας της ανάμειξης των γραμμάτων. Το κλειδί στην μυστικότητα του μηνύματος είναι η διάμετρος του κυλίνδρου (σκυτάλης- Εικόνα 5). 10

25 Εικόνα 5 Η Σπαρτιατική Σκυτάλη [12] Παράδειγμα: Έστω ότι θέλουμε να κρυπτογραφήσουμε το μήνυμα: Help me I am under attack. Αφού τυλίξουμε μια λωρίδα δέρματος γύρω από τη σκυτάλη, γράφουμε το μήνυμά μας. H E L P M E I A M U N D E R A T T A C K Ξετυλίγοντας το δέρμα, θα πάρουμε το εξής κρυπτογραφημένο μήνυμα: "HENTEIDTLAEAPMRCMUAK". Η αποκρυπτογράφηση γίνεται με τον ίδιο τρόπο. Ο παραλήπτης του μηνύματος αφού τυλίξει τη λωρίδα δέρματος γύρω από μια σκυτάλη ιδίας διαμέτρου με αυτή του αποστολέα θα μπορέσει να διαβάσει το αρχικό κείμενο: Help me I am under attack. 11

26 12

27 2. Συμμετρικά Κρυπτοσυστήματα 2.1 Συμμετρικά Κρυπτοσυστήματα και Συμμετρικοί Αλγόριθμοι Αναφέρονται και ως αλγόριθμοι μοναδικού κλειδιού ή μυστικού κλειδιού ή συμβατικής κρυπτογραφίας. Στην περίπτωση των συμμετρικών αλγορίθμων ο πομπός και ο δέκτης χρησιμοποιούν το ίδιο κλειδί για κρυπτογράφηση και αποκρυπτογράφηση. Υλοποιούνται τόσο με υλικό όσο και με λογισμικό. Η συμμετρική κρυπτογραφία εγγυάται την εμπιστευτικότητα (confidentiality) των δεδομένων αφού κρυπτογραφεί το μήνυμα με το μυστικό κλειδί. Το μήνυμα που παράγεται αποκρυπτογραφείται από τον παραλήπτη με τη βοήθεια του ίδιου κλειδιού, το οποίο πρέπει να μείνει μυστικό μεταξύ των δύο. Η ασφάλεια τους βασίζεται στην μυστικότητα του κλειδιού. Τα συμμετρικά κρυπτοσυστήματα προϋποθέτουν την ανταλλαγή του κλειδιού μέσα από ένα ασφαλές κανάλι επικοινωνίας ή μέσα από τη φυσική παρουσία των προσώπων. Αυτό το χαρακτηριστικό καθιστά δύσκολη την επικοινωνία μεταξύ απομακρυσμένων ατόμων. Για την ασφαλή χρήση της συμβατικής κρυπτογραφίας πρέπει να πληρούνται οι ακόλουθες προϋποθέσεις: Απαιτείται η ύπαρξη ενός ισχυρού (strong) αλγορίθμου κρυπτογράφησης. Ως ελάχιστη απαίτηση αναφέρεται η ύπαρξη αλγορίθμου για τον οποίο ο επιτιθέμενος πρέπει να είναι αδύνατο να κρυπταναλύσει το κρυπτογράφημα ή να ανακαλύψει το κλειδί, ακόμη και αν κατέχει κάποια κρυπτογραφήματα μαζί με τα αντίστοιχα αρχικά μηνύματα, από τα οποία παράχθηκε καθένα από αυτά τα κρυπτογραφήματα. Ο πομπός και ο δέκτης πρέπει να έχουν παραλάβει τα αντίγραφα του μυστικού κλειδιού με ασφαλή τρόπο και να διαφυλάσσουν αυτό το μυστικό κλειδί σε ασφαλές μέρος. Εάν κάποιος γνωρίζει τον αλγόριθμο και ανακαλύψει το κλειδί, τότε όλη η επικοινωνία που χρησιμοποιεί αυτό το κλειδί είναι αναγνώσιμη, συνεπώς παραβιάζεται η εμπιστευτικότητα. Σημειώνεται ότι αδύναμο κρίκο στην ασφάλεια της συμβατικής κρυπτογραφίας αποτελεί μόνον η μυστικότητα του κλειδιού και όχι η μυστικότητα του αλγορίθμου που χρησιμοποιείται. Αυτό θεωρείται δεδομένο, εάν υποτεθεί, ότι για τον επιλεγέντα αλγόριθμο ισχύει η προφανής σχεδιαστική απαίτηση, να είναι αδύνατο να αποκρυπτογραφηθεί ένα μήνυμα μόνο με γνώση του κρυπτογραφήματος και του αλγορίθμου κρυπτογράφησης. Συνεπώς, δε χρειάζεται να παραμένει μυστικός ο αλγόριθμος, αλλά μόνο το μυστικό κλειδί. Το χαρακτηριστικό αυτό γνώρισμα της συμβατικής κρυπτογραφίας την καθιστά κατάλληλη για ευρεία χρήση. Το γεγονός ότι δε χρειάζεται να παραμένει μυστικός ο αλγόριθμος επιτρέπει στους κατασκευαστές να αναπτύσσουν χαμηλού κόστους υλοποιήσεις, τόσο σε λογισμικό όσο και σε υλικό, για εφαρμογές κρυπτογράφησης δεδομένων. 13

28 2.2 Διαχωρισμός συμμετρικών συστημάτων Τα συμμετρικά συστήματα ταξινομούνται με βάση τον τρόπο με τον οποίο επεξεργάζεται ο αλγόριθμος το αρχικό κείμενο σε: Κωδικοποιητές Ροής (stream cipher) Κωδικοποιητές Τμημάτων (block cipher) Κωδικοποιητές Ροής (stream cipher) Ένας κωδικοποιητής ροής επεξεργάζεται κατά συνεχή τρόπο τα στοιχεία εισόδου και κάθε φορά παράγεται ως έξοδος ένα στοιχείο, με τη σειρά που καταφθάνουν τα δεδομένα. Συνδυάζει με τη χρήση της λογικής πράξης XOR το αρχικό κείμενο με μία τυχαία αλληλουχία δεδομένων για να παράγει το κωδικοποιημένο κείμενο. Ένας συμβολισμός του κρυπτογραφικού αλγόριθμου ροής θα μπορούσε να είναι : c i = m i k i, για i 0, Όπου m 0, m 1,... είναι τα bits του αρχικού κειμένου, k 0, k 1,... είναι τα bits του κλειδιού και c 0,c 1,..είναι τα bits του κρυπτογραφημένου κειμένου. Το σύμβολο συμβολίζει την πράξη της αποκλειστικής διάζευξης (exclusive or) μεταξύ των bits. Αντίστοιχα για την αποκρυπτογράφηση θα ισχύει : m i = c i k i, για i 0, Δηλαδή, η αποκρυπτογράφηση γίνεται με τον ίδιο τρόπο που γίνεται η κρυπτογράφηση ροής. Οι κρυπτογραφικοί αλγόριθμοι ροής θωρούνται σχετικά απλοί και εύκολα υλοποιήσιμοι. Οι πιο γνωστοί stream ciphers είναι οι RC4 και SEAL. Εικόνα 6 Κωδικοποιητής Ροής 14

29 2.2.2 Κωδικοποιητές Τμημάτων (block cipher) Ένας κωδικοποιητής τμήματος επεξεργάζεται την είσοδο ενός τμήματος στοιχείων κάθε φορά, παράγοντας ένα τμήμα εξόδου για κάθε συγκεκριμένο τμήμα εισόδου. Τα δεδομένα που πρόκειται να κρυπτογραφηθούν πρέπει να έχουν τη μορφή μιας σειράς από n δέσμες/τμήματα (block) δυαδικών ψηφίων (bits). Αρχικά είχε χρησιμοποιηθεί 64-bit μέγεθος block, ενώ σήμερα συνηθίζεται το 128-bit μέγεθος block. Το αρχικό κείμενο m κατόπιν κρυπτογραφείται με εφαρμογή της κρυπτογραφικής συνάρτησης e και του μυστικού κλειδιού k. Το αποτέλεσμα είναι μια δέσμη κρυπτογραφημένου κειμένου c, που συνήθως έχει το ίδιο μήκος με την αντίστοιχη δέσμη του αρχικού κειμένου. Σε έναν τέτοιο κρυπτογραφικό αλγόριθμο μπορούμε να αναπαραστήσουμε τη λειτουργία κρυπτογράφησης με τη σχέση :, όπου m είναι η δέσμη αρχικού κειμένου, k είναι το μυστικό κλειδί και c είναι η δέσμη κρυπτογραφημένου κειμένου. Επιπρόσθετα, μπορούμε να αναπαραστήσουμε τη λειτουργία της αποκρυπτογράφησης d με τη σχέση :. Στην πιο απλή υλοποίηση του, το αρχικό κείμενο (plaintext) διαιρείται σε δύο blocks και στη συνέχεια τροφοδοτείται στο σύστημα για να παραχθούν τα κρυπτογραφημένα blocks (cipher text). Οι πιο δημοφιλείς block ciphers είναι οι DES (Data Encryption Standard), AES (Advanced Encryption Standard), Blowfish, Twofish, κ.α.. Τα πιο σημαντικά χαρακτηριστικά ενός κωδικοποιητή τμημάτων είναι: Η διαδραστική φύση τους, όπου βασικοί μετασχηματισμοί επαναλαμβάνονται πολλές φορές. Το αυξημένο μήκος block. Οι πολύπλοκες λειτουργίες μεταθέσεων και αντικαταστάσεων (προσθέτοντας πιο πολλές μη γραμμικές λειτουργίες). Η διαδικασία δημιουργίας υποκλειδιών ώστε να αποκτηθεί μία αλληλουχία από υποκλειδιά, από μόνο και μόνο ένα κλειδί. Εικόνα 7 Κωδικοποιητής Τμημάτων 15

30 2.3 Τρόποι λειτουργίας κωδικοποιητών τμημάτων Electronic Codebook (ECB) Εικόνα 8 Electronic Code Book mode Στη μέθοδο αυτή, η κρυπτογράφηση ενός τμήματος μηνύματος εξαρτάται αποκλειστικά από το κλειδί και από το τμήμα αυτό του μηνύματος. Ο όρος «codebook» χρησιμοποιείται ακριβώς επειδή για δεδομένο κλειδί υπάρχει ένα μοναδικό κρυπτογράφημα για κάθε τμήμα αρχικού κειμένου των 64-bit. Επομένως, κάποιος μπορεί να αναλογιστεί ένα μεγάλου μεγέθους ηλεκτρονικό βιβλίο στο οποίο υπάρχει μία εγγραφή για κάθε πιθανό πρότυπο αρχικού κειμένου των 64-bit, το οποίο καταγράφεται με το αντίστοιχο κρυπτογράφημα του. Με τη μέθοδο ECB, εάν ένα τμήμα αρχικού κειμένου των 64-bit εμφανίζεται περισσότερες από μία φορές στο μήνυμα, αυτό παράγει πάντοτε το ίδιο κρυπτογράφημα. Για το λόγο αυτό, σε μεγάλα μηνύματα ο τρόπος λειτουργίας ECB μπορεί να θεωρηθεί μη ασφαλής. Για παράδειγμα αν χρησιμοποιήσουμε τον DES με ECB για να κρυπτογραφήσουμε μία εικόνα 64x64 pixel με 265 χρώματα παρατηρούμε πως η μέθοδος ECB διατηρεί κάποια τμήματα (pattern preservation): Για την αντιμετώπιση των ρηγμάτων ασφάλειας του ECB είναι επιθυμητή η αξιοποίηση μιας τεχνικής, στα πλαίσια της οποίας ακόμη και αν επαναλαμβάνεται το ίδιο τμήμα αρχικού κειμένου να παράγονται διαφορετικοί κωδικοποιητές τμημάτων. Ακολούθως παρουσιάζονται τρεις συνήθεις λύσεις με αυτά τα χαρακτηριστικά, η μέθοδος CBC, η μέθοδος CFB και η μέθοδος OFB. 16

31 2.3.2 Μέθοδος Αλυσιδωτής Κρυπτογράφησης Τμημάτων (CBC) Εικόνα 9 Cipher Block Chaining mode Στη μέθοδο Αλυσιδωτής Κρυπτογράφησης Τμημάτων (Cipher Block Chaining CBC) η είσοδος στον αλγόριθμο κρυπτογράφησης είναι το αποτέλεσμα της πύλης XOR του τρέχοντος τμήματος αρχικού κειμένου και του προηγούμενου τμήματος κρυπτογραφήματος. Το ίδιο κλειδί χρησιμοποιείται σε κάθε τμήμα. Στην πραγματικότητα υπάρχει λογική διασύνδεση κατά την επεξεργασία της ακολουθίας των επιμέρους τμημάτων του αρχικού κειμένου. Η είσοδος της συνάρτησης κρυπτογράφησης για κάθε τμήμα κειμένου δε σχετίζεται άμεσα με το τμήμα του κειμένου αυτού, επομένως δεν εκτίθενται με τον ίδιο τρόπο επαναλαμβανόμενα τμήματα των 64-bit. Για την αποκρυπτογράφηση, κάθε τμήμα επεξεργάζεται από τον αλγόριθμο αποκρυπτογράφησης και στο αποτέλεσμα που προκύπτει εφαρμόζεται η συνάρτηση XOR με το προηγούμενο τμήμα κρυπτογραφήματος, ώστε τελικά παράγεται το αντίστοιχο τμήμα του αρχικού κειμένου. Αναλυτικά η λειτουργία της διαδικασίας ακολουθεί τα εξής βήματα: ] όπου με E K [X] συμβολίζεται η λειτουργία κρυπτογράφησης του αρχικού κειμένου Χ με χρήση του κλειδιού Κ και είναι η λειτουργία XOR. Επίσης με P i και C i συμβολίζονται τα τμήματα εισόδου και κρυπτογραφήματος για κάθε επανάληψη i, αντίστοιχα. Ακολούθως: όπου με D K [Υ] συμβολίζεται η λειτουργία αποκρυπτογράφησης του κρυπτογραφήματος Υ.Η παραπάνω διαδικασία παρουσιάζεται στην εικόνα 9. Για την παραγωγή του πρώτου τμήματος του κρυπτογραφήματος, εκτελείται η πράξη XOR σε ένα διάνυσμα αρχικοποίησης (Initialization Vector - IV) με το πρώτο τμήμα του αρχικού κειμένου. Στην αποκρυπτογράφηση, στο διάνυσμα αρχικοποίησης εκτελείται η πράξη XOR με την έξοδο του αλγορίθμου αποκρυπτογράφησης για την ανάκτηση του πρώτου τμήματος του αρχικού κειμένου. 17

32 Το διάνυσμα αρχικοποίησης IV πρέπει να είναι γνωστό τόσο στον πομπό όσο και στο δέκτη. Για την επίτευξη μέγιστης ασφάλειας πρέπει να διασφαλίζεται η μυστικότητα του διανύσματος αρχικοποίησης με τον ίδιο τρόπο που συμβαίνει και για το κλειδί. Αυτό επιτυγχάνεται με την αποστολή του διανύσματος αρχικοποίησης χρησιμοποιώντας τη μέθοδο ECB. Το διάνυσμα αρχικοποίησης προστατεύεται επίσης και για έναν ακόμη λόγο: εάν ένας επιτιθέμενος κατορθώσει να εξαπατήσει το δέκτη ώστε να χρησιμοποιηθεί εσφαλμένη τιμή για το διάνυσμα αρχικοποίησης, τότε ο επιτιθέμενος θα είναι σε θέση να αναστρέψει επιλεγμένα δυαδικά ψηφία στο πρώτο τμήμα του αρχικού κειμένου. Αυτό προκύπτει ως ακολούθως: Χρησιμοποιείται ο συμβολισμός X[j] για το j-οστό ψηφίο της ποσότητας Χ 64-bit. Τότε: Χρησιμοποιώντας τις ιδιότητες της XOR ισχύει: όπου ο τονούμενος συμβολισμός δηλώνει συμπληρώματα δυαδικών ψηφίων. Συνεπώς, αν κάποιος μπορεί να τροποποιήσει τα δυαδικά ψηφία του διανύσματος αρχικοποίησης, τα αντίστοιχα δυαδικά ψηφία της λαμβανόμενης τιμής του P1 μπορούν επίσης να τροποποιηθούν. Η μέθοδος CBC χρησιμοποιείται ευρύτατα σε πληθώρα εφαρμογών ασφάλειας. Από τη σύγκριση των δύο παραπάνω μεθόδων προκύπτουν τα εξής συμπεράσματα: Η CBC χρησιμοποιεί δεδομένα από δύο γειτονικές μονάδες για να αποφύγει την διατήρηση τμημάτων, κάτι που συμβαίνει με την ECB. H CBC είναι πιο διαδεδομένη μέθοδος για τη λειτουργία πρακτικών εφαρμογών. Χρησιμοποιώντας το παράδειγμα με την εικόνα με την μέθοδο CBC παίρνουμε το: Μέθοδος Ανάδρασης Κρυπτογραφημάτων (CFB) Είναι δυνατόν ένας κωδικοποιητής τμήματος (block cipher) να μετατραπεί σε κωδικοποιητή ροής (stream cipher) χρησιμοποιώντας τη μέθοδο Ανάδρασης Κρυπτογραφημάτων (Cipher Feedback CFB). Η αξιοποίηση κωδικοποιητή ροής εξαλείφει την ανάγκη συμπλήρωσης ενός μηνύματος ώστε για να αποτελείται από ακέραιο αριθμό τμημάτων, ενώ μπορεί να λειτουργήσει σε πραγματικό χρόνο. Κατά συνέπεια, εάν μεταδίδεται μία ροή χαρακτήρων κάθε χαρακτήρας μπορεί να κρυπτογραφηθεί και να διαβιβαστεί αμέσως χρησιμοποιώντας έναν κωδικοποιητή ροής προσανατολισμένο σε χαρακτήρες. 18

33 Εικόνα 10 Cipher Feedback mode Μία επιθυμητή ιδιότητα των κωδικοποιητών ροής είναι η διατήρηση του ίδιου μήκους με το αρχικό κείμενο και στο κρυπτογράφημα, ώστε να μη χρησιμοποιείται άσκοπα εύρος του διαύλου μεταφοράς. Παραπάνω απεικονίζεται το διάγραμμα CFB (εικόνα 10). Έχει θεωρηθεί ότι η μονάδα μεταφοράς λαμβάνει j bit, με τυπική τιμή για το j την τιμή 8. Όπως συνέβαινε και στην περίπτωση του CBC, οι μονάδες του αρχικού κειμένου διασυνδέονται λειτουργικά με τέτοιον τρόπο, ώστε το κρυπτογράφημα οποιουδήποτε αρχικού κειμένου να αποτελεί συνάρτηση του συνολικού προηγούμενου κειμένου. Κατά τη διαδικασία της κρυπτογράφησης με τη CFB μέθοδο, η είσοδος της συνάρτησης κρυπτογράφησης είναι ένας καταχωρητής ολίσθησης 64-bit που αρχικοποιείται με κάποιο διάνυσμα αρχικοποίησης IV. Στα j αριστερά, δηλαδή στα j πλέον σημαντικά ψηφία της εξόδου της συνάρτησης κρυπτογράφησης, εκτελείται η πράξη XOR με την πρώτη μονάδα του αρχικού κειμένου P 1, ώστε να παραχθεί η πρώτη μονάδα του κρυπτογραφήματος C 1, η οποία μετά αποστέλλεται. Ακολούθως, τα περιεχόμενα του καταχωρητή ολίσθησης ολισθαίνουν αριστερά κατά j bit και το C 1 τοποθετείται στα δεξιά, δηλαδή στα λιγότερο σημαντικά j bit του καταχωρητή ολίσθησης. Η διαδικασία αυτή επαναλαμβάνεται μέχρις ότου κρυπτογραφηθούν όλες οι μονάδες αρχικού κειμένου. Για την αποκρυπτογράφηση χρησιμοποιείται το ίδιο σχήμα, αλλά στη λαμβανόμενη μονάδα κρυπτογραφημάτων εκτελείται η πράξη XOR με την έξοδο της συνάρτησης κρυπτογράφησης για την παραγωγή της μονάδας αρχικού κειμένου. Σημειώνεται ότι χρησιμοποιείται η συνάρτηση κρυπτογράφησης και όχι η συνάρτηση αποκρυπτογράφησης. Εάν θεωρηθεί ότι το Sj(X) ορίζεται ως τα j σημαντικότερα bit του X, τότε: Επομένως, Η ίδια ακριβώς λογική ακολουθείται και στα επόμενα βήματα της συνολικής επεξεργασίας. Ένα πρόβλημα αυτής της μεθόδου είναι ότι αν καταστραφεί ένα byte τότε θα υπάρξει πρόβλημα στην αποκρυπτογράφηση των 8 bytes στα οποία θα συμμετέχει όσο είναι μέσα στον καταχωρητή. Αυτό όμως αποτελεί μικρό τοπικό πρόβλημα. 19

34 2.3.4 Μέθοδος Ανάδρασης Εξόδου (OFB) Εικόνα 11 Output Feedback mode Η μέθοδος λειτουργίας ανάδρασης εξόδου (Output Feedback OFB) είναι παρόμοια, γενικά, με τη μέθοδο λειτουργίας CFB. Η κύρια διαφορά τους έγκειται στο γεγονός ότι ο καταχωρητής ολίσθησης επανατροφοδοτείται από την έξοδο της λειτουργίας κρυπτογράφησης, ενώ στη μέθοδο CFB ο καταχωρητής ολίσθησης επανατροφοδοτείται από την κρυπτογραφημένη ακολουθία. Το πιο βασικό πλεονέκτημα της OFB μεθόδου είναι η διασφάλιση ότι πιθανή εμφάνιση σφαλμάτων κατά τη μετάδοση έχει περιορισμένη επίδραση και μόνο στα αντίστοιχα bits του μηνύματος, συνεπώς επιτυγχάνεται ο περιορισμός διάδοσης σφαλμάτων. Άλλο πλεονέκτημα της μεθόδου OFB αποτελεί η εκ των προτέρων δυνατότητα υπολογισμού των ακολουθιών των κλειδιών, πριν την παραγωγή των ακολουθιών των καθαρού μηνύματος. Η δυνατότητα αυτή οδηγεί σε βελτίωση της επίδοσης του συστήματος. Παρόλα αυτά, η μέθοδος λειτουργίας OFB διευκολύνει δυνητικούς επιτιθέμενους στην τροποποίηση μηνυμάτων: αφού η τροποποίηση ενός bit μιας ακολουθίας οδηγεί σε αλλαγή του αντίστοιχου bit που λαμβάνει ο παραλήπτης, αυτή την ιδιότητα μπορεί να εκμεταλλευθεί ο επιτιθέμενος ώστε να μη γίνεται αντιληπτή η αλλαγή που προκαλεί από τα αθροίσματα ελέγχου Counter Mode Ένα κοινό πρόβλημα που παρουσιάζουν οι παραπάνω μέθοδοι, εκτός από την ECB είναι πως πρέπει να γίνει αποκρυπτογράφηση όλων για να μπορούμε να διαβάσουμε ένα κομμάτι δεδομένων. Αυτό αποτελεί σοβαρό πρόβλημα, ιδιαίτερα σε περιπτώσεις που η πρόσβαση στα δεδομένα γίνεται με μη σειριακό τρόπο, όπως η πρόσβαση σε αρχεία σκληρού δίσκου. Για να λυθεί το παραπάνω χρησιμοποιούμε την Counter Mode. Με την μέθοδο αυτή το αρχικό κείμενο δεν κρυπτογραφείται άμεσα. Πρώτα κρυπτογραφείται ένα διάνυσμα αρχικοποίησης (IV) και εκτελείται η λογική πράξη XOR με το πρώτο κομμάτι κειμένου. Για κάθε νέο κομμάτι κειμένου το IV αυξάνεται κατά ένα και η διαδικασία επαναλαμβάνεται. Έτσι κάθε block κειμένου μπορεί να αποκρυπτογραφηθεί ανεξάρτητα από τα υπόλοιπα ανάλογα με τη θέση του. 20

35 Εικόνα 12 Counter mode Σύγκριση Επιγραμματικά για την επιλογή μίας από τις παραπάνω μεθόδους πρέπει να λάβουμε υπόψη τα εξής: ECB είναι ο πιο εύκολος και ο πιο γρήγορος αλλά ο πιο αδύναμος όσων αφορά την ασφάλεια. Μπορεί να χρησιμοποιηθεί για μικρό όγκο τυχαίων δεδομένων όπως άλλα κλειδιά. Για φυσιολογικά αρχικά κείμενα μπορούν να χρησιμοποιηθούν οι CBC, CFB και OFB. Για αρχεία καταλληλότερος θεωρείται ο CBC. Για εφαρμογές που χειρίζονται αλληλουχίες χαρακτήρων, όπου κάθε χαρακτήρας επεξεργάζεται ξεχωριστά, πιο κατάλληλη μέθοδος θεωρείται η CFB. 2.4 Επαναληπτικοί κρυπτογραφικοί αλγόριθμοι τμημάτων και ο αλγόριθμος Feistel Επαναληπτικοί κρυπτογραφικοί αλγόριθμοι Οι Επαναληπτικοί κρυπτογραφικοί αλγόριθμοι τμημάτων (Iterated block ciphers) εφαρμόζουν επαναληπτικά μια κυκλική λειτουργία (round function), η οποία αντιστοιχίζει μια δέσμη μήκους n bit σε ένα άλλο τμήμα μήκους πάλι n bit. Κάθε εφαρμογή της κυκλικής λειτουργίας ονομάζεται ανακύκλωση (round) και ο αριθμός των ανακυκλώσεων συμβολίζεται με r. Σε κάθε εφαρμογή της κυκλικής λειτουργίας χρησιμοποιείται ένα μέρος κλειδιού (sub key) k i (1 i r), το οποίο εξάγεται από το κλειδί k. Γι αυτό το λόγο πρέπει να υπάρχει μια προκαθορισμένη μέθοδος που να υπολογίζει ένα σύνολο από μέρη ενός κλειδιού. Για να γίνει δυνατή η αποκρυπτογράφηση, για κάθε μέρος κλειδιού η κυκλική συνάρτηση πρέπει 21

36 να είναι αντιστρέψιμη (invertible), δηλαδή να παρέχει μια αντίστροφη λειτουργία. Οπότε, κατά την αποκρυπτογράφηση εφαρμόζονται οι κυκλικές λειτουργίες με ανάστροφη σειρά. Κρυπτογραφικός αλγόριθμος Feistel Σχεδόν το σύνολο των συμβατικών αλγορίθμων κρυπτογραφίας τμημάτων δεδομένων, συμπεριλαμβανομένου και του DΕS, διατηρούν μία δομή που περιγράφηκε πρώτα από τον H. Feistel της ΙΒΜ το Η δομή αυτή παρουσιάζεται παρακάτω. Οι είσοδοι στον αλγόριθμο κρυπτογράφησης είναι ένα τμήμα αρχικού κειμένου μήκους 2 λέξεων και ένα κλειδί Κ. Το τμήμα αρχικού κειμένου διαιρείται σε δύο ίσα τμήματα, L 0 και R 0. Τα δύο τμήματα των δεδομένων ακολουθούν n επαναληπτικά βήματα επεξεργασίας και στη συνέχεια συνδυάζονται για να παράγουν το τμήμα κρυπτογραφήματος. Κάθε κύκλος i λαμβάνει ως εισόδους τα L i-1 και R i-1 που παράγονται από τον προηγούμενο κύκλο, καθώς επίσης και ένα υποκλειδί K i (subkey) που παράγεται από το αρχικό κλειδί Κ. Γενικά, τα υποκλειδιά Κ i είναι διαφορετικά από το Κ και διαφορετικά μεταξύ τους, ενώ παράγονται από το κλειδί και από έναν αλγόριθμο παραγωγής υποκλειδιών. Τα επαναληπτικά βήματα ακολουθούν την ίδια δομή: Στα δεδομένα που βρίσκονται στην αριστερή πλευρά πραγματοποιείται μία αντικατάσταση. Η αντικατάσταση επιτυγχάνεται με την εφαρμογή μιας συνάρτησης F (round function) στα δεδομένα της δεξιάς πλευράς και έπειτα συνδυάζοντας την έξοδο της συνάρτησης με τα δεδομένα της αριστερής πλευράς με τον τελεστή Exclusive-OR - XOR. Η συνάρτηση F έχει την ίδια γενική δομή για κάθε κύκλο, αλλά παραμετροποιείται από το υποκλειδί K f του εκάστοτε κύκλου. Μετά από αυτή την αντικατάσταση, εκτελείται μία αντιμετάθεση των πλευρών των δεδομένων. 22

37 Εικόνα 13 Κλασικό δίκτυο Feistel Η ακριβής υλοποίηση ενός δικτύου Feistel εξαρτάται από την επιλογή των ακόλουθων παραμέτρων και χαρακτηριστικών: Μέγεθος των τμημάτων (block size): Όσο μεγαλύτερο είναι το μέγεθος των τμημάτων τόσο αυξάνεται ο βαθμός ασφάλειας και μειώνεται η ταχύτητα κρυπτογράφησης και αποκρυπτογράφησης. Τυπικό μέγεθος τμήματος είναι τα 64- bit και αποτελεί το συνηθέστερο στο σχεδιασμό των τμημάτων κρυπτογράφησης. Μέγεθος κλειδιού (key size): Όσο μεγαλύτερο είναι το μέγεθος κλειδιού τόσο εξασφαλίζεται υψηλότερος βαθμός ασφάλειας, αλλά μειώνεται η ταχύτητα 23

38 κρυπτογράφησης και αποκρυπτογράφησης. Τυπικό μέγεθος κλειδιού στους σύγχρονους αλγορίθμους είναι 128 bit. Αριθμός κύκλων (number of rounds): Βασικό χαρακτηριστικό της δομής Feistel αποτελεί το γεγονός ότι κάθε κύκλος προσφέρει ανεπαρκή ασφάλεια, αλλά η διαδοχή των επαναληπτικών βημάτων προσφέρει αυξημένη ασφάλεια. Τυπικό μέγεθος για τον αριθμό των κύκλων είναι 16 κύκλοι. Αλγόριθμος παραγωγής δευτερευόντων κλειδιών (subkey generation algorithm): Μεγαλύτερη πολυπλοκότητα στον αλγόριθμο πρέπει να οδηγεί σε μεγαλύτερη δυσκολία στην κρυπτανάλυση. Συνάρτηση κύκλου (round cycle): Μεγαλύτερη πολυπλοκότητα, σε γενικές γραμμές, σημαίνει μεγαλύτερη ρωμαλεότητα σε κρυπταναλυτικές επιθέσεις. Επιπλέον, στη βιβλιογραφία αναφέρονται άλλες δύο παράμετροι που λαμβάνονται υπόψη κατά το σχεδιασμό μιας δομής Feistel: Λογισμικό ταχείας κρυπτογράφησης και αποκρυπτογράφησης (fast software encryption and decryption): Σε αρκετές περιπτώσεις η κρυπτογράφηση ενσωματώνεται στις εφαρμογές ή σε βοηθητικές συναρτήσεις με τρόπο πολύπλοκο ώστε να αποκλείεται η δυνατότητα υλοποίησης σε υλικό, κατά συνέπεια η ταχύτητα της εκτέλεσης του αλγορίθμου αποβαίνει σημαντικός παράγοντας και προτείνεται η υλοποίηση σε λογισμικό. Ευκολία ανάλυσης (ease of analysis): Αν και είναι επιθυμητή η επίτευξη υψηλού βαθμού δυσκολίας κατά την κρυπτανάλυση ενός αλγορίθμου, υπάρχει σημαντικό όφελος εάν επιτευχθεί εύκολη ανάλυση του αλγορίθμου. Εάν ο αλγόριθμος μπορεί να εξηγηθεί συνοπτικά και με σαφήνεια, τότε είναι ευκολότερο να εξεταστεί για τυχόν τρωτά κρυπταναλυτικά σημεία και επομένως να αναπτυχθεί υψηλότερο επιπέδο ασφάλειας. Για παράδειγμα, ο αλγόριθμος DES δεν έχει εύκολη προς ανάλυση λειτουργικότητα. Η αποκρυπτογράφηση κατά Feistel είναι ουσιαστικά διαδικασία όμοια με τη διαδικασία κρυπτογράφησης και ο κανόνας που ακολουθείται είναι ο ακόλουθος: Ως είσοδοι χρησιμοποιούνται τόσο το κρυπτογράφημα όσο και τα υποκλειδιά Κ i με αντίστροφη σειρά. Αναλυτικά, χρησιμοποιείται το K n στον πρώτο κύκλο, το K n-1 στο δεύτερο κύκλο κλπ., έως ότου χρησιμοποιηθεί το K 1 στον τελευταίο κύκλο. Το χαρακτηριστικό αυτό είναι πράγματι ιδιαίτερα σημαντικό, αφού δε χρειάζεται εφαρμογή δύο διαφορετικών αλγορίθμων, ενός για την κρυπτογράφηση και ενός για την αποκρυπτογράφηση. 2.5 Συμμετρικοί αλγόριθμοι DES Tο σχήμα κρυπτογράφησης που έχει χρησιμοποιηθεί ευρύτατα είναι το Data Encryption Standard DES, που σχεδιάστηκε από την IBM και υιοθετήθηκε το 1977 από το National Institute of Standards and Technology NIST, USA, ως Federal Information Processing Standard 46 - FIPS PUB 46. Ο αλγόριθμος που έχει υλοποιηθεί στο σύστημα DES αναφέρεται ως Data Encryption Algorithm - DEA. 24

39 Ο αλγόριθμος αποτελεί αρχέτυπο κωδικοποιητή τμημάτων. Το αρχικό κείμενο (block) είναι μεγέθους 64-bit και το κλειδί έχει μήκος 56-bit. Στην πραγματικότητα και το κλειδί είναι μεγέθους 64-bit, παρόλα αυτά μόνο τα 56 από αυτά χρησιμοποιούνται, ενώ τα υπόλοιπα 8 χρησιμοποιούνται μόνο για έλεγχο ισοτιμίας και ύστερα απορρίπτονται. Τα απλά κείμενα μεγαλυτέρου μεγέθους επεξεργάζονται σε τμήματα των 64-bit. Αναλυτικά η λειτουργία του θα παρουσιαστεί σε επόμενο κεφάλαιο Triple DES Το ΤDES ή TDEA ή συνηθέστερα 3DES προτάθηκε αρχικά από τον W. Tuchman και το 1985 προτυποποιήθηκε στο ANSI X9.17, ώστε να χρησιμοποιηθεί σε οικονομικές εφαρμογές. Το 1999, με τη δημοσίευση του ως FIPS PUB 46-3, το TDES ενσωματώθηκε ως τμήμα της προτυποποίησης κρυπτογράφησης δεδομένων DES. Το TDES χρησιμοποιεί τρία κλειδιά και τρεις εκτελέσεις του αλγορίθμου DES. Ο αλγόριθμος ακολουθεί τη διαδοχή: κρυπτογράφηση, αποκρυπτογράφηση, κρυπτογράφηση (EDE encryption decryption - encryption). Η αποκρυπτογράφηση ακολουθεί ακριβώς την ίδια διαδικασία με τα κλειδιά σε αντίστροφη χρήση. Το TDES, με την υποστήριξη τριών διαφορετικών κλειδιών, διαθέτει κλειδί μήκους 168- bit. Στα πλαίσια του FIPS 46-3 επιτρέπεται, επίσης, η χρήση δύο κλειδιών K1, K2, με K1 = K3. Το γεγονός αυτό εξασφαλίζει μήκος κλειδιού 112-bit. Ο TDES αποτελεί έναν εξαιρετικό αλγόριθμο, ο οποίος επειδή προέρχεται από τον DES παρουσιάζει την ίδια ανθεκτικότητα με αυτόν σε κρυπταναλυτικές επιθέσεις. Επιπλέον, με μήκος κλειδιού 168-bit οι επιθέσεις τύπου εξαντλητικής αναζήτησης είναι πρακτικά ατελέσφορες. Συνεπώς ο TDES αναμένεται ότι θα αξιοποιείται ολοένα και περισσότερο τα επόμενα χρόνια, μέχρι την ολοκληρωτική μετάβαση στις επερχόμενες υλοποιήσεις του AES AES Αν η ασφάλεια αποτελούσε το μοναδικό κριτήριο επιλογής του αλγορίθμου, τότε ο TDES θα ήταν μία εξαιρετικά κατάλληλη επιλογή για έναν τυποποιημένο αλγόριθμο κρυπτογράφησης για τα επόμενα χρόνια. Όμως, κύριο μειονέκτημα του TDES αποτελεί το γεγονός ότι ο αλγόριθμος είναι σχετικά αργός σε υλοποιήσεις με χρήση λογισμικού. Για την αντιμετώπιση των προβλημάτων αυτών, ήδη από το 1997 το NIST εξέδωσε μία πρόσκληση υποβολής προτάσεων για νέο Προηγμένο Πρότυπο Κρυπτογράφησης (Advanced Encryption Standard AES), διάδοχο του DES και προσδιόρισε ότι το AES θα πρέπει να αποτελεί κωδικοποιητή τμημάτων με συμμετρικό σύστημα κρυπτογράφησης, μήκους τμήματος 128 bit και να υποστηρίζει κλειδιά μήκους 128-bit, 192-bit και 256-bit. Τα κριτήρια συγκριτικής αξιολόγησης των υποψηφίων αλγορίθμων εντάχθηκαν σε τρεις κατηγορίες: Στην ασφάλεια των αλγορίθμων: τα κριτήρια που εντάσσονται σε αυτήν την κατηγορία περιλάμβαναν τη ρωμαλεότητα των αλγορίθμων σε κρυπταναλυτικές επιθέσεις, την ορθότητα του μαθηματικού τους φορμαλισμού, τη σχετική συγκριτική ασφάλεια του αλγορίθμου σε σχέση με τους υπόλοιπους υποψήφιους αλγορίθμους και την τυχαιότητα της συμπεριφοράς της εξόδου. Σε γενικές γραμμές οι αλγόριθμοι έπρεπε να έχουν χαρακτηριστικά ασφάλειας τουλάχιστον ισοδύναμα 25

40 με του αλγορίθμου TDES, αλλά να χαρακτηρίζονται ταυτόχρονα από σημαντικά βελτιωμένη αποδοτικότητα. Στο κόστος: τα κριτήρια που εντάσσονταν σε αυτή την κατηγορία αναφέρονταν στις απαιτήσεις μνήμης και υπολογιστικής ισχύος του αλγορίθμου, καθώς και στις απαιτήσεις περί προστασίας δικαιωμάτων πνευματικής ιδιοκτησίας και πατέντες ώστε το υπό ανάπτυξη πρότυπο να μπορεί να είναι αξιοποιήσιμο σε διεθνή κλίμακα. Στην απλότητα: τα κριτήρια που εντάσσονταν σε αυτήν την κατηγορία περιλάμβαναν την απλότητα, την ευελιξία - δηλαδή τη δυνατότητα του αλγορίθμου να χειρίζεται μεγέθη μυστικών κλειδιών και τμημάτων μη κρυπτογραφημένου κειμένου μεγαλύτερα από τα ελάχιστα τεθέντα - τη δυνατότητα υλοποίησης σε διάφορα περιβάλλοντα όπως λογισμικό, υλικό, υλικολογισμικό (firmware), καθώς και την παροχή συμπληρωματικών κρυπτογραφικών λειτουργιών. Σε έναν πρώτο κύκλο αξιολόγησης έγιναν αποδεκτοί δέκα πέντε προτεινόμενοι αλγόριθμοι και σε δεύτερο κύκλο ο αριθμός των αποδεκτών αλγορίθμων μειώθηκε σε πέντε. Οι αλγόριθμοι αυτοί ήταν οι MARS, RC6, Rijndael, Serpent, Twofish. Τελικά επιλέχθηκε επισήμως ως AES ο αλγόριθμος Rijndael, ο οποίος είχε υποβληθεί από τους Βέλγους κρυπτογράφους J. Daemen και V. Rijmen και έλαβε την οριστική του σχεδιαστική μορφή στο τέλος του καλοκαιριού του Ο αλγόριθμος Rijndael Ο αλγόριθμος Rijndael, που έχει υιοθετηθεί πλέον ως ο αλγόριθμος AES, χαρακτηρίζεται από απλότητα, ευελιξία, ανθεκτικότητα σε όλες τις γνωστές κρυπταναλυτικές επιθέσεις και υψηλή ταχύτητα λειτουργίας. Σχεδιαστικά, ο αλγόριθμος Rijndael δεν ακολουθεί την κλασική δομή Feistel, αλλά κάθε κύκλος λειτουργίας περιλαμβάνει τρεις όμοιους μετασχηματισμούς, με όρους ισότιμης αντιμετώπισης κάθε ξεχωριστού bit, γνωστούς ως επίπεδα (layers): Το επίπεδο γραμμικής ανάμιξης (linear mixing layer) επιτυγχάνει υψηλή διάχυση σε πολλαπλούς κύκλους. Το μη γραμμικό επίπεδο (non- linear layer) αφορά στην παράλληλη εφαρμογή S- boxes τα οποία εμφανίζουν εξαιρετικές μη γραμμικές ιδιότητες για το ενδεχόμενο χειρότερης περίπτωσης (optimum worst-case nonlinearity properties). Το επίπεδο πρόσθεσης κλειδιού (key addition layer) αφορά στη συσχέτιση του ενδιάμεσα προκύπτοντος αποτελέσματος με το υποκλειδί του κύκλου, με την πράξη XOR. Ο αλγόριθμος Rijndael περιλαμβάνει 10, 12 ή 14 κύκλους, ανάλογα με το μήκος του μυστικού κλειδιού. Κάθε κύκλος περιλαμβάνει τέσσερις μετασχηματισμούς, τους: ByteSub, ShiftRow, MixColumn, AddKeyRound. Ο ByteSub μετασχηματισμός εφαρμόζεται σε όλα τα bytes του τμήματος. Οι μετασχηματισμοί ShiftRow και MixColumn υποστηρίζουν τη γραμμική ανάμειξη των δεδομένων του τμήματος. Ο μετασχηματισμός AddKeyRound συσχετίζει τα bytes του τμήματος με τα bytes των υποκλειδιών με την πράξη XOR. Επιπλέον, ο μετασχηματισμός AddKeyRound εκτελείται μία ακόμη φορά στη φάση αρχικοποίησης πριν τον πρώτο κύκλο, ενώ στον τελευταίο κύκλο παραλείπεται ο μετασχηματισμός MixColumn. 26

41 ByteSub: Κάθε byte στον πίνακα ανανεώνεται χρησιμοποιώντας ένα 8-bit substitution-box (Rijndael S-box). Αυτή η λειτουργία προκαλεί την μη γραμμικότητα του κρυπτογραφήματος. ShiftRow: Πραγματοποιείται στις γραμμές της κατάστασης. Μετακινεί τα bytes κυκλικά σε κάθε γραμμή γύρω από ένα συγκεκριμένο offset. MixColumn: Τα τέσσερα bytes κάθε στήλης συνδυάζοντας χρησιμοποιώντας έναν αντιστρέψιμο γραμμικό μετασχηματισμό. Μαζί με το ShiftRow προκαλεί διάχυση στο κρυπτογράφημα. AddKeyRound: Το υποκλειδί συνδυάζεται με την κατάσταση. Για κάθε κύκλο, ένα υποκλειδί εξάγεται από το κύριο κλειδί χρησιμοποιώντας το Rijndael's key schedule: κάθε υποκλειδί έχει το ίδιο μέγεθος με την κατάσταση. Το υποκλειδί προστίθεται συνδυάζοντας κάθε byte της κατάστασης με το αντίστοιχο byte του υποκλειδιού χρησιμοποιώντας τη λογική πράξη XOR Blowfish Ο αλγόριθμος Blowfish αναπτύχθηκε το 1993 από τον επιφανή κρυπτογράφο B. Schneier και καθιερώθηκε ως μία από τις δημοφιλέστερες εναλλακτικές λύσεις του DES. Ο Blowfish σχεδιάστηκε ώστε να είναι εύκολος στην υλοποίηση και να παρουσιάζει μεγάλη ταχύτητα εκτέλεσης. Πρόκειται για ένα συνεπτυγμένο αλγόριθμο που μπορεί να εκτελεστεί σε μνήμη μικρότερη από 5K. Ενδιαφέρον χαρακτηριστικό γνώρισμα του Blowfish αποτελεί το μήκος κλειδιού, το οποίο είναι μεταβλητό, μπορεί να λάβει τιμές έως 448-bit, αν και πρακτικά χρησιμοποιούνται κλειδιά των 128-bit. Ο Blowfish χρησιμοποιεί 16 γύρους. Όπως ο αλγόριθμος DES, ο αλγόριθμος Blowfish χρησιμοποιεί S-boxes, XOR, καθώς και δυαδική πρόσθεση. Αντίθετα από τον DES που χρησιμοποιεί σταθερά S-boxes, ο Blowfish χρησιμοποιεί δυναμικά S-boxes που παράγονται ως συνάρτηση του κλειδιού. Στον Blowfish, τα υποκλειδιά και τα S-boxes παράγονται από την επανειλημμένη εφαρμογή του ίδιου του αλγορίθμου Blowfish στο κλειδί. Συνολικά απαιτούνται 521 εκτελέσεις του αλγορίθμου κρυπτογράφησης Blowfish για την παραγωγή των υποκλειδιών και των S-boxes. Απόρροια των χαρακτηριστικών αυτών είναι το συμπέρασμα ότι ο Blowfish δεν είναι κατάλληλος για εφαρμογές στις οποίες το μυστικό κλειδί αλλάζει συχνά. Αποτελεί όμως τον πιο γρήγορο αλγόριθμο κρυπτογράφησης όταν υλοποιείται σε 32-bit μικροεπεξεργαστές με μεγάλη κρυφή μνήμη δεδομένων. Ο Blowfish περιλαμβάνεται στους καλύτερους συμβατικούς αλγορίθμους κρυπτογράφησης που έχουν εφαρμοστεί, αφού τα υποκλειδιά και τα S-boxes παράγονται από διαδικασία επανειλημμένων εφαρμογών του Blowfish στον εαυτό του. Οι επαναλήψεις αυτές τροποποιούν πλήρως τα δυαδικά ψηφία και καθιστούν την κρυπτανάλυση εξαιρετικά δύσκολη. Οι μέχρι σήμερα δημοσιεύσεις των προσπαθειών για κρυπτανάλυση του Blowfish δεν αναφέρουν πρακτικές αδυναμίες. Ο Blowfish χρησιμοποιείται, επίσης, σε διάφορες εμπορικές εφαρμογές. 27

42 2.5.5 RC5 Ο RC5 αναπτύχθηκε το 1994 από τον R. Rivest, έναν από τους σχεδιαστές του αλγορίθμου δημοσίου κλειδιού RSA. Ο RC5 προσδιορίζεται στο RFC 2040 και σχεδιάστηκε για να υποστηρίζει τα ακόλουθα χαρακτηριστικά: Κατάλληλος για υλοποίηση σε υλικό ή λογισμικό: ο RC5 χρησιμοποιεί μόνο βασικές υπολογιστικές λειτουργίες, που συνήθως περιλαμβάνονται στους μικροεπεξεργαστές. Ταχύς: προκειμένου να επιτευχθεί υψηλή ταχύτητα, ο RC5 είναι ένας απλός αλγόριθμος που βασίζεται στη λέξη (word). Οι βασικές λειτουργίες του στηρίζονται σε πλήρεις λέξεις δεδομένων ανά στιγμή. Προσαρμόσιμος σε επεξεργαστές διαφορετικών μηκών λέξης: Ο αριθμός των δυαδικών ψηφίων σε μία λέξη αποτελεί παράμετρο του RC5, έτσι ώστε διαφορετικά μήκη λέξης παράγουν διαφορετικούς αλγορίθμους. Μεταβλητό μήκος γύρων: Ο αριθμός των γύρων αποτελεί δεύτερη παράμετρο του RC5. Αυτή η παράμετρος επιτρέπει την εναλλαγή μεταξύ υψηλότερης ταχύτητας και υψηλότερης ασφάλειας. Μεταβλητό μήκος κλειδιού: Το μήκος κλειδιού αποτελεί την τρίτη παράμετρο του RC5. Επίσης επιτρέπει την εναλλαγή μεταξύ υψηλότερης ταχύτητας και υψηλότερης ασφάλειας. Απλός: Η απλή δομή του RC5 υλοποιείται εύκολα και διευκολύνει τον υπολογισμό της ισχύος του αλγορίθμου. Χαμηλή απαίτηση μνήμης: Η χαμηλή απαίτηση μνήμης καθιστά τον αλγόριθμο RC5 κατάλληλο για αξιοποίηση σε έξυπνες κάρτες και άλλες συσκευές περιορισμένης μνήμης. Υψηλή ασφάλεια: Ο RC5 προορίζεται για να παρέχει υψηλή ασφάλεια με προσδιορισμό των κατάλληλων παραμέτρων. Περιστροφές εξαρτώμενες από τα δεδομένα: Ο RC5 ενσωματώνει τις περιστροφές, δηλαδή κυκλικές μετατοπίσεις δυαδικών ψηφίων, των οποίων ο αριθμός είναι στοιχείο εξαρτώμενο από τα δεδομένα. Το γεγονός αυτό ενισχύει τον αλγόριθμο ενάντια στην κρυπτανάλυση. Ο RC5 χρησιμοποιείται σε διάφορα προϊόντα από την RSA Data Security, Inc RC4 Ο RC4 είναι ένας κωδικοποιητής ροής (stream cipher) που σχεδιάστηκε στα εργαστήρια RSA από τον Ron Rivest το Χρησιμοποιείται ευρέως σε εμπορικές εφαρμογές όπως Oracle SQL, Microsoft Windows και SSL. Επίσης χρησιμοποιείται από πρότυπα όπως IEEE μέσω του WEP (Wireless Encryption Protocol) χρησιμοποιώντας 40 bits και 128- bits κλειδιά. Παρόλα αυτά υπάρχουν τεχνικές παραβίασης των μέτρων ασφαλείας του WEP. Στον αλγόριθμο το κλειδί είναι εντελώς ανεξάρτητο από το αρχικό κείμενο που χρησιμοποιείται. Ένα 8*8 S-box, όπου κάθε είσοδος είναι μία μετάθεση των αριθμών 0 έως 255 και μία μετάθεση αποτελούν τη συνάρτηση του κλειδιού μεταβλητού μήκους (40 έως 256 bits). Υπάρχουν δύο μετρητές I και j με αρχική τιμή το 0. Δημιουργείται μία 28

43 ψευδοτυχαία ροή από bits (keystream) η οποία συνδυάζεται με το αρχικό κείμενο χρησιμοποιώντας τη λογική πράξη XOR. Ο αλγόριθμος υλοποιείται σε δύο φάσεις, τη δημιουργία κλειδιού και την κρυπτογράφηση. Η δημιουργία του κλειδιού είναι πιο δύσκολη φάση. Τα πλεονεκτήματα που τον κάνουν να έχει ισχύ μπορούν να θεωρηθούν ως: Η δυσκολία να γνωρίζουμε που βρίσκεται κάθε τιμή του πίνακα. Η δυσκολία να γνωρίζουμε ποια θέση στον πίνακα χρησιμοποιείται για την επιλογή κάθε τιμής στην ροή. Κάθε κλειδί μπορεί να χρησιμοποιηθεί μόνο μία φορά. Είναι περίπου δέκα φορές γρηγορότερος από τον DES. Παρουσιάζει όμως και αδυναμίες: Ένα σε κάθε 256 κλειδιά μπορεί να είναι αδύναμο Σύγκριση συμμετρικών αλγορίθμων Από τους πολλούς αλγόριθμους που χρησιμοποιούνται στις μέρες μας οι διαφορές τους έγκειται στην πολυπλοκότητα τους, και στην ικανότητα τους να «σπάσουν». Ενώ το κομμάτι της κρυπτογράφησης διαφέρει σε κάθε αλγόριθμο, όλοι τους έχουν κοινό στόχο να διατηρήσουν την πληροφορία όσο πιο κρυφή γίνεται. Πολλοί προγραμματιστές λογισμικού συνήθως δεσμεύουν αρκετούς αλγόριθμους για τη δημιουργία βιβλιοθήκης κρυπτογράφησης. Για παράδειγμα, κάποιοι προσφέρουν.net βιβλιοθήκες κωδικοποίησης για ασφαλή μετάδοση στο διαδίκτυο δεδομένων υψηλής σημασίας, όπως προσωπικά οικονομικά και ιατρικά δεδομένα. DES: Χρησιμοποιώντας απλές επιθέσεις (simple brute force attacks) ο DES παραβιάστηκε σε λιγότερες από εικοσιτέσσερις ώρες. Για αυτό θεωρείται ξεπερασμένος και εύκολα παραβιάσιμος αλγόριθμος. 3DES: Έλυσε το πρόβλημα του μικρού μήκους κλειδιού (56 bit), κάτι που αποτελεί προφύλαξη από επιθέσεις. Ενώ θεωρητικά φαίνεται πως είναι εύκολο να παραβιαστεί, πρακτικά δεν γίνεται. Θεωρείται ασφαλής και χρησιμοποιείται κυρίως σε οικονομικές συναλλαγές. RC4: Παρότι είναι αρκετά ασφαλής για τις εφαρμογές που χρησιμοποιείται (SSL,WEP), είναι ευάλωτος σε επιθέσεις επειδή δεν είναι αρκετά «τυχαίος» όσο είναι απαραίτητο για την κρυπτογράφηση. Για αυτό δεν προτείνεται για νέες εφαρμογές που χρειάζονται υψηλά επίπεδα ασφάλειας. Blowfish: Είναι ένας από τους πιο γρήγορους αλγόριθμους. Παρόλα αυτά μειώνεται σημαντικά η ταχύτητα του σε περιπτώσεις αλλαγής κλειδιών. Αυτό τον κράτησε μακριά από κάποιες εφαρμογές. Δημιουργήθηκε για να επιτρέπει στον καθένα να χρησιμοποιεί την κρυπτογραφία χωρίς πρότυπα και πνευματικά δικαιώματα. Rijndael: Χρησιμοποιείται για απόρρητες και μη κυβερνητικές πληροφορίες και θεωρείται πρακτικά ασφαλής από επιθέσεις, παρότι θεωρητικά φαίνεται πιθανό να παραβιαστεί. Επιθέσεις τύπου brute force attack εναντίον του αποδείχτηκαν μη αποδοτικές. Επιθέσεις τύπου side channel attacks, όπου επιτίθενται στις εφαρμογές και όχι στον ίδιο τον αλγόριθμο, έχουν αποδείξει πως είναι πιθανή η 29

44 παραβίαση του αλγορίθμου, αλλά όχι πρακτικά εκτός αν τρέχουν στον ίδιο εξυπηρετητή με την εφαρμογή. Αλγόριθμος Δημιουργοί Μέγεθος Κλειδιού Μέγεθος Τμήματος Δομή Αλγορίθμου Κύκλοι Έχει σπάσει Υπάρχουσες επιθέσεις Rijndael Joan Daemen & Vincent Rijmen το bits, 192 bits, 256 bits 128 Bits Δίκτυο μεταθέσεων - αντικαταστάσεων 10, 12 ή 14 Όχι Επιθέσεις πλευρικού καναλιού Blowfish Bruce Schneier το bit σε βήματα των 8 bits. 128 bits προεπιλογή 64 bits Δίκτυο Feistel 16 Όχι Δεύτερης τάξης διαφορική επίθεση RC4 Ron Rivest το 1987 Ποικίλουν Ποικίλουν Ροής άγνωστο Ναι Διάκριση με βάση το χρονοδιάγραμμα αδύναμου κλειδιού TripleDES IBM το bits ή 168 bits 64 bits Δίκτυο Feistel 48 Όχι Πιθανώς σε θεωρητικό επίπεδο DES IBM το bits 64 bits Δίκτυο Feistel 16 Ναι Επίθεση ωμής βίας (Brute force attack), διαφορική κρυπτανάλυση, γραμμική κρυπτανάλυση επίθεση Davies' Πίνακας 1 Σύγκριση συμμετρικών αλγορίθμων Εκτός από την ασφάλεια για το σχεδιασμό ενός αλγόριθμου κρυπτογράφησης θα πρέπει να ληφθούν υπόψη το κόστος λειτουργίας και υλοποίησης. Από έρευνα που έγινε συγκρίνοντας τους DES, 3DES, AES (Rijndael) και Blowfish προκύπτουν τα παρακάτω συμπεράσματα. Χρησιμοποιώντας την μέθοδο ECB (Electronic Code Book) συμπεραίνουμε πως ο Blowfish αποτελεί τον πιο γρήγορο και ο 3DES τον πιο αργό. Γενικά η επίδοση ενός block cipher ποικίλει ανάλογα με το μέγεθος του block και του κλειδιού. Όσο πιο μεγάλο μέγεθος block τόσο πιο γρήγορος αλγόριθμος, αφού σε έναν κύκλο εκτέλεσης του αλγορίθμου θα κρυπτογραφείται μεγαλύτερο κομμάτι δεδομένων. Αντίστοιχα με μικρό μέγεθος block ο ίδιος αριθμός εισερχόμενων δεδομένων θα απαιτεί περισσότερους κύκλους εκτέλεσης, άρα αυξάνεται ο χρόνος εκτέλεσης αν όλα τα άλλα παραμένουν σταθερά. Από την άλλη μεγαλύτερο μέγεθος κλειδιού έχει ως αποτέλεσμα πιο αργό αλγόριθμο, επειδή γενικά όλα τα bits του κλειδιού χρησιμοποιούνται σε έναν κύκλο εκτέλεσης. Χρησιμοποιώντας την μέθοδο CFB (Cipher feedback mode) συμπεραίνουμε πως όσο πιο μεγάλο μέγεθος block τόσο πιο αργός γίνεται ο αλγόριθμος, επειδή σε έναν κύκλο εκτέλεσης του αλγορίθμου θα χρειάζεται περισσότερη δουλειά για την ίδια ποσότητα εισερχόμενων δεδομένων. Ενώ με μικρότερο μέγεθος block ο ίδιος αριθμός δεδομένων θα κρυπτογραφηθεί πιο αποδοτικά. Όσων αφορά το μέγεθος του κλειδιού δεν αλλάζει κάτι μεταξύ ενός stream cipher και ενός block cipher. Στους συμμετρικούς αλγορίθμους υπάρχει πάντα ένας συμβιβασμός (trade-off) μεταξύ ασφάλειας και επίδοσης σε παρόμοιους αλγόριθμους. Ο Eli Biham πρότεινε πως η επίδοση 30

45 των αλγορίθμων πρέπει να μετράται υπολογίζοντας τον ελάχιστο αριθμό ασφαλών κύκλων (rounds) κάθε αλγόριθμο. Οι μετρικές για την επίδοση ενός αλγορίθμου μπορούν να είναι οι: Χρόνος κρυπτογράφησης (encryption time): αποτελεί το χρόνο που ένας αλγόριθμος κρυπτογράφησης χρειάζεται για την παραγωγή ενός κρυπτογραφήματος από το αρχικό κείμενο. Throughput: υποδεικνύει την ταχύτητα του αλγορίθμου και υπολογίζεται από το λόγο του αριθμού των bytes του αρχικού κειμένου προς τον χρόνο κρυπτογράφησης. CPU process time: είναι ο χρόνος που ο επεξεργαστής αφιερώνει σε μία συγκεκριμένη διεργασία υπολογισμών. Αντανακλά το φόρτο του επεξεργαστή. CPU clock cycles: αναφέρεται στην κατανάλωση ενέργειας από τον επεξεργαστή κατά τη διάρκεια εκτέλεσης λειτουργιών κρυπτογράφησης. 2.6 Ασύμμετροι αλγόριθμοι κρυπτογράφησης Η ασύμμετρη κρυπτογράφηση ή δημοσίου κλειδιού (public-key encryption) προτάθηκε το 1976 από τους W. Diffie και M. Hellman και υπήρξε ένα εξόχως σημαντικό βήμα στην περαιτέρω διάδοση της κρυπτογραφίας. Οι αλγόριθμοι κρυπτογραφίας δημοσίου κλειδιού βασίζονται σε μαθηματικές συναρτήσεις και όχι σε απλές πράξεις με bits. Επιπλέον, η κρυπτογραφία δημοσίου κλειδιού είναι ασύμμετρη (asymmetric) συμπεριλαμβάνοντας τη χρήση ενός ζεύγους ξεχωριστών κλειδιών (key pair), σε αντίθεση με τη συμμετρική που χρησιμοποιεί μόνον ένα κλειδί. Η χρήση δύο κλειδιών επιφέρει σημαντικές τροποποιήσεις σε θέματα που σχετίζονται με την εμπιστευτικότητα, την αυθεντικότητα και τη διανομή των κλειδιών. Όπως υποδεικνύει και το όνομά τους, το δημόσιο κλειδί αποσκοπεί σε δημόσια χρήση, ενώ το ιδιωτικό κλειδί το χρησιμοποιεί αποκλειστικά και μόνον ο κάτοχός του. Ένας γενικής χρήσης αλγόριθμος κρυπτογράφησης/αποκρυπτογράφησης βασίζεται σε ένα δημόσιο κλειδί για κρυπτογράφηση και σε ένα άλλο, διαφορετικό αλλά μοναδικά συσχετιζόμενο κλειδί, το ιδιωτικό κλειδί, για αποκρυπτογράφηση. Τα βήματα που ακολουθούνται είναι τα ακόλουθα: Κάθε χρήστης παράγει ένα ζεύγος κλειδιών, το οποίο θα χρησιμοποιηθεί για την κρυπτογράφηση και αποκρυπτογράφηση των μηνυμάτων. Κάθε χρήστης τοποθετεί το δημόσιο κλειδί σε μία βάση δεδομένων ενός φορέα ή σε κάποιο άλλο προσβάσιμο αρχείο. Το άλλο κλειδί, το ιδιωτικό, διαφυλάσσεται διατηρώντας τη μυστικότητα. Για επίτευξη στοιχειώδους λειτουργικότητας, απαιτείται κάθε χρήστης να είναι σε θέση με ευκολία να ανακτήσει τα δημόσια κλειδιά των άλλων. Εάν ο Bob επιθυμεί να στείλει ένα μήνυμα στην Alice και αποτελεί τεθείσα απαίτηση (requirement) η διασφάλιση της εμπιστευτικότητας του μηνύματος, τότε o Bob κρυπτογραφεί το μήνυμα με το δημόσιο κλειδί της Alice. 31

46 Η Alice λαμβάνει το μήνυμα και το αποκρυπτογραφεί με το ιδιωτικό κλειδί της. Κανένας άλλος δεν μπορεί να αποκρυπτογραφήσει το μήνυμα, αφού μόνον η Alice γνωρίζει το ιδιωτικό της κλειδί, που σχετίζεται μοναδικά με το αντίστοιχο δημόσιο κλειδί που χρησιμοποιήθηκε για την κρυπτογράφηση. Προϋπόθεση αυτής της προσέγγισης είναι όλοι οι συμμετέχοντες να έχουν πρόσβαση στα δημόσια κλειδιά, ενώ τα ιδιωτικά κλειδιά να παράγονται τοπικά για τον κάθε συμμετέχοντα ώστε να διασφαλίζεται αυστηρά η μυστικότητά τους. Οποιαδήποτε στιγμή, ένας χρήστης μπορεί να τροποποιήσει το ιδιωτικό του κλειδί και ταυτοχρόνως να δημοσιεύσει το αντίστοιχο νέο δημόσιο κλειδί, έτσι ώστε να αντικατασταθεί το προηγούμενο μη ισχύον πλέον δημόσιο κλειδί. Το κλειδί που χρησιμοποιείται στη συμμετρική κρυπτογραφία τυπικά αναφέρεται ως μυστικό κλειδί (secret). Το ζεύγος κλειδιών (key pair) που χρησιμοποιείται στην ασύμμετρη κρυπτογραφία περιλαμβάνει δημόσιο κλειδί (public key) και ιδιωτικό κλειδί (private key). Το ιδιωτικό κλειδί παραμένει μυστικό, αλλά αναφέρεται ως ιδιωτικό αντί για μυστικό κλειδί, ώστε να αποφευχθεί εννοιολογική σύγχυση με τη συμμετρική κρυπτογραφία. Εικόνα 14 Κρυπτογραφικό σύστημα δημόσιου κλειδιού Εφαρμογές Κρυπτοσυστημάτων Δημοσίου Κλειδιού Ανάλογα με τις απαιτήσεις ασφάλειας, το είδος της εφαρμογής και της υπηρεσίας που σχεδιάζεται και υλοποιείται, ο αποστολέας χρησιμοποιεί είτε το δικό του ιδιωτικό κλειδί, είτε το δημόσιο κλειδί του παραλήπτη, είτε και τα δύο για να πραγματοποιήσει κάποιον τύπο κρυπτογραφικών λειτουργιών. Υπάρχουν τρεις περιπτώσεις στις οποίες χρησιμοποιείται το ζεύγος κλειδιών σε αυτά τα συστήματα: Κρυπτογράφηση/Αποκρυπτογράφηση (Encryption/Decryption): Ο αποστολέας κρυπτογραφεί ένα μήνυμα με το δημόσιο κλειδί του παραλήπτη και ο παραλήπτης αποκρυπτογραφεί με το ιδιωτικό κλειδί του. Ψηφιακή υπογραφή (Digital Signature): Ο αποστολέας χρησιμοποιεί το ιδιωτικό του κλειδί για να υπογράψει ένα μήνυμα. Η υπογραφή δημιουργείται με την εφαρμογή ενός αλγορίθμου κρυπτογράφησης στο μήνυμα ή συνηθέστερα στη 32

47 σύνοψη (hash) του μηνύματος. Ο παραλήπτης αυθεντικοποιεί τον αποστολέα με χρήση του δημόσιου κλειδιού του. Ανταλλαγή κλειδιών (Key Exchange): Δύο οντότητες συνεργάζονται ώστε να ανταλλάξουν ένα κλειδί συνόδου (session key). Για την υλοποίηση της ανταλλαγής κλειδιών είναι πιθανόν να λάβουν χώρα διάφορες ενέργειες, που αξιοποιούν το ιδιωτικό κλειδί της μιας ή και των δύο οντοτήτων που συμμετέχουν. Κάποιοι αλγόριθμοι είναι κατάλληλοι και για τις τρεις εφαρμογές, άλλοι μόνο για δύο ή μία από αυτές. Στον Πίνακα 2 φαίνονται οι εφαρμογές που υποστηρίζονται από τους αλγορίθμους δημόσιου κλειδιού: τον RSA και τον Diffie Hellman. Επίσης περιλαμβάνονται ο Digital Signature Standard - DSS και η Elliptic-Curve Cryptography - ECC. Αλγόριθμος Κρυπτογράφηση/ Ψηφιακή Υπογραφή Ανταλλαγή Κλειδιών Αποκρυπτογράφηση RSA x x x Diffie-Hellman - - x DSS - x - Elliptic Curve x x x Πίνακας 2 Εφαρμογές ασύμμετρων αλγορίθμων 2.7 Σύγκριση συμμετρικών και ασύμμετρων αλγορίθμων Μία εσφαλμένη αντίληψη που υπάρχει αφορά την εντύπωση ότι η κρυπτογράφηση δημοσίου κλειδιού είναι ασφαλέστερη μέθοδος σχετικά με τη συμμετρική κρυπτογράφηση, ως ανθεκτικότερη σε κρυπταναλυτικές επιθέσεις. Στην πραγματικότητα η ασφάλεια οποιουδήποτε συστήματος κρυπτογράφησης εξαρτάται από το μήκος κλειδιού και, σε κάθε περίπτωση, από την απαιτούμενη υπολογιστική ισχύ από έναν κρυπταναλυτή για να κατορθώσει να κρυπταναλύσει και αποκαλύψει με επιτυχία ένα κρυπτογραφημένο μήνυμα. Η επικράτηση του ασύμμετρου κρυπτοσυστήματος σε βάρος του συμμετρικού αποτελεί μία εσφαλμένη αντίληψη. Και τα δύο συστήματα χρησιμοποιούνται ισόρροπα και κατ ουδέν τρόπο δεν προβλέπεται η εγκατάλειψη του συμμετρικού συστήματος, ειδικά όταν είναι γνωστή η σημαντική χρονική επιβάρυνση που απαιτείται για την ολοκλήρωση των εκτελούμενων λειτουργιών σε περιβάλλον ασύμμετρου κρυπτοσυστήματος. Επιπλέον, η διανομή κλειδιών είναι εύκολη όταν χρησιμοποιείται κρυπτογραφία δημοσίου κλειδιού σε σύγκριση με τις επιπλέον χειραψίες (handshaking) που απαιτούνται με τα κέντρα διανομής κλειδιών (key distribution centers) για τη συμμετρική κρυπτογράφηση. Στην πραγματικότητα, στα ασύμμετρα συστήματα απαιτείται εκτέλεση κάποιων πρωτοκόλλων, εμπλέκεται κάποιος έμπιστος ενδιάμεσος αντιπρόσωπος και οι διαδικασίες που παρεμβάλλονται δεν είναι απλούστερες ή περισσότερο αποδοτικές από αυτές που απαιτούνται για συμμετρική κρυπτογράφηση. Το μεγαλύτερο πρόβλημα της συμμετρικής κρυπτογραφίας είναι η συνεννόηση και ανταλλαγή του κλειδιού, χωρίς κάποιος τρίτος να μάθει για αυτό. Η μετάδοση μέσα από το Διαδίκτυο δεν είναι ασφαλής γιατί οποιοσδήποτε γνωρίζει για την συναλλαγή και έχει τα 33

48 κατάλληλα μέσα μπορεί να καταγράψει όλη την επικοινωνία μεταξύ αποστολέα και παραλήπτη και να αποκτήσει το κλειδί. Έπειτα, μπορεί να διαβάσει, να τροποποιήσει και να πλαστογραφήσει όλα τα μηνύματα που ανταλλάσσουν οι δύο ανυποψίαστοι χρήστες. Βέβαια, μπορούν να βασισθούν σε άλλο μέσο επικοινωνίας για την μετάδοση του κλειδιού (π.χ. τηλεφωνία), αλλά ακόμα και έτσι δεν μπορεί να εξασφαλιστεί ότι κανείς δεν παρεμβάλλεται μεταξύ της γραμμής επικοινωνίας των χρηστών. Η ασύμμετρη κρυπτογραφία δίνει λύση σε αυτό το πρόβλημα αφού σε καμία περίπτωση δεν "ταξιδεύουν" στο δίκτυο οι εν λόγω ευαίσθητες πληροφορίες. Επίσης παρατηρείται κλιμάκωση, δηλαδή ο αριθμός των κλειδιών αυξάνεται τετραγωνικά με τον αριθμό των συμμετεχόντων στην ανταλλαγή μυστικών δεδομένων. Άλλο ένα ακόμα πλεονέκτημα των ασύμμετρων κρυπτοσυστημάτων είναι ότι μπορούν να παρέχουν ψηφιακές υπογραφές που δεν μπορούν να αποκηρυχθούν από την πηγή τους. Η πιστοποίηση ταυτότητας μέσω συμμετρικής κρυπτογράφησης απαιτεί την κοινή χρήση του ίδιου κλειδιού και πολλές φορές τα κλειδιά αποθηκεύονται σε υπολογιστές που κινδυνεύουν από εξωτερικές επιθέσεις. Σαν αποτέλεσμα, ο αποστολέας μπορεί να αποκηρύξει ένα πρωτύτερα υπογεγραμμένο μήνυμα, υποστηρίζοντας ότι το μυστικό κλειδί είχε κατά κάποιον τρόπο αποκαλυφθεί. Στην ασύμμετρη κρυπτογραφία δεν επιτρέπεται κάτι τέτοιο αφού κάθε χρήστης έχει αποκλειστική γνώση του ιδιωτικού του κλειδιού και είναι δικιά του ευθύνη η φύλαξη του. Μειονέκτημα της ασύμμετρης κρυπτογραφίας είναι η ταχύτητα. Κατά κανόνα, η διαδικασίες κρυπτογράφησης και πιστοποίησης ταυτότητας με συμμετρικό κλειδί είναι σημαντικά ταχύτερες από την κρυπτογράφηση και ψηφιακή υπογραφή με ζεύγος ασύμμετρων κλειδιών. Γι αυτό το λόγο, όπως προτείνεται και από το πρωτόκολλο SSL, χρησιμοποιείται η κρυπτογράφηση δημοσίου κλειδιού για την ανταλλαγή συμμετρικών κλειδιών και στη συνέχεια χρησιμοποιείται η συμμετρική κρυπτογράφηση για την ουσιαστική επικοινωνία. Η ιδιότητα αυτή καλείται διασφάλιση της μη αποκήρυξης της πηγής (nonrepudiation). Επίσης, τεράστιο μειονέκτημα της ασύμμετρης κρυπτογραφίας είναι η ανάγκη για πιστοποίηση και επαλήθευση των δημόσιων κλείδων από οργανισμούς (Certificate Authority) ώστε να διασφαλίζεται η κατοχή από τους νόμιμους χρήστες (μόνο αυτοί που μπορούν να έχουν πρόσβαση σε δεδομένα). Όταν κάποιος απατεώνας κατορθώσει και ξεγελάσει τον οργανισμό, μπορεί να συνδέσει το όνομα του με την δημόσια κλείδα ενός νόμιμου χρήστη και να προσποιείται την ταυτότητα αυτού του νόμιμου χρήστη. Σε μερικές περιπτώσεις, η ασύμμετρη κρυπτογραφία δεν είναι απαραίτητη και η συμμετρική κρυπτογραφία από μόνη της είναι αρκετή. Τέτοιες περιπτώσεις αφορούν περιβάλλοντα κλειστά, που δεν έχουν σύνδεση με το Διαδίκτυο. Ένας υπολογιστής μπορεί να κρατά τα μυστικά κλειδιά των χρηστών που επιθυμούν να εξυπηρετηθούν από αυτόν, μια και δεν υπάρχει ο φόβος για κατάληψη της μηχανής από εξωτερικούς παράγοντες. Επίσης, στις περιπτώσεις που οι χρήστες μπορούν να συναντηθούν και να ανταλλάξουν τα κλειδιά ή όταν η κρυπτογράφηση χρησιμοποιείται για τοπική αποθήκευση κάποιων αρχείων, η ασύμμετρη κρυπτογραφία δεν είναι απαραίτητη. Τα δύο κρυπτοσυστήματα μπορούν να εφαρμοστούν μαζί, συνδυάζοντας τα καλά τους χαρακτηριστικά και εξαλείφοντας τα μειονεκτήματα τους. Ένα παράδειγμα τέτοιου συνδυασμού είναι οι ψηφιακοί φάκελοι. 34

49 Συνοψίζοντας τα σύγχρονα συμμετρικά κρυπτογραφήματα χρησιμοποιούνται συχνά για τους εξής λόγους: o Ασφάλεια o Γρήγορη λειτουργία o Εύκολη υλοποίηση σε λογισμικό o Αποδοτική υλοποίηση σε υλικό Αλλά παρουσιάζουν τα μειονεκτήματα: o Δύσκολη ανταλλαγή κλειδιού χωρίς τη γνωστοποίηση του. o Κλιμάκωση. Αντίθετα τα ασύμμετρα πλεονεκτούν στη χρήση: o Υψηλή ασφάλεια. o Ψηφιακές υπογραφές. 35

50 36

51 3. Οι αλγόριθμοι DES και TDEA 3.1 Εισαγωγικά και προκαταρκτικά παραδείγματα O DES αποτελεί το Data Encryption Standard, έναν αλγόριθμο της κυβέρνησης των Ηνωμένων Πολιτειών για κρυπτογράφηση και αποκρυπτογράφηση αταξινόμητων δεδομένων. Περιγράφεται από τα Federal Information Processing Standards (FIPS) 46, όπου η πιο πρόσφατη έκδοση του είναι FIPS Βασίζεται στο κρυπτογράφημα Lusifer της IBM. Η κρυπτογράφηση των δεδομένων τα μετατρέπει σε μία μορφή ακατανόητη το κρυπτογράφημα (cipher). Η αποκρυπτογράφηση μετατρέπει το κρυπτογράφημα στα αρχικά δεδομένα αρχικό κείμενο (plaintext). Οι αλγόριθμοι που περιγράφονται σε αυτό το πρότυπο καθορίζουν τις διαδικασίες κρυπτογράφησης και αποκρυπτογράφησης που βασίζονται στον δυαδικό αριθμό-κλειδί (key). Το κλειδί αποτελείται από 64 δυαδικά ψηφία από τα οποία τα 56 χρησιμοποιούνται άμεσα στον αλγόριθμο. Τα υπόλοιπα 8, που δεν χρησιμοποιούνται στον αλγόριθμο χρησιμοποιούνται για ανίχνευση λαθών (error detection). Αυτά τα 8 bits τοποθετούνται ώστε να αποτελούν bit περιττής ισοτιμίας για κάθε 8-bit byte του κλειδιού. O DES δουλεύει με bits. Κάθε τετράδα bits αποτελεί έναν δεκαεξαδικό αριθμό. Το δυαδικό 0001 αντιστοιχεί στο δεκαεξαδικό 1, το δυαδικό 1000 στο δεκαεξαδικό 8 και το δυαδικό 1111 στο δεκαεξαδικό F. Για παράδειγμα, αν θεωρήσουμε το μη κρυπτογραφημένο κείμενο και το κρυπτογραφήσουμε με το κλειδί 0E329232EA6D0D73 θα λάβουμε το κρυπτογραφημένο μήνυμα Αν αποκρυπτογραφήσουμε το κρυπτογραφημένο αυτό μήνυμα με το μυστικό κλειδί 0E329232EA6D0D73 το αποτέλεσμα που θα λάβουμε θα είναι το αρχικό μη κρυπτογραφημένο μήνυμα Αυτό το παράδειγμα είναι επιδέξια κατασκευασμένο και μεθοδικό γιατί το μη κρυπτογραφημένο μήνυμα έχει μήκος ακριβώς 64 bits. Το ίδιο θα συνέβαινε και αν το αρχικό μήνυμα είχε μήκος πολλαπλάσιο των 64 bits, συνθήκη, όμως, που δεν ικανοποιείται από τα περισσότερα μηνύματα που πρόκειται να κρυπτογραφηθούν. Για παράδειγμα, αν λάβουμε υπόψη το μήνυμα Your lips are smoother than vaseline, το αρχικό κείμενο αποτελείται από 38 bytes (76 δεκαεξαδικές τιμές). Οπότε αυτό το μήνυμα πρέπει να επεκταθεί με παραπάνω bytes στο τέλος για την κρυπτογράφηση. Μόλις γίνει η κρυπτογράφηση αυτά τα bytes θα απορριφθούν. Άρα σε αυτό το παράδειγμα μπορούμε να προσθέσουμε μηδενικά 0 στο τέλος, έτσι ώστε όλο το μήνυμα να είναι πολλαπλάσιο των 8 bytes. Το παραπάνω μήνυμα με δεκαεξαδικές τιμές θα είναι "596F C D 6F6F E C696E650D0A". Προσθέτοντας τα μηδενικά στο τέλος γίνεται : "596F C D 6F6F E C696E650D0A0000". Αν το κρυπτογραφήσουμε χρησιμοποιώντας το κλειδί "0E329232EA6D0D73" λαμβάνουμε το κρυπτογράφημα "C0999FDDE378D7ED 727DA00BCA5A84EE 47F269A4D DD52F78F AC9B453E0E653". 37

52 3.2 Η λειτουργία του DES Ένα τμήμα block για να κρυπτογραφηθεί πρέπει να περάσει από μία αρχική μετάθεση (Initial Permutation - IP), μετά από ένα πολύπλοκο υπολογισμό που εξαρτάται από το κλειδί, και τελικά από μία τελική μετάθεση (Final Permutation IP -1 ) που είναι αντίστροφη της αρχικής. Ο ενδιάμεσος υπολογισμός χρησιμοποιεί μία συνάρτηση f, που ονομάζεται cipher function, και τη συνάρτηση δημιουργίας κλειδιού (Key Schedule - KS). Εν συνεχεία παρουσιάζεται το σχήμα (εικόνα 15) που απεικονίζει τη διαδικασία κρυπτογράφησης (encryption) του DES. Εικόνα 15 Διαδικασία κρυπτογράφησης DES 38

53 Στην αριστερή πλευρά της εικόνας 15 παρουσιάζονται τα τρία στάδια της επεξεργασίας του αρχικού κειμένου. Στην αρχή, το κείμενο των 64-bit ακολουθεί την αρχική μετάθεση (IP) στα πλαίσια του οποίου τα bits αναδιατάσσονται για να παραχθεί η μετασχηματισμένη είσοδος. Γίνεται αντιμετάθεση σύμφωνα με τον παρακάτω πίνακα 3, όπου οι είσοδοι στον πίνακα δείχνουν την νέα αναδιάταξη των bits από την αρχική. Το 58 ο bit της εισόδου γίνεται το 1 ο του IP. Το 50 ο γίνεται 2 ο κτλ Πίνακας 3 IP (αρχική αντιμετάθεση μηνύματος) Ακολουθεί ένα στάδιο που αποτελείται από 16 επαναλήψεις της ίδιας λειτουργίας, η οποία εξηγείται παρακάτω. Η έξοδος της τελευταίας επανάληψης, δηλαδή της δέκατης έκτης, αποτελείται από 64-bit που αποτελούν συνάρτηση του αρχικού κειμένου και του κλειδιού. Το αριστερό (L) μισό τμήμα και το δεξί (R) μισό τμήμα της εξόδου αντιμετατίθενται, ώστε να παραχθεί η αρχική έξοδος (PREOUTPUT). Η τιμή αυτή τροποποιείται με βάση την αντίστροφη μετάθεση (IP -1 ) ώστε να παραχθεί το κρυπτογράφημα των 64-bit. Στον παρακάτω πίνακα 4 περιγράφεται η λειτουργία της, όπου η έξοδος του αλγόριθμου έχει σαν 1 ο bit το 40 ο του PREOUTPUT, 2 ο bit το 8 ο και ούτω καθεξής έως το 25 ο bit του PREOUTPUT να γίνει τελευταίο της εξόδου: Πίνακας 4 IP -1 (αντιμετάθεσης) Στην εικόνα 16 εξετάζεται με περισσότερες λεπτομέρειες ο αλγόριθμος για μία μόνο επανάληψη. Η μετασχηματισμένη είσοδος των 64-bit συμμετέχει σε 16 επαναλήψεις, παράγοντας μία ενδιάμεση τιμή των 64-bit στο τέλος κάθε επανάληψης. Το αριστερό μισό τμήμα σε συνδυασμό με το δεξί μισό τμήμα οποιασδήποτε ενδιάμεσης τιμής 64-bit αντιμετωπίζονται ως ξεχωριστές ποσότητες 32-bit, οι οποίες περιγράφονται ως L (Left - Αριστερή) και R (Right - Δεξιά). Συνοπτικά, η επεξεργασία κάθε επανάληψης μπορεί να περιγραφεί με τους παρακάτω τύπους: όπου το συμβολίζει την πράξη XOR. 39

54 Εικόνα 16 Ένας κύκλος του αλγορίθμου DES Η αριστερή έξοδος μιας επανάληψης L i είναι ίση με τη δεξιά είσοδο της επανάληψης R i-1. Η δεξιά έξοδος R i είναι το αποτέλεσμα της εφαρμογής του XOR μεταξύ του L i-1 και μιας σύνθετης συνάρτησης F των R i-1 και K i. Η σύνθετη συνάρτηση περιλαμβάνει διαδικασίες μετάθεσης (permutation) και αντικατάστασης (substitution). Η λειτουργία αντικατάστασης γνωστή ως S-box, απλώς απεικονίζει κάθε συνδυασμό 48 εισαγόμενων bit σε ένα συγκεκριμένο τύπο των 32-bit εξόδου. Το κλειδί των 56-bit αντιμετωπίζεται ύστερα από μία μετάθεση ως δύο ποσότητες των 28-bit, αναφερόμενες ως C 0 και D 0. Σε κάθε επανάληψη, τα C και D υποβάλλονται χωριστά σε μία αριστερή κυκλική ολίσθηση, ή περιστροφή 1 ή 2 bit. Οι τιμές που έχουν υποστεί μετατοπίσεις χρησιμοποιούνται ως είσοδοι στην επόμενη επανάληψη. Επιπλέον χρησιμοποιούνται ως είσοδοι σε μία άλλη συνάρτηση μετασχηματισμού, που παράγει έξοδο 48-bit, η οποία ακολούθως λειτουργεί ως είσοδος στη συνάρτηση F(R i-1, K i ). Στην εικόνα 17 παρουσιάζεται η διαδικασία δημιουργίας των υποκλειδιών. Η διαδικασία της αποκρυπτογράφησης με τον αλγόριθμο DES είναι ουσιαστικά ίδια με τη διαδικασία κρυπτογράφησης, αφού ο κανόνας που ακολουθείται είναι: Το κρυπτογράφημα χρησιμοποιείται ως είσοδος στον αλγόριθμο DES, αλλά τα κλειδιά Κ i τοποθετούνται σε αντίστροφη σειρά. Ουσιαστικά, το K 16 χρησιμοποιείται στην πρώτη επανάληψη, το K 15 στη δεύτερη επανάληψη, κοκ., έως ότου χρησιμοποιηθεί το K 1 στη δέκατη έκτη και τελευταία επανάληψη. 40

55 Εικόνα 17 Δημιουργία υποκλειδιών DES Κρυπτογράφηση τμήματος μήκους 64 bits Ύστερα από την αρχική μετάθεση σειρά έχουν οι δεκαέξι επαναλήψεις, για 1 n 16, χρησιμοποιώντας τη συνάρτηση F η οποία επεμβαίνει σε τμήματα, ένα τμήμα δεδομένων μήκους 32 bits και το υποκλειδί Κ n μήκους 48 bits και παράγει ένα νέο, μήκους 32 bits. Με αυτόν τον τρόπο προκύπτει ένα τελικό μήνυμα για n=16, το L 16 R 16. Αυτό συμβαίνει σε κάθε γύρο, δηλαδή τα 32 δεξιά bits του προηγούμενου αποτελέσματος γίνονται τα 32 αριστερά bits του τρέχοντος βήματος. Για τα 32 δεξιά bits του τρέχοντος βήματος τα 32 αριστερά bits του προηγούμενου βήματος εφαρμόζεται XOR με τα αποτελέσματα της συνάρτησης F: 41

56 Εικόνα 18 Υπολογισμός της f(rn-1, Kn) Για να υπολογίσουμε την F επεκτείνουμε το τμήμα R n-1 από 32 σε 48 bits. Για να επιτευχθεί αυτό, χρησιμοποιείται ένας πίνακας με βάση τον οποίο επιλέγονται κάποια στοιχεία του πίνακα R n-1 και επαναλαμβάνονται. Ονομάζουμε τη χρήση αυτού του πίνακα επιλογής Ε (πίνακας 5). Έτσι η λειτουργία E(R n-1 ) έχει είσοδο ένα τμήμα 32 bits και έξοδο τμήμα μήκους 48 bits. Ο πίνακας Ε φαίνεται παρακάτω: Πίνακας 5 Ε (επέκτασης) Έπειτα, χρησιμοποιούμε την πράξη XOR για το υποκλειδί Κ n και το E(R n-1 ) : Δεν έχουμε ακόμη τελειώσει τον υπολογισμό της συνάρτησης F. Ως εδώ έχουμε ένα τμήμα μήκους 48 bits τα οποία ομαδοποιούμε σε οκτώ ομάδες των έξι bits. Κάθε μια ομάδα από bits θα χρησιμοποιηθεί σαν διεύθυνση σε κάποιους πίνακες που ονομάζονται S- Boxes. Κάθε ομάδα αποτελούμενη από έξι bits μας δίνει μια διεύθυνση σε κάθε πίνακα S. Σε κάθε διεύθυνση είναι αποθηκευμένος ένας αριθμός μήκους τεσσάρων bits ο οποίος και 42

57 αντικαθιστά τα αρχικά έξι bits. Έτσι το τελικό τμήμα που προκύπτει από αυτή την διαδικασία είναι μήκους 32 bits. Όπου Β i είναι μια ομάδα από έξι bits. Έπειτα υπολογίζουμε το νέο τμήμα : S 1 (B 1 )S 2 (B 2 )S 3 (B 3 )S 4 (B 4 )S 5 (B 5 )S 6 (B 6 )S 7 (B 7 )S 8 (B 8 ) Όπου η ποσότητα S i (B i ) αντιστοιχεί στο αποτέλεσμα που προκύπτει για την i-οστή εξάδα στον i-οστό πίνακα S. Πριν παραθέσουμε τους πίνακες S i ας εξηγήσουμε πως λειτουργούν. Για την εξήγηση αυτή θα χρησιμοποιήσουμε τον πίνακα 6 S1 : Row Numb Πίνακας 6 S 1 Column Number Αν θεωρήσουμε S 1 την συνάρτηση που περιγράφεται στον παραπάνω πίνακα και Β μια δέσμη από έξι bit η λειτουργία S 1 (B) περιγράφεται ακολούθως : Το πρώτο και το τελευταίο bit του Β παριστάνουν έναν δεκαδικό αριθμό από το 0 ως το 3 (ή έναν δυαδικό από το 00 ως το 11). Θέτουμε αυτόν τον αριθμό ίσο με i. Τα υπόλοιπα, μεσαία, bit παριστάνουν έναν δεκαδικό αριθμό από το 0 ως το 15 (ή έναν δυαδικό από το 0000 ως το 1111) τον οποίο και θέτουμε ίσο με j. Έπειτα αναζητούμε στον πίνακα S-box1 τον αριθμό που βρίσκεται στην i - οστή γραμμή και στην j -οστή στήλη. Ο αριθμός που προκύπτει απ αυτή την αναζήτηση είναι ένας δεκαδικός αριθμός από το 0 ως το 15 ο οποίος αναπαρίσταται μοναδικά, όπως γνωρίζουμε, από τέσσερα δυαδικά ψηφία. Αυτός ο αριθμός είναι και το αποτέλεσμα που προκύπτει από την πράξη S 1 (B). Για παράδειγμα αν Β=011011, το πρώτο ψηφίο είναι 0 και το τελευταίο 1, άρα επιλέγουμε την 1η γραμμή. Τα μεσαία 4 ψηφία είναι 1101, το οποίο είναι το δυαδικό ισοδύναμο του δεκαδικού αριθμού 13, επομένως η στήλη που επιλέγεται είναι η 13 η. Στην 1 η γραμμή και την 13 η στήλη εμφανίζεται ο αριθμός 5 (σε δυαδικό σύστημα το 0101), το οποίο είναι και το αποτέλεσμα. Επομένως έχουμε ότι S1(011011)=0101. Παρακάτω παρατίθενται οι πίνακες-συναρτήσεις S 1 ως S 8 (πίνακες 7 έως 14): Row Numb Πίνακας 7 S 1 Column Number

58 Row Numb Πίνακας 8 S 2 Column Number Πίνακας 9 S 3 Row Numb Column Number Row Numb Πίνακας 10 S 4 Column Number Row Numb Πίνακας 11 S 5 Column Number Row Numb Πίνακας 12 S 6 Column Number

59 Row Numb Πίνακας 13 S 7 Column Number Row Numb Πίνακας 14 S 8 Column Number Το τελευταίο στάδιο του υπολογισμού της συνάρτησης F περιλαμβάνει μια αντιμετάθεση των στοιχείων της δέσμης που προκύπτει από τον υπολογισμό S 1 (B 1 )S 2 (B 2 )S 3 (B 3 )S 4 (B 4 )S 5 (B 5 )S 6 (B 6 )S 7 (B 7 )S 8 (B 8 ). Έτσι λοιπόν, υπολογίζεται η τιμή της F : Η πράξη της αντιμετάθεσης Ρ περιγράφεται από τον πίνακα 15 που παρατίθεται παρακάτω: Πίνακας 15 P (αντιμετάθεσης) Παρατηρούμε ότι σε αυτήν την πράξη δεν μεταβάλλεται το μήκος της δέσμης καθώς εμφανίζονται και τα 32 στοιχεία του πίνακα Δημιουργία υποκλειδιών Τα bit του αρχικού κλειδιού αντιμετατίθενται σύμφωνα με τον παρακάτω πίνακα PC-1. Όπως φαίνεται από τον πίνακα, από τη στιγμή που η πρώτη τιμή του είναι το νούμερο 57, σημαίνει ότι το 57 ο bit του αρχικού κλειδιού Κ μετατίθεται σε πρώτο bit για το κλειδί Κ+ (επόμενο κλειδί). Ομοίως το 49 ο bit του αρχικού κλειδιού μετατίθεται σε δεύτερο και το 4 ο 45

60 του αρχικού σε τελευταίο για το Κ+. Πρέπει να παρατηρήσουμε ότι μόνο 56 από τα 64 bits του αρχικού κλειδιού εμφανίζονται στον πίνακα αντιμετάθεσης (πίνακας 16) Πίνακας 16 PC-1(αντιμεταθέσεων) Έπειτα, χωρίζουμε αυτό το κλειδί σε δύο κομμάτια C 0 και D 0 (αριστερό και δεξί αντίστοιχα) τα οποία έχουν μήκος 28 bits το καθένα. Έχοντας προσδιορίσει το C 0 και D 0, δημιουργούμε δεκαέξι τμήματα C n και D n (1 n 16). Κάθε ζεύγος C n και D n δημιουργείται από το προηγούμενο ζεύγος C n-1 και D n-1, αντίστοιχα, για n = 1, 2,, 16, χρησιμοποιώντας τον παρακάτω πίνακα 17 για αριστερές ολισθήσεις του προηγούμενου τμήματος. Για να πραγματοποιηθεί μια ολίσθηση προς τα αριστερά μετακινείται κάθε bit μια θέση αριστερά με εξαίρεση το πρώτο το οποίο πηγαίνει τελευταίο. Αριθμός Επαναλήψεων Αριθμός Αριστερών Ολισθήσεων Πίνακας 17 Ολισθήσεων Στη συνέχεια σχηματίζουμε τα κλειδιά Κ n, με 1 n 16, χρησιμοποιώντας τoν παρακάτω πίνακα αντιμεταθέσεων PC-2 (πίνακας 18) σε κάθε ζεύγος C n,d n. Κάθε ζεύγος έχει 56 bits αλλά στον πίνακα αντιμεταθέσεων χρησιμοποιούνται μόνο τα 48. Έτσι λοιπόν το 1ο bit του κλειδιού K n είναι το 14ο του C n D n κτλ: 46

61 Πίνακας 18 PC-2 (αντιμεταθέσεων) Η λειτουργία του DES μέσα από παράδειγμα Για την καλύτερη κατανόηση του αλγορίθμου, παράλληλα με τα βήματα θα επιλύεται κι ένα παράδειγμα: Ας υποθέσουμε ότι το αρχικό κείμενο M= ABCDEF σε δεκαεξαδική μορφή. Αν το μετατρέψουμε σε δυαδική μορφή έχουμε : M = και αν το χωρίσουμε σε δύο τμήματα δεξί και αριστερό έχουμε: L = R = Ας υποθέσουμε ότι έχουμε το κλειδί K= BBCDFF1 σε δεκαεξαδική μορφή. Αν το μετατρέψουμε σε δυαδική μορφή και απαλείψουμε κάθε όγδοο bit θα έχουμε ότι : K = Δημιουργία υποκλειδιών Από το μήκους 64 bits αρχικό κλειδί : K = Λαμβάνουμε το μήκους 56 bits αντιμετατιθέμενο κλειδί με βάση τον πίνακα αντιμεταθέσεων PC-1 (Πίνακας 16): Κ+ = Έπειτα, χωρίζουμε αυτό το κλειδί σε δύο κομμάτια C 0 και D 0 (αριστερό και δεξί αντίστοιχα) τα οποία έχουν μήκος 28 bits το καθένα. Έτσι : C0 = D0 = και από το αρχικό ζεύγος C 0 και D 0, χρησιμοποιώντας τις ολισθήσεις που υποδεικνύονται στον Πίνακα 17, προκύπτουν τα ζεύγη: C0 = D0 =

62 C1 = D1 = C2 = D2 = C3 = D3 = C4 = D4 = C5 = D5 = C6 = D6 = C7 = D7 = C8 = D8 = C9 = D9 = C10 = D10 = C11 = D11 = C12 = D12 = C13 = D13 = C14 = D14 = C15 = D15 = C16 = D16 = Στη συνέχεια σχηματίζουμε τα κλειδιά Κ n, τον πίνακα αντιμεταθέσεων PC-2 (Πίνακας 18). Για το πρώτο κλειδί έχουμε : C 1 D 1 =

63 Το οποίο μετά την αντιμετάθεση γίνεται : Κ 1 = Για τα υπόλοιπα κλειδιά έχουμε ότι : K 2 = K 3 = K 4 = K 5 = K 6 = K 7 = K 8 = K 9 = K 10 = K 11 = K 12 = K 13 = K 14 = K 15 = K 16 = Με αυτόν τον τρόπο δημιουργούνται τα 16 υποκλειδιά. Κρυπτογράφηση τμήματος μήκους 64 bits Αν εφαρμόσουμε την αρχική αντιμετάθεση (Πίνακας 3) στο μήνυμα Μ που αναφέραμε παραπάνω θα λάβουμε το ΙΡ: M = IP = Στη συνέχεια διαχωρίζουμε το παραπάνω μήνυμα στο δεξί και το αριστερό μισό του : L 0 = R 0 = Σειρά έχουν οι δεκαέξι επαναλήψεις, για 1 n 16, χρησιμοποιώντας μια συνάρτηση F. Για n=1 έχουμε: Κ 1 =

64 L 1 = R 0 = Μπορούμε να παραθέσουμε ένα παράδειγμα χρήσης του πίνακα Ε (Πίνακας 5): Αν R 0 = E(R 0 ) = Έπειτα, χρησιμοποιούμε την πράξη XOR για το υποκλειδί Κ n και το E(R n-1 ) : K 1 = E(R 0 ) = Σύμφωνα με την διαδικασία λειτουργίας των S-boxes (Πίνακες 7-14) που περιγράφηκε παραπάνω, αν K 1 E(R 0 ) = Τότε : S 1 (B 1 )S 2 (B 2 )S 3 (B 3 )S 4 (B 4 )S 5 (B 5 )S 6 (B 6 )S 7 (B 7 )S 8 (B 8 )= Από το ότι F = P(S 1 (B 1 )S 2 (B 2 )...S 8 (B 8 )), προκύπτει ότι F = Επομένως : R 1 = L 0 F(R 0, K 1 ) = = Αν συνεχίσουμε τους παραπάνω υπολογισμούς με τον τρόπο που περιγράφτηκε παραπάνω, στη 16 η επανάληψη θα λάβουμε : L 16 = R 16 = Από την αντιστροφή προκύπτει: R 16 L 16 = Και με την τελική αντιμετάθεση ΙΡ -1 : IP -1 = Το οποίο σε δεκαεξαδική μορφή είναι το 85E813540F0AB405. Το τμήμα C=85E813540F0AB405 είναι η τελική κρυπτογραφημένη μορφή του αρχικού κειμένου M= ABCDEF. 50

65 3.2.4 Αποκρυπτογράφηση του DES Η διαδικασία της αποκρυπτογράφησης με βάση τον αλγόριθμο DES είναι σχεδόν ίδια με τη διαδικασία της κρυπτογράφησης. Η μόνη διαφορά που έχει η κρυπτογράφηση από την αποκρυπτογράφηση είναι ότι, ενώ όπως παρατηρήσαμε παραπάνω κατά τη δημιουργία των κλειδιών στην κρυπτογράφηση οι ολισθήσεις γίνονται προς την αριστερή φορά, κατά την αποκρυπτογράφηση οι ολισθήσεις γίνονται προς τη δεξιά φορά, με αποτέλεσμα να παράγονται τα κλειδιά με αντίστροφη σειρά. Όλη η υπόλοιπη διαδικασία, ακόμα και οι πίνακες, παραμένει ακριβώς η ίδια Η Ισχύς του Αλγορίθμου DES Η ανησυχία που υπήρχε για την ισχύ του αλγορίθμου DES βασιζόταν σε δύο αιτίες: αιτίες σχετιζόμενες με τον ίδιο τον αλγόριθμο και αιτίες σχετιζόμενες με τη χρήση κλειδιού με μέγεθος 56-bit. Η πρώτη κατηγορία αιτιών ανησυχίας βασιζόταν στην πιθανότητα να καταστεί εφικτή η κρυπτανάλυση του DES με εκμετάλλευση κάποιων χαρακτηριστικών του αλγορίθμου. Η δεύτερη κατηγορία αιτιών ανησυχίας βασιζόταν στο μήκος του κλειδιού. Ήδη από τα τέλη της δεκαετίας του '70 εμπειρογνώμονες σε θέματα ασφάλειας προειδοποιούσαν ότι η χρονική διάρκεια κατά την οποία ο αλγόριθμος DES με μέγεθος κλειδιού 56 bit θα θεωρείται ασφαλής αλγόριθμος, είναι ολοένα και μικρότερη, λαμβάνοντας υπόψη τις διαφαινόμενες τάσεις αύξησης της ταχύτητας των επεξεργαστών και ταυτόχρονης μείωσης των τιμών του υλικού. Τον Ιούλιο του 1998, το Ίδρυμα Electronic Frontier Foundation - EFF ανακοίνωσε ότι κατάφερε εντός τριών ημερών την κρυπτανάλυση ενός DES κρυπτομηνύματος χρησιμοποιώντας μία μηχανή ειδικού σκοπού αποκαλούμενη DES cracker που κόστισε λιγότερο από USD. Το EFF δημοσίευσε λεπτομερή περιγραφή της μηχανής, παρέχοντας τη δυνατότητα και σε όποιον άλλον επιθυμούσε να δημιουργήσει αντίστοιχες ατομικές μηχανές. Επίσης από τα τέλη του 80 και αρχές 90 άρχισαν να γίνονται προσπάθειες για εύρεση εναλλακτικών κωδικοποιητών τμημάτων (block ciphers).παραδείγματα αυτών αποτελούν οι RC5, Blowfish, IDEANewDES, SAFER, CAST5, και FEAL. Οι περισσότεροι από αυτούς διατήρησαν το μέγεθος block στα 64-bit, όπως ο DES, όμως χρησιμοποίησαν τυπικά κλειδί μεγέθους 64-bit ή 128-bit. Ο ίδιος ο DES μπορεί να υιοθετηθεί και να επαναχρησιμοποιηθεί σε έναν πιο ασφαλές αλγόριθμο. Σήμερα πολλοί πρώην χρήστες του DES χρησιμοποιούν τον Triple DES, ο οποίος είναι ασφαλής αλλά αρκετά αργός. Αξίζει να σημειωθεί ότι δεν είναι απλώς μία επίθεση αναζήτησης κλειδιού, όπου δοκιμάζονται με επιθέσεις τύπου εξαντλητικής αναζήτησης όλα τα πιθανά κλειδιά για να βρεθεί το κατάλληλο. Εάν δεν παρέχεται γνωστό αρχικό κείμενο, ο αναλυτής πρέπει να είναι σε θέση να αναγνωρίσει το αρχικό κείμενο ως πράγματι αρχικό κείμενο. Εάν το μήνυμα είναι απλό-κοινό κείμενο στην Αγγλική γλώσσα, τότε το αποτέλεσμα εξάγεται εύκολα, διότι η αναγνώριση των κειμένων Αγγλικής γλώσσας έχει αυτοματοποιηθεί. Στην περίπτωση, όμως, που το κείμενο του μηνύματος έχει συμπιεστεί πριν από τη διαδικασία της κρυπτογράφησης, τότε η αναγνώριση καθίσταται δυσκολότερη. Συνεπώς για να 51

66 επιτευχθεί η κρυπτανάλυση απαιτείται και κάποια γνώση για το είδος του αρχικού κειμένου. Η προσέγγιση του EFF έχει εξετάσει το ζήτημα αυτό και εισήγαγε ορισμένες αυτοματοποιημένες τεχνικές, που θα μπορούσαν να αποβούν αποτελεσματικές σε αρκετά κείμενα. Ιδιαίτερο ενδιαφέρον παρουσιάζει το εξής σημείο: Αν η μόνη μορφή επίθεσης που θα μπορούσε να δεχτεί ένας αλγόριθμος κρυπτογράφησης είναι η επίθεση τύπου εξαντλητικής αναζήτησης κλειδιών, τότε ο τρόπος αντιμετώπισης τέτοιων επιθέσεων θα ήταν η χρήση κλειδιών ακόμη μεγαλύτερου μεγέθους. Αν υποτεθεί ότι η μηχανή διάσπασης μπορεί να επιτελέσει 10 6 αποκρυπτογραφήσεις ανά μs, τότε αρκούν περίπου 10 ώρες για να κρυπταναλυθεί κείμενο κρυπτογραφημένο με το σύστημα DES. Το γεγονός αυτό οδηγεί σε περίπου 7 φορές ταχύτερο αποτέλεσμα από αυτό που επιτεύχθηκε από το EFF. Κλειδί μεγέθους 128-bit, το οποίο πλέον χρησιμοποιείται στους σύγχρονους αλγορίθμους, θα χρειαζόταν περισσότερα από χρόνια για να διασπαστεί χρησιμοποιώντας τη μηχανή διάσπασης του EFF. Ακόμη και αν κατορθώναμε να επιταχύνουμε τη διάσπαση με συντελεστή της τάξης του 10 12, θα χρειαζόταν περισσότερα από 10 6 χρόνια για να παραβιαστεί ο κώδικας. Συνεπώς, ένα κλειδί των 128-bit αποτελεί, με τις παρούσες συνθήκες, εγγύηση για έναν αλγόριθμο έναντι επιθέσεων τύπου εξαντλητικής αναζήτησης κλειδιών Τα αδύναμα κλειδιά του DES Ο αλγόριθμος DES έχει κάποια κλειδιά τα οποία ονομάζονται ασθενή-αδύναμα (weak) κλειδιά και κάποια άλλα τα οποία ονομάζονται ημιασθενή (semi-weak) κλειδιά. Η χρήση αυτών των κλειδιών έχει σαν αποτέλεσμα ο DES κατά τη διαδικασία της κρυπτογράφησης να συμπεριφέρεται όπως ακριβώς συμπεριφέρεται στη διαδικασία της αποκρυπτογράφησης. Όπως ήδη γνωρίζουμε, το κλειδί των 56 bit σπάει σε 16 υποκλειδιά σύμφωνα με τον αλγόριθμο. Το πρόβλημα που δημιουργείται με τα ασθενή κλειδιά είναι ότι τα 16 υποκλειδιά που προκύπτουν από το αρχικό κλειδί, είναι ίδια. Παραθέτουμε τώρα, τις περιπτώσεις κατά τις οποίες προκύπτει ασθενές κλειδί: 1. Όταν έχουμε εναλλασσόμενους άσσους και μηδενικά ( ) 2. Όταν έχουμε εναλλασσόμενα "F" και "E" (FEFEFEFEFEFEFEFE) 3. Το κλειδί : E0E0E0E0F1F1F1F1 4. Το κλειδί : 1E1E1E1E0F0F0F0F Χρησιμοποιώντας τα παραπάνω κλειδιά τα υποκλειδιά που προκύπτουν, ανάλογα με την περίπτωση, είναι μηδενικά, άσσοι ή εναλλασσόμενα μηδενικά και άσσοι. Έτσι αν χρησιμοποιήσουμε τη διαδικασία της κρυπτογράφησης δύο φορές με το ίδιο κλειδί, θα πάρουμε το αρχικό κείμενο Με αντίστοιχο τρόπο λειτουργούν και τα ημιασθενή κλειδιά με τη διαφορά ότι τα ημιασθενή κλειδιά δουλεύουν ως ζεύγη. Αν δηλαδή κρυπτογραφήσουμε δύο φορές ένα αρχικό κείμενο με ένα ζεύγος ημιασθενών κλειδιών θα πάρουμε το αρχικό κείμενο. Τα ζεύγη των ημιασθενών κλειδιών είναι τα παρακάτω: F011F010E010E και 1F011F010E010E E001E001F101F1 και E001E001F101F101 52

67 3. 01FE01FE01FE01FE και FE01FE01FE01FE FE01FE00EF10EF1 και E01FE01FF10EF10E 5. 1FFE1FFE0EFE0EFE και FE1FFE1FFE0EFE0E 6. E0FEE0FEF1FEF1FE και FEE0FEE0FEF1FEF1 Σε αυτό το σημείο πρέπει να τονίσουμε ότι το πλήθος των προβληματικών κλειδιών του DES είναι πάρα πολύ μικρό και συνεπώς οι πιθανότητες να χρησιμοποιηθούν είναι ελάχιστες. Είναι πολύ βασικό για την ανθεκτικότητα του αλγορίθμου και κάθε αλγορίθμου, τα ασθενή κλειδιά να είναι γνωστά από την αρχή καθώς αν δεν τα γνωρίζουν ούτε οι σχεδιαστές του αλγορίθμου τότε υπάρχει σοβαρό κενό ασφαλείας στον αλγόριθμο. Αν οι σχεδιαστές γνωρίζουν τα ασθενή κλειδιά, μπορούν να ξεπεράσουν αυτό το εμπόδιο κατά την υλοποίηση του αλγορίθμου. 3.3 Ο αλγόριθμος Triple DES Όπως αναφέραμε παραπάνω, με τα χρόνια, λόγω της ραγδαίας ανάπτυξης του πεδίου των νέων τεχνολογιών και της πληροφορικής, έγινε απαραίτητο να βρεθεί ένας πιο αξιόπιστος αλγόριθμος κρυπτογράφησης από τον DES. Έτσι λοιπόν προέκυψε ο αλγόριθμος triple-des. Ο triple-des είναι απλά ο DES στον οποίο χρησιμοποιούνται τρία κλειδιά μήκους 56 bits το καθένα. Δοθέντος ενός αρχικού μηνύματος προς κρυπτογράφηση, το πρώτο κλειδί χρησιμοποιείται από τον DES για την κρυπτογράφηση του μηνύματος. Το δεύτερο κλειδί χρησιμοποιείται για να αποκρυπτογραφήσει το κρυπτογραφημένο με το πρώτο κλειδί μήνυμα. Επειδή όμως το δεύτερο κλειδί δεν είναι το σωστό κλειδί για την αποκρυπτογράφηση του μηνύματος, το μόνο που επιτυγχάνεται με αυτή τη διαδικασία είναι να μπερδεύεται ακόμα περισσότερο το ήδη κρυπτογραφημένο μήνυμα. Τελικά το μήνυμα ξανακρυπτογραφείται με το τρίτο κλειδί και έτσι προκύπτει το τελικό κρυπτογραφημένο μήνυμα. Αυτή λοιπόν η διαδικασία τριών βημάτων αποκαλείται triple- DES (TDES ή TDEA). Ο TDEA είναι απλά η εφαρμογή του DES τρεις φορές με τρία κλειδιά τα οποία χρησιμοποιούνται με συγκεκριμένη σειρά. Ο triple-des μπορεί να εφαρμοστεί και με δύο διαφορετικά κλειδιά αντί για τρία. Στην γενική περίπτωση, το συνολικό εύρος του κλειδιού είναι Ο αλγόριθμος ακολουθεί τη διαδοχή: κρυπτογράφηση, αποκρυπτογράφηση, κρυπτογράφηση (EDE encryption decryption - encryption) : όπου: C = κρυπτογράφημα P = αρχικό κείμενο EK[X] = κρυπτογράφηση του Χ με χρήση του κλειδιού Κ DK[Y] = αποκρυπτογράφηση του Χ με χρήση του κλειδιού Κ 53

68 Εικόνα 19 TDEA Η αποκρυπτογράφηση ακολουθεί ακριβώς την ίδια διαδικασία με τα κλειδιά σε αντίστροφη χρήση: Το πρότυπο καθορίζει τις ακόλουθες επιλογές για το κλειδί για τη δέσμη (Κ 1, Κ 2, Κ 3 ): Κ 1, Κ 2 και Κ 3 ανεξάρτητα κλειδιά. Κ 1 και Κ 2 ανεξάρτητα κλειδιά και Κ 3 = Κ 1. Κ 1 = Κ 2 = Κ 3 Αξίζει να σημειωθεί ότι η ύπαρξη της αποκρυπτογράφησης στο δεύτερο στάδιο της κρυπτογράφησης TDES δεν παρουσιάζει κάποια κρυπτογραφική χρησιμότητα, απλώς επιτρέπει στους χρήστες του TDES να αποκρυπτογραφήσουν τα στοιχεία που κρυπτογραφούνται από τους χρήστες του απλού DES: 3.4 Εφαρμογές και υλοποιήσεις Η κρυπτογράφηση δεδομένων χρησιμοποιείται σε ποικίλες εφαρμογές και περιβάλλοντα. Ειδικά η χρήση της κρυπτογράφησης και εφαρμογής του DES και TDEA βασίζεται σε πολλούς παράγοντες συγκεκριμένα για υπολογιστικά συστήματα και συναφών συνιστωσών του. Γενικά, η κρυπτογραφία χρησιμοποιείται για την προστασία δεδομένων κατά την επικοινωνία μεταξύ δύο σημείων ή κατά την αποθήκευση τους σε ευάλωτο από επιθέσεις μέσο. Η ασφάλεια των επικοινωνιών παρέχει προστασία σε δεδομένα κρυπτογραφώντας τα στο σημείο αποστολής και αποκρυπτογραφώντας τα στο σημείο λήψης. Η ασφάλεια αρχείων παρέχει προστασία δεδομένων κρυπτογραφώντας τα όταν καταγράφονται σε κάποιο μέσο αποθήκευσης και αποκρυπτογραφώντας τα όταν διαβάζονται από αυτό. Στην πρώτη περίπτωση, το κλειδί πρέπει να είναι διαθέσιμο στον αποστολέα και στον παραλήπτη ταυτόχρονα κατά τη διάρκεια της επικοινωνίας. Στη δεύτερη περίπτωση, το κλειδί πρέπει να διατηρείται και να είναι διαθέσιμο κατά την περίοδο της αποθήκευσης. 54

69 Το πρωτόκολλο FIPS 171 παρέχει εγκεκριμένες μεθόδους για τη διαχείριση των κλειδιών που χρησιμοποιούνται από αυτά τα πρότυπα. Τα πρωτόκολλα δημόσιου κλειδιού μπορούν επίσης να χρησιμοποιηθούν. Οι συσκευές DES και TDEA χρησιμοποιούνται από την ομοσπονδιακή υπηρεσία και άλλους κυβερνητικούς οργανισμούς για κρυπτογραφική προστασία πληροφοριών. Το πρότυπο του DES καθορίζει τη λειτουργικότητα και την ασφάλεια συσχετισμένη με τις απαιτήσεις της χρήσης της κρυπτογράφησης στο Φυσικό Επίπεδο (Physical Layer) του OSI (Open Systems Interconnection) Reference Model των τηλεπικοινωνιακών συστημάτων που μεταφέρουν ψηφιακή πληροφορία. Ο DES κυρίως εφαρμόζεται πρωταρχικά σε: Ηλεκτρονικές οικονομικές συναλλαγές: Οι Μηχανές αυτόματης ανάληψης (Automatic Teller Machines) αποτελούν συσκευές με περιορισμένη ασφάλεια μετρητών ή επιταγών, αποδοχή καταθέσεων ή αναφορά υπολοίπου λογαριασμών. Ασφαλής μετάδοση δεδομένων, ανοίγοντας τον δρόμο για το ηλεκτρονικό εμπόριο (e-commerce). Ασφαλή συστήματα βιντεοεπιτήρησης. Αποθήκευση κωδικοποιημένων δεδομένων και προστασία ιδιωτικού λογισμικού. Έλεγχος πρόσβασης: Λογισμικό και υλικό που προστατεύει κωδικούς (passwords) ή Προσωπικούς αριθμούς αναγνώρισης (Personal Identification Numbers- PINs) ενάντια σε μη εξουσιοδοτημένη πρόσβαση. Η λειτουργικότητα του DES και TDEA συνήθως ολοκληρώνεται με ενσωματωμένα συστήματα. Οι DCT/IDCT (discrete cosine transform/inverse DCT) λύσεις εφαρμόζονται σε DVDs (JPEG), καλωδιακή τηλεόραση, συστήματα DBS, HDTV, γραφικά, υπερηχητικά συστήματα MRI, ψηφιακά VCRs, ψηφιακές κάμερες, κτλ. Αυτές οι εφαρμογές χρειάζονται επίσης τον αλγόριθμο DES για κρυπτογράφηση δεδομένων. Ο συνδυασμός του διακριτού μετασχηματισμού συνημίτονου (DCT/IDCT) και του DES μπορεί να χρησιμοποιηθεί σε εφαρμογές όπως βίντεο πραγματικού χρόνου, συστήματα ασφάλειας με βίντεο, κτλ. Επίσης ο DES χρησιμοποιείται σε εφαρμογές καταναλωτικές συμπεριλαμβανομένου του ηλεκτρονικού εμπορίου, καλωδιακά μόντεμ, αποκωδικοποιητές, οικιακά δίκτυα, ασύρματα LAN και Bluetooth ασύρματα δίκτυα, αλλά και οικονομικές συναλλαγές όπως προπληρωμένες κάρτες και προσωπικά τραπεζικά συστήματα. Χρησιμοποιείται επίσης σε πύλες (gateways) για την διασφάλιση ασφάλειας δεδομένων χρήστη. Παρέχει ασφαλή κρυπτογράφηση ψηφιακής φωνής σε φορητές συσκευές τηλεπικοινωνιών όπως κινητές ραδιοεπικοινωνίες και κονσόλες αποστολής ελέγχου. Η κρυπτογράφηση δεδομένων με τον DES και TDEA επικρατεί στις μηχανές FAX. Αυτό επιτρέπει μετάδοση δεδομένων μέσω τηλεφωνικών γραμμών και αποτρέπει την υποκλοπή από κάποιου το φαξ στον παραλήπτη, κάτι που εμποδίζεται από την είσοδο κωδικού χρήστη για την ανάκτηση του φαξ. Εφαρμογές δικτύων χρησιμοποιούν τον DES και Triple-DES για να προστασία μέσω του δικτύου προστασίας προσωπικών δεδομένων, την ακεραιότητα των δεδομένων, τον έλεγχο πρόσβασης και έλεγχο ταυτότητας. Η ασφάλεια μηνυμάτων και αρχείων, ο έλεγχος ταυτότητας χρήστη, η ασφαλής απομακρυσμένη σύνδεση στο σύστημα, και η πολυεπίπεδη πρόσβαση στο σύστημα απαιτεί κρυπτογράφηση δεδομένων, και οι DES και Triple-DES αλγόριθμοι είναι οι πιο κατάλληλοι. Κρυπτογραφικές μονάδες που υλοποιούνται με αυτό το πρότυπο θα πρέπει να συμφωνούν με τις απαιτήσεις του FIPS Οι αλγόριθμοι που καθορίζονται από αυτό 55

70 μπορούν να υλοποιηθούν σε λογισμικό (software), firmware, υλικό (hardware) ή οποιοδήποτε συνδυασμό αυτών. Κάθε υλοποίηση εξαρτάται από πολλούς παράγοντες όπως η εφαρμογή, το περιβάλλον, η τεχνολογία που χρησιμοποιείται κτλ. Υλοποιήσεις που συμμορφώνονται με το πρότυπο περιλαμβάνουν ηλεκτρονικές συσκευές (όπως VLSI chip), μικροεπεξεργαστές που χρησιμοποιούν μνήμη ROM, PROM, ή EPROM και υπολογιστές mainframe που χρησιμοποιούν μνήμη RAM. 56

71 4. Υλοποίηση DES και TDEA σε επίπεδο λογισμικού 4.1 Εισαγωγή Οι αλγόριθμοι κρυπτογράφησης μπορούν να υλοποιηθούν είτε σε λογισμικό, είτε σε υλικό. Η επιλογή της πλατφόρμας εξαρτάται από την επίδοση του αλγορίθμου, το κόστος και την ευελιξία. Οι απαιτήσεις υλοποίησης για τα κρυπτοσυστήματα είναι άμεσα συνδεδεμένες με το είδος της εφαρμογής που χρειάζεται προστασία. Για παράδειγμα, τα δίκτυα χαμηλής ή μέτριας ταχύτητας (όπου μόνο πολύ μικρή διακίνηση δεδομένων μπορεί να είναι απρόβλεπτη) μπορούν να υλοποιηθούν σε λογισμικό. Μερικά τέτοια παραδείγματα δικτύων αποτελούν το ηλεκτρονικό ταχυδρομείο, οι συναλλαγές πιστωτικών καρτών και το ηλεκτρονικό εμπόριο. Οι υλοποιήσεις σε λογισμικό προσφέρουν λύσεις χαμηλού κόστους και υψηλής ευελιξίας όπου τροποποιήσεις ή αναβαθμίσεις είναι δυνατές κάθε στιγμή. Για την υλοποίηση των αλγορίθμων που περιγράφηκαν στην προηγούμενη ενότητα σε επίπεδο λογισμικού χρησιμοποιήθηκε η γλώσσα προγραμματισμού C++ και το περιβάλλον Microsoft Visual Studio Πιο συγκεκριμένα η υλοποίηση πραγματοποιήθηκε σύμφωνα με το πρωτόκολλο FIPS 46-3 και ακολουθήθηκε επακριβώς η διαδικασία που περιγράφεται σε αυτό. 4.2 Ανάλυση προγράμματος Τα δεδομένα επεξεργάζονται σε επίπεδο bits όπως και στο πρωτόκολλο με τη μορφή πινάκων ακεραίων στη C++. Για την υλοποίηση των μεταθέσεων δημιουργήθηκαν πίνακες με τις αλλαγές των θέσεων ώστε να χρησιμοποιηθούν με τη βοήθεια επαναλήψεων for στις συναρτήσεις του προγράμματος. Με άλλα λόγια οι πίνακες αυτοί περιέχουν τον αριθμό της νέας θέσης καθενός bit που πρόκειται να μετατεθεί. Δύο είναι οι βασικές συναρτήσεις που δημιουργήθηκαν: Encrypt: Αποτελεί τον βασικό πυρήνα του προγράμματος και εκτελεί την κρυπτογράφηση δεδομένων ακολουθώντας τους 16 κύκλους που προβλέπονται από τον αλγόριθμο DES (εικόνα 15). Δέχεται σαν είσοδο δύο πίνακες, έναν χαρακτήρων που αποτελεί το αρχικό κείμενο και έναν ακεραίων που παριστάνει το κλειδί. Ύστερα από επεξεργασία τους μετατρέπει σε πίνακες ακεραίων ώστε να τα διαχειριστεί ως bits. Τελικά το κρυπτογραφημένο μήνυμα που παράγεται σε δυαδική μορφή μετατρέπεται σε πίνακα χαρακτήρων για να προβληθεί στον χρήστη. Πιο αναλυτικά η συνάρτηση κρυπτογράφησης μπορεί να περιγραφεί με τον παρακάτω ψευδοκώδικα βασισμένο στην εικόνα 16: void function Encrypt(Text, key){ set Text to binary message create subkeys for(i=0;i<64;i++) 57

72 IP<-use ip array to permute message; for(i=0;i<32;i++) split IP to L and R; for(round=0;round<16;round++){ for(i=0;i<48;i++){ expand R; xor with subkey(round); substitution with S-boxes; for(i=0;i<32;i++){ permute using P table; XOR <- xor with L; set L=R; R=XOR; for(i=0;i<32;i++) FP<-use fp array produce final cipher; convert binary to char Τα κλειδιά έχουν προϋπολογιστεί χρησιμοποιώντας τη συνάρτηση keycreation και έχουν αποθηκευτεί σε δισδιάστατο πίνακα διαστάσεων 16x48, όπου αντιστοιχεί μία γραμμή πίνακα για κάθε γύρο του DES. Ουσιαστικά χρησιμοποιούνται οι επαναλήψεις for ώστε να προσπελαύνεται κάθε φορά μία θέση του εκάστοτε πίνακα είτε όταν υλοποιούνται οι διαδικασίες μετάθεσης και επέκτασης, είτε όταν εκτελείται η λογική πράξη XOR. Decrypt: Αποτελεί την αντίστροφη διαδικασία από την κρυπτογράφηση και ακολουθεί ακριβώς τα ίδια βήματα με την διαφορά πως τα κλειδιά εισάγονται με αντίστροφη σειρά. Αυτό μας το επιτρέπει ο προϋπολογισμός τους και η αποθήκευση στον δισδιάστατο πίνακα. Κατά την αποκρυπτογράφηση στην πρώτη επανάληψη εισάγεται το κλειδί που βρίσκεται στην 15 η γραμμή του πίνακα. Για το λόγο αυτό υπάρχει η παρακάτω διαφοροποίηση σε σχέση με τον ψευδοκώδικα που παρουσιάστηκε για την κρυπτογράφηση. for(round=15;round>-1;round--){ for(i=0;i<48;i++){ expand R; xor with subkey(round); Και στις δύο αυτές λειτουργίες κατά την εκτέλεση γίνεται εμφάνιση των ενδιάμεσων αποτελεσμάτων σε μορφή HEX. Πιο συγκεκριμένα, εμφανίζονται η αρχική μετάθεση του αρχικού μηνύματος, τα πρώτα τμήματα που διαχωρίζεται (δεξί-r 0 και αριστερό-l 0 ), τα τμήματα που λαμβάνουν μέρος στη συνάρτηση f κάθε κύκλου (για κάθε κύκλο τα R και Κ), καθώς και το αποτέλεσμα της για κάθε κύκλο από τους 16, τα τελικά R 16 και L 16 και τέλος την τελική μετάθεση που οδηγεί στο κρυπτογραφημένο ή αποκρυπτογραφημένο κείμενο ανάλογα με τη λειτουργία. Επιπλέον για εύκολη χρήση και ανάγνωση του κώδικα δημιουργήθηκαν ενδιάμεσες συναρτήσεις για κάποια από τα ενδιάμεσα βήματα του αλγορίθμου για το λόγο ότι χρησιμοποιούνται με τον ίδιο τρόπο σε κάθε κύκλο. Παρακάτω παρουσιάζονται λίγες πληροφορίες για τη λειτουργία τους: 58

73 keycreation: Εδώ ουσιαστικά γίνεται ο προϋπολογισμός των υποκλειδιών όπως παρουσιάζεται στην εικόνα 17 που αποθηκεύονται σε πίνακες ακεραίων δύο διαστάσεων (16 rounds*48 bits) ώστε να χρησιμοποιηθούν σε κάθε κύκλο του αλγορίθμου. Το μόνο όρισμα που δέχεται είναι ένας δείκτης στον πίνακα ακεραίων που περιέχει τις δυαδικές τιμές του κλειδιού. Και σε αυτή τη συνάρτηση οι μεταθέσεις PC-1 (πίνακας 16) και PC-2 (πίνακας 18) επιτυγχάνονται με τη χρήση δομών επανάληψης for. Όσον αφορά τις ολισθήσεις (πίνακας 17) χρησιμοποιείται ένας πίνακας ο οποίος σε κάθε θέση του περιέχει τον αριθμό των μετατοπίσεων που πρέπει να εφαρμοστούν στο αντίστοιχο αρχικό τμήμα. Δηλαδή σε κάθε επανάληψη (από 0 έως 15 για 16 γύρους) ολισθαίνουν τα C 0 και D 0. substitution: Αποτελεί τη συνάρτηση διαχείρισης των S-boxes και είναι void συνάρτηση. Η διαδικασία που ακολουθεί συνιστά τη διαδικασία που περιγράφηκε στο προηγούμενο κεφάλαιο με τον διαχωρισμό των bits ώστε να χρησιμοποιηθεί η κατάλληλη θέση του εκάστοτε S-box. Πιο συγκεκριμένα τα 48 bits διαχωρίζονται, με την χρήση ενός δισδιάστατου πίνακα διαστάσεων 8x6, οκτώ ομάδες των έξι bits η καθεμία. Ελέγχοντας κάθε φορά τα κατάλληλα bit, όπως περιγράφηκε στην ενότητα 3.2.1, χρησιμοποιούνται οκτώ δομές ελέγχου switch για την αντιστοίχηση σε καθένα από τα οκτώ S-boxes. Τέλος δύο ακόμα συναρτήσεις που βοήθησαν στην καλύτερη και πιο ευανάγνωστη αναπαράσταση των αποτελεσμάτων: char2key: Καθώς το κλειδί εισάγεται από το χρήστη σε μορφή χαρακτήρων υλοποιήθηκε η συγκεκριμένη συνάρτηση για να το μετατρέπει σε μορφή πίνακα ακεραίων που αντιπροσωπεύει τα bits. Επιπλέον, εκτελεί και μία ακόμη λειτουργία διαχωρίζει το κλειδί σε δύο, σε περίπτωση που έχει επιλεχθεί να υλοποιηθεί ο TDEA. binary2hex: Αποτελεί μία απλή συνάρτηση αναπαράστασης των δεδομένων με σκοπό να είναι πιο ευανάγνωστα στην έξοδο. Για το λόγο αυτό υλοποιήθηκε και η δυνατότητα αναπαράστασης τους σε μορφή HEX εκτός από τους χαρακτήρες. Το κυρίως πρόγραμμα χρησιμοποιώντας δομές switch διαχωρίζει την κάθε λειτουργία ώστε να υλοποιηθεί κάθε φορά ο κατάλληλος αλγόριθμος χρησιμοποιώντας συνδυασμό των δύο βασικών συναρτήσεων Encrypt και Decrypt. Σε περίπτωση που επιλεγεί να εκτελεστεί ο DES δέχεται ως είσοδο σε χαρακτήρες το αρχικό κείμενο και το κλειδί και την λειτουργία που θα εκτελεστεί. Τρείς είναι οι εκδοχές Encrypt, Decrypt και Full που περιέχει και τις δύο μαζί. Από την άλλη πλευρά, αν επιλεγεί ο TDEA ακολουθείται η ίδια διαδικασία μόνο που το κλειδί θα έχει μέγεθος 128 bits τα οποία θα διασπαστούν σε δύο διαφορετικά κλειδιά των 64 bits ώστε να χρησιμοποιηθούν για την κρυπτογράφηση και αποκρυπτογράφηση αντίστοιχα. Όσον αφορά το αρχικό κείμενο δεν έχουμε περιορισμό για το μέγεθος του διότι ο κώδικας προβλέπει το διαχωρισμό του σε blocks των 64 bits και επανάληψη του αλγορίθμου για κάθε block. Αλλά και στην περίπτωση μικρότερου block εφαρμόζεται προσθήκη «κενών» χαρακτήρων ώστε να συμπληρωθούν τα 64 bit. Από την άλλη τα κλειδιά πρέπει να έχουν μήκος 64 ή 128 bits ανάλογα με τον αλγόριθμο και όχι παραπάνω. Σε 59

74 περίπτωση πλεονασμού απορρίπτονται τα επιπλέον bits, ενώ σε περίπτωση έλλειψης ακολουθείται όμοια διαδικασία με το αρχικό κείμενο. Τα αποτελέσματα τυπώνονται για ευκολία ανάγνωσης σε μορφή HEX ενώ τα τελικά εμφανίζονται επίσης και σε μορφή χαρακτήρων. 4.3 Διαδικτυακή υλοποίηση των DES και TDEA Η παραπάνω υλοποίηση έχει αναρτηθεί στο δικτυακό ιστότοπο μαζί με άλλους συμμετρικούς αλγορίθμους κρυπτογράφησης. Οι προσθήκες που έγιναν ώστε να είναι πιο εύχρηστη η εκτέλεση τους είναι οι εξής: Οι είσοδοι, τόσο των μηνυμάτων όσο και των κλειδιών, μπορούν να είναι είτε υπό μορφή χαρακτήρων ASCII είτε υπό δεκαεξαδική HEX. Το κυρίως πρόγραμμα δέχεται τις εισόδους από την αρχική HTML φόρμα με την μέθοδο GET, διαχωρίζει το μήνυμα, το κλειδί, την επιλογή του αλγορίθμου και της λειτουργίας και τα μετατρέπει σε κατάλληλη για επεξεργασία μορφή (π.χ. χαρακτήρες). Προστέθηκε ο περιορισμός να γίνεται επεξεργασία μόνο ενός block κάθε φορά. Οι περιορισμοί για το μέγεθος του μηνύματος αλλά και του κλειδιού ελέγχονται από ένα JavaScript αρχείο που δεν επιτρέπει στο χρήστη να εισάγει διαφορετικά από τα επιτρεπόμενα δεδομένα. Πιο αναλυτικά, αρχικά εμφανίζεται μία φόρμα που μπορεί κάθε χρήστης να εισάγει τα δεδομένα (μήνυμα και κλειδί) είτε σε μορφή χαρακτήρων ASCII είτε σε δεκαεξαδική HEX, να επιλέξει αλγόριθμο καθώς και να επιλέξει ποια λειτουργία θα εκτελεστεί. Στην εικόνα 20 φαίνεται η αρχική μορφή της σελίδας: 60

75 Εικόνα 20 Αρχική Σελίδα Στην συνέχεια εμφανίζονται τα αποτελέσματα της διαδικασίας κρυπτογράφησης και αποκρυπτογράφησης μαζί με τα ενδιάμεσα αποτελέσματα που παράγονται σε κάθε έναν από τους 16 γύρους. 61

76 4.4 Παράδειγμα εκτέλεσης των DES και TDEA Για παράδειγμα, αν επιλέξουμε να εκτελέσουμε το παράδειγμα που παρουσιάστηκε στο προηγούμενο κεφάλαιο στην ενότητα θα έχουμε για χρήση του DES : Αρχικό κείμενο (σε HEX) : ABCDEF και Κλειδί (σε HEX) : BBCDFF1. Για την κρυπτογράφηση: Εικόνα 21 Κρυπτογράφηση DES 62

77 Για την αποκρυπτογράφηση: Εικόνα 22 Αποκρυπτογράφηση DES Σε περίπτωση που χρησιμοποιήσουμε είσοδο σε μορφή χαρακτήρων και επιλέξουμε σαν αλγόριθμο κρυπτογράφησης τον DES παίρνουμε τα εξής αποτελέσματα: Εικόνα 23 Είσοδος παραδείγματος TDEA 63

78 Εικόνα 24 TDEA βήμα 1: Κρυπτογράφηση Εικόνα 25 TDEA βήμα 2: Αποκρυπτογράφηση 64

79 Εικόνα 26 TDEA βήμα 3: Κρυπτογράφηση Εικόνα 27 Αποκρυπτογράφηση TDEA 65

80 66

81 5. Υλοποίηση DES και TDEA σε υλικό 5.1 Εισαγωγή Οι περισσότεροι αλγόριθμοι κρυπτογράφησης, ειδικά οι κωδικοποιητές τμημάτων, βασίζονται σε μεθόδους μετάθεσης και αντικατάστασης για να κρυπτογραφήσουν ένα αρχικό μήνυμα και να παράγουν το κρυπτογράφημα του. Αυτοί οι μετασχηματισμοί βασίζονται σε μαθηματικά προβλήματα που χρησιμοποιούν μη γραμμικές εξισώσεις και γραμμική άλγεβρα. Η υλοποίηση των αλγόριθμων κρυπτογράφησης χρησιμοποιεί κυρίως λειτουργίες σε επίπεδο bit και πινάκων αναζήτησης (look-up tables). Οι πράξεις με bits (XORs, AND/OR, κτλ), οι μεταθέσεις, οι λογικές μετατοπίσεις και οι αντικαταστάσεις αποτελούν τέτοιες λειτουργίες, οι οποίες είναι κατάλληλες για πλατφόρμες υλικού για το λόγο ότι εκτελούνται σε σύντομο χρόνο. Αφού κατά γενικό κανόνα οι εντολές των επεξεργαστών εκτελούνται σειριακά, αρχιτεκτονικές υψηλού παραλληλισμού μπορούν να σχεδιαστούν σε υλικό ώστε να επιτευχθεί υψηλή επίδοση σε σύγκριση με υλοποιήσεις σε λογισμικό. Η ασφάλεια των δικτύων υψηλής ταχύτητας (όπου μεγάλο ποσοστό της διακίνησης δεδομένων μπορεί να εξελιχθεί απρόβλεπτο σε πραγματικό χρόνο) απαιτεί υλοποίηση σε υλικό. Εφαρμογές δικτύων υψηλής ταχύτητας των οποίων η ασφάλεια απαιτεί υλοποίηση σε υλικό μπορούν να είναι τηλεφωνικές συνομιλίες, τηλεδιασκέψεις, μετάδοση ήχου ή κρυπτογραφημένες μεταδόσεις, όπου τα δεδομένα διέρχονται από σημαντικές ταχύτητες γραμμής και πρέπει να διαχειρίζονται σε πραγματικό χρόνο. Οι λύσεις με υλικό μπορούν να καταλήγουν είτε σε VLSI είτε σε FPLDs. Οι αρχιτεκτονικές VLSI για αλγόριθμους κρυπτογράφησης προσφέρουν αποδοτικότερα κυκλώματα κρυπτογράφησης αν ο παράγοντας της ταχύτητας επικρατεί του κόστους και του μεγέθους της εφαρμογής. Αυτές είναι ακριβές λόγω του μακροχρόνιου κύκλου ανάπτυξης ώστε να παραχθεί το τελικό προϊόν. Το βασικό τους μειονέκτημα είναι η έλλειψη ευελιξίας όταν μία μικρή αλλαγή ή τροποποίηση στο κύκλωμα απαιτεί νέα διάταξη για το κύκλωμα. Από την άλλη οι λύσεις με FPLDs προσφέρουν χαμηλό κόστος λόγω του χαμηλού κύκλου ανάπτυξης ώστε να παραχθεί το τελικό προϊόν. 5.2 Χρήσιμες ιδιότητες για υλοποίηση συμμετρικών κρυπτοσυστημάτων σε VHDL Οι υλοποιήσεις σε υλικό είναι εγγενώς πιο ασφαλείς. Η πρόσβαση του κλειδιού και η τροποποίηση του αλγορίθμου θεωρείται πιο δύσκολη και μερικές ιδιότητες των συμμετρικών αλγορίθμων ταιριάζουν απόλυτα για την υλοποίηση τους σε αυτού του είδους συσκευές όπως τα FPGAs: 67

82 Οι περισσότεροι αλγόριθμοι κωδικοποίησης τμήματος (block ciphers) όπως ο DES και AES συμπεριλαμβάνουν πράξεις με bits: XOR, AND, OR κτλ. Η αφθονία αυτών των λειτουργιών στους αλγορίθμους κρυπτογράφησης κάνει την εκτέλεση τους πιο γρήγορη σε FPGAs και επιπλέον καταλαμβάνουν σχετικά λιγότερους πόρους. Η μετάθεση και η λογική μετατόπιση επίσης είναι δύο πολύ κοινές λειτουργίες στους συμμετρικούς αλγόριθμους. Και οι δύο είναι χαμηλού κόστους εφόσον δεν καταλαμβάνουν πόρους FPGΑ. Η αντικατάσταση είναι μία σημαντική λειτουργία των αλγορίθμων κωδικοποίησης τμήματος και εισάγουν περισσότερη μη γραμμικότητα. Για την ακρίβεια η δύναμη του DES βασίζεται στις αντικαταστάσεις σύμφωνα με τα S-boxes. Λαμβάνοντας υπόψη την διαδραστική φύση των συμμετρικών κρυπτοσυστημάτων, ποικίλες σχεδιαστικές στρατηγικές προσφέρουν ένα tradeoff μεταξύ επιφάνειας και απόδοσης για την επιλογή υλοποίησης σε έναν αριθμό γύρων. Σε ένα βρόχο μόνο ένας γύρος του αλγορίθμου υλοποιείται και n κύκλοι καταναλώνονται για να εκτελεστούν n αλληλεπιδράσεις του αλγορίθμου. Ο σχεδιασμός επιτυγχάνει χαμηλή ρυθμαπόδοση αλλά καταλαμβάνει λιγότερους πόρους. Ένα σχέδιο pipeline υλοποιεί όλους τους γύρους χρησιμοποιώντας καταχωρητές μεταξύ δύο συνεχόμενων γύρων. Σε κάθε κύκλο ρολογιού τα δεδομένα μεταφέρονται από τον ένα γύρο στον άλλο. Ύστερα από n κύκλους ρολογιού το τελικό αποτέλεσμα εμφανίζεται στον τελικό γύρο. Τα FPGAs επιτρέπουν παράλληλη εκτέλεση ολόκληρου του πακέτου δεδομένων. Μπορούν να περιέχουν περισσότερους από 1000 εξωτερικούς ακροδέκτες (pins) ώστε να προγραμματιστούν σαν είσοδοι και έξοδοι. 5.3 VHDL υλοποίηση του DES και TDEA Σχεδίαση Το παρακάτω διάγραμμα παρουσιάζει ένα σχηματικό διάγραμμα (block diagram) για την υλοποίηση του DES σε VHDL. Εικόνα 28 Υλοποίηση DES σε VHDL Κάθε S-box του DES καταλαμβάνει 64x4=256 bit μνήμη, δηλαδή συνολικά 2048 bits για τα οκτώ S-boxes. 68

83 Συνολικά πέντε είσοδοι: reset, clock, input, key, operation και μία έξοδος output είναι οι ακροδέκτες του κυκλώματος του DES. Το reset σηματοδοτεί την έναρξη της διαδικασίας, όταν είναι 1. Το ρολόι είναι το κεντρικό ρολόι του κυκλώματος και χρησιμοποιείται για να συγχρονίζει τη ροή των δεδομένων. Όταν ενεργοποιηθεί το κύκλωμα η είσοδος των 64 bits υφίσταται την αρχική μετάθεση και χωρίζεται σε δύο μισά, τα RIN και LIN. Στην επόμενη θετική ακμή του ρολογιού τα δύο μισά μεταφέρονται σε δύο καταχωρητές αντίστοιχα, REGA και REGB. Το δεξί μισό (REGA output) διέρχεται από μία σειρά λειτουργιών: Μετάθεση Ε, XOR με το υποκλειδί, αντικατάσταση μέσω των S-boxes, μετάθεση P και XOR με το αρχικό αριστερό μισό (REGB output). Πριν να έρθει η επόμενη ακμή του ρολογιού, το παλιό δεξί μισό (RIGHT) γίνεται είσοδος για τον καταχωρητή REGB και το νέο αριστερό μισό (LEFT) γίνεται είσοδος για τον καταχωρητή REGA. Οι δεκαέξι γύροι εκτελούνται εν συνεχεία. Μετά από 16 κύκλους ρολογιού τα δύο μισά RIGHT και LEFT ενώνονται και το αποτέλεσμα τους προχωράει στην τελική μετάθεση παράγοντας ένα κρυπτογράφημα για είσοδο ενός block 64 bit. Σημειώνεται πως η χρήση των οκτώ S-boxes σε παράλληλη δομή, έχει ως αποτέλεσμα την μείωση της κρίσιμης διαδρομής (critical path) για κρυπτογράφηση και αποκρυπτογράφηση. Η δημιουργία των υποκλειδιών υλοποιείται παράλληλα με τον κεντρικό πυρήνα του DES και αποτελεί μία επαναληπτική διαδικασία 16 κύκλων. Το 56-bit κλειδί περνάει από μία μετάθεση PC-1 και μετά διαχωρίζεται σε δύο μισά, καθένα από τα οποία έχει μήκος 26 bits. όπου το C 0 δηλώνει τα 32 πιο σημαντικά (first) bits και το D 0 τα 32 λιγότερα (last) σημαντικά bits. Σχεδιαστικά ακολουθείται παρόμοια διαδικασία όπως περιγράφηκε για τον DES. Για κάθε γύρο του δικτύου Feistel ένα νέο υποκλειδί δημιουργείται. Στην εικόνα 29 φαίνεται ένας γύρος της δημιουργίας υποκλειδιών του DES. Σε καθένα κύκλο τα C i-1 και D i-1 περιστρέφονται αριστερά (cycle shift left). Ανάλογα με το i, τα C i-1 και D i-1 μετατοπίζονται κατά μία θέση (για i=1,2,9,16) ή κατά δύο θέσεις. Τα αποτελέσματα C i και D i περνούν σαν είσοδος στον επόμενο γύρο και για τον σχηματισμό του υποκλειδιού μετατίθενται σύμφωνα με τη PC-2:. Αυτή η μετάθεση μειώνει τον αριθμό των bits από 56 σε 48. Εικόνα 29 Δημιουργία υποκλειδιών 69

84 Η αποκρυπτογράφηση του DES χρησιμοποιεί τον ίδιο αλγόριθμο. Η μόνη διαφορά είναι πως τα υποκλειδιά δημιουργούνται με την αντίστροφη σειρά K 16, K 1. Για τη δημιουργία τους με αντίστροφη σειρά τα C i-1 και D i-1 πρέπει να περιστραφούν δεξιόστροφα, κατά τον ίδιο τρόπο με την κρυπτογράφηση που όμως έγινε αριστερόστροφα κάτι που εξαρτάται από το i. Στον επόμενο πίνακα φαίνεται πόσες θέσεις τα C i-1 και D i-1 πρέπει να περιστραφούν. Γύρος Κρυπτογράφηση Αποκρυπτογράφηση Πίνακας 19 Χρονοδιάγραμμα μετατοπίσεων Για την υλοποίηση των 16 γύρων του κυκλώματος του DES και κατ επέκταση τους γύρους για τη δημιουργία των υποκλειδιών, σχεδιάστηκε κύκλωμα μονάδας ελέγχου (Finite State Machine) που ελέγχει τον συγχρονισμό των γύρων και τον τερματισμό τους. Γι αυτό το λόγο χρησιμοποιείται ένας integer μετρητής όπου όταν λάβει την τιμή 16 ενεργοποιεί το σήμα load των καταχωρητών ώστε να προωθήσουν την είσοδο τους στην έξοδο και τερματίζεται η διαδικασία. Χρησιμοποιούμε καταχωρητές και πολυπλέκτες. Ο πολυπλέκτης δρομολογεί τις εισόδους ανάμεσα σε δεδομένα από τον προηγούμενο γύρο και τα νέα δεδομένα και κλειδί. Οι καταχωρητές αποθηκεύουν τα αποτελέσματα από κάθε επανάληψη και τα περνάνε (μεταβιβάζουν) στον πολυπλέκτη. Η έξοδος του καταχωρητή περνάει από FP. Για λόγους απλοποίησης το αποτέλεσμα κάθε γύρου περνάει από FP και μετά στην έξοδο. Το δίκτυο Feistel συμπεριλαμβάνει μία 32 bit XOR και την F η οποία αποτελείται από ένα πίνακα επέκτασης, μία 48 bit XOR, 8 S-boxes και ένα πίνακα μετάθεσης. Η διαδικασία δημιουργίας κλειδιών χρειάζεται καταχωρητές μετατόπισης και μεταθέσεις. Οι καταχωρητές πρέπει να μετατοπιστούν κυκλικά κατά μία ή δύο θέσεις σύμφωνα με το γύρο και να αλλάζουν κατευθύνσεις αν η επιλογή είναι κρυπτογράφηση ή αποκρυπτογράφηση. Τα βασικά κομμάτια που χρειάζονται για όλες τις διαδικασίες είναι: Μετάθεση και Επέκταση (Permutation and Expansion boxes): αναδιατάσσουν τα bits από ένα bit-string. Οι επεκτάσεις είναι ειδική μορφή των μεταθέσεων γιατί επίσης αντιγράφουν bits. Η αναδιάταξη και η αντιγραφή των bits δεν χρειάζεται λογικούς πόρους, μπορεί να υλοποιηθεί μόνο με καλωδίωση. Οι έξοδοι του προηγούμενου λογικού κομματιού συνδέονται με διαφορετική σειρά στο επόμενο λογικό block. Αν η μετάθεση γίνεται άμεσα στην είσοδο ή την έξοδο όπως στην περίπτωση της αρχικής και τελικής μετάθεσης, η αναδιάταξη πραγματοποιείται στην σύνδεση των I/O pins της συσκευής και επίσης τα λογικά blocks συνδέονται. Για αυτό το λόγο ένα Permutation ή Expansion δεν προκαλεί επιπλέον καθυστέρηση. Καταχωρητές (Registers): μπορούν να υλοποιηθούν είτε με κύτταρα λογικής (logic cells) είτε χρησιμοποιώντας στοιχεία μνήμης RAM. Τα περισσότερα FPGAs έχουν RAM/ROM στοιχεία έτοιμα τα οποία είναι πιο αποδοτικά από τα κύτταρα λογικής για τέτοιους σκοπούς. Πολυπλέκτες (Multiplexers): μπορούν εύκολα να υλοποιηθούν χρησιμοποιώντας συνδυαστική λογική. Standard Logic Functions (XOR): υλοποιούνται με τις βασικές πύλες. Η λειτουργία τους δεν εξαρτάται από το μήκος του bit-string το οποίο πρέπει να επεξεργαστούν. 70

85 S-boxes: είναι look-up tables με μέγεθος 6x4 και γι αυτό περιέχουν 64 4-bit τιμές. Η υλοποίηση τους είναι πολύ σημαντική για ένα σχέδιο DES. Αν υλοποιηθούν χρησιμοποιώντας συνδυαστική λογική χρειάζονται εκατοντάδες λογικά στοιχεία. Μια μελέτη του Greg Haskins [13] δείχνει πως χρησιμοποιώντας στοιχεία ROM είναι ο πιο αποδοτικός τρόπος για την υλοποίηση τους. Καταχωρητές ολίσθησης (Shift Registers): περιστρέφουν ένα τμήμα κατά το πολύ ένα bit. Χρησιμοποιούνται στη διαδικασία δημιουργίας των κλειδιών και μπορούν να κατηγοριοποιηθούν σε: o Combinational shifters: μετακινούν κατά ένα σταθερό αριθμό θέσεων και μετακινούν πάντα χωρίς να εξαρτώνται από ρολόι. Είναι ουσιαστικά Permutation. o Decisive shifters: έχουν επιπλέον είσοδο με την οποία αποφασίζουν αν τα δεδομένα πρέπει να μετακινηθούν ή όχι. Μπορεί να πραγματοποιηθεί με ένα πολυπλέκτη. o Directional shifters: μοιάζουν πολύ με τους Decisive shifters. Επίσης έχουν μία επιπλέον είσοδο με την οποία αποφασίζουν αν τα δεδομένα πρέπει να μετακινηθούν δεξιά ή αριστερά. Επιπλέον μπορεί να πραγματοποιηθεί με ένα πολυπλέκτη. 71

86 5.3.2 Υλοποίηση Για κάθε διαφορετικό αλγόριθμο ένα διαφορετικό αρχείο VHDL έχει δημιουργηθεί. DES.vhd: δέχεται 64 bit είσοδο, 64 bit κλειδί και τα σήματα ελέγχου για αρχικοποίηση και για το ποια λειτουργία θα γίνει (κρυπτογράφηση, αποκρυπτογράφηση) και εξάγει τα 64 bit της κρυπτογραφημένης (ή αποκρυπτογραφημένης) εισόδου. my3des.vhd: διαθέτει τους ίδιους ακροδέκτες με το DES.vhd με την μόνη διαφορά ότι τώρα το κλειδί είναι 128 bit το οποίο διαχωρίζεται σε δύο κλειδιά των 64 bit. Αυτά τα αρχεία μπορούν να χωριστούν σε αρχεία που περιγράφουν συναρτήσεις και δεν εξαρτώνται από τα άλλα υψηλότερου επιπέδου. Τα βασικά είναι τα: Αρχείο Λειτουργία IP.vhd Αρχική μετάθεση εισόδου PC1.vhd Συνάρτηση μετάθεσης κλειδιού PC1 PC2.vhd Συνάρτηση μετάθεσης κλειδιού PC2 mux2to1.vhd 2 σε 1 πολυπλέκτης μεταβαλλόμενου μήκους εισόδου register_nbits.vhd Καταχωρητής μεταβλητού μήκους εισόδου perm_e.vhd Συνάρτηση επέκτασης keycreation.vhd Συνάρτηση δημιουργίας κλειδιών keyshift.vhd Καταχωρητής δεξιάς & αριστερής ολίσθησης SboxP_r.vhd Γενική συνάρτηση υλοποίησης S-boxes Sbox1.vhd Sbox 1 Sbox2.vhd Sbox 2 Sbox3.vhd Sbox 3 Sbox4.vhd Sbox 4 Sbox5.vhd Sbox 5 Sbox6.vhd Sbox 6 Sbox7.vhd Sbox 7 Sbox8.vhd Sbox 8 P.vhd Συνάρτηση μετάθεσης P FP.vhd Τελική μετάθεση Πίνακας 20 Αρχεία vhd 72

87 Για καθεμία από τις παραπάνω συναρτήσεις αναλύεται η λειτουργία τους παρακάτω: IP.vhd: έχει σαν είσοδο τα 64 bits του αρχικού κειμένου και εκτελεί την αρχική μετάθεση σύμφωνα με τον Πίνακα 3 και έχει ως έξοδο τα δύο τμήματα της μετατεθιμένης εισόδου, το δεξί R των 32 bits και το αριστερό των 32 bits. PC1.vhd: έχει σαν είσοδο το κλειδί των 64 bits και αφού εκτελέσει την μετάθεση σύμφωνα με τον Πίνακα 16 διαχωρίζει την έξοδο σε δύο τμήματα c 0 και d 0 των 28 bits, που αποτελούν τις εξόδους αυτού του κυκλώματος. PC2.vhd: αποτελεί την αντίστροφη διαδικασία από αυτή που υλοποιείται στο PC1. Δηλαδή δέχεται ως είσοδο δύο τμήματα c και d των 28 bits, που έχουν περάσει από το κύκλωμα keycreation.vhd και δίνει ως έξοδο την τελική μορφή του υποκλειδιού των 48 bits για κάθε γύρο. mux2to1.vhd: Ένας πολυπλέκτης 2 σε 1 των n-bits μπορεί να φτιαχτεί από n πολυπλέκτες του 1-bit που ο καθένας τους επιλέγει μία από τις δύο γραμμές εισόδου τους. Υπάρχει και μία γραμμή ελέγχου S, η οποία καθορίζει την επιλογή και για τους n πολυπλέκτες. Αν και το κύκλωμα περιέχει n πολυπλέκτες μπορεί να θεωρηθεί σαν ένα κύκλωμα που επιλέγει ένα από τα δύο τμήματα n αριθμών. Στο κεντρικό κύκλωμα χρησιμοποιείται είτε με εισόδους και εξόδους των 32 bits στην περίπτωση δρομολόγησης του δεξιού και αριστερού τμήματος ανάμεσα στους γύρους, είτε με εισόδους και εξόδους των 28 bits στην περίπτωση δρομολόγησης των δύο τμημάτων (c,d) κατά τη δημιουργία των υποκλειδιών, αλλά και με εισόδους και εξόδους των 64 bits στην περίπτωση του TDEA για την εναλλαγή της κρυπτογράφησης και αποκρυπτογράφησης για τα τρία βήματα του αλγορίθμου. register_nbits.vhd: Η λειτουργία του είναι η εξής: δέχεται μία είσοδο από n bits και ανάλογα με το αν το σήμα φόρτωσης είναι ενεργοποιημένο και το ρολόι βρίσκεται στην θετική ακμή του τα προωθεί στην έξοδο. Ο αριθμός των bits για είσοδο και έξοδο εξαρτώνται κάθε φορά από το που χρησιμοποιείται ο καταχωρητής. Διαθέτει την δυνατότητα μεταβλητού μήκους εισόδου και εξόδου αντίστοιχα. Στο παρών κύκλωμα χρησιμοποιούνται είσοδοι των 32 και 28 bits. perm_e.vhd: αποτελεί τη διαδικασία επέκτασης σύμφωνα με τον Πίνακα 5 και δέχεται είσοδο των 32 bits και δίνει έξοδο των 48 bits. keycreation.vhd: είναι το κύκλωμα υπεύθυνο για τη δημιουργία των υποκλειδιών κάθε γύρου. Δέχεται εισόδους τα δύο τμήματα (c, d) των 28 bits, το ρολόι, έναν ακέραιο μετρητή έως το 16 που καθορίζει τον κάθε γύρο και τρία σήματα ελέγχου. Αυτά είναι: το reset που αφορά την αρχικοποίηση των καταχωρητών, το check το σήμα ελέγχου για τους πολυπλέκτες και το operation που καθορίζει ποια διαδικασία υλοποιείται (κρυπτογράφηση ή αποκρυπτογράφηση). keyshift.vhd: ανήκει στην κατηγορία των Directional shifters όπου ανάλογα με το σήμα operation εκτελεί δεξιά (αν είναι 1 ) ή αριστερή (αν είναι 0 ) ολίσθηση. Δέχεται εισόδους τα τμήματα C i και D i (28 bits) που δημιουργούν το κάθε υποκλειδί, το ρολόι, τρία σήματα ελέγχου, της αρχικοποίησης (reset), το enable που αποφασίζει αν θα γίνει μετατόπιση (αν είναι 1 ) ή όχι και το operation και τέλος δέχεται ακόμη σαν είσοδο τον μετρητή κάθε γύρου σε μορφή integer ο οποίος καθορίζει πόσα bit μετατόπιση θα γίνει σύμφωνα με τον Πίνακα 19. SboxP_r.vhd: Δέχεται σαν είσοδο την έξοδο της λογικής πράξης XOR μεταξύ του υποκλειδιού κάθε γύρου και του επεκταμένου από τον Πίνακα 5 δεξιού τμήματος 73

88 της εισόδου. Ουσιαστικά εκτελεί τη διαδικασία που περιγράφηκε στην παράγραφο χωρίζοντας σε οκτάδες και αναδιατάσσοντας τα bits της εισόδου ώστε να γίνει αντιστοιχία στην κατάλληλη θέση του S-box. Αφού εκτελέσει και την μετάθεση του Πίνακα 15 δίνει σαν έξοδο τα 32 bits που θα περάσουν από XOR με το αριστερό τμήμα (L) ώστε να χρησιμοποιηθούν σαν δεξί τμήμα στον επόμενο γύρο. Sbox1.vhd Sbox8.vhd: Χρησιμοποιείται περιγραφή ροής δεδομένων για την αρχιτεκτονική τους μέσω της δήλωσης when. Είσοδος για το καθένα από τα οκτώ αποτελεί η 6 bit διεύθυνση και έξοδος τα 4 bits που θα χρησιμοποιηθούν από το SboxP_r.vhd. P.vhd: Είναι η μετάθεση του Πίνακα 15 που χρησιμοποιείται από SboxP_r.vhd για να σχηματιστούν τα τελικά 32 bits εξόδου από τη διαδικασία των S boxes. FP.vhd: έχει σαν είσοδο τα 64 bits τα δύο τμήματα που έχουν περάσει από την επεξεργασία των 16 γύρων, εκτελεί την τελική μετάθεση σύμφωνα με τον Πίνακα 4 και έχει ως έξοδο το τελικό κρυπτογραφημένο μήνυμα των 64 bits. Όπως επισημάνθηκε και νωρίτερα, όλες οι μεταθέσεις και αντικαταστάσεις (IP,PC1,PC2,perm_E,P,FP) υλοποιήθηκαν με απλή εναλλαγή καλωδίων. Οι πολυπλέκτες χρησιμοποιούνται για να δρομολογούν την κατάλληλη είσοδο στους καταχωρητές σε κάθε γύρο. Μόνο στον 1 ο γύρο η είσοδος προέρχεται από την έξοδο του IP ενώ στους υπόλοιπους, σύμφωνα με το δίκτυο Feistel γίνεται εναλλαγή του δεξιού με το αριστερό τμήμα (αφού το δεξί περάσει από την συνάρτηση f που έχει περιγραφεί νωρίτερα) και χρησιμοποιούνται σαν είσοδοι στον επόμενο γύρο. Τα S-boxes υλοποιήθηκαν με περιγραφή συμπεριφοράς (behavioral) ώστε να γίνεται παράλληλα η χρήση τους με την υπόλοιπη ροή της διαδικασίας. Η χρήση RAM θα συνεπαγόταν μία επιπλέον καθυστέρηση ενός κύκλου ρολογιού σε κάθε γύρο. Για την διαδικασία δημιουργίας υποκλειδιών έχοντας υπόψη σχεδίαση παρόμοια με αυτή του κυρίως DES χρησιμοποιήθηκε ένας καταχωρητής ολίσθησης ο οποίος ανάλογα με τη διαδικασία (encryption/decryption) μετακινεί κυκλικά τα bits δεξιά ή αριστερά κατά μία ή δύο θέσεις ανάλογα με τον γύρο. Σημαντικό ρόλο παίζουν τα σήματα operation, το οποίο καθορίζει ποια λειτουργία θα εκτελεστεί (κρυπτογράφηση ή αποκρυπτογράφηση) και το reset που αρχικοποιεί την κάθε συνολική διαδικασία. Με σκοπό να διατηρείται η κάθε φορά αναμενόμενη έξοδος χρησιμοποιούμε έναν μετρητή σύμφωνα με τους γύρους, ο οποίος οριοθετείται έως το μέγιστο κύκλο της κάθε διαδικασίας. Σύμφωνα με την τιμή του μετρητή ενεργοποιούνται τα κατάλληλα σήματα που ελέγχουν τις λειτουργίες των καταχωρητών και των πολυπλεκτών. Όσον αφορά τον TDEA η διαδικασία που ακολουθήθηκε για την υλοποίηση του χρησιμοποιεί δύο components ένα για την κρυπτογράφηση και ένα για την αποκρυπτογράφηση, από τα οποία επιλέγονται οι έξοδοι την κατάλληλη στιγμή με την χρήση ενός πολυπλέκτη (mux2to1.vhd) των 64 bits: my3des_enc.vhd: αφού κάνει τον διαχωρισμό του κλειδιού σε δύο (key1 και key2) χρησιμοποιεί έναν μετρητή integer που ανάλογα με την τιμή του ενεργοποιεί ή όχι τα σήματα: check, που είναι υπεύθυνο για τη λειτουργία των πολυπλεκτών, operation που αφορά τη λειτουργία (κρυπτογράφηση ή αποκρυπτογράφηση) που θα εκτελέσει ο DES.vhd, load για τη λειτουργία του καταχωρητή και reset για την αρχικοποίηση. Αποτελεί την περίπτωση της κρυπτογράφησης όπου το σήμα 74

89 operation μπορεί να χρησιμοποιηθεί και ως σήμα ελέγχου για τον πολυπλέκτη που δρομολογεί τα κλειδιά key1 και key2. my3des_dec.vhd: Ακολουθεί ακριβώς την ίδια διαδικασία με τη συνάρτηση της κρυπτογράφησης μόνο που εδώ δεν συμπίπτουν τα σήματα operation και αυτό που ελέγχει τον πολυπλέκτη δρομολόγησης των κλειδιών οπότε και προστέθηκε το σήμα key_operation Αποτελέσματα Εξομοίωσης Χρησιμοποιώντας το εργαλείο σχεδίασης Altera Quartus II Altera Version 7.2 της Altera δημιουργήθηκε ο κώδικας σε VHDL και έγινε η εξομοίωση στο CYCLONE II EP2C35F672C6 FPGA της οποίας οι κυμματομορφές φαίνονται στις παρακάτω εικόνες. Κατά τη μεταγλώττιση (compilation) του DES (DES.vhd) λαμβάνουμε την παρακάτω διάταξη των ακροδεκτών από το Floorplan Editor. Παρατηρούμε πως ο αριθμός των ακροδεκτών που χρησιμοποιούνται είναι 195 κάτι που αποτελεί το 41% του συνόλου των ακροδεκτών. Επίσης ο αριθμός των κυττάρων λογικής που χρησιμοποιούνται είναι (4%) σε αντίθεση με τον αριθμό των ακολουθιακών (καταχωρητές) που είναι μόνο 125 (<1%). Γενικά παρατηρούμε πως η υλοποίηση του αλγορίθμου καταλαμβάνει ένα πολύ μικρό μέρος του διαθέσιμου υλικού. Εικόνα 30 Ο DES στο Altera Cyclone II Ακόμη χρησιμοποιώντας το εργαλείο του Quartus,Timing analyzer (χρονικός αναλυτής) λαμβάνουμε τις παρακάτω μετρήσεις και παρατηρούμε πως η μέγιστη επιτρεπτή 75

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Συμμετρικοί Αλγόριθμοι Κρυπτογράφησης Δεδομένων Η περίπτωση του Αλγόριθμου AES Ειδική Επιστημονική Εργασία Συμμετρικοί Αλγόριθμοι Κρυπτογράφησης Δεδομένων Η περίπτωση του Αλγόριθμου AES Λυκούδης Κων/νος Πτυχιούχος Τμήματος Φυσικής Πανεπιστημίου Πατρών Πανεπιστήμιο Πατρών, 2/11/2012

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

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

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

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

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

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

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

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

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

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

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

ΣΥΣΤΗΜΑΤΑ ΠΙΣΤΟΠΟΙΗΣΗΣ - ΚΡΥΠΤΟΓΡΑΦΙΑ - ΨΗΦΙΑΚΕΣ ΥΠΟΓΡΑΦΕΣ Τ.Ε.Ι. ΚΑΒΑΛΑΣ ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΑΧΕΙΡΙΣΗΣ ΠΛΗΡΟΦΟΡΙΩΝ ΣΥΣΤΗΜΑΤΑ ΠΙΣΤΟΠΟΙΗΣΗΣ - ΚΡΥΠΤΟΓΡΑΦΙΑ - ΨΗΦΙΑΚΕΣ ΥΠΟΓΡΑΦΕΣ ΜΥΤΙΛΗΝΑΚΗΣ ΘΕΟΔΩΡΟΣ Α.Μ 2012 ΙΟΥΝΙΟΣ 2013 ΕΠΙΒΛΕΠΩΝ ΚΑΘΗΓΗΤΗΣ: ΧΑΤΖΗΣ

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

Δραστηριότητες σχετικά με κρυπτογραφία και ελέγχους ισοτιμίας

Δραστηριότητες σχετικά με κρυπτογραφία και ελέγχους ισοτιμίας Δραστηριότητες σχετικά με κρυπτογραφία και ελέγχους ισοτιμίας Δραστηριότητα 6: Κωδικοί και κρυπτογραφία Το αντικείμενο της δραστηριότητας αυτής είναι η κατανόηση από την πλευρά των μαθητών μερικών στοιχειωδών

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

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

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

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

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

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

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

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

ΒΑΣΙΚΑ ΘΕΜΑΤΑ ΚΡΥΠΤΟΓΡΑΦΙΑΣ ΒΑΣΙΚΑ ΘΕΜΑΤΑ ΚΡΥΠΤΟΓΡΑΦΙΑΣ 2. ΒΑΣΙΚΑ ΘΕΜΑΤΑ ΚΡΥΠΤΟΓΡΑΦΙΑΣ 2.1 Εισαγωγικές Παρατηρήσεις Στο κεφάλαιο αυτό επεξηγούνται οι βασικές ενότητες από την Εφαρμοσμένη Κρυπτογραφία που θεωρούνται απαραίτητες για

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Γενικά Στοιχεία Ηλεκτρονικού Υπολογιστή

Γενικά Στοιχεία Ηλεκτρονικού Υπολογιστή Γενικά Στοιχεία Ηλεκτρονικού Υπολογιστή 1. Ηλεκτρονικός Υπολογιστής Ο Ηλεκτρονικός Υπολογιστής είναι μια συσκευή, μεγάλη ή μικρή, που επεξεργάζεται δεδομένα και εκτελεί την εργασία του σύμφωνα με τα παρακάτω

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

ΚΡΥΠΤΟΓΡΑΦΙΑ. Εισαγωγή. Γρηγοράκης Στέλιος Δημητρίου Αφροδίτη Ιβανόβ Τόνι Κωσταντουράκης Γρηγόρης Τσιμινικάκη Ελένη

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

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

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

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

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

UP class. & DES και AES

UP class. & DES και AES Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Σημειώσεις Διαλέξεων UP class & DES και AES Επιμέλεια σημειώσεων: Ιωάννης Νέμπαρης Μάριος Κουβαράς Διδάσκοντες: Στάθης Ζάχος

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

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

Cryptography and Network Security Chapter 3. Fifth Edition by William Stallings Cryptography and Network Security Chapter 3 Fifth Edition by William Stallings Κρυπτογραφικοι Αλγοριθµοι Τµηµατων (Block Ciphers) All the afternoon Mungo had been working on Stern's code, principally with

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

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

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

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

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

ΚΡΥΠΤΟΓΡΑΦΙΑ Α. ΑΠΟ ΤΟ ΒΙΒΛΙΟ «Η ΦΥΣΗ ΚΑΙ Η ΔΥΝΑΜΗ ΤΩΝ ΜΑΘΗΜΑΤΙΚΩΝ» ΚΡΥΠΤΟΓΡΑΦΙΑ Α. ΑΠΟ ΤΟ ΒΙΒΛΙΟ «Η ΦΥΣΗ ΚΑΙ Η ΔΥΝΑΜΗ ΤΩΝ ΜΑΘΗΜΑΤΙΚΩΝ» - Κρυπτογραφία είναι - Κρυπτανάλυση είναι - Με τον όρο κλειδί. - Κρυπτολογία = Κρυπτογραφία + Κρυπτανάλυση - Οι επιστήµες αυτές είχαν

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

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

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

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

Symmetric Cryptography. Dimitris Mitropoulos

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

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

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

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

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

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

Μελέτη Πρωτοκόλλων Κρυπτογραφίας AΕΙ ΠΕΙΡΑΙΑ T.T. ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ T.Τ. ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ Μελέτη Πρωτοκόλλων Κρυπτογραφίας Άννα Ελένη Κ. Γεωργοπούλου Εισηγητής: Δρ Παναγιώτης

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Πρώτοι αριθμοί και κρυπτογραφικός αλγόριθμος RSA. Άριστος Χαραλάμπους, Δημήτρης Χαραλάμπους, Νικόλας Παρασκευάς

Πρώτοι αριθμοί και κρυπτογραφικός αλγόριθμος RSA. Άριστος Χαραλάμπους, Δημήτρης Χαραλάμπους, Νικόλας Παρασκευάς Πρώτοι αριθμοί και κρυπτογραφικός αλγόριθμος RSA Άριστος Χαραλάμπους, Δημήτρης Χαραλάμπους, Νικόλας Παρασκευάς Πρώτοι Αριθμοί Πρώτος αριθμός ονομάζεται ένας φυσικός αριθμός (δηλ. θετικός ακέραιος) μεγαλύτερος

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

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

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

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

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

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

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

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

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

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

Κρυπτογραφία PROJECT Β ΛΥΚΕΙΟΥ 4 Ο ΓΕΛ ΑΛΙΜΟΥ ΜΑΚΡΥΓΙΑΝΝΕΙΟ

Κρυπτογραφία PROJECT Β ΛΥΚΕΙΟΥ 4 Ο ΓΕΛ ΑΛΙΜΟΥ ΜΑΚΡΥΓΙΑΝΝΕΙΟ Κρυπτογραφία PROJECT Β ΛΥΚΕΙΟΥ 4 Ο ΓΕΛ ΑΛΙΜΟΥ ΜΑΚΡΥΓΙΑΝΝΕΙΟ Γενικά για την κρυπτογραφία Με τον όρο κρυπτογραφία εννοούμε τη μελέτη μαθηματικών τεχνικών που στοχεύουν στην εξασφάλιση θεμάτων που άπτονται

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

Λειτουργικά Συστήματα (ΗΥ321)

Λειτουργικά Συστήματα (ΗΥ321) Λειτουργικά Συστήματα (ΗΥ321) Διάλεξη 19: Ασφάλεια Κρυπτογράφηση Βασική ιδέα: Αποθήκευσε και μετάδωσε την πληροφορία σε κρυπτογραφημένη μορφή που «δε βγάζει νόημα» Ο βασικός μηχανισμός: Ξεκίνησε από το

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

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

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

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

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

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

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

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

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

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

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

Κεφάλαιο 1. Βασικές έννοιες στην κρυπτογραφία Κεφάλαιο 1. Κρυπτογραφία (cryptography) είναι η μελέτη τεχνικών που βασίζονται σε μαθηματικά προβλήματα δύσκολο να λυθούν, με σκοπό την εξασφάλιση της ασφάλειας (εμπιστευτικότητα, ακεραιότητα, αυθεντικότητα)

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

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

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

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

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

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

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

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

Συμμετρικά Κρυπτοσυστήματα Κεφάλαιο 5 Συμμετρικά Κρυπτοσυστήματα 5.1 Εισαγωγή 5.1.1 Το πρόβλημα Όπως αναφέραμε στην εισαγωγή 1.1, ένα από τα προβλήματα που καλείται να λύσει η σύγχρονη κρυπτογραφία (και το οποίο είναι και το ιδρυτικό

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

Διπλωματική Εργασία. Τίτλος:

Διπλωματική Εργασία. Τίτλος: Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης Σχολή Θετικών Επιστημών Τμήμα Πληροφορικής Μεταπτυχιακό Πρόγραμμα Σπουδών Πληροφορική και Επικοινωνίες Διπλωματική Εργασία Τίτλος: Ανάλυση και υλοποίηση κρυπτογραφικού

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

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

Τμήμα Μηχανικών Πληροφορικής ΤΕΙ Κρήτης Συμμετρική Κρυπτογραφία I Τμήμα Μηχανικών Πληροφορικής ΤΕΙ Κρήτης Συμμετρική Κρυπτογραφία I 1 Αρχές του Kerckhoff `La Cryptographie Militaire' (1883) Auguste Kerkhoffs, Ολλανδός φιλόλογος Πρώτη επιστημονική

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

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

Στοιχεία Κρυπτογραφίας Κεφάλαιο 1 ο Στοιχεία Κρυπτογραφίας 1.1 Εισαγωγή Κρυπτογραφία (cryptography) είναι η μελέτη τεχνικών που βασίζονται σε μαθηματικά προβλήματα με δύσκολη επίλυση, με σκοπό την εξασφάλιση της α- σφάλειας

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

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

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

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

Υπολογιστική Υλοποίηση Πρωτοκόλλου DES µε εφαρµογές στην Κρυπτογράφηση Κειµένων

Υπολογιστική Υλοποίηση Πρωτοκόλλου DES µε εφαρµογές στην Κρυπτογράφηση Κειµένων ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ & ΜΗΧΑΝΙΚΩΝ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΗΛΕΚΤΡΟΝΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ Υπολογιστική Υλοποίηση Πρωτοκόλλου DES µε εφαρµογές στην Κρυπτογράφηση

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

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

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

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

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

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

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

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

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

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

;-το αβαπ/ιπ^ίσζγ^κχο ι δ & υ ϊο α. ί / Μ Ο Λ Ο / 7 Τ Ο

;-το αβαπ/ιπ^ίσζγ^κχο ι δ & υ ϊο α. ί / Μ Ο Λ Ο / 7 Τ Ο ;-το αβαπ/ιπ^ίσζγ^κχο ι δ & υ ϊο α. ί / Μ Ο Λ Ο / 7 Τ Ο ΕΦΑΡΜΟΓΗ ΣΥΓΧΡΟΝΩΝ ΤΕΧΝΙΚΩΝ ΚΡΥΠΤΟΓΡΑΦΗΣΗΣ ΣΕ ΣΗΜΑΤΑ ΜΙΑΣ Η ΠΕΡΙΣΣΟΤΕΡΩΝ ΔΙΑΣΤΑΣΕΩΝ: ΠΑΡΟΥΣΙΑΣΗ ΤΕΧΝΙΚΩΝ ΚΑΙ ΥΛΟΠΟΙΗΣΕΩΝ. -7-, ^ ΤίΞί/Μ Ε ττιυέλεια

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

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

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

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

Ì ÐÅÍ ÅÊÇÄÇÌ ÇÔÑÁ Á.Ì. 3460

Ì ÐÅÍ ÅÊÇÄÇÌ ÇÔÑÁ Á.Ì. 3460 ÔÅ ÉÇ ÐÅÉÑÏ Õ Ó Ï ËÇ ÄÉÏ ÉÊÇÓÇÓ & Ï ÉÊÏ Í Ï MÉÁÓ ÔÌ ÇÌ Á ÔÇËÅÐËÇÑÏ ÖÏ ÑÉÊÇÓ & ÄÉÏ ÉÊÇÓÇÓ ÈÅÌ Á ÐÔÕ ÉÁÊÇÓ Ì ÐÅÍ ÅÊÇÄÇÌ ÇÔÑÁ Á.Ì. 3460 ÅÉÓÇÃÇÔÇÓ: ÊÁÈÇÃÇÔÇÓ ÔÓÉÁÍ ÔÇÓËÅÙÍ ÉÄÁÓ ÁÑÔÁ 2 006 ΠΕΡΙΕΧΟΜΕΝΑ σελίδες

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

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

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

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