|
|
- Τιμοθέα Χρηστόπουλος
- 8 χρόνια πριν
- Προβολές:
Transcript
1 Πανεπιστημιο Πατρων Τμημα Μηχανικων Η/Υ & Πληροφορικης Υλοποίηση της μεθόδου παραγοντοποίησης ακεραίων αριθμών Number Field Sieve σε παράλληλο υπολογιστικό περιβάλλον Master Thesis Φοιτητής: Χρήστος Μπακογιαννης Επιβλέπων: Dr. Παύλος Σπυρακης Μάιος 2010
2
3 Υλοποίησ η της μεθόδου παραγοντοποίησ ης ακεραίων αριθμών Number Field Sieve σ ε παράλληλο υπολογισ τικό περιβάλλον Χρήσ τος Μπακογιάννης Τριμελής Επιτροπή: Σπυράκης Παύλος, Καθηγητής Κακλαμάνης Χρήσ τος, Καθηγητής Σταματίου Ιωάννης, Επίκουρος Καθηγητής Master Thesis Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπισ τήμιο Πατρών 2010
4
5 Ευχαρισ τιες Θα ήθελα να ευχαρισ τήσ ω θερμά τους καθηγητές μου κ. Παύλο Σπυράκη και κ. Ιωάννη Σταματίου για την ευκαιρία που μου δώσ ανε να ασ χοληθώ με το σ υγκεκριμένο θέμα, καθώς και για το χρόνο που διέθεσ αν απαντώντας σ ε όσ ες ερωτήσ εις τους υπέβαλα. Η διάθεσ η και η υπομονή που επέδειξαν αποτέλεσ αν σ ημαντικό παράγοντα για την επιτυχή ολοκλήρωσ η της διπλωματικής αυτής εργασ ίας. Επλίζω το αποτέλεσ μα να είναι αντάξιο των προσ δοκιών τους. Θα ήθελα να ευχαρισ τήσ ω επίσ ης τον κ. Θεόδωρο Κομνηνό, Διευθυντή του Τομέα Ασ φαλείας του ΕΑΙΤΥ και τον κ. Βασ ίλη Δελή, προϊσ τάμενό μου σ το ΕΑΙΤΥ, για την υποσ τήριξη που μου παρείχαν σ ε υλικοτεχνική υποδομή και τεχνογνωσ ία, πράγμα κρίσ ιμο για την περάτωσ η της εργασ ίας αυτής. Δε μπορώ να μην ευχαρισ τήσ ω και όλους τους σ υναδέλφους μου, μιας και κάθε μέρα μαζί τους ήταν και ένα νέο ταξίδι σ τον κόσ μο της πληροφορικής. Τέλος θα ήθελα να ευχαρισ τήσ ω από βάθους καρδίας τον φίλο και σ υμφοιτητή μου Νικόλαο Καραπάνο, με τον οποίο αντιμετωπίσ αμε μαζί τις δυσ κολίες της εργασ ίας αυτής, αλλά και γευτήκαμε την χαρά της επιτυχημένης ολοκλήρωσ ής της. Βαδίσ αμε παράλληλα το δύσ κολο δρόμο που ξεκινήσ αμε και κατορθώσ αμε να ολοκληρώσ ουμε, την πραγματικά δύσ κολη αποσ τολή που αναλάβαμε. Οι ώρες που περάσ αμε μαζί δεν ήταν μόνο ώρες δουλειάς, αλλά και ευχάρισ της παρέας. Ενα μεγάλο ευχαρισ τώ οφείλω και σ ε όλους όσ ους ἅντεξαν και σ τάθηκαν δίπλα μου καθ όλη τη διάρκεια της υλοποίησ ης και σ υγγραφής της μεταπτυχιακής αυτής εργασ ίας. Η υπομονή που επέδειξαν ήταν πραγματική βοήθεια για μένα. iii
6
7 Περιληψη Η διείσ δυσ η των υπολογισ τών, τόσ ο σ τα σ πίτια μας, όσ ο και κυρίως σ τις επιχειρήσ εις, κατά τα τελευταία χρόνια, καθώς επίσ ης και ο σ υνεχώς αυξανόμενος ρυθμός χρήσ ης του διαδικτύου, έχουν κατασ τήσ ει την ανάγκη για ασ φαλείς η- λεκτρονικές επικοινωνίες και σ υναλλαγές κάτι παραπάνω από επιτακτική. Ενα από τα κυρίαρχα, σ ήμερα, σ υσ τήματα ασ φαλούς ανταλλαγής δεδομένων είναι ο αλγόριθμος RSA, η ασ φάλεια του οποίου βασ ίζεται σ το γεγονός ότι είναι πολύ δύσ κολο να παραγοντοποιήσ ουμε έναν μεγάλο αριθμό σ τους πρώτους παράγοντές του. Ο RSA αλγόριθμος θεωρείται αρκετά ασ φαλής, αν βέβαια χρησ ιμοποιούμε κατάλληλο, για τα σ ημερινά δεδομένα, μέγεθος κλειδιού. Παρόλα αυτά, σ ε περίπτωσ η που βρεθεί κάποιος αποδοτικός αλγόριθμος που να μπορεί σ ε λογικό χρόνο να παραγοντοποιήσ ει οποιονδήποτε μεγάλο ακέραιο, τότε αυτομάτως η ασ φάλεια του αλγορίθμου αυτού έχει παραβιασ τεί και θα πρέπει να σ τραφούμε σ ε εναλλακτικές μεθόδους προσ τασ ίας της πληροφορίας. Ο πιο αποδοτικός σ ήμερα αλγόριθμος παραγοντοποίησ ης μεγάλων ακεραίων είναι ο Number Field Sieve. Η έρευνα που έχει γίνει πάνω σ ε αυτόν τον αλγόριθμο, έχει οδηγήσ ει σ ε σ ημαντική πρόοδο και έχει κατασ τήσ ει, πλέον, εφικτή την παραγοντοποίησ η ακεραίων που υπό άλλες προϋποθέσ εις θα απαιτούσ ε χιλιάδες χρόνια από cpu time σ ε supercomputers. Αν και ακόμη και σ ήμερα υπάρχουν αρκετά σ ημεία που θα μπορούσ αν να βελτιωθούν σ τον αλγόριθμο, κάνοντάς τον ακόμη πιο αποδοτικό, ωσ τόσ ο η πολυπλοκότητά του αποτρέπει αρκετούς να ασ χοληθούν με την βελτίωσ ή του. Με την εργασ ία αυτή θα προσ παθήσ ουμε αρχικά να διασ αφηνίσ ουμε όλες τις πληροφορίες που απαιτούνται για την σ ωσ τή κατανόησ η της λειτουργίας του αλγορίθμου. Θα γίνει λεπτομερής περιγραφή των διαφόρων βημάτων του αλγορίθμου και θα δοθεί αναλυτικό παράδειγμα παραγοντοποίησ ης. Τέλος, θα παρουσ ιασ τεί η παράλληλη υλοποίησ ή του αλγορίθμου, η οποία μπορεί να εκτελεσ τεί τόσ ο σ ε supercomputer, όσ ο και σ ε cluster υπολογισ τών που επικοινωνούν μεταξύ τους με χρήσ η του MPI. v
8 Λέξεις Κλειδιά: παραγοντοποίησ η ακεραίων, RSA, Number Field Sieve, Cryptography, Factoring, Algebraic Number Theory
9 Περιεχομενα Περιεχόμενα vii 1 Εισ αγωγή Πρώτοι Αριθμοί και Παραγοντοποίησ η Ομάδες Απεικονίσ εις Πεδία και Δακτύλιοι Αριθμητική modulo p Κρυπτογραφία Δημόσ ιου Κλειδιού Ενα Παράδειγμα Ασ φάλεια και Πρακτικότητα Ο Αλγόριθμος RSA Δημιουργία ζεύγους κλειδιών Χρήσ η του RSA για κρυπτογράφησ η Χρήσ η του RSA για ψηφιακή υπογραφή Πρακτικά θέματα ασ φάλειας του RSA Μέθοδοι Παραγοντοποίησ ης Ειδικοί Αλγόριθμοι Δοκιμασ τική Διαίρεσ η (Trial Division) Η Μέθοδος p 1 του Pollard Η Μέθοδος p του Pollard Η Μέθοδος Ελλειπτικών Καμπυλών Γενικοί Αλγόριθμοι Ισ οϋπόλοιπα Τετράγωνα (Congruent Squares) Συνεχή Κλάσ ματα (Continued Fractions) Quadratic Sieve (QS) Number Field Sieve (NFS) Στρατηγική Παραγοντοποίησ ης Το Μέλλον της Παραγοντοποίησ ης vii
10 3 Ο αλγόριθμος Number Field Sieve Επιλογή Πολυωνύμου Η Base - m Μέθοδος Βελτίωσ η της Base - m Μεθόδου Διαδικασ ία Επιλογής Καλού Monic Πολυωνύμου Παράδειγμα Επιλογής Πολυωνύμου με την Base-m Μέθοδο Non-Monic Πολυώνυμα Παράγοντες που επηρεάζουν το Yield ενός πολυωνύμου Size Ιδιότητες Root Ιδιότητες Τρόπος υπολογισ μού του cont p (υ) Ποσ οτικοποιώντας τις Root Ιδιότητες Διαδικασ ία Επιλογής Καλών Non-Monic Πολυωνύμων Απομονώνοντας τα Καλύτερα Πολυώνυμα Η Συνάρτησ η ρ του Dickman Τρόπος Υπολογισ μού της Τιμής ρ(u) Δημιουργία Βάσ εων Κοσ κίνισ μα (Sieving) Rational Side Sieving Επιταχύνοντας τη Διαδικασ ία του Sieving Τεχνικές Υλοποίησ ης για την Επιτάχυνσ η του Sieving Algebraic Side Sieving Περαιτέρω Βελτισ τοποίησ η Δημιουργία του Δυαδικού Πίνακα Εύρεσ η Εξαρτήσ εων με Εφαρμογή Γραμμικής Άλγεβρας Τετραγωνική Ρίζα (Square Root) Υπολογισ μός Τετραγωνικής Ρίζας σ το Πεδίο των Α- κεραίων Υπολογισ μός Τετραγωνικής Ρίζας σ το Αλγεβρικό Πεδίο Περιγραφή και Ανάλυσ η της Μεθόδου Περίληψη Αλγορίθμου Χρήσ ιμες Λεπτομέρειες Εύρεσ η Τετραγωνικής Ρίζας σ το Finite Field F q d - Αλγόριθμος Shanks &Tonelli Εκτενές Παράδειγμα Επιλογή Πολυωνύμου Η Rational Factor Base Η Algebraic Factor Base Η Quadratic Character Base
11 4.5 Το Κοσ κίνισ μα (Sieving) Κατασ κευή του Πίνακα Εύρεσ η Γραμμικών Εξαρτήσ εων Υπολογισ μός Τετραγωνικής Ρίζας Εύρεσ η Κατάλληλων Finite Fields Τετραγωνικές Ρίζες σ το Finite Field Εφαρμογή του Chinese Remainder Theorem Ολοκλήρωσ η Διαδικασ ίας Λεπτομέρειες Υλοποίησ ης Το Περιβάλλον Ανάπτυξης του kmgnfs Επιπλέον Βιβλιοθήκες Δομή του kmgnfs Τμήματα που Παραλληλοποιήθηκαν Περισ σ ότερα για το MPI Μεταγλώττισ η και εκτέλεσ η του παράλληλου kmgnfs σε Λειτουργικό Mac OS X Περιγραφή του Παράλληλου Συσ τήματος Εκτέλεσ ης Cluster Υπολογισ τών Supercomputer HP XC Cluster Platform Η Αρχιτεκτονική του Συσ τήματος Αλληλεπίδρασ η με το Σύσ τημα Υπάρχουσ ες Υλοποιήσ εις και Βελτιώσ εις Υπάρχουσ ες Υλοποιήσ εις Βελτιώσ εις Βιβλιογραφία 131 Ευρετήριο Αγγλικών Ορων 135
12
13 Κ ε φ α λ α ι ο 1 Εισ αγωγη ΟCarl Friedrich Gauss, ένας από τους κορυφαίους μαθηματικούς όλων των εποχών, σ το έργο του «Disquisitiones Arithmeticae», ανέφερε ότι το πρόβλημα του ελέγχου αν ένας αριθμός είναι πρώτος (primality testing) και το πρόβλημα της παραγοντοποίησ ης ακεραίων (integer factorization) είναι δύο από τα πιο θεμελιώδη μαθηματικά προβλήματα. Οντως, τα προβλήματα αυτά είναι το κύριο αντικείμενο έρευνας πολλών μαθηματικών εδώ και πάρα πολλά χρόνια, και μετά την παρουσ ίασ η της κρυπτογραφίας δημόσ ιου κλειδιού (public-key cryptography) είναι πιο σ ημαντικά από ποτέ. Στο κεφάλαιο αυτό επιχειρείται μια εισ αγωγή του αναγνώσ τη σ το πρόβλημα της παραγοντοποίησ ης ακεραίων, πώς σ υνδέεται με την κρυπτογραφία δημόσ ιου κλειδιού και γιατί είναι τόσ ο σ ημαντικό πρόβλημα με αμείωτο ερευνητικό ενδιαφέρον. 1
14 1. Εισ αγωγη 1.1 Πρώτοι Αριθμοί και Παραγοντοποίησ η Οπως αναφέρθηκε και σ την περίληψη, θεωρείται ως δεδομένο ότι ο αναγνώσ της είναι εξοικειωμένος με βασ ικές έννοιες της θεωρίας αριθμών, πλην όμως παρακάτω περιγράφονται κάποιες ιδέες και έννοιες οι οποίες σ χετίζονται με την παραγοντοποίησ η ακεραίων και την κρυπτογραφία ως υπενθύμισ η και εισ αγωγή σ το αντικείμενο. Ενας αριθμός a είναι διαιρέτης (divisor) του b (σ τα μαθηματικά σ υμβολίζεται ως a b, και προφέρεται το a διαιρεί το b ) εάν το υπόλοιπο της διαίρεσ ης του b με το a ισ ούται με μηδέν (αν το a δεν διαιρεί το b τότε γραφουμε a b). Για παράδειγμα το 7 είναι ένας διαιρέτης του 35, οπότε γράφουμε 7 ͺ 35. Ενας αριθμός ονομάζεται πρώτος (prime number), αν έχει ακριβώς δύο διαιρέτες, τον εαυτό του και τη μονάδα. Για παράδειγμα, το 13 είναι πρώτος οι διαιρέτες του είναι το 1 και το 13. Οι μικρότεροι πρώτοι αριθμοί είναι πολύ εύκολο να βρεθούν: 2, 3, 5, 7, 11, 13,... Οσ οι αριθμοί μεγαλύτεροι του 1 δεν είναι πρώτοι ονομάζονται σ ύνθετοι (composite). Ο αριθμός 1 δεν θεωρείται ούτε πρώτος ούτε σ ύνθετος. Ο μεγαλύτερος θετικός ακέραιος που διαιρεί ταυτόχρονα δύο ακεραίους a και b ονομάζεται μέγισ τος κοινός διαιρέτης (greatest common divisor) των a, b και σ υμβολίζεται σ τα αγγλικά με gcd(a, b). Δύο ακέραιοι a, b είναι μεταξύ τους πρώτοι (relatively prime, coprime) αν gcd(a, b) = 1. Ο μέγισ τος κοινός διαιρέτης μεταξύ δύο ακεραίων a και b μπορεί να υπολογισ τεί χρησ ιμοποιώντας τον αλγόριθμο του Ευκλείδη (Euclidean algorithm). Αμέσ ως παρακάτω αλλά και σ τις επόμενες ενότητες ακολουθούν κάποιοι σ ημαντικοί ορισ μοί καθώς επίσ ης και βασ ικά λήμματα και θεωρήματα από τη θεωρία αριθμών. Τα περισ σ ότερα απ αυτά διατυπώνονται χωρίς απόδειξη. Ο ενδιαφερόμενος αναγνώσ της μπορεί να ανατρέξει σ τα [1, 2, 3, 4]. Λήμμα 1.1. Εάν a ͺ b και b ͺ c τότε a ͺ c. Λήμμα 1.2. Εσ τω n θετικός ακέραιος μεγαλύτερος του 1. Εσ τω d ο μικρότερος διαιρέτης του n, ο οποίος είναι μεγαλύτερος του 1. Τότε ο d είναι πρώτος. Θεώρημα 1.1 (Euclid s theorem). Υπάρχουν άπειροι πρώτοι αριθμοί. Απόδειξη. Η απόδειξη γίνεται με εις άτοπο απαγωγή. Εσ τω ότι το πλήθος των πρώτων αριθμών είναι πεπερασ μένο και ίσ ο με k. Εσ τω λοιπόν ότι όλοι οι πρώτοι αριθμοί περιέχονται σ την πεπερασ μένη λίσ τα p 1, p 2, p 3,..., p k μήκους 2
15 1.1. Πρώτοι Αριθμοί και Παραγοντοποίησ η k. Ορίζουμε τον αριθμό n = p 1 p 2 p 3... p k + 1, ο οποίος είναι το γινόμενο όλων των πρώτων αριθμών σ υν 1. Εσ τω d ο μικρότερος διαιρέτης του n, μεγαλύτερος από 1. Τότε ο d είναι πρώτος σ ύμφωνα με το λήμμα 1.2. Ομως κανένας από τους πρώτους της πεπερασ μένης λίσ τας δεν διαιρεί τον n. Εξάλλου είναι όλοι τους διαιρέτες του n 1, έτσ ι αν διαιρέσ ουμε τον n με έναν από τους πρώτους της λίσ τας το υπόλοιπο της διαίρεσ ης θα ισ ούται πάντα με 1. Συνεπώς ο d είναι πρώτος και δεν είναι σ την παραπάνω πεπερασ μένη λίσ τα. Αλλά αυτό είναι άτοπο, αφού η λίσ τα περιέχει όλους τους πρώτους αριθμούς. Άρα η αρχική υπόθεσ η ότι το πλήθος των πρώτων αριθμών είναι πεπερασ μένο είναι λανθασ μένη και σ υνεπώς υπάρχουν άπειροι πρώτοι αριθμοί. Υπάρχουν πάρα πολλά αποτελέσ ματα σ χετικά με την κατανομή των πρώτων αριθμών, όμως δεν υπάρχει κάποιος απλός μαθηματικός τύπος που να υπολογίζει με ακρίβεια το πλήθος των πρώτων αριθμών μέσ α σ ε ένα σ υγκεκριμένο διάσ τημα. Μία εκτίμησ η του πόσ οι πρώτοι αριθμοί υπάρχουν μέχρι έναν αριθμό n δίνεται από τον προσ εγγισ τικό τύπο n/ ln n. Οι πρώτοι αριθμοι φαίνεται ότι προκύπτουν σ χετικά με τυχαίο τρόπο. Υπάρχουν ακόμα απλές υποθέσ εις που δεν έχουν ακόμα αποδειχθεί, όπως η εικασ ία του Goldbach. Υπόθεση 1.1 (Goldbach conjecture). Κάθε άρτιος αριθμός, μεγαλύτερος του 2, είναι το άθροισ μα δύο πρώτων αριθμών. Η παραπάνω υπόθεσ η είναι εύκολο να επαληθευτεί για μικρούς άρτιους α- ριθμούς με τη βοήθεια ενός υπολογισ τή, αλλά οι μαθηματικοί δεν γνωρίζουν ακόμα αν ισ χύει για όλους τους άρτιους αριθμούς. Ορισμός 1.1 (Παραγοντοποίηση ακεραίου). Παραγοντοποίησ η ενός ακεραίου n (integer factorization) είναι η διάσ πασ η του n σ ε μικρότερους, μη τετριμμένους διαιρέτες (ή αλλιώς παράγοντες) των οποίων το γινόμενο ισ ούται με n. Οσ οι από τους παράγοντες αυτούς είναι σ ύνθετοι αριθμοί, μπορούν να παραγοντοποιηθούν περαιτέρω, μέχρι τελικά να καταλήξουμε σ ε ένα γινόμενο που θα αποτελείται μόνο από πρώτους αριθμούς, το οποίο είναι μοναδικό για κάθε n, σ ύμφωνα με το θεμελιώδες θεώρημα της αριθμητικής. Θεώρημα 1.2 (Fundamental Theorem of Arithmetics). Κάθε ακέραιος μεγαλύτερος από 1 μπορεί να γραφεί με μοναδικό τρόπο σ αν το γινόμενο κάποιων πρώτων αριθμών (αγνοώντας φυσ ικά τη σ ειρά με την οποία γράφονται οι πρώτοι μέσ α σ το γινόμενο). 3
16 1. Εισ αγωγη Για παράδειγμα έχουμε 15 = 3 5, 255 = και 60 = Σ αυτό το θεώρημα και σ το γεγονός ότι είναι υπολογισ τικά δύσ κολο να βρούμε τους πρώτους παράγοντες ενός πολύ μεγάλου ακεραίου, βασ ίζουν την ασ φάλεια τους πολλοί κρυπτογραφικοί αλγόριθμοι δημόσ ιου κλειδιού, όπως θα περιγραφεί και παρακάτω. 1.2 Ομάδες Ορισμός 1.2 (Group). Μία ομάδα (group) G είναι ένα σ ύνολο από σ τοιχεία (πεπερασ μένα ή άπειρα) μαζί με μια δυαδική πράξη και όλα μαζί ικανοποιούν τέσ σ ερις θεμελιώδεις ιδιότητες: Κλεισ τότητα (closure): a, b G : a b G Προσ εταιρισ τική ιδιότητα (associativity): a, b, c G : (a b) c = a (b c) Υπαρξη ταυτοτικού σ τοιχείου (identity) e: e G a G : e a = a e = a Υπαρξη αντίσ τροφου σ τοιχείου (inverse) για κάθε σ τοιχείο του G: a G, a 1 : a a 1 = a 1 a = e Ορισμός 1.3 (Abelian group). Ενα group G σ το οποίο ισ χύει η αντιμεταθετική ιδιότητα (commutativity): ονομάζεται Abelian group. a, b G : a b = b a Ορισμός 1.4 (Order of group). Ως τάξη (order) ενός group G ορίζεται το πλήθος των σ τοιχείων σ το G. Ενα group με πεπερασ μένο αριθμό σ τοιχείων (finite group) έχει και πεπερασ μένη τάξη. Τα group με τα οποία θα ασ χοληθούμε σ την παρούσ α εργασ ία είναι πεπερασ μένα εκτός και αν δηλώνεται ρητά το αντίθετο. 4
17 1.3. Απεικονίσ εις Ορισμός 1.5 (Order of group element). Ως τάξη (order) ενός σ τοιχείου g ενός group G ορίζεται ο μικρότερος αριθμός a για τον οποίο ισ χύει g a = e, όπου e το ταυτοτικό σ τοιχείο του G. Αν δεν υπάρχει τέτοιος a, τότε το g έχει άπειρη τάξη. Ορισμός 1.6 (Cyclic group). Ενα group G είναι κυκλικό (cyclic) αν υ- πάρχει g G, τέτοιο ώσ τε το G να μπορεί να γραφεί ως G =< g >= (g, g 1, g 2, g 3,...). Στην περίπτωσ η αυτή το g είναι γεννήτρια (generator) του G. Πόρισμα 1.1. Κάθε group G του οποίου η τάξη είναι πρώτος αριθμός είναι κυκλικό. Ορισμός 1.7 (Subgroup). Το H είναι υπό-ομάδα (subgroup) του group G, αν περιέχει ένα υποσ ύνολο των σ τοιχείων του G και ικανοποιεί τις 4 απαιτήσ εις ενός group (βλέπε ορισ μό 1.2). Το H πρέπει να περιέχει τουλάχισ τον το ταυτοτικό σ τοιχείο του G. Είναι ένα κανονικό group του οποίου η τάξη θα πρέπει να είναι διαιρέτης της τάξης του G. Ορισμός 1.8 (Normal subgroup). Εσ τω ότι το H είναι subgroup του group G. Τότε το H είναι ένα κανονικό subgroup (normal subgroup) του G, και σ υμβολίζεται ως H G, αν για κάθε x G ισ χύει: xhx 1 = H 1.3 Απεικονίσ εις Μία απεικόνισ η (mapping) σ : G H παίρνει ένα σ τοιχείο g G και το απεικονίζει σ το σ(g) H. Ορισμός 1.9 (Homomorphism). Μία απεικόνισ η σ : G H λέγεται ομομορφισ μός (homomorphism), εάν απεικονίζει το G σ το H και ταυτόχρονα διατηρεί την πράξη του group, δηλαδή a, b G ισ χύει σ(a b) = σ(a) σ(b). Ορισμός 1.10 (Isomorphism). Μία απεικόνισ η σ λέγεται ισ ομορφισ μός (isomorphism), εάν είναι ομομορφισ μός και είναι επιπλέον ένα προς ένα και επί (bijective), Ορισμός 1.11 (Automorphism). Μία απεικόνισ η σ λέγεται αυτομορφισ μός (automorphism), εάν είναι ισ ομορφισ μός και απεικονίζει το G σ τον εαυτό του. 5
18 1. Εισ αγωγη 1.4 Πεδία και Δακτύλιοι Ενα από τα πιο σ ημαντικά δομικά σ τοιχεία της αφηρημένης άλγεβρας είναι το πεδίο (field). Ορισμός 1.12 (Field). Ως πεδίο (field) ορίζεται ένα σ ύνολο από σ τοιχεία που ικανοποιεί τα αξιώματα ενός πεδίου (field axioms) τόσ ο για την πράξη της πρόσ θεσ ης όσ ο και για την πράξη του πολλαπλασ ιασ μού. Τα αξιώματα ενός πεδίου F είναι τα εξής: Κλεισ τότητα (closure): a, b F : a + b F a, b F : a b F Προσ εταιρισ τική ιδιότητα (associativity): a, b, c F : (a + b) + c = a + (b + c) a, b, c F : (ab)c = a(bc) Αντιμεταθετική ιδιότητα (commutativity): a, b F : a + b = b + a a, b F : ab = ba Επιμερισ τική ιδιότητα (distributivity): a, b, c F : a(b + c) = ab + ac Ταυτοτικό σ τοιχείο (identity): a, b, c F : (a + b)c = ac + bc a F : 0 + a = a + 0 = a a F : 1 a = a 1 = a 6
19 1.4. Πεδία και Δακτύλιοι Αντίσ τροφο σ τοιχείο (inverse): a F : a + ( a) = ( a) + a = 0 a F, a 0 : a a 1 = a 1 a = 1 Συχνά δεν είναι δυνατόν να ικανοποιούνται όλες οι παραπάνω ιδιότητες και γι αυτό υπάρχει ένα άλλο δομικό σ τοιχείο σ την αφηρημένη άλγεβρα, ο δακτύλιος (ring). Ορισμός 1.13 (Ring). Ως δακτύλιος (ring) ορίζεται ένα σ ύνολο από σ τοιχεία που ικανοποιούν όλες τις ιδιότητες ενός field εκτός από μία ή περισ σ ότερες από τις παρακάτω ιδιότητες: ο πολλαπλασ ιασ μός ικανοποιεί την αντιμεταθετική ιδιότητα ύπαρξη του ταυτοτικού σ τοιχείου 1 σ τον πολλαπλασ ιασ μό ύπαρξη αντίσ τροφου σ τοιχείου σ τον πολλαπλασ ιασ μό για όλα τα σ τοιχεία εκτός του 0 ο πολλαπλασ ιασ μός ικανοποιεί την προσ εταιρισ τική ιδιότητα Ορισμός 1.14 (Ring homomorphism). Εσ τω R ένα ring με τελεσ τές + και. Εσ τω S ένα ring με τελεσ τές και. Η απεικόνισ η θ : R S είναι ένας ομομορφισ μός δακτυλίου (ring homomorphism) από το ring R, +, σ το ring Σ,, αν οι ακόλουθες σ υνθήκες είναι αληθείς a, b R: 1. θ(a + b) = θ(a) θ(b) 2. θ(a b) = θ(a) θ(b) Ορισμός 1.15 (Finite field). Ενα field F που περιέχει πεπερασ μένο αριθμό σ τοιχείων ονομάζεται πεπερασ μένο πεδίο (finite field). Ορισμός 1.16 (Order of field). Η τάξη (order) n ενός field F είναι ο αριθμός των σ τοιχείων που περιέχει. Πόρισμα 1.2. Η τάξη ενός finite field F είναι δύναμη κάποιου πρώτου αριθμού, δηλαδή είναι της μορφής p n, όπου p πρώτος και n θετικός ακέραιος. Ορισμός 1.17 (Characteristic of field). Το χαρακτηρισ τικό (characteristic) p ενός field F, είναι ένας ακέραιος που δείχνει πόσ ες φορές πρέπει να προσ θέσ ουμε το ταυτοτικό σ τοιχείο του πολλαπλασ ιασ μού, δηλαδή το 1, έτσ ι ώσ τε τελικά να πάρουμε το ταυτοτικό σ τοιχείο της πρόσ θεσ ης, δηλαδή το 0. 7
20 1. Εισ αγωγη Πόρισμα 1.3. Το χαρακτηρισ τικό p ενός finite field F είναι πρώτος αριθμός. Ορισμός 1.18 (Extension field). Το πεδίο E ονομάζεται επέκτασ η πεδίου (extension field) του πεδίου F, αν το F είναι ένα υπό-πεδίο (subfield) του E. Συμβολίζεται ως E/F. Ενα field μπορεί να επεκταθεί με ένα η περισ σ ότερα σ τοιχεία με αποτέλεσ μα να δημιουργηθεί ένα extension field. Αυτό σ υνήθως γίνεται με ρίζες ενός πολυωνύμου. Για παράδειγμα το Q μπορεί να επεκταθεί με τις ρίζες του πολυωνύμου t 2 5, το οποίο σ υμβολίζεται ως Q( 5). Το Q( 5) είναι το μικρότερο field που περιέχει το Q και το 5, σ υνεπώς πρέπει να περιέχει όλες τις ρίζες του t 2 5. Ορισμός 1.19 (Extension field degree). Βαθμός μιας επέκτασ ης πεδίου (extension field degree) E/F είναι η διάσ τασ η του E ως διανυσ ματικού χώρου πάνω σ το F και σ υμβολίζεται ως [E : F ]: [E : F ] = dim F E Αν ο βαθμός είναι πεπερασ μένος αριθμός τότε η επέκτασ η πεδίου ονομάζεται πεπερασ μένη (finite extension field). Ορισμός 1.20 (Algebraic number field). Ως algebraic number field(ή απλά number field) ορίζεται το finite extension field Q(a) του field Q των ρητών αριθμών. Τα σ τοιχεία ενός number field που είναι ρίζες ενός πολυωνύμου: z n + a n 1 z n a 0 = 0 με ακέραιους σ υντελεσ τές και σ υντελεσ τή του n ίσ ο με 1 ονομάζονται αλγεβρικοί ακέραιοι (algebraic integers) του πεδίου αυτού. Ενα πολυώνυμο f(t) λέγεται ότι διασ πάται πάνω σ ε ένα field F, αν μπορεί να γραφεί ως το γινόμενο γραμμικών παραγόντων που όλοι τους ανήκουν σ το F. Με άλλα λόγια όλες οι ρίζες του f(t) ανήκουν σ το F. Ορισμός 1.21 (Splitting field). Το F είναι σ ώμα διασ πάσ εως ή σ ώμα ριζών (splitting field) για ένα πολυώνυμο f πάνω από το field G, αν G F και το F είναι το μικρότερο field με αυτές τις ιδιότητες. (Σημείωσ η: Το F είναι field extension του G). Από τον προηγούμενο ορισ μό είναι εμφανές ότι το splitting field F του πολυωνύμου f πάνω από το field G είναι ίσ ο με G(r 1 r 2... r n ), όπου r 1, r 2... r n είναι η ρίζες του f σ το G. 8
21 1.5. Αριθμητική modulo p Ορισμός 1.22 (Ideal). Στη θεωρία δακτυλίων, ως ιδεώδες (ideal) I ορίζεται κάθε υποσ ύνολο ενός ring R με τις εξής ιδιότητες: Αν a, b I, τότε a + b I (additive group). Αν a I και b R, τότε a b και b a I. Η έννοια των ideals επιτρέπει την γενίκευσ η μερικών σ ημαντικών ιδιοτήτων των ακεραίων αριθμών, όπως πρώτος αριθμός, ζυγός αριθμός ή πολλαπλάσ ιο του 3, και τη χρήσ η τους σ τη θεωρία δακτυλίων. Ορισμός 1.23 (Proper Ideal). Ενα ideal I ενός ring R ονομάζεται κανονικό (proper ideal), αν το I είναι κανονικό υποσ ύνολο (proper subset) του R, δηλαδή είναι υποσ ύνολο του R αλλά ταυτόχρονα δεν είναι ίσ ο με το R. Ορισμός 1.24 (Prime Ideal). Ενα proper ideal I ενός ring R ονομάζεται πρώτο (prime ideal), αν για κάθε a, b R, αν ab I, τότε τουλάχισ τον ένα από τα a και b ανήκει σ το I. Ορισμός 1.25 (Principal Ideal). Ενα ideal I ενός ring R ονομάζεται κύριο (principal ideal), αν υπάρχει ένα σ τοιχείο a R, τέτοιο ώσ τε: I = ar = {ar : r R}. Με άλλα λόγια το ideal δημιουργείται από ένα σ τοιχείο, το a. 1.5 Αριθμητική modulo p Οταν οι μαθηματικοί υπολογισ μοί πραγματοποιούνται modulo έναν ακέραιο z, τότε χρησ ιμοποιούμε αριθμητική με υπόλοιπα (modular arithmetic). Οταν μια μαθηματική πράξη γίνεται modulo z, σ ημαίνει ότι το αποτέλεσ μα της πράξης διαιρείται με το z και το τελικό αποτέλεσ μα είναι το υπόλοιπο της διαίρεσ ης αυτής. Αυτό έχει ως αποτέλεσ μα να χρησ ιμοποιούμε μόνο τους αριθμούς 0, 1,..., z 1. Ο z μπορεί να είναι ένας οποιοσ δήποτε ακέραιος, άλλα σ την περίπτωσ η που είναι πρώτος αριθμός, εμφανίζονται ορισ μένες πολύ ενδιαφέρουσ ες ιδιότητες, πολλές απ τις οποίες απορρέουν από τη θεωρία της προηγούμενης ενότητας, και αυτός είναι ένας από τους βασ ικούς λόγους που οι πρώτοι αριθμοί χρησ ιμοποιούνται ευρέως σ την κρυπτογραφία. Εσ τω ότι ο p είναι πρώτος αριθμός. Το σ ύνολο των αριθμών modulo p σ χηματίζουν ένα finite field και σ υχνά αναφερόμασ τε σ αυτό ως το mod p field ή απλά ως mod p. Κάποια σ ημεία που πρέπει να θυμάται κάποιος όταν κάνει πράξεις σ το mod p: 9
22 1. Εισ αγωγη Οταν από έναν αριθμό σ το mod p αφαιρούνται η προσ τίθενται πολλαπλάσ ια του p το αποτέλεσ μα παραμένει το ίδιο. Ολα τα αποτελέσ ματα είναι πάντα μέσ α σ το εύρος 0, 1,..., p 1. Μπορούμε να σ κεφτούμε τους υπολογισ μούς σ το mod p σ αν να πραγματοποιείται ολόκληρος ο υπολογισ μός σ το Z, και σ το τέλος να υπολογίζεται το αποτέλεσ μα σ το mod p. Συνεπώς, όλοι οι αλγεβρικοί κανόνες που είναι γνωσ τοί για τους ακεραίους (όπως το a(b + c) = ab + bc) ισ χύουν και σ το mod p. Το finite field των ακεραίων modulo p αναφέρεται χρησ ιμοποιώντας διάφορους σ υμβολισ μούς, όπως Z p, Z/pZ ή και GF (p), όπου GF είναι τα αρχικά του Galois Field, προς τιμήν του Γάλλου μαθηματικού Evariste Galois, ο οποίος υπήρξε ο θεμελιωτής της θεωρίας των πεπερασ μένων πεδίων και όχι μόνο. Ενα πολύ χρήσ ιμο θεώρημα που αναφέρεται σ ε finite fields modulo p είναι το εξής: Θεώρημα 1.3 (Fermat s little theorem). Αν ο p είναι πρώτος αριθμός και ο a είναι ένας ακέραιος, τέτοιος ώσ τε p a, τότε a p 1 1 (mod p). Εξίσ ου χρήσ ιμη είναι η σ υνάρτησ η φ του Euler καθώς και το θεώρημα του Euler που ουσ ιασ τικά πρόκειται για επέκτασ η του Fermat s little theorem. Ορισμός 1.26 (Euler totient function). Εσ τω n θετικός ακέραιος. Η σ υνάρτησ η φ(n) (Euler totient function ή Euler phi function) ισ ούται με τον αριθμό των θετικών ακεραίων, που είναι μικρότεροι ή ίσ οι του n, και επιπλέον είναι πρώτοι σ ε σ χέσ η με το n (δηλαδή ο μέγισ τος κοινός διαιρέτης τους με το n είναι το 1). Λήμμα 1.3. Εσ τω p πρώτος αριθμός. Τότε φ(p) = p 1. Λήμμα 1.4. Εσ τω p και q πρώτοι αριθμοί, με p q. Τότε φ(pq) = (p 1)(q 1). Λήμμα 1.5. Εσ τω p πρώτος αριθμός και k θετικός ακέραιος, τότε φ(p k ) = p k p k 1. Λήμμα 1.6. Αν η παραγοντοποίησ η ενός αριθμού n > 1 είναι n = p k 1 p k 2 2 p kr r, τότε φ(n) = (p k 1 1 p k ) (p k 2 2 p k ) (p kr r p kr 1 r ). Λήμμα 1.7. Αν ο a είναι ακέραιος και p και q πρώτοι αριθμοί, με p q, και gcd(a, p) = gcd(a, q) = 1, τότε a (p 1)(q 1) 1 (mod pq). 10 1
23 1.6. Κρυπτογραφία Δημόσ ιου Κλειδιού Θεώρημα 1.4 (Eulers s theorem). Αν a, n είναι θετικοί ακέραιοι και gcd(a, n) = 1, τότε a φ(n) 1 (mod n). Ακολουθούν μερικές χρήσ ιμες έννοιες: Ορισμός 1.27 (Quadratic residue). Ενας ακέραιος n είναι τετραγωνικό υπόλοιπο (quadratic residue) modulo p, αν το n είναι ισ οδύναμο με ένα τέλειο τετράγωνο σ το F p, όπου p > 2. Με άλλα λόγια για να είναι το n quadratic residue (mod p), πρέπει να υπάρχει ακέραιος x τέτοιος ώσ τε: x 2 n (mod p) Αν δεν υπάρχει τέτοιο x, τότε το n ονομάζεται quadratic nonresidue. Ορισμός 1.28 (The Legendre symbol). Εσ τω a ακέραιος και p > 2 πρώτος. Το σ ύμβολο Legendre ( a ) ορίζεται ως: p ( ) a 0, αν p a = 1, αν ο a είναι quadratic residue mod p p 1, αν ο a είναι quadratic nonresidue mod p Ορισμός 1.29 (The Jacobi symbol). Το σ ύμβολο Jacobi είναι η επέκτασ η του σ υμβόλου Legendre για σ ύνθετους περιττούς αριθμούς. Εσ τω a ακέραιος και n σ ύνθετος περιττός αριθμός του οποίου η παραγοντοποίησ η σ ε γινόμενο πρώτων παραγόντων είναι n = p a 1 1 p a p am m. Το σ ύμβολο Jacobi ( a ) ορίζεται ως το γινόμενο των σ υμβόλων Legendre για τους πρώτους n παράγοντες του n: ( ( ) a1 ( a a a = n) p 1 p 2 ) a2 ( ) am a... p m Ο λόγος για τον οποίο τα παραπάνω σ ύμβολα δεν ισ χύουν για quadratic residues molulo 2, είναι ότι το 2 είναι ειδική περίπτωσ η και όλοι οι αριθμοί της μορφής 8n + 1 και 8n 1 για n Z είναι quadratic residues modulo 2. Σημειώνεται επίσ ης ότι υπάρχουν αποδοτικοί τρόποι υπολογισ μού και για τα δύο παραπάνω σ ύμβολα. 1.6 Κρυπτογραφία Δημόσ ιου Κλειδιού Στο σ ημείο αυτό θα πραγματοποιηθεί μια πολύ σ ύντομη και απλουσ τευμένη αναφορά σ τη σ ύγχρονη κρυπτογραφία και πώς σ χετίζεται με το πρόβλημα της 11
24 1. Εισ αγωγη παραγοντοποίησ ης ακεραίων. Ο ενδιαφερόμενος αναγνώσ της μπορεί να ανατρέξει σ τα [5, 6] τα οποία αναλύουν διεξοδικά σ χεδόν όλες τις πτυχές της σ ύγχρονης κρυπτογραφίας καθώς επίσ ης και σ το [7] το οποίο προσ εγγίζει το αντικείμενο της κρυπτογραφίας και των εφαρμογών της από μια πιο πρακτική ο- πτική γωνία, χωρίς να υπεισ έρχεται σ ε πολύπλοκες μαθηματικές λεπτομέρειες, επικεντρώνοντας σ τη σ ωσ τή χρήσ η των κρυπτογραφικών πρωτοκόλλων. Η ιδέα της κρυπτογραφίας δημόσ ιου κλειδιού (public-key cryptography) εφευρέθηκε τη δεκαετία του 1970 (τουλάχισ τον σ τη δημόσ ια κοινότητα) από τους Whitfield Diffie και Martin Hellman καθώς επίσ ης (ανεξάρτητα από τους προηγούμενους) και από τον Ralph Merkle. Η ιδέα τους ήταν ότι τα κρυπτογραφικά κλειδιά μπορούν να υπάρχουν σ ε ζευγάρια. Ενα κλειδί του ζεύγους χρησ ιμοποιείται για την κρυπτογράφησ η και το άλλο για την αποκρυπτογράφησ η. Οπως θα περιγραφεί και παρακάτω ενώ το κλειδί που χρησ ιμοποιείται για την αποκρυπτογράφησ η πρέπει να είναι μυσ τικό (γι αυτό ονομάζεται και ιδιωτικό), το κλειδί που χρησ ιμοποιείται για την λειτουργία της κρυπτογράφησ ης δεν χρειάζεται να είναι μυσ τικό. Αντιθέτως είναι δημόσ ιο (από εκεί πήρε το όνομά της η κρυπτογραφία δημόσ ιου κλειδιού). Οπως θα δούμε αργότερα, η χαρακτηρισ τική αυτή ιδιότητα της κρυπτογραφίας δημόσ ιου κλειδιού έχει πολύ σ ημαντικά οφέλη. Η ιδέα αυτή είναι εντελώς διαφορετική απ τη λειτουργία της κλασ σ ικής κρυπτογραφίας σ υμμετρικού κλειδιού (symmetric-key cryptography), όπου το ίδιο κλειδί χρησ ιμοποιείται τόσ ο για την κρυπτογράφησ η όσ ο και για την αποκρυπτογράφησ η και φυσ ικά το κλειδί αυτό πρέπει να το γνωρίζουν μόνο τα δύο επικοινωνούντα μέρη Ενα Παράδειγμα Ας δούμε ένα απλό παράδειγμα του πώς λειτουργεί ένας αλγόριθμος δημόσ ιου κλειδιού. Εσ τω ότι ο Bob και η Alice θέλουν να επικοινωνήσ ουν χρησ ιμοποιώντας κρυπτογραφία δημόσ ιου κλειδιού. Αρχικά ο Bob δημιουργεί ένα ζεύγος δημόσ ιου-ιδιωτικού κλειδιού. Το ιδιωτικό κλειδί το κρατάει κρυφό και το δημόσ ιο κλειδί το δίνει σ την Alice. Τώρα η Alice μπορεί να σ τέλνει μηνύματα σ τον Bob, χρησ ιμοποιώντας το δημόσ ιο κλειδί του Bob. Συγκεκριμένα κρυπτογραφεί τα μηνύματα που δημιουργεί με το δημόσ ιο κλειδί του Bob και κατόπιν τα σ τέλνει σ τον Bob. Ο Bob με τη σ ειρά του μπορεί και αποκρυπτογραφεί αυτά τα μηνύματα χρησ ιμοποιώντας το ιδιωτικό κλειδί του που μόνο αυτός γνωρίζει. Αν ο Bob επιθυμεί να σ τείλει απάντησ η σ την Alice, τότε σ υμβαίνει η αντίσ τροφη διαδικασ ία. Η Alice θα πρέπει να έχει δημιουργήσ ει το δικό της ζεύγος 12
25 1.6. Κρυπτογραφία Δημόσ ιου Κλειδιού δημόσ ιου-ιδιωτικού κλειδιού. Ο Bob θα πάρει το δημόσ ιο κλειδί της Alice και θα το χρησ ιμοποιήσ ει για να κρυπτογραφήσ ει τα μηνύματά του και να τα σ τείλει σ την Alice, η οποία με τη σ ειρά της χρησ ιμοποιώντας το ιδιωτικό κλειδί της, που μόνο αυτή γνωρίζει, θα είναι σ ε θέσ η να αποκρυπτογραφήσ ει και να διαβάσ ει τα μηνύματα που της έσ τειλε ο Bob Ασ φάλεια και Πρακτικότητα Για να είναι ασ φαλής ένας αλγόριθμος δημόσ ιου κλειδιού θα πρέπει να είναι υπολογισ τικά αδύνατο να βρεθεί ποιο είναι το ιδιωτικό κλειδί του ζεύγους όταν είναι γνωσ τό μόνο το δημόσ ιο. Σε διαφορετική περίπτωσ η κάποιος που γνωρίζει το δημόσ ιο κλειδί (πράγμα καθόλου δύσ κολο γιατί το δημόσ ιο κλειδί μπορεί οποιοσ δήποτε να το μάθει) θα μπορεί να υπολογίσ ει το ιδιωτικό κλειδί με αποτέλεσ μα η ασ φάλεια του σ υσ τήματος να καταρρεύσ ει. Από το 1976 και μετά έχουν προταθεί πάρα πολλοί αλγόριθμοι δημόσ ιου κλειδιού. Πολλοί από αυτούς είναι μη ασ φαλείς. Από αυτούς που θεωρούνται ακόμα ασ φαλείς, πολλοί δεν μπορούν να εφαρμοσ τούν σ την πράξη. Η απαιτούν πολύ μεγάλο μήκος κλειδιού ή το κρυπτογραφημένο κείμενο (ciphertext) είναι πολύ μεγαλύτερο από το αρχικό κείμενο (plaintext). Πολλοί λίγοι αλγόριθμοι δημόσ ιου κλειδιού είναι ταυτόχρονα ασ φαλείς και πρακτικοί. Οι αλγόριθμοι αυτοί βασ ίζονται γενικά σ ε υπολογισ τικά δύσ κολα προβλήματα, όπως είναι για παράδειγμα η παραγοντοποίησ η μεγάλων ακέραιων αριθμών ή ο υπολογισ μός διακριτών λογαρίθμων (discrete logarithms). Από αυτούς τους ασ φαλείς και πρακτικούς αλγόριθμους, κάποιοι είναι κατάλληλοι μόνο για διανομή κρυπτογραφικών κλειδιών (key distribution). Άλλοι πάλι είναι κατάλληλοι μόνο για ψηφιακές υπογραφές (digital signatures), όπως για παράδειγμα ο αλγόριθμος DSA (Digital Signature Algorithm). Μόνο τρεις αλγόριθμοι δουλεύουν καλά τόσ ο για κρυπτογράφησ η δεδομένων όσ ο και για ψηφιακές υπογραφές: ο RSA (από τα αρχικά των εφευρετών του Ron Rivest, Adi Shamir, Leonard Adleman), ο ElGamal και ο Rabin. Ο πιο διαδεδομένος από τους τρεις αυτούς αλγόριθμους, που χρησ ιμοποιείται σ χεδόν παντού, είναι ο RSA, την λειτουργία του οποίου θα περιγράψουμε σ την επόμενη υπόενότητα. Η δημοτικότητά του, ίσ ως οφείλεται σ το γεγονός ότι είναι ο πιο εύκολα κατανοητός και υλοποιήσ ιμος από τους παραπάνω αλγορίθμους. Αξίζει σ το σ ημείο αυτό να αναφερθεί ότι επειδή ακριβώς η ασ φάλεια του δημοφιλούς RSA βασ ίζεται σ το δύσ κολο πρόβλημα της παραγοντοποίησ ης ακεραίων, το πρόβλημα αυτό είναι εξίσ ου δημοφιλές και αντικείμενο έντονης έρευνας τις τελευταίες δεκαετίες. Αν βρεθεί κάποιος αλγόριθμος που να παραγοντοποιεί μεγάλους ακέραιους αριθμούς σ ε λογικό (πολυωνυμικό) χρόνο, τότε ο RSA 13
26 1. Εισ αγωγη θα καταρρεύσ ει και όλα τα σ υσ τήματα που τον χρησ ιμοποιούν θα πρέπει να τον αντικατασ τήσ ουν. Ωσ τόσ ο οι αλγόριθμοι δημόσ ιου κλειδιού είναι αργοί. Κρυπτογραφούν και αποκρυπτογραφούν δεδομένα πολύ πιο αργά σ ε σ χέσ η με τους αλγόριθμους σ υμμετρικού κλειδιού. Η λύσ η είναι η δημιουργία υβριδικών κρυπτοσ υσ τημάτων (hybrid cryptosystem). Ενας αλγόριθμος σ υμμετρικού κλειδιού με ένα τυχαίο κλειδί, το οποίο ονομάζεται session key, χρησ ιμοποιείται για να κρυπτογραφήσ ει τα δεδομένα, και ένας αλγόριθμος δημόσ ιου κλειδιού χρησ ιμοποιείται για να κρυπτογραφήσ ει το session key Ο Αλγόριθμος RSA Οπως έχει ήδη αναφερθεί ο αλγόριθμος RSA σ τηρίζει την ασ φάλειά του σ την δυσ κολία μας να παραγοντοποιήσ ουμε μεγάλους αριθμούς. Το δημόσ ιο και το ιδιωτικό κλειδί του αλγορίθμου είναι σ υναρτήσ εις δύο μεγάλων πρώτων αριθμών. Η ανάκτησ η του plaintext από το ciphertext και το δημόσ ιο κλειδί υποτίθεται ότι είναι ισ οδύναμη με την παραγοντοποίησ η του γινομένου των δύο πρώτων αριθμών Δημιουργία ζεύγους κλειδιών Για να δημιουργήσ ουμε ένα ζεύγος δημόσ ιου-ιδιωτικού κλειδιού, αρχικά επιλέγουμε δύο τυχαίους 1 μεγάλους πρώτους αριθμούς p και q του ίδιου μήκους και υπολογίζουμε το γινόμενο n = pq. Χρειαζόμασ τε δύο εκθέτες e και d, τέτοιους ώσ τε: ed 1 (mod t) (1.1) Το t ορίζεται σ υνήθως ίσ ο με τη σ υνάρτησ η φ του Euler (Euler totient function, βλέπε λήμμα 1.4): αλλά είναι πιο ακριβές αν ορισ τεί ως: t = φ(n) = φ(pq) = (p 1)(q 1) (1.2) t = lcm(p 1, q 1) (1.3) 1 Η επιλογή των πρώτων αριθμών μπορεί να μη γίνεται τελείως τυχαία, αλλά να εξετάζεται αν αυτοί πληρούν κάποιες σ υγκεκριμένες μαθηματικές ιδιότητες. Οι αριθμοί αυτοί ονομάζονται strong primes και οι ιδιότητες που έχουν κάνουν τα γινόμενα σ τα οποία σ υμμετέχουν ανθεκτικά σ ε ορισ μένους (κυρίως παλαιότερους) αλγόριθμους παραγοντοποίησ ης (βλέπε κεφάλαιο 2). Το αν είναι όντως απαραίτητοι τέτοιοι έλεγχοι είναι υπό σ υζήτησ η. 14
27 1.6. Κρυπτογραφία Δημόσ ιου Κλειδιού όπου lcm τα αρχικά του least common multiple, δηλαδή ελάχισ το κοινό πολλαπλάσ ιο. Οποια και από τις δύο παραπάνω σ χέσ εις για το t να χρησ ιμοποιηθεί τα αποτελέσ ματα θα είναι ακριβώς τα ίδια. Συνήθως διαλέγουμε το e έτσ ι ώσ τε να είναι κάποιος μικρός περιττός αριθμός, όπως 3, 5, 17 ή Το d μπορεί τώρα να υπολογισ τεί ως ο αντίσ τροφος του e modulo t, αφού e e 1 1 (mod t), οπότε από την σ χέσ η 1.1 d = e 1 (mod t). Ο υπολογισ μός του αντισ τρόφου ενός αριθμού a modulo κάποιον αριθμό x γίνεται χρησ ιμοποιώντας τον εκτεταμένο αλγόριθμο του Ευκλείδη (extended Euclidean algrorithm). Για να υπάρχει ο a 1 πρέπει οι a και x να είναι μεταξύ του πρώτοι, πρέπει δηλαδή gcd(a, x) = 1. Οπότε σ τη περίπτωσ ή μας θα πρέπει να ισ χύει gcd(e, t) = 1. Τελικά θα ισ χύει και gcd(d, t) = 1. Οι αριθμοί e και n αποτελούν το δημόσ ιο κλειδί το οποίο θα διατίθεται ελεύθερα. Ο αριθμός d είναι το ιδιωτικό κλειδί το οποίο πρέπει να κρατήσ ουμε κρυφό. Οι δύο πρώτοι p και q δεν είναι πλέον απαραίτητοι. Μπορούμε είτε να τους κατασ τρέψουμε είτε να τους κρατήσ ουμε αλλά σ την τελευταία περίπτωσ η πρέπει να τους κρατήσ ουμε κρυφούς, όπως και το d. Αυτό, γιατί αν κάποιος γνωρίζει τους p και q τότε μπορεί να υπολογίσ ει το d, δηλαδή το ιδιωτικό κλειδί μας! Για τον ίδιο ακριβώς λόγο, αν κάποιος μπορέσ ει να παραγοντοποιήσ ει το n (το οποίο μπορεί εύκολα να το μάθει, αφού, όπως είπαμε είναι μέρος του δημόσ ιου κλειδιού μας), τότε θα ανακτήσ ει τους p και q και η ασ φάλεια του αλγορίθμου θα καταρρεύσ ει. Ο μεγαλύτερος αριθμός που έχει παραγοντοποιηθεί μέχρι σ ήμερα έχει μήκος 663 bits (ή 200 δεκαδικά ψηφία). Παραγοντοποιήθηκε το 2005 χρησ ιμοποιώντας τον General Number Field Sieve, τον ταχύτερο μέχρι σ τιγμής αλγόριθμο για παραγοντοποίησ η μεγάλων αριθμών, ο οποίος είναι και το βασ ικό αντικείμενο της εργασ ίας αυτής. Συνεπώς, για να θεωρηθεί ασ φαλής η χρήσ η του RSA, θα πρέπει το μήκος του n να είναι τουλάχισ τον 1024 bits, με σ υνισ τώμενες τιμές 2048 ή 4096 bits Χρήσ η του RSA για κρυπτογράφησ η Για να κρυπτογραφήσ ουμε ένα μήνυμα m (το m είναι το plaintext) χρησ ιμοποιώντας το ζεύγος κλειδιών που δημιουργήσ αμε προηγουμένως, αρχικά διαιρούμε το m σ ε τμήματα m i που καθένα τους είναι μικρότερο από το n. Κατόπιν κρυπτογραφούμε κάθε m i χωρισ τά για να πάρουμε το αντίσ τοιχο c i ως εξής: c i = m e i mod n (1.4) 15
28 1. Εισ αγωγη Τα c i αποτελούν το ciphertext. Για να αποκρυπτογραφήσ ουμε το ciphertext, αποκρυπτογραφούμε κάθε c i χωρισ τά και παίρνουμε το αντίσ τοιχο m i ως εξής: Αφού είναι c d i = (m e i ) d = m ed i = m k(p 1)(q 1)+1 i m i = c d i mod n (1.5) = m i m k(p 1)(q 1) i = m i 1 = m i (mod n) η σ χέσ η 1.5 ανακτά τα m i, τα οποία αποτελούν το αρχικό μήνυμα m Χρήσ η του RSA για ψηφιακή υπογραφή Ουσ ιασ τικά πρόκειται για τον ίδιο υπολογισ μό με τη μόνη διαφορά ότι οι εκθέτες χρησ ιμοποιούνται με την αντίθετη σ ειρά. Για να υπογράψουμε ψηφιακά ένα μήνυμα m, χρησ ιμοποιούμε το ιδιωτικό μας κλειδί: s = m d mod n (1.6) Το ζεύγος (m, s) είναι ένα υπογεγραμμένο από εμάς μήνυμα. Οποιος θέλει να επαληθεύσ ει το υπογεγραμμένο μήνυμα, αρκεί να χρησ ιμοποιήσ ει το δημόσ ιο κλειδί μας και να επαληθεύσ ει ότι ισ χύει η σ χέσ η: s e = m mod n (1.7) Πρακτικά θέματα ασ φάλειας του RSA Πίσ ω από τους σ χετικά απλούς μαθηματικούς υπολογισ μούς τους οποίους πραγματοποιεί, όπως είδαμε, ο RSA, κρύβονται αρκετές παγίδες οι οποίες απορρέουν κυρίως από τις μαθηματικές ιδιότητες των υπολογισ μών αυτών, που αν δεν ληφθούν υπόψιν τότε μπορεί να οδηγήσ ουν σ την κατασ τροφή της ασ φάλειας που παρέχει ο RSA. Για παράδειγμα, πρέπει να προσ έξουμε έτσ ι ώσ τε το μήνυμα m που θα κρυπτογραφήσ ουμε να είναι αρκετά μεγάλο ώσ τε να πραγματοποιηθεί η πράξη του modulo. Επιπλέον θα πρέπει να φροντίσ ουμε να κατασ τρέφουμε οποιαδήποτε μαθηματική δομή έχουν τα δεδομένα που παίρνει ως είσ οδο ο RSA. Ακόμη είναι βασ ικός κανόνας, όταν θέλουμε να υπογράψουμε ένα μήνυμα m, να μην υπογράφουμε ποτέ το ίδιο το m, αλλά ένα hash του m, χρησ ιμοποιώντας κάποιον κρυπτογραφικό αλγόριθμο για hashing, όπως ο MD5 και ο SHA- 1. Για περισ σ ότερες λεπτομέρειες σ τα σ υγκεκριμένα θέματα, ο αναγνώσ της προτρέπεται να ανατρέξει σ τη σ χετική βιβλιογραφία. 16
29 Κ ε φ α λ α ι ο 2 Μεθοδοι Παραγοντοποιησ ης Στο κεφάλαιο αυτό θα ρίξουμε μια ματιά σ τους βασ ικότερους αλγορίθμους που χρησ ιμοποιήθηκαν ή χρησ ιμοποιούνται ακόμη και σ ήμερα σ ε διάφορες παραγοντοποιήσ εις και θα δούμε πως καταλήξαμε σ τον Number Field Sieve. Τους αλγορίθμους παραγοντοποίησ ης μπορούμε να τους κατατάξουμε σ ε δύο βασ ικές ομάδες. Στην πρώτη ομάδα εντάσ σ ονται οι λεγόμενοι ειδικοί αλγόριθμοι, ενώ σ τη δεύτερη οι γενικοί. Οι ἑιδικοί αλγόριθμοι, όπως φαίνεται και από το όνομά τους, προσ παθούν να παραγοντοποιήσ ουν ακεραίους οι ο- ποίοι έχουν κάποια σ υγκεκριμένη, ειδική μορφή. Για παράδειγμα με κάποιον ἑιδικό αλγόριθμο θα προσ παθήσ ουμε να παραγοντοποιήσ ουμε έναν ακέραιο ο οποίος έχει έναν ή περισ σ ότερους μικρούς παράγοντες. Οπως είναι προφανές, οι αλγόριθμοι αυτοί έχουν ένα πρώτο βήμα κατά το οποίο ελέγχουν να δουν μήπως ο προς παραγοντοποίησ η αριθμός έχει κάποια σ υγκεκριμένη δομή ή ιδιότητα την οποία μπορούν να εκμεταλλευτούν. Αν κάτι τέτοιο σ υμβαίνει, τότε ο ἑιδικός αλγόριθμος θα δώσ ει πολύ πιο γρήγορα το ζητούμενο αποτέλεσ μα από έναν γενικό. Οι γενικοί αλγόριθμοι τώρα, δεν εκμεταλλεύονται καμία ιδιότητα του ακεραίου και επομένως δε σ τοχεύουν σ ε καμία σ υγκεκριμένη ομάδα αριθμών. Θέλουν τον ίδιο χρόνο να παραγοντοποιήσ ουν έναν ακέραιο 100 δυαδικών ψηφίων (bits) σ ε έναν παράγοντα του ενός και έναν των 99 bits ή σ ε δύο παράγοντες των 50 bits ο καθένας. Μερικοί από τους αλγορίθμους που παρουσ ιάζονται έχουν υποεκθετικό (subexponential) χρόνο εκτέλεσ ης, ο οποίος σ υχνά δηλώνεται με την έκφρασ η L n [a, c]. 17
30 2. Μεθοδοι Παραγοντοποιησ ης Ορισμός 2.1 (Αλγόριθμος Υποεκθετικού Χρόνου). Εσ τω A ένας αλγόριθμος ο οποίος δέχεται ως είσ οδο έναν ακέραιο n ή ένα μικρό σ ύνολο από ακεραίους modulo n, και επομένως το μέγεθος της εισ όδου είναι O(log 2 n). Αν ο A απαιτεί για την εκτέλεσ ή του χρόνο ίσ ο με: L n [a, c] = O(e (c+o(1))(log n)a (log log n) 1 α ), όπου c μια σ ταθερά και το α ικανοποιεί τη σ χέσ η 0 < α < 1, τότε ο A είναι αλγόριθμος υποεκθετικού χρόνου. 2.1 Ειδικοί Αλγόριθμοι Οι ειδικοί αλγόριθμοι δεν έχουν καμία απολύτως εφαρμογή σ την παραγοντοποίησ η ακεραίων για τον RSA αλγόριθμο. Αυτό σ υμβαίνει γιατί για τον RSA επιλέγουμε ακεραίους οι οποίοι είναι δύσ κολοι, με την έννοια ότι δεν έχουν κάποια σ υγκεκριμένη δομή, ή μικρούς παράγοντες και επομένως οι ἑιδικοί αλγόριθμοι δε θα μπορέσ ουν ποτέ να παραγοντοποιήσ ουν κάποιον καλό ακέραιο που χρησ ιμοποιείται σ τον RSA αλγόριθμο. Από την οπτική αυτή, μπορεί κάποιος να θεωρήσ ει πως δεν έχουν κανένα απολύτως ενδιαφέρον για το σ κοπό της εργασ ίας αυτής. Παρόλα αυτά παρουσ ιάζονται οι βασ ικότεροι αλγόριθμοι της κατηγορίας αυτής, τόσ ο για πληρότητα, όσ ο και γιατί πολλοί από τους γενικούς αλγορίθμους παραγοντοποίησ ης χρησ ιμοποιούν κάποιες ιδέες και τεχνικές που εμφανίσ τηκαν για πρώτη φορά σ ε αυτούς τους ἑιδικούς αλγορίθμους. Σε όλο το υπόλοιπο κεφάλαιο, με n θα αναπαρισ τούμε τον αριθμό που θέλουμε να παραγοντοποιήσ ουμε Δοκιμασ τική Διαίρεσ η (Trial Division) Η τεχνική αυτή είναι αρκετά γρήγορη για μικρούς σ ύνθετους αριθμούς, και όπως υποδηλώνει και το όνομά της, αυτό που κάνει είναι ουσ ιασ τικά σ υνεχείς διαιρέσ εις με διάφορους παράγοντες και δοκιμές αν το υπόλοιπο είναι ίσ ο με μηδέν. Γενικά ο μικρότερος πρώτος παράγοντας p του n μπορεί να βρεθεί ελέγχοντας αν το n διαιρείται ακριβώς από το 2, 3, 5, 7, 11, 13, 17,... κλπ., δηλαδή από τους διάφορους διαδοχικούς πρώτους αριθμούς μέχρι τον p. Αν υποθεσ ουμε πως έχουμε διαθέσ ιμους όλους τους πρώτους p σ ε έναν πίνακα, τότε η παραπάνω διαδικασ ία απαιτεί π(p) διαιρέσ εις (trial division). 18
31 2.1. Ειδικοί Αλγόριθμοι Ορισμός 2.2. Το πλήθος των πρώτων αριθμών που υπάρχουν μέχρι έναν σ υγκεκριμένο αριθμό p είναι ίσ ο με: π(p) = p ln p Από τον παραπάνω ορισ μό γίνεται εμφανές, πως με την τεχνική των δοκιμασ τικών διαιρέσ εων, ο παράγοντας p του n μπορεί να βρεθεί σ ε περίπου p βήματα. Αυτό σ ημαίνει πως ακόμη και για σ χετικά μικρά p, έσ τω p > 10 6, η τεχνική αυτή είναι λιγότερο αποδοτική από άλλες μεθόδους που περιγράφονται παρακάτω. Το πρόβλημα δεν είναι ότι αποτυγχάνει να παραγοντοποιήσ ει τον υπό εξέτασ η ακέραιο, αλλά ότι από ένα σ ημείο και μετά απαιτείται υπερβολικά πολύς χρόνος, κάτι που κάνει την χρήσ η του μη αποδεκτή για παραγοντοποιήσ εις μεγάλων αριθμών. Αυτό μπορεί να φανεί από το γεγονός πως ο n έχει τον έναν τουλάχισ τον παράγοντα μικρότερο από n, κάτι που σ υνεπάγεται πως απαιτούνται περίπου n πράξεις σ τη χειρότερη περίπτωσ η. Επομένως η χρήσ η της τεχνικής των δοκιμασ τικών διαιρέσ εων είναι απαγορευτική για σ ύνθετους ακεραίους με μόνο μεγάλους παράγοντες, κάτι που γενικά ισ χύει σ την περίπτωσ η του RSA. Παρόλα αυτά για τους περισ σ ότερους σ ύνθετους αριθμούς είναι μια πολύ αποδοτική μέθοδο, μιας και οι περισ σ ότεροι έχουν κάποιον μικρό παράγοντα. Το 88% των θετικών ακεραίων έχουν κάποιον παράγοντα < 100, ενώ σ χεδόν το 92% των αριθμών έχουν κάποιον παράγοντα < Η Μέθοδος p 1 του Pollard Το 1975 ο Pollard πρότεινε έναν νέο αλγόριθμο παραγοντοποίησ ης ακεραίων[8]. Η νέα αυτή πρότασ η βασ ίζεται σ το μικρό θεώρημα του Fermat (Fermat s little theorem). Εσ τω πάλι p ένας πρώτος παράγοντας του n. Με βάσ η το μικρό θεώρημα του Fermat για κάθε ακέραιο a με 0 < a < p ισ χύει πως a p 1 1 mod p, άρα και a k(p 1) 1 k 1 mod p για κάθε ακέραιο k. Επομένως για κάθε πολλαπλάσ ιο m του p 1 ισ χύει πως a m 1 mod p, δηλαδή το p διαιρεί το a m 1. Κατά σ υνέπεια, ο υπολογισ μός του gcd(a m 1, n), μπορεί να αποκαλύψει μια παραγοντοποίησ η του n. Αξίζει να σ ημειωθεί πως είναι αρκετό να υπολογίσ ουμε το gcd((a m 1) mod n, n), μιας και το p διαιρεί και το (a m 1) mod n, αφού το p διαιρεί το n. Θεώρημα 2.1 (B-smooth). Αν n είναι θετικός ακέραιος του οποίου όλοι οι πρώτοι παράγοντες είναι μικρότεροι από B, τότε ο n λέγεται B-ομαλός (Bsmooth). 19
32 2. Μεθοδοι Παραγοντοποιησ ης Αυτό που μένει είναι να βρούμε ένα πολλαπλάσ ιο m > 1 του p 1. Ελπίζουμε πως ο p 1 θα είναι B smooth, με το B να είναι ένα σ χετικά μικρό όριο. Αυτό σ ημαίνει πως ο p 1 θα έχει πρώτους παράγοντες που θα είναι όλοι B. Αυτό μπορεί να σ υνεπάγεται πως ένας m της μορφής q B q, με το γινόμενο αυτό να κυμαίνεται πέρα από τις πρώτες δυνάμεις του q, θα μπορούσ ε να είναι ένα πολλαπλάσ ιο του p 1. Από τη σ τιγμή που (a m 1) mod n για ένα τέτοιο m μπορεί να υπολογισ τεί σ ε χρόνο ανάλογο του B, η μέθοδος p 1 του Pollard μπορεί να παραγοντοποιήσ ει έναν αριθμό n σ τους πρώτους του παράγοντες p σ ε χρόνο ανάλογο του μεγαλύτερου παράγοντα του p 1. Προφανώς, ο αλγόριθμος αυτός θα είναι αποδοτικός μόνο για παράγοντες p για τους οποίους το p 1 είναι smooth. Η παρατήρησ η αυτή εξηγεί και το λόγο για τον οποίο πολλοί επιμένουν να χρησ ιμοποιούν πρώτους της μορφής 2q + 1 (με το q να είναι πρώτος) σ ε σ υσ τήματα κρυπτογραφίας που βασ ίζονται σ την δυσ κολία παραγοντοποίησ ης μεγάλων ακεραίων. Ωσ τόσ ο το μέτρο αυτό πρόληψης δεν παρέχει κανενός είδους προσ τασ ία, όταν η κρυπτανάλυσ η πραγματοποιείται,για παράδειγμα, με την μέθοδο των ελλειπτικών καμπυλών. Για να γίνουν τα παραπάνω λίγο πιο κατανοητά, ας δούμε ένα παράδειγμα. Εσ τω ότι θέλουμε να παραγοντοποιήσ ουμε τον αριθμό n = 143 και έσ τω a = 2. Αν υψώσ ουμε το a σ ε διαδοχικές, μικρές, πρώτες δυνάμεις και υπολογίσ ουμε τους αντίσ τοιχους μέγισ τους κοινούς διαιρέτες (gcd), βρίσ κουμε πως p = 13 = , αφότου έχουμε υπολογίσ ει τις πρώτες δυνάμεις 2 2 και 3: 2 4 = 16, gcd(16 1, 143) = = (16 2 ) mod 143, gcd(92 1, 143) = 13. Αν όμως απλά σ υνεχίζαμε να υψώνουμε το a = 2 σ τον επόμενο πρώτο, θα βρίσ καμε p = 11 = , αφότου έχουμε υπολογίσ ει τους πρώτους 2, 3 και 5: 2 2 = 4, gcd(4 1, 143) = 1, 4 3 = 64, gcd(64 1, 143) = 1, 64 5 = (64 2 ) mod 143, gcd(12 1, 143) = 11. Πληροφορίες για παραλλαγές της μεθόδου αυτής, καθώς και για αποδοτικούς τρόπους υλοποίησ ής της μπορούμε να ανατρέξουμε σ το [9]. 20
33 2.1. Ειδικοί Αλγόριθμοι Η Μέθοδος p του Pollard Η μέθοδος p του Pollard [10] βασ ίζεται σ το σ υνδυασ μό δύο ιδεών που είναι πολύ χρήσ ιμες σ ε πολλούς αλγορίθμους παραγοντοποίησ ης. Η πρώτη ιδέα είναι γνωσ τή ως το Παράδοξο των Γενεθλίων (Birthday paradox). Σύμφωνα με αυτό σ ε ένα σ ύνολο από τουλάχισ τον 23 τυχαία επιλεγμένους ανθρώπους υπάρχουν δύο οι οποίοι έχουν γενέθλια την ίδια ημέρα με πιθανότητα μεγαλύτερη από 50%. Γενικότερα, αν επιλέγουμε τυχαία αριθμούς από ένα σ ύνολο το οποίο περιέχει σ υνολικά p αριθμούς, η πιθανότητα να επιλέξουμε δυο φορές τον ίδιο αριθμό είναι μεγαλύτερη από 50% αν έχουμε επιλέξει τουλάχισ τον p αριθμούς από το σ ύνολο αυτό. Η πρώτη επανάληψη πρέπει να αναμένεται αφότου έχουμε επιλέξει c p αριθμούς, με c μια μικρή σ ταθερά. Η δεύτερη ιδέα είναι η ακόλουθη: Εσ τω p κάποιος άγνωσ τος παράγοντας του n και x και y δύο ακέραιοι οι οποίοι έχουμε λόγους να πισ τεύουμε πως είναι ίσ οι σ ε modulo p, δηλαδή ισ χύει x y mod p. Αυτό μπορεί να ελεγχθεί απλά και μόνο υπολογίζοντας το gcd( x y, n). Το πιο σ ημαντικό είναι πως ο υπολογισ μός αυτός μπορεί να αποκαλύψει μια παραγοντοποίησ η του n, εκτός βέβαια και αν οι x και y είναι ίδιοι σ ε modulo n. Ας δούμε τώρα πώς μπορούμε να σ υνδυάσ ουμε τις δύο παραπάνω ιδέες σ ε έναν αλγόριθμο παραγοντοποίησ ης. Αρχικά παράγουμε μια ακολουθία σ το διάσ τημα {0, 1, 2,..., n 1} από τυχαία επιλεγμένους x 0 και ορίζουμε το x i+1 ως το πιο μικρό θετικό υπόλοιπο του x 2 i + 1 mod n. Αφού το p διαιρεί το n, τα μικρότερα θετικά υπόλοιπα x i mod p και x j mod p είναι ίσ α αν και μόνο αν τα x i και x j είναι ίσ α σ ε modulo p. Τα x i και x j λειτουργούν λίγο πολύ ως τυχαίοι ακέραιοι σ το διάσ τημα {0, 1, 2,..., p 1} και επομένως έχουμε λόγους να περιμένουμε πως είναι πιθανό να παραγοντοποιήσ ουμε το n υπολογίζοντας το gcd( x i x j, n) για i j, αφότου έχουμε υπολογίσ ει τουλάχισ τον c p σ τοιχεία της ακολουθίας. Η παραπάνω διαδικασ ία απαιτεί περίπου τον έλεγχο (c p) 2 /2 ζευγαριών x i και x j. Ωσ τόσ ο υπάρχει τρόπος αυτό να μειωθεί αισ θητά και η διαδικασ ία να απαιτεί περίπου 2 p υπολογισ μούς του μέγισ του κοινού διαιρέτη. Για να γίνουν τα παραπάνω λίγο πιο κατανοητά, ας δούμε ένα παράδειγμα. Εσ τω ότι θέλουμε να παραγοντοποιήσ ουμε τον αριθμό n = 143 και έσ τω ax 0 = 2: x 1 = = 5, x 2 = = 26 : gcd( 5 26, 143) = 1, x 2 = 26, x 4 = ( ) mod 143 : gcd( 26 15, 143) =
34 2. Μεθοδοι Παραγοντοποιησ ης Με x 0 = 3, η διαδικασ ία επιταχύνεται, αλλά βρίσ κουμε διαφορετικό παράγοντα: x 1 = = 10, x 2 = = 101 : gcd( , 143) = 13. Η μεγαλύτερη επιτυχία της μεθόδου αυτής ήταν η παραγοντοποίησ η που πραγματοποιήθηκε το 1980 από τους Pollard και Brent, του όγδοου αριθμού του Fermat [11]: = p62, όπου το p62 δηλώνει έναν πρώτο αριθμό 62 ψηφίων Η Μέθοδος Ελλειπτικών Καμπυλών Το βασ ικό μειονέκτημα της μεθόδου p 1 του Pollard είναι ότι λειτουργεί αποδοτικά μόνο σ την περίπτωσ η που ο ακέραιος που θέλουμε να παραγοντοποιήσ ουμε τυχαίνει να έχει κάποιον παράγοντα p και ο p 1 είναι B smooth, με το B να είναι σ χετικά μικρό όριο. Μπορούμε επομένως να τον θεωρήσ ουμε τυχερό αλγόριθμο. Η μέθοδος των ελλειπτικών καμπυλών [12] μπορεί να θεωρηθεί ως μια παραλλαγή της p 1 μεθόδου του Pollard, η οποία δεν έχει αυτό το μειονέκτημά. Η μέθοδος αυτή πραγματοποιεί ένα σ ύνολο δοκιμών, εκ των οποίων οποιαδήποτε μπορεί να είναι τυχερή και να παραγοντοποιήσ ει τον n, ανεξάρτητα από τις υπόλοιπες. Μια δοκιμή θεωρείται επιτυχημένη αν κάποιος τυχαίος ακέραιος που βρίσ κεται αριθμητικά κοντά σ ε κάποιον παράγοντα του n, είναι smooth. Επομένως, η πιθανότητα μια δοκιμή να είναι επιτυχημένη εξαρτάται μόνο από το μέγεθος του n και όχι από κάποια άλλη ιδιότητα ή απαίτησ η. Η αναλυτική παρουσ ίασ η της μεθόδου ξεφεύγει από τα πλαίσ ια της διπλωματικής αυτής εργασ ίας. Αυτό που αξίζει να σ υγκρατήσ ει κανείς, είναι μια γενική εικόνα της λειτουργίας του αλγορίθμου αυτού. Ας πάρουμε λοιπόν μια γεύσ η της λειτουργίας του. Σε κάθε δοκιμή δημιουργείται τυχαία μια ελλειπτική καμπύλη modulo n. Για κάποιον πρώτο p που διαιρεί το n, οποιοδήποτε τυχαίο σ ημείο a της καμπύλης, ικανοποιεί μια εξίσ ωσ η αντίσ τοιχη αυτής του μικρού θεωρήματος του Fermat, με δύο όμως βασ ικές διαφορές. Στην πρώτη οφείλεται και η δύναμη της μεθόδου αυτής και η διαφορά είναι ότι ο εκθέτης p 1 αντικαθίσ ταται από κάποιον τυχαίο ˆp αριθμητικά κοντά σ τον p 1. Η δεύτερη διαφορά οφείλεται σ το γεγονός ότι το a είναι σ ημείο πώ σ ε μια καμπύλη και όχι κάποιος ακέραιος. Επομένως η ύψωσ η σ ε δύναμη πρέπει να γίνει με διαφορετικές τεχνικές. Ο αριθμός των σ τοιχειωδών αριθμητικών πράξεων 22
35 2.2. Γενικοί Αλγόριθμοι που πρέπει να πραγματοποιηθούν για να υψώσ ουμε το σ ημείο της καμπύλης σ ε δύναμη σ ε modulo n είναι ένα σ ταθερό πολλαπλάσ ιο αυτών που απαιτούνται για την ύψωσ η σ ε δύναμη σ ε modulo n ενός τυπικού ακεραίου με τον ίδιο εκθέτη. Οπως και σ τη μέθοδο p 1, έτσ ι κι εδώ αν υψώσ ουμε το σ ημείο a της καμπύλης σ ε κάποια δύναμη που είναι πολλαπλάσ ιο του ˆp, τότε είναι πολύ πιθανό να βρούμε κάποια κάποια παραγοντοποίησ η του n. Αν το ˆp είναι B smooth, τότε η παραπάνω διαδικασ ία μπορεί να πραγματοποιηθεί με περίπου c(ln n) 2 B σ τοιχειώδεις αριθμητικές πράξεις, όπου c μια μικρή σ ταθερά. Επομένως για την ολοκλήρωσ η της παραγοντοποίησ ης είναι αρκετό να δοκιμάζουμε σ υνεχώς νέες καμπύλες, δηλαδή να παίρνουμε νέα ˆp, και σ τη σ υνέχεια να υψώνουμε τα σ ημεία σ ε μεγάλες, αλλά smooth δυνάμεις, μέχρι κάποιο ˆp να διαιρεί την smooth δύναμη. Ο αναμενόμενος χρόνος εκτέλεσ ης που απαιτεί η μέθοδος αυτή για την παραγοντοποίησ η ενός ακεραίου είναι: (ln n) 2 L p [1/2, 2 + o(1), για p. Στη χειρότερη περίπτωσ η, δηλαδή όταν p n ο χρόνος γίνεται L n [1/2, 1+o(1)] για n. Επομένως η χειρότερη περίπτωσ η της μεθόδου ελλειπτικών καμπυλών απαιτεί υποεκθετικό χρόνο. Αυτό είναι προφανώς ταχύτερο από όλες τις προηγούμενες μεθόδους που έχουμε αναφέρει μέχρι τώρα. Με τη μέθοδο αυτή έχουμε καταφέρει να παραγοντοποιήσ ουμε τον δέκατο (F 10 ) και ενδέκατο (F 11 ) από τους αριθμούς του Fermat. 2.2 Γενικοί Αλγόριθμοι Στην προηγούμενη ενότητα περιγράψαμε μερικούς από τους σ ημαντικότερους ἑιδικούς αλγορίθμους. Ωσ τόσ ο, όπως έχουμε ήδη αναφέρει, οι αλγόριθμοι αυτοί δεν μπορούν να χρησ ιμοποιηθούν για την παραγοντοποίησ η των σ ύνθετων ακεραίων που χρησ ιμοποιούνται σ τον RSA αλγόριθμο και αυτό γιατί οι πρώτοι που χρησ ιμοποιούνται σ τον RSA έχουν επιλεγεί να ικανοποιούν κάποια κριτήρια που τους καθισ τούν δύσ κολους. Οι μόνοι αλγόριθμοι που μπορούν να χρησ ιμοποιηθούν για την παραγοντοποίησ η ακεραίων που χρησ ιμοποιούνται σ τον RSA είναι οι λεγόμενοι γενικοί αλγόριθμοι παραγοντοποίησ ης. Από τους γενικούς αυτούς αλγορίθμους, ο μόνος που έχει νόημα με τα σ ημερινά μεγέθη κλειδιών είναι αυτός που υλοποιήθηκε σ τα πλαίσ ια της διπλωματικής αυτής εργασ ίας και δεν είναι άλλος από τον General Number Field Sieve (GNFS). Ολοι οι μοντέρνοι αλγόριθμοι παραγοντοποίησ ης, σ υμπεριλαμβανομένου και του GNFS, βασ ίζονται σ την ιδέα των ισ οϋπόλοιπων τετραγώνων. 23
36 2. Μεθοδοι Παραγοντοποιησ ης Ισ οϋπόλοιπα Τετράγωνα (Congruent Squares) Τα ισ οϋπόλοιπα τετράγωνα είναι ψευδώνυμο της ισ ότητας του Legendre. Ορισμός 2.3 (Legendre Congruence). x 2 y 2 mod n, 0 x y n, x y, x + y n Αν υπάρχουν δύο ακέραιοι x και y που να ικανοποιούν την ισ ότητα του Legendre, τότε τα gcd(x y, n) και gcd(x + y, n) είναι με μεγάλη πιθανότητα δύο μη-τετριμμένοι παράγοντες του n. Αν ικανοποιείται η παραπάνω ισ ότητα, τότε έχουμε: x 2 y 2 mod n το οποίο σ υνεπάγεται: x 2 y 2 mod n n x 2 y 2 n (x y)(x + y) Αν η παραγοντοποίησ η του n σ ε πρώτους παράγοντες είναι n = p q, από την θεωρία αριθμών έχουμε πως: x 2 y 2 mod pq pq x 2 y 2 pq (x y)(x + y) p (x y) or p (x + y) q (x y) or q (x + y) Από τα παραπάνω μπορούμε εύκολα να σ υμπεράνουμε πως μπορούμε να βρούμε τα p και q υπολογίζοντας απλώς το gcd(x ± y, n). Παρόλα αυτά δεν είναι σ ίγουρο ότι θα πάρουμε σ ε κάθε περίπτωσ η μη-τετριμμένη παραγοντοποίησ η του n. Από τον πίνακα 2.1 διαπισ τώνουμε ότι έχουμε πιθανότητα 2/3 να πάρουμε μια μη-τετριμμένη παραγοντοποίησ η του n, θεωρώντας βέβαια πως όλοι οι σ υνδυασ μοί του πίνακα να είναι ισ οπίθανοι. Αυτό σ υνεπάγεται πως είναι πολύ πιθανό να χρειασ τούμε ένα μικρό μόνο πλήθος από ζεύγη (x, y) που να ικανοποιούν την ισ ότητα του Legendre, ώσ τε να παραγοντοποιήσ ουμε τον ακέραιο n. Ολοι οι σ ύγχρονοι αλγόριθμοι παραγοντοποίησ ης αποτελούνται από τρία βασ ικά βήματα: 24
37 2.2. Γενικοί Αλγόριθμοι μη-τετριμμένη παραγοντοποίησ η ΝΑΙ ΟΧΙ ΝΑΙ ΟΧΙ n 1 ΟΧΙ ΝΑΙ ΟΧΙ ΟΧΙ ΝΑΙ p q ΝΑΙ ΝΑΙ ΟΧΙ ΝΑΙ ΝΑΙ n q ΝΑΙ ΟΧΙ ΝΑΙ ΝΑΙ ΟΧΙ q p ΝΑΙ ΟΧΙ ΝΑΙ ΟΧΙ ΝΑΙ 1 n ΟΧΙ ΟΧΙ ΝΑΙ ΝΑΙ ΝΑΙ q n ΝΑΙ ΝΑΙ ΝΑΙ ΝΑΙ ΟΧΙ n p ΝΑΙ ΝΑΙ ΝΑΙ ΟΧΙ ΝΑΙ p n ΝΑΙ ΝΑΙ ΝΑΙ ΝΑΙ ΝΑΙ n n ΟΧΙ p (x y) p (x + y) q (x y) q (x + y) gcd(x y, n) gcd(x + y, n) Πίνακας 2.1: Πίνακας αποτελεσ μάτων ισ οϋπόλοιπων τετραγώνων με n = p q 1. Ανακαλύπτουν ένα σ ύνολο από σ χέσ εις (relations) που είναι smooth πάνω σ ε μια βάσ η παραγόντων (factor base). 2. Επιλύουν το σ ύσ τημα των γραμμικών εξισ ώσ εων που προκύπτει, ώσ τε να βρουν ένα σ ύνολο από σ χέσ εις που να τους δίνει τετράγωνα. 3. Υπολογίζουν τον μέγισ το κοινό διαιρέτη των τετραγώνων και του ακεραίου που θέλουν να παραγοντοποιήσ ουν, δηλαδή το gcd(x ± y, n), και βρίσ κουν τους πιθανά μη-τετριμμένους παράγοντές του. Τα τρία παραπάνω βήματα είναι κοινά σ ε όλους τους σ ύγχρονους αλγορίθμους και αυτό που τους διαφοροποιεί είναι ο τρόπος με τον οποίο σ υλλέγουν τις σ χέσ εις, δηλαδή τα ζευγάρια των ακεραίων, που ικανοποιούν την ισ ότητα του Legendre Συνεχή Κλάσ ματα (Continued Fractions) Ο αλγόριθμος αυτός είναι ο πρώτος που εκμεταλλεύτηκε αποδοτικά την ιδέα των ισ οϋπόλοιπων τετραγώνων και για αρκετά χρόνια αποτέλεσ ε τον καλύτερο αλγόριθμο παραγοντοποίησ ης μεγάλων σ ύνθετων ακεραίων. Θεωρήθηκε ξεπερασ μένος, μόνο μετά την εμφάνισ η του Quadratic Sieve και κυρίως του Number Field Sieve. Το ενδιαφέρον με τον αλγόριθμο αυτό είναι ο τρόπος με τον οποίο ανακαλύπτονται τα επιθυμητά τετράγωνα, ο οποίος διαφέρει ριζικά από όλους τους αλγορίθμους που έχουμε παρουσ ιάσ ει μέχρι τώρα. Οπως δηλώνει και το όνομά του, ο αλγόριθμος αυτός χρησ ιμοποιεί την λογική των σ υνεχόμενων κλασ μάτων. Με σ υνεχή κλάσ ματα μπορούμε να αναπαρασ τήσ ουμε πραγματικούς αριθμούς χρησ ιμοποιώντας ακεραίους. Οποιοσ δήποτε 25
38 2. Μεθοδοι Παραγοντοποιησ ης πραγματικός αριθμός x μπορεί να αναπαρασ ταθεί από ένα σ υνεχές κλάσ μα της μορφής: x = a 0 + b 1 a 1+ b 2 a 2 + b 3 a όπου τα a i, b i ɛ Z. Αν b i = 1, τότε η παραπάνω σ χέσ η ονομάζεται απλό σ υνεχές κλάσ μα (simple continued fraction). Ενα απλό σ υνεχές κλάσ μα σ υνήθως γράφεται σ την απλοποιημένη μορφή x = [a 0, a 1, a 2, a 3,...]. Θεώρημα 2.2. Η τετραγωνική ρίζα n ενός αριθμού n που δεν περιέχει τετράγωνα ( square free) έχει ένα περιοδικό σ υνεχές κλάσ μα της μορφής n = [a0, a 1,..., a n, 2a 0 ] Επιπλέον ισ χύει 0 a i 2 n. Για να μπορέσ ουμε να περιγράψουμε τον αλγόριθμο σ υνεχών κλασ μάτων, χρειαζόμασ τε έναν ακόμη ορισ μό. Ορισμός 2.4. Οι σ υγκλίσ εις P n /Q n ενός απλού σ υνεχούς κλάσ ματος ορίζονται ως: [q 0, q 1, q 2, q 3,...] P 0 = q 0 Q 0 1 P 1 = q 0q Q 1 q P i Q i = q ip i 1 + P i 2 q i Q i 1 + Q i 2, i 2
39 2.2. Γενικοί Αλγόριθμοι Ο αλγόριθμος των σ υνεχών κλασ μάτων χρησ ιμοποιεί τις παραπάνω σ ύγκλισ ης του n και όσ ες από αυτές είναι ομαλές (smooth) πάνω σ την βάσ η παραγόντων, θεωρούνται σ χέσ εις. Οι σ χέσ εις αυτές σ τη σ υνέχεια χρησ ιμοποιούνται σ την επίλυσ η του γραμμικού σ υσ τήματος που προκύπτει και όσ ες από αυτές μας δίνουν τέλειο τετράγωνο, χρησ ιμοποιούνται σ το τελευταίο βήμα του αλγορίθμου, που είναι ο υπολογισ μός του μέγισ του κοινού διαιρέτη. Υπάρχει περίπτωσ η, η περίοδος του σ υνεχούς κλάσ ματος του n να είναι τόσ ο μικρή, που να είναι αδύνατη η σ υλλογή αρκετών σ χέσ εων. Στην περίπτωσ η αυτή η λύσ η είναι να χρησ ιμοποιήσ ουμε το kn. Για περισ σ ότερες πληροφορίες σ χετικά με τον αλγόριθμο αυτό, ο αναγνώσ της μπορεί να ανατρέξει σ τα [13] και [14] Quadratic Sieve (QS) Ενα από τα βασ ικότερα μειονεκτήματα του προηγούμενου αλγορίθμου είναι ότι πραγματοποιεί πολλές άχρησ τες διαιρέσ εις. Από τη σ τιγμή μάλισ τα που οι διαιρέσ εις είναι ἁκριβές, σ ε χρόνο, πράξεις, γίνεται αμέσ ως αντιληπτό πως σ παταλάει άσ κοπα χρόνο σ ε πράξεις που δε θα αποδόσ ουν τίποτα για την σ υνέχεια του αλγορίθμου. Δυσ τυχώς δεν υπάρχει κάποιος τρόπος που να μπορεί να εξασ φαλίσ ει πως οι διαιρέσ εις που θα πραγματοποιηθούν θα εφαρμοσ τούν μόνο σ ε αριθμούς που είναι smooth και θα καταλήξουν σ ε κάποια σ χέσ η (relation). Ο Pomerance σ το [14] πρότεινε έναν νέο αλγόριθμο, τον οποίο ονόμασ ε Quadratic Sieve, και σ τόχος του ήταν να αποφύγει τις πολλές άσ κοπες διαιρέσ εις που πραγματοποιούνταν σ τον CFRAC αλγόριθμο. Οπως και σ τον CFRAC, έτσ ι και σ τον νέο αλγόριθμο που πρότεινε, η βασ ική ιδέα είναι τα ισ οϋπόλοιπα τετράγωνα. Η βασ ική τους διαφορά είναι ο τρόπος με τον ο- ποίο προσ εγγίζει την σ υλλογή των σ χέσ εων που οδηγούν τελικά σ ε τέλεια τετράγωνα. Οπως αποκαλύπτει και το όνομά του, ο αλγόριθμος αυτός χρησ ιμοποιεί ένα πολυώνυμο δευτέρου βαθμού και τετραγωνικά υπόλοιπα (quadratic residues). Θα αρχίσ ουμε την περιγραφή του αλγορίθμου, ορίζοντας το πολυώνυμο αυτό, το οποίο είναι: Q(x) = (x + n ) 2 = x 2 n (2.1) Στη σ υνέχεια υπολογίζουμε τα Q(x 1 ), Q(x 2 ),..., Q(x k ) για κάποια x i που θα δούμε παρακάτω πώς προκύπτουν. Από τα διάφορα Q(x i ) που υπολογίσ αμε, θέλουμε να κρατήσ ουμε μόνο εκείνα, το γινόμενο Q(x i1 ) Q(x i2 ) Q(x ir ) των οποίων είναι τέλειο τετράγωνο σ το πεδίο Z, δηλαδή y 2 Z. 27
40 2. Μεθοδοι Παραγοντοποιησ ης Από τη σ χέσ η (2.1) έχουμε πως Q(x) x 2 (mod n), επομένως παίρνουμε την ζητούμενη ισ οτιμία (congruence) Q(x i1 ) Q(x i2 ) Q(x ir ) (x i1 x i2 x ir ) 2 mod n (2.2) Τέλος υπολογίζοντας τον μέγισ το κοινό διαιρέτη των τετραγώνων και του ακεραίου n, παίρνουμε πιθανά έναν μη-τετριμμένο παράγοντα του n. Αυτό που μένει ακόμη αδιευκρίνισ το, είναι ο τρόπος εύρεσ ης των Q(x i ) s που το γινόμενο των οποίων μας δίνει τέλειο τετράγωνο. Οπως και σ τον CFARC, έτσ ι κι εδώ, σ υλλέγουμε σ χέσ εις που είναι smooth πάνω ως προς μια βάσ η παραγόντων και κατόπιν με επίλυσ η του γραμμικού σ υσ τήματος που προκύπτει βρίσ κουμε ποιες από τις σ χέσ εις αυτές μας δίνουν τελικά τέλειο τετράγωνο. Η βάσ η παραγόντων σ τον QS αποτελείται από πρώτους αριθμούς οι οποίοι είναι μικρότεροι από B και για τους οποίους το n είναι τετραγωνικό υπόλοιπο (mod p i ), δηλαδή το Legendre symbol είναι ( n p i ) = 1 Οι σ χέσ εις προκύπτουν πραγματοποιώντας κοσ κίνισ μα (sieving) πάνω σ ε κάποιο διάσ τημα από x i και αυτά τα x i που θα δώσ ουν κάποιο Q(x i ) το οποίο θα είναι smooth ως προς τη βάσ η παραγόντων, θα διατηρηθούν σ το σ ύνολο με τις σ χέσ εις. Ο quadratic sieve ήταν για αρκετά χρόνια ο ταχύτερος γενικός αλγόριθμος παραγοντοποίησ ης για μεγάλους σ ύνθετους ακεραίους, ωσ τόσ ο μπήκε σ το περιθώριο από τη σ τιγμή εμφάνισ ης του number field sieve. Παρόλα αυτά για ακεραίους με ψηφία παραμένει η ταχύτερη επιλογή. Από τη μέρα εμφάνισ ής του έχουν προταθεί διάφορες βελτιώσ εις. Μεταξύ αυτών είναι και η χρήσ η πολλαπλών πολυωνύμων, καθώς και διαφορετικών τεχνικών sieving. Η πρώτη πρότασ η οδήγησ ε σ τη δημιουργία του Multiple Polynomial Quadratic Sieve (MPQS). Η πολυπλοκότητα του αλγορίθμου αυτού είναι η ίδια με αυτήν των ελλειπτικών καμπυλών (L n [1/2, 1]), αλλά έχει το πλεονέκτημα ότι πραγματοποιεί πιο γρήγορες και εύκολες πράξεις, επομένως για ακεραίους με μόνο μεγάλους πρώτους παράγοντες ο QS είναι πιο γρήγορος από τον ECM Number Field Sieve (NFS) Ο αλγόριθμος αυτός ξεκίνησ ε ουσ ιασ τικά από τον Pollard, ο οποίος το 1988 πρότεινε μια μέθοδο παραγοντοποίησ ης η οποία έδειχνε να αρμόζει απόλυτα 28
41 2.2. Γενικοί Αλγόριθμοι Algorithm 2.1 QS Είσ οδος: σ ύνθετος ακέραιος n. Εξοδος: μια μη-τετριμμένη παραγοντοποίησ η του n. Βήμα 1: (Δημιουργία της βάσ ης των παραγόντων) Κατασ κευάζουμε την βάσ η παραγόντων η οποία περιέχει όλους εκείνους τους πρώτους, για τους οποίους το Legendre Symbol μας δίνει ( n p i ) = 1. Βήμα 2: (Εύρεσ η σ χέσ εων) Υπολογίζουμε το πολυώνυμο Q(x) και ορίζουμε ένα διάσ τημα [ M; M] μέσ α σ το οποίο θα πραγματοποιηθεί το απαιτούμενο sieving. Στη σ υνέχεια υπολογίζουμε τα Q(x i ) για x i [ M; M]. Αν το Q(x i ) είναι smooth ως προς την βάσ η των παραγόντων, τότε αποθηκεύουμε το x i αυτό σ το σ ύνολο με τις επιλεγμένες σ χέσ εις. Συνεχίζουμε σ το επόμενο x i μέχρι να έχουμε σ υλλέξει σ υνολικά περισ σ ότερες σ χέσ εις από το πλήθος των σ τοιχείων σ τη βάσ η των παραγόντων. Βήμα 3: (Εύρεσ η τέλειων τετραγώνων) Στη σ υνέχεια επιλύουμε το γραμμικό σ ύσ τημα που προέκυψε από τις επιλεγμένες σ χέσ εις, χρησ ιμοποιώντας Απαλοιφή Gauss σ το πεδίο GF (2) και βρίσ κουμε x και y που ικανοποιούν την ισ οτιμία του Legendre (βλέπε 2.2). Βήμα 4: (Υπολογισ μός μέγισ του κοινού διαιρέτη) Ο παράγοντας p μπορεί να βρεθεί πλέον με πιθανότητα 2/3 (βλέπε πίνακα 2.1) υπολογίζοντας τον μέγισ το κοινό διαιρέτη gcd(x ± y, n). σ την παραγοντοποίησ η αριθμών, όπως αυτοί του Fermat. Γρήγορα η μέθοδος αυτή γενικεύτηκε, ώσ τε να μπορεί να παραγοντοποιήσ ει οποιονδήποτε σ ύνθετο ακέραιο. Σήμερα η αρχική έκδοσ η του αλγορίθμου του Pollard είναι γνωσ τή ως Special Number Field Sieve (SNFS), ενώ η γενική της εκδοχή είναι γνωσ τή με το όνομα General Number Field Sieve (GNFS). Στην εργασ ία αυτή, με τον όρο NFS, αναφερόμασ τε ουσ ιασ τικά σ τον GNFS, ο οποίος είναι και ο αλγόριθμος που θα παρουσ ιάσ ουμε εκτενώς, αλλά και αυτός που υλοποιήσ αμε. Σήμερα ο GNFS είναι ο ταχύτερος γενικός αλγόριθμος παραγοντοποίησ ης μεγάλων ακεραίων, για αριθμούς με περισ σ ότερα από ψηφία. Αξίζει να σ ημειωθεί πως για λιγότερα ψηφία ο QS παραμένει πιο γρήγορος και αυτό οφείλεται σ την πολυπλοκότητα του GNFS. 29
42 2. Μεθοδοι Παραγοντοποιησ ης Ο number field sieve προχώρησ ε ένα βήμα μπροσ τά από τον quadratic sieve και κάνει χρήσ η και αλγεβρικών πεδίων αριθμών. Κάποιοι βασ ικοί ορισ μοί και θεωρήματα, χρήσ ιμοι για την κατανόησ η του αλγορίθμου, αναφέρθηκαν ήδη σ το κεφάλαιο 1 και θα αναφερθούν και περισ σ ότερες λεπτομέρειες σ ε επόμενο κεφάλαια κατά την εκτενή παρουσ ίασ η του αλγορίθμου. Εδώ θα παρουσ ιάσ ουμε σ υνοπτικά τον αλγόριθμο και θα γίνει μια προσ πάθεια να εξηγήσ ουμε γιατί τελικά λειτουργεί ο αλγόριθμος. Σε γενικές γραμμές εμφανίζει πολλές ομοιότητες με τον προηγούμενο αλγόριθμο (QS), με την βασ ική διαφορά τους να έγκειται σ το πεδίο σ το οποίο λειτουργεί ο καθένας. Με τον όρο πεδίο αριθμών (number field) εννοούμε κάποιο υποπεδίο του σ υνόλου C. Ενας τρόπος να κατασ κευάσ ουμε ένα πεδίο αριθμών K είναι να βρούμε ένα ανάγωγο (irreducible) πολυώνυμο βαθμού d με ρίζα α C και τότε το K = Q[α] είναι ένα πεδίο επέκτασ ης (extension field) βαθμού d. Ενας δακτύλιος αριθμών (number ring) είναι ένα υποσ ύνολο ενός πεδίου αριθμών. Ο GNFS χρησ ιμοποιεί το number ring Z[α] = Z[x]/fZ[x]. Αντίσ τοιχο παράδειγμα ενός number ring είναι το Z[i] των ακεραίων του Gauss (Gaussian integers), οι οποίοι είναι ένα υποσ ύνολο του πεδίου αριθμών Q[i] και προκύπτουν από το πολυώνυμο f(x) = x με α = i. Το πεδίο αριθμών Q[α] αποτελείται από σ τοιχεία της μορφής d 1 j=0 q jα j με q j Q, ενώ ο δακτύλιος αριθμών Z[α] = Z[x]/fZ[x] αποτελείται από σ τοιχεία της μορφής d 1 j=0 s jα j με s j Q. Χρειαζόμασ τε μια εμφύτευσ η (embedding) σ το Z του number ring Z[α], πριν μπορέσ ουμε να το χρησ ιμοποιήσ ουμε για παραγοντοποίησ η. Ευτυχώς υπάρχει ο ομομορφισ μός δακτυλίου (ring homomorphism) φ. Θεώρημα 2.3. Εσ τω πολυώνυμο f(x) Z[x], μια ρίζα α C και m Z/nZ τέτοιο ώσ τε f(m) 0 (mod n), τότε υπάρχει μοναδική αντισ τοιχία η οποία ικανοποιεί για κάθε a, b Z[α]. 30 φ : Z[α] Z/nZ φ(1) 1 (mod n) φ(α) m (mod n) φ(ab) = φ(a)φ(b) φ(a + b) = φ(a) + φ(b)
43 2.2. Γενικοί Αλγόριθμοι Ο ομομορφισ μός αυτός μας δίνει τελικά τα επιθυμητά ισ οϋπόλοιπα τετράγωνα. Αν καταφέρουμε να βρούμε ένα σ ύνολο S, που προφανώς πρέπει να έχει κάποια σ τοιχεία μέσ α, το οποίο να ικανοποιεί τις παρακάτω ιδιότητες: y 2 = (a bm) : y 2 Z β 2 = έχουμε τελικά την ισ ότητα: (a,b) S (a,b) S (a bα) : β 2 Z[α] φ(β) 2 = φ(β)φ(β) = φ(β 2 ) = φ = (a,b) S = = y 2 (a,b) S (a,b) S (a bα) φ(a bα) (a bm) Οπως είδαμε και νωρίτερα σ τον πίνακα 2.1, υπάρχει πιθανότητα 2/3 να πάρουμε τελικά μη-τετριμμένους παράγοντες του n υπολογίζοντας το gcd(β ± y, n). Ενα ερώτημα που πιθανά προκύπτει από την μέχρι τώρα περιγραφή, είναι το πώς προκύπτει το σ ύνολο S. Ορισμός 2.5 (RFB-Smooth). Το ζεύγος σ τοιχείων (a, b) ονομάζεται RFBsmooth αν η ρητή του νόρμα (rational norm) N(a, b) = a bm παραγοντοποιείται πλήρως με σ τοιχεία της βάσ η των ρητών παραγόντων (Rational Factor Base). Ορισμός 2.6 (AFB-Smooth). Το ζεύγος σ τοιχείων (a, b) ονομάζεται AFBsmooth αν η αλγεβρική του νόρμα (algebraic norm) N(a, b) = b deg(f) f( a b ) 31
44 2. Μεθοδοι Παραγοντοποιησ ης παραγοντοποιείται πλήρως με σ τοιχεία της βάσ η των αλγεβρικών παραγόντων (Algebraic Factor Base). Το σ ύνολο S αποτελείται από εκείνα τα ζεύγη (a, b) που είναι ταυτόχρονα και RFB-smooth και AFB-smooth και βρίσ κονται με την τεχνική του sieving που θα παρουσ ιασ τεί αναλυτικά σ τα επόμενα κεφάλαια. Τα παραπάνω λειτουργούν μόνο σ την περίπτωσ η που το Z[α] είναι πεδίο μονοσ ήμαντης παραγοντοποίησ ης (unique factorization domain), κάτι ωσ τόσ ο που δεν είναι πάντα εξασ φαλισ μένο. Αν δεν προσ παθήσ ουμε να εξασ φαλίσ ουμε την υπόθεσ ή μας αυτή, τότε το σ ίγουρο είναι ότι θα οδηγηθούμε σ ε λανθασ μένα αποτελέσ ματα. Αυτό που μπορεί να σ υμβεί είναι να έχουμε το πεδίο επέκτασ ης Q[α], το οποίο να περιέχει κάποιον αλγεβρικό ακέραιο που δεν ανήκει σ το Z[α]. Το πρόβλημα που προκύπτει είναι ότι μπορεί τελικά να πάρουμε ένα γινόμενο σ τοιχείων του S που δεν ανήκει ταυτόχρονα και σ το Z[α] και επομένως δεν μπορούμε να χρησ ιμοποιήσ ουμε τον ομομορφισ μό φ. Για να προσ περάσ ουμε το εμπόδιο αυτό μπορούμε να επιτρέψουμε το γινόμενο S(x) να ανήκει σ το Q[α] και πολλαπλασ ιάζοντάς με f (x) 2 εξασ φαλίζουμε ότι ανήκει και σ το Z[α]. Στη σ υνέχεια πολλαπλασ ιάζουμε και το γινόμενο σ το πεδίο των ακεραίων με f (m) 2 και έτσ ι παίρνουμε τα ισ οϋπόλοιπα τετράγωνα: φ(β) 2 = φ(β)φ(β) = φ(β 2 ) = φ f (α) 2 = φ(f (α) 2 ) = f (m) 2 = y 2 (a,b) S (a,b) S (a,b) S (a bα) (a bm) φ(a bα) Για περισ σ ότερες πληροφορίες μπορούμε να ανατρέξουμε σ το [15]. Ενα επιπλέον σ ημείο σ το οποίο πρέπει να σ ταθούμε είναι ότι το γινόμενο των σ τοιχείων του S δεν είναι σ ίγουρο ότι θα είναι τέλειο τετράγωνο σ το Z[α]. Η αλγεβρική βάσ η παραγόντων περιέχει πρώτου βαθμού πρώτα ιδεώδη (prime ideals) του Z[α], και παρά το γεγονός ότι το sieving μας εξασ φαλίζει ότι αυτά θα είναι AFB-smooth, ωσ τόσ ο δεν έχουμε καμιά εγγύησ η ότι το γινόμενο αυτών θα είναι τέλειο τετράγωνο σ το Z[α]. Για να προσ περάσ ουμε αυτό το εμπόδιο εισ άγουμε την βάσ η παραγόντων QCB. Η βάσ η αυτή περιέχει τους 32
45 2.3. Στρατηγική Παραγοντοποίησ ης τετραγωνικούς χαρακτήρες (quadratic characters) οι οποίοι χρησ ιμοποιούνται σ το βήμα της γραμμικής άλγεβρας και αυτό που πετυχαίνουν είναι να μας δώσ ουν με μεγαλύτερη πιθανότητα ένα γινόμενο που να είναι τέλειο τετράγωνο σ το Z[α]. Μάλισ τα όσ ο περισ σ ότεροι χαρακτήρες σ τη βάσ η αυτή, τόσ ο μεγαλύτερη και η πιθανότητα το τελικό αποτέλεσ μα να είναι όντως τέλειο τετράγωνο. Γενικά σ τοιχεία σ τη βάσ η αυτή είναι αρκετά για κάθε παραγοντοποίησ η. Το βασ ικό μειονέκτημά του GNFS αλγορίθμου είναι ότι δεν αποτελεί ένα μαύρο κουτί για την παραγοντοποίησ η ενός μεγάλου ακεραίου. Αυτό σ ημαίνει πως για να τον χρησ ιμοποιήσ ει κάποιος για να παραγοντοποιήσ ει τον επιθυμητό ακέραιο πρέπει να έχει καλή άποψη της λειτουργίας του αλγορίθμου και ακόμη και τότε δεν είναι σ ίγουρο ότι θα μπορέσ ει άμεσ α και εύκολα να πάρει το επιθυμητό αποτέλεσ μα. Είναι πολύ πιθανό να χρειασ τούν αρκετές επαναλήψεις εκτέλεσ ης κάποιου βήματος, ώσ τε να επιτευχθεί ο κατάλληλος σ υνδυασ μός παραμέτρων που θα επιτρέψουν την παραγοντοποίησ η. Ο αναμενόμενος χρόνος εκτέλεσ ης του GNFS για μια παραγοντοποίησ η είναι L(X) (( ) ) 2+o(1) = exp (64/9) 1/3 + o(1) (ln n) 1/3 (ln ln n) 2/3 2.3 Στρατηγική Παραγοντοποίησ ης Σε περίπτωσ η που θέλαμε να παραγοντοποιήσ ουμε κάποιον τυχαίο ακέραιο, δε θα αρχίζαμε τις προσ πάθειες απευθείας με κάποιον γενικό αλγόριθμο. Αντίθετα θα χρησ ιμοποιούσ αμε πρώτα την τεχνική των ελλειπτικών καμπυλών για να δούμε αν ο ακέραιος προς παραγοντοποίησ η έχει έναν ή περισ σ ότερους μικρούς πρώτους παράγοντες και αν δεν κατορθώναμε να τον παραγοντοποιήσ ουμε σ ε λογικά σ ύντομο χρονικό διάσ τημα, τότε θα σ τρεφόμασ ταν προς τους πιο προχωρημένους αλγορίθμους και θα χρησ ιμοποιούσ αμε τον QS αν ο ακέραιος μας έχει λιγότερα από ψηφία ή τον GNFS αν έχει περισ σ ότερα. Αν είχαμε εκ των προτέρων την πληροφορία ότι ο ακέραιος είναι από αυτούς που χρησ ιμοποιούνται σ τον RSA αλγόριθμο, τότε δεν υπάρχει λόγος να χρησ ιμοποιήσ ουμε κανέναν άλλον αλγόριθμο από τον GNFS, σ τον οποίο και θα σ τρεφόμασ ταν απευθείας. 33
46 2. Μεθοδοι Παραγοντοποιησ ης 2.4 Το Μέλλον της Παραγοντοποίησ ης Μέχρι τώρα παρουσ ιάσ αμε τους βασ ικότερους αλγορίθμους παραγοντοποίησ ης καταλήγοντας σ τον καλύτερο όλων, τον number field sieve. Οπως έχουν τα πράγματα σ ήμερα, αν κάποιος αλγόριθμος μπορεί να παραγοντοποιήσ ει κάποιον ακέραιο πραγματικά μεγάλο, τότε αυτός δεν είναι άλλος από τον GNFS. Παρόλα αυτά και ο αλγόριθμος αυτός δεν έχει λύσ ει το πρόβλημα της παραγοντοποίησ ης, κάτι που αν είχε σ υμβεί, τότε δε θα ασ χολούμασ ταν με τον RSA, μιας και όπως έχουμε ήδη αναφέρει η ασ φάλειά του εξαρτάται αποκλεισ τικά από τη δυσ κολία παραγοντοποίησ ης μεγάλων ακεραίων αριθμών. Ολοι οι αλγόριθμοι που έχουμε παρουσ ιάσ ει μέχρι τώρα ανήκουν σ την κατηγορία των κλασ σ ικών αλγορίθμων παραγοντοποίησ ης. Εχουν, επίσ ης, γίνει προσ πάθειες προσ έγγισ ης του προβλήματος με μη παραδοσ ιακές μεθόδους. Για παράδειγμα, σ το [;] γίνεται προσ πάθεια επίλυσ ης το προβλήματος με χρήσ η γενετικού προγραμματισ μού 1 (genetic programming). Ο γενετικός προγραμματισ μός και γενικότερα οι γενετικοί αλγόριθμοι 2 (genetic algorithms) αποτελούν ένα ισ χυρό εργαλείο για την επίλυσ η πολλών προβλημάτων βελτισ τοποίησ ης και όχι μόνο. Συνήθως καταφέρνουν να προσ εγγίσ ουν τη βέλτισ τη λύσ η με ικανοποιητική ακρίβεια, ή ακόμα και να βρουν την ακριβή λύσ η, και ήδη υπάρχουν πολλά έτοιμα εργαλεία και βιβλιοθήκες που διευκολύνουν την ανάπτυξη τέτοιων αλγορίθμων (βλέπε, για παράδειγμα, το [;]). Ωσ τόσ ο, όπως φαίνεται και από το [;], η εφαρμογή τους για την επίλυσ η του προβλήματος της παραγοντοποίησ ης ακεραίων θεωρείται μάλλον δύσ κολη, ίσ ως και απίθανη. Τελευταία, έχει αναπτυχθεί μια νέα κατηγορία αλγορίθμων οι οποίοι λέγονται κβαντικοί αλγόριθμοι και η διαφορά τους είναι ότι δεν μπορούν να λειτουργήσ ουν σ ε σ υμβατικούς υπολογισ τές, όπως αυτοί που ξέρουμε, αλλά απαιτούν την ύπαρξη ενός κβαντικού υπολογισ τή (quantum computer). Η κατασ κευή τέτοιων υπολογισ τών είναι ακόμη υπό διερεύνησ η και δεν υπάρχει κάποιος υλοποιημένος, καθώς υπάρχουν αρκετές δυσ κολίες ακόμη σ την υλοποίησ ή τους. Το ενδιαφέρον σ την περίπτωσ ή μας είναι ότι σ ε τέτοιους υπολογισ τές το πρόβλημα της παραγοντοποίησ ης μπορεί να λυθεί σ ε πολυωνυμικό χρόνο. Υπάρχουν ήδη αλγόριθμοι που δουλεύουν σ ε τέτοιους υπολογισ τές, ή καλύτερα που θα μπορούν να εφαρμοσ τούν άμεσ α, με την εμφάνισ η αυτών. Ο βασ ικότερος από αυτούς είναι ο αλγόριθμος του Shor, ο οποίος για την παραγοντοποίησ η ενός αριθμού n απαιτεί χρόνο ίσ ο με O ((log n) 3 ). Ο χρόνος αυτός είναι 1 http: // en. wikipedia. org/ wiki/ Genetic_ programming/ 2 http: // en. wikipedia. org/ wiki/ Genetic_ algorithms/ 34
47 2.4. Το Μέλλον της Παραγοντοποίησ ης εκθετικά καλύτερος από τον χρόνο που απαιτεί ο GNFS, του οποίου ο απαιτούμενος χρόνος είναι υποεκθετικός. Ο αλγόριθμος του Shor ανακαλύφθηκε το 1994 και προς το παρόν φαίνεται να είναι η μόνη λύσ η για το σ πάσ ιμο του RSA αλγορίθμου. Απέδειξε ότι η παραγοντοποίησ η είναι εφικτή και μάλισ τα αποδοτική σ ε κβαντικούς υπολογισ τές και επομένως ένα λογικό πλήθος από κβαντικά σ υσ τήματα σ ε σ υνεργασ ία μπορούν να παραγοντοποιήσ ουν σ ε λογικό χρόνο οποιονδήποτε ακέραιο. Η απόδειξη αυτή ήταν ένα ισ χυρό κίνητρο για σ υνέχισ η της προσ πάθειας υλοποίησ ης τέτοιων σ υσ τημάτων, αλλά και ανακάλυψης νέων αλγορίθμων που θα έχουν εφαρμογή σ ε αυτά και οι οποίοι θα επιλύουν παραδοσ ιακά δύσ κολα προβλήματα. Το κατά πόσ ον τέτοια σ υσ τήματα τελικά θα καταφέρουν να γίνουν πραγματικότητα μένει να το δούμε. Μέχρι τότε μπορούμε να νιώθουμε ασ φαλείς, θεωρώντας πως η παραγοντοποίησ η απαιτεί αρκετό χρόνο και χρήμα και πως λίγοι είναι εκείνοι που θα μπουν σ τον κόπο να επωμισ τούν το κόσ τος αυτό για να σ πάσ ουν κάποιο κλειδί του RSA. Επομένως με λογικά μεγάλο κλειδί, μπορούμε να θεωρούμε ακόμη και σ ήμερα πως οι τραπεζικές μας σ υναλλαγές είναι αρκετά ασ φαλείς, και πως αν έχουμε κάτι να φοβόμασ τε, αυτό μάλλον δεν είναι η ασ φάλεια του RSA, όσ ο η ύπαρξη κακόβουλου λογισ μικού σ το σ ύσ τημά μας. Αυτό όμως ξεφεύγει από τα πλαίσ ια της διπλωματικής αυτής εργασ ίας. Άλλωσ τε υπάρχουν αρκετές πηγές σ τις οποίες μπορεί να ανατρέξει κανείς για περισ σ ότερες λεπτομέρειες. 35
48
49 Κ ε φ α λ α ι ο 3 Ο αλγοριθμος Number Field Sieve Στο κεφάλαιο αυτό θα γίνει αναλυτική παρουσ ίασ η των βημάτων ε- κτέλεσ ης του αλγορίθμου Number Field Sieve. 3.1 Επιλογή Πολυωνύμου Ο βασ ικός GNFS αλγόριθμος απαιτεί ένα monic και ανάγωγο (irreducible) πολυώνυμο f(x) βαθμού d με ακέραιους σ υντελεσ τές και το οποίο έχει μια ρίζα m modulo n, όπου n είναι ο ακέραιος που θέλουμε να παραγοντοποιήσ ουμε. Παρόλα αυτά δεν υπάρχει κάποια μέθοδος η οποία να μας δίνει κάθε φορά την βέλτισ τη τιμή του d, το πολυώνυμο f(x) ή την ρίζα m του πολυωνύμου. Αρκετή έρευνα έχει γίνει πάνω σ την επιλογή των βέλτισ των παραμέτρων και είναι αλήθεια ότι έχει σ ημειωθεί αρκετή πρόοδος. Παρόλα αυτά, τα παραπάνω είναι ακόμη και σ ήμερα ανοιχτά προβλήματα που ζητούν λύσ η και προς το παρόν η επιλογή των παραμέτρων είναι σ ε μεγάλο βαθμό αποτέλεσ μα της εμπειρίας και των δοκιμών που πραγματοποιεί αυτός που εκτελεί τον αλγόριθμο. Ορισμός 3.1 (monic polynomial). Monic ονομάζεται ένα πολυώνυμο της μορφής x n + a n 1 x n a 1 x + a 0 37
50 3. Ο αλγοριθμος Number Field Sieve και το οποίο έχει τον σ υντελεσ τή με την μεγαλύτερη τάξη ίσ ο με 1, δηλαδή a n = 1. Ορισμός 3.2 (irreducible polynomial). Ενα πολυώνυμο ονομάζεται ανάγωγο (irreducible) αν δεν μπορεί να παραγοντοποιηθεί σ ε μη-τετριμμένα πολυώνυμα σ το ίδιο πεδίο. Ο χρόνος εκτέλεσ ης του αλγορίθμου εξαρτάται σ ε μεγάλο βαθμό από την αρχική αυτή επιλογή των παραμέτρων εκτέλεσ ης. Μικρές αλλαγές σ ε κάποια από τις παραμέτρους μπορεί να σ υνεπάγεται σ ημαντική μεταβολή σ τον απαιτούμενο χρόνο για την παραγοντοποίησ η του υπό εξέτασ η ακεραίου n. Στις περισ σ ότερες υλοποιήσ εις η επιλογή των παραμέτρων ξεκινάει με τον ορισ μό του βαθμού του πολυωνύμου, δηλαδή δίνουμε αρχική τιμή σ την μεταβλητή d. Η μέχρι τώρα εμπειρία έχει δείξει ότι για την παραγοντοποίησ η ενός ακεραίου με περισ σ ότερα των 110 ψηφίων η καλύτερη λύσ η είναι ένα πολυώνυμο πέμπτου βαθμού (d = 5). Για ακεραίους μεταξύ 50 και 80 ψηφίων ένα πολυώνυμου τρίτου (d = 3) φαίνεται καλή επιλογή. Τετάρτου (d = 4) βαθμού πολυώνυμα σ ημειώνουν καλές επιδόσ εις για ακεραίους με ψηφία, ωσ τόσ ο για λόγους που θα φανούν παρακάτω, όπου εξηγούμε τον τρόπο υπολογισ μού της τετραγωνικής ρίζας (βλέπε παράγραφο 3.6), η υλοποίησ ή μας απαιτεί πολυώνυμα περιττού βαθμού. Γενικά η πρακτική είναι να χρησ ιμοποιούμε d = 5 όπου υπό άλλες προϋποθέσ εις θα χρησ ιμοποιούσ αμε d = 4. Από τη σ τιγμή που έχουμε επιλέξει το βαθμό του πολυωνύμου, είμασ τε πλέον σ ε θέσ η να επιλέξουμε το πολυώνυμο f(x) και το m. Η επιλογή των δύο αυτών παραμέτρων γίνεται σ υνήθως ταυτόχρονα. Η εύρεσ η του πολυωνύμου γίνεται με μια μέθοδο γνωσ τή ως base-m» expansion Η Base - m Μέθοδος Η base-m μέθοδος είναι πολύ απλή, ωσ τόσ ο παραμένει αρκετά αποδοτική μέθοδος για την άμεσ η εύρεσ η ενός monic πολυωνύμου με σ χετικά καλές ιδιότητες. Για την εφαρμογή της αρχικά επιλέγουμε μια τιμή του m n 1/d. Από τη σ τιγμή που θα επιλέξουμε τιμή για το m μπορούμε πλέον να υπολογίσ ουμε τους σ υντελεσ τές του πολυωνύμου f(x). Η base-m αναπαράσ τασ η του n μας δίνει n = m d + a d 1 m d a 1 m + a 0 38
51 3.1. Επιλογή Πολυωνύμου με σ υντελεσ τές a i για τους οποίους ισ χύει 0 a i < m για 0 i < d. Οι σ υντελεσ τές που υπολογίσ αμε με τον παραπάνω τρόπο, μπορούν να χρησ ιμοποιηθούν τώρα για την κατασ κευή του πολυωνύμου f(x) = x d + a d 1 x d a 1 x + a 0 όπου το f(x) είναι monic βαθμού d. Από τον τρόπο κατασ κευής του πολυωνύμου f(x) = n 0 (mod n) ισ χύει πως το m είναι ρίζα του f(x) σ ε modulo n. Επιπλέον ισ χύει πως αν το f(x) είναι αναγώγιμο (reducible), τότε f(x) = g(x) h(x) για όχι σ ταθερά πολυώνυμα g(x) και h(x) και επομένως το n = f(m) = g(m) h(m) μπορεί να μας δώσ ει μια μη-τετριμμένη παραγοντοποίησ η του n. Με άλλα λόγια αν το f(x) είναι αναγώγιμο, τότε υπάρχει μεγάλη πιθανότητα να παραγοντοποιήσ ουμε το n και επομένως η εκτέλεσ η του αλγορίθμου σ ταματάει άμεσ α, μιας και πήραμε το επιθυμητό αποτέλεσ μα. Αν τώρα το f(x) είναι ανάγωγο, τότε είμασ τε έτοιμοι να σ υνεχίσ ουμε την εκτέλεσ η του αλγορίθμου. Οπως θα δούμε σ τη σ υνέχεια, η βασ ική αυτή διαδικασ ία μπορεί να τροποποιηθεί ελαφρώς και τελικά να πάρουμε πολυώνυμα που προκύπτουν από ένα εύρος τιμών για το m. Αυτό είναι καλή πρακτική, όταν επιλέγουμε monic πολυώνυμα με τον τρόπο που περιγράψαμε παραπάνω, μιας και θα προκύψουν τελικά περισ σ ότερα πολυώνυμα με τα οποία θα μπορέσ ουμε να πειραματισ τούμε, ώσ τε τελικά να επιλέξουμε το καλύτερο. Ηδη αναφέραμε πως είναι πολύ καλό να χρησ ιμοποιούμε καλά πολυώνυμα μιας και για τις ίδιες παραμέτρους εκτέλεσ ης, ένα καλό πολυώνυμο θα επιταχύνει σ ημαντικά την εκτέλεσ η του αλγορίθμου. Ως καλό, χαρακτηρίζουμε ένα πολυώνυμο που για τις ίδιες παραμέτρους μας δίνει πιο γρήγορα περισ σ ότερες ομαλές τιμές, δηλαδή περισ σ ότερα smooth ζεύγη (a, b) Βελτίωσ η της Base - m Μεθόδου Οπως αναφέρεται σ την προηγούμενη παράγραφο, ξεκινάμε την διαδικασ ία εύρεσ ης πολυωνύμου υπολογίζοντας την τιμή του m, με m n 1/d, από την οποία προκύπτει n = c d m d + c d 1 m d c 1 m + c 0 και για το οποίο ισ χύει πως c d = 1. Κατόπιν το monic πολυώνυμο f(x) προκύπτει από την παραπάνω διαδικασ ία και ορίζεται ως f(x) = x d + c d 1 x d c 1 x + c 0. Οπως δείξαμε ισ χύει πως f(x) = n 0 (mod n). Μια πρότασ η η οποία δείχνει πολλά υποσ χόμενη σ ε ότι αφορά την παραγωγή καλών πολυωνύμων έχει να κάνει με την μείωσ η του μεγέθους των σ υντελεσ τών c i του f(x), που παράγονται με την παραπάνω διαδικασ ία. Η ιδέα 39
52 3. Ο αλγοριθμος Number Field Sieve είναι ότι ένα πολυώνυμο με μικρότερους σ υντελεσ τές παράγει τιμές που είναι μικρότερες. Επομένως υπάρχει μεγαλύτερη πιθανότητα η νόρμα N(a + bα) να είναι μικρή. Αν η τιμή αυτή είναι σ χετικά μικρή, τότε είναι πολύ πιθανό να είναι ομαλή, δηλαδή να παραγοντοποιείται πλήρως από ένα σ ύνολο σ χετικά μικρών πρώτων αριθμών, οι οποίοι υπάρχουν μέσ α σ την αλγεβρική βάσ η παραγόντων. Εχοντάς αυτά υπόψιν μας, θα δούμε την πρότασ η, ξεκινώντας από την παρατήρησ η πως η base - m μέθοδος παράγει ένα f(x) τέτοιο ώσ τε για κάθε σ υντελεσ τή του c i ισ χύει c i < m για 0 i < d. Το μέγεθος των σ υντελεσ τών c i μπορεί να περιορισ τεί σ ε c i < m/2 με τον τρόπο που θα περιγράψουμε σ τη σ υνέχεια. Για κάθε σ υντελεσ τή c i > m/2 πραγματοποιούμε τις αντικατασ τάσ εις c i c i m c i+1 c i και παίρνουμε ένα νέο πολυώνυμο, αντίσ τοιχο με αυτό που προκύπτει από την base - m μέθοδο, το οποίο όμως πλέον έχει το πλεονέκτημα πως όλοι οι σ υντελεσ τές του είναι κατ απόλυτη τιμή μικρότεροι από m/2. Προϋπόθεσ η είναι βέβαια να επιτρέψουμε την ύπαρξη αρνητικών σ υντελεσ τών. Αξίζει να σ ημειωθεί σ το σ ημείο αυτό πως η διαδικασ ία αυτή πραγματοποιείται για τιμές του i σ το διάσ τημα 0 i < d 1, έτσ ι ώσ τε το πολυώνυμο να παραμένει monic Διαδικασ ία Επιλογής Καλού Monic Πολυωνύμου Εχοντας επιλέξει με την παραπάνω διαδικασ ία κάποια πολυώνυμα με θεωρητικά καλές ιδιότητες, πρέπει τώρα να επιλέξουμε το καλύτερο από αυτά για να το χρησ ιμοποιήσ ουμε για την εκτέλεσ η του αλγορίθμου. Για να καταλήξουμε σ ε αυτό, πρέπει πρώτα να επιλέξουμε μερικά διαφορετικά μεγέθη για τις βάσ εις των παραγόντων, καθώς και μερικά διασ τήματα σ τα οποία θα πραγματοποιηθεί το φιλτράρισ μα (sieving). Στη σ υνέχεια χρησ ιμοποιούμε τις διαφορετικές αυτές παραμέτρους και πραγματοποιούμε ένα σ ύντομο φιλτράρισ μα με καθένα από τα επιλεγμένα πολυώνυμα. Η ιδέα είναι να βρούμε ποιό από τα πολυώνυμα αυτά και με ποιές παραμέτρους παράγει τα περισ σ ότερα ομαλά ζεύγη (a, b), δηλαδή ζεύγη που είναι smooth ταυτόχρονα και σ την rational και σ την algebraic βάσ η παραγόντων, σ το σ υντομότερο χρόνο. Για κάθε πολυώνυμο, βάσ η παραγόντων και διάσ τημα φιλτραρίσ ματος αποθηκεύουμε το πλήθος των ομαλών ζευγαριών που βρέθηκαν. Κατόπιν υπολογίζουμε για κάθε πολυώνυμο 40
53 3.1. Επιλογή Πολυωνύμου και κάθε βάσ η παραγόντων το λόγο (ratio) του χρόνου που απαιτήθηκε προς το πλήθος των ζευγαριών που βρέθηκαν και τον σ υγκρίνουμε με τον λόγο που προκύπτει από τα υπόλοιπα πολυώνυμα. Τελικά κρατάμε για τη σ υνέχεια το σ υνδυασ μό που μας δίνει το μικρότερο λόγο, δηλαδή αυτόν που σ το λιγότερο χρόνο παράγει τα περισ σ ότερα ομαλά ζεύγη. Από το λόγο αυτό μπορούμε να κάνουμε και μια πρόβλεψη ως προς τον σ υνολικό χρόνο που θα χρειασ τεί για την ολοκλήρωσ η του βήματος του φιλτραρίσ ματος. Για να κάνουμε μια τέτοια πρόβλεψη αρκεί να πολλαπλασ ιάσ ουμε τον λόγο που επιλέξαμε με μια εκτίμησ η του πλήθους των απαιτούμενων ζευγαριών. Η εκτίμησ η αυτή καταγράφεται, και την ίδια διαδικασ ία πραγματοποιούμε για αρκετές βάσ εις παραγόντων, με το ίδιο πολυώνυμο. Μόλις εξετάσ ουμε αρκετές βάσ εις, τότε κρατάμε για τη σ υνέχεια τη βάσ η που παράγει τα απαιτούμενα smooth ζεύγη σ το σ υντομότερο χρόνο. Η παραπάνω διαδικασ ία έχει μεγάλο αρχικό κόσ τος, δηλαδή απαιτεί αρκετό χρόνο. Ωσ τόσ ο αξίζει να πραγματοποιηθεί γιατί τα οφέλη από τον καλό σ υνδυασ μό πολυωνύμου και μεγεθών βάσ εων παραγόντων είναι αρκετά, με αποτέλεσ μα να παρατηρείται σ ημαντικά λιγότερος χρόνος μέχρι την ολοκλήρωσ η της παραγοντοποίησ ης. Αν χρησ ιμοποιούμε monic πολυώνυμα, είναι γενικά καλή πρακτική να πραγματοποιούμε την παραπάνω διαδικασ ία επιλογής παραμέτρων, μιας και τα πολυώνυμα αυτά δεν είναι και τα πιο αποδοτικά σ την παραγωγή smooth ζευγαριών. Στις επόμενες παραγράφους θα παρουσ ιάσ ουμε μια καλύτερη εναλλακτική των monic πολυωνύμων, που δεν είναι άλλη από τα non-monic πολυώνυμα, δηλαδή πολυώνυμα που δεν έχουν τον μεγαλύτερο σ υντελεσ τή του c d ίσ ο με την μονάδα Παράδειγμα Επιλογής Πολυωνύμου με την Base-m Μέθοδο Θα δούμε τώρα ένα παράδειγμα επιλογής πολυωνύμου (βλέπε [16]), χρησ ιμοποιώντας την απλή μέθοδο του base-m expansion. Εσ τω ότι θέλουμε να παραγοντοποιήσ ουμε τον ακέραιο n = όπου το n είναι ο ακέραιος με 51 ψηφία που φαίνεται παραπάνω. Εχουμε ήδη αναφέρει ότι για τέτοια μεγέθη αριθμών χρησ ιμοποιούνται πολυώνυμα τρίτου βαθμού d = 3. Για να επιλέξουμε το πολυώνυμο πρέπει πρώτα να επιλέξουμε την τιμή του m, η οποία όπως έχουμε αναφέρει είναι ίσ η με m n 1/d
54 3. Ο αλγοριθμος Number Field Sieve Στη σ υνέχεια μπορούμε να πραγματοποιήσ ουμε την base-m expansion του n από την οποία παίρνουμε: n = ( ) ( ) και επομένως προκύπτει τελικά το ζητούμενο πολυώνυμο f(x) = x x το οποίο και είναι αυτό που θα χρησ ιμοποιήσ ουμε για την παραγοντοποίησ η του n Non-Monic Πολυώνυμα Μέχρι τώρα έχουμε ασ χοληθεί με τον τρόπο εύρεσ ης monic πολυωνύμων και παρουσ ιάσ αμε και έναν τρόπο να παράγουμε καλά τέτοια πολυώνυμα, καθώς και να επιλέγουμε μεταξύ αυτών το καλύτερο. Παρόλα αυτά για την διαδικασ ία παραγοντοποίησ ης, η επιλογή τέτοιων πολυωνύμων δεν είναι και η καλύτερη πρακτική. Υπάρχουν πολυώνυμα με πολύ καλύτερες επιδόσ εις και αυτά είναι τα non-monic πολυώνυμα. Ωσ τόσ ο η χρήσ η τους σ υνεπάγεται κάποιες μικρές τροποποιήσ εις σ τα διάφορα βήματα του αλγορίθμου. Τις αλλαγές που απαιτούνται θα τις παρουσ ιάσ ουμε σ την ανάλυσ η του κάθε βήματος και εδώ θα παρουσ ιάσ ουμε μόνο τον τρόπο με τον οποίο γίνεται η επιλογή των πολυωνύμων αυτών. Με το να επιτρέπουμε ο μεγαλύτερος σ υντελεσ τής του πολυωνύμου να είναι μεγαλύτερος του ένα (c d > 1), αυτομάτως πετυχαίνουμε να μικρύνουμε το μέγεθος όλων των σ υντελεσ τών του πολυωνύμου, μιας και κάποιο μέρος του μεγέθους (size) αυτών μετακινείται προς τον μεγαλύτερο σ υντελεσ τή. Για παράδειγμα η base-m μέθοδος για monic πολυώνυμα μας δίνει m = O(n 1/d ) και c d = O(n 1/d ), ενώ η ίδια τεχνική για non-monic πολυώνυμα μας δίνει m = O(n 1/(d+1) ) και c d = O(n 1/(d+1) ). Γίνεται επομένως άμεσ α αντιληπτό πως με τα πολυώνυμα αυτά οι σ υντελεσ τές του πολυωνύμου είναι αισ θητά μικρότερη από αυτούς των monic. Πριν παρουσ ιάσ ουμε τη διαδικασ ία επιλογής των πολυωνύμων αυτών θα αναφερθούμε σ ε δύο βασ ικές ιδιότητες των πολυωνύμων, οι οποίες επηρεάζουν την απόδοσ η του πολυωνύμου σ ε ότι αφορά τη διαδικασ ία του φιλτραρίσ ματος και του πλήθους των smooth ζευγαριών που προκύπτουν από αυτή. Από εδώ και πέρα θα αναφερόμασ τε σ την παραγωγή των smooth ζευγαριών με τον όρο polynomial yield. 42
55 3.1. Επιλογή Πολυωνύμου Παράγοντες που επηρεάζουν το Yield ενός πολυωνύμου Δύο είναι οι βασ ικοί παράγοντες που επηρεάζουν το yield ενός πολυωνύμου. Αυτές είναι οι size και root ιδιότητες. Με τον όρο size αναφερόμασ τε σ το μέγεθος που παίρνουν οι τιμές που παράγονται από το πολυώνυμο, ενώ με τον όρο root αναφερόμασ τε σ τη διασ πορά των ριζών του πολυωνύμου modulo μικρούς πρώτους αριθμούς p k, με p πρώτο και k 1. Αυτό που μας ενδιαφέρει είναι να δούμε την επίδρασ η που έχουν οι root ιδιότητες σ την πιθανότητα οι τιμές που παράγονται από το πολυώνυμο να είναι smooth. Συνοπτικά, αν το πολυώνυμο f(x) έχει πολλές ρίζες modulo μικρούς πρώτους p k, τότε οι τιμές που παράγονται από το πολυώνυμο σ υμπεριφέρονται σ αν να ήταν μικρότερες. Επομένως η πιθανότητα να είναι τελικά smooth αυξάνεται. Ας δούμε όμως αναλυτικά τις δύο αυτές ιδιότητες Size Ιδιότητες Ο λόγος που το size επηρεάζει το yield είναι ξεκάθαρος. Οσ ο μικρότερες είναι οι τιμές που παράγονται από ένα πολυώνυμο κατά το φιλτράρισ μα, τόσ ο μεγαλύτερη είναι η πιθανότητα αυτές να είναι τελικά smooth. Προφανώς σ το size των τιμών, ρόλο δεν παίζουν μόνο οι σ υντελεσ τές, αλλά και ο βαθμός (d) του πολυωνύμου. Ο γενικός κανόνας λέει πως για να παραγοντοποιήσ ουμε έναν ακέραιο n πρέπει να επιλέξουμε ένα πολυώνυμο του οποίου ο βαθμός d ελαχισ τοποιεί την σ χέσ η E(d, n) = d log d + (d log d) log (n 1/(d+1) ) log log (n 1/(d+1) ) Από αυτή τη σ χέσ η προκύπτουν οι τιμές για τον βαθμό του πολυωνύμου που έχουμε αναφέρει και σ την αρχή της παραγράφου αυτής (βλέπε3.1). Απλά θα υπενθυμίσ ουμε ότι ο βαθμός του πολυωνύμου αλλάζει από d = 3 σ ε d = 4 σ τα 80 ψηφία, από d = 4 σ ε d = 5 σ τα 120 και από d = 5 σ ε d = 6 σ τα 220 ψηφία. Προφανώς οι τιμές αυτές είναι κατά προσ έγγισ η και ανάλογα την περίσ τασ η μπορούμε να επιλέξουμε διαφορετικού βαθμού πολυώνυμο από το προτεινόμενο. Απλώς έχουμε καλύτερες πιθανότητες αν ακολουθήσ ουμε τα όρια που μόλις αναφέρθηκαν. Να υπενθυμίσ ουμε σ το σ ημείο αυτό, ότι σ την υλοποίησ ή μας, απαιτείται ο βαθμός του πολυωνύμου να είναι περιττός για λόγους που θα αναφερθούν παρακάτω, σ την παράγραφο (3.6). Επομένως αντί για χρήσ η πολυωνύμου τετάρτου βαθμού, χρησ ιμοποιούμε πολυώνυμο πέμπτου βαθμού και αντισ τοίχως 43
56 3. Ο αλγοριθμος Number Field Sieve για τους υπόλοιπους βαθμούς. Επίσ ης είναι λογικό σ υμπέρασ μα, ότι δεν μπορούμε να χρησ ιμοποιήσ ουμε πολύ μεγάλο βαθμό σ τα πολυώνυμα μιας και όσ ο μεγαλώνει ο βαθμός, τόσ ο θα μεγαλώνουν και οι τιμές που προκύπτουν από αυτά Root Ιδιότητες Θα δούμε τώρα περισ σ ότερες λεπτομέρειες για τις root ιδιότητες ενός πολυωνύμου. Θα δούμε πώς χρησ ιμοποιώντας το λεγόμενο μοντέλο της F-value μπορούμε να ποσ οτικοποιήσ ουμε τις ιδιότητες αυτές. Στη σ υνέχεια θα δούμε πώς μπορούμε να πάρουμε μια εκτίμησ η των ιδιοτήτων αυτών και τέλος με ποιόν τρόπο υπολογίζουμε την τιμή της παραμέτρου a(f ) η οποία και μας ποσ οτικοποιεί την μέσ η επίδρασ η των ιδιοτήτων αυτών σ την ποιότητα ενός πολυωνύμου. Ιδέες παρόμοιες με την τυπική F-value που θα παρουσ ιασ τεί για τον number field sieve, έχουν παρουσ ιασ τεί νωρίτερα κατά την μελέτη των αλγορίθμων MPQS και των Συνεχών Κλασ μάτων. Για την παρουσ ίασ η της ιδέας πρέπει πρώτα να ορίσ ουμε την ποσ ότητα που αποκαλούμε cont p (υ). Ορισμός 3.3. Με cont p (υ) αναφερόμασ τε σ τον εκθέτη της μεγαλύτερης δύναμης του p που διαιρεί το υ. Από τον παραπάνω ορισ μό σ υμπεραίνουμε πως το cont p (υ) είναι ουσ ιασ τικά η αναμενόμενη τιμή του ord p υ καθώς το υ εκτείνεται πάνω σ ε ένα δείγμα S. Άρα κατά μέσ ο όρο ισ χύει για υ S (με πρώτους μέχρι B): log υ = p B cont p (υ) log p (3.1) Στην ειδική περίπτωσ η όπου το S είναι ένα σ ύνολο από F-values υ, τότε το cont p (υ) μετατρέπεται σ ε cont p (F ) και αναφερόμασ τε σ το εκθετικό μέρος της σ χέσ ης (3.1) με τον όρο τυπική F-value. Την τυπική F-value ενός πολυωνύμου για τον number field sieve την σ υγκρίνουμε με διάφορες τυχαίες τιμές υ = i r. Αξίζει να σ ημειωθεί πως μπορούμε σ χετικά εύκολα να ελέγξουμε εμπειρικά την τιμή του cont p (υ) για υ S και αυτό γίνεται για ικανοποιητικά μεγάλο δείγμα S από τη σ χέσ η υ S cont p (υ) ord pυ (3.2) S Γενικά για F-values η τιμή του cont p (F ) μπορεί να υπολογισ τεί παραγοντοποιώντας ένα σ χετικά μικρό σ ύνολο από F-values σ ε κατάλληλο εύρος. Για 44
57 3.1. Επιλογή Πολυωνύμου τους περισ σ ότερους πρώτους p παρόλα αυτά μπορούμε να δώσ ουμε καλύτερη εκτίμησ η, δίνοντας έναν ευρετικό τρόπο υπολογισ μού του cont p (F ). Οι πρώτοι για τους οποίους μπορούμε να το κάνουμε αυτό είναι οι πρώτοι p για τους οποίους η πλήρης σ υνεισ φορά του p σ την F-value σ χετίζεται με την σ υνεισ φορά μιας ρίζας mod p του πολυωνύμου F. Οι πρώτοι αυτοί λέγονται unramified. Οι ramified πρώτοι είναι αυτοί που διαιρούν την διακρίνουσ α του πολυωνύμου f. Οι πρώτοι που διαιρούν την διακρίνουσ α (p ) λέγονται poorly-behaved πρώτοι, διαφορετικά λέγονται well-behaved. Η σ υνεισ φορά των poorly-behaved πρώτων υπολογίζεται απευθείας από ένα δείγμα παραγοντοποιήσ εων όπως σ την σ χέσ η (3.2), ενώ αυτή των well-behaved πρώτων υπολογίζεται με ευρετικό τρόπο, όπως θα δούμε σ τη σ υνέχεια Τρόπος υπολογισ μού του cont p (υ) Καταρχήν πρέπει να διακρίνουμε τρείς περιπτώσ εις, την τυχαία τιμή i r, τις τιμές του πολυωνύμου της μορφής F (x, 1) = f(x) = υ και τις τιμές του πολυωνύμου με την πιο γενική μορφή F (x, y) = υ. Θα υπολογίσ ουμε ένα τρόπο εκτίμησ ης των τιμών αυτών με ιδέες δανεισ μένες από τον Montgomery. Εσ τω μια τυχαία τιμή i r. Είναι πιθανό ότι οι δυνάμεις p k για k > 1 να διαιρούν την τιμή αυτή, άρα περιμένουμε το p να εμφανίζεται ως p i r. Επομένως η μέσ η σ υνεισ φορά του p σ το i r είναι 1 p + 1 p = p 1 p 1 σ το cont p (i r ) = 1 p 1 (3.3) Αν και η (3.3) είναι αρκετά ευρετική, παρόλα αυτά φαίνεται να αποδίδει αρκετά καλά σ την πράξη. Εσ τω τώρα ότι έχουμε τιμές πολυωνύμων της μορφής F (x, 1) = f(x) = υ. Αφού κάθε ρίζα mod p αντισ τοιχεί σ ε μια μοναδική ρίζα mod μεγαλύτερες δυνάμεις του p, τότε η πλήρης σ υνεισ φορά από κάθε ρίζα είναι 1/(p 1). Αν σ κεφτούμε τώρα κάθε ρίζα mod p ως διακριτή πιθανότητα μια f-value να διαιρείται από τον p και υπάρχουν q p διακριτές τέτοιες ρίζες του f mod p, τότε η πλήρης σ υνεισ φορά του p σ την τυπική f-value είναι: cont p (f) = q p p 1 (3.4) Ας θεωρήσ ουμε τώρα ότι οι τιμές που προκύπτουν από το πολυώνυμο είναι της μορφής F (x, y) με x και y μεταξύ τους πρώτους. Στην περίπτωσ η αυτή δεν ισ χύει η μοναδική αντισ τοιχία μεταξύ των ριζών του F (x, 1) mod p και των ριζών p k για k > 1. Επιπλεόν προκύπτει και μια νέα κατηγορία ριζών από 45
58 3. Ο αλγοριθμος Number Field Sieve την πιθανότητα ότι p y. Αν και p c d τότε ισ χύει πως p F (x, y), αφού το F είναι ομογενές. Οι ρίζες αυτές λέγονται projective. Εσ τω τώρα q p το πλήθος των ριζών mod p του F (x, y). Τότε το q p περιέχει τις ρίζες x/y του F (x, 1) mod p, καθώς και τις projective. Στην περίπτωσ η αυτή η πλήρης σ υνεισ φορά του p σ την τυπική F-value F (x, y) = υ με x και y μεταξύ τους πρώτους, δίνεται από τη σ χέσ η p cont p (F ) = q p p 2 1 (3.5) Οι παραπάνω εκτιμήσ εις (3.3),(3.4) και (3.5) για την τιμή του cont p, θεωρούνται αρκετά καλές για well-behaved πρώτους p Ποσ οτικοποιώντας τις Root Ιδιότητες Είμασ τε πλέον σ ε θέσ η να δυγκρίνουμε τις F-values υ και τις διάφορες τυχαίες τιμές i r με υ = i r. Κατά τη διάρκεια του φιλτραρίσ ματος, η πλήρης σ υνεισ φορά ενός πρώτου p B αφαιρείται από κάθε τιμή που φιλτράρεται. Στην πραγματικότητα ξεκινάμε με το log της τιμής και αφαιρούμε το log κάθε σ υνεισ φοράς. Επομένως μετά το τέλος του φιλτραρίσ ματος μιας τυχαίας τιμής i r έχουμε: log i r p B log p p 1 (3.6) Κάθε τιμή του πολυωνύμου της μορφής F (x, y) = υ ή f(x) = υ είναι μετά το φιλτράρισ μα: log υ p B cont p (υ) log p (3.7) Σε κάθε περίπτωσ η αποκαλούμε την διαφορά μεταξύ των σ χέσ εων (3.6) και (3.7), ως παράμετρο α, και επομένως έχουμε: α = [ ] 1 p 1 cont p(υ) log p p B Για τους well-behaved πρώτους, οι σ χέσ εις (3.4) και (3.5) μας δίνουν: α(f) = (1 q p ) log p p 1 p B 46
59 3.1. Επιλογή Πολυωνύμου και α(f ) = p (1 q p p + 1 ) log p p 1 p B Αν α(f ) < 0, τότε θεωρούμε τις F-values πιο πιθανό να είναι smooth από ότι τυχαίοι ακέραιοι του ίδιου μεγέθους. Από την παρατήρησ η ότι το α(f ) παίρνει μικρότερες τιμές όταν το q p είναι μεγαλύτερο, προκύπτει πως όσ ο περισ σ ότερες ρίζες modulo κάποιον μικρό πρώτο p έχει ένα πολυώνυμο, τόσ ο μικρότερη τιμή παίρνει η εκτίμησ η α(f ). Με άλλα λόγια όσ ο μικρότερη η τιμή αυτή, τόσ ο το καλύτερο για το πολυώνυμό μας. Σημείωσ η Οταν δεν έχουμε monic πολυώνυμα, τότε πρέπει να σ υνυπολογίσ ουμε και την προσ φορά των projective ριζών, δηλαδή αυτών που προκύπτουν από το γεγονός ότι c d > 1 και p c d. Η ύπαρξη αυτών των ριζών βελτιώνει την επίδοσ η και ποιότητα του πολυωνύμου. Η σ υνεισ φορά αυτή υπολογίζεται αυξάνοντας την τιμή του cont p κάθε φορά που κάποιος πρώτος p διαιρεί τον μεγαλύτερο σ υντελεσ τή του πολυωνύμου c d Διαδικασ ία Επιλογής Καλών Non-Monic Πολυωνύμων Στην παράγραφό αυτή θα χρησ ιμοποιήσ ουμε όσ α αναφέραμε παραπάνω για το yield ενός πολυωνύμου, έτσ ι ώσ τε να παράγουμε non-monic πολυώνυμα με καλές ιδιότητες. Θα διαχωρίσ ουμε το πρόβλημα της επιλογής πολυωνύμου σ ε δύο φάσ εις. Κατά την πρώτη φάσ η θα παράγουμε ένα πλήθος από πολυώνυμα τα οποία θα έχουν καλές size και root ιδιότητες. Το πλήθος των πολυωνύμων αυτών θα είναι υπερβολικά μεγάλο, ανάλογα βέβαια με την επιθυμία και το χρόνο που θέλουμε να σ παταλήσ ουμε σ ε αυτό το βήμα. Το πλήθος των πολυωνύμων αυτών καθισ τά ουσ ιασ τικά αδύνατη την χρήσ η sieving πειραμάτων για την επιλογή του καλύτερου πολυωνύμου. Επομένως πρέπει να βρούμε ένα τρόπο να ελέγξουμε ποιό από τα επιλεγμένα πολυώνυμα θα χρησ ιμοποιήσ ουμε σ τη σ υνέχεια, αποφεύγοντας τον έλεγχο μέσ ω sieving. Ο τρόπος αυτός περιγράφεται και αποτελεί τη δεύτερη φάσ η της επιλογής του κατάλληλου πολυωνύμου. Τα non-monic πολυώνυμα διακρίνονται σ ε δύο τύπους, σ ε non-skewed και skewed. Στην εργασ ία αυτή χρησ ιμοποιούμε μόνο non-skewed πολυώνυμα 47
60 3. Ο αλγοριθμος Number Field Sieve και αυτά θα παρουσ ιάσ ουμε αναλυτικά. Ως non-skewed χαρακτηρίζονται τα πολυώνυμα των οποίων οι σ υντελεσ τές είναι μικροί. Εδώ θα παρουσ ιάσ ουμε έναν τρόπο κατασ κευής τέτοιων πολυωνύμων, τα οποία όμως θα έχουν και καλές root ιδιότητες. Με άλλα λόγια θα παράγουμε πολυώνυμα των οποίων ο σ υνδυασ μός των size και root ιδιοτήτων θα είναι καλός. Τέτοια πολυώνυμα χρησ ιμοποιούν sieving περιοχές της μορφής U x U και 1 y U, για κάποιον ακέραιο U. Θα αναφέρουμε απλά πως skewed πολυώνυμα είναι αυτά σ τα οποία απαιτούμε κάποιοι σ υντελεσ τές να είναι μικροί. Συνήθως αυτοί είναι οι μεγαλύτεροι σ υντελεσ τές του πολυωνύμου (c d, c d 1,...), ενώ οι υπόλοιποι είναι σ ημαντικά μεγαλύτεροι. Γενικά οι σ υντελεσ τές αυξάνουν καθώς προχωράμε από τον μεγαλύτερο σ τον μικρότερο. Αυτά τα πολυώνυμα χρησ ιμοποιούν σ υνήθως ως sieving περιοχές ένα ορθογώνιο S του οποίου ο λόγος του μήκους (διάσ τασ η x) προς το πλάτος (διάσ τασ η y) είναι s, με s > 1. Για κάθε πολυώνυμο αντισ τοιχεί και ένα διαφορετικό ορθογώνιο S. Αυτά όμως για τα skewed πολυώνυμα. Ας δούμε τώρα τον τρόπο εύρεσ ης καλών non-skewed πολυωνύμων. Να θυμήσ ουμε σ το σ ημείο αυτό, πως για monic πολυώνυμα η base-m μέθοδος αποτελεί την καλύτερη και ταχύτερη λύσ η για την εύρεσ η καλού πολυωνύμου. Η τεχνικά αυτή μπορεί να χρησ ιμοποιηθεί κι εδώ με την διαφορά ότι τώρα το m είναι m n 1/(d+1). Μπορούμε κι εδώ να εφαρμόσ ουμε την τεχνική μείωσ ης των σ υντελεσ τών σ το διάσ τημα m/2 c i m/2 με 1 i < d. Μπορούμε παρόλα αυτά να πετύχουμε καλύτερα αποτελέσ ματα από αυτό που μόλις πετύχαμε. Ας θυμηθούμε τι θέλουμε να πετύχουμε. Θέλουμε ένα πολυώνυμο που να έχει καλές root και size ιδιότητες. Για να έχει καλές size ιδιότητες πρέπει να είναι small. Ορισμός 3.4. Μια base-m αναπαράσ τασ η f m είναι χ small όταν το χ είναι η μεγαλύτερη τιμή του a i /m για i = 1,..., d 1. Απαραίτητη προϋπόθεσ η για να είναι μια αναπαράσ τασ η small είναι να είναι μικροί οι μεγαλύτεροι σ υντελεσ τές, δηλαδή οι σ υντελεσ τές c d και c d 1. Αυτό μπορούμε να το εξασ φαλίσ ουμε πολύ εύκολα με την επιλογή του της τιμής του m. Δεν είναι δύσ κολο να παρατηρήσ ει κανείς ότι οι δύο αυτοί σ υντελεσ τές είναι ταυτόχρονα μικροί για αυτή την τιμή του m μετά την οποία η τιμή του σ υντελεσ τή c d αλλάζει. Για να γίνει πιο κατανοητό αυτό που μόλις αναφέραμε, ας δούμε ένα παράδειγμα δανεισ μένο από την εργασ ία του Brian A. Murphy [17], πάνω σ την οποία βασ ίζονται και όλα όσ α περιγράφουμε για τα non-monic και non-skewed πολυώνυμα. Εσ τω n = = NextP rime(10 5 ) P reviousp rime(10 6 ). Αυτά που φαίνονται σ τον πίνακα (3.1) είναι η ακολουθία των base-m αναπαρασ τάσ εων του n γύρω από την τιμή του m η οποία αναγκάζει τον σ υντελεσ τή 48
61 3.1. Επιλογή Πολυωνύμου c 3 να μειωθεί από 9 σ ε 8. Να σ ημειωθεί εδώ πως η ακολουθία αυτή δεν έ- χει τροποποιηθεί ώσ τε να μειωθούν οι σ υντελεσ τές του πολυωνύμου ώσ τε c d m/2. Οι σ υντελεσ τές είναι γραμμένοι με τη σ ειρά c 0,..., c 3. m c i 1030 [323, 405, 155, 9] 1031 [64, 122, 128, 9] 1032 [61, 925, 100, 9] 1033 [260, 751, 73, 9] 1034 [607, 631, 46, 9] 1035 [13, 566, 19, 9] 1036 [493, 554, 1028, 8] 1037 [959, 596, 1002, 8] 1038 [319, 693, 976, 8] 1039 [594, 843, 950, 8] 1040 [693, 7, 925, 8] Πίνακας 3.1: Ακολουθία των base-m αναπαρασ τάσ εων Στον πίνακα (3.1) αξίζει να παρατηρήσ ει κανείς την σ χεδόν γραμμική μεταβολή του σ υντελεσ τή c 2 για τα διάφορα m με σ ταθερό c 3. Η τιμή του m που κάνει τον μεγαλύτερο σ υντελεσ τή να αλλάξει τιμή δίνεται από τη σ χέσ η: ( ) 1 n d m 1 = Εύκολα προκύπτουν πλέον και οι τιμές του m γύρω από το m 1 για το οποίο και ισ χύει c d c (m) d 1 χm (3.8) Η αναλογία των τιμών του m που ιακνοποιούν τη σ χέσ η (3.8) είναι περίπου 2χ. Επομένως από το να επιλέξουμε την τιμή του m σ την τύχη, η παραπάνω διαδικασ ία επιλογής που μας εγγυάται πως και c d 1 χm αυξάνει την επίδοσ η του πολυωνύμου κατά ένα παράγοντα περίπου 1/2χ. Μια τυπική τιμή είναι το χ = 0.02 η οποία μας δίνει καλύτερη επίδοσ η κατά έναν παράγοντα περίπου 25. Μέχρι τώρα δείξαμε έναν τρόπο εύρεσ ης πολυωνύμων με καλές size ιδιότητες. Πώς όμως μπορούμε να βρούμε non-skewed πολυώνυμα που να έχουν 49
62 3. Ο αλγοριθμος Number Field Sieve και καλύτερες root ιδιότητες από τον μέσ ο όρο Να θυμήσ ουμε πως τα nonmonic πολυώνυμα έχουν δύο ειδών ρίζες modulo p, τις projective και τις non-projective. Για να κάνουμε το πολυώνυμό μας να έχει καλύτερες root ιδιότητες από τον μέσ ο όρο, το υποχρεώνουμε να έχει πολλές projective ρίζες modulo μικρούς πρώτους p k. Για να το πετύχουμε αυτό χρησ ιμοποιούμε έ- ναν cofactor c του μεγαλύτερου σ υντελεσ τή c d και ελέγχουμε αν διαιρείται με αυτόν. Οσ ο μεγαλύτερος είναι αυτός ο cofactor τόσ ο περισ σ ότερες projective ρίζες έχει, άρα και καλύτερες root ιδιότητες. Ο παράγοντας αυτός πρέπει να επιλέγεται με προσ οχή, ώσ τε και αρκετά μεγάλος να είναι, για να έχουμε καλύτερες ιδιότητες, αλλά ταυτόχρονα και αρκετά μικρός ώσ τε να παράγεται ικανοποιητικά μεγάλος αριθμός διαφορετικών πολυωνύμων, για να μπορούμε να πάρουμε αυτό με τις καλύτερες επιδόσ εις σ υνολικά. Ο τρόπος εύρεσ ης των non-skewed και non-monic πολυωνύμων είναι ο ακόλουθος: Αλγόριθμος 3.1 (Non-Skewed Base-m Πολυώνυμα). 1. Αρχικά ορίζουμε το επιθυμητό διάσ τημα για τις τιμές των σ υντελεσ τών, σ το οποίο διάσ τημα κάθε σ υντελεσ τής c d είναι σ ημαντικά μικρότερος από το αντίσ τοιχο m. Ουσ ιασ τικά αυτό που κάνουμε είναι να επιλέξουμε χ 1, χ 2 τέτοια ώσ τε για το c d να ισ χύει χ 1 c d /m χ 2. Με τον τρόπο αυτό φράσ σ ουμε το διάσ τημα για τα c d από κάτω και από πάνω με log c d = (d log χ j + log n) d + 1 για j = 1, 2. Αυτό αντισ τοιχεί σ ε τιμές για το m που φράσ σ ονται από πάνω και από κάτω από για j = 1, 2 αντίσ τοιχα. log m = (log n log χ j) d Στη σ υνέχεια θέτουμε έναν παράγοντα c του c d, με το c να είναι ένα γινόμενο πολλών μικρών πρώτων p k. Για κάθε c d που διαιρείται από τον παράγοντα c σ το παραπάνω διάσ τημα βρίσ κουμε από τη σ χέσ η (3.8) τις τιμές του m για το οποίο c d 1 /m χm με χ χ Για κάθε m που προκύπτει από το βήμα 2, ελέγχουμε τους υπόλοιπους σ υντελεσ τές του f m. Αν το f m είναι χ small, υπολογίζουμε μια εκτίμησ η για το α(f ) και αν και η τιμή του είναι και αυτή ικανοποιητικά μικρή, τότε παίρνουμε σ αν έξοδο το πολυώνυμο f m. 50
63 3.1. Επιλογή Πολυωνύμου Απομονώνοντας τα Καλύτερα Πολυώνυμα Με την διαδικασ ία που περιγράφηκε σ την αμέσ ως προηγούμενη ενότητα, έ- χουμε πάρει πλέον ένα σ ύνολο από καλά πολυώνυμα. Το σ ύνολο αυτό μπορεί να περιέχει χιλιάδες ή ακόμη και εκατομμύρια πολυώνυμα, ανάλογα με τις επιλογές μας. Αν και αυτά τα πολυώνυμα είναι όλα σ χετικά καλά, ωσ τόσ ο ακόμη και ανάμεσ α σ ε αυτά υπάρχουν σ ημαντικές διαφορές σ τις επιδόσ εις, ή αν προτιμάτε σ το yield τους. Ο αριθμός των πολυωνύμων καθισ τά απαγορευτική τη πραγματοποίησ η sieving πειραμάτων για να επιλέξουμε το καλύτερο αυτών. Επομένως πρέπει να βρούμε έναν τρόπο, ώσ τε να αναγνωρίζουμε το καλύτερο πολυώνυμο, χωρίς να πραγματοποιούμε καθόλου sieving. Στη σ υνέχεια θα παρουσ ιάσ ουμε τον τρόπο με τον οποίο το πετυχαίνουμε αυτό. Η διαδικασ ία είναι διαφορετική για τα skewed και τα non-skewed πολυώνυμα. Εμείς θα παρουσ ιάσ ουμε και πάλι μόνο τη διαδικασ ία για τα non-skewed μιας και αυτά έχουμε χρησ ιμοποιήσ ει σ την υλοποίησ ή μας. Ας θεωρήσ ουμε αρχικά την περίπτωσ η του μη-γραμμικού πολυωνύμου F 1 (x, y). Συχνά επειδή σ τα non-skewed πολυώνυμα, οι τιμές του m είναι παρόμοιες, η εκτίμησ η (rating) του πολυωνύμου προκύπτει μόνο από το μη-γραμμικό. η χρήσ η και του γραμμικού πολυωνύμου F 2 απαιτεί κάποιες μικρές τροποποιήσ εις που θα δούμε σ τη σ υνέχεια. Για να είναι αξιόπισ το το rating πρέπει να έχουμε και μια αξιόπισ τη εκτίμησ η της τιμής του α(f 1 ). Επομένως σ το σ ημείο αυτό υπολογίζουμε το cont p (F 1 ) απευθείας για μικρά p. Αυτό σ ημαίνει ότι από ένα δείγμα με F 1 values μετράμε τις εμφανίσ εις του p k για k 1 και θεωρούμε το cont p (F 1 ), ως ο αριθμών των εμφανίσ εων σ ε κάθε τιμή. Αυτό μπορεί να καθυσ τερεί λιγάκι τη διαδικασ ία, αλλά είναι σ ημαντικό να γίνει γιατί γενικά τα μικρά p k δεν είναι well-behaved αλλά παίζουν σ ημαντικό ρόλο σ το yield του πολυωνύμου. Στην πράξη υπολογίζουμε το cont p (F 1 ) απευθείας για p < 100 και κάνουμε μια εκτίμησ ή του για 100 < p < Από τη σ τιγμή που το F 1 είναι ομογενές, μπορούμε να το γράψουμε σ ε πολικές σ υντεταγμένες (polar coordinates) ως: F 1 (x, y) = r d F 1 (cos θ, sin θ) Για δεδομένο θ = θ i δύο οποιαδήποτε πολυώνυμα βαθμού d αυξάνονται ως η d-ιοσ τή δύναμη του του r σ το θ i. Επομένως οι τιμές F 1 (cos θ i, sin θ i ) είναι οι πλέον κατάλληλες για να εκτιμήσ ουμε το yield καθενός πολυωνύμου. Επομένως σ ταθεροποιούμε το r σ την τιμή r = 1 και υπολογίζουμε το: u F1 (θ i ) = log F 1(cos θ i, sin θ i ) +α(f 1 ). log B 51
64 3. Ο αλγοριθμος Number Field Sieve Διαιρούμε το διάσ τημα [0, π] ομοιόμορφα σ ε K υποδιασ τήματα και παίρνουμε: θ i = π ( i 1 ) K 2 για i = 1,..., K. Ετσ ι, το θ i είναι η τιμή του θ σ το i-ιοσ τό υποδιάσ τημα. Τώρα μπορούμε πλέον να υπολογίσ ουμε την εκτίμησ η: E(F 1 ) = K ρ(u F1 (θ i )) (3.9) i=1 και θεωρούμε το E(F 1 ) ως το εκτιμώμενο rating του F 1. Η διαδικασ ία αυτή πραγματοποιείται για όλα τα πολυώνυμα και μόλις ολοκληρωθεί τότε αυτά ταξινομούνται κατά φθίνουσ α σ ειρά των E(F 1 ) τιμών. Η τιμή του K δεν είναι σ ημαντική σ τη διαδικασ ία, ωσ τόσ ο σ υνήθως χρησ ιμοποιούμε K = Μπορούμε τώρα να θεωρήσ ουμε το γραμμικό πολυώνυμο F 2 (x, y). Είναι πιθανό τα όρια των smooth πρώτων να διαφέρουν για το F 1 και το F 2 πολυώνυμο, επομένως για να είναι ευδιάκριτη η διαφορά τους, δηλώνουμε με B Fj τα όρια για το F j πολυώνυμο. Από τη σ χέσ η u Fj (θ i ) = log F j(cos θ i, sin θ i ) +α(f j ) log B Fj με j = 1, 2 παίρνουμε την εκτίμησ η E(F 1, F 2 ) από: E(F 1, F 2 ) = K ρ (u F1 (θ i )) ρ (u F2 (θ i )) (3.10) i=1 την οποία και θεωρούμε ως το εκτιμώμενο rating του ζεύγους των πολυωνύμων. Οπως και παραπάνω τα ζεύγη πολυωνύμων ταξινομούνται κατά φθίνουσ α σ ειρά των E(F 1, F 2 ) τιμών Η Συνάρτησ η ρ του Dickman Στην προηγούμενη ενότητα παρουσ ιάσ αμε τον τρόπο με τον οποίο υπολογίζουμε το rating καθενός πολυωνύμου. Στη σ χέσ η (3.10) από την οποία προκύπτει αυτό, χρησ ιμοποιούμε την σ υνάρτησ η ρ η οποία είναι γνωσ τή ως η σ υνάρτησ η ρ του Dickman. Σύμφωνα με αυτήν, για u R με u 0 η σ υνάρτησ η ρ ορίζεται ως 52 ρ(u) = lim r ψ(r, r 1/u ) r
65 3.1. Επιλογή Πολυωνύμου για u > 1 και ρ(u) = 1 διαφορετικά. Την τιμή ρ(u) μπορούμε να την θεωρήσ ουμε ως την ασ υμπτωτική πιθανότητα μια τυχαία τιμή i r να έχει τον μεγαλύτερο πρώτο παράγοντά της το πολύ ίσ ο με r 1/u. Επομένως πρόκειται ουσ ιασ τικά για την ασ υμπτωτική πιθανότητα μια τυχαία τιμή i r να είναι B smooth με u = (log r)/ log B Τρόπος Υπολογισ μού της Τιμής ρ(u) Η σ υνάρτησ η ρ του Dickman ορίζεται για πραγματικό u 0 από τη σ χέσ η Επίσ ης F (α) = ρ(1/α). { ρ(u) = 1 if 0 u 1 u ρ(t)dt otherwise u 1 (3.11) 1 u Η σ υνάρτησ η ρ ικανοποιεί τη διαφορική εξίσ ωσ η διαφορών ρ (u) = ρ(u 1)/x για u 1. Αυτό σ ημαίνει πως η ρ είναι φθίνουσ α και rho(u) 1. Στην πραγματικότητα φθίνει πολύ γρήγορα για μεγάλα u. Η τιμή της ρ(u) προκύπτει από τον υπολογισ μό της σ χέσ ης (3.11). Παρόλα αυτά υπάρχει μια πιο αποδοτική μέθοδος υπολογισ μού της τιμής αυτής. Η μέθοδος αυτή περιγράφεται αναλυτικά σ το [18], ωσ τόσ ο εδώ θα δούμε σ υνοπτικά τον τρόπο υπολογισ μού που προτείνεται σ ε αυτή τη μέθοδο. Σύμφωνα με το [18] για ακεραίους l 0 υπάρχουν αναλυτικές σ υναρτήσ εις ρ (l) (u) των οποίων οι τιμές είναι ίδιες με αυτές της ρ(u)σ το διάσ τημα [l 1, l]. Μπορούμε να πάρουμε ανάπτυγμα σ ειρών Taylor σ τα διασ τήματα αυτά. Επιπλέον για δεδομένο ανάπτυγμα Taylor για το ρ (l) (u), μπορούμε να πάρουμε το αντίσ τοιχο ανάπτυγμα για το ρ (l+1) (u). Επομένως για να υπολογίσ ουμε την τιμή του ρ(u) σ το διάσ τημα [l 1, l] χρησ ιμοποιούμε ρ (l) (l ξ) = i=0 c (l) i ξ i. Για l = 2 έχουμε c (2) 0 = 1 log 2 και c (2) i = 1/i2 i για i 1. Διαφορετικά c (l) i = i 1 j=0 c (l 1) j il i j 53
66 3. Ο αλγοριθμος Number Field Sieve για i > 0 και c (l) 0 = 1 l 1 j=1 c (l) j j + 1. Στο [18] αναφέρεται πως ο υπολογισ μός των σ υντελεσ τών c (l) j για j = 1, 2, είναι αρκετός για να υπολογίσ ουμε την τιμή της ρ (l) (u) με σ χετικό σ φάλμα περίπου Η μέθοδος υπολογισ μού της σ υνάρτησ ης ρ του Dickman που μόλις περιγράφηκε είναι και αυτή που υλοποιήθηκε σ τα πλαίσ ια της διπλωματικής αυτής εργασ ίας. Για περισ σ ότερες λεπτομέρειες ο αναγνώσ της μπορεί να ανατρέξει σ το [18]. 3.2 Δημιουργία Βάσ εων Για να δουλέψει ο αλγόριθμος απαιτείται ένα καλώς ορισ μένο πεδίο, και αυτό καθορίζεται από τις βάσ εις. Για την λειτουργία του, ο αλγόριθμος απαιτεί την ύπαρξη τριών βάσ εων, την Rational Factor Base (RFB), την Algebraic Factor Base (AFB) και την Quadratic Character Base (QCB). Η Rational Factor Base αποτελείται από όλους τους πρώτους αριθμούς μέχρι κάποιο άνω όριο maxrfb. Η Algebraic Factor Base (AFB) αποτελείται από ζευγάρια (r, p), τα οποία είναι πρώτου βαθμού πρώτα ιδεώδη του Z[θ], όπου p πρώτος αριθμός μέχρι ένα άνω όριο, έσ τω maxafb, και r τέτοιο ώσ τε f(r) 0 (mod p). Με άλλα λόγια, η δημιουργία της algebraic factor base είναι ισ οδύναμη με την εύρεσ η των ριζών του f(x) modulo p για διάφορους πρώτους p. Αυτό, ευτυχώς, είναι ένα καλά μελετημένο πρόβλημα και υπάρχουν αρκετοί αλγόριθμοι, οι οποίοι πραγματοποιούν τους υπολογισ μούς αυτών των ριζών, αρκετά αποδοτικά, οπότε δεν υπάρχει σ ημαντική χρονική επιβάρυνσ η για τη δημιουργία της βάσ ης αυτή. Μπορεί να υπάρχουν μέχρι και d ρίζες r του f modulo p, όπου d ο βαθμός του f. Επιπλέον, σ την AFB σ υμπεριλαμβάνουμε τα ζεύγη (p, ) (τα οποία εσ ωτερικά αναπαρίσ τανται ως (p, p) ) με τα p που διαιρούν το c d, σ την περίπτωσ η που το f είναι non-monic (βλέπε [15], ενότητα 12). Το μέγεθος της AFB πρέπει να είναι περίπου 2 3 φορές μεγαλύτερο από το μέγεθος της RFB. Τέλος, η Quadratic Character Base αποτελείται από ζεύγη (r, p) τα οποία έχουν τις ίδιες ιδιότητες με αυτά της AFB, μόνο που ο ελάχισ τος πρώτος α- ριθμός p που εμφανίζεται σ τη βάσ η αυτή είναι ο αμέσ ως μεγαλύτερος από τον μέγισ το πρώτο της AFB (maxafb). Κάτι που πρέπει να προσ έξουμε κατά τη 54
67 3.3. Κοσ κίνισ μα (Sieving) δημιουργία της QCB είναι πως ο πρώτος p δεν πρέπει να διαιρεί την leading coefficient c d, σ την περίπτωσ η βέβαια που χρησ ιμοποιούμε non-monic πολυώνυμο. Το πλήθος των σ τοιχείων της QCB είναι αρκετά μικρό σ υγκρινόμενο με το πλήθος των σ τοιχείων των RFB και AFB. Ακόμη και για παραγοντοποιήσ εις ρεκόρ, το πλήθος των σ τοιχείων της βάσ ης αυτής παραμένει μικρότερο από 100. Σημείωσ η για την Υλοποίησ η Από την παραπάνω περιγραφή των απαιτούμενων βάσ εων, εύκολα μπορεί να παρατηρήσ ει κανείς πως οι AFB και QCB έχουν ίδιο τρόπο αναπαράσ τασ ης, αποθηκεύονται δηλαδή ως ζεύγη (r, p). Θα ήταν προς όφελός μας, αν μπορούσ αμε να αποθηκεύσ ουμε με παρόμοιο τρόπο και τα σ τοιχεία της RFB βάσ ης και αυτό γιατί θα μπορούσ αμε να έχουμε μια ενιαία δομή για τις βάσ εις μας και επομένως και ενιαίο τρόπο επεξεργασ ίας κατά τη διαδικασ ία του φιλτραρίσ ματος (sieving), κάτι που θα έκανε τη ζωή μας πιο εύκολη και την υλοποιήσ η πιο ξεκάθαρη. Αποθηκεύουμε λοιπόν τα σ τοιχεία της RFB ως ζεύγη (m (mod p), p). Με τον τρόπο αυτό μπορούμε με τον ίδιο κώδικα να φιλτράρουμε τόσ ο την RFB, όσ ο και την AFB. Το μόνο που αλλάζει είναι ο τρόπος αρχικοποίησ ης του πίνακα φιλτραρίσ ματος (sieving array) που για την RFB αρχικοποιείται με τις τιμές a + bm, ενώ για την AFB με τις τιμές ( b) d f( a b ) για κάθε u < a < u και δεδομένο b. Κατά το sieving, για δεδομένο b οι τιμές του a που διαιρούνται από κάποιον πρώτο p βρίσ κονται, σ τον πίνακα, σ τις θέσ εις a = bm + kp kɛz. Αντίσ τοιχα, για την AFB, οι τιμές του a για τις οποίες το a + bθ διαιρείται από το πρώτου βαθμού πρώτο ιδεώδες που αντισ τοιχεί σ το ζεύγος (r, p) είναι της μορφής a = br + kp kɛz, δηλαδή υπάρχει ακριβώς αντισ τοιχία του τρόπου φιλτραρίσ ματος με την RFB. 3.3 Κοσ κίνισ μα (Sieving) Το βήμα του sieving δεν είναι το πιο θεωρητικά δύσ κολο κομμάτι του αλγορίθμου, αλλά είναι με βεβαιότητα το πιο χρονοβόρο, διότι εκτελείται πάνω από ένα τεράσ τιο διάσ τημα κάνοντας ακριβούς υπολογισ μούς όπως διαίρεσ η και modulo, αν και όπως θα δούμε αμέσ ως μετά υπάρχουν αρκετές τεχνικές με τις οποίες μπορούμε να επιταχύνουμε τους υπολογισ μούς του βήματος αυτού, όπως για παράδειγμα η χρήσ η λογαρίθμων, αντί για διαίρεσ η. Κατά κανόνα, η βελτισ τοποίησ η του βήματος του sieving θα αποφέρει τη μεγαλύτερη μείωσ η του σ υνολικού χρόνου εκτέλεσ ης του αλγορίθμου. 55
68 3. Ο αλγοριθμος Number Field Sieve Λόγω του τεράσ τιου όγκου δεδομένων του βήματος αυτού, πρέπει να είμασ τε προσ εκτικοί όσ ον αφορά τη διαχείρισ η μνήμης με το να επαναχρησ ιμοποιούμε πίνακες και να χρησ ιμοποιούμε τους μικρότερους δυνατούς τύπους δεδομένων. Οι factor bases μπορεί περιέχουν εκατομμύρια σ τοιχεία, οπότε πρέπει να πετύχουμε το καλύτερο on-disk/in-memory trade off. Για ακόμα μεγαλύτερες επιδόσ εις (κάτι που είναι απολύτως απαραίτητο σ ε περίπτωσ η παραγοντοποιήσ εων ρεκόρ bit και άνω) θα πρέπει να προσ αρμόσ ουμε τη λειτουργία του sieving έτσ ι ώσ τε να κάνει όσ ο το δυνατόν καλύτερη χρήσ η της cache του εκάσ τοτε επεξεργασ τή Rational Side Sieving Οπως, λοιπόν, έχει ήδη αναφερθεί, ο πρωταρχικός σ κοπός του GNFS είναι να βρεθεί ένα σ ύνολο U από ζευγάρια ακεραίων (a, b), όπου a και b είναι πρώτοι μεταξύ τους τέτοια ώσ τε να ισ χύουν ταυτόχρονα οι εξής σ χέσ εις: (a,b) S (a,b) S (a bα) = γ 2, για κάποιο γ Z[α], (3.12) (a bm) = υ 2, για κάποιο υ Z. (3.13) Ας αφήσ ουμε προς το παρόν την πρώτη σ χέσ η και ας επικεντρωθούμε σ τη δεύτερη. Το ζητούμενο είναι να βρεθεί ένα τετράγωνο σ το Z. Ενα κόσ κινο (sieve) μπορεί να χρησ ιμοποιηθεί για βρούμε ζεύγη ακεραίων (a, b) έτσ ι ώσ τε το a bm να να είναι smooth όσ ον αφορά τη rational factor base RFB (RFBsmooth). Το πρώτο εμπόδιο που πρέπει αν υπερβούμε είναι ότι έχουμε δύο ελεύθερες μεταβλητές a και b, οι οποίες μπορούν να ρυθμισ τούν όταν ψάχνουμε για smooth a bm τιμές 1. Οι περισ σ ότερες υλοποιήσ εις του GNFS απλώς σ ταθεροποιούν την τιμή του b και κατόπιν ελέγχουν τις τιμές του a μέσ α σ ε ένα εύρος u < a < u για τιμές του a bm που είναι smooth. Η τιμή του b σ υνήθως από το 1 και αυξάνεται σ ταδιακά μέχρι να βρεθούν αρκετά 2 ζεύγη (a, b) με a bm να είναι smooth. 1 Για λόγους σ ύγκρισ ης υπενθυμίζεται ότι σ τον αλγόριθμο Quadratic Sieve υπάρχει μόνο μία ελεύθερη μεταβλητή. 2 Το ἁρκετά σ την προκειμένη περίπτωσ η, σ ημαίνει τόσ α ώσ τε να μπορούμε να βρούμε τουλάχισ τον μια, ή ακόμα καλύτερα και περισ σ ότερες, γραμμικές εξαρτήσ εις σ το βήμα της γραμμικής άλγεβρας του αλγορίθμου. 56
69 3.3. Κοσ κίνισ μα (Sieving) Για να δούμε σ την πράξη πώς λειτουργεί η διαδικασ ία του sieving, έσ τω p ένας σ υγκεκριμένος πρώτος αριθμός που ανήκει σ την RFB και έσ τω b ένας σ ταθερός ακέραιος. Τότε για κάθε a Z ο πρώτος p διαιρεί το a bm αν και μόνο αν a bm 0 (mod p). Αυτό σ υνεπάγεται ότι a bm (mod p), σ υνεπώς το a πρέπει να είναι της μορφής a = bm + kp, για κάποια k Z. Αυτή η παρατήρησ η δίνει μια καθαρή αναπαράσ τασ η των πιθανών ζευγαριών (a, b) για τα οποία ισ χύει ότι το a bm διαιρείται από το p, για μια σ υγκεκριμένη τιμή του p και του θετικού ακεραίου b. Συνεπώς, το sieving με τη βάσ η RFB (αποκαλούμενο και ως Rational Side Sieving) σ τον αλγόριθμο GNFS αρχίζει με ένα πίνακα κοσ κινίσ ματος (sieve array) σ την κύρια μνήμη του υπολογισ τή με κάθε κελί του πίνακα να αντισ τοιχεί σ ε ένα a, με u < a < u. Για μια σ υγκεκριμένη τιμή του b, κάθε κελί του πίνακα αρχικοποιείται με την κατάλληλη τιμή a bm. Για κάθε πρώτο p RFB, υπολογίζουμε το πεπερασ μένο σ ύνολο των τιμών a = bm + kp για k Z, με u < a < u, και για κάθε τέτοιο a διαιρούμε τον πρώτο p από τον αριθμό που είναι αποθηκευμένος σ το κελί του πίνακα που αντισ τοιχεί σ το a. Αφού εκτελέσ ουμε την διαδικασ ία αυτή για όλους τους πρώτους που υπάρχουν σ την RFB, ελέγχουμε τα κελιά του πίνακα για να βρούμε ποια έχουν την τιμή 1. Κάθε τέτοιο κελί μας δίνει μια τιμή του a για την οποία το a bm είναι RFB-smooth. Στη σ υνέχεια, η παραπάνω διαδικασ ία επαναλαμβάνεται για την επόμενη τιμή του b, μέχρι τελικά να βρεθούν αρκετά ζεύγη (a, b) με το a bm να είναι RFB-smooth, για να λειτουργήσ ει σ ωσ τά το βήμα της γραμμικής άλγεβρας. Λόγω του τρόπου με τον οποίο λειτουργεί ο σ υγκεκριμένος αλγόριθμος, δηλαδή ότι σ ε κάθε βήμα εκτελεί τη διαδικασ ία του sieving σ ε μια γραμμή δεδομένων, ονομάζεται line sieving Επιταχύνοντας τη Διαδικασ ία του Sieving Το κόσ κινο που περιγράφηκε σ την προηγούμενη υποενότητα είναι μια σ χετικά γρήγορη διαδικασ ία, διότι μειώνει δρασ τικά τον αριθμό των διαιρέσ εων που πρέπει να υπολογισ τούν. Συγκεκριμένα αντί να διαιρεί σ τα τυφλά τα a bm με κάθε πρώτο της βάσ ης RFB, η διαδικασ ία αυτή διαιρεί ένα a bm με έναν πρώτο p μόνο όταν είναι εγγυημένο ότι το p θα διαιρεί ακριβώς τον αριθμό αυτό. Παρόλα αυτά, σ υμβαίνει σ υχνά το γεγονός ότι το a bm δεν είναι RFB-smooth, οπότε σ την περίπτωσ η αυτή οι διαιρέσ εις του εν λόγω a bm αποτελούν σ πατάλη χρόνου. Μια έξυπνη βελτισ τοποίησ η της διαδικασ ίας του sieving κρατάει τον αριθμό τον απαιτούμενων χρονοβόρων διαιρέσ εων σ το ελάχισ το, αντικαθισ τώντας τις διαιρέσ εις με προσ θέσ εις. Αντί λοιπόν να χρησ ιμοποιούνται διαιρέσ εις για να ελεγχθεί κατά πόσ ον τα a bm είναι RFB-smooth, 57
70 3. Ο αλγοριθμος Number Field Sieve θα χρησ ιμοποιηθούν προσ θέσ εις για να αποκλείσ ουν την μεγάλη πλειοψηφία των a bm που δεν είναι RFB-smooth, και κατόπιν θα πραγματοποιηθεί δοκιμασ τική διαίρεσ η μόνο σ ε τιμές που έχουν αρκετά μεγάλη πιθανότητα να είναι RFB-smooth. Παρατηρείσ τε ότι τελικά εκτελείται δοκιμασ τική διαίρεσ η για να βεβαιωθούμε ότι ένα a bm είναι όντως RFB-smooth. Αυτή η βασ ική ιδέα οδηγεί σ το να αποθηκεύσ ουμε προσ εγγίσ εις του log(a bm) 3 σ τον πίνακα κοσ κινίσ ματος, αντί της πραγματικής τιμής του a bm. Είναι γνωσ τό από τη θεωρία των λογαρίθμων ότι η διαίρεσ η του a bm με έναν πρώτο p ισ οδυναμεί με την αφαίρεσ η του log(p) από το log(a bm). Συνεπώς για σ ταθερή τιμή του b και του πρώτου p, αφαιρούμε το log(p) α- πό τα κελιά του πίνακα που αντισ τοιχούν σ τα a = bm + kp για k Z με u < a < u. Αφού αυτή η διαδικασ ία πραγματοποιηθεί για όλους τους πρώτους της RFB για σ υγκεκριμένη πάντα τιμή του b, ψάχνουμε τον πίνακα για τιμές 0 = log(1), αντί για 1. Τα κελιά αυτά αντισ τοιχούν σ ε τιμές του a, τέτοιες ώσ τε το a bm να είναι πιθανόν να είναι RFB-smooth. Τελικά το αν όντως τα σ υγκεκριμένα a bm είναι RFB-smooth εξακριβώνεται με εκτέλεσ η δοκιμασ τικών διαιρέσ εων με τους πρώτους της RFB. Ο όρος πιθανόν χρησ ιμοποιείται, διότι, σ ε κάποιες περιπτώσ εις, λόγων των λαθών σ τρογγυλοποίησ ης κατά την προσ έγγισ η των λογαρίθμων, κάποιες τιμές a bm, θα αποδειχτεί ότι δεν είναι RFB-smooth. Αυτές οι λάθος εκτιμήσ εις δεν είναι σ υχνές σ την πράξη, και σ ε κάθε περίπτωσ η είναι αμελητέες σ υγκρινόμενες με την τεράσ τια εξοικονόμησ η υπολογισ τικού χρόνου που προσ φέρουν, με το να αποφεύγονται οι διαιρέσ εις για ένα μεγάλο αριθμό τιμών a bm Τεχνικές Υλοποίησ ης για την Επιτάχυνσ η του Sieving Οταν προχωρούμε υλοποίησ η της τεχνικής του sieving που περιγράφηκε σ την προηγούμενη υποενότητα, υπάρχουν ορισ μένες βελτιώσ εις που μπορούμε να ενσ ωματώσ ουμε, οι οποίες οδηγούν σ ε κέρδος σ την απόδοσ η του αλγορίθμου σ την πράξη, χωρίς να αλλάζει δραματικά η βασ ική μέθοδος της προηγούμενης υποενότητας. Η πιο σ υνήθης ρύθμισ η που εφαρμόζεται είναι να αρχικοποιήσ ουμε το πίνακα με τιμές log(a bm) αντί των log(a bm), και οι τιμές των log(p) προσ τίθενται σ τα κελιά του πίνακα αντί να αφαιρούνται. Ετσ ι, όταν σ αρώνουμε 3 Η βάσ η του λογαρίθμου καθορίζεται από το μέγεθος της τιμής του a bm και από τον αριθμό των bits που χρησ ιμοποιείται για την αποθήκευσ η της τιμής του κάθε κελιού του πίνακα. Επιπλέον, επειδή ως γνωσ τόν δεν ορίζεται λογάριθμος αρνητικού αριθμού, φροντίζουμε να δουλεύουμε πάντα με τις απόλυτες τιμές των ορισ μάτων των λογαρίθμων, πχ log( a bm ). 58
71 3.3. Κοσ κίνισ μα (Sieving) τον πίνακα για πιθανές RFB-smooth a bm τιμές, εκτελούμε έλεγχο μη αρνητικότητας των τιμών των κελιών. Σε πολλές αρχιτεκτονικές η πράξη αυτή (δηλαδή ο έλεγχος για το αν μια τιμή είναι μεγαλύτερη του μηδενός) είναι ταχύτερη από τον έλεγχο για το αν μια τιμή είναι μικρότερη ή ίσ η του μηδενός. Επιπλέον, σ τη σ υνηθισ μένη περίπτωσ η αποθηκεύουμε τις προσ εγγίσ εις των log(a bm) σ ε ένα και μόνο byte 4, δηλαδή 8 bits, μνήμης και σ υνεπώς το τεσ τ μη αρνητικότητας μπορεί να εφαρμοσ τεί ταυτόχρονα σ ε 4 θέσ εις κάθε φορά, αν ο επεξεργασ τής είναι αρχιτεκτονικής 32-bit, 8 θέσ εις κάθε φορά, αν ο επεξεργασ τής είναι αρχιτεκτονικής 64-bit κ.ο.κ, με τη χρήσ η της κατάλληλης μάσ κας. Μια άλλη σ ημαντική βελτίωσ η προκύπτει από το γεγονός ότι σ τις περισ σ ότερες περιπτώσ εις που εφαρμόζεται ο GNFS, ο ακέραιος m είναι σ ημαντικά μεγαλύτερος από τα a και b. Συνεπώς, το m είναι το κυρίαρχο σ τοιχείο του log(a bm), έτσ ι αντί να υπολογίζουμε το log(a bm) ρητά για κάθε ζεύγος (a, b), μπορούμε να υπολογίζουμε μόνο το log(bm), για σ ταθερή τιμή του b, και να αρχικοποιήσ ουμε όλα τα κελιά του πίνακα με την τιμή log(bm). Με τον τρόπο αυτό εξοικονομούμε χρόνο, με το να αποφεύγουμε τον υπολογισ μό ενός μεγάλου αριθμού λογαρίθμων, άλλα πρέπει να το χρησ ιμοποιούμε με προσ οχή, γιατί αυξάνει το ήδη υπάρχον σ φάλμα σ τρογγυλοποίησ ης των λογαρίθμων. Οι σ υνέπειες του σ φάλματος αυτού είναι ότι κάποιες τιμές a bm που είναι RFBsmooth ίσ ως χαθούν, και αντίσ τροφα, περισ σ ότερες απ ότι σ υνήθως, τιμές που δεν είναι RFB-smooth, ίσ ως θεωρηθούν ως πιθανές RFB-smooth τιμές και θα εφαρμοσ τεί χωρίς λόγο δοκιμασ τική διαίρεσ η των τιμών αυτών. Οσ ον αφορά το θέμα των σ φαλμάτων, μια επιπλέον ανακρίβεια εισ άγεται α- πό τη χρήσ η των λογαρίθμων, όταν υπάρχουν τιμές a bm που διαιρούνται ακριβώς από δυνάμεις των πρώτων αριθμών p της RFB. Συγκεκριμένα, αν το a bm διαιρείται από τοp e, όπου p RFB και e > 1 τότε το e log(p) πρέπει να προσ τεθεί σ το αντίσ τοιχο κελί του πίνακα και όχι το log(p). Συνεπώς μη προσ θέτοντας την σ ωσ τή ποσ ότητα, είναι πιθανό η τιμή a bm που αντισ τοιχεί σ το κελί αυτό, όταν ελεγχθεί, να μη θεωρηθεί ως υποψήφια RFBsmooth, ακόμα και αν σ την πραγματικότητα είναι. Άρα, τιμές a bm που είναι RFB-smooth, αλλά δεν είναι ελεύθερες από τετράγωνα (δηλαδή διαιρούνται από δυνάμεις μεγαλύτερες του 1 των πρώτων παραγόντων τους) είναι πιθανό ότι θα χαθούν από αυτή τη διαδικασ ία. Επιπρόσ θετα, μια βελτισ τοποίησ η που χρησ ιμοποιείται σ υχνά σ την πράξη, αλλά φυσ ικά σ υμβάλει και αυτή σ τη διόγκωσ η του σ φάλματος, είναι να μην εφαρμόσ ουμε τη διαδικασ ία του sieving για τους μικρούς, μέχρι ενός ορίου, 4 Με άλλα λόγια κάθε κελί του πίνακα κοσ κινίσ ματος καταλαμβάνει 1 byte μνήμης. 59
72 3. Ο αλγοριθμος Number Field Sieve πρώτους αριθμούς της RFB, μιας και η τιμή του log(p) για τους πρώτους αυτούς θα είναι σ χεδόν μηδενική και άρα αμελητέα. Σε μια προσ πάθεια να μειωθεί η επίπτωσ η που επιφέρουν τα σ φάλματα που υπεισ έρχονται λόγω των διαφόρων βελτισ τοποιήσ εων με τη χρησ ιμοποίησ η των λογαρίθμων, οι περισ σ ότερες υλοποιήσ εις του GNFS αρχικοποιούν τον πίνακα με την τιμή log(bm) + B, αντί του log(bm), όπου η σ ταθερά B ονομάζεται fudge factor και σ κοπός της είναι τόσ ο να μειώσ ει τις RFB-smooth τιμές a bm που χάνονται, όσ ο και να μειώσ ει την τιμές a bm που δεν είναι RFB-smooth αλλά περνάνε από τη διαδικασ ία της δοκιμασ τικής διαίρεσ ης. Η επιλογή μιας καλής τιμής για το B εξαρτάται τόσ ο από την υλοποίησ η όσ ο και από την εκάσ τοτε περίπτωσ η σ την οποία εφαρμόζεται ο GNFS και για το λόγο αυτό απαιτείται αρκετός πειραματισ μός, κυρίως σ τα πρώτα σ τάδια της απόπειρας παραγοντοποίησ ης αριθμών με τη χρήσ η του GNFS Algebraic Side Sieving Ας επικεντρωθούμε τώρα σ την σ χέσ η Για να επιτύχουμε την ικανοποίησ η της σ χέσ ης αυτής, κατασ κευάζουμε, όπως έχει ήδη αναφερθεί την algebraic factor base AFB, η οποία περιέχει ένα πεπερασ μένο αριθμό prime ideals πρώτου βαθμού που ανήκουν σ το Z[α] και αναπαρίσ τανται ως ζεύγη (p, r). Επιπλέον, δημιουργούμε την quadratic character base QCB η οποία περιέχει ένα μικρό αριθμό από prime ideals πρώτου βαθμού (τα οποία αποκαλούμε quadratic characters) με τη βοήθεια των οποίων θα εξασ φαλίσ ουμε ότι το γινόμενο των a bα Z[α] είναι ένα τέλειο τετράγωνο που όντως ανήκει και αυτό σ το Z[α]. Το sieving με την βάσ η AFB (αποκαλούμενο και ως Algebraic Side Sieving) ακολουθεί ακριβώς ίδια διαδικασ ία με αυτή του rational side sieving, χάρη σ την βολική αναπαράσ τασ η των prime ideals του Z[α] ως ζεύγη (p, r). Ενα prime ideal πρώτου βαθμού p, που αναπαρίσ ταται από το ζεύγος (p, r), διαιρεί το a bα, αν και μόνο αν το p διαιρεί το N(a bα), το οποίο σ υμβαίνει αν και μόνο αν a br (mod p). Ετσ ι, για μια σ ταθερή τιμή του b και του p AFB, αναπαρισ τάμενο από το ζεύγος (p, r), σ υνεπάγεται ότι τα ζεύγη (a, b) των οποίων το a bα διαιρείται ακριβώς από το p πρέπει να έχουν a της μορφής a = br + kp για κάποια k Z. Αυτές λοιπόν οι παρατηρήσ εις, μας οδηγούν σ την ίδια sieving διαδικασ ία που περιγράφηκε σ τις προηγούμενες υποενότητες, με κάποιες μικρές τροποποιήσ εις. Πρώτον, κάθε κελί του πίνακα κοσ κινίσ ματος αρχικοποιείται με την τιμή του N(a bα) αντί του a bm, αφού χρησ ιμοποιούμε τη νόρμα για να ε- λέγξουμε κατά πόσ ον το a bα είναι smooth (σ υγκεκριμένα AFB-smooth). 60
73 3.3. Κοσ κίνισ μα (Sieving) Δεύτερον, όταν χρησ ιμοποιούμε λογαρίθμους, δεν μπορούμε να αρχικοποιήσ ουμε όλα τα κελιά σ την ίδια τιμή, όπως γινόταν σ το rational side sieving, γιατί η τιμή του N(a bα) παρουσ ιάζει μεγάλο βαθμό μεταβλητότητας [19, σελίδες 26-28] για διαφορετικές τιμές του a. Η άμεσ η εναλλακτική είναι να υπολογίζουμε ρητά το log(n(a bα)) για κάθε κελί του πίνακα, το οποίο όμως μπορεί να σ παταλήσ ει υπερβολικό χρόνο σ ε ζεύγη (a, b), των οποίων το a bα δεν είναι AFB-smooth. Παρόλα αυτά, χρησ ιμοποιώντας μια σ ταθερά B, ως fudge factor, όπως σ την περίπτωσ η του rational side sieving, μπορούμε να αποφύγουμε να υπολογίσ ουμε ρητά το log(n(a bα)), όταν το a bα δεν είναι AFB-smooth [19, σελίδες 26-28] Περαιτέρω Βελτισ τοποίησ η Ο αλγόριθμος line sieving που περιγράφηκε σ τις προηγούμενες υποενότητες, μπορεί να βελτιωθεί ακόμα περισ σ ότερο, υλοποιώντας διάφορα τεχνάσ ματα τα οποία λαμβάνουν υπόψη τους την ιεραρχία της μνήμης και προσ παθούν να εκμεταλλευτούν σ το έπακρο την ταχύτατη μνήμη cache των επεξεργασ τών. Μια τέτοια τεχνική, μιμείται τον τρόπο με τον οποίο λειτουργεί ο αλγόριθμος ταξινόμησ ης bucket sort. Η κεντρική ιδέα είναι ότι κελιά του πίνακα κοσ κινίσ ματος που πρέπει να προσ πελασ τούν σ ειριακά κατά τη διαδικασ ία του sieving, αλλά απέχουν πολύ μεταξύ τους με αποτέλεσ μα να δημιουργούνται σ υνεχόμενα cache misses, μπορούν να τοποθετηθούν σ το ίδιο bucket και να προσ κομισ τούν ταυτόχρονα σ το ίδιο πλαίσ ιο της cache για να προσ πελασ τούν ταχύτερα. Ο ενδιαφερόμενος αναγνώσ της μπορεί να ανατρέξει σ το [20]. Ενας άλλος αλγόριθμος που χρησ ιμοποιείται σ υχνά σ την πράξη, και είναι αρκετά ταχύτερος από τον line sieving, είναι ο lattice sieving. Η ιδέα είναι ότι οι βάσ εις (RFB και AFB) χωρίζονται σ ε μικρότερα υποσ ύνολα και μετά η διαδικασ ία του sieving εφαρμόζεται σ τα σ τοιχεία που διαιρούνται από κάποιον μεγάλο πρώτο αριθμό q. Η τεχνική αυτή επιταχύνει σ ημαντικά το sieving με το κόσ τος ότι χάνονται κάποιες smooth τιμές. Ο βασ ικός αλγόριθμος περιγράφεται αναλυτικά σ το [21] και μια βελτιωμένη έκδοσ ή του παρουσ ιάζεται σ το [22]. Τέλος, μια ακόμα βελτισ τοποίησ η που ενσ ωματώνεται από πολλές υλοποιήσ εις του GNFS, και μπορεί να εφαρμοσ τεί τόσ ο σ το line sieving όσ ο και σ το lattice sieving είναι να χαλαρώσ ουμε το κριτήριο του smoothness των τιμών που ψάχνουμε κατά το sieving. Συγκεκριμένα, αντί να ψάχνουμε να βρούμε μόνο σ τοιχεία τα οποία είναι ἁκριβώς smooth, δηλαδή να παραγοντοποιούνται πλήρως από τα σ τοιχεία του αντίσ τοιχου factor base, να ψάχνουμε επίσ ης 61
74 3. Ο αλγοριθμος Number Field Sieve και για σ τοιχεία τα οποία είναι σ χεδόν smooth 5, δηλαδή όλοι οι πρώτοι παράγοντές τους να ανήκουν σ το εκάσ τοτε factor base, με εξαίρεσ η έναν ή δύο πρώτους παράγοντες, οι οποίοι θα είναι μεγαλύτεροι, μέχρι ενός ορίου φυσ ικά, από τους παράγοντες που υπάρχουν σ το factor base. Οι παράγοντες αυτοί αποκαλούνται large primes και η τεχνική sieving with large primes. Μετά το πέρας της διαδικασ ίας του sieving, απαιτείται περαιτέρω επεξεργασ ία για να μπορέσ ουμε να αξιοποιήσ ουμε τα σ χεδόν smooth ζεύγη (a, b) που βρήκαμε. Αξίζει ωσ τόσ ο να σ ημειωθεί, ότι η εν λόγω τεχνική σ υμβάλλει σ ημαντικά σ τη μείωσ η του χρόνου εκτέλεσ ης του sieving, διότι όπως αποδεικνύεται σ την πράξη υπάρχουν πάρα πολλά σ χεδόν smooth ζεύγη (a, b). Περισ σ ότερες πληροφορίες για την σ υγκεκριμένη βελτισ τοποίησ η υπάρχουν σ τα [19, 23, 24]. 3.4 Δημιουργία του Δυαδικού Πίνακα Ο σ κοπός της διαδικασ ίας του φιλτραρίσ ματος (sieving) είναι να βρούμε ζεύγη (a, b), τέτοια ώσ τε το a bm (ή a+bm) να είναι RFB-smooth και ταυτόχρονα το a bα (ή a + bα) να είναι AFB-smooth. Τα ζεύγη αυτά είναι γνωσ τά και ως σ χέσ εις (relations). Το πλήθος των σ χέσ εων που πρέπει να βρούμε για να μπορέσ ει να ολοκληρωθεί η εκτέλεσ η του αλγορίθμου, είναι τουλάχισ τον ίσ ο με το άθροισ μα των σ τοιχείων που υπάρχουν σ τις RFB, AFB και QCB βάσ εις, εξασ φαλίζοντας έτσ ι πως θα υπάρχει τουλάχισ τον μια μη κενή γραμμική εξάρτησ η μεταξύ των σ χέσ εων (a, b). Από τις σ χέσ εις που σ υγκεντρώνουμε από το φιλτράρισ μα κατασ κευάζουμε έναν δυαδικό πίνακα, ο οποίος περιέχει τα διανύσ ματα εκθετών που αντισ τοιχούν σ ε καθεμιά από τις σ χέσ εις αυτές. Παράδειγμα του τρόπου δημιουργίας ενός δυαδικού διανύσ ματος εκθετών μπορούμε να δούμε σ το κεφάλαιο 4.6, ενώ για περισ σ ότερες λεπτομέρειες μπορούμε να ανατρέξουμε σ τα [25, 26]. Για λόγους ευκολότερης κατανόησ ης του αλγορίθμου θα αναφέρουμε κι εδώ σ υνοπτικά τον τρόπο δημιουργίας του δυαδικού πίνακα. Αυτός θα αποτελείται από τόσ ες σ τήλες, όσ ες είναι και οι σ χέσ εις που βρήκαμε από τη διαδικασ ία του sieving. Ο αριθμός των γραμμών του, τώρα, θα είναι ίσ ος με το πλήθος των σ τοιχείων σ τις RFB, AFB και QCB βάσ εις σ υν μια επιπλέον για το πρόσ ημο. Αναλυτικότερα, η πρώτη γραμμή (πρώτο bit) θα είναι 0 αν το πρόσ ημο του a bm (ή a + bm) είναι θετικό, διαφορετικά θα έχει την τιμή 1. Οι επόμενες k γραμμές (bits) εξαρτώνται από την παραγοντοποίησ η του a bm (ή a + bm) πάνω σ το RFB. Αν ορίσ ουμε ως p γ την δύναμη του πρώτου p σ την 5 Στη βιβλιογραφία τα ἁκριβώς smooth ζεύγη (a, b) αναφέρονται σ υχνά ως full relations, ενώ τα σ χεδόν smooth ζεύγη αναφέρονται ως partial relations. 62
75 3.5. Εύρεσ η Εξαρτήσ εων με Εφαρμογή Γραμμικής Άλγεβρας παραγοντοποίησ η σ ε πρώτους του ζεύγους (a, b) τότε θέτουμε την τιμή 1 σ το bit που αντισ τοιχεί σ τον πρώτο p αν το γ είναι περιττός, διαφορετικά θέτουμε την τιμή του bit ίσ η με 0. Τα επόμενα l bits αντισ τοιχούν σ τα ζεύγη (r, p) της AFB βάσ ης. Κι εδώ ορίζουμε το bit ίσ ο με 1 αν ο εκθέτης του πρώτου, που είναι υπεύθυνος για την παραγοντοποίησ η του ζεύγους, είναι περιττός, διαφορετικά θέτουμε την τιμή του bit ίσ η με 0. Λέμε ότι θέτουμε το bit που είναι υπεύθυνο για το ζεύγος, γιατί μπορεί να έχουμε μέχρι και d ζεύγη (r, p) σ το AFB τα οποία μοιράζονται τον ίδιο πρώτο p, αλλά μόνο για ένα από τα ζεύγη αυτά ισ χύει a br (mod p). Αυτό το (r, p) ζεύγος είναι υπεύθυνο για το μέτρημα του αριθμού των διαιρέσ εων του N(a bα) από τον πρώτο p, άρα αυτού τον εκθέτη κοιτάμε. Τα τελευταία m bits εξαρτώνται από την τιμή του Legendre symbol για τα σ τοιχεία της QCB βάσ ης. Αν ( a br) 1, p τότε το bit είναι ίσ ο με 1, διαφορετικά είναι ίσ ο με 0. Με τον τρόπο αυτό κατασ κευάζουμε τον δυαδικό πίνακα ο οποίος έχει διασ τάσ εις (1 + k + l + m) (#RF B + #AF B + #QCB) T και τον οποίο θα χρησ ιμοποιήσ ουμε για την επίλυσ η του γραμμικού σ υσ τήματος από το οποίο θα προκύψουν γραμμικές εξαρτήσ εις μεταξύ των σ χέσ εων (a, b). Το γινόμενο των σ χέσ εων που βρίσ κονται σ ε καθεμιά από τις εξαρτήσ εις που θα προκύψουν από το σ ύσ τημα, είναι και ένα τέλειο τετράγωνο σ το αντίσ τοιχο πεδίο. 3.5 Εύρεσ η Εξαρτήσ εων με Εφαρμογή Γραμμικής Άλγεβρας Μέχρι τώρα καταφέραμε να βρούμε ένα σ ύνολο από smooth ζεύγη (a, b) ως προς τα τρία factor bases και κατασ κευάσ αμε από αυτά και τον δυαδικό πίνακα, από τον οποίο, όπως ήδη αναφέραμε, θα προκύψουν οι τελικές εξαρτήσ εις μεταξύ των ζευγών αυτών που θα μας δώσ ουν τέλειο τετράγωνο σ τα αντίσ τοιχα πεδία. Γενικά για να είμασ τε σ ίγουροι ότι από τις σ χέσ εις θα πάρουμε τελικά τέλειο τετράγωνο πρέπει να ισ χύουν ταυτόχρονα τα παρακάτω: 1. Το γινόμενο (a j,b j ) (a j b j m) πρέπει να είναι θετικό. 2. Κάθε εκθέτης που εμφανίζεται σ την παραγοντοποίησ η σ ε πρώτους του γινομένου (a j,b j ) (a j b j m) πρέπει να είναι άρτιος. 3. Κάθε εκθέτης που εμφανίζεται σ την παραγοντοποίησ η σ ε πρώτα ιδεώδη του (a j,b j ) (a j b j θ) πρέπει να είναι άρτιος. 4. Για κάθε (r, p) ɛ QCB, το γινόμενο των Legendre symbols για τα ζεύγη των εξαρτήσ εων πρέπει να είναι ίσ ο με 1, δηλ. (a j,b j ) ( a j+b j r p ) = 1. 63
76 3. Ο αλγοριθμος Number Field Sieve Επειδή οι παραπάνω σ υνθήκες πρέπει να ισ χύουν ταυτόχρονα, το (a j,b j ) (a j b j m) είναι τέλειο τετράγωνο σ το Z και το (a j,b j ) (a j b j θ) είναι τέλειο τετράγωνο σ το Z[θ], αν και μόνο αν το άθροισ μα των δυαδικών διανυσ μάτων των ζευγών (a j, b j ) καθεμιάς εξάρτησ ης είναι ίσ ο με το μηδενικό διάνυσ μα σ ε modulo 2. Αν ορίσ ουμε ως U το σ ύνολο των smooth ζευγών (a, b), το οποίο αποτελείται από y τέτοια ζεύγη και με X τον δυαδικό πίνακα που δημιουργήσ αμε παραπάνω με (1+k+l+m) (#RF B+#AF B+#QCB) T σ τοιχεία, τότε η εύρεσ η ενός V U, του οποίου το γινόμενο των σ τοιχείων μας δίνει τέλεια τετράγωνα, ισ οδυναμεί με την εύρεσ η ενός δυαδικού διανύσ ματος A τέτοιο ώσ τε: X [A 1, A 2,..., A y ] T 0 (mod 2). Αν y > 1 + k + l + m, τότε είμασ τε σ ίγουροι πως έχουμε μια μη-τετριμμένη λύσ η του σ υσ τήματος. Η ταχύτητα της επίλυσ ης του παραπάνω σ υσ τήματος είναι πολύ σ ημαντικός παράγοντας σ τον καθορισ μό του σ υνολικού χρόνου εκτέλεσ ης του αλγορίθμου GNFS. Ενας απλός και εύκολος τρόπος για την επίλυσ η είναι να χρησ ιμοποιήσ ουμε απαλοιφή Gauss (Gaussian elimination). Χρησ ιμοποιώντας Gaussian elimination πετυχαίνουμε μια αρκετά εύκολη υλοποίησ η, ωσ τόσ ο δεν είναι σ ήμερα και ο πιο αποτελεσ ματικός τρόπος επίλυσ ης γραμμικών σ υσ τημάτων κι αυτό γιατί όταν το μέγεθος του πίνακα μεγαλώνει πολύ, κάτι το οποίο είναι αναπόφευκτο όταν ο GNFS χρησ ιμοποιείται για την παραγοντοποίησ η μεγάλων αριθμών, απαιτούνται τεράσ τια ποσ ά μνήμης και χρόνου για να παραχθεί το επιθυμητό αποτέλεσ μα. Σε υλοποιήσ εις του GNFS σ υνήθως προτιμάται η χρήσ η μιας άλλης, περισ σ ότερο αποδοτικής, μεθόδου η οποία ονομάζεται Block Lanczoς. Ο αλγόριθμος αυτός, εργάζεται σ ε τμήματα του πίνακα, μειώνοντας με αυτόν τον τρόπο δραματικά τις απαιτήσ εις σ ε μνήμη. Επιπλέον, μας δίνει τη δυνατότητα να χρησ ιμοποιήσ ουμε μια σ υμπιεσ μένη μορφή αναπαράσ τασ ης του πίνακα σ τη μνήμη, κάτι που σ υμβάλει σ ε επιπλέον περιορισ μό της σ υνολικά απαιτούμενης μνήμης. Ο αλγόριθμος είναι ευρετικός, αλλά δουλεύει πολύ καλά σ την πράξη. Επίσ ης, είναι κατά πολύ ταχύτερος από την απαλοιφή Gauss. Περισ σ ότερες πληροφορίες υπάρχουν σ τα [16, 27]. Σημαντικό είναι επίσ ης, πως με τον αλγόριθμο αυτό μας δίνεται και η δυνατότητα για παραλληλοποίησ η της εκτέλεσ ής του, εκμεταλλευόμενοι με τον τρόπο αυτό τα supercomputers τα οποία παίζουν σ ημαντικό ρόλο σ τις παραγοντοποιήσ εις εξαιτίας, τόσ ο της επεξεργασ τικής ισ χύος που προσ φέρουν, όσ ο και της παραλληλίας κατά την εκτέλεσ η. Για περισ σ ότερες πληροφορίες σ χετικά με την παραλληλοποίησ η του Block Lanczos μπορεί να ανατρέξει κανείς σ το [28]. 64
77 3.6. Τετραγωνική Ρίζα (Square Root) Τέλος, μια σ υνηθισ μένη πρακτική που λαμβάνει χώρα πριν από την εφαρμογή της μεθόδου γραμμικής άλγεβρας για την επίλυσ η του σ υσ τήματος, είναι η μείωσ η του μεγέθους του πίνακα με διάφορες τεχνικές, όπως για παράδειγμα η μέθοδος structured Gaussian elimination. Οι τεχνικές αυτές εκμεταλλεύονται το γεγονός, ότι ο αρχικός δυαδικός πίνακας που δημιουργείται είναι σ υνήθως πολύ αραιός (sparse) και μειώνουν το μέγεθός του κάνοντας τον πυκνότερο. Με τον τρόπο αυτό κατορθώνουν να απαιτούν λιγότερη σ υνολική μνήμη, αλλά και επιταχύνουν λιγάκι την εκτέλεσ η. 3.6 Τετραγωνική Ρίζα (Square Root) Ο υπολογισ μός της τετραγωνικής ρίζας ενός αλγεβρικού ακεραίου αποτελεί ίσ ως το πιο δύσ κολο και πολύπλοκο μέρος του αλγορίθμου Number Field Sieve. Η εύρεσ η της τετραγωνικής αυτής ρίζας είναι αντίσ τοιχη διαδικασ ία με τον υπολογισ μό της τετραγωνικής ρίζας ενός πολυωνύμου σ ε ένα πεδίο επέκτασ ης (extension field). Στο κεφάλαιο αυτό θα δούμε αναλυτικά τον τρόπο με τον οποίο μπορούμε να πραγματοποιήσ ουμε τον υπολογισ μό της τετραγωνικής αυτής ρίζας Υπολογισ μός Τετραγωνικής Ρίζας σ το Πεδίο των Ακεραίων Μέχρι τώρα έχουμε καταφέρει να υπολογίσ ουμε έναν μεγάλο αλγεβρικό αριθμό γ ο οποίος προκύπτει ως γινόμενο από πολλούς μικρότερους και είναι τέλειο τετράγωνο σ το Z[α] (βλέπε [15]): γ = f (α) (a,b) ɛ S (a bα) = β 2 µε β ɛ Z[α] (3.14) Επίσ ης γνωρίζουμε πως η εικόνα του γ υπό τον ομομορφισ μό φ, όπου ικανοποιεί την σ χέσ η: φ(m) = f (m) 2 (a,b) ɛ S (a bm) mod n f (m) 2 (a bm) = f (m) 2 p 2ep = υ 2 (a,b) ɛ S p B 65
78 3. Ο αλγοριθμος Number Field Sieve όπου οι ακέραιοι e p προκύπτουν από την παραγοντοποίησ η σ ε πρώτους αριθμούς των αριθμών a bm και υ = f (m) p B Από την τελευταία αυτή σ χέσ η μπορούμε εύκολα να υπολογίσ ουμε την τετραγωνική ρίζα σ το πεδίο των ακεραίων Z. p ep Υπολογισ μός Τετραγωνικής Ρίζας σ το Αλγεβρικό Πεδίο Ο υπολογισ μός της τετραγωνικής ρίζας σ το Z είναι η εύκολη περίπτωσ η. Το δύσ κολο είναι να υπολογίσ ουμε τη ρίζα σ το αλγεβρικό πεδίο. Το πρόβλημα είναι ότι δεν μπορούμε να δουλέψουμε σ ε mod n όπως κάναμε σ το Z και επομένως πρέπει να βρούμε κάποιον τρόπο ώσ τε να αποφύγουμε τις πράξεις με αριθμούς πραγματικά γιγαντιαίου μεγέθους. Ο χρόνος που μπορεί να απαιτηθεί για τον υπολογισ μό της τετραγωνικής ρίζας σ το πεδίο αυτό, μπορεί να είναι ακόμη και αυτός που θα κυριαρχεί σ ε όλη την εκτέλεσ η του αλγορίθμου, εκτός και αν εφαρμόσ ουμε τεχνικές που κάνουν χρήσ η του Fast Fourier Transform. Ευτυχώς, ωσ τόσ ο, έχουν αναπτυχθεί τεχνικές οι οποίες μας επιτρέπουν να υπολογίσ ουμε την τετραγωνική ρίζα, σ χετικά γρήγορα, αποφεύγοντας τις πράξεις με μεγάλους αριθμούς. Ο Montgomery έχει αναπτύξει μια μέθοδο [29], η οποία έχει μάλισ τα βελτιωθεί περαιτέρω [30], που χρησ ιμοποιεί lattice reduction και φαίνεται να έχει κυριαρχήσ ει σ ήμερα. Από την άλλη ο Couveignes έχει παρουσ ιάσ ει μια εναλλακτική πρότασ η, η οποία είναι περισ σ ότερο πρακτική και επιτρέπει την εύκολη παραλληλοποίησ ή της [31]. Και η τεχνική αυτή αποφεύγει τις πράξεις με μεγάλους αριθμούς, αλλά έχει το μειονέκτημα ότι απαιτεί ο βαθμός του πολυωνύμου να είναι περιττός. Αυτό είναι λίγο περιορισ τικό από την άποψη ότι πολλές φορές παρατηρείται το φαινόμενο, πολυώνυμα τετάρτου βαθμού να έχουν πολύ καλές ιδιότητες. Ω- σ τόσ ο το κακό δεν είναι μεγάλο, μιας και οι διαφορές σ τον απαιτούμενο χρόνο για την εκτέλεσ η του αλγορίθμου με τα πολυώνυμα αυτά δεν είναι μεγάλες σ ε σ χέσ η με τα πολυώνυμα πέμπτου βαθμού. Στην εργασ ία αυτή υλοποιήθηκε ο αλγόριθμος του Couveignes, ο οποίος και παρουσ ιάζεται σ τη σ υνέχεια. Στην προηγούμενη παράγραφο εξηγήσ αμε τον τρόπο υπολογισ μού της τετραγωνικής ρίζας σ το Z. Ωσ τόσ ο κάτι αντίσ τοιχο δεν μπορεί να χρησ ιμοποιηθεί σ το αλγεβρικό πεδίο και αυτό γιατί για το β της σ χέσ ης 3.14, αν και γνωρίζουμε την παραγοντοποίησ ή του σ ε ιδεώδη (ideal) σ το Z[α], δεν γνωρίζουμε 66
79 3.6. Τετραγωνική Ρίζα (Square Root) τους γεννήτορες για τα πρώτα ιδεώδη των οποίων οι νόρμες είναι το πολύ B. Παρόλα αυτά γνωρίζουμε μια έκφρασ η της νόρμας για το β: N(β) = ±N(f (α)) p fp (3.15) p B όπου τα f p είναι θετικοί ακέραιοι που προκύπτουν από την παραγοντοποίησ η σ ε πρώτα ιδεώδη (prime ideal decomposition) του β. Επιπλέον, αφού β ɛ Z[α], τότε υπάρχει πολυώνυμο B ɛ Z[X] βαθμού το πολύ d 1 τέτοιο ώσ τε β = B(α). Στόχος μας είναι να υπολογίσ ουμε το πολυώνυμο αυτό. Η μέθοδος που προτείνεται σ το [15] είναι να βρούμε αρχικά κάποιον περιττό πρώτο αριθμό q τέτοιο ώσ τε το πολυώνυμο f να παραμένει ανάγωγο (irreducible) modulo q, δηλ. f(x)(mod q) irreducible. Κάθε τέτοιος prime ορίζει το Finite Field F q d. Στη σ υνέχεια υπολογίζουμε το γ mod q πραγματοποιώντας όλους τους πολλαπλασ ιασ μούς της σ χέσ ης 3.14 σ ε modulo q. Θεωρώντας το γ mod q ως σ τοιχείο του Finite Field F q d, υπολογίζουμε τις τετραγωνικές ρίζες του σ τοιχείου αυτού. Για τον υπολογισ μό της τετραγωνικής ρίζας σ το Finite Field που ορίζει ο q, χρησ ιμοποιούμε τον αλγόριθμο των Shanks & Tonelli [32] (βλέπε παράγραφο 3.6.3). Τον τρόπο λειτουργίας του αλγορίθμου αυτού θα τον δούμε παρακάτω. Κατόπιν επιλέγουμε μία από τις δύο ρίζες και την υψώνουμε σ ε τετραγωνική ρίζα modulo q 2, q 4, q 8,..., χρησ ιμοποιώντας την μέθοδο του Newton, μέχρι το modulus να γίνει μεγαλύτερο από το διπλάσ ιο της εκτίμησ ης για τους σ υντελεσ τές του B. Με τον τρόπο αυτό υπολογίζουμε το B. Το ισ οϋπόλοιπο (congruence) B(m) 2 = φ(β) 2 = φ(β 2 ) = φ(γ) = υ 2 mod n μας υποδεικνύει ότι το GCD(B(m) υ, n) έχει αρκετές πιθανότητες να είναι ένας μη - τετριμμένος (non-trivial) παράγοντας του n. Μια από τις δυσ κολίες της παραπάνω μεθόδου είναι το υπερβολικά μεγάλο μέγεθος των αριθμών που προκύπτουν κατά την εκτέλεσ η της μεθόδου του Newton. Ο χρόνος που απαιτείται για τον υπολογισ μό αυτό μπορεί να είναι σ υγκρίσ ιμος με τον σ υνολικό χρόνο εκτέλεσ ης ολόκληρου του αλγορίθμου. Το πρόβλημα είναι ότι οι πολύ μεγάλοι αριθμοί που προκύπτουν μπορούν μόνο σ το τέλος να μειωθούν σ το υπόλοιπο τους modulo n. Η πρότασ η λοιπόν του Couveignes έρχεται να δώσ ει λύσ η σ ε αυτό ακριβώς το πρόβλημα. Προτείνει να δουλέψουμε με αρκετά διαφορετικά moduli m i = q k i i, όπου q i είναι διακριτοί περιττοί πρώτοι αριθμοί, για τους οποίους το πολυώνυμο f να παραμένει ανάγωγο (irreducible) modulo q i. Με άλλα λόγια το πρώτο βήμα για τον υπολογισ μό του x = φ(γ)(mod q) είναι η εύρεσ η ενός σ υνόλου από finite fields τα οποία να είναι σ υμβατά με το Q(θ). Στη σ υνέχεια υπολογίζουμε τις τετραγωνικές ρίζες β i του γ modulo m i (βλέπε [32]) για καθένα από τους primes που βρήκαμε σ το πρώτο βήμα. Κάθε 67
80 3. Ο αλγοριθμος Number Field Sieve τέτοια ρίζα είναι ουσ ιασ τικά ένα πολυώνυμο B i ɛ Z[X], βαθμού το πολύ d 1, τέτοιο ώσ τε το β i = B i (a) να ικανοποιεί τη σ χέσ η βi 2 γ mod m i, και οι σ υντελεσ τές του B i έχουν νόημα μόνο σ ε modulo p i. Αν το β = B(a) δηλώνει, όπως παραπάνω, τη μια από τις δύο τετραγωνικές ρίζες του γ σ το Z[a], τότε έχουμε β i = ±β mod m i, όπου τα πρόσ ημα δυσ τυχώς δεν είναι εκ των προτέρων γνωσ τά. Το πρώτο πρόβλημα που προκύπτει είναι ο υπολογισ μός των προσ ήμων αυτών, ώσ τε να εξασ φαλίσ ουμε ότι τα διάφορα β i που υπολογίζουμε είναι ισ οϋπόλοιπα (congruent) σ την ίδια τετραγωνική ρίζα modulo m i. Κατόπιν, χρησ ιμοποιώντας το Chinese Remainder Theorem, μπορούμε να υ- πολογίσ ουμε τα β = B(a) ɛ Z[a] και φ(β) = (B(m) mod n) ɛ Z/nZ. Ωσ τόσ ο, οι τιμές των σ υντελεσ τών του B, καθώς και η τιμή του B(m) είναι τόσ ο μεγάλες, που είναι θεμιτό να αποφύγουμε τον ρητό υπολογισ μό των τιμών αυτών. Θα δούμε πως από τη σ τιγμή που είναι γνωσ τές οι τιμές των B(m) mod m i, μπορούμε να υπολογίσ ουμε το B(m) modulo n χωρίς να υπολογίσ ουμε τα B και B(m) Περιγραφή και Ανάλυσ η της Μεθόδου Αρχικά θα ασ χοληθούμε με το πρόβλημα του προσ ήμου που αναφέραμε σ την προηγούμενη παράγραφο. Υποθέτουμε πως ο βαθμός της επέκτασ ης (extension) K/Q είναι περιττός. Υπό αυτή την προϋπόθεσ η, ισ χύει πως N( x) = N(x) για κάθε μη μηδενικό σ τοιχείο x του K. Επομένως ακριβώς μία από τις δύο τετραγωνικές ρίζες του γ (3.14) έχουν θετική νόρμα. Εσ τω ότι αυτή είναι η β. Ας υποθέσ ουμε τώρα πως γνωρίζουμε μια τετραγωνική ρίζα β i = B i (α) του γ modulo m i = q k i i για κάθε i, και θέλουμε να δούμε αν β i β mod m i ή β i β mod m i. Την απάντησ η μπορούμε να την πάρουμε δουλεύοντας σ ε modulo q i. Επομένως υπολογίζουμε την νόρμα του (β i mod q i ), θεωρώντας το ως σ τοιχείο του finite field με πληθικό αριθμό (cardinality) qi d. Η νόρμα αυτή είναι η (qi d 1)/(q i 1)-ιοσ τή δύναμη του (β i mod q i ) και ανήκει σ το πεδίο Z/q i Z. Ορισμός 3.5. Η νόρμα ενός σ τοιχείου α σ το Finite Field F q d i ως υπολογίζεται N qi (α) = α q d i 1 q i 1 Τη νόρμα αυτή τη σ υγκρίνουμε με το υπόλοιπο modulo q i της νόρμας του β, το οποίο υπολογίζεται από τη σ χέσ η 3.15, αλλά με το ±N(f (α)) να έχει 68
81 3.6. Τετραγωνική Ρίζα (Square Root) αντικατασ ταθεί από την απόλυτη τιμή (βλέπε σ ημείωσ η 3.1). Οι πολλαπλασ ιασ μοί της σ χέσ ης (3.15) πραγματοποιούνται κατά modulo q i. Αν οι δύο νόρμες είναι ίσ ες, τότε έχουμε β i β mod m i και κρατάμε B i διαφορετικά έχουμε β i β mod m i και αντικαθισ τούμε το B i με B i. Αντικαθισ τώντας το m σ το B i βρίσ κουμε το B(m) modulo m i για κάθε i, ωσ τόσ ο εμείς επιθυμούμε να υπολογίσ ουμε τελικά το B(m) modulo n. Για να κατανοήσ ουμε καλύτερα τον τρόπο με τον οποίο μπορούμε να επιτύχουμε τον υπολογισ μό αυτό, ας δούμε το πρόβλημα από μια πιο γενική σ κοπιά. Στη modular αριθμητική μπορούμε να αναπαρασ τήσ ουμε έναν ακέραιο με τις κλάσ εις υπολοίπων (residue classes) modulo καθέναν ακέραιο m i, όπου κάθε m i ανήκει σ ε ένα σ ύνολο σ το οποίο οι ακέραιοι m i είναι μεταξύ τους πρώτοι. Η βάσ η της modular αριθμητικής είναι το Chinese Remainder Therorem. Θεώρημα 3.1 (Chinese Remainder Theorem). Εσ τω n = n 1 n 2...n m, όπου όλα τα n s είναι μεταξύ τους πρώτα και 0 < i < j m ισ χύει gcd(n i, n j ) = 1, τότε Z n = Zn1 Z n2... Z nm Ας σ κεφτούμε τώρα το ακόλουθο πρόβλημα από την modular αριθμητική. Εσ τω πως έχουμε ένα σ ύνολο από θετικούς ακεραίους m i οι οποίοι είναι μεταξύ τους πρώτοι, έναν θετικό ακέραιο n, έναν ακέραιο x i για κάθε i, με 0 x i m i, και έναν μικρό θετικό πραγματικό αριθμό ɛ, έσ τω ɛ = Επιπλέον έχουμε την πληροφορία πως υπάρχει κάποιος ακέραιος x τέτοιος ώτε x x i mod m i για κάθε i και x < ( 1 ɛ) 2 i m i. Αν υπάρχει τέτοιος ακέραιος x είναι και μοναδικός. Το ζητούμενο είναι να υπολογίσ ουμε την κλάσ η υπολοίπων (residue class) του x mod n. Αν ορίσ ουμε τις ποσ ότητες: M = i m i (3.16) M i = j i m j = M/m i (3.17) a i = 1/M i mod m i, 0 a i < m i (3.18) 69
82 3. Ο αλγοριθμος Number Field Sieve τότε η ποσ ότητα z = i a im i x i είναι ισ οϋπόλοιπη (congruent) με το x mod M. Αν σ τρογγυλοποιήσ ουμε το z/m σ τον ακέραιο r = [ z + 1 M 2], έχουμε x = z rm. Υπάρχει τρόπος να υπολογίσ ουμε το r χωρίς να υπολογίσ ουμε την τιμή του z η οποία μπορεί να είναι υπερβολικά μεγάλος αριθμός. Αυτό το πετυχαίνουμε με την παρακάτω διαδικασ ία. Από τη σ χέσ η x = z rm και την υπόθεσ η πως x < ( 1 ɛ)m σ υνεπάγεται 2 πως το z + 1 δεν είναι ακέραιος για το πολύ ɛ. Επομένως για τον υπολογισ μό M 2 του r αρκεί να υπολογίσ ουμε μια προσ έγγισ η t του z με t z < ɛ. Μια M M τέτοια προσ έγγισ η προκύπτει από τη σ χέσ η: z M = a i x i (3.19) m i i Ολοι οι όροι του αθροίσ ματος είναι μεταξύ 0 και max i m i και επομένως μπορούν να υπολογισ τούν ως πραγματικοί αριθμοί χαμηλής ακρίβειας. Τα παραπάνω οδηγούν σ τον ακόλουθο αλγόριθμο. Να σ ημειώσ ουμε πως με rem(a, b) δηλώνουμε το υπόλοιπο της Ευκλείδειας διαίρεσ ης του a με το b Για κάθε i υπολογίζουμε το rem(m i, m i ) πολλαπλασ ιάζοντας το γινόμενο της σ χέσ ης (3.17) σ ε modulo m i. Κατόπιν υπολογίζουμε τους αριθμούς a i με βάσ η τη σ χέσ η (3.18) και χρήσ η του Εκτεταμένου Ευκλείδειου Αλγορίθμου (Extended Euclidean Algorithm). 2. Υπολογίζουμε το rem(m, n) πολλαπλασ ιάζοντας το γινόμενο της σ χέσ ης (3.16) σ ε modulo n και σ τη σ υνέχεια υπολογίζουμε το rem(m i, n) για κάθε i. Αν gcd(m i, 1) = 1, ο προηγούμενος υπολογισ μός μπορεί να πραγματοποιηθεί διαιρώντας το rem(m, n) κατά m i mod n. 3. Υπολογίζουμε τον αριθμό t, με χρήσ η της σ χέσ ης (3.19) και τον σ τρογγυλοποιούμε σ τον ακέραιο r = [ t + 1 2]. 4. Τέλος παίρνουμε το αποτέλεσ μα που ζητούσ αμε (x mod n): rem(x, n) = rem(( a i rem(m i, n)x i ) r rem(m, n), n). i Για να γίνει πιο ευδιάκριτη αυτή η τελευταία σ χέσ η, οι πράξεις που πραγματοποιούνται είναι ουσ ιασ τικά: x (mod n) = z (mod n) rm (mod n) k = a i x i M i (mod n) rm (mod n). i=1 Από τις παραπάνω σ χέσ εις εύκολα διαπισ τώνει κανείς πως ποτέ δεν κάνουμε πράξεις με αριθμούς μεγαλύτερους από το καθένα moduli.
83 3.6. Τετραγωνική Ρίζα (Square Root) Περίληψη Αλγορίθμου Ας δούμε τώρα μια σ υνοπτική αποτύπωσ η του αλγορίθμου υπολογισ μού της τετραγωνικής ρίζας για τον Number Field Sieve. Αλγόριθμος 3.2 (Υπολογισμός τετραγωνικής ρίζας για τον Number Field Sieve). Εσ τω οι ακέραιοι n και m, ο ακέραιος υ mod n, το πολυώνυμο f και ένα σ ύνολο S από smooth ζεύγη (a, b), όπως αυτά ορίζονται από τον αλγόριθμο Number Field Sieve. Ο παρακάτω αλγόριθμος μας δίνει την παραγοντοποίησ η του n. Είναι πολύ πιθανό το σ υγκεκριμένο σ ύνολο σ τοιχείων του S να μας δώσ ει την τετριμμένη παραγοντοποίησ η (1 n = n). Στην περίπτωσ η αυτή δοκιμάζουμε κάποιο άλλο σ ύνολο από σ τοιχεία του S μέχρι κάποιο να μας δώσ ει την ζητούμενη παραγοντοποίησ η. 1. Αρχικά επιλέγουμε έναν ικανοποιητικό αριθμό από moduli m k i i σ ημείωσ η 3.3). (βλέπε 2. Για κάθε i υπολογίζουμε τους αριθμούς rem(m i, m i ), a i και rem(m i, n), όπως δείξαμε σ την παράγραφο Για κάθε modulus m i, υπολογίζουμε το γινόμενο γ i = f 2 (a bα) mod (f, m i ), (a,b)ɛs καθώς και την τετραγωνική ρίζα β i του γ i (βλέπε παράγραφο 3.6.3). 4. Στη σ υνέχεια, υπολογίζουμε την νόρμα του β i mod q i, έσ τω N 1,i και την νόρμα N 2,i, δηλαδή τη νόρμα της σ χέσ ης (3.15) modulo q i. Αν N 1,i N 2,i, τότε αντικαθισ τούμε το β i με β i. Εσ τω B i ɛz[x] ένα πολυώνυμο βαθμού d 1 για το οποίο β i = B i mod (f, m i ), και υπολογίζουμε το B i (m) (modulo m i ). Το βήμα αυτό πρέπει να πραγματοποιηθεί για κάθε i. 5. Υπολογίζουμε το B(m) mod n από το B i (m) χρησ ιμοποιώντας τις ποσ ότητες που υπολογίσ αμε σ το βήμα 2 (βλέπε παράγραφο ). 6. Παίρνουμε σ αν έξοδο το gcd(b(m) υ, n) Χρήσ ιμες Λεπτομέρειες Σημείωση 3.1. Για τον υπολογισ μό της νόρμας σ τη σ χέσ η (3.15), αξίζει να σ ημειωθεί πως η ποσ ότητα ±N(f (α)) είναι ίσ η με disc(f), σ τη περίπτωσ η που χρησ ιμοποιούμε monic πολυώνυμο. 71
84 3. Ο αλγοριθμος Number Field Sieve Σημείωση 3.2. Ολα τα παραπάνω ισ χύουν σ την περίπτωσ η που έχουμε monic πολυώνυμα. Αν παρόλα αυτά χρησ ιμοποιούμε non-monic πολυώνυμα, τότε υπάρχουν κάποιες μικρές αλλαγές που πρέπει να γίνουν, ώσ τε ο αλγόριθμος να λειτουργεί σ ωσ τά. Αν το non-monic πολυώνυμο που χρησ ιμοποιούμε είναι το f, τότε για τον υπολογισ μό της τετραγωνικής ρίζας θα χρησ ιμοποιούμε το monic πολυώνυμο g(x) = f(x/c d )c d 1 d, όπου c d είναι ο κύριος σ υντελεσ τής (leading coefficient) του πολυωνύμου f. Επιπλέον αλλάζει και το πεδίο αριθμών (number field), το οποίο τώρα γίνεται: Q[α]/f(α) = Q[ω]/g(ω). Εδώ το α μπορεί να θεωρηθεί ως μια ρίζα του f σ το πεδίο των μιγαδικών και το ω = α c d, ως μια ρίζα του g. Παρόλα αυτά ούτε το α ούτε το g υπολογίζονται ποτέ ρητά. Επιπλέον για καθένα από τους πρώτους αριθμούς m i που βρήκαμε ότι ορίζουν ένα finite field υπολογίζουμε αντί της σ χέσ ης (3.14) την ελαφρώς τροποποιημένη: γ i = g (ω) 2 (a,b) (c da bω) mod m i. Η νόρμα της σ χέσ ης (3.15) γίνεται πλέον N i = disc(g)c (d 1)#S/2 d το πλήθος των smooth σ τοιχείων. p pfp mod m i για κάθε i, όπου S είναι Σημείωση 3.3. Για να λειτουργήσ ει ο αλγόριθμος πρέπει σ το πρώτο σ τάδιο να βρούμε αρκετούς πρώτους αριθμούς που να ορίζουν κάποιο finite field. Γενικά οι σ υντελεσ τές του γ είναι σ υγκρίσ ιμοι σ ε μέγεθος με το γινόμενο (ca) #S, όπου το c αντικατοπτρίζει τους σ υντελεσ τές του g και το a τις τιμές των a και b σ τις σ χέσ εις που χρησ ιμοποιούμε. Επομένως οι σ υντελεσ τές του β είναι σ υγκρίσ ιμοι σ ε μέγεθος με το γινόμενο (ca) #S/2. Για να λειτουργήσ ει ο αλγόριθμος πρέπει το γινόμενο P = m i των πρώτων αριθμών που επιλέξαμε, να είναι μεγαλύτερο από το γινόμενο αυτό. Γενικά για να αποφύγουμε τις πράξεις γινομένων με τόσ ο μεγάλους αριθμούς, επιλέγουμε το πλήθος των πρώτων α- ριθμών εμπειρικά και βασ ιζόμενοι σ το μέγεθος καθενός από αυτούς. Αν δεν πάρουμε αποτέλεσ μα, τότε αυξάνουμε είτε το μέγεθός τους, είτε εναλλακτικά μπορούμε να επιλέξουμε μεγαλύτερο πλήθος από πρώτους αριθμούς του ίδιου μεγέθους. Αξίζει να σ ημειωθεί πως δεν επιλέγουμε από την αρχή υπερβολικά μεγάλο αριθμό από πρώτους και αυτό γιατί θα αυξήσ ουμε, πιθανά, υπερβολικά τον χρόνο εκτέλεσ ης του αλγορίθμου. Επίσ ης είναι καλό, οι πρώτοι που χρησ ιμοποιούμε να χωράνε σ ε ένα «word» του σ υσ τήματος Εύρεσ η Τετραγωνικής Ρίζας σ το Finite Field F q d - Αλγόριθμος Shanks & Tonelli Η μέθοδος των Shanks και Tonelli για τον υπολογισ μό τετραγωνικών ριζών ακεραίων σ ε modulo p, μπορεί να εφαρμοσ τεί αυτομάτως και για τον υπολογισ μό της τετραγωνικής ρίζας σ το finite field με q d σ τοιχεία, για q πρώτο 72
85 3.6. Τετραγωνική Ρίζα (Square Root) και d θετικό ακέραιο. Αυτό ισ χύει γιατί οι βασ ικές υποθέσ εις και λειτουργίες του αλγορίθμου αυτού βρίσ κουν εφαρμογή σ ε κάθε κυκλικό γκρουπ (cyclic group) άρτιας τάξης και η πολλαπλασ ιασ τική ομάδα (multiplicative group) F q με q 1 μη μηδενικά σ τοιχεία οποιουδήποτε finite field με q περιττό, ικανοποιεί τις απαιτήσ εις του αλγορίθμου αυτού. Πριν αρχίσ ουμε την περιγραφή του αλγορίθμου, πρέπει να δούμε ένα βασ ικό θεώρημα και το λήμμα που προκύπτει από αυτό, γιατί θα είναι πολύ χρήσ ιμα για την κατανόησ η του αλγορίθμου. Θεώρημα 3.2 (Fermat - Euler - Lagrange). Εσ τω a και m δύο ακέραιοι που είναι μεταξύ τους πρώτοι, με m 0, και έσ τω p πρώτος αριθμός με a και p επίσ ης μεταξύ τους πρώτοι. Τότε: 1. υπάρχει πάντα η ord m (a). 2. ( Fermat s Little Theorem) a p 1 1 (mod p) και επομένως ord p (a) p Αν j = ord m (a) και k ακέραιος, τότε ord m (a k ) j. 4. Αν ord p (a) = j και b a p 1 r (mod p), τότε ab 1 (mod p), και το b ονομάζεται αντίσ τροφος του a (mod p). 5. (Κριτήριο του Euler) a (p 1)/2 1 ή 1 (mod p) αναλόγως με το αν το a έχει ή δεν έχει τετραγωνική ρίζα (mod p). Αν υποθέσ ουμε πως το κριτήριο του Euler μας λέει πως το a έχει μια τετραγωνική ρίζα και το p είναι πρώτος αριθμός, με p 1 = s 2 e, όπου s περιττός και e θετικός, τότε το x = a (s+1)/2 είναι σ χεδόν η τετραγωνική ρίζα του a (mod p), αφού x 2 a s+1 a s a (mod p) και αν a s 1 (mod p), τότε το x είναι η τετραγωνική ρίζα. Ο Shanks ισ χυρίζεται ότι αυτό είναι σ ωσ τό σ τα 2/3 των περιπτώσ εων. Για παράδειγμα αν p = 23 και a = 3, τότε p 1 = 11 2 και επομένως s = 11. Επομένως έχουμε: ( 3 (s+1)/2 ) 2 = ( 3 6 ) 2 = 3 12 = = (mod 23). Η σ ημασ ία του παραπάνω είναι ότι σ την περίπτωσ η που το a (s+1)/2 δεν είναι τετραγωνική ρίζα, τότε αυτό σ υμβαίνει για μόλις ένα μικρό παράγοντα (fudge 73
86 3. Ο αλγοριθμος Number Field Sieve factor). Ο αλγόριθμος των Shanks & Tonelli ενημερώνει σ υνεχώς τον παράγοντα αυτό, μέχρι τελικά να προκύψει τετραγωνική ρίζα. Πριν παρουσ ιάσ ουμε τον αλγόριθμο, χρειαζόμασ τε ένα ακόμη λήμμα, το οποίο και θα αποδείξουμε. Λήμμα 3.1. Αν p είναι πρώτος αριθμός και y 2 1 (mod p), τότε y ±1 (mod p). Απόδειξη. Ισ χύει p y 2 1 και επομένως p (y 1)(y + 1). Επιπλέον ισ χύει πως αν κάποιος πρώτος αριθμός διαιρεί ένα γινόμενο, τότε διαιρεί έναν από τους δύο παράγοντες του γινομένου αυτού. Άρα λοιπόν είτε p y 1 οπότε y 1 (mod p), είτε p y + 1 οπότε y 1 (mod p). Τώρα μπορούμε να παρουσ ιάσ ουμε τα βήματα του αλγορίθμου των Shanks & Tonelli. Αλγόριθμος 3.3 (Shanks & Tonelli). 1. Αρχίζουμε με έναν ακέραιο a και έναν πρώτο p > 2, με a και p να είναι μεταξύ τους πρώτοι. Υ- πολογίζουμε το a (p 1)/2 (mod p). Το μικρό θεώρημα του Fermat μας λέει πως a p 1 1 (mod p) και από το λήμμα (3.1) σ υνεπάγεται πως a (p 1)/2 1 ή 1 (mod p) IF a (p 1)/2 1 (mod p), τότε από το κριτήριο του Euler προκύπτει πως το a δεν έχει καμία τετραγωνική ρίζα (mod p) και επομένως η εκτέλεσ η τερματίζει. ( EXIT - NO SQRT). 3. IF a (p 1)/2 1 (mod p), τότε μπορούμε να σ υνεχίσ ουμε τη διαδικασ ία. Βρίσ κουμε το p 1 = s 2 e, με s περιττό και e θετικός ακέραιος. 4. Βρίσ κουμε έναν αριθμό n τέτοιο ώσ τε n (p 1)/2 1 (mod p). Ναι όντως, ψάχνουμε κάποιον αριθμό που να μην έχει τετραγωνική ρίζα (mod p). Για να βρούμε έναν τέτοιο μπορούμε να ελέγξουμε τους α- ριθμούς ακολουθιακά ξεκινώντας με n = 2... Η διαδικασ ία αυτή δεν απαιτεί σ ημαντικό χρόνο. 5. Αρχικοποιούμε τις παρακάτω μεταβλητές (όλες οι ισ οτιμίες είναι σ ε mod p): x a (s+1)/2 b a s g n s r = e
87 3.6. Τετραγωνική Ρίζα (Square Root) Τα παραπάνω σ ημαίνουν κατά σ ειρά: αʹ) Αρχικά μαντεύουμε μια τετραγωνική ρίζα. βʹ) Στη σ υνέχεια μαντεύουμε και μια τιμή για τον fudge factor. γʹ) Οι δυνάμεις του g ενημερώνουν τόσ ο το x όσ ο και το b. δʹ) Ο εκθέτης θα μειώνεται με κάθε ενημέρωσ η του αλγορίθμου. Αξίζει να σ ημειωθεί πως x 2 ba (mod p). 6. Τώρα έχουμε b 2r 1 = a s 2r 1 = a s 2r /2 = a (p 1)/2 1 (mod p), επομένως από το (3) του θεωρήματος (3.2), έχουμε πως υπάρχει ελάχισ τος ακέραιος m τέτοιος ώσ τε 0 m r 1 και b 2m 1 (mod p). Υ- πολογίζουμε το m αυτό, πραγματοποιώντας διαδοχικές υψώσ εις σ το τετράγωνο και μειώσ εις κατά (mod p). Με άλλα λόγια θέλουμε να βρούμε ένα m του οποίου η τάξη να είναι ord p (b) = 2 m. 7. Αν m = 0, τελειώσ αμε. Επισ τρέφουμε την τιμή του x και τερματίζουμε με επιτυχία ( RETURN SUCCESS). 8. Αν m > 0, τότε ενημερώνουμε ( UPDATE) τις μεταβλητές: αντικαθιστούμε το x με x g 2r m 1 αντικαθιστούμε το b με b g 2r m αντικαθιστούμε το g με g 2r m αντικαθιστούμε το r με m Ο Shanks παρατήρησ ε ότι ο αλγόριθμος θα τερματίσ ει, μιας και η παλιά τιμή του b έχει τάξη του 2 m, ενώ η καινούρια έχει τάξη το πολύ 2 m 1. Ο λόγος είναι ο ακόλουθος. Εσ τω y = b 2m 1. Τώρα y 2 1 (mod p), από τον ορισ μό της τάξης, αλλά y 1 (mod p). Επομένως από το λήμμα (3.1) έχουμε πως y 1 (mod p). Ομοίως και g 2r 1 1 (mod p). Άρα τελικά (b g 2r m) 2 m 1 b 2m 1 g 2r m+m 1 b 2m 1 g 2r (mod p). Επομένως, ord p (b g 2r m ) 2 m 1, όπως ισ χυρισ τήκαμε. Από τα παραπάνω φαίνεται πως το m μειώνεται σ ε κάθε επανάληψη του αλγορίθμου. 75
88 3. Ο αλγοριθμος Number Field Sieve 9. Επισ τρέφουμε σ το βήμα 6 με την νέα τιμή του r, η οποία ισ ούται με την παλιά τιμή του m. Οπως δείξαμε, το r και το m μειώνεται με κάθε επανάληψη του αλγορίθμου. Τελικά το m πρέπει να ισ ούται με μηδέν και όταν αυτό σ υμβεί τότε το βήμα 7 μας λέει ότι πρέπει να σ ταματήσ ουμε, μιας και έχουμε πάρει το επιθυμητό αποτέλεσ μα. Τι σ υμβαίνει όμως με την νέα τιμή του x Η παλιά του τιμή ικανοποιεί τη σ χέσ η x 2 ba (mod p), ενώ πολλαπλασ ιάζοντας την παλιά τιμή του x με g 2r m 1 παίρνουμε τα ισ οϋπόλοιπα ( xg 2r m 1) 2 = x 2 g 2r m bag 2r m bg 2r m a (mod p). Επομένως πολλαπλασ ιάζοντας το x με g 2r m 1, αντικαθισ τούμε αντικαθισ τούμε την παλιά τιμή του b σ το x 2 ba (mod p) με την νέα τιμή του b. Καθώς η τάξη της νέας αυτής τιμής είναι αυσ τηρά μικρότερη από την προηγούμενη τιμή, αντιλαμβανόμασ τε πως είμασ τε σ ε καλό δρόμο. 76
89 Κ ε φ α λ α ι ο 4 Εκτενες Παραδειγμα Για να γίνουν πιο κατανοητά όσ α περιγράφονται σ το κεφάλαιο 3, είναι χρήσ ιμο να δούμε ένα αναλυτικό παράδειγμα σ το οποίο θα αποσ αφηνισ τούν όλα τα επιμέρους σ τάδια εκτέλεσ ης του αλγορίθμου. Το παράδειγμα που θα παρουσ ιασ τεί σ το κεφάλαιο αυτό είναι το παράδειγμα που παρουσ ιάζει ο Matthew Briggs σ το [16]. Στο παράδειγμα αυτό θα γίνει παραγοντοποίησ η του με χρήσ η του αλγορίθμου NFS. Προφανώς για αριθμούς αυτού του μεγέθους δεν χρησ ιμοποιούμε τον αλγόριθμο αυτό, ω- σ τόσ ο θα τον χρησ ιμοποιήσ ουμε για το παράδειγμά μας γιατί το μέγεθός του μας διευκολύνει σ το να διατηρήσ ουμε μικρά factor bases και οι πράξεις που απαιτούνται είναι αρκετά εύκολες, ώσ τε να παρουσ ιασ τούν αναλυτικά. Στο παράδειγμα αυτό θα χρησ ιμοποιηθεί monic πολυώνυμο. Οι αλλαγές άλλωσ τε για τα non-monic πολυώνυμα δεν είναι σ ημαντικές και έχουν σ ημειωθεί λεπτομερώς κατά την ανάλυσ η. Εύκολα λοιπόν μπορεί κάποιος να εφαρμόσ ει non-monic πολυώνυμα από τη σ τιγμή που θα έχει γίνει απολύτως ξεκάθαρη η διαδικασ ία παραγοντοποίησ ης. Επιπλέον σ το παράδειγμα θα χρησ ιμοποιήσ ουμε τα πολυώνυμα που χρησ ιμοποιεί και ο Briggs, δηλαδή το a + bm ως το γραμμικό και το a + bα ως το ομογενές, σ ε αντίθεσ η με τα a bm και a bα που χρησ ιμοποιούμε σ την μέχρι τώρα ανάλυσ ή μας. 77
90 4. Εκτενες Παραδειγμα 4.1 Επιλογή Πολυωνύμου Ο πρώτος παράγοντας που πρέπει να αποφασ ίσ ουμε για την παραγοντοποίησ η του n = είναι ο βαθμός d του πολυωνύμου. Εχουμε ήδη αναφέρει την απαίτησ η ο βαθμός του πολυωνύμου να είναι περιττός (βλέπε παραγράφους και ), καθώς και τον βαθμό των πολυωνύμων ανάλογα με το μέγεθος του προς παραγοντοποίησ η ακεραίου (βλέπε παράγραφο 3.1). Με βάσ η τα παραπάνω λοιπόν επιλέγουμε ο βαθμός του πολυωνύμου να είναι ίσ ος με d = 3. Κατόπιν υπολογίζουμε την τιμή του m η οποία είναι ίσ η με m n 1/d = /3 35. Αν και η τιμή αυτή θα μπορούσ ε να χρησ ιμοποιηθεί για την παραγοντοποίησ η του n, ωσ τόσ ο εμείς θα χρησ ιμοποιήσ ουμε την τιμή m = 31 η οποία είναι το ίδιο καλή με τη διαφορά ότι μας δίνει ένα πολυώνυμο το οποίο έχει καλύτερη μορφή για το παράδειγμά μας. Το πολυώνυμο για m = 35 είναι το f(x) = x 3 + x x + 33, ενώ για το m = 31 το πολυώνυμο που προκύπτει είναι το f(x) = x x x + 8, το οποίο είναι καλύτερο για την παρουσ ίασ η του αλγορίθμου. Για να δούμε πώς προκύπτει θα κάνουμε χρήσ η της μεθόδου base-m (βλέπε παράγραφο 3.1.1). Ετσ ι για το n = έχουμε: = άρα το πολυώνυμο που παίρνουμε για m = 31 είναι το f(x) = x 3 +15x 2 +29x+ 8 για το οποίο ισ χύει πως f(m) 0 mod n, αφού το f(x) κατασ κευάσ τηκε ώσ τε να ισ χύει f(31) = Η Rational Factor Base Η rational factor base αποτελείται από τους πρώτους 2, 3, 5, 7,... μέχρι κάποιο όριο το οποίο σ υνήθως το βρίσ κουμε ελέγχοντας το κατά πόσ ο παραμένει ομαλή η τιμή a + bm για διάφορα ζεύγη (a, b). Η επιλογή του ορίου αυτού είναι σ ε αρκετά μεγάλο βαθμό εμπειρική και όσ ο περισ σ ότερη εμπειρία έχει αυτός που εκτελεί τον αλγόριθμο, τόσ ο καλύτερη επιλογή τιμής θα κάνει. Στο παράδειγμά μας θα χρησ ιμοποιήσ ουμε όλους τους πρώτους μέχρι το 29. Για να υπάρχει ομοιομορφία και ίδια αντιμετώπισ η της rational factor base με την algebraic, αποθηκεύουμε τα ζεύγη (m (mod p), p). Επομένως το μόνο που πρέπει να κάνουμε για να δημιουργήσ ουμε την rational factor base είναι να υπολογίσ ουμε το m modulo καθένα πρώτο p μέχρι το όριο που έχουμε ορίσ ει. Στον πίνακα (4.1) φαίνονται αναλυτικά όλα τα σ τοιχεία της rational factor base που χρησ ιμοποιούμε σ το παράδειγμά μας. Ας δούμε πώς προκύπτει ένα από αυτά. 78
91 4.3. Η Algebraic Factor Base Για p = 2 έχουμε: m (mod p) = 31 (mod 2) = 1 Άρα το ζεύγος που παίρνουμε για την βάσ η μας είναι το (m (mod p), p) = (1, 2) Ομοίως σ υμπληρώνουμε και τα υπόλοιπα σ τοιχεία του πίνακα. (m (mod p), p) (m (mod p), p) (m (mod p), p) (1, 2) (9, 11) (8, 23) (1, 3) (5, 13) (2, 29) (1, 5) (14, 17) (3, 7) (12, 19) Πίνακας 4.1: Rational Factor Base για n= Η Algebraic Factor Base Η algebraic factor base αποτελείται από πρώτου βαθμού πρώτα ιδεώδη του Z[θ] τα οποία αναπαρίσ τανται ως ζεύγη (r, p), όπου p ένας πρώτος αριθμός και r μια ρίζα του πολυωνύμου f(x) = x x x + 8 με σ υντελεσ τές σ το Z/pZ. Ο υπολογισ μός λοιπόν της algebraic factor base επαφίεται σ την εύρεσ η των ριζών του πολυωνύμου f(x) modulo 2, 3, 5, 7,... κτλ. Στο παράδειγμά μας βρίσ κουμε τις ρίζες αυτές μέχρι p = 103, χρησ ιμοποιώντας κάποιον αλγόριθμο εύρεσ ης ριζών ενός πολυωνύμου modulo p, για παράδειγμα τον berlekamp ή τον CanZass ο οποίος είναι αρκετά αποδοτικός. Τα σ τοιχεία της βάσ ης αυτής φαίνονται σ τον πίνακα Η Quadratic Character Base Μιας και τα σ τοιχεία της quadratic character base είναι ουσ ιασ τικά ένα σ ύνολο από πρώτου βαθμού prime ideals του Z[θ] που δεν εμφανίζονται σ το algebraic factor base, για τη δημιουργία της μπορούμε απλά να βρούμε ρίζες του f(x) modulo q με q πρώτο και αυσ τηρά μεγαλύτερο από τον μέγισ το πρώτο της algebraic factor base. Ο τρόπος υπολογισ μού είναι ίδιος με αυτόν της algebraic factor base. Τα σ τοιχεία της βάσ ης αυτής φαίνονται σ τον πίνακα
92 4. Εκτενες Παραδειγμα (r, p) (r, p) (r, p) (r, p) (0, 2) (19, 41) (44, 67) (62, 89) (6, 7) (13, 43) (50, 73) (73, 89) (13, 17) (1, 53) (23, 79) (28, 97) (11, 23) (46, 61) (47, 79) (87, 101) (26, 29) (2, 67) (73, 79) (47, 103) (18, 31) (6, 67) (28, 89) Πίνακας 4.2: Algebraic Factor Base για n=45113 (r, p) (r, p) (r, p) (4, 107) (80, 107) (99, 109) (8, 107) (52, 109) Πίνακας 4.3: Quadratic Character Base για n= Το Κοσ κίνισ μα (Sieving) Για το παράδειγμα αυτό επιλέχθηκε το διάσ τημα του φιλτραρίσ ματος να είναι το 1000 < α < 1000 και για b που ξεκινάει από 1 και αυξάνει με βήμα 1 κάθε φορά (1, 2, 3, 4,... ) μέχρι να σ υγκεντρώσ ουμε τελικά περισ σ ότερα από 39 (a, b) ζεύγη που να είναι ταυτόχρονα a + bm και a + bθ smooth. Με το να βρούμε περισ σ ότερα από 39 smooth ζεύγη εξασ φαλίζουμε πως θα έχουμε τελικά γραμμική εξάρτησ η μεταξύ των δυαδικών διανυσ μάτων (binary vectors) που σ χετίζονται με τα ζεύγη αυτά, κάτι το οποίο οδηγεί σ ε τέλεια τετράγωνα σ το Z και το Z [θ]. Γενικά, το να ξέρουμε κάθε φορά πόσ α τουλάχισ τον smooth ζεύγη απαιτούνται είναι πολύ απλό. Αν για παράδειγμα υπάρχουν k πρώτοι αριθμοί σ το rational factor base, l πρώτου βαθμού πρώτα ιδεώδη του Z [θ] σ το algebraic factor base και m πρώτου βαθμού πρώτα ιδεώδη σ το quadratic character base, τότε τελικά απαιτούνται τουλάχισ τον 1 + k + l + m δυαδικά ψηφία για να ισ χύει η παραπάνω σ υνθήκη. Το ένα επιπλέον δυαδικό ψηφίο που φαίνεται σ τον τύπο είναι αυτό που χρησ ιμοποιείται για να καταδείξει το πρόσ ημο του a + bm. Επομένως με απλή πρόσ θεσ η του αριθμού των σ τοιχείων των πινάκων 4.1, 4.2 και 4.3 προκύπτει το ζητούμενο πλήθος για smooth ζεύγη, που για το παράδειγμά μας είναι = 39. Μια απλή τεχνική για την πραγματοποίησ η της διαδικασ ίας του φιλτραρίσ ματος είναι να δημιουργήσ ουμε σ τη μνήμη δύο πίνακες, έναν για τα a + bm και έναν για τα N(a + bθ). Καθένας από τους πίνακες αυτούς θα αποτελείται από 80
93 4.5. Το Κοσ κίνισ μα (Sieving) 2000 εγγραφές, μια για κάθε πιθανή τιμή του a με δεδομένη τιμή του b. Η γενική διαδικασ ία είναι πως αρχικά αποθηκεύουμε σ ε κάθε κελί του πίνακα τις τιμές a + bm για το Z και τις τιμές N(a + bθ) = ( b) d f( a ) για το Z [θ] b για δεδομένο b. Κατόπιν από τον τύπο a = bm + kp υπολογίζουμε για κάθε p τις τιμές του a και επομένως και τις θέσ εις του πίνακα, των οποίων οι τιμές διαιρούνται ακριβώς με τον p. Κάνουμε τη διαίρεσ η και αποθηκεύουμε το πηλίκο σ το κελί (διαιρούμε με το ίδιο p μέχρι να μην διαιρείται περαιτέρω ακριβώς). Κατόπιν κάνουμε το ίδιο και για τον επόμενο πρώτο p. Τελικά οι θέσ εις σ τις οποίες υπάρχουν 1 είναι αυτές που διαιρέθηκαν πλήρως με όλους τους πρώτους αριθμούς του του factor base και άρα είναι smooth. Η διαδικασ ία που μόλις περιγράψαμε μπορεί να επιταχυνθεί αρκετά αντικαθισ τώντας τις χρονοβόρες διαιρέσ εις με τις ταχύτερες αφαιρέσ εις. Για να το πετύχουμε αυτό αρκεί να θυμηθούμε από τη θεμελιώδη θεωρία των λογαρίθμων πως το να διαιρούμε τον αριθμό a + bm με έναν πρώτο αριθμό p είναι το ίδιο με το να αφαιρούμε το ln(p) από το ln(a + bm). Άρα για δεδομένο b και πρώτο p, μπορούμε να αφαιρέσ ουμε το ln(p) από το κελί του a = bm + kp για kɛz με u < a < u. Αφού κάνουμε το ίδιο για όλους τους πρώτους του factor base μας, ο πίνακας ελέγχεται για τιμές 0 = ln(1) αντί για 1. Οι θέσ εις αυτές είναι πολύ πιθανό να αντισ τοιχούν σ ε τιμές του a+bm οι οποίες είναι smooth. Ο τελικός έλεγχος γίνεται με δοκιμασ τικές διαιρέσ εις πάνω σ τη factor base μας. Λέμε ότι είναι πιθανό και όχι βέβαιο γιατί σ ε μερικές περιπτώσ εις τα σ φάλματα σ τρογγυλοποίησ ης κατά την προσ έγγισ η των λογαρίθμων μπορεί τελικά να μην μας οδηγήσ ουν σ ε smooth αριθμό ως προς το φαςτορ βασε που χρησ ιμοποιούμε. Επανερχόμενοι λοιπόν σ το παράδειγμά μας ας δούμε ένα παράδειγμα. Οι τιμές του a για τις οποίες το a + bm διαιρείται από τον πρώτο p = 5 για b = 7 είναι της μορφής a = 7m + 5k για k ɛ Z και 1000 < a < Από τον πίνακα 4.1 έχουμε πως m 1 (mod 5) και επομένως το a είναι της μορφής a = 7 + 5k για k ɛ Z. Στις θέσ εις του πίνακα για τιμές του a = 997, 992,..., 12, 7, 2, 3, 8, 13,..., 993, 998 προσ θέτουμε σ την τιμή a + bm την ποσ ότητα ln(5). Η διαδικασ ία αυτή επαναλαμβάνεται για όλα τα ζεύγη του πίνακα 4.1. Αντίσ τοιχη διαδικασ ία ακολουθείται για τα ζεύγη (r, p) του πίνακα 4.2 και τον πίνακα που δημιουργήσ αμε για τις τιμές N(a + bθ). Κάθε πίνακας ελέγχεται τελικά για θέσ εις με θετικές τιμές και για τις θέσ εις αυτές οι τιμές a + bm και N(a + bθ) ελέγχονται με δοκιμασ τικές διαιρέσ εις για να δούμε αν είναι ή όχι smooth. Η παραπάνω διαδικασ ία επαναλαμβάνεται για την επόμενη τιμή του b. Μετά από αρκετό φιλτράρισ μα, βρίσ κουμε 40 ζεύγη (a, b) με a + bm και a + bθ smooth, όπως φαίνεται σ τον ακόλουθο πίνακα (4.4). 81
94 4. Εκτενες Παραδειγμα (a, b) (a, b) (a, b) (a, b) (a, b) (a, b) (a, b) ( 73, 1) ( 2, 1) ( 1, 1) (2, 1) (3, 1) (4, 1) (8, 1) (13, 1) (14, 1) (15, 1) (32, 1) (56, 1) (61, 1) (104, 1) (116, 1) ( 5, 2) (3, 2) (25, 2) (33, 2) ( 8, 3) (2, 3) (17, 3) (19, 4) (48, 5) (54, 5) (313, 5) ( 43, 6) ( 8, 7) (11, 7) (38, 7) (44, 9) (4, 11) (119, 11) (856, 11) (536, 15) (5, 17) (5, 31) (9, 32) ( 202, 43) (24, 55) Πίνακας 4.4: (a, b) ζεύγη που προκύπτουν μετά το φιλτράρισ μα 4.6 Κατασ κευή του Πίνακα Για να βρούμε το σ ύνολο U, το οποίο περιέχει σ τοιχεία της μορφής a + bm και των οποίων το γινόμενο είναι τέλειο τετράγωνο σ το Z[θ], πρέπει πρώτα να κατασ κευάσ ουμε τον πίνακα, σ τον οποίο κάθε σ τήλη αντισ τοιχεί και σ ε ένα ζεύγος (a, b) από αυτά που βρήκαμε σ την παράγραφο 4.5, με a+bm και a+bθ smooth. Από τη σ τιγμή που έχουμε 10 πρώτους σ το rational factor base, 23 πρώτου βαθμού πρώτα ιδεώδη σ το algebraic factor base και 5 σ το quadratic character base, κάθε σ τήλη του πίνακα θα αποτελείται από 39 καταχωρήσ εις ή αλλιώς ο πίνακας θα αποτελείται από 39 γραμμές. Η μια επιπλέον είναι αυτή που περιέχει το bit για το πρόσ ημο του a + bm. Για να δούμε πώς ακριβώς δημιουργείται ο πίνακας, θα υπολογίσ ουμε τις σ τήλες για το ζευγάρι ( 8, 3) του πίνακα 4.4. Η πρώτη σ τήλη θα περιέχει την τιμή 0 γιατί το πρόσ ημο του a + bm = = 85 είναι θετικό. Οι επόμενες 10 σ τήλες σ ε αυτό το διάνυσ μα καθορίζονται από την παραγοντοποίησ η του a + bm = 85 πάνω σ το rational factor base: 85 = όπου όλοι οι πρώτοι του rational factor base παρουσ ιάζονται για να είναι πιο κατανοητή η διαδικασ ία. Επομένως το διάνυσ μα για το ζεύγος ( 8, 3) περιέχει 10 καταχωρήσ εις οι οποίες προκύπτουν από την παραπάνω παραγοντοποίησ η παίρνοντας τους εκθέτες modulo 2: (0, 0, 1, 0, 0, 0, 1, 0, 0, 0) Στη σ υνέχεια υπολογίζεται η νόρμα του ( 8, 3) και παραγοντοποιείται πάνω σ τους πρώτους που εμφανίζονται σ τα πρώτου βαθμού πρώτα ιδεώδη του algebraic factor base. Για τη νόρμα ισ χύει πως N(a + bθ) = ( b) d f( a b ) και επομένως η νόρμα ενός σ τοιχείου a+bθ με d = 3 και f(x) = x 3 +15x 2 +29x+8 μπορεί να υπολογισ τεί ως: 82
95 4.6. Κατασ κευή του Πίνακα ( a N(a + bθ) =( b) 3 3 b 3 ) + 15 a2 b 29a 2 b + 8 =a 3 15a 2 b + 29ab 2 8b 3. Άρα η νόρμα του 8 + 3θ είναι N( 8 + 3θ) = ( 8) = 5696 και η παραγοντοποίησ η σ ε πρώτους από το algebraic factor base μας δίνει 5696 = Στο σ ημείο αυτό αξίζει να σ ημειώσ ουμε πως υπάρχουν μέχρι και d ζεύγη (r, p) σ το algebraic factor base τα οποία μοιράζονται τον ίδιο πρώτο p, αλλά μόνο για ένα από τα ζεύγη αυτά ισ χύει a br (mod p). Αυτό το (r, p) ζεύγος είναι υπεύθυνο για το μέτρημα του αριθμού των διαιρέσ εων του N(a+bθ) από τον πρώτο p. Στο παράδειγμά μας για το 8 + 3θ υπάρχουν τρία πρώτου βαθμού πρώτα ιδεώδη σ τον πίνακα 4.2 τα οποία έχουν το 89 ως πρώτο αριθμό σ το ζεύγος, τα οποία είναι κατά σ ειρά τα (28, 89), (62, 89) και (73, 89). Ωσ τόσ ο mod 89 και επομένως το υπεύθυνο ζεύγος για τον εκθέτη του 89 είναι το (62, 89). Συνδυάζοντας αυτό το ζεύγος με το ζεύγος που περιέχει τον πρώτο 2, δηλαδή το (0, 2) προκύπτουν τα παρακάτω 23 bits σ το διάνυσ μα για το ζευγάρι ( 8, 3): (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0) Κάθε θέσ η του διανύσ ματος αντισ τοιχεί και σ ε έναν πρώτο από αυτούς που περιέχονται σ τα ζεύγη του πίνακα 4.2. Για να γίνει πιο κατανοητό αυτό θα παραθέσ ουμε τους πρώτους του algebraic factor base που εμφανίζονται σ την παραγοντοποίησ η αναλυτικά σ ε modulo 2 αναπαράσ τασ η: Οπως βλέπουμε με 1 σ τον εκθέτη έχει σ ημειωθεί ο πρώτος που αντισ τοιχεί σ το υπεύθυνο για αυτόν ζευγάρι που είναι το δεύτερο κατά σ ειρά, δηλαδή το (62, 89). Για να υπολογίσ ουμε τώρα το quadratic character για το 8 + 3θ που αντισ τοιχεί σ το πρώτου βαθμού πρώτο ιδεώδες που αναπαρίσ ταται από το ζεύγος (s, q) πρέπει να υπολογίσ ουμε το Legendre symbol ( 8+3s ). Αν πάρουμε το q (80, 107) για παράδειγμα από το quadratic character base έχουμε: ( ) =
96 4. Εκτενες Παραδειγμα Στην περίπτωσ η αυτή βάζουμε σ το διάνυσ μα, σ τη θέσ η που αντισ τοιχεί σ το ζευγάρι αυτό, την τιμή 1. Διαφορετικά αν το αποτέλεσ μα ήταν 1 θα αποθηκεύαμε 0. Υπολογίζοντας το Legendre symbol και για τα υπόλοιπα ζεύγη της βάσ ης έχουμε τα τελευταία 5 bits του διανύσ ματος τα οποία είναι: (1, 0, 0, 1, 0). Τελικά το διάνυσ μα που πήραμε από την παραπάνω διαδικασ ία είναι το: (0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0) T Η ίδια διαδικασ ία επαναλαμβάνεται και για τα υπόλοιπα ζεύγη (a, b) του πίνακα 4.4 και τελικά παράγεται ο δυαδικός πίνακας B διασ τάσ εων Εύρεσ η Γραμμικών Εξαρτήσ εων Για να βρούμε μια σ χέσ η μεταξύ των δυαδικών διανυσ μάτων που αντισ τοιχούν σ τα ζεύγη (a, b) του πίνακα 4.4, δηλαδή να δούμε το γινόμενο ποιών ζευγαριών μας δίνει τέλειο τετράγωνο, μπορούμε να χρησ ιμοποιήσ ουμε Gaussian Elimination πάνω σ τον πίνακα B που κατασ κευάσ αμε σ την προηγούμενη παράγραφο (4.6). Ενα σ ύνολο ζευγαριών (a, b) των οποίων τα δυαδικά διανύσ ματα εμφανίζονται σ ε εξάρτησ η φαίνονται σ τον πίνακα 4.5. (a, b) (a, b) (a, b) (a, b) (a, b) ( 1, 1) (104, 1) ( 8, 3) ( 43, 6) (856, 11) (3, 1) (3, 2) (48, 5) ( 8, 7) (13, 1) (25, 2) (54, 5) (11, 7) Πίνακας 4.5: (a, b) ζεύγη που προκύπτουν μετά το φιλτράρισ μα 4.8 Υπολογισ μός Τετραγωνικής Ρίζας Για τον υπολογισ μό της τετραγωνικής ρίζας θα εφαρμόσ ουμε τον αλγόριθμο του Couveignes [31] ο οποίος περιγράφεται σ την παράγραφο 3.6. Συνοπτικα θα υπενθυμήσ ουμε τα βήματα του αλγορίθμου. Αρχικά πρέπει να βρούμε ένα σ ύνολο από finite fields τα οποία να είναι σ υμβατά με τοπ Q(θ). Καθένα τέτοιο πεδίο ορίζεται από έναν διακριτό πρώτο 84
97 4.8. Υπολογισ μός Τετραγωνικής Ρίζας αριθμό q i για τον οποίο το πολυώνυμο f παραμένει irreducible modulo q i. Στη σ υνέχεια υπολογίζουμε τις τετραγωνικές ρίζες β i του γ modulo m i, ό- που m i = q k i i, για καθένα από τους πρώτους που βρήκαμε σ το πρώτο βήμα, δηλαδή αυτούς που ορίζουν τα finite fields που χρησ ιμοποιούμε. Κάθε τέτοια ρίζα είναι ένα πολυώνυμο B i ɛz[x], βαθμού το πολύ d 1, τέτοιο ώσ τε το β i = B i (a) ικανοποιεί τη σ χέσ η βi 2 = γ mod m i και οι σ υντελεσ τές του B i έχουν νόημα μόνο σ ε modulo q i. Αν τώρα το β = B(a) δηλώνει μια από τις δύο τετραγωνικές ρίζες του γ σ το Z[a] τότε έχουμε β i = ±β mod m i και πρέπει να βρούμε τα πρόσ ημα ώσ τε να είμασ τε σ ίγουροι ότι τα β i που υπολογίζουμε είναι ισ οϋπόλοιπα σ την ίδια τετραγωνική ρίζα modulo m. Για να βρούμε τα πρόσ ημα ελέγχουμε τις νόρμες των ριζών όπως αυτές περιγράφονται σ την παράγραφο Τέλος χρησ ιμοποιώντας το Chinese Remainder Theorem, μπορούμε να υ- πολογίσ ουμε το B(m) modulo n και να πάρουμε την τετραγωνική ρίζα σ το αλγεβρικό πεδίο. Παρακάτω θα δούμε αναλυτικά την εκτέλεσ η της διαδικασ ίας για το παράδειγμά μας Εύρεσ η Κατάλληλων Finite Fields Το πρώτο βήμα για τον υπολογισ μό της τετραγωνικής ρίζας είπαμε ήδη πως είναι η εύρεσ η ενός σ υνόλου από κατάλληλα finite fields, το οποίο ουσ ιασ τικά ανάγεται σ την εύρεσ η κατάλληλου μεγέθους πρώτων αριθμών p για τους ο- ποίους η f(x) παραμένει irreducible modulo p. Αρχικά επιλέγουμε τον πρώτο p = 9929 και ελέγχουμε την f(x) = x x x + 8 για να διαπισ τώσ ουμε αν είναι irreducible modulo Από τον έλεγχο προκύπτει πως τελικά ισ χύει η ζητούμενη προϋπόθεσ η και επομένως βρήκαμε το πρώτο κατάλληλο finite field το οποίο είναι το F Με την ίδια διαδικασ ία βρίσ κουμε πως και οι πρώτοι 9851 και 9907 ορίζουν κατάλληλα πεδία. Επομένως για την διαδικασ ία υπολογισ μού της τετραγωνικής ρίζας θα χρησ ιμοποιήσ ουμε τα finite fields που ορίζονται από τους πρώτους που φαίνονται σ τον πίνακα 4.6. p 0 p 1 p Πίνακας 4.6: Πρώτοι που ορίζουν κατάλληλα finite fields F p 3 i Τετραγωνικές Ρίζες σ το Finite Field Για να δούμε πώς υπολογίζουμε τετραγωνικές ρίζες σ το finite field θα χρησ ιμοποιήσ ουμε τον πρώτο p = 9929 και το πεδίο F p 3 που αυτό ορίζει, όπου 85
98 4. Εκτενες Παραδειγμα τα σ τοιχεία του αναπαρίσ τανται ως πολυώνυμα σ το θ p με θ p να είναι ρίζα του f(x) σ το splitting field του f(x) = x x x + 8 πάνω σ το Z/pZ. Θα σ υμβολίζουμε το F p 3 με F p (θ p ). Αρχικά παίρνουμε q = p 3 με q 1 = 2 r s όπου r = 3 και s = p3 1 = 2 r = Αρχικά πρέπει να βρούμε ένα quadratic non-residue 2 3 σ το F p (θ p ), κάτι αρκετά εύκολο μιας και ακριβώς τα μισ ά σ τοιχεία του ικανοποιούν την ιδιότητα αυτή. Με απευθείας έλεγχο βρίσ κουμε πως το θ p + 1 είναι non-residue μιας και ισ χύει πως: (θ p + 1) (mod 9929) Το Sylow 2-subgroup S 8 του F p (θ p ) μπορεί να αναπαρασ ταθεί από το σ ύνολο S 8 = { 1, (θ p + 1) s, (θ p + 1) 2s, (θ p + 1) 3s,..., (θ p + 1) 7s}. Στη σ υνέχεια πρέπει να υπολογίσ ουμε το σ τοιχείο δ αλλά σ το πεδίο F p (θ p ), ως εξής: δ p = 2027θ 2 p θ p f (θ p ) 2 δ (mod p i ) = = f (θ p ) 2 ( 1+θ p ) (3+θ p ) (13+θ p ) (104+θ p ) (3+2θ p ) (25+2θ p ) ( 8+3θ p ) (48 + 5θ p ) (54 + 5θ p ) ( θ p ) ( 8 + 7θ p ) (11 + 7θ p ) ( θ p ) Ο αλγόριθμος υπολογισ μού τετραγωνικής ρίζας σ το finite field του Shanks & Tonelli είναι επαναληπτικός και αποφεύγει τον ακριβή υπολογισ μό όλων των σ τοιχείων του σ υνόλου S 8. Αρχικοποιούμε το λ 0 ως λ 0 = 1 δ s mod 9929 και το ω 0 ως ω 0 = 2124θ 2 p θ p δ (s+1)/2. Τέλος η μεταβλητή m τίθεται σ την τιμή 1 μιας και η τάξη του λ 0 σ το F p 3 είναι 2. Η επαναληπτική διαδιακσ ία αρχίζει με τον υπολογισ μό των λ 1 και ω 1 από τις τιμές των λ 0 και ω 0. Εσ τω ζ = (θ p + 1) s 1273 mod 9929 και επομένως και λ 1 λ 0 ζ 2r m (mod9929) ω 1 = ω 0 ζ 2r m 1 ω ω θ 2 p θ p Από τη σ τιγμή που η τιμή του λ 1 = 1 ισ χύει πως το ω 1 είναι τετραγωνική ρίζα του δ. Προφανώς η δεύτερη ρίζα είναι η ω 1 η οποία είναι η 3402θp θ p Το ποια από τις δύο θα χρησ ιμοποιήσ ουμε εξαρτάται από τον υπολογισ μό των νορμών. Στο παράδειγμά μας οι τετραγωνικές ρίζες που πρέπει να χρησ ιμοποιήσ ουμε φαίνονται σ τον πίνακα
99 4.8. Υπολογισ μός Τετραγωνικής Ρίζας i = 0 i = 1 i = 2 root 7462 θp 2 i θ pi θp 2 i θ pi θp 2 i θ pi χ i a i p i P i Πίνακας 4.7: Τετραγωνικές ρίζες του δ σ τα Finite Fields Εφαρμογή του Chinese Remainder Theorem Από τη σ τιγμή που γνωρίζουμε τις τετραγωνικές ρίζες του δ σ τα finite fields που ορίζουν οι πρώτοι αριθμοί που επιλέξαμε, μπορούμε να υπολογίσ ουμε τελικά πολύ εύκολα την τετραγωνική ρίζα σ το αλγεβρικό πεδίο χρησ ιμοποιώντας το Chinese Remainder Theorem. Η τιμή του M (βλέπε παράγραφο σ χέσ η 3.16) μπορεί να υπολογισ τεί ως M = = Ολοι οι υπολογισ μοί γίνονται κατά modulo n, και έτσ ι αποφεύγουμε τις πράξεις με υπερβολικά μεγάλους αριθμούς. Αρχικά πρέπει να υπολογίσ ουμε την τιμή του r από τη σ χέσ η Επομένως έχουμε: z M = 2 i=0 a i x i m i = = Στρογγυλοποιώντας την τιμή αυτή παίρνουμε τελικά πως r = Η τιμή του x (mod n) μπορεί τώρα ναυπολογισ τεί ακολουθώντας τη διαδικασ ία της παραγράφου ως εξής: x (mod n) 2 i=0 a ix i M i (mod n) rm (mod n) (a 0 x 0 m 1 m 2 ) (mod n) + (a 1 x 1 m 0 m 1 ) (mod n) +(a 2 x 2 m 0 m 1 ) (mod n) (rm 0 m 1 m 2 ) (mod n) ( mod 45113) ( mod 45113) ( mod 45113) ( mod 45113) ( ) ( mod 45113) ( mod 45113) και επομένως πήραμε το επιθυμητό αποτέλεσ μα. Οπως εύκολα μπορεί κανείς να διαπισ τώσ ει, σ τους παραπάνω υπολογισ μούς δεν υπολογίζεται πουθενά το 87
100 4. Εκτενες Παραδειγμα η ακριβής τιμή του x ή του z, και κανένα ενδιάμεσ ο αποτέλεσ μα δεν είναι μεγαλύτερο από n. 4.9 Ολοκλήρωσ η Διαδικασ ίας Ο πολλαπλασ ιασ μός των τιμών a + bm για τα διάφορα (a, b) ζεύγη του πίνακα 4.5, μας δίνει το ακόλουθο τετράγωνο σ το Z: = = ( ) (3 + 31) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) (4.1) Η τιμή που μόλις υπολογίσ αμε πρέπει να πολλαπλασ ιασ τεί με f (m) 2 = ( ) 2 = Άρα τελικά, από τη σ χέσ η y 2 = f (m) 2 δ, έχουμε: y 2 = ( mod 45113) = Επομένως y = και από τους υπολογισ μούς της προηγούμενης παραγράφου βρήκαμε πως x = ( mod 45113), άρα αφού από τον επιμορφισ μό του φ έχουμε πως τα x 2 και y 2 είναι αντίσ τοιχα κατά modulo n, τότε ισ χύει πως: (mod 45113). Μπορούμε πλέον να πάρουμε την διαφορά των τετραγώνων και να βρούμε μια μη - τετριμμένη παραγοντοποίησ η του n. Ισ χύει πως = ( ) ( ) και άρα gcd( , 45113) = 197 και gcd( , 45113) = 229. Επομένως η παραγοντοποίησ η που θέλαμε για τον n = είναι η =
101 Κ ε φ α λ α ι ο 5 Λεπτομερειες Υλοποιησ ης Στα πλαίσ ια της διπλωματικής αυτής εργασ ίας αναπτύχθηκε από την αρχή μια έκδοσ η του γενικού αλγορίθμου number field sieve (GNFS). Την υλοποίησ η αυτή την ονομάσ αμε kmgnfs και είναι διαθέσ ιμη σ τον ισ τότοπο Η υλοποίησ ή μας αποτελείται από δύο βασ ικές εκδόσ εις, μια ακολουθιακή και μια παράλληλη. Στον ισ τότοπο είναι ελεύθερα διαθέσ ιμες και οι δύο εκδόσ εις. Η ανάπτυξη πραγματοποιήθηκε σ ε σ υνεργασ ία με τον Νικόλαο Καραπάνο, ο οποίος σ τα πλαίσ ια της μεταπτυχιακής του εργασ ίας [26] μελέτησ ε τον ακολουθιακό αλγόριθμο. Η ανάπτυξη της παράλληλης έκδοσ ης του αλγορίθμου είναι το κομμάτι που αντισ τοιχεί σ την παρούσ α εργασ ία. Το αποτέλεσ μά της είναι η δυνατότητα εκτέλεσ ης του αλγορίθμου σ ε κατανεμημένο περιβάλλον, είτε αυτό πρόκειται για τους νέους πολυπύρηνους επεξεργασ τές, είτε για cluster υπολογισ τών, είτε ακόμη και για supercomputer. Κατά την υλοποίησ η είχαμε την δυνατότητα να χρησ ιμοποιήσ ουμε ένα supercomputer, το οποίο βρίσ κεται σ το Πανεπισ τήμιο Ιωαννίνων και για αυτό πρέπει να ευχαρισ τήσ ουμε τον καθηγητή κ. Ιωάννη Σταματίου. Για λεπτομέρειες που αφορούν το supercomputer, μπορείτε να ανατρέξετε σ το κεφάλαιο 6, ενώ για τις παραγοντοποιήσ εις που πραγματοποιήσ αμε με τη βοήθειά του σ το Παράρτημα Ά. Στο κεφάλαιο αυτό θα γίνει μια παρουσ ίασ η του αλγορίθμου που υλοποιήσ αμε. Θα εξηγήσ ουμε την δομή του kmgnfs, αλλά και τον τρόπο χρήσ ης και λειτουργίας τόσ ο της ακολουθιακής, όσ ο και της παράλληλης έκδοσ ης. Σε περίπτωσ η που κάποιος επιθυμεί να επεκτείνει οποιοδήποτε μέρος του αλ- 89
102 5. Λεπτομερειες Υλοποιησ ης γορίθμου, πρέπει απαραιτήτως να διαβάσ ει το κεφάλαιο αυτό μιας και θα τον γλιτώσ ει από πολύ κόπο. 5.1 Το Περιβάλλον Ανάπτυξης του kmgnfs Η ανάπτυξη του kmgnfs επιλέχθηκε να πραγματοποιηθεί σ ε C++. Στην επιλογή αυτή μας οδήγησ ε το γεγονός ότι η γλώσ σ α αυτή έχει πολύ καλή απόδοσ η τόσ ο σ ε επιδόσ εις, όσ ο και σ ε απαιτούμενη μνήμη. Και τα δύο αυτά σ τοιχεία είναι πολύ σ ημαντικά για την σ υνολική απόδοσ η του αλγορίθμου. Επιπλέον χρησ ιμοποιώντας C++ είχαμε τη δυνατότητα να αξιοποιήσ ουμε κάποιες βιβλιοθήκες όπως η NTL, η GnuMP, η LEDA ή Boost, αλλά και το MPI και OpenMP. Στη σ υνέχεια θα δούμε περισ σ ότερες λεπτομέρειες για καθεμιά από αυτές. Η βασ ική βιβλιοθήκη που χρησ ιμοποιούμε κατά κόρον σ την υλοποίησ ή μας είναι η NTL 1. Η βιβλιοθήκη αυτή παρέχει τις απαραίτητες δομές δεδομένων και αλγορίθμους για το χειρισ μό αριθμών αυθαίρετης ακρίβειας (arbitrary precision numbers and arithmetic) και για την υλοποίησ η αριθμητικής πολυωνύμων και αριθμητικής σ ε finite fields. Η NTL μας διευκολύνει γιατί έχει αρκετά καλές υλοποιήσ εις των καλύτερων αλγορίθμων για: Μεγάλους ακεραίους αριθμούς και αριθμητική κινητής υποδιασ τολής αυθαίρετης ακρίβειας. Αριθμητική πολυωνύμων, τόσ ο σ το πεδίο των ακεραίων όσ ο και σ ε φινιτε φιελδς. Παραγοντοποίησ η πολυωνύμων, έλεγχο αναγωγιμότητας (irreducibility testing), υπολογισ μό νορμών και πολλά άλλα. Βασ ική γραμμική άλγεβρα είτε σ το πεδίο των ακεραίων είτε σ ε φινιτε φιελδς, αλλά και με αριθμούς κινητής υποδιασ τολής αυθαίρετης ακρίβειας. Ολα τα παραπάνω είναι απαραίτητα για την υλοποίησ η του αλγορίθμου GNFS, με αποτέλεσ μα η χρήσ η της NTL να διευκολύνει σ ε μεγάλο βαθμό την υλοποίησ ή μας. Σε αντίθετη περίπτωσ η θα έπρεπε να υλοποιήσ ουμε από την αρχή
103 5.1. Το Περιβάλλον Ανάπτυξης του kmgnfs όλους τους αλγορίθμους και τις δομές που χρειάζονται για τον αλγόριθμο. Ενα βασ ικό της πλεονέκτημα είναι ότι πρόκειται για μια βιβλιοθήκη η οποία έχει πολύ καλή υποσ τήριξη και βελτιώνεται σ υνεχώς, τόσ ο σ ε επίπεδο απόδοσ ης, όσ ο και σ το πλήθος των αλγορίθμων που ενσ ωματώνονται σ ε αυτή. Είναι προφανές πως όταν έχει κανείς να επιλέξει μεταξύ αρκετών αλγορίθμων που πραγματοποιούν τον ίδιο υπολογισ μό, τότε είναι αρκετά εύκολο να επιλεχθεί ο καλύτερος κατά περίπτωσ η αλγόριθμος, κάτι που σ υνεπάγεται τελικά καλύτερο σ υνολικό αποτέλεσ μα σ την τελική υλοποίησ η. Ωσ τόσ ο, το βασ ικότερο πλεονέκτημα της χρήσ ης της NTL για την υλοποίησ ή μας είναι πως επιτρέπει να χρησ ιμοποιήσ ουμε σ ε σ υνδυασ μό με την GnuMP 2, η οποία είναι η ταχύτερη δημόσ ια βιβλιοθήκη αυθαίρετης ακρίβειας. Για την ακρίβεια μπορούμε να ορίσ ουμε σ την NTL να χρησ ιμοποιεί ως underline αναπαράσ τασ η την GnuMP, αποκομίζοντας έτσ ι τα οφέλη και των δύο βιβλιοθηκών, την ευχρησ τία και τους αλγορίθμους της NTL και την απόδοσ η της GnuMP. Η GnuMP, όπως ήδη είπαμε, είναι η ταχύτερη βιβλιοθήκη ανοιχτού κώδικα για αναπαράσ τασ η αριθμών αυθαίρετης ακρίβειας (arbitrary precision arithmetic). Πρακτικά δεν υπάρχει κάποιο όριο σ τους αριθμούς που μπορεί να αναπαρασ τήσ ει. Ο μόνος περιορισ μός υπεισ έρχεται από την διαθέσ ιμη μνήμη του σ υσ τήματος σ το οποίο εκτελείται το πρόγραμμα που κάνει χρήσ η της GMP. Η βιβλιοθήκη αυτή έχει χρησ ιμοποιηθεί σ ε αρκετές εφαρμογές κρυπτογραφίας, ασ φάλειας διαδικτύου, αλλά και σ ε αρκετά ερευνητικά προγράμματα σ τα οποία απαιτούνται αναπαράσ τασ η και πράξεις με μεγάλους αριθμούς. Από τη χρήσ η αυτή έχει αναδειχθεί η αξιοπισ τία και η απόδοσ ή της και επομένως είναι περισ σ ότερο από θεμιτή η χρήσ η της σ την υλοποίησ ή μας. Επιπλεόν μπορεί να εγκατασ ταθεί και να τρέξει σ ε πολλά Unix-type σ υσ τήματα όπως GNU/Linux, Solaris, HP-UX, Mac OS X/Darwin, BSD, AIX, κ.α. Μάλισ τα από εμάς έχει ήδη δοκιμασ τεί σ ε linux, FreeBSD και Mac OS X, σ το οποίο και έγινε η ανάπτυξη του kmgnfs. Η εγκατάσ τασ η τόσ ο της NTL, όσ ο και της GMP, αλλά και η μεταξύ τους σ ύνδεσ η και αλληλεπίδρασ η είναι αρκετά εύκολη και περιγράφεται με όλες τις λεπτομέρειες σ τους ισ τοτόπους των βιβλιοθηκών. Περιγραφή του τρόπου χρήσ ης της NTL σ ε σ υνδυασ μό με την GMP για περιβάλλον Mac OS X υπάρχει και σ το Για την ανάπτυξη της κατανεμημένης έκδοσ ης χρησ ιμοποιήθηκε το Message Passing Interface (MPI) 3. Μέσ ω της βιβλιοθήκης αυτής δίνεται η δυνατότητα πολλά υπολογισ τικά σ υσ τήματα να επικοινωνήσ ουν μεταξύ τους. Χρησ ιμοποιείται τόσ ο σ ε clusters υπολογισ τών, όσ ο και σ ε supercomputers και σ ήμερα αποτελεί το επικρατέσ τερο εργαλείο για High Performance Comput
104 5. Λεπτομερειες Υλοποιησ ης ing (HPC ), σ ε σ υνεργασ ία με το OpenMp 4. Το MPI αποτελεί ουσ ιασ τικά μια διεπαφή (interface), δηλαδή έναν τρόπο ανταλλαγής μηνυμάτων μεταξύ των επικοινωνούντων υπολογισ τικών σ υσ τημάτων, μαζί με ένα σ ύνολο πρωτοκόλλων και σ ημασ ιολογικών προδιαγραφών του πώς πρέπει να σ υμπεριφέρονται τα επιμέρους τμήματα του σ τις διάφορες υλοποιήσ εις. Το MPI δεν παρέχεται από κάποιον σ υγκεκριμένο κατασ κευασ τή, αλλά αποτελεί το de facto standard για την επικοινωνία των διεργασ ιών που αποτελούν ένα παράλληλο πρόγραμμα το οποίο εκτελείται σ ε σ ύσ τημα κατανεμημένης μνήμης. Το πρώτο πρότυπο (MPI-1 ) δεν έκανε καθόλου πρόβλεψη για κοινή διαμοιραζόμενη μνήμη, ωσ τόσ ο η επόμενη έκδοσ ή του (MPI-2 ) έχει ενσ ωματώσ ει κάποιες λίγες αρχές του μοντέλου της κοινής μνήμης. Παρόλα αυτά, σ πάνια βλέπουμε προγράμματα που χρησ ιμοποιούν το MPI να εκτελούνται σ ε σ υσ τήματα με διμοιραζόμενη μνήμη. Ο σ χεδιασ μός εφαρμογών που ακολουθούν τις αρχές του MPI πλεονεκτεί έναντι των NUMA 5 (Non-Uniform Memory Access) αρχιτεκτονικών καθώς το MPI εφαρμόζει την αρχή της τοπικότητας αναφοράς της μνήμης (memory locality). Εχει παρατηρηθεί ότι οι καλύτερες, ως προς την απόδοσ η, υλοποιήσ εις κάνουν χρήσ η του MPI σ ε σ υνδυασ μό με το OpenMP, το οποίο αποτελεί μάλλον τον πιο εύχρησ το τρόπο για παραλληλοποίησ η μιας εφαρμογής που να κάνει χρήσ η κοινής μνήμης. Περισ σ ότερες πληροφορίες για το OpenMP θα δούμε σ ε επόμενη παράγραφο. Περισ σ ότερες λεπτομέρειες για το τρόπο λειτουργίας του MPI, αλλά και παραδείγματα κώδικα, θα δούμε και σ τη σ υνέχεια του κεφαλαίου. Το kmgnfs χρησ ιμοποιεί ως επί το πλείσ τον standard C++ και μπορεί να εγκατασ ταθεί και να εκτελεσ τεί σ ε οποιοδήποτε Unix-like σ ύσ τημα με χρήσ η του γνωσ τού GNU Compiler 6 (g++). Ο μοναδικός λόγος για τον οποίο δεν μπορεί να εγκατασ ταθεί σ ε περιβάλλον Windows, είναι ότι το κομμάτι του κώδικα που προσ πελαύνει τους καταλόγους του σ υσ τήματος αρχείων του υπολογισ τή είναι σ υμβατό μόνο με Unix-like σ υσ τήματα (χρησ ιμοποιεί σ υναρτήσ εις όπως η opendir() κτλ) και είναι ουσ ιασ τικά το μοναδικό κομμάτι όπου δεν χρησ ιμοποιείται standard C++. Η μετατροπή του σ υγκεκριμένου κώδικα, έτσ ι ώσ τε να υποσ τηρίζει και Windows λειτουργικά σ υσ τήματα είναι απλή διαδικασ ία. Προς το παρόν, λοιπόν το kmgnfs μπορεί να μεταφρασ τεί και να εκτελεσ τεί μόνο σ ε Unix-like λειτουργικά σ υσ τήματα. Συγκεκριμένα, έχει δοκιμασ τεί επιτυχώς σ ε Linux, FreeBSD και Mac OS X λειτουργικά σ υσ τήματα. Η μετατροπή του ωσ τόσ ο για εκτέλεσ η σ ε περιβάλλον Windows μάλλον δεν έχει καθόλου αξία για την παράλληλη έκδοσ η, μιας και τα περισ σ ότερα clusters και supercomputers δεν τρέχουν το λειτουργικό της Microsoft, αλλά κάποια Unix-Like διανομή. Επομένως ο παράγοντας αυτός μας οδήγησ ε
105 5.2. Επιπλέον Βιβλιοθήκες σ ε αυτή την επιλογή. Τέλος είναι επιθυμία μας, οποιαδήποτε βελτίωσ η της ακολουθιακής έκδοσ ης να μπορεί σ χετικά εύκολα να μεταφερθεί και σ την παράλληλη, μιας και τελικά για μεγάλες παραγοντοποιήσ εις η παράλληλη έκδοσ η είναι μονόδρομος, οπότε σ υσ τήνουμε να διατηρηθεί η ομοιομορφία που υπάρχει μέχρι τώρα. Η πλατφόρμα ανάπτυξης (IDE) που χρησ ιμοποιήσ αμε είναι το γνωσ τό δωρεάν περιβάλλον ανάπτυξης Netbeans 6. Ο κώδικας που διανέμετε δωρεάν από το τόσ ο για την ακολουθιακή έκδοσ η, όσ ο και για την κατανεμημένη είναι ένα σ ύνολο από Netbeans Projects τα οποία μπορούν εύκολα να φορτωθούν από το Netbeans. Αν κάποιος ωσ τόσ ο δεν θέλει να εγκατασ τήσ ει ή να χρησ ιμοποιήσ ει το IDE αυτό, μπορεί να πραγματοποιήσ ει την ανάπτυξη σ ε όποιο περιβάλλον ανάπτυξης επιθυμεί, μιας και σ ε κάθε project υπάρχουν διαθέσ ιμα τα αντίσ τοιχα makefiles 7 για μεταγλώττισ η από τη γραμμή εντολών. Εκτελώντας σ την γραμμή εντολών την εντολή make help εμφανίζεται βοήθεια με τα διαθέσ ιμα make targets. 5.2 Επιπλέον Βιβλιοθήκες Εκτός από τις βιβλιοθήκες που αναφέραμε σ την προηγούμενη παράγραφο, υ- πάρχουν και μερικές ακόμη, οι οποίες αν και δε χρησ ιμοποιήθηκαν σ την μέχρι τώρα υλοποίησ η, είναι σ ίγουρο πως θα χρησ ιμοποιηθούν σ ε επόμενα σ τάδια ανάπτυξης, όπου θα υλοποιούνται οι βέλτισ τες τεχνικές και οι καλύτεροι αλγόριθμοι, ώσ τε να γίνει και το kmgnfs μια από τις state-of-the-art υλοποιήσ εις, τόσ ο σ την ακολουθιακή του, όσ ο και σ την παράλληλα έκδοσ ή του. Εδώ θα γίνει αναφορά σ ε αυτές τις βιβλιοθήκες μιας και αποτέλεσ αν ένας λόγος ο οποίος μας οδήγησ ε σ την επιλογή της γλώσ σ ας προγραμματισ μού. Για να βελτιωθεί το σ τάδιο του κοσ κινίσ ματος πρέπει να εφαρμοσ τεί η τεχνική των large primes. Για την υλοποίησ ή του θα πρέπει να γίνει χρήσ η γράφων. Εδώ μας παρέχονται δύο βασ ικές λύσ εις. Είτε θα χρησ ιμοποιήσ ουμε την βιβλιοθήκη LEDA 8, η οποία όμως δεν είναι ελεύθερα διαθέσ ιμη, είτε θα χρησ ιμοποιήσ ουμε την Boost C++ 9, η οποία διατίθεται δωρεάν υπό Boost Software License. Σε πολλές περιπτώσ εις μάλισ τα είναι και ελαφρά ταχύτερη από την LEDA
106 5. Λεπτομερειες Υλοποιησ ης Σημείωσ η: Γενικά επιθυμούμε η υλοποίησ η του kmgnfs να είναι ελεύθερα διαθέσ ιμη, οπότε η λύσ η της Boost C++ είναι μάλλον η προτεινόμενη. Η Boost C++ αποτελεί ουσ ιασ τικά ένα σ ύνολο από βιβλιοθήκες οι οποίες, όπως ήδη αναφέραμε, διατίθενται υπό την Boost Software άδεια 10. Οι βιβλιοθήκες της σ τοχεύουν σ ε ένα ευρύ σ ύνολο C++ χρησ τών και εφαρμογών και για να επιτευχθεί η αποδοτικότητά τους, αλλά παράλληλα και η απαιτούμενη ευελιξία, γίνεται ευρεία χρήσ η των templates 11. Μια λίσ τα με τις διαθέσ ιμες βιβλιοθήκες της μπορεί να βρει κανείς, εκτός από την επίσ ημη ισ τοσ ελίδα της, και σ την wikipedia σ το Αναφέραμε και σ την προηγούμενη παράγραφο πως σ ήμερα, για High Performance Computing υλοποιήσ εις, φαίνεται να επικρατεί ο σ υνδυασ μός του MPI με το OpenMP. Στην μέχρι τώρα παράλληλη υλοποίησ η έχουμε κάνει χρήσ η μόνο του MPI. Το OpenMP είναι ένα API το οποίο αποτελεί την καλύτερη πρότασ η για παράλληλλο προγραμματισ μό με χρήσ η κοινής μνήμης, σ ε προγράμματα που αναπτύσ σ ονται σ ε C, C++ ή Fortran. Πρόκειται ουσ ιασ τικά για ένα σ ύνολο από οδηγίες προς τον μεταγλωττισ τή, για τον τρόπο με τον οποίο θα πραγματοποιήσ ει την ζητούμενη παραλληλοποίησ η του τμήματος του κώδικα σ το οποίο αναφέρονται. Ουσ ιασ τικά πρόκειται για μια υλοποίησ η πολυνηματισ μού (multithreading), όπου ένα κύριο νήμα (thread) παράγει ένα σ ύνολο από νήματα παιδιά για να εκτελεσ τεί μια σ υγκεκριμένη λειτουργία παράλληλα, κατά τη διάρκεια της οποίας κάθε νήμα θα χρησ ιμοποιεί και διαφορετικό επεξεργασ τή, πάντα όμως θα αναφέρονται σ την ίδια κοινή μνήμη. Μέχρι τώρα δεν το έχουμε χρησ ιμοποιήσ ει, μιας και η NTL φαίνεται να μην το επιτρέπει καθώς δεν είναι thread-safe. Ωσ τόσ ο είναι σ χεδόν σ ίγουρο πως κατά την υλοποίησ η των υπόλοιπων αλγορίθμων και τεχνικών θα υπάρχουν σ ημεία του κώδικα τα οποία θα μπορούν να επιταχυνθούν με τη χρήσ η του OpenMP. Πρέπει βέβαια σ ε κάθε περίπτωσ η να έχει εξασ φαλισ τεί ότι ενδείκνυται η χρήσ η του. Αξίζει σ το σ ημείο αυτό να σ ημειώσ ουμε πως η απόλυτη παραλληλοποίησ η ενός προγράμματος δεν είναι πάντοτε η καλύτερη λύσ η μιας και κάθε φορά που παραλληλοποιούμε ένα τμήμα εισ άγεται και ένα σ χετικό overhead σ την σ υνολική διαδικασ ία λόγω του κόσ τους επικοινωνίας, διαμοιρασ μού και σ υγκέντρωσ ης των αποτελεσ μάτων. Επομένως πριν αποφασ ίσ ουμε αν πρέπει να παραλληλοποιήσ ουμε κάποιο τμήμα της εφαρμογής μας, πρέπει να είμασ τε σ ίγουροι ότι θα έχουμε τελικά όφελος από αυτήν
107 5.3. Δομή του kmgnfs 5.3 Δομή του kmgnfs Κατά τη φάσ η σ χεδιασ μού του αλγορίθμου αποφασ ίσ τηκε κάθε βήμα του να είναι διακριτό και μπορεί να εκτελεσ τεί αυτόνομα από τα υπόλοιπα. Το μόνο που απαιτείται, προφανώς, είναι να υπάρχουν τα κατάλληλα αρχεία εισ όδου, τα οποία προκύπτουν ως έξοδο από τα προηγούμενα βήματα. Με άλλα λόγια κάθε βήμα του αλγορίθμου αποτελεί και ένα ανεξάρτητο πρόγραμμα. Στην επιλογή αυτή μας οδήγησ ε η σ κέψη πως πρέπει κάθε βήμα του αλγορίθμου να μπορεί να βελτιωθεί ανεξάρτητα από τα υπόλοιπα. Με τον τρόπο αυτό μπορεί ο καθένας να αφοσ ιωθεί σ την εξέλιξη οποιουδήποτε τμήματος του αλγορίθμου και να ενσ ωματώσ ει τις βελτιώσ εις του σ τον αλγόριθμο. Είναι επομένως πολύ εύκολη η επέκτασ η του αλγορίθμου από οποιονδήποτε ερευνητή. Ολα τα επιμέρους προγράμματα χρησ ιμοποιούν κοινές δομές, επομένως μπορεί να αξιοποιηθεί η κληρονομικότητα που προσ φέρει η C++ και να γίνει επαναχρησ ιμοποίησ η του κώδικα, πράγμα που διευκολύνει ακόμη περισ σ ότερο τον ερευνητή, μιας και θα χρειασ τεί να παρέμβει σ ε λιγότερα σ ημεία του κώδικα, για την ενδεχόμενη επέκτασ η-βελτίωσ η που θα επιχειρήσ ει. Με βάσ η τα προηγούμενα, το kmgnfs αποτελείται από επτά Netbeans projects, τα οποία είναι τα: GNFS_Common_Library GNFS_IO_Files GNFS_Initialization GNFS_Factor_Bases_Setup GNFS_Sieving GNFS_Matrix_Construction GNFS_Square_Root Ας δούμε αναλυτικά τι είναι καθένα από τα προθεςτς αυτά. Το GNFS_Common_Library αποτελεί τη ραχοκοκκαλιά του kmgnfs, καθώς περιέχει το μεγαλύτερο μέρος του κώδικα. Παράγει μια σ τατική βιβλιοθήκη (static library), την οποία χρησ ιμοποιούν όλα τα υπόλοιπα projects-προγράμματα. Οποιοσ δήποτε αλγόριθμος υλοποιηθεί, θα ενσ ωματωθεί σ το αρχείο που αντισ τοιχεί σ το σ υγκεκριμένο βήμα. Ο χρήσ της του kmgnfs θα μπορεί να επιλέξει ποιούς αλγορίθμους θα χρησ ιμοποιεί κατά την εκτέλεσ η του αλγορίθμου. 95
108 5. Λεπτομερειες Υλοποιησ ης Το GNFS_IO_Files δεν περιέχει πηγαίο κώδικα και δεν παράγει κάποιο εκτελέσ ιμο. Απλώς περιέχει φακέλους σ τους οποίους υπάρχουν τα αρχεία εισ όδου και εξόδου των προγραμμάτων του kmgnfs. Στη σ υνέχεια της παραγράφου θα δούμε περισ σ ότερες λεπτομέρειες σ χετικές με το project αυτό. Τα υπόλοιπα πέντε projects είναι προγράμματα τα οποία αντισ τοιχούν σ τα βασ ικά βήματα του GNFS. Το ποιό βήμα υλοποιεί καθένα από αυτά είναι εμφανές από το όνομά τους. Ολα χρησ ιμοποιούν τον GNFS κώδικα της σ τατικής βιβλιοθήκης που παράγει το GNFS_Common_Library και διαβάζουν και γράφουν από και προς τα αρχεία που υπάρχουν ή δημιουργούνται από τα ίδια τα προγράμματα σ τους φακέλους του GNFS_IO_Files. Υπάρχει ένας φάκελος για κάθε βήμα του αλγορίθμου, ώσ τε να είναι εύκολη η εύρεσ η των κατάλληλων αρχείων. Το GNFS_Initialization διαβάζει τις αρχικές παραμέτρους του αλγορίθμου, κάνει κάποιους αρχικούς υπολογισ μούς και ελέγχους και εκτελεί το βήμα επιλογής πολυωνύμου. Το GNFS_Factor_Bases_Setup εκτελεί το βήμα της δημιουργίας των βάσ εων (Rational και Algebraic Factor Base, Quadratic Character Base). Το GNFS_Sieving εκτελεί το βήμα του κοσ κινίσ ματος και βρίσ κει τα απαιτούμενα relations (smooth ζεύγη). Το GNFS_Matrix_Construction εκτελεί το βήμα της δημιουργία του δυαδικού πίνακα και το βήμα της γραμμικής άλγεβρας για την επίλυσ η του σ υσ τήματος. Είναι πιθανό σ ε μελλοντικές εκδόσ εις του kmgnfs το βήμα αυτό να σ πάσ ει σ ε δύο επιμέρους βήματα, ωσ τόσ ο προς το παρόν έχει επιλεγεί να είναι σ ε ένα ενοποιημένο. Οταν υλοποιηθεί για παράδειγμα η επίλυσ η του σ υσ τήματος με τον αλγόριθμο του Parallel Block Lanczos, τότε είναι θεμιτό η επίλυσ η του σ υσ τήματος να αποτελεί ανεξάρτητο πρόγραμμα. Το GNFS_Square_Root εκτελεί το βήμα υπολογισ μού της τετραγωνικής ρίζας και ολοκληρώνει τον αλγόριθμο με την εύρεσ η δύο παραγόντων p και q του αριθμού n (n = p q) που θέλαμε να παραγοντοποιήσ ουμε. Αναφέραμε και παραπάνω πως το GNFS_IO_Files δεν περιέχει πηγαίο κώδικα. Στον κατάλογο /GNFS_IO_Files/IO/Initialization υπάρχει το αρχείο initialization_parameters.txt το οποίο είναι το πρώτο αρχείο το οποίο διαβάζει ο αλγόριθμος και σ υγκεκριμένα το πρόγραμμα GNFS_Initialization για να εκκινήσ ει την όλη διαδικασ ία. Στο αρχείο αυτό, θέτουμε τις βασ ικές παραμέτρους του αλγορίθμου, κάθε μία σ ε δική της γραμμή. Στον πηγαίο κώδικα που υπάρχει σ το site της υλοποίησ ής μας, υπάρχουν τέτοια αρχεία ως παραδείγματα, που περιέχουν και σ χόλια για το ποιά είναι η σ ημασ ία της κάθε παραμέτρου. Οι παράμετροι που υπάρχουν σ το initialization_parameters.txt είναι με τη σ ειρά οι εξής: 96
109 5.3. Δομή του kmgnfs n - Ο αριθμός που επιθυμούμε να παραγοντοποιήσ ουμε. d - Ο βαθμός του πολυωνύμου f. Λόγω της χρήσ ης του αλγορίθμου του Couveignes για τον υπολογισ μό της τετραγωνικής ρίζας, πρέπει να είναι περιττός. Συνήθεις τιμές: 3, 5. Επιλογή για το αν το f θα είναι monic ή όχι. f - Το πολυώνυμο f. Πρέπει να παραμείνει κενό. Θα υπολογισ τεί από τον αλγόριθμο κατά τη διαδικασ ία επιλογής πολυωνύμου. f - Η παράγωγος του f. Πρέπει να παραμείνει κενό. m - Η ρίζα του f (mod n). Κανονικά, πρέπει να είναι μηδέν έτσ ι ώσ τε ο αλγόριθμος να επιλέξει το m και το f μέσ α από τη διαδικασ ία επιλογής του πολυωνύμου. Αν είναι μεγαλύτερο του μηδενός, τότε αλγόριθμος χρησ ιμοποιεί απευθείας το σ υγκεκριμένο m. maxrf B - Άνω όριο για τη Rational Factor Base. maxaf B - Άνω όριο για την Algebraic Factor Base. #QCB - Πληθάριθμος της Quadratic Character Base. Επιλογή για το αν οι βάσ εις θα παραχθούν και σ ε αρχείο κειμένου, εκτός της προκαθορισ μένης δυαδικής μορφής. max a - Ορια για το την τιμή a κατά το sieving ( max a < a < max a). min b - Αρχική, κατώτατη τιμή για το b κατά το sieving. max b - Ανώτατο όριο για την τιμή του b κατά το sieving. L1 - Ανώτατο όριο για τη βελτισ τοποίησ η με χρήσ η large primes. Δεν χρησ ιμοποιείται προς το παρόν. L2 - Ανώτατο όριο για τη βελτισ τοποίησ η με χρήσ η large primes. Δεν χρησ ιμοποιείται προς το παρόν. Ελάχισ τος αριθμός πλεοναζόντων smooth ζευγών (a, b) που θα ενσ ωματωθούν σ τον δυαδικό πίνακα. Αυτό γίνεται για να μπορούμε να ε- ξάγουμε περισ σ ότερες από μία εξαρτήσ εις απ τον πίνακα με τη χρήσ η της γραμμικής άλγεβρας, έτσ ι ώσ τε να έχουμε περισ σ ότερες πιθανότητες, κάποια από τις εξαρτήσ εις αυτές, να μας οδηγήσ ει σ ε μη τετριμμένη παραγοντοποίησ η. 97
110 5. Λεπτομερειες Υλοποιησ ης Αρχικό μήκος σ ε bits των πρώτων αριθμών (inert primes) που χρησ ιμοποιούνται απ τον αλγόριθμο του Couveignes. #IPB - Πλήθος των πρώτων αριθμών (inert primes) που θα χρησ ιμοποιηθούν απ τον αλγόριθμο του Couveignes. Μέγισ τος αριθμός εξαρτήσ εων που θα επεξεργασ τεί το βήμα της τετραγωνικής ρίζας προκειμένου να καταλήξει σ ε μη τετριμμένη παραγοντοποίησ η. Επιλογή για το αν επιθυμούμε να εκτελεσ τεί η διαδικασ ία επιλογής πολυωνύμου. Επιλογή για το αν επιθυμούμε να πραγματοποιηθεί εκτενής αναζήτησ η πολυωνύμου ή ο αλγόριθμος να χρησ ιμοποιήσ ει το πρώτο πολυώνυμο που θα υπολογίσ ει. x1 - Κατώτατο όριο που καθορίζει το μέγεθος του leading coefficient σ τη μέθοδο του Murphy. x2 - Ανώτατο όριο που καθορίζει το μέγεθος του leading coefficient σ τη μέθοδο του Murphy. Αν είναι μεγαλύτερη του μηδενός η σ υγκεκριμένη παράμετρος καθορίζει το μέγισ το εύρος τιμών σ το οποίο μπορεί να κινηθεί το leading coefficient κατά τη διαδικασ ία εύρεσ ης πολυωνύμου με τη μέθοδο του Murphy. Επιλογή του κριτηρίου βάσ ει του οποίου θα αξιολογούνται τα πολυώνυμα σ τη μέθοδο του Murphy (rating ή τιμή α). Επιλογή για τον υπολογισ μό των maxrfb και maxafb από το πρόγραμμα, αντί της χειροκίνητης επιλογής. Το πρόγραμμα GNFS_Initialization διαβάζει τις παραμέτρους του αρχείου αυτού, κάνει κάποιους αρχικούς ελέγχους και υπολογισ μούς, εκτελεί τη διαδικασ ία επιλογής πολυωνύμου και αφού ολοκληρώσ ει την εργασ ία του δημιουργεί το αρχείο gnfs_parameters.txt το οποίο είναι παρόμοιο με το initialization_parameters.txt, περιέχει μόνο τις παραμέτρους που χρειάζονται τα επόμενα βήματα του αλγορίθμου και έχει σ υμπληρωμένο το πολυώνυμο f και την παράγωγό του, τα οποία ήταν κενά σ το initialization_parameters.txt. Τα υπόλοιπα προγράμματα διαβάζουν το gnfs_parameters.txt για να λάβουν τις απαιτούμενες παραμέτρους. Κάθε πρόγραμμα γράφει τα κατάλληλα αρχεία σ τον κατάλληλο υποφάκελο του IO και διαβάζει τα απαιτούμενα αρχεία, που 98
111 5.4. Τμήματα που Παραλληλοποιήθηκαν έχουν παραχθεί από τα προηγούμενα βήματα, από τους κατάλληλους υποφακέλους. 5.4 Τμήματα που Παραλληλοποιήθηκαν Στο kmgnfs πραγματοποιήθηκε η παραλληλοποίησ η των πιο χρονοβόρων τμημάτων, εκτός από το κομμάτι της επίλυσ ης του γραμμικού σ υσ τήματος γιατί το Gaussian Elimination δυσ τυχώς δεν μπορεί να παραλληλοποιηθεί. Σε μελλοντική έκδοσ η, όπου θα υλοποιηθεί ο αλγόριθμος του Block Lanczos, θα γίνει και το κομμάτι αυτό παράλληλο γιατί αυτός ο αλγόριθμος μας δίνει την δυνατότητα αυτή. Μάλισ τα, μόλις σ υμβεί αυτό, θα επιτευχθεί ακόμη μεγαλύτερη παραγοντοποίησ η από αυτές που πραγματοποίησ ε το kmgnfs μέχρι τώρα, μιας και την σ τιγμή αυτή το bottleneck είναι κυρίως η επίλυσ η του σ υσ τήματος με τον Gaussian Elimination αλγόριθμο. Τα βήματα που παραλληλοποιήθηκαν είναι η επιλογή πολυωνύμου, το κοσ κίνισ μα και ο υπολογισ μός της τετραγωνικής ρίζας. Αυτά, μαζί με την επίλυσ η του σ υσ τήματος είναι τα βήματα που απαιτούν τον περισ σ ότερο χρόνο. Ας δούμε όμως κάποιες περισ σ ότερες λεπτομέρειες για καθένα από αυτά. Οπως έχουμε περιγράψει και σ το κεφάλαιο 3 σ την παράγραφο 3.1, έχει υλοποιηθεί τόσ ο η εύρεσ η monic πολυωνύμων, μαζί με τη βελτιωμένη έκδοσ ή τους, όσ ο και ο τρόπος εύρεσ η non-monic πολυωνύμων του Murphy [17]. Γενικά η διαδικασ ία επιλογής πολυωνύμου είναι πολύ σ ημαντική για την εκτέλεσ η του αλγορίθμου GNFS, καθώς διαφορετικά πολυώνυμα έχουν διαφορετική απόδοσ η ως προς το ρυθμό παραγωγής smooth ζευγαριών. Ο χρόνος επομένως που θα αφιερωθεί σ το βήμα αυτό είναι πολύ σ ημαντικός και πρέπει πριν καταλήξουμε σ ε κάποιο πολυώνυμο, να έχουμε δοκιμάσ ει όσ α περισ σ ότερα μπορούμε, εξασ φαλίζοντας έτσ ι ότι έχουμε επιλέξει το καλύτερο δυνατό, με βάσ η πάντα τον αλγόριθμο επιλογής πολυωνύμου. Μια τέτοια διαδικασ ία, ειδικά σ την περίπτωσ η των non-monic πολυωνύμων, απαιτεί απαγορευτικό χρόνο για μια ακολουθιακή υλοποίησ η. Η παραλληλοποίησ η επομένως της διαδικασ ίας επιλογής είναι μονόδρομος. Τα αποτελέσ ματα ήταν τα αναμενόμενα και άμεσ α ορατά. Η διαδικασ ία επιταχύνθηκε εντυπωσ ιακά και μάλισ τα ανάλογα με τον αριθμό των επεξεργασ τών-κόμβων που χρησ ιμοποιούσ αμε. Αυτό σ ημαίνει πως το σ υνολικό overhead που απαιτήθηκε για την επικοινωνία των σ υνεργαζόμενων κόμβων δεν ήταν μεγάλο. Για την παραλληλοποίησ η επιλέχθηκε το εξής σ ενάριο. Ο κεντρικός κόμβος του σ υσ τήματος πραγματοποιεί ανάλυσ η των δεδομένων εισ όδου, υπολογίζει τις παραμέτρους εκτέλεσ ης του βήματος της επιλογής του πολυωνύμου και 99
112 5. Λεπτομερειες Υλοποιησ ης μοιράζει σ τους σ υνεργαζόμενους κόμβους ισ όποσ η δουλειά. Κάθε επεξεργασ τικός κόμβος αναλαμβάνει την εύρεσ η των πολυωνύμων που αντισ τοιχούν σ το εύρος των παραμέτρων της ευθύνης του. Πραγματοποιεί τους ελέγχους και τις μετρήσ εις ποιότητας καθενός από τα πολυώνυμα που υπολογίζει και δημιουργεί μια ταξινομημένη λίσ τα με τα καλύτερα πολυώνυμα που υπολόγισ ε. Μόλις υπολογίσ ει όλα τα πολυώνυμα του τομέα ευθύνης του, σ τέλνει τη λίσ τα με τα καλύτερα που βρήκε σ τον κεντρικό κόμβο. Αυτός καθ όλη τη διάρκεια υπολογίζει τα δικά του πολυώνυμα και περιμένει να λάβει τη λίσ τα από τους υπόλοιπους κόμβους. Συγκεντρώνει όλες τις λίσ τες με τα πολυώνυμα και κατόπιν πραγματοποιεί τον τελικό υπολογισ μό πάνω σ ε αυτές. Ουσ ιασ τικά αυτό που κάνει είναι να ψάξει μέσ α σ ε όλες τις λίσ τες που έλαβε, ώσ τε να βρει το πολυώνυμο με τις καλύτερες υπολογισ μένες ιδιότητες. Κατόπιν ορίζει το πολυώνυμο αυτό, ως το πολυώνυμο εκτέλεσ ης του αλγορίθμου. Ο σ υνολικός χρόνος εκτέλεσ ης εξαρτάται από το εύρος των αρχικών παραμέτρων εκτέλεσ ης. Με άλλα λόγια, όσ α περισ σ ότερα πολυώνυμα ζητήσ ουμε να εξετάσ ουμε, είναι προφανές πως, τόσ ο περισ σ ότερος χρόνος θα απαιτηθεί τελικά για την εύρεσ η του καλύτερου. Γίνεται άμεσ α αντιληπτό, πως με την ακολουθιακή έκδοσ η του αλγορίθμου δεν μπορούμε να έχουμε πολύ μεγάλες απαιτήσ εις. Αντίθετα οι απαιτήσ εις μας μπορούν να αυξηθούν κατακόρυφα, όταν έχουμε σ τη διάθεσ ή μας μερικές δεκάδες επεξεργασ τές από ένα supercomputer ή από ένα cluster. Για την καλύτερη παραγοντοποίησ η που πραγματοποιήσ αμε με το kmgnfs χρησ ιμοποιήθηκαν 60 κόμβοι από το supercomputer που περιγράφουμε σ την παράγραφο 6.3. Το επόμενο χρονοβόρο τμήμα που παραλληλοποιήθηκε είναι το βήμα του κοσ κινίσ ματος από το οποίο προκύπτουν τα smooth ζεύγη. Γενικά ισ χύει πως όσ ο μικρότερη είναι η τιμή του b τόσ ο περισ σ ότερα υποψήφια smooth values βρίσ κονται, επομένως όσ ο αυξάνει η τιμή του b, για δεδομένο εύρος του a, απαιτείται λιγότερος χρόνος για τον έλεγχο όλων των τιμών που προκύπτουν για το b αυτό (λιγότερα υποψήφια smooth values). Από την παρατήρησ η αυτή καταλήξαμε σ το σ υμπέρασ μα πως για την παράλληλη έκδοσ η του kmgnfs δεν έπρεπε να διαμοιράσ ουμε ισ όποσ α τα b σ τους επεξεργασ τές, αλλά μπορούσ ε να γίνει πιο έξυπνος διαμοιρασ μός. Η ιδέα είναι πως όσ ο πιο μικρή είναι η τιμή του b, τόσ ο λιγότερα b θα έχει να επεξεργασ τεί ο κάθε κόμβος. Τα b που αναλαμβάνει ο κάθε κόμβος είναι σ υνεχόμενα και αυτό γιατί είναι γενικά πιο γρήγορος ο υπολογισ μός του b m (mod p) όταν μας είναι γνωσ τή η τιμή του (b 1) m (mod p). Για να γίνουν περισ σ ότερο αντιληπτά όλα αυτά, θα δώσ ουμε ένα παράδειγμα. Ας θεωρήσ ουμε πως έχουμε 4 κόμβους διαθέσ ιμους σ το cluster μας και θέλουμε να ελέγξουμε τα b με τιμές 1 b 85. Τότε με βάσ η όσ α περιγράψαμε, ο διαμοιρασ μός θα γίνει ως εξής. Ο πρώτος κόμβος, που θα αναλάβει τα πιο 100
113 5.5. Περισ σ ότερα για το MPI μικρά b, θα επεξεργασ τεί τα b από 1 έως 10. Ο δεύτερος κόμβος θα αναλάβει τα αμέσ ως επόμενα b, από 11 έως και 25. Ο τρίτος θα αναλάβει τα b από 26 έως και 50. Τέλος, ο τέταρτος κόμβος θα αναλάβει τα b από 51 έως και 85. Με τον τρόπο αυτό μοιράζεται τελικά καλύτερα το φορτίο σ τους επεξεργασ τές μιας και αυτοί που έχουν να ελέγξουν περισ σ ότερα υποψήφια smooth values έχουν να εξετάσ ουν λιγότερα b και το αντίσ τροφο. Με τον τρόπο αυτό πετυχαίνουμε σ υνολικά καλύτερη απόδοσ η. Το τελευταίο βήμα το οποίο έπρεπε να παραλληλοποιηθεί ώσ τε να επιταχυνθεί η διαδικασ ία παραγοντοποίησ ης είναι η εύρεσ η της τετραγωνικής ρίζας. Να θυμίσ ουμε ότι ο αλγόριθμος που υλοποιήσ αμε για τον υπολογισ μό της ρίζας είναι ο αλγόριθμος του Couveignes[31]. Αναλυτική περιγραφή του υπάρχει σ την παράγραφο 3.6. Στον αλγόριθμο αυτό πραγματοποιούνται κάποιοι υπολογισ μοί για κάθε finite field που ορίζεται από τους πρώτους που επιλέχθηκαν (IPB) για τη λειτουργία του βήματος αυτού. Οι υπολογισ μοί αυτοί είναι ουσ ιασ τικά ο υπολογισ μός της τετραγωνικής ρίζας σ το finite field F p d που ορίζεται από καθέναν από τους πρώτους αυτούς. Η διαδικασ ία αυτή είναι ανεξάρτητη, και επομένως μπορεί να γίνει ταυτόχρονα, για κάθε finite field. Αποτελεί ταυτόχρονα και το πιο χρονοβόρο κομμάτι του βήματος αυτού. Το γεγονός αυτό μας οδήγησ ε σ το να επιλέξουμε την παραλληλοποίησ η του σ υγκεκριμένου τμήματος. Επειδή για κάθε finite field απαιτείται ο ίδιος χρόνος για τον υπολογισ μό της ρίζας, αποφασ ίσ τηκε ο ισ όποσ ος διαμοιρασ μός της εργασ ίας σ τους σ υνεργαζόμενους κόμβους. Μόνο ο κεντρικός κόμβος θα αναλαμβάνει λιγότερη δουλειά και αυτό γιατί θέλουμε να τελειώσ ει λίγο νωρίτερα, ώσ τε να μπορεί άμεσ α να δεχτεί τα αποτελέσ ματα από τους υπόλοιπους, όταν αυτά γίνουν διαθέσ ιμα, δηλαδή αμέσ ως μόλις ο κάθε κόμβος ολοκληρώνει το κομμάτι που του αντισ τοιχεί. Στην αρχή όλοι οι κόμβοι κάνουν κάποιους αρχικούς υπολογισ μούς και βρίσ κουν για ποιά finite fields έχουν την ευθύνη να υπολογίσ ουν τις τετραγωνικές ρίζες. Κατόπιν υπολογίζουν τις ρίζες για τα πεδία που τους αντισ τοιχούν και τα αποτελέσ ματα τα σ τέλνουν σ τον κύριο κόμβο. Αυτός, αφού έχει υπολογίσ ει και τις ρίζες για τα πεδία της ευθύνης του, αναλαμβάνει να σ υγκεντρώσ ει όλα τα δεδομένα από τους υπόλοιπους κόμβους και να τα κάνει διαθέσ ιμα για την σ υνέχισ η του αλγορίθμου, δηλαδή την χρήσ η του Chinese Remainder Theorem για τον υπολογισ μό της τετραγωνικής ρίζας σ το αλγεβρικό πεδίο. 5.5 Περισ σ ότερα για το MPI Στην αρχή του κεφαλαίου αναφερθήκαμε σ τη χρήσ η του MPI (M essage Passing I nterface) και είπαμε πως ουσ ιασ τικά δεν πρόκειται για κάποια σ υγ- 101
114 5. Λεπτομερειες Υλοποιησ ης κεκριμένη βιβλιοθήκη, αλλά για κάποιο πρότυπο για το πώς πρέπει να σ υμπεριφέρεται κάθε βιβλιοθήκη που υλοποιεί το MPI. Το MPI, με τις προδιαγραφές που έχει ορίσ ει, έχει κατορθώσ ει να είναι πρακτικό, φορητό, αποδοτικό και ευέλικτο. Ορίζεται επίσ ης από το πρότυπο πως οι μόνες γλώσ σ ες σ υμβατές με το MPI είναι οι C, C++ και Fortran. Οι λόγοι για να αποφασ ίσ ει κανείς τη χρήσ η του MPI είναι: Τυποποίησ η - Σήμερα αποτελεί ουσ ιασ τικά την μοναδική βιβλιοθήκη ανταλλαγής μηνυμάτων η οποία μπορεί να θεωρηθεί ως standard. Υποσ τηρίζεται από όλες τις πλατφόρμες για High Performance Computing (HPC ) και έχει αντικατασ τήσ ει όλες τις προηγούμενες βιβλιοθήκες ανταλλαγής μηνυμάτων. Φορητότητα - Δεν χρειάζεται καμία αλλαγή σ τον κώδικα, όταν αυτός μεταφέρεται για μεταγλώττισ η και εκτέλεσ η σ ε άλλη πλατφόρμα η οποία όμως είναι σ υμβατή με το MPI πρότυπο. Λειτουργία - Πάνω από 115 ρουτίνες ορίζονται μόνο σ το MPI-1 πρότυπο. Διαθεσ ιμότητα - Υπάρχουν διαθέσ ιμες αρκετές υλοποιήσ εις, τόσ ο από κατασ κευασ τές όσ ο και από την κοινότητα ανοιχτού λογισ μικού. Ας δούμε σ υνοπτικά τον τρόπο με τον οποίο δομείται ένα παράλληλο πρόγραμμα το οποίο κάνει χρήσ η του MPI. Καταρχήν απαιτείται να σ υμπεριληφθεί το Header file mpi.h. Η μορφή των MPI κλήσ εων είναι η ακόλουθη: 102
115 5.5. Περισ σ ότερα για το MPI Η γενική μορφή ενός MPI προγράμματος είναι η: Το MPI χρησ ιμοποιεί κάποια αντικείμενα (objects) τα οποία ονομάζει communicators και groups για να ορίσ ει ποιές διεργασ ίες μπορούν να επικοινωνήσ ουν μεταξύ τους. Οι περισ σ ότερες σ υναρτήσ εις του, απαιτούν τον communicator ως όρισ μα. Εκτός ορισ μένων περιπτώσ εων, όπου ορίζουμε διαφορετικούς communicators, μπορούμε να χρησ ιμοποιήσ ουμε τον MPI_COMM_WORLD ο οποίος είναι ο προκαθορισ μένος communicator. 103
116 5. Λεπτομερειες Υλοποιησ ης Σε κάθε communicator κάθε διεργασ ία έχει τον δικό της μοναδικό, ακέραιο αριθμό (rank) ο οποίος και την χαρακτηρίζει. Πολλές φορές το rank αναφέρεται και ως task ID. Τα ranks των διεργασ ιών είναι σ υνεχόμενοι αύξοντες ακέραιοι που αρχίζουν από το 0. Το MPI περιέχει κάποιες ρουτίνες διαχείρισ ης του περιβάλλοντος εκτέλεσ ής του. Αυτές χρησ ιμοποιούνται για την αρχικοποίησ η και τερματισ μό του περιβάλλοντος του MPI, για ερωτήσ εις προς το περιβάλλον και για διάφορες άλλες λειτουργίες. Ας δούμε τις βασ ικότερες από αυτες: 104 MPI_Init - Αρχικοποιεί το περιβάλλον εκτέλεσ ης του MPI. Καλείται σ ε κάθε MPI πρόγραμμα και είναι η πρώτη MPI σ υνάρτησ η που καλείται πάντα. Καλείται μόνο μια φορά. MPI_Init (&argc,&argv) MPI_Comm_size - Βρίσ κει τον αριθμό των διεργασ ιών σ το group που αντισ τοιχεί σ τον σ υγκεκριμένο communicator. MPI_Comm_size (comm,&size) MPI_Comm_rank - Καθορίζει το rank της σ υγκεκριμένης διεργασ ίας σ τον communicator. Σε κάθε διεργασ ία ανατίθεται ένας μοναδικός αύξων ακέραιος αριθμός μεταξύ του 0 και του πλήθους των επεξεργασ τών - 1.
ΚΡΥΠΤΟΓΡΑΦΙΑ ΚΑΙ ΑΣΦΑΛΕΙΑ ΥΠΟΛΟΓΙΣΤΩΝ. Δ Εξάμηνο
ΚΡΥΠΤΟΓΡΑΦΙΑ ΚΑΙ ΑΣΦΑΛΕΙΑ ΥΠΟΛΟΓΙΣΤΩΝ Δ Εξάμηνο Ασύμμετρη Κρυπτογράφηση (Κρυπτογραφία Δημόσιου Κλειδιού) Διδάσκων : Δρ. Παρασκευάς Κίτσος Επίκουρος Καθηγητής e-mail: pkitsos@teimes.gr, pkitsos@ieee.org
Εφαρμοσμένη Κρυπτογραφία Ι
Εφαρμοσμένη Κρυπτογραφία Ι Κωνσταντίνου Ελισάβετ ekonstantinou@aegean.gr http://www.icsd.aegean.gr/ekonstantinou Stream ciphers Η διαδικασία κωδικοποίησης για έναν stream cipher συνοψίζεται παρακάτω: 1.
Εφαρμοσμένη Κρυπτογραφία Ι
Εφαρμοσμένη Κρυπτογραφία Ι Κωνσταντίνου Ελισάβετ ekonstantinou@aegean.gr http://www.icsd.aegean.gr/ekonstantinou Ασύμμετρα Κρυπτοσυστήματα κλειδί κρυπτογράφησης k1 Αρχικό κείμενο (m) (δημόσιο κλειδί) Αλγόριθμος
Shmei sveic Perigrafik c Statisvtik c
Shmei sveic Perigrafik c Statisvtik c E. G. Tsvi ac Ας θεωρήσ ουμε έναν πίνακα αριθμών X ={x 1, x,..., x } (1) Το σ ύνολο αυτό θα μπορούσ ε να αποτελείται από τις αποδόσ εις μιας μετοχής σ ε διαφορετικές
Εφαρμοσμένη Κρυπτογραφία Ι
Εφαρμοσμένη Κρυπτογραφία Ι Κωνσταντίνου Ελισάβετ ekonstantinou@aegean.gr http://www.icsd.aegean.gr/ekonstantinou Ιστορία Ασύμμετρης Κρυπτογραφίας Η αρχή έγινε το 1976 με την εργασία των Diffie-Hellman
Εφαρμοσμένη Κρυπτογραφία Ι
Εφαρμοσμένη Κρυπτογραφία Ι Κωνσταντίνου Ελισάβετ ekonstantinou@aegean.gr http://www.icsd.aegean.gr/ekonstantinou Η συνάρτηση φ(.) του Euler Για κάθε ακέραιο n > 0, έστω φ(n) το πλήθος των ακεραίων στο
Αριθμοθεωρητικοί Αλγόριθμοι
Αλγόριθμοι που επεξεργάζονται μεγάλους ακέραιους αριθμούς Μέγεθος εισόδου: Αριθμός bits που απαιτούνται για την αναπαράσταση των ακεραίων. Έστω ότι ένας αλγόριθμος λαμβάνει ως είσοδο έναν ακέραιο Ο αλγόριθμος
Εφαρμοσμένη Κρυπτογραφία Ι
Εφαρμοσμένη Κρυπτογραφία Ι Κωνσταντίνου Ελισάβετ ekonstantinou@aegean.gr http://www.icsd.aegean.gr/ekonstantinou Ησυνάρτησηφ(.) του Euler Για κάθε ακέραιο n> 0, έστω φ(n) το πλήθος των ακεραίων στο διάστημα
ΑΣΦΑΛΕΙΑ & ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ(Θ)
ΑΣΦΑΛΕΙΑ & ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ(Θ) Ενότητα 5: ΑΣΦΑΛΕΙΑ & ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ ΔΙΔΑΣΚΩΝ: ΚΩΝΣΤΑΝΤΙΝΟΣ ΧΕΙΛΑΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ 1 Άδειες Χρήσης Το παρόν εκπαιδευτικό
Κρυπτογραφία. Έλεγχος πρώτων αριθών-παραγοντοποίηση. Διαφάνειες: Άρης Παγουρτζής Πέτρος Ποτίκας
Κρυπτογραφία Έλεγχος πρώτων αριθών-παραγοντοποίηση Διαφάνειες: Άρης Παγουρτζής Πέτρος Ποτίκας Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Σχολή ΗΜΜΥ ΕΜΠ Κρυπτογραφία
Στοιχεία Θεωρίας Αριθμών & Εφαρμογές στην Κρυπτογραφία
Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Σημειώσεις Διαλέξεων Στοιχεία Θεωρίας Αριθμών & Εφαρμογές στην Κρυπτογραφία Επιμέλεια σημειώσεων: Ζωή Παρασκευοπούλου Νίκος
Κρυπτογραφία. Κωνσταντίνου Ελισάβετ
Κρυπτογραφία Κωνσταντίνου Ελισάβετ ekonstantinou@aegean.gr http://www.icsd.aegean.gr/ekonstantinou Ησυνάρτησηφ(.) του Euler Για κάθε ακέραιο n> 0, έστω φ(n) το πλήθος των ακεραίων στο διάστημα [1, n] που
Στοιχεία Θεωρίας Αριθμών & Εφαρμογές στην Κρυπτογραφία
Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Σημειώσεις Διαλέξεων Στοιχεία Θεωρίας Αριθμών & Εφαρμογές στην Κρυπτογραφία Επιμέλεια σημειώσεων: Δημήτριος Μπάκας Αθανάσιος
Κρυπτοσύστημα RSA (Rivest, Shamir, Adlemann, 1977) Υπολογιστική Θεωρία Αριθμών και Κρυπτογραφία
Υπολογιστική Θεωρία Αριθμών και Κρυπτογραφία Κρυπτογραφία Δημοσίου Κλειδιού Άρης Παγουρτζής Στάθης Ζάχος Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Κρυπτοσύστημα
Εφαρμοσμένη Κρυπτογραφία Ι
Εφαρμοσμένη Κρυπτογραφία Ι Κωνσταντίνου Ελισάβετ ekonstantinou@aegean.gr http://www.icsd.aegean.gr/ekonstantinou Ψηφιακές Υπογραφές Ορίζονται πάνω σε μηνύματα και είναι αριθμοί που εξαρτώνται από κάποιο
Κρυπτογραφία Δημόσιου Κλειδιού II Αλγόριθμος RSA
Κρυπτογραφία Δημόσιου Κλειδιού II Αλγόριθμος RSA Τμήμα Μηχ. Πληροφορικής ΤΕΙ Κρήτης Κρυπτογραφία Δημόσιου Κλειδιού -RSA 1 Κρυπτογραφία Δημόσιου Κλειδιού - Ιστορία Ηνωμένες Πολιτείες 1975: Ο Diffie οραματίζεται
* * * ( ) mod p = (a p 1. 2 ) mod p.
Θεωρια Αριθμων Εαρινο Εξαμηνο 2016 17 Μέρος Α: Πρώτοι Αριθμοί Διάλεξη 1 Ενότητα 1. Διαιρετότητα: Διαιρετότητα, διαιρέτες, πολλαπλάσια, στοιχειώδεις ιδιότητες. Γραμμικοί Συνδυασμοί (ΓΣ). Ενότητα 2. Πρώτοι
Κρυπτογραφία. Κεφάλαιο 4 Αλγόριθμοι Δημοσίου Κλειδιού (ή ασύμμετροι αλγόριθμοι)
Κρυπτογραφία Κεφάλαιο 4 Αλγόριθμοι Δημοσίου Κλειδιού (ή ασύμμετροι αλγόριθμοι) Κρυπτοσυστήματα Δημοσίου κλειδιού Αποστολέας P Encryption C Decryption P Παραλήπτης Προτάθηκαν το 1976 Κάθε συμμετέχων στο
Κεφάλαιο 21. Κρυπτογραφία δημόσιου κλειδιού και πιστοποίηση ταυτότητας μηνυμάτων
Κεφάλαιο 21 Κρυπτογραφία δημόσιου κλειδιού και πιστοποίηση ταυτότητας μηνυμάτων Κρυπτογράφηση δημόσιου κλειδιού RSA Αναπτύχθηκε το 1977 από τους Rivest, Shamir και Adleman στο MIT Ο πιο γνωστός και ευρέως
ΑΣΥΜΜΕΤΡΗ ΚΡΥΠΤΟΓΡΑΦΙΑ Lab 3
ΑΣΥΜΜΕΤΡΗ ΚΡΥΠΤΟΓΡΑΦΙΑ Lab 3 Η Aσύμμετρη Kρυπτογραφία ή Κρυπτογραφία Δημοσίου Κλειδιού χρησιμοποιεί δύο διαφορετικά κλειδιά για την κρυπτογράφηση και αποκρυπτογράφηση. Eπινοήθηκε στο τέλος της δεκαετίας
Κρυπτογραφία Δημοσίου Κλειδιού
Στοιχεία Θεωρίας Αριθμών και Εφαρμογές στην Κρυπτογραφία Κρυπτογραφία Δημοσίου Κλειδιού Άρης Παγουρτζής Στάθης Ζάχος Σχολή Ηλεκτρολόγων Μηχανικών - Μηχανικών Υπολογιστών Εθνικού Mετσόβιου Πολυτεχνείου
Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων. Κρυπτογραφία. Ασύμμετρη Κρυπτογραφία. Χρήστος Ξενάκης
Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων Κρυπτογραφία Ασύμμετρη Κρυπτογραφία Χρήστος Ξενάκης Ασύμμετρη κρυπτογραφία Μονόδρομες συναρτήσεις με μυστική πόρτα Μια συνάρτηση f είναι μονόδρομη, όταν δοθέντος
Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά
Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά και Πληροφορικής Μαθηματικά Πανεπιστήμιο ΙΙ Ιωαννίνων
Υπολογιστική Θεωρία Αριθμών και Κρυπτογραφία
Υπολογιστική Θεωρία Αριθμών και Κρυπτογραφία Εισαγωγή στη Θεωρία Αριθμών Άρης Παγουρτζής Στάθης Ζάχος Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Σχολή ΗΜΜΥ ΕΜΠ 1
Cryptography and Network Security Chapter 9. Fifth Edition by William Stallings
Cryptography and Network Security Chapter 9 Fifth Edition by William Stallings Chapter 9 Κρυπτογραφια Δημοσιου Κλειδιου και RSA Every Egyptian received two names, which were known respectively as the true
ΑΣΥΜΜΕΤΡΗ ΚΡΥΠΤΟΓΡΑΦΙΑ
ΤΕΙ Κρήτης ΕΠΠ Εργαστήριο Ασφάλεια Πληροφοριακών Συστηµάτων ΑΣΥΜΜΕΤΡΗ ΚΡΥΠΤΟΓΡΑΦΙΑ ΤΕΙ Κρητης Τµηµα Εφαρµοσµενης Πληροφορικης Και Πολυµεσων Fysarakis Konstantinos, PhD kfysarakis@staff.teicrete.gr Εισαγωγή
Υπολογιστική Θεωρία Αριθμών και Κρυπτογραφία
Υπολογιστική Θεωρία Αριθμών και Κρυπτογραφία Εισαγωγή στη Θεωρία Αριθμών Άρης Παγουρτζής Στάθης Ζάχος Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Διαιρετότητα Ορισμός
Αλγόριθµοι δηµόσιου κλειδιού
Αλγόριθµοι δηµόσιου κλειδιού Αλγόριθµοι δηµόσιου κλειδιού Ηδιανοµή του κλειδιού είναι ο πιο αδύναµος κρίκος στα περισσότερα κρυπτογραφικά συστήµατα Diffie και Hellman, 1976 (Stanford Un.) πρότειναν ένα
project RSA και Rabin-Williams
Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών project RSA και Rabin-Williams Στοιχεία Θεωρίας Αριθμών& Εφαρμογές στην Κρυπτογραφία Ονοματεπώνυμο Σπουδαστών: Θανάσης Ανδρέου
Υπολογιστική Θεωρία Αριθμών και Κρυπτογραφία
Υπολογιστική Θεωρία Αριθμών και Κρυπτογραφία Εισαγωγή στη Θεωρία Αριθμών Άρης Παγουρτζής Στάθης Ζάχος Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Σχολή ΗΜΜΥ ΕΜΠ Υπολογιστική
Υπολογιστική Θεωρία Αριθμών και Κρυπτογραφία
Υπολογιστική Θεωρία Αριθμών και Κρυπτογραφία Εισαγωγή στη Θεωρία Αριθμών Άρης Παγουρτζής Στάθης Ζάχος Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Σχολή ΗΜΜΥ ΕΜΠ 1
κρυπτογραϕία Ψηφιακή ασφάλεια και ιδιωτικότητα Γεώργιος Σπαθούλας Msc Πληροφορική και υπολογιστική βιοιατρική Πανεπιστήμιο Θεσσαλίας
κρυπτογραϕία Ψηφιακή ασφάλεια και ιδιωτικότητα Γεώργιος Σπαθούλας Msc Πληροφορική και υπολογιστική βιοιατρική Πανεπιστήμιο Θεσσαλίας ιδιότητες ασϕάλειας ιδιότητες ασϕάλειας αγαθών Εμπιστευτικότητα (Confidentiality)
Υπολογιστική Θεωρία Αριθμών και Κρυπτογραφία
Υπολογιστική Θεωρία Αριθμών και Κρυπτογραφία Εισαγωγή στη Θεωρία Αριθμών Άρης Παγουρτζής Στάθης Ζάχος Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Σχολή ΗΜΜΥ ΕΜΠ 1
Διαιρετότητα Υπολογιστική Θεωρία Αριθμών και Κρυπτογραφία. Ακέραια διαίρεση. Διαιρετότητα. ΜΚΔ: χρήσιμες ιδιότητες
Διαιρετότητα Υπολογιστική Θεωρία Αριθμών και Κρυπτογραφία Εισαγωγή στη Θεωρία Αριθμών Άρης Παγουρτζής Στάθης Ζάχος Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών H διαιρετότητα
Υπολογιστική Θεωρία Αριθμών και Κρυπτογραφία
Υπολογιστική Θεωρία Αριθμών και Κρυπτογραφία Εισαγωγή στη Θεωρία Αριθμών Άρης Παγουρτζής Στάθης Ζάχος Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Σχολή ΗΜΜΥ ΕΜΠ 1
Οικονομικό Πανεπιστήμιο Αθηνών Τμήμα Πληροφορικής ΠΜΣ στα Πληροφοριακά Συστήματα Κρυπτογραφία και Εφαρμογές Διαλέξεις Ακ.
Οικονομικό Πανεπιστήμιο Αθηνών Τμήμα Πληροφορικής ΠΜΣ στα Πληροφοριακά Συστήματα Κρυπτογραφία και Εφαρμογές Διαλέξεις Ακ. Έτους 2015-2016 Μαρκάκης Ευάγγελος markakis@aueb.gr Ντούσκας Θεόδωρος tntouskas@aueb.gr
Στοιχεία Θεωρίας Αριθμών & Εφαρμογές στην Κρυπτογραφία
Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Σημειώσεις Διαλέξεων Στοιχεία Θεωρίας Αριθμών & Εφαρμογές στην Κρυπτογραφία Επιμέλεια σημειώσεων: Καλογερόπουλος Παναγιώτης
Αλγεβρικές Δομές και Αριθμοθεωρία
Κεφάλαιο 9 Αλγεβρικές Δομές και Αριθμοθεωρία 9.1 Εισαγωγή Θα παρουσιάσουμε κάποια στοιχεία από Θεωρία Αριθμών και ελάχιστα από Θεωρία Ομάδων. Οι γνώσεις αυτές είναι οι ελάχιστες απαραίτητες για την κατανόηση
2.1 Διαιρετότητα, ισοϋπόλοιποι αριθμοί. q Z, a = b q + r.
Κεφάλαιο 2 Θεωρία Αριθμών Κύριες βιβλιογραφικές αναφορές για αυτό το Κεφάλαιο είναι οι Hardy and Wright 1979 και Graham, Knuth, and Patashnik 1994. 2.1 Διαιρετότητα, ισοϋπόλοιποι αριθμοί Θεώρημα 2.1 Αν
ABSTRACT. PAPADOPOULOS SPYRIDON Department of Information and Communication Systems Engineering UNIVERSITY OF THE AEGEAN
Δίκτυα Ακτινικής Βάσ ης σ ε Σώματα Δεδομένων Μεγάλου Ογκου σ ε SIMD Υπολογισ τικά Συσ τήματα Η Διπλωματική Εργασ ία παρουσ ιάσ τηκε ενώπιον του Διδακτικού Προσ ωπικού του Πανεπισ τημίου Αιγαίου Σε Μερική
a = a a Z n. a = a mod n.
Αλγεβρα Ι Χειμερινο Εξαμηνο 2017 18 Διάλεξη 1 Ενότητα 1. Πράξεις: Πράξεις στο σύνολο S, ο πίνακας της πράξης, αντιμεταθετικές πράξεις. Προσεταιριστικές πράξεις, το στοιχείο a 1 a 2 a n. Η πράξη «σύνθεση
Στοιχεία Θεωρίας Αριθμών
Ε Μ Π Σ Ε Μ & Φ Ε Σημειώσεις Διαλέξεων Στοιχεία Θεωρίας Αριθμών & Εφαρμογές στην Κρυπτογραφία Επιμέλεια σημειώσεων: Κωστής Γ Διδάσκοντες: Στάθης Ζ Άρης Π 9 Δεκεμβρίου 2011 1 Πιθανές Επιθέσεις στο RSA Υπενθύμιση
KΕΦΑΛΑΙΟ 1 ΧΡΗΣΙΜΕΣ ΜΑΘΗΜΑΤΙΚΕΣ ΕΝΝΟΙΕΣ. { 1,2,3,..., n,...
KΕΦΑΛΑΙΟ ΧΡΗΣΙΜΕΣ ΜΑΘΗΜΑΤΙΚΕΣ ΕΝΝΟΙΕΣ Βασικές έννοιες διαιρετότητας Θα συµβολίζουµε µε, τα σύνολα των φυσικών αριθµών και των ακεραίων αντιστοίχως: {,,3,,, } { 0,,,,, } = = ± ± ± Ορισµός Ένας φυσικός αριθµός
Αριθµοθεωρητικοί Αλγόριθµοι και το. To Κρυπτοσύστηµα RSA
Αριθµοθεωρητικοί Αλγόριθµοι και το Κρυπτοσύστηµα RSA Στην ενότητα αυτή θα µελετηθούν τα εξής θέµατα: Υπολογισµός Μέγιστου Κοινού ιαιρέτη Αλγόριθµος του Ευκλείδη Κλάσεις Ισοδυναµίας και Αριθµητική modulo
Πρόβληµα 2 (15 µονάδες)
ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΑΘΗΜΑ: ΚΡΥΠΤΟΓΡΑΦΙΑ ΚΑΙ ΕΦΑΡΜΟΓΕΣ, 2013-2014 ΔΙΔΑΣΚΩΝ: Ε. Μαρκάκης Πρόβληµα 1 (5 µονάδες) 2 η Σειρά Ασκήσεων Προθεσµία Παράδοσης: 19/1/2014 Υπολογίστε
8.3.4 Τεχνικές Ασφάλειας Συμμετρική Κρυπτογράφηση Ασυμμετρική Κρυπτογράφηση Ψηφιακές Υπογραφές
Κεφάλαιο 8 8.3.4 Τεχνικές Ασφάλειας Συμμετρική Κρυπτογράφηση Ασυμμετρική Κρυπτογράφηση Ψηφιακές Υπογραφές Σελ. 320-325 Γεώργιος Γιαννόπουλος ΠΕ19, ggiannop (at) sch.gr http://diktya-epal-g.ggia.info/ Creative
Κρυπτογραφία ηµόσιου Κλειδιού Η µέθοδος RSA. Κασαπίδης Γεώργιος -Μαθηµατικός
Κρυπτογραφία ηµόσιου Κλειδιού Η µέθοδος RSA Τον Απρίλιο του 977 οι Ρόναλντ Ρίβεστ, Άντι Σαµίρ και Λέοναρντ Άντλεµαν, ερευνητές στο Ινστιτούτο Τεχνολογίας της Μασσαχουσέτης (ΜΙΤ) µετά από ένα χρόνο προσπαθειών
ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΔΙΑΤΜΗΜΑΤΙΚΟ ΠΡΟΓΡΑΜΜΑ ΜΕΤΑΠΤΥΧΙΑΚΩΝ ΣΠΟΥΔΩΝ ΥΠΟΛΟΓΙΣΤΙΚΗ ΜΗΧΑΝΙΚΗ. ΜΕΤΑΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ του Οικονόμου Μάριου
ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΔΙΑΤΜΗΜΑΤΙΚΟ ΠΡΟΓΡΑΜΜΑ ΜΕΤΑΠΤΥΧΙΑΚΩΝ ΣΠΟΥΔΩΝ ΥΠΟΛΟΓΙΣΤΙΚΗ ΜΗΧΑΝΙΚΗ ΜΕΤΑΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ του Οικονόμου Μάριου Συμπλήρωμα Schur σε παράλληλες αρχιτεκτονικές πολλαπλών GPU/CPU
Γενικά Μία μέθοδος κρυπτογραφίας δημοσίου κλειδιού Αντί για δακτύλιους της μορφής Z n χρησιμοποιεί ελλειπτικές καμπύλες ορισμένες σε πεπερασμένα σώματ
Γενικά Μία μέθοδος κρυπτογραφίας δημοσίου κλειδιού Αντί για δακτύλιους της μορφής Z n χρησιμοποιεί ελλειπτικές καμπύλες ορισμένες σε πεπερασμένα σώματα Βασίζεται στο πρόβλημα του διακριτού λογαρίθμου Αυξημένη
Ασφάλεια Πληροφοριακών Συστημάτων
Ασφάλεια Πληροφοριακών Συστημάτων Κρυπτογραφία/Ψηφιακές Υπογραφές Διάλεξη 2η Δρ. Β. Βασιλειάδης Τμ. Διοίκησης Επιχειρήσεων, ΤΕΙ Δυτ. Ελλάδας Kρυπτανάλυση Προσπαθούμε να σπάσουμε τον κώδικα. Ξέρουμε το
Μορφές αποδείξεων Υπάρχουν πολλά είδη αποδείξεων. Εδώ θα δούμε τα πιο κοινά: Εξαντλητική μέθοδος ή μέθοδος επισκόπησης. Οταν το πρόβλημα έχει πεπερασμ
Μαθηματικά Πληροφορικής 2ο Μάθημα Τμήμα Πληροφορικής και Τηλεπικοινωνιών Πανεπιστήμιο Αθηνών Μορφές αποδείξεων Υπάρχουν πολλά είδη αποδείξεων. Εδώ θα δούμε τα πιο κοινά: Εξαντλητική μέθοδος ή μέθοδος επισκόπησης.
Μορφές αποδείξεων. Μαθηματικά Πληροφορικής 2ο Μάθημα. Μορφές αποδείξεων (συνέχεια) Εξαντλητική μέθοδος
Μορφές αποδείξεων Μαθηματικά Πληροφορικής ο Μάθημα Τμήμα Πληροφορικής και Τηλεπικοινωνιών Πανεπιστήμιο Αθηνών Υπάρχουν πολλά είδη αποδείξεων. Εδώ θα δούμε τα πιο κοινά: Εξαντλητική μέθοδος ή μέθοδος επισκόπησης.
W i. Subset Sum Μια παραλλαγή του προβλήματος knapsack είναι το πρόβλημα Subset Sum, το οποίο δεν λαμβάνει υπόψιν την αξία των αντικειμένων:
6/4/2017 Μετά την πρόταση των ασύρματων πρωτοκόλλων από τους Diffie-Hellman το 1976, το 1978 προτάθηκε ένα πρωτόκολλο από τους Merkle-Hellman το οποίο βασίστηκε στο ότι δεν μπορούμε να λύσουμε γρήγορα
March 24, 2013. Abstract. 1 http://en.wikipedia.org/wiki/foss
Open-Source: Η εναλλακτική επιλογή που κερδίζει έδαφος Χάρης Β. Γεωργίου March 24, 2013 Abstract Μέχρι πριν μερικά χρόνια, η φράσ η free / open-source software (FOSS) 1 ήταν σ χεδόν σ υνώνυμη με μαλλιαρούς
Οικονομικό Πανεπιστήμιο Αθηνών Τμήμα Πληροφορικής ΠΜΣ στα Πληροφοριακά Συστήματα Κρυπτογραφία και Εφαρμογές Διαλέξεις Ακ.
Οικονομικό Πανεπιστήμιο Αθηνών Τμήμα Πληροφορικής ΠΜΣ στα Πληροφοριακά Συστήματα Κρυπτογραφία και Εφαρμογές Διαλέξεις Ακ. Έτους 2011-2012 Μαριάς Ιωάννης marias@aueb.gr Μαρκάκης Ευάγγελος markakis@gmail.com
ΕΥΡΕΣΗ ΜΕΓΙΣΤΟΥ ΚΟΙΝΟΥ ΔΙΑΙΡΕΤΗ
ΕΥΡΕΣΗ ΜΕΓΙΣΤΟΥ ΚΟΙΝΟΥ ΔΙΑΙΡΕΤΗ Το πρόβλημα: Δεδομένα: δύο ακέραιοι a και b Ζητούμενο: ο μέγιστος ακέραιος που διαιρεί και τους δύο δοσμένους αριθμούς, γνωστός ως Μέγιστος Κοινός Διαιρέτης τους (Greatest
6 ΑΣΥΜΜΕΤΡΗ ΚΡΥΠΤΟΓΡΑΦΙΑ
6 ΑΣΥΜΜΕΤΡΗ ΚΡΥΠΤΟΓΡΑΦΙΑ 6.1. Εισαγωγή Οι σύγχρονες κρυπτογραφικές λύσεις συμπεριλαμβάνουν κρυπτογραφία δημόσιου κλειδιού ή αλλιώς, ασύμμετρη κρυπτογραφία. Η ασύμμετρη κρυπτογραφία βασίζεται αποκλειστικά
Πρόβληµα 2 (12 µονάδες)
ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΑΘΗΜΑ: ΚΡΥΠΤΟΓΡΑΦΙΑ ΚΑΙ ΕΦΑΡΜΟΓΕΣ, 2015-2016 ΔΙΔΑΣΚΟΝΤΕΣ: Ε. Μαρκάκης, Θ. Ντούσκας Λύσεις 2 ης Σειράς Ασκήσεων Πρόβληµα 1 (12 µονάδες) 1) Υπολογίστε τον
Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων. Κρυπτογραφία. Θεωρία αριθμών Αλγεβρικές δομές. Χρήστος Ξενάκης
Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων Κρυπτογραφία Θεωρία αριθμών Αλγεβρικές δομές Χρήστος Ξενάκης Το σύνολο των ακεραίων Ζ = {..., -2, -1, 0, 1, 2,...} Το σύνολο των φυσικών Ν = {0, 1, 2,...}
ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ ΠΡΟΓΡΑΜΜΑ ΜΕΤΑΠΤΥΧΙΑΚΩΝ ΣΠΟΥΔΩΝ ΤΜΗΜΑΤΟΣ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ
ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ ΠΡΟΓΡΑΜΜΑ ΜΕΤΑΠΤΥΧΙΑΚΩΝ ΣΠΟΥΔΩΝ ΤΜΗΜΑΤΟΣ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΟ ΠΡΟΒΛΗΜΑ ΤΗΣ ΠΑΡΑΓΟΝΤΟΠΟΙΗΣΗΣ ΜΕΓΑΛΩΝ ΑΚΕΡΑΙΩΝ ΚΑΙ ΟΙ ΚΡΥΠΤΑΝΑΛΥΤΙΚΕΣ ΕΠΙΘΕΣΕΙΣ Διπλωματική Εργασία της Σακάρου
F 5 = (F n, F n+1 ) = 1.
Λύσεις Θεμάτων Θεωρίας Αριθμών 1. (α) Να δειχθεί ότι ο πέμπτος αριθμός της μορφής Fermat, δηλαδή ο F 5 2 25 + 1 διαιρείται από το 641. (β) Εστω F n η ακολουθία των αριθμών Fermat, δηλαδή F n 2 2n + 1,
ΥΠΟΛΟΓΙΣΤΙΚΗ ΚΡΥΠΤΟΓΡΑΦΙΑ
ΥΠΟΛΟΓΙΣΤΙΚΗ ΚΡΥΠΤΟΓΡΑΦΙΑ Εισαγωγή Άρης Παγουρτζής Στάθης Ζάχος Σχολή ΗΜΜΥ ΕΜΠ Διοικητικά του μαθήματος Διδάσκοντες Στάθης Ζάχος Άρης Παγουρτζής Πέτρος Ποτίκας (2017-18) Βοηθοί διδασκαλίας Παναγιώτης Γροντάς
Υπολογισμός της δύναμης z=x b modn
Υπολογισμός της δύναμης z=x b modn 1.Γράφουμε τον εκθέτη b στο δυαδικό σύστημα αρίθμησης i b = b i όπου i= 0 bi {0,1} I==0,1,,l-1.Εφαρμόζουμε έπειτα τον εξής αλγόριθμο: z=1 for I=l-1 downto 0 do z=z modn
Παύλος Εφραιμίδης. Βασικές Έννοιες Κρυπτογραφίας. Ασφ Υπολ Συστ
Παύλος Εφραιμίδης Βασικές Έννοιες Κρυπτογραφίας Ασφ Υπολ Συστ 1 Βασικές υπηρεσίες/εφαρμογές κρυπτογραφίες: Confidentiality, Authentication, Integrity, Non- Repudiation Βασικές έννοιες κρυπτογραφίας 2 3
Γραμμική Αλγεβρα ΙΙ Διάλεξη 1 Εισαγωγή Χρήστος Κουρουνιώτης Πανεπισ τήμιο Κρήτης 19/2/2014 Χ.Κουρουνιώτης (Παν.Κρήτης) Διάλεξη 1 19/2/ / 13
Γραμμική Άλγεβρα ΙΙ Διάλεξη 1 Εισαγωγή Χρήστος Κουρουνιώτης Πανεπιστήμιο Κρήτης 19/2/2014 Χ.Κουρουνιώτης (Παν.Κρήτης) Διάλεξη 1 19/2/2014 1 / 13 Εισαγωγή Τι έχουμε μάθει; Στο πρώτο μάθημα Γραμμικής Άλγεβρας
Περιεχόμενα 1 Κωδικοποίησ η Πηγής 2 Χωρητικότητα Διακριτών Καναλιών 2 / 21
Θεωρία Πληροφορίας και Στοιχεία Κωδίκων Κωδικοποίησ η Πηγής και Χωρητικότητα Διακριτών Καναλιών Διδάσ κων: Καλουπτσ ίδης Νικόλαος Επιμέλεια: Κατσ άνος Κωνσ ταντίνος Τμήμα Πληροφορικής και Τηλεπικοινωνιών
Εθνικό Μετσόβιο Πολυτεχνείο
Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Στοιχεία Θεωρίας Αριθμών & Εφαρμογές στην Κρυπτογραφία PROJECT Συνοπτική Παρουσίαση του Κβαντικού Αλγόριθμου Παραγοντοποίησης
Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά
Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά και Πληροφορικής Μαθηματικά Πανεπιστήμιο ΙΙ Ιωαννίνων
Στοιχεία Θεωρίας Αριθμών & Εφαρμογές στην Κρυπτογραφία
Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Σημειώσεις Διαλέξεων Στοιχεία Θεωρίας Αριθμών & Εφαρμογές στην Κρυπτογραφία Επιμέλεια σημειώσεων: Χρήστος Κούτρας Γιώργος
ΠΕΡΙΕΧΟΜΕΝΑ 1. Εισαγωγή 2. Θεωρία αριθμών Αλγεβρικές δομές 3. Οι κρυπταλγόριθμοι και οι ιδιότητές τους
ΠΕΡΙΕΧΟΜΕΝΑ 1. Εισαγωγή... 1 1.1. Ορισμοί και ορολογία... 2 1.1.1. Συμμετρικά και ασύμμετρα κρυπτοσυστήματα... 4 1.1.2. Κρυπτογραφικές υπηρεσίες και πρωτόκολλα... 9 1.1.3. Αρχές μέτρησης κρυπτογραφικής
Υπολογιστικά & Διακριτά Μαθηματικά
Υπολογιστικά & Διακριτά Μαθηματικά Ενότητα 11: Αριθμητική υπολοίπων-δυνάμεις Στεφανίδης Γεώργιος Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό
ΚΕΦΑΛΑΙΟ 3: Συνθήκες Αλυσίδων
ΚΕΦΑΛΑΙΟ 3: Συνθήκες Αλυσίδων Μελετάμε εδώ τη συνθήκη της αύξουσας αλυσίδας υποπροτύπων και τη συνθήκη της φθίνουσας αλυσίδας υποπροτύπων Αυτές συνδέονται μεταξύ τους με την έννοια της συνθετικής σειράς
Η εξίσωση του Fermat για τον εκθέτη n=3. Μία στοιχειώδης προσέγγιση
Η εξίσωση του Fermat για τον εκθέτη n=3. Μία στοιχειώδης προσέγγιση Αλέξανδρος Γ. Συγκελάκης 6 Απριλίου 2006 Περίληψη Θέµα της εργασίας αυτής, είναι η απόδειξη οτι η εξίσωση x 3 + y 3 = z 3 όπου xyz 0,
Αυθεντικοποίηση μηνύματος και Κρυπτογραφία δημόσιου κλειδιού
Αυθεντικοποίηση μηνύματος και Κρυπτογραφία δημόσιου κλειδιού Μ. Αναγνώστου 13 Νοεμβρίου 2018 Συναρτήσεις κατακερματισμού Απλές συναρτήσεις κατακερματισμού Κρυπτογραφικές συναρτήσεις κατακερματισμού Secure
Εφαρμοσμένη Κρυπτογραφία Ι
Εφαρμοσμένη Κρυπτογραφία Ι Κωνσταντίνου Ελισάβετ ekonstantinou@aegean.gr http://www.icsd.aegean.gr/ekonstantinou Συνολικό Πλαίσιο Ασφάλεια ΠΕΣ Εμπιστευτικότητα Ακεραιότητα Πιστοποίηση Μη-αποποίηση Κρυπτογράφηση
Οικονομικό Πανεπιστήμιο Αθηνών Τμήμα Πληροφορικής ΠΜΣ στα Πληροφοριακά Συστήματα Κρυπτογραφία και Εφαρμογές Διαλέξεις Ακ.
Οικονομικό Πανεπιστήμιο Αθηνών Τμήμα Πληροφορικής ΠΜΣ στα Πληροφοριακά Συστήματα Κρυπτογραφία και Εφαρμογές Διαλέξεις Ακ. Έτους 2011-2012 Μαριάς Ιωάννης Μαρκάκης Ευάγγελος marias@aueb.gr markakis@gmail.com
Ηλεκτρονικό εμπόριο. HE 7 Τεχνολογίες ασφάλειας
Ηλεκτρονικό εμπόριο HE 7 Τεχνολογίες ασφάλειας Πρόκληση ανάπτυξης ασφαλών συστημάτων Η υποδομή του διαδικτύου παρουσίαζε έλλειψη υπηρεσιών ασφάλειας καθώς η οικογένεια πρωτοκόλλων TCP/IP στην οποία στηρίζεται
Κρυπτογραφία. Θεωρία Αριθμών 2/4/2014. Θεωρία Αριθμών
Κρυπτογραφία Θεωρία Αριθμών Παύλος Εφραιμίδης v1.8, 02/04/2014 1 Θεωρία Αριθμών Θεωρία Αριθμών Ένας όμορφος κλάδος των μαθηματικών Απέκτησε μεγάλη πρακτική αξία χάρη στη Σύγχρονη Κρυπτογραφία Η Υπολογιστική
Περιεχόμενα. Κεφάλαιο 3 Οι ιδιότητες των αριθμών Αριθμητικά σύνολα Ιδιότητες Περισσότερες ιδιότητες...
Περιεχόμενα Πρόλογος 5 Κεφάλαιο Βασικές αριθμητικές πράξεις 5 Τέσσερις πράξεις 5 Σύστημα πραγματικών αριθμών 5 Γραφική αναπαράσταση πραγματικών αριθμών 6 Οι ιδιότητες της πρόσθεσης και του πολλαπλασιασμού
Εφαρμοσμένη Κρυπτογραφία Ι
Εφαρμοσμένη Κρυπτογραφία Ι Κωνσταντίνου Ελισάβετ ekonstantinou@aegean.gr http://www.icsd.aegean.gr/ekonstantinou ιαχείριση Κλειδιών Ορισμός: Εγκαθίδρυση κλειδιού (key establishment) είναι η διαδικασία
2 Η ολοκλήρωση της διπλωματικής εργασίας συγχρηματοδοτήθηκε μέσω του Εργου «Υποτροφίες ΙΚΥ» από πόρους του ΕΠ «Εκπαίδευση και Δια Βίου Μάθηση», του Ευ
Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Εφαρμοσμένων Μαθηματικών και Φυσικών Επιστημών Δ.Π.Μ.Σ. Εφαρμοσμένες Μαθηματικές Επιστήμες Μεταπτυχιακή Εργασία Διάταξη και Θεωρία Γενικής Ισορροπίας Μαρία Παπαδάκη Επιβλέπων
Κεφάλαιο 5. Το Συμπτωτικό Πολυώνυμο
Κεφάλαιο 5. Το Συμπτωτικό Πολυώνυμο Σύνοψη Στο κεφάλαιο αυτό παρουσιάζεται η ιδέα του συμπτωτικού πολυωνύμου, του πολυωνύμου, δηλαδή, που είναι του μικρότερου δυνατού βαθμού και που, για συγκεκριμένες,
Ε Μέχρι 31 Μαρτίου 2015.
Ε Μέχρι 31 Μαρτίου 2015. 1 Αντικείμενα: δακτύλιοι Fraleigh, 4.1. Ορισμός έννοιας «δακτυλίου». Χαρακτηρισμοί δακτυλίων και στοιχείων αυτών: Δακτύλιος R Στοιχεία δακτυλίου R / (= δεν έχει μηδενοδιαιρέτες
ΑΛΓΟΡΙΘΜΟΙ ΚΑΙ ΠΟΛΥΠΛΟΚΟΤΗΤΑ 2 ΕΠΙΜΕΛΕΙΑ :ΣΤΟΥΚΑ ΑΙΚΑΤΕΡΙΝΗ-ΠΑΝΑΓΙΩΤΑ ΜΕΤΑΠΤΥΧΙΑΚΟ:ΜΠΛΑ
ΑΛΓΟΡΙΘΜΟΙ ΚΑΙ ΠΟΛΥΠΛΟΚΟΤΗΤΑ 2 ΕΠΙΜΕΛΕΙΑ :ΣΤΟΥΚΑ ΑΙΚΑΤΕΡΙΝΗ-ΠΑΝΑΓΙΩΤΑ ΜΕΤΑΠΤΥΧΙΑΚΟ:ΜΠΛΑ Η Alice θέλει να στείλει ένα μήνυμα m(plaintext) στον Bob μέσα από ένα μη έμπιστο κανάλι και να μην μπορεί να το
Ε Μέχρι 18 Μαΐου 2015.
Ε Μέχρι 18 Μαΐου 2015. 1 Αντικείμενα: δακτύλιοι Fraleigh, 4.1. Ορισμός έννοιας «δακτυλίου». Χαρακτηρισμοί δακτυλίων και στοιχείων αυτών: Δακτύλιος R Στοιχεία δακτυλίου R / (= δεν έχει μηδενοδιαιρέτες άρα
Παύλος Εφραιμίδης. Βασικές Έννοιες Κρυπτογραφίας. Ασφ Υπολ Συστ
Παύλος Εφραιμίδης Βασικές Έννοιες Κρυπτογραφίας Ασφ Υπολ Συστ 1 θα εξετάσουμε τα ακόλουθα εργαλεία κρυπτογραφίας: ψηφιακές υπογραφές κατακερματισμός (hashing) συνόψεις μηνυμάτων μ (message digests) ψευδοτυχαίοι
Εισαγωγή στην επιστήμη της Πληροφορικής και των Τηλεπικοινωνιών. Aσφάλεια
Εισαγωγή στην επιστήμη της Πληροφορικής και των Τηλεπικοινωνιών Aσφάλεια Περιεχόμενα Πλευρές Ασφάλειας Ιδιωτικό Απόρρητο Μέθοδος Μυστικού Κλειδιού (Συμμετρική Κρυπτογράφηση) Μέθοδος Δημόσιου Κλειδιού (Ασύμμετρη
Περιεχόμενα. Κεφάλαιο 3 Οι ιδιότητες των αριθμών... 37 3.1 Αριθμητικά σύνολα... 37 3.2 Ιδιότητες... 37 3.3 Περισσότερες ιδιότητες...
Περιεχόμενα Πρόλογος... 5 Κεφάλαιο Βασικές αριθμητικές πράξεις... 5. Τέσσερις πράξεις... 5. Σύστημα πραγματικών αριθμών... 5. Γραφική αναπαράσταση πραγματικών αριθμών... 6.4 Οι ιδιότητες της πρόσθεσης
El Gamal Αλγόριθμος. Κώστας Λιμνιώτης Κρυπτογραφία - Εργαστηριακό μάθημα 7 2
Κρυπτογραφία Εργαστηριακό μάθημα 7 (Αλγόριθμοι Δημοσίου Κλειδιού) α) El Gamal β) Diffie-Hellman αλγόριθμος για την ανταλλαγή συμμετρικού κλειδιού κρυπτογράφησης El Gamal Αλγόριθμος Παράμετροι συστήματος:
7. O κβαντικός αλγόριθμος του Shor
7. O κβαντικός αλγόριθμος του Shor Σύνοψη Ο κβαντικός αλγόριθμος του Shor μπορεί να χρησιμοποιηθεί για την εύρεση της περιόδου περιοδικών συναρτήσεων και για την ανάλυση ενός αριθμού σε γινόμενο πρώτων
Οικονομικό Πανεπιστήμιο Αθηνών Τμήμα Πληροφορικής ΠΜΣ στα Πληροφοριακά Συστήματα Κρυπτογραφία και Εφαρμογές Διαλέξεις Ακ.
Οικονομικό Πανεπιστήμιο Αθηνών Τμήμα Πληροφορικής ΠΜΣ στα Πληροφοριακά Συστήματα Κρυπτογραφία και Εφαρμογές Διαλέξεις Ακ. Έτους 2015-2016 Μαρκάκης Ευάγγελος markakis@aueb.gr Ντούσκας Θεόδωρος tntouskas@aueb.gr
4.3 Fourier Lucas-Kanade... 34
ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ Διατμηματικό Μεταπτυχιακό Πρόγραμμα Σπουδών Συσ τήματα Επεξεργασ ίας Σημάτων και Επικοινωνιών (ΣΕΣΕ) Διπλωματική Εργασ ία Σταθμισ
Υπολογιστικά & Διακριτά Μαθηματικά
Υπολογιστικά & Διακριτά Μαθηματικά Ενότητα 1: Εισαγωγή- Χαρακτηριστικά Παραδείγματα Αλγορίθμων Στεφανίδης Γεώργιος Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.
f(t) = (1 t)a + tb. f(n) =
Παράρτημα Αʹ Αριθμήσιμα και υπεραριθμήσιμα σύνολα Αʹ1 Ισοπληθικά σύνολα Ορισμός Αʹ11 (ισοπληθικότητα) Εστω A, B δύο μη κενά σύνολα Τα A, B λέγονται ισοπληθικά αν υπάρχει μια συνάρτηση f : A B, η οποία
Υπολογιστικά Προβλήματα και Αλγόριθμοι στην Κρυπτογραφία
Κεφάλαιο 4 Υπολογιστικά Προβλήματα και Αλγόριθμοι στην Κρυπτογραφία Στο κεφάλαιο αυτό θα περιγράψουμε βασικούς αλγόριθμους που σχετίζονται με έννοιες της Θεωρίας Αριθμών και έχουν άμεση εφαρμογή στην κρυπτογραφία.
Μορφές αποδείξεων Υπάρχουν πολλά είδη αποδείξεων. Εδώ θα δούμε τα πιο κοινά: Εξαντλητική μέθοδος ή μέθοδος επισκόπησης. Οταν το πρόβλημα έχει πεπερασμ
Μαθηματικά Πληροφορικής 4ο Μάθημα Τμήμα Πληροφορικής και Τηλεπικοινωνιών Πανεπιστήμιο Αθηνών Μορφές αποδείξεων Υπάρχουν πολλά είδη αποδείξεων. Εδώ θα δούμε τα πιο κοινά: Εξαντλητική μέθοδος ή μέθοδος επισκόπησης.
Κατάλογος Σχηµάτων. Κατάλογος Πινάκων. I Κρυπτανάλυση 21
Κατάλογος Σχηµάτων Κατάλογος Πινάκων ix xiv xvi I Κρυπτανάλυση 21 1 Βασικές αρχές κρυπτανάλυσης 23 1.1 Εισαγωγή....................... 24 1.2 Βασικές επιθέσεις................... 25 1.3 Η επίθεση του Hellman-TMTO............
1 Ψηφιακές Υπογραφές. 1.1 Η συνάρτηση RSA : Η ύψωση στην e-οστή δύναμη στο Z n. Κρυπτογραφία: Αρχές και πρωτόκολλα Διάλεξη 6. Καθηγητής Α.
1 Ψηφιακές Υπογραφές Η ψηφιακή υπογραφή είναι μια βασική κρυπτογραφική έννοια, τεχνολογικά ισοδύναμη με την χειρόγραφη υπογραφή. Σε πολλές Εφαρμογές, οι ψηφιακές υπογραφές χρησιμοποιούνται ως δομικά συστατικά
Ποιες από τις παρακάτω προτάσεις είναι αληθείς; Δικαιολογήστε την απάντησή σας.
Ποιες από τις παρακάτω προτάσεις είναι αληθείς; Δικαιολογήστε την απάντησή σας. 1. Κάθε πολυώνυμο ανάγωγο επί του Z είναι ανάγωγο επί του Q. Σωστό. 2. Κάθε πολυώνυμο ανάγωγο επί του Q είναι ανάγωγο επί
Εισαγωγή στην επιστήμη της Πληροφορικής και των. Aσφάλεια
Εισαγωγή στην επιστήμη της Πληροφορικής και των Τηλεπικοινωνιών Aσφάλεια Περιεχόμενα Πλευρές Ασφάλειας Ιδιωτικό Απόρρητο Μέθοδος Μυστικού Κλειδιού (Συμμετρική Κρυπτογράφηση) Μέθοδος Δημόσιου Κλειδιού (Ασύμμετρη