소수(Prime Number)
소수는, 양의 약수가 1과 자기 자신 뿐인 1보다 큰 자연수
0.1 0.2는 /소수/로 발음하고, Prime Number인 소수는 /소쑤/로 발음한다.
(예전에는 Prime Number는 '솟수'로 썼었는데, 1998년 맞춤법 개정에서 6개의 한자어인 곳간, 찻간, 퇸간, 셋방, 숫자, 횟수를 제외하고는 사이시옷을 쓸 수 없다는 규정에 의해, '소수'로 바뀌었다. )
소수는 1과 그 자신만을 약수로 갖는 1보다 큰 자연수이다. 따라서, '1'은 소수가 아니고, '2'는 약수가 1과 2이므로 소수이다. 또한 3과 5도 1과 그 자신만을 약수로 가지므로 소수이다.
즉, 소수를 나열해 보면, 2,3,5,7,11,13,17,19,23.... 등이다.
소수는 현대 암호학에서 매우 중요한 수이다. 소수가 가지는 특이한 성질 때문에 여러 알고리즘에서 자주 등장하므로 그 성질을 잘 알아둬야 한다.
소수의 성질: 1보다 큰 임의의 정수 n은 적어도 하나의 소인수를 갖는다.
소인수는 소수인 약수를 말한다. 이 성질은 '어떤 수라도 소인수분해를 할 수 있다'는 말과도 같다. 즉, 어떤 큰 수가 있을 때(예를들어 342,961,111) 이 수를 소인수분해하라고 하면, 이 수가 소수가 아니라면 무조건 어떤 작은 소인수가 존재하므로, 작은 소수부터 차례로 나눠가면 소인수를찾을 수 있다는 근거가 된다.
복잡하게 생각할 거 없이, '모든 수를 소인수분해할 수 있다'고 생각하면 된다.
이 생각을 좀 더 발전시키면, 곱셈의 관점에서 소수는 자연수를 이루는 성분이라 할 수 있다. 예를들어, 12 = 22 × 3 으로, 자연수 12는 소수 2와3의 조합으로 표현할 수 있고, 그 조합은 (소인수의 순서를 무시하면) 단 한가지 방법만으로 소인수분해되는 것이다.
증명은 다음과 같다. (그리 복잡하지 않고, 한 번 논리적으로 수긍하게되면 기억에 오래 남으므로 해보도록 한다.)
- n이 소수이면 n = n·1 이므로, n은 그 자신인 소인수를 가지므로, 하나 이상의 소인수를 갖는다고 할 수 있다.
- n이 소수가 아니라면 자기자신이 아닌 약수들이 존재할 것이다. 이 약수 중에서 가장 작은 약수를 a라하면 a는 소수이다.
왜냐하면, 만약 a가 소수가 아니면 a=p·q, p<a 인 p가 존재할 것이고, p|n 이 되므로(∵ a|n인데 a=p·q이므로), 최초의 가정인 a가 n이 가장 작은 약수라는 가정에 위배되므로, a는 소수이다.
소수의 성질: n이 합성수이면 n은 √n보다 작은 소인수 p를 가진다.
예를 들어 n=77 이라면, √n보다 작은 수, 즉 9이하인 수 중에서 소인수가 존재한다는 의미이다. (77 = 7 × 11)
이 성질은 어떤 수n에 대해서 소인수분해를 해야해서, 가장 작은 소수인 2부터 시작해서 차례로 소인수가 될만한 소수들을 찾아나갈 때, √n이 될 때까지도 소인수가 없다면 n은 소인수가 없다, 즉 'n은 소수'라는 결론을 낼 수 있는 근거가 된다. (√n이 될 때까지만 뒤지면 된다)
증명은 간단하다.
n이 합성수이면 n=pq(1<p≤q)인 p,q가 존재한다. 여기서 p2 ≤ n 이므로(왜냐면 두수의 곱 중에서 작거나 같은 수를 p라고 가정했으므로 p가 가장 커질 때는 p=q일 때이고 이때 pq=p2=n이다. 그 이외는 p<q이므로 p2<n ), p ≤ √n 이 되어, n은 √n보다 작은 소인수 p를 가지는 것이다.
(유클리드 정리)
소수는 무한히 많다.
RSA암호의 경우 일반적으로 512비트 정도의 소수를 사용한다. 이것도 작은 수가 아닌데, 요즘은 RSA의 키로 1024비트정도의 큰 소수를 사용한다. 이렇게 수가 커져가도 소수는 존재할까?
존재한다고 한다. 그것도 무한하게 많이.
그리이스 수학자인 유클리드는, 소수가 무한히 많음을 다음과 같은 논리로 간단히 증명했다.
- 유한 개의 소수가 존재한다고 가정하자.
- 이 유한 개의 소수들을 모두 곱한 값에 1을 더한다.
- 그 결과값은 다른 어떤 소수로 나누어도 나머지가 1이므로 어떤 소수로도 나누어 떨어지지 않는 수가 된다.
- 따라서 이 수가 소수라면 기존의 최대소수보다 큰 소수가 있다는 것이 증명되고, 이 수가 소수가 아니라고 해도 기존의 최대소수보다 큰 소수가 있어야 한다는것을 의미하기 때문에 소수가 유한하다는 애초 가정에 모순이 존재함을 알 수 있다.
1보다 큰 임의의 정수 n은 다음과 같은 형태로 유일하게 표현된다.
n = p1α1 ···pkα2
여기서, p1,···,pk 는 서로 다른 소수이고 p1<p2<···<pk이며, α1,···,αk 는 양의 정수이다.
이 말은 지수승이 있는 복잡한 수식으로 되어 있어 어려워 보이지만, 사실 앞에서 논한 바 있는 '1보다 큰 정수 n은 적어도 한 개 이상의 소인수를 갖는다'와 동일한 말이다.
즉, 어떤 정수라도 소인수분해를 할 수 있다는 말이고, 이것을 수식으로 표현하면 n = p1α1 ···pkα2 이 되는 것이다.
예를 들어 360을 소인수분해하면 360 = 23·32·51 이라는 거다.
'알고리즘 > 정수론' 카테고리의 다른 글
05. 모듈러 산술(Modular Arithmetic), 중국인의 나머지 정리 (0) | 2014.08.29 |
---|---|
04. 최대공약수, 최소공배수 (0) | 2014.08.28 |
02.정수, 정수의 나누어짐 (0) | 2014.08.27 |
01.정수론이란? 그리고 왜 공부해야 하는가? (0) | 2014.08.27 |