5G가 요구하는 "비고정값" 암호체계?

2019년 1월 23일 업데이트됨



YOONam Group 이사회 의장 윤태식

(국방사이버안보연구센터 기술위원)

(한국방위사업연구원 기술전문위원)



AM 07:00 아침에 눈을 떠서 스마트폰에 지문을 올려 잠금을 풀고 알람을 끈다.


AM 09:00 출근하여 PC의 암호를 입력하고 업무를 시작한다.


AM 11:00 인터넷으로 전자상거래를 하기 위해 공인인증서 비밀번호를 입력한다.


PM 13:00 ATM기에 카드를 넣고 비밀번호 네 자리를 입력하여 현금을 찾는다.


PM 15:00 이메일로 업무를 보기 위해 메일 계정 아이디와 비밀번호를 입력한다.


PM 18:00 퇴근하고 집에 들어가면서 현관문 비밀번호를 누른다.


평범한 직장인이 하루 동안 사용한 ’고정값‘ 암호(비밀번호)들이다. 단 하루라도 암호를 사용하지 않는 날이 있을까? 우리는 암호를 언제부터 사용했고, 5G 세상이 열리고 있는 지금 우리 인류에게 ’非고정값‘의 암호체계는 왜 중요할까?


로봇과 사물인터넷 등 다양한 디지털 기기와 공존하는 세상이므로 해킹과 도용될 수 없는 암호체계만이 인류의 생명과 재산을 지켜줄 수 있기 때문이다.



(1) 패턴 암호, 홍채인식 암호 등 다양한 방식 등장


가) 당신의 비밀번호는 안전한가?

뉴스에서 해킹에 따른 금융 피해, 개인정보 유출 사례에 관한 사건들이 비일비재하게 보도된다. 따라서 사람들은 비밀번호의 안전을 위해 많은 노력을 하고 있다. 이러한 현상에 따라 ‘패스워드 증후군’이라는 용어도 생겼다. 이는 현대인들이 인터넷과 스마트폰을 쓰면서 보안을 위해 비밀번호를 계속 변경하다가 비밀번호를 기억하지 못해 혼란에 빠지는 것을 말한다.


현대인들이 가장 많이 사용하는 암호는 아마도 스마트폰의 암호일 것이다. 스마트폰의 대표적인 암호 방식은 네 자리 숫자를 누르는 비밀번호 설정 방법과 점 9개의 일부를 연결하여 패턴을 그리는 패턴방호 방식이 있다.


네 자리의 비밀번호는 0000에서 9999까지의 숫자 중 하나를 설정하면 되므로 사용할 수 있는 비밀번호의 경우의 수는 1만 개가 있다. 그렇다면 패턴 암호를 설정할 수 있는 경우의 수는 몇 가지나 있을까? 패턴 암호의 9개의 점 중 4개 이상의 점을 연결하여 만들어야 한다는 조건이 있다. 현재 가능한 패턴 암호의 가짓수는 연구진마다 주장이 다르다. 하지만 우리는 적어도 0001과 1000의 암호가 다른 패턴으로 인식되는 것만으로도 숫자 비밀번호보다 패턴 암호가 더 안전하다는 것을 알 수 있다.


나) 생체인식 암호는 보안성보다 편리성?

스마트폰이 출시될 때마다 지문, 안면인식, 홍채인식 등의 잠금 방법이 큰 이슈가 되고 있다. 생체인식 암호 중 일찍부터 널리 사용됐던 것은 지문인식이다.

지문은 태아 3개월 때 만들어지고 그 모양이 평생 변하지 않는다. 사람마다 지문이 모두 다르므로 유일무이한 생체 암호로 사용되고 있다.<월간조선 2000년 5월호 인물탐구 참조. 세계 최초로 지문인식 스마트폰 개발에 성공한 윤태식 패스21 생체정보연구원장>


안면인식도 흔히 쓰이는데, 눈썹 간 거리, 얼굴 뼈의 돌출 정도와 같은 특징을 활용하여 인식한다. 또한, 얼굴 혈관에서 발생하는 열을 적외선 카메라로 촬영해 디지털정보로 변환하여 인식하기도 한다. 그러나 사람의 표정 변화에 따라 인식을 못 하는 예도 있고, 조명에도 민감해서 변장 및 노화에 따른 얼굴 인식에는 현재 취약한 상황이다.


얼마 전 출시된 스마트폰에는 최초로 홍채인식을 도입해 화제가 됐었다. 홍채인식은 인식기에 사람 눈을 맞추면 적외선 카메라가 사용자의 홍채를 이미지화 하는데, 이를 개인 고유의 홍채코드를 생성하여 등록한 후 비교하는 방식으로 이뤄진다. 쌍둥이는 물론 사람의 양쪽 눈 홍채가 다르므로 현존하는 생체인식 중 보안성이 가장 뛰어나지만 완벽하다고 말할 수는 없다. 비밀번호나 생체정보 암호도 결국 ‘고정값’의 난제를 극복하지 못했기 때문이다.


생체정보는 자신만 가진 유일한 고유정보다. 따라서 아주 강력한 암호가 될 수 있지만, ‘고정값’인 생체코드가 한번 유출되면 자신을 입증할 새로운 방법을 찾아야 하는 커다란 맹점이 있다. 그나마 비밀번호는 유출 즉시 변경⦁대처할 수 있지만, 생체정보는 변경할 수 없다.


4차산업혁명은 인공지능, 사물인터넷, 로봇기술 등의 융합으로 이뤄지는 차세대 기술 혁신 시대다. 이 거대한 패러다임 전환기에서 무엇보다 중요한 것이 개인정보 보안이다. <휴대폰 실시간 공유 보안 관리시스템> “윤의 법칙”과 “차세대 인증 시스템 TSID”는 ‘고정값’의 암호 한계를 뛰어넘어, ‘非고정값’으로 실시간 검증하는 완벽한 암호 융합의 결정체다. 이 기술은 150여 국가에 발명특허(PCT) 출원되었고, 2018년 12월 4일 PCT 국제조사기관 견해 의견에서 신규성과 진보성이 인정된다는 통보를 받고 특허등록을 준비하고 있다.


YOONam 연구팀은 기원전 450년경부터 시작된 암호역사에서 아날로그 방식에 머물던 ‘고정값’의 난제를 풀어냈다는 평가와 함께 디지털 방식 ‘非고정값’ 암호체계를 2500년 만에 최초로 완성했다. 4차산업혁명에서 가장 중요한 개인 정보 보안의 창조는 지구촌 인류문명에 크게 이바지하게 될 것이다.



(2) 최초의 암호문은 스파르타 시대의 스키테일(Scytale)암호


가) 비밀 메시지를 전달하기 위해

암호의 어원은 그리스어의 비밀이란 뜻을 가진 크립토스(Kryptos)로 알려져 있다. 사전적 정의는 통신문의 내용을 제3자가 판독할 수 없도록 글자, 숫자, 부호 등으로 변경시킨 것이다. 이렇게 암호는 중요한 정보를 다른 사람이 보지 못하게 하도록 상용하는 것이다. 그렇다면 비밀스럽게 정보를 전달해야 할 때는 언제일까? 또한, 비밀 메시지를 전달하는 방법은 어떻게 발전되어 왔을까?


아주 옛날에는 비밀을 유지하기 위해 기록을 하지 않고 직접 말로 전하는 방법을 사용했다. 또한, 사자와 같은 동물의 털을 깎아 메시지를 쓰고, 털을 길러 보내면 받는 사람이 털을 깎아 메시지를 확인하는 방법도 이용했다.


원시적인 방법을 벗어나 조금 더 과학적인 방법은 고대의 전쟁을 배경으로 한 영화에서 찾아볼 수 있다. 아군에게 작전을 전달할 때 빈 종이처럼 보이지만 암호를 받은 사람이 종이를 불빛에 가져다 대면 메시지가 나타나는 장면을 본 적이 있을 것이다. 이는 불빛에 반응하는 약품으로 메시지를 적어 불빛과 반응할 때만 메시지를 볼 수 있도록 한 것이다. 이러한 암호 전달 방법을 스테가노그래피(Steganography)라고 하는데 이 암호 방식을 알고 있는 사람들에겐 비밀을 유지하기 어렵다는 한계가 있다.


이런 방법들을 시작으로 가장 안전한 암호를 만들기 위한 노력은 오늘날까지 계속되어 오고 있다.


나) 본격적으로 시작된 암호화

최초의 암호문은 스파르타 시대의 스키테일(Scytale) 암호이다. 기원전 450년경 당시 그리스 도시국가에서 전쟁터에 나가 있는 군대에 메시지를 보낼 때 사용한 암호로, 아래와 같은 방법으로 암호화했다.


1. 암호를 공유하는 사람들끼리 같은 굵기의 원통형 막대를 가진다. 이 원통형 막대의 이름이 스키테일이다.


2. 암호를 보내는 사람은 스키테일에 일정한 굵기의 종이를 나선으로 말아 가로로 전달한 메시지를 쓴다.


3. 막대에 감았던 종이를 풀어 글자순서가 섞인 상태로 전달한다.


4. 암호를 받는 사람은 사전에 함께 나눠 가진 같은 굵기의 스키테일에 종이를 감아 원래 메시지가 무엇인지 확인한다.


그러나 스키테일 암호는 원통의 굵기를 아는 모든 사람이 해독할 수 있으므로

보안에는 취약했다.


다) 다른 문자로 치환하라 - (시저 암호)

로마의 황제였던 줄리어스 시저(Julius Caesar)는 암살당하기 전 가족들로부터 긴급 메시지를 받았다. 메시지에는 ‘EH NFDUHIXO IRU DVVDVVLQDWRU'라 쓰여 있었다. 이는 각 알파벳 순으로 세자씩 뒤로 물려 읽는 방법으로 암호를 만든 것으로 암호문을 해독할 때는 알파벳 순서에서 3문자씩 당겨서 읽으면 본래 메시지를 알 수 있었다.


시저가 받은 메시지를 3글자씩 당겨서 읽어 보면 뜻은 ‘BE CAREFUL FOR ASSASSINATOR -암살자를 주의하라’는 메시지였다. 이 시저 암호는 몇 문자씩 이동할지를 바꿔 가면서 사용할 수 있었기에 스키테일보다는 보안이 조금 더 강화되었지만, 이 또한 몇 번만 시도해 보면 금방 풀 수 있는 암호 방식이다.



(3) 요즘 주로 사용하는 RSA 알고리즘은 소인수분해 방식 활용


가) 암호는 어떤 구조로 만들어지는가 ― (암호 알고리즘)

현재 사용되고 있는 암호를 살펴보기 전에 암호의 기본적인 구조와 용어를 살펴본다.


예를 들어 A가 ‘오늘밤 12시에 만나’라는 메시지를 암호화하여 B에게 보냈다고 하자. B는 ‘ㅇㄴㅂ 12ㅅㅇ ㅁㄴ’라는 메시지를 받았다. A와 B는 미리 자음을 활용하여 암호문을 만들 것이라는 약속을 한 상태였고, B는 받은 메시지를 바로 해독해 냈다.

이때, 암호를 보낸 사람 A를 ‘송신자’라 한다. 송신자가 보낸 ‘오늘밤 12시에 만나’와 같은 문장은 ‘평문’이라 한다. 또한, 보안을 위해 다른 사람이 알아볼 수 없도록 가공하는 작업을 ‘암호화’라고 한다. 평문을 암호화하여 만든 문장 ‘ㅇㄴㅂ 12ㅅㅇ ㅁㄴ’은 ‘암호문이 된다. 이 암호문을 받은 B는 ’수신자‘이고, ’자음을 활용한다.는 약속은 ’키(KEY)‘가 된다. B가 암호화한 암호문을 키를 이용하여 평문을 알아내는 작업을 ’복호화‘라고 한다. 이때 암호화 키와 복호화 키가 같은 암호를 대칭형 암호라 하고, 암호화 키와 복호화 키가 다른 암호를 비대칭형 암호라고 한다.


앞서 살펴봤던 스키테일 암호와 시저 암호 모두 키가 동일한 대칭형 암호에 속한다. 대칭키 암호 방식에서는 암호화 키와 복호화 키가 동일한 비밀키를 사용하기 때문에 송신자와 수신자는 비밀 통신을 하기 전에 반드시 비밀키를 공유하고 있어야 한다. 반면 공개키 암호 방식에서는 하나의 쌍이 되는 공개키와 비밀키를 생성하여 암호화에 사용되는 공개키는 공개하고, 복호화에 사용되는 비밀키는 사용자가 안전하게 보관하도록 한다. 공개키 암호 방식에서는 송신자와 수신자가 사전에 키를 공유할 필요가 없으므로 불특정 다수 사용자 간에 사전 준비 없이도 암호 통신망을 구축하는 데 유용하게 사용할 수 있다.


나) 소인수 분해와 RSA 암호

오늘날 표준으로 사용되는 암호화 방법은 공개키 암호인 ‘RSA 알고리즘’이다. 이는 매사추세츠공대(MIT)의 로널드 리베스트(Ronal Rivest), 아디 샤미르(Adi Shamir), 레오나르도 애들먼(Leonard Adleman)이 고안해 낸 알고리즘으로, 그들 이름의 앞글자를 따서 RSA 알고리즘이라 했다. RSA 알고리즘의 가장 큰 특징은 공개키 암호라는 점이다. 이전의 암호 방식에서는 사용하는 키뿐만 아니라 암호 알고리즘도 비밀로 하여 암호문의 비밀을 지키려 했지만, 현대 암호에서는 암호 알고리즘을 공개하도록 하고 있다.


1883년 아우구스테 케르크호프(Auguste Kerckhoff)는 암호 시스템의 안정성에 대해 ‘키 이외에 암호 시스템의 모든 것이 공개되어도 안전해야 한다’고 했는데 이것을 ‘케르크호프의 법칙(Kerckhoff's Principle)이라고 한다. 이렇게 함으로써 암호 방식의 안전성을 공개적으로 검토하게 하여 안정성을 확인하는 것이다.


그럼 이제 RSA 알고리즘이 무엇인지 알아보자. RSA 알고리즘의 기본적인 개념은 소수를 이용하는 것이다. 소수는 1과 자기 자신만으로 나누어 떨어지는 1보다 큰 양의 정수를 말한다. 중학교 수학시간에 배웠던 소인수분해를 기억해보자. 자연수를 소수의 곱으로 나타내는 것을 말하는데, 두 소수의 곱으로 이루어진 수가 어떤 수로 이루어지는가를 찾아내는 과정에서 RSA 암호 만들기가 시작된다. 예를 들어 143은 소수 13과 소수 11의 곱이라는 것을 구하는 것이다. 그리고 그 소수를 바로 암호로 이용하는 것이 아니라 복잡한 암호화 과정을 거쳐 암호문으로 만들기 때문에 암호를 분석해 내는 것은 더 오랜 시간이 걸린다.


RSA 암호가 무엇인지 알아본 김에 RSA 알고리즘을 직접 만들어 보자. 다음은 암호학에서 소개하는 RSA 알고리즘의 간단한 방법이다. 본래 RSA 암호를 만들때는 최소 10자리가 넘는 두 개의 큰 소수를 사용하지만, 일반인들의 이해를 돕기 위해 가장 작은 소수인 2와 3을 이용하여 RSA의 암호화 작업을 하려고 한다. 이 과정을 이해했다면 현재 당신이 사용하고 있는 대부분의 암호 알고리즘을 이해한 것이다. 우리가 사용한 소수는 아주 작은 소수라 복호화하는 과정이 수월했지만, 수의 자릿수가 커질수록 어떤 소수의 곱인지 찾아내는 것은 매우 힘들어진다. RSA 암호체계의 안정성은 큰 숫자를 소인수분해하는 것이 어렵다는 것에 기반을 두고 있다.




RSA 알고리즘


1) A는 두 개의 소수를 골라 두수를 곱한 n=pq를 구한다.

두 소수 2와 3을 선택하여 두 수의 곱n=6을 구한다.


2) A는 gcd(e,(p-1)(q-1))=1인 e를 선택한다.

gcd는 ‘Greatest Common Divisor'의 약자로 최대공약수를 의미한다.

e는 암호화 지수 값이다. 따라서 e와 2=((2-1)(3-1))의 최대공약수가 1인 e값을 찾는다. e=3이 가능하다.


3) A는 de≡1(mod(p-1)(q-1))인 d를 계산한다.

수학기호 ‘≡’는 정수의 합동을 나타내는 기호로 a≡b(mod m)일 때 a를 m으로 나눈 나머지와 b를 m으로 나눈 나머지가 같다는 뜻이다.

따라서 d×3≡1(mod 2)인 d를 구하면 된다. 1을 2로 나누면 나머지가 1이므로 d가 3이면 d×3=3×3=9가 되고, 9를 2로 나눠도 나머지가 1이 되므로 d=3이 가능하다. 여기서 d는 복호화 지수를 의미한다.


4) A는 n과 e를 공개하고, p, q, d를 비밀로 한다.

n=6, e=3을 공개하면 B는 이를 암호화하는 데 사용하게 된다.

이것이 바로 ‘공개키’다.


5) B는 메시지 m을 c≡me(mod n)로 암호화 하여 A에게 보낸다.

B는 10이라는 메시지를 암호화하려고 한다. 10이 m값이 것이다.

따라서 c≡103(mod 6)이 되고, 1000은 6으로 나누면 나머지가 4가 된다.

따라서 c값으로 가능한 수는 16이 된다. B가 원래 전하려고 한 10은 암호화되어 16이 되었고 이 값을 A에게 보내게 된다.


6) A는 m≡cd(mod n)를 계산하여 복호화한다.

A는 m≡163(mod 6)을 계산하여 나머지가 4인 정수 중 하나가 원래 B가 보내려고 한 평문(10)임을 알아낼 수 있다.

조회 246회댓글 0개

최근 게시물

전체 보기

액티브엑스

대통령까지 나서서 없애라고 해도 할 수 없었던 일화의 ActiveX YOONam Group 이사회 의장 윤태식 (한국방위사업연구원 기술전문위원) (국방사이버안보연구센터 기술위원) ㈜윤엠 연구팀은 액티브엑스의 현실을 바로잡기 위한 혁명에 도전하여 마침내 세계 유일의 “양방향 비고정값 TSID 암호체계”를 완성함으로써 장애인과 노인 등 IT 소외계층들도 액티브