슈프의 알고리즘
Schoof's algorithm슈프의 알고리즘은 유한장 위의 타원 곡선 위의 점들을 세는 효율적인 알고리즘입니다. 이 알고리즘은 타원 곡선 암호학에서 응용되며, 타원 곡선의 점 그룹에서 이산 로그 문제를 푸는 어려움을 판단하기 위해 점의 수를 아는 것이 중요합니다.
이 알고리즘은 1985년 르네 쇼프(René Schoof)에 의해 발표되었으며 타원 곡선에서 점을 세는 최초의 결정론적 다항 시간 알고리즘이었기 때문에 이론적인 돌파구였습니다. 슈프의 알고리즘 이전에는 순진하고 아기 단계의 거대 단계 알고리즘과 같은 타원 곡선에서 점을 세는 접근 방식은 대부분 지루하고 지수적인 실행 시간을 가졌습니다.
이 글은 슈프의 접근 방식을 설명하면서 알고리즘의 구조에 기초한 수학적 아이디어를 강조합니다.
서론
Let be an elliptic curve defined over the finite field , where for a prime and an integer . Over a field of characteristic 타원 곡선은 (짧은) Weierstrass 방정식으로 주어질 수 있습니다.
∈ A,BF _{q}}입니다. _에 정의된 점 집합은 곡선 방정식과 무한 O의 점을 만족하는 해 (a∈ F 2 {\(a, b)\ \ _q}^{2}}로 구성됩니다. 이 집합으로 제한된 타원 곡선에 대한 군 법칙을 사용하면 이 집합 ) 가 0 로 작용하는 아벨 군을 형성한다는 것을 알 수 있습니다 타원 곡선의 점을 세기 위해 ) 의 카디널리티를 계산합니다 카디널리티# 를 계산하는 슈프의 접근 방식은 중국의 나머지 정리 및 나눗셈 다항식과 함께 타원 곡선에 대한 하세 정리를 사용합니다.
하세 정리
하세의 정리는 E / q{\/\_{가 F 에 대한 타원 곡선이라면 # E( 는 다음을 만족한다고 말합니다.
1934년 Hasse가 제공한 이 강력한 결과는 # 를 유한한(큰) 가능성 집합으로 좁혀 문제를 단순화합니다. Defining to be , and making use of this result, we now have that computing the value of modulo where , 는t {\ 따라서 #E {\q}}을(를) 결정하는 데 충분합니다 N {\ N에 t (N {\ t {N을 직접 계산하는 효율적인 방법은 없지만 에 대해 t( t을(를) 효율적으로 계산할 수 있습니다. We choose to be a set of distinct primes such that . Given for all , 중국어 나머지 정리를 통해 t 을 계산할 수 있습니다
≠ p l\n에 대해 ( t을 계산하려면 저희는 프로베니우스 내형 {\displaystyle\phi} 및 나눗셈 다항식의 이론을 사용합니다. ≠ p l\n을 고려합니다.는 제품이 충분히 큰지 확인하기 위해 항상 더 큰 프라임을 선택할 수 있기 때문에 손실이 없습니다. 어쨌든 Schoof의 알고리즘은 소특성 필드에 대한 p {\displaystyle p} 애디컬 알고리즘이라고 불리는 더 효율적인 것이 있기 때문에 케이스 = displaystyle q = 를 해결하는 데 가장 자주 사용됩니다.
프로베니우스 내형성
Given the elliptic curve defined over we consider points on over , the algebraic closure of ; i.e. ¯ q {\{\_{q}}의 좌표를 갖는 점을 허용합니다. {\displaystyle _{}위의 F ¯ q {\F}_{q}의 프로베니우스 내형은 ϕ ( y ↦ (x, y) : (x ymapsto (x^{q, y ^{q}}에 의해 곡선으로 확장됩니다.
이 맵은 E의 ID이며 무한대 {\ O의 점까지 확장할수 (¯) E({\ {F _{q}})에서 자신으로 그룹 모피즘이 됩니다.
프로베니우스 내동형은 다음 정리에 E)의 카디널리티와 연결되는 2차 다항식을 만족합니다.
정리: ϕ \phi}에 의해 주어진 프로베니우스 내형은 특성 방정식을 만족합니다.
- 2- +q = , \ ^{2}-t\phi+ q = 0,} 여서 t = q + 1 - # E (F q) {\displaystye t = q1-\# E (\mathbb {F} _{q})}
Thus we have for all that , where + denotes addition on the elliptic curve and and denote scalar multiplication of by and of by .
One could try to symbolically compute these points , and as functions in the coordinate ring ( - - A - ) {\displaystyle 의 값을 찾은 다음 방정식을 만족하는 t의 값을 검색합니다. 그러나, 그 정도가 매우 커지고 이 접근법은 비현실적입니다.
Schoof의 아이디어는 다양한 작은 에 대해 l{\ l의 점으로 제한된 이 계산을 수행하는 것이었습니다 홀수 을를) 고치고 이제 }을를) 결정하는 문제를 해결합니다 로 정의됨 주어진 ≠ 에 대해 p l\n 점( y 은(는) l l - E[l] {P E (Fq ) l P O} {\displaystyle E[l]\{P\in E ({\bar {\mathbb {F} _{q}})\mid lPO\}, then where is the unique integer such that and . Note that and that for any integer we have . Thus will have the same order as . Thus for belonging to , we also have if . 그래서 우리는 우리의 문제를 방정식을 푸는 것으로 줄였습니다.
여기서 ¯ {\bar {t}}및 q ¯ {\displaystyle {\bar {q}}은 [ -(l - 1 ) / 2, (l - 1 ) / 2] {\displaystyle [-(l-1)/ 2, (l-1)/ 2]의 정수 값을 갖습니다.
연산 모듈로 소수
l번째 나눗셈 다항식은 그 근이 정확히 l의 점들의 x좌표가 되도록 하는 것입니다. 따라서 x y 2+ ¯(x, ) yq^{}}(x,y)}의 계산을 l-토션 포인트로 제한하는 것은 E와 l차 나눗셈 다항식의 좌표 링에서 이 식을 함수로 계산하는 것을 의미합니다. , [ y]/( 2- - - ψ l) displaystyle x, /(2}-3}-psi_{l}}에서 작업 중입니다. 이는 특히와의가(X x ), (x y =( 2 2) + ¯ ( y ) {\y), Y(x, y):(x^{는 y에서 최대 1, x에서 최대2(2 -)/ 입니다.
스칼라 ¯(x, ) q}}(x, y)}은 이중 덧셈 방법 또는 ¯ {\ {\bar {q}} 제분 다항식을하여 수행할 수 있습니다. 후자의 접근 방식은 다음과 같습니다.
여기서ψ n psi _{n}}은 n차 나눗셈 다항식입니다. y ¯ / y {\q}}/y}는 x에만 있는 함수이며θx ) theta(x)}로 됩니다.
문제를( , ) ¯ ± q ≠ (x (x^{2 y^{q^{2}}\n인 경우로 나누어야 합니다. 및 ( 2 ±q (x,y) {\displaystyle (x^{q^{2}},y^{q^{2}) \pm {\bar {q}}(x,y)}인 경우. 이러한 동등성은 모듈로ψ {l}}에서 확인됩니다.
사례 1:( 2 y 2 ≠ ± ¯ (x, y)q^{}}, y^{q^{2}})\n
그룹 ( {\ E 에 대한 덧셈 공식을 사용하면 다음을 얻을 수 있습니다.
부등식 가정이 잘못된 경우 이 계산은 실패합니다.
이제 x좌표를 사용하여 ¯ {\t}의 선택 범위를 양의 경우와 음의 경우로 좁힐 수 있습니다. y좌표를 사용하면 나중에 두 경우 중 어떤 경우가 성립하는지 알 수 있습니다.
우리는 먼저 X가 x에서만 함수라는 것을 보여줍니다. - ¯) = (q 2 - 1 - y q ¯ / y) 2 {\displaystyle(y^{q^{2}-y_{\bar {q}}^{2}=y^{2}(y^{q^{2}-1}-y_{\bar {q}/y)^{2}}를 생각해 보십시오. q 2 - 1 {\displaystyle q^{2}-1}은 짝수이므로, 를 + + B x로 대체합니다. 식을 다음과 같이 씁니다.
그리고 그것을 가지고 있습니다.
여기, 잘못된 것 같습니다. - ¯ {\}}-bar {q}}}를 버립니다.
Now if for one then satisfies
모든 l-토션 점 P에 대하여.
As mentioned earlier, using Y and we are now able to determine which of the two values of ( or ) works. 이것은 ≡ ¯( ) {\displaystyle t\equiv {\bar {}}{\pmod {l}}의 값을 제공합니다. Schoof의 알고리즘은 고려되는 각 프라임에 대한 변수 t {\displaystyle {t}}{\pmod {l}}의 값을 t ¯(mod l) {\displaystyle {t}} {\pmod {l}}의 값을 저장합니다.
사례 2:( 2 =± ¯(x, y) {\displaystyle (x^{q^{2}}, y^{q^{2}) =\pm {\bar {q}} (x,y)}
먼저 2, 2) = ¯ (x, y) (x^{q^{2}}, y^{q^{2}) = {\bar {q}}(x,y)}라고 가정합니다. l은 홀수 소수이므로 ¯ (x, y) = - q ¯ (x, y) {\displaystyle {\bar {q}}(x,y) =-{\bar {q}}(x, y)}(x, {\displaystyle }}\n 0 특성 방정식은 ¯ ϕ (P = 2q ¯ P {\displaystyle bar {t}}\ (P= 2{\bar {q}P}입니다. 결과적으로 t ¯ 2 q ¯ ≡ (2 q) 2 (mod l) {\displaystyle {\bar {t}^{2}{\bar {q}}\equiv (2q)^{2}{\pmod {l}}입니다. 이는 q가 정방형 모듈임을 의미합니다. Let . Compute in and check whether =w입니다 그렇다면 {\은 y좌표에 따라 l{\입니다.
If q turns out not to be a square modulo l or if the equation does not hold for any of w and , our assumption that is false, thus }}= 특성 방정식은 = {\ = 0}을 제공합니다.
대소문자 =2 {\displaystyle l = 2
기억하신다면, 의 초기 고려 은 l =2 {\displaystyle = 2}의 경우를 생략합니다. q를 홀수라고 가정하기 때문에 q + 1 - t ≡ t (mod 2) {\displaystyle q + 1-t\equiv {\pmod {2}} 특히, (mod {\pmod {2}}E( {\ E {F}_{q})}가 차수 2의 요소를 갖는 에만 그룹의 덧셈에 대한 정의에 따라 순서 2의 모든 요소는( {\ 형식이어야 합니다 ≡ 0 (mod ) {\pmod {2}} + Ax + B {\x^{3}+인 경우에만은(는) ( - + A + 1 \x^{3}+Ax+B)인 에만 에 루트가 있습니다 1
알고리즘이.
입력 : 1. 타원 곡선 = 2-x 3 - A x - B {\ E = y}-x^{3}-Ax-B 2. q = p b, b ≥ 1 {\displaystyle F_{q}인 유한 필드 F q {\displaystyle F_{q}에 대한 정수 q. 출력: The number of points of E over . Choose a set of odd primes S not containing p such that Put if , else . Compute the division polynomial . All computations in the loop below are performed in the ring For do: Let be the unique integer such that and . Compute , and . if 다음 계산 Y for do: if then if then ; else . else if q is a square modulo l then compute w with compute if 다음 t w (xq, y q ) (x q 2, - y q 2) {\displaystyle w (x^{q}) (x^{q^{2}}인 경우 t_{l} 2w}입니다. then else else Use the Chinese Remainder Theorem to compute t modulo N from the equations , 서 l∈ S lin S}. + 1 - t {\q+1-t}.
복잡성
Most of the computation is taken by the evaluation of and , for each prime , that is computing , , , }} 각 기본 {\ l에 대한 y q 2 {\ y^{2 여기에는 링 = [x, y ] / (y 2 - x 3 - A x - B, ψ l) {\displaystyle R =\mathbb {F} _{q}[x,y]/(y^{2}-x^{3}-Ax-B,\psi _{l}}의 지수가 포함되며 O(로그 q) {\displaystyle O(\log q)} 곱셈이 필요합니다. ψ {\displaystyle l}}의 차수가 2 - 12 {\displaystyle {\frac {l^{2}-1}{2}}이므로, 환의 각 원소는 차수 O(l 2) {\displaystyle O(l^{2}}의 다항식입니다. 소수 정리에 의해, there are around primes of size , giving that is and we obtain that . 따라서 링 R의 각 곱셈은 F} _{q}에서 O(log 4 q) {\ O^{4}q)} 을 필요로 하며, 이때 2 q) O(\log ^{2}q)} 비트 연산이합니다. 기본 의 비트 연산 수는 q) Olog ^{7}q)}입니다. 이 계산은 각 O(log q) {\displaystyle O(\log q)}개의 기본에 대해 수행되어야 합니다. Schoof의 알고리즘의 전체 복잡도는 q) 8}q)}인 것으로 나타났습니다. 빠른 다항식과 정수 산술을 사용하면 이 값이 O ~ (log 5 q) {\displaystyle {\tilde {O}}(\log ^{5}q)}로 줄어듭니다.
Schoof 알고리즘의 개선점
1990년대에 노암 엘키스(Noam Elkies)와 A. O. L. 애트킨(L. Atkin)은 이전에 고려된 소수 S= {l 1, …, l s} {\displaystyle S =\{l_{1},\ldots,l_{s}\} 집합을 특정 종류의 소수로 제한함으로써 슈프의 기본 알고리듬에 대한 개선 사항을 고안했습니다. 이것들은 각각 엘키스 소수와 앳킨 소수라고 불리게 되었습니다. 방정식인ϕ 2 - tϕ +q= 0displaystyle \phi^{2t\phi + q=0}이 Fl {\displaystyle \mathbb {F}_{l}에 걸쳐 분할되는 반면, Atkin 프라임은 Elkies 프라임이 아닌 프라임입니다. Atkin은 효율적인 알고리즘을 만들기 위해 Atkin 소수에서 얻은 정보와 Elkies 소수에서 얻은 정보를 결합하는 방법을 보여주었고, 이는 Schof-로 알려지게 되었습니다.엘키스–Atkin 알고리즘. 첫 번째 해결해야 할 문제는 주어진 소수가 엘키스인지 앳킨인지를 결정하는 것입니다. 이를 위해 모듈 형태에 대한 연구와 복소수에 대한 타원 곡선의 해석에서 나온 모듈 다항식을 격자로 사용합니다. 일단 우리가 어떤 경우에 해당하는지를 결정하고 나면, 우리는 나눗셈 다항식을 사용하는 대신 해당 나눗셈 다항식보다 낮은 차수를 갖는 다항식을 사용할 수 있습니다: {\O( 대신 O( 효율적인 구현을 위해, 확률적 근찾기 알고리즘을 사용하므로 결정론적 알고리즘이 아닌 라스베이거스 알고리즘이 됩니다. q) Olog q)} 바운드까지의 소수 중 약 절반이 Elkies 소수라는 휴리스틱 가정 하에서, 이것은 순진한 산술을 사용하여 O(로그 6 q) {\displaystyle O(\log ^{6}q)}의 예상 실행 시간으로 Schoof의 것보다 더 효율적인 알고리즘을 산출합니다. 그리고 ~( 4 q ) {O^{4}q)}는 빠른 연산을 사용합니다. 이 휴리스틱 가정은 대부분의 타원 곡선에서 성립하는 것으로 알려져 있지만, GRH 하에서도 모든 경우에 성립하는 것으로 알려져 있지는 않습니다.
구현
마이크 스콧(Mike Scott)이 C++로 구현한 알고리즘은 소스 코드로 사용할 수 있습니다. 구현은 무료이며(조건, 조건 없음) AGPLv3에서 배포되는 MIRACL 라이브러리를 사용합니다.
참고 항목
참고문헌
- R. 슈프: 유한장 위의 타원 곡선과 제곱근 modp의 계산. 수학. Comp., 44(170):483-494, 1985. http://www.mat.uniroma2.it/ ~schoof/ctpts.pdf에서 이용 가능
- R. 슈프: 유한 필드 위의 타원 곡선에서 점을 계산합니다. J. 이론. Nombres Bordeo 7:219–254, 1995. http://www.mat.uniroma2.it/ ~schoof/ctg.pdf에서 이용 가능
- G. Musiker: 의 E ( E _ http://www.math.umn.edu/ 에서 이용 가능합니다.musiker/schoof.pdf
- V. 뮐러: Die Berechnung der Punktanzahl von Elliptischen Kurven über endlichen Primkörpern. 석사 논문. 1991년 자르브뤼켄 대학교(Universität des Saarlandes). http://lecturer.ukdw.ac.id/vmueller/publications.php 에서 이용 가능
- A. Enge: 타원곡선과 암호학의 응용: 서론. Kluwer Academic Publishers, Dordrecht, 1999.
- L. C. 워싱턴: 타원 곡선: 숫자 이론과 암호학. 채프먼 & 홀/CRC, 뉴욕, 2003.
- N. 코블리츠: 정수론과 암호학 과정, 수학 대학원 교재. 스프링어-베를라그, 1987년 114호 1994년 2판