1. 암호의 세계
암호학
암호의 역사
고대 암호
근대 암호
현대 암호
2. 단일 치환 암호 (1)
치환 암호의 개요
단일 치환 암호의 개요
덧셈 암호
시저 암호
ROT13 암호
Atbash 암호
랜덤 치환 암호
암호해독 - 빈도 분석법
3. 단일 치환 암호 (2)
곱셈 암호
Affine 암호
4. 다중 치환 암호
다중 치환 암호의 개요
비제네르(Vigenere) 암호
힐(Hill) 암호
플레이페어(Playfair) 암호
5. 전치암호 (Transposition Cipher)
전치암호의 개요
Scytale 암호
Rail Fence Cipher
Route Cipher
Columnar Cipher
이중 전위 암호
6. 에니그마 (Enigma)
에니그마 개요
에니그마의 구조와 동작
에니그마의 종류
에니그마의 셋팅
에니그마의 C# 구현
7. One-Time Pad
One-Time Pad의 개요
Vernam Cipher
8. 대칭키 암호
대칭키 암호의 개요
스트림 암호 (Stream Cipher)
블럭 암호 (Block Cipher)
9. 스트림 암호
스트림 암호 개요
의사 난수 생성기
LFSR (Linear Feedback Shift Register)
A5 스트림 암호
RC4 스트림 암호
10. 블럭암호 DES
DES 개요
DES 암호화 과정
Initial Permutation와 Final Permutation
라운드 키 (Round Key)
파이스텔 라운드
DES 복호화 과정
3DES (Triple DES)
.NET Framework의 DES
11. 유한체 (Finite Field)
유한체 (Finite Field)
소수체 (Prime Field)
이진체 (Binary Field)
이진 유한체의 덧셈
이진 유한체의 곱셈
12. 블럭암호 AES
AES 개요
AES 암호화 과정
AES 암호화 라운드
AES 복호화 과정
.NET Framework의 AES
13. 블럭암호 모드와 패딩
블럭 암호 모드 (Block Cipher Mode)
ECB (Electronic Code Book) 모드
CBC (Cipher Block Chaining) 모드
CFB (Cipher Feedback) 모드
OFB (Output Feedback) 모드
CTR (Counter) 모드
블럭 패딩 (Padding)
PKCS#7 패딩
ANSI X9.23 패딩
ISO 10126 패딩
Zero 패딩
.NET의 블럭모드와 패딩
AES 클래스의 블럭모드와 패딩
14. 비대칭키 암호
비대칭키 암호의 개요
비대칭키 알고리즘들
RSA
Diffie-Hellman 키 교환
DSA
ECDSA
15. RSA 암호
RSA 개요
RSA 암호의 기초 개념
RSA 키 생성
RSA 암호화와 복호화
RSA 암/복호화의 증명
하이브리드 암호화
.NET Framework의 RSA
16. RSA 패딩
RSA 패딩 개요
RSA 패딩 방식
PKCS#1 패딩
OAEP 패딩
RSA-PSS 패딩
.NET Framework의 RSA
.NET RSA의 패딩
.NET RSA의 엔디안(Endian)
17. RSA 서명
RSA 디지탈 서명
단순화한 Textbook RSA 서명
RSA 서명 메카니즘
.NET의 RSA 서명
18. 해시함수와 MAC
해시함수
해시함수의 종류
MD5 알고리즘의 구현
.NET Framework의 해시함수
MD5 해시함수
SHA1 해시함수
SHA2 해시함수
MAC / HMAC
MAC
HMAC
.NET Framework의 HMAC
19. Diffie Hellman 키 교환
Diffie-Hellman 키 교환 개요
이산 로그 문제
Diffie-Hellman 메카니즘
Basic Diffie-Hellman
향상된 Diffie-Hellman
20. DSA 서명
DSA 개요
DSA 서명
DSA 키 생성
DSA 서명과 검증
Deterministic DSA
.NET Framework의 DSA
21. 타원곡선 암호
Elliptic curve cryptography 개요
타원곡선(Elliptic curve)
실수 상에서의 타원곡선
유한체 상에서의 타원곡선
타원곡선 이산 로그 문제
EC 도메인 파라미터
ECC 키 생성
미니 ECC 클래스
타원곡선 Diffie?Hellman (ECDH)
22. ECDSA 서명
ECDSA 개요
ECDSA 키 생성
ECDSA 서명과 검증
Deterministic ECDSA
.NET Framework의 ECDSA
부록 A. Utility 클래스
부록 B. 소수판별법
소수판별법
페르마의 소수판별법
밀러-라빈 소수판별법
부록 C. CAPI/CSP vs CNG
CSP vs CNG
부록 D. ASN.1
ASN.1 개요
BER 인코딩
BER 디코딩
부록 E. PGP
PGP 소개
GPG (Gpg4win)
부록 F. 소스코드 다운로드