d라이브러리









암호를 부탁해

사이버세계의 '주민등록증'


값이 큰 숫자의 소인수분해가 어렵다는 사실을 이용해 공개키 암호시스템이 탄생했다.


“패스워드를 입력하세요.” “띠띠띠띠~” “잘못 눌렀습니다. 다시 눌러 주세요.”
늘 사용하던 신용카드인데도 가끔은 비밀번호 네 자리가 떠오르지 않아 애를 먹는다. 그 순간 주인을 몰라보는 신용카드가 야속하기만 하다. 그러나 신용카드의 입장에서는 주인의 촉감을 기억하는 센서가 부착돼 있지 않는 한 정확한 비밀번호를 누르는 이에게 복종할 수밖에 없다.

마찬가지로 인증된 출입증이 있어야 문이 열리고, 비밀번호를 눌러야 컴퓨터를 부팅할 수 있다. 바야흐로 21세기는 암호의 시대. 암호는 오가는 정보의 내용을 안전하게 보관하고 그 정보가 원본 그대로이며 조작되지 않았음을 증명한다. 또 사이버공간에서 신분을 확인하는 ‘주민등록증’ 역할도 한다. 우리가 흔히 사용하는 공인인증서를 생각하면 된다.

1978년 미국 MIT의 수학자들은 ‘RSA’라는 공개키 암호시스템을 만들었다. 원리는 수학적으로 간단하다. y=f(x)라는 함수에서 x를 알면 y도 쉽게 구할 수 있지만 거꾸로 y만으로 x를 구하기는 어렵다.

[예를 들어 소수의 곱은 금방 계산할 수 있지만 200자리가 넘어가는 숫자를 소인수분해하는 일은 거의 불가능하다. 마치 그림을 잘게 조각내기는 쉽지만 각각의 조각을 원래의 그림으로 맞추기는 어려운 것과 비슷하다.

‘탈출하라’라는 문장을 숫자로 표현했을 때 210이라고 하자. 210이라는 메시지는 정해진 규칙을 거쳐 암호로 바뀌고 이 암호를 받은 사람은 암호 해독 열쇠를 이용해 원래의 메시지를 파악한다.


지문이나 홍채, 목소리 같은 생체정보가 암호로 사용되기도 한다.


공인인증서의 암호를 이루는 RSA시스템은 바로 이렇게 만들어졌다. 메시지 m을 암호 c로 만드는 과정은 f(m)=c이고, 암호 c를 푸는 과정은 역함수인 f-1(c)=m인 셈이다.

그런데 RSA시스템에서는 210이라는 숫자를 공개하는데, 이를 공개키라고 한다. f의 역함수를 푸는 것이 현실적으로 불가능하기 때문에 가능한 일이다.


지난해 말 국내 공인인증서 사용자가 1500만명을 넘어섰다. 이제 공인인증서는 사이버공간의 필수품으로 자리잡았다.


만약 암호를 도청하려고 한다면 210의 소인수인 2, 3, 5, 7을 알아야 하지만 숫자의 크기가 커질수록 소인수분해는 어려워진다. 1초에 100만번을 계산할 수 있는 컴퓨터라도 100자리 수를 소인수분해하는데는 100년 정도의 긴 시간이 걸린다.

공개키 암호시스템은 신용카드 번호나 개인 식별번호처럼 비교적 길이가 짧은 자료를 암호로 만드는데 적당하다.

최근 암호의 개인키를 자신의 메일서버나 하드디스크에 저장해두고 사용하다가 해킹을 당한 사건이 일어나기도 했다. 보통 개인키는 컴퓨터나 usb메모리스틱에 패스워드로 암호화해 저장한다. 그러나 전자 서명 과정에서 패스워드가 노출될 수도 있다.

암호를 두고 펼치는 두뇌게임에서 수학은 필수다. 수학자들이 지적 호기심에 끌려 연구한 타원곡선은 이제 더 복잡한 암호를 만드는데 사용된다. 그러나 강한 방패를 뚫기 위한 창도 속속 개발되고 있는데, 아무리 큰 수라도 소인수분해를 척척 해내는 양자컴퓨터가 2020년경이면 등장할 전망이다. 한가지 확실한 점은 새로운 암호를 만들고 푸는 과정에서 인류의 과학기술이 한걸음씩 진보한다는 사실이다.



▼관련기사를 계속 보시려면?

2007 대한민국 수학 부활 프로젝트
PART1 당신의 '수학 혈액형'
PART2 세상을 디자인하는 논리의 힘
암호를 부탁해
통계로 2008년 대선 잡는다
수학의 날개를 단 '김연아'
PART3 수학의 봄날 올까?

이 기사의 내용이 궁금하신가요?

기사 전문을 보시려면500(500원)이 필요합니다.

2007년 04월 과학동아 정보

  • 임종인 원장

🎓️ 진로 추천

  • 수학
  • 컴퓨터공학
  • 정보·통신공학
이 기사를 읽은 분이 본
다른 인기기사는?