Fermat's Little Theorem — 페르마의 소정리

소수는 ‘나누어지지 않는다’는 단순한 성질을 갖지만, 모듈러 산술 위에서는 일정한 주기성을 만들어낸다. 모든 정수 aa에 대해 apa(modp)a^p \equiv a \pmod p가 성립한다는 말은, gcd(a,p)=1\gcd(a,p)=1일 때 aa로 나누어 ap11(modp)a^{p-1}\equiv1\pmod p가 된다는 뜻이다. 이 성질이 RSA 암호를 가능하게 한다.

이 포스트에서 다루는 내용
  • 페르마의 소정리: pp가 소수이고 gcd(a,p)=1\gcd(a, p) = 1이면 ap11(modp)a^{p-1} \equiv 1 \pmod{p}
  • 동치 형태: 모든 정수 aa에 대해 apa(modp)a^p \equiv a \pmod{p}
  • 모듈러 역원: a1ap2(modp)a^{-1} \equiv a^{p-2} \pmod{p}
  • 페르마 소수 판별법: an1≢1(modn)a^{n-1} \not\equiv 1 \pmod{n}이면 nn은 합성수
  • 한계: Carmichael 수 (합성수이지만 모든 aa에 대해 테스트를 통과하는 예외)

정리의 두 형태

형태 1 (기본형): pp가 소수이고 gcd(a,p)=1\gcd(a, p) = 1이면,

ap11(modp)a^{p-1} \equiv 1 \pmod{p}

형태 2 (일반형): pp가 소수이면 모든 정수 aa에 대해,

apa(modp)a^p \equiv a \pmod{p}

두 형태는 동치이다. 형태 1에서 양변에 aa를 곱하면 형태 2가 나오고, 형태 2에서 pap \nmid a일 때 aa로 나누면 형태 1이 복원된다. pap \mid a인 경우 형태 2는 00(modp)0 \equiv 0 \pmod{p}으로 자명하다.

증명 1 — 오일러 정리의 특수화

소수 pp에 대해 ϕ(p)=p1\phi(p) = p - 1이다 (11부터 p1p-1까지 모두 pp와 서로소).

오일러 정리 aϕ(m)1(modm)a^{\phi(m)} \equiv 1 \pmod{m}m=pm = p를 대입하면 즉시 얻어진다.

증명 2 — 곱셈군 이중 치환

gcd(a,p)=1\gcd(a, p) = 1일 때, 집합 S={1,2,,p1}S = \{1, 2, \ldots, p-1\}을 고려한다.

SS의 각 원소에 aa를 곱한 집합 aS={a,2a,,(p1)a}aS = \{a, 2a, \ldots, (p-1)a\}mod p\bmod\ p로 환산하면:

  • iamodpia \bmod p00이 아니다 (gcd(a,p)=1\gcd(a, p) = 1이고 1ip11 \leq i \leq p-1이므로)
  • ia≢ja(modp)ia \not\equiv ja \pmod{p} (iji \neq j일 때). aa가 역원을 가지므로 소거 가능하다

따라서 aSmodpaS \bmod p의 원소들은 {1,2,,p1}\{1, 2, \ldots, p-1\}의 재배열이다. 두 집합의 모든 원소를 곱하면,

a2a3a(p1)a123(p1)(modp)a \cdot 2a \cdot 3a \cdots (p-1)a \equiv 1 \cdot 2 \cdot 3 \cdots (p-1) \pmod{p} ap1(p1)!(p1)!(modp)a^{p-1} \cdot (p-1)! \equiv (p-1)! \pmod{p}

gcd((p1)!,p)=1\gcd((p-1)!, p) = 1이므로 양변에서 (p1)!(p-1)!을 소거하면,

ap11(modp)a^{p-1} \equiv 1 \pmod{p}
쉽게 말하면

소수 pp와 서로소인 정수 aap1p-1제곱하면 mod p에서 곱셈의 항등원인 11이 된다는 것이 페르마의 소정리다. aapp의 배수이면 성립하지 않으므로 서로소라는 조건이 필요하다. 오일러 정리는 이를 소수가 아닌 모듈러스로 넓힌 것이다. RSA는 지수가 p1p-1의 배수만큼 늘어나도 값이 그대로라는 이 성질을 써서 암호화한 메시지를 원래대로 복원한다.

예시

페르마의 소정리 — p=7에서 a^k mod 7 순환표
페르마의 소정리 — p=7에서 a^k mod 7 순환표

p=7p = 7에서 Z7={1,2,3,4,5,6}\mathbb{Z}_7^* = \{1,2,3,4,5,6\}의 각 원소는 고유한 순환 주기를 갖지만, k=p1=6k = p - 1 = 6에서 반드시 11로 수렴한다.

몇 가지 직접 계산:

26=64=9×7+1    261(mod7)2^6 = 64 = 9 \times 7 + 1 \implies 2^6 \equiv 1 \pmod{7} 3101(mod11)(p=11, p1=10)3^{10} \equiv 1 \pmod{11} \quad (p = 11,\ p-1 = 10) 5121(mod13)(p=13, p1=12)5^{12} \equiv 1 \pmod{13} \quad (p = 13,\ p-1 = 12)

응용 1 — 모듈러 역원

gcd(a,p)=1\gcd(a, p) = 1이면 ap11a^{p-1} \equiv 1에서,

aap21(modp)a \cdot a^{p-2} \equiv 1 \pmod{p}

따라서 aa의 모듈러 역원은 a1ap2(modp)a^{-1} \equiv a^{p-2} \pmod{p}이다.

확장 유클리드 알고리즘 없이도 빠른 모듈러 지수연산(Fast Exponentiation)만으로 역원을 구할 수 있다. 예를 들어 31(mod7)=35mod7=243mod7=53^{-1} \pmod{7} = 3^5 \bmod 7 = 243 \bmod 7 = 5. 검증: 3×5=151(mod7)3 \times 5 = 15 \equiv 1 \pmod{7}

응용 2 — 페르마 소수 판별법 (Fermat Primality Test)

nn이 소수이면 an11(modn)a^{n-1} \equiv 1 \pmod{n}이 성립한다. 대우명제는 이 합동이 성립하지 않으면 nn은 합성수라는 것이다.

절차: 랜덤하게 aa (1<a<n1 < a < n)를 선택해 an1modna^{n-1} \bmod n을 계산한다.

  • an1≢1a^{n-1} \not\equiv 1nn은 합성수 (확정)
  • an11a^{n-1} \equiv 1nn이 소수일 가능성이 높음 (확정 아님)

여러 aa에 대해 반복하면 신뢰도가 올라간다. 다만 모든 합성수에서 그런 것은 아니다. 바로 아래에서 볼 Carmichael 수에서는 서로소인 밑이 전부 통과하므로 아무리 반복해도 소용이 없다. 반복이 효과를 갖는 것은 Carmichael 수가 아닌 합성수에 한해서다.

한계 — Carmichael 수

합성수임에도 gcd(a,n)=1\gcd(a, n) = 1인 모든 aa에 대해 an11(modn)a^{n-1} \equiv 1 \pmod{n}을 만족하는 수가 존재한다. 이를 Carmichael 수(카마이클 수) 라 한다.

가장 작은 예: n=561=3×11×17n = 561 = 3 \times 11 \times 17

a5601(mod561)for all gcd(a,561)=1a^{560} \equiv 1 \pmod{561} \quad \text{for all } \gcd(a, 561) = 1

Carmichael 수 때문에 페르마 테스트 단독으로는 소수를 완전히 판별할 수 없다. 실용적인 소수 판별에는 밀러-라빈 테스트(Miller-Rabin) 를 사용한다.

핵심 정리
  • ap11(modp)a^{p-1} \equiv 1 \pmod{p}는 오일러 정리의 특수화이자, 집합 {1,,p1}\{1,\ldots,p-1\}이 곱셈에 대한 군(group)임을 반영한다.
  • 모듈러 역원 a1ap2a^{-1} \equiv a^{p-2}는 확장 유클리드 없이 지수연산만으로 역원을 구하는 실용적 공식이다.
  • 페르마 소수 판별법은 확률적 테스트다. Carmichael 수라는 반례가 존재하므로 단독으로 완전한 증명이 되지 않는다.
  • RSA에서 복호화 정확성(mdem(modn)m^{de} \equiv m \pmod{n})은 페르마의 소정리(혹은 오일러 정리)에 직접 의존한다.
다음 포스트

Chinese Remainder Theorem — 중국인의 나머지 정리. 서로소인 여러 모듈러스의 연립 합동식이 항상 유일한 해를 가짐을 증명하고, RSA-CRT 속도 최적화까지 다룬다.

© 2026 XsQuare01. Powered by GitHub Pages. · 방문자