素数 判 定法
-
Upload
odysseus-patton -
Category
Documents
-
view
27 -
download
0
description
Transcript of 素数 判 定法
素数判定法
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)
自然数 nがあったとしてnと互いに素な aで
an-1 ≡ 1 (mod n)
が成り立たないものがあれば nは合成数
●逆は成り立たない!
Fermatテスト
擬素数とカーマイケル数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とおく
(i) 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%
AKS素数判定法