소수는 ‘나누어지지 않는다’는 단순한 성질을 갖지만, 모듈러 산술 위에서는 놀라운 주기성을 만들어낸다. a를 소수 p번 거듭제곱하면 반드시 a 자신으로 돌아온다 — 이 필연성이 RSA 암호를 가능하게 한다.
이 글의 주요 개념
- 페르마의 소정리: p가 소수이고 gcd(a, p) = 1이면 a^(p−1) ≡ 1 (mod p)
- 동치 형태: 모든 정수 a에 대해 a^p ≡ a (mod p)
- 모듈러 역원: a^(−1) ≡ a^(p−2) (mod p)
- 페르마 소수 판별법: a^(n−1) ≢ 1 (mod n)이면 n은 합성수
- 한계: Carmichael 수 — 합성수이지만 모든 a에 대해 테스트를 통과하는 예외
정리의 두 형태
형태 1 (기본형): p가 소수이고 gcd(a,p)=1이면,
ap−1≡1(modp)
형태 2 (일반형): p가 소수이면 모든 정수 a에 대해,
ap≡a(modp)
두 형태는 동치이다. 형태 1에서 양변에 a를 곱하면 형태 2가 나오고, 형태 2에서 p∤a일 때 a로 나누면 형태 1이 복원된다. p∣a인 경우 형태 2는 0≡0(modp)으로 자명하다.
증명 1 — 오일러 정리의 특수화
소수 p에 대해 ϕ(p)=p−1이다 (1부터 p−1까지 모두 p와 서로소).
오일러 정리 aϕ(m)≡1(modm)에 m=p를 대입하면 즉시 얻어진다.
증명 2 — 곱셈군 이중 치환
gcd(a,p)=1일 때, 집합 S={1,2,…,p−1}을 고려한다.
S의 각 원소에 a를 곱한 집합 aS={a,2a,…,(p−1)a}를 mod p로 환산하면:
- 각 iamodp는 0이 아니다 (gcd(a,p)=1이고 1≤i≤p−1이므로)
- ia≡ja(modp) (i=j일 때) — a가 역원을 가지므로 소거 가능
따라서 aSmodp의 원소들은 {1,2,…,p−1}의 재배열이다. 두 집합의 모든 원소를 곱하면,
a⋅2a⋅3a⋯(p−1)a≡1⋅2⋅3⋯(p−1)(modp)
ap−1⋅(p−1)!≡(p−1)!(modp)
gcd((p−1)!,p)=1이므로 양변에서 (p−1)!을 소거하면,
ap−1≡1(modp)
쉽게 말하면
오일러 정리와 페르마의 소정리는 "모듈러 세계에서 거듭제곱은 결국 원점으로 돌아온다"는 것이다. 소수 p에 대해 어떤 수를 (p-1)번 거듭제곱하면 반드시 1로 돌아온다. RSA는 이 주기성을 이용해 암호화한 메시지를 정확히 원래대로 복원한다.
예시

p=7에서 Z7∗={1,2,3,4,5,6}의 각 원소는 고유한 순환 주기를 갖지만, k=p−1=6에서 반드시 1로 수렴한다.
몇 가지 직접 계산:
26=64=9×7+1⟹26≡1(mod7)
310≡1(mod11)(p=11, p−1=10)
512≡1(mod13)(p=13, p−1=12)
응용 1 — 모듈러 역원
gcd(a,p)=1이면 ap−1≡1에서,
a⋅ap−2≡1(modp)
따라서 a의 모듈러 역원은 a−1≡ap−2(modp)이다.
확장 유클리드 알고리즘 없이도 빠른 모듈러 지수연산(Fast Exponentiation)만으로 역원을 구할 수 있다. 예를 들어 3−1(mod7)=35mod7=243mod7=5. 검증: 3×5=15≡1(mod7) ✓
응용 2 — 페르마 소수 판별법 (Fermat Primality Test)
n이 소수이면 an−1≡1(modn)이 성립한다. 대우명제: 이 합동이 성립하지 않으면 n은 합성수 이다.
절차: 랜덤하게 a (1<a<n)를 선택해 an−1modn을 계산한다.
- an−1≡1 → n은 합성수 (확정)
- an−1≡1 → n이 소수일 가능성이 높음 (확정 아님)
여러 a에 대해 반복할수록 소수 판정의 신뢰도가 높아진다.
한계 — Carmichael 수
합성수임에도 모든 gcd(a,n)=1인 a에 대해 an−1≡1(modn)을 만족하는 수가 존재한다. 이를 Carmichael 수(카마이클 수) 라 한다.
가장 작은 예: n=561=3×11×17
a560≡1(mod561)for all gcd(a,561)=1
Carmichael 수 때문에 페르마 테스트 단독으로는 소수를 완전히 판별할 수 없다. 실용적인 소수 판별에는 밀러-라빈 테스트(Miller-Rabin) 를 사용한다.
핵심 정리
- a^(p-1) ≡ 1 (mod p)는 오일러 정리의 특수화이자, 집합 {1,...,p-1}이 곱셈에 대한 군(group)임을 반영한다.
- 모듈러 역원 a^(−1) ≡ a^(p−2)는 확장 유클리드 없이 지수연산만으로 역원을 구하는 실용적 공식이다.
- 페르마 소수 판별법은 확률적 테스트다 — Carmichael 수라는 반례가 존재하므로 단독으로 완전한 증명이 되지 않는다.
- RSA에서 복호화 정확성(m^(de) ≡ m (mod n))은 페르마의 소정리(혹은 오일러 정리)에 직접 의존한다.
다음 포스트
Chinese Remainder Theorem — 중국인의 나머지 정리 — 서로소인 여러 모듈러스의 연립 합동식이 항상 유일한 해를 가짐을 증명하고, RSA-CRT 속도 최적화까지 다룬다.