我有一条椭圆曲线 EC,我需要找到 EC 的这样一个点 G,其坐标是曲线上所有点中最小的非负整数。我需要它来实现ECOH散列算法。我试图使用 openssl 来实现这个目标,但到目前为止我还没有弄清楚如何找到这样一个点。我试图这样做:
EC_POINT *G = EC_POINT_new(ec);
for(int i = 1; i < 1024; i++)
{
itoa(i, str, 10);
BN_dec2bn(&x, str);
EC_POINT_set_affine_coordinates_GFp(ec, G, x, y, ctx);
if(EC_POINT_is_on_curve(ec, G, ctx))
printf("%s\n", str);
}
但它只检查坐标为 (x, y) 的点是否在曲线上。我怎样才能找到它?