=>$M$を素因数分解する。
=>まず $x^r mod M$ の位数を求める。
=>位数$q$を求める(位数計算)。
$x$の$r$乗($r$=0,1,2,3,.....)をMで割った余りの周期が \(x^r mod M\) の位数となる。
具体的には横軸を$r$、縦軸を「$x$の$r$乗を$M$で割った余り」とし、
この関数を離散フーリエ変換することで周期を求め、それが位数となる。
=>次に [\(x^{\frac{q}{2}} -1\)] と [\(x^{\frac{q}{2}} +1\)] を求める。
位数計算
位数計算では量子コンピュータは、\(x^r mod M\)の$r$ごとの超並列計算を行うため高速処理が可能だが、
現代のコンピュータ(ノイマン型)で行う当計算処理では直列処理するため、$M$の桁数が大きくなると計算に多大な時間がかかる。
(この計算処理では3分でタイムアウトする)