ここはミラーサイトです。本物は http://homepage2.nifty.com/m_kamada/math/ecm_ja.htm
counterSince June 16, 2000STUDIO KAMADAJapanese to English by @nifty
戻る | サイトマップ | ホーム
GMP-ECMの使い方2008-06-04(Wed) 20:26

GMP-ECMはECM(Elliptic Curve Method; 楕円曲線法)を用いる標準的な素因数分解プログラムです(オプションでP-1法やP+1法も選択できます)。小さな素因数を手早く抽出することができるので、SIQS法やNFS法の前処理として、あるいはSIQS法やNFS法を適用するには大きすぎる合成数を分解したいときに利用されています。

目次
  1. GMP-ECMのインストール
  2. GMP-ECMの使い方

1. GMP-ECMのインストール

GMP-ECMはGMPを使用します。GMPの使い方を参照してCygwinとGMPをインストールしておきます。


これを書いている時点でGMP-ECMの最新版は6.2.1です。


古いバージョンがインストールされているときは新しいバージョンをインストールする前に古いバージョンをアンインストールしておきましょう。

~> cd ecm-6.2
~/ecm-6.2> make uninstall
~/ecm-6.2> cd ..
~>

GMP-ECMはソースコードの形で配布されています。InriaGforge: GMP-ECM (Elliptic Curve Method): Project Infoからソースコードのアーカイブecm-6.2.1.tar.gzをダウンロードしてきて展開します。

~> tar zxf ecm-6.2.1.tar.gz
~> cd ecm-6.2.1
~/ecm-6.2.1> 

./configureを実行します。

~/ecm-6.2.1> ./configure

makeします。小さいプログラムなのでさほど時間はかかりません。

~/ecm-6.2.1> make

make checkします。少し時間がかかります。

~/ecm-6.2.1> make check

チューニングします。関係のないアプリケーションはなるべく終了してから行いましょう。

~/ecm-6.2.1> make ecm-params; make

make installします。

~/ecm-6.2.1> make install

これでECMのインストールは完了です。

2. GMP-ECMの使い方

GMP-ECMはパラメータB1をコマンドラインに書き、分解したい合成数を標準入力から入力します。

~> echo 合成数 | ecm -c 繰り返す回数 パラメータB1
コマンドラインオプション
-c 繰り返す回数
指定した回数だけ繰り返します。
-pm1
P-1法を使います。
-pp1
P+1法を使います。
-one
-cを指定したとき素因数が1つ見つかったらそこで終了します。
-n
優先順位を通常以下にします。
-h
使い方を表示します。

ここに書かなかったオプションはecm -hで確認できます。


ECMは確率的な手法なので同じパラメータで何度も繰り返し分解を試みます。B1を大きくすると大きな素因数が見つかる可能性が高くなりますが、時間もかかるようになります。あるB1で繰り返してみて素因数が見つからないときはSIQS法やNFS法を用いた場合にかかる時間を考えてB1を増やすか他の手法を用いるか決めます。


未知の素因数の桁数とB1の関係(READMEより)
未知の素因数の桁数B1繰り返す回数と発見できる確率
63%86%95%
201100074148222
2550000214428642
302500004308601290
35100000090418082712
403000000235047007050
45110000004480896013440
504300000075531510622659
55110000000177693553853307
602600000004201784034126051
6585000000069408138816208224
使用例
~> echo 6178425187356575393163579984862080648264153656607846550733734010999716180061 | ecm -c 214 50000
GMP-ECM 6.2.1 [powered by GMP 4.2.2] [ECM]
Input number is 6178425187356575393163579984862080648264153656607846550733734010999716180061 (76 digits)
...snip...
Run 5 out of 214:
Using B1=50000, B2=12746592, polynomial x^2, sigma=1431193006
Step 1 took 719ms
********** Factor found in step 1: 669060346041879059651
Found probable prime factor of 21 digits: 669060346041879059651
Probable prime cofactor 9234481200250125127176894322385720240709107656511138911 has 55 digits
~>
戻る | サイトマップ | ホーム
[PR] | Yahoo SEO債務整理消費者金融不動産担保ローン時計車 買取ハワイハワイ挙式アスクル転職生命保険テンプレート沖縄旅行動画FX免許合宿二輪引越し消費者金融税理士ゴルフ会員権留学レーシックマッサージ貸し店舗FX投資信託くりっく365アフィリエイト育毛剤FXホームページ製作デイトレードFXホノルルマラソンベスト ハワイ ホテル レーツバリ島ハワイウエディングHawaii hotelsHawaii Activitiesbhhrヴィラハワイ コンドミニアム
【運営会社「パラダイムシフト」サービス】 ハワイ現地オプショナルツアーリラックマ.ハワイホテルガイド) - ビジネスクラス航空券 - 格安航空券(1) - 格安航空券(2) - 海外ホテル - 韓国旅行
無料ホームページ作成 - レンタルサーバー - 携帯ホームページ - ブログ - ホテル 予約 - 格安航空券 - 長期滞在 - タイムシェア
[PR] 包茎でお困りの方必見!厳選したクリニックをご紹介!