Untuk integer, , harus factorised, dengan (seragam) yang dipilih secara acak antara dan , dengan urutan (yaitu, yang terkecil dengan ) :
Mengapa itu dalam algoritma Shor kita harus membuang skenario di mana ? Juga, mengapa kita tidak membuang skenario ketika ?
algorithm
shors-algorithm
Tech Solver
sumber
sumber
Jawaban:
Persyaratan bahwa setara dengan mensyaratkan bahwa .ar≡1modN ar−1≡0modN
Kami menginginkan angka, , sedemikian sehingga penyebut umum dan adalah faktor tepat (yaitu faktor ).b b N N ≠1,N
Kami juga memiliki .ar−1=(ar/2−1)(ar/2+1)
Jadi, kita ambil . Kita tahu bahwa adalah angka terkecil sehingga , menunjukkan bahwa dan begitu (seperti sebaliknya, akan membagi ).b=ar/2−1 r ar=1modN ar/2≠1modN gcd(ar/2−1,N)≠N N b
Dengan identitas Bézout , jika , atau . Sebagai membagi , ini memberikan bahwa membagi , atau .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
Ini memberikan bahwa persyaratan (di samping batasan pada ) cukup untuk menentukan bahwa penyebut umum terbesar dari dan adalah tepat faktor .ar/2≠−1modN r ar/2−1 N N
sumber
Tidak ada skenario karena Anda telah mengasumsikan bahwa adalah nilai terkecil sehingga , dan lebih kecil dari .ar/2≡1 mod N r ar≡1 mod N r/2 r
Seperti Anda mengapa Anda harus mendiskon , intinya adalah bahwa Anda telah menemukan sesuatu yang memuaskan untuk beberapa integer . Faktor-faktor ini sebagai jika adalah genap. Entah, salah satu istilah dapat dibagi oleh , atau masing-masing berisi faktor berbeda . Kami ingin mereka mengandung faktor yang berbeda sehingga kami dapat komputer untuk menemukan faktor. Jadi, kami secara khusus ingin bahwa . Satu kasus telah dieliminasi sebagaimana disebutkan di atas dengan mensyaratkanar/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 menjadi sekecil mungkin. Yang lain kita harus diskon secara eksplisit.
sumber
Jika , maka adalah akar kuadrat sepele dari bukannya akar kuadrat yang menarik. Kita sudah tahu bahwa adalah akar kuadrat dari . Kita membutuhkan akar kuadrat yang belum kita ketahui.ar/2≡−1 ar/2 1 −1 1
Misalkan saya memberi Anda angka sedemikian rupa sehingga . Anda dapat menulis ulang persamaan ini sebagai:x x2=1(modN)
Hal utama yang harus menyadari adalah bahwa persamaan ini adalah sepele ketika adalahx ±1modN . Jika , maka sisi kiri adalah karena faktor . Hal yang sama terjadi jika , tetapi dengan faktor lainnya.x≡−1 0modN (x+1)≡0 x≡+1
Agar menarik dan menjadi menarik (yaitu mod -nol ), kita perlu untuk menjadi akar kuadrat ekstra . Root kuadrat di samping jawaban dan jelas . Ketika itu terjadi, tidak mungkin faktor prima untuk semua masuk ke atau semua masuk ke , sehingga dijamin memberi Anda faktor dari bukan kelipatan dari .(x+1) (x−1) N x 1 +1 −1 N (x+1) (x−1) gcd(x+1,N) N N
Sebagai contoh, jika maka adalah akar kuadrat tambahan dari 1. Dan memang, keduanya dan adalah faktor dari . Sedangkan jika kita telah mengambil akar kuadrat membosankan , maka tidak juga atau adalah faktor .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
sumber