상세정보
처음 배우는 암호화
- 저자
- 장필리프 오마송 저/류광 역
- 출판사
- 한빛미디어
- 출판일
- 2018-07-31
- 등록일
- 2019-01-08
- 파일포맷
- PDF
- 파일크기
- 4MB
- 공급사
- YES24
- 지원기기
-
PC
PHONE
TABLET
프로그램 수동설치
뷰어프로그램 설치 안내
책소개
흥미진진한 모던 암호학 실용 가이드 이 책은 딱딱하게만 느껴지는 암호학의 근본 개념과 최신 논의를 흥미롭고 체계적으로 알려준다. 크게는 기초 수학부터 양자 컴퓨팅 이후의 암호학까지 폭넓은 주제를 다루며, 각 장은 실제 사례를 기초로 한 일반적인 구현 실수와 이러한 함정을 피하는 방법까지 자세히 설명한다. 이제 막 현장에 뛰어든 초심자에게는 친절한 가이드가, 숙련된 종사자에게는 최신 암호화와 그 응용에 대한 풍부한 정보를 제공하는 필독서가 되어줄 것이다.
저자소개
스위스 기반 다국적 컴퓨터 보안 회사인 Kudelski Security의 수석연구원이다. 암호학과 암호해독 분야에서 40편 이상의 연구 논문을 저술했으며, 널리 쓰이는 해시 함수 BLAKE2와 SipHash를 설계했다. 정보 보안 콘퍼런스들에서 정기적으로 강연하며, Black Hat과 DEF CON, Troopers, Infiltrate에도 참여했다.
목차
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장. RSA10.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장. TLS13.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 더 읽을거리