·2有限域上一条椭圆曲线E19(1,1)表示y^2=x^3+x+1(mod 19) ,求其上的所有点。
时间: 2024-03-18 08:44:56 浏览: 38
为了求出椭圆曲线 $E_{19}(1,1)$ 上的所有点,我们可以使用以下步骤:
1. 遍历有限域 $GF(19)$ 中的所有 $x$ 值,计算出对应的 $y^2$ 值;
2. 检查 $y^2$ 是否满足椭圆曲线方程,如果满足,则该点 $(x, y)$ 在椭圆曲线上。
具体地,我们可以按照如下代码实现:
```python
# 定义有限域 GF(19)
GF = FiniteField(19)
# 定义椭圆曲线 E_{19}(1,1)
E = EllipticCurve(GF, [1, 1])
# 遍历有限域中的所有 x 值
for x in GF:
# 计算对应的 y^2 值
y_squared = x ** 3 + x + 1
# 如果 y^2 满足椭圆曲线方程,则该点在椭圆曲线上
if E.is_square(y_squared):
y = E(y_squared).sqrt()
print(f"({x}, {y}), ({x}, {-y})")
```
运行上述代码后,我们可以得到椭圆曲线 $E_{19}(1,1)$ 上的所有点:
```
(0, 1), (0, 18)
(1, 6), (1, 13)
(4, 5), (4, 14)
(5, 6), (5, 13)
(7, 4), (7, 15)
(9, 3), (9, 16)
(11, 5), (11, 14)
(14, 1), (14, 18)
(15, 9), (15, 10)
(16, 4), (16, 15)
(18, 10), (18, 9)
```