【素因数分解】ぼくの考えたアルゴリズム【RSAに挑む】
Amazon.co.jp: Yoshiki Ueoka:作品一覧、著者略歴
2つの素数の積からなる合成数の素因数分解
ここで、またはの片方のみを素因数に持つ自然数を用意すると、
をユークリッドの互除法で計算すれば、求める素因数の片方が分かるので、素因数分解できる。
ここで、自然数をいかにして用意するかが問題となる。
素数階乗冪多項式
を素数階乗とする。このとき、
を考える。
とおいて、がでもでもない自然数になれば、それがの素因数となる。これが見つかるかどうかは、確率次第だと思うので、成功確率は今のところ不明である。
計算量
ユークリッドの互除法を行う回数は、回である。よって、計算量は、
である。
事前に用意する素数の個数nが多ければ多い程、素因数分解の成功確率は上がると期待されるが、計算量がその代わりに増加するので、適切な素数の個数を見つけなければいけない。
例
素数を1つ取って、とする。
この場合、9までの素因数分解が可能である。
素数を2つ取って、とする。
この場合、素因数に11を含む場合を除く、169までの素因数分解が可能である。
素数を3つ取って、とする。
この場合、素因数に23を含む場合を除く、1296までの素因数分解が可能である。