[프롤로그]


예전부터 국내 기관에서 국산(?) 암호화 모듈의 보급에 노력을 많이 해 왔었습니다.


"국산 암호 경쟁력, 기술과 사람이 답이다"


SEED 아리아 등 국산 암호화 수준 향상 시급


예전에도 비슷한 언론 보도들이 있있죠. 역시나이지만, 제대로 잘 될 리가 없습니다. 이렇게 가다가는 또 공식적으로 "의무화"하라는 얘기가 나오는 건 아닌지 걱정이 됩니다. 국내 암호화 모듈의 보급이 제대로 되고 있지 못하는 그 근본적인 문제점에 대한 접근은 하지 못하고 변두리만 돌고 있는 것 같습니다. 개발자의 입장에서 왜 국내 암호화 모듈이 제대로 보급이 되고 있지 않은지 얘기해 보겠습니다.



[소스가 개판이다]


예전에 회사에서 일을 할 때 RC4 소스를 이용해야 할 경우가 있었습니다. 그 이전까지 RC4가 뭐인지 들어 보지도 못한 상태였죠. 작업을 시작하고 완료할 때까지, 아래 1~5번의 과정까지 불과 1시간도 걸리지 않았습니다.


1. RC4 암호화에 대한 대략적인 이해.

2. 구글링을 통해서 해당 모듈 다운로드.

3. 소스를 보며 사용 밥법 이해.

4. Test 모듈 돌리면서 작동 방식 확인.

5. RC4를 이용하는 모듈을 회사 제품에 탑재하여 작업 완료.


반면에 예전에 ARIA를 사용해 본 적이 있었는데요( http://www.gilgil.net/10306 ) 모듈을 이해하는 데에만 꼬박 하루 이상이 걸리더라구요. ARIA 모듈 뜯어 보면서 욕 엄청 했습니다. 무슨 소스가 이리 개판이냐구요.


1. 코드들 보면 Key 길이, Buffer 길이, Round횟수 들의 값이 상수로 define 되어 있지 않고 전부 숫자로 되어 있다. 이 숫자들이 무엇을 뜻하는지 알기가 어려우며, ARIA 암호화 설명 문서를 찬찬히 훑어 가며 이해를 하지 않으면 ARIA 모듈을 사용할 수 없을 지경이다.


2. Interface module(*.h), Implementation module(*.cpp), Test module이 분리되어 있지 않고 여기 저기에 더덕더덕 코드가 산재해 있다. 모듈 구성은 신입 개발자 초보가 작업한 것보다도 못하다. Refactoring까지는 바라지도 않는다.


3. Test 모듈도 개판. ARIA를 이용하고 나서 제대로 사용한 것인지 확인할 방법이 없다.



[소스를 다운 받기가 어렵다]


모듈 관리하는 곳이 여기 저기 떠돌아 다니다가, 이제는 KISA 에서 관리를 하는 듯 합니다. 


seed.kisa.or.kr.jpg


개발자가 하나의 제품을 만들기 위해서 처음부터 끝까지 모두 혼자 작업하는 것이 아닙니다. 당연히 외부 모듈을 가져다 쓰게 되죠. 그런데, 국내 암호화 모듈을 보면 답답하기만 합니다. 모듈을 다운받으려면 위와 같이 개인 정보를 입력해야만 하는군요. 모듈 받기가 꺼려 지게 되죠. 어느 누가 저러한 정보들까지 입력해 가며 SEED, ARIA 들을 사용하려 할까요? 정부가 정말로 국내 암호화 모듈 보급에 의향이 있는지가 의심스럽습니다.



[대체 모듈이 널려 있다]


Hash, Cipher Crypto, Stream Crypto 등등... 쓸만한 암호화 모듈들은 이미 많이 나와 있습니다. 굳이 SEED나 ARIA를 쓸 필요성이 없다는 얘기지요. 제 주위에서 SEED나 ARIA 모듈을 사용하는 업체의 대부분은 써 보고 나서 '음, 이거 쓰면 더 좋겠구나' 라는 판단을 가지고, 모듈을 탑재하는 경우는 단 한번도 보지 못했습니다. 전부 정부에서 하라고 하니까 울며 겨자 먹기식으로 하는 거죠. 검증도 제대로 되어 있지 않고, Referential도 별로 없고, ...



[H/W 가속화 모듈을 기대하기 어렵다]


SSL Traffic이 급증하면서, Major 업체들은 Traffic을 효율적으로 처리하기 위해 H/W 가속 Chip을 사용하게 됩니다. SW만으로 암호/복호를 처리하기에는 CPU load가 많이 걸리기 때문이죠. SSL 가속 칩은 이미 나와 있고, 실제적으로도 사용되어 지고 있습니다. 그런데 이러한 H/W Chip을 만드는 것은 쉬운게 아닙니다. VHDL로 구현을 해야 하고 ASIC기반으로 공장에서 Chip을 찍어 내는 데에는 많은 자본이 필요하죠. SSL 칩은 그나마 전 세계적으로 시장이 있기 때문에 이러한 시장 형성이 될 수 있습니다. 대표적인 예가 바로 구글 Gmail 서비스. Gmail 통신 과정에서 SSL 암호화/복호화를 SW만으로 처리를 한다면? 느려 터질 수 밖에 없겠고, 생각만 해도 끔찍하죠.


국내 전용 암호화는 절대로 H/W 시장이 형성될 수가 없습니다. 왜냐? 시장이 그만큼 좁기 때문이죠. 아무리 잘 만들어도 대한민국에만 팔 수 없다고 한다면, 어느 업체에서 H/W 가속 칩을 만들려고 할까요? SSL Chip도 수익타산이 그리 크지 않은 마당에 국내 암호화의 H/W 구현을 꿈도 꾸기 힘들겠죠. 국내 암호화가 보급이 되면 될 수록 점점 느려 터진 인터넷 환경을 접할 수 밖에 없다는 것이 암울한 현실.



[에필로그]


150% 원리라는 것이 있습니다. 게임은 하다가 싫증이 나면 다른 게임하면 되지만, OS나 DBMS, 오피스 프로그램 같은 것은 (개인이나 업체나 모두) 새로 나온 것이 아주 좋지 않는 이상은 웬만하면 바꾸지 않는다는 것입니다. 현실을 얘기하자면, 국내 암호화 모듈이 기존에 나와 있는 것들보다 이처럼 획기적으로 향상된 장점을 찾아 보기는 어렵습니다. 


결론적으로 예전도 그랬고 지금도 그러하고 앞으로 그러할 것이지만, IT 산업 시장에서 "국산" "토종"이라는 말은 가급적 사용하지 않았으면 좋겠습니다.