책소개
이 책은 현대 암호학에서 주로 사용하는 기술을 소개하고, 자바에서 제공하는 JCA(Java Cryptography Architecture)로 암호화를 구현하여 실제 시스템에 암호를 적용하는 방법을 알려준다. 암호화의 개념에 대해서 살펴보고, 현대 암호학에서 사용하는 암호화 종류와 현대 생활 전반에 사용하는 암호화 기술에 대해서 알아본다. 자바에서 제공하는 JCA에 대해 살펴보고, JCA에서 제공하는 API를 이용하여 실제로 암호화하는 방법과 전자서명, 인증서 등에 대해서 알아본다.
목차
Part 1 암호화의 개념
1장 암호화란
1.1 암호화
1.2 비밀키(대칭키) 암호
1.3 커코프 원칙
1.4 메시지 인증 코드
1.5 공개키 암호
1.6 전자서명
1.7 공개키 기반 구조
1.8 암호화 방식
2장 대칭키(비밀키) 암호
2.1 블록 암호화 알고리즘
2.2 블록 암호화 운영 모드
2.3 암호화와 인증을 결합한 블록 암호 운영 모드
2.4 패딩
2.5 스트림 암호
3장 해시 함수
3.1 해시 함수의 조건
3.2 해시 함수 알고리즘
3.3 해시 함수의 용도
4장 메시지 인증 코드
4.1 HMAC
4.2 CMAC
5장 비대칭키(공개키) 암호
5.1 Diffie?Hellman 키 교환
5.2 비대칭키 알고리즘
6장 전자서명
7장 공개키 기반 구조
7.1 PKI의 구성 요소
7.2 PKI 신뢰 모델
7.3 X.509 인증서
7.4 PKI 응용
Part 2 JCA와 암호화
8장 JCA
8.1 JCA와 JCE
8.2 설계 원칙
8.3 구조
8.4 프로바이더 등록하기
8.5 JCA 엔진 클래스
9장 난수
9.1 SecureRandom 클래스
9.2 SecureRandom 클래스를 사용한 난수 생성
10장 해시 함수
10.1 MessageDigest 클래스
10.2 MessageDigest 클래스를 사용한 해시값 생성
10.3 체크섬
10.4 패스워드 저장
11장 블록 암호를 사용한 암/복호화
11.1 비밀키 생성
11.2 Cipher 클래스를 사용한 암/복호화
11.3 CipherStream 클래스를 사용한 블록 암호화
12장 메시지 인증 코드
12.1 Mac 클래스를 사용한 메시지 인증 코드 생성
12.2 HMAC 알고리즘을 사용한 메시지 인증 코드 생성
13장 패스워드 기반 암호화
13.1 PBES1
13.2 PBES2
14장 공개키 암호 방식을 사용한 암/복호화
14.1 공개키쌍 생성
14.2 Cipher 클래스를 사용한 암/복호화
15장 전자서명
15.1 Signature 클래스를 사용한 전자서명
15.2 RSA를 사용한 전자서명
16장 인증서
16.1 인증서 파일 포맷
16.2 공인인증서
16.3 인증서 생성
A 부록
A.1 Base 64
A.2 ASN.1
A.3 PKCS
A.4 암호화 알고리즘 수출 규제
A.5 예제 코드에 사용한 유틸 클래스