메뉴 바로가기 검색 및 카테고리 바로가기 본문 바로가기

한빛출판네트워크

처음 배우는 암호화

기초 수학부터 양자 컴퓨터 이후까지, 암호학의 현재와 미래

한빛미디어

번역서

절판

  • 저자 : 장필리프 오마송
  • 번역 : 류광
  • 출간 : 2018-07-20
  • 페이지 : 404 쪽
  • ISBN : 9791162240977
  • 물류코드 :10097
  • 초급 초중급 중급 중고급 고급
4점 (5명)
좋아요 : 7

흥미진진한 모던 암호학 실용 가이드 

 

이 책은 딱딱하게만 느껴지는 암호학의 근본 개념과 최신 논의를 흥미롭고 체계적으로 알려준다. 크게는 기초 수학부터 양자 컴퓨팅 이후의 암호학까지 폭넓은 주제를 다루며, 각 장은 실제 사례를 기초로 한 일반적인 구현 실수와 이러한 함정을 피하는 방법까지 자세히 설명한다. 이제 막 현장에 뛰어든 초심자에게는 친절한 가이드가, 숙련된 종사자에게는 최신 암호화와 그 응용에 대한 풍부한 정보를 제공하는 필독서가 되어줄 것이다.

장필리프 오마송 저자

장필리프 오마송

스위스 기반 다국적 컴퓨터 보안 회사인 Kudelski Security의 수석연구원이다. 암호학과 암호해독 분야에서 40편 이상의 연구 논문을 저술했으며, 널리 쓰이는 해시 함수 BLAKE2와 SipHash를 설계했다. 정보 보안 콘퍼런스들에서 정기적으로 강연하며, Black Hat과 DEF CON, Troopers, Infiltrate에도 참여했다.

류광 역자

류광

25년 이상의 번역 경력을 가진 전문 번역가로, 『컴퓨터 프로그래밍의 예술』(The Art of Computer Programming) 시리즈와 『UNIX 고급 프로그래밍』(Advanced Programming in UNIX Environment ) 제2판 및 제3판, 『인공지능: 현대적 접근방식』(Artificial Intelligence: A Modern Approach) 제3판 및 제4판, 『Game Programming Gems』 시리즈를 비롯해 80권 이상의 다양한 IT 전문서를 번역했다. 본서와 관련이 깊은 번역서로는 『유연한 소프트웨어를 만드는 설계 원칙』(한빛미디어, 2020)이 있다.

 

개인 웹사이트 류광의 번역 이야기(https://occamsrazr.net)와 게임 개발 웹사이트 Gpg Study(https://gpgstudy.com)를 운영한다. 

 

 

1장. 암호화

1.1 기초 

1.2 고전암호 

__1.2.1 시저 암호 

__1.2.2 비즈네르 암호 

1.3 암호의 작동 방식 

__1.3.1 치환 

__1.3.2 운영 모드 

__1.3.3 고전암호가 안전하지 않은 이유 

1.4 완벽한 암호화: 일회용 패드(OTP) 

__1.4.1 일회용 패드를 이용한 암호화 

__1.4.2 일회용 패드가 안전한 이유 

1.5 암호의 보안성 

__1.5.1 공격 모형 

__1.5.2 보안 목표 

__1.5.3 보안 개념들 

1.6 비대칭 암호화 

1.7 암·복호화 이외의 암호의 용도 

__1.7.1 인증 암호화 

__1.7.2 형태 보존 암호화 

__1.7.3 완전 준동형 암호화 

__1.7.4 검색 가능 암호화 

__1.7.5 조율 가능 암호화 

1.8 문제 발생 요인들 

__1.8.1 약한 암호 

__1.8.2 잘못된 모형 

1.9 더 읽을거리 

 

2장. 무작위성

2.1 무작위 대 비무작위 

2.2 확률분포로서의 무작위성 

2.3 엔트로피: 불확실성의 측도 

2.4 난수 발생기(RNG)와 의사난수 발생기(PRNG) 

__2.4.1 PRNG의 작동 방식 

__2.4.2 보안 관련 문제 

__2.4.3 포르투나: Microsoft의 PRNG 

__2.4.4 암호학적 PRNG와 비암호학적 PRNG 

__2.4.5 통계적 검정의 쓸모 없음 

2.5 실제로 쓰이는 PRNG들 

__2.5.1 Unix 기반 시스템에서 무작위 비트 생성 

__2.5.2 Windows의 CryptGenRandom() 함수 

__2.5.3 하드웨어 기반 PRNG: 인텔 마이크로프로세서의 RDRAND 명령 

2.6 문제 발생 요인들 

__2.6.1 불충분한 엔트로피원 

__2.6.2 시동 시점의 엔트로피 부족 

__2.6.3 비암호 PRNG 

__2.6.4 무작위성은 강하지만 표본 추출에 문제가 있는 사례 

2.7 더 읽을거리 

 

3장. 암호학적 보안

3.1 불가능의 정의 

__3.1.1 이론적인 보안성: 정보 보안성 

__3.1.2 실용적인 보안성: 계산 보안성 

3.2 보안성의 정량화 

__3.2.1 비트수를 척도로 한 보안성의 측정 

__3.2.2 전방위 공격 비용 

__3.2.3 보안 수준의 선택과 평가 

3.3 보안의 달성 

__3.3.1 증명 가능 보안성 

__3.3.2 발견법적 보안성 

3.4 키 생성 

__3.4.1 대칭 키 생성 

__3.4.2 비대칭 키 생성 

__3.4.3 키의 보호 

3.5 문제 발생 요인들 

__3.5.1 부정확한 보안성 증명 

__3.5.2 하위 호환성을 위한 짧은 키 

3.6 더 읽을거리 

 

4장. 블록 암호

4.1 블록 암호란 무엇인가? 

__4.1.1 보안 목표 

__4.1.2 블록 크기 

__4.1.3 코드북 공격 

4.2 블록 암호 구성 

__4.2.1 블록 암호의 라운드 

__4.2.2 슬라이드 공격과 라운드 키 

__4.2.3 대입-치환 네트워크 

__4.2.4 파이스텔 방안 

4.3 AES(고급 암호화 표준) 

__4.3.1 AES의 내부 

__4.3.2 AES의 사용 예 

4.4 AES의 구현 

__4.4.1 테이블 기반 구현 

__4.4.2 전용 기계어 명령 

__4.4.3 AES는 안전한가? 

4.5 운영 모드 

__4.5.1 전자 코드북(ECB) 모드 

__4.5.2 암호 블록 연쇄(CBC) 모드 

__4.5.3 CBC 모드에서 임의의 길이의 메시지를 암호화하는 방법 

__4.5.4 카운터(CTR) 모드 

4.6 문제 발생 요인들 

__4.6.1 중간값 일치 공격 

__4.6.2 채움 오라클 공격 

4.7 더 읽을거리 

 

5장. 스트림 암호

5.1 스트림 암호의 작동 방식 

__5.1.1 상태 있는 스트림 암호와 카운터 기반 스트림 암호 

5.2 하드웨어 지향적 스트림 암호 

__5.2.1 FSR(되먹임 자리이동 레지스터) 

__5.2.2 Grain-128a 

__5.2.3 A5/1 

5.3 소프트웨어 지향적 스트림 암호 

__5.3.1 RC4 

__5.3.2 Salsa20 

5.4 문제 발생 요인들 

__5.4.1 논스 재사용 

__5.4.2 잘못된 RC4 구현 

__5.4.3 하드웨어로 구현된 약한 암호 

5.5 더 읽을거리 

 

6장. 해시 함수

6.1 보안 해시 함수 

__6.1.1 다시 등장한 비예측성 

__6.1.2 역상 저항성 

__6.1.3 충돌 저항성 

__6.1.4 충돌 찾기 

6.2 해시 함수의 구축 

__6.2.1 압축 기반 해시 함수: 머클-담고르 구성 

__6.2.2 치환 기반 해시 함수: 스펀지 함수 

6.3 SHA족 해시 함수 

__6.3.1 SHA-1 

__6.3.2 SHA-2 

__6.3.3 SHA-3 공모전 

__6.3.4 Keccak (SHA-3) 

6.4 BLAKE2 해시 함수 

6.5 문제 발생 요인들 

__6.5.1 길이 연장 공격 

__6.5.2 저장증명 프로토콜 속이기 

6.6 더 읽을거리 

 

7장. 키 있는 해싱

7.1 메시지 인증 코드(MAC) 

__7.1.1 보안 통신에 쓰이는 MAC 

__7.1.2 위조 공격과 선택된 메시지 공격 

__7.1.3 재전송 공격 

7.2 의사난수 함수(PRF) 

__7.2.1 PRF의 보안성 

__7.2.2 PRF가 MAC보다 강한 이유 

7.3 키 없는 해시로 키 있는 해시 구축 

__7.3.1 비밀 값 전위 구성 

__7.3.2 비밀 값 후위 구성 

__7.3.3 HMAC 구성 

__7.3.4 해시 기반 MAC에 대한 일반적 공격 방법 하나 

7.4 블록 암호로 키 있는 해시 구축: CMAC 

__7.4.1 CBC-MAC에 대한 공격 

__7.4.2 CBC-MAC 고치기 

7.5 전용 MAC 설계 

__7.5.1 Poly1305 

__7.5.2 SipHash 

7.6 문제 발생 요인들 

__7.6.1 MAC 검증에 대한 타이밍 공격 

__7.6.2 물 새는 스펀지 

7.7 더 읽을거리 

 

8장. 인증 암호화

8.1 MAC을 이용한 인증 암호화 

__8.1.1 암호화 및 MAC 

__8.1.2 MAC 후 암호화 

__8.1.3 암호화 후 MAC 

8.2 인증 암호 

__8.2.1 AEAD(연관 자료가 있는 인증 암호화) 

__8.2.2 논스 관련 예측 가능성 방지 

__8.2.3 좋은 인증 암호의 요건 

8.3 AES-GCM: 인증 암호의 표준 

__8.3.1 GCM의 내부: CTR과 GHASH 

__8.3.2 GCM의 보안성 

__8.3.3 GCM의 효율성 

8.4 OCB: GCM보다 빠른 인증 암호 

__8.4.1 OCB의 내부 

__8.4.2 OCB의 보안성 

__8.4.3 OCB의 효율성 

8.5 SIV: 가장 안전한 인증 암호? 

8.6 치환 기반 AEAD 

8.7 문제 발생 요인들 

__8.7.1 AES-GCM과 약한 해시 키 

__8.7.2 AES-GCM과 짧은 인증값 

8.8 더 읽을거리 

 

9장. 난해한 문제들

9.1 계산 난해성 

__9.1.1 실행 시간 측정 

__9.1.2 다항 시간 대 초다항 시간 

9.2 복잡도 부류 

__9.2.1 비결정론적 다항 시간 

__9.2.2 NP-완전 문제 

__9.2.3 P 대 NP 문제 

9.3 인수분해 문제 

__9.3.1 큰 수의 인수분해의 실제 

__9.3.2 인수분해는 NP-완전 문제인가? 

9.4 이산 로그 문제 

__9.4.1 군이란 무엇인가 

__9.4.2 난해성의 근원 

9.5 문제 발생 요인들 

__9.5.1 인수분해가 생각보다 쉬운 경우 

__9.5.2 난해한 문제라도 규모가 작으면 풀기 어렵지 않다 

9.6 더 읽을거리 

 

10장. RSA

10.1 RSA에 깔린 수학 

10.2 RSA 트랩도어 치환 

10.3 RSA 키 생성과 보안성 

10.4 RSA를 이용한 암호화 

__10.4.1 교과서 RSA 암호화의 가소성 악용 

__10.4.2 강한 RSA 암호화: OAEP 

10.5 RSA를 이용한 서명 

__10.5.1 교과서 RSA 서명의 취약점 

__10.5.2 PSS 서명 표준 

__10.5.3 FDH 서명 

10.6 RSA 구현 

__10.6.1 빠른 거듭제곱 알고리즘: 제곱 후 곱하기 

__10.6.2 작은 지수를 이용한 공개 키 연산 속도 높이기 

__10.6.3 중국인의 나머지 정리 

10.7 문제 발생 요인들 

__10.7.1 RSA-CRT에 대한 벨코어 공격 

__10.7.2 개인 지수나 법의 공유 

10.8 더 읽을거리 

 

11장. 디피-헬먼

11.1 디피-헬먼 함수 

11.2 디피-헬먼 문제 

__11.2.1 디피-헬먼 계산 문제 

__11.2.2 디피-헬먼 결정 문제 

__11.2.3 그 밖의 디피-헬먼 문제들 

11.3 키 합의 프로토콜 

__11.3.1 비 DH 키 합의 프로토콜의 예 

__11.3.2 키 합의 프로토콜에 대한 공격 모형들 

__11.3.3 성능 

11.4 디피-헬먼 프로토콜 

__11.4.1 익명 디피-헬먼 

__11.4.2 인증 디피-헬먼 

__11.4.3 메네즈스-취-밴스톤(MQV) 

11.5 문제 발생 요인들 

__11.5.1 공유 비밀에 해싱을 적용하지 않는 경우 

__11.5.2 TLS의 구식 디피-헬먼 

__11.5.3 안전하지 않은 군 매개변수 

11.6 더 읽을거리 

 

12장. 타원곡선

12.1 타원곡선이란? 

__12.1.1 정수에 관한 타원곡선 

__12.1.2 점의 덧셈과 곱셈 

__12.1.3 타원곡선 군 

12.2 ECDLP 문제 

12.3 타원곡선에 관한 디피-헬먼 키 합의 

__12.3.1 타원곡선을 이용한 디지털 서명 

__12.3.2 타원곡선을 이용한 암호화 

12.4 곡선의 선택 

__12.4.1 NIST 곡선 

__12.4.2 Curve25519 

__12.4.3 그 밖의 곡선들 

12.5 문제 발생 요인들 

__12.5.1 ECDSA와 무작위성의 결여 

__12.5.2 다른 곡선으로 ECDH 깨기 

12.6 더 읽을거리 

 

13장. TLS

13.1 응용 대상과 요구조건 

13.2 TLS 프로토콜 모음 

__13.2.1 TLS와 SSL 프로토콜들의 간략한 역사 

__13.2.2 TLS의 개요 

__13.2.3 인증서와 인증기관 

__13.2.4 레코드 프로토콜 

__13.2.5 TLS 핸드셰이크 프로토콜 

__13.2.6 TLS 1.3의 암복호화 알고리즘들 

13.3 TLS 1.2에 비한 TLS 1.3의 개선점 

__13.3.1 다운그레이드 보호 

__13.3.2 단일 왕복 악수 과정 

__13.3.3 세션 재개 

13.4 TLS 보안의 강도 

__13.4.1 인증 

__13.4.2 순방향 비밀성 

13.5 문제 발생 요인들 

__13.5.1 침해된 인증기관 

__13.5.2 침해된 서버 

__13.5.3 침해된 클라이언트 

__13.5.4 구현의 버그 

13.6 더 읽을거리 

 

14장. 양자 컴퓨터와 양자 후 암호

14.1 양자 컴퓨터의 작동 방식 

__14.1.1 양자 비트 

__14.1.2 양자 게이트 

14.2 양자 속도 향상 

__14.2.1 지수 속도 향상과 사이먼의 문제 

__14.2.2 쇼어 알고리즘의 위협 

__14.2.3 쇼어 알고리즘으로 인수분해 문제 풀기 

__14.2.4 쇼어 알고리즘으로 이산 로그 문제 풀기 

__14.2.5 그로버 알고리즘 

14.3 양자 컴퓨터를 만드는 것이 어려운 이유 

14.4 양자 후 암복호화 알고리즘 

__14.4.1 부호 기반 암호학 

__14.4.2 격자 기반 암호학 

__14.4.3 다변량 암호학 

__14.4.4 해시 기반 암호학 

14.5 문제 발생 요인들 

__14.5.1 불확실한 보안 수준 

__14.5.2 미래 상상: 만일 우리의 대응이 너무 늦다면? 

__14.5.3 구현 문제 

14.6 더 읽을거리 

제대로 시작하는 현대 암호학 

 

이 책은 현대적인 암호학에 관한 실용적인 입문서다. 암호학의 핵심을 이루는 수학 개념들을 너무 단순화하지 않고 적절한 수준에서 풀어서 설명하고, 그에 기초해서 인증 암호, 안전한 무작위성, 해시 함수, 블록 암호, 공개 키 암호(RSA와 타원곡선 암호 등)의 작동 방식을 설명한다. 각 장 끝에는 실제 응용 사례들에서 발견된 흔한 구현 실수들과 그런 결함이 미치는 영향 및 해결책에 관한 논의도 곁들였다.

 

이 책은 경험 있는 실무자와 이 분야에 진입하길 꿈꾸는 초보자 모두에게 현대 암호학과 그 응용에 관한 완벽한 개괄서가 될 것이다.

 

그 밖의 주제들

  • 보안의 수량화, 공격 모형, 순방향 비밀성 같은 암호학의 핵심 개념
  • HTTPS 보안 웹사이트의 바탕인 TLS 프로토콜의 강점과 한계
  • 양자 컴퓨터와 양자 후 암호학
  • 실제 응용 프로그램에서 발견된 다양한 보안 취약점과 활용 사례
  • 최고의 알고리즘이나 프로토콜을 선택하는 방법
  • 보안 제품/서비스 공급업체에 제대로 질문하는 방법

추천사

암복호화 라이브러리들은 대체로 사용하기 어렵고, 문서화가 부족하고, 주로 다른 전문가들을 위해 설계된다. 예나 지금이나, 암복호화 알고리즘을 알고 이해하는 사람들과 그저 사용하기만 하는(또는 보안상의 위험을 무릅쓰고 암복호화를 무시하는) 사람들 사이에는 커다란 틈이 존재한다. 보안에 관한 책 중 그런 틈을 메울 만한 책은 많지 않으며, 실무자에게 유용한 도구를 제공하는 책은 더욱 적다.

 

그 결과는 그리 아름답지 않다. “CVE”와 “Severity: High”(심각도 높음) 같은 이름표가 달린 침해 사례들을 들어 보았을 것이고, 기업의 “일급비밀”로 분류되는 정보를 탈취한 해커들의 이야기도 들어 보았을 것이다. 보안 문제에 별 관심이 없던 독자라도 자신이 사용하는 시스템에 영향을 미친 몇몇 유명한 사례는 들어보았을 것이다. 이런 문제 중에는 암호학이 정교하고 수학적으로 우아하기 때문에 그리고 암호학 전문가들이 자신의 지식을 실제로 소프트웨어를 개발하는 기술자들과 제대로 공유하지 못했기 때문에 생긴 것들이 많다.

 

다행히도 얼마 전부터 상황이 개선되기 시작했으며 이 책은 그러한 변화의 한 산물이라 할 수 있다.

이 책 『처음 배우는 암호화 』의 저자는 응용 암호학의 일류 전문가이지만, 이 책을 다른 암호학 전문가들을 대상으로 쓰지는 않았다. 그렇다고 이 분야를 그냥 수박 겉핥기식으로 개괄하기만 하는 것도 아니다. 오히려 이 책은 암호학의 기초와 최신 내용을 상세히 논의하며, 이 분야에서 일하려는 실무자들의 실력 향상을 돕도록 기획되었다. 이 책을 통해 여러분은 암복호화 알고리즘의 작동 방식은 물론이고 그것들을 실제 시스템에서 사용하는 방법도 배우게 될 것이다.

 

이 책은 암호학의 여러 핵심 요소를 소개하는 것으로 시작한다. 이를테면 블록 암호를 비롯한 기본 알고리즘들과 공개 키 암호화 방안, 해시 함수, 난수 발생기를 설명한다. 각 장은 알고리즘의 작동 방식을 보여주는 실제 예제를 제공하며, 해야 할 일과 하지 말아야 할 일도 알려준다. 책의 후반부에서는 TLS 같은 고급 주제를 설명하고, 마지막 장에서는 미래에 양자 컴퓨터가 상용화되면 암호학에 어떤 문제가 생기고 그것을 어떻게 극복할 수 있을지 논의한다.

 

한 권의 책으로 암호학의 모든 문제를 해결할 수는 없겠지만, 약간의 지식이라도 훗날 큰 도움이 될 수 있다. 그런데 이 책에는 많은 지식이 담겨 있다. 어쩌면 많은 사람의 높은 기대를 충족할 정도의 암호체계를 실제로 만들고 운영하는 데 충분할 정도의 지식일 수도 있겠다.

 

즐겁게 읽으시길!

 

_메슈 D. 그린, 존스 홉킨스 대학교 정보보안연구소 교수

웹 개발자로서, 암호화에 대해 많은 생각을 할 시간은 없지만 최소한의 지식이 필요함은 항상 느끼고 있었다.

특히 TLS라는 녀석은 아는 거라곤 버전이 있다는 점.

개발을 할 때, TLS버전을 숙지하고 보내야 한다는 점 정도밖에 몰랐다.

 

이 책은 암호학 고수로 만들어 주진 못하지만 

서냥개 3년이면 풍월읊는 정도는 되게 해준다. 완벽한 이해는 할 수 없어도 이게 뭔지 그게 뭔지 감을 느끼게 해준다.

 

웹 개발자로서 암호에 대해 깊게 생각할 일이 아마 남은 시간 동안 없을 지도 모른다.

아마 쓸모 없는 지식일지도 모른다.

 

하지만 책은 결과뿐만 아니라 과정 안에도 즐거움이 있으니, 이 책을 읽는 동안 꽤 즐거웠다.

가끔 이 책을 읽으면서 수학공식 같은 것들이 나온다.

무시해도 될 정도... 라고 생각한다. 모르면 그냥 넘어가도 된다고 생각한다.

 

얇고 간결한 책이며, 암호학에 대해 진지하게 공부하는 분들보단 처음 시작하는 분들 또는 암호학에 대해 어느정도 귀동냥을 하고 싶은 분들에게 추천한다.

정보보안 관련 분야에 종사하게 되면 암호학적 지식은 정말이지 필수이다. 그러나 이름에서 느껴지듯이 상당히 부담스럽지 않을 수 없다. 암호학은 기본적으로 수학적 배경지식을 요구하기 때문에 입문자가 처음 접하기에는 결코 쉽지 않다.
 
그동안 내가 정보보안기사 등의 수험공부를 하면서 참고했던 암호학 서적은 아래와 같다.
 
  • 인크립션 - 실용주의 암호화 : 이 책은 일단 얇고 가볍고 짧다. 펜타시큐리티의 CEO와 CTO이신 분들이 저술하신 책으로, 일반인이 읽기에도 대략적으로 암호화가 뭔지 이해할 수 있도록 문턱을 낮춘것이 큰 장점이다. 하지만 한편으론 더욱 깊은 지식을 필요로 하는 전공자들에게는 다소 설명이 아쉬울 수 있다.
  • 알기 쉬운 정보보호개론 - 흥미로운 암호 기술의 세계(3판): 이 책은 일본의 작가이자 프로그래머인 '히로시 유키'가 작성한 책이다. 정보보안기사 시험준비 수준의 공부가 필요하다면 이 책을 추천한다. 현재 개정3판까지 출시되었다.
  • Everyday Cryptography: Fundamental Principles and Applications : 이 책은 University of London의  Keith Martin 교수가 집필한 책이다. 대학원생 수준의 암호학 이해가 필요한 경우 이 책이 좋다. 그만큼 두껍고 자세하지만 꽤나 어렵다.

이렇게 3가지 책을 그동안 주변에 추천하곤했는데, 내심 마음에 걸렸던 부분은 2와 3사이의 간극이었다. 히로시 유키의 책은 상세하고 이해하기 쉽지만 구체적인 구현원리에 대한 내용이 빠져 아쉬운 느낌이 있고, Everyday Cryptography의 경우 너무나도 중압감이 느껴지는 비주얼에 시작하기가 어렵다는 점이다. 

그러던 중 반가운 소식이 들려왔다. Jean-Philippe Aumasson 이 저서 Serious Cryptography: A Practical Introduction to Modern Encryption 가 한글판으로 번역되어 한빛출판 역간으로 나온다는 소식이었다. 한글판의 제목은 Serious가 아닌 '처음 배우는' 암호화로 의역?되었다.ㅋㅋ

 

부리나케 이 책을 입수하여 탐독에 들어갔다. 

undefined

 

Dmxu_xQUcAAKSOP.jpg

 

일단 이 책을 믿고 추천할 수 있는 첫번째 이유는 역자분이 바로 '류광'... 이분으로 말씀드릴 것 같으면 30년 이상의 번역 경력을 가진 전문 번역가로, 커누스 교수의 『컴퓨터 프로그래밍의 예술』(The Art of Computer Programming) 시리즈와 스튜어트 러셀의 『인공지능 현대적 접근방식』(Artificial Intelligence: A Modern Approach)을 번역하신 분이다. 이분은 번역시에 어색한 직역을 사용하시는 것이 아니라 본인께서 직접 이해하신 내용을 바탕으로 문장을 재구성하여 한국인이 보기에 자연스러운 문체로 재탄생시키시는 아주 탁월한 분이시다. 이번 암호학책에서도 다양한 수학적 용어 및 전산학 키워드가 등장하는데, 업계 표준문서에서 널리 통용되는 국문으로 번역하신 것 같다. 그리고 내용이 애매한 경우 영어 원어를 병행 표기하여 이해를 도와주셨다.

 

개인적으로 이 책에서 얻은 가장 큰 성과는 12장의 타원곡선 암호화 부분과 마지막 장인 Quantum and Post-Quantum 암호이다. 타원 곡선 암호의 경우 워낙 개념 자체가 어렵다보니 구현도 어렵고, 그래서 다른 책에서도 대략 "수학적으로 어려운 함수를 써서.. "라는 설명으로 퉁치고 있는데, 그나마 이 책이 NIST 표준 등을 함께 언급하며 잘 설명하고 있다.

 

양자기반 암호 같은 경우 아직까지 꿈의 기술로만 알려져 있는데, 국내에서는 서울대와 카이스트, UNIST 등을 제외하고는 연구가 아직 미미한 상황인 것 같다. 다소 아쉬운 점은 아직 양자 암호쪽은 한국어 번역 용어가 마땅치 않은데, 이를 전부 바꾸다보니 다소 생소한 느낌이 있었다. 

 

책의 마지막 결론 부분에서 저자는 이렇게 말한다. 

 

2048년 4월 2일, CNN 뉴스 헤드라인을 상상해보십시오. break-crypto as a service 플랫폼이 출시되었다는 소식을 말입니다!

언젠가 양자 암호 공격이 실현될 날이 오겠지만, 그대신 양자 암호화가 대세가 되는 때도 오지않을까? 물론 그에 따른 구현 관련 이슈가 아직 가야할 길이 멀긴하지만 말이다.

 

IT 전문 출판사에서 출간된 암호학 책이다. 이 책을 처음 읽겠다고 했을 때, 주변에서는 '이거 수학 잘해야 되지 않냐?' 여부를 많이들 물어보았다. 심지어 책 설명이 "암호화"가 아니고 "암호학"이라 더 무서워보인다더라. 아직 완독은 못했기에 결론을 말하기는 조금 섣부르지만, 확실히 이 책은 수학적 사고가 꽤 요구된다. 저자가 수학 기호나 공식의 사용은 많이 절제하였다. 그래도 컴퓨터 과학의 기초와 대학 수준의 수학 실력은 필요하다. 오히려 프로그래밍은 잘 못해도 큰 지장이 없다. 소스코드가 조금 나오기는 하지만 적당히 넘어가도 된다.

 

두 번째로 많은 질문을 받았던 부분은 번역의 퀄리티이다. IT분야에서 첫 손에 꼽히는 전문 번역가인 류광님의 번역은 이번에도 훌륭하다. 원문의 뜻과 뉘앙스에 충실하다. <옮긴이의 말>을 참고해보면, 이번에는 한국정보통신기술협회의 정보통신용어사전, 대한수학회의 수학용어집을 기반으로 위키백과를 일부 접목해서 번역하셨다고 한다. 그래서 한글 용어 선정이나 한글 문장의 기본 퀄리티는 매우 좋다. 서술이 좀 딱딱하게 느껴지는 부분이 간혹 있지만, 적어도 번역이 의심되어 원문을 대조하며 분노할 일은 거의 없을 것이다. 

 

이 책을 미리 접한 어떤 분의 말처럼, <처음 배우는 암호화>는 그야말로 진지한 암호학 책이다. 이 책은 딱딱하게만 느껴지는 암호학의 근본 개념과 최신 논의를 체계적으로 알려준다. 블록 암호, 기본 알고리즘, 공개 키 암호화 방안, 해시 함수, 난수 발생기 등 다루는 주제는 다양하다. 책 후반부에서는 미래에 양자 컴퓨터가 상용화되면 암호학에 어떤 문제가 있으며 어떻게 극복할 지도 알려준다. 그만큼 내용 하나하나가 쉽지는 않다. 개인적으로는 수학/통계학적 배경이 약한 편이라 참고도서로 <스토리로 이해하는 암호화 알고리즘>을 같이 읽었다. 후자는 개발자가 저술한 책이라 암호화 알고리즘의 쉬운 풀이와 구현에 집중했기에, 꽤 괜찮은 상호 보완이 되었다. 

 

 

 

 

 

요즘은 정말 개인 정보 유출에 대한 사건, 사고들이 많이 발생한다. 하루가 멀다하고 어느 사이트에서 수십, 수백만 건의 사용자 정보가 유출 되었다는 기사를 자주 듣게 된다. 그만큼 개인 정보를 탈취해서 악용 하려는 사람들이 많아지고 있다. 그래서 요즘은 개인 정보를 DB에 저장할 때에는 무조건 암호화를 해야 한다. 권장이 아니라 필수이다. 

 

 

이 책에서는 각종 암호화에 대한 이론들에 대해서 설명을 해준다. 어떻게 만들어 졌으며 어떻게 만들어야 하는지에 대해서 자세히 설명해주고 있다. 그리고 암호화 기법에 대한 장,단점과 사용 사례들도 말해준다. 암호화 기법을 설명하면서 암호화 기법이 갖고 있는 장점, 그리고 어떤 부분이 취약한지, 그 취약한 부분에 의해서 어떠한 일들이 발생할 수 있는지 자세히 설명해준다. 그리고 그 부분을 극복 하려면 어떻게 해야 하는지도 설명해준다. 

 

 

내가 이렇게 RSA관련 부분을 일부 캡쳐를 한것은 업무 할 때에 가장 많이 사용하고 친숙해서 이부분을 먼저 읽었다. 그냥 툴에서 지원해주는 것만 쓸줄 알았지 이게 어떻게 구현되어있는지 생각해본적은 없었는데 이렇게 자세히 설명을 해준다. 

 

 

그리고 구현 방법도 알려준다. 그런데 위에 저자도 말했듯이 그런 일은 없길 바래야 할것 같다. 구현을 해봐야겠다는 생각도 안해봤지만 일단 복잡하다. 저자가 충분히 알아듣게 설명을 해주고 있는데도 이해하는데 상당히 어렵다. 

 

그래서 내가 읽으면서 생각해본 이책에 대한 장,단점은 이렇다.

 

장점

- 암호화에 대한 내용을 기초부터 심화까지 자세히 알수 있다. 대학교에서 전공 서적으로 사용해도 될것 같다.

 

단점

- 내용이 어렵다. 암호화라는 것 자체가 쉬운 내용이 아니기 때문에 당연한거다. 그래서 이 책을 읽기 위해서는 수학적 지식도 많이 필요하다. 그렇지 않으면 이해하기가 쉽지 않다. 

 

그래서 결론적으로 어느정도 암호화에 대해서 알고 있는 사람이 심화로 공부하기에 좋은 책이라는 생각이 들었다. 

 

http://blusky10.tistory.com/357

처음 배우는 암호화

 Game programming gems으로 유명하신 류광님께서 옮기신 처음배우는 암호화책. 저자분의 성함부터 특색이 있어 여훈이 오래갔던 책이 바로 이번에 리뷰하게된 처음 배우는 암호화 책이다. 책의 구성은 기본적인 암호화 방법부터 심화된 암호화 방법에 이르기까지 상당히 초보자? 분들이 한번쯤 읽어보면 좋을 내용들로 구성되어있다. 물론 수리적 기반이 잘 갖춰진 분이 읽는다면 훨씬 이해가 빠르겠지만 그렇다고 수리적 기반이 없는 분이 읽어서 전혀 모를 그럴 내용들이 아니다.(솔직히 암호화 책이라 공식으로 도배되어 있을 것 같았는데.. 전혀 그렇지 않다.)

  

책에 관한 본격적인 리뷰에 임하기에 앞서 어떤 사람들에게 본 서를 권하는지 적어보도록 하겠다.

 

【어떤 독자를 위한 책인가】

 이 책은 정말 친절한 책이다. 각각의 단락의 주제에 알맞은 내용들이 매우 자세히 설명되어 있고, 필요 없는 그림들이 실려있지 않기 때문에 여느 다른 책들처럼 그림 공부만 하다 끝나는? 그런 구성이 아니다. (물론 글이 많은 책을 싫어하시는 분이라면 이 책을 읽는데 약간 고될 수 있다.) 따라서 암호와 관련된 이론적인/약간의 실무적인(이 부분은 지극히 블로거의 개인적 생각) 내용을 가벼우면서도 상세히, 무겁지 않으면서도 무게감이 있는 느낌으로 공부할 수 있을 것이라 기대한다.


【책의 구성】 '처음 배우는 암호화책의 구성은 어떠한가.

망치 이 책은 목차에 언급한 것처럼 고전적 접근 방법부터 현대 양자 컴퓨터와 관련된 내용까지 전산학의 암호화를 전 세대에 걸쳐 정리하고 있다. 또한 특정 주제를 던져주고 해당 내용을 자세히 정리/설명하는 방식을 택하고 있기 때문에 독자가 궁금해할 내용들을 바로바로 시원하게 해결해주는 구조로 되어있다. 
 

【처음 배우는 암호화를 읽으며…….】

   블로거가 어렸을 적엔, 암호화한다고 대충 몇가지 키 값을 선정하여 xor 연산을 반복수행해서 값을 암호화하는 것이 유행이였다. 하지만 요즘 시대에 저런식으로 암호화 하는 사람이 몇명이 있을지 모르겠고 무엇보다 시대가 좋아져서 수많은 암호화 모듈들이 오픈 소스로 인터넷에 제공되고 있다. 하지만 여기서 명심할 점은 이미 있는 것을 이용하는 것도 좋지만, 한번쯤 해당 모듈들을 직접 만들어 보며 이론과 역사적 배경이 어떻게 되는지 반드시 공부해야된다는 점이다. 

 

 

######  감사합니다  ###### 

결제하기
• 문화비 소득공제 가능
• 배송료 : 2,000원배송료란?

배송료 안내

  • 20,000원 이상 구매시 도서 배송 무료
  • 브론즈, 실버, 골드회원이 주문하신 경우 무료배송

무료배송 상품을 포함하여 주문하신 경우에는 구매금액에 관계없이 무료로 배송해 드립니다.

닫기

리뷰쓰기

닫기
* 도서명 :
처음 배우는 암호화
* 제목 :
* 별점평가
* 내용 :

* 리뷰 작성시 유의사항

글이나 이미지/사진 저작권 등 다른 사람의 권리를 침해하거나 명예를 훼손하는 게시물은 이용약관 및 관련법률에 의해 제재를 받을 수 있습니다.

1. 특히 뉴스/언론사 기사를 전문 또는 부분적으로 '허락없이' 갖고 와서는 안됩니다 (출처를 밝히는 경우에도 안됨).
2. 저작권자의 허락을 받지 않은 콘텐츠의 무단 사용은 저작권자의 권리를 침해하는 행위로, 이에 대한 법적 책임을 지게 될 수 있습니다.

오탈자 등록

닫기
* 도서명 :
처음 배우는 암호화
* 구분 :
* 상품 버전
종이책 PDF ePub
* 페이지 :
* 위치정보 :
* 내용 :

도서 인증

닫기
도서명*
처음 배우는 암호화
구입처*
구입일*
부가기호*
부가기호 안내

* 온라인 또는 오프라인 서점에서 구입한 도서를 인증하면 마일리지 500점을 드립니다.

* 도서인증은 일 3권, 월 10권, 년 50권으로 제한되며 절판도서, eBook 등 일부 도서는 인증이 제한됩니다.

* 구입하지 않고, 허위로 도서 인증을 한 것으로 판단되면 웹사이트 이용이 제한될 수 있습니다.

닫기

해당 상품을 장바구니에 담았습니다.이미 장바구니에 추가된 상품입니다.
장바구니로 이동하시겠습니까?

자료실