Lenstra 타원-곡선 인자화

Lenstra elliptic-curve factorization

Lenstra 타원곡선 인자화 또는 타원곡선 인자화 방법(ECM)타원곡선을 채용한 정수 인자화를 위한 알고리즘인 고속의 부배수 런닝 시간이다. 범용 팩토링의 경우 ECM은 세 번째로 빠르게 알려진 팩토링 방법이다. 두 번째로 빠른 것은 다항식 2차 체이고, 가장 빠른 것은 일반수 필드 체이다. Lenstra 타원 곡선 인자화는 Hendrik Lenstra의 이름을 따서 명명되었다.

현실적으로 ECM은 작은 요인을 찾기에 가장 적합하기 때문에 특수 목적의 팩토링 알고리즘으로 간주된다. 현재도 50~60자리를 넘지 않는 디비저의 알고리즘으로는 여전히 최적인데, 그 러닝타임이 인수할 숫자 n의 크기보다는 가장 작은 요인 p의 크기에 의해 지배되기 때문이다. ECM은 많은 인자를 가진 매우 큰 정수에서 작은 인자를 제거하기 위해 자주 사용된다. 나머지 정수가 여전히 복합적인 경우, 큰 인자만 가지고 있으며 범용 기법을 사용하여 인수된다. 지금까지 ECM을 사용하여 발견된 가장 큰 인자는 소수점 83개로 R. Propper에 의해 2013년 9월 7일에 발견되었다.[1] 시험한 곡선의 수를 늘리면 인자를 찾을 가능성이 높아지지만 자릿수 증가와 선형적이지 않다.

알고리즘.

주어진 자연수 의 인자를 찾기 위한 Lenstra 타원-곡선 인자화 방법은 다음과 같이 작용한다.

  1. Pick a random elliptic curve over , with equation of the form together with a non-trivial point on it.
    This can be done by first picking random , and then setting to assure the point is on the curve.
  2. 원곡선에서 두 점의 추가를 정의하여 그룹을 정의할 수 있다. 추가 법칙은 타원곡선에 관한 글에 제시되어 있다.
    We can form repeated multiples of a point : . The addition formulae involve taking the modular slope of a chord joining and , and thus division between residue classes modulo 확장된 유클리드 알고리즘을 사용하여 수행된 n 특히 일부 v에 의한 분할에는 ,) 의 계산이 포함된다
    Assuming we calculate a slope of the form with , then if , the result of the point addition will be , the point "at infinity" corresponding to the intersection of the "vertical" 연결 선 ( , y), ( ,- ) P 및 곡선. 단, , ), n{\ 1,가) 포인트 추가가 곡선에 의미 있는 포인트를 생성하지는 않지만, 더 중요한 것은 ,) 의 비특수 요소인 것이다
  3. Compute on the elliptic curve (), where is a product of many small numbers: say, a product of small primes raised to small powers, as in the p-1 algorithm, or the factorial for some not too large 이것은 한 번에 하나의 작은 요소로서 효율적으로 이루어질 수 있다. [ P [B를 얻으려면. 먼저[ P 를) 계산한 다음 [ 를) 계산한 다음 [ 등을 계산한다 을(를) 충분히 작게 선택하여 B -wise point addition을 합리적인 시간에 수행할 수 있도록 한다.
    • 만일 우리가 반전 한 요소(n {\ {\를 만나지 않고 위의 모든 계산을 마치면 타원곡선(modulo primes)의 순서가 충분히 매끄럽지 않음을 의미하므로 다른 곡선과 출발점으로 다시 시도해야 한다.
    • , ) , 1을(를) 만나게 되면 끝낸다: 의 비경쟁 요인이다

The time complexity depends on the size of the number's smallest prime factor and can be represented by exp[(2 + o(1)) ln p ln ln p], where p is the smallest factor of n, or , in L-notation.

알고리즘이 작동하는 이유는?

pqn의 두 주요 구분자라면 y2 = x + 도끼3 + b(mod n)modulo pmodulo q의 동일한 방정식을 의미한다. -addition이 있는 이 두 개의 더 작은 타원형 곡선은 이제 진정한 그룹이 되었다. 라그랑주 정리의 수정으로 원래 곡선에 미칠 P점을 이 그룹 Np과 Nq하는 요소도 각각 다음, k>0는 아주 적다고는 곡선에 k.P는∞{kP=\infty\displaystyle}의 나머지를 p이 kNp을 나누는;게다가, Np.P는 ∞{\displaystyle N_{p}P=\infty}을 의미한다. 이와 유사한 진술은 curv에서나 있다.emodulo q. 타원곡선을 무작위로 선택한 경우, Np Nq 각각 p + 1 q + 1에 가까운 난수(아래 참조)이다. 따라서 Np Nq 주요 요인이 대부분 같을 가능성은 낮으며, eP를 계산하는 동안 modulo q가 아니라 ∞ modulo pkP와 마주칠 가능성이 상당히 높다. 이 경우 kP는 원래 곡선에 존재하지 않으며, 계산에서 gcd(v,p) = p 또는 gcd(v, q) = q를 가진 일부 v를 발견했지만 둘 다 있는 것은 아니었다. 즉, gcd(v, n)n의 비경쟁 인자를 주었다.

ECM은 그것의 핵심에 구형 p - 1 알고리즘의 개선이다. p - 1 알고리즘은 p - 1b의 작은 값에 대해 b-힘이 매끄러울 정도로 primary 인자 p를 찾는다. 어떤 e, p - 1의 배수와 p에 대한 비교적 prime위해, 페르마의 작은 정리에 의해 우리는 1 1 (mod p)을e 가지게 된다. 그러면 gcd(ae - 1, n)n의 인자를 산출할 가능성이 있다. 그러나, 예를 들어, 강한 프리마임을 포함하는 숫자의 경우와 같이 p - 1이 큰 프라이마 인자를 가질 때 알고리즘이 실패한다.

ECM은 항상 p - 1의 순서를 갖는 Zp 승법 그룹을 고려하기보다는 유한장 Zp 대한 무작위 타원 곡선 그룹을 고려함으로써 이 장애물을 극복한다.

Zp 대한 타원곡선의 집단의 순서는 하세의 정리의해 p + 1 - 2 pp p + 1 + 2 p 사이에 (임의적으로 정격) 달라지며, 일부 타원곡선의 경우 매끄러울 가능성이 있다. 하세-인터벌에서 원활한 그룹 순서가 발견될 것이라는 증거는 없지만, 경험적 확률론적 방법, 적절히 최적화된 파라미터 선택을 가진 캔필드-에르드-포머런스 정리, L-통지법을 사용함으로써, 우리는 원활한 그룹 순서를 얻기 전에 L[[2/2, 2] 곡선을 시도해 볼 수 있을 것으로 기대할 수 있다. 이 휴리스틱한 추정은 실제로 매우 신뢰할 수 있다.

다음은 트라페 & 워싱턴(2006)의 사례로, 몇 가지 세부사항이 추가되었다.

우리 n = 455839를 인자화하고자 한다. 2 P = (1, 1)3 표시된 타원 곡선 y = x + 5x – 5를 선택하고 (10!)P를 계산해 봅시다.

A=(x, y) 지점의 접선 선의 기울기는 s = (3x2 + 5)/(2y) (mod n)이다. s를 사용하여 2A를 계산할 수 있다. s 값이 a/b 형식인 경우 b > 1gcd(a,b) = 1이면 b모듈형 역수를 찾아야 한다. 존재하지 않는 경우, gcd(n,b)는 n의 비경쟁적 요인이다.

먼저 우리는 2P를 계산한다. s(P) = s(1,1) = 4이므로 2P = (xx, y′)의 좌표는 x′ = s – 2x2 = 14, y′ = s(x x′) y = 4(1 14) – 1 = 153, 모든 숫자 이해(mod n)이다. 이 2P가 실제로 곡선에 있는지 확인하기 위해: (–53)2 = 2809 = 143 + 5/14 – 5

그리고 나서 우리는 3(2P)을 계산한다. 우리 s(2P) = s(14,-53) = –593/106 (mod n)을 가지고 있다. 유클리드 알고리즘 사용: 455839 = 4300/106 + 39, 106 = 2/39 + 28, 39 = 28 + 11, 28 = 2/11 + 6, 11 = 6 + 5, 6 = 5 + 1 따라서 gcd(455839, 106) = 1, 역방향 작업(확장 유클리드 알고리즘의 버전): 1 = 6~5 = 2·611 = 2·28 5·11 = 106 – 5·39 = 7·106 19·39 = 81707·106 19·455839. 따라서 106−1 = 81707(모드 455839), –593/106 = –133317(모드 455839)이다.s를 감안하여, 위와 같이 2(2P)의 좌표를 계산할 수 있다: 4P = (259851, 116255) 이 점이 실제로 곡선상의 점인지 확인하기 위해: y2 = 54514 = x3 + 5x 5(mod 455839) 이 후, 는 3( ) = 2 3 를 계산할 수 있다

비슷하게 4!P 등을 계산할 수 있지만, 8!P599(모드 455839)를 뒤집어야 한다. 유클리드 알고리즘에 따르면 455839는 599로 분할할 수 있으며, 우리는 455839 = 599·761 인자를 발견했다.

이것이 효과가 있었던 이유는 곡선(모드 599)이 640 = 27·5점이고, (모드 761)777 = 3·7·37점이기 때문이다. 더욱이 640과 777은 각각 곡선(mod 599)(mod 761)에서 kP = 이 될 정도로 가장 작은 양의 정수 k이다. 8!은 640의 배수지만 777의 배수는 아니기 때문에 8이 있다!P = 은 곡선(mod 599), 그러나 곡선(mod 761)에서는 그렇지 않으므로 반복적인 덧셈이 여기서 분해되어 인자화가 발생한다.

투영 좌표가 있는 알고리즘

투사 평면 over(/ )/~ ,을(를) 고려하기 전에 먼저 ℝ 위에 '정상적인' 투사 공간을 고려한다: 점 대신 원점을 통과하는 선들을 연구한다. A line may be represented as a non-zero point , under an equivalence relation ~ given by: ⇔ ∃ c ≠ 0 such that x' = cx, y' = cy and z' = cz. 이 동등성 관계에서 공간은 투영 평면 P ;(: z) 로 표시된 점들은 원점을 통과하는 3차원 공간의 선에 해당한다 가능한 방향으로 선을 그리려면 xy' 또는 z' 0 0 중 하나 이상이 하므로 : : 0 ) 은 이 공간에 존재하지 않는다는 점에 유의하십시오. 이제 거의 모든 선이 (X,Y,1) 면과 같은 주어진 기준면을 통과하며 선은 이 평면과 정확히 평행하게 배치되어 있음을 관찰하십시오.ates(X,Y,0)는 위에 있는 아핀(X,Y) 평면에 사용되는 '무한한 지점'으로 고유하게 방향을 지정한다.

알고리즘에서는 필드 ℝ 위에 있는 타원곡선의 그룹 구조만 사용된다. 우리가 반드시 필드 Ⅱ를 필요로 하는 것은 아니기 때문에, 유한장은 타원곡선에 그룹 구조도 제공할 것이다. 단,(/ Z)/ ~에 대한 동일한 곡선 및 연산을 고려할 때(n이 prime이 아닌 경우) / 을(를) 고려할 때 그룹이 주어지지 않는다. 타원곡선법은 가산법의 실패사례를 이용한다.

이제 알고리즘을 투영 좌표로 표시한다. The neutral element is then given by the point at infinity . Let n be a (positive) integer and consider the elliptic curve (a set of points with some structure on it) .

  1. Z inmathb {Z}/n {를) 선택하십시오.
  2. 계산 = 2- P - . The elliptic curve E is then in Weierstrass form given by and by using projective coordinates the elliptic curve is given by the homogeneous equation . It h포인트 =( : P: 1) .
  3. 이 타원형 곡선에 대해 상한 를) 선택하십시오. 비고: You will only find factors p if the group order of the elliptic curve E over (denoted by ) is B-smooth, which means that all prime factors of 은(는) B보다 작거나 같아야 한다.
  4. = m( ,… ,) {을 계산하십시오
  5. Calculate (k times) in the ring . Note that if is B-smooth and n is prime (and therefore is a field) that . However, if only is B-smooth for some divisor p of n, the product might not be (0:1:0) because addition and multiplication are not well-defined if n is not prime. 이 경우, 비종교적 구분자를 찾을 수 있다.
  6. 그렇지 않으면 2단계로 돌아가십시오. 만약 이것이 일어난다면, 당신은 k 를 단순화할 때 이것을 알게 될 것이다

5번 지점에서는 적절한 상황에서 비독점자를 찾을 수 있다고 한다. As pointed out in Lenstra's article (Factoring Integers with Elliptic Curves) the addition needs the assumption . If are not and distinct (otherwise addition works similarly, but is a little 차등), 그 후 다음과 같이 덧셈이 작동한다.

  • 계산하는 방법: = + Q =( : : 1), =( 2: : 1) ), ,
  • =( y - )( - )-
  • = - x -
  • = ( x - 3)- y }-y_
  • = + =( : y : ) .

If addition fails, this will be due to a failure calculating In particular, because can not always be calculated if n is not prime (and therefore is not a field). / 를) 필드로 사용하지 않고 다음을 계산할 수 있었다.

  • = - 2
  • = - ( - 2) 2- x ( x - x ) '}^{2}-}^{2}-x_{2},{2},{2}}, 2,}, 2,3
  • ,
  • = + Q=( (x - ): :( x - x ) ) }'):}- 가능하면 단순화한다.

이러한 계산은 항상 합법적이며, Z의 gcd가 n ((1 또는 n)로 조정될 경우, 단순화가 실패할 때 n의 비종교적 구분자가 발견된다.

트위스트 에드워즈 곡선

Edwards 곡선의 사용은 몽고메리 곡선 또는 Weierstrass 곡선(기타 사용된 방법)의 사용보다 모듈식 승수가 적고 시간이 짧다. Edwards 곡선을 사용하면 더 많은 프라임도 찾을 수 있다.

정의. 은(는) 0 0이(가) 있는 필드로 , k { {\k\\{이(가) (가)되도록 한다 Then the twisted Edwards curve is given by An Edwards curve is a twisted Edwards curve in which .

Edwards 곡선에 점 집합을 구축하는 방법에는 5가지 알려진 방법, 즉 부착점 집합, 투영점 집합, 반전점 집합, 확장점 집합, 완료된 점 집합이 있다.

부속 포인트의 집합은 다음과 같다.

( , ) : + = + 2 스타일 \{(2

가산법은 에 의해 주어진다.

점(0,1)은 중립 요소이고(, ) 의 역은(- , f) 이다

다른 표현은 투영적인 Weierstrass 곡선이 아핀에서 따라오는 방법과 유사하게 정의된다.

Edwards 형태의 타원형 곡선에는 순서 4가 있다. So the torsion group of an Edwards curve over is isomorphic to either 또는 Z/ Z Z/ Z .

The most interesting cases for ECM are and , since they force the group orders of the curve modulo primes to be divisible by 12 and 16 respectively. 다음 곡선에는 / 에 대한 비틀림 그룹 이형성이 있다

  • with point where and
  • with point where and

순서 3의 포인트가 있는 모든 Edwards 곡선은 위에 표시된 방법으로 작성할 수 있다. Curves with torsion group isomorphic to and may be more efficient at finding primes.[2]

2단계

위의 텍스트는 타원 곡선 인자화의 첫 번째 단계에 관한 것이다. There one hopes to find a prime divisor p such that is the neutral element of . In the second stage one hopes to have found a prime divisor q such that has small prime order in

우리는 B }와 {\사이에 오더가 되길 바라며 여기서 }는1단계에서 결정되고 B }}는 새로운 2단계 매개 변수다. 소량 주문 확인은 ( ) 계산으로 할 수 있다.prime l에 대해 P} modulo n.

GMP-ECM 및 EECM-MPFQ

ECM의 최적화된 구현을 제공하기 위해 Bernstein 외 연구진이[2] Twisted Edwards 타원곡선 및 기타 기법을 사용하였다. 유일한 단점은 보다 범용적인 구현인 짐머만의 GMP-ECM보다 더 작은 복합적인 숫자로 작업한다는 점이다.

과속-곡선법(HECM)

최근 정수를 인자화하기 위해 초고속 곡선을 사용하는 것이 발전하고 있다. 코셋은 (2010년) 기사에서 2속(그러므로 f가 5인 y= ( y으로 과급 곡선을 구축할 수 있다는 것을 보여주는데, 이는 두 개의 "정상" 타원곡선을 동시에 사용하는 것과 같은 결과를 준다. 쿠메르 표면을 사용함으로써 계산이 더 효율적이다. 과대망상곡선의 단점(타원형 곡선과는 반대)은 이러한 대체적인 계산방법에 의해 보상된다. 따라서 Cosset은 인수화를 위해 과대망상 곡선을 사용하는 것이 타원형 곡선을 사용하는 것과 다를 바 없다고 대략 주장한다.

양자 버전(GEECM)

번스타인, 헤닝거, 루, 발렌타인은 에드워즈 곡선이 있는 ECM의 양자 버전인 GEECM을 제안한다.[3] 그것은 Grover의 알고리즘을 사용하여 표준 EECM과 비교했을 때 발견되는 프리타임의 길이를 대략 두 배로 늘리며, EECM을 실행하는 고전적인 컴퓨터와 충분한 qubit와 비슷한 속도를 가진 양자 컴퓨터를 가정한다.

참고 항목

참조

  1. ^ ECM이 발견한 가장 큰 요인 50개.
  2. ^ a b Berstein, Daniel J.; Birkner, Peter; Lange, Tanja; Peters, Christiane (January 9, 2008). "ECM Using Edwards Curves" (PDF). Cryptology ePrint Archive. (이러한 곡선의 예는 30페이지 상단 참조)
  3. ^ 번스타인 D.J, 헤닝거 N, 루 P, 발렌타 L. (2017) 포스트 퀀텀 RSA. 인: 란지 T, 타카기 T(eds), 포스트 퀀텀 암호학 PQ크립토 2017. 컴퓨터 과학 강의 노트, 10346. 스프링거, 참

외부 링크