도입
암호학에서 Number Theory는 암호학에서 가장 중요하게 다루는 2가지 이론 중 하나이다. Number Theory; 즉, 정수론은 아주 오래전부터 연구되어온 복잡한 학문이기 때문에 복잡한 정수론 문제를 사용하여 암호를 푸는 문제를 어렵게 설계하기 위하여 사용된다.
그렇다면 정수론은 무엇을 다루는 학문인가?
A Sample Problem 1
Problem 1. Find Solution 2a+3b=n!, in Nonnegative Integers a,b and n
n 이 0인 경우부터 순서대로 계산해 나가면 답을 구할 수 있다.
- n=0 : 좌변도 0이 되어야하지만, 어떤 수의 제곱수는 절대 0이 될 수 없기 떄문에 불가능하다.
- n=1 : 좌변도 1이 되어야하지만, 어떤 수의 제곱수의 최소값은 제곱일 때 "1"이기 때문에 좌변의 최소값인 1+1은 1이 아니므로 불가능하다.
여기까지는 명확하게 답을 알 수 있었지만 만약 n이 더 큰 범위에서는 어떻게 문제를 해결해야할까?
우리는 여기서 좌변과 우변이 같은 수라면, 좌변과 우변을 각각 어떤 수 X로 나눈 "나머지"역시 동일해야한다는 아이디어를 적용한다.
좌변을 이루는 항은 2의 제곱수와 3의 제곱수이므로 다음의 2가지 경우로 나누어 생각해보자.
n≥2
양변을 2로 나누어보자.
- 2a는 2의 제곱수이므로 2로 나눈 나머지가 0이다.
- 3b는 3의 제곱수이므로 2로 나눈 나머지는 1이다.
즉, 좌변을 2로 나누면 항상 0+1=1의 나머지를 가진다. 그러나 우변은 n의 팩토리얼인데, n이 2보다 같거나 커지면 항상 우변은 2가 곱해진 값이 결과로 나오기 떄문에 나눈 나머지가 0이 된다.
따라서 n≥2,a>0,b>0이면 더이상 답이 존재하지 않는다.
그럼 더 나아가 이제 a,b의 범위를 확장해보자.
만약 a=0 이고 b=0라면 1+1=2가 되므로 답이 존재한다. (a=0,b=0,n=2)
만약 b=0이면 좌변을 2로 나누었을 때 0+1=1이 되므로 답이 존재하지 않는다.
따라서 n≥2,a>0,b≥0이면 더이상 답이 존재하지 않는다.
만약 a=0이면 좌변을 2로 나누었을 때 1+1=2=0이 되므로 좌변과 우변의 나머지가 동일한 경우가 존재할 수 있다. 그럼 이제 3으로 나눈 나머지를 생각해보자.
n≥3
양변을 3으로 나누어보자. 이떄 a=0인 경우를 가정하므로 3으로 나눈 나머지는 1이다.
- 1을 3으로 나눈 나머지는 1이다.
- 3b는 3의 제곱수이므로 3으로 나눈 나머지는 0이다.
즉, 좌변을 3으로 나누면 항상 1+0=1의 나머지를 가진다. 그러나 우변은 3의 배수이므로 나눈 나머지가 0이 된다. 따라서 양변의 나머지가 다르므로 답이 존재하지 않는다.
따라서 n≥3,a≥0,b≥0이면 더이상 답이 존재하지 않는다.
즉, 이 문제의 유일한 해답은 다음과 같다.
a=0,b=0,n=2
A Sample Problem 2 : 3의 배수, 9의 배수 판정법
376548은 다음과 같이 정리할 수 있다.
=3×105+7×104+6×103+5×102+4×10+8
어떤 수 X를 10번 곱한 수는 X를 9번 곱한 수 + X로 나타낼 수 있다. 따라서 다음과 같이 표현된다.
=3+7+6+5+4+8+99999×3+9999×7+…
따라서 999.. 로 표현된 항들은 3으로/9로 나눈 나머지가 0이므로 무시되기 때문에 기존 숫자의 합으로 표현된 항인 3+7+6+5+4+8만 남는다.
그래서 자릿수의 합이 3의 배수인지/9의 배수인지에 따라서 그 숫자가 3의 배수인지, 9의 배수인지를 쉽게 알 수 있는 것이다!