d라이브러리









암호학 카드하나로 통하는 디지털 보안첨병

최근 인터넷과 네트워크를 통해 개인의 정보를 빈번하게 주고받으면서 정보 유출에 대한 걱정이 늘었다. 하지만 정보를 보호라는 든든한 첨병 암호가 있다. 첨단암호를 구현하는 첨단학문 세계로 가보자.


갑자기 1백만원이 급히 필요하다고 시골에 계신 아버지로부터 전화가 왔다. 사무실에서 야근하던 L씨는 고민스러웠다. 은행거래시간이 지나버렸기 때문에 내일이나 돼야 은행에 가서 돈을 부칠 수 있기 때문이다. 걱정 하다가얼마 전 인터넷 뱅킹을 신청했던 일을 기억하고 거래은행의 인터넷사이트에 접속했다.

인증서를 만들고 인터넷 뱅킹을 시도하자 인증서 암호를 묻는다. 암호를 넣자 L씨가 거래하는 계좌가 화면에 나타났다. 아버지의 계좌로 1백만원을 이체하기 위해 절차를 밟자 이체승인암호를 다시 묻는다. L씨는 암호를 두번씩 뱅킹이 정말로 안전한지 궁금해졌다. 즉 자신의 정보가 새나가지 않을지, 중간에 정보가 바뀌지 않을지, 돈을 자신이 보냈는지를 확인할 수 있는지(발신자를 인증할 수 있는지) 걱정이었다.
이런 걱정을 해결해주는 첨단학문이 바로 암호학이다.


발뺌 못하는 공개키 시스템

암호학(cryptograghy)은 그리스어 어원으로 보면 '감춰 쓴다'는 의미를 갖는다. 여기에는 누구나 알 수 있는 평문을 혀용된 사람 이외에는 알아볼 수 없는 암호문으로 바꾸는 암호화 과정, 그리고 허용된 사람이 암호문으로부터 평문을 이끌어내는 복호화 과정이 있다. 그런데 이런 암호시스템을 불법적으로 공격해 자신의 이익을 취하려는 행위를 암호해독법으로 한다. 흔히 암호해독이라 하면 이군이 적군의 비밀메시지를 알아내는 좋은 행위라고 알고 있지만 실제로는 암호시스템의 정식절차를 밟지 않은 불법 행위인 것이다.

보통 '암호' 하면 스타이들이나 사용하는 특수한 방법이라고 생각한다. 하지만 암호는 1976년 공개키 암호가 개발되면서 또다른 개념을 가졌다. 최근 컴퓨터의 인터넷과 네트워크가 보편화되면서 공개키 암호를 사용하는 일이 많아졌다.

고전적 암호의 경우 암호화에 사용되는 키와 복호화에 쓰이는 키가 같아서 키를 바밀리에 보관해야 한다. 이를 비밀키 암호라 한다.

비밀키 암호만을 사용해 위의 인터넷 뱅킹 시스템을 만들었다고 하자. 그러면 L씨와 은행만이 이 비밀키를 공유한다. 만일 L씨가 나쁜 마음을 먹고 자신이 돈을 부쳐 놓고도 그렇게 한 적이 없다고 주장한다면 어떻게 될까. 설사 은행이 법관에게 비밀키와 사용내역을 가져간다고 해도 그것이 L씨가 한 것인지, 은행에서 조작한 것인지를 알 수가 없다. 즉 부인방지(non-repudiation)를 보장할 수 없다.

사용자의 부인을 방지할 수 있는 암호시스템이 바로 공개키 암호다. 예를 들어 은행에서는 공개키 암호 알고 리듬에 근거해 사용자마다 두개의 키를 사용자에게 제공한다. 하나는 사용자만이 비밀리에 간직하는 키(비공개키)고, 다른 하나는 은행을 비롯한 모두에게 공개되는 키(공개키)다. 이때 은행에서 고객의 공개키로 암호문을 만들면 고객은 자신의 비공개키로 암호문을 풀기 때문에 다른 사람은 풀 수 없다. 또 고객의 인터넷 뱅킹 업무시 전송되는 모든 메시지가 고객의 비공개키로 서명되기 때문에 자신이 하지 않았다고 발뺌할 수 없다.

그렇다면 인터넷 뱅킹을 할 때 공개키와 비공개키가 어떻게 쓰이는지 알아보자. 앞에서 L씨가 정한 인증서 암호는 인증서 관리프로그램이 현재 사용자가 인증서의 주인인지를 확인하기 위한 것이다. 인증 작업이 성공적으로 끝나면 인증서에 들어가는 개인 정보, 즉 L씨의 주민등록번호, 계좌 비밀번호, 이체한도금액, 계좌이체암호, 공개키, 현재 거래 내용 들을 은행의 공개키로 암호화한다. 더불어 PC에 암호화돼 있던 고객의 비공개키로 복호해 거래 배용을 본 후, 고객의 공개키로 서명을 확인해 고래 고객을 확인한다.

공개키 암호시스템의 경우 하나의 키를 공개하고서도 비공개키를 알 수 업서게 하기 위해서는 비밀키 암호시스템보다 암호화와 복호화에 약 1천배의 시간이 걸리는 단점이 있다. 따라서 짧은 시간에 만하은 양의 정보를 암호화할 때에는 비밀키 암호시스템을, 키 관리나 서명에는 공개키 암호시스템을 사용하는 것이 일반적인 추세다.
 

(그림1) 전자 서명의 개념도^인터넷 뱅킹시 고객은 자신의 비공개키로 거래 내용을 서명해 은행에 전송한다. 그러면 은행에서는 고객의 공개키로 서명을 확인해 거래 고객을 확인한다.



소수인수분해 vs 타원곡선

공개키 암호시스템의 암호 알고리듬은 어려운 수학을 배경으로 한다. 대표적인 예가 '소인수분해 암호' 라고도 하는 RSA 암호다. 1977년 리베스트(Rivest), 샤미르(Shamir), 그리고 아들레만(Adleman)이 발표한 RSA 암호 알고리듬은 큰 수의 소인수분해가 아주 어렵다는 문제에 기반을 둔다. 예를 들어 29083은 어떤 두 소수의 곱일까. 127과 229라는 소수의 곱이라는 사실을 알아내는데 1시간도 부족할지 모른다. 물론 실제 암호에는 훨씬 큰 수가 사용된다.

최근 각광받는 타우너곡선 암호인 ECC(Elliptic Curve Cryptosystem)는 1976년 디피와 헬만이 제안한 알고리듬을 응용한 것이다. 디피-헬만 알고리듬은 이 산대수문제가 어렵다는 수학적 문제에 근거한다. 먼저 모뮬러라는 나머지 연산(mod)을 생각해보자. 예를 들어 7로 나눈 나머지 중 0을 제외한 집합은 { 1, 2, 3, 4, 5, 6, }이다. 이를 다시 모뮬러 연산(mod)을 적용하면 { ${3}^{0}$, ${3}^{1}$, ${3}^{2}$, ${3}^{3}$, ${3}^{4}$, ${3}^{5}$ }으로 변한다. 왜냐하면 ${3}^{0}$=1(mod7), ${3}^{1}$=3(mod7), ${3}^{2}$=2(mod7), ${3}^{3}$=6 (mod7), ${3}^{4}$=4 (mod7), ${3}^{5}$=5 (mod7)이기 때문이다. 여기서 ${3}^{2}$=2(mod7)는 ${3}^{2}$를 7로 나눈 나머지가 2란 뜻이다. 이때 ${3}^{n}$=6(mod7)에서 n을 직접 찾기란 쉽지 않고 앞의 식을 봐야 한다. 이 어려운 문제를 이산대수문제라고 하는 이유는 n이 불연속적인 값이고, n이 아주 큰 값(1천24비트 이상)이 사용되기 때문이다.

1985년 코블리츠와 밀러가 제안한 타원곡선 암호는 타원곡선 위의 점에서 이산대수문제를 푸는 알고리듬을 사용한다. 즉 원래 메시지를 타원곡선 위에서 암호 위치로 이동시키는 것이다. 타원곡선은 기하학적으로 매우 복잡해 암호 위치를 안다고 해도 원래 점을 추적하기가 힘들다. 또 RSA나 원래의 디피-헬만 방식보다 암호 키의 크기를 줄일 수 있는 장점이 있다. 때문에 휴대폰, 스마트카드와 같은 제한적인 하드웨어를 갖는 기기에서도 실시간으로 계산이 가능한 암호시스템을 구현할 수 있다. 그래서 최근에는 타원곡선 암호를 이용해 모바일 인터넷 뱅킹 개발이 한창이며 곧 상품이 출시될 예정이다.


(그림2) 타원곡선 암호 알고리듬
 

타원곡선 ${y}^{2}$=${x}^{3}$-5x+4의 한점 P에서 몇번 연산해야 Q가 되는지를 예시 문제로 풀어보자. 먼저 P+P=2P는 P에서 접선을 긋고 x축 대칭한 점이다. P+2P=3P는 P에서 2P로 직선을 긋고 타원곡선과 만나는 점을 x축 대칭한 점이다. 이런 식으로 하다보면 Q=7P라는 결과가 나온다. 하지만 타원곡선의 두점 P와 Q에 대해서 Q=nP를 주고 n을 구하라는 이산대수문제는 쉽지 않은 문제다. 이런 원리를 이용한 것이 타원곡선 암호다.
 


법학과 경영학 마인드도 필요

암호 알고리듬과 함께 암호해독법 역시 굉장한 속도로 발달해 왔다. 예를 들어 모듈러 연산에 기반한 암호의 경우 계속 공격을 받으면서 최근에는 암호 길이가 1천2백비트는 돼야 안전성을 보장받게 됐다. 그래서 현재는 이보다 더 복잡한 타원곡선 암호가 각광을 받고 있다.타원곡선 암호는 길이가 1백60비트만 돼도 안전해 스마트카드를 구현하기에 적당하다. 하지만 타원곡선 암호도 여러가지 취약성들이 발표되고 있어 새로운 암호체계가 필요하게 됐다.

최근에는 타원곡선 암호보다 더 복잡한 초타원곡선 암호 알고리듬이 연구되고 있다. 국내에서는 포항공대 수학과의 최영주 교수팀이 연구중에 있다. 초타원곡선은 길이가 64비트 정도에도 안전하다. 물론 실용화하는데는 시간이 걸릴 전망이다.

한편에서는 매듭이론을 바탕으로 하는 암호 알고리듬이 연구되고 있다. 국내에서는 KAIST 수학과의 고기형 교수팀이 매듭이론을 바탕으로 공개키 암호시스템을 시험적으로 개발하기도 했다. 매듭이론의 개념은 정보를 복잡한 매듭으로 묶어 전달하면, 이 매듭을 풀 수 있는 사람만 정보를 볼 수 있다는 것이다. 또 암호학에 양자이론을 도입해 양자암호를 만들려는 시도도 있다. 물론 양자암호를 만드는데도 수학적 배경이 필수적이다.

이렇듯 암호 알고리듬을 새로 창조하는데는 수학적 비중이 제일 크다. 포항공대 수학과의 최영주 교수는“안전하고도 경제적이며 실용적인 암호 알고리듬을 개발하려면 고도의 수학적 사고가 필요하다”고 말한다.

아울러 “암호 알고리듬을 컴퓨터 프로그램에서 암호학적 프로토콜로 만들기 위해서는 전산학의 역할이 중요하다”고 포항공대 전자전기공학과의 이필중 교수는 강조한다. 또 스마트카드와 같이 암호학을 실제 구현하는 기기를 만들기 위해서는 전자공학, 암호키 관리와 같은 일에는 경영학, 그리고 암호와 관련된 법적 분쟁을 다루는 일에는 법학이 필요하다.


인터넷 뱅킹에서 전자상거래까지

실생활 속에서 암호학을 만날 수 있는 현장은 어디일까. 인터넷 뱅킹은 암호학이 실생활에 파고든 대표적인 예다. 특히 인터넷 뱅킹에서 쓰이는 인증서를 보면 서명 알고리듬과 메시지 암호 알고리듬에 RSA 암호가 사용된다. 사용자 인증서란 고객이 본인임을 확인하기 위해 온라인 서비스 제공자가 은행에서 발급하는 것으로 안전한 인터넷 뱅킹을 위해 꼭 필요한 것이다.

현재는 PC를 통한 인터넷 뱅킹이 주를 이룬다. 하지만 앞으로는 언제 어디서나 휴대폰으로 인터넷에 접속해 각종 금융거래 서비스를 제공하는 모바일 뱅킹도 등장할 전망이다. 모바일 뱅킹에서 1천24비트나 2천48비트의 큰수를 저장·전달하고 연산하기에는 휴대폰의 메모리 용량이 부족하다. 때문에 비트 수가 작은 타원곡선 암호시스템을 사용한다. RSA에서 1천24비트(10진법으로 1백55자리 이상)를 썼을 때 얻을 수 있는 안정성을 타원곡선 암호에서는 단지 1백60비트(10진법으로 50자리 이하)정도로 구현할 수 있다. 따라서 타원곡선 암호가 매우 효율적이라고 할 수 있다.

인터넷에서 이뤄지는 전자상거래에서도 역시 암호학은 중요하게 사용된다. 전자상거래 소프트웨어에서는 고객이 신용카드번호를 입력하면 이 번호가 자동으로 암호화된 문장으로 바뀌어 전송돼야 한다. 자신의 신용카드 번호가 누구나 볼 수 있는 형태로 전송된다면 생각만 해도 끔직한 일이 벌어질 것이다. 또 최근 버스나 지하철에서 사용되는 교통카드를 읽는 카드리더 기기에도 암호화 기술이 숨어있다.


수학에만 몰두하면 안돼

암호학과 직접 관련되지는 않지만 사용자의 신원을 파악하기(사용자를 인증하기) 위한 방법으로 생체인식기술이 동원된다. 많은 패스워드나 비밀번호를 기억할 필요 없고, 각종 증명서나, 열쇠, 신분증을 갖고 다니지 않아도 되기 때문이다. 생체인식기술은 지문, 홍채, 목소리, DNA등 사람마다 고유한 신체적 특징을 사용한다. 물론 생체인식기술은 사용자 인증이나 출입 확인에만 쓰이지 않는다. 도장이나 서명을 대신해 지문인식을 통해 예금을 인출하거나 홍채인식을 통해 카드를 결제할 수 있다.

현재는 교통카드도 스마트카드라고 하지만 미래에 암호학의 결정판이라고 할 수 있는 진짜 스마트카드가 나올 전망이다. 진짜 스마트카드가 실생활에 등장하면 어떻게 될까. 교통카드나 신용카드로 사용할 수 있는 것은 기본이고, 카드 하나로 모바일 뱅킹을 한다거나 원격으로 인감증명서를 발부받을 수 있으며, 스마트카드에 자신의 진료기록이 계속 저장되기 때문에 포항에서 진료받다가 서울에 가서 다시 진료받을 수도 있다. 스마트카드에 개인의 모든 정보가 암호화돼 들어있는 것이다. 만일 카드를 잃어버린다고 해도 염려없다. 생체인식기술을 통해 카드의 주인만 사용할 수 있기 때문이다.

스마트카드를 구현하는데 필수적인 암호학을 제대로 공부하려면 어떻게 해야 할까. 물론 암호 알고리듬과 관련된 수학이나 전산학은 기본이다. 그런데 이 질문에 포항공대 수학과의 최영주 교수는“수학에만 몰두하면 안된다”고 대답한다. 답변이 약간 의외라는 생각이 들었지만 최교수가 하고 싶은 말이 계속 이어진다.“ 암호학과 같은 학문에는 창의적인 사고가 필요하다”면서“이를 위해서는 다방면의 책을 읽고 생각하는 시간을 갖는 것이 중요하다”고 설명한다. 또 가끔씩 미래에 대한 모습을 공상하는 일도 도움이 될 것이라고 강조한다.


인터넷 뱅킹의 인증서에 사용된 암호
 

인터넷 뱅킹의 인증서에 사용된 암호


인증서가 설치된 후에 작업표시줄의 오른쪽을 보면 열쇠고리 같은 아이콘이 생긴다.이 아이콘에서 마우스의 오른쪽 버튼을 누르고 인증서 관리자를 선택하면 인증서관리프로그램이 뜬다.

한 예로 K은행의 인증서를 보자. 여기에는 서명 알고리듬에‘md5WithRSAEncryption’이란 문구가, 메시지 암호 알고리듬에‘rsaEncriyption’이란 문구가 있다. 두 알고리듬에 동일하게 RSA 암호를 사용한다. 그런데 서명 알고리듬에 나타나는 md5가 덧붙어 있다. 이는 md5라는‘해쉬 알고리듬’이 RSA 암호와 함께 사용됐다는 말이다. 해쉬 알고리듬은 RSA 암호와 함께 사용될 때 아주 긴 데이터를 비교적 짧은 일정한 길이의 데이터로 변환해 RSA 알고리듬 계산을 효과적이게 만들며, 데이터의 변조 여부를 판단할 수 있기 때문에 인터넷 인증과정에서 꼭 필요한 기술이다.

또 인증서의 공개키 필드를 보면 공개키에 1천24비트나 되는 수를 사용한다는 사실을 알 수있다. 당연히 인증서에는 비공개키가 나타나지 않고, 고객의 PC에 암호화된 형태로 저장돼 있다.

2002년 01월 과학동아 정보

  • 박상진 교수

🎓️ 진로 추천

  • 컴퓨터공학
  • 수학
  • 전자공학
이 기사를 읽은 분이 본
다른 인기기사는?