서브메뉴

본문

실용 암호학 (보안 실무자를 위한 정보 보호와 암호화 구현)
실용 암호학 (보안 실무자를 위한 정보 보호와 암호화 구현)
저자 : 닐스 퍼거슨|브루스 슈나이어|타다요시 쿄노
출판사 : 에이콘출판
출판년 : 2011
ISBN : 9788960771970

책소개

암호학의 이론적 배경에 기반을 두고 동작 원리를 설명한다. 또한 실무에서 암호학을 어떻게 적용할 수 있는지에 초점을 맞춘 실전 암호학 가이드다. 보안 실무자와 실제 암호를 구현하는 개발자 모두를 위한 필수 지침서로서, 단순 이론을 배우는 데 그치지 않고 실용적 측면에서 암호학을 이해할 수 있는 최고의 암호학 서적이다.
[알라딘에서 제공한 정보입니다.]

출판사 서평

암호학의 이론적 배경에 기반을 두고 동작 원리를 설명한다. 또한 실무에서 암호학을 어떻게 적용할 수 있는지에 초점을 맞춘 실전 암호학 가이드다. 보안 실무자와 실제 암호를 구현하는 개발자 모두를 위한 필수 지침서로서, 단순 이론을 배우는 데 그치지 않고 실용적 측면에서 암호학을 이해할 수 있는 최고의 암호학 서적이다.

실세계에서 작동하는 암호 프로토콜 설계 방식을 알려준다.
카메라의 동작 방식을 안다고 해서 좋은 사진가가 되지는 않는다. 암호 설계가 무엇인지 암호 프로토콜이 어떻게 작동하는지 안다고 해서 암호를 잘 이용하는 것 또한 아니다. 무엇보다도, 암호학자처럼 생각해야만 한다. 이 책의 내용이 바로 그것이다. 암호 프로토콜을 세부적으로 깊숙한 부분까지 다루며, 어려운 부분을 인지하고 극복하는 법을 알려주는 이 책은 학교 교재나 독학용으로 모두 적합하며, 실세계 시스템에서 암호를 효율적으로 사용할 수 있게 인도한다.

★ 이 책에서 다루는 내용 ★
● 암호 프로토콜 설계의 이해
● 사람, 경제학, 하드웨어, 소프트웨어, 윤리, 정책 등 주변 시스템과 암호학 간의 상호작용 이해
● 주변 시스템 내에서 약점을 찾기 위한 보안 프로토콜
● 공격자의 사고 방식을 간파한 공격 방어
● 신규 보안 솔루션 내 암호 설계 구현 방법 습득

★ 저자 서문 ★
대부분의 서적은 암호화가 무엇인지, 암호학적 설계의 발전 방향이나 SSL/TLS 같은 기존 암호화 프로토콜의 방법을 다룬다. 브루스 슈나이어(Bruce Schneier)가 집필했던 『Applied Cryptography』도 그랬다. 이런 책은 암호 분야에 종사하는 사람들에게 귀중한 참고 자료가 된다. 그러나 안타깝게도 실제 암호 기술자나 보안 기술자에게는 큰 도움이 되지 못하며, 보안 실무자들에게는 암호 프로토콜의 동작 원리보다 사용 방법을 알려줄 필요가 있다.

우선 암호 사용 방법을 암호학자처럼 생각해야만 한다. 이 책은 이런 목표를 이루는 데 도움을 주기 위해 작성했으므로 집중해서 읽기 바란다. 암호학에서 사용하는 다양한 프로토콜보다 특정 프로토콜의 설계와 분석을 세밀하게 살펴볼 것이다. 또한 암호 프로토콜을 설계해가는 방법을 함께 차근히 알아본다. 여러 사람과 함께 특정한 설계를 결정한 이유를 공유하고, 그에 따른 잠재적인 문제점을 지적한다.

암호학자처럼 생각해봄으로써 암호화 기법을 좀 더 현명하게 사용하는 방법을 배운다. 기존 암호 도구들을 살펴보고 핵심 기능을 이해하고 사용 방법을 익히게 된다. 그리고 암호와 관련된 문제점을 이해하고 잘 극복해나갈 수 있을 것이다.

또한 이 책은 컴퓨터 보안을 학습하는 데 관문 역할을 할 것이다. 컴퓨터 보안은 여러모로 암호의 상위 집합이다. 컴퓨터 보안과 암호는 모두 공격자가 있을 경우 특정 방식으로 행동하는 개체(시스템 또는 알고리즘)들을 설계하고 평가하는 것이다. 이 책은 암호학의 맥락에서 공격자에 대해 생각하는 방법을 알려준다.

★ 옮긴이의 말 ★
정보통신 기술이 고도로 발전하면서 점차 IT가 융합되고 대부분 산업 분야에 복합적인 정보통신 기술이 활용되는 추세다. 이와 비례해 정보보호의 중요성은 점차 커지고 IT에 종사하는 전문가는 물론 인증서 등 디지털 데이터로서 개인 정보를 다루는 일반인들에 이르기까지 정보보호에 관심이 많다.

정보보호는 이제 정보통신 기술뿐만 아니라 정보통신과 타 산업 간의 융합 기술에 이르기까지 IT를 활용한 모든 곳에서 중요한 위치를 차지한다. 신문과 뉴스 등 대중 매체에서 디도스(DDoS), 악성 코드 같은 보안 용어를 어렵지 않게 접할 수 있음은 정보보호의 위상이 점차 높아지는 증거라고 봐도 무방할 것이다.

이 책 『실용 암호학』은 원서의 제목인 『Cryptography Engineering』에서 알 수 있듯 암호 전반에 관해 단순 이론가의 입장보다는 공학자의 입장에서 알기 쉽게 다룬다.

지금까지 암호학을 다룬 많은 서적이 암호학의 역사적 흐름과 이론적 배경을 중심으로 전개했다면, 이 책은 현재 사용하는 실용 암호에 직접 접근하는 방식을 택했다. 설명 방식 역시 이론적 배경만을 심도 있게 파헤치기보다는 실제 암호 시스템이 어떻게 동작하는지를 알려주는 데 초점을 맞췄기 때문에 수학적 배경 지식이나 암호 이론에 지식이 깊지 않은 독자라도 어렵지 않게 이해할 수 있다. 이론을 깊게 공부하고자 하는 독자에게는 암호 시스템의 전체적인 구성을 살피는 데 도움이 될 것이고, 암호에 대해 실무적으로 접근하고자 하는 독자에게는 이론과 응용을 균형 있게 익히는 데 도움을 줄 수 있을 것이다.
[교보문고에서 제공한 정보입니다.]

목차정보

1부 개요



1장 암호학의 배경

___1.1 암호학의 역할

___1.2 가장 약한 연결 고리 속성

___1.3 대립적 설정

___1.4 전문가적 편집증

______1.4.1 광범위한 혜택

______1.4.2 공격에 대한 토론

___1.5 위협 모델

___1.6 암호학≠해결책

___1.7 어려운 암호학

___1.8 암호학에서의 쉬운 부분

___1.9 일반적인 공격

___1.10 보안과 기타 설계 기준

______1.10.1 보안과 성능

______1.10.2 보안과 기능

______1.10.3 보안과 발전하는 시스템

___1.11 참조 자료

___1.12 보안 편집광을 위한 훈련

______1.12.1 보안 시사 문제 훈련

______1.12.2 보안성 검토 훈련

___1.13 연습문제



2장 암호학 소개

___2.1 암호화

______2.1.1 커코프 원칙

___2.2 인증

___2.3 공개키 암호

___2.4 전자 서명

___2.5 공개키 기반 구조

___2.6 공격

______2.6.1 암호문 단독 모델

______2.6.2 알려진 평문 모델

______2.6.3 선택 평문 모델

______2.6.4 선택 암호문 모델

______2.6.5 특정 공격 목표

______2.6.6 다른 형태의 공격

___2.7 자세히 살펴보기

______2.7.1 생일 공격

______2.7.2 Meet-in-the-Middle 공격

___2.8 보안 수준

___2.9 성능

___2.10 복잡성

___2.11 연습문제



2부 메시지 보안



3장 블록 암호

___3.1 블록 암호란

___3.2 공격 유형

___3.3 이상적인 블록 암호

___3.4 블록 암호의 안전에 관한 정의

______3.4.1 순열 패리티

___3.5 실제 블록 암호

______3.5.1 DES

______3.5.2 AES

______3.5.3 Serpent

______3.5.4 Twofish

______3.5.5 기타 AES 최종 후보

______3.5.6 블록 암호 선택

______3.5.7 키 크기

___3.6 연습문제



4장 블록 암호 모드

___4.1 패딩

___4.2 ECB

___4.3 CBC

______4.3.1 고정 IV

______4.3.2 카운터 IV

______4.3.3 랜덤 IV

______4.3.4 넌스로 생성된 IV

___4.4 OFB

___4.5 CTR

___4.6 암호화와 인증의 결합

___4.7 사용할 모드 선택

___4.8 정보 유출

______4.8.1 충돌의 확률

______4.8.2 유출을 다루는 법

______4.8.3 수학에 관해

___4.9 연습문제



5장 해시 함수

___5.1 해시 함수의 안전성

___5.2 실제 해시 함수

______5.2.1 간단하지만 안전하지 않은 해시 함수

______5.2.2 MD5

______5.2.3 SHA-1

______5.2.4 SHA-224, SHA-256, SHA-384, SHA-512

___5.3 해시 함수의 취약점

______5.3.1 길이 확장

______5.3.2 부분 메시지 충돌

___5.4 취약점 개선

______5.4.1 단기적 개선 방법

______5.4.2 효율성을 높인 단기 개선 방법

______5.4.3 다른 개선 방법

___5.5 해시 함수의 선택

___5.6 연습문제



6장 메시지 인증 코드

___6.1 MAC의 역할

___6.2 이상적인 MAC과 MAC의 안전성

___6.3 CBC-MAC과 CMAC

___6.4 HMAC

___6.5 GMAC

___6.6 MAC의 선택

___6.7 MAC의 사용

___6.8 연습문제



7장 보안 채널

___7.1 보안 채널의 특성

______7.1.1 역할

______7.1.2 키

______7.1.3 메시지와 스트림

______7.1.4 보안 속성

___7.2 인증과 암호화 순서

___7.3 보안 채널 설계: 개요

______7.3.1 메시지 번호

______7.3.2 인증

______7.3.3 암호화

______7.3.4 프레임 포맷

___7.4 설계 세부 사항

______7.4.1 초기화

______7.4.2 메시지 전송

______7.4.3 메시지 수신

______7.4.4 메시지 순서

___7.5 대안

___7.6 연습문제



8장 구현 이슈(1)

___8.1 올바른 프로그램 작성법

______8.1.1 명세서

______8.1.2 테스트와 수정

______8.1.3 태만한 자세

______8.1.4 진행 방법

___8.2 안전한 소프트웨어 작성법

___8.3 기밀 유지

______8.3.1 상태 삭제

______8.3.2 스왑 파일

______8.3.3 캐시

______8.3.4 메모리 내 데이터 잔존

______8.3.5 외부 접근

______8.3.6 데이터 무결성

______8.3.7 해야 할 일

___8.4 코드 품질

______8.4.1 간결화

______8.4.2 모듈화

______8.4.3 어서션

______8.4.4 버퍼 오버플로우

______8.4.5 테스팅

___8.5 부채널 공격

___8.6 다루지 못한 것

___8.7 연습문제



3부 키 협상



9장 난수 생성

___9.1 실제 난수

______9.1.1 실제 난수 데이터 사용 시의 문제점

______9.1.2 의사 난수 데이터

______9.1.3 실제 난수 데이터와 의사 난수 생성기

___9.2 PRNG에 대한 공격 모델

___9.3 Fortuna

___9.4 생성기

______9.4.1 초기화

______9.4.2 Reseed

______9.4.3 블록 생성

______9.4.4 난수 데이터 생성

______9.4.5 생성기 속도

___9.5 누산기

______9.5.1 엔트로피 소스

______9.5.2 풀

______9.5.3 구현 시 고려 사항

______9.5.4 초기화

______9.5.5 난수 데이터 얻기

______9.5.6 이벤트 추가

___9.6 시드 파일 관리

______9.6.1 시드 파일 생성

______9.6.2 시드 파일 업데이트

______9.6.3 시드 파일 읽기/쓰기 시기

______9.6.4 백업과 가상 머신

______9.6.5 파일 시스템 업데이트의 원자성

______9.6.6 초기 부트

___9.7 난수 요소의 선택

___9.8 연습문제



10장 소수

___10.1 가분성과 소수

___10.2 작은 소수 생성

___10.3 모듈로 소수의 계산

______10.3.1 덧셈과 뺄셈

______10.3.2 곱셈

______10.3.3 군과 유한체

______10.3.4 GCD 알고리즘

______10.3.5 확장된 유클리드 호제법

______10.3.6 모듈로 2의 동작

___10.4 큰 소수

______10.4.1 소수 판별법

______10.4.2 멱의 계산

___10.5 연습문제



11장 디피-헬만

___11.1 군

___11.2 기본 DH

___11.3 중간자 공격

___11.4 함정

___11.5 안전한 소수

___11.6 작은 부분군 사용

___11.7 p의 크기

___11.8 실용 규칙

___11.9 잘못될 수 있는 것

___11.10 연습문제



12장 RSA

___12.1 소개

___12.2 중국인의 나머지 정리

______12.2.1 가너의 공식

______12.2.2 일반화

______12.2.3 사용

______12.2.4 결론

___12.3 모듈로 n 곱셈

___12.4 RSA 정의

______12.4.1 RSA 전자 서명

______12.4.2 공개 지수

______12.4.3 개인키

______12.4.4 n의 크기

______12.4.5 RSA 키 생성

___12.5 RSA 위험

___12.6 암호화

___12.7 전자 서명

___12.8 연습문제



13장 암호 프로토콜 소개

___13.1 역할

___13.2 신뢰

______13.2.1 위험

___13.3 인센티브

___13.4 암호 프로토콜에서의 신뢰

___13.5 메시지와 단계

______13.5.1 전송 계층

______13.5.2 프로토콜과 메시지 식별

______13.5.3 메시지 인코딩과 구문 분석

______13.5.4 프로토콜 실행 상태

______13.5.5 에러

______13.5.6 재생과 재시도

___13.6 연습문제



14장 키 협상

___14.1 설정

___14.2 첫 번째 시도

___14.3 프로토콜의 영원한 삶

___14.4 인증 규칙

___14.5 두 번째 시도

___14.6 세 번째 시도

___14.7 최종 프로토콜

___14.8 프로토콜의 다양한 관점

______14.8.1 앨리스의 관점

______14.8.2 밥의 관점

______14.8.3 공격자의 관점

______14.8.4 키 손상

___14.9 프로토콜의 계산 복잡도

______14.9.1 최적화 비법

___14.10 프로토콜 복잡도

___14.11 가벼운 경고

___14.12 패스워드 기반의 키 협상

___14.13 연습문제



15장 구현 이슈(2)

___15.1 큰 정수 연산

______15.1.1 Wooping

______15.1.2 DH 연산 체크

______15.1.3 RSA 암호화 체크

______15.1.4 RSA 서명 체크

______15.1.5 결론

___15.2 빠른 곱셈

___15.3 부채널 공격

______15.3.1 대응 방법

___15.4 프로토콜

______15.4.1 보안 채널상의 프로토콜

______15.4.2 메시지 수신

______15.4.3 타임아웃

___15.5 연습문제



4부 키 관리



16장 클록

___16.1 클록 사용

______16.1.1 만료

______16.1.2 특정 값

______16.1.3 단조성

______16.1.4 실시간 트랜잭션

___16.2 실시간 클록 칩 사용

___16.3 보안 위험

______16.3.1 클록 되돌리기 공격

______16.3.2 클록 중지하기 공격

______16.3.3 클록 앞으로 돌리기 공격

___16.4 신뢰성 있는 클록 생성

___16.5 동일 상태 문제

___16.6 시간

___16.7 마무리 추천

___16.8 연습문제



17장 키 서버

___17.1 기본 원리

___17.2 커버로스

___17.3 간단한 해결책

______17.3.1 보안 연결

______17.3.2 키 설정

______17.3.3 키 재설정

______17.3.4 기타 속성

___17.4 선택의 문제

___17.5 연습문제



18장 이상적인 PKI

___18.1 PKI의 간단한 개요

___18.2 PKI 예제

______18.2.1 범용 PKI

______18.2.2 VPN 접근

______18.2.3 전자 금융

______18.2.4 정유 센서

______18.2.5 신용카드 조직

___18.3 추가적인 세부 사항

______18.3.1 다단계 인증

______18.3.2 유효 기간

______18.3.3 독립된 등록 권한

___18.4 정리

___18.5 연습문제



19장 PKI의 현실

___19.1 이름

___19.2 인가

___19.3 신뢰

___19.4 간접 인가

___19.5 직접 인가

___19.6 자격 증명 시스템

___19.7 수정된 구상

___19.8 폐기

______19.8.1 인증서 폐기 목록

______19.8.2 빠른 만료

______19.8.3 온라인 인증서 검증

______19.8.4 인증서 폐기의 필요성

___19.9 PKI를 사용하기 좋은 곳

___19.10 PKI 타입과 키 서버 타입

___19.11 연습문제



20장 PKI 실현 가능성

___20.1 인증서 형식

______20.1.1 권한 언어

______20.1.2 루트 키

___20.2 키의 생명주기

___20.3 키의 교체 이유

___20.4 정리

___20.5 연습문제



21장 비밀 정보 저장

___21.1 디스크

___21.2 인간의 기억

______21.2.1 솔트 사용과 확장

___21.3 이동식 저장 매체

___21.4 보안 토큰

___21.5 보안 UI

___21.6 바이오메트릭

___21.7 싱글 사인온

___21.8 손실 위험

___21.9 비밀 공유

___21.10 비밀 삭제

______21.10.1 종이

______21.10.2 자성 매체

______21.10.3 고체 상태의 저장 장치

___21.11 연습문제



5부 기타



22장 표준과 특허

___22.1 표준

______22.1.1 표준화 과정

______22.1.2 SSL

______22.1.3 AES: 경쟁에 의한 표준화

___22.2 특허



23장 전문가 고급 활용
[알라딘에서 제공한 정보입니다.]

QuickMenu