Fermat’s Little Theorem
For prime $p$, and $a \not\equiv 0 \pmod{p}$
$a^{p-1} \equiv 1 \pmod{p}$
즉, a를 p-1번 곱한 값은 p로 나누면 항상 나머지가 1이다.
[예시]
p = 5, a = 2
$2^4 = 16$
16 mod 5 = 1
p가 소수면 1부터 p-1까지의 수는 모두 p와 서로소이다.
그래서 곱해도 0이 되지 않는다.
집합 {1, 2, ..., p-1}을 생각한다.
각 원소에 a를 곱하고 p로 나눈 나머지를 보면 값이 사라지지 않는다.
순서만 바뀐 같은 집합이 된다.
그래서 전체 곱도 같아야 한다.
1 x 2 x ... x (p-1)
= $a^{p-1}$ x (1 x 2 x ... x (p-1)) (mod p)
공통 부분을 약분하면
$a^{p-1} \equiv 1 \pmod{p}$
다음 식도 많이 사용된다.
$a^p \equiv a \pmod{p}$
Euler 정리와의 관계
Fermat's little theorem은 Euler's Theorem의 특수한 경우이다.
Euler's Theorem
$a^{φ(n)} \equiv \pmod{n}$
p가 소수면, $ φ(n) = p-1 $
→ Fermat's little theorem이 된다.
암호학에서의 실제 사용
RSA에서 모듈러 거듭제곱을 빠르게 계산할 때 사용된다.
큰 수를 직접 계산하지 않고 mod 연산으로 줄인다.
$7^{100} \pmod{13}$
13은 prime
$7^{12} \equiv 1 \pmod{13}$
→ $7^{100} = (7^{12})^{8} \times 7^4 = 7^4 \pmod{13} $
소수 판별에의 활용
Fermat's little theorem은 소수 판별 테스트의 기초다.
임의의 a에 대해서
$a^{p-1} \pmod{p} \neq 1$이면 p는 합성수이다.
단, 항상 소수라고 보장되지는 않는다.
Carmichael Number
합성수인데도 Fermat's little theorem을 만족하는 수가 있다.
예) 561 = 3 x 11 x 17
이런 수 때문에 실제 암호 시스템에서는 Miller-Rabim 테스트를 사용한다.
'Cryptography > Cryptography' 카테고리의 다른 글
| Attacks on RSA (0) | 2026.01.18 |
|---|---|
| RSA (0) | 2026.01.16 |
| Padding Oracle Attack (0) | 2025.11.15 |
| 블록 암호와 운영 모드 (0) | 2025.11.15 |
| AES(Advanced Encryption Standard) - 2 (0) | 2025.11.08 |