Transcript a p-1

素数判定法
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とお
く
(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素数判定法