我想对素数场上的椭圆曲线进行点减法。我试着把积分扣除为(x,-y log(p))
,但我的答案似乎不匹配。椭圆曲线密码术中的点减法
这是我尝试做减法:
s9=point_addition(s6.a,s6.b,((s8.a)%211) ,-((s8.b)%211));
这里s9
,s6
和s8
是两个int
所有结构。
,这是我的函数不加分:
structure point_addition(int x1, int y1, int x2, int y2)
{
int s,xL,yL;
if((x1-x2)!=0)
{
if ((((y1-y2)/(x1-x2)) % 211)>0)
s=(((y1-y2)/(x1-x2)) % 211);
else
s=(((y1-y2)/(x1-x2)) % 211) + 211;
if ((((s*s)-(x1+x2)) % 211)>0)
xL= (((s*s)-(x1+x2)) % 211) ;
else
xL= (((s*s)-(x1+x2)) % 211) + 211;
if(((-y1+s*(x1-x2)) % 211)>0)
yL= ((-y1+s*(x1-xL)) % 211);
else
yL= ((-y1+s*(x1-x2)) % 211) + 211;
}
else
{
xL= 198 ;
yL= 139;
}
s7.a= xL;
s7.b= yL;
return s7 ;
}
的程序似乎并没有给我正确的坐标,请帮我这个编码椭圆曲线加密。
不要忘记标记正在执行的语言在Jowin中计算,如果只是增加观点的数量。我猜C了,但你可以重新编辑你的问题来改变它。 –
Jowin,“division”mod p表示您必须计算[模块反转](http://en.wikipedia.org/wiki/Modular_inverse)。 s =(((y1-y2)/(x1-x2))%211)'不是正确的方法。 –
GregS,我看到我必须编辑我的代码,用模块化的逆方法进行分割..但是我想知道如何进行正常分割无论我得到的是椭圆曲线上的哪些点!..非常感谢您的回答!在我的程序中,无限点必须考虑椭圆,我可以采取什么措施? –