RSA 암호 얘기로 넘어가기 전에 한 가지 더 알아야 할 것이 있습니다. 바로 확장 유클리드 알고리즘입니다.
확장 유클리드 알고리즘
정수론 (2) - 베주 항등식 에서 베주 항등식에 대해서 알아봤습니다. 베주 항등식의 내용은 다음과 같았습니다.
a,b에 대하여 ax+by=gcd(a,b)를 만족하는 정수 x,y가 존재한다.
그런데 베주 항등식은 이러한 x,y의 존재성에 대해서만 얘기하고 실제로 x,y를 어떻게 구하는지에 대해서는 언급하지 않습니다. 하지만 확장 유클리드 알고리즘을 활용하면 구할 수 있습니다. 사실 확장 유클리드 알고리즘은 유클리드 알고리즘을 거꾸로 하면 됩니다. 단계는 아래와 같습니다.
- 먼저 유클리드 호제법을 통해 a,b의 최대공약수를 구합니다.
- 유클리드 호제법의 식들을 위에서부터 1번, 2번, 3번, ..., n번 식이라고 했을 때, 먼저 n−1번 식을 나머지에 대해 이항합니다.
- n−2번 식을 나머지에 대해 이항한 뒤, n−1번 식에 대입합니다.
- n−3번 식을 나머지에 대해 이항한 뒤, n−1번 식에 대입합니다.
- 이 과정을 gcd(a,b)=ax+by 의 꼴로 표현될 때까지 반복합니다.
일례로 102와 38의 최대공약수를 유클리드 알고리즘으로 구해보면,
102=2×38+2638=1×26+1226=2×12+212=6×2+0.
따라서 최대공약수는 나머지가 0이 되기 직전의 나머지인 2입니다. 그럼 이제부터 확장 유클리드 알고리즘으로 102x+38y=2 가 되도록 하는 x,y를 구해보겠습니다. 먼저 마지막에서 두 번째 식을 다음과 같이 나머지인 2에 대해 정리합니다.
2=26−2×12
그 위의 식도 마찬가지로 나머지인 12에 대해 이항합니다.
12=38−1×26
이 식을 2=26−2×12에 대입합니다.
2=26−2×(38−1×26)=3×26−2×38
이제 이 과정을 반복하면 됩니다. 그 위의 식도 나머지인 26에 대해 이항한 뒤,
26=102−2×38
이 식을 2=3×26−2×38에 대입합니다.
2=3×26−2×38=3×(102−2×38)−2×38=3×102−8×38
따라서 x=3,y=−8 입니다.
이게 확장 유클리드 알고리즘 내용의 끝입니다! 나쁘지 않죠? 다음 번에는 오일러 공식과 확장 유클리드 알고리즘을 활용하여 RSA 암호에 대해 알아보겠습니다.

'수학 > 정수론' 카테고리의 다른 글
정수론 (8) - RSA 암호 (1) | 2020.01.26 |
---|---|
정수론 (6) - 오일러의 정리와 오일러 파이 함수 (8) | 2020.01.23 |
정수론 (5) - 페르마의 소정리 (5) | 2020.01.19 |
정수론 (4) - 합동식에서의 나눗셈 (4) | 2020.01.17 |
정수론 (3) - 합동식 (6) | 2020.01.13 |