140 likes | 256 Vues
素数 判 定法. 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 で
E N D
素数判定法 2011/6/20
Eratosthenesのふるい 古典的 • 2からn-1まで割ってみる • 割り切れた時点でnは合成数 • 実際はSQR(n)まででOK
Fermatとeulerの定理 • Fermatの小定理 pを任意の素数としたとき ap-1 ≡ 1(mod p) • Eulerの定理 pを整数,aをpと互いに素な整数としたとき aφ(p) ≡ 1(mod p)
Fermatテスト 自然数nがあったとして nと互いに素なaで an-1 ≡ 1(mod n) が成り立たないものがあればnは合成数 ●逆は成り立たない!
擬素数とカーマイケル数 Fermatテストを“すり抜ける”合成数がある すなわち、nが合成数であっても、 nと互いに素であるaで an-1 ≡ 1(mod n) となるjものがある(擬素数)。 特に、nと互いに素なすべてのaで上記がなりたつものをカーマイケル数と呼ぶ 561=3x11x17
Solovay-Strassen素数判定法 • 二次合同式 X2 mod p の解を利用(pを法とした平方剰余)
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
Solovay-Strassen素数判定法のまとめ Fermatテストでのカーマイケル数のような擬素数は存在しない。 nが合成数であれば、1から n- 1のうち少なくとも半分は合成数と判別可能 k回のテストに対し、合成数に対して誤った判定を返す確率は(1/2)k
Miller Rabin素数判定法 素数の性質 • pを奇素数とし、p- 1= 2kq(qは奇数)と表す。また、aをpと互いに素な任意の数とすると aq ≡ 1( mod p) • K= 2i(但し iは0からk- 1までの整数)としたとき、aKq ≡ -1( mod p)が成り立つ Kが必ず一つ存在する。
p - 1 = 2k×q とおく。pと互いに素なaをとる (i) aq=1 mod p または、 (ii) aq,a2q,a4q,...,a2k-1qの どれか一個はpを法として-1(=p-1)
フェルマーの小定理より ap-1= 1 mod p aq,a2q,a4q,...,a2k-1q,a2kqの 最後の項はap-1なので、1となる。 この系列は、前の項の二乗が次の項になっているので、 以下の二通りの場合がありうる。 (a) aq= 1 mod p (b) 途中のある項が1をとる。その場合、その直前の項は-1(=p-1)をとる。
Miller Rabinの確率的判定法 pを奇数として、奇数qに対してp - 1 = 2k×qとおく • aq≠1 mod p かつ、 (ii) aq,a2q,a4q,...,a2k-1qのすべてが、 pを法として -1をとらない。
Miller Rabin判定法では、1からp-1の間のpとは互い素なaの75%が合成数であることの 証人になる。 1個の底aでテストしたときに合成数を合成数でないと判定する 確率は25% 2個の底ではその確率は25%×25%=6.25% 10個の底を使用した場合には9.5×10-5%