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素数判定法