# 楕円曲線2
問題文
楕円曲線E: y^2 = x^3 + ax + b(D := -16(4a^2-27b^2) ≠ 0)の点の座標成分が有限体Fp={0, 1, ..., p-1}の元である場合を考えましょう.ただし,pは2,3以外の素数です.
E = E(Fp)をFp上の楕円曲線として,BをE上の点とし,Bをベースポイントと呼びます.このとき,Bを底とする離散対数問題が与えられます.
xB = P
となり,整数xを求める問題になります.
p=5, ベースポイントを(2,4),y^2 = x^3 + 21x + 1とするとき,位数とkBを答えなさい
CSL24{Bの位数:kB}
例
B の位数= 4
kB= [(0 : 1 : 0), (4 : 1 : 1), (3 : 0 : 1), (4 : 4 : 1)]
ならば,
CSL24{4:(0 : 1 : 0), (4 : 1 : 1), (3 : 0 : 1), (4 : 4 : 1)}
解法
問題文1と同様に問題文に合うように修正すればOKです.
```
E=EllipticCurve(GF(p), [21, 1])
B= E(2,4)
kB=[]
k=0
while k*B not in kB: #k*B== kB
kB.append(k*B)
k+=1
print("B の位数: ",k)
print("kB: ", kB)
```
CSL24{3:(0 : 1 : 0), (2 : 4 : 1), (2 : 1 : 1)}