ΚΡΥΠΤΟΓΡΑΦΙΑ ΚΑΙ ΠΟΛΥΠΛΟΚΟΤΗΤΑ PRIMES P Επιµέλεια : Γεωργίου Κωνσταντίνος Ιούνιος 003 Από τα αριστερά προς τα δεξία Saena, Kayal και Agawal
Η ασχολία της ανθρωπότητας µε τους πρώτους αριθµούς Παράδοση (300 π.χ. 003) Οι άνθρωποι συλλέγουν σπάνια και όµορφα αντικείµενα Κανείς δεν εµίσησε τη δόξα Ελεγχος hadwae. Το bug του Pentium βρέθηκε σε εφαρµογή περί δίδυµων πρώτων. Οι Pentium II και Pentium Po ελέγχονται µε εφαρµογές για πρώτους
Ιστορική αναδροµή για την πιστοποίηση πρώτων Το κόσκινο του Ερατοσθένη (40 π.χ.) Το µικρό θεώρηµα του Femat (7 ος αιώνας) : Για κάθε πρώτο και κάθε a µε ( a, ) = ισχύει ότι a mod Mille και Rabin (976) : Πολυωνυµικός αλγόριθµος πιστοποίησης πρώτων βασισµένος στη γενικευµένη υπόθεση του Riemann. Mille, Solovay και Stassen (977) : Pimes in co-rp 3
Adleman, Pomeance και Rumely (983) : c log log log n Πιστοποίηση σε χρόνο k( log n) Cohen και Lensta : θεωρητική και αλγοριθµική απλοποίηση Goldwasse και Killian (986) : Αναµενόµενος πολυωνυµικός χρόνος βασισµένος σε ελλειπτικές καµπύλες. Atkin : διαφοροποιεί τον αλγόριθµο στον ECPP Adleman και Huang (99) : Tροποποιούν τον αλγόριθµο των Goldwasse και Killian σε µια andomized µέθοδο θέτοντας το Pimes στην κλάση RP άρα και στη ZPP. Maninda, Kayal and Nitin (00) : Pimes in P Ellitic Cuve Pimality Poving algoithm 4
Η αντιµετώπιση από τον Τύπο και η αλήθεια New Yok Times : Τρεις Ινδοί έφεραν επανάσταση. Πλέον ο υπολογιστής µπορεί γρήγορα και οριστικά να αποφασίζει αν ένας αριθµός είναι πρώτος Sunday N.Y.T. : Ο νέος αλγόριθµος µπορεί να παράγει τόσο µαζικά µεγάλους πρώτους που µπορεί να εγγυηθεί απόλυτη ασφάλεια στο διαδίκτυο Wall Steet Jounal : Ένα υπέροχο µυαλό από την Ινδία θέτει το διαδίκτυο σε συναγερµό Neue Züiche Zeitung : Για πρώτη φορά µπορούµε να πιστοποιήσουµε πρώτους σε λογικό χρόνο 5
ιαδίκτυο : Επιτέλους, οι πρώτοι αριθµοί µπορούν να υπολογιστούν επακριβώς Επιτέλους κανείς µπορεί να υπολογίζει πρώτους χωρίς κλάµατα Ο µεγαλύτερος γνωστός αριθµός έχει περίπου 4.000.000 ψηφία Με προσεκτική υλοποίηση ο αλγόριθµος µπορεί να πιστοποιήσει 30-ψήφιους πρώτους σε ηµέρα Τα κλειδιά στην κρυπτογραφία είναι της τάξης των εκατοντάδων ψηφίων 6
Η καινοτοµία του νέου αλγορίθµου Αιτιοκρατικός Μη πιθανοτικός Λογαριθµικός στην είσοδο και άρα πολυωνυµικός στο µήκος της εισόδου Ο αλγόριθµος είναι embaallel ως προς το χρόνο αλλά όχι και το χώρο ε βασίζεται σε εικασίες. Σοβαρές εικασίες και παραλλαγές που κατεβάζουν την πολυπλότητα πολύ χαµηλά 7
Αναφορά στην κρυπτογραφία Γνωστοί από παλιά γρήγοροι και αποδοτικοί αλγόριθµοι Ήδη γνωστές µέθοδοι για παραγωγή µεγάλων κλειδιών Η πιστοποίηση των πρώτων δε σχετίζεται µε την παραγοντοποίηση Συµβολή µόνο σε θεωρητικό υπόβαθρο 8
Βασικοί ορισµοί και προτάσεις Έστω a Z, N µε ( a, ) =. Ορίζουµε ως τάξη του a mod, k το µικρότερο φυσικό k για τον οποίο a mod, και θα συµβολίζεται µε o (a). Με φ() θα συµβολίζεται η συνάρτηση Eule, το πλήθος δηλαδή των φυσικών µικρότερων του που είναι σχετικά πρώτοι µαζί του. Με F, µε πρώτος θα συµβολίζω το σώµα Galois, το πεπερασµένο δηλαδή σώµα µε στοιχεία. 9
Στο δακτύλιο των πολυωνύµων F [ ] h( ), η ισότητα f ( ) = g( ) θα συµβολίζεται µε f ) g ( ) mod h( ), ( ) (. Για τυχαία συνάρτηση t (n), µε O ~ ( t( n) ) θα συµβολίζεται η κλάση O( t( n) oly logt( n) ) Έστω a Z, N µε ( a, ) =. Τότε o ( a) / φ( ). k k O ~ n = O n oly n = O n oly n Για παράδειγµα, ( log ) (log ( ) log log ) (log ( ) log log ) ε k k+ ε αφού ε > 0, log n oly log log n, O ~ ( log n) = O( log n) k k, και 0
Βασικό λήµµα Λήµµα : Έστω a, σχετικά πρώτοι µεταξύ τους. Τότε τα επόµενα είναι ισοδύναµα : O είναι πρώτος ανν ( a) ( a) mod Γενίκευση του µικρού θεωρήµατος του Femat Επαναχρησιµοποίσηση µετά την προσπάθεια των Agawal και Biswas (999) που απέδοσε ένα andomized αλγόριθµο.
Απόδειξη : ιώνυµο του Νεύτωνα ( a) = ( a) i= 0 i i i Θεωρούµε το πολυώνυµο ( a) ( a) Συντελεστής µεγιστοβάθµιου όρου : Σταθερός όρος : a a = a( a ), µηδενικό στο δακτύλιο Z από το θεώρηµα Eule 0 Υπόλοιποι συντελεστές : ( a) i, µε /, αφού 0 < i <. i i
Έστω οτι. ( ) ( ) a a mod Ας υποθέσουµε (προς άτοπο) οτι ο δεν είναι πρώτος. k k k = Έστω η ανάλυση σε πρώτους παράγοντες. l l L Θεωρούµε πάλι το πολυώνυµο ( ) ( ) a a Συντελεστής του : ( ) a Ο δε διαιρεί το, ( ) a ( ), = a Ο δε διαιρεί το διότι : ( ) ( ) ( ) ( ) ( ) = + = + = =!!!!!!! L L 3
( ) ( ) ( )! + l k l k k L L και ο δε διαιρεί κανένα παράγοντα του γινοµένου ( ) ( ) + L Ώστε ( ) 0 mod a και έτσι καταλήγουµε σε αντίφαση. 4
Σχόλια για το βασικό λήµµα και η ιδέα ( ) ( ) Ο έλεγχος a a mod µπορεί να χρειαστεί εκθετικά πολλούς ελέγχους διαιρετότητας Μείωση των ελέγχων µέσω της µείωσης του βαθµού του πολυωνύµου πολυωνύµων mod ( ) Εύρεση κατάλληλου µε στόχο τον υπολογισµό των δύο Μπορεί να βρεθεί ένα τέτοιο γρήγορα ; 5
Είναι ο έλεγχος? ( ) ( a a) ( mod, ) αποδοτικός για την πιστοποίηση πρώτων ; Αν πραγµατικά µειώνεται το πλήθος των ελέγχων, πόσο µειώνεται η πολυπλοκότητα ; Υπάρχει ισοδυναµία µεταξύ των δύο κριτηρίων ; 6
Παρατηρήσεις? ( ) ( ) ( ) Ο έλεγχος a a mod, δεν είναι ισοδύναµος µε τον ( a) ( a) mod ( a) ( a) mod ( ) ( ) ( Αν πρώτος τότε και άρα a a mod, ) ( ) ( ) ( ) Η σχέση a a mod, µόνο για πρώτους αριθµούς δεν ικανοποιείται Μπορούν να βρεθούν κατάλληλα a, έτσι ώστε ( a) ( a) mod(, ) ανν πρώτος 7
inut : ακέραιος n > Ο αλγόριθµος b. if (n = a, για κάποια a N,b > ) outut : COMPOSITE. Βρες το µικρότερο για το οποίο o (n) > 4log n 3. if < (a, n) < n για κάποιο a, outut : COMPOSITE if n outut : PRIME 4., 5. fo a = to φ() log n do n n a a mod 6. outut : PRIME if ( ) ( ) (, n) outut : COMPOSITE 8
Ορθότητα του αλγορίθµου Λήµµα : Έστω LCM (m) το ελάχιστο κοινό πολλαπλάσιο των πρώτων αριθµών. Τότε για m 7 m LCM ( m) m Θεώρηµα : Ο παραπάνω αλγόριθµος επιστρέφει PRIME ανν ο ακέραιος n είναι πρώτος. Λήµµα : Αν ο n είναι πρώτος, τότε ο αλγόριθµος επιστρέφει PRIME. 9
Απόδειξη : Αν ο n είναι πρώτος τότε : Βήµα ο b : δεν υπάρχουν a N,b >, µε n = a. Βήµα 3 ο : για κάθε a, (a, n) = Βήµα 5 ο : από το πόρισµα του βασικού λήµµατος έχουµε ( a) ( a) mod(, ) Εποµένως ο αλγόριθµος έστω και στο 7 ο βήµα επιστρέφει PRIME 0
Πορεία προς την αντίθετη κατεύθυνση του θεωρήµατος Ο αλγόριθµος επιστρέφει PRIME στα βήµατα 4 και 6 Αν στο 4 ο βήµα ο αλγόριθµος επιστρέψει PRIME τότε ο είναι πρώτος (από το 3 ο βήµα και αφού n ) n Αν στο 6 ο βήµα ο αλγόριθµος επιστρέψει PRIME τότε είναι ο n πρώτος ; Η αντίθετη πορεία του θεωρήµατος βασίζεται στα βήµατα και 5. Καταρχήν ο αριθµός που αναζητείται στο ο βήµα πράγµατι υπάρχει.
5 Λήµµα : Υπάρχει, 6log n έτσι ώστε o ( n) > 4log n. Απόδειξη : Ας είναι,,, K t όλοι οι αριθµοί µε ( n) 4log n o i Αν o ( n) = k i i, τότε ο i διαιρεί το n k i Αφού k i 4log n, κάθε ένα από τα i διαιρεί το γινόµενο Εύκολα παρατηρούµε οτι : 4log Π= i 4 log n i ( ) ( )( ) 4 log n i=π n n i ( n ) ( ) + + K 4 log n 6log n 6log n n n n 4 = n n K 5
Το ελάχιστο κοινό πολλαπλάσιο των 6log 5 n πρώτων 5 6log n αριθµών είναι τουλάχιστον (από προηγούµενο λήµµα) Όλοι οι i µε ( n) 4log n, διαιρούν κάτι φραγµένο από 5 6log n o i Αρα εάν όλοι οι αριθµοί µέχρι και τον 6log 5 n είχαν την ιδιότητα o ( n) 4log n i θα έπρεπε να διαιρούν κάτι µικρότερο από το ελάχιστο κοινό τους πολλαπλάσιο 5 Εποµένως υπάρχει 6log n έτσι ώστε o ( n) 4log n. i 3
Το προηγούµενο λήµµα εξασφαλίζει ένα µε µια χρήσιµη ιδιότητα Το ζητούµενο µπορεί να βρεθεί γρήγορα Στη συνέχεια θα θεωρούµε οτι ο αλγόριθµος έχει αποφανθεί στο 6 ο βήµα PRIME και θα προσπαθούµε να δείξουµε την ορθότητα αυτής της θέσης Λήµµα : Έστω πρώτος παράγοντας του n και όπως στο * προηγούµενο λήµµα. Ισχύει οτι > και, n Z 4
Απόδειξη : Έστω ένας πρώτος παράγοντας του n. Αν ο ήταν µικρότερος από, τότε θα είχε αποφανθεί ήδη ο αλγόριθµος στα βήµατα 3 ή 4. Η συνθήκη του αλγορίθµου στο 3 ο του βήµα δεν έχει ικανοποιηθεί και άρα οι n, είναι σχετικά πρώτοι Αν ο διαιρούσε τον, τότε οι n, δε θα ήταν σχετικά πρώτοι Οπότε οι, n δε µπορεί να είναι τα ουδέτερα στοιχεία στο Z. 5
Η ανάγκη για ένα νέο ορισµό Ας είναι στο εξής l = φ( ) logn Στο 5 ο βήµα η συνθήκη δεν ικανοποιείται ποτέ και άρα n n ( a) ( a) mod(,n) για κάθε a µε a l Αν ο είναι ένας πρώτος παράγοντας του, τότε n n ( a) ( a) mod(,), για κάθε a µε a l Από το 3 ο βήµα έχουµε οτι ( a, ) =, και εποµένως από το βασικό λήµµα ( a) ( a) mod(,), για κάθε a µε a l n 6
Αν ο είναι ένας πρώτος παράγοντας του τότε και οι δύο έχουν την ίδια συµπεριφορά για το βοηθητικό πολυώνυµο n Ορισµός : Ένα m N θα λέγεται ενδοσκοπικό (intosective) για ένα πολυώνυµο f ( ) αν ισχύει οτι f m m ( ) f ( ) mod(, ). Οι φυσικοί, n είναι ενδοσκοπικοί για τα πολυώνυµα a, a µε a l. 7
Σηµαντικές ιδιότητες των ενδοσκοπικών αριθµών Η ιδιότητα των ενδοσκοπικών αριθµών είναι κλειστή για το πολλαπλασιασµό των αριθµών. Η ιδιότητα των ενδοσκοπικών αριθµών είναι κλειστή για το πολλαπλασιασµό των πολυωνύµων. m,m' Λήµµα : Έστω οτι οι φυσικοί είναι ενδοσκοπικοί για ένα πολυώνυµο f (). Τότε και ο m m' είναι ενδοσκοπικός για το πολυώνυµο f (). 8
Απόδειξη : Ο m είναι ενδοσκοπικός για το πολυώνυµο f () : m m f ( ) f ( ) mod(, ) m m ' m ' m f ( ) f ( ) mod(, ) () Οµοίως για το ' έχουµε f f m ' m ' m ( ) ( ) mod(, ) m Θέτοντας προκύπτει m ' m m m ' m f ( ) f ( ) mod(, ) και επειδή ( ) ( m ) έχουµε οτι m' m m m' f ( ) f ( ) mod(, ) () 9
Από τις () και () προκύπτει ) ( ) ( ' ' f f m m m m ), mod( ) Λήµµα : Έστω ενδοσκοπικό για δύο πολυώνυµα. Τότε το m είναι ενδοσκοπικό και για το πολυώνυµο ). m ( ), ( g f ( ) ( g f Απόδειξη : Πολύ πιο απλά ( ) ), ) mod( ( ) ( ) ( ) ( ) ( ) ( ) ( intosective ) intosective g( g f g f g f m m f m m m m m 30
Ορισµός µιας σηµαντικής οµάδας Ορίζουµε τα σύνολα j I = n i, j 0 και { } l i P = Π( a) { } e 0 Κάθε στοιχείο του πρώτου είναι ενδοσκοπικό για κάθε στοιχείο του δεύτερου Σύµφωνα µε προηγούµενο λήµµα έχει νόηµα να ορίσω ως * µια υποοµάδα της Z,τα στοιχεία του I modulo Στο εξής αυτή η οµάδα θα τη συµβολίζουµε µε G. a= e a a 3
t Λήµµα : Η τάξη της οµάδας G είναι µεγαλύτερη από 4 log n. Απόδειξη : Από το ο βήµα έχουµε οτι για το ισχύει o ( n) > 4log n. εν υπάρχει δύναµη του µικρότερη από 4 log n που να µας δίνει το µοναδιαίο στοιχείο mod. Η οµάδα G παράγεται από το γινόµενο των n, mod. Άρα θα έχει τουλάχιστον 4 log n στοιχεία. n 3