流れる空の中で数学を。

とある数学好きの「手作りすうがく」と「気ままな雑記」。

【素因数分解】数列階乗法の改良その1【RSAに挑む】

Amazon.co.jp: Yoshiki Ueoka:作品一覧、著者略歴

数学関連の絶版本・品切れ本をコチラから購入できます!

数列階乗法の改良

前の記事で紹介した数列階乗法では、数列

a_n=a_{n-1}a_{n-2}\cdots a_1+1

x_n=a_n\cdots a_1

としていた。

 

sky-time-math.hatenablog.jp

 

ところが、これでは、x_nを初めて計算するときに新たに含まれる素因数が大きくなり過ぎてしまう恐れがある。実際、素因数分解したい数Nよりおおきな素因数をとりこんでしまった場合、それは新しい素因数としてカウントされない。

そこで、kをなるべく多くの約数を持つ自然数として

a_n=(a_{n-1}a_{n-2}\cdots a_1)^k-1

x_n=a_n\cdots a_1

 という漸化式を用いることにすれば、a_nは、多くの合成数からなることが保証される。

x_n^k-1x_n多項式の積となるが、できればなるべく次数の低い多項式の多くの積からなっていてほしい。または、次数が高くても、十分な数の素因数を持つ確率が高ければいい。このような適切でなるべく大きなkの値の取り方をまだ僕は知らない。

今回はとりあえず、k=210^{10}=(2 \times 3 \times 5 \times 7)^{10}ととってみた。

上にあげた漸化式の形に限らなくても、少ない計算量で、より多くのN以下の素因数の積からなる数列を構成できれば、一気に数列階乗法の可能性は広がる。問題は、そのような都合のいい漸化式が存在するかどうかだ。

プログラム

今回も大規模計算はせず、30分程度以内のテスト計算だけを行った。1つのrsa自然数に対して、一分かからないくらいだった。

当然というか、テスト用の素因数分解以外はうまくいかなかった。最低でも100桁あるので、まだまだチューニングが必要だろう。

 

Sequence factorial method