Cryptography Reference
In-Depth Information
> S + E2![2, 9];
(6 : -17 : 1)
To find the 3rd multiple of the point (2
,
9) on
E
2
:
> 3*E2![2,9];
(5111/625 : -389016/15625 : 1)
To find the torsion subgroup of
E
1
(
Q
):
> TorsionSubgroup(E1);
Abelian Group isomorphic to Z/10
Defined on 1 generator
Relations:
10*$.1 = 0
Note that we obtained only an abstract group, not the points. To get the
points, we define a group
G
andanisomorphism
f
from
G
to the set of points:
> G, f:= TorsionSubgroup(E1);
To obtain the first element of
G
,type:
> f(G.1);
(3 : 1944 : 1)
This is a torsion point in
E
1
(
Q
).
Let's reduce
E
1
mod 13. Define
F
to be the field with 13 elements and
E
3
to be
E
1
mod 13:
> F:= GF(13);
> E3:= ChangeRing( E1, F );
> E3; Elliptic Curve defined by y
ˆ
2=x
ˆ
3 +10*x + 5 over GF(13)
The last command was not needed. It simply identified the nature of
E
3
.
We also could have defined a curve over
F
13
. The command
F!10
puts 10
into
F
13
, which forces everything else, for example 5, to be in
F
13
:
> E4:= EllipticCurve( [F!10, 5]);
> E4;
Elliptic Curve defined by y
ˆ
2=x
ˆ
3 +10*x + 5 over GF(13)
>E3eqE4;
true
The last command asked whether
E
3
is the same as
E
4
. The answer was
yes.
We can find out how many points there are in
E
3
(
F
13
), or we can list all
the points:
> #E3;
10
> Points(E3);
{
@ (0 :
1 :
0), (1 :
4 :
1), (1 :
9 :
1), (3 :
6 :
1),
(3 :
7 :
1), (8 :
5 :
1), (8 :
8 :
1), (10 :
0 :
1),
Search WWH ::
Custom Search