Τα μαθηματικά των αρχαίων Ελλήνων στις πιο σύγχρονες μεθόδους κρυπτογράφησης



Σχετικά έγγραφα
ΑΣΥΜΜΕΤΡΗ ΚΡΥΠΤΟΓΡΑΦΙΑ Lab 3

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

Αριθμοθεωρητικοί Αλγόριθμοι

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

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

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

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

Στοιχεία Θεωρίας Αριθμών

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

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

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

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

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

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

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

* * * ( ) mod p = (a p 1. 2 ) mod p.

Κρυπτογραφία. Έλεγχος πρώτων αριθών-παραγοντοποίηση. Διαφάνειες: Άρης Παγουρτζής Πέτρος Ποτίκας

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

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

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

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

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

Οι Φυσικοί Αριθμοί. Παρατήρηση: Δεν στρογγυλοποιούνται αριθμοί τηλεφώνων, Α.Φ.Μ., κωδικοί αριθμοί κλπ. Πρόσθεση Φυσικών αριθμών

Υπολογιστικά & Διακριτά Μαθηματικά

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

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

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

project RSA και Rabin-Williams

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

11. Ποιες είναι οι άμεσες συνέπειες της διαίρεσης;

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

Υπολογιστικά & Διακριτά Μαθηματικά

Πρόβληµα 2 (15 µονάδες)

2 o Καλοκαιρινό σχολείο Μαθηµατικών Νάουσα 2008

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

KΕΦΑΛΑΙΟ 1 ΧΡΗΣΙΜΕΣ ΜΑΘΗΜΑΤΙΚΕΣ ΕΝΝΟΙΕΣ. { 1,2,3,..., n,...

Υπολογισμός της δύναμης z=x b modn

Αριθµοθεωρητικοί Αλγόριθµοι και το. To Κρυπτοσύστηµα RSA

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

Αριθμητική Ανάλυση & Εφαρμογές

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

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

ΚΕΦΑΛΑΙΟ 2 Ο «ΟΡΙΟ ΣΥΝΕΧΕΙΑ ΣΥΝΑΡΤΗΣΗΣ»

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

F 5 = (F n, F n+1 ) = 1.

2ογελ ΣΥΚΕΩΝ 2ογελ ΣΥΚΕΩΝ ΠΟΛΥΩΝΥΜΙΚΕΣ ΣΥΝΑΡΤΗΣΕΙΣ Β Λυκει(ου ΠΟΛΥΩΝΥΜΙΚΕΣ ΣΥΝΑΡΤΗΣΕΙΣ

7. O κβαντικός αλγόριθμος του Shor

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

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

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

Κρυπτογραφία. Εργαστηριακό μάθημα 10 (Επαναληπτικές ασκήσεις)

Τμήμα Τεχνολόγων Γεωπόνων - Φλώρινα

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

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

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

Κεφάλαιο 8: Προγραμματίζοντας αλγορίθμους έξυπνα και δημιουργικά

Ε π ι μ έ λ ε ι α Κ Ο Λ Λ Α Σ Α Ν Τ Ω Ν Η Σ

Ορισμένες σελίδες του βιβλίου

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

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

Μαθηματικά Γ Γυμνασίου

ΜΑΘΗΜΑΤΙΚΑ Α ΓΥΜΝΑΣΙΟΥ

W i. Subset Sum Μια παραλλαγή του προβλήματος knapsack είναι το πρόβλημα Subset Sum, το οποίο δεν λαμβάνει υπόψιν την αξία των αντικειμένων:

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

2.1 Διαιρετότητα, ισοϋπόλοιποι αριθμοί. q Z, a = b q + r.

Υπολογιστικά & Διακριτά Μαθηματικά

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

ΠΕΡΙΕΧΟΜΕΝΑ 1 ΠΡΑΓΜΑΤΙΚΟΙ ΑΡΙΘΜΟΙ ΑΚΟΛΟΥΘΙΕΣ ΑΡΙΘΜΩΝ EΞΙΣΩΣΕΙΣ...47 ΠΡΟΛΟΓΟΣ... 9

9 Πολυώνυμα Διαίρεση πολυωνύμων

Ποσοτικές Μέθοδοι στη Διοίκηση Επιχειρήσεων ΙΙ Σύνολο- Περιεχόμενο Μαθήματος

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

Μ Α Θ Η Μ Α Τ Ι Κ Α Γ ΓΥΜΝΑΣΙΟΥ ΖΕΡΒΟΣ ΜΑΝΟΛΗΣ

ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ Ασκησεις - Φυλλαδιο 7

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

Πολυωνυμικές εξισώσεις και ανισώσεις Εξισώσεις και ανισώσεις που ανάγονται σε πολυωνυμικές

Κεφάλαιο 2. Συστήματα Αρίθμησης και Αναπαράσταση Πληροφορίας. Περιεχόμενα. 2.1 Αριθμητικά Συστήματα. Εισαγωγή

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

Παντελής Μπουμπούλης, M.Sc., Ph.D. σελ. 2 math-gr.blogspot.com, bouboulis.mysch.gr

1 Αριθμητική κινητής υποδιαστολής και σφάλματα στρογγύλευσης

ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ Ασκησεις Επαναληψης

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #4

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

Θεωρια Αριθµων Προβληµατα

ΜΑΘΗΜΑΤΙΚΑ Α ΓΥΜΝΑΣΙΟΥ

Μαθηματικά. Ενότητα 2: Δεκαδικοί αριθμοί, κλάσματα, δυνάμεις, ρίζες και ποσοστά. Σαριαννίδης Νικόλαος Τμήμα Λογιστικής και Χρηματοοικονομικής

( ) ( ) Τοα R σημαίνει ότι οι συντελεστές δεν περιέχουν την μεταβλητή x. αντικ σταση στο που = α. [ ο αριθµ ός πουτο µηδεν ίζει

Χρήστος Ι. Σχοινάς Αν. Καθηγητής ΔΠΘ. Συμπληρωματικές σημειώσεις για το μάθημα: «Επιχειρησιακή Έρευνα ΙΙ»

7.Αριθμητική παράσταση καλείται σειρά αριθμών που συνδέονται με πράξεις μεταξύ τους. Το αποτέλεσμα της αριθμητικής παράστασης ονομάζεται τιμή της.

Γράψτε ένα πρόγραμμα που θα προσομοιώνει τη ρίψη ενός νομίσματος και θα εμφανίζει στην οθόνη Κορώνα» ή «Γράμματα».

β) 3 n < n!, n > 6 i i! = (n + 1)! 1, n 1 i=1

ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ. Ασκησεις Επαναληψης. ιδασκων: Α. Μπεληγιάννης Ιστοσελιδα Μαθηµατος :

2.3 Πολυωνυμικές Εξισώσεις

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

a n = 3 n a n+1 = 3 a n, a 0 = 1

ΠΑΡΑΓΡΑΦΟΣ 1. 2 ΠΡΟΣΘΕΣΗ ΑΦΑΙΡΕΣΗ ΚΑΙ ΠΟΛΛΑΠΛΑΣΙΑΣΜΟΣ ΦΥΣΙΚΩΝ ΑΡΙΘΜΩΝ

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

ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ. Ασκησεις - Επανάληψης. ιδασκων: Α. Μπεληγιάννης Ιστοσελιδα Μαθηµατος :

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

Οι φυσικοί αριθμοί. Παράδειγμα

Transcript:

Τα μαθηματικά των αρχαίων Ελλήνων στις πιο σύγχρονες μεθόδους κρυπτογράφησης Γεώργιος Κοτζάμπασης Εκπαιδευτήρια «Ο Απόστολος Παύλος» georgekotzampasis@gmail.com Επιβλέπων καθηγητής: Λάζαρος Τζήμκας Καθηγητής Πληροφορικής, Εκπαιδευτήρια «Ο Απόστολος Παύλος» tzimkaslazaros@gmail.com ΠΕΡΙΛΗΨΗ Όταν καθόμαστε μπροστά στον ηλεκτρονικό υπολογιστή μας και στέλνουμε ένα μήνυμα σε έναν φίλο μας, δύσκολα μπορούμε να φανταστούμε ότι το απόρρητο της επικοινωνίας μας προστατεύεται από μεθόδους κρυπτογράφησης, βασισμένες σε μαθηματικά που θεμελιώθηκαν στην Αρχαία Ελλάδα. Και ακόμα πιο σίγουρο είναι ότι όταν ο Ευκλείδης συνέτασσε το μνημειώδες έργο του «Στοιχεία» γύρω στο 300 π. Χ. δεν φανταζόταν ότι με την μελέτη του στους πρώτους αριθμούς έβαζε τα θεμέλια για την ασφάλεια όλων των επικοινωνιών στη σύγχρονη εποχή. Η μέθοδος κρυπτογράφησης RSA που ανέπτυξαν το 1977 οι Rivest, Shamir και Adleman και θεωρείται σήμερα η πιο διαδεδομένη και ασφαλέστερη μορφή κρυπτογράφησης, στηρίζεται στους πρώτους αριθμούς και στη δυσκολία εύρεσης πρώτων παραγόντων για πολύ μεγάλους αριθμούς. Στην εργασία γίνεται αρχικά μια ιστορική αναδρομή της κρυπτογραφίας και στη συνέχεια παρουσιάζεται ο μηχανισμός με τον οποίο λειτουργεί η κρυπτογράφηση και η αποκρυπτογράφηση με το σύστημα RSA και αναλύεται το μαθηματικό υπόβαθρο στο οποίο στηρίζεται. Γίνεται αναφορά στους τρόπους επίθεσης στο RSA και μελετάται ιδιαίτερα η περίπτωση της επίθεσης με επαναληπτική κρυπτογράφηση. ΛΕΞΕΙΣ ΚΛΕΙΔΙΑ: RSA, κρυπτογράφηση, αποκρυπτογράφηση, θεωρία αριθμών, modulo αριθμητική. ΕΙΣΑΓΩΓΗ Κρυπτογραφία ονομάζεται η μελέτη μεθόδων κωδικοποίησης μηνυμάτων, ώστε να μπορούν να διαβάζονται μόνο από τον επιθυμητό παραλήπτη και κανέναν άλλο. Εξελίχθηκε παράλληλα με τη στεγανογραφία, την τέχνη της απόκρυψης μηνυμάτων και της μυστικής επικοινωνίας.

Η Ιστορία από τους αρχαίους ακόμα χρόνους είναι γεμάτη από προσπάθειες να μεταδοθούν μυστικά μηνύματα. Ο Ηρόδοτος αναφέρει ότι ο Δημάρατος, ένας Έλληνας που είχε εξοριστεί στην Περσία, ειδοποίησε το 480 π.χ. τους Σπαρτιάτες για την επικείμενη επίθεση του Ξέρξη στον ελλαδικό χώρο, γράφοντας το μήνυμά του σε δύο ξύλινες πτυσσόμενες πινακίδες και καλύπτοντάς το με κερί, ώστε να το αποκρύψει από τους Πέρσες φρουρούς. Η συντριβή του Περσικού στόλου στη ναυμαχία της Σαλαμίνας ήταν το αποτέλεσμα μιας έξυπνης παγίδας των Ελλήνων, την οποία κατάφεραν και προετοίμασαν χάρη στην ειδοποίηση του Δημάρατου. Η στεγανογραφία χρησιμοποιήθηκε για πολλούς αιώνες και με πολλούς ευφάνταστους τρόπους: από τη μετάδοση μηνυμάτων γραμμένων στο ξυρισμένο κεφάλι κάποιου αγγελιοφόρου που μετά καλύπτονταν από τα μαλλιά του, μέχρι τη χρησιμοποίηση αόρατου μελανιού. Υπήρχε όμως πάντα ο κίνδυνος κάποιος σχολαστικός φρουρός να ανακαλύψει το μήνυμα και να αποκαλυφθεί το περιεχόμενό του. Για αυτόν ακριβώς το λόγο παράλληλα αναπτύχθηκε και η κρυπτογραφία. Με την κωδικοποίηση ενός μηνύματος, ακόμα κι αν αυτό έπεφτε στα χέρια του εχθρού, τουλάχιστον δεν θα μπορούσε να διαβαστεί. Ο Ιούλιος Καίσαρας, στα μηνύματα που έστελνε στους στρατηγούς του, χρησιμοποιούσε μία από τις πρώτες μορφές κρυπτογράφησης, αυτήν της γραμματικής υποκατάστασης, της αντικατάστασης δηλαδή κάθε γράμματος της αλφαβήτου με κάποιο άλλο. Στο πέρασμα των αιώνων η κρυπτογραφία εξελίχθηκε σε επιστήμη, καθώς υπήρχε η ανάγκη για ολοένα ισχυρότερες μεθόδους κρυπτογράφησης. Η ανάγκη αυτή υπαγορεύονταν από την παράλληλη πρόοδο της κρυπτανάλυσης, της επιστήμης αποκωδικοποίησης των κρυπτογραφημένων μηνυμάτων. Οι κρυπτογράφοι ανακάλυπταν συνεχώς νέους ισχυρότερους τρόπους κωδικοποίησης και οι κρυπταναλυτές κατάφερναν πάντα, αργά ή γρήγορα, να σπάνε τους κώδικες αυτούς και να αποκαλύπτουν τα μυστικά μηνύματα. Ο αδιάκοπος αυτός αγώνας μεταξύ τους κορυφώθηκε κατά τη διάρκεια του πρώτου και του δεύτερου παγκοσμίου πολέμου, οπότε οι στρατοί των αντίπαλων παρατάξεων είχαν αρχίσει να χρησιμοποιούν τη νέα τότε εφεύρεση της ασύρματης επικοινωνίας και μάλιστα έκρινε σε μεγάλο βαθμό την έκβαση των πολέμων αυτών. Η ανάγκη για ασφαλείς επικοινωνίες για πολεμικούς σκοπούς έδωσε μεγάλη ώθηση στην ανάπτυξη της κρυπτογραφίας και της κρυπτανάλυσης. Οι μυστικές υπηρεσίες των ισχυρών κρατών επιστράτεψαν τα λαμπρότερα μυαλά και ικανότερους κρυπταναλυτές ώστε να αποκωδικοποιούν τα μηνύματα των αντιπάλων τους. Η πραγματική επανάσταση όμως στην επιστήμη της κρυπτογράφησης έγινε μέσα στις τελευταίες δεκαετίες και συμπίπτει με την έναρξη της ανάπτυξης της μικροηλεκτρονικής και των υπολογιστικών συστημάτων. Η αλματώδης πρόοδος της τεχνολογίας και η έλευση του διαδικτύου έφερε τρομακτικές αλλαγές στον τρόπο που οι άνθρωποι επικοινωνούν και συναλλάσσονται εμπορικά. Η ανάγκη για ασφάλεια στις διαδικτυακές συναλλαγές έφερε στο προσκήνιο και ένα πρόβλημα των κρυπτογραφικών μεθόδων που χρησιμοποιούνταν μέχρι εκείνη τη στιγμή, αυτό της διανομής των κλειδιών κρυπτογράφησης. Αν ήθελε μια εταιρία στην Αμερική να επικοινωνήσει - στέλνοντας ευαίσθητα δεδομένα - με έναν πελάτη της στην Αγγλία, θα έπρεπε πρώτα να ανταλλάξουν κλειδιά κρυπτογράφησης, κάτι που απαιτούσε την φυσική επαφή των δύο μερών, διότι ο παραλήπτης δεν μπορεί να διαβάσει το μήνυμα αν δεν διαθέτει το κλειδί με το οποίο έγινε η κρυπτογράφηση.

Το σύστημα αυτό της κρυπτογράφησης στο οποίο υπάρχει ένα κοινό κλειδί που μοιράζονται ο αποστολέας με τον παραλήπτη ονομάζεται συμμετρικό κρυπτοσύστημα και η ασφάλειά του βασίζεται στη μυστικότητα του κλειδιού. Με τη διάδοση του διαδικτύου και την εισβολή των ηλεκτρονικών υπολογιστών και στους οικιακούς χρήστες, άρχισε να ωριμάζει η ιδέα της επινόησης ενός συστήματος ασύμμετρης κρυπτογράφησης, όπου τα δύο μέρη δεν θα ήταν απαραίτητο να ανταλλάξουν κλειδιά κρυπτογράφησης πριν επικοινωνήσουν. Η αναζήτηση ενός τέτοιου συστήματος αποτέλεσε το αντικείμενο έρευνας επιστημόνων από το χώρο των υπολογιστών, της κρυπτανάλυσης αλλά και των μαθηματικών, καθώς το ζητούμενο ήταν να βρεθεί μία μονοσήμαντη συνάρτηση για την κρυπτογράφηση η οποία να μην μπορεί να αντιστραφεί, παρά μόνο αν κάποιος γνώριζε κάποιες επιπλέον πληροφορίες. Οι μαθηματικοί έστρεψαν το βλέμμα τους στη θεωρία αριθμών και στους ισοϋπόλοιπους αριθμούς, που πρόσφεραν τις επιθυμητές ιδιότητες. Την πιο ικανοποιητική λύση στο πρόβλημα έδωσε τελικά μια ομάδα από δύο επιστήμονες των υπολογιστών και έναν μαθηματικό. Οι Rivest, Shamir και Adleman ανέπτυξαν το 1978 στο Massachusetts Institute of Technology ένα σύστημα στο οποίο υπάρχει ένα δημόσιο κλειδί που κοινοποιείται σε κάθε ενδιαφερόμενο, και με το οποίο γίνεται η κρυπτογράφηση, με μια συνάρτηση που δεν μπορεί να αντιστραφεί. Για να μπορεί να γίνει η αποκρυπτογράφηση χρειάζεται ένα ιδιωτικό (και μυστικό) κλειδί το οποίο διαθέτει μόνο ο παραλήπτης. Ο συνδυασμός αυτός ενός δημόσιου κλειδιού (για την κρυπτογράφηση) διαθέσιμου στον καθένα που θέλει να στείλει ένα μήνυμα και ενός ιδιωτικού (για την αποκρυπτογράφηση) διαθέσιμου μόνο στον παραλήπτη, έλυσε το πρόβλημα της ανταλλαγής των κλειδιών και έκανε εφικτή την ασύμμετρη κρυπτογράφηση. Η μέθοδος RSA όπως ονομάστηκε από τα αρχικά των ονομάτων των εμπνευστών της, αν και παρουσιάστηκε το 1978, χρησιμοποιείται και σήμερα και σε αυτήν οφείλουμε το γεγονός ότι μπορούμε να χρησιμοποιούμε με ασφάλεια διαδικτυακές εφαρμογές όπως το ηλεκτρονικό ταχυδρομείο, ηλεκτρονικές αγορές, τραπεζικές υπηρεσίες κ.ά. ΜΑΘΗΜΑΤΙΚΟ ΥΠΟΒΑΘΡΟ Ισοϋπόλοιποι αριθμοί Ορισμός: Έστω α, b, m θετικοί ακέραιοι με m > 1. Λέμε ότι ο α είναι ισότιμος (ή ισοδύναμος ή ισοϋπόλοιπος) με τον b μόντουλο m, αν οι αριθμοί α και b αφήνουν το ίδιο υπόλοιπο, όταν διαιρεθούν δια m. Συμβολίζουμε α b(mod m) Ο φυσικός m ονομάζεται μέτρο της ισοτιμίας Ο παραπάνω ορισμός είναι ισοδύναμος με την ακόλουθη πρόταση: Πρόταση 1: Οι ακέραιοι α και b είναι ισότιμοι modulo m, αν και μόνο αν m / α b (m διαιρεί τη διαφορά α b). Ιδιότητες: α α(mod m), για κάθε α Z (αυτοπαθητική) αν α b(mod m), τότε και b α(mod m) (συμμετρική ιδιότητα) αν α b(mod m) και b c(mod m), τότε και α c(mod m) (μεταβατική ιδιότητα) Θεώρημα 1: Αν α b(mod m) και c d(mod m) τότε: α + c (b + d)(mod m) α c (b d)(mod m)

Πόρισμα 1: Αν α b(mod m) τότε: α n b n (mod m), για κάθε n N Πρώτοι αριθμοί Ορισμός 1: Πρώτος ονομάζεται ένας φυσικός αριθμός α (διαφορετικός από τον 1) ο οποίος δεν έχει άλλους θετικούς διαιρέτες εκτός από τον εαυτό του και τη μονάδα. (Ο ορισμός μπορεί να επεκταθεί και στο σύνολο των ακεραίων). Κάθε φυσικός αριθμός >1 που δεν είναι πρώτος ονομάζεται σύνθετος. Ορισμός 2: Πρώτοι μεταξύ τους (ή σχετικά πρώτοι) ονομάζονται δύο ακέραιοι αριθμοί α, β των οποίων ο Μέγιστος Κοινός Διαιρέτης είναι ίσος με 1. Συμβολίζουμε (α, β) = 1 Η συνάρτηση Euler Ορισμός: Είναι η συνάρτηση που απεικονίζει κάθε φυσικό αριθμό n στο πλήθος των φυσικών που είναι μικρότεροι ή ίσοι του n και σχετικά πρώτοι με αυτόν. Συμβολίζουμε με φ(n) Πρόταση: Αν p πρώτος, τότε φ(p) = p 1 (που ισχύει αφού όλοι οι φυσικοί που είναι μικρότεροι του p είναι σχετικά πρώτοι με αυτόν) Θεώρημα: Η συνάρτηση Euler είναι πολλαπλασιαστική, δηλαδή ικανοποιεί τη σχέση: φ(m n) = φ(m) φ(n), για κάθε m, n N με (m, n) = 1 Σύμφωνα με τα προηγούμενα αν p, q πρώτοι αριθμοί τότε είναι και σχετικά πρώτοι άρα: φ(p q) = φ(p) φ(q) = (p 1) (q 1) Αλγόριθμος Ευκλείδη Ο αλγόριθμος του Ευκλείδη είναι μια μέθοδος με την οποία μπορούμε μέσω μιας σειράς διαδοχικών διαιρέσεων να βρούμε τον μέγιστο κοινό διαιρέτη δύο ακεραίων αριθμών α και β, αλλά επιπλέον επεκτείνεται και μας δίνει τον τρόπο με τον οποίο ο μέγιστος κοινός διαιρέτης γράφεται σαν γραμμικός συνδυασμός των α, β. Ο αλγόριθμος για την εύρεση του μέγιστου κοινού διαιρέτη δύο θετικών ακεραίων συνίσταται στα παρακάτω βήματα: 1. Διαιρούμε τον μεγαλύτερο από τους δύο αριθμούς α, β με τον μικρότερο (έστω β) και βρίσκουμε το υπόλοιπο της διαίρεσης υ. 2. Αν το υπόλοιπο είναι 0, ο β είναι ο ΜΚΔ των δύο αριθμών δηλ. (α, β) = β, αλλιώς αντικαθιστούμε τον μεγαλύτερο με το υπόλοιπο υ (δηλ. (α, β) = (β, υ)) και συνεχίζουμε με το βήμα 1. Παράδειγμα: Για να βρούμε τον μέγιστο κοινό διαιρέτη των αριθμών 1219 και 901: Διαιρούμε τους δύο αριθμούς και βρίσκουμε πηλίκο 1 και υπόλοιπο 318, άρα 1219 = 901 1 + 318 (1) Έτσι έχουμε ότι (1219, 901) = (901, 318) Διαιρούμε τους 901 και 318 και βρίσκουμε πηλίκο 2 και υπόλοιπο 265, άρα 901 = 318 2 + 265 (2) Έτσι έχουμε ότι (901, 318) = (318, 265) Διαιρούμε τους 318 και 265 και βρίσκουμε πηλίκο 1 και υπόλοιπο 53, άρα 318 = 265 1 + 53 (3)

Έτσι έχουμε ότι (318, 265) = (265, 53) Διαιρούμε τους 265 και 53 και βρίσκουμε πηλίκο 5 και υπόλοιπο 0, άρα βρήκαμε ότι (265, 53) = 53. Για να γράψουμε τον μέγιστο κοινό διαιρέτη σαν γραμμικό συνδυασμό των 1219 και 901 (δηλ. 53 = 1219x + 901y) λύνουμε τις σχέσεις που προέκυψαν από τις διαιρέσεις ως προς τα υπόλοιπα, ξεκινώντας από την τελευταία σχέση με μη μηδενικό υπόλοιπο: (3) 53 = 318 265 1 (λόγω της σχέσης (2)) 53 = 318 (901 318 2) 1 53 = 318 901 + 318 2 53 = 318 3 901 (λόγω της σχέσης (1)) 53 = (1219 901 1) 3 901 53 = 1219 3 901 3 901 53 = 1219 3 901 4 Θεωρήματα Euler-Fermat Θεώρημα (Euler-Fermat): Αν α, m είναι ακέραιοι πρώτοι μεταξύ τους, τότε α φ(m) 1(mod m) Μικρό θεώρημα του Fermat: Για κάθε ακέραιο α και κάθε πρώτο p ισχύει: α p α(mod p) ΚΡΥΠΤΟΓΡΑΦΗΣΗ RSA Η μέθοδος βασίζεται στη modulo αριθμητική και κυρίως στην παρακάτω πρόταση: Πρόταση: Αν p, q διακεκριμένοι πρώτοι και d e 1mod(p 1)(q 1), τότε c (c e ) d (mod pq) Θα εξετάσουμε λεπτομερώς την μέθοδο RSA χρησιμοποιώντας ένα παράδειγμα. Ας υποθέσουμε ότι ο Ευγένιος και η Ανθή θέλουν να ανταλλάξουν κρυπτογραφημένα μηνύματα και η Ωραιοζήλη προσπαθεί να τα υποκλέψει. Ας υποθέσουμε ότι ο Ευγένιος περιμένει ένα μήνυμα από την Ανθή. Ο Ευγένιος επιλέγει δύο μεγάλους πρώτους αριθμούς p και q. Για να είναι ασφαλής η κρυπτογράφηση οι αριθμοί πρέπει να είναι τεράστιοι, αλλά για το παράδειγμά μας ας υποθέσουμε ότι ο Ευγένιος διαλέγει τους αριθμούς p = 17 και q = 11 και υπολογίζει το γινόμενό τους Ν = p q = 17 11 = 187. Στη συνέχεια υπολογίζει τη συνάρτηση του Euler

φ(ν). Είναι φ(ν) = φ(p q) = φ(p) φ(q) = (p 1)(q 1) = 16 10 = 160. Τώρα ο Ευγένιος επιλέγει έναν ακόμη αριθμό e σχετικά πρώτο με τον φ(ν), έστω e = 7 και δημοσιεύει τους Ν και e σε κάτι αντίστοιχο με έναν τηλεφωνικό κατάλογο. Η Ανθή και κάθε άλλος ενδιαφερόμενος μπορούν να βρουν τους δύο αυτούς αριθμούς για να κρυπτογραφήσουν ένα μήνυμα προς τον Ευγένιο. Κρυπτογράφηση: Για να κρυπτογραφηθεί ένα μήνυμα πρέπει πρώτα να μετατραπεί σε έναν αριθμό τον m. Η κρυπτογράφηση γίνεται με τον τύπο c m e ( mod N). Αν λοιπόν η Ανθή θέλει να στείλει τη λέξη Hi θα πρέπει να μετατρέψει ένα-ένα τα γράμματα σε αριθμούς σύμφωνα με τον κώδικα ASCII (ή κάποιο άλλο προσυμφωνημένο τρόπο) και στη συνέχεια να χρησιμοποιήσει τη συνάρτηση κρυπτογράφησης. Το πρώτο γράμμα της λέξης Hi (δηλαδή το Η) στον κώδικά ASCII αντιστοιχεί στον αριθμό 72, επομένως m = 72 και c 72 7 (mod187). Ο υπολογισμός αυτός δεν είναι εύκολο να γίνει ούτε καν από έναν υπολογιστή, ειδικά αν οι αριθμοί είναι μεγάλοι. Χρησιμοποιείται γι αυτό ένα τέχνασμα που βασίζεται στις ιδιότητες πολλαπλασιασμού και δυνάμεων ισοϋπόλοιπων αριθμών. Συγκεκριμένα, γράφουμε τον e = 7 σε δυαδική μορφή: 7 = 111 2 που σημαίνει ότι 7 = 1 2 0 + 1 2 1 + 1 2 2 = 1 + 2 + 4. Άρα 72 7 = 72 1 72 2 72 4, επομένως 72 7 (mod187) = (72 1 72 2 72 4 )(mod187) = [72 1 (mod187) 72 2 (mod187) 72 4 (mod187)]. Το 72 1 (mod187) υπολογίζεται εύκολα κάνοντας τη διαίρεση 72:187. Το υπόλοιπο είναι το 72, επομένως 72 1 (mod187) = 72. Για το 72 2 (mod187) έχουμε 72 2 (mod187) = 5184(mod187) = 135 αφού το υπόλοιπο στη διαίρεση 5184:187 είναι 135. Τέλος για το 72 4 (mod187) έχουμε: 72 4 (mod187) = (72 2 ) 2 (mod187) = (72 2 (mod187)) 2 (mod187) = 135 2 (mod187) = 18225(mod187) = 86. (86 είναι το υπόλοιπο της διαίρεσης 18225:187). Έτσι τελικά: c = (72 135 86)(mod187) = 30. Στην πράξη υψώνουμε κάθε φορά στο τετράγωνο, βρίσκουμε τα υπόλοιπα των διαιρέσεων με τον Ν και πολλαπλασιάζουμε μεταξύ τους τα αποτελέσματα εκείνα που αντιστοιχούν στα μη μηδενικά ψηφία του e στη δυαδική του μορφή. Για να γίνει απόλυτα κατανοητό αυτό ας δούμε ένα ακόμη παράδειγμα με διαφορετική τιμή για τον e έστω e = 17. Αυτός στη δυαδική του μορφή γράφεται 17 = 10001 2 και c 72 17 (mod187) = (72 1 72 16 )(mod187). Στον παρακάτω πίνακα φαίνεται η διαδικασία υπολογισμού: e 1 72 72(mod187) 72 0 72 2 72 2 (mod187) 135 0 72 4 135 2 (mod187) 86 0 72 8 86 2 (mod187) 103 1 72 16 103 2 (mod187) 137 Άρα c (72 137)(mod187) c = 140.

Ας επιστρέψουμε στο προηγούμενο παράδειγμα και στην τιμή c = 30 που βρήκαμε για e = 7. Το 30 είναι το κρυπτογραφημένο μήνυμα που στέλνει η Ανθή στον Ευγένιο για το γράμμα H. Αποκρυπτογράφηση: Ο Ευγένιος λαμβάνει αυτό το μήνυμα και περνάει στην αποκρυπτογράφηση, δηλαδή στην αντιστροφή της διαδικασίας. Για να γίνει αυτό χρησιμοποιείται η πρόταση που αναφέραμε στην αρχή της ενότητας. Θυμηθείτε ότι c (c e ) d (mod pq) για e και d τέτοια ώστε e d 1mod(p 1)(q 1). Εφόσον ο Ευγένιος έχει ήδη τον αριθμό m e (modn) που του έστειλε η Ανθή, αρκεί να υπολογίσει τον ακέραιο d τέτοιον ώστε 7 d 1(mod160) ή αλλιώς 7 d = π 160 + 1 (όπου π το πηλίκο της διαίρεσης του 7 d με το 160). Ο d αποτελεί το ιδιωτικό κλειδί αποκρυπτογράφησης και υπολογίζεται με το επεκταμένο αλγόριθμο του Ευκλείδη: Κάνουμε τη διαίρεση 160:7 και γράφουμε την ταυτότητα της ευκλείδειας διαίρεσης: 160 = 7 22 + 6 (1). Επομένως (160, 7) = (7, 6). Συνεχίζουμε με τη διαίρεση 7:6 απ όπου προκύπτει 7 = 6 1 + 1 (2). Έτσι (7, 6) = (6, 1) = 1. Για να βρούμε τον d θα πρέπει πρώτα να γράψουμε τον 1 σαν γραμμικό συνδυασμό των 160 και 7 ξεκινώντας από τη σχέση (2). Πράγματι: (2) 1 = 7 6 1 (λόγω της σχέσης (1)) 1 = 7 (160 7 22) 1 1 = 7 160 + 7 22 1 = 7 23 160 1. Η σχέση αυτή γράφεται 7 23 = 160 1 + 1, άρα d = 23. Το μόνο που χρειάζεται πλέον να κάνει ο Ευγένιος είναι να χρησιμοποιήσει τον τύπο m c d (modn) οπότε m 30 23 (mod187). Για τον υπολογισμό του m χρησιμοποιούμε το τέχνασμα που αναφέραμε παραπάνω και φαίνεται συνοπτικά στον επόμενο πίνακα: d 1 30 30(mod187) 30 1 30 2 30 2 (mod187) 152 1 30 4 152 2 (mod187) 103 0 30 8 103 2 (mod187) 137 1 30 16 137 2 (mod187) 69 Παρατηρείστε ότι ο εκθέτης d = 23 = 10111 2 γράφεται στον πίνακα από το λιγότερο σημαντικό ψηφίο του προς το περισσότερο σημαντικό πηγαίνοντας από πάνω προς τα κάτω. Τελικά m (30 152 103 69)(mod187) = 72. Να σημειώσουμε επίσης ότι αν αυτό το τελευταίο γινόμενο έχει πολλούς παράγοντες, μπορούμε για την ευκολία των υπολογισμών να τους παίρνουμε ανά δύο, να υπολογίζουμε τους ισότιμους mod187 και στη συνέχεια να πολλαπλασιάζουμε (πάλι ανά δύο) τα γινόμενα που προκύπτουν.

Ασφάλεια του RSA: Η μέθοδος RSA θεωρείται σήμερα ασφαλής μέθοδος κρυπτογράφησης, όταν χρησιμοποιούνται πολύ μεγάλοι πρώτοι αριθμοί p και q (αριθμοί με τουλάχιστον 1024 ψηφία) και αυτό διότι είναι πρακτικά αδύνατο μέσα σε λογικό χρονικό διάστημα να παραγοντοποιηθεί το γινόμενό τους Ν. Βέβαια στην περίπτωση που ανακαλυφθεί αλγόριθμος (ή αν έχει ήδη ανακαλυφθεί) ο οποίος παραγοντοποιεί έναν ακέραιο αριθμό σε πολυωνυμικό χρόνο, το RSA παύει να είναι ασφαλές. Για τη μεγαλύτερη ασφάλεια του RSA οι πρώτοι αριθμοί p και q πρέπει να είναι αριθμοί με το ίδιο περίπου μήκος, αλλά και να διαφέρουν αρκετά μεταξύ τους, διότι αν η διαφορά τους είναι μικρή τότε βρίσκονται κοντά στην τετραγωνική ρίζα του N, άρα μπορούν να προσδιοριστούν με δοκιμές ξεκινώντας από την τετραγωνική ρίζα του Ν και πηγαίνοντας προς τα κάτω. Επίσης το κλειδί κρυπτογράφησης e πρέπει να είναι αρκετά μεγάλο (θεωρείται ασφαλές η τιμή του να είναι μεγαλύτερη του ενός τρίτου της τέταρτης ρίζας του Ν). Επιθέσεις στον RSA: Εκτός από την παραγοντοποίηση του Ν, υπάρχουν διάφορες επιθέσεις που μπορούν να γίνουν ώστε να σπάσει ένα κρυπτογραφημένο μήνυμα με RSA. Μία από αυτές είναι η επίθεση σε κοινό modulus που είναι εφικτή όταν στέλνονται μηνύματα σε μια ομάδα επικοινωνούντων με κοινό το κλειδί Ν και διαφορετικό τον εκθέτη e. Αν ο αντίπαλος έχει γνώση των δύο κρυπτοκειμένων και των δύο εκθετών, μπορεί με χρήση του επεκταμένου αλγόριθμου του Ευκλείδη να ανακτήσει το μήνυμα [Κάτος Στεφανίδης 2003]. Μία δεύτερη επίθεση είναι αυτή της επαναληπτικής κρυπτογράφησης, η οποία βασίζεται στην ιδιότητα της περιοδικότητας της συνάρτησης κρυπτογράφησης. Αν ο αντίπαλος υποκλέψει το κρυπτοκείμενο και εφαρμόσει επαναληπτικές κρυπτογραφήσεις, κάποια στιγμή θα εμφανιστεί το αρχικό μήνυμα [Κάτος Στεφανίδης 2003]. Μία τρίτη μέθοδος που ανακαλύφτηκε πρόσφατα από επιστήμονες του Πανεπιστημίου του Michigan βασίζεται στο πείραγμα της τροφοδοσίας μιας συσκευής που χρησιμοποιεί κρυπτογράφηση RSA ώστε να δημιουργηθούν μεταβολές στην τάση που θα οδηγήσουν σε σφάλματα μετάδοσης. Αναλύοντας τα σφάλματα αυτά οι ερευνητές κατάφεραν να αποκαλύψουν το ιδιωτικό κλειδί κρυπτογράφησης d σε μόλις 100 ώρες [Pellegrini et al. 2010]. Παρακάτω μελετάται η περίπτωση της επίθεση της επαναληπτικής κρυπτογράφησης. ΜΕΛΕΤΗ ΠΕΡΙΠΤΩΣΗΣ ΜΕΘΟΔΟΛΟΓΙΑ Η συνάρτηση c m e (modn) με την οποία γίνεται η κρυπτογράφηση ενός μηνύματος παρουσιάζει μια περιοδικότητα, η οποία μπορεί να χρησιμοποιηθεί για να ανακτηθεί το αρχικό μήνυμα m με τον εξής τρόπο: Η Ανθή στέλνει ένα κρυπτογραφημένο μήνυμα c 0 στον Ευγένιο και η Ωραιοζήλη το υποκλέπτει. Εφαρμόζει στο c 0 την συνάρτηση κρυπτογράφησης και βρίσκει το c 1 c 0 e (modn). Επαναλαμβάνει την διαδικασία βρίσκοντας κάθε φορά το c i (c i 1 ) e (modn) όπου i = 2, 3,. Εξαιτίας της περιοδικότητας της συνάρτησης κρυπτογράφησης, θα εμφανιστεί κάποιο c k που θα είναι ίσο με το αρχικό μήνυμα m.

Βέβαια η Ωραιοζήλη θα το καταλάβει αυτό στην επόμενη επανάληψη οπότε θα εμφανιστεί το μήνυμα c 0 που υπέκλεψε. Ας δούμε και ένα αριθμητικό παράδειγμα με Ν = 55 (προκύπτει από τους p = 5 και q = 11) και e = 3. Έστω ότι το αρχικό μήνυμα είναι m = 2. Τότε έχουμε διαδοχικά: c 0 2 3 (mod55) = 8, c 1 8 3 (mod55) = 17, c 2 17 3 (mod55) = 18 και c 3 18 3 (mod55) = 2. Παρατηρούμε ότι με 4 επαναλήψεις βρήκαμε το αρχικό μήνυμα. Το πλήθος των επαναλήψεων που θα χρειαστούν μέχρι να εμφανιστεί το αρχικό μήνυμα εξαρτάται από την επιλογή των p και q. Για να μεγιστοποιήσουμε το πλήθος των επαναλήψεων θα πρέπει να επιλέξουμε τους p και q έτσι ώστε οι ποσότητες ( p 1)/2 και (q 1)/2 να περιέχουν μεγάλους παράγοντες και να έχουν μικρό μέγιστο κοινό διαιρέτη. Στην ιδανική περίπτωση πρέπει αυτές οι ποσότητες να είναι πρώτοι αριθμοί, διότι τότε ικανοποιούνται και οι δύο παραπάνω απαιτήσεις [Κάτος Στεφανίδης 2003]. Η μέθοδος αυτή της επαναληπτικής κρυπτογράφησης για την ανάκτηση του αρχικού μηνύματος είναι εξαιρετικά απλή και μπορεί να υλοποιηθεί εύκολα. Το ερώτημα που προκύπτει είναι αν πρόκειται για μια μέθοδο που έχει πρακτική αξία και μπορεί να χρησιμοποιηθεί για να σπάσει το κρυπτογράφημα RSA. Για να απαντηθεί το παραπάνω ερώτημα έπρεπε να δοκιμαστεί η λειτουργία της μεθόδου για διάφορες τιμές των p και q και για το λόγο αυτό χρησιμοποιήθηκε ένα πρόγραμμα σε υπολογιστή το οποίο εφαρμόζει επαναληπτική κρυπτογράφηση για δοσμένο m. Έγιναν δύο σειρές δοκιμών. Για την πρώτη η επιλογή των p και q ήταν τυχαία, ενώ για τη δεύτερη έγινε προσεκτική επιλογή ώστε οι ποσότητες (p 1)/2 και (q 1)/2 να είναι πρώτοι αριθμοί. Σε κάθε εκτέλεση του προγράμματος έγινε καταγραφή του πλήθους των επαναλήψεων αλλά και του χρόνου εκτέλεσης.

ΑΠΟΤΕΛΕΣΜΑΤΑ Στον πίνακα 1 που ακολουθεί φαίνονται αναλυτικά τα αποτελέσματα της πρώτης σειράς εκτελέσεων του προγράμματος επαναληπτικής κρυπτογράφησης και στο διάγραμμα 1 η γραφική απεικόνιση του αριθμού των επαναλήψεων ως προς το Ν. Πίνακας 1: Αποτελέσματα της 1 ης εκτέλεσης του προγράμματος επαναληπτικής κρυπτογράφησης με τυχαίες τιμές για τα p και q p q N = p q e επαναλήψεις Χρόνος (s) (p-1)/2 (q-1)/2 ΜΚΔ 23 37 851 17 10 0,057 11 18 1 31 41 1271 17 4 0,029 15 20 5 43 59 2537 17 12 0,055 21 29 1 67 113 7571 17 30 0,126 33 56 1 83 97 8051 17 40 0,124 41 48 1 101 127 12827 17 60 0,191 50 63 1 127 139 17653 17 66 0,17 63 69 3 151 167 25217 17 820 3,115 75 83 1 149 191 28459 17 36 0,146 74 95 1 179 193 34547 17 44 0,103 89 96 1 211 227 47897 17 336 0,56 105 113 1 223 313 69799 17 36 0,135 111 156 3 293 331 96983 17 120 0,39 146 165 1 331 397 131407 17 10 0,054 165 198 33 373 401 149573 17 60 0,197 186 200 2 431 467 201277 17 4872 14,742 215 233 1 431 709 305579 17 1218 5,895 215 354 1 541 587 317567 17 876 3,289 270 293 1 643 709 455887 17 3074 13,082 321 354 3 797 859 684623 17 330 2,943 398 429 1 809 977 790393 17 60 0,201 404 488 4 1033 1151 1188983 17 4620 18,627 516 575 1 1249 1427 1782323 17 330 2,386 624 713 1 1523 1801 2742923 17 380 1,251 761 900 1 1949 2161 4211789 17 972 3,281 974 1080 2 2011 3167 6368837 17 3164 10,449 1005 1583 1 2953 3359 9919127 17 1320 4,042 1476 1679 1 3433 3889 13350937 17 90 0,274 1716 1944 12 3701 4111 15214811 17 3060 14,347 1850 2055 5 4643 5113 23739659 17 210 0,638 2321 2556 1 5711 6007 34305977 17 1140 2,273 2855 3003 1 6299 7001 44099299 17 75900 229,895 3149 3500 1 7127 9967 71034809 17 19050 58,369 3563 4983 1 8147 9157 74602079 17 36648 110,664 4073 4578 1 Παρατηρούμε ότι το πλήθος των επαναλήψεων αυξάνεται γενικά καθώς αυξάνεται το Ν, αλλά όχι γραμμικά. Υπάρχουν κάποιες τιμές των p και q που δίνουν ιδιαίτερα υψηλό πλήθος επαναλήψεων και άλλες που δίνουν πολύ χαμηλό. Χαρακτηριστικές περιπτώσεις είναι οι 151 και 167 που δίνουν 820 επαναλήψεις και οι 3433 και 3889 που δίνουν μόλις 90 επαναλήψεις. Αξίζει επίσης να σημειώσουμε ότι για p = 331 και q = 397 οι τιμές των (p 1)/2 και (q 1)/2 είναι αριθμοί με μέγιστο κοινό διαιρέτη το 33 (αρκετά μεγάλη τιμή) και για αυτό το λόγο έδωσαν μόνο 10 επαναλήψεις.

Διάγραμμα 1: Γραφική παράσταση των επαναλήψεων σε συνάρτηση με το Ν για την 1 η εκτέλεση του προγράμματος επαναληπτικής κρυπτογράφησης Στον πίνακα 2 φαίνονται τα αποτελέσματα της δεύτερης σειράς εκτελέσεως του προγράμματος όπου έγινε προσεκτική επιλογή των p και q ώστε οι (p 1)/2 και (q 1)/2 να είναι πρώτοι και στο διάγραμμα 2 η αντίστοιχη γραφική παράσταση. Πίνακας 2: Αποτελέσματα της 2 ης εκτέλεσης του προγράμματος επαναληπτικής κρυπτογράφησης με επιλεγμένες τιμές για τα p και q p q N = p q e επαναλήψεις Χρόνος (s) (p-1)/2 (q-1)/2 ΜΚΔ 23 47 1081 17 110 0,378 11 23 1 59 83 4897 17 40 0,28 29 41 1 107 167 17869 17 1066 2,303 53 83 1 179 227 40633 17 1232 5,516 89 113 1 227 347 78769 17 4816 26,336 113 173 1 263 383 100729 17 2470 7,301 131 191 1 359 383 137497 17 8455 25,513 179 191 1 227 887 201349 17 24752 78,303 113 443 1 467 563 262921 17 8120 35,018 233 281 1 719 863 620497 17 76970 242,952 359 431 1 839 887 744193 17 92378 297,265 419 443 1 983 1187 1166821 17 14504 45,514 491 593 1 1283 1439 1846237 17 229760 729,504 641 719 1 1619 1823 2951437 17 367640 1154,542 809 911 1 1907 2063 3934141 17 49028 152,843 953 1031 1 2039 2579 5258581 17 93656 293,667 1019 1289 1 2447 2963 7250461 17 45214 138,684 1223 1481 1 2459 3467 8525353 17 531724 1623,577 1229 1733 1 2999 3803 11405197 17 1423100 4459,315 1499 1901 1 3863 4007 15479041 17 175630 547,381 1931 2003 1 Αυτή τη φορά παρατηρούμε ότι έχουμε πάλι αυξομειώσεις του πλήθους των επαναλήψεων καθώς το Ν αυξάνεται, αλλά οι διαφορές δεν είναι τόσο έντονες όσο στον

προηγούμενο πίνακα. Αξιοσημείωτη είναι η σύγκριση δύο ζευγών τιμών για τα p και q στους δύο πίνακες που είναι πολύ κοντινές μεταξύ τους. Πρόκειται για τους 1249 και 1427 στον πρώτο πίνακα με 330 επαναλήψεις και τους 1283 και 1439 στον δεύτερο πίνακα με 229760 επαναλήψεις. Να σημειώσουμε επίσης το χρόνο εκτέλεσης για τους 2999 και 3803 που είναι 4459,315 sec δηλαδή 74 περίπου λεπτά. Διάγραμμα 2: Γραφική παράσταση των επαναλήψεων σε συνάρτηση με το Ν για τη 2 η εκτέλεση του προγράμματος επαναληπτικής κρυπτογράφησης Στα δύο διαγράμματα στον κατακόρυφο άξονα επιλέχτηκε λογαριθμική κλίμακα με βάση το 10, καθώς με αυτόν τον τρόπο έχουμε καθαρότερη εικόνα των σημείων της γραφικής παράστασης. Επίσης σε κάθε διάγραμμα έγινε εισαγωγή της γραμμής τάσης (χρησιμοποιώντας την αντίστοιχη δυνατότητα του Microsoft Excel). Η γραμμή τάσης που φάνηκε να ακολουθεί με το καλύτερο τρόπο τη γραφική παράσταση ήταν αυτή της εκθετικής συνάρτησης με εξίσωση y = α e β x (οι τιμές των α, β διαφέρουν στις δύο γραφικές παραστάσεις). Αυτό σημαίνει ότι η αύξηση του πλήθους των επαναλήψεων καθώς αυξάνεται το Ν είναι εκθετική. ΣΥΜΠΕΡΑΣΜΑΤΑ Μελετώντας τα παραπάνω αποτελέσματα προκύπτει κατ αρχήν το συμπέρασμα ότι μια προσεκτική επιλογή των p και q όταν εφαρμόζουμε κρυπτογράφηση RSA μπορεί να ανεβάσει σημαντικά το πλήθος των επαναλήψεων που απαιτούνται για την επίθεση επαναληπτικής κρυπτογράφησης. Αν οι αριθμοί που θα επιλεγούν είναι τέτοιοι ώστε οι (p 1)/2 και (q 1)/2 να είναι πρώτοι, το πλήθος των επαναλήψεων μεγιστοποιείται και έτσι μειώνεται ο κίνδυνος επίθεσης. Το ερώτημα που μένει να απαντηθεί είναι αν η μέθοδος της επαναληπτικής κρυπτογράφησης είναι μια πρακτικά εφαρμόσιμη μέθοδος. Είδαμε ήδη ότι οι χρόνοι εκτέλεσης (που είναι ανάλογοι των επαναλήψεων) αυξάνονται εκθετικά καθώς αυξάνεται το Ν. Οι χρόνοι εκτέλεσης για τιμές του Ν της τάξης των 8 δεκαδικών

ψηφίων κυμάνθηκαν από 0,274 δευτερόλεπτα ως 74 λεπτά. Η τιμή των 0,274 sec είναι μεν εξαιρετικά μικρή, αλλά οφείλεται σε κακή επιλογή των p και q. Αν εφαρμοστεί επαναληπτική κρυπτογράφηση για την περίπτωση που έχουν χρησιμοποιηθεί προσεκτικά επιλεγμένοι αριθμοί, τότε προκύπτουν χρόνοι εκτέλεσης γύρω στα 10 λεπτά ή και παραπάνω. Ένας διπλασιασμός της τιμής του Ν (δεδομένης της εκθετικής αύξησης του χρόνου) θα οδηγούσε σε έναν χρόνο εκτέλεσης γύρω στα 900 λεπτά Αυτό σημαίνει ότι οι χρόνοι εκτέλεσης για πολύ μεγάλες τιμές των p και q θα είναι τεράστιοι. Εδώ να θυμηθούμε ότι τεράστιοι είναι και οι χρόνοι που απαιτούνται για την παραγοντοποίηση του Ν και ότι σε αυτό ακριβώς στηρίζεται η ασφάλεια του RSA. Θα ήταν ενδιαφέρον για τις τιμές του Ν που εξετάσαμε παραπάνω στην επαναληπτική κρυπτογράφηση, να βλέπαμε πόσος χρόνος χρειάζεται για την παραγοντοποίησή τους. Για το σκοπό αυτό κατασκευάστηκε ένα απλό πρόγραμμα στη γλώσσα προγραμματισμού C το οποίο κάνει γραμμική αναζήτηση σε όλους τους αριθμούς από το 1 ως την τετραγωνική ρίζα του Ν και επιστρέφει τους 2 διαιρέτες του Ν (ο κώδικας παρατίθεται στο παράρτημα). Το πρόγραμμα αυτό εκτελέστηκε για τις τιμές των Ν των πινάκων 1 και 2 και σε καμία περίπτωση δεν ξεπέρασε μερικά κλάσματα του δευτερολέπτου. Με βάση τα παραπάνω προκύπτει το συμπέρασμα ότι αν θέλει κάποιος να σπάσει το κρυπτογράφημα RSA έχοντας γνώση μόνο των δημόσιων κλειδιών, είναι προτιμότερο να επιχειρήσει να παραγοντοποιήσει το N (να βρει δηλαδή τους p και q) παρά να εφαρμόσει επαναληπτική κρυπτογράφηση. Μελετώντας κάποιος τα μαθηματικά που βρίσκονται πίσω από τη μέθοδο RSA δεν μπορεί να μην παρατηρήσει ότι στηρίζονται σε βασικές αρχές της θεωρίας αριθμών, αυτές της διαιρετότητας και των πρώτων αριθμών, που θεμελιώθηκαν από τους αρχαίους Έλληνες μαθηματικούς. Αν και η επιστήμη των μαθηματικών εξελίχθηκε και μεγάλοι μαθηματικοί του 17 ου και 18 ου αιώνα όπως ο Fermat και ο Euler έφτασαν σε εντυπωσιακά συμπεράσματα στη μελέτη των πρώτων αριθμών, αυτοί έκτισαν επάνω στο τεράστιο οικοδόμημα που μας άφησαν ως κληρονομιά ο Ευκλείδης, ο Ερατοσθένης και οι υπόλοιποι μεγάλοι μαθηματικοί της αρχαιότητας. Κλείνοντας οφείλω να ευχαριστήσω τον καθηγητή κ. Τζήμκα Λάζαρο για την πολύτιμη βοήθειά του στο προγραμματιστικό κομμάτι της εργασίας. ΒΙΒΛΙΟΓΡΑΦΙΑ Singh Simon (2001). Κώδικες και μυστικά, Εκδόσεις Τραυλός Κάτος Β.Α., Στεφανίδης Γ.Χ. (2003). Τεχνικές κρυπτογραφίας & κρυπτανάλησης, Εκδόσεις Ζυγός Καζαντζής Θ.Ν. (1997). Θεωρία αριθμών, Μαθηματική Βιβλιοθήκη Γαλάνης Γ. (2005). Παράλληλο κείμενο «Αριθμοθεωρία», Ελληνικό Ανοιχτό Πανεπιστήμιο Kurose J.F., Ross K.W. (2009). Δικτύωση Υπολογιστών Προσέγγιση από πάνω προς τα κάτω, Εκδόσεις Μ. Γκιούρδας Πετρίδης Σ. (2011). Πρώτοι αριθμοί: Μια ιστορική παρουσίαση από τα Αρχαία Ελληνικά Μαθηματικά μέχρι τις σύγχρονες εφαρμογές τους, Αθήνα Pellegrini A., Bertacco V., Austin T. (2010). Fault-based attack of RSA authentication. Proceedings of the Design, Automation and Test in Europe Conference & Exhibition, 855-860.

ΠΑΡΑΡΤΗΜΑ Πρόγραμμα επαναληπτικής κρυπτογράφησης σε Matlab. tic p=19 q=13 N=p*q e=799 m=72 % 1ος Αλγόριθμος: Υπολογισμός του c = m e (modn) σε μία μεταβλητή C1. % α) Μετατροπή του e σε δυαδική μορφή. Χρησιμοποιώ έναν πίνακα με 50 θέσεις % για δυαδικά ψηφία, άρα μπορώ να υπολογίσω για τιμές του e μέχρι 2 51 1 DYO=zeros(1, 50) for i=49:-1:0 a=i if e>=(2^i) DYO(1,i+1)=1 e=e-2^i % β) Ελέγχω όλα τα στοιχεία του δυαδικού πίνακα και όπου έχω 1 τότε παίρνω το % υπόλοιπο της διαίρεσης του αριθμού στη μεταβλητή S με το Ν και το τροφοδοτώ % ξανά στη μεταβλητή S ώστε να βρω το γινόμενο από όλα αυτά τα υπόλοιπα. S=mod(m,N) if DYO(1,1)==1 GIN=S else GIN=1 for i=2:50 S=mod(S^2,N) if DYO(1,i)==1 GIN=GIN*S % Στην μεταβλητή GIN λοιπόν υπολογίζεται το παραπάνω γινόμενο. Ο υπολογισμός % του C που γίνεται στην μεταβλητή c1 είναι το υπόλοιπο της διαίρεσης του γινομένου % αυτού με το Ν. c1=mod(gin, N) %Τέλος Κρυπτογράφησης % 2ος Αλγόριθμος: Επαναληπτική κρυπτογράφηση c2=-1 count=0 % Κάθε φορά υπολογίζω εκ νέου το c = m e (modn) και αυτό που βγάζω στην έξοδο % (c) το τροφοδοτώ ξανά ως είσοδο (m) μέχρι να φτάσω σε μία τιμή του c (c2) που % να είναι ίδια με την αρχική (c1) m1=c1 % η επανάληψη γίνεται μέχρι το c2 να γίνει ίσο με το c1 ή μέχρι να γίνουν % 100.000.000 επαναλήψεις χωρίς αποτέλεσμα while (c2~=c1) & (count<10^8)

count=count+1 S=mod(m1,N) if DYO(1,1)==1 GIN=S else GIN=1 for i=2:50 S=mod(S^2,N) if DYO(1,i)==1 GIN=GIN*S c2=mod(gin, N) m1=c2 % στην μεταβλητή epanalipseis εμφανίζεται ο αριθμός των επαναλήψεων που % χρειάστηκαν epanalipseis=count % Τέλος επαναληπτικής κρυπτογράφησης toc Πρόγραμμα παραγοντοποίησης του Ν στη γλώσσα C. #include <stdio.h> #include <string.h> #include <math.h> void main() { clock_t start = clock(); int N, sq, answer1, answer2; int i; answer1 = 0; answer2 = 0; printf("enter N: "); scanf("\n%d", &N); sq = sqrt(n); for (i=1 ; i<=sq ; i++) { if ((N%i)==0) { answer1 = i; answer2 = N/i; } } printf("\nthe answer is %d %d\n", answer1, answer2); printf("time elapsed: %f\n", ((double)clock() - start) / CLOCKS_PER_SEC); system("pause"); return 0; }