Home > 전체기사

[스토리텔링으로 이해하는 AI 보안-26] 인공지능 수학, 당신도 할 수 있다

  |  입력 : 2020-12-14 11:56
페이스북 보내기 트위터 보내기 네이버 밴드 보내기 카카오 스토리 보내기
인공지능 수학, 단순 반복을 얼마나 빠르고 효율적으로 하느냐가 성공의 지름길

[보안뉴스= 김주원 사이버보안 분야 칼럼리스트] 아들이 성적표를 가지고 왔다. 수학 성적이 엉망이다. 어찌하여 이런 성적이 나왔냐면서 혼을 냈다. 엄마가 수학 교수인데 아들이 수학을 못하다니! 필자 역시 다른 과목은 몰라도 수학만큼은 재미있어서 밤새 문제를 풀면서 희열을 느낀 적이 있었다. 이런 부모 앞에 아들은 풀이 죽었다. 필자가 직접 가르치기로 결심하고 수학 참고서를 가져오라고 했다. 그런데 왕년의 실력으로 가르칠 수준이 아니었다. 지금 아이들이 배우고 있는 수학은 단순히 공식을 암기하거나 방정식을 푸는 차원을 넘었다. 출제자의 의도를 정확하게 파악하고, 다양한 공식을 조합해야만 풀 수 있었다. 솔직히 잘 모르겠다. 결국 조용히 책을 덮어 돌려주면서 가서 숙제나 하라고 했다.

[이미지 = utoimage]


요즘 입시는 변별력을 높이기 위해서라는 명분을 내세우며 문제를 너무 어렵게 내는 것 같다. 그래서 아이들이 주눅이 들어 수학을 중도에 포기하거나 두려워하는 경우가 속출하고 있다. 그런 상황에서 ‘인공지능(AI) 수학’이라고 하면 뭔가 천재들이 다루는 학문으로 생각하고 있다. 사실 틀린 말은 아니지만, 인공지능 수학은 고등학교에서 배우는 방정식·부등식·함수의 기본적 개념, 순열·확률·통계에 더해서 대학교의 이공계 과정 1학년 때 배우는 선형대수학의 벡터·미분·적분 정도만 배우면 충분히 터득할 수 있다. 몇몇 인공지능 전문가들은 기계의 학습, 딥러닝(Deep Learning)을 위하여 선형회귀이론이나 비선형 함수와 같은 고차원의 수학 알고리즘을 연구한다. 하지만, 이는 당연히 이쪽 분야 전문가의 영역이다. 예를 들어, 암호학이 대수학이나 수치 해석을 전공한 분들의 몫이고, 그러니 위상학·해석학·기하학 하는 분들에게 암호 알고리즘에 대해 물으면 화낸다. 그래서 인공지능 수학도 필요한 부분만 알면 된다.

네팔 등지에 있는 라마불교의 사원에 가면 사원 주변을 둘러싸듯이 배치된 원통 모양의 ‘마니차(摩尼車)’를 볼 수 있다. 라마불교의 수행도구인 마니차의 원통형 본체 안쪽에는 경문이 새겨져 있고, 바깥쪽에는 만트라(Mantra, 진리의 말씀)가 새겨져 있다. 그런데 신도들 중 대부분이 문맹이라 만트라를 읽지 못한다. 하지만 걱정할 필요가 없다. 마니차를 돌리기만 하면 진리를 깨달을 수 있으니까 말이다. 만약 이런 식으로 곱셈 연산을 머릿속에서 구구단처럼 외지 않고 단순히 숫자의 자리만 바꾸는 식으로도 할 수 있다면 얼마나 좋을까? 그런데 이런 놀라운 일을 기계는 할 수 있다.

일단 인공지능이 더 빨리 더 효율적으로 계산할 수 있게 하려면 컴퓨터의 연산 특성을 알아야 한다. 도서관에서 책을 찾을 때를 떠올려보라. 먼저 어느 서가에 책이 있는지 확인한 뒤 해당 서가에 가서 책을 꺼낸다. 이때 시간이 걸리듯이, 컴퓨터도 연산자와 메모리 간에 서로 데이터를 주고받을 때마다 지연시간이 발생한다. 이러한 지연시간을 줄이려면? 책의 경우 가까운 곳에 자주 찾는 책들을 비치해 놓거나 들고 다니면 된다. 이것이 바로 컴퓨터 분야에서 말하는 캐시(cache)와 레지스터(Register)이다. 그런데 도서관에서 옆 사람이 보는 책이 마침 내가 원하는 책이라면? 서가에 가지 않아도 서로 바꾸어 보면 되지 않겠는가. 이처럼 컴퓨터도 연산자를 사용하지 않고도 레지스터 간에 비트 이동(Bit Shift)을 함으로써 더 빨리 계산할 수 있다. 이러한 특징을 이용해 인공지능 알고리즘을 개발하면 효율이 높아진다.

사실, 인공지능 알고리즘은 복잡하면 안 된다. 가급적 간단명료하게 만들어져야 한다. 왜냐하면 인공지능은 결국 컴퓨터이고 기계다. 기계에 학습을 시키려면 기계의 장점과 특성을 이용해야 한다. 예를 들어, 0과 1의 이진법을 사용하는 기계에 인간마냥 10진법으로 계산하도록 요구하면 안 된다. 물론 계산을 할 수 있겠지만 비효율적이고 속도도 느리다. 인간이 12진법을 어렵게 느끼는 것과 마찬가지다.

인간은 10진법에 익숙하다. ‘32+72=104’처럼 덧셈은 암산으로도 할 수 있다. 하지만 ‘32×72=2,304’와 같은 곱셈은 어려워한다. 그런데 컴퓨터는 이러한 계산을 쉽게 할 수 있다. 물론 모든 수에 대해서 가능한 것은 아니지만, 특정한 수의 패턴을 파악하면 고속으로 계산할 수 있다. 컴퓨터의 프로세서 내에 있는 자료 보관소인 레지스터를 이용하면 되기 때문이다. 즉, 레지스터 내에서 왼쪽이나 오른쪽으로 한 번 비트(bit) 이동(shift)시키는 것만으로도 곱셈 또는 나눗셈을 할 수 있다. 예를 들어, 32는 이진수로 100,000이고, 72는 1,001,000이다. 원칙적으로는 각각 32와 72를 메모리에서 레지스터로 가져오고, 연산기가 이를 곱해서 결과를 다시 메모리에 저장해야 한다. 하지만 32라는 숫자가 2를 5번 제곱한 숫자이므로, 72의 1,001,000 비트를 왼쪽으로 다섯 번 비트 이동시키면 된다. 그래서 결과는 100,100,000,000, 즉 2,304이다. 이러한 작업이 계속 반복해야 된다면 레지스터에 값을 입력하고 연속해서 왼쪽으로 다섯 번 비트 이동시키면 된다. 모듈러 계산을 하는 경우에도 동일하게 처리가 가능하다. 72 mod 32인 경우, 우리는 72-32=40–32=8으로 계산한다. 하지만 컴퓨터에는 오른쪽의 5개 비트만 취하면 된다. 그래서 결과는 01,000이다. 복잡하게 뺄셈 연산을 계속할 필요가 없다.

필자도 30여 년 전에 퍼지 논리(Fuzzy logic)와 인공신경망(Neural Network)에 관심을 가졌었다. 하지만 당시의 기술 수준으로는 병렬 처리를 구현하는 게 쉽지 않았다. 그런데 최근에는 컴퓨터 기술의 발전 덕분에 고속 병렬 처리가 가능한 GPU가 개발되면서 쉽게 처리할 수 있게 되었다. 더욱이 고속 처리가 가능해지고, 대용량 메모리가 지원되며, 네트워킹 속도도 빨라지면서 그래픽 같은 이미지 프로세싱을 할 때 자원 문제로 더 이상 고민하지 않아도 된다. 하지만 자원이 풍부해졌다고 해서 인공지능에게 복잡한 연산을 시키는 것은 좋은 것은 아니다. 과부하도 걸리고, 원하는 시간 내에 결과를 보여줄 수도 없기 때문이다. 미분방정식으로 최적화 알고리즘을 개발하던 과거의 방식보다 가용 자원을 가급적 최대한 활용해 빠르고 효율적으로 계산하는 방식을 취해야 한다. 예를 들어, 당신이 전원주택을 한 채 짓는다고 가정해보자. 과거에는 가급적 적은 돈을 들여 집을 짓기 원했지만, 지금은 비용을 떠나 멋지고 전망이 탁 트인 전원주택을 짓고 싶어 한다.

예전에는 재료비가 비싸고 인건비가 저렴하니 재료비를 먼저 계산했다. 벽돌이 평당 몇 장, 시멘트가 총 몇 포나 필요한지를 전문가의 자문까지 받아가며 계산했다. 지금은 이런 계산은 하지 않는다. 설계사무소에 가서 당신이 원하는 사항을 제시하면 캐드 도구로 최적의 전원주택을 설계해주면서 동시에 견적도 자동으로 뽑아준다. 그 견적서를 살펴보면 과거와 달리 많은 부분을 차지하는 게 인건비, 장비 임대료, 인테리어 비용이다. 벽돌이니 시멘트니 철근이 얼마니 하면서 원가를 따지지 않는다. 대신에 인건비가 비싸니 공장에서 생산하는 전원주택 건축용 모듈이나 나무블록을 조립하는 방식을 택한다. 물론 앞으로는 인터넷으로 주택을 주문하면 집 전체를 공장에서 만들어 배달해 줄 것이라고 한다. 비용을 줄이기보다 언제 입주할 수 있는지에 더 관심을 갖는다.

인공지능 알고리즘도 같은 길을 걸어왔다. 초기 인공지능 관련 학문은 퍼지, 전문가 시스템(Expert System), 인공신경망 등 여러 방식과 수학적 모델로 인공지능 시스템을 인간의 뇌와 비슷하게 구현하려고 많은 노력을 기울였다. 하지만 복잡하고 난해한 인간 뇌와 같이 복잡하게 구현하지 않아도 인공지능 시스템을 개발할 수 있게 되었다. 물론 기계 학습(Machine Learning)에 들어가는 딥러닝 알고리즘은 매우 복잡하다. 그러나 이를 응용하는 엔지니어는 이를 취한 결과만 가지고서 어떤 식으로 활용할 것인지만 고민하면, 인공지능 시스템을 근사하게 구축할 수 있다. 인공지능 알고리즘을 만드는 것과 인공지능 시스템을 만드는 것은 별개이다. 우리는 인공지능 시스템에 들어가는 수학적 지식만 있으면 된다. 우리가 석회석을 어디에서 생산해서 시멘트를 만드는지, 레미콘 반죽이 어떻게 이루어지는지를 몰라도 원하는 주택을 지을 수 있듯이 말이다.

기왕 인공지능 이야기 나온 김에 암호에 대해서도 언급하겠다. 과거에는 난수표나 회전자 방식의 기계장치로 전문을 암호화했다. 이를 위해서 암호를 보내는 사람과 받는 사람 모두가 동일한 대칭키의 값을 가지고 있어야 했다. 이후 PC가 보급되자 PC로 작업한 파일을 보호·전송할 때 사용할 암호 알고리즘이 요구되었는데, 통신용 암호 방식을 그대로 사용할 수는 없었다. 결국 암호 알고리즘과 암호 키는 PC 환경에 맞춰 계속 변화되었고, 지금은 빅데이터 처리를 위한 동형 암호(Homomorphic Encryption)와 블록체인에서 언급되는 해시 함수(Hash Fuction) 등이 인기가 높다.

또한, 암호에 대한 인식도 많이 바뀌었다. 과거에는 암호 알고리즘이 복잡하고 연산의 양이 많아도 안전성이 보장된다면 ‘원체 그러려니’ 하면서 사용했다. 하지만 이러한 알고리즘은 컴퓨터 연산 작업 시 많은 부하를 일으킨다. 이러한 부담은 결국 컴퓨터의 성능을 저하시키고, 결과에 대한 지연 현상도 일으킨다. 정보를 빨리 전송할 수 있는 스마트폰이 출시되더라도, 그 정보를 암호화하는 과정에서 지연 현상이 발생하면 답답해서 더 이상 사용하지 않을 것이다. 그러니 안전성을 보장하면서 빨리 암호화할 방법이 요구되었다. 더군다나 스마트폰과 같은 작은 기기에 사용한다면 자원(전력·메모리 등)에 대한 부담도 적어야 했다. 앞서 언급했듯이 컴퓨터에서 연산을 가장 빠르게 하는 명령은 CPU 내에 존재하는 레지스터 간의 덧셈이다. 그리고 비트 간의 이동 같은 연산을 주로 이용해 암호 알고리즘을 만들면 속도를 기존에 사용되던 치환·변환 위주의 테이블 방식 암호 알고리즘보다 획기적으로 줄일 수 있다.

이러한 기술을 사용하는 대표적인 예가 경량 암호 알고리즘이다. 과거에 미국 NIST가 개발했던 국제 표준 암호 알고리즘인 DES와 AES는 컴퓨터의 연산 능력을 고려하지 않은 설계 방식이었다. 이는 S-BOX라는 메모리에서 난수값을 가져와 치환․변환으로 암호화하는 방식이었다. 그러다 보니 복잡도는 높지만 연산량이 매우 많았다. 만약 오늘날에 이렇듯 무거운 알고리즘을 사용한다면, 고속 암호화가 필요한 응용 프로그램에서 원하는 결과를 보여줄 수 없다. 예를 들어, 100킬로미터 이상으로 달릴 수 있는 자율주행 자동차가 암호화 작업에 걸리는 시간 때문에 50킬로미터 이상의 속도를 낼 수 없다는 건 난센스이기 때문이다.

따라서 각국에서는 암호 알고리즘의 강도를 기존의 알고리즘과 비슷하게 하면서 코딩의 양을 줄이고, 고속으로 연산할 방법을 고민했다. 결국 기존의 S-BOX 대신에 비트 이동과 XOR(Exclusive-OR, 배타적 논리합)만으로 암호 알고리즘을 개발하려고 노력 중이다. XOR도 레지스터 간의 계산 방식으로 연산 효율이 높아진다. 이러한 연산 기법을 사용하면 코드의 양이 1킬로바이트 이내로 줄일 수 있기에 사물인터넷(IoT)이나 스마트폰 등에도 적용할 수 있게 되었다. 이렇게 개발된 대표적인 경량 암호 알고리즘으로는 미국에서 제안한 SIMON과 SPECK, 한국에서 제안하고 국제 표준으로 제정된 LEA가 있다.

다시 말하는데, 인공지능 수학은 간단하다. “기계가 어떻게 하면 빨리 계산할 수 있도록 하느냐?”에 달렸다. 즉, 컴퓨터의 구조를 잘 이해하고, 컴퓨터의 장점인 비트 이동과 XOR을 이용해 연산 효율을 높이면서 메모리에 저장된 데이터에서 얼마나 빨리 원하는 정보를 얻어올 수 있느냐가 인공지능 수학의 관건이다. 이를 기반으로 인공지능이 학습된 지식을 토대로 사용자가 원하는 결과를 제공해줄 수 있도록 하면 된다. 결국 계산의 양을 최소화하고, 알고리즘의 크기를 줄일수록 경쟁력이 높아진다.

위 이야기가 어렵게 보이겠지만, 사실 인공지능은 특별히 선택받은 자들만의 전유물이 아니다. 우리 주변의 사물․현상을 파악하고, 컴퓨터의 관점에서 생각하면 된다. 즉, 컴퓨터가 스트레스를 받지 않으면서 쉽게 연산할 수 있도록 만들어주면 인공지능도 우리와 친숙해질 것이다.

“야! 너도 할 수 있어!”라는 영어 광고 카피를 본 적이 있는가? 이 광고 카피는 영어가 어렵다는 편견을 깨고, 영어의 원리를 반복 학습하게 함으로써 “영어를 하고 싶다!”는 동기를 부여하고, 영어에 대한 흥미도 지속적으로 유발시킨단다. 인공지능도 이런 식으로 개발해야 한다. 인공지능 수학은 어렵지 않다. 컴퓨터의 입장에서 들여다보면서 단순 반복을 얼마나 빠르고 효율적으로 하느냐가 성공의 지름길이다. 인공지능에 첫발을 딛는 스타트업 창업자들이여, 할 수 있다는 자신감을 가지자! 인공지능 수학 역시 도전하면 정복 가능하다.
[글_ 김주원 사이버보안 분야 칼럼리스트]

<저작권자: 보안뉴스(www.boannews.com) 무단전재-재배포금지>

  •  
  • 1
  • 페이스북 보내기 트위터 보내기 네이버 밴드 보내기 카카오 스토리 보내기

  •  SNS에서도 보안뉴스를 받아보세요!! 
에스케어 파워비즈 배너 2022년 3월15일 시작~ 12개월 위즈디엔에스 2018 파워비즈배너 시작 11월6일 20181105-20200131
설문조사
올해 기업에서의 클라우드 도입이 본격 확산될 것으로 보이는 가운데 이에 따른 보안 이슈도 부각되고 있습니다. 클라우드 보안 강화를 위한 방안으로 가장 주목 받을 솔루션은 무엇이라고 보시나요?
CASB(Cloud Access Security Broker, 클라우드 접근 보안중개)
CSPM(Cloud Security Posture Management, 클라우드 보안 형상 관리)
CWPP(Cloud Workload Protection Platform, 클라우드 워크로드 보호 플랫폼)
기타(댓글로)