Damit eine ganze Zahl faktorisiert wird, wobei (gleichmäßig) zufällig zwischen und , wobei der Größenordnung von ( das kleinste mit ). ::
Warum müssen wir in Shors Algorithmus das Szenario verwerfen, in dem ? Warum sollten wir das Szenario nicht verwerfen, wenn ?
algorithm
shors-algorithm
Technischer Löser
quelle
quelle
Antworten:
Die Anforderung, dass ist, entspricht der Anforderung, dass .ar≡1modN ar−1≡0modN
Wir wollen eine Zahl, , so dass der größte gemeinsame Nenner von und ein geeigneter Faktor von (dh ein Faktor ).b b N N ≠1,N
Wir haben auch, dass .ar−1=(ar/2−1)(ar/2+1)
Wir nehmen also . Wir wissen, dass die kleinste Zahl ist, so dass , was zeigt, dass und damit (wie sonst würde teilen ).b=ar/2−1 r ar=1modN ar/2≠1modN gcd(ar/2−1,N)≠N N b
Nach Bézouts Identität existiert oder . Wenn teilt , ergibt dies, dass oder teilt .gcd(ar/2−1,N)=1,∃x1,x2∈Z s.t. (ar/2−1)x1+Nx2=1 (ar−1)x1+N(ar/2+1)x2=ar/2+1 N ar−1 N ar/2+1 ar/2=−1modN
Dies ergibt, dass die Anforderung (neben der Bedingung für ) ausreicht, um zu bestimmen, dass der größte gemeinsame Nenner von und ein Eigenwert ist Faktor .ar/2≠−1modN r ar/2−1 N N
quelle
Es gibt kein Szenario für da Sie bereits angenommen haben, dass der kleinste Wert ist, so dass und ist kleiner als .ar/2≡1 mod N r ar≡1 mod N r/2 r
Wenn Sie wissen, warum Sie diskontieren müssen , ist der Punkt, dass Sie etwas gefunden haben, das für eine ganze Zahl erfüllt . Dies faktorisiert als wenn ist. Entweder einer der Begriffe teilbar ist durch , oder jede enthält verschiedene Faktoren von . Wir möchten, dass sie verschiedene Faktoren enthalten, damit wir Computer , um einen Faktor zu finden. So wollen wir ausdrücklich , dass . Ein Fall wurde wie oben angegeben beseitigt, indem verlangt wurdear/2≡−1 mod N (ar−1)=kN k (ar/2−1)(ar/2+1)=kN r (ar/2±1) N N gcd(ar/2±1,N) ar/2±1≠0 mod N r so klein wie möglich sein. Den anderen müssen wir explizit rabattieren.
quelle
Wenn , dann ist eine triviale Quadratwurzel von anstelle einer interessanten Quadratwurzel. Wir wussten bereits, dass eine Quadratwurzel von . Wir brauchen eine Quadratwurzel, die wir noch nicht kannten.ar/2≡−1 ar/2 1 −1 1
Angenommen, ich gebe Ihnen eine Zahl so dass . Sie können diese Gleichung wie folgt umschreiben:x x2=1(modN)
Der Schlüssel ist daran zu erkennen ist , dass diese Gleichung trivial ist , wenn istx ±1modN . Wenn , dann ist die linke Seite weil der Faktor . Das gleiche passiert, wenn , aber mit dem anderen Faktor.x≡−1 0modN (x+1)≡0 x≡+1
Damit sowohl als auch interessant sind (dh nicht Null mod ), muss eine zusätzliche Quadratwurzel von . Eine Quadratwurzel neben den offensichtlichen Antworten und . Wenn dies geschieht, ist es unmöglich, dass die Primfaktoren von alle in oder alle in , und so gibt Ihnen garantiert einen Faktor von anstelle eines Vielfachen von .(x+1) (x−1) N x 1 +1 −1 N (x+1) (x−1) gcd(x+1,N) N N
Wenn zum Beispiel dann ist eine zusätzliche Quadratwurzel von 1. Und tatsächlich sind sowohl als auch sind Faktoren von . Wenn wir die langweilige Quadratwurzel , wäre weder noch sind Faktoren von .N=221 x=103 gcd(x+1,N)=gcd(104,221)=13 gcd(x−1,N)=gcd(102,221)=17 221 x=−1≡220 gcd(x+1,N)=gcd(221,221)=221 gcd(x−1,N)=gcd(219,221)=1 221
quelle