프라임 필드의 타원 곡선에서 점 빼기를 수행하려고합니다. (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)'은 올바른 방법이 아닙니다. –
그렉, 모듈 식 역 방법으로 나눗셈을 할 수 있도록 코드를 편집해야한다는 것을 알았지 만, 정규 나눗셈으로도 궁금하다. 내가 얻은 모든 점은 타원 곡선에 있었다! ... 답장을 보내 주셔서 감사합니다! 그리고 내 프로그램에서 나는 타원에 대해 무한 점을 고려해야 만한다. –