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



Σχετικά έγγραφα
ΤΙΤΛΟΣ ΕΡΕΥΝΗΤΙΚΗΣ ΕΚΘΕΣΗΣ ΚΩΔΙΚΕΣ. Υπόθεμα: «ΚΡΥΠΤΟΓΡΑΦΙΑ»

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

Advanced Encryption Standard (AES)

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

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

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

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

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

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

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

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

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

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

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

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Point-to-point κρυπτογράφηση και πιστοποίηση δεδομένων σε κινητές συσκευές Android

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

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

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

Symmetric Cryptography. Dimitris Mitropoulos

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

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

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

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

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

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

Transcript:

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΔΙΑΤΜΗΜΑΤΙΚΟ ΠΡΟΓΡΑΜΜΑ ΜΕΤΑΠΤΥΧΙΑΚΩΝ ΣΠΟΥΔΩΝ ΗΛΕΚΤΡΟΝΙΚΗ ΚΑΙ ΕΠΕΞΕΡΓΑΣΙΑ ΠΛΗΡΟΦΟΡΙΑΣ Συμμετρικοί Αλγόριθμοι Κρυπτογράφησης Δεδομένων Η περίπτωση του Αλγόριθμού AES Εγκρίθηκε από την τριμελή εξεταστική επιτροπή την 02/11/2012 στα πλαίσια του ΔΠΜΣ Ηλεκτρονικής και Επεξεργασίας της Πληροφορίας Δημήτριος Μπακάλης Επίκουρος Καθηγητής Τμήμα Φυσικής Παν/μιο Πατρών Ευάγγελος Ζυγούρης Αναπληρωτής Καθηγητής Τμήμα Φυσικής Παν/μιο Πατρών Βλάσσης Σπυρίδων Επίκουρος Καθηγητής Τμήμα Φυσικής Παν/μιο Πατρών ΠΑΤΡΑ 2012

Περίληψη Στη σύγχρονη ζωή του ανθρώπου η ανταλλαγή και η διακίνηση της πληροφορίας αποτελεί πλέον αναπόσπαστο κομμάτι. Η τεράστια ανάπτυξη των δικτύων υπολογιστών και η επικοινωνία πληροφοριών κάθε μορφής έφερε ένα τεράστιο πρόβλημα στην επιφάνεια, την ανάγκη για προστασία αυτής της πληροφορίας. Το πρόβλημα αυτό καλείται να το αντιμετωπίσει η επιστήμη της Κρυπτογραφίας όπου μέσα από διάφορους μετασχηματισμούς προσπαθεί θα μετατρέψει τα δεδομένα σε μια ακατανόητη μορφή η οποία θα είναι δυνατόν να αντιστραφεί μόνο από τον νόμιμο παραλήπτη. Για το λόγο αυτό έχουν αναπτυχθεί πληθώρα αλγορίθμων κρυπτογράφησης όπου παρόλο που η δουλειά τους είναι η ίδια, χειρίζονται και μετασχηματίζουν τα δεδομένα με διαφορετικό τρόπο. Στην παρούσα εργασία γίνεται παρουσίαση του αλγορίθμου AES (Advanced Encryption Standard) που αποτελεί το τρέχον πρότυπο από το NIST (National Institute of Standards and Technology). Ο AES ο οποίος είναι και γνωστός ως Rijndael, είναι ένας συμμετρικός αλγόριθμος τμήματος και βασίζεται στα δίκτυα μετάθεσης αντικατάστασης, ενώ είναι υλοποιήσιμος και γρήγορος τόσο σε λογισμικό όσο και σε υλικό. Αντίθετα με τον προκάτοχο του DES, δεν χρησιμοποιεί το δίκτυο Feistel. matr 4x4 (128 bits), που ορίζεται ως κατάσταση (state), με τους περισσότερους μετασχηματισμούς να πραγματοποιούνται σε ένα πεπερασμένο πεδίο. Ο αλγόριθμος AES, δίνει τη δυνατότητα κρυπτογράφησης με τρία κλειδιά διαφορετικού μήκους, 128 bits κλειδί με 10 κύκλους επανάληψης, 192 bits κλειδί με 12 κύκλους επανάληψης και 256 bits κλειδί με 14 κύκλους επανάληψης παρουσιάζοντας κάθε φορά μεγάλη ανθεκτικότητα σε κρυπταναλυτικές επιθέσεις. Στα πλαίσια της εργασίας έγινε λεπτομερής ανάλυση των μετασχηματισμών που χρησιμοποιεί ο AES στην κρυπτογράφηση και αποκρυπτογράφηση σύμφωνα με το πρότυπο Fips-197 αρχικά σε θεωρητικό επίπεδο και έπειτα πραγματοποιήθηκαν υλοποιήσεις σε λογισμικό και σε υλικό. Συγκεκριμένα, στο 1 ο κεφάλαιο της εργασίας γίνεται μια εισαγωγή στην Κρυπτογραφία, παρουσιάζοντας τις βασικές της έννοιες και την ιστορική της εξέλιξη από τα πρώτα χρόνια εμφάνισης της ως σήμερα. Στο κεφάλαιο 2, αρχικά παρουσιάζονται τα υπάρχοντα κρυπτοσυστήματα, αναδεικνύοντας κάθε φορά τον τρόπο με τον οποίο λειτουργούν, τους αλγόριθμους που υπάγονται σε αυτά και τις εφαρμογές που έχουν. Στη συνέχεια γίνεται σύγκριση μεταξύ των αλγορίθμων ενός συστήματος αλλά και μεταξύ των κρυπτοσυστημάτων. Το κεφάλαιο 3 αποτελεί το κυρίως σώμα της εργασίας καθώς σε αυτό παρουσιάζεται και επεξηγείται ο αλγόριθμος AES. Δίνεται το απαραίτητο μαθηματικό υπόβαθρο και αναλύονται οι μετασχηματισμοί του αλγορίθμου. Παρουσιάζεται ο τρόπος που επεκτείνονται τα κλειδιά του αλγορίθμου καθώς και οι διαδικασίες κρυπτογράφησης και αποκρυπτογράφησης. Τέλος γίνεται αναφορά σε ζητήματα ασφάλειας και στην αντοχή του AES σε κρυπταναλυτικές επιθέσεις, καθώς και στις εφαρμογές που χρησιμοποιείται. Στο 4 ο κεφάλαιο παρουσιάζονται και συγκρίνονται οι μέθοδοι υλοποίησης του αλγορίθμου. Περιγράφεται μια υλοποίηση σε λογισμικό με τη χρήση της γλώσσας προγραμματισμού C++, η οποία επεκτείνεται και σε μια διαδικτυακή υλοποίηση και μια υλοποίηση σε υλικό με τη χρήση της περιγραφικής γλώσσας VHDL και το σχεδιαστικό εργαλείο Quartus II. Τέλος στο 5 ο κεφάλαιο εξάγονται συμπεράσματα και γίνονται προτάσεις για μελλοντική εργασία. i

ii

Abstract In modern life the exchange and transfer of information has become an integral part. The enormous development of computer networks and the information communication of every form,has brought a new massive problem on the surface, the need to protect this information.the science of Cryptography is challenged to face this problem, so through various transformations is trying to convert tha data in a incomprehensive form, which will be possible to be inverted only from the legal receiver. For this reason a variety of algorithms have been developed and although their work is the same, they handle and convert data in different ways. In the present thesis the AES (Advanced Encryption Standard) algorithm is presented, which is the current standard of NIST (National Institute of Standards and Technology). AES, which is also known as Rijndael, is a symmetric block cipher and is based on substitution - permutation networks, while it can be efficiently implemented both in software and hardware. Unlike it's predecessor DES, it does not use Feistel network. It is applied in 4x4 Bytes matrix (128 bits),which is defined as state, with the most transformations to be performed in a finite field. AES algorithm provides encryption capability with three keys of different size: key of 128 bits with 10 rounds, key of 192 bits with 12 rounds and key of 256 bits with 14 rounds. This thesis includes detailed analysis of transformtions that AES uses in ecryption and decryption according to the Fips-197 standard, along with software and hardware implementations. Specifically, in the first chapter an introduction to Cryptography is made, presenting basic concepts and a historical overview. In chapter 2, contemporary cryptosystems are introduced. In chapter 3 the AES algorithm is presented and explained. The necessary mathematical background is provided and the transformations of the algorithm are analysed. The way the algorithm keys are expanded is presented, as well as the encryption and decryption processes. In chapter 4 the implementations of AES are presented and compared. An implementation in software is described using the programming language C++, and an implementation in hardware is given using the VHDL language and the design tool Altera Quartus II. Finally in chapter 5 the conclusions are given and proposals are made for future work. iii

iv

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

Περιεχόμενα 1.Εισαγωγή στην Κρυπτογραφία... 1 1.1 Εισαγωγικές έννοιες και Ορολογία... 1 1.2 Ιστορική Αναδρομή... 3 1.2.1 Πρώτη Περίοδος Κρυπτογραφίας (1900 π.χ. 1900 μ.χ.)... 3 1.2.2 Δεύτερη Περίοδος Κρυπτογραφίας (1900 μ.χ. 1950 μ.χ.)... 5 1.2.3 Τρίτη Περίοδος Κρυπτογραφίας (1950 μ.χ. Σήμερα.)... 6 1.3 Βασικές έννοιες κρυπτογραφίας... 7 1.4 Αναγκαιότητα κρυπτογραφίας... 9 1.5 Βασικοί στόχοι Κρυπτογραφίας... 10 1.6 Ασφάλεια Κρυπτοσυστημάτων... 11 1.7 Εφαρμογές Κρυπτογραφίας... 11 1.8 Κρυπτανάλυση... 12 2.Κρυπτοσυστήματα και Αλγόριθμοι... 15 2.1 Κατηγορίες Κρυπτοσυστημάτων... 15 2.2 Κλασσικά Κρυπτοσυστήματα... 16 2.2.1 Αλγόριθμος του Καίσαρα... 17 2.2.2 Αλγόριθμος Vigenere... 18 2.2.3 Αλγόριθμος σημειωματάριου μιας χρήσης... 19 2.3 Σύγχρονα Κρυπτοσυστήματα... 20 2.3.1 Συμμετρικά Κρυπτοσυστήματα και Αλγόριθμοι... 20 2.3.2 Αλγόριθμοι Ροής (Stream Ciphers)... 22 2.3.3 Αλγόριθμοι Τμήματος (Block Ciphers)... 24 2.3.3.1 Βασικές έννοιες και ορισμοί... 24 2.3.3.2 Μέθοδοι Γεμίσματος... 28 2.3.3.2.1 Μηδενικό Γέμισμα (Zero Padding)... 28 2.3.3.2.2 Σαφές Γέμισμα (Unambiguous Padding)... 28 2.3.3.3 Μέθοδοι Λειτουργίας... 28 2.3.3.3.1 Electronic Codebook (ECB) Mode... 29 2.3.3.3.2 Cipher Block Chaining (CBC) Mode... 30 2.3.3.3.3 Cipher Feedback (CFB) Mode... 31 2.3.3.3.4 Output Feedback (OFB) Mode... 32 2.3.3.3.5 Counter Mode... 32 2.3.4 Συμμετρικοί Αλγόριθμοι Κρυπτογράφησης... 33 2.3.4.1 Αλγόριθμος DES (Data Encryption Standard)... 33 2.3.4.2 Αλγόριθμος Triple DES... 35 2.3.4.3 Αλγόριθμος AES (Advanced Encryption Standard)... 36 2.3.4.4 Αλγόριθμος IDEA (International Data Encryption Algorithm)... 37 2.3.4.5 Αλγόριθμος RC2... 37 vi

2.3.4.5 Αλγόριθμος RC4... 37 2.3.4.6 Αλγόριθμος RC5... 38 2.3.4.7 Αλγόριθμος RC6... 38 2.3.4.8 Αλγόριθμος MARS... 38 2.3.4.9 Αλγόριθμος Serpent... 39 2.3.4.10 Αλγόριθμος Twofish... 39 2.3.4.11 Αλγόριθμος Blowfish... 39 2.3.4.12 Αλγόριθμος CAST-128... 40 2.3.4.13 Σύγκριση συμμετρικών αλγορίθμων... 40 2.3.5 Ασύμμετρα Κρυπτοσυστήματα... 42 2.3.5.1 Αλγόριθμος RSA... 44 2.3.5.2 Ανταλλαγή κλειδιών κατά Diffie-Hellman... 45 2.3.5.3 Κρυπτογραφία Ελλειπτικής καμπύλης (ECC)... 46 2.3.5.4 Εφαρμογές Κρυπτογραφίας δημοσίου κλειδιού... 47 2.3.5.4.1 Ψηφιακές Υπογραφές... 48 2.3.5.4.2 Ψηφιακά Πιστοποιητικά... 50 2.3.5.4.3 Διανομή μυστικών κλειδιών με Ασύμμετρο Κρυπτοσύστημα... 51 2.3.6 Σύγκριση Συμμετρικών - Ασύμμετρων Κρυπτοσυστημάτων... 52 3.Το πρότυπο AES... 55 3.1 Ιστορική αναδρομή... 55 3.2 Κριτήρια αξιολόγησης υποψήφιων αλγορίθμων... 56 3.3 AES - Γενικά... 57 3.4 Μαθηματικό υπόβαθρο του AES... 58 3.4.1 Το πεδίο (ή Σώμα) GF(2 8 )... 58 3.4.2 Πρόσθεση στο GF(2 8 )... 58 3.4.3 Πολλαπλασιασμός στο GF(2 8 )... 58 3.4.4 Πολλαπλασιασμός πολυωνύμου με το x... 59 3.4.5 Πολλαπλασιασμός με συντελεστές στο GF(2 8 )... 60 3.4.6 Πολλαπλασιασμός πολυωνύμων με συντελεστές στο GF(2 8 ) με το x... 60 3.5 Κρυπτογράφηση... 61 3.5.1 Μετασχηματισμός SubBytes()... 63 3.5.2 Μετασχηματισμός ShiftRows()... 66 3.5.3 Μετασχηματισμός MixColumns()... 67 3.5.4 Μετασχηματισμός AddRoundKey()... 68 3.6 Επέκταση κλειδιού... 69 3.7 Αποκρυπτογράφηση... 71 3.7.1 Μετασχηματισμός InvSubBytes()... 72 3.7.2 Μετασχηματισμός InvShiftRows()... 73 3.7.3 Μετασχηματισμός InvMixColumns()... 74 vii

3.7.4 Αντίστροφος μετασχηματισμός AddRoundKey()... 74 3.7.5 Αλγόριθμος ισοδύναμης Αποκρυπτογράφησης... 74 3.8 Παρουσίαση διαδικασίας κρυπτογραφήσεως μέσω παραδείγματος... 76 3.9 Ασφάλεια AES... 81 3.10 Εφαρμογές... 81 4.Υλοποιήσεις AES... 83 4.1 Κρυπτογραφία και λογισμικό ή υλικό... 83 4.2 Υλοποίηση σε Λογισμικό... 85 4.2.1 Ανάλυση προγράμματος... 85 4.2.2 Παρουσίαση αποτελεσμάτων... 89 4.3 Διαδικτυακή υλοποίηση... 91 4.4 VHDL υλοποίηση AES... 95 4.4.1 AES-128... 96 4.4.1.1 Μονάδα παραγωγής κλειδιού... 96 4.4.1.2 Μονάδα κρυπτογράφησης/αποκρυπτογράφησης... 101 4.4.1.3 Μονάδα ελέγχου... 108 4.4.1.4 AES-128 υλοποίηση και εξομοίωση... 108 4.4.2 AES-128/192/256... 114 4.4.2.1 Μονάδα παραγωγής κλειδιού... 114 4.4.2.2 Μονάδα ελέγχου... 119 4.4.2.3 AES-128/192/256 υλοποίηση και εξομοίωση... 120 5.Συμπεράσματα... 129 Αναφορές... 131 Παράρτημα Α... 135 Παράρτημα Β... 147 viii

ix

1.Εισαγωγή στην Κρυπτογραφία 1.1 Εισαγωγικές έννοιες και Ορολογία Κρυπτογραφία είναι ο επιστημονικός κλάδος που πραγματεύεται τη μελέτη και σχεδίαση κρυπτογραφικών τεχνικών, συστημάτων και πρωτοκόλλων. Μαζί με τον κλάδο της Κρυπτανάλυσης, που ασχολείται με τη μελέτη τρόπων παραβίασης αυτών, απαρτίζουν την Επιστήμη της Κρυπτολογίας. Η επιθυμία προστασίας του περιεχομένου μηνυμάτων οδήγησε στην επινόηση και χρήση κρυπτογραφικών τεχνικών και συστημάτων τα οποία επιτρέπουν το μετασχηματισμό μηνυμάτων ή δεδομένων κατά τέτοιον τρόπο ώστε να είναι αδύνατη η υποκλοπή του περιεχομένου τους κατά τη μετάδοσή ή αποθήκευσή τους και, βεβαίως, την αντιστροφή του μετασχηματισμού [5]. Ιστορικά η κρυπτογραφία χρησιμοποιήθηκε για την κρυπτογράφηση μηνυμάτων, δηλαδή μετατροπή της πληροφορίας από μια κατανοητή μορφή σε έναν γρίφο, που χωρίς τη γνώση του κρυφού μετασχηματισμού θα παρέμενε ακατανόητος. Κύριο χαρακτηριστικό των παλαιότερων μορφών κρυπτογράφησης ήταν ότι η επεξεργασία γινόταν πάνω στη γλωσσική δομή. Στις νεότερες μορφές η κρυπτογραφία κάνει χρήση του αριθμητικού ισοδύναμου, η έμφαση έχει μεταφερθεί σε διάφορα πεδία των μαθηματικών, όπως διακριτά μαθηματικά, θεωρία αριθμών, θεωρία πληροφορίας, υπολογιστική πολυπλοκότητα, στατιστική και συνδυαστική ανάλυση [6]. Ορολογία Κρυπτογράφηση (encryption) ονομάζεται η διαδικασία μετασχηματισμού ενός μηνύματος σε μια ακατανόητη μορφή με τη χρήση κάποιου κρυπτογραφικού αλγορίθμου ούτως ώστε να μην μπορεί να διαβαστεί από κανέναν εκτός του νόμιμου παραλήπτη. Η αντίστροφη διαδικασία όπου από το κρυπτογραφημένο κείμενο παράγεται το αρχικό μήνυμα ονομάζεται αποκρυπτογράφηση (decryption). Κρυπτογραφικός αλγόριθμος (cipher) είναι η μέθοδος μετασχηματισμού δεδομένων σε μια μορφή που να μην επιτρέπει την αποκάλυψη των περιεχομένων τους από μη εξουσιοδοτημένα μέρη. Κατά κανόνα ο κρυπτογραφικός αλγόριθμος είναι μια πολύπλοκη μαθηματική συνάρτηση. Αρχικό κείμενο (plaintext) είναι το μήνυμα το οποίο αποτελεί την είσοδο σε μια διεργασία κρυπτογράφησης. Κλειδί (key) είναι ένας αριθμός αρκετών bit που χρησιμοποιείται ως είσοδος στη συνάρτηση κρυπτογράφησης. Κρυπτογραφημένο κείμενο (ciphertext) είναι το αποτέλεσμα της εφαρμογής ενός κρυπτογραφικού αλγορίθμου πάνω στο αρχικό κείμενο. Κρυπτανάλυση (cryptnalysis) είναι ο κλάδος της επιστήμης που ασχολείται με τη μελέτη και την επινόηση μεθόδων που εξασφαλίζουν την κατανόηση του νοήματος της κρυπτογραφημένης πληροφορίας, έχοντας ως άγνωστο το κλειδί με βάση το οποίο πραγματοποιήθηκε και το κρυπτογραφημένο μήνυμα. 1

Εικόνα 1. 1 Διαδικασία Κρυπτογράφησης/Αποκρυπτογράφησης. Η διαδικασία της κρυπτογράφησης και αποκρυπτογράφησης φαίνεται στην Εικόνα 1. 1. Η κρυπτογράφηση και αποκρυπτογράφηση ενός μηνύματος γίνεται με τη βοήθεια ενός αλγορίθμου κρυπτογράφησης και ενός κλειδιού κρυπτογράφησης. Συνήθως ο αλγόριθμος κρυπτογράφησης είναι γνωστός, οπότε η εμπιστευτικότητα του κρυπτογραφημένου μηνύματος που μεταδίδεται βασίζεται ως επί το πλείστον στη μυστικότητα του κλειδιού. Το μέγεθος του κλειδιού μετριέται σε αριθμό bits. Γενικά ισχύει ο εξής κανόνας: όσο μεγαλύτερο είναι το κλειδί, τόσο δυσκολότερα μπορεί να αποκρυπτογραφηθεί το κρυπτογραφημένο μήνυμα από επίδοξους εισβολείς. Διαφορετικοί αλγόριθμοι κρυπτογράφησης απαιτούν διαφορετικά μήκη κλειδιών για να πετύχουν το ίδιο επίπεδο ανθεκτικότητας κρυπτογράφησης [6]. Οι διαδικασίες της κρυπτογράφησης και αποκρυπτογράφησης μπορούν να παρασταθούν, ισοδυνάμως είτε χρησιμοποιώντας μαθηματικές σχέσεις, είτε σχηματικώς όπως φαίνεται στον Πίνακα 1. 1. Μαθηματική παράσταση Συμβολική παράσταση Κρυπτογράφηση c = e k (p) Αποκρυπτογράφηση p = d k (c) p: Αρχικό κείμενο c: Κρυπτογραφημένο κείμενο k: Κλειδί e: Συνάρτηση κρυπτογραφήσεως d: Συνάρτηση αποκρυπτογραφήσεως Πίνακας 1. 1 Διαδικασία Κρυπτογράφησης/Αποκρυπτογράφησης. 2

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

Εικόνα 1. 2 Η Σπαρτιατική Σκυτάλη, μια πρώιμη συσκευή για την κρυπτογράφηση. Καίσαρα. Ο Ιούλιος Καίσαρας έγραφε στον Κικέρωνα και σε άλλους φίλους του, αντικαθιστώντας τα γράμματα του κειμένου, με γράμματα, που βρίσκονται 3 θέσεις μετά, στο Λατινικό Αλφάβητο. Έτσι, σήμερα, το σύστημα κρυπτογράφησης που στηρίζεται στην αντικατάσταση των γραμμάτων του αλφαβήτου με άλλα που βρίσκονται σε καθορισμένο αριθμό θέσης πριν ή μετά, λέγεται κρυπτοσύστημα αντικατάστασης του Καίσαρα. Ο Καίσαρας χρησιμοποίησε και άλλα, πιο πολύπλοκα συστήματα κρυπτογράφησης, για τα οποία έγραψε ένα βιβλίο ο Valerius Probus, το οποίο δυστυχώς δεν διασώθηκε, αλλά αν και χαμένο, θεωρείται το πρώτο βιβλίο κρυπτολογίας. Το σύστημα αντικατάστασης του Καίσαρα, χρησιμοποιήθηκε ευρύτατα και στους επόμενους αιώνες. Στη διάρκεια του Μεσαίωνα, η κρυπτολογία ήταν κάτι το απαγορευμένο και αποτελούσε μια μορφή αποκρυφισμού και μαύρης μαγείας, κάτι που συντέλεσε στην καθυστέρηση της ανάπτυξής της. Η εξέλιξη, τόσο της κρυπτολογίας, όπως και των μαθηματικών, συνεχίζεται στον Αραβικό κόσμο. Στο γνωστό μυθιστόρημα Χίλιες και μία νύχτες κυριαρχούν οι λέξεις-αινίγματα, οι γρίφοι, τα λογοπαίγνια και οι αναγραμματισμοί. Έτσι, εμφανίστηκαν βιβλία που περιείχαν κρυπταλφάβητα, όπως το αλφάβητο Dawoudi που πήρε το όνομα του από τον βασιλιά Δαυίδ. Οι Άραβες είναι οι πρώτοι που επινόησαν αλλά και χρησιμοποίησαν μεθόδους κρυπτανάλυσης. Το κυριότερο εργαλείο στην κρυπτανάλυση, η χρησιμοποίηση των συχνοτήτων των γραμμάτων κειμένου, σε συνδυασμό με τις συχνότητες εμφάνισης στα κείμενα των γραμμάτων της γλώσσας, επινοήθηκε από αυτούς γύρω στον 14ο αιώνα. Η κρυπτογραφία, λόγω των στρατιωτικών εξελίξεων, σημείωσε σημαντική ανάπτυξη στους επόμενους αιώνες. Ο Ιταλός Giovanni Batista Porta, το 1563, δημοσίευσε το περίφημο για την κρυπτολογία βιβλίο De furtivis literarum notis, με το οποίο έγιναν γνωστά τα πολυαλφαβητικά συστήματα κρυπτογράφησης και τα διγραφικά κρυπτογραφήματα, στα οποία, δύο γράμματα αντικαθίστανται από ένα. Σημαντικός εκπρόσωπος εκείνης της εποχής είναι και ο Γάλλος Vigenere, του οποίου ο πίνακας πολυαλφαβητικής αντικατάστασης, χρησιμοποιείται ακόμη και σήμερα. Ο C.Wheatstone, γνωστός από τις μελέτες του στον ηλεκτρισμό, παρουσίασε την πρώτη μηχανική κρυπτοσυσκευή, η οποία απετέλεσε τη βάση για την ανάπτυξη των κρυπτομηχανών της δεύτερης ιστορικής περιόδου της κρυπτογραφίας. Η μεγαλύτερη αποκρυπτογράφηση ήταν αυτή των αιγυπτιακών ιερογλυφικών τα οποία, επί αιώνες, παρέμεναν μυστήριο και οι αρχαιολόγοι μόνο εικασίες μπορούσαν να διατυπώσουν για τη σημασία τους. Ωστόσο, χάρη σε μία κρυπταναλυτική εργασία, τα ιερογλυφικά εν τέλει αναλύθηκαν και έκτοτε οι αρχαιολόγοι είναι σε θέση να διαβάζουν ιστορικές επιγραφές [6]. 4

1.2.2 Δεύτερη Περίοδος Κρυπτογραφίας (1900 μ.χ. 1950 μ.χ.) Η δεύτερη περίοδος της κρυπτογραφίας τοποθετείται στις αρχές του 20ου αιώνα και φτάνει μέχρι το 1950. Καλύπτει, επομένως, τους δύο παγκόσμιους πολέμους, εξαιτίας των οποίων (λόγω της εξαιρετικά μεγάλης ανάγκης που υπήρξε για ασφάλεια κατά τη μετάδοση ζωτικών πληροφοριών μεταξύ των στρατευμάτων των χωρών) αναπτύχθηκε η κρυπτογραφία τόσο όσο δεν είχε αναπτυχθεί τα προηγούμενα 3000 χρόνια. Τα κρυπτοσυστήματα αυτής της περιόδου αρχίζουν να γίνονται πολύπλοκα, και να αποτελούνται από μηχανικές και ηλεκτρομηχανικές κατασκευές, οι οποίες ονομάζονται κρυπτομηχανές. Η κρυπτανάλυση τους, απαιτεί μεγάλο αριθμό προσωπικού, το οποίο εργαζόταν επί μεγάλο χρονικό διάστημα ενώ ταυτόχρονα γίνεται εξαιρετικά αισθητή η ανάγκη για μεγάλη υπολογιστική ισχύ. Παρά την πολυπλοκότητα που αποκτούν τα συστήματα κρυπτογράφησης κατά τη διάρκεια αυτής της περιόδου η κρυπτανάλυση τους είναι συνήθως επιτυχημένη. Οι Γερμανοί έκαναν εκτενή χρήση (σε διάφορες παραλλαγές) ενός συστήματος γνωστού ως Enigma (Εικόνα 1. 3). Η μηχανή Αίνιγμα χρησιμοποιήθηκε ευρέως στη Γερμανία Ο Marian Rejewski, στην Πολωνία, προσπάθησε και, τελικά, παραβίασε την πρώτη μορφή του γερμανικού στρατιωτικού συστήματος Enigma (που χρησιμοποιούσε μια ηλεκτρομηχανική κρυπτογραφική συσκευή) χρησιμοποιώντας θεωρητικά μαθηματικά το 1932. Ήταν η μεγαλύτερη σημαντική ανακάλυψη στην κρυπτολογική ανάλυση της εποχής. Οι Πολωνοί συνέχισαν να αποκρυπτογραφούν τα μηνύματα που βασίζονταν στην κρυπτογράφηση με το Enigma μέχρι το 1939. Τότε, ο γερμανικός στρατός έκανε ορισμένες σημαντικές αλλαγές και οι Πολωνοί δεν μπόρεσαν να τις παρακολουθήσουν, επειδή η αποκρυπτογράφηση απαιτούσε περισσότερους πόρους από όσους μπορούσαν να διαθέσουν. Έτσι, εκείνο το καλοκαίρι μεταβίβασαν τη γνώση τους, μαζί με μερικές μηχανές που είχαν κατασκευάσει, στους Βρετανούς και τους Γάλλους. Ακόμη και ο Rejewski και οι μαθηματικοί και κρυπτογράφοι του, όπως ο Biuro Szyfrow, κατέληξαν σε συνεργασία με τους Βρετανούς και τους Γάλλους μετά από αυτή την εξέλιξη. Η συνεργασία αυτή συνεχίστηκε από τον Άλαν Τούρινγκ (Alan Turing), τον Γκόρντον Ουέλτσμαν (Gordon Welchman) και από πολλούς άλλους στο Μπλέτσλεϊ Παρκ (Bletchley Park), κέντρο της Βρετανικής Υπηρεσίας απο/κρυπτογράφησης και οδήγησε σε συνεχείς αποκρυπτογραφήσεις των διαφόρων παραλλαγών του Enigma, με τη βοήθεια και ενός υπολογιστή, που κατασκεύασαν οι Βρετανοί επιστήμονες, ο οποίος ονομάσθηκε Colossus και, δυστυχώς, καταστράφηκε με το τέλος του Πολέμου. Οι κρυπτογράφοι του αμερικανικού ναυτικού (σε συνεργασία με Βρετανούς και Ολλανδούς κρυπτογράφους μετά από το 1940) έσπασαν αρκετά κρυπτοσυστήματα του Ιαπωνικού ναυτικού. Το σπάσιμο ενός από αυτά, του JN-25, οδήγησε στην αμερικανική νίκη στη Ναυμαχία της Μιντγουέι καθώς και στην εξόντωση του Αρχηγού του Ιαπωνικού Στόλου Ιζορόκου Γιαμαμότο. Το Ιαπωνικό Υπουργείο Εξωτερικών χρησιμοποίησε ένα τοπικά αναπτυγμένο κρυπτογραφικό σύστημα, και χρησιμοποίησε, επίσης, διάφορες παρόμοιες μηχανές για τις συνδέσεις μερικών ιαπωνικών πρεσβειών. Μία από αυτές αποκλήθηκε "Μηχανή-Μ" από τις ΗΠΑ, ενώ μια άλλη αναφέρθηκε ως Red (Κόκκινη). Μια ομάδα του αμερικανικού στρατού, η αποκαλούμενη SIS, κατάφερε να σπάσει το ασφαλέστερο ιαπωνικό διπλωματικό σύστημα κρυπτογράφησης (μια ηλεκτρομηχανική συσκευή, η οποία ονομάστηκε "Purple" από τους Αμερικανούς) πριν καν ακόμη αρχίσει ο Β Παγκόσμιος Πόλεμος. Οι Αμερικανοί αναφέρονται στο αποτέλεσμα της κρυπτανάλυσης, ειδικότερα της μηχανής Purple, αποκαλώντας το ως Magic (Μαγεία). 5

Εικόνα 1. 3 Μηχανή Enigma και Κρυπτομηχανή SIGABA. Οι συμμαχικές κρυπτομηχανές που χρησιμοποιήθηκαν στο δεύτερο παγκόσμιο πόλεμο περιλάμβαναν το βρετανικό TypeX και το αμερικανικό SIGABA (Εικόνα 1. 3). Και τα δύο ήταν ηλεκτρομηχανικά σχέδια παρόμοια στο πνεύμα με το Enigma, με σημαντικές εν τούτοις βελτιώσεις. Κανένα δεν έγινε γνωστό ότι παραβιάστηκε κατά τη διάρκεια του πολέμου. Τα στρατεύματα στο πεδίο μάχης χρησιμοποίησαν το M-209 και τη λιγότερη ασφαλή οικογένεια κρυπτομηχανών M-94. Οι Βρετανοί πράκτορες της Υπηρεσίας "SOE" χρησιμοποίησαν αρχικά ένα τύπο κρυπτογραφίας που βασιζόταν σε ποιήματα (τα απομνημονευμένα ποιήματα ήταν τα κλειδιά). Οι Γερμανοί, ώρες πριν την Απόβαση της Νορμανδίας συνέλαβαν ένα μήνυμα - ποίημα του Πολ Βερλέν, για το οποίο, χωρίς να το έχουν αποκρυπτογραφήσει, ήταν βέβαιοι πως προανήγγελλε την απόβαση. Η Γερμανική ηγεσία δεν έλαβε υπόψη της αυτή την προειδοποίηση. Οι Πολωνοί είχαν προετοιμαστεί για την εμπόλεμη περίοδο κατασκευάζοντας την κρυπτομηχανή LCD Lacida, η οποία κρατήθηκε μυστική ακόμη και από τον Rejewski. Όταν τον Ιούλιο του 1941 ελέγχθηκε από τον Rejewski η ασφάλειά της, του χρειάστηκαν μερικές μόνον ώρες για να την "σπάσει" και έτσι αναγκάστηκαν να την αλλάξουν βιαστικά. Τα μηνύματα που εστάλησαν με Lacida δεν ήταν, εντούτοις, συγκρίσιμα με αυτά του Enigma, αλλά η παρεμπόδιση θα μπορούσε να έχει σημάνει το τέλος της κρίσιμης κρυπταναλυτικής Πολωνικής προσπάθειας [6]. 1.2.3 Τρίτη Περίοδος Κρυπτογραφίας (1950 μ.χ. Σήμερα.) Αυτή η περίοδος χαρακτηρίζεται από την έξαρση της ανάπτυξης στους επιστημονικούς κλάδους των μαθηματικών, της μικροηλεκτρονικής και των υπολογιστικών συστημάτων. Η εποχή της σύγχρονης κρυπτογραφίας αρχίζει ουσιαστικά με τον Claude Shannon, αναμφισβήτητα ο πατέρας των μαθηματικών συστημάτων κρυπτογραφίας. Το 1949 δημοσίευσε το έγγραφο Θεωρία επικοινωνίας των συστημάτων μυστικότητας (Communication Theory of Secrecy Systems) στο τεχνικό περιοδικό Bell System και λίγο αργότερα στο βιβλίο του, Μαθηματική Θεωρία της Επικοινωνίας (Mathematical Theory of Communication), μαζί με τον Warren Weaver. Αυτά, εκτός από τις άλλες εργασίες του επάνω στη θεωρία δεδομένων και επικοινωνίας καθιέρωσε μια στερεά θεωρητική βάση για την κρυπτογραφία και την κρυπτανάλυση. Εκείνη την εποχή η κρυπτογραφία εξαφανίζεται και φυλάσσεται από τις μυστικές υπηρεσίες κυβερνητικών επικοινωνιών όπως η NSA. Πολύ λίγες εξελίξεις δημοσιοποιήθηκαν ξανά μέχρι τα μέσα της δεκαετίας του '70, όταν όλα άλλαξαν. 6

Στα μέσα της δεκαετίας του '70 έγιναν δύο σημαντικές δημόσιες (δηλ. μη-μυστικές) πρόοδοι. Πρώτα ήταν η δημοσίευση του σχεδίου προτύπου κρυπτογράφησης DES (Data Encryption Standard) στον ομοσπονδιακό κατάλογο της Αμερικής στις 17 Μαρτίου 1975. Το προτεινόμενο DES υποβλήθηκε από την ΙΒΜ, στην πρόσκληση του Εθνικού Γραφείου των Προτύπων (τώρα γνωστό ως NIST), σε μια προσπάθεια να αναπτυχθούν ασφαλείς ηλεκτρονικές εγκαταστάσεις επικοινωνίας για επιχειρήσεις όπως τράπεζες και άλλες μεγάλες οικονομικές οργανώσεις. Μετά από τις συμβουλές και την τροποποίηση από την NSA, αυτό το πρότυπο υιοθετήθηκε και δημοσιεύθηκε ως ένα ομοσπονδιακό τυποποιημένο πρότυπο επεξεργασίας πληροφοριών το 1977 (αυτήν την περίοδο αναφέρεται σαν FIPS 46-3). Ο DES ήταν ο πρώτος δημόσια προσιτός αλγόριθμος κρυπτογράφησης που εγκρίνεται από μια εθνική αντιπροσωπεία όπως η NSA. Η απελευθέρωση της προδιαγραφής της από την NBS υποκίνησε μια έκρηξη δημόσιου και ακαδημαϊκού ενδιαφέροντος για τα συστήματα κρυπτογραφίας. Ο DES αντικαταστάθηκε επίσημα από τον AES το 2001 όταν ανήγγειλε ο NIST το FIPS 197. Μετά από έναν ανοικτό διαγωνισμό, ο NIST επέλεξε τον αλγόριθμο Rijndael, που υποβλήθηκε από δύο Φλαμανδούς κρυπτογράφους, για να είναι το AES. Ο DES και οι ασφαλέστερες παραλλαγές του όπως ο 3DES ή TDES χρησιμοποιούνται ακόμα και σήμερα, ενσωματωμένοι σε πολλά εθνικά και οργανωτικά πρότυπα. Εντούτοις, το βασικό μέγεθος των 56-bit έχει αποδειχθεί ότι είναι ανεπαρκές να αντισταθεί στις επιθέσεις ωμής βίας (μια τέτοια επίθεση πέτυχε να σπάσει τον DES σε 56 ώρες ενώ το άρθρο που αναφέρεται ως το σπάσιμο του DES δημοσιεύτηκε από τον O'Reilly and Associates). Κατά συνέπεια, η χρήση απλής κρυπτογράφησης με τον DES είναι τώρα χωρίς αμφιβολία επισφαλής για χρήση στα νέα σχέδια των κρυπτογραφικών συστημάτων και μηνύματα που προστατεύονται από τα παλαιότερα κρυπτογραφικά συστήματα που χρησιμοποιούν DES, και όλα τα μηνύματα που έχουν αποσταλεί από το 1976 με τη χρήση DES, διατρέχουν επίσης σοβαρό κίνδυνο αποκρυπτογράφησης. Ανεξάρτητα από την έμφυτη ποιότητά του, το βασικό μέγεθος του DES (56-bit) ήταν πιθανά πάρα πολύ μικρό ακόμη και το 1976, πράγμα που είχε επισημάνει ο Whitfield Diffie. Υπήρξε επίσης η υποψία ότι κυβερνητικές οργανώσεις είχαν ακόμα και τότε ικανοποιητική υπολογιστική δύναμη ώστε να σπάσουν μηνύματα που είχαν κρυπτογραφηθεί με τον DES [6]. 1.3 Βασικές έννοιες κρυπτογραφίας Ο αντικειμενικός στόχος της κρυπτογραφίας είναι να δώσει τη δυνατότητα σε δύο πρόσωπα να επικοινωνήσουν μέσα από ένα μη ασφαλές κανάλι με τέτοιο τρόπο ώστε ένα τρίτο πρόσωπο, μη εξουσιοδοτημένο (ένας αντίπαλος), να μην μπορεί να παρεμβληθεί στην επικοινωνία ή να κατανοήσει το περιεχόμενο των μηνυμάτων. Ένα κρυπτοσύστημα (σύνολο διαδικασιών κρυπτογράφησης - αποκρυπτογράφησης) αποτελείται από μία πεντάδα (P,C,k,E,D): 1. Το P είναι ο χώρος όλων των δυνατών μηνυμάτων ή αλλιώς ανοικτών κειμένων 2. Το C είναι ο χώρος όλων των δυνατών κρυπτογραφημένων μηνυμάτων ή αλλιώς κρυπτοκειμένων 3. Το k είναι ο χώρος όλων των δυνατών κλειδιών ή αλλιώς κλειδοχώρος 4. Η Ε είναι ο κρυπτογραφικός μετασχηματισμός ή κρυπτογραφική συνάρτηση 5. Η D είναι η αντίστροφη συνάρτηση ή μετασχηματισμός αποκρυπτογράφησης 7

Η συνάρτηση κρυπτογράφησης Ε δέχεται δύο παραμέτρους, μέσα από τον χώρο P και τον χώρο k και παράγει μία ακολουθία που ανήκει στον χώρο C. Η συνάρτηση αποκρυπτογράφησης D δέχεται δύο παραμέτρους, τον χώρο C και τον χώρο k και παράγει μια ακολουθία που ανήκει στον χώρο P. Το Σύστημα που φαίνεται στην Εικόνα 1. 4 λειτουργεί με τον ακόλουθο τρόπο : 1. Ο αποστολέας επιλέγει ένα κλειδί μήκους n από τον χώρο κλειδιών με τυχαίο τρόπο, όπου τα n στοιχεία του Κ είναι στοιχεία από ένα πεπερασμένο αλφάβητο. 2. Αποστέλλει το κλειδί στον παραλήπτη μέσα από ένα ασφαλές κανάλι. 3. Ο αποστολέας δημιουργεί ένα μήνυμα από τον χώρο μηνυμάτων. 4. Η συνάρτηση κρυπτογράφησης παίρνει τις δυο εισόδους (κλειδί και μήνυμα) και παράγει μια κρυπτοακολουθία συμβόλων (έναν γρίφο) και η ακολουθία αυτή αποστέλλεται διαμέσου ενός μη ασφαλούς καναλιού. 5. Η συνάρτηση αποκρυπτογράφησης παίρνει ως όρισμα τις δύο τιμές (κλειδί και γρίφο) και παράγει την ισοδύναμη ακολουθία μηνύματος. Ο αντίπαλος παρακολουθεί την επικοινωνία, ενημερώνεται για την κρυπτοακολουθία αλλά δεν έχει γνώση για το κλειδί που χρησιμοποιήθηκε και δεν μπορεί να αναδημιουργήσει το μήνυμα. Αν ο αντίπαλος επιλέξει να παρακολουθεί όλα τα μηνύματα θα προσανατολιστεί στην εξεύρεση του κλειδιού. Αν ο αντίπαλος ενδιαφέρεται μόνο για το υπάρχον μήνυμα θα παράγει μια εκτίμηση για την πληροφορία του μηνύματος [6]. Εικόνα 1. 4 Μοντέλο τυπικού κρυπτοσυστήματος. 8

1.4 Αναγκαιότητα κρυπτογραφίας Κατά τη διάρκεια των αιώνων έχουν δημιουργηθεί διάφορα πρωτοκόλλα και μηχανισμοί προκειμένου να δώσουν λύση στο πρόβλημα της ασφαλούς διακίνησης της πληροφορίας όταν αυτή μεταφέρεται σε φυσικά έγγραφα. Συχνά οι στόχοι της ασφάλειας δεν μπορούν να επιτευχθούν μόνο μέσω πολύπλοκων μαθηματικών αλγορίθμων και πρωτοκόλλων, αλλά απαιτούν διαδικαστικές τεχνικές και νόμους προκειμένου να προκύψει το επιθυμητό επίπεδο ασφάλειας. Για παράδειγμα η μυστικότητα των γραμμάτων επιτυγχάνεται με τη βοήθεια σφραγισμένων φακέλων και μίας κοινά αποδεκτής ταχυδρομικής υπηρεσίας. Η φυσική ασφάλεια των φακέλων είναι, για πρακτικούς λόγους, περιορισμένη και για αυτό έχουν θεσπιστεί νόμοι οι οποίοι καθορίζουν ως ποινικό αδίκημα το άνοιγμα ενός φακέλου από μη εξουσιοδοτημένα πρόσωπα. Μερικές φορές η ασφάλεια της πληροφορίας δεν εξασφαλίζεται από τον τρόπο με τον οποίο είναι μετασχηματισμένη αλλά από το φυσικό έγγραφο στο οποίο καταγράφεται. Αυτό αφορά την περίπτωση της στεγανογραφίας όπου ουσιαστικά το ίδιο το μήνυμα αποκρύπτεται. Παλαιότερα για να επιτευχθεί αυτό χρησιμοποιείτο ειδικό μελάνι το οποίο υπό ορισμένες προϋποθέσεις γινόταν αόρατο. Ο τρόπος με τον οποίο η πληροφορία καταγράφεται δεν έχει αλλάξει δραματικά κατά το πέρασμα του χρόνου, παρόλο που παλαιότερα η πληροφορία αποθηκευόταν και μεταδιδόταν με τη βοήθεια του χαρτιού, ενώ πλέον διανέμεται με οπτικά μέσα και μεταδίδεται μέσω τηλεπικοινωνιακών συστημάτων. Αυτό που έχει αλλάξει σημαντικά είναι η δυνατότητα για αντιγραφή και μεταβολή της πληροφορίας. Ο οποιοσδήποτε έχει τη δυνατότητα να δημιουργήσει χιλιάδες πανομοιότυπα αντίτυπα ενός τμήματος πληροφορίας που είναι αποθηκευμένο ηλεκτρονικά, το καθένα από τα οποία να μην ξεχωρίζει από το πρωτότυπο. Με την πληροφορία αποθηκευμένη σε χαρτί αυτό απαιτούσε πολύ περισσότερη προσπάθεια. Στη σύγχρονη κοινωνία όπου η πληροφορία κατά κύριο λόγο αποθηκεύεται και μεταδίδεται σε ηλεκτρονική μορφή, η ασφάλεια της θα πρέπει να εξασφαλίζεται ανεξάρτητα από το φυσικό μέσο στο οποίο είναι αποθηκευμένη και μεταφέρεται, έτσι οι στόχοι της ασφάλειας θα πρέπει να στηρίζονται μόνο στην ψηφιακή πληροφορία. Ένα από τα βασικότερα εργαλεία που χρησιμοποιείται για την ασφάλεια της πληροφορίας είναι η υπογραφή. Αποτελεί θεμέλιο στοιχείο για πολλές υπηρεσίες όπως η μη αποκήρυξη μίας ενέργειας, η επαλήθευση της προέλευσης της πληροφορίας και η εξακρίβωση της ακεραιότητας της. Κάθε άτομο μαθαίνει να δημιουργεί την δική του ξεχωριστή υπογραφή η οποία αποτελεί μέρος της ταυτότητάς του. Με την ηλεκτρονικά αποθηκευμένη πληροφορία όμως αυτός ο τρόπος δεν μπορεί να εφαρμοστεί, καθώς η ηλεκτρονική αντιγραφή μίας υπογραφής είναι πάρα πολύ απλή διαδικασία. Για την επίτευξη της ασφάλειας της πληροφορίας την σημερινή εποχή απαιτούνται πολύ διαφορετικά τεχνικά μέσα και νομικά πλαίσια. Τα τεχνικά αυτά μέσα παρέχονται από την κρυπτογραφία [9]. 9

1.5 Βασικοί στόχοι Κρυπτογραφίας Στο πλαίσιο της ασφάλειας των υπολογιστικών και επικοινωνιακών συστημάτων τα διάφορα κρυπτογραφικά συστήματα θα πρέπει να παρέχουν τις τέσσερις παρακάτω υπηρεσίες ασφαλείας: 1. Εμπιστευτικότητα (Confidentiality). Εμπιστευτικότητα είναι η ιδιότητα των δεδομένων ή πληροφοριών να είναι προσπελάσιμα μόνο από εξουσιοδοτημένα άτομα. Η εμπιστευτικότητα αναφέρεται στο περιεχόμενο ηλεκτρονικών εγγράφων ή γενικά αρχείων και μηνυμάτων, στην ύπαρξή τους και στην ταυτότητα αυτών που εκτελούν ενέργειες και ανταλλάσσουν μηνύματα. Επίσης, αναφέρεται στο χρόνο και την ποσότητα μηνυμάτων που ανταλλάσσονται. Η εμπιστευτικότητα, μερικές φορές, καλείται και ιδιωτικότητα ή μυστικότητα ή προστασία του απορρήτου. 2. Ακεραιότητα (Integrity). Η ακεραιότητα είναι η υπηρεσία κατά την οποία τα δεδομένα, οι πληροφορίες, οι υπολογιστικοί και επικοινωνιακοί πόροι τροποποιούνται μόνο από εξουσιοδοτημένες οντότητες κατά εξουσιοδοτημένο τρόπο. Η ακεραιότητα έχει να κάνει με την ακρίβεια και τη συνέπεια στη λειτουργία συστημάτων και διεργασιών. Τα δεδομένα σε κάθε σύστημα πρέπει να παραμένουν πλήρη και ορθά. Η ακεραιότητα διατηρείται όταν διατηρούνται και οι εξής ιδιότητες: η ακρίβεια, η μη τροποποίηση ή τροποποίηση από εξουσιοδοτημένους χρήστες ή διεργασίες, με συνέπεια, κατά αποδεκτό τρόπο. Έχουν αναγνωριστεί τρεις καθοριστικές συνιστώσες του όρου ακεραιότητα: οι εξουσιοδοτημένες ενέργειες, ο διαχωρισμός και η προστασία αγαθών και, τέλος, η ανίχνευση και διόρθωση σφαλμάτων. 3. Επαλήθευση (authentication). Οι υπηρεσίες αυτές παρέχουν επιβεβαίωση της ταυτότητας και απευθύνονται τόσο στις οντότητες, όσο και στην ίδια την πληροφορία. Όταν δύο μέρη επικοινωνούν θα πρέπει το καθένα από αυτά να επιβεβαιώσει την ταυτότητά του. Οι πληροφορίες οι οποίες διακινούνται από ένα τηλεπικοινωνιακό κανάλι θα πρέπει να πιστοποιούν την προέλευσή τους, την ημερομηνία δημιουργίας τους, το περιεχόμενο τους, την ημερομηνία αποστολής τους κτλ. Για τους παραπάνω λόγους αυτή η υπηρεσία της κρυπτογραφίας χωρίζεται σε δύο τμήματα: 1. Το πρώτο περιλαμβάνει την επαλήθευση μιας οντότητας (π.χ. μιας λέξης πρόσβασης password) που επιβεβαιώνει την ταυτότητα ενός απομακρυσμένου μέρους. 2. Το δεύτερο πραγματοποιεί την επαλήθευση της προέλευσης των δεδομένων που επαληθεύει την ταυτότητα που ισχυρίζεται ότι έχει ένα τμήμα δεδομένων (π.χ. ένα μήνυμα). 4. Μη αποκήρυξη (non repudiation). Η υπηρεσία αυτή αποτρέπει μία οντότητα από το να αρνηθεί ότι μία επικοινωνία ή μία συγκεκριμένη πράξη έχει ήδη πραγματοποιηθεί. Όταν μία πράξη αμφισβητείται από μία οντότητα τότε χρειάζεται ένα μέσο προκειμένου να επιλύεται μία διαφωνία, όπου αυτή προκύπτει. Έτσι υπάρχει προστασία έναντι μιας ανακριβούς άρνησης (μη παραδοχής) ενός μέρους ότι μια συναλλαγή πράγματι έχει επισημοποιηθεί [9]. 10

Ένας από τους βασικούς στόχους της κρυπτογραφίας είναι να εξασφαλίσει την καλύτερη δυνατή ικανοποίηση των τεσσάρων προηγούμενων υπηρεσιών ασφαλείας τόσο στη θεωρία όσο και στην πράξη. Αντικειμενικός της σκοπός είναι να ανακαλύψει και να αποτρέψει οποιαδήποτε προσπάθεια εξαπάτησης ή κακόβουλη ενέργεια. 1.6 Ασφάλεια Κρυπτοσυστημάτων Η ασφάλεια των κρυπτογραφικών συστημάτων, δηλαδή η ανθεκτικότητά τους σε απόπειρες παραβίασης, είναι ένα από τα πρώτα ερωτήματα που τίθενται πριν αποφασιστεί η χρησιμοποίησή τους σε πρακτικές εφαρμογές. Τα κρυπτογραφικά συστήματα εμφανίζουν διάφορα επίπεδα ασφαλείας, ανάλογα με το πόσο δύσκολα παραβιάζονται. Όλοι οι αλγόριθμοι (πλην του σημειωματάριου μίας χρήσης) είναι θεωρητικά παραβιάσιμοι, δεδομένης επαρκούς υπολογιστικής ισχύος και αποθηκευτικής χωρητικότητας. Μερικοί όμως αλγόριθμοι απαιτούν εκατομμύρια χρόνια ανάλυσης ή απεριόριστους υπολογιστικούς πόρους προκειμένου να παραβιαστούν. Αυτοί οι αλγόριθμοι είναι θεωρητικά παραβιάσιμοι, αλλά όχι και στην πράξη. Ένας αλγόριθμος που δεν παραβιάζεται στην πράξη θεωρείται ασφαλής (secure). Ένας αλγόριθμος είναι απόλυτα ασφαλής (unconditionally secure), αν ανεξαρτήτως του μεγέθους του κρυπτογραφημένου μηνύματος, των υπολογιστικών πόρων και του χρόνου που μπορεί να διαθέτει ο κρυπταναλυτής, δεν υπάρχει δυνατότητα να παραβιαστεί, δηλαδή να αποκαλυφθεί το αρχικό μήνυμα. Τα σημειωματάρια μίας χρήσης, δεν μπορούν να παραβιασθούν, ακόμα και αν ο κρυπταναλυτής έχει στη διάθεσή του άπειρους υπολογιστικούς και αποθηκευτικούς πόρους. Ωστόσο, η σύγχρονη κρυπτογραφία ασχολείται κυρίως με κρυπτογραφικά συστήματα, τα οποία δεν μπορούν να παραβιαστούν με τις δεδομένες υπολογιστικές δυνατότητες. Ένας αλγόριθμος λέγεται υπολογιστικά ασφαλής (conditionally secure), ή δυνατός (strong), αν είναι αδύνατη η παραβίασή του με τους διαθέσιμους (τωρινούς ή μελλοντικούς) πόρους [10]. 1.7 Εφαρμογές Κρυπτογραφίας Η εξέλιξη της χρησιμοποίησης της κρυπτογραφίας ολοένα αυξάνεται καθιστώντας πλέον αξιόπιστη τη μεταφορά της πληροφορίας για διάφορους λειτουργικούς σκοπούς. Η ενσωμάτωση των μεθόδων της κρυπτογραφίας σε υλικό επιταχύνει σε μεγάλο βαθμό την διεκπεραίωση της. Επίσης, οι χρήστες δεν γνωρίζουν, ούτε καν αντιλαμβάνονται την παρουσία της και πραγματοποιούν ανενόχλητοι τις εργασίες τους. Το γεγονός ότι ο χρήστης δεν ανακατεύεται καθόλου στις διαδικασίες της κρυπτογραφίας αυξάνει την αποτελεσματικότητα του εργαλείου στην παρεχόμενη ασφάλεια. Παρ όλα αυτά, δεν έχει καθιερωθεί η κρυπτογραφία σε υλικό λόγω του υψηλού κόστους της, που απαγορεύει την αγορά και διατήρηση των ειδικών μηχανημάτων που χρειάζονται για την εφαρμογή της. Τα ειδικά αυτά μηχανήματα βρίσκονται τοποθετημένα σε στρατηγικά σημεία κάθε δικτύου. Η λογισμική κρυπτογραφία είναι φθηνότερη, πράγμα που την κάνει ευρέως αποδεκτή και εύκολα πραγματοποιήσιμη. Βέβαια, δεν είναι το 11

ίδιο γρήγορη με την εκτέλεση της σε υλικό, αλλά η ολοένα αυξανόμενη ανάγκη για διασφάλιση των επικοινωνιών εδραίωσε τη χρήση της [6]. Η κρυπτογραφία χρησιμοποιείται μεταξύ άλλων για: 1. Ασφάλεια συναλλαγών σε τράπεζες, δίκτυα - ΑΤΜ 2. Κινητή τηλεφωνία (GSM) 3. Σταθερή τηλεφωνία (cryptophones) 4. Διασφάλιση Εταιρικών πληροφοριών 5. Στρατιωτικά δίκτυα (Τακτικά συστήματα επικοινωνιών μάχης) 6. Διπλωματικά δίκτυα (Τηλεγραφήματα) 7. Ηλεκτρονικές επιχειρήσεις (πιστωτικές κάρτες, πληρωμές) 8. Ηλεκτρονική ψηφοφορία 9. Ηλεκτρονική δημοπρασία 10. Ηλεκτρονικό γραμματοκιβώτιο 11. Συστήματα συναγερμών 12. Συστήματα βιομετρικής αναγνώρισης 13. Έξυπνες κάρτες 14. Ιδιωτικά δίκτυα (VPN) 15. World Wide Web 16. Δορυφορικές εφαρμογές (δορυφορική τηλεόραση) 17. Ασύρματα δίκτυα (Hipperlan, Bluetooth, 802.11x) 18. Συστήματα ιατρικών δεδομένων και άλλων βάσεων δεδομένων 19. Τηλεσυνδιάσκεψη - Τηλεφωνία μέσω διαδικτύου (VOIP) 1.8 Κρυπτανάλυση Προτού αναλυθούν οι διάφορες τεχνικές κρυπτογράφησης, παρουσιάζονται στην παρούσα ενότητα οι τρόποι οι οποίοι χρησιμοποιούνται για την κρυπτανάλυση τους. Η κρυπτανάλυση, όπως αναφέρθηκε και προηγουμένως, έχει ως στόχο την ανάπτυξη τεχνικών και μεθόδων για την παραβίαση κρυπτογραφημένων μηνυμάτων ή κρυπτογραφικών συστημάτων. Μία επιτυχής κρυπτανάλυση μπορεί να αποκαλύψει το αρχικό από το κρυπτογραφημένο μήνυμα. Μπορεί συγχρόνως να εντοπίσει αδυναμίες σε ένα κρυπτογραφικό σύστημα, οι οποίες οδηγούν τελικά στα παραπάνω αποτελέσματα. Στον Πίνακα 1. 2 παρουσιάζονται συνοπτικά διάφοροι τύποι επιθέσεων κρυπτανάλυσης, οι οποίοι διαφοροποιούνται, μεταξύ άλλων, με βάση την ποσότητα και το είδος της πληροφορίας που είναι γνωστή στον κρυπταναλυτή. Το πρόβλημα της κρυπτανάλυσης παρουσιάζει σημαντικές δυσκολίες όταν είναι γνωστό στον επιτιθέμενο μόνον το κρυπτογράφημα. Σε μερικές περιπτώσεις δεν είναι γνωστός ούτε ο αλγόριθμος κρυπτογράφησης, αλλά στη γενική περίπτωση μπορεί να υποτεθεί ότι ο αντίπαλος γνωρίζει τον αλγόριθμο που χρησιμοποιείται. 12

Τύπος Επίθεσης Επίθεση κρυπτογραφήματος (ciphertext only attack) Επίθεση γνωστού αρχικού κειμένου (known plaintext attack) Επίθεση επιλεγμένου αρχικού κειμένου (chosen plaintext attack) Επίθεση επιλεγμένου κρυπτογραφήματος (chosen ciphertext attack) Επίθεση επιλεγμένου κειμένου (chosen text attack) Στοιχεία γνωστά στον κρυπταναλυτή Αλγόριθμος κρυπτογράφησης Κρυπτογράφημα Αλγόριθμος κρυπτογράφησης Κρυπτογράφημα Ένα ή περισσότερα ζεύγη (αρχικού κειμένου, κρυπτογραφήματος), παραγόμενα από το μυστικό κλειδί Αλγόριθμος κρυπτογράφησης Κρυπτογράφημα Αρχικό κείμενο επιλεγμένο από τον κρυπταναλυτή, σε συνδυασμό με το αντίστοιχο κρυπτογράφημα που παράγεται με το μυστικό κλειδί Αλγόριθμος κρυπτογράφησης Κρυπτογράφημα Επιλεγμένο απ τον κρυπταναλυτή κρυπτογράφημα, μαζί με το αντίστοιχο αποκρυπτογραφημένο αρχικό κείμενο, που παράχθηκε με το μυστικό κλειδί Αλγόριθμος κρυπτογράφησης Κρυπτογράφημα Επιλεγμένο από τον κρυπταναλυτή μήνυμα αρχικού κειμένου, μαζί με το αντίστοιχο κρυπτογράφημα, που παράχθηκε με το μυστικό κλειδί Επιλεγμένο από τον κρυπταναλυτή κρυπτογράφημα, μαζί με το αντίστοιχο αποκρυπτογραφημένο αρχικό κείμενο, που παράχθηκε με το μυστικό κλειδί Πίνακας 1. 2 Τύποι επιθέσεων σε κρυπτογραφημένα μηνύματα. Μια κλασική επίθεση υπό αυτές τις περιστάσεις αποτελεί η προσέγγιση της εξαντλητικής αναζήτησης κλειδιών (brute-force attack), όπου ο επιτιθέμενος δοκιμάζει διαδοχικά όλα τα στοιχεία από το πεδίο όλων των πιθανών κλειδιών. Εάν το μέγεθος του κλειδιού είναι μεγάλο, η επίθεση αυτού του είδους θεωρείται πρακτικά ατελέσφορη. Κατά συνέπεια, ένας επιτιθέμενος για να είναι αποτελεσματικός θα πρέπει να αξιοποιήσει ανάλυση του κρυπτογραφήματος εφαρμόζοντας διάφορες στατιστικές δοκιμές σε αυτό. Ο επιτιθέμενος για να χρησιμοποιήσει αυτή την προσέγγιση θα πρέπει να γνωρίζει τον τύπο του αρχικού κειμένου που χρησιμοποιείται, π.χ. ένα απλό κείμενο σε συγκεκριμένη γλώσσα, ένα εκτελέσιμο αρχείο σε περιβάλλον συγκεκριμένου λειτουργικού συστήματος, ένα αρχείο με πηγαίο κώδικα σε συγκεκριμένη γλώσσα προγραμματισμού κλπ. Η άμυνα σε επίθεση κρυπτογραφήματος (ciphertext only attack) αποτελεί γενικά εύκολη υπόθεση, επειδή ο αντίπαλος διατηρεί μικρή ποσότητα πληροφοριών με την οποία μπορεί να ασχοληθεί. Παρόλα αυτά, σε πολλές περιπτώσεις ο κρυπταναλυτής μπορεί να διαθέτει και περισσότερες πληροφορίες. Ο κρυπταναλυτής μπορεί να έχει τη δυνατότητα να καταγράψει ένα ή περισσότερα μηνύματα αρχικού κειμένου, καθώς επίσης και τα αντίστοιχα κρυπτογραφήματα. Σε άλλη περίπτωση, μπορεί να γνωρίζει 13

ότι συγκεκριμένα πρότυπα αρχικού κειμένου θα εμφανιστούν σε ένα μήνυμα. Για παράδειγμα, ένα αρχείο σε μορφή postscript αρχίζει πάντοτε με το ίδιο πρότυπο, ή μπορεί να υπάρξει μία τυποποιημένη επικεφαλίδα ή ένα λογότυπο σε ένα ηλεκτρονικό μήνυμα μεταφοράς κεφαλαίων. Τα προαναφερόμενα παραδείγματα αποτελούν επιθέσεις γνωστών μηνυμάτων. Με αυτή τη γνώση ο αναλυτής μπορεί να είναι σε θέση να συμπεράνει το κλειδί, με βάση τον τρόπο που μετασχηματίστηκε το γνωστό αρχικό κείμενο. Αντίστοιχη με την επίθεση γνωστών μηνυμάτων (known plaintext attack) είναι η επίθεση πιθανής-λέξης (probable-word attack). Εάν ο επιτιθέμενος ασχολείται με την κρυπτανάλυση κάποιου μηνύματος αγνώστου περιεχομένου μπορεί να μην κατανοεί επακριβώς το περιεχόμενο του μηνύματος. Παρόλα αυτά, εάν ο επιτιθέμενος αναζητά συγκεκριμένες πληροφορίες, τότε κάποια τμήματα του μηνύματος μπορούν να θεωρηθούν γνωστά. Για παράδειγμα, εάν διαβιβάζεται ολόκληρο λογιστικό αρχείο, ο επιτιθέμενος μπορεί να είναι σε θέση να γνωρίζει τη θέση κάποιων λέξεων-κλειδιών στην επικεφαλίδα του αρχείου. Άλλο παράδειγμα αποτελεί ο πηγαίος κώδικας ενός προγράμματος που αναπτύχθηκε από κάποια εταιρία και ο οποίος μπορεί να περιλαμβάνει δήλωση πνευματικών δικαιωμάτων σε κάποια συγκεκριμένη θέση. Εάν ο κρυπταναλυτής μπορεί με κάποιο τρόπο να παραπλανήσει το πηγαίο σύστημα ώστε να παρεμβάλλει ένα μήνυμα που έχει επιλέξει ο ίδιος, τότε είναι πιθανή μία επίθεση επιλεγμένων μηνυμάτων. Γενικά, εάν ο κρυπταναλυτής είναι σε θέση να επιλέγει τα μηνύματα για κρυπτογράφηση τότε μπορεί σκόπιμα να επιλέγει πρότυπα που αναμένεται να τον υποβοηθήσουν στην αποκάλυψη της δομής του κλειδιού. Στον Πίνακα 1. 2 εμφανίζονται και άλλοι δύο τύποι επίθεσης, η επίθεση επιλεγμένου κρυπτογραφήματος (chosen ciphertext attack) και η επίθεση επιλεγμένου κειμένου (chosen text attack), επιθέσεις οι οποίες δεν επιχειρούνται συχνά ως τεχνικές κρυπτανάλυσης, μπορούν όμως να αποτελέσουν δυνητικούς τρόπους επίθεσης [8]. 14

2.Κρυπτοσυστήματα και Αλγόριθμοι 2.1 Κατηγορίες Κρυπτοσυστημάτων Τα κρυπτογραφικά συστήματα ταξινομούνται, γενικά, με βάση τρία ανεξάρτητα κριτήρια. Τον τύπο των διαδικασιών που χρησιμοποιούνται για το μετασχηματισμό του αρχικού κειμένου σε ένα κρυπτογράφημα Το σύνολο των αλγορίθμων κρυπτογράφησης στηρίζεται σε δύο γενικές αρχές: στην αντικατάσταση (substitution) σύμφωνα με την οποία κάθε στοιχείο του αρχικού κειμένου, είτε είναι δυαδικό ψηφίο, είτε χαρακτήρας, είτε ομάδα δυαδικών ψηφίων ή χαρακτήρων, αντικαθίσταται από άλλο στοιχείο και στη μετάθεση (permutation) στην οποία τα στοιχεία του αρχικού κειμένου αναδιατάσσονται. Βασική προϋπόθεση αποτελεί η μη απώλεια οποιασδήποτε πληροφορίας, ώστε όλες οι διαδικασίες να είναι αντιστρέψιμες. Τα περισσότερα συστήματα, που είναι γνωστά ως συστήματα παραγωγής (product systems), περιλαμβάνουν πληθώρα σταδίων αντικαταστάσεων και μεταθέσεων. Τον αριθμό των κλειδιών που χρησιμοποιούνται Εάν ο πομπός και ο δέκτης χρησιμοποιούν το ίδιο κλειδί, τότε το σύστημα αναφέρεται ως συμμετρικό ή μοναδικού κλειδιού ή μυστικού κλειδιού ή συμβατικής κρυπτογραφίας. Εάν, όμως, ο πομπός και ο δέκτης χρησιμοποιούν διαφορετικά κλειδιά, τότε το σύστημα αναφέρεται ως ασύμμετρο, ή σύστημα ζεύγους κλειδιών, ή κρυπτογραφίας δημοσίου κλειδιού. Τον τρόπο με τον οποίο επεξεργάζεται το αρχικό κείμενο Ένας κωδικοποιητής τμημάτων (block cipher) επεξεργάζεται την είσοδο ενός τμήματος στοιχείων κάθε φορά, παράγοντας ένα τμήμα εξόδου για κάθε συγκεκριμένο τμήμα εισόδου. Αντίθετα, ένας κωδικοποιητής ροής (stream cipher) επεξεργάζεται κατά συνεχή τρόπο τα στοιχεία εισόδου και κάθε φορά παράγεται ως έξοδος ένα στοιχείο, με τη σειρά που καταφθάνουν τα δεδομένα[8]. 15

Κρυπτοσυστήματα Κλασσικά Κρυπτοσυστήματα Μοντέρνα Κρυπτοσυστήματα Μετάθεσης Συμμετρικά Πολυσταδιακές Μονοσταδιακές Συμμετρικοί κρυπταλγόριθμοι Ψευδοτυχαίες ακολουθίες Αντικατάστασης Συναρτήσεις κατακερματισμού Ψηφιακές υπογραφές Μονοαλφαβητικής Πολυαλφαβητικής Ασύμμετρα Πολυγραμματικής Ομοφωνικής Συμμετρικοί κρυπταλγόριθμοι Ψηφιακές υπογραφές Σημειοματάριο μιας χρήσης Ρότορες Εικόνα 2. 1 Μπλοκ διάγραμμα Κρυπτοσυστημάτων. 2.2 Κλασσικά Κρυπτοσυστήματα Κρυπτοσύστημα μετάθεσης. Πρόκειται για μία απλή κρυπτογραφική μέθοδο κατά την οποία το κρυπτοκείμενο προκύπτει με απλή αντιμετάθεση της διαδοχής των συμβόλων του αρχικού κειμένου. Αυτό συνεπάγεται ότι το κρυπτοκείμενο αποτελείται από τα ίδια σύμβολα με αυτά του αρχικού κειμένου και το μέγεθος του παραμένει σταθερό [11]. Υπάρχουν δύο τύποι τέτοιων κρυπτοσυστημάτων: Τα μονοσταδιακά όπου η αντιμετάθεση των χαρακτήρων πραγματοποιείται μόνο μία φορά. Τα πολυσταδιακά όπου εφαρμόζεται περισσότερες από μία φορές ο ίδιος ή διαφορετικός αλγόριθμος αναδιάταξης. Κρυπτοσύστημα αντικατάστασης. Στην περίπτωση αυτή τμήματα του αρχικού κειμένου αντικαθίστανται από σύμβολα του κρυπτογραφικού αλφαβήτου, σύμφωνα με κάποιους καθορισμένους κανόνες. Τα τμήματα αυτά μπορεί να αποτελούνται από ένα ή περισσότερα γράμματα [12]. Διακρίνονται οι παρακάτω περιπτώσεις: Μονοαλφαβητική μετάθεση. Στην περίπτωση αυτή κάθε γράμμα ή σύμβολο γενικότερα του αρχικού κειμένου αντικαθίσταται με ένα διαφορετικό γράμμα ή σύμβολο του κρυπτογραφικού αλφαβήτου. Το κρυπτογραφικό αλφάβητο για την παραπάνω περίπτωση μπορεί να προκύψει με πολλούς τρόπους. 16

Πολυαλφαβητική μετάθεση. Όπως και στη μονοαλφαβητική μετάθεση κάθε σύμβολο του αρχικού κειμένου αντικαθίσταται από ένα άλλο σύμβολο με τη διαφορά ότι χρησιμοποιούνται για την κρυπτογράφηση περισσότερα του ενός κρυπτογραφικά αλφάβητα. Παραδείγματα αποτελούν ο κώδικας του Vigenere και το κρυπτογραφικό αλφάβητο που χρησιμοποιείται από τις μηχανές κρυπτογράφησης που λειτουργούσαν με τροχούς, όπως η Enigma. Πολυγραφική ή πολυγραμματική μετάθεση. Πρόκειται για μια κρυπτογραφική μέθοδο στην οποία, σε αντίθεση με τη μονοαλφαβητική μετάθεση, δεν αντιστοιχίζεται κάθε γράμμα σε ένα διαφορετικό του κρυπτογραφικού αλφαβήτου, αλλά η αντιστοιχία αφορά ομάδες γραμμάτων ή συλλαβές. Συνήθως η κρυπτογράφηση γίνεται ανά δύο γράμματα (διγραφικός κώδικας), γεγονός που παρέχει κάποια πλεονεκτήματα, όπως ότι η κατανομή των πιθανοτήτων εμφάνισης των γραμμάτων είναι πολλαπλάσια αυτών από τα άλλα είδη μετάθεσης και ότι λόγω του μεγαλύτερου αριθμού δυνατών συνδυασμών γραμμάτων (για το λατινικό αλφάβητο 26 2 =676 δυνατοί συνδυασμοί ανά δυάδα) απαιτείται για το σπάσιμο του κώδικα πληθώρα κρυπτογραφημένων μηνυμάτων. Ομοφωνική μετάθεση. Αποτελεί μία πρώτη προσπάθεια να αυξηθεί η δυσκολία της ανάλυσης του κρυπτοκειμένου που βασίζεται στη συχνότητα εμφάνισης του κάθε συμβόλου. Σύμφωνα με την μέθοδο αυτή τα γράμματα του αρχικού μηνύματος αντιστοιχίζονται σε περισσότερα από ένα σύμβολα του κρυπτογραφικού αλφαβήτου. Συνήθως στα γράμματα με την μεγαλύτερη συχνότητα εμφάνισης αντιστοιχίζονται περισσότερα κρυπτογραφικά σύμβολα από ότι στα λιγότερο εμφανιζόμενα γράμματα. Με τον τρόπο αυτό η κατανομή των συχνοτήτων εμφάνισης εξομαλύνεται δυσκολεύοντας ακόμη περισσότερο τη διαδικασία αποκρυπτογράφησης. 2.2.1 Αλγόριθμος του Καίσαρα Χαρακτηριστικό παράδειγμα κρυπτοσυστήματος αντικατάστασης είναι ο αλγόριθμος του Καίσαρα. Σε αυτόν τον κρυπτογραφικό αλγόριθμο, το κλειδί αποτελεί μια μετάθεση των γραμμάτων της αλφαβήτου. Η κρυπτογράφηση περιλαμβάνει αντικατάσταση κάθε γράμματος με το αντίστοιχο γράμμα που προκύπτει από τη μετάθεση. Αντίστοιχα, η αποκρυπτογράφηση γίνεται με χρήση της ανάστροφης μετάθεσης. Στον κρυπτογραφικό αλγόριθμο του Καίσαρα (Caesar cipher) το μήνυμα (αρχικό κείμενο) πρέπει να είναι μια ακολουθία από γράμματα. Κάθε γράμμα αντιστοιχίζεται με έναν αριθμό. Το κλειδί k είναι ένας αριθμός από το 1 ως το 25. Ο ορισμός του αλγορίθμου εκφράζεται ως εξής: Let P = C = K = Z 26, x P, y C, k K Encryption: e k (x) = x + k mod 26 Decryption: d k (y) = y k mod 26 17