Closed yangbongsoo closed 1 year ago
모든 타원곡선 방정식은 유한체에서도 유효하다.
prime = 223
a = FieldElement(0, prime)
b = FieldElement(7, prime)
x1 = FieldElement(192, prime)
y1 = FieldElement(105, prime)
x2 = FieldElement(17, prime)
y2 = FieldElement(56, prime)
p1 = Point(x1, y1, a, b)
p2 = Point(x2, y2, a, b)
p3 = Point(FieldElement(170, prime), FieldElement(142, prime), a, b)
print(p1 + p2 == p3) # True
유한체에서 정의된 타원곡선
유한체에서 정의되었기 때문에 타원곡선 모양이 실수체에서 정의된것과 많이 다르다. 유한체 원소들은 연속적이지 않기 때문이다. 유일하게 관찰되는 패턴은, $y^2$ 항 때문에 y 축의 중간값(100) 을 지나는 수평축을 기준으로 대칭이다. 실수체에서의 곡선처럼 x 축으로 대칭도 아니다. 유한체에서 음수가 없기 때문이다.
init 에서 해당 Point 가 타원곡선 위에 있는지 검사하는 연산은 FieldElement 에서 재정의한 operation 을 사용한다.