コンテンツにスキップ

英文维基 | 中文维基 | 日文维基 | 草榴社区

利用者:Koba-e964/特殊数体篩法

数論において、特殊数体篩法 (SNFS) は特殊用途の整数の素因数分解アルゴリズムである。一般数体篩法はこのアルゴリズムから派生したものである。

特殊数体篩法は小さい rs を用いて re ± s と表せる整数に対して効率的である。(例えばメルセンヌ数など。)

ヒューリスティック的に、整数 を素因数分解するときのこのアルゴリズムの計算量は、ランダウの記号L表記英語版を用いて を用いて以下の形で表せる。[1]

特殊数体篩法は NFSNet (有志による分散コンピューティングの取り組み) や NFS@Home などによって、Cunningham Project英語版 の数を素因数分解するために大規模に使用されている。

しばらくの間素因数分解の記録英語版は特殊数体篩法によって素因数分解された数であり続けている。

概要

[編集]

特殊数体篩法は、それよりももっと単純な有理篩法英語版に似たアイディアに基づいている。特に、特殊数体篩法に取り組むより先に有理篩法について読むと助けになるかもしれない。

特殊数体篩法は以下のように動作する。n を素因数分解したい整数とする。有理篩法と同じように、特殊数体篩法も二つのステップに分解できる。

  • まず、Z/nZの要素からなる因子基底の間の多数の乗法的関係を見つける。乗法的関係の個数が因子基底に含まれる要素の個数よりも多くなるようにする。
  • 次に、これらの関係の部分集合を掛け合わせ、全ての指数が偶数となるようにし、最終的に a2b2 (mod n) の形の合同式が得られるようにする。これによってたちどころに n の因数分解が得られる: n=gcd(a+b,n)×gcd(a-b,n)。もし正しく実行されれば、少なくとも一つのそのような因数分解は非自明である。

二番目のステップは有理篩法と同一であり、素直な線形代数の問題である。しかし一番目のステップは、数体を利用することで有理篩法とは違うより効率的英語版な方法で行われる。

詳細

[編集]

n を因数分解したい整数とする。整数係数をもつ既約多項式 f と、f(m)≡0 (mod n) を満たす整数 m をとる。(どのように選ぶのかは次の節で説明する。) αf の一つのとする。これにより Z[α] を作ることができる。αm に写す Z[α] から Z/nZ への環準同型がただ一つ存在する。単純性のため、Z[α] が一意分解整域であることを仮定する。このアルゴリズムはそうでない場合も動作するように修正できるが、その場合は追加の考慮事項が発生する。

次に、因子基底を二種類並列に準備する: 一つは Z[α] で、もう一つは Z で。Z[α] の因子基底は、ノルムが選択した値 以下であるような素イデアル全てからなる。Z の因子基底は、有理篩法と同様に、別の上界までの有理素数全てからなる。

その後、以下の条件を満たす互いに素な整数ペア (a,b) を見つける:

  • a+bmZ の因子基底に関して smooth である (つまり、因子基底の要素の積である)。
  • a+Z[α] の因子基底に関して smooth である。因子基底の選び方から、これは a+ のノルムが 未満の素数のみで割り切れることと同値である。

これらのペアはエラトステネスの篩と類似した篩のプロセスによって発見される。これが「数体篩法」という名前の動機付けとなっている。

こうしたペアのそれぞれに対し、a+ の素因数分解に環準同型 φ を適用し、a+bm の素因数分解に Z から Z/nZ のカノニカルな環準同型を適用する。これらを等式で結ぶことで、Z/nZ のより大きな因子基底の要素の間の乗法的関係が得られ、もし十分な個数のペアが見つかれば上で述べたように関係を組み合わせて n を因数分解できる。

パラメータの選択

[編集]

特殊数体篩法の際には、全ての数が適切な選択であるわけではない。あらかじめ適切な次数で係数が小さい多項式 f と (最適な次数は であると予想されており、これは現在因数分解可能な N の大きさに対しては 4, 5, 6 である)、 を満たす値 x を知っている必要がある。さらにもう一つ条件がある: x は高々 程度である a, b について を満たす必要がある。

このような多項式が存在する数の集合の一つは Cunningham tables の中の の形の整数である。

アルゴリズムの制限

[編集]

関連項目

[編集]

参考文献

[編集]
  1. ^ Pomerance, Carl (December 1996), “A Tale of Two Sieves”, Notices of the AMS 43 (12): 1473–1485, http://www.ams.org/notices/199612/pomerance.pdf 

発展資料

[編集]
  • Byrnes, Steven (May 18, 2005), “The Number Field Sieve”, Math 129, http://modular.fas.harvard.edu/129-05/final_papers/Steve_Byrnes.pdf 
  • Lenstra, A. K.; Lenstra, H. W., Jr.; Manasse, M. S. & Pollard, J. M. (1993), “The Factorization of the Ninth Fermat Number”, Mathematics of Computation 61 (203): 319–349, Bibcode1993MaCom..61..319L, doi:10.1090/S0025-5718-1993-1182953-4, http://www.std.org/~msm/common/f9paper.ps 
  • Lenstra, A. K.; Lenstra, H. W., Jr., eds. (1993), The Development of the Number Field Sieve, Lecture Notes in Mathematics, 1554, New York: Springer-Verlag, ISBN 978-3-540-57013-4 
  • Silverman, Robert D. (2007), “Optimal Parameterization of SNFS”, Journal of Mathematical Cryptology 1 (2): 105–124, doi:10.1515/JMC.2007.007 

[[Category:素因数分解アルゴリズム]]