타원 곡선에 추가
면책 조항 : 이것은 타원 곡선의 풍부한 주제에 대한 정의를하지 않습니다. 많이 단순화되었습니다. 타원 곡선이 최근 암호화와 관련하여 많은 미디어 주목을 받았기 때문에 타원 곡선의 "계산"이 실제로 어떻게 작동하는지에 대한 작은 통찰력을 제공하고 싶었습니다.
소개
타원 곡선은 (x,y)
양식 평면의 점 집합입니다 y^2 = x^3+Ax+B
. ( 4A^3+27B^2 ≠ 0
단순한 특이점을 피하기 위해) 모든 분야에서 이러한 곡선을 고려할 수 있습니다. 실수 필드를 사용하면 곡선을 시각화 할 수 있으며 다음과 같이 보입니다.
이 곡선에 대한 특별한 것은 그들이 점이다 내장 또한의 아날로그입니다 산술 연산. 점을 더하거나 뺄 수 있으며이 연산은 연관성 및 정류 성 (아벨 리아 그룹)입니다.
추가는 어떻게 작동합니까?
참고 : 타원 곡선에 점을 추가하는 것은 직관적이지 않습니다. 이런 종류의 추가는 좋은 특성을 가지고 있기 때문에 정의 된 방식입니다. 이상하지만 작동합니다.
타원 곡선 그룹을 형성하는 바와 같이, 거기 첨가제 신원 추가 0.의 동등한 0
결과를 변경하지 않을 어떤 지점이. 이러한 부가적인 정체성은 무한대의 "지점"입니다. 평면의 모든 선은이 점을 무한대로 포함하므로 추가해도 아무런 차이가 없습니다.
주어진 선이 세 점에서 곡선과 교차 0
하고이 세 점의 합이 이라고 가정합시다 0
. 이를 염두에두고이 이미지를 살펴보십시오.
자연의 질문은 무엇 P+Q
입니까? 글쎄, P+Q+R = 0
그렇다면 P+Q = -R
(또는으로 쓰여짐 R'
). 어디있어 -R
? 곳이다 R + (-R) = 0
에서 X 축의 반대편에있는 R
경우에만 교차이를 통해 라인이 수직이되도록 R
, -R
, 및 0
. 이 이미지의 첫 부분에서 이것을 볼 수 있습니다.
이 이미지에서 볼 수있는 또 다른 점은 점 자체의 합이 선이 곡선에 접함을 의미한다는 것입니다.
선과 타원 곡선의 교차점을 찾는 방법
두 개의 별개의 포인트의 경우
일반적으로 정확히 두 점을 통과하는 한 줄이 P=(x0,y0), Q=(x1,y1)
있습니다. 수직이 아니고 두 점이 서로 다르다고 가정하면로 쓸 수 있습니다 y = m*x+q
. 타원 곡선과의 교차점을 찾으려면
0 = x^3+Ax+B-y^2 = x^3+Ax+B-(m*x+q)^2
3 차 다항식입니다. 이들은 일반적으로 해결하기 쉽지 않은 그, 그러나 우리는 이미이 다항식의 두 개의 0을 알고 두 x
-coordinates x0, x1
두 점은 우리가 추가 할!
그 방법은 우리의 선형 요소 밖으로 요인 (x-x0)
과 (x-x1)
와는 그 루트는 IS 세 번째 선형 요소로 남아있는 x
점의 -coordinate R
. ( -R
. 너무 때문에 대칭의 경우 참고 R = (x2,y2)
다음을 -R = (x2,-y2)
(가). -
그룹에서이며 그것은이의 vectorial 마이너스가 아닙니다.)
P
자체에 하나의 포인트 를 추가하는 경우
이 경우에서 곡선의 탄젠트를 계산해야합니다 P=(x0,y0)
. 우리는 직접 쓸 수 m
및 q
측면에서 A,B,x0,y0
:
3*x0^2 + A
m = ------------
2*y0
-x0^3 + A*x0 + 2*B
q = --------------------
2*y0
우리는 방정식을 y = m*x+q
얻었고 위의 단락과 같은 방식으로 진행할 수 있습니다.
완전한 케이스 트리
다음은 이러한 모든 경우를 처리하는 방법의 전체 목록입니다.
P,Q
타원 곡선의 점으로 하자 ( "무한대"점 포함 0
)
- if
P = 0
또는Q = 0
, thenP+Q = Q
또는P+Q = P
, 각각 - 다른 사람
P ≠ 0
과Q ≠ 0
그렇게 할 수P = (x0,y0)
및Q = (x1,y1)
:- 그렇다면
P = -Q
(즉x0 = x1
,y0 = -y1
)P+Q = 0
- 그밖에
P ≠ -Q
- 그렇다면
x0 = x1
우리는P=Q
그것을 얻기 위해 접선을 계산합니다 (위 섹션 참조)R
. 그때P+Q = P+P = 2P = -R
- 그렇지 않으면 :
y = m*x+y
계산하기 위해 위의 두 지점을 통해 양식의 선을 구성 할 수 있습니다R
. 그때P+Q=-R
- 그렇다면
- 그렇다면
유한 필드
이 문제의 경우 우리는 단지 크기의 필드를 고려할 p
경우 p
소수 (때문에 일부 세부 사항 p ≠ 2, p ≠ 3
). 이것은 단순히 계산할 수있는 장점이 있습니다 mod p
. 다른 분야의 산술은 훨씬 더 복잡합니다.
이 예제에서 우리 p = 5
는 여기에서 모든 평등을 합의합니다 mod 5
.
2+4 ≡ 6 ≡ 1
2-4 ≡ -2 ≡ 3
2*4 ≡ 8 ≡ 3
2/4 ≡ 2*4 ≡ 3 because 4*4 ≡ 16 ≡ 1, therefore 1/4 ≡ 4
도전
A,B
타원 곡선 의 매개 변수 , 주 필드 특성 p
및 P,Q
타원 곡선의 두 점이 주어진 경우 그 합을 반환합니다.
- 매개 변수가
A,B
실제로 타원 곡선을 설명 한다고 가정 할 수 있습니다4A^3+27B^2 ≠ 0
. P,Q
실제로 타원 곡선 또는0
- 점의 점 이라고 가정 할 수 있습니다 .- 이것이
p ≠ 2,3
프라임 이라고 가정 할 수 있습니다 .
테스트 사례
MATLAB / Octave에서 (아주 우아하지 않은) 구현을 만들었습니다. ideone.com 자신의 테스트 사례에 사용할 수 있습니다 . 적어도 손으로 만든 몇 가지 계산을 재현했습니다.
여기에서 고려하는 모든 곡선에 적합한 사소한 테스트 사례를 참고하십시오.
0 추가 : P+0 = P
역수 추가 :(x,y) + (x,-y) = 0
들어 p = 7, A = 0, B = 5
두 점 P = (3,2)
과 Q = (6,2)
타원 곡선에 있습니다. 그런 다음 다음을 유지합니다.
2*Q = Q+Q = P
2*P = P+P = (5,2)
3*P = P+P+P = (5,2)+P = (6,5)
4*P = P+P+P+P = (5,2)+(5,2) = (6,5)+(5,2) = Q
타원 곡선의 모든 위치는 (3,2),(5,2),(6,2),(3,5),(5,5),(6,5),0
들어 p = 13, A = 3, B = 8
우리가 얻을
(1,8)+(9,7) = (2,10)
(2,3)+(12,11) = (9,7)
2*(9,6) = (9,7)
3*(9,6) = 0
들어 p = 17, A = 2, B = 2
와 P=(5,1)
우리가 얻을
2*P = (6,3)
3*P = (10,6)
4*P = (3,1)
5*P = (9,16)
6*P = (16,13)
7*P = (0,6)
8*P = (13,7)
9*P = (7,6)
10*P = (7,11)
정말 야심이 있다면
p = 1550031797834347859248576414813139942411
A = 1009296542191532464076260367525816293976
x0 = 1317953763239595888465524145589872695690
y0 = 434829348619031278460656303481105428081
x1 = 1247392211317907151303247721489640699240
y1 = 207534858442090452193999571026315995117
n
그런 자연수를 찾아보십시오 n*(x0,y0) = (x1,y1)
. 자세한 내용은 여기를 참조하십시오.
충수
내 초안을 검토하고 편집 해 주신 @ El'endiaStarman에게 감사드립니다.
왜 타원 곡선입니까?
글쎄, 그것은 일종의 임의의 방정식처럼 보일 수 있지만, 그것은 일반적이지 않습니다. 일반적으로 우리는 투영 평면 에서 기하학적 인 "모양"을 고려합니다 (즉 "무한대"가 나오는 곳). 우리는 모든 동질성 을 고려합니다. 3 차 다항식 (낮거나 더 높은 것은 시험하기가 너무 어렵거나 사소한 것일 수 있습니다.) 우리가 원하는 좋은 특성을 얻기 위해 몇 가지 제한을 적용한 후 그리고 다항식을 비 균질화 한 후 (3 개의 아핀 평면 중 하나로 투영 됨) ) 우리는 다음과 같은 방정식으로 끝납니다.y^2+a*x*y+b*y = x^3+c*x^2+d*x+e
이것은 긴 Weierstrass 형태의 타원 곡선입니다. 이것들은 기본적으로 우리가 생각한 것과 같은 곡선이지만 약간 기울어졌습니다. 선형 좌표 변환을 사용하면 간단한 Weierstras 방정식을 쉽게 만들 수 있습니다. 예를 여전히 흥미로운 특성을 보유.
왜 우리는 배제 p=2,3
했습니까?
이것은 짧은 Weierstrass 양식의 경우 4A^3+27B^2 ≠ 0
특이점을 피하기 위해 제한 이 필요하다는 사실과 관련이 있습니다 (아래에 더 자세히 설명되어 있음). 우리가 가진 특성 2 4 = 0
의 분야와 우리가 가진 특성 3의 분야에서, 27 = 0
이러한 종류의 분야에 대해 짧은 weierstrass 형태의 곡선을 갖는 것은 불가능합니다.
특이점이란 무엇입니까?
방정식이 4A^3+27B^2=0
유지되면 다음과 같은 특이점이 있습니다.이 점에서 알 수 있듯이 미분을 찾을 수 없으므로 탄젠트가 없으므로 연산을 "종료"합니다. 방정식을 y^2 = x^3
보거나y^2 = x^3-3*x+2
어쨌든 타원 곡선 이라고 불리는 이유는 무엇 입니까?
그 이유는이 형태의 방정식이 타원 적분으로 나타나기 때문입니다. 이름의 원점에 대한 짧은 슬라이드 쇼.
그들은 암호화와 어떤 관련이 있습니까?
nP = P+P+...+P
매우 효율적 으로 계산하는 방법이 있습니다 . 예를 들어 Diffie Hellman 키 교환 에서 사용할 수 있습니다 . 모듈 식 산술은 비틀림 부분 군에 대한 추가로 대체 될 수 있으며, 이들은 한정된 순서를 갖는 곡선상의 점들입니다. (이것은 mP = 0
일부의 m
경우 기본적으로 계산하는 것을 의미합니다 mod m
).
y^2 = x^3 + x
유효한 타원 곡선이며 곡선(0,0) ≠ 0
의 점입니다!)