편집을 취소할 수 있습니다. 이 편집을 되돌리려면 아래의 바뀐 내용을 확인한 후 게시해주세요.
최신판 | 당신의 편집 | ||
1번째 줄: | 1번째 줄: | ||
'''이차 체'''(Quadratic sieve)는 큰 수의 [[소인수분해]]를 빠르게 셈하는 알고리즘이다. 1981년 미국의 수학자인 칼 포메란스(Carl Pomerance)가 고안하였고, 실제로 1994년 이 방법으로 [[RSA 수|RSA-129]]의 해답을 찾아냈다.<ref>Mark Janeba(1994), [http://www.willamette.edu/~mjaneba/rsa129.html Factoring Challenge Conquered]</ref> | '''이차 체'''(Quadratic sieve)는 큰 수의 [[소인수분해]]를 빠르게 셈하는 알고리즘이다. 1981년 미국의 수학자인 칼 포메란스(Carl Pomerance)가 고안하였고, 실제로 1994년 이 방법으로 [[RSA 수|RSA-129]]의 해답을 찾아냈다.<ref>Mark Janeba(1994), [http://www.willamette.edu/~mjaneba/rsa129.html Factoring Challenge Conquered]</ref> | ||
이 방법은 현재까지 알려진 전통적 소인수분해법<ref>일반 컴퓨터로 푸는 방법으로, 양자컴퓨터를 이용한 [[쇼어 소인수분해법]]은 논외.</ref> 중 [[수체 체]] 다음으로 빠르며, 알고리즘 설계는 이차 체 쪽이 훨씬 간결하다. <math>10^{70} < N < 10^{100}</math>범위, 즉 대략 [[무량대수]]에서 [[구골]] 사이 크기에서 가장 빠르게 작동하는 것으로 알려져 있다. 이 범위 아래 수는 [[렌스트라 | 이 방법은 현재까지 알려진 전통적 소인수분해법<ref>일반 컴퓨터로 푸는 방법으로, 양자컴퓨터를 이용한 [[쇼어 소인수분해법]]은 논외.</ref> 중 [[수체 체]] 다음으로 빠르며, 알고리즘 설계는 이차 체 쪽이 훨씬 간결하다. <math>10^{70} < N < 10^{100}</math>범위, 즉 대략 [[무량대수]]에서 [[구골]] 사이 크기에서 가장 빠르게 작동하는 것으로 알려져 있다. 이 범위 아래 수는 [[렌스트라 타원 곡선 소인수분해법]]을 많이 이용한다. | ||
== 아이디어 == | == 아이디어 == | ||
151번째 줄: | 151번째 줄: | ||
== 보충 설명 == | == 보충 설명 == | ||
이상 소개한 이차 체는 합성수가 커질수록 [[수체 체]]와 더불어 진가를 발휘한다. 물론 여기서 합성수는 아주 큰 소수의 곱으로 이루어져 있을 때이다. 만약 작은 소인수들이 포함되어 있다면, 직접 나누기 및 [[렌스트라 | 이상 소개한 이차 체는 합성수가 커질수록 [[수체 체]]와 더불어 진가를 발휘한다. 물론 여기서 합성수는 아주 큰 소수의 곱으로 이루어져 있을 때이다. 만약 작은 소인수들이 포함되어 있다면, 직접 나누기 및 [[렌스트라 타원 곡선 소인수분해법]] 등으로 소인수를 찾아서 사전에 수의 크기를 줄여놓는 것이 더 좋다. 그렇게 해서 남은 여인수가 여전히 큰 합성수이면, 최후의 한 방으로 이차 체나 수체 체를 적용한다. | ||
=== 소인수 기저 관련 === | === 소인수 기저 관련 === | ||
163번째 줄: | 163번째 줄: | ||
이를 방지하려면 모든 홀수 소수에 대해 르장드르 기호 값이 1인 계수를 고르면 된다. 즉 <math>b=a^2 \Rightarrow \left(\frac{bN}{p} \right) = \left(\frac{a}{p} \right)^2 \left(\frac{N}{p} \right) = \left(\frac{N}{p} \right)</math>이 되게 하면, 주어진 소인수 기저 내의 원소들로 유지할 수 있다. 이것이 <math>y(x, a)=x^2-a^2N</math>으로 함수를 지정하는 이유이다. | 이를 방지하려면 모든 홀수 소수에 대해 르장드르 기호 값이 1인 계수를 고르면 된다. 즉 <math>b=a^2 \Rightarrow \left(\frac{bN}{p} \right) = \left(\frac{a}{p} \right)^2 \left(\frac{N}{p} \right) = \left(\frac{N}{p} \right)</math>이 되게 하면, 주어진 소인수 기저 내의 원소들로 유지할 수 있다. 이것이 <math>y(x, a)=x^2-a^2N</math>으로 함수를 지정하는 이유이다. | ||
{{각주}} | {{각주}} | ||
{{수론 알고리즘}} | {{수론 알고리즘}} | ||
[[분류:알고리즘]] | [[분류:알고리즘]] |