이산수학 13강 - 정수론
정수의 나눗셈과 최대공약수에서 출발하여 유클리드 호제법, 모듈로 합동과 합동의 연산 법칙을 학습한다. 이어서 소수와 소인수분해, 소수의 무한성, 페르마의 작은 정리와 빠른 나머지 거듭제곱을 살펴보고 이 개념들이 RSA 암호의 수학적 기반이 되는 이유를 이해한다.
1. 나눗셈 알고리즘
몫과 나머지
정수 a와 양의 정수 b가 주어지면 a를 b로 나눈 몫과 나머지를 이용해 a=bq+r로 나타낼 수 있다. 이때 q와 r은 유일한 정수이며 0≤r<b를 만족한다. 이것을 나눗셈 알고리즘 또는 나눗셈 정리라고 한다.
나머지의 범위를 0 이상 b 미만으로 정하는 것은 몫과 나머지의 유일성을 보장하기 위해서이다. 예를 들어 17을 5로 나누면 17=5·3+2이므로 몫은 3, 나머지는 2이다. 음의 정수도 같은 범위를 사용한다. -7=-3·3+2이므로 -7을 3으로 나눈 나머지는 2이다.
나눗셈 알고리즘을 이용한 분류
정수를 어떤 양의 정수로 나눈 나머지에 따라 여러 경우로 분류할 수 있다. 강의록의 예처럼 임의의 정수 a를 3으로 나누면 나머지는 0, 1, 2 중 하나이므로 a=3q, 3q+1, 3q+2 중 하나이다. 각 경우를 제곱하면 a²은 3k 또는 3k+1 꼴임을 확인할 수 있다.
2. 약수와 배수
나누어떨어짐
정수 a와 b에 대해 어떤 정수 k가 존재하여 b=ak가 되면 “a가 b를 나눈다”라고 하며 a|b로 쓴다. 이때 a는 b의 약수이고 b는 a의 배수이다. a가 b를 나누지 않으면 a∤b로 나타낸다.
예를 들어 3|12는 12=3·4이므로 참이고, 5∤12는 12를 5와 정수의 곱으로 나타낼 수 없으므로 참이다. a|b라는 표기에서 왼쪽이 나누는 수, 오른쪽이 나누어지는 수라는 순서를 주의해야 한다.
나누어떨어짐의 기본 성질
| 조건 | 따라오는 결론 | 이유 |
|---|---|---|
| a|b, a|c | a|(b+c) | b=ak, c=aℓ이면 b+c=a(k+ℓ) |
| a|b | a|bc | b=ak이면 bc=a(kc) |
| a|b, b|c | a|c | b=ak, c=bℓ이면 c=a(kℓ) |
이 성질들은 약수 관계를 증명할 때 직접 사용된다. 특히 a|b와 a|c이면 a는 b와 c의 정수 선형결합 bx+cy도 나눈다. 이는 최대공약수와 베주 항등식으로 이어지는 중요한 관찰이다.
3. 최대공약수와 서로소
최대공약수
0이 아닌 정수 a와 b를 모두 나누는 양의 정수 가운데 가장 큰 수를 최대공약수라고 하며 gcd(a,b)로 쓴다. a와 b를 모두 나누는 수는 공약수이고, gcd(a,b)는 그 공약수 가운데 가장 크다.
gcd(a,b)=1이면 a와 b는 서로소라고 한다. 서로소라는 말은 두 수가 각각 소수라는 뜻이 아니라 공통인 양의 약수가 1뿐이라는 뜻이다. 예를 들어 8과 15는 모두 합성수이지만 gcd(8,15)=1이므로 서로소이다.
베주 항등식
베주 항등식에 따르면 d=gcd(a,b)일 때 ax+by=d를 만족하는 정수 x, y가 존재한다. 반대로 a와 b의 정수 선형결합으로 표현되는 양의 공약수 가운데 가장 작은 양의 값이 최대공약수가 된다.
특히 a와 b가 서로소인 것과 ax+by=1을 만족하는 정수 x, y가 존재하는 것은 동치이다. 이 관계는 모듈로 연산에서 역원이 존재하는 조건과 RSA 암호의 키 관계를 이해하는 데 중요하다.
4. 유클리드 호제법
기본 원리
a=bq+r이면 gcd(a,b)=gcd(b,r)이다. a와 b의 공약수는 b와 r=a-bq의 공약수이고, 반대 방향도 성립하기 때문이다. 이 성질을 나머지가 0이 될 때까지 반복하여 최대공약수를 구하는 방법이 유클리드 호제법이다.
계산 절차
gcd(287,91)을 구해 보자.
287=91·3+14 → gcd(287,91)=gcd(91,14)
91=14·6+7 → gcd(91,14)=gcd(14,7)
14=7·2+0 → gcd(14,7)=7
나머지가 0이 된 순간의 나누는 수 7이 최대공약수이다. 큰 두 수의 모든 약수를 직접 나열하지 않아도 나머지를 반복 계산하여 빠르게 최대공약수를 얻을 수 있다는 것이 장점이다.
5. 모듈로 연산과 합동
모듈로 연산
정수 n을 양의 정수 m으로 나누었을 때의 나머지를 n mod m이라고 한다. 나눗셈 알고리즘에 따라 n=mq+r이고 0≤r<m이면 n mod m=r이다. 예를 들어 25 mod 7=4이고 -3 mod 5=2이다.
모듈로 합동
정수 a와 b를 m으로 나눈 나머지가 같으면 a와 b는 법 m에 대해 합동이라고 하며 a≡b (mod m)으로 쓴다. 이는 m|(a-b)와 동치이다. 예를 들어 25≡11 (mod 7)인 이유는 25-11=14가 7의 배수이기 때문이다.
합동과 나머지는 밀접하지만 표기의 역할은 다르다. a mod m은 하나의 나머지 값을 뜻하고, a≡b (mod m)은 두 정수가 같은 나머지 부류에 속한다는 관계를 뜻한다.
합동은 동치관계
법 m에 대한 합동은 반사성, 대칭성, 추이성을 모두 만족하여 동치관계가 된다. 따라서 정수 전체는 같은 나머지를 갖는 동치류들로 분할된다. 법 5에서는 [0], [1], [2], [3], [4]의 다섯 동치류가 생긴다.
| 성질 | 합동식 |
|---|---|
| 반사성 | a≡a (mod m) |
| 대칭성 | a≡b이면 b≡a (mod m) |
| 추이성 | a≡b, b≡c이면 a≡c (mod m) |
6. 합동의 연산 법칙
합동식은 덧셈과 곱셈에 대해 보존된다. a≡b (mod m), c≡d (mod m)이면 a+c≡b+d (mod m), ac≡bd (mod m)이다. 같은 수를 더하거나 곱하는 경우에도 합동 관계가 유지되며, 자연수 k에 대해 ak≡bk (mod m)이다.
| 주어진 합동 | 가능한 연산 |
|---|---|
| a≡b (mod m) | a+c≡b+c (mod m) |
| a≡b (mod m) | ac≡bc (mod m) |
| a≡b, c≡d (mod m) | a+c≡b+d, ac≡bd (mod m) |
| a≡b (mod m) | ak≡bk (mod m) |
합동식의 약분
일반 등식처럼 합동식의 공통인수를 언제나 약분할 수 있는 것은 아니다. ac≡bc (mod m)에서 c를 약분해 a≡b (mod m)을 얻으려면 c와 m이 서로소인 조건이 필요하다. 예를 들어 2·1≡2·3 (mod 4)이지만 1과 3은 법 4에서 합동이 아니다.
7. 소수와 소인수분해
소수와 합성수
1보다 큰 자연수 p의 양의 약수가 1과 p뿐이면 p를 소수라고 한다. 1보다 큰 자연수 가운데 소수가 아닌 수는 합성수이다. 1은 소수도 합성수도 아니다.
합성수 n은 √n 이하인 소인수를 적어도 하나 갖는다. 따라서 어떤 수가 소수인지 판별할 때 n-1까지 모두 나눌 필요 없이 √n 이하의 소수로 나누어떨어지는지만 확인하면 된다. 예를 들어 101의 제곱근은 10보다 조금 크므로 2, 3, 5, 7로 나누어떨어지는지 검사하면 충분하다.
산술의 기본정리
산술의 기본정리에 따르면 1보다 큰 모든 자연수는 소수들의 곱으로 표현할 수 있고, 소인수의 순서를 제외하면 그 표현은 유일하다. 예를 들어 17640=2³·3²·5·7²이다. 이 유일성은 최대공약수, 최소공배수와 여러 정수론 계산의 기초가 된다.
에라토스테네스의 체
주어진 범위의 소수를 모두 찾으려면 에라토스테네스의 체를 사용할 수 있다. 2부터 시작하여 아직 지워지지 않은 가장 작은 수를 소수로 선택하고 그 수의 배수를 지운다. 이 과정을 √n 이하의 소수까지 반복하면 지워지지 않은 수들이 n 이하의 소수이다.
8. 소수의 무한성과 분포
소수는 무한히 많다
소수가 유한개 p₁,p₂,…,pₙ뿐이라고 가정하고 N=p₁p₂⋯pₙ+1을 만든다. N을 목록의 어떤 소수 pᵢ로 나누어도 나머지가 1이므로 어느 pᵢ도 N을 나누지 못한다. N 자체가 소수이거나 목록에 없는 소인수를 가지므로 처음의 유한성 가정과 모순된다. 따라서 소수는 무한히 많다.
메르센 소수
메르센 수는 2p-1 꼴의 수이다. 2p-1이 소수라면 지수 p도 소수여야 한다. 그러나 p가 소수라고 해서 2p-1이 항상 소수인 것은 아니다. 강의록의 예처럼 2¹¹-1=2047=23·89이므로 합성수이다.
소수의 밀도
π(x)를 x 이하의 소수 개수라고 하면 소수정리에 따라 x가 충분히 클 때 π(x)≈x/ln x이다. 따라서 x 근처의 자연수를 임의로 고를 때 소수일 대략적인 확률은 1/ln x로 볼 수 있다. x가 커질수록 소수는 드물어지지만 계속 나타난다.
9. 페르마의 작은 정리
p가 소수이고 a가 p의 배수가 아니면 ap-1≡1 (mod p)이다. 이것이 페르마의 작은 정리이다. 같은 내용을 모든 정수 a에 대해 ap≡a (mod p)로도 표현할 수 있다.
예를 들어 p=11이고 a=7이면 7¹⁰≡1 (mod 11)이다. 따라서 7²²²의 나머지를 구할 때 지수 222를 10으로 나누어 222=10·22+2로 바꿀 수 있다. 7²²²=(7¹⁰)²²·7²≡1²²·49≡5 (mod 11)이다.
이 정리는 큰 지수의 거듭제곱을 모듈로 계산할 때 지수를 줄이는 근거를 제공하며, 소수와 합동 연산이 RSA 암호에 연결되는 핵심 원리 가운데 하나이다.
10. 나머지 거듭제곱과 RSA 암호
반복 제곱법
큰 지수의 bn mod m을 직접 계산하면 수가 지나치게 커진다. 나머지 거듭제곱 알고리즘은 지수 n을 이진수로 표현하고 b, b², b⁴, b⁸처럼 제곱을 반복하면서 매 단계 m으로 나눈 나머지만 유지한다. 필요한 이진 자릿수에 해당하는 값들만 곱하면 계산량을 크게 줄일 수 있다.
예를 들어 5⁶ mod 7을 계산하자. 6=(110)₂=4+2이므로 5⁶=5⁴·5²이다. 5²≡4 (mod 7), 5⁴≡4²≡2 (mod 7)이므로 5⁶≡2·4≡1 (mod 7)이다.
RSA와 소수의 관계
RSA는 큰 소수와 모듈로 거듭제곱을 이용하는 공개키 암호 방식이다. 암호화와 복호화 과정에서는 큰 지수의 나머지를 효율적으로 계산해야 하므로 반복 제곱법이 필요하다. 또한 서로소, 최대공약수, 베주 항등식과 페르마의 작은 정리 같은 정수론 개념이 키의 구성과 복호화 관계를 설명하는 기반이 된다.
RSA의 안전성은 큰 정수의 소인수분해가 계산적으로 어렵다는 점과 관련된다. 소수는 키를 만드는 중요한 재료이고, 합동식은 암호화된 값과 복호화된 값의 관계를 표현하는 언어가 된다.
핵심 개념 정리
나눗셈 알고리즘은 a=bq+r, 0≤r<b인 유일한 몫과 나머지를 보장한다. a|b는 b가 a와 어떤 정수의 곱임을 뜻하고, gcd(a,b)는 두 수의 가장 큰 양의 공약수이다. 유클리드 호제법은 gcd(a,b)=gcd(b,r)을 반복하여 최대공약수를 빠르게 구한다.
a≡b (mod m)은 m|(a-b), 즉 a와 b가 m으로 나눈 나머지가 같다는 뜻이다. 합동은 동치관계이며 덧셈·곱셈·거듭제곱에 대해 보존된다. 단, 공통인수를 약분하려면 그 인수와 법 m이 서로소인지 확인해야 한다.
소수는 1과 자기 자신만을 양의 약수로 갖는 1보다 큰 자연수이다. 모든 1보다 큰 자연수는 순서를 제외하면 유일한 소인수분해를 갖고, 소수는 무한히 많다. 페르마의 작은 정리와 반복 제곱법은 큰 모듈로 거듭제곱을 효율적으로 계산하게 하며 RSA 암호의 수학적 기반이 된다.
예상문제 20선
1. 나눗셈 알고리즘에서 a=bq+r일 때 나머지 r의 범위는?
정답입니다.
오답입니다. 답안을 다시 선택해 보세요.
정답 및 해설 보기
정답: ④
나머지는 0 이상이고 나누는 양의 정수 b보다 작아야 한다. 이 조건에서 몫과 나머지가 유일해진다.
2. 정수의 나누어떨어짐 a|b의 뜻은?
정답입니다.
오답입니다. 답안을 다시 선택해 보세요.
정답 및 해설 보기
정답: ②
a|b는 어떤 정수 k가 존재하여 b=ak로 쓸 수 있다는 뜻이다. a가 나누는 수이고 b가 나누어지는 수이다.
3. a|b이고 a|c일 때 반드시 성립하는 것은?
정답입니다.
오답입니다. 답안을 다시 선택해 보세요.
정답 및 해설 보기
정답: ①
b=ak, c=aℓ로 쓰면 b+c=a(k+ℓ)이므로 a는 b+c를 나눈다.
4. gcd(a,b)=1의 의미는?
정답입니다.
오답입니다. 답안을 다시 선택해 보세요.
정답 및 해설 보기
정답: ③
최대공약수가 1인 두 정수를 서로소라고 한다. 각 수가 소수일 필요는 없다.
5. a와 b가 서로소임을 나타내는 베주 항등식은?
정답입니다.
오답입니다. 답안을 다시 선택해 보세요.
정답 및 해설 보기
정답: ①
gcd(a,b)=1인 것과 ax+by=1을 만족하는 정수 x,y가 존재하는 것은 동치이다.
6. 유클리드 호제법의 핵심 관계는?
정답입니다.
오답입니다. 답안을 다시 선택해 보세요.
정답 및 해설 보기
정답: ④
나눗셈의 나머지 r을 이용해 두 수를 b와 r로 바꾸어도 최대공약수는 변하지 않는다.
7. 유클리드 호제법으로 gcd(287,91)을 구한 결과는?
정답입니다.
오답입니다. 답안을 다시 선택해 보세요.
정답 및 해설 보기
정답: ②
287=91·3+14, 91=14·6+7, 14=7·2이므로 마지막 0이 아닌 나머지는 7이다.
8. 25 mod 7의 값은?
정답입니다.
오답입니다. 답안을 다시 선택해 보세요.
정답 및 해설 보기
정답: ③
25=7·3+4이고 0≤4<7이므로 25 mod 7=4이다.
9. a≡b (mod m)과 동치인 조건은?
정답입니다.
오답입니다. 답안을 다시 선택해 보세요.
정답 및 해설 보기
정답: ②
법 m에서 합동이라는 것은 두 수의 차 a-b가 m의 배수라는 뜻이며, 두 수의 나머지가 같다는 뜻이다.
10. 법 m에 대한 합동 관계가 만족하는 관계의 성질은?
정답입니다.
오답입니다. 답안을 다시 선택해 보세요.
정답 및 해설 보기
정답: ①
합동은 반사성, 대칭성, 추이성을 모두 만족하므로 정수 집합 위의 동치관계이다.
11. a≡b, c≡d (mod m)일 때 일반적으로 옳지 않은 것은?
정답입니다.
오답입니다. 답안을 다시 선택해 보세요.
정답 및 해설 보기
정답: ④
합동식의 덧셈·뺄셈·곱셈은 보존되지만 나눗셈이나 약분에는 역원 또는 서로소 조건이 필요하다.
12. ac≡bc (mod m)에서 c를 약분하여 a≡b (mod m)을 얻기 위한 충분한 조건은?
정답입니다.
오답입니다. 답안을 다시 선택해 보세요.
정답 및 해설 보기
정답: ③
c와 m이 서로소이면 c는 법 m에서 역원을 가지므로 양변에서 c를 약분할 수 있다.
13. 소수의 정의로 옳은 것은?
정답입니다.
오답입니다. 답안을 다시 선택해 보세요.
정답 및 해설 보기
정답: ③
소수는 1보다 큰 자연수 가운데 양의 약수가 1과 자기 자신뿐인 수이다. 1은 소수가 아니다.
14. 합성수 n의 소수 판별에서 확인하면 충분한 약수의 범위는?
정답입니다.
오답입니다. 답안을 다시 선택해 보세요.
정답 및 해설 보기
정답: ④
합성수라면 적어도 하나의 소인수가 √n 이하에 존재한다. 따라서 √n 이하의 소수로 나누어지는지 확인하면 된다.
15. 산술의 기본정리가 말하는 내용은?
정답입니다.
오답입니다. 답안을 다시 선택해 보세요.
정답 및 해설 보기
정답: ①
산술의 기본정리에 따라 1보다 큰 자연수는 소수들의 곱으로 표현되며 그 표현은 소인수 순서를 제외하면 유일하다.
16. 에라토스테네스의 체의 주된 용도는?
정답입니다.
오답입니다. 답안을 다시 선택해 보세요.
정답 및 해설 보기
정답: ②
에라토스테네스의 체는 작은 소수의 배수들을 차례로 지워 주어진 범위의 소수를 모두 찾는 알고리즘이다.
17. 2^p-1이 소수일 때 지수 p에 대해 반드시 옳은 것은?
정답입니다.
오답입니다. 답안을 다시 선택해 보세요.
정답 및 해설 보기
정답: ④
2^p-1이 소수라면 p도 소수여야 한다. 그러나 p가 소수라는 조건만으로 2^p-1이 항상 소수가 되는 것은 아니다.
18. 소수정리에 따른 π(x)의 근삿값은?
정답입니다.
오답입니다. 답안을 다시 선택해 보세요.
정답 및 해설 보기
정답: ①
x가 충분히 클 때 x 이하의 소수 개수 π(x)는 x/ln x에 가까워진다.
19. p가 소수이고 p∤a일 때 페르마의 작은 정리는?
정답입니다.
오답입니다. 답안을 다시 선택해 보세요.
정답 및 해설 보기
정답: ③
p가 소수이고 a가 p의 배수가 아니면 a^(p-1)≡1 (mod p)이다.
20. 나머지 거듭제곱 알고리즘에서 지수를 이진수로 표현하는 주된 이유는?
정답입니다.
오답입니다. 답안을 다시 선택해 보세요.
정답 및 해설 보기
정답: ②
지수를 이진수로 나타내면 b, b², b⁴, b⁸처럼 반복 제곱한 값 중 필요한 것만 곱해 큰 거듭제곱의 나머지를 효율적으로 구할 수 있다.
댓글
댓글 쓰기