Pebble Coding

ソフトウェアエンジニアによるIT技術、数学の備忘録

dual isogeny

楕円曲線のlattice(格子)を考える。
lattice上では無限遠点z=0である。格子上の点は全て無限遠点である。
C/L=Eは無限個の点を持つが、そのうち3倍点を考える。
3倍点とは点zを3つ加算したものが0になる点つまり、z+z+z=3z=0となる点のことである。
この点は9つある。格子がガウス整数の場合は、0, 1/3, 2/3, i/3, 1/3+i/3, 2/3+i/3, 2i/3, 1/3+2i/3, 2/3+2i/3である。
一般に N \in Z倍写像を考えるとき、点は N \cdot N個存在する。

isogeny

lattice上のisogeny(同種写像)\phiを考える。
isogenyとは、2つの格子L1,L2を考えた時、
L1のfundamental parallelogramの基底 \omega_1 \omega_2

を係数を整数として線型結合したものをL2としたものと定義する。
 \omega_1' = a \omega_1 + b \omega_2
 \omega_2' = c \omega_1 + d \omega_2
 a, b, c, d \in Z

例として格子の片方の間隔を2倍、もう片方の間隔を3倍(a=2, b=0, c = 0, d = 3)するとL2のfundamental parallelogramの面積がL1の6倍になる。
同時に、L2の格子点は全て、L1に含まれることが分かる。
これを L2 \subseteq L1と表現する。
この面積の比率のことをdegreeと定義する。degree = ad-bc である。

面積の比率が2倍になる時のa, b, c, d の取るセットを考えると、
 S_0: a = 2, b = 0, c = 0, d = 1
 S_1: a = 1, b = 0, c = 0, d = 2
 S_2: a = 1, b = 1, c =0, d = 2
の3種類が考えられる。

{\displaystyle 
  S_0 =
    \begin{pmatrix}
      2 & 0 \\
      0 & 1 
    \end{pmatrix}
},
{\displaystyle 
  S_1 =
    \begin{pmatrix}
      1 & 0 \\
      0 & 2 
    \end{pmatrix}
},
{\displaystyle 
  S_2 =
    \begin{pmatrix}
      1 & 1 \\
      0 & 2 
    \end{pmatrix}
}

ここでは ad = 2, c = 0, 0 \le b \lt dとしている。
黒枠はL2のLatticeを表しているが、どれも面積が2倍になっていることが分かる。
赤い点は、同種写像\phiでz=0になる点である。
この点の数はdegreeに等しい。
#  Ker(\phi) = [ L_2 : \phi L_1 ] = deg(\phi)
 Ker(\phi) = L_2 / \phi L_1

f:id:pebble8888:20190825192729p:plain:w400

面積が N \in Z倍になる同種写像のことをN-isogenusと呼ぶ。

ここで、一つ前のセクションで説明したN倍写像 [N ]を考える。
 \phiをisogenyとしそのdegreeをNとする。その逆写像を \phi^{-1}とする。
dual isogenyを \widehat {\phi} = \phi^{-1} \cdot [N]で定義する。
 \phi \cdot \widehat {\phi} = [N]が成り立つ。

 \phiのdegreeがNのとき、N倍写像の点の数は N^{2}なので、
dual isogenyのdegreeはNである。

N倍写像は面積が N^{2}倍であるのみ対して、degreeがNのisogenyの選び方は何種類かあると考えられるが、
isogenyかどうかを判定する方法はある。

2つのLatticeがN-isogenousかどうかの判定

2つのLatticeがN-isogenousかどうかを以下で判定できる。
 \Phi_N(X, Y)をN次のモジュラー多項式とするとき、
C/L1, C/L2のj-invariantを j_1, j_2とするとき次の2つの条件は同値である。
i)  \Phi_N(j_1, j_2) = 0が成り立つ。
ii) 2つのLatticeがN-isogenousである。

N=2のisogeny写像は3つあることが分かるがどれも、 \Phi_2(j_1, j_2) = 0を満たす。
 \Phi_N(j_1, j_2) = 0が成り立つということは以下のどれかが成り立つということである。
 j_1(\tau) = j_2({2 \tau})
 j_1(\tau) = j_2(\frac {\tau} {2})
 j_1(\tau) = j_2(\frac {\tau + 1} {2})
上の図のような格子の関係にある場合に対応する。

N=5の場合は以下のようになる。
 j_1(\tau) = j_2({5 \tau})
 j_1(\tau) = j_2(\frac {\tau} {5})
 j_1(\tau) = j_2(\frac {\tau + 1} {5})
 j_1(\tau) = j_2(\frac {\tau + 2} {5})
 j_1(\tau) = j_2(\frac {\tau + 3} {5})
 j_1(\tau) = j_2(\frac {\tau + 4} {5})