複雑なの素因数分解がある、認識されているなぜ我々は彼のようにRSAの理由から(公開鍵暗号化アルゴリズム、広く使われている)数学の問題。
\(N = P * Q \)(P、Qは素数である)、N = Nでの長さのビット
例えば、Nのために、我々は因数分解時間計算の結果がされ得る(N-2 ^ \)\この複雑さのため、数学の束は、現在の最適化結果の時間複雑さは、この時間の複雑さを軽減するための努力にもあります度である\(2 ^ {\のSQRTの[3] N-} {} \)。
より良い結果を持っているかどうかそう量子?
ファクタリング前に言えば、我々は、検索アルゴリズムの期間を言及する必要があります。
期間の検索サイクルを探します
定期的にすることを見つけるために、量子フーリエ変換。
入力:
\(F:(0,1,2、...、M-1)\ RIGHTARROW S \)すべてのxに対して\(F(x)は、F(x + r)を= \)
挑戦:
Rを見つけます
調子:
1)fは、サイクル期間に1-1であり、Fは、対応の関数であります
2)\(M >> R \) \(M> 2R ^ 2 \)
3)M rは分割することができる(これは単純化された条件であり、後で行う方法ない簡略化は存在しません)
この回路では、私は$ \ FRAC {1} {\のSQRTのM} \ sum_ {X = 0} ^ {M-1}であり、入力| X \ rangle | 0 \ rangle $
X \ rangle | | f(x)が\ rangle $私の重ね合わせてf(x)が後に$ \ FRAC {1} {\の平方根のM} \ sum_ {X = 0} ^ {M-1}であります
この時点で、次のF(X)が測定される場合、上記量子状態(x)が測定結果xに等しいFのみとなり、崩壊する、明らかに、これは周期関数です。
では、量子フーリエ変換、我々第一の特徴は、シフトの入力が、結果は変わりませんとき、フーリエ変換を述べました。
我々は、量子状態の確率振幅が入力した場合は(\ \ alpha_0を、\ alpha_1、\ alpha_2、\ alpha_3、...、\ \ {N- 1} alpha_)を、出力の量子状態の確率振幅は\(\ beta_0、\ beta_1、\ beta_2、\ beta_3、 ...、\ {N-1} beta_ \)
我々は、確率振幅を入力するときに、次のようになる。\(\ Nのalpha_ { - }、\ alpha_0、\ alpha_1、\ alpha_2、...、\ alpha_ N-2} {\)出力確率不変。(ここでは書か確率ではなく、確率振幅であり、確率は、確率振幅の2乗です)
換言すれば、私は値のうち、私が最初の場所ににシフトすることができる測定サイクルのランダムな結果であってもよいです。
すなわち、[0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 1 0 0 ......(5サイクル当たり、残りの三分の一は0)[1 0 0になります0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 ...... 0](サイクル当たり5、残りの3分の1は0です)。
彼らは同じであるフーリエ変換の結果を経ます。
実際には、ここでは、我々は我々が原因のxに対応するすべてのこれらの測定の前に、測定F(X)を測定していない、実際には関係ないことが判明シフトのため、彼らはフーリエ変換するので、周期関数の同期間です後に結果は同じです。
だから、この重要性はありますか?
量子フーリエ変換第二の特徴を持っている:フーリエ変換周期関数の期間を変更することがあります。
彼は、の期間に、R期間の関数とすることができる\(\ FRAC {M} { R} \) 機能。
この測定の最後の機能は、結果は(\ FRAC {M} {R } \)\ 倍、複数のいくつかの測定が知っている\(\ FRAC {M} { R} \) の値。この値を知っている、完全なサイクルを見つけ、Rの抗値を起動することは容易です。
条件は、それを単純化していない場合は?
すなわち、Mは、rの倍数ではありません。
それは最も近い見つけるために、測定結果がLであると仮定される(\ \ FRAC {L}、{ M} \) 画分\を(\ R&LT FRAC {T} {} \) 、唯一の要件である\(M> 2R ^ 2 \)検索rの連分数によって呼び出される最後のメソッド。
ファクタリング
例:
問題:ファクターN = 21を見つけます。
ソリューション:
ステップ1:
\(2 ^ 0 = 1( \ MOD 21)\) 1つの21 Iの数で割った値
\(2 ^ 1 = 2(\ MOD 21)\)
\(2 ^ 2 = 4(\ MOD 21)\)
\(2 ^ 3 = 8(\ MOD 21)\)
\(2 ^ 4 = 16(\ MOD 21)\)
\(2 ^ 5 = 11(\ MOD 21)\)
\(2 ^ 6 = 1(\ MOD 21)\)
ステップ2:
\(2 ^ 6-2 ^ 0 = 0(\ MOD 21)\)
\(2 ^ 6-1 = 0(\ MOD 21)\)
\((2 ^ 3-1)(2 ^ 3 + 1)= 0(\ MOD 21)\)
この時点で、私たちは何を見つけましたか?
\((2 ^ 3-1)(2 ^ 3 + 1)\)、21の倍数であり、その後、彼の二つの要因\((2 ^ 3-1)\)と\((2 ^ 3 + 1) \)公約数と21を持っている必要があります。
GCD(21,7)= 7
GCD(21,9)= 3
GCDあなたに、我々はまだ馴染みの最大公約数?
例えば、我々は21と15との最大公約数を見つけます。
\(21 = 15×1 + 6 \)
\(15 = 6 * 2 + 3 \)
\(6 = 3×2 + 0 \)
共通分母は最後の残りの部分であることが、ここ3で、0ではありません。迅速最大公約数アルゴリズム、おそらく中\(ログインN \)レベル。
今の問題は、実際にはステップ1機能見つけ、\(F(A)= X mod nを\ \ ^ A) 上記の例ではサイクルを、\(^ 0 2 \)と\(2 ^ 6 \)に等しいモジュロこれは、サイクル6サイクルです。
今、素因数分解問題は、すべての問題を見つけるために、サイクルに変換されます。
問題を見つけるための時間が加速し、量子前述されて、もはや疲れがあり、たまたま、私たちは、条件検索サイクルを知っている(M> 2R ^ 2 \)は、\、この場合には、我々は知らないがrが、これは我々の要求で、数あるが、私たちは知っている、R <N、それを直接\(M> 2N ^ 2 \ ) だけで罰金。
これは、回路図があるようになります。
サイクルを取得し、ステップ2を介して、我々は因数分解を望むものです。