Πρώτοι αριθμοί και κρυπτογραφικός αλγόριθμος RSA Άριστος Χαραλάμπους, Δημήτρης Χαραλάμπους, Νικόλας Παρασκευάς
Πρώτοι Αριθμοί Πρώτος αριθμός ονομάζεται ένας φυσικός αριθμός (δηλ. θετικός ακέραιος) μεγαλύτερος της μονάδας αν έχει ακριβώς δύο φυσικούς διαιρέτες, το 1 και τον εαυτό του. Το μηδέν και το ένα δεν είναι πρώτοι αριθμοί. Το μηδέν συχνά δεν θεωρείται ούτε φυσικός. Ο αριθμός 2 είναι ο μόνος άρτιος (ζυγός) πρώτος αριθμός. Όλοι οι άλλοι πρώτοι είναι περιττοί (μονοί). Η ακολουθία των 25 πρώτων αριθμών είναι η εξής: 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97,... 2
Πώς υπολογίζονται οι πρώτοι αριθμοί; Το πρόβλημα της εύρεσης πρώτων αριθμών απασχόλησε από τους αρχαίους χρόνους τους μαθηματικούς. Ένας απλός τρόπους για την εύρεση πρώτων αριθμών είναι το κόσκινο του Ερατοσθένη. Στο σύνολο των φυσικών αριθμών διαγράφουμε πρώτα τα πολλαπλάσια του 2 και μετά διαγράφουμε τα πολλαπλάσια του επόμενου μη διαγραμμένου αριθμού. Οι αριθμοί που θα απομείνουν είναι όλοι πρώτοι. Όμως η παραπάνω διαδικασία δεν μπορεί να εφαρμοστεί σε όλο το σύνολο των φυσικών αριθμών, έτσι καταλήγουμε στο συμπέρασμα πως δεν υπάρχει ακριβές τρόπος υπολογισμού πρώτων αριθμών. 3
Υλοποίηση του Κόσκινου του Ερατοσθένη στη C++ 4
Διάφορα μαθηματικά προβλήματα που σχετίζονται με τους πρώτους αριθμούς Η εικασία του Γκόλντμπαχ: Υποστηρίζει ότι κάθε άρτιος αριθμός μεγαλύτερος του 2, μπορεί να γραφεί σαν άθροισμα δύο πρώτων αριθμών. Η απόδειξη βασανίζει και σήμερα αρκετούς μαθηματικούς αφού συνεχώς νεώτεροι και ισχυρότεροι υπολογιστές την επιβεβαιώνουν για όλο και μεγαλύτερους αριθμούς. Η υπόθεση Ρίμαν: Θέτει το ζήτημα του πλήθους των πρώτων αριθμών οι οποίοι είναι μικρότεροι από ένα δοσμένο φυσικό αριθμό ν. π.χ. Πόσοι πρώτοι αριθμοί είναι μικρότεροι από το 20; Η απάντηση είναι 8 και είναι οι: 2, 3, 5, 7, 11, 13, 17, 19. Πόσοι μικρότεροι από το 500; Κλπ Δίδυμοι πρώτοι αριθμοί:δίδυμοι πρώτοι ονομάζονται οι πρώτοι αριθμοί που η διαφορά τους είναι 2, π.χ. 11 και 13, 17 και 19 κλπ. Ένα γνωστό άλυτο πρόβλημα της θεωρίας των αριθμών είναι η εικασία των Διδύμων Πρώτων στην οποία πρέπει να αποδειχτεί πως υπάρχουν άπειροι πρώτοι p τέτοιοι ώστε και ο αριθμός p + 2 να είναι πρώτος. 5
Τι είναι η κρυπτογραφία και γιατί είναι σήμερα τόσο σημαντική Επιστήμη που μελετά τρόπους κωδικοποίησης μηνυμάτων. Με άλλα λόγια, είναι η μελέτη των μαθηματικών τεχνικών που σχετίζονται με έννοιες της ασφάλειας πληροφοριακών συστημάτων όπως η εμπιστευτικότητα, η ακεραιότητα δεδομένων και η πιστοποίηση. 6
Ιστορική αναδρομή στην κρυπτογραφία Ελληνορωμαϊκοί χρόνοι (1) Τα κρυπτογραφήματα εμφανίσθηκαν πρώτα στους Πέρσες και στους Έλληνες. Ο Άρπαγος ειδοποιεί τον Κύρο τον πρεσβύτερο μ' ένα σκοτωμένο λαγό, που στην κοιλιά του υπήρχε κάποιο μήνυμα. Χρησιμοποιήθηκαν διάφορες μέθοδοι ώστε τα μηνύματα να μπορούν να διαβαστούν μόνο απ' τον παραλήπτη και να είναι ακατανόητα σε βαθμό που να γίνονται άχρηστα για οποιονδήποτε άλλο. Μερικές μέθοδοι απ' αυτές δείχνουν πολύ απλοϊκές σήμερα, αλλά κάποιες άλλες δεν έχουν αποκρυπτογραφηθεί ακόμα! Σπαρτιατική Σκυτάλη Στην αρχαία Σπάρτη για να στείλουν στρατιωτικά μηνύματα χρησιμοποιούσαν κύλινδρο που γύρω του ήταν τυλιγμένη μια στενή δερμάτινη λωρίδα σε σειρές. Αφαιρώντας τον κύλινδρο έμενε η λωρίδα που μπορούσε να ξαναδιαβαστεί μόνο αν τυλιγόταν με τον ίδιο τρόπο πάνω σε κύλινδρο ίδιας διαμέτρου. 7
Ένα απλό παράδειγμα από Αρχαία Ελλάδα: Ο κρυπτογραφικός δίσκος του Αινεία Δίσκος με 24 περιφερειακές οπές (αντίστοιχες των γραμμάτων του αλφαβήτου), μία κεντρική και μία επιπλέον που ορίζει το γράμμα Α. Ο αποστολέας κατέγραφε το μήνυμα περνώντας λεπτό νήμα από τις οπές των αντίστοιχων γραμμάτων και ο δέκτης το διάβαζε ξετυλίγοντας το νήμα και καταγράφοντας τα γράμματα από δεξιά προς τα αριστερά. 8
Ιστορική αναδρομή στην κρυπτογραφία Ελληνορωμαϊκοί χρόνοι (2) Ιούλιος Καίσαρας με ολίσθηση 3 θέσεων Ο Ιούλιος Καίσαρας έγραφε αντικαθιστώντας τα γράμματα του κειμένου, με γράμματα, που βρίσκονται 3 θέσεις μετά. Ήταν η πρώτη μέθοδος υποκατάστασης γραμμάτων. Σήμερα, το σύστημα κρυπτογράφησης που στηρίζεται στην αντικατάσταση των γραμμάτων του αλφαβήτου με άλλα που βρίσκονται σε καθορισμένο αριθμό θέσης πριν ή μετά, λέγεται κρυπτοσύστημα αντικατάστασης του Καίσαρα. 9
Η κρυπτογραφία τον Μεσαίωνα (1) Στην Ευρώπη σε αντίθεση με τον αραβικό κόσμο η κρυπτογραφία δεν ήταν τόσο γνωστή. Στο μεσαίωνα η κρυπτογραφία ήταν κρυμμένη μέσα στα μοναστήρια, όπου εκεί μελετούσαν οι μοναχοί βιβλικά και εβραϊκά κρυπτογραφήματα όπως το κρυπτογράφημα Άτμπας. Αραβική κρυπτανάλυση: Οι Άραβες είναι οι πρώτοι που επινόησαν μεθόδους κρυπτανάλυσης. Χρησιμοποίησαν τις συχνότητες των γραμμάτων κειμένου, σε συνδυασμό με τις συχνότητες εμφάνισης στα κείμενα των γραμμάτων της γλώσσας. Ο σημαντικότερος εκπρόσωπος των Αράβων κρυπτολόγων είναι ο πανεπιστήμων του 9ου αιώνα Αλ Κιντί. Μαύρα δωμάτια:. Τον δέκατο όγδοο αιώνα η κρυπτοποίηση και η κρυπτανάλυση άρχισαν να βιομηχανοποιούνται. Όλες οι δυνάμεις της εποχής διέθεταν ένα κέντρο συλλογής πληροφοριών το οποίο αποκαλούταν Μαύρο Δωμάτιο. Το πιο διάσημο και αποτελεσματικό, ήταν αυτό της Βιέννης. Λειτουργούσε με αυστηρό ωράριο, ώστε να μην παρεμποδίζεται η ομαλή λειτουργία των ταχυδρομείων. Όλες οι επιστολές που προορίζονταν για τις διάφορες πρεσβείες, περνούσαν πρώτα από το Μαύρο Δωμάτιο, ανοίγονταν, αντιγράφονταν, ξανακλεινόταν και επιστρέφονταν στο ταχυδρομείο για να συνεχίσουν προς τον προορισμό τους. Τα αντίγραφα παραδίδονταν σε ειδικούς για την κρυπτανάλυση. Το Μαύρο Δωμάτιο της Βιέννης, εκτός από τις πληροφορίες που έδινε στους Αυτοκράτορες της Αυστρίας, πουλούσε τα στοιχεία που συνέλεγε και σε άλλες Ευρωπαϊκές δυνάμεις. 10
Η κρυπτογραφία τον Μεσαίωνα (2) Μονοαλφαβητικό Στην ρωμαϊκή περίοδο και τον μεσαίωνα, χρησιμοποιούσαν τον μονοαλφαβητικό κώδικα για την κρυπτοποίηση των μηνυμάτων. Ουσιαστικά ήταν διάφοροι τρόποι εναλλαγής των γραμμάτων της αλφαβήτου μεταξύ τους. Για να γίνει πιο δύσκολη η ανάλυση του μηνύματος, αντικαθιστούσαν συλλαβές με σύμβολα ή προσέθεταν γράμματα χωρίς νόημα διάσπαρτα στο κείμενο. Πολιτιστικοί κώδικες (ιεροί κώδικες): Ο συνδυασμός της θρησκευτικής γραφής με την κρυπτογραφία ταιριάζουν απόλυτα και έχουν μεταξύ τους μεγάλη ιστορία. Γνωστότερο σύστημα κρυπτογραφίας είναι το κρυπτογράφημα Άτμπας στην Ιουδαίοχριστιανική παράδοση. Στο κρυπτογράφημα Άτμπας το πρώτο γράμμα του εβραϊκού αλφαβήτου φεύγει και παίρνει την θέση του το τελευταίο, το ίδιο συμβαίνει με το δεύτερο γράμμα όπου αντικαθιστάτε στο προτελευταίο και συνεχίζει έτσι. Από τα γράμματα αλεφ, ταφ, μπετ, και σιν, προέρχεται το όνομα δηλαδή τα πρώτα και δύο τελευταία γράμματα του αλφαβήτου. Αλγόριθμος κρυπτογράφησης: O Leon Battista Alberti ήταν ο πρώτος που διατύπωσε και εξήγησε την πολυαλφαβητική κρυπτογράφηση. Το 1467 χρησιμοποιώντας μόνο ένα δίσκο και ένα μέταλλο ώστε να γίνει η κρυπτογράφηση και η εναλλαγή μεταξύ των αλφαβήτων κρυπτογράφησης. 11
Κρυπτογραφικοί Αλγόριθμοι 12
Ο αλγόριθμος RSA (1) Ο RSA είναι ένας κρυπταλγόριθμος ασύμμετρου κλειδιού, το όνομα του οποίου προέρχεται από τους δημιουργούς του, Rivest, Shamir και Adleman. Επιτρέπει όχι μόνο την κωδικοποίηση μηνυμάτων αλλά μπορεί επίσης να χρησιμοποιηθεί και ως ψηφιακή υπογραφή. Κάθε χρήστης διαλέγει τυχαία δύο πολύ μεγάλους πρώτους αριθμούς p, q και υπολογίζει το γινόμενο Ν=p*q. Το Ν θα πρέπει να αποτελείται τουλάχιστον από 200 ψηφία και μπορεί να δημοσιοποιηθεί (να είναι γνωστό σε όλους). Τα p και q κρατούνται μυστικά. Κάποιος «εχθρός» γνωρίζει το Ν (αφού είναι δημοσίως γνωστό σε όλους). Ωστόσο, είναι πολύ δύσκολο πρόβλημα να βρει την ανάλυση του σε γινόμενο πρώτων αριθμών δηλ. να βρει τα p, q. Σε αυτό έγκειται και η ασφάλεια του RSA (πρόβλημα παραγοντοποίησης). 13
Ο αλγόριθμος RSA (2) 14
Ο αλγόριθμος RSA (3) 15
Δημιουργία ενός προγράμματος του αλγόριθμου RSA στη C++ 16
Δημιουργία ενός προγράμματος του αλγόριθμου RSA στη C++ (Συνέχεια) 17
Βιβλιογραφία Gravitonio https://gravitonio.blogspot.com.cy/2011/11/blog-post.html Deltahacker https://deltahacker.gr/ti-zitoun-epitelous-i-proti/ Βικιπαίδεια https://en.wikipedia.org/wiki/prime_number ICSD http://www.icsd.aegean.gr/website_files/proptyxiako/99289356.pdf Κώστας Λιμνιώτης http://cgi.di.uoa.gr/~klimn/cryptography/lab/lab-6.pdf 2 ο ΕΠΑΛ Χαλανδρίου http://bpliroftest.weebly.com/iotasigmatauomicronrhoiotakappaepsilonsig ma-alphanualphaphiomicronrhoepsilonsigma.html 18
19