Cubic Residue and Cubic Root Modulo p 東京都立大学 理学部 数学科 藤代 武人 1 卒業研究のテーマ 前期のゼミでは 「平方剰余・mod pでの平方根」 について学びました. そこで・・・ 「立方剰余はどう計算する?」 「 mod pでの立方根はどう計算する?」 以上の事を中心に後期では研究をしました. 2 本日の内容 Cubic Residue (立方剰余) Cubic Root (立方根) 3 Cubic Residue…? 定義 [ (rational) 立方剰余 ] a Z , p P(prime) が与えられたとき , x 3 a (mod p ) をみたす x Z p が C ubic Residue 存在する a は mod p で 存在しない a は mod p で C ubic non Residue 4 疑問… 平方剰余と同様のことはできるだろうか? 剰余記号 相互法則 (補充法則) ヤコビ記号 アルゴリズム 5 立方剰余記号 定義 [立方剰余記号] Z [ ] {a b | a, b Z } ( (1 3 ) / 2) 上で定義をする . N ( ) 3, | ( N ( ) 1) / 3 (mod ) 3 ( N :norm) このとき , C ubic Residue 1 2 , C ubic non Residue 3 ( Z [ ], : Z [ ] 上での素元 ) 6 立方剰余記号について 平方剰余記号の場合と同様のことが言える. multiplicity 3 3 3 generalize (ヤコビ記号) t i Z のとき , mi i 1 modularity (mod ) のとき , 3 3 t mi とする . 3 i 1 i 3 (右辺は剰余記号 ) 7 立方剰余の相互法則 以下, mod3 で 1 と合同な数を primaryと呼ぶ . , : primary, N ( ) 3, N ( ) N ( ) 3 3 これらの法則は, 剰余記号を計算する 上で重要な役割を 果たすことになる. (補充法則) 1 3(m n ), m, n Z (primary) とする . π :primaryprime 1 m (1) 3 1 (3) 1 (2) ( m n ) 3 8 Algorithmのポイント 剰余記号は,先程の相互法則・補充法則 を繰り返し用いて計算する. (互除法のアルゴリズムと似ている.) 今回紹介するものの他にも立方剰余を求める アルゴリズムはある. 有理数を扱う場合には注意が必要なので, 次で触れることにする. 9 α:有理整数, β:有理素数の場合 β = 2 (mod 3) の有理素数の場合 ⇒ Z [ω] 上においても, β は素元となっているのでそのまま計算できる. β = 1 (mod 3) の素数の場合 ⇒ ( Z [ ], prime) と分解できる . とできるので , 3 3 3 3 の方を考える . 3 10 Algorithm (Cubic Residue)[1/2] [input] , Z [ ] \ 0 ( : not divisible1 ) [output] 3 [step1] α:有理整数, β:有理素数(mod 3 で1)の場合,β=ππとな るπを求めβとする. (これはcornacchiaのアルゴリズム[HP参 照]を利用して計算する.) , Z [ ] s.t. ( )i (1 ) j , ( )i 1 1 2 [step2] m, n Z s.t. 1 (3m n ) t m j1 (m n)i1 (mod3), , [step3] ~ ~ if N ( ) N ( ) then , を入れ替え 11 Algorithm (Cubic Residue)[2/2] [step4] while do Z [ ] s.t ( )i (1 ) j m, n Z s.t 1 (3m n ) t t m j (m n)i (mod3), ~ ~ if N ( ) N ( ) then , を入れ替え [step5] if 1 then c0 else c t 12 Cubic Root…? mod p で3乗根が存在するかどうかは, 確かめることができた. 実際に,根は何になるのか? どのように求める? mod p での平方根を求めるアルゴリズムを 3乗根へ拡張する!! 13 Algorithmのポイント [1/2] 入力に関して a Z , p( 3e q 1) P (prime) の入力に対して, 以下の場合を考える . ・p 2 ,p 3 xa ・p 2 (mod3) x a 解はひとつに定まる ( 2 p 1) 3 (mod p ) ・p 1 (mod3) ・・・ 解は3つある p 1 (mod3) のときの 解を求めるアルゴリズ ムを示す. 14 Algorithmのポイント [2/2] a が C ubic Residue ならば , p 3e q 1 (q 0 (mod3)) に対し , G g を Z p の 3 - Sylow部分群とすると , q 1 (mod3) のとき , q 2 (mod3) のとき , 3 3 a a ( 2 q 1) a a 3 gk 3 gk ( q 1) となる k が 0 k 3e の範囲で存在する . という事を用いる . 具体的にはこの「g」と「k」を求めていくアルゴリズムである. 15 Algorithm (Cubic Root) [1/2] [input] p( 3e q 1 : (q 0 (mod3)) P (prime), a Z [output] x Z p s.t. x 3 a (mod p ) or "no cubic root" h [step1] h Z p s.t. 1 (mod p) p 3 をランダムに選択する h [step2] g h , sym bol , y g , r e p 3 q a 3 (if q 2 (mod3)) x ( 2 q 2 ) a 3 (if q 1 (mod3)) b a 2 x 3 , x ax ( q 2 ) (全て mod p での計算 ) 16 Algorithm (Cubic Root) [2/2] [step3] if b 1 (mod p ) then return ( x, x * sym bol, x * sym bol2 ) else find m min i b 1 (mod p ) 3i if m r then return " There is no cubic root" [step4] if sym bol b 3m1 then t y 2 , sym bol ( sym bol) 2 else ty t t 3r m1 , y t 3 , r m, x xt, b by go to step3 (全て mod p での計算 ) 17 計算量について Cubic Residue を求める際 , が mod 3 で 1 の素数の場合 , 3 なる を求める時間を 考慮すると , (log4 ) となる . cubic residue symbolの計算部分のみを考慮 すれば , (log2 N ( )) となる . Cubic Root 平方根を求めるアルゴリズム(Tonelli-Shanks method)と 同様に, O (log4p) となる. 18 まとめ 相互法則等の証明は今回は省略しました. 詳細に関しては参考文献(*)(**)等を参照してください. また,pythonで作成したプログラム等は http://tnt.math.metro-u.ac.jp/labo/grad/2006/taketo/ にあります. 今後の課題 3乗根を求めるアルゴリズムについては さらに速く (O (log3p)で) 計算できるものがあります. このalgorithmをもとに, Cardanoの方法を用いて, Fp上での3次方程式を解くことも可能となります. 19 References(1/2) Ⅰ) TakingC ubeRoots in Z m (C .Padro,G.Saez) 2001 Ⅱ) On the C omputation of C ubeRoots Modulo p (SigunaMuller) 2004 Ⅲ) A C lassicalIntroduction to ModernNumber Theory (2nd ed) (KennethIreland,MichaelRosen) 20 References(2/2) Ⅳ) Efficient Algorithms for gcd and Cubic Residuosity in the Ring of Eisenstein Integers o (Ivan B. Damgard, Cudmund Skovbjerg Frandsen) 2003 Ⅴ) Reciprocity Laws (Franz Lemmermeye r) 21
© Copyright 2024 ExpyDoc