Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Στοιχεία Θεωρίας Αριθμών & Εφαρμογές στην Κρυπτογραφία PROJECT Συνοπτική Παρουσίαση του Κβαντικού Αλγόριθμου Παραγοντοποίησης του Shor Φοιτητής ΣΗΜΜΥ: Στράτος Παλαιολόγος Α.Μ. 0306008
Εισαγωγή Σκοπός της εργασίας είναι η παρουσίαση του κβαντικού αλγόριθμου παραγοντοποίησης του Shor που παρουσιάστηκε στην εργασία του Polynomial-Time Algorithms for Prime Factorization and Discrete Logarithms on a Quantum Computer το 997. Σε αυτήν την εργασία θα αναφερθούμε σε ορισμένες βασικές αρχές της λειτουργίας των κβαντικών επεξεργαστών, στην κβαντική ύψωση σε δύναμη, στον κβαντικόν αλγόριθμο μετασχηματισμού Fourier και στον ίδιο τον αλγόριθμο παραγοντοποίησης του Shor. Τέλος, αναφέρεται και ο αλγόριθμος επίλυσης του DLP. 2 Κβαντικοί Επεξεργαστές Οι κβαντικοί επεξεργαστές χρησιμοποιούν ως δομικό συστατικό πληροφορίας το ubit, το οποίο διαφέρει από το κλασικό bit στα εξής δυο: ότι αποθηκεύει ταυτόχρονα την τιμή 0 και (υπέρθεση) και κατά τη μέτρηση δίνει μια από τις δυο τιμές. Θα χρησιμοποιούμε τον συμβολισμό x για να ορίζουμε μια κβαντική κατάσταση όπου x είναι η βάση της (για ένα ubit είναι το 0 ή το ). Έτσι, για μπορούμε να ορίσουμε μαθηματικά την κατάσταση ενός ubit ως την υπέρθεση x =α 0 + β όπου α και β είναι μιγαδικοί αριθμοί, τα τετράγωνα των μέτρων των οποίων μας δίνουν την πιθανότητα να λάβουμε την αντίστοιχη παρατήρηση. Το άθροισμα προφανώς αυτών των τετραγώνων είναι ίσο με. Επεκτείνοντας το παραπάνω για ένα σύστημα με n ubits χρειαζόμαστε 2 n αριθμούς για να περιγράψουμε την κατάστασή του, οπότε μπορούμε να δώσουμε την υπέρθεση: 2 n i =0 a i S i, οπότε σχηματίζουμε ένα διάνυσμα (ή μπορούμε να το δούμε και ως πίνακα). Η ισχυρή διατύπωση της θέσης του Church-Turing: Κάθε φυσικό υπολογιστικό σύστημα μπορεί να εξομοιωθεί με μια μηχανή Turing σε αριθμό βημάτων πολυωνυμικό ως προς τους πόρους που χρησιμοποιεί το υπολογιστικό σύστημα έχει μια επιπλέον σημασία για τους κβαντικούς επεξεργαστές. Οι πόροι που μας ενδιαφέρουν είναι πέρα από τη μνήμη και το χώρο (όπως στους συμβατικούς υπολογιστές) και η ακρίβεια. Καλό είναι η ακρίβεια να μεγαλώνει πολυωνυμικά σε σχέση με το μήκος της εισόδου. Μια από τις βασικότερες ιδιότητες των κβαντικών επεξεργαστών είναι ότι οποτεδήποτε μετρηθεί ένα ubit τότε αυτό το ubit θα παραμείνει σε αυτήν την κατάσταση στην οποία μετρήθηκε. Επειδή, όμως, αυτό που κατά κύριο λόγο εκμεταλλευόμαστε στους κβαντικούς υπολογιστές είναι η υπέρθεση αποφεύγουμε αυτό το πρόβλημα κάνοντας όλους τους υπολογισμούς αντιστρέψιμους. Έτσι, χρησιμοποιούνται ειδικές λογικές πύλες, όπως η Toffoli και η Fredkin, από τις οποίες έπειτα φτιάχνονται οι κλασικές πύλες (AND,OR,NOT). 3 Ύψωση σε Δύναμη και Μετασχηματισμός Fourier Πριν περιγράψουμε τον αλγόριθμο του Shor, θα αναφερθούμε στον τρόπο επίλυσης δυο προβλημάτων: την κβαντική ύψωση σε δύναμη modulo n και τον κβαντικό μετασχηματισμό Fourier. Το πρώτο πρόβλημα έχει ως εξής: Δοθέντος n, x, r να βρεθεί η τιμή x r (mod n). Ενώ στους κλασικούς υπολογιστές η υλοποίηση αυτού του προβλήματος γίνεται αποδοτικά με τον αλγόριθμο του επαναλαμβανόμενου τετραγωνισμού, στους κβαντικούς υπολογιστές τα πράγματα είναι πιο δύσκολα, καθώς πρέπει να όλες οι συναρτήσεις μας να είναι αντιστρέψιμες. Στον αλγόριθμο του Shor το r είναι μια υπέρθεση καταστάσεων, ενώ τα x και n είναι σταθεροί ακέραιοι. Ο ψευδοκώδικας είναι ο
ακόλουθος: power := for i = 0 to l - if ( r i == ) then endif endfor power := power x (2i) mod n Έτσι, χωρίς να αλλάξουμε την κατάσταση του r ( r i είναι το ι-οστό ubit του r) μπορούμε να υπολογίσουμε το αποτέλεσμα, χρησιμοποιώντας επαναλαμβανόμενο τετραγωνισμό. Το μόνο πρόβλημα που αντιμετωπίζει στην υλοποίησή του ο ψευδοκώδικας είναι η υλοποίηση του πολλαπλασιασμού σε ένα ολοκληρωμένο κύκλωμα (αφού το x (2i ) mod n μπορεί να υπολογιστεί με τον κλασικό τρόπο και έπειτα να δοθεί ως είσοδος στο ολοκληρωμένο). Η ιδέα που χρησιμοποιείται είναι αυτή της επαναλαμβανόμενης πρόσθεσης. Για να γίνει αυτό το βήμα αντιστρέψιμο πρέπει το gcd(c,n) =, όπου c είναι ο πολλαπλασιαστής. Το δεύτερο πρόβλημα είναι ο κβαντικός μετασχηματισμός Fourier, όπου η κατάσταση α μετασχηματίζεται στην κατάσταση c exp( 2πiαc ). Για την υλοποίησή του σε κβαντικό ( 2 ) c=0 επεξεργαστή χρειαζόμαστε δυο ειδών πύλες R και S, των οποίων οι πίνακες αληθείας δίνονται παρακάτω: R j 0 0 / 2 / 2 / 2 / 2 S ( j, k) 00 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 e (iθ (κ j )) Τα ubits πάνω στα οποία ενεργούν είναι τα j, k. Όταν εφαρμόσουμε αυτές τις πύλες με την ακόλουθη σειρά παίρνουμε το επιθυμητό αποτέλεσμα. R (l ) S (l 2, l ) R (l 2) S (l 3,l ) S (l 3,l 2) R (l 3)...R S (0, l ) S (0, l 2)... S (0,2) S (0,) R0
4 Κβαντικός Αλγόριθμος Παραγοντοποίησης του Shor Το πρόβλημα είναι ως εξής: να βρεθούν οι μη-τετριμμένοι διαιρέτες ενός αριθμού n. Μπορούμε να χωρίσουμε σε δυο μέρη τον αλγόριθμο. Το πρώτο μέρος είναι η εύρεση της θέσης ενός στοιχείου x στην πολλαπλασιαστική ομάδα (mod n), δηλαδή η εύρεση του μικρότερου r τέτοιου ώστε x r (mod n). Το δεύτερο μέρος είναι ο υπολογισμός των gcd (x ( r 2 ), n) και gcd (x ( r 2 ) +, n), οπότε μπορούμε να βρούμε έναν διαιρέτη του n. Το δεύτερο βήμα είναι γνωστό και υλοποιείται εύκολα και γρήγορα. Η καινοτομία του αλγορίθμου είναι το πρώτο βήμα. Χρησιμοποιεί δυο καταχωρητές, ας τους ονομάσουμε r, r2. Τα στάδια που ακολουθεί είναι:. Διαλέγουμε έναν τυχαίο αριθμό, ο οποίος έχει μικρούς πρώτους παράγοντες και για τον οποίο ισχύει 2n 2 <<3n 2. Έχουμε σταθερούς τους αριθμούς x, n, οι οποίοι κατά τη διάρκεια της διαδικασίας δε θα πειραχθούν. 2. Στον r φορτώνουμε την υπέρθεση αριθμών α, με α<. Δηλαδή στον r βρίσκονται όλοι οι αριθμοί από 0 έως - ή πιο μαθηματικά η κατάσταση του συστήματος είναι α 0 (στον r2 είναι το 0, αφού δεν έχουμε φορτώσει τίποτα. ( 2 ) c=0 3. Όπως δείξαμε στην προηγούμενη παράγραφο, με παράλληλη επεξεργασία υπολογίζουμε στον r2 τις τιμές x α (mod n), οπότε η κατάσταση του συστήματος γίνεται α x α (mod n). Η διαδικασία είναι αντιστρέψιμη, αφού κράταμε στον r το α. ( 2 ) c=0 4. Εφαρμόζουμε μετασχηματισμό Fourier στον r, οπότε κάθε α αντιστοιχίζεται c exp( 2πiαc )., όπως είδαμε πιο πάνω. Έτσι, η τελική κατάσταση του συστήματός μας ( 2 ) c=0 c=0 είναι c exp( 2πiαc ) x α (mod n). Χρειαζόμαστε αυτό το βήμα, γιατί με αυτόν τον τρόπο a=0 είναι σαν να κάνουμε δειγματοληψία ανά /r. 5. Παρατηρούμε το σύστημα, παίρνοντας μια κατάσταση c, x k (mod n). Αυτό που μας ενδιαφέρει είναι το c, γι' αυτό χρησιμοποιήσαμε και το Μ/Σ Fourier. Αποδεικνύεται ότι η τιμή του θα είναι με μεγάλη πιθανότητα κοντά στο λ/r. Αφού γνωρίζουμε το, αποκτούμε μια προσέγγιση του λ/r. Οπότε για να βρούμε το r, χρειαζόμαστε το λ και το r να είναι πρώτοι μεταξύ τους. Για να το πετύχουμε αυτό, χρησιμοποιούμε μια τεχνική που λέγεται fraction expansion στο c/ σε πολυωνυμικό χρόνο. Με αυτόν τον τρόπο μπορούμε να βρούμε πιθανοτικά το r. Αποδεικνύεται ακόμη ότι χρειαζόμαστε χρόνο O(loglogr). 6. Εδώ τελειώνει το κβαντικό μέρος του αλγορίθμου. Από εδώ και πέρα τα βήματα μπορούν να εκτελεστούν και σε ένα συμβατικό υπολογιστή. Αν το r είναι περιττός ή x (r /2 ) (mod n) τότε επαναλαμβάνουμε από την αρχή τον αλγόριθμο.
7. Εδώ ισχύει x (r /2 ) (mod n), οπότε με πράξεις προκύπτει (x (r /2 ) )(x (r / 2) +) k(mod n) και υπολογίζοντας τους μέγιστους κοινούς διαιρέτες βρίσκουμε έναν διαιρέτη του n. Αυτός ο αλγόριθμος είναι πιθανοτικός, γι' αυτό και ανήκει στην κλάση BQP, αντίστοιχη της BPP για κβαντικούς αλγορίθμους. Ο ακριβής χρόνος που χρειάζεται είναι O((log n) 3 ) για είσοδο n. Το πιο αργό κομμάτι είναι η ύψωση σε δύναμη. Ως σήμερα, είναι ο μόνος γνωστός αλγόριθμος για παραγοντοποίηση ακεραίων. 5 Διακριτός Λογάριθμος Ένα άλλο πρόβλημα που μελετάται στη συγκεκριμένη εργασία είναι το DLP (Πρόβλημα Διακριτού Λογαρίθμου). Το πρόβλημα είναι εύρεση ενός r τέτοιου ώστε g r x(mod p), όπου p πρώτος και g γεννήτορας της πολλαπλασιαστικής ομάδας του p. Ο αλγόριθμος που προτείνει ο Shor στην εργασία του χρησιμοποιεί δυο υψώσεις σε δύναμη και δυο Μ/Σ Fourier και τρεις καταχωρητές r, r2, r3. Ακολουθεί τα εξής βήματα:. Βρίσκουμε μια δύναμη του 2 τέτοιο ώστε p<<2p. 2. Στους r και r2 βάζουμε την υπέρθεση των α και b με α,b < p. 3. Υπολογίζουμε στον r3 το g α x b (mod p). 4. Εφαρμόζουμε Μ/Σ Fourier στα α και b. 5. Παρατηρούμε την τελική κατάσταση του συστήματος, η οποία έχει την ακόλουθη μορφή: p 2 exp( 2πic ( p ) a, b=0 c.d =0 (αc+bd)) c,d, gα x b (mod p). Με παρόμοιο, αν και πιο πολύπλοκο τρόπο, αποδεικνύεται ότι μπορούμε να βρούμε σε πολυωνυμικό χρόνο προσπαθειών το σωστό r. 6. Ελέγχουμε αν το r που βρήκαμε είναι σωστό, αλλιώς αρχίζουμε ξανά τον αλγόριθμο. Ο συγκεκριμένος αλγορίθμος επίσης ανήκει στο BQP και μπορεί να χρησιμοποιηθεί και για εύρεση διακριτού λογαρίθμου όταν το p είναι δύναμη ενός πρώτου.