정수론 Chapter 6.2 - Pseudoprimes
이 글의 내용은 성균관대학교 권순학 교수님의 2019년 4월 11, 16일 수업 내용을 재구성한 것입니다.
Pseudoprimes
합성수지만 소수처럼 보이는 수를 의미한다.
Fermat pseudoprimes
Fermat’s Little Theorem을 이용하면 어떤 수가 합성수임을 밝힐 수 있다. 그런데 Fermat Little Theorem을 이용해서 테스트한 결과 소수일 때와 비슷한 결과과 나오는 합성수들이 존재한다.
합성수 \( n \)에 대해 \( a^{n-1} \equiv 1 ; (\textrm{mod}\ n)\)인 경우 \(n\)을 Fermat pseudoprime to base a 라고 한다.
예시: \( 91 \)
\( 3^{90} \equiv 1 ; (\textrm{mod}\ 91) \)이므로 \(91\)은 Fermat pseudoprime to base 3이지만, \( 2^{90} \equiv 64 ; (\textrm{mod}\ 91) \)이므로 Fermat pseudoprime to base 2가 아니다.
Lemma 6.1: \(d \mid n \Rightarrow 2^d -1 \mid 2^n - 1 \) {#lemma-6-1}
증명
\(d \mid n \Rightarrow \exists ; t ;; s.t. ;; dt = n\)
\( 2^n - 1 = (2^d - 1)(2^{d(t-1)} + 2^{d(t-2)} + \dots + 2^d + 1) \)
\( \therefore ; 2^d - 1 \mid 2^n - 1\)
Theorem 6.6: base 2인 fermat pseudoprime은 무한히 많다
증명
341은 fermat pseudoprime to base 2이다.
\(n\)이 fermat pseudoprime이면, \(m = 2^n - 1\)도 fermat pseudoprime이다
\(n\)이 합성수이므로, \( n = dt (1 \lt d,; t \lt n) \)
증명: 합성수
Lemma 6.1에 의해 \( 2^d - 1 \mid 2^n - 1 = m\)이므로 \(m\)은 합성수이다.
증명: \(2^m \equiv 1 (\textrm{mod}\ m)\)
Lemma 6.1에 의해 \(m = 2^n - 1 \mid 2^{kn} - 1 = 2^{m-1} - 1 \)
\( \therefore ; 2^{m-1} \equiv 1 ; (\textrm{mod}\ m) \)
Remark: 모든 자연수 \(a\)에 대해 base \(a\)인 fermat pseudoprime은 무한히 많다
증명은 생략한다. 증명의 아이디어는 base가 2일 때와 같다.
Concept: square free
어떤 정수 \(n\)을 소인수분해 했을 때, 모든 prime의 factor가 0 또는 1인 경우 이를 square free라고 부른다. 예를 들어서 \(3, 15, 30\)은 square-free지만, \(4, 8, 16\)은 square free가 아니다.
Carmichael Numbers
\(\gcd(b, n) = 1\)인 모든 자연수 base b에 대해 Fermat primality test를 통과하는 합성수들이 있다. 이런 수들을 Carmichael Numbers라고 부른다.
Remark: 561은 가장 작은 Carmichael Number이다
Carmichael Number은 무한히 많다
증명은 생략한다.
정리의 의미
이 정리는 모든 base에 대해 Fermat’s Primarillity Test를 통과하는 합성수가 무수히 많다는 걸 의미하고, 이는 Fermat’s Primarillity Test를 소수를 판별하는 데 쓸 수 없다는 것을 뜻한다.
Theorem 6.7: square free인 \(n\)이 모든 \(j\)에 대해 \(p_j -1 \mid n - 1\)을 만족하면 Carmichael Number이다
\(n\): square free이고 홀수인 합성수, let \(b\): 자연수 \(s.t. ; \gcd(n, b) = 1\)
따라서 \(n\)은 Carmichael Number이다.
Remark: 역도 성립한다
즉, 어떤 수 n이 Carmichael Number라는 것은 n이 square free이고 \(\forall ; q \mid n \)에 대해 \( q - 1 \mid n -1 \)이라는 것과 동치이다.
증명은 생략한다.
Strong Psedoprime
\(2\)보다 큰 양의 자연수 \(n\), 음이 아닌 정수 \(s\), 홀수 \(t\), \(\gcd(b, n) = 1\)인 \(b\)에 대해
이때, \(n \mid b^{n-1} - 1\)이면, 다시 말해서, 우변에 있는 factor 중 하나라도 나누면 n을 Strong pseudoprime to base b이라 칭한다.
Remark: Strong pseudoprime이면 Fermat’s pseudoprime이다
Strong pseudoprime인 \(n\)과 \(\gcd(n, b) = 1\)인 \(b\)에 대해,
이므로 \(n\)은 Fermat pseudoprime이다.
Remark: Fermat’s pseudoprime이어도 Strong pseudoprime이 아닐 수 있다.
따라서 n은 Strong pseudoprime to base 3이 아니다.
그런데
이므로 91은 Fermat pseudoprime to base 3이다.
Theorem 6.9: base \(2\)인 strong pseudoprime은 무수히 많다
Remark: \(b > 1\)인 임의의 b에 대해, base b인 Strong pseudoprime은 무수히 많다
증명은 어렵다고 한다.
Theorem 6.10: \(B = \{1 \le b \le n - 1 | n ; is ; strong ; pseudoprime ; to ; base ; b \}, |B| \le \frac {n - 1} {4}\)
증명은 생략한다.
Theorem 6.11: Miller-Robin Probabilistic Primality Test
홀수 \(t\)에 대해
Step 1: \(1 \le b \le n - 1 \)인 자연수 \(b\)를 하나 선택한다
Step 2: \(b^{t} \equiv \pm 1 ; (\textrm{mod} ; n)\)이면 n은 probabilistic prime이고, 진행을 멈춘다.
Step 3: \( j = 1 ; \textrm{to} ; s - 1, ; {b^{2^jt}} \equiv -1 ; (\textrm{mod} ; n) \)이면 n은 probabilistic prime이고, 진행을 멈춘다.
Step 4: \(n\)은 합성수이다.
한 번의 시행에서 n이 probabilistic prime이라는 결과가 나왔을 때, 합성수 \(n\)이 Strong pseudoprime to base b일 확률은
(\(n\)이 소수일 경우 의미가 없는 공식)
Probabilistic Test긴 하지만, n개의 base에 대해서 probabilistic prime로 판정된 수가 소수가 아닐 확률이 \(\frac {1} {4^n}\)로 매우 작으므로 실제로 사용 가능한 소수판정법이다.