Εφαρμογή των Γενετικών Αλγορίθμων στο πρόβλημα RSA (RSAP)



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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Τυπικά θέματα εξετάσεων. ΠΡΟΣΟΧΗ: Οι ερωτήσεις που παρατίθενται ΔΕΝ καλύπτουν την πλήρη ύλη του μαθήματος και παρέχονται απλά ενδεικτικά

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

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

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

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

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

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

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

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

ΕΚΦΩΝΗΣΕΙΣ ΘΕΜΑ Α. α. Πριν εμφανιστεί η τεχνολογία ISDN οι υπηρεσίες φωνής, εικόνας και δεδομένων απαιτούσαν διαφορετικά δίκτυα.

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

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

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

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

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

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

Θεμελιώδη Θέματα Επιστήμης Υπολογιστών

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

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

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

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

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

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

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

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

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

UP class. & DES και AES

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

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

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

Κρυπτοσύστημα RSA (Rivest, Shamir, Adlemann, 1977) Υπολογιστική Θεωρία Αριθμών και Κρυπτογραφία

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

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

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

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

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

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

Οι Εξελικτικοί Αλγόριθμοι (ΕΑ) είναι καθολικοί στοχαστικοί αλγόριθμοι βελτιστοποίησης, εμπνευσμένοι από τις βασικές αρχές της φυσικής εξέλιξης.

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

Παράλληλος προγραμματισμός περιστροφικών αλγορίθμων εξωτερικών σημείων τύπου simplex ΠΛΟΣΚΑΣ ΝΙΚΟΛΑΟΣ

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

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

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

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

Μία μέθοδος προσομοίωσης ψηφιακών κυκλωμάτων Εξελικτικής Υπολογιστικής

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

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

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

Κρυπτογραφία Δημοσίου Κλειδιού

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

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

ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΜΗΧΑΝΙΚΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ. Πτυχιακή εργασία

ΜΑΘΗΜΑ: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ. 1 η ΘΕΜΑΤΙΚΗ ΕΝΟΤΗΤΑ: ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ

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

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

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

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

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

Transcript:

Εφαρμογή των Γενετικών Αλγορίθμων στο πρόβλημα RSA (RSAP) Η Διπλωματική Εργασία παρουσιάστηκε ενώπιον του Διδακτικού Προσωπικού του Πανεπιστημίου Αιγαίου Σε Μερική Εκπλήρωση των Απαιτήσεων για το Δίπλωμα του Μηχανικού Πληροφοριακών και Επικοινωνιακών Συστημάτων Χρυσολωράς Γεώργιος Στρίγκος Νομικός ΕΑΡΙΝΟ ΕΞΑΜΗΝΟ 2005

Η ΤΡΙΜΕΛΗΣ ΕΠΙΤΡΟΠΗ ΔΙΔΑΣΚΟΝΤΩΝ ΕΓΚΡΙΝΕΙ ΤΗ ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ ΤΩΝ ΧΡΥΣΟΛΩΡΑ ΓΕΩΡΓΙΟΥ, ΣΤΡΙΓΚΟΥ ΝΟΜΙΚΟΥ: Δρ. Σπύρος Κοκολάκης, Επιβλέπων Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων Δρ. Στέφανος Γκρίτζαλης, Μέλος Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων Δρ. Ασημάκης Λερός, Μέλος Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΕΑΡΙΝΟ ΕΞΑΜΗΝΟ 2005 ii

ΠΕΡΙΛΗΨΗ Τα τελευταία χρόνια έχει παρατηρηθεί μια αύξηση στη χρήση εναλλακτικών μεθόδων για την επίλυση NP-Complete προβλημάτων. Ενδιαφέρον στοιχείο αποτελεί το γεγονός ότι ορισμένες από αυτές τις μεθόδους, προσεγγίζουν το πρόβλημα από μια αρκετά διαφορετική φιλοσοφία από τις μέχρι τώρα μεθόδους, τη μη ντετερμινιστική προσέγγιση. Οι ντετερμινιστικές μέθοδοι, μας εξασφαλίζουν τη λύση σε ένα NP-Complete πρόβλημα δεδομένου μιας υπολογιστικής ισχύος και ενός χρονικού διαστήματος. Απ την άλλη, τεχνολογίες όπως οι γενετικοί αλγόριθμοι που εξετάζουμε στην παρούσα μελέτη, δεν εξασφαλίζουν με βεβαιότητα τη λύση, αντίθετα όμως μπορούν να βρουν τη λύση με μία πιθανότητα. Το πρόβλημα που εξετάζουμε στην εργασία αυτή προέρχεται από τη θεωρία αριθμών και έχει σήμερα μεγάλη εφαρμογή στην κρυπτογραφία. Πρόκειται για το Πρόβλημα RSA (RSAP), το οποίο είναι μια ειδική περίπτωση του γενικότερου προβλήματος παραγοντοποίησης σε πρώτους. Το ευρέως χρησιμοποιούμενο ασύμμετρο κρυπτοσύστημα RSA είναι μια περίπτωση στην οποία το πρόβλημα του RSA συμβάλλει στην ασφάλεια των ιδιωτικών κλειδιών. Ο στόχος της εργασίας αυτής, είναι η αξιολόγηση των δυνατοτήτων των γενετικών αλγόριθμων στην επίλυση του προβλήματος RSA και η εκτίμηση της πιθανότητας ανάκτησης των παραγόντων. Για την προσέγγιση αυτή, χρησιμοποιήθηκαν διάφορα είδη παραμέτρων και γενετικών διαδικασιών και προέκυψαν διάφορες υλοποιήσεις οι οποίες μετρήθηκαν, συγκρίθηκαν μεταξύ τους και αναλύθηκαν. Έπειτα ακολούθησε η αξιολόγηση της προσέγγισης μας, έτσι ώστε να ελέγξουμε ως ποιο βαθμό μπορέσαμε να απαντήσουμε ορθά στο πρόβλημα και αν οι διαδικασίες που χρησιμοποιήσαμε βοηθήσανε τελικά στο να βρεθεί πιο γρήγορα και με μεγαλύτερη πιθανότητα από την τυχαία επιλογή. Για αυτό το σκοπό, συγκρίναμε τη μέθοδό μας με αυτή της τυχαίας επιλογής μέσα από πληθυσμό. Ανεξάρτητα με τα αποτελέσματα, είναι επιτακτική η ανάγκη για περαιτέρω εκτεταμένη μελέτη στα θέματα που αφορούν τις παραμέτρους και τις διαδικασίες που χρησιμοποιούν οι γενετικοί αλγόριθμοι για το συγκεκριμένο πρόβλημα, ώστε με την κάθε μελέτη, να προκύπτουν ακόμα πιο βέλτιστες μέθοδοι για την επίλυση του απαιτητικού αυτού προβλήματος του RSA. Χρυσολωράς Γεώργιος Στρίγκος Νομικός Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ iii

ABSTRACT One of the most challenging tasks for researchers is NP-Complete problems. In addition there is an increasing interest in using alternative approaches for solving this kind of problems. Some of these approaches derive from the Artificial Intelligence field and especially from evolutionary programming, machine learning, and neural networks. The major difference to other methods is the non-deterministic approach. A deterministic approach, given a certain computational power and a certain period of time, ensure that finally, they will find the solution. In contrast, non deterministic methods such as genetic algorithms which will be examined in this study, cannot guarantee that they will find the solution, instead they can provide us the solution with a statistic probability. The problem we examine in this study is coming from number theory and has a wide apply in the public key cryptography community. It is the RSA Problem (RSAP) which relies on integer factorization problem. The intractability of the RSAP forms the basis for the security of the RSA public-key encryption scheme and the RSA signature scheme. The purpose of this study is to evaluate the potentiality of the genetic algorithms to provide us solution for the problem and measure to a certain point, the statistic probability on retrieving the factors. In the scope of our approach, we used various kinds of parameters and genetic operators so a variety of implementations came up. We measured the results using a range of small key lengths for the number to be factored, analyzed them and compared the various results using some performance measures such as the probability of finding the solution in regard to the key length, the computational time to find each solution and the generation that each solution was found. In order to evaluate our approach and test whether the genetic operators exploited in a positive way the information contained in the chromosomes, we compared our method with the random selection method. Apart from positive or negative results, in any case there must be a lot of further work, in order to evaluate more genetic operators and test a wide range of parameters in order to come up with optimized methods each time. Of course there is a fertile field in hybrid methods where a genetic algorithm is amenable to and additional implementations (parallel processing for instance), in order to get faster by the time and tackle this particularly intractable problem. Chrysoloras George Strigkos Nomikos Department of Information and Communication Systems Engineering UNIVERSITY OF THE AEGEAN iv

ΕΥΧΑΡΙΣΤΙΕΣ ΑΦΙΕΡΩΣΕΙΣ Ευχαριστούμε τον επιβλέπον καθηγητή μας, Σπύρο Κοκολάκη, για την υπομονή και καθοδήγηση που έδειξε κατά τη διάρκεια εκπόνησης της εργασίας. Στρίγκος Νομικός Ευχαριστώ την οικογένειά μου, για το σταθερό και παραγωγικό περιβάλλον που κατάφερε να δημιουργήσει. Ευχαριστώ ιδιαίτερα το αδερφό μου Γιάννη, που με ενέπνευσε και τον ξάδερφό μου Νομικό Αντωνιάδη, για την συμπαράσταση και την παροχή βιβλιογραφίας. v

ΠΙΝΑΚΑΣ ΠΕΡΙΕΧΟΜΕΝΩΝ ΠΕΡΙΛΗΨΗ...iii ABSTRACT...iv ΕΥΧΑΡΙΣΤΙΕΣ ΑΦΙΕΡΩΣΕΙΣ...v ΠΙΝΑΚΑΣ ΠΕΡΙΕΧΟΜΕΝΩΝ...vi ΚΑΤΑΛΟΓΟΣ ΠΙΝΑΚΩΝ...ix ΚΑΤΑΛΟΓΟΣ ΣΧΗΜΑΤΩΝ...x ΚΕΦΑΛΑΙΟ 1 - ΕΙΣΑΓΩΓΗ...13 1.1 Η Κρυπτογραφία...13 1.1.1 Βασική Ορολογία...13 1.1.2 Η Ασφάλεια...16 1.1.3 Εξελίξεις και Αναγκαιότητες...16 1.2 Αντικείμενο, σκοπός και στόχοι...18 1.3 Συμβολή εργασίας...18 1.4 Περιορισμοί...19 ΚΕΦΑΛΑΙΟ 2 - ΚΡΥΠΤΟΓΡΑΦΙΑ και RSA...20 2.1 Σύντομη Αναδρομή...20 2.1.1 Μοδιακή Αριθμητική...20 2.1.2 Το πρόβλημα της διανομής Κλειδιών...24 2.2 Η γέννηση της Κρυπτογραφίας Δημόσιου Κλειδιού...25 2.2.1 Η «γέννηση» του RSA...26 2.2.2 Επίθεση Κρυπτανάλυσης...28 2.3 Το «Πρόβλημα του RSA»...29 2.4 RSA Χαρακτηριστικά Δυφία...30 2.5 Κρυπτογράφημα RSA Ένα απλό παράδειγμα...30 2.6 RSA και Ψηφιακές Υπογραφές...32 ΚΕΦΑΛΑΙΟ 3 - Πολυπλοκότητα και Υπολογιστική...34 3.1 Ανάλυση Αλγορίθμων...34 3.1.1 Μοντέλα Υπολογισμού...34 3.1.2 Μοντέλο Μηχανής Τυχαίας Προσπέλασης (RAM)...35 3.2 Θεωρία Υπολογισμού & Πολυπλοκότητας...36 3.2.1 Προβλήματα αποφάσεως...36 3.3 Υπολογιστική Ικανότητα Επεξεργαστική Ισχύς (FLOPS MIPS )...40 ΚΕΦΑΛΑΙΟ 4 - Γενετικοί Αλγόριθμοι...42 4.1 Εισαγωγή Τι είναι οι Γενετικοί Αλγόριθμοι...42 4.1.1 Η θεωρία της Εξέλιξης των Ειδών...42 vi

4.1.2 Η γένεση των Γενετικών Αλγορίθμων...43 4.2 Η δομή των Γενετικών Αλγορίθμων...44 4.3 Γιατί χρησιμοποιούνται οι Γενετικοί Αλγόριθμοι...45 4.3.1 Πλεονεκτήματα των Γενετικών Αλγορίθμων...45 4.3.2 Σε τι διαφέρουν οι Γενετικοί Αλγόριθμοι από τις κλασσικές μεθόδους...46 4.3.3 Μειονεκτήματα των Γενετικών Αλγορίθμων...48 4.4 Περιγραφή και Ανάλυση ενός Γενετικού Αλγόριθμου...48 4.4.1 Η Κωδικοποίηση...49 4.4.2 Η αντικειμενική συνάρτηση...50 4.4.3 Γενετικές διαδικασίες και τελεστές...50 4.4.4 Διάφορα θέματα υλοποίησης...56 ΚΕΦΑΛΑΙΟ 5 - Εφαρμογή των Γενετικών Αλγορίθμων στο πρόβλημα του RSA...59 5.1 Εισαγωγή Μεθοδολογία...59 5.2 Η δομή του Γενετικού Αλγόριθμου...59 5.2.1 Ορισμός του προβλήματος...59 5.2.2 Κωδικοποίηση Αναπαράσταση πιθανών λύσεων...60 5.2.3 Αρχικός Πληθυσμός...60 5.2.4 Αντικειμενική Συνάρτηση...60 5.2.5 Γενετικοί Τελεστές...61 ΚΕΦΑΛΑΙΟ 6 - Μετρήσεις Αποτελέσματα...63 6.1 Θέματα Υλοποίησης...63 6.1.1 Επιλογή πρώτων αριθμών για τη δημιουργία του N...63 6.1.2 Επιλογή παραμέτρων...63 6.2 Μετρήσεις...64 6.2.1 Πείραμα I...64 6.2.2 Πείραμα II...66 6.2.3 Πείραμα III...67 6.2.4 Πείραμα IV...69 6.2.5 Πείραμα V...71 6.2.6 Πείραμα VI...72 6.2.7 Πείραμα VII...74 6.3 Αποτελέσματα...76 6.3.1 Αποτελέσματα Πειράματος I...76 6.3.2 Αποτελέσματα Πειράματος II...79 6.3.3 Αποτελέσματα Πειράματος III...82 6.3.4 Αποτελέσματα Πειράματος IV...85 6.3.5 Αποτελέσματα Πειράματος V...88 vii

6.3.6 Αποτελέσματα Πειράματος VI...91 6.3.7 Αποτελέσματα Πειράματος VII...94 6.3.8 Συγκριτικά Αποτελέσματα...97 6.4 Σύγκριση με τον αλγόριθμο τυχαίας επιλογής...99 6.4.1 Μετρήσεις Αποτελέσματα τυχαίας επιλογής...99 6.4.2 Σύγκριση τυχαίας επιλογής με τον γενετικό αλγόριθμο...102 ΚΕΦΑΛΑΙΟ 7 - Σύνοψη Συμπεράσματα...105 7.1 Σύνοψη...105 7.2 Συμπεράσματα...105 7.3 Περαιτέρω Έρευνα...106 ΒΙΒΛΙΟΓΡΑΦΙΑ...108 ΣΥΝΤΟΜΑ ΒΙΟΓΡΑΦΙΚΑ ΣΗΜΕΙΩΜΑΤΑ...110 viii

ΚΑΤΑΛΟΓΟΣ ΠΙΝΑΚΩΝ Πίνακας 2.1: Τιμές της συνάρτησης 3 Χ υπολογισμένες στην κανονική και στη μοδιακή αριθμητική. Η συνάρτηση στη μοδιακή είναι εντελώς ακανόνιστη...22 Πίνακας 2.2: Η γενική μονοσήμαντη συνάρτηση είναι Υ*(moduloΡ). Οι εμπλεκόμενοι επιλέγοντας τιμές για τα Υ και Ρ, συμφωνούν στη μονοσήμαντη συνάρτηση 7*(modulo11)...23 Πίνακας 3.1: Ενδεικτικές τιμές MIPS ανάλογα με τον επεξεργαστή...41 Πίνακας 4.1: Αρχικοποίηση πληθυσμού και αξιολόγηση...51 Πίνακας 4.2: Διαδικασία επιλογής από πληθυσμό...53 Πίνακας 4.3: Διαδικασία διασταύρωσης...55 Πίνακας 4.4: Διαδικασία μετάλλαξης...56 Πίνακας 6.1: Οι μετρήσεις του πειράματος Ι. Η στήλη «Επ.» αντιστοιχεί στις επαναλήψεις του αλγόριθμου. Οι υπόλοιπες στήλες αντιστοιχούν στον αριθμό επιτυχίας του αλγόριθμου με κατώφλι την αναγραφόμενη κάθε φορά γενιά...65 Πίνακας 6.2: Συγκεντρωτικές μετρήσεις για το Πείραμα Ι...65 Πίνακας 6.3: Οι μετρήσεις του πειράματος ΙΙ...67 Πίνακας 6.4: Συγκεντρωτικές μετρήσεις για το Πείραμα ΙΙ...67 Πίνακας 6.5: Οι μετρήσεις του πειράματος ΙΙΙ...69 Πίνακας 6.6: Συγκεντρωτικές μετρήσεις για το Πείραμα ΙΙΙ...69 Πίνακας 6.7: Οι μετρήσεις του πειράματος ΙV...70 Πίνακας 6.8: Συγκεντρωτικές μετρήσεις για το Πείραμα ΙV...71 Πίνακας 6.9: Οι μετρήσεις του πειράματος V...72 Πίνακας 6.10: Συγκεντρωτικές μετρήσεις για το Πείραμα V...72 Πίνακας 6.11: Οι μετρήσεις του πειράματος VΙ...74 Πίνακας 6.12: Συγκεντρωτικές μετρήσεις για το Πείραμα VΙ...74 Πίνακας 6.13: Οι μετρήσεις του πειράματος VIΙ...75 Πίνακας 6.14: Συγκεντρωτικές μετρήσεις για το Πείραμα VIΙ...76 Πίνακας 6.15: Συγκεντρωτικές μετρήσεις για την τυχαία επιλογή...100 ix

ΚΑΤΑΛΟΓΟΣ ΣΧΗΜΑΤΩΝ Σχήμα 2.1: Η μοδιακή αριθμητική εκτελείται σε ένα πεπερασμένο σύνολο αριθμών, που μπορούν να νοηθούν ως αριθμοί σε μια επιφάνεια ρολογιού...21 Σχήμα 2.2: Το σχήμα αποστολής κρυπτογραφημένου μηνύματος με χρήση του Αλγόριθμου RSA....32 Σχήμα 3.1: Η σχέση των κλάσεων P, NP και NP Complete...40 Σχήμα 4.1: Το πρόβλημα των πέντε δυαδικών διακοπτών που αναπαριστά την ιδέα της κωδικοποίησης και έναν τρόπο αξιολόγησης. Στους Γενετικούς Αλγόριθμους αρκούν αυτά τα 2 στοιχεία: Δεν χρειάζεται να γνωρίζουν το πώς δουλεύει το μαύρο κουτί...47 Σχήμα 4.2: Η Αλγοριθμική προσέγγιση ενός Γενετικού Αλγόριθμου (όπου με t συμβολίζεται η επαναληπτική εκτέλεση και με P(t) ο πληθυσμός.)...49 Σχήμα 4.3: Σχηματική αναπαράσταση εξαναγκασμένης ρουλέτας...52 Σχήμα 4.4: Σχηματική αναπαράσταση διασταύρωσης...53 Σχήμα 4.5: Σχηματική αναπαράσταση διασταύρωσης n-σημείων...54 Σχήμα 4.6: Σχηματική αναπαράσταση της ομοιόμορφης διασταύρωσης...54 Σχήμα 6.1: Αποτελέσματα Πειράματος I. Πιθανότητα εύρεσης παραγόντων πριν τη γενιά 100Κ....76 Σχήμα 6.2: Αποτελέσματα Πειράματος I. Πιθανότητα εύρεσης παραγόντων πριν τη γενιά 200Κ....77 Σχήμα 6.3: Αποτελέσματα Πειράματος I. Πιθανότητα εύρεσης παραγόντων πριν τη γενιά 300Κ....77 Σχήμα 6.4: Αποτελέσματα Πειράματος I. Πιθανότητα εύρεσης παραγόντων σε σχέση με το κατώφλι της γενιάς...78 Σχήμα 6.5: Αποτελέσματα Πειράματος I. Μέσος χρόνος εύρεσης παραγόντων...78 Σχήμα 6.6: Αποτελέσματα Πειράματος I. Μέσος όρος γενιάς εύρεσης παραγόντων...79 Σχήμα 6.7: Αποτελέσματα Πειράματος II. Πιθανότητα εύρεσης παραγόντων πριν τη γενιά 100Κ....79 Σχήμα 6.8: Αποτελέσματα Πειράματος ΙI. Πιθανότητα εύρεσης παραγόντων πριν τη γενιά 200Κ....80 Σχήμα 6.9: Αποτελέσματα Πειράματος ΙI. Πιθανότητα εύρεσης παραγόντων πριν τη γενιά 300Κ....80 Σχήμα 6.10: Αποτελέσματα Πειράματος ΙI. Πιθανότητα εύρεσης παραγόντων σε σχέση με το κατώφλι της γενιάς...81 Σχήμα 6.11: Αποτελέσματα Πειράματος ΙI. Μέσος χρόνος εύρεσης παραγόντων...81 Σχήμα 6.12: Αποτελέσματα Πειράματος ΙI. Μέσος όρος γενιάς εύρεσης παραγόντων...82 x

Σχήμα 6.13: Αποτελέσματα Πειράματος ΙΙI. Πιθανότητα εύρεσης παραγόντων πριν τη γενιά 100Κ...82 Σχήμα 6.14: Αποτελέσματα Πειράματος ΙΙI. Πιθανότητα εύρεσης παραγόντων πριν τη γενιά 200Κ...83 Σχήμα 6.15: Αποτελέσματα Πειράματος ΙΙI. Πιθανότητα εύρεσης παραγόντων πριν τη γενιά 300Κ...83 Σχήμα 6.16: Αποτελέσματα Πειράματος ΙΙI. Πιθανότητα εύρεσης παραγόντων σε σχέση με το κατώφλι της γενιάς...84 Σχήμα 6.17: Αποτελέσματα Πειράματος ΙΙI. Μέσος χρόνος εύρεσης παραγόντων...84 Σχήμα 6.18: Αποτελέσματα Πειράματος ΙΙI. Μέσος όρος γενιάς εύρεσης παραγόντων...85 Σχήμα 6.19: Αποτελέσματα Πειράματος IV. Πιθανότητα εύρεσης παραγόντων πριν τη γενιά 100Κ...85 Σχήμα 6.20: Αποτελέσματα Πειράματος IV. Πιθανότητα εύρεσης παραγόντων πριν τη γενιά 200Κ...86 Σχήμα 6.21: Αποτελέσματα Πειράματος IV. Πιθανότητα εύρεσης παραγόντων πριν τη γενιά 300Κ...86 Σχήμα 6.22: Αποτελέσματα Πειράματος IV. Πιθανότητα εύρεσης παραγόντων σε σχέση με το κατώφλι της γενιάς...87 Σχήμα 6.23: Αποτελέσματα Πειράματος IV. Μέσος χρόνος εύρεσης παραγόντων...87 Σχήμα 6.24: Αποτελέσματα Πειράματος IV. Μέσος όρος γενιάς εύρεσης παραγόντων...88 Σχήμα 6.25: Αποτελέσματα Πειράματος V. Πιθανότητα εύρεσης παραγόντων πριν τη γενιά 100Κ...88 Σχήμα 6.26: Αποτελέσματα Πειράματος V. Πιθανότητα εύρεσης παραγόντων πριν τη γενιά 200Κ...89 Σχήμα 6.27: Αποτελέσματα Πειράματος V. Πιθανότητα εύρεσης παραγόντων πριν τη γενιά 300Κ...89 Σχήμα 6.28: Αποτελέσματα Πειράματος V. Πιθανότητα εύρεσης παραγόντων σε σχέση με το κατώφλι της γενιάς...90 Σχήμα 6.29: Αποτελέσματα Πειράματος V. Μέσος χρόνος εύρεσης παραγόντων...90 Σχήμα 6.30: Αποτελέσματα Πειράματος V. Μέσος όρος γενιάς εύρεσης παραγόντων...91 Σχήμα 6.31: Αποτελέσματα Πειράματος VI. Πιθανότητα εύρεσης παραγόντων πριν τη γενιά 100Κ...91 Σχήμα 6.32: Αποτελέσματα Πειράματος VI. Πιθανότητα εύρεσης παραγόντων πριν τη γενιά 200Κ...92 Σχήμα 6.33: Αποτελέσματα Πειράματος VI. Πιθανότητα εύρεσης παραγόντων πριν τη γενιά 300Κ...92 xi

Σχήμα 6.34: Αποτελέσματα Πειράματος VI. Πιθανότητα εύρεσης παραγόντων σε σχέση με το κατώφλι της γενιάς...93 Σχήμα 6.35: Αποτελέσματα Πειράματος VI. Μέσος χρόνος εύρεσης παραγόντων...93 Σχήμα 6.36: Αποτελέσματα Πειράματος VI. Μέσος όρος γενιάς εύρεσης παραγόντων...94 Σχήμα 6.37: Αποτελέσματα Πειράματος VII. Πιθανότητα εύρεσης παραγόντων πριν τη γενιά 100Κ...94 Σχήμα 6.38: Αποτελέσματα Πειράματος VII. Πιθανότητα εύρεσης παραγόντων πριν τη γενιά 200Κ...95 Σχήμα 6.39: Αποτελέσματα Πειράματος VII. Πιθανότητα εύρεσης παραγόντων πριν τη γενιά 300Κ...95 Σχήμα 6.40: Αποτελέσματα Πειράματος VΙI. Πιθανότητα εύρεσης παραγόντων σε σχέση με το κατώφλι της γενιάς...96 Σχήμα 6.41: Αποτελέσματα Πειράματος VII. Μέσος χρόνος εύρεσης παραγόντων...96 Σχήμα 6.42: Αποτελέσματα Πειράματος VII. Μέσος όρος γενιάς εύρεσης παραγόντων...97 Σχήμα 6.43: Συγκριτικά αποτελέσματα. Πιθανότητα εύρεσης παραγόντων...97 Σχήμα 6.44: Συγκριτικά αποτελέσματα. Μέσος χρόνος εύρεσης παραγόντων...98 Σχήμα 6.45: Συγκριτικά αποτελέσματα. Μέσος όρος γενιάς εύρεσης παραγόντων...99 Σχήμα 6.46: Αποτελέσματα τυχαίας επιλογής. Πιθανότητα εύρεσης παραγόντων πριν τη γενιά 100Κ...100 Σχήμα 6.47: Αποτελέσματα τυχαίας επιλογής. Πιθανότητα εύρεσης παραγόντων πριν τη γενιά 200Κ...100 Σχήμα 6.48: Αποτελέσματα τυχαίας επιλογής. Πιθανότητα εύρεσης παραγόντων πριν τη γενιά 300Κ...101 Σχήμα 6.49: Αποτελέσματα τυχαίας επιλογής. Πιθανότητα εύρεσης παραγόντων σε σχέση με το κατώφλι της γενιάς...101 Σχήμα 6.50: Αποτελέσματα τυχαίας επιλογής. Μέσος χρόνος εύρεσης παραγόντων...102 Σχήμα 6.51: Αποτελέσματα τυχαίας επιλογής. Μέσος όρος γενιάς εύρεσης παραγόντων...102 Σχήμα 6.52: Συγκριτικά αποτελέσματα τυχαίας επιλογής πειράματος ΙΙ. Πιθανότητα εύρεσης παραγόντων...103 Σχήμα 6.53: Συγκριτικά αποτελέσματα τυχαίας επιλογής πειράματος ΙΙ. Μέσος χρόνος εύρεσης παραγόντων...103 Σχήμα 6.54: Συγκριτικά αποτελέσματα τυχαίας επιλογής πειράματος ΙΙ. Μέσος όρος γενιάς εύρεσης παραγόντων...104 xii

ΚΕΦΑΛΑΙΟ 1 - ΕΙΣΑΓΩΓΗ 1.1 Η Κρυπτογραφία Η Κρυπτογραφία (από τις ελληνικές λέξεις κρυπτός και γράφω) είναι, παραδοσιακά, η μελέτη των μέσων για την μετατροπή πληροφορίας από την κανονική της, σαφή μορφή σε μια μη κατανοητή μορφή, κάνοντας τη μη αναγνώσιμη χωρίς τη χρήση μυστικής γνώσης η τέχνη της κρυπτογράφησης. Στο παρελθόν, η κρυπτογραφία βόηθησε ώστε να εξασφαλίζεται μυστικότητα σε κρίσιμες επικοινωνίες, όπως αυτές των κατασκόπων, στρατιωτικών αρχηγείων και διπλωματών. Τις τελευταίες δεκαετίες, το πεδίο της κρυπτογραφίας έχει επεκταθεί προς δύο κατευθύνσεις. Κατά πρώτον, προάγει μηχανισμούς για την επαρκή διαφύλαξη μυστικών πληροφοριών για παράδειγμα τεχνικές όπως ψηφιακές υπογραφές και ηλεκτρονικό χρήμα. Κατά δεύτερον, η κρυπτογραφία έχει πάρει εκτεταμένη χρήση από απλούς πολίτες οι οποίοι δεν έχουν ιδιαίτερες ανάγκες για μυστικότητα, παρόλα αυτά είναι τυπικά ενσωματωμένη στην υποδομή της Πληροφορικής και των Τηλεπικοινωνιών, με αφαιρετικό τρόπο ώστε να αποκρύπτονται οι λεπτομέρειες από τους χρήστες και χρησιμοποιείται για τη διαφύλαξη της ιδιωτικότητάς τους. Η μελέτη του πως να καταστρατηγήσεις τη χρήση κρυπτογραφίας καλείται Κρυπτανάλυση (cryptanalysis) ή Σπάσιμο Κωδικού (code breaking). Η Κρυπτογραφία και η Κρυπτανάλυση είναι μερικές φορές ενσωματωμένες υπό τον όρο Κρυπτολογία (cryptology). [1] 1.1.1 Βασική Ορολογία Η Κρυπτογραφία είναι ένα διεπιστημονικό θέμα, σχετιζόμενο με διάφορα πεδία. Πριν από την εποχή των Υπολογιστών, ήταν στενά συνδεδεμένο με τη Γλωσσολογία. Σήμερα αυτό έχει αλλάξει και η Κρυπτογραφία κάνει εκτενή χρήση των μαθηματικών με ιδιαίτερη έμφαση σε κάποιους κλάδους. Σ αυτούς περιλαμβάνονται: η Θεωρία Αριθμών, η Θεωρία Πληροφορίας, η Πολυπλοκότητα και η Στατιστική. Είναι επίσης ένας κλάδος της Μηχανικής, αλλά όχι τόσο συνηθισμένος καθώς έχει να κάνει με κακόβουλη συμπεριφορά. Σχετικά πεδία είναι η Στεγανογραφία η μελέτη για το πως να αποκρύβεται η ύπαρξη ενός μηνύματος και όχι απαραίτητα τα περιεχόμενα του και η Ανάλυση Κυκλοφορίας, που σημαίνει ανάλυση αποτυπωμάτων επικοινωνίας προκειμένου να εκμαιευτούν μυστικές πληροφορίες. [1] Κρυπτογράφηση Αποκρυπτογράφηση Η αρχική πληροφορία η οποία πρόκειται να προστατευθεί με χρήση Κρυπτογραφίας λέγεται Μήνυμα (plaintext). Κρυπτογράφηση είναι η διαδικασία της μετατροπής του Μηνύματος σε μια μη αναγνώσιμη μορφή και το αποτέλεσμα καλείται Κωδικοκείμενο (ciphertext) ή Κρυπτογράφημα (cryptogram). Αποκρυπτογράφηση είναι η αντίστροφη διαδικασία, με την οποία ανακτάται το Μήνύμα από το Κωδικοκείμενο. Κωδικοποίηση και Αποκωδικοποίηση είναι δυο εναλλακτικοί όροι, για την Κρυπτογράφηση και την Αποκρυπτογράφηση αντίστοιχα. Κωδικός (cipher) είναι ένας αλγόριθμος για Κρυπτογράφηση και Αποκρυπτογράφηση. Η ακριβής διαδικασία των Κωδικών ελέγχεται κανονικά από ένα κλειδί μια ποσότητα μυστικής πληροφορίας η οποία καθορίζει το πως παράγεται το Κωδικοκείμενο. Τα Πρωτόκολλα προδιαγράφουν τις λεπτομέρειες για το πως οι Κωδικοί (και άλλα κρυπτογραφικά στοιχεία) πρόκειται να χρησιμοποιηθούν ώστε να επιτευχθούν συγκεκριμένοι στόχοι. Ένα διατεταγμένο σύνολο Πρωτοκόλλων, Κωδικών, Διαχείρισης Κλειδιού και Αποφάσεις Χρήστη, υλοποιημένα όλα μαζί σαν ένα Σύστημα 13

απαρτίζουν ένα Κρυπτοσύστημα. Αυτό είναι και το Σύστημα με το οποίο αλληλεπιδρά ένας τελικός χρήστης. (π.χ. PGP ή GPG) [1]. Κρυπτανάλυση Ένας Κρυπταναλυτής μπορεί να εμφανίζεται ως ο φυσικός αντίπαλος ενός Κρυπτογράφου και αυτό είναι αλήθεια σε ένα βαθμό μπορεί κανείς να το διαπιστώσει σε όλο το μήκος της Ιστορίας της Κρυπτογραφίας. Εκτός αυτού προτιμότερο να αναλύσει κανείς τους δύο ρόλους αλληλοσυμπληρούμενους επειδή μια πλήρης κατανόηση της Κρυπτανάλυσης είναι απαραίτητη για τη δημιουργία ασφαλούς Κρυπτογραφίας [1]. Υπάρχει μια μεγάλη ποικιλία Επιθέσεων Κρυπτανάλυσης και θα ήταν χρήσιμο να τις ξεχωρίσουμε. Μια διάκριση συνίσταται στο τι μπορεί να γνωρίζει και να πράξει ένας επιτιθέμενος προκειμένου να εκμαιεύσει μυστικές Πληροφορίες. Δηλαδή: ο επιτιθέμενος έχει πρόσβαση μόνο στο Κωδικοκείμενο (cyphertext); ο επιτιθέμενος γνωρίζει ή μπορεί να μαντέψει άλλα σχετικά Μηνύματα (μη κρυπτογραφημένα); μπορεί ο επιτιθέμενος να καθορίσει Μηνύματα προς κρυπτογράφηση; Οι απαντήσεις στα παραπάνω ερώτημα καθορίζουν τους αντίστοιχους τύπους επιθέσεων. Ενώ όλα αυτά τα σενάρια αντιμετωπίζουν τον Κωδικό σαν ένα κλειστό μαύρο κουτί, άλλες επιθέσεις βασίζονται στην υλοποίηση των Κωδικών. Αν ένας επιτιθέμενος έχει πρόσβαση, για παράδειγμα, στο χρονισμό ή στην κατανάλωση ενέργειας, μπορεί ίσως να σπάσει ένα Κωδικό ανθεκτικό υπό άλλες συνθήκες, στην Κρυπτανάλυση. Αν ένα Κρυπτοσύστημα χρησιμοποιεί ένα κλειδί ή ένα Συνθηματικό, είναι ευάλωτο σε εξαντλητική αναζήτηση αυτό είναι συνήθως το πιο αδύναμο σημείο σε τέτοια Συστήματα. Η Γραμμική και η Διαφορική Ανάλυση είναι γενικές μέθοδοι για την Συμμετρική Κρυπτογραφία. Όταν η Κρυπτογραφία βασίζεται σε δύσκολα μαθηματικά προβλήματα, όπως συνήθως συμβαίνει στην Ασύμμετρη Κρυπτογραφία, τότε Αλγόριθμοι για εργασίες όπως η παραγοντοποίηση, καθίστανται ισχυρά εργαλεία για την Κρυπτανάλυση [1]. Συμμετρική Κρυπτογραφία Η Συμμετρική Κρυπτογραφία προηγείται ιστορικά της Ασύμμετρης και είναι ευκολότερη αλλά και πιο αποδοτική στην κρυπτογράφηση μεγάλων μηνυμάτων. Τα Κρυπτοσυστήματα Συμμετρικού Κλειδιού χρησιμοποιούν το ίδιο κλειδί για Κρυπτογράφηση και Αποκρυπτογράφηση, ή πιο συγκεκριμένα, το Κλειδί που χρησιμοποιείται για Αποκρυπτογράφηση είναι «εύκολο» να υπολογιστεί από το Κλειδί που χρησιμοποιείται για Κρυπτογράφηση. Άλλοι όροι που χρησιμοποιούνται είναι: Κρυπτογραφία Ενός Κλειδιού ή Μοναδικού Κλειδιού. Οι Συμμετρικοί Κρυπταλγόριθμοι μπορούν χοντρικά να κατηγοριοποιηθούν σε Αλγόριθμους Δέσμης και σε Αλγόριθμους Ροής. Οι Αλγόριθμοι Ροής Κρυπτογραφούν ένα ψηφίο (bit) τη φορά, σε αντίθεση με τους σε Αλγόριθμους Δέσμης που ενεργούν πάνω σε ομάδες ψηφίων (blocks) συγκεκριμένου μεγέθους. Οι DES, IDEA και AES (Κρυπταλγόριθμοι Δέσμής) και ο RC4 (Κρυπταλγόριθμος Ροής) είναι από του πιο γνωστούς Συμμετρικούς Κρυπταλγόριθμους. Στη συμμετρική κρυπτογραφία εντάσσονται ουσιαστικά όλες οι παραδοσιακές μέθοδοι Κρυπτογράφησης ακόμα και οι τεχνικές της Κλασικής Κρυπτογραφίας. Από τις πρώτες τεχνικές της αλλαγής της σειράς ή της αντικατάστασης των γραμμάτων μέχρι τη μηχανή «Αίνιγμα» και τον DES κάνουμε ουσιαστικά χρήση Συμμετρικών Κρυπτοσυστημάτων. [2] 14

Ασύμμετρη Κρυπτογραφία Το Συμμετρικό Κρυπτοσύστημα έχει ένα σοβαρό μειονέκτημα δύο άνθρωποι οι οποίοι επιθυμούν να ανταλλάξουν εμπιστευτικά μηνύματα πρέπει να συμφωνήσουν σε ένα μυστικό Κλειδί. Οι δύο πλευρές πρέπει να συνεννοηθούν με ασφαλή τρόπο, και όχι με τα μέσα με τα οποία θα επικοινωνούσαν κανονικά. Αυτό συνήθως είναι άβολο, επειδή τις περισσότερες φορές, οι δύο επικοινωνούντες είναι φυσικώς απομακρυσμένοι. Η ασφαλής Διανομή Κλειδιών αποτελούσε πάντα ένα βασικό εμπόδιο για τα Συμμετρικά Κρυπτοσυστήματα. Τα Ασύμμετρα Κρυπτοσυστήματα που είναι μια σχετικά πρόσφατη εφεύρεση, αναπτύχθηκαν με σκοπό την επίλυση αυτού το προβλήματος. Στην Ασύμμετρη Κρυπτογράφηση ή Κρυπτογραφία Δημοσίου Κλειδιού χρησιμοποιούνται δύο Κλειδιά, ένα Δημόσιο και ένα Ιδιωτικό. Το Δημόσιο Κλειδί για χρησιμοποιείται για Κρυπτογράφηση και το Ιδιωτικό για Αποκρυπτογράφηση. Για να είναι αποτελεσματικό ένα τέτοιο Κρυπτοσύστημα, επιβάλλεται να είναι «δύσκολη» η παραγωγή του Ιδιωτικού Κλειδιού από το Δημόσιο. Αυτό σημαίνει ότι μπορεί κάποιος να στέλνει ελεύθερα το Δημόσιο Κλειδί του μέσω ενός μη ασφαλούς καναλιού και να είναι σίγουρος ότι μόνο ο ίδιος θα μπορεί να αποκρυπτογραφήσει μηνύματα που θα κρυπτογραφηθούν με αυτό. Οι Αλγόριθμοι Δημοσίου Κλειδιού συνήθως βασίζονται σε δύσκολα μαθηματικά προβλήματα. Ο RSA, για παράδειγμα, στηρίζεται στην (υπό προϋποθέσεις) δυσκολία της παραγοντοποίησης μεγάλων αριθμών σε Πρώτους Παράγοντες. Για λόγους αποτελεσματικότητας, στην πράξη χρησιμοποιούνται υβριδικά Κρυπτοσυστήματα. Δηλαδή τα συμμετρικά Κλειδιά ανταλλάσσονται έχοντας κρυπτογραφηθεί με τα Δημόσια Κλειδιά των εμπλεκομένων και το υπόλοιπο της επικοινωνίας συνεχίζεται με τη χρήση Συμμετρικών Κρυπταλγόριθμων (οι οποίοι είναι κατά κανόνα πολύ γρηγορότεροι). Επίσης, η Ασύμμετρη Κρυπτογραφία προάγει μηχανισμούς για τις Ψηφιακές Υπογραφές, οι οποίες είναι ένας πολύ αξιόπιστος τρόπος για να εξακριβωθεί ότι το Μήνυμα που παραλήφθηκε, όντως στάλθηκε από τον εμφανιζόμενο ως αποστολέα. Αυτές οι υπογραφές συχνά από το νόμο ή με καθολική αποδοχή αντιμετωπίζονται ως το ψηφιακό ισοδύναμο των φυσικών υπογραφών (επί χάρτου). Παραδείγματα Πρωτοκόλλων Ψηφιακών Υπογραφών είναι το DSA και το ElGamal. Οι Ψηφιακές Υπογραφές περιλαμβάνονται στην λειτουργία της υποδομής Δημοσίου Κλειδιού και πολλών τεχνολογιών Ασφαλείας (π.χ. Kerberos, πολλά VPNs κ.α.). Όπως και στην Κρυπτογράφηση, υβριδικοί Αλγόριθμοι χρησιμοποιούνται στην πράξη αντί να υπογραφεί ένα ολόκληρο έγγραφο, υπογράφεται η σύνοψή του. [2] Άλλα στοιχεία Kρυπτογραφίας Οι (κρυπτογραφικές) Συναρτήσεις Σύνοψης παράγουν τη Σύνοψη (ή Ίχνος) ενός Μηνύματος. Αν και πρέπει να είναι εύκολα υπολογίσιμη, η Συνάρτηση πρέπει να είναι πολύ δύσκολα αναστρέψιμη (μονόδρομη), ενώ συνήθως απαιτούνται και άλλες ιδιότητες. Οι MD5 και SHA-1 είναι από τις πιο γνωστές Συναρτήσεις Σύνοψης. Οι Κώδικες Αυθεντικοποίησης Μηνυμάτων (Message Authentication Codes - MACs), είναι παρόμοιοι με τις Συναρτήσεις Σύνοψης, με τη μόνη διαφορά ότι χρειάζεται ένα κλειδί για να υπολογιστεί η Σύνοψη. Όπως ίσως φαίνεται από το όνομα, χρησιμοποιούνται συνήθως για αυθεντικοποίηση μηνύματος. [1] 15

1.1.2 Η Ασφάλεια Η Κρυπτογράφηση αποτελεί σήμερα ένα βασικό και αναπόσπαστο συστατικό σε οποιαδήποτε ενέργεια είτε για ασφαλή επικοινωνία είτε για την ασφαλή αποθήκευση δεδομένων. Η Κρυπτογράφηση εγγράφων με ισχυρούς αλγόριθμους θεωρείται πλέον απαραίτητη για όλους τους μεγάλους οργανισμούς ενώ η χρήση Κρυπτογραφίας είναι το επίκεντρο των ενεργειών για ασφαλείς επικοινωνίες. Η Κρυπτογραφία χρησιμοποιείται σε μεγάλο βαθμό για την Ασφάλεια των Επικοινωνιών, προκειμένου να επιτευχθούν οι παρακάτω συνθήκες. Εμπιστευτικότητα, επίσης γνωστή ως Μυστικότητα: μόνο ένας εξουσιοδοτημένος παραλήπτης μπορεί να ανακτήσει τα περιεχόμενα του μηνύματος από την Κρυπτογραφημένη τους μορφή. Διαφορετικά, δεν είναι εφικτό να ανακτηθεί καμία σημαντική πληροφορία σχετικά με τα περιεχόμενα του μηνύματος. Ακεραιότητα: ο παραλήπτης είναι σε θέση να προσδιορίσει αν το μήνυμα έχει τροποποιηθεί κατά τη διάρκεια της μετάδοσης. Αυθεντικότητα: ο παραλήπτης είναι σε θέση να εξακριβώσει την ταυτότητα του αποστολέα και να επαληθεύσει αν κάποιος που ισχυρίζεται ότι έστειλε ένα μήνυμα, όντως το έστειλε. Μη-αποποίηση: ο αποστολέας δε μπορεί να αρνηθεί ότι έστειλε το μήνυμα. Η Κρυπτογραφία μπορεί να προάγει μηχανισμούς για να βοηθήσει να επιτευχθούν όλα τα παραπάνω. Παρόλα αυτά, μερικοί στόχοι δεν είναι πάντα απαραίτητοι, στην πράξη ή ούτε καν επιθυμητοί σε μερικά κομμάτια. Για παράδειγμα, ο αποστολέας ενός μηνύματος μπορεί να επιθυμεί να μείνει ανώνυμος προφανώς η υπηρεσία μη-αποποίησης είναι άτοπη, σε αυτή την περίπτωση. 1.1.3 Εξελίξεις και Αναγκαιότητες Προβλήματα Αυτό που θεωρείται σταθερό και κανένας πραγματικά δε θα έπρεπε να σπαταλήσει πολύ χρόνο ανησυχώντας γι αυτό είναι το ποιους αλγόριθμους πρέπει να χρησιμοποιούμε και με τι μέγεθος κλειδιού. Η μεγάλη πρόκληση, από τεχνικής άποψης, είναι ο χειρισμός της πολυπλοκότητας, επειδή τα Υπολογιστικά Συστήματα γίνονται συνεχώς πιο πολύπλοκα και κανένας δε γνωρίζει πραγματικά πως να τα απαλλάξει από «ελαττώματα» (bugs). Το πρόβλημα εστιάζεται εξίσου σε Λογισμικό και σε Υλικό. Κάθε σύστημα είναι πολύ πιο πολύπλοκο σήμερα από ότι ήταν στο παρελθόν, είτε πρόκειται για το Δίκτυο, είτε για κάποιο Προσωπικό Υπολογιστή, είτε για οποιαδήποτε συσκευή, ακόμα και για έναν μικροεπεξεργαστή. Κανένας ποτέ δεν αφαιρεί χαρακτηριστικά, αντιθέτως συνεχώς προστίθενται. Από άποψη ασφάλειας κάθε καινούριο χαρακτηριστικό είναι μια λανθάνουσα έκθεση σε κίνδυνο. Αν έχουμε ένα συστατικό του οποίου αντιλαμβανόμαστε πραγματικά καλά τη λειτουργία, είναι αρκετά εύκολο να το προστατέψουμε. Αλλά είναι πολύ πιο δύσκολο, αν υποθέσουμε ότι έχουμε 100 συστατικά (π.χ. ένα ad-hoc wlan με 100 Υπολογιστές), τα οποία όλα επικοινωνούν μεταξύ τους. Τότε δεν έχουμε μόνο να προστατέψουμε ένα συστατικό 100 φορές, αλλά πρέπει να μεριμνήσουμε και για όλες τις μεταξύ τους αλληλεπιδράσεις, έχοντας τώρα 10.000 διαφορετικές διασυνδέσεις. Αυτό είναι τρομακτικό, επειδή ένας κανένας δε μπορεί πλέον να το αφομοιώσει όλο αυτό και κανείς δε μπορεί πλέον, ούτε καν να ξεκινήσει να το διορθώνει. Η ιδιωτικότητα είναι ένα πρόβλημα που συνεχώς διογκώνεται στο χρόνο, επειδή και τα τεχνολογικά μέσα και οι δυνατότητες για συλλογή δεδομένων βελτιώνονται συνεχώς. Οι 16

άνθρωποι συλλέγουν συνεχώς δεδομένα χωρίς πάντα να έχουν ξεκάθαρη ιδέα για το πως θα τα χειριστούν. Έτσι καταλήγουμε στη συγκέντρωση μεγάλων ποσοτήτων πληροφοριών, το οποίο είναι τεράστιο ρίσκο για την ασφάλεια. Οι μουσικές βιομηχανίες και τα κινηματογραφικά στούντιο απειλούνται όλο και περισσότερο από την πειρατεία. Τα μεγέθη των δεδομένων για μουσική ή ταινίες μπορεί να κυμαίνονται από λίγα ΜΒ έως λίγα GB, αλλά αυτό τείνει να μην αποτελεί πρόβλημα. Με την πρόοδο στην τεχνολογία, στον τομέα του Υλικού, οι ρυθμοί στην πειρατεία πρόκειται να αυξηθούν δραματικά. Τα τεχνολογικά κωλύματα της πειρατείας που αφορούσαν την αντιγραφή και αποθήκευση δεδομένων πρόκειται να εξαλειφθούν [3]. Πρόοδος Παρόλα τα προβλήματα, από την μια πλευρά γίνεται συνεχώς πρόοδος προς καλύτερη ασφάλεια. Υπάρχει γενικά σημαντική πρόοδος στην ασφάλεια οικονομικών οργανισμών όπως σε οργανισμούς πιστωτικών καρτών. Ένα άλλο πεδίο εστίασης και έντασης της έρευνας είναι η πειρατεία και ακόμα γίνεται πολύ δουλειά στην υποδομή των ασύρματων συστημάτων [3]. Από την άλλη μεριά όμως, η τεχνολογική πρόοδος και η εξέλιξη των αλγορίθμων δίνουν μεγαλύτερες δυνατότητες από ποτέ στην διάτρηση των αλγορίθμων και συστημάτων ασφάλειας. Έτσι διατηρείται συνεχώς το «κυνήγι» μεταξύ των μεθόδων ασφαλείας και τον μεθόδων υπονόμευσής τους, καθώς και οι δυο πλευρές εκμεταλλεύονται την τεχνολογική εξέλιξη. Για παράδειγμα, τελευταία όλο και μεγαλύτερο μέγεθος κλειδιών RSA παραγοντοποιούνται, οπότε μπορούμε να λέμε ότι ως ένα βαθμό η ασφάλεια του RSA μειώνεται, όμως στο τέλος θα είμαστε λανθασμένοι, γιατί θα πρέπει να λάβουμε υπόψη μας το μέγεθος κλειδιών που χρησιμοποιούνται για τον RSA, κλειδιά τα οποία είναι απαγορευτικό να λέμε ότι τη σημερινή δεδομένη στιγμή μπορούμε να παραγοντοποιήσουμε. Εφαρμογές Τα τελευταία χρόνια έχουν αναπτυχθεί αρκετές εφαρμογές που σκοπό τους έχουν να δώσουν τη δυνατότητα σε απλούς χρήστες, να προστατέψουν. Με αυτό τον τρόπο άνθρωποι οι οποίοι δεν κατέχουν ειδικές γνώσεις πάνω στη Πληροφορική και την Κρυπτογραφία μπορούν να προστατεύουν τα μυστικά τους με την ίδια σχετική ευκολία που χρησιμοποιούν μια κλειδαριά ή βάζουν την υπογραφή τους. To PGP για παράδειγμα, είναι λογισμικό, το οποίο κατασκευάστηκε με σκοπό να κάνει εύκολη και προσιτή την κρυπτογράφηση ηλεκτρονικών μηνυμάτων, από απλούς χρήστες. Το PGP κάνει χρήση υβριδικής τεχνολογίας Κρυπτογράφησης (αποστολή του συμμετρικού Κλειδιού με ασύμμετρο τρόπο). Για το ασύμμετρο κομμάτι χρησιμοποιεί τον RSA. Είναι εύκολο στη χρήση και δεν απαιτεί γνώσεις κρυπτογραφίας. To PGP προσφέρει τις υπηρεσίες, Κρυπτογράφησης Μηνυμάτων, Ψηφιακής Υπογραφής Μηνυμάτων και παραγωγής ζεύγους κλειδιών (Ιδιωτικό και Δημόσιο). Παρόλα αυτά οι μύθοι και οι παρανοήσεις γύρω από την Κρυπτογραφία είναι αρκετοί και υπάρχουν αρκετά μη ασφαλή πακέτα Λογισμικού (για Κρυπτογραφία) στην αγορά. Ακόμα και προγράμματα με γνωστούς και ισχυρούς Αλγόριθμους μπορεί να είναι μη ασφαλή, εξαιτίας της φτωχής υλοποίησης όταν για παράδειγμα είναι ανεπαρκείς οι τεχνικές διαχείρισης των Κλειδιών. 17

Συνοψίζοντας, η Ασύμμετρη Κρυπτογραφία (ή Κρυπτογραφία Δημοσίου Κλειδιού) έχει επιφέρει σημαντικές αλλαγές στην επιστήμη της Κρυπτογραφίας και στην τομέα της Ασφάλειας. Με κυριότερο εκπρόσωπο το σύστημα RSA φαίνεται πλέον να μπαίνουμε σε μια περίοδο όπου είναι εφικτή η προστασία οποιασδήποτε κρίσιμης πληροφορίας ή επικοινωνίας μεταξύ δύο ατόμων από οποιονδήποτε τρίτο. Ακόμη και οι κυβερνήσεις μεγάλων χωρών αλλά και οι στρατιωτικές ηγεσίες με τον πιο εξελιγμένο τεχνολογικά εξοπλισμό, για πρώτη φορά στην ιστορία φαίνονται αδύναμοι μπροστά σ αυτό το επίτευγμα. Παρόλα αυτά ο RSA, είναι πολύ πρόσφατος και όχι πλήρως δοκιμασμένος. Για να επιτευχθεί ισχυρή κρυπτογράφηση απαιτούνται μεγάλα μήκη κλειδιών (1024 ή 2048 bits) και ήδη κάποια μικρότερα (576 bits) έχουν «σπάσει». Απ την άλλη πλευρά οι επιστήμες (τα Μαθηματικά και η Πληροφορική) εξελίσσονται με πολύ γρηγορότερους ρυθμούς από ότι στο παρελθόν. Μένει λοιπόν ο RSA και η Ασύμμετρη Κρυπτογραφία να «αποδείξουν» την αντοχή τους σε όλες τις σύγχρονες μεθόδους Κρυπτανάλυσης, ακόμα και στις λιγότερο συμβατικές όπως για παράδειγμα οι Γενετικοί Αλγόριθμοι. 1.2 Αντικείμενο, σκοπός και στόχοι Αντικείμενο: Επίλυση του προβλήματος RSA αξιοποιώντας Γενετικούς Αλγόριθμους Στόχος της Διπλωματικής είναι να αξιολογηθούν οι δυνατότητες των Γενετικών Αλγόριθμων στην επίλυση του προβλήματος της ανάλυσης ενός μεγάλου ακεραίου σε πρώτους παράγοντες (factorization problem) και να εκτιμηθεί η πιθανότητα ανάκτησης ενός Ιδιωτικού Κλειδιού RSA χρησιμοποιώντας Γενετικούς Αλγόριθμους. Η δυσκολία της ανάλυσης μεγάλων ακεραίων σε πρώτους παράγοντες αποτελεί την ακρογωνιαίο λίθο του κρυπταλγόριθμου RSA και ακριβώς εκεί θα αξιολογηθούν οι δυνατότητες των Γενετικών Αλγορίθμων. Το Ασύμμετρο Κρυπτοσύστημα RSA χρησιμοποιείται σήμερα ευρύτατα για την Κρυπτογράφηση Δεδομένων και την Ψηφιακή Υπογραφή Εγγράφων. Ο Κρυπταλγόριθμος RSA βασίζεται στο γεγονός ότι η ανάλυση ακεραίου σε πρώτους παράγοντες είναι πρόβλημα NP- Complete. Έχει καταδειχθεί ότι για μικρά μεγέθη κλειδιών (π.χ. RSA-160) είναι δυνατόν να ανακτηθεί το Ιδιωτικό Κλειδί χρησιμοποιώντας αλγόριθμους, όπως ο GNFS (General Number Field Sieve). Για μεγάλα, όμως, μεγέθη κλειδιών (π.χ. RSA-1024) η ανάκτηση του ιδιωτικού κλειδιού με αυτές τις μεθόδους θεωρείται υπολογιστικά ανέφικτη. Οι μέθοδοι αυτοί, γενικά εξασφαλίζουν ότι αν διατεθεί μία δεδομένη υπολογιστική ισχύ για ένα δεδομένο χρονικό διάστημα, τότε, με βεβαιότητα, θα βρεθούν οι πρώτοι παράγοντες που συνθέτουν των ακέραιο. Ο σκοπός της εργασίας αυτής είναι να μελετηθούν οι γενετικοί αλγόριθμοι για το συγκεκριμένο πρόβλημα και να υλοποιηθεί μια εφαρμογή που θα αξιολογηθεί για τις δυνατότητες της να ανακτά κλειδιά RSA. Σημαντικό κριτήριο για την αξιολόγηση του αλγόριθμου θα είναι η απόδοσή του σε σχέση με την τυχαία επιλογή. 1.3 Συμβολή εργασίας Η εργασία αυτή αποτελεί μια διαφορετική προσέγγιση στο πρόβλημα του RSA, προερχόμενη μέσα από τον τομέα της τεχνητής νοημοσύνης και συγκεκριμένα των εξελικτικών αλγόριθμων. Η εργασία αυτή ανήκει στο γενικότερο πλαίσιο αναζήτησης εναλλακτικών μεθόδων για προσέγγιση δύσκολα επιλύσιμων προβλημάτων και συγκεκριμένα προβλημάτων NP-Complete [4]. Ειδικότερα στο πρόβλημα του RSA έχουν γίνει παρόμοιες προσπάθειες που βασίζονται στον εξελικτικό προγραμματισμό [5] αλλά το έδαφος είναι ακόμα αρκετά πρόσφορο, δίνοντας έτσι τη δυνατότητα για νέα μοντέλα προσέγγισης παρόμοιων προβλημάτων. Τα αποτελέσματα της εργασίας αυτής, είτε αισιόδοξα είτε απαισιόδοξα, έχουν ένα ερευνητικό ενδιαφέρον, γιατί 18

αποτελούν μια πρώτη αξιολόγηση των κλασσικών γενετικών αλγόριθμων για την επίλυση του προβλήματος RSA. Η συμπεριφορά των αλγορίθμων αυτών και τα αποτελέσματα των μετρήσεων τους, θα δώσουν μια πρώτη ένδειξη για το πόσο ικανοί είναι να επιλύουν ένα τέτοιο πρόβλημα, δίνοντας την ευκαιρία σε ακόλουθες έρευνες, να δημιουργήσουν επιπλέον μοντελοποιήσεις γενετικών αλγόριθμων ή και υβριδικές μορφές με άλλες μεθόδους, ώστε να βελτιστοποιήσουν ακόμα περισσότερο τα αποτελέσματα. 1.4 Περιορισμοί Οι περιορισμοί που επιβάλλονται στην ανάπτυξη της εργασίας είναι τεχνολογικής φύσεως και έχουν να κάνουν με τη απαιτούμενη επεξεργαστική ισχύ. Δε θα χρησιμοποιηθούν ειδικοί υπολογιστές παρά μόνο συμβατικής τεχνολογίας και αποτελέσματα θα αξιολογηθούν αναλόγως. 19

ΚΕΦΑΛΑΙΟ 2 - ΚΡΥΠΤΟΓΡΑΦΙΑ και RSA 2.1 Σύντομη Αναδρομή Η παρούσα εργασία επικεντρώνεται στην Ασύμμετρη Κρυπτογραφία. Ωστόσο θα είναι πολύ βοηθητικό αν ρίξουμε μια σύντομη ματιά στη Συμμετρική Κρυπτογραφία, η οποία προηγείται χρονικά και μέσω αυτής να εξετάσουμε όλο το μαθηματικό υπόβαθρο της Κρυπτογραφίας. 2.1.1 Μοδιακή Αριθμητική Οι περισσότερες μαθηματικές συναρτήσεις χαρακτηρίζονται ως αμφιμονοσήμαντες, επειδή εύκολα εκτελούνται και εύκολα αντιστρέφονται. Ο διπλασιασμός, για παράδειγμα είναι μια αμφιμονοσήμαντη συνάρτηση, επειδή είναι εύκολο να διπλασιάσουμε έναν αριθμό για να παραγάγουμε έναν καινούριο, και εξίσου εύκολο να αντιστρέψουμε τη συνάρτηση και από το διπλασιασμένο αριθμό να πάρουμε πάλι τον αρχικό. Αν γνωρίζουμε ότι το αποτέλεσμα του διπλασιασμού είναι 26, τότε είναι απλό να αναστρέψουμε τη συνάρτηση και να συμπεράνουμε ότι ο αρχικός αριθμός ήταν το 13. Ο ευκολότερος τρόπος για να κατανοήσουμε την ιδέα της αμφιμονοσήμαντης συνάρτησης είναι να την παρομοιάσουμε με μια καθημερινή δραστηριότητα. Όταν ανάβουμε το φως με το διακόπτη, η πράξη αυτή είναι μια συνάρτηση, επειδή μετατρέπει έναν κοινό ηλεκτρικό λαμπτήρα σε αναμμένο ηλεκτρικό λαμπτήρα. Η συνάρτηση αυτή είναι αμφιμονοσήμαντη επειδή αν ανάψουμε έναν διακόπτη, είναι εύκολο να τον σβήσουμε και να επαναφέρουμε το λαμπτήρα στην αρχική του κατάσταση. Ωστόσο, οι ερευνητές της κρυπτογραφίας δεν ενδιαφέρονταν για τις αμφιμονοσήμαντες συναρτήσεις, αλλά επικέντρωσαν την προσοχή τους στις μονοσήμαντες. Όπως υποδεικνύει η ίδια η λέξη, μια μονοσήμαντη συνάρτηση εύκολα εκτελείται, αλλά πολύ δύσκολα ακυρώνεται. Με άλλα λόγια, οι αμφιμονοσήμαντες συναρτήσεις είναι αναστρέψιμες, ενώ οι μονοσήμαντες όχι. Και εδώ ο καλύτερος τρόπος για να επεξηγήσουμε μια μονοσήμαντη συνάρτηση είναι να την περιγράψουμε με όρους μιας καθημερινής δραστηριότητας. Η πράξη της ανάμειξης κίτρινης και μπλε βαφής ώστε να προκύψει πράσινη είναι μια μονοσήμαντη συνάρτηση, επειδή είναι εύκολο να ανακατέψει κανείς την μπογιά, αλλά αδύνατον να διαχωρίσει το μείγμα. Λέγοντας μη αντιστρέψιμη συνάρτηση εννοούμε ότι δεδομένου μιας συνάρτησης f από ένα σύνολο X σε ένα σύνολο Υ, μπορούμε «εύκολα» να υπολογίσουμε το f(x) για όλα τα x Є Χ αλλά ουσιαστικά για όλα τα y Є Im(f) είναι «υπολογιστικά αδύνατο» να βρεθεί οποιοδήποτε χ Є Χ τέτοιο ώστε f(x) = y. Λέγοντας αμφιμονοσήμαντη συνάρτηση εννοούμε ότι για δύο x1, x2 για τα οποία ισχύει ότι x1 x2 είναι πάντα H(x1) H(x2). Σε καμία περίπτωση δεν θα είναι H(x1) = H(x2) όταν x1 x2. Η μοδιακή αριθμητική (modular arithmetic), που ενίοτε την αποκαλούν και ωρολογιακή αριθμητική, είναι ένας τομέας των μαθηματικών πλούσιος σε μονοσήμαντες συναρτήσεις. Στη μοδιακή αριθμητική, οι μαθηματικοί εξετάζουν μια πεπερασμένη ομάδα αριθμών με κυκλική διάταξη, όπως οι αριθμοί σε ένα ρολόι. Η Εικόνα 2.1 για παράδειγμα, δείχνει ένα ρολόι που παριστά το μοδιακό 7 (modulo 7 ή πρότυπο 7), έχει δηλαδή 7 αριθμούς, από το 0 ως το 6. Για να βρούμε το άθροισμα 2+3, αρχίζουμε από το 2, προχωράμε 3 θέσεις και βρίσκουμε το 5, που είναι η ίδια απάντηση όπως στην κανονική αριθμητική. Για να βρούμε το άθροισμα 2+6, αρχίζουμε πάλι από το 2 και προσχωρούμε 6 θέσεις όμως τη φορά αυτή περνάμε την αρχή του κύκλου και 20

φτάνουμε στο 1, αποτέλεσμα διαφορετικό από αυτό που θα είχαμε στα κανονικά μαθηματικά. Τα αποτελέσματα αυτά μπορούν να εκφραστούν ως εξής: 2 + 3 = 5 (modulo 7) και 2 + 6 = 1 (modulo 7) Σχήμα 2.1: Η μοδιακή αριθμητική εκτελείται σε ένα πεπερασμένο σύνολο αριθμών, που μπορούν να νοηθούν ως αριθμοί σε μια επιφάνεια ρολογιού. Η μοδιακή αριθμητική είναι σχετικά απλή, και στην πραγματικότητα την εφαρμόζουμε κάθε μέρα, όταν μιλάμε για την ώρα. Αν τώρα είναι 9 το πρωί και έχουμε μια παρουσίαση σε 8 ώρες λέμε ότι η συνάντηση είναι στις 5, και όχι στις 17. Νοερά υπολογίσαμε 9+8 στο μετρικό 12. Φαντασθείτε το καντράν ενός ρολογιού, κοιτάξτε το 9, προχωρήστε 8 θέσεις και θα φτάσετε το 5. 9 + 8 = 5 (modulo 12) Συνήθως οι μαθηματικοί, αντί να φαντάζονται ρολόγια, εκτελούν τους μοδιακούς υπολογισμούς σύμφωνα με την ακόλουθο τρόπο. Πρώτον, εκτελούν τον υπολογισμό στην κανονική αριθμητική. Δεύτερον, για να βρουν την απάντηση στη (modulo Χ), διαιρούν την κανονική απάντηση με το Χ και σημειώνουν το υπόλοιπο. Το υπόλοιπο αυτό είναι η απάντηση στη (modulo Χ). Αν για παράδειγμα, θέλουμε να βρούμε το αποτέλεσμα της πράξης 11*9 (modulo 13), κάνουμε τα εξής: 11*9 = 99 99 13 = 7 με υπόλοιπο 8 11 * 9 = 8 (modulo 13) Οι συναρτήσεις που εκτελούνται στο περιβάλλον της μοδιακής αριθμητικής τείνουν να συμπεριφέρονται ακανόνιστα, πράγμα που με τη σειρά του τις καθιστά ενίοτε μονοσήμαντες. Αυτό γίνεται φανερό όταν συγκρίνουμε μια απλή συνάρτηση στην κανονική αριθμητική με το αντίστοιχό της στη μοδιακή. Στην πρώτη περίπτωση, η συνάρτηση είναι αμφιμονοσήμαντη και εύκολα αντιστρέψιμη, ενώ στη δεύτερη είναι μονοσήμαντη και αντιστρέφεται δύσκολα. Ας πάρουμε σαν παράδειγμα τη συνάρτηση 3 X. Για Χ=2 έχουμε: 3 Χ = 3 2 = 3 * 3 = 9 Στην κανονική αριθμητική, όσο αυξάνει η τιμή του Χ τόσο αυξάνει και το αποτέλεσμα της συνάρτησης. Συνεπώς αν μας δοθεί μόνο το τελικό αποτέλεσμα, θα ήταν σχετικά εύκολο να κάνουμε υπολογισμούς προς τα πίσω και να συμπεράνουμε το αρχικό αριθμό. Για παράδειγμα, αν το αποτέλεσμα είναι 81, μπορούμε να συμπεράνουμε ότι το Χ είναι το 4, επειδή 3 4 =81. Αν κάναμε λάθος και εικάζαμε ότι Χ=5 θα μπορούσαμε να υπολογίσουμε ότι 3 5 =243 και θα 21

καταλαβαίναμε ότι η επιλογή μας για το Χ είναι υπερβολικά μεγάλη. Θα μπορούσαμε τότε να μειώσουμε την επιλογή μας για το Χ στο 4, και θα είχαμε τη σωστή απάντηση. Με δυο λόγια, ακόμα και αν μαντέψουμε λάθος, μπορούμε να καταλήξουμε στη σωστή τιμή του Χ, και έτσι να αντιστρέψουμε τη συνάρτηση. Ωστόσο, στη μοδιακή αριθμητική, η ίδια συνάρτηση δεν συμπεριφέρεται τόσο λογικά. Έστω ότι μας λένε πως 3 X στη (modulo7) μας δίνει 1 ή αλλιώς 3 Χ =1(modulo7) και μας ζητούν να βρούμε την τιμή του Χ. Αρχικά καμία τιμή δεν μας έρχεται στο μυαλό, γιατί γενικά δεν είμαστε εξοικειωμένοι με τη μοδιακή αριθμητική. Μπορούμε να κάνουμε μια εικασία ότι Χ=5, και να υπολογίσουμε το αποτέλεσμα του 35 (modulo7). Η απάντηση που προκύπτει είναι το 5, το οποίο δε μας κάνει επειδή είναι μεγάλο, εφόσον εμείς ψάχνουμε για μια απάντηση που να ισούται με 1. Μπορούμε να μπούμε στον πειρασμό να μειώσουμε την τιμή του Χ και να ξαναπροσπαθήσουμε. Όμως στην περίπτωση αυτή ακολουθούμε λάθος κατεύθυνση, αφού η σωστή απάντηση είναι Χ=6. Στην κανονική αριθμητική, μπορούμε να δοκιμάζουμε τους αριθμούς και να καταλαβαίνουμε πότε πλησιάζουμε στη σωστή λύση ή πότε απομακρυνόμαστε. Το περιβάλλον της μοδιακής αριθμητικής δεν μας δίνει βοηθητικά στοιχεία, και η αναστροφή των συναρτήσεων είναι πολύ δυσκολότερη. Συχνά, ο μόνος τρόπος για να αναστρέψουμε μια συνάρτηση στη μοδιακή αριθμητική είναι να καταρτίσουμε έναν πίνακα επιλύοντας τη συνάρτηση για πολλές τιμές του Χ, μέχρι να βρούμε τη σωστή απάντηση. Η Εικόνα 2.2 δείχνει το αποτέλεσμα μιας τέτοιας σειράς υπολογισμών, τόσο στην κανονική όσο και στη μοδιακή αριθμητική. Φαίνεται καθαρά η ακανόνιστη συμπεριφορά της συνάρτησης όταν επιλύεται στη μοδιακή αριθμητική. Και ναι μεν η κατάρτιση ενός τέτοιου πίνακα μπορεί να μην είναι πολύ κουραστική όταν έχουμε να κάνουμε με σχετικά μικρούς αριθμούς, όμως θα ήταν εξαιρετικά επώδυνο να καταρτίσουμε έναν τέτοιο πίνακα για μια συνάρτηση όπως η 453 Χ (modulo 21.997). Θα μπορούσαμε να επιλέξουμε μια τιμή για το Χ και να υπολογίσουμε το αποτέλεσμα της συνάρτησης μέσα σε δευτερόλεπτα, αν όμως μας δινόταν ένα αποτέλεσμα, ας πούμε το 5.787, θα μας ήταν τρομερά δύσκολο και χρονοβόρο να αναστρέψουμε τη συνάρτηση και να συμπεράνουμε την τιμή του Χ. Πρόκειται για κλασικό παράδειγμα μονοσήμαντης συνάρτησης. [6] Χ 1 2 3 4 5 6 3 Χ 3 9 27 81 243 729 3 Χ (modulo7) 3 2 6 4 5 1 Πίνακας 2.1: Τιμές της συνάρτησης 3 Χ υπολογισμένες στην κανονική και στη μοδιακή αριθμητική. Η συνάρτηση στη μοδιακή είναι εντελώς ακανόνιστη. Τo 1976 επινοήθηκε και παρουσιάστηκε σε μια στρατηγική για την επίλυση του προβλήματος της ανταλλαγής των κλειδιών χωρίς να χρειάζεται να συναντηθούν οι δυο εμπλεκόμενοι, καταρρίπτοντας έτσι ένα αξίωμα που είχε διαρκέσει αιώνες. Η ιδέα στηριζόταν σε μια μονοσήμαντη συνάρτηση του τύπου Υ*(moduloΡ). Αρχικά, τα εμπλεκόμενα μέρη έστω δύο άνθρωποι οι οποίοι θέλουν να επικοινωνήσουν συμφωνούν στις τιμές των Υ και Ρ. Όλες σχεδόν οι τιμές είναι κατάλληλες, όμως υπάρχουν και κάποιοι περιορισμοί, όπως ότι το Υ πρέπει να είναι μικρότερο του Ρ. Οι τιμές αυτές δεν είναι μυστικές, και έτσι μπορεί ο ένας να τηλεφωνήσει στον άλλον και να του υποδείξει ας πούμε, ότι Υ=7 και Ρ=11. Ακόμη και αν η γραμμή δεν είναι 22

ασφαλής, και κάποιος τρίτος έχει «παγιδεύσει» αυτή τη συνομιλία, δεν έχει καμία σημασία όπως θα δούμε αργότερα. Τώρα οι δύο έχουν συμφωνήσει στη μονοσήμαντη συνάρτηση Τ(modulo11). Στο σημείο αυτό μπορούν να ξεκινήσουν τη διαδικασία καθορισμού ενός μυστικού κλειδιού χωρίς να συναντηθούν, εργαζόμενοι παράλληλα. Οι ενέργειες φαίνονται στην Εικόνα 2.3. Χαρακτηριστικά, θα αναφερόμαστε στους δύο επικοινωνούντες με τα ψευδώνυμα Αλίκη και Βασίλη (είναι πιο κομψό από το «ο Α και ο Β»). Τα δύο μέρη ωστόσο δεν είναι κατ ανάγκη άνθρωποι. Μπορούμε κάλλιστα να θεωρήσουμε ότι πρόκειται για δύο Υπολογιστές, ή για οποιεσδήποτε δύο μηχανές ή και για δύο εφαρμογές οι οποίες θέλουν να ανταλλάξουν δεδομένα. Στη συνέχεια με την ίδια κομψότητα εισάγουμε στο Σύστημα τον κακόβουλο χρήστη ως «η κακιά Εύα». Επίσης αντί για τηλεφωνική γραμμή μπορούμε να θεωρήσουμε σχεδόν οποιαδήποτε σύνδεση μεταξύ δύο υπολογιστών (Ethernet, Wireless, PPP). Φάση Αλίκη Βασίλης Βήμα 1 Βήμα 2 Βήμα 3 Η ανταλλαγή Βήμα 4 Το κλειδί Η Αλίκη επιλέγει έναν αριθμό, π.χ. το 3, και τον κρατά μυστικό. Ονομάζουμε τον αριθμό της Α. Η Αλίκη εισάγει το 3 στη μονοσήμαντη συνάρτηση και βρίσκει το αποτέλεσμα της πράξης 7 Α (modulo 11): 7 3 (mod 11) = 343(mod 11) = 2 Η Αλίκη ονομάζει το αποτέλεσμα αυτού του υπολογισμού α και στέλνει το αποτέλεσμά της, το 2, στον Βασίλη. Ο Βασίλης επιλέγει έναν αριθμό, π.χ. το 6, και τον κρατά μυστικό. Ονομάζουμε τον αριθμό του Β. Ο Βασίλης εισάγει το 6 στη μονοσήμαντη συνάρτηση και βρίσκει το αποτέλεσμα της πράξης 7 Α (modulo 11): 7 6 (mod 11) = 117.649(mod 11) = 2 Ο Βασίλης ονομάζει το αποτέλεσμα αυτού του υπολογισμού β και στέλνει το αποτέλεσμά του, το 4, στην Αλίκη. Κανονικά αυτή είναι η κρίσιμη στιγμή. Η Αλίκη και ο Βασίλης ανταλλάσσουν πληροφορίες, και η Εύα έχει την ευκαιρία να κρυφακούσει τις λεπτομέρειες της ανταλλαγής. Ωστόσο, αποδεικνύεται ότι η Εύα μπορεί να κρυφακούσει χωρίς να επηρεάζει την τελική ασφάλεια του Συστήματος. Η Αλίκη και ο Βασίλης χρησιμοποιούν την ίδια τηλεφωνική γραμμή στην οποία ανταλλάσσουν τις τιμές των Y και P και η Εύα υποκλέπτει τους δύο ανταλλασσόμενους αριθμούς, 2 και 4. Όμως οι αριθμοί αυτοί δεν είναι το κλειδί και επομένως δεν έχουν καμία αξία. Η Αλίκη παίρνει το αποτέλεσμα του Βασίλη και βρίσκει το αποτέλεσμα της β Α (mod 11): 4 3 (mod 11) = 64 (mod 11) = 9 Ο Βασίλης παίρνει το αποτέλεσμα της Αλίκης και βρίσκει το αποτέλεσμα της `α Β (mod 11): 2 6 (mod 11) = 64 (mod 11) = 9 Η Αλίκη και ο Βασίλης έχουν καταλήξει στον ίδιο αριθμό, το 9, χωρίς να χρειαστεί να συναντηθούν. Αυτό αποτελεί και το Κοινό τους Κλειδί. Πίνακας 2.2: Η γενική μονοσήμαντη συνάρτηση είναι Υ*(moduloΡ). Οι εμπλεκόμενοι επιλέγοντας τιμές για τα Υ και Ρ, συμφωνούν στη μονοσήμαντη συνάρτηση 7*(modulo11). 23

Επεξεργαζόμενοι τα στάδια της Εικόνας 2.3, βλέπουμε ότι η Αλίκη κα ο Βασίλης, χωρίς να συναντηθούν, συμφώνησαν στο ίδιο κλειδί, το οποίο μπορούν να χρησιμοποιήσουν για να κρυπτογραφήσουν ένα μήνυμα. Για παράδειγμα, μπορούν να χρησιμοποιήσουν τον αριθμό τους, το 9, ως κλειδί για μια κρυπτογράφηση DES. Στην πραγματικότητα βέβαια το σύστημα DES χρησιμοποιεί πολύ μεγαλύτερους αριθμούς ως κλειδιά, και η διαδικασία της ανταλλαγής που περιγράφεται στο Σχήμα 2.3 θα στηριζόταν σε πολύ μεγαλύτερους αριθμούς, ώστε να προκύψει το κατάλληλο κλειδί DES. Εφαρμόζοντας το πιο πάνω σχήμα δύο άνθρωποι που θέλουν να επικοινωνήσουν κατορθώνουν να συμφωνήσουν σε ένα κλειδί χωρίς να χρειαστεί να συναντηθούν και να το «ψιθυρίσει» ο ένας στον άλλο. Το εκπληκτικό επίτευγμα είναι ότι το μυστικό κλειδί συμφωνήθηκε μέσω μιας ανταλλαγής πληροφοριών σε μια κοινή τηλεφωνική γραμμή. Αν όμως η Εύα είχε παγιδεύσει τη γραμμή αυτή, τότε ξέρει και το κλειδί; Ας εξετάσουμε το σχήμα από την οπτική γωνία του επιτιθέμενου. Αν έχει παγιδεύσει τη γραμμή, τότε γνωρίζει μόνο τα εξής δεδομένα: ότι η συνάρτηση είναι Τ(modulo11), ότι η Αλίκη στέλνει α=2 και ότι ο Βασίλης στέλνει β=4. Για να βρει το κλειδί, θα πρέπει είτε να κάνει ότι κάνει ο Βασίλης, δηλαδή να μετατρέψει το α στο κλειδί γνωρίζοντας το Β, ή να κάνει ότι κάνει η Αλίκη, δηλαδή να μετατρέψει το β στο κλειδί γνωρίζοντας το Α. Όμως η Εύα δεν γνωρίζει τις τιμές των Α και Β, επειδή η Αλίκη και ο Βασίλης δεν αντάλλαξαν αυτούς τους αριθμούς και τους κράτησαν μυστικούς. Η Εύα βρίσκεται σε αδιέξοδο. Έχει μόνο μια ελπίδα: θεωρητικά, θα μπορούσε να υπολογίσει το Α από το α, επειδή το α προέκυψε από την εισαγωγή του Α σε μια συνάρτηση, και η Εύα γνωρίζει τη συνάρτηση αυτή, ή θα μπορούσε να υπολογίσει το Β από το β, επειδή το β προέκυψε από την εισαγωγή του Β σε μνα συνάρτηση, την οποία η Εύα γνωρίζει. Δυστυχώς όμως για την Εύα, η συνάρτηση είναι μονοσήμαντη. Έτσι, ενώ είναι εύκολο για την Αλίκη να μετατρέψει το Α σε α και για τον Βασίλη να μετατρέψει το Β σε β, είναι πολύ δύσκολο για την Εύα να αντιστρέψει τη διαδικασία, ιδίως αν οι αριθμοί είναι πολύ μεγάλοι [6]. 2.1.2 Το πρόβλημα της διανομής Κλειδιών Παρότι το σύστημα ανταλλαγής κλειδιών που περιγράψαμε αποτέλεσε ένα τεράστιο άλμα προς τα εμπρός, δεν ήταν τέλειο, επειδή από τη φύση του ήταν άβολο. Ας φαντασθούμε ότι η κάποιος ζει στην Στοκχόλμη και ότι θέλει να στείλει ένα μήνυμα μέσω ηλεκτρονικού ταχυδρομείου σε κάποιον που ζει στη Σάμο. Η ευκολία με το ηλεκτρονικό ταχυδρομείο είναι ότι ο ένας μπορεί να στείλει ανά πάσα στιγμή ένα μήνυμα, το οποίο θα περιμένει μέσα στον υπολογιστή του άλλου μέχρι αυτός να ξυπνήσει. Αν όμως ο πρώτος θέλει να κρυπτογραφήσει το μήνυμά του, τότε θα πρέπει να συμφωνήσει με τον δεύτερο σε ένα κλειδί, και για να γίνει αυτό είναι προτιμότερο να είναι και οι δυο τους συνδεδεμένοι στο δίκτυο την ίδια στιγμή ο καθορισμός ενός κλειδιού απαιτεί αμοιβαία ανταλλαγή πληροφοριών. Στην πραγματικότητα, ο ένας θα πρέπει να περιμένει μέχρι να ξυπνήσει ο δεύτερος. Εναλλακτικά, θα μπορούσε να του διαβιβάσει το δικό του τμήμα της ανταλλαγής κλειδιού, και να περιμένει μερικές ώρες για την απάντησή του, οπότε και καθορίζεται το κλειδί και μπορεί, αν δεν έχει κοιμηθεί ο ίδιος, να κρυπτογραφήσει και να μεταδώσει το μήνυμα. Όμως και στις δύο περιπτώσεις, το σύστημα για την ανταλλαγή κλειδιών καταργεί τον αυθόρμητο χαρακτήρα του ηλεκτρονικού ταχυδρομείου. Το σύστημα που περιγράφηκε αποτέλεσε μια πολύ σημαντική πρόοδο για την Κρυπτογραφία. Στην πράξη λειτουργούσε τέλεια και δυο μέρη που ήθελαν να επικοινωνήσουν δεν χρειαζόταν να συναντηθούν για να συμφωνήσουν σε ένα μυστικό κλειδί. Στη συνέχεια κάποιος έπρεπε απλώς να επινοήσει ένα πιο αποτελεσματικό σχήμα για να ξεπεραστεί το πρόβλημα της διανομής των Κλειδιών [6]. 24