정수 인수 분해

Integer factorization
컴퓨터 과학의 미해결 문제:

정수 인수 분해는 고전적인 컴퓨터에서 다항 시간 내에 해결될 수 있습니까?

정수 인수분해()는 정수를 정수의 으로 분해하는 것을 의미합니다.요인소수로 더 제한되는 경우 이 공정을 소수 인수 분해라고 하며, 주어진 정수가 소수인지 여부(이 경우 단일 요인의 "곱"이 있음)에 대한 검정을 포함합니다.

숫자가 충분히 크면 효율적인 비양자 정수 인수 분해 알고리듬이 알려져 있지 않습니다.하지만, 그러한 알고리즘이 존재하지 않는다는 것은 증명되지 않았습니다.RSA 공개암호화RSA 디지털 [1]서명과 같은 암호화에 사용되는 알고리즘의 경우 이 문제의 예상 난이도가 중요합니다.타원 곡선, 대수적 숫자 이론, 그리고 양자 컴퓨팅을 포함하여 수학과 컴퓨터 과학의 많은 영역이 이 문제에 적용되었습니다.

2019년, Fabrice Boudot, Pierrick Gaudry, Aurore Guillevic, Nadia Heninger, Emmanuel Tomé 및 Paul Zimmermann은 약 900년의 컴퓨팅 [2]성능을 활용하여 240자리(795비트) 숫자(RSA-240)를 제조했습니다.연구원들은 1024비트 RSA 계수가 약 500배의 [3]시간이 소요될 것으로 추정했습니다.

주어진 길이의 모든 숫자가 똑같이 인수 분해하기 어려운 것은 아닙니다.(현재 알려진 기술에 대해) 이러한 문제의 가장 어려운 예는 두 소수의 곱인 반 소수입니다.예를 들어 2,000비트 이상의 길이, 무작위로 선택된 크기, 거의 같은 크기일 때(예를 들어 페르마의 인수분해 방법에 의한 효율적인 인수분해를 피하기 위해 너무 가깝지는 않음), 가장 빠른 컴퓨터의 프라임 인수분해 알고리즘조차도 검색을 비실용적으로 만들기에 충분한 시간이 걸릴 수 있습니다.인수 분해되는 정수의 자릿수가 증가함에 따라 모든 컴퓨터에서 인수 분해를 수행하는 데 필요한 작업 수가 크게 증가합니다.

많은 암호화 프로토콜은 대규모 복합 정수를 고려하는 어려움이나 RSA 문제와 같은 관련 문제를 기반으로 합니다.임의 정수를 효율적으로 인수 분해하는 알고리즘은 RSA 기반 공개 키 암호화를 불안정하게 만듭니다.

원분해

n = 864 2 × 3의3 소수5 분해

산술의 기본 정리에 따르면, 모든 양의 정수는 고유한 소수 인수 분해를 가집니다.(일반적으로 1은 빈 제품입니다.)정수가 소수인지 여부를 검정하는 것은 예를 들어 AKS 소수성 검정을 통해 다항식 시간에 수행할 수 있습니다.그러나 복합적인 경우 다항 시간 검정은 요인을 얻는 방법에 대한 통찰력을 제공하지 않습니다.

정수 인수 분해에 대한 일반적인 알고리즘을 고려할 때, 이 알고리즘의 반복적인 적용으로 모든 정수를 구성하는 소수 인자로 인수 분해할 수 있습니다.특수 목적 인수 분해 알고리즘의 경우 상황이 더 복잡하며, 이 알고리즘의 이점은 분해 과정에서 생성된 요인으로도 실현되지 않거나 아예 실현되지 않을 수도 있습니다.예를 들어, p < q가 매우 큰 소수인 n = 171 x p x q인 경우, 시행 분할은 요인 3과 19를 빠르게 생성하지만 다음 요인을 찾기 위해 p 분할을 수행합니다.대조적인 예로, n이 소수 13729, 1372933 및 18848997161의 이라면, 여기서 13729 × 1372933 = 18848997157,페르마의 인수분해 방법은 ({ \ 18848997159)로 시작되며, 즉시 b = - n 2188{}, a - b = 18848997157188487188.이것들은 각각 합성과 소수로 쉽게 인식되지만, 페르마의 방법은 a에 대한 \ \시작 값이 1372933에 가깝지 않기 때문에 합성 수를 인수하는 데 훨씬 더 오래 걸릴 것입니다.

최신 기술

b-bit 숫자 중에서, 기존 알고리즘을 사용하여 실제로 인수분해하기 가장 어려운 것은 유사한 크기의 두 소수의 제품입니다.이러한 이유로 암호화 응용 프로그램에서 사용되는 정수입니다.2020년 2월에는 829비트 숫자에 소수점 250자리를 가진 RSA-250이 가장 큰 반 소수점을 기록했습니다.총 계산 시간은 2.1GHz의 Intel Xeon Gold 6130을 사용한 약 2700 코어 년의 컴퓨팅이었습니다.최근의 모든 인수 분해 기록과 마찬가지로, 이 인수 분해는 수백 대의 기계에서 실행되는 일반 번호 필드 체의 고도로 최적화된 구현으로 완료되었습니다.

난이도 및 복잡도

다항 시간에 모든 정수를 계수화할 수 있는 알고리즘, 즉 일부 상수 k에 대한 시간 O(bk)에 b-bit 숫자 n을 계수화할 수 있는 알고리즘은 발표되지 않았습니다.그러한 알고리즘의 존재 여부는 증명되지 않았지만, 일반적으로 존재하지 않는 것으로 의심되며 따라서 문제는 클래스 [4][5]P에 있지 않습니다.문제는 분명히 NP 클래스에 있지만,[6] 일반적으로 NP-완전하지 않은 것으로 의심됩니다.

모든 양의 ε, 즉 하위 지수에 대해 O((1 + bε))보다 빠른 알고리즘이 게시되어 있습니다.2022년 기준으로 이론적으로 점근적 실행 시간이 가장 좋은 알고리즘은 1993년에 [7]처음 발표된 GNFS(General Number Field Scheme)이며, 시간상으로 b비트 n으로 실행됩니다.

현재 컴퓨터의 경우 GNFS는 대규모 n(약 400비트 이상)에 대해 가장 잘 게시된 알고리즘입니다.그러나 양자 컴퓨터의 경우, 피터 쇼어는 1994년에 다항 시간 안에 그것을 해결하는 알고리즘을 발견했습니다.이것은 양자 계산이 확장 가능해지면 암호학에 상당한 영향을 미칠 것입니다.Shor의 알고리즘은 b-bit 숫자 입력에서 O3(b) 시간과 O(b) 공간만 사용합니다.2001년, 쇼어의 알고리즘은 7 [8]큐비트를 제공하는 분자에 NMR 기술을 사용하여 처음으로 구현되었습니다.

어떤 복잡성 클래스가 정수 인수 분해 문제의 결정 버전을 포함하는지 정확히 알 수 없습니다(즉, n은 k보다 작은 인자를 가지고 있습니까?).그것은 NP와 co-NP 모두에 있는 것으로 알려져 있으며, 이는 "예"와 "아니오" 대답 모두 다항식 시간에 확인할 수 있다는 것을 의미합니다."예"라는 대답은 d ≤ k인수 분해 n = d(n/d)를 표시하여 인증할 수 있습니다."아니오"라는 대답은 nk보다 큰 별개의 소수로 분해하여 증명할 수 있습니다. AKS 소수 검정을 사용하여 소수를 확인한 다음 n을 곱하여 얻을 수 있습니다.산술의 기본 정리는 허용될 수 있는 소수 증가 문자열이 하나만 있음을 보장하며, 이는 문제가 UP과 coUP [9]모두에 있음을 보여줍니다.Shor의 알고리즘 때문에 BQP에 있는 것으로 알려져 있습니다.

문제는 복잡도 클래스 P, NP-완전 및 co-NP-완전의 세 가지 모두 외부에 있는 것으로 의심됩니다.따라서 NP-중간 복잡도 클래스의 후보입니다.만약 그것이 NP-완전 또는 co-NP-완전으로 증명될 수 있다면, 이것은 NP = co-NP를 의미할 것이고, 매우 놀라운 결과이기 때문에 정수 인수 분해는 이 두 클래스 밖에 있는 것으로 널리 의심됩니다.

반대로 의사결정 문제 "n은 합성수입니까?"(또는 동등하게: "n은 소수입니까?")는 n의 요인을 지정하는 문제보다 훨씬 더 쉬운 것으로 보입니다.합성/최소 문제는 AKS 소수 검정을 사용하여 다항식 시간(n자리 b)으로 해결할 수 있습니다.또한, 아주 작은 오류 가능성을 기꺼이 수용할 경우 실제로 매우 빠르게 주요성을 테스트할 수 있는 몇 가지 확률론적 알고리즘이 있습니다.소수점 테스트의 용이성은 RSA 알고리즘의 중요한 부분입니다. 우선 큰 소수점을 찾아야 하기 때문입니다.

팩터링 알고리즘

특수 목적

특수 목적 팩터링 알고리즘의 실행 시간은 팩터링할 숫자의 속성 또는 크기, 특수 형식 등의 알려지지 않은 요인 중 하나에 따라 달라집니다.실행 시간을 결정하는 매개 변수는 알고리즘마다 다릅니다.

특수 목적 인수 분해 알고리즘의 중요한 하위 클래스는 범주 1 또는 첫 번째 범주 알고리즘이며, 실행 시간은 가장 작은 주 요인의 크기에 따라 달라집니다.알 수 없는 형식의 정수가 주어지면 이러한 방법은 일반적으로 작은 [10]요인을 제거하기 위해 범용 방법보다 먼저 적용됩니다.예를 들어, 순진한 시도 분할은 카테고리 1 알고리즘입니다.

범용

범주 2, 두 번째 범주 또는 Kraitchik 계열 [10]알고리즘이라고도 하는 범용 인수 분해 알고리즘에는 인수 분해할 정수의 크기에만 의존하는 실행 시간이 있습니다.RSA 번호를 인수 분해하는 데 사용되는 알고리즘 유형입니다.대부분의 범용 인수분해 알고리즘은 제곱합 방법을 기반으로 합니다.

기타 주목할 만한 알고리즘

경험적 실행 시간

숫자 이론에서, 경험적으로 예상되는 실행 시간을 갖는 많은 정수 인수 분해 알고리즘이 있습니다.

little-ol-notation으로.이러한 알고리즘의 예로는 타원 곡선 방법과 2차 체가 있습니다.또 다른 그러한 알고리즘은 슈노르,[11] 세이센,[12][13] 렌스트라가 제안한 클래스 그룹 관계 방법으로, 증명되지 않은 일반화 리만 가설(GRH)만 가정하여 증명되었습니다.

엄격한 실행 시간

슈노르-세이센-렌스트라 확률 알고리듬은 GRH 가정을 승수를 사용하여 대체함으로써 예상 Ln +o()] {\ 렌스트라와 포메랑스에[14] 의해 엄격하게 입증되었습니다.이 알고리즘은 G로 표시Δ 판별 Δ의 양의 이진 2차 형식 클래스 그룹을 사용합니다. GΔ 해당 정수가 상대적 소수인 정수(a, b, c)의 3중 집합입니다.

슈노르-세이센-렌스트라 알고리즘

인수가 될 정수 n이 주어지면, 여기서 n은 특정 상수보다 큰 홀수 양의 정수입니다.이 인수분해 알고리즘에서 판별자 Δ는 n의 배수Δ = -dn으로 선택되며, 여기서 d는 일부 양의 승수입니다.알고리즘은 G Lensstra와 Pomerance에 충분한Δ 평활 형태가 존재할 것으로 예상합니다. d의 선택이 평활도 결과를 보장하기 위해 작은 세트로 제한될 수 있음을 보여줍니다.

P에 의해Δ 크로네커 기호q) {{({\}\right)= 생성기 집합q 생성기 집합과 f 사이의 일련의 관계에서 qΔ 갖는 GΔ 소수Δ 형태q f를 생성함으로써.q의 크기는 일부 상수 c0 대해 c(log Δ)2제한0 수 있습니다.

사용될 관계는 G의 중성Δ 요소와 동일한 힘의 곱 사이의 관계입니다.이러한 관계는 소위 모호한 형태Δ G를 구성하는 데 사용될 것이며, 이는 2Δ 나누는 순서의 G의 요소입니다.Δ의 해당 인수분해를 계산하고 gcd를 취함으로써 이 모호한 형태는 n의 완전한 소수 인수분해를 제공합니다.이 알고리즘에는 다음과 같은 주요 단계가 있습니다.

인수할 숫자를 n으로 합니다.

  1. Δ가 Δ = -dn의 음의 정수라고 가정합니다. 여기서 d는 승수이고 Δ는 일부 2차 형식의 음의 판별식입니다.
  2. t ∈ N에 대해 첫 번째 소수1 p = 2, p2 = 3, p3 = 5, ..., pt 구합니다.
  3. f가 (q ) {{} {G의 임의Δ 소수 형태라고 하자q.
  4. G의 생성Δ 집합 X를 찾습니다.
  5. 다음 만족하는 집합q X와 {f : q 사이의 관계 시퀀스를 수집합니다( t () textstyle_ X_right\ _ P_}}
  6. Δ = -4ac 또는 Δ = a(a - 4c) 또는 Δ Δ = (b - 2a)(b + 2a)인 Δ의 최대 홀수 인수분해를 얻기 위해 2를 나누는 원소 f ΔΔ G인 모호한 형태(a, b, c)를 구성합니다.
  7. 모호한 형식이 n의 인수 분해를 제공하면 중지하고, 그렇지 않으면 n의 인수 분해가 발견될 때까지 다른 모호한 형식을 찾습니다.불필요한 모호한 형태가 생성되지 않도록 G(Δ)의 2-Sylow 그룹2 Sll(Δ)을 구축합니다.

임의의 양의 정수를 인수분해하기 위한 알고리즘을 얻기 위해서는 이 알고리즘에 시행 분할 및 자코비 합 테스트와 같은 몇 가지 단계를 추가해야 합니다.

예상 실행 시간

언급된 알고리즘은 무작위 선택을 하기 때문에 확률론적 알고리즘입니다.예상 실행 시간은 [ + (] {\[14]입니다.

참고 항목

메모들

  1. ^ Lenstra, Arjen K. (2011), "Integer Factoring", in van Tilborg, Henk C. A.; Jajodia, Sushil (eds.), Encyclopedia of Cryptography and Security, Boston, MA: Springer US, pp. 611–618, doi:10.1007/978-1-4419-5906-5_455, ISBN 978-1-4419-5905-8, retrieved 2022-06-22
  2. ^ "[Cado-nfs-discuss] 795-bit factoring and discrete logarithms". Archived from the original on 2019-12-02.
  3. ^ Kleinjung; et al. (2010-02-18). "Factorization of a 768-bit RSA modulus" (PDF). International Association for Cryptologic Research. Retrieved 2010-08-09. {{cite journal}}:저널 요구 사항 인용 journal=(도움말)
  4. ^ Krantz, Steven G. (2011), The Proof is in the Pudding: The Changing Nature of Mathematical Proof, New York: Springer, p. 203, doi:10.1007/978-0-387-48744-1, ISBN 978-0-387-48908-7, MR 2789493
  5. ^ Arora, Sanjeev; Barak, Boaz (2009), Computational complexity, Cambridge: Cambridge University Press, p. 230, doi:10.1017/CBO9780511804090, ISBN 978-0-521-42426-4, MR 2500087
  6. ^ 특히 583페이지Goldreich, Oded; Wigderson, Avi (2008), "IV.20 Computational Complexity", in Gowers, Timothy; Barrow-Green, June; Leader, Imre (eds.), The Princeton Companion to Mathematics, Princeton, New Jersey: Princeton University Press, pp. 575–604, ISBN 978-0-691-11880-2, MR 2467561참조하십시오.
  7. ^ Buhler, J. P.; Lenstra, H. W. Jr.; Pomerance, Carl (1993). Factoring integers with the number field sieve (Lecture Notes in Mathematics, vol 1554 ed.). Springer. pp. 50–94. doi:10.1007/BFb0091539. hdl:1887/2149. ISBN 978-3-540-57013-4. Retrieved 12 March 2021.
  8. ^ Vandersypen, Lieven M. K.; et al. (2001). "Experimental realization of Shor's quantum factoring algorithm using nuclear magnetic resonance". Nature. 414 (6866): 883–887. arXiv:quant-ph/0112176. Bibcode:2001Natur.414..883V. doi:10.1038/414883a. PMID 11780055. S2CID 4400832.
  9. ^ Lance Fortnow (2002-09-13). "Computational Complexity Blog: Complexity Class of the Week: Factoring".
  10. ^ a b David Bressoud and Stan Wagon (2000). A Course in Computational Number Theory. Key College Publishing/Springer. pp. 168–69. ISBN 978-1-930190-10-8.
  11. ^ Schnorr, Claus P. (1982). "Refined analysis and improvements on some factoring algorithms". Journal of Algorithms. 3 (2): 101–127. doi:10.1016/0196-6774(82)90012-8. MR 0657269. Archived from the original on September 24, 2017.
  12. ^ Seysen, Martin (1987). "A probabilistic factorization algorithm with quadratic forms of negative discriminant". Mathematics of Computation. 48 (178): 757–780. doi:10.1090/S0025-5718-1987-0878705-X. MR 0878705.
  13. ^ Lenstra, Arjen K (1988). "Fast and rigorous factorization under the generalized Riemann hypothesis" (PDF). Indagationes Mathematicae. 50 (4): 443–454. doi:10.1016/S1385-7258(88)80022-2.
  14. ^ a b Lenstra, H. W.; Pomerance, Carl (July 1992). "A Rigorous Time Bound for Factoring Integers" (PDF). Journal of the American Mathematical Society. 5 (3): 483–516. doi:10.1090/S0894-0347-1992-1137100-0. MR 1137100.

레퍼런스

외부 링크