-
-
스토리로 이해하는 암호화 알고리즘
김수민 지음 / 로드북 / 2017년 4월
평점 :
알고리즘 책을
많이 봤지만 암호화 알고리즘 책은
이번에 처음 본 듯 하다.
항상 암호화 관련해서는 게임과 더불어 관심을 많이 가지는 부분이긴 하지만
관심만 가지는 부분이다. -_-;
책을 읽으면서
암호화 관련 해서 좀더 알 수 있어서 좋았던듯 하다.
개인적으로 프로젝트를 하면서
해시,공개,블럭 암호화 에 대해서 는 접해본적이 있는데
그 외에 암호화 에 대해서도 다루고 있어서 그러한 부분을 읽을 수 있어서
좋았다.
각 암호화에 대해서 해당 알고리즘을 만든 인물들과 그 이야기를 설명전에
다루고 있는데 알고리즘 뿐만 아니라 만든 인물에 대해서도 볼 수 있어
좋았던듯 하다.
수식은 아직도 적응이 되지 않는다. -_-;
책에서는 최대한 쉽게 다루고 있지만 그래도 어렵다.
책 초반에도 수식이 좀 나오는데
초반에는 암호화 알고리즘의 종류에 대해서 재미있는 삽화등으로 설명을 했다면 하는 아쉬움이 있다.
암호화에 대해서 설명만이 아닌 해당 암호화 알고리즘으로
어떻게 암호화가 되는지를 설명하고 있기에
수식이 어려워도 인내심을 가지고 본다면 얻는게 많을듯 하다.
NPKI 같이 우리가 일상에서 흔히 접하는 익숙한(?) 인증서에 대해서도 다루고 있는데
해당 부분에 대해서 좀더 알 수 있어서 좋았던듯 하다.
관련 인증서에 대한 종류가 그리 많은지는 몰랐다.
관련한 작업을 한 적이 있는데 왜그리 종류가 많나 하고 의구심만 가지고 있었는데
이번에 알게 되어 좋았던듯 하다.
랜섬웨어는 항상 먼나라 얘기처럼 들렸었는데 개인적으로 저번에 한번 당했을때 상당히
당황했던 기억이 난다.
사이트에서 아무거나 함부로 클릭을 하면 안된다. -_-
결국 해당 노트북을 다시 포맷을 했다.
기존에 작업했던 내용은 눈물을 머금고 다시 작업했던 기억이 난다.
개인적으로 암호화 관련과는 무관하지만
프로젝트를 하다보면 보안상 의 이유로 암호화를 접하는 경우가 좀 있다.
책에서도 얘기하는 BASE64 인코딩은 가장 빈번하게 접하는 넘이다.
예전 어떤 프로젝트에서는 아무리 인코딩을 변경해도 한글이 깨져서 BASE64 인코딩을
사용했던적도 있다.
요새는 보안에 상당히 민감하기에 다른 프로그램과 통신하는 경우에
통신 내용을 평문으로 보낼수 없어 암호화를 하는 경우가 많다.
나도 그러한 부분을 구현하다가 MD5 와 RAS, SEED 을 접해본적이 있다.
책에서도 언급하지만 여러 암호화 알고리즘을 조합하는 경우도 종종 있다.
예를 들어 SEED 암호화 키를 MD5 로 암호화한 해시값으로 사용하여 암호화 하는등
좀더 보안을 강화하려는 경우가 많다.
개인적으로 다른 프로그램과 통신하면서 어려웠던건
이미 구현되어 운영중인 프로그램이 C++ 이었는데 해당 프로그램에서는 SEED 암호화,복호화를 사용하고 있었다.
요건에 따라 자바로 해당 프로그램과 통신을 하게 되었는데 동일한 알고리즘을 자바로 구현하여 연결을 했는데
제대로 암,복호화가 안되었다.
암호화 알고리즘을 똑같이 구현했어도 프로그램언어에 따라 조금씩 틀린 부분이 있는듯 하다.
책에서 언급하는 패딩 처리 라든가 같은 부분에 따라서 미묘하게 틀린 부분이 있어 며칠동안 고생을 했던 기억이 난다.
책에서는 웹에서 fiddler 같은 패킷도구로 값을 수정해서 해킹하는 걸 보여주었는데
요새는 웹브라우저에서 개발자도구를 제공하기에 그러한 접근이 더욱 쉬워졌다고 볼 수 있다.
그래서 그러한 보안관련 코드를 작성해야 하기에 보안이 강화될수록 개발하기에 어려운 점도 있긴하다.
책에서 얘기하는 것처럼 컴퓨터의 성능이 좋아지면서 sha1 는 더이상 안전하지 않다 하여 sha2 로 권장을 하고 있다.
xp, 비스타의 경우는 sha2 스펙을 따르지 못하는 걸로 알고 있다.
그래서 어떤 프로젝트에서는 암호화 적용이 필요한 업무에서는 지원 os 을 제한하는 경우도 있다.
책을 읽으면서
많이 접해보진 않았지만 그래도 한번쯤 들어본 암호화 알고리즘이 나올때마다
예전 프로젝트 경험이 떠올라 좋았던듯 하다.
암호화 알고리즘에 관심이 있는 분들이 읽으면 좋을듯 하다.
암호화 특성상 책에 수식이 좀 나와 어려울 수 있지만
그래도 그만큼 얻는게 많을듯 하다.