대학소식

RSA 암호의 수학적 원리 - 암호의 역사를 바탕으로

빈문서

자연대 홍보기자단 자:몽 6기 | 허태원

 

 2020년대에 들어서 인공지능 및 로봇 산업이 발전하면서 정보의 중요성이 커지고 있다. 그러면서 정보를 보호하는 보안이 중요해지고, 결과적으로 보안에 쓰이는 ‘암호기술’의 가치가 커지고 있다. 여기서 ‘암호기술’이란, 중요한 정보를 읽기 어려운 값으로 변환하여 제삼자가 볼 수 없도록 하는 기술을 말한다. 그렇다면, 송신자와 수신자만 해당 정보를 알 수 있게 하는 암호기술의 작동 원리는 무엇일까?

 암호기술을 통해 보호하고자 하는 원본 데이터를 ‘평문’이라고 하며, 평문에 암호기술을 적용, 즉 평문을 ‘암호화’한 것을 ‘암호문’이라고 한다. ‘암호화’ 과정에서 ‘암호키’가 쓰이는데, 이것을 수신자가 받아서 암호문을 평문으로 ‘복호화’하는 것이 암호기술의 기본적인 작동 원리다. 그렇다면, 과거에는 어떤 암호기술이 있었을까?

 고대 봉건 사회에서는 전쟁이나 첩보 시에 정보를 전달해야 하는 경우가 많아 이때 암호가 쓰였다. 고대에 쓰였던 암호는 크게 세 가지가 있다. 첫째로는 스키 테일 암호가 있다. 스키 테일 암호는 종이를 나무막대에 감은 상태로 횡으로 평문을 적고 풀어서 수신자에게 보낸 것으로, 여기서 ‘암호키’는 나무막대의 지름이 된다. 종이를 풀면 문자의 배치가 바뀌어서 남들은 해독할 수 없다. 둘째로는 시저 암호가 있다. 시저 암호는 로마의 황제 시저가 가족과 비밀 통신을 할 때 알파벳을 3자씩 당겨썼던 것에서 유래한다. 여기서 ‘암호키’는 뒤로 물려 읽어야 하는 글자 개수가 된다. 마지막으로 악보 암호가 있다. 악보 암호는 전설적인 간첩 마타하리가 썼던 방식으로 알파벳을 특정 형태의 음표에 대응시켜서 악보에 암호를 기록한 것이다.

 

▲ 왼쪽부터 차례대로 스키 테일 암호, 시저 암호, 악보 암호.  (사진 = KISA)

 

 20세기에 들어서는 두 차례의 세계 대전을 거치면서 암호 설계와 해독에 대한 필요성이 높아지면서 암호에 관한 연구가 더욱 활발해졌다. 대표적인 근대 암호로는 ‘에니그마 암호’가 있다. 에니그마 암호는 2차 세계 대전에서 독일군이 에니그마라는 기계를 이용해 만든 암호로, 알파벳을 일정한 규칙에 따라 다른 알파벳으로 바꿔서 표기한다. 하지만 에니그마는 알파벳을 입력할 때마다 규칙을 바꿔서 해독하기 어려웠다. 이런 에니그마 암호를 푼 사람이 바로 영국의 수학자 ‘엘런 튜링’이다. 1938년 에니그마의 암호 해독에 투입된 튜링은 2년에 걸쳐 만든 암호 해독기 ‘봄'으로 각 알파벳의 암호화 규칙을 찾아서 해독에 성공했다. 튜링의 해독 성공 사례에서 추론할 수 있듯이, 에니그마 암호는 컴퓨터가 개발된 이후 쉽게 해독이 되어 더 쓰이지 못했다. 그렇다면, 컴퓨터로도 뚫을 수 없는 현대 암호는 어떤 방식으로 작동할까?

 

▲ 기계를 만들어 에니그마 암호 해독에 성공한 튜링. (사진 = 동아사이언스)

  

현대 암호는 공개키 암호 방식을 사용한다. 공개키 암호란, 암호화키와 복호화키가 같았던 그전의 암호들과 달리, 암호화에 사용되는 공개키와 복호화에 사용되는 비밀키를 쌍으로 생성하여 공개키는 공개하고 비밀키는 사용자만이 보관하도록 하는 방식이다. 이러한 공개키 암호의 개념은 1976년 스탠퍼드 대학의 디플과 헬만의 ‘암호의 새로운 방향’이라는 논문에서 처음 발표되었다. 그리고 1978년 MIT 대학의 리베스트, 샤미르, 아델만이 개발한 ‘RSA 공개키 암호’가 오늘날 가장 널리 사용되는 공개키 암호 방식이다. 그렇다면 RSA 공개키 암호는 어떠한 원리로 작동할까?

 RSA 공개키 암호는 두 개의 매우 큰 소수를 곱한 수를 다시 분해하는 것이 매우 어렵다는 원리를 이용한다. 즉 n= p×q라고 할 때 합성 수 n에서 p와 q를 추적하는 것은 거의 불가능하다는 것이다. 이 알고리즘에서는 소수, 키 생성, 소인수 분해, 오일러 함수, 키 셋업, 합동식과 법이 사용된다. 여기서 오일러 함수 ø(n)은 1부터 n-1까지의 양의 정수 중에서 n과 서로소의 관계에 있는 정수들의 개수를 나타낸다. 두 개의 정수가 서로소라 하는 것은 두 숫자의 최대 공약수가 1인 것을 말한다.

 키 셋업을 위해 다음 과정을 거친다. 우선 매우 큰 임의의 소수 p, q를 선택하고 두 수의 곱 n을 구한다. ø(n) = (p-1)(q-1)이 되며, ø(n)보다 작은 양수이자 ø(n)과도 서로소가 되는 암호화키 e를 선택한다. 그리고 ed ≡ 1 (mod ø(n))과 0 ≤ d ≤ n 식을 만족하는 복호화키 d를 선택하면 키 셋업이 마무리된다. 여기서 a ≡ b(mod m)는 정수 b가 a를 m으로 나눈 나머지라는 것을 의미한다. 공개키는 {e, n}이 되며, 비밀키는 {d, p, q}가 된다. 이렇게 키를 셋업하고 나면 이제 암호화와 복호화가 가능해진다. 평문을 M이라고 하면 을 n으로 나눈 나머지 C가 암호화된 결과이다. 또한 를 n으로 나눈 나머지 M을 구해서 평문 M으로 복호화할 수 있다. 여기서 를 n으로 나눈 나머지가 M이 되는 이유는 무엇일까?

 ed ≡ 1 (mod ø(n))에서 ed-1은 ø(n)의 배수, 즉 ø(n)×k라고 표현할 수 있으므로 이다. a와 n이 서로소라면 라는 오일러 정리에 의해  이다. 따라서 이므로 양변에 M을 곱하면 이 되는 것이다.
 
 

▲ RSA 암호화 알고리즘의 작동 원리. (사진 = javatpoint)
 
 

 이렇게 암호는 고대에 전쟁 및 첩보를 위해 처음 만들어지고, 근대에 두 차례 세계 대전을 거쳐서 현대에는 컴퓨터도 뚫을 수 없는 수준으로 발전했다. 하지만, 양자 컴퓨터가 발달한 2020년대에 들어서는 양자컴퓨팅 환경에서 기존 현대 암호기술의 효력이 약해지면서 새로운 암호기술들에 대한 연구가 활발히 진행되고 있다. 차세대에는 어떤 암호 기술들이 모습을 드러낼지 기대가 되는 바이다.
 
 

자연과학대학 홍보기자단 자:몽 허태원 기자 tedhur03@snu.ac.kr
카드뉴스는 자:몽 인스타그램 @grapefruit_snucns에서 확인할 수 있습니다.
 
 
 

참고문헌
1) https://seed.kisa.or.kr/kisa/intro/EgovHistory.do
2) https://www.javatpoint.com/rsa-encryption-algorithm
3) 노시춘, 송은지, 문송철, <수학원리와 특성 진단을 기반으로 한 공개키 RSA 알고리즘의 현장 적용 프로세스>,⟪서비스 연구⟫2, 서비스사이언스학회, 2015, 71-81면.
4) https://m.dongascience.com/news.php?idx=6081

관련 기사