素数 判 定法

14
素素素素素 2011/6/20

description

素数 判 定法. 2011/6/20. Eratosthenes の ふるい. 古典的 2から n-1 まで 割ってみる 割り切れた時点で n は合成数 実際 は SQR(n) まで で OK. Fermat と euler の定理. Fermat の小定理 p を任意の 素数と したとき a p-1  ≡  1 (mod  p ) Euler の定理 p を整数 , a を p と互いに素な整数としたとき a φ (p)  ≡  1 (mod  p ). Fermat テスト. 自然数 n があったとして n と互いに素な a で - PowerPoint PPT Presentation

Transcript of 素数 判 定法

Page 1: 素数 判 定法

素数判定法

2011/6/20

Page 2: 素数 判 定法

Eratosthenesのふるい

古典的

• 2から n-1まで割ってみる• 割り切れた時点で nは合成数• 実際は SQR(n)までで OK

Page 3: 素数 判 定法

Fermatと eulerの定理• Fermatの小定理pを任意の素数としたとき     ap-1 ≡ 1 (mod p)

• Eulerの定理pを整数 ,aを pと互いに素な整数としたとき     aφ(p) ≡ 1 (mod p)

Page 4: 素数 判 定法

自然数 nがあったとしてnと互いに素な aで

  an-1 ≡ 1 (mod n)

が成り立たないものがあれば nは合成数

●逆は成り立たない!

Fermatテスト

Page 5: 素数 判 定法

擬素数とカーマイケル数Fermatテストを“すり抜ける”合成数があるすなわち、 nが合成数であっても、nと互いに素である aでan-1 ≡ 1 (mod n)となるjものがある(擬素数)。

特に、 nと互いに素なすべての aで上記がなりたつものをカーマイケル数と呼ぶ

561=3x11x17

Page 6: 素数 判 定法

Solovay-Strassen素数判定法

• 二次合同式  X2 mod pの解を利用( pを法とした平方剰余)

Page 7: 素数 判 定法

• Eulerの基準

pを奇素数、 aを pと互いに素な任意の数としたとき、次の合同式が成り立つ。        a(p-1)/2 ≡ (a/p) (mod p)

(a/p)は Legendre記号    aが pを法とした平方剰余の場合 (a/p)=1         aが pを法とした非平方剰余の場合 (a/p)=-1

Page 8: 素数 判 定法

• Solovay-Strassen素数判定法のまとめ

Fermatテストでのカーマイケル数のような擬素数は存在しない。

nが合成数であれば、 1から  n - 1のうち少なくとも半分は合成数と判別可能

k回のテストに対し、合成数に対して誤った判定を返す確率は (1/2)k

Page 9: 素数 判 定法

Miller Rabin素数判定法

素数の性質

• pを奇素数とし、 p - 1 = 2kq (qは奇数 )と表す。また、 aを pと互いに素な任意の数とすると

    aq ≡ 1 ( mod p )

• K = 2i(但し  iは 0から k - 1までの整数 )としたとき、 aKq ≡ -1 ( mod p )が成り立つ  Kが必ず一つ存在する。

Page 10: 素数 判 定法

p - 1 = 2k×q とおく。 pと互いに素な aをとる

 (i) aq=1 mod p  または、 (ii) aq,a2q,a4q,...,a2k-1qの どれか一個は pを法として -1(=p-1)

Page 11: 素数 判 定法

フェルマーの小定理より  ap-1 = 1 mod p aq,a2q,a4q,...,a2k-1q,a2kqの 最後の項は ap-1なので、1となる。 この系列は、前の項の二乗が次の項になっているので、 以下の二通りの場合がありうる。

 (a) aq = 1 mod p (b) 途中のある項が 1をとる。その場合、その直前の項は -1(=p-1)をとる。

Page 12: 素数 判 定法

Miller Rabinの確率的判定法pを奇数として、奇数 qに対して p - 1 = 2k×qとおく

(i) aq≠1 mod p  かつ、 (ii) aq,a2q,a4q,...,a2k-1qのすべてが、  pを法として

   -1をとらない。

Page 13: 素数 判 定法

Miller Rabin判定法では、 1から p-1の間の pとは互い素な aの 75%が合成数であることの 証人になる。

1個の底 aでテストしたときに合成数を合成数でないと判定する 確率は 25%

2個の底ではその確率は 25%×25%=6.25%

10個の底を使用した場合には 9.5×10-5%

Page 14: 素数 判 定法

AKS素数判定法